:root{--bg: #f7f3ed;--bg-elevated: #fffdf9;--ink: #1b2838;--ink-muted: #5c6b7a;--accent: #1b4965;--accent-light: #2d6a8f;--gold: #d4a853;--border: #e2dcd2;--border-strong: #c9bfb0;--shadow: 0 8px 32px rgba(27, 40, 56, .08);--radius: 12px;--radius-sm: 10px;--control-height: 39px;--timeline-bar-height: 32px;--timeline-destination-height: 20px;--timeline-handle-width: 14px;--timeline-handle-grip-height: 16px;--timeline-radius: 10px;--timeline-gap: 4px;--timeline-shadow: 0 6px 16px rgba(27, 40, 56, .16);--chip-radius: 999px;--font-display: "Source Sans 3", system-ui, sans-serif;--font-body: "Source Sans 3", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-body);font-size:15px;line-height:1.5;color:var(--ink);background:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(212,168,83,.12),transparent),linear-gradient(180deg,#faf7f1 0%,var(--bg) 100%);background-attachment:fixed}button,input,select,textarea{font:inherit}.app{min-height:100vh;display:flex;flex-direction:column}.app-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--ink-muted)}.loader{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;background:#fffdf9d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.brand{display:flex;align-items:center;gap:.75rem}.brand-logo{display:block;height:46px;width:auto}.brand-stacked{flex-direction:column;align-items:flex-start;gap:.3rem}.brand-stacked .tagline{font-size:.8rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.brand h1{margin:0;font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--accent);letter-spacing:-.02em}.tagline{margin:0;font-size:.85rem;color:var(--ink-muted)}.header-actions{display:flex;flex-wrap:wrap;gap:.5rem}.header-actions>.btn{min-height:var(--control-height);padding-block:.4rem}.trip-switcher{display:flex;flex-direction:column;gap:.2rem;min-width:170px}.trip-switcher-group{display:flex;flex-direction:column;gap:.35rem;min-width:200px}.trip-switcher span{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted)}.trip-quick-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.trip-inline-btn{border:1px solid var(--border);background:#fff;color:var(--accent);font-weight:600;padding:0 .68rem;min-height:var(--control-height);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .15s,background .15s,color .15s}.trip-inline-btn:hover{border-color:var(--border-strong);background:#1b49650f;color:var(--accent-light)}.trip-inline-btn-danger{color:#b91c1c}.trip-inline-btn-danger:hover{color:#991b1b;background:#fef2f2;border-color:#fecaca}.trip-inline-btn:disabled{color:#cfa2a2;border-color:#f5d6d6;background:#fff8f8;cursor:not-allowed}.trip-create-form{display:flex;flex-direction:column;gap:.4rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;padding:.5rem}.trip-create-form input{padding:.42rem .52rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;color:var(--ink);min-height:var(--control-height)}.trip-create-form input:focus{outline:2px solid rgba(27,73,101,.25);border-color:var(--accent)}.trip-create-row{display:grid;grid-template-columns:1fr 1fr;gap:.35rem}.trip-create-actions{display:flex;gap:.35rem}.trip-create-actions .btn{padding:.35rem .55rem;font-size:.82rem}.trip-select{padding:.42rem .62rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;color:var(--ink);min-height:var(--control-height);line-height:1.2}.trip-select:focus{outline:2px solid rgba(27,73,101,.25);border-color:var(--accent)}.app-main{flex:1;padding:1rem 1rem 2rem;overflow-x:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.5rem 1rem;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;font-weight:500;transition:background .15s,border-color .15s,transform .1s}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-light)}.btn-ghost{background:transparent;color:var(--accent);border-color:var(--border)}.btn-ghost:hover{background:#1b49650f;border-color:var(--border-strong)}.btn-danger{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.btn-danger:hover{background:#fee2e2}.icon-btn{background:none;border:none;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--ink-muted);padding:.25rem}.icon-btn:hover{color:var(--ink)}.calendar{display:flex;flex-direction:column;gap:1.25rem;min-width:min(100%,980px);margin:0 auto}.week-row{background:linear-gradient(180deg,#ffffffe0,#f6f1e9f5),radial-gradient(circle at 12% 10%,rgba(212,168,83,.12),transparent 46%);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:visible;animation:fadeUp .4s ease both}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.week-label{padding:.6rem 1rem;font-family:var(--font-display);font-size:.9rem;font-weight:500;color:var(--ink-muted);border-bottom:1px solid var(--border);background:#f7f3ed80}.week-label--transition{display:flex;align-items:center;gap:.65rem;background:linear-gradient(90deg,#f7f3ede6,#1b49650f,#f7f3ede6)}.week-label-badge{font-family:var(--font-body);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--accent);background:#1b49651a;border:1px solid rgba(27,73,101,.18);border-radius:var(--chip-radius);padding:.15rem .5rem;flex-shrink:0}.week-label-text{font-family:var(--font-display);font-weight:600;color:var(--accent)}.week-row--transition{border-color:#1b496538}.week-grid{position:relative;padding:.5rem;border-radius:calc(var(--radius) - 4px);background:linear-gradient(180deg,#ffffff47,#1b496509)}.date-layer{position:relative;display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:.45rem;z-index:4}.date-cell{min-width:0;background:linear-gradient(180deg,#ffffffe0,#f7f3edc2);border:1px solid rgba(27,73,101,.16);border-radius:var(--radius-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;padding:.35rem .25rem}.date-cell.adjacent-month{background:linear-gradient(180deg,#f4f0e9f5,#ece7dfe6)}.date-cell.month-boundary{box-shadow:inset 3px 0 0 var(--accent)}.date-cell.today .day-number{background:var(--accent);color:#fff}.span-drop-grid{position:absolute;top:.5rem;right:.5rem;bottom:.5rem;left:.5rem;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;pointer-events:none;z-index:1}.span-drop-cell{min-height:100%}.span-layer{position:relative;margin-bottom:.5rem;padding:0 .25rem;z-index:1}.trip-layer{position:relative;margin-bottom:.45rem;padding:0 .25rem;z-index:1}.trip-slot{position:absolute;left:0;right:0}.trip-span{position:absolute;top:0;left:0;right:auto;height:var(--timeline-bar-height);border:1px solid rgba(27,73,101,.42);border-radius:var(--timeline-radius);display:flex;align-items:center;margin:0 2px;background:linear-gradient(160deg,#1b496557,#1b49652b 58%,#1b49654d);color:#10354b;font-size:.78rem;font-weight:600;overflow:hidden;gap:.3rem;transition:left .08s linear,width .08s linear,top .08s linear,box-shadow .15s}.trip-span.is-active{background:linear-gradient(160deg,#1b49657a,#2a9d8f3d 58%,#1b49656b);border-color:#1b49659e;color:#0c2a3c;box-shadow:var(--timeline-shadow)}.trip-span.is-resizing{z-index:5;box-shadow:0 0 0 2px #2a9d8f59,var(--shadow)}.trip-span.continues-before{border-top-left-radius:4px;border-bottom-left-radius:4px;margin-left:0}.trip-span.continues-after{border-top-right-radius:4px;border-bottom-right-radius:4px;margin-right:0}.trip-span-title{display:block;padding:0 .2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;text-shadow:0 1px 0 rgba(255,255,255,.35)}.trip-resize-handle{width:var(--timeline-handle-width);align-self:stretch;border:none;background:transparent;padding:0;margin:0;cursor:ew-resize;flex-shrink:0;touch-action:none;display:flex;align-items:center;justify-content:center}.trip-resize-handle:before{content:"";width:4px;height:var(--timeline-handle-grip-height);border-radius:3px;background:#1b496580;border:1px solid rgba(27,73,101,.36);transition:background .15s,border-color .15s,transform .15s}.trip-destination-layer{position:absolute;top:calc(var(--timeline-bar-height) + var(--timeline-gap));left:0;right:0}.trip-destination{position:absolute;height:var(--timeline-destination-height);border-radius:var(--timeline-radius);border:1px solid rgba(17,27,38,.28);color:#0d2333;display:flex;align-items:center;font-size:.72rem;font-weight:700;letter-spacing:.01em;padding:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-shadow:0 4px 10px #111b262e;opacity:.92;transition:transform .1s,opacity .1s,filter .15s,box-shadow .15s}.trip-destination.shared-start-day:before,.trip-destination.shared-end-day:after{content:"";position:absolute;top:2px;bottom:2px;width:1px;background:#0d233357}.trip-destination.shared-start-day:before{left:0}.trip-destination.shared-end-day:after{right:0}.trip-destination-body{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 .28rem}.trip-destination.is-draggable .trip-destination-body{cursor:grab;touch-action:none}.trip-destination.is-draggable .trip-destination-body:active{cursor:grabbing}.trip-destination.is-draggable{touch-action:none}.trip-destination.is-draggable:not(:has(.trip-destination-body)){cursor:grab}.trip-destination.is-draggable:not(:has(.trip-destination-body)):active{cursor:grabbing}.trip-destination.dragging{opacity:.45;filter:saturate(1.12)}.trip-destination.is-resizing{z-index:6;box-shadow:0 0 0 2px #2a9d8f73,0 4px 10px #111b262e}.trip-destination.swap-target{box-shadow:0 0 0 2px #d4a853f2,0 0 0 5px #d4a85347,0 4px 10px #111b262e;filter:brightness(1.06)}.destination-resize-handle{width:10px;align-self:stretch;border:none;background:transparent;padding:0;margin:0;cursor:ew-resize;flex-shrink:0;touch-action:none;display:flex;align-items:center;justify-content:center}.destination-resize-handle:before{content:"";width:3px;height:12px;border-radius:2px;background:#0d233373;border:1px solid rgba(13,35,51,.32);transition:background .15s,border-color .15s,transform .15s}.trip-destination:hover .destination-resize-handle:before,.trip-destination.is-resizing .destination-resize-handle:before{background:#ffffffb8;border-color:#0d23338c}.destination-resize-handle:hover:before,.destination-resize-handle:active:before{background:#fff;border-color:#1b4965;transform:scaleY(1.08)}.destination-resize-handle:focus-visible{outline:2px solid rgba(255,255,255,.95);outline-offset:-2px;border-radius:4px}.destination-resize-start{margin-left:1px}.destination-resize-end{margin-right:1px}body.destination-resizing{cursor:ew-resize;-webkit-user-select:none;user-select:none}body.destination-resizing *{cursor:ew-resize!important}.trip-destination span{overflow:hidden;text-overflow:ellipsis}.trip-destination.continues-before{border-top-left-radius:4px;border-bottom-left-radius:4px}.trip-destination.continues-after{border-top-right-radius:4px;border-bottom-right-radius:4px}.trip-destination.flush-start{border-top-left-radius:0;border-bottom-left-radius:0}.trip-destination.flush-end{border-top-right-radius:0;border-bottom-right-radius:0}.trip-span:hover .trip-resize-handle:before,.trip-span.is-resizing .trip-resize-handle:before{background:#2a9d8f8c;border-color:#2a9d8fb3}.trip-resize-handle:hover:before,.trip-resize-handle:active:before{background:#2a9d8f;border-color:#1b4965;transform:scaleY(1.08)}.trip-resize-handle:focus-visible{outline:2px solid rgba(42,157,143,.95);outline-offset:-2px;border-radius:6px}.trip-resize-start{margin-left:2px}.trip-resize-end{margin-right:2px}body.trip-resizing{cursor:ew-resize;-webkit-user-select:none;user-select:none}body.trip-resizing *{cursor:ew-resize}.days-row{position:relative;display:grid;grid-template-columns:repeat(7,1fr);gap:4px;z-index:1}.day-column{min-width:0;background:linear-gradient(180deg,#ffffff70,#1b49650a);border:1px dashed transparent;border-radius:var(--radius-sm);transition:background .15s,border-color .15s}.day-column.drop-target{background:linear-gradient(180deg,#2a9d8f38,#2a9d8f1a);border-color:#1f8d80}.day-column.today .day-header{color:var(--accent)}.day-column.today .day-number{background:var(--accent);color:#fff}.day-column.adjacent-month{background:#1b49650a;border-radius:var(--radius-sm)}.day-column.month-boundary{position:relative;box-shadow:inset 3px 0 0 var(--accent)}.day-column.month-boundary.adjacent-month{background:#1b496512}.day-month-chip{font-family:var(--font-body);font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:#1b496529;border-radius:var(--chip-radius);padding:.1rem .45rem;line-height:1.3}.day-header{display:flex;flex-direction:column;align-items:center;padding:.35rem .25rem;gap:.1rem;position:relative;z-index:5}.day-weekday{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);font-weight:600}.day-number{font-family:var(--font-display);font-size:1.1rem;font-weight:700;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:50%}.day-events{display:flex;flex-direction:column;gap:6px;padding:.25rem;min-height:60px}.add-event-btn{opacity:0;border:1px dashed var(--border);background:transparent;color:var(--ink-muted);border-radius:var(--radius-sm);padding:.35rem;cursor:pointer;font-size:1rem;transition:opacity .15s,border-color .15s}.day-column:hover .add-event-btn,.day-column:focus-within .add-event-btn{opacity:1}.add-event-btn:hover{border-color:var(--gold);color:var(--accent)}.event-card{position:relative;border:1.5px solid;border-radius:var(--timeline-radius);padding:.45rem .72rem;min-height:var(--timeline-bar-height);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:box-shadow .15s,transform .1s,filter .15s;filter:saturate(1.14) contrast(1.03)}.event-card:hover{box-shadow:0 6px 16px #1b283829;filter:saturate(1.2) contrast(1.04)}.event-card:active{cursor:grabbing}.event-card.dragging{box-shadow:var(--shadow)}.event-card-handle{position:absolute;top:4px;bottom:4px;width:12px;cursor:ew-resize;touch-action:none;display:flex;align-items:center;justify-content:center}.event-card-handle:before{content:"";width:4px;height:16px;border-radius:3px;background:#1b49657a;border:1px solid rgba(27,73,101,.3);transition:background .15s,border-color .15s,transform .15s}.event-card:hover .event-card-handle:before{background:#2a9d8f85;border-color:#2a9d8fa8}.event-card-handle:hover:before,.event-card-handle:active:before{background:#2a9d8f;border-color:#1b4965;transform:scaleY(1.08)}.event-card-handle-start{left:1px}.event-card-handle-end{right:1px}.event-card:focus-visible{outline:2px solid rgba(27,73,101,.95);outline-offset:1px}.event-visual{container-type:inline-size;container-name:event-card;display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .35rem;min-width:0;width:100%}.ev-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;line-height:0}.ev-icon-svg{width:.95rem;height:.95rem;flex-shrink:0}.ev-title{flex:1 1 auto;min-width:0;font-weight:600;font-size:.82rem;line-height:1.25;word-break:break-word}.event-card .ev-title{flex:1 1 auto;min-width:0}.span-event-body .event-visual{container-type:normal;container-name:none;flex:1 1 auto;min-width:0;flex-wrap:nowrap;width:auto}.span-event-body .ev-title{flex:0 0 auto;max-width:100%;overflow:hidden;white-space:nowrap;word-break:normal}.ev-title.is-fallback{font-style:italic;opacity:.9}.ev-time{flex:1 1 100%;display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;opacity:.8;min-width:0;margin-top:.05rem}.span-event-body .ev-time{flex:0 1 auto;min-width:0;margin-top:0;opacity:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ev-loc{flex:1 1 100%;font-size:.72rem;opacity:.75;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.span-event-body .ev-loc{flex:0 1 auto;min-width:0;max-width:40%}@container event-card (max-width: 130px){.ev-loc{display:none}}@container event-card (max-width: 96px){.ev-time{display:none}}@container event-card (max-width: 58px){.ev-title{display:none}}@container span-event (max-width: 240px){.ev-loc{display:none}}@container span-event (max-width: 200px){.ev-time{display:none}.ev-title{flex:1 1 auto;min-width:0;text-overflow:ellipsis}}@container span-event (max-width: 72px){.ev-title{display:none}}.drag-overlay{box-shadow:var(--shadow);cursor:grabbing;min-width:120px}.trip-destination.drag-overlay{min-width:140px;justify-content:center;box-shadow:var(--shadow)}.span-event{position:absolute;left:0;right:0;height:var(--timeline-bar-height);border:1.5px solid;border-radius:var(--timeline-radius);display:flex;align-items:center;cursor:grab;touch-action:none;overflow:hidden;margin:0 2px;transition:left .08s linear,width .08s linear,top .08s linear,opacity .1s linear,box-shadow .15s,filter .15s;filter:saturate(1.16) contrast(1.03)}.span-event.continues-before{border-top-left-radius:4px;border-bottom-left-radius:4px;margin-left:0}.span-event.continues-after{border-top-right-radius:4px;border-bottom-right-radius:4px;margin-right:0}.span-event.shared-start-day:before,.span-event.shared-end-day:after{content:"";position:absolute;top:2px;bottom:2px;width:1px;background:#0d233347;pointer-events:none}.span-event.shared-start-day:before{left:0}.span-event.shared-end-day:after{right:0}.span-event-body{container-type:inline-size;container-name:span-event;flex:1;display:flex;align-items:center;gap:.35rem;min-width:0;padding:0 .5rem;font-weight:600;font-size:.82rem;white-space:nowrap;overflow:hidden;cursor:grab;text-shadow:0 1px 0 rgba(255,255,255,.35)}.resize-handle{position:relative;width:var(--timeline-handle-width);align-self:stretch;cursor:ew-resize;flex-shrink:0;touch-action:none;display:flex;align-items:center;justify-content:center}.resize-handle:before{content:"";width:4px;height:var(--timeline-handle-grip-height);border-radius:3px;background:#1b496580;border:1px solid rgba(27,73,101,.36);transition:background .15s,transform .15s,box-shadow .15s}.span-event:hover .resize-handle:before,.span-event.resizing .resize-handle:before{background:#2a9d8f8c;border-color:#2a9d8fb3;box-shadow:0 0 0 2px #2a9d8f26}.resize-handle:hover:before,.resize-handle:active:before{background:#2a9d8f;border-color:#1b4965;transform:scaleY(1.08)}.resize-handle:focus-visible{outline:2px solid rgba(42,157,143,.95);outline-offset:-2px;border-radius:6px}.resize-start{margin-left:-2px}.resize-end{margin-right:-2px}.span-event.resizing{cursor:ew-resize;z-index:5;box-shadow:0 0 0 2px #2a9d8f80,var(--shadow);transition:box-shadow .15s}body.span-resizing{cursor:ew-resize;-webkit-user-select:none;user-select:none}body.span-resizing *{cursor:ew-resize}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1b283859;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:200;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-elevated);border-radius:var(--radius);box-shadow:0 24px 64px #1b28382e;width:min(100%,440px);max-height:90vh;overflow-y:auto;animation:slideUp .25s ease}.trip-edit-modal{width:min(100%,760px)}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.25rem 0}.modal-header h2{margin:0;font-family:var(--font-display);font-size:1.25rem;color:var(--accent)}.modal-form{padding:1rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:1rem}.modal-trip-context{margin:0;font-size:.86rem;color:var(--ink-muted)}.trip-delete-modal-body{padding:.7rem 1.25rem 1.1rem;display:flex;flex-direction:column;gap:.6rem}.trip-delete-modal-body p{margin:0}.trip-delete-warning{color:#7f1d1d;font-weight:600}.trip-edit-note{margin:0;font-size:.85rem;color:var(--ink-muted)}.destination-editor{border:1px solid var(--border);border-radius:var(--radius-sm);background:linear-gradient(180deg,#ffffffe6,#f7f3edcc);padding:.65rem;display:flex;flex-direction:column;gap:.55rem}.destination-editor-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.destination-editor-header h3{margin:0;font-size:.88rem;color:var(--accent)}.destination-add-btn{white-space:nowrap}.destination-list{display:flex;flex-direction:column;gap:.5rem}.destination-item{border:1px solid rgba(27,73,101,.18);border-radius:var(--radius-sm);background:#ffffffe0;padding:.45rem;display:flex;flex-direction:column;gap:.4rem}.destination-row{display:flex;gap:.45rem;align-items:flex-end}.destination-row-top{align-items:center}.destination-row-dates{display:grid;grid-template-columns:1fr 1fr}.destination-name-field{flex:1}.destination-actions{display:flex;gap:.35rem}.destination-color-dot{width:12px;height:12px;border-radius:var(--chip-radius);box-shadow:0 0 0 1px #1b496540;flex-shrink:0}.trip-extend-body,.stranded-events-body{padding:.65rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.7rem}.trip-extend-body p,.stranded-events-body p{margin:0}.trip-extend-warning{color:var(--ink-muted);font-size:.88rem}.trip-extend-actions{justify-content:flex-end;padding-top:.2rem}.stranded-events-list{margin:0;padding-left:1rem;display:flex;flex-direction:column;gap:.35rem}.stranded-events-list li{display:flex;flex-direction:column;gap:.04rem}.stranded-events-list span{color:var(--ink-muted);font-size:.84rem}.field{display:flex;flex-direction:column;gap:.35rem}.field span{font-size:.82rem;font-weight:600;color:var(--ink-muted)}.field input,.field select,.field textarea{padding:.55rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;color:var(--ink);min-height:var(--control-height)}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid rgba(27,73,101,.25);border-color:var(--accent)}.field-error{margin:-.35rem 0 0;font-size:.82rem;color:#b91c1c;font-weight:600}.field-hint{margin:-.35rem 0 0;font-size:.8rem;color:var(--ink-muted);font-style:italic}.location-field-control{position:relative;display:flex;flex-direction:column}.location-field-control input{width:100%}.location-searching{position:absolute;top:50%;right:.75rem;width:14px;height:14px;margin-top:-7px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:location-spin .8s linear infinite;pointer-events:none}@keyframes location-spin{to{transform:rotate(360deg)}}.location-suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;margin:0;padding:.25rem;list-style:none;max-height:220px;overflow-y:auto;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow)}.location-suggestion{display:block;width:100%;padding:.5rem .6rem;border:none;border-radius:8px;background:transparent;text-align:left;font-size:.85rem;color:var(--ink);cursor:pointer;white-space:normal;line-height:1.35}.location-suggestion:hover,.location-suggestion.highlighted{background:#2a9d8f24;color:var(--accent)}.location-map-link{align-self:flex-start;display:inline-block;width:fit-content;margin:.35rem 0 0;font-size:.8rem;font-weight:600;color:var(--accent);text-decoration:none}.location-map-link:hover{color:var(--accent-light);text-decoration:underline}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.activity-type-fieldset{border:1px solid var(--border);border-radius:var(--radius-sm);margin:0;padding:.65rem .75rem .75rem}.activity-type-fieldset legend{padding:0 .25rem;font-size:.82rem;font-weight:600;color:var(--ink-muted)}.activity-type-options{display:grid;grid-template-columns:1fr 1fr;gap:.45rem .75rem}.activity-type-option{display:flex;align-items:center;gap:.45rem;color:var(--ink)}.activity-type-option input{margin:0;accent-color:var(--accent)}.activity-type-option span{font-size:.9rem;font-weight:500}.optional-fields summary{cursor:pointer;font-weight:600;color:var(--accent);font-size:.9rem;padding:.25rem 0}.optional-fields[open] summary{margin-bottom:.75rem}.color-picker{display:flex;flex-wrap:wrap;gap:.5rem}.color-swatch{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .15s,box-shadow .15s}.color-swatch:hover{transform:scale(1.1)}.color-swatch.selected{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--ink)}.modal-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-top:.5rem}.modal-actions-right{display:flex;gap:.5rem;margin-left:auto}.trip-delete-actions{justify-content:flex-end;padding:0 1.25rem 1.25rem}@media(max-width:720px){.app-header{padding:1rem}.brand h1{font-size:1.25rem}.brand-logo{height:36px}.header-actions,.trip-switcher,.trip-switcher-group{width:100%}.trip-quick-actions{justify-content:flex-start;gap:.9rem}.trip-create-actions .btn{flex:1}.header-actions>.btn{flex:1;font-size:.85rem;padding:.45rem .6rem}.days-row,.span-layer{grid-template-columns:repeat(7,minmax(72px,1fr))}.field-row,.destination-row-dates,.activity-type-options{grid-template-columns:1fr}.week-row,.calendar{min-width:560px}}@media(min-width:721px){.week-row:nth-child(1){animation-delay:.05s}.week-row:nth-child(2){animation-delay:.1s}.week-row:nth-child(3){animation-delay:.15s}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.auth-card{width:min(100%,420px);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem 1.75rem}.auth-brand{text-align:center;margin-bottom:1.5rem}.auth-logo{display:block;height:80px;width:auto;margin:0 auto .5rem}.auth-brand h1{margin:.35rem 0 0;font-size:1.75rem;color:var(--accent)}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;color:var(--ink-muted)}.auth-form input{min-height:var(--control-height);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .75rem;background:#fff}.auth-submit{width:100%;margin-top:.25rem}.auth-error{margin:0;color:#b42318;font-size:.9rem}.auth-switch{margin:1.25rem 0 0;text-align:center;color:var(--ink-muted);font-size:.9rem}.auth-link{border:none;background:none;padding:0;color:var(--accent-light);font-weight:600;cursor:pointer;text-decoration:underline}.user-menu{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;min-width:120px}.user-email{font-size:.75rem;color:var(--ink-muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-sm{min-height:32px;padding:.25rem .65rem;font-size:.85rem}.modal-subtitle{margin:0;color:var(--ink-muted);font-size:.92rem;font-weight:400;line-height:1.45}.admin-badge{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#7a4b00;background:#fff4e5;border:1px solid #f0d7a8;border-radius:999px;padding:.15rem .5rem}.admin-page{min-height:100vh;display:flex;flex-direction:column}.admin-header .tagline{color:var(--ink-muted)}.admin-main{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.25rem;padding:1.25rem;max-width:1200px;width:100%;margin:0 auto}.admin-panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}.admin-panel h2{margin:0 0 .5rem;font-size:1.15rem;color:var(--accent)}.admin-note{margin:0 0 1rem;color:var(--ink-muted);font-size:.9rem;line-height:1.45}.admin-search{display:flex;gap:.5rem;margin-bottom:1rem}.admin-search input{flex:1;min-height:var(--control-height);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .75rem}.admin-user-list{display:flex;flex-direction:column;gap:.5rem;max-height:360px;overflow:auto}.admin-user-row{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;width:100%;text-align:left;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;padding:.75rem;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.admin-user-row:hover,.admin-user-row.is-selected{border-color:var(--accent-light);box-shadow:0 4px 12px #1b496514}.admin-user-email{font-weight:600;color:var(--ink)}.admin-user-meta{display:flex;flex-wrap:wrap;gap:.35rem}.admin-pill{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--accent);background:#eef6fa;border-radius:999px;padding:.15rem .45rem}.admin-pill-warn{color:#9a3412;background:#fff7ed}.admin-reset-form{display:flex;flex-direction:column;gap:.85rem}.admin-checkbox{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--ink-muted)}.admin-temp-password{margin-top:1rem;padding:1rem;border:1px solid #f0d7a8;border-radius:var(--radius-sm);background:#fffaf0}.admin-temp-password h3{margin:0 0 .35rem;font-size:1rem;color:#7a4b00}.admin-temp-password-row{display:flex;align-items:center;gap:.5rem;margin:.75rem 0}.admin-temp-password-value{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1rem;padding:.5rem .75rem;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);word-break:break-all}.change-password-modal{width:min(100%,460px)}.itinerary-modal{width:min(100%,720px);max-height:min(92vh,900px);display:flex;flex-direction:column;overflow:hidden}.itinerary-modal-header{flex-shrink:0}.itinerary-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1.25rem;border-bottom:1px solid var(--border)}.itinerary-trip-selector{display:flex;align-items:center;gap:.5rem;color:var(--ink-muted);font-size:.82rem;font-weight:600}.itinerary-trip-selector .trip-select{min-width:10rem}.itinerary-detail-toggle{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg)}.itinerary-detail-toggle button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--ink-muted);font:inherit;font-size:.88rem;padding:.4rem .75rem;cursor:pointer}.itinerary-detail-toggle button.is-active{background:var(--accent);color:#fff}.itinerary-toolbar-actions{display:flex;flex-wrap:wrap;gap:.4rem}.itinerary-toolbar-actions .btn,.itinerary-modal-footer .btn{display:inline-flex;align-items:center;gap:.35rem}.itinerary-print-root{flex:1;overflow-y:auto;padding:.75rem 1.25rem 1rem;background:linear-gradient(180deg,#fffdf9a6,#f7f3ede6)}.itinerary-print-heading{display:flex;align-items:center;gap:.85rem;padding:.35rem 0 .75rem;border-bottom:1px solid var(--border);margin-bottom:.9rem}.itinerary-logo{display:block;height:36px;width:auto;flex-shrink:0}.itinerary-print-heading h1{margin:0;font-family:var(--font-display);font-size:1.2rem;color:var(--ink)}.itinerary-print-heading p{margin:.15rem 0 0;font-size:.85rem;color:var(--ink-muted)}.itinerary-body{display:flex;flex-direction:column;gap:1.1rem}.itinerary-day{page-break-inside:avoid}.itinerary-day-heading{margin:0 0 .45rem;font-family:var(--font-display);font-size:1rem;color:var(--accent);border-bottom:1px solid var(--border);padding-bottom:.3rem}.itinerary-empty{margin:0;color:var(--ink-muted);font-size:.9rem;font-style:italic}.itinerary-list{list-style:none;margin:0;padding:0}.itinerary-item{padding:.5rem 0;border-bottom:1px solid rgba(27,40,56,.08)}.itinerary-item:last-child{border-bottom:none}.itinerary-item-main{display:grid;grid-template-columns:8.75rem minmax(0,1fr);gap:.65rem;align-items:baseline}.itinerary-time{font-size:.88rem;color:var(--ink-muted);font-variant-numeric:tabular-nums}.itinerary-title-row{display:inline-flex;align-items:center;gap:.4rem;min-width:0}.itinerary-icon{flex-shrink:0;color:var(--accent-light)}.itinerary-title{font-weight:600;color:var(--ink);overflow-wrap:anywhere}.itinerary-details{margin:.2rem 0 0 9.4rem;display:flex;flex-direction:column;gap:.15rem}.itinerary-meta{font-size:.86rem;color:var(--ink-muted)}.itinerary-notes{font-size:.88rem;color:var(--ink);white-space:pre-wrap}.itinerary-modal-footer{flex-shrink:0;padding:.85rem 1.25rem 1.15rem;border-top:1px solid var(--border);margin:0}.print-only{display:none}@media(max-width:560px){.itinerary-item-main{grid-template-columns:1fr;gap:.15rem}.itinerary-details{margin-left:0}}@media print{body{background:#fff!important;color:#000!important}.app>*:not(.itinerary-modal-backdrop),.no-print{display:none!important}.itinerary-modal-backdrop{position:static!important;inset:auto!important;background:transparent!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;padding:0!important;display:block!important;animation:none!important}.itinerary-modal{width:100%!important;max-height:none!important;box-shadow:none!important;border-radius:0!important;overflow:visible!important;background:#fff!important;animation:none!important}.itinerary-print-root{overflow:visible!important;padding:0!important;background:#fff!important}.itinerary-print-heading{display:flex!important;align-items:center;gap:1rem;border-bottom:1px solid #ccc;padding-bottom:.6rem;margin-bottom:1rem}.itinerary-logo{height:44px!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.itinerary-print-heading h1{margin:0 0 .25rem;font-size:1.5rem;color:#000}.itinerary-print-heading p{margin:0;color:#333}.itinerary-day-heading{color:#000;border-bottom-color:#ccc}.itinerary-time,.itinerary-meta,.itinerary-empty{color:#333}.itinerary-title,.itinerary-notes,.itinerary-icon{color:#000}.itinerary-item{border-bottom-color:#ddd}}
