.modal{background:0 0;border:none;width:100%;max-width:none;height:100%;max-height:none;padding:0;overflow:visible}.modal::backdrop{background:var(--scrim)}.modal-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);width:min(560px,100vw - 2rem);max-height:min(86vh,860px);box-shadow:var(--shadow-3);animation:modal-in .2s var(--ease);flex-direction:column;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.modal[data-size=sm] .modal-panel{width:min(420px,100vw - 2rem)}.modal[data-size=lg] .modal-panel{width:min(900px,100vw - 2rem)}.modal-head{align-items:center;gap:var(--s-3);padding:var(--s-4) var(--s-4) var(--s-3);border-bottom:1px solid var(--line);display:flex}.modal-head h2{font-size:var(--t-md);font-weight:var(--w-strong);letter-spacing:var(--track-tight);flex:1}.modal-body{padding:var(--s-4);gap:var(--s-3);flex-direction:column;display:flex}.modal-foot{justify-content:flex-end;gap:var(--s-2);padding:var(--s-3) var(--s-4);border-top:1px solid var(--line);background:var(--surface-2);border-radius:0 0 var(--r-lg) var(--r-lg);display:flex}.modal-foot .spacer{flex:1}.btn-destructive{background:var(--danger);border-color:var(--danger);color:var(--on-accent)}.btn-destructive:hover:not(:disabled){background:var(--danger-hover);border-color:var(--danger-hover)}.confirm-body{font-size:var(--t-sm);color:var(--ink-2);line-height:var(--lh-base)}@keyframes modal-in{0%{opacity:0;transform:translate(-50%,calc(10px - 50%))scale(.985)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@media (width<=700px){.modal-panel{border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-height:90vh;animation:sheet-in .24s var(--ease);top:auto;bottom:0;left:0;transform:none}.modal-foot{padding-bottom:calc(var(--s-3) + env(safe-area-inset-bottom));border-radius:0}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:none}}}.toast-host{left:50%;bottom:calc(var(--s-5) + env(safe-area-inset-bottom));z-index:var(--z-toast);gap:var(--s-2);pointer-events:none;flex-direction:column;width:min(440px,100vw - 2rem);display:flex;position:fixed;transform:translate(-50%)}.toast{align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-2) var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--ink);color:var(--paper);font-size:var(--t-sm);box-shadow:var(--shadow-3);pointer-events:auto;animation:toast-in .22s var(--ease);display:flex}.toast>span{flex:1}.toast[data-kind=error],.toast[data-kind=success]{border-left:3px solid var(--danger)}.toast[data-kind=success]{border-left-color:var(--ok)}.toast-close{border-radius:var(--r-sm);color:inherit;opacity:.7;padding:3px;display:inline-flex}.toast-close:hover{opacity:1;background:color-mix(in srgb, var(--paper) 15%, transparent)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}.map-host{z-index:var(--z-map);background:var(--sunken);position:absolute;inset:0}.leaflet-container{font-family:var(--font-body);background:var(--sunken)}.leaflet-control-attribution{background:color-mix(in srgb, var(--surface) 85%, transparent)!important;color:var(--muted)!important;font-size:var(--t-2xs)!important}.leaflet-control-attribution a{color:var(--muted)!important}.leaflet-bar a{background:var(--surface)!important;color:var(--ink)!important;border-color:var(--line)!important}.leaflet-bar a:hover{background:var(--surface-2)!important}.pin{border-radius:var(--r-full) var(--r-full) 3px var(--r-full);background:var(--surface);border:1.5px solid var(--line-strong);width:26px;height:26px;color:var(--ink-2);box-shadow:var(--shadow-2);transition:transform var(--dur-fast) var(--ease);place-items:center;display:grid;transform:rotate(45deg)}.pin>svg{transform:rotate(-45deg)}.pin:hover{transform:rotate(45deg)scale(1.12)}.pin[data-kind=accommodation]{background:var(--trip-fill);color:var(--on-trip);border-color:var(--surface)}.pin[data-kind=activity]{color:var(--accent);border-color:var(--accent)}.pin-shortlisted{box-shadow:0 0 0 2px var(--sun), var(--shadow-2)}.pin-booked{box-shadow:0 0 0 2px var(--ok), var(--shadow-2)}.leaflet-popup-content-wrapper{border-radius:var(--r-md)!important;background:var(--surface)!important;color:var(--ink)!important;box-shadow:var(--shadow-3)!important}.leaflet-popup-tip{background:var(--surface)!important}.leaflet-popup-content{font-size:var(--t-sm)!important;line-height:var(--lh-snug)!important;margin:.7rem .85rem!important}.pin-popup{gap:var(--s-1);flex-direction:column;width:210px;max-width:100%;display:flex}.pin-popup strong{font-size:var(--t-sm);font-weight:var(--w-strong)}.pin-popup p{color:var(--ink-2);font-size:var(--t-xs);margin:0!important}.pin-price{font-weight:var(--w-strong);font-variant-numeric:tabular-nums;color:var(--sun)}.pin-actions{gap:var(--s-1);margin-top:var(--s-1);flex-wrap:wrap;display:flex}.pin-actions button{padding:var(--s-1) var(--s-2);border:1px solid var(--line-strong);border-radius:var(--r-md);font-size:var(--t-xs);font-weight:var(--w-medium);color:var(--ink);background:var(--surface);cursor:pointer}.pin-actions button:first-child{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.pin-actions button:hover{filter:brightness(.95)}.route-num{border-radius:var(--r-full);background:var(--sun);width:18px;height:18px;color:var(--on-accent);font-size:var(--t-2xs);font-weight:var(--w-strong);box-shadow:0 0 0 2px var(--surface);place-items:center;display:grid}.map-search{top:var(--s-3);left:var(--s-3);z-index:var(--z-map-ui);width:min(340px, calc(100% - 2 * var(--s-3)));position:absolute}.map-search form{align-items:center;gap:var(--s-2);padding:0 var(--s-2) 0 var(--s-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-2);color:var(--muted);display:flex}.map-search-input{font-size:var(--t-sm);color:var(--ink);background:0 0;border:none;flex:1;padding:.55rem 0}.map-search-input:focus{outline:none}.map-results{margin-top:var(--s-2);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-2);max-height:46vh;overflow:hidden auto}.map-result{padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--line)}.map-result:last-child{border-bottom:none}.map-result-name{text-align:left;font-size:var(--t-sm);line-height:var(--lh-snug);color:var(--ink);margin-bottom:var(--s-2);display:block}.map-result-name:hover{color:var(--accent)}.map-result-actions{gap:var(--s-2);display:flex}.map-layers{top:var(--s-3);right:var(--s-3);z-index:var(--z-map-ui);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-2);flex-direction:column;gap:1px;padding:3px;display:flex;position:absolute}.layer-btn{border-radius:var(--r-sm);width:30px;height:30px;color:var(--faint);place-items:center;display:grid}.layer-btn:hover{background:var(--sunken)}.layer-btn[aria-pressed=true]{color:var(--ink);background:var(--sunken)}.map-hint{left:var(--s-3);bottom:var(--s-3);z-index:var(--z-map-ui);font-size:var(--t-2xs);color:var(--muted);background:color-mix(in srgb, var(--surface) 88%, transparent);border-radius:var(--r-sm);padding:.2rem .45rem;position:absolute}@media (width<=860px){.map-hint{display:none}.map-search{width:calc(100% - 3 * var(--s-3) - 36px)}}.consensus{align-items:center;gap:var(--s-2);display:flex}.consensus-bar{border-radius:var(--r-full);background:var(--sunken);min-width:42px;height:5px;transition:gap var(--dur) var(--ease);flex:1;gap:2px;display:flex;overflow:hidden}.consensus-seg{border-radius:var(--r-full);background:var(--line-strong);transition:background var(--dur) var(--ease), opacity var(--dur) var(--ease);flex:1}.consensus-seg[data-vote=yes]{background:var(--seg)}.consensus-seg[data-vote=no]{background:repeating-linear-gradient(-45deg, var(--line-strong) 0 3px, transparent 3px 6px)}.consensus-seg[data-vote=none]{background:var(--line);opacity:.7}.consensus[data-state=consensus] .consensus-bar{background:0 0;gap:0}.consensus[data-state=consensus] .consensus-seg{background:0 0}.consensus[data-state=consensus] .consensus-bar{background:var(--consensus)}.consensus-label{font-size:var(--t-xs);font-weight:var(--w-strong);color:var(--ok)}.consensus-label-split{-webkit-text-fill-color:var(--muted);color:var(--muted);font-weight:var(--w-medium);background:0 0}.consensus-actions{gap:1px;display:flex}.vote-btn{border-radius:var(--r-sm);width:26px;height:24px;color:var(--faint);transition:color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);justify-content:center;align-items:center;display:inline-flex}.vote-btn:hover{background:var(--sunken);color:var(--ink-2)}.vote-btn[data-active=true]{color:var(--ink);background:var(--sunken)}.vote-btn:first-child[data-active=true]{color:var(--ok)}.vote-btn:last-child[data-active=true]{color:var(--danger)}.comments{gap:var(--s-2);padding-top:var(--s-2);border-top:1px dashed var(--line);flex-direction:column;display:flex}.comment{gap:var(--s-2);align-items:flex-start;display:flex}.comment-body{flex:1;min-width:0}.comment-body p{font-size:var(--t-sm);line-height:var(--lh-snug)}.comment-meta{font-size:var(--t-2xs);color:var(--faint)}.comment-form{gap:var(--s-2);display:flex}.comment-form .input{font-size:var(--t-xs);padding:.35rem .55rem}.settings-h{font-size:var(--t-sm);font-weight:var(--w-strong);color:var(--ink)}.settings-toggle{gap:var(--s-3);padding:var(--s-2) 0;border-bottom:1px solid var(--line)}.settings-toggle:last-child{border-bottom:none}.settings-toggle input[type=checkbox]{flex-shrink:0;width:18px;height:18px}.settings-toggle-label{font-weight:var(--w-medium);font-size:var(--t-sm);flex-direction:column;flex:1;gap:.2rem;display:flex}.settings-form{flex-wrap:wrap}.jobs-list{gap:var(--s-1);flex-direction:column;display:flex}.jobs-list-row{gap:var(--s-2);padding:var(--s-1) 0;border-bottom:1px solid var(--line);font-size:var(--t-xs);flex-wrap:wrap}.jobs-list-row:last-child{border-bottom:none}.jobs-list-name{font-weight:var(--w-strong);font-size:var(--t-sm);min-width:9rem}.jobs-list-status{background:var(--line);color:var(--muted);border-radius:999px;padding:.1rem .5rem}.jobs-list-status--bad{background:var(--danger-bg);color:var(--danger)}.chat{gap:var(--s-2)}.bubble{border-radius:var(--r-md);background:var(--sunken);max-width:85%;font-size:var(--t-sm);align-self:flex-start;padding:.45rem .6rem}.bubble-mine{background:var(--accent-bg);align-self:flex-end}.bubble-author{font-size:var(--t-2xs);font-weight:var(--w-strong)}.bubble p{line-height:var(--lh-snug);white-space:pre-wrap;overflow-wrap:anywhere}.bubble-time{font-size:var(--t-2xs);color:var(--faint)}.bubble-edited{color:var(--faint)}.chat-day{align-self:stretch;align-items:center;gap:var(--s-3);margin:var(--s-2) 0;font-size:var(--t-2xs);color:var(--faint);display:flex}.chat-day:before,.chat-day:after{content:"";background:var(--line);flex:1;height:1px}.bubble a{color:var(--accent);overflow-wrap:anywhere}.chat-input{resize:none;line-height:var(--lh-snug);max-height:120px}.bubble{position:relative}.bubble-actions{opacity:0;transition:opacity var(--dur-fast) var(--ease);gap:2px;display:flex;position:absolute;top:2px;right:4px}.bubble:hover .bubble-actions,.bubble:focus-within .bubble-actions{opacity:1}@media (hover:none){.bubble-actions{opacity:1}}.bubble-actions .btn-icon{color:var(--muted);padding:2px}.bubble-actions .btn-icon:hover{color:var(--ink)}.bubble-edit{gap:var(--s-1);flex-direction:column;display:flex}.bubble-edit .input{font-size:var(--t-sm)}.bubble-edit-actions{gap:var(--s-1);justify-content:flex-end;display:flex}.chat-room{flex-direction:column;flex:1;min-height:0;display:flex}.chat-layout{gap:var(--s-3);grid-template-columns:190px 1fr;height:min(60vh,520px);min-height:0;display:grid}.chat-rooms{border-right:1px solid var(--line);padding-right:var(--s-2);flex-direction:column;gap:2px;min-height:0;display:flex;overflow-y:auto}.chat-room-btn{gap:0 var(--s-2);text-align:left;padding:.4rem var(--s-2);border-radius:var(--r-sm);cursor:pointer;color:inherit;background:0 0;border:none;grid-template-columns:1fr auto;display:grid}.chat-room-btn:hover{background:var(--sunken)}.chat-room-btn[aria-selected=true]{background:var(--sunken);font-weight:var(--w-strong)}.chat-room-label{font-size:var(--t-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-room-hint{font-size:var(--t-2xs);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;grid-column:1;overflow:hidden}.chat-dot,.chat-badge{border-radius:var(--r-full);background:var(--accent);min-width:18px;color:var(--on-accent);font-size:var(--t-2xs);font-weight:var(--w-strong);text-align:center;grid-row:1/span 2;align-self:center;padding:0 5px;line-height:18px}.chat-trigger{position:relative}.chat-trigger .chat-badge{pointer-events:none;position:absolute;top:-2px;right:-4px}@media (width<=720px){.chat-layout{grid-template-rows:auto 1fr;grid-template-columns:1fr;height:70vh}.chat-rooms{border-right:none;border-bottom:1px solid var(--line);padding:0 0 var(--s-2);flex-direction:row;overflow-x:auto}.chat-room-btn{align-items:center;gap:var(--s-1);flex:none;display:flex}.chat-room-hint{display:none}}.plan-card{align-items:stretch;gap:var(--s-2);padding:var(--s-3) var(--s-2) var(--s-3) var(--s-3);border-bottom:1px solid var(--line);transition:background var(--dur-fast) var(--ease);display:flex;position:relative}.plan-card:hover{background:var(--surface)}.plan-card-active:before{content:"";left:0;top:var(--s-3);bottom:var(--s-3);background:var(--ok);width:2px;position:absolute}.plan-card-main{text-align:left;flex:1;min-width:0}.plan-card-head{align-items:center;gap:var(--s-2);display:flex}.plan-card-head h3{font-size:var(--t-md);font-weight:var(--w-strong);letter-spacing:var(--track-tight)}.plan-card-meta{font-size:var(--t-xs);color:var(--ink-2);margin-top:2px}.plan-card-budget{align-items:center;gap:var(--s-1);margin-top:var(--s-2);font-size:var(--t-sm);color:var(--muted);display:flex}.plan-card-budget strong{color:var(--sun);font-weight:var(--w-strong)}.plan-card-side{justify-content:space-between;gap:var(--s-2);flex-direction:column;flex-shrink:0;width:140px;display:flex}.plan-detail-head{align-items:center;gap:var(--s-2);padding:var(--s-3);border-bottom:1px solid var(--line);display:flex}.plan-detail-title{font-size:var(--t-md);font-weight:var(--w-strong);letter-spacing:var(--track-tight)}.budget-strip{gap:var(--s-3);padding:var(--s-3);background:var(--surface-2);border-bottom:1px solid var(--line);grid-auto-columns:1fr;grid-auto-flow:column;display:grid}.budget-strip>div{flex-direction:column;gap:1px;display:flex}.budget-strip strong{font-size:var(--t-md);font-weight:var(--w-strong);letter-spacing:-.02em}.day{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);overflow:hidden}.day-head{align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);background:var(--accent-bg);border-bottom:1px solid var(--line);display:flex}.day-date{align-items:baseline;gap:var(--s-2);flex:1;display:flex}.day-weekday{font-size:var(--t-xs);font-weight:var(--w-medium);color:var(--accent)}.day-num{font-size:var(--t-sm);font-weight:var(--w-strong);color:var(--ink)}.day-budget{font-size:var(--t-xs);font-weight:var(--w-strong);color:var(--sun);font-variant-numeric:tabular-nums}.day-tz{font-size:var(--t-xs);color:var(--muted);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:none;align-items:center;gap:.3rem;padding:.1rem .3rem;display:inline-flex}.day-tz:hover{background:var(--surface);color:var(--ink-2)}.day-tz-picker{padding:.3rem var(--s-3);background:var(--surface-2);border-bottom:1px solid var(--line)}.day-tz-picker select{width:100%;font-size:var(--t-xs)}.day-body{padding:var(--s-2) var(--s-3) var(--s-3);gap:var(--s-2);flex-direction:column;display:flex}.day-slot{gap:var(--s-1);flex-wrap:wrap;align-items:center;display:flex}.slot-chip{align-items:center;gap:var(--s-1);padding:2px var(--s-1) 2px var(--s-2);border-radius:var(--r-sm);background:var(--sunken);font-size:var(--t-xs);max-width:100%;display:inline-flex}.slot-name{text-overflow:ellipsis;white-space:nowrap;max-width:190px;overflow:hidden}.slot-price{font-weight:var(--w-strong);font-variant-numeric:tabular-nums;color:var(--sun)}.slot-x{border-radius:var(--r-full);color:var(--faint);padding:2px;display:inline-flex}.slot-x:hover{color:var(--danger);background:var(--danger-bg)}.slot-add{align-items:center;gap:var(--s-1);padding:2px var(--s-2);border:1px dashed var(--line-strong);border-radius:var(--r-sm);font-size:var(--t-xs);color:var(--muted);transition:all var(--dur-fast) var(--ease);display:inline-flex}.slot-add:hover{color:var(--ink);border-color:var(--muted);background:var(--surface-2)}.slot-add-wide{border-radius:var(--r-sm);justify-content:center;width:100%}.day-items{flex-direction:column;gap:1px;list-style:none;display:flex}.day-item{align-items:center;gap:var(--s-2);border-radius:var(--r-sm);font-size:var(--t-xs);color:var(--ink-2);cursor:pointer;padding:.3rem .4rem;display:flex}.day-item:hover{background:var(--sunken)}.day-item-time{font-weight:var(--w-strong);font-variant-numeric:tabular-nums;width:38px;color:var(--muted);flex-shrink:0}.day-item-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.day-item-price{font-weight:var(--w-strong);font-variant-numeric:tabular-nums}.day-item-expense{opacity:0;flex-shrink:0;transition:opacity .1s}.day-item:hover .day-item-expense,.day-item-expense:focus-visible{opacity:1}.day-notes{border:none;border-top:1px dashed var(--line);width:100%;padding:var(--s-2) 0 0;font-size:var(--t-xs);color:var(--ink-2);resize:vertical;line-height:var(--lh-snug);background:0 0}.day-notes:focus{border-top-color:var(--accent);outline:none}.day-notes::placeholder{color:var(--faint)}.picker{z-index:var(--z-modal);background:var(--scrim);padding:var(--s-4);place-items:center;display:grid;position:fixed;inset:0}.picker-panel{gap:var(--s-2);width:min(420px,100%);max-height:60vh;padding:var(--s-3);background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-3);flex-direction:column;display:flex}.picker-list{flex-direction:column;gap:1px;display:flex}.picker-row{justify-content:space-between;gap:var(--s-2);padding:var(--s-2);border-radius:var(--r-sm);font-size:var(--t-sm);text-align:left;align-items:center;display:flex}.picker-row:hover{background:var(--sunken)}.picker-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.picker-meta{align-items:center;gap:var(--s-2);flex-shrink:0;display:inline-flex}.picker-votes{font-size:var(--t-xs);color:var(--ok);align-items:center;gap:2px;display:inline-flex}.picker-new{justify-content:flex-start;gap:var(--s-2);color:var(--accent);font-weight:var(--w-medium);border-top:1px solid var(--line);margin-top:var(--s-1);border-radius:0}.picker-nights{align-items:center;gap:var(--s-2);font-size:var(--t-sm);color:var(--ink-2);display:flex}.picker-nights input{width:4.5rem;padding:var(--s-1) var(--s-2);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface)}.slot-link{font:inherit;color:inherit;text-align:left;cursor:pointer;padding:0}.slot-link:hover{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.slot-grip{color:var(--faint);cursor:grab;border-radius:var(--r-sm);display:inline-flex}.slot-grip:focus-visible{color:var(--accent)}.slot-chip[draggable=true]{cursor:grab}.slot-chip[data-dragging=true]{opacity:.45}.day-map{padding:var(--s-1);color:var(--muted)}.day-map[aria-pressed=true]{color:var(--on-accent);background:var(--accent)}.compare{overflow-x:auto}.compare table{border-collapse:collapse;width:100%;font-size:var(--t-sm)}.compare th,.compare td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.5rem .65rem}.compare thead th{font-weight:var(--w-strong);border-bottom:2px solid var(--line-strong)}.compare tbody th{color:var(--muted);font-weight:var(--w-medium);white-space:nowrap}.compare-best{font-weight:var(--w-strong);color:var(--ok)}.itin-head{padding-bottom:var(--s-2);border-bottom:1px solid var(--line)}.itin-head-top{justify-content:space-between;align-items:flex-start;gap:var(--s-2);display:flex}.itin-head-actions{gap:var(--s-1);flex-shrink:0;display:flex}.itin-title{font-family:var(--font-display);font-size:var(--t-lg);font-weight:var(--w-strong);letter-spacing:-.025em}.itin-budget{font-size:var(--t-sm);color:var(--ink-2);margin-top:var(--s-2);align-items:center;gap:.35rem;display:flex}.itin-day{padding:var(--s-3) 0;border-bottom:1px solid var(--line);break-inside:avoid}.itin-day-head{margin-bottom:var(--s-2);justify-content:space-between;display:flex}.itin-day-date{font-size:var(--t-md);font-weight:var(--w-strong);letter-spacing:var(--track-tight);color:var(--accent)}.itin-row{gap:var(--s-2);font-size:var(--t-sm);grid-template-columns:42px 18px 1fr;align-items:start;padding:.3rem 0;display:grid}.itin-time{font-variant-numeric:tabular-nums;font-weight:var(--w-strong);color:var(--muted);font-size:var(--t-xs);padding-top:1px}.itin-row strong{font-weight:var(--w-strong)}.itin-bell{vertical-align:baseline;margin-left:var(--s-1);color:var(--muted);display:inline-flex}.itin-notes{margin-top:var(--s-2);padding-left:calc(42px + 18px + 2 * var(--s-2));font-size:var(--t-xs);color:var(--muted);white-space:pre-wrap}.feed-row{gap:var(--s-2);padding:var(--s-2) 0;border-bottom:1px solid var(--line);display:flex}.feed-body{flex:1;min-width:0}.feed-body p{font-size:var(--t-sm);line-height:var(--lh-snug)}.feed-summary{color:var(--ink-2)}.feed-time{font-size:var(--t-2xs);color:var(--faint)}.item-icon{color:var(--muted);padding-top:1px;display:inline-flex}.boot{height:100dvh;color:var(--muted);font-size:var(--t-sm);place-items:center;display:grid}.itin-free{font-size:var(--t-sm);color:var(--faint);padding:var(--s-1) 0}.itin-day[data-today=true]{background:var(--accent-bg);margin-inline:calc(var(--s-3) * -1);padding-inline:var(--s-3);border-radius:var(--r-md)}.itin-day[data-today=true] .itin-day-date:after{content:"Heute";margin-left:var(--s-2);padding:1px var(--s-2);border-radius:var(--r-full);background:var(--accent);color:var(--on-accent);font-size:var(--t-2xs);font-weight:var(--w-medium);letter-spacing:0;vertical-align:middle}.itin-row-click{cursor:pointer;border-radius:var(--r-sm)}.itin-row-click:hover{background:var(--surface)}.itin-row-click:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.itin-desc{white-space:pre-line}.itin-links{gap:var(--s-1) var(--s-3);margin-top:var(--s-1);font-size:var(--t-xs);flex-wrap:wrap;display:flex}.itin-links a{align-items:center;gap:3px;display:inline-flex}.itin-name-link{font:inherit;color:inherit;text-align:left;cursor:pointer;padding:0}.itin-name-link:hover{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.day-grid{gap:var(--s-2);flex-direction:column;display:flex}@container sidebar (width>=660px){.day-grid{align-items:start;gap:var(--s-4) var(--s-3);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.itin-day[data-today=true]{margin-inline:0}}.members{gap:var(--s-3);flex-direction:column;display:flex}.member-list{flex-direction:column;gap:1px;display:flex}.member-row{align-items:center;gap:var(--s-2);padding:var(--s-2) 0;border-bottom:1px solid var(--line);display:flex}.member-row:last-child{border-bottom:none}.member-name{align-items:baseline;gap:var(--s-2);min-width:0;font-size:var(--t-sm);font-weight:var(--w-strong);text-overflow:ellipsis;white-space:nowrap;flex:1;display:flex;overflow:hidden}.member-tag{font-size:var(--t-xs);font-weight:var(--w-medium);color:var(--muted);background:var(--sunken);padding:1px var(--s-2);border-radius:var(--r-full)}.member-add{gap:var(--s-2);display:flex}.member-add select{flex:1;min-width:0}.member-invite{gap:var(--s-2);flex-direction:column;display:flex}.member-invite .btn{align-self:flex-start;gap:var(--s-2)}.invite-list{gap:var(--s-2);flex-direction:column;display:flex}.invite-row{align-items:center;gap:var(--s-1);display:flex}.invite-url{min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--t-xs);color:var(--muted);flex:1}.app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto var(--topbar-h) 1fr;height:100dvh;display:grid;overflow:hidden}.offline-banner{grid-row:1}.topbar{grid-row:2}.main{grid-row:3}.offline-banner{padding:var(--s-1) var(--s-4);background:var(--warn-bg,var(--sunken));color:var(--warn);font-size:var(--t-xs);font-weight:var(--w-strong);text-align:center}.topbar{align-items:center;gap:var(--s-3);padding:0 var(--s-4);background:var(--surface);border-bottom:1px solid var(--line);z-index:var(--z-sheet);min-width:0;display:flex}.topbar>*{flex-shrink:0}.brand{white-space:nowrap;font-size:var(--t-md);letter-spacing:-.02em;align-items:baseline;gap:1px;display:inline-flex}.brand-co{font-weight:var(--w-regular);color:var(--muted)}.brand-mes{font-weight:var(--w-strong);color:var(--ink)}.brand-dot{font-weight:var(--w-strong);color:var(--accent);margin-inline:1px}.topbar-sep{background:var(--line);width:1px;height:22px}.vac-switch{appearance:none;padding:var(--s-1) var(--s-6) var(--s-1) var(--s-2);border-radius:var(--r-md);background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23998f82' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right var(--s-2) center;font-size:var(--t-sm);font-weight:var(--w-strong);text-overflow:ellipsis;border:1px solid #0000;flex-shrink:1;min-width:0;max-width:220px}.vac-switch:hover{border-color:var(--line);background-color:var(--surface-2)}.app:has(.main[data-sidebar=open]) .topbar{background:var(--trip-fill);color:var(--on-trip);border-bottom-color:#0000}.app:has(.main[data-sidebar=open]) .topbar :is(.brand-co,.brand-mes,.brand-dot,.btn-icon,.user-badge-gear){color:var(--on-trip-muted)}.app:has(.main[data-sidebar=open]) .topbar .brand-dot{color:var(--on-trip)}.app:has(.main[data-sidebar=open]) .topbar .btn-icon:hover:not(:disabled){color:var(--on-trip);background:var(--on-trip-wash)}.app:has(.main[data-sidebar=open]) .topbar-sep{background:var(--on-trip-muted);opacity:.4}.app:has(.main[data-sidebar=open]) .vac-switch{color:var(--on-trip);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23fbf6ee' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}.app:has(.main[data-sidebar=open]) .vac-switch:hover{background-color:var(--on-trip-wash);border-color:#0000}.app:has(.main[data-sidebar=open]) .conn-dot{box-shadow:0 0 0 2px var(--trip-fill)}.vac-switch option,.vac-switch optgroup{color:var(--ink);background:var(--surface);font-family:var(--font-body)}.user-badge{align-items:center;gap:var(--s-2);display:inline-flex}.user-badge-gear{color:var(--muted);opacity:0;transition:opacity var(--dur-fast) var(--ease)}.user-badge:hover .user-badge-gear,.user-badge:focus-visible .user-badge-gear{opacity:1}.avatar{border-radius:var(--r-full);width:26px;height:26px;color:var(--on-person);font-size:var(--t-2xs);font-weight:var(--w-strong);flex-shrink:0;place-items:center;display:grid}.avatar-sm{width:20px;height:20px;font-size:var(--t-2xs)}.user-name{font-size:var(--t-sm);font-weight:var(--w-medium)}.conn-dot{border-radius:var(--r-full);background:var(--ok);flex-shrink:0;width:7px;height:7px}.conn-dot[data-off=true]{background:var(--warn)}.main{min-width:0;min-height:0;transition:grid-template-columns var(--dur) var(--ease);grid-template-columns:1fr 0;display:grid;position:relative}.main[data-sidebar=open]{grid-template-columns:1fr min(var(--sidebar-w), calc(100% - 320px))}.main[data-resizing=true]{cursor:col-resize;-webkit-user-select:none;user-select:none;transition:none}.main[data-resizing=true] iframe,.main[data-resizing=true] .leaflet-container{pointer-events:none}.map-area{min-width:0;position:relative}.sidebar{background:var(--paper);border-left:1px solid var(--line);flex-direction:column;min-width:0;display:flex;position:relative;overflow:hidden;container:sidebar/inline-size}.sidebar-tabs{gap:var(--s-1);padding:var(--s-2) var(--s-3) 0;background:var(--surface);border-bottom:1px solid var(--line);scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-shrink:0;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 18px),#0000 100%);mask-image:linear-gradient(90deg,#000 calc(100% - 18px),#0000 100%)}.sidebar-tabs::-webkit-scrollbar{display:none}@container sidebar (width>=640px){.sidebar-tabs{-webkit-mask-image:none;mask-image:none}}.sidebar-resizer{z-index:2;cursor:col-resize;touch-action:none;width:9px;position:absolute;inset:0 auto 0 0}.sidebar-resizer:after{content:"";width:2px;transition:background var(--dur-fast) var(--ease);background:0 0;position:absolute;inset:0 auto 0 0}.sidebar-resizer:hover:after,.sidebar-resizer:focus-visible:after,.main[data-resizing=true] .sidebar-resizer:after{background:var(--accent)}.sidebar-resizer:focus-visible{outline:none}.tab{align-items:center;gap:var(--s-1);padding:var(--s-2);font-size:var(--t-sm);font-weight:var(--w-medium);color:var(--muted);transition:color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);border-bottom:2px solid #0000;flex-shrink:0;margin-bottom:-1px;display:inline-flex}.tab:hover{color:var(--ink-2)}.tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.tab-count{font-size:var(--t-2xs);font-weight:var(--w-medium);color:var(--faint)}.tab[aria-selected=true] .tab-count{color:var(--accent)}.watches{flex-direction:column;flex:1;min-height:0;display:flex}.filters.watches-sub{padding:var(--s-3) var(--s-3) 0;flex-shrink:0}.panel{flex-direction:column;flex:1;min-height:0;display:flex}.panel-body{min-height:0;padding:var(--s-3);gap:var(--s-2);flex-direction:column;flex:1;display:flex}.panel-body>*{flex-shrink:0}.panel-foot{padding:var(--s-3);border-top:1px solid var(--line);background:var(--surface);gap:var(--s-2);display:flex}.panel-foot>.btn-primary{flex:1}.panel-loading{padding:var(--s-3);color:var(--muted);flex:1}.home{z-index:var(--z-overlay);background:var(--paper);padding:var(--s-7) var(--s-5);position:absolute;inset:0;overflow-y:auto}.home-inner{max-width:940px;margin:0 auto}.home-masthead{margin-bottom:var(--s-6)}.home-masthead h1{font-size:clamp(2rem, 6vw, var(--t-2xl));letter-spacing:-.035em}.home-masthead p{color:var(--muted);font-size:var(--t-sm);margin-top:var(--s-2)}.home-group{margin-bottom:var(--s-7)}.home-group-head{align-items:center;gap:var(--s-3);margin-bottom:var(--s-4);padding-bottom:var(--s-2);border-bottom:1px solid var(--line);display:flex}.home-group-title{font-size:var(--t-md);font-weight:var(--w-strong);letter-spacing:var(--track-tight)}.group-stack{align-items:center;margin-right:auto;display:inline-flex}.group-stack .avatar{box-shadow:0 0 0 2px var(--paper)}.group-stack .avatar+.avatar{margin-left:-6px}.home-hint{color:var(--muted);font-size:var(--t-sm);margin-bottom:var(--s-6)}.home-hint .link-btn{align-items:center;gap:var(--s-1);display:inline-flex}.vac-grid{gap:var(--s-6) var(--s-5);grid-template-columns:repeat(auto-fill,minmax(272px,1fr));display:grid}.trip-card{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);flex-direction:column;display:flex;overflow:hidden}.trip-card:hover,.trip-card:focus-visible{border-color:var(--line-strong);box-shadow:var(--shadow-2);transform:translateY(-2px)}.trip-card-cover{justify-content:space-between;align-items:flex-start;gap:var(--s-4);min-height:136px;padding:var(--s-4);background:var(--trip-fill);color:var(--on-trip);flex-direction:column;display:flex}.trip-card-countdown{padding:2px var(--s-2);border-radius:var(--r-full);background:var(--on-trip-wash);font-size:var(--t-xs);font-weight:var(--w-medium)}.trip-card-title{font-size:var(--t-xl);font-weight:var(--w-strong);letter-spacing:-.025em;line-height:var(--lh-tight);overflow-wrap:anywhere;margin-top:auto}.trip-card-body{padding:var(--s-3) var(--s-4) var(--s-4)}.vac-meta{gap:var(--s-1);font-size:var(--t-sm);color:var(--muted);flex-direction:column;display:flex}.vac-meta>span{align-items:center;gap:var(--s-2);display:inline-flex}.trip-card-new{justify-content:center;align-items:center;gap:var(--s-2);min-height:220px;color:var(--muted);font-size:var(--t-sm);font-weight:var(--w-medium);background:0 0;border-style:dashed}.trip-card-new:hover{color:var(--accent);border-color:var(--accent);box-shadow:none;transform:none}.vac-archive{margin-top:var(--s-5);gap:var(--s-3);flex-direction:column;display:flex}.vac-archive-year{border-top:1px solid var(--line);padding-top:var(--s-3)}.vac-archive-year summary{align-items:center;gap:var(--s-2);cursor:pointer;font-weight:var(--w-strong);font-size:var(--t-sm);color:var(--ink-2);list-style:none;display:inline-flex}.vac-archive-year summary::-webkit-details-marker{display:none}.vac-archive-year .vac-grid{margin-top:var(--s-4)}.vac-archive-year .trip-card-cover{filter:saturate(.3)}.vac-archive-year .trip-card:hover .trip-card-cover{filter:none}.item-card{padding:var(--s-3) var(--s-2) var(--s-3) var(--s-3);border-bottom:1px solid var(--line);gap:var(--s-2);transition:background var(--dur-fast) var(--ease);flex-direction:column;display:flex;position:relative}.item-card:hover{background:var(--surface)}.item-card:before{content:"";left:0;top:var(--s-3);bottom:var(--s-3);background:var(--author,transparent);width:2px;position:absolute}.item-head{align-items:flex-start;gap:var(--s-2);display:flex}.item-title{font-size:var(--t-base);font-weight:var(--w-medium);line-height:var(--lh-snug);flex:1}.item-sub{font-size:var(--t-xs);color:var(--muted)}.item-actions{opacity:0;transition:opacity var(--dur-fast) var(--ease);gap:1px;display:flex}.item-card:hover .item-actions,.item-card:focus-within .item-actions{opacity:1}@media (hover:none){.item-actions{opacity:1}}.item-tags{gap:var(--s-1) var(--s-2);flex-wrap:wrap;align-items:center;display:flex}.price{font-size:var(--t-sm);font-weight:var(--w-strong);color:var(--sun)}.price-basis{font-size:var(--t-xs);font-weight:var(--w-regular);color:var(--muted)}.status-dot{border-radius:var(--r-full);background:var(--line-strong);flex-shrink:0;width:6px;height:6px}.status-shortlisted{background:var(--warn)}.status-booked{background:var(--ok)}.filters{gap:var(--s-1) var(--s-3);padding:var(--s-1) 0;flex-wrap:wrap;display:flex}.filter-chip{padding:var(--s-1) 0;font-size:var(--t-sm);font-weight:var(--w-medium);color:var(--muted);transition:color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);border-bottom:1.5px solid #0000}.filter-chip:hover{color:var(--ink-2)}.filter-chip[aria-pressed=true]{color:var(--ink);border-bottom-color:var(--accent)}.empty{align-items:center;gap:var(--s-2);padding:var(--s-6) var(--s-4);text-align:center;color:var(--muted);flex-direction:column;display:flex}.empty-title{font-size:var(--t-base);font-weight:var(--w-strong);color:var(--ink-2)}.empty p{font-size:var(--t-sm);max-width:30ch;line-height:var(--lh-snug)}.mobile-nav{display:none}@media (width<=860px){.main[data-sidebar=open]{grid-template-columns:1fr}.sidebar-resizer{display:none}.sidebar{z-index:var(--z-sheet);transition:transform var(--dur) var(--ease);border-left:none;position:absolute;inset:0 0 56px;transform:translateY(100%)}.sidebar[data-mobile-open=true]{transform:none}.mobile-nav{z-index:var(--z-nav);height:calc(56px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line);display:flex;position:absolute;bottom:0;left:0;right:0}.mobile-nav button{font-size:var(--t-2xs);font-weight:var(--w-medium);color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;display:flex}.mobile-nav button[aria-selected=true]{color:var(--accent)}.topbar{padding:0 var(--s-2) 0 var(--s-3);gap:var(--s-1)}.topbar .btn-icon{padding:var(--s-1)}.app:has(.main[data-sidebar=open]) .brand{display:none}.vac-switch{font-size:var(--t-base)}.user-name,.topbar-sep,.conn-dot{display:none}.vac-switch{max-width:170px}.home{padding:var(--s-5) var(--s-4)}}@media print{.topbar,.map-area,.sidebar-tabs,.mobile-nav,.offline-banner,.no-print{display:none!important}.main,.main[data-sidebar=open]{height:auto;display:block}.sidebar{width:auto;height:auto;display:block;position:static;transform:none}.panel,.panel-body{height:auto;padding:0;display:block;overflow:visible}}:is(.panel-body:has(>.item-card),.panel-body:has(>.plan-card)){gap:0}.member-stack{border-radius:var(--r-full);align-items:center;padding:2px;display:inline-flex}.member-stack .avatar{box-shadow:0 0 0 2px var(--surface)}.member-stack .avatar+.avatar{margin-left:-6px}.member-stack:hover .avatar{box-shadow:0 0 0 2px var(--surface-2)}.member-stack-more{margin-left:var(--s-1);font-size:var(--t-xs);color:var(--muted)}.app:has(.main[data-sidebar=open]) .member-stack .avatar{box-shadow:0 0 0 2px var(--trip-fill)}.app:has(.main[data-sidebar=open]) .member-stack-more{color:var(--on-trip-muted)}.more-sheet{display:none}@media (width<=860px){.more-sheet{right:var(--s-2);bottom:calc(56px + env(safe-area-inset-bottom) + var(--s-2));z-index:var(--z-nav);min-width:220px;padding:var(--s-1);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-3);flex-direction:column;display:flex;position:absolute}.more-item{align-items:center;gap:var(--s-3);padding:var(--s-3);border-radius:var(--r-md);font-size:var(--t-sm);font-weight:var(--w-medium);text-align:left;display:flex}.more-item:hover{background:var(--surface-2)}.more-item .tab-count{margin-left:auto}.member-stack{display:none}}.sort-select{padding:2px var(--s-5) 2px var(--s-2);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b6b73' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right var(--s-1) center;appearance:none;font-size:var(--t-xs);color:var(--ink-2);margin-left:auto}.day-pick{border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;max-height:300px;display:flex;overflow-y:auto}.day-pick-row{gap:var(--s-2);padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--line);font-size:var(--t-sm);cursor:pointer;grid-template-columns:6.5rem 1fr;align-items:baseline;display:grid}.day-pick-row:last-child{border-bottom:none}.day-pick-row:hover{background:var(--surface-2)}.day-pick-row[data-checked=true]{background:var(--accent-bg);box-shadow:inset 2px 0 0 var(--accent)}.day-pick-row:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:-2px}.day-pick-date{font-weight:var(--w-strong);white-space:nowrap}.day-pick-info{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-2);overflow:hidden}.item-title-link{text-align:left;font:inherit;font-weight:var(--w-medium);color:inherit;cursor:pointer;padding:0;display:block}.item-title-link:hover{color:var(--accent)}.item-card[data-flash=true]{background:var(--accent-bg)}.item-card{scroll-margin:var(--s-4)}.comment-btn{align-items:center;gap:2px;display:inline-flex}.comment-count{font-size:var(--t-2xs);font-weight:var(--w-medium);color:var(--accent)}.item-card:has(.comment-btn[data-has=true]) .item-actions{opacity:.7}.item-card:has(.comment-btn[data-has=true]):hover .item-actions{opacity:1}.comment-btn[data-has=true]{color:var(--accent)}
