.planner{max-width:520px;margin:0 auto;color:var(--ink,#182733)}
.planner button,.planner a,.plan-form button,.plan-form input:not([type=checkbox]),.plan-form select{min-height:44px}
.planner button,.plan-form button{border:1px solid #ccdce0;border-radius:14px;background:var(--glass);padding:10px 14px;color:var(--ink,#182733);font:inherit;cursor:pointer}
.planner button:disabled,.plan-form button:disabled{opacity:.55;cursor:wait}
.planner a{display:inline-flex;align-items:center;color:var(--ocean,#0876A3);overflow-wrap:anywhere}
.plan-actions,.plan-rsvp{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.plan-dates{display:flex;gap:8px;overflow-x:auto;padding:16px 0;scrollbar-width:thin}
.plan-dates button{flex-shrink:0;border-radius:24px}
.plan-tabs{display:flex;gap:4px;padding:4px;background:#e5f3f3;border-radius:28px;margin:12px 0}
.plan-tabs button{flex:1;border:0;border-radius:24px;padding:10px 8px;background:transparent}
.planner button[aria-pressed=true]{background:var(--teal,#0E8C8C);color:white;border-color:var(--teal,#0E8C8C)}
.plan-card{background:var(--glass);border:1px solid #e0e9ec;border-radius:20px;padding:16px;margin:12px 0;overflow-wrap:anywhere}
.plan-card h2{font-size:1.15rem;margin:12px 0 8px}.plan-card p{white-space:pre-wrap;line-height:1.5;margin:8px 0}
.plan-time{font-weight:600}.plan-chip{display:inline-block;border-radius:20px;padding:5px 10px;font-size:.8rem;color:#115c49;background:#e2f3ec}.plan-chip.proposed{color:#795600;background:#fff2cf}
.plan-port-note{font-size:.9rem;color:var(--fog,#44525c)}.plan-empty{padding:24px 16px;background:var(--glass);border-radius:20px;text-align:center}
.plan-form{display:grid;gap:12px;min-width:0}.plan-form h2{margin:0}.plan-form label{display:grid;gap:6px;font-weight:600}.plan-form input,.plan-form select,.plan-form textarea{box-sizing:border-box;width:100%;max-width:100%;border:1px solid #b9cbd1;border-radius:14px;padding:10px;font:inherit;background:var(--glass);color:var(--ink,#182733)}
.plan-form textarea{min-height:100px;resize:vertical}.plan-form label:has([type=checkbox]){display:flex;align-items:center;min-height:44px}.plan-form input[type=checkbox]{width:24px;height:24px;accent-color:var(--teal,#0E8C8C)}
.plan-form [role=alert]{color:var(--alert,#B5433E)}.task-tick{display:flex;align-items:center;gap:12px;min-height:44px;font-weight:600;cursor:pointer}.task-tick input{width:24px;height:24px;flex-shrink:0;accent-color:var(--teal,#0E8C8C)}.task-done{text-decoration:line-through;color:var(--fog,#44525c)}
.planner :focus-visible,.plan-form :focus-visible{outline:3px solid var(--ocean,#0876A3);outline-offset:3px}

/* Showcase planner family. Shell may supply --topbar-h; planner measures it otherwise. */
html:has(.planner){scroll-padding-top:calc(var(--topbar-h, 65px) + var(--planner-sticky-h, 116px) + 12px);scroll-padding-bottom:calc(var(--nav-h) + var(--ticker-h) + 16px)}
.planner-heading{display:flex;align-items:center;gap:10px;color:var(--ticker);font-size:1.45rem;margin:8px 0 16px}.planner-heading .ec-icon{color:var(--teal)}
.planner-sticky{position:sticky;top:var(--topbar-h, calc(65px + env(safe-area-inset-top)));z-index:11;background:#fff;background:var(--bg);padding:4px 0 8px;margin-bottom:12px}
.planner-sticky.is-stuck{box-shadow:0 5px 7px -5px #063e5640}
.planner .plan-tabs{margin:0;background:#eaf4f5;gap:4px;border-radius:28px;padding:4px}
.planner .plan-tabs>*{flex:1;min-width:0;display:flex;justify-content:center;align-items:center;text-decoration:none;border:0;border-radius:24px;font-size:.85rem;font-weight:700;color:var(--fog);padding:10px 8px;background:transparent}
.planner .plan-tabs [aria-pressed=true]{background:var(--teal);color:white;box-shadow:0 2px 6px #063e5618}
.plan-dates{gap:4px;padding:8px 0 0}.plan-dates button{font-size:.75rem;padding:6px 10px;white-space:nowrap}
.plan-card{box-shadow:0 4px 18px #063e5610}.plan-card h2{display:flex;gap:8px;align-items:center;color:var(--ticker)}
.planner [role=status]:empty{display:none}.planner [role=status]{color:var(--fog);font-size:.85rem;margin:10px 0}
.itinerary-day{border-bottom:1px solid #e7edef}.planner .day-row{width:100%;display:grid;grid-template-columns:70px 26px minmax(0,1fr) 16px;gap:8px;align-items:center;text-align:left;border:0;border-radius:0;padding:14px 0;background:transparent}
.day-row time{font-size:.75rem;font-weight:650;color:var(--ocean)}.day-copy{min-width:0}.day-copy strong{display:block;font-size:.95rem;color:var(--ticker)}.day-copy small{display:block;font-size:.75rem;font-weight:400;color:var(--fog)}.day-icon{color:var(--ocean)}.day-icon.sun{color:#e59a00}.day-icon.palm{color:var(--success)}
.day-row .plan-chip{margin:6px 0 0;padding:3px 7px;font-size:.65rem;line-height:1.4;white-space:normal}.day-activities{padding:0 0 8px}.day-activities .plan-card{margin:8px 0}.plan-time{color:var(--fog);font-size:.85rem;font-weight:400}
.planner .planner-fab{position:fixed;bottom:calc(var(--nav-h) + var(--ticker-h) + env(safe-area-inset-bottom) + 18px);right:max(18px, calc((100vw - 520px)/2 + 18px));z-index:22;width:56px;height:56px;padding:0;border-radius:50%;background:var(--teal);color:white;border:2px solid white;box-shadow:0 4px 12px #063e5640}
.tasks-planner{padding-bottom:72px}.task-section{margin:18px 0;background:var(--glass);border-radius:20px;box-shadow:0 4px 18px #063e5610;padding:12px}.task-section>h2{font-size:1rem;color:var(--ticker);margin:0 0 8px}.task-card{position:relative;margin:0;padding:8px 44px 8px 0;border:0;border-bottom:1px solid #e7edef;border-radius:0;box-shadow:none}.task-card:last-child{border-bottom:0}.task-card p{font-size:.75rem;color:var(--fog);margin:0 0 0 36px}.task-tick{gap:10px;font-size:.9rem;font-weight:700;position:relative}.task-tick input{position:absolute;left:0;width:26px;height:44px;margin:0;opacity:0;cursor:pointer}.task-check{display:flex;color:var(--ocean);pointer-events:none}.task-tick input:checked+.task-check{color:var(--teal)}.task-tick input:focus-visible+.task-check{outline:3px solid var(--ocean);border-radius:50%}.task-tick input:disabled+.task-check{opacity:.5}.task-card .plan-actions{gap:0}.task-card [data-edit]{position:absolute;right:0;top:8px;padding:0;width:44px;border:0;background:transparent;color:var(--ocean)}.task-card [data-delete]{margin-left:36px;padding:0 6px;min-height:44px;border:0;background:transparent;font-size:.75rem;color:var(--fog)}.planner .task-completed{font-size:.75rem;background:transparent;color:var(--fog);border:0;padding:4px 8px}
.notes-planner .note-card{padding:16px;border-radius:20px;background:var(--glass);box-shadow:0 4px 18px #063e5610}.note-card h2{margin:0 0 10px;font-size:1rem;display:flex;align-items:center;gap:8px}.note-card h2>.ec-icon{color:var(--teal)}.note-card h2>span:not(.note-pin){flex:1}.note-pin{color:#b88000}.note-preview{color:var(--fog);font-size:.9rem}.note-card summary{min-height:44px;cursor:pointer;display:flex;align-items:center;color:var(--ocean);font-size:.8rem}.note-card .social-actions{display:flex;gap:6px;flex-wrap:wrap}.note-card .social-actions button{font-size:.8rem;background:#eaf4f5;border:0;color:var(--ticker)}

/* Shared glass surfaces retain each feature’s layout and interactions. */
.plan-card,.plan-empty,.task-section,.notes-planner .note-card,.planner .plan-tabs,.planner-sticky,.itinerary-day,.plan-chip{background:var(--glass);color:var(--ink);border:var(--glass-border);box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-filter);-webkit-backdrop-filter:var(--glass-filter)}

/* Review polish: compact controls without standalone bars. */
.planner .plan-action-chip{box-sizing:border-box;justify-content:center;min-width:44px;padding:10px 14px;border:1px solid #ccdce0;border-radius:14px;background:var(--glass);color:var(--ink,#182733);font:inherit;line-height:normal;text-decoration:none}.plan-action-chip:focus-visible{outline:3px solid var(--ocean);outline-offset:2px}

/* Itinerary details; shared layout and surfaces come from kit.css. */
.itinerary{min-width:0}.plan-day-header{padding:16px;margin:12px 0}.plan-day-header p{margin:8px 0 0;font-size:.85rem}
.day-activities .plan-card{min-width:0;margin:0;padding:12px}.day-activities time{font-size:.75rem;overflow-wrap:anywhere}
.plan-aboard .plan-card{background:#fff0c2;color:#694600;border-color:#d8a63c;font-weight:700;text-decoration:none}
.itinerary .day-row>*{min-width:0}.itinerary .day-row time{overflow-wrap:anywhere}

.itinerary .day-row>time,.itinerary .ec-tl>time{background:var(--glass);color:var(--ink,#182733);border-radius:10px;box-shadow:0 0 0 4px var(--glass);backdrop-filter:var(--glass-filter);-webkit-backdrop-filter:var(--glass-filter)}

/* Frosted text surfaces; image tiles retain their own backgrounds. */
.planner .plan-action-chip{background:var(--glass);color:var(--ink);border:var(--glass-border);box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-filter);-webkit-backdrop-filter:var(--glass-filter)}
