.btn-ghost{color:var(--text-accent);border-color:var(--text-accent);background:0 0}.btn-ghost:hover{background:var(--text-accent);color:var(--bg)}.source-tag{letter-spacing:.03em;color:var(--ink-soft);background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r-pill);align-items:center;gap:9px;margin-top:22px;padding:7px 15px;font-size:11.5px;font-weight:700;display:inline-flex}.dot{border-radius:var(--r-round);background:var(--gold);width:7px;height:7px}.state-tag{border-left:3px solid var(--decor-accent);flex-direction:column;align-items:flex-start;gap:6px;margin:18px 0;padding:10px 0 10px 14px;display:flex}.state-tag-label{font-size:var(--fs-micro);line-height:var(--lh-tight);letter-spacing:.04em;color:var(--text);font-weight:700}.state-tag-detail{color:var(--text-muted);font-size:13.5px;line-height:1.5}.state-tag-inverse .state-tag-label{color:var(--text-inverse)}.state-tag-inverse .state-tag-detail{color:var(--text-inverse-muted)}@media print{.state-sample,.state-offline{border-left-color:var(--text)}}.intake{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r-panel);box-shadow:var(--shadow-1);grid-template-columns:repeat(2,1fr);gap:20px 26px;margin:34px 0 8px;padding:30px;display:grid}.intake label{letter-spacing:.04em;color:var(--ink-soft);margin-bottom:8px;font-size:11px;font-weight:700;display:block}.intake input,.intake select{width:100%;font-family:var(--body);border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:var(--r-control);padding:11px 13px;font-size:15px}.intake textarea{width:100%;font-family:var(--body);border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:var(--r-control);resize:vertical;padding:11px 13px;font-size:15px}.intake .full{grid-column:1/-1}.intake .actions{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:12px;display:flex}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{font-family:var(--body);letter-spacing:.02em;color:var(--ink-soft);background:var(--bg);border:1px solid var(--line);border-radius:var(--r-pill);cursor:pointer;padding:6px 13px;font-size:12.5px;transition:border-color .15s,color .15s,background .15s}.chip:hover{border-color:var(--text-accent);color:var(--text-accent)}.chip.on{border-color:var(--text-accent);color:var(--text-accent);background:var(--bg-raised);font-weight:700}.row-inline{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row-inline input,.row-inline select{flex:auto;width:auto}.intake .check-inline,.check-inline{color:var(--ink-soft);text-transform:none;letter-spacing:0;white-space:nowrap;align-items:center;gap:6px;margin:0;font-size:13px;font-weight:400;display:inline-flex}.check-inline input{width:auto}.survey-h{font-family:var(--display);color:var(--text);margin:26px 0 -12px;font-size:22px;font-weight:400}.survey-h.safety{color:var(--text)}.wizard-progress{border-radius:var(--r-pill);background:var(--line);height:4px;margin:18px 0 12px;overflow:hidden}.wizard-bar{background:var(--text-accent);border-radius:var(--r-pill);height:100%;transition:width .3s}.wizard-steps{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.wizard-dot{border-radius:var(--r-round);border:1px solid var(--line);background:var(--bg);width:26px;height:26px;color:var(--ink-soft);font-family:var(--body);cursor:pointer;font-size:12px;font-weight:700;transition:border-color .15s,color .15s,background .15s}.wizard-dot:hover{border-color:var(--text-accent);color:var(--text-accent)}.wizard-dot.on{border-color:var(--text-accent);background:var(--text-accent);color:var(--bg)}.wizard-dot.done{border-color:var(--text-accent);color:var(--text-accent)}.wizard-label{color:var(--ink-soft);letter-spacing:.02em;margin-left:6px;font-size:12.5px}.wizard-nav{flex-wrap:wrap;align-items:center;gap:14px;margin-top:26px;display:flex}.validate-tag{border-radius:var(--r-card);border:1px solid var(--line);background:var(--bg-raised);margin-top:12px;padding:10px 14px;font-size:13px;line-height:1.6}.validate-tag ul{margin:6px 0 0;padding-left:18px}.validate-tag li{color:var(--ink-soft)}.validate-tag .review-label{letter-spacing:.03em;font-size:10.5px;font-weight:700}.validate-tag.validating{color:var(--text-accent);border-color:var(--border);align-items:center;gap:9px;display:flex}.validate-tag.checked .review-label{color:var(--text-muted)}.validate-tag.checked .review-label:not(.advisory):before{content:"✓ "}.validate-tag.needs-review{border-left:3px solid var(--gold)}.validate-tag.needs-review .review-label{color:var(--text-accent)}.spinner-dot{border-radius:var(--r-round);border:2px solid var(--border);border-top-color:var(--text-accent);width:9px;height:9px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.profile-save{color:var(--ink-soft);letter-spacing:.02em;font-size:12.5px}.profile-save.saved{color:var(--text-muted)}.profile-save.saved:before{content:"✓ "}.profile-save.error{color:#a2432f}.day{border-top:1px solid var(--line);padding:46px 0}.day:first-of-type{border-top:none}.day h3{font-family:var(--display);color:var(--text);margin:6px 0 8px;font-size:28px;font-weight:400}.day .arc{color:var(--ink-soft);max-width:var(--measure-tight);margin-bottom:26px;font-size:15px}.stop{border-top:1px solid var(--border);grid-template-columns:70px 1fr;gap:22px;padding:16px 0;display:grid}.stop:first-of-type{border-top:none}.stop .time{font-family:var(--display);color:var(--text-muted);padding-top:1px;font-size:16px}.stop .body .name{font-family:var(--display);flex-wrap:wrap;align-items:center;gap:10px;font-size:18px;display:flex}.kind{font-family:var(--body);letter-spacing:.12em;border-radius:var(--r-pill);color:var(--bg);padding:3px 8px;font-size:9.5px;font-weight:700}.kind.latin{text-transform:uppercase}.kind.sight{background:var(--kind-sight)}.kind.dining{background:var(--kind-dining)}.kind.lodging{background:var(--kind-lodging)}.kind.area{background:var(--kind-area)}.kind.custom{background:var(--gold)}.stop .body .note{color:var(--ink-soft);margin-top:6px;font-size:14.5px}.stop .body .hours{color:var(--text-accent);letter-spacing:.04em;margin-top:6px;font-size:12px;font-weight:700}.cal-page{padding:14px 0 40px}.grid-scroll{--grid-h:760px;--grid-hours:18;border:1px solid var(--line);border-radius:var(--r-sharp);background:var(--bg-raised);overflow-x:auto}.grid{grid-template-rows:auto var(--grid-h);min-width:520px;display:grid}.grid-corner{border-bottom:1px solid var(--line)}.grid-head{font-family:var(--display);color:var(--text);text-align:center;border-bottom:1px solid var(--line);border-left:1px solid var(--line);padding:13px 8px;font-size:15px}.grid-hours{height:var(--grid-h);position:relative}.grid-hour{height:calc(var(--grid-h) / var(--grid-hours));font-family:var(--display);color:var(--ink-soft);text-align:right;padding-right:8px;font-size:11px}.grid-hour span{position:relative;top:-6px}.grid-col{height:var(--grid-h);border-left:1px solid var(--line);position:relative}.grid-slot{height:calc(var(--grid-h) / var(--grid-hours));border-top:1px solid var(--border)}.grid-slot:first-child{border-top:none}.grid-event{border-radius:var(--r-sharp);color:var(--bg);cursor:pointer;padding:5px 8px;font-size:12.5px;transition:box-shadow .12s,transform .12s;position:absolute;overflow:hidden;box-shadow:0 1px 3px #1b2a2233}.grid-event.active{box-shadow:0 0 0 2px var(--decor-accent), 0 3px 10px #1b2a2266;z-index:3;transform:translateY(-1px)}.grid-event.sight{background:var(--kind-sight)}.grid-event.dining{background:var(--kind-dining)}.grid-event.lodging{background:var(--kind-lodging)}.grid-event.area{background:var(--kind-area)}.grid-event.custom{background:var(--gold)}.grid-event.conflict{outline:2px solid var(--danger);outline-offset:-2px}.grid-event-time{font-family:var(--display);opacity:.92;font-size:12px}.grid-event-name{font-family:var(--display);align-items:center;gap:6px;font-size:14px;line-height:1.2;display:flex}.res-dot{border-radius:var(--r-round);background:var(--bg);flex:none;width:6px;height:6px;display:inline-block}.reminders{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r-panel);box-shadow:var(--shadow-1);margin-top:28px;padding:26px}.rem-head{font-family:var(--display);color:var(--text);margin-bottom:6px;font-size:22px}.rem-sub{color:var(--ink-soft);max-width:var(--measure-tight);margin-bottom:16px;font-size:13.5px}.rem-empty{color:var(--ink-soft);font-size:14px;font-style:italic}.rem-empty:lang(zh-TW){font-style:normal}.rem-row{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px 14px;padding:14px 0;display:flex}.rem-row:first-of-type{border-top:none}.rem-main{flex-wrap:wrap;flex:1;align-items:center;gap:12px;min-width:0;display:flex}.rem-time{font-family:var(--display);color:var(--text-accent);white-space:nowrap;font-size:14px}.rem-badge{letter-spacing:.03em;border-radius:var(--r-pill);color:var(--bg);padding:3px 8px;font-size:9.5px;font-weight:700}.rem-badge.departure{background:var(--danger)}.rem-badge.reservation{background:var(--kind-lodging)}.rem-msg{font-size:14.5px}.rem-flag{letter-spacing:.02em;color:var(--ink-soft);border:1px solid var(--border);border-radius:var(--r-pill);padding:1px 7px;font-size:10.5px;font-weight:700}.stop-reminder{color:var(--ink-soft);white-space:nowrap;margin-top:2px;font-size:12px}.rem-fire{color:var(--ink-soft);white-space:nowrap;font-size:12px}.rem-reason-given{color:var(--ink-soft);white-space:normal;font-size:12.5px}.rem-controls{align-items:center;gap:8px;display:flex}.rem-controls select{font-family:var(--body);border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:var(--r-control);padding:6px 8px;font-size:12px}.rem-reset{font-family:var(--body);color:var(--ink-soft);cursor:pointer;background:0 0;border:none;font-size:12px;text-decoration:underline}.rem-why{flex-wrap:wrap;flex-basis:100%;align-items:center;gap:8px;padding-top:4px;display:flex}.rem-why-label{letter-spacing:.02em;color:var(--ink-soft);font-size:11px;font-weight:700}.rem-reason{font-family:var(--body);border:1px solid var(--gold);background:var(--bg-raised);color:var(--ink);border-radius:var(--r-btn);cursor:pointer;padding:5px 12px;font-size:12px;transition:background .15s,color .15s}.rem-reason:hover{background:var(--gold);color:var(--bg)}.rem-add{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.rem-add-form{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.rem-add-label{letter-spacing:.03em;color:var(--ink-soft);font-size:11px;font-weight:700}.rem-add-form select{font-family:var(--body);border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:var(--r-control);padding:7px 9px;font-size:12px}.add-event{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r-panel);box-shadow:var(--shadow-1);margin-top:28px;padding:26px}.added-stops{margin:0 0 16px;list-style:none}.added-stops li{border-top:1px solid var(--border);padding:8px 0}.added-stops li:first-child{border-top:none}.added-line{align-items:baseline;gap:12px;display:flex}.added-when{font-family:var(--display);color:var(--text-accent);white-space:nowrap;font-size:13px}.added-name{flex:1;font-size:14.5px}.added-conflict{flex-wrap:wrap;align-items:center;gap:12px;margin-top:6px;display:flex}.conflict-warn{color:var(--danger);font-size:12.5px}.conflict-warn:before{content:"⚠";margin-right:6px}.conflict-none{color:var(--ink-soft);font-size:12px}.add-event-form{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.add-event-form input,.add-event-form select{font-family:var(--body);border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:var(--r-control);padding:8px 10px;font-size:13px}.add-event-form .ae-name{flex:160px}.add-event-form .ae-note{flex:180px}.ae-error{color:var(--danger);margin-top:10px;font-size:13px}.learned-banner{background:var(--bg-raised);border:1px solid var(--line);border-left:2px solid var(--gold);border-radius:var(--r-card);color:var(--ink-soft);max-width:var(--measure-tight);margin-top:18px;padding:12px 16px;font-size:13.5px}.learned-banner-label{letter-spacing:.03em;color:var(--text-accent);margin-bottom:4px;font-size:10.5px;font-weight:700;display:block}.review{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r-panel);box-shadow:var(--shadow-1);padding:26px}.review-rating{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:8px;padding-bottom:18px;display:flex}.review-q{font-family:var(--display);color:var(--text);font-size:20px}.stars{gap:4px;display:flex}.star{color:var(--line);cursor:pointer;background:0 0;border:none;padding:0;font-size:24px;line-height:1;transition:color .15s}.star.on,.star:hover{color:var(--text-accent)}.review-day{padding:18px 0 4px}.review-date{font-family:var(--display);color:var(--text-accent);border-bottom:1px solid var(--border);margin-bottom:6px;padding-bottom:8px;font-size:16px}.review-row{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;padding:12px 0;display:flex}.review-row:first-of-type{border-top:none}.review-stop{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.hl{color:var(--line);cursor:pointer;background:0 0;border:none;flex:none;padding:0;font-size:17px;line-height:1;transition:color .15s}.hl.on,.hl:hover{color:var(--text-accent)}.review-name{font-family:var(--display);font-size:16px}.review-verdicts{flex-wrap:wrap;gap:6px;display:flex}.verdict{font-family:var(--body);border:1px solid var(--line);background:var(--bg);color:var(--ink-soft);border-radius:var(--r-btn);cursor:pointer;padding:6px 12px;font-size:12px;font-weight:700;transition:background .15s,color .15s,border-color .15s}.verdict.loved.on{background:var(--text-accent);border-color:var(--text-accent);color:var(--bg)}.verdict.fine.on,.verdict.skip.on{background:var(--text-muted);border-color:var(--text-muted);color:var(--bg)}.review-notes{margin-top:20px}.review-notes label{letter-spacing:.03em;color:var(--ink-soft);margin-bottom:8px;font-size:11px;font-weight:700;display:block}.review-notes textarea{width:100%;font-family:var(--body);border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:var(--r-control);resize:vertical;padding:11px 13px;font-size:14.5px}.review .btn-sm{margin-top:20px}.learned{background:var(--surface-inverse);color:var(--text-inverse);border-radius:var(--r-card);margin-top:24px;padding:26px 28px}.learned-head{font-family:var(--display);color:var(--text-inverse);margin-bottom:12px;font-size:22px}.learned-notes{margin:0 0 16px;list-style:none}.learned-notes li{color:var(--text-inverse);padding:6px 0 6px 18px;font-size:15px;position:relative}.learned-notes li:before{content:"—";color:var(--text-inverse-accent);position:absolute;left:0}.learned-chips{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.chip{border-radius:var(--r-pill);padding:5px 12px;font-size:12px;font-weight:700}.chip.loved{color:var(--text-inverse-accent);background:#cbba8e29;border:1px solid #cbba8e66}.chip.avoid{color:var(--text-inverse-subtle);background:0 0;border:1px solid #f4efe23d}.learned-foot{color:var(--text-inverse-muted);font-size:12.5px}.booking{border-top:1px solid var(--line);padding:48px 0 80px}.booking h3{font-family:var(--display);color:var(--text);margin-bottom:8px;font-size:28px;font-weight:400}.booking .sub{color:var(--ink-soft);max-width:var(--measure);margin-bottom:28px;font-size:15px}.stay-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-1);margin-bottom:18px;padding:24px}.stay-card .stay-name{font-family:var(--display);color:var(--text);font-size:22px}.stay-card .stay-meta{color:var(--ink-soft);letter-spacing:.03em;margin:5px 0 18px;font-size:12px}.opt-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:14px;padding:13px 0;display:flex}.opt-left{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.opt-platform{font-size:15px;font-weight:700}.pref-pill{letter-spacing:.03em;color:var(--text-accent);border:1px solid var(--gold);border-radius:var(--r-pill);padding:2px 8px;font-size:9.5px;font-weight:700}.opt-price{font-family:var(--display);color:var(--text);font-size:18px}.opt-na{color:var(--ink-soft);font-size:13px}.confirm-link{letter-spacing:.02em;border:1px solid var(--text-accent);color:var(--text-accent);border-radius:var(--r-btn);white-space:nowrap;padding:8px 16px;font-size:12px;font-weight:700;text-decoration:none;transition:background .2s,color .2s}.confirm-link:hover{background:var(--text-accent);color:var(--bg)}.handoff-note{color:var(--ink-soft);border-left:2px solid var(--gold);max-width:var(--measure-tight);margin-top:24px;padding-left:16px;font-size:13px;line-height:1.7}.map-canvas{border-radius:var(--r-card);border:1px solid var(--line);width:100%;overflow:hidden}.map-fallback{border:1px dashed var(--line);border-radius:var(--r-card);background:var(--bg-raised);color:var(--ink-soft);padding:18px 20px;font-size:14px}.map-fallback code{border-radius:var(--r-card);background:#1b2a220f;padding:1px 5px;font-size:12.5px}.legend-dot{border-radius:var(--r-round);width:12px;height:12px;display:inline-block}.map-pin{border-radius:var(--r-round);width:26px;height:26px;color:var(--bg);font-family:var(--display);border:2px solid var(--bg-raised);cursor:pointer;justify-content:center;align-items:center;font-size:13px;line-height:1;transition:transform .12s,box-shadow .12s;display:flex;box-shadow:0 1px 5px #00000052}.map-pin.active{box-shadow:0 0 0 3px var(--decor-accent), 0 2px 8px #0006;transform:scale(1.35)}.map-pop{font-family:var(--body)}.map-pop-day{letter-spacing:.03em;color:var(--text-accent);font-size:10.5px}.map-pop-name{font-family:var(--display);color:var(--ink);margin-top:2px;font-size:15px}.map-pop-area{color:var(--ink-soft);margin-top:2px;font-size:12px}.mapboxgl-popup-content{border-radius:var(--r-card);padding:10px 13px}footer{border-top:1px solid var(--line);color:var(--ink-soft);letter-spacing:.02em;padding:32px 0;font-size:12.5px}.gen-bar{align-items:center;gap:var(--sp-12);padding:var(--sp-12) var(--sp-16);background:var(--bg-raised);box-shadow:var(--shadow-1);border-bottom:1px solid var(--border);font-size:var(--fs-small);flex-wrap:wrap;margin-top:62px;display:flex}.gen-bar+main .plan-head{padding-top:var(--sp-24)}.gen-bar-label{color:var(--text-muted)}.gen-bar-glyph{color:var(--text-muted);font-weight:700}.gen-bar.is-ready .gen-bar-glyph{color:var(--text-accent)}.gen-bar.is-failed{border-left:3px solid var(--danger)}.gen-bar.is-failed .gen-bar-glyph{color:var(--danger)}.gen-bar-action{margin-left:auto}.gen-bar-dismiss{font-family:var(--body);font-size:var(--fs-fine);color:var(--text-muted);cursor:pointer;background:0 0;border:none;text-decoration:underline}.gen-bar-dismiss:hover{color:var(--text)}.gen-bar:not(.is-ready):not(.is-failed) .gen-bar-dismiss{margin-left:auto}.gen-bar.is-marker{padding:var(--sp-4) var(--sp-16)}.gen-bar-marker{align-items:center;gap:var(--sp-8);font-family:var(--body);font-size:var(--fs-fine);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;display:flex}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.auth-nav{z-index:60;border:1px solid var(--line);border-radius:var(--r-pill);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fbf9f1f0;align-items:center;gap:14px;padding:8px 18px;font-size:12.5px;display:flex;position:fixed;top:16px;right:20px;box-shadow:0 3px 12px #1b2a2224}.auth-email{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.auth-link{font-family:var(--body);letter-spacing:.05em;color:var(--text-accent);cursor:pointer;background:0 0;border:none;font-size:12.5px;font-weight:700;text-decoration:none}.auth-link:hover{color:var(--text)}.auth-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r-card);max-width:420px;box-shadow:var(--shadow-1);flex-direction:column;gap:16px;margin:34px 0;padding:32px;display:flex}.auth-card label{letter-spacing:.04em;color:var(--ink-soft);margin-bottom:8px;font-size:11px;font-weight:700;display:block}.auth-card input{width:100%;font-family:var(--body);border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:var(--r-control);padding:11px 13px;font-size:15px}.auth-card .btn-sm{align-self:flex-start}.auth-error{color:var(--danger);font-size:13.5px}.auth-notice{color:var(--text-accent);font-size:13.5px}.auth-switch{color:var(--ink-soft);font-size:13.5px}.auth-card label.auth-consent{color:var(--ink);text-transform:none;letter-spacing:normal;align-items:flex-start;gap:10px;margin:0;font-size:13.5px;font-weight:400;line-height:1.5;display:flex}.auth-card label.auth-consent input{flex:none;width:auto;margin-top:3px}.auth-consent .auth-link{display:inline}.auth-consent-en{color:var(--ink-soft);font-size:12.5px}.trips-new{flex:none;align-self:center}.trips-filter{color:var(--ink-soft);align-items:center;gap:8px;margin:18px 0 6px;font-size:13.5px;display:inline-flex}.trips-filter input{width:auto}.trips-empty{border:1px dashed var(--line);border-radius:var(--r-card);text-align:center;color:var(--ink-soft);flex-direction:column;align-items:center;gap:16px;margin:20px 0;padding:40px;display:flex}.trips-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;margin:16px 0 48px;padding:0;list-style:none;display:grid}.trip-card{border:1px solid var(--line);border-radius:var(--r-card);background:var(--bg-raised);box-shadow:var(--shadow-1);flex-direction:column;gap:8px;padding:20px;display:flex}.trip-card.archived{opacity:.7}.trip-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.trip-card-head h3{font-family:var(--display);color:var(--ink);margin:0;font-size:19px;line-height:1.25}.trip-card-dates{color:var(--ink);margin:0;font-size:14px}.trip-card-meta{color:var(--ink-soft);margin:0;font-size:13px}.trip-card-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;display:flex}.trip-card-actions .btn-sm{text-decoration:none}.trip-link{font-family:var(--body);color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.trip-link:hover{color:var(--text-accent)}.trip-link:disabled,.chip:disabled,.wizard-dot:disabled{opacity:1;color:var(--text-muted);border-color:var(--border-control);cursor:default}.trip-badge{letter-spacing:.03em;border-radius:var(--r-pill);border:1px solid var(--line);color:var(--ink-soft);background:var(--bg);white-space:nowrap;flex:none;padding:3px 9px;font-size:10.5px;font-weight:700}.trip-badge.state-planning{color:var(--text-accent);border-color:var(--gold)}.trip-badge.state-booked{color:var(--text-accent);border-color:var(--text-accent)}.trip-badge.state-in-trip{color:var(--bg);background:var(--text-accent);border-color:var(--text-accent)}.trip-badge.state-completed{color:var(--ink-soft)}.trip-badge.state-past{color:var(--ink-soft);border-style:dashed}.refine{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--bg-raised);box-shadow:var(--shadow-1);margin:22px 0;padding:22px}.refine h3{font-family:var(--display);color:var(--ink);margin:0 0 4px;font-size:18px}.refine .sub{color:var(--ink-soft);margin:0 0 14px;font-size:13.5px}.refine-chat{align-items:flex-end;gap:10px;margin-bottom:14px;display:flex}.refine-chat textarea{font-family:var(--body);border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:var(--r-control);resize:vertical;flex:1;padding:10px 12px;font-size:14.5px}.refine-panel{border-top:1px solid var(--line);flex-wrap:wrap;align-items:flex-end;gap:14px 24px;padding-top:12px;display:flex}.refine-field label{letter-spacing:.03em;color:var(--ink-soft);margin-bottom:6px;font-size:11px;font-weight:700;display:block}.refine-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.refine-row input{font-family:var(--body);border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:var(--r-control);width:180px;padding:8px 10px;font-size:14px}.refine-pace{gap:6px}.refine-remember{color:var(--ink-soft);flex-basis:100%;align-items:center;gap:8px;margin-top:4px;font-size:13px;display:flex}.refine-remember input{width:auto}.refine-confirm{border:1px solid var(--gold);border-radius:var(--r-panel);background:var(--bg);margin-top:16px;padding:16px}.refine-confirm-head{color:var(--ink);margin-bottom:8px;font-size:14px;font-weight:700}.refine-preview{color:var(--ink);flex-direction:column;gap:6px;margin:0 0 12px;padding:0;font-size:13.5px;list-style:none;display:flex}.refine-op{letter-spacing:.02em;color:var(--text-accent);font-size:11px;font-weight:700}.refine-note{color:var(--ink-soft)}.refine-note.ok{color:var(--text-muted)}.refine-note.ok:before{content:"✓ "}.refine-note.warn,.refine-warn{color:var(--danger)}.refine-durable{letter-spacing:.02em;color:var(--text-accent);border:1px solid var(--text-accent);border-radius:var(--r-pill);margin-left:8px;padding:1px 7px;font-size:10.5px;font-weight:700;display:inline-block}.refine-actions{gap:10px;display:flex}.refine-status{color:var(--ink-soft);margin:12px 0 0;font-size:13.5px}.refine-result{border-radius:var(--r-card);flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;padding:10px 14px;font-size:13.5px;display:flex}.refine-result.ok{background:var(--bg-sunken);color:var(--ink);border:1px solid var(--border)}.refine-result.declined{background:var(--bg);color:var(--ink);border:1px solid var(--danger)}.refine-matches{flex-direction:column;gap:3px;margin:6px 0 0 14px;padding:0;list-style:none;display:flex}.refine-matches label{color:var(--ink);align-items:center;gap:7px;font-size:13px;display:flex}.refine-matches input{width:auto}.refine-undo{color:var(--ink-soft);align-items:center;gap:12px;margin-top:14px;font-size:13.5px;display:flex}.stop.changed{position:relative}.stop.changed .body{border-left:2px solid var(--gold);margin-left:-14px;padding-left:12px}.stop-changed{letter-spacing:.02em;color:var(--ink-soft);border:1px solid var(--border);border-radius:var(--r-pill);margin-left:8px;padding:1px 7px;font-size:10px;font-weight:700;display:inline-block}.saved-prefs{margin:34px 0}.saved-prefs h3{font-family:var(--display);color:var(--ink);margin:0 0 4px;font-size:18px}.saved-prefs .sub{color:var(--ink-soft);margin:0 0 14px;font-size:13.5px}.saved-empty{color:var(--ink-soft);font-size:13.5px}.saved-list{flex-wrap:wrap;gap:10px;display:flex}.saved-chip{border-radius:var(--r-pill);border:1px solid var(--line);background:var(--bg-raised);color:var(--ink);align-items:center;gap:8px;padding:5px 6px 5px 12px;font-size:13px;display:inline-flex}.saved-chip.loved{border-color:var(--text-accent)}.saved-chip.avoid{border-color:var(--danger)}.saved-chip.pace{border-color:var(--gold)}.saved-chip button{cursor:pointer;color:var(--ink-soft);background:0 0;border:none;padding:0 4px;font-size:15px;line-height:1}.saved-chip button:hover{color:var(--danger)}.export-controls{flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0 22px;display:flex}.export-label{letter-spacing:.04em;color:var(--ink-soft);font-size:11px;font-weight:700}.export-error{color:var(--danger);font-size:13px}.save-status{z-index:50;letter-spacing:.02em;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--bg-raised);color:var(--ink-soft);padding:8px 14px;font-size:11px;font-weight:700;position:fixed;bottom:16px;right:16px;box-shadow:0 2px 8px #1b2a221f}.save-status.saved{color:var(--text-muted)}.save-status.saved:before{content:"✓ "}.save-status.error{color:var(--danger);border-color:var(--danger)}@media (max-width:760px){.intake{grid-template-columns:1fr}.opt-row{flex-direction:column;align-items:flex-start}.gen-bar{padding:var(--sp-12);margin-top:54px}.gen-bar-action,.gen-bar:not(.is-ready):not(.is-failed) .gen-bar-dismiss{margin-left:0}.gen-bar-label{flex-basis:100%}}.desk-page .desk-due{margin:8px 0 26px}.desk-page .desk-grid{margin-bottom:30px}.desk-page .desk-export{margin-bottom:40px}.rem-due-list{flex-direction:column;gap:2px;margin:10px 0 0;padding:0;list-style:none;display:flex}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-shell:has(>.itin-page){height:100dvh}.itin-page{flex-direction:column;flex:1;min-height:0;display:flex}.itin-panes{flex:1;grid-template-columns:clamp(380px,34vw,480px) minmax(0,1fr);min-height:0;display:grid}.itin-sidebar{background:var(--bg);border-right:1px solid var(--line);overflow-y:auto}.itin-sidebar-top{padding:var(--sp-24) var(--sp-24) var(--sp-12)}.itin-sidebar-top h2{font-family:var(--display);font-weight:400;font-size:var(--fs-title);color:var(--text);margin:var(--sp-12) 0 var(--sp-4)}.itin-sidebar-body{padding:0 var(--sp-24) var(--sp-32)}.itin-mapnote{font-size:var(--fs-small);color:var(--text-muted);margin:var(--sp-16) 0 var(--sp-8);max-width:var(--measure-tight);line-height:1.6}.itin-filter-bar{z-index:2;background:var(--bg);border-bottom:1px solid var(--border);padding:var(--sp-8) var(--sp-24);position:sticky;top:0}.day-filter-wrap{align-items:flex-start;gap:var(--sp-8);min-width:0;display:flex}.day-chip-all{flex:none}.day-filter{gap:var(--sp-8);flex-wrap:wrap;flex:1;min-width:0;display:flex}.day-chip{font-family:var(--body);font-size:var(--fs-fine);letter-spacing:.03em;color:var(--ink-soft);background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r-btn);cursor:pointer;align-items:center;gap:7px;padding:6px 14px;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.day-chip:hover{border-color:var(--text-accent);color:var(--text-accent)}.day-chip.active{border-color:var(--text-accent);color:var(--text-accent);background:var(--bg-raised);font-weight:700}.day-no{align-items:center;gap:var(--sp-8);display:flex}.day-disc{border-radius:var(--r-round);border:1px solid var(--border-control);width:22px;height:22px;font-family:var(--body);font-size:var(--fs-fine);color:var(--text);flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.day-disc.filled{color:var(--parchment);border-color:#0000}.day-no-text{font-family:var(--display);letter-spacing:.1em;color:var(--text);font-size:15px}.pending .plan-head{padding-top:var(--sp-24)}.pending-meta{font-size:var(--fs-small);color:var(--text-muted);margin:var(--sp-4) 0 var(--sp-16)}.pending-note{color:var(--text-muted);max-width:var(--measure)}.pending-day{border-top:1px solid var(--border);padding:var(--sp-24) 0 0}.pending-day:first-of-type{border-top:none}.pending-space{height:var(--sp-64)}.stop{border-radius:var(--r-card);cursor:pointer}.stop.hovered{background:var(--bg-sunken)}.stop.selected{background:var(--bg-raised);box-shadow:var(--shadow-1);border-left:2px solid var(--decor-accent);padding-left:var(--sp-12)}.stop:focus-visible{box-shadow:var(--focus-ring);outline:none}.map-pin.selected{width:34px;height:34px;box-shadow:var(--shadow-2);font-size:15px}.map-pin:focus-visible{box-shadow:var(--focus-ring);outline:none}.itin-map{flex-direction:column;min-width:0;display:flex;position:relative}.itin-map .map-canvas{border:none;border-radius:0;flex:1;height:auto;min-height:0}.itin-map .map-fallback{margin:var(--sp-24)}.map-fallback-over{top:var(--sp-16);left:var(--sp-16);right:var(--sp-16);z-index:1;position:absolute}a.wizard-dot{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.book-summary{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-1);padding:var(--sp-24);margin:var(--sp-24) 0;max-width:var(--measure)}.book-route{font-family:var(--display);font-size:var(--fs-title);color:var(--text);margin:0}.book-meta{font-size:var(--fs-small);color:var(--text-muted);margin:var(--sp-4) 0 0}.book-missing{font-size:var(--fs-small);color:var(--text-muted);margin:var(--sp-12) 0 0;max-width:var(--measure-tight)}.book-actions{align-items:center;gap:var(--sp-12);margin:var(--sp-24) 0 var(--sp-48);flex-wrap:wrap;display:flex}.book-page .booking{border-top:none;padding-top:0}@media (max-width:760px){.itin-page{min-height:0}.itin-panes{--sheet-h:55%;min-height:0;display:block;position:relative}.itin-panes[data-snap=peek]{--sheet-h:max(25%, 96px)}.itin-panes[data-snap=half]{--sheet-h:55%}.itin-panes[data-snap=full]{--sheet-h:92%}.itin-map{height:calc(100% - var(--sheet-h));border-bottom:1px solid var(--line)}.itin-sidebar{height:var(--sheet-h);border-right:none;border-top:1px solid var(--border);border-radius:var(--r-card) var(--r-card) 0 0;box-shadow:var(--shadow-2);flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.itin-sidebar-body,.itin-sidebar-top{overflow-y:auto}.itin-panes[data-snap=peek] .itin-sidebar-body,.itin-panes[data-snap=peek] .itin-sidebar-top{overflow-y:hidden}.sheet-handle{width:100%;padding:var(--sp-8) 0;cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;display:flex}.sheet-grip{border-radius:var(--r-pill);background:var(--border-control);width:36px;height:4px;display:block}.day-filter{scrollbar-width:thin;flex-wrap:nowrap;overflow-x:auto}.itin-filter-bar{position:relative}.itin-filter-bar:after{content:"";width:var(--sp-24);background:linear-gradient(to right, transparent, var(--bg));pointer-events:none;position:absolute;top:0;bottom:0;right:0}.stop{gap:var(--sp-4);grid-template-columns:1fr}.stop .time{font-size:var(--fs-small);color:var(--text-muted)}.map-pin{position:relative}.map-pin:before{content:"";position:absolute;inset:-9px}.desk-page .desk-due{margin:4px 0 20px}.desk-page .desk-grid{margin-bottom:22px}.book-actions{flex-direction:column;align-items:stretch}.book-actions .btn{text-align:center}.book-summary{padding:var(--sp-16)}.book-route{font-size:var(--fs-title-sm)}.pending-space{height:var(--sp-32)}.pending-day{padding-top:var(--sp-16)}}
