:root{--paper:#f1ede4;--paper-raised:#fff;--paper-sunken:#e8e2d3;--ink:#21242c;--ink-soft:#5c6070;--ink-faint:#93917f;--border:#ddd4bd;--indigo:#2c4770;--indigo-tint:#e4e9f1;--gold:#a1741d;--gold-tint:#f3e6c3;--paid:#2e7d5b;--paid-tint:#dceee3;--due:#b0431d;--due-tint:#f6ddd0;--pending:#a1741d;--pending-tint:#f3e6c3;--shadow:0 1px 2px #21242c0f, 0 8px 24px -12px #21242c2e;--radius:14px;--font-face:-apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans Thai", "Noto Sans Thai UI", Roboto, sans-serif;--font-mono:"SF Mono", ui-monospace, "Roboto Mono", "Noto Sans Mono", Consolas, monospace}@media (prefers-color-scheme:dark){:root{--paper:#1a1c22;--paper-raised:#23262e;--paper-sunken:#15171c;--ink:#eeece4;--ink-soft:#a8adba;--ink-faint:#6b6f7d;--border:#34384a;--indigo:#8aa4d6;--indigo-tint:#263250;--gold:#e3bd6c;--gold-tint:#3a3020;--paid:#6bc79a;--paid-tint:#1e3329;--due:#e58a5f;--due-tint:#3c261d;--pending:#e3bd6c;--pending-tint:#3a3020;--shadow:0 1px 2px #0000004d, 0 12px 28px -14px #0000008c}}:root[data-theme=dark]{--paper:#1a1c22;--paper-raised:#23262e;--paper-sunken:#15171c;--ink:#eeece4;--ink-soft:#a8adba;--ink-faint:#6b6f7d;--border:#34384a;--indigo:#8aa4d6;--indigo-tint:#263250;--gold:#e3bd6c;--gold-tint:#3a3020;--paid:#6bc79a;--paid-tint:#1e3329;--due:#e58a5f;--due-tint:#3c261d;--pending:#e3bd6c;--pending-tint:#3a3020}:root[data-theme=light]{--paper:#f1ede4;--paper-raised:#fff;--paper-sunken:#e8e2d3;--ink:#21242c;--ink-soft:#5c6070;--ink-faint:#93917f;--border:#ddd4bd;--indigo:#2c4770;--indigo-tint:#e4e9f1;--gold:#a1741d;--gold-tint:#f3e6c3;--paid:#2e7d5b;--paid-tint:#dceee3;--due:#b0431d;--due-tint:#f6ddd0;--pending:#a1741d;--pending-tint:#f3e6c3}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-face);-webkit-font-smoothing:antialiased;min-height:100dvh;padding-bottom:calc(72px + env(safe-area-inset-bottom))}.page{max-width:480px;margin:0 auto;padding:0 16px}.topbar{z-index:20;background:var(--paper);border-bottom:1px solid var(--border);padding:14px 16px 10px;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:baseline;gap:8px;max-width:480px;margin:0 auto;display:flex}.trip-title{letter-spacing:-.01em;margin:0;font-size:17px;font-weight:800}.trip-dates{color:var(--ink-soft);margin:2px 0 0;font-size:12px}.status-pill{white-space:nowrap;background:var(--indigo-tint);color:var(--indigo);letter-spacing:.02em;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:700}main{padding-top:16px}section.panel.active{animation:.18s fade;display:block}@media (prefers-reduced-motion:reduce){section.panel.active{animation:none}}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}h2.section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin:28px 0 10px;font-size:13px;font-weight:800}h2.section-title:first-child{margin-top:0}.stat-row{grid-template-columns:repeat(3,1fr);align-items:start;gap:8px;display:grid}.stat-tile{background:var(--paper-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 10px}.stat-tile .label{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em;font-size:10.5px;font-weight:700}.stat-tile .value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-top:4px;font-size:17px;font-weight:700}.stat-tile .value small{font-family:var(--font-face);color:var(--ink-soft);margin-left:2px;font-size:11px;font-weight:600}.stat-tile .label-row{align-items:center;display:flex}.meter{background:var(--paper-sunken);border-radius:999px;height:8px;margin-top:12px;overflow:hidden}.meter>span{background:linear-gradient(90deg, var(--indigo), var(--gold));border-radius:999px;height:100%;display:block}.meter-caption{color:var(--ink-soft);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:6px;font-size:11.5px;display:flex}.ticket{background:var(--paper-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px;position:relative;overflow:hidden}.ticket-head{cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.ticket-month{letter-spacing:-.01em;font-size:15px;font-weight:800}.ticket-month .yr{color:var(--ink-faint);margin-left:4px;font-size:12px;font-weight:600}.ticket-amount{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.ticket-amount small{font-family:var(--font-face);color:var(--ink-soft);text-align:right;font-size:10.5px;font-weight:600;display:block}.perforation{background-image:linear-gradient(90deg, var(--border) 60%, transparent 0%);background-repeat:repeat-x;background-size:10px 1px;height:1px;margin:0;position:relative}.perforation:before,.perforation:after{content:"";background:var(--paper);border-radius:50%;width:14px;height:14px;position:absolute;top:-7px}.perforation:before{left:-23px}.perforation:after{right:-23px}.ticket-body{padding:12px 16px 14px}.breakdown-row{color:var(--ink-soft);justify-content:space-between;gap:10px;padding:5px 0;font-size:13px;display:flex}.breakdown-row .amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink)}.breakdown-empty{color:var(--ink-faint);padding:4px 0;font-size:13px;font-style:normal}.friend-row{gap:8px;margin-top:12px;display:flex}.chip-toggle{border:1.5px solid var(--border);background:var(--paper-sunken);color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-size:12.5px;font-weight:700;font-family:var(--font-face);border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:9px 8px;transition:background .12s,border-color .12s,color .12s;display:flex}@media (prefers-reduced-motion:reduce){.chip-toggle{transition:none}}.chip-toggle:active{transform:scale(.98)}.chip-toggle[data-paid=true]{background:var(--paid-tint);border-color:var(--paid);color:var(--paid)}.chip-toggle .dot{opacity:.55;background:currentColor;border-radius:50%;width:7px;height:7px}.chip-toggle[data-paid=true] .dot{opacity:1}.ticket.is-collapsed .ticket-body,.ticket.is-collapsed .perforation{display:none}.chevron{color:var(--ink-faint);font-size:11px;transition:transform .15s;transform:rotate(90deg)}.ticket.is-collapsed .chevron{transform:rotate(0)}@media (prefers-reduced-motion:reduce){.chevron{transition:none}}.month-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:6px;padding:3px 7px;font-size:10px;font-weight:800}.month-badge.done{background:var(--paid-tint);color:var(--paid)}.month-badge.due{background:var(--due-tint);color:var(--due)}.month-badge.future{background:var(--paper-sunken);color:var(--ink-faint)}.hero{background:linear-gradient(155deg, var(--indigo) 0%, #1d3255 100%);color:#f4f2ea;border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:18px;padding:18px 18px 16px;position:relative;overflow:hidden}.hero .eyebrow{text-transform:uppercase;letter-spacing:.1em;opacity:.75;font-size:11px;font-weight:800}.hero .headline{letter-spacing:-.02em;margin:6px 0 2px;font-size:26px;font-weight:800}.hero .sub{opacity:.8;font-size:12.5px}.hero .amount-big{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-top:10px;font-size:34px;font-weight:700}.hero .amount-big .unit{font-family:var(--font-face);opacity:.8;margin-left:6px;font-size:14px;font-weight:600}.hero .hero-friends{gap:8px;margin-top:14px;display:flex}.hero .chip-toggle{color:#f4f2ead9;background:#f4f2ea1a;border-color:#f4f2ea47}.hero .chip-toggle[data-paid=true]{color:#b7ecd2;background:#6bc79a38;border-color:#6bc79a}.cat-card{background:var(--paper-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:10px;padding:13px 15px}.cat-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.cat-name{letter-spacing:-.005em;font-size:14px;font-weight:700}.cat-status{letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:999px;flex-shrink:0;padding:3px 8px;font-size:10px;font-weight:800}.cat-status.paid{background:var(--paid-tint);color:var(--paid)}.cat-status.saving{background:var(--pending-tint);color:var(--pending)}.cat-status.pending{background:var(--indigo-tint);color:var(--indigo)}.cat-status.contingent{background:var(--due-tint);color:var(--due);border:1px dashed var(--due)}.cat-figures{font-family:var(--font-mono);font-variant-numeric:tabular-nums;gap:16px;margin-top:8px;font-size:13px;display:flex}.cat-figures .f-label{font-family:var(--font-face);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em;margin-bottom:1px;font-size:10px;font-weight:700;display:block}.cat-note{color:var(--ink-soft);margin-top:8px;font-size:12px;line-height:1.5}.cat-topup{color:var(--due);margin-top:6px;font-size:12px;font-weight:700}.self-card{background:var(--paper-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-items:flex-start;gap:12px;margin-bottom:10px;padding:13px 15px;display:flex}.self-check{border:1.5px solid var(--border);cursor:pointer;background:var(--paper-sunken);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-top:1px;display:flex}.self-check[data-checked=true]{background:var(--indigo);border-color:var(--indigo)}.self-check svg{stroke:#f4f2ea;opacity:0;width:13px;height:13px}.self-check[data-checked=true] svg{opacity:1}.self-body .cat-name{font-size:13.5px}.self-budget{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink-soft);margin-top:3px;font-size:12px}.self-note{color:var(--ink-soft);margin-top:6px;font-size:12.5px;line-height:1.5}.foot-note{color:var(--ink-faint);text-align:center;margin:24px 0 8px;font-size:11px;line-height:1.6}.tabbar{z-index:30;background:var(--paper-raised);border-top:1px solid var(--border);padding:6px 8px calc(6px + env(safe-area-inset-bottom));justify-content:space-around;max-width:480px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-btn{color:var(--ink-faint);font-family:var(--font-face);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:6px 10px;font-size:10.5px;font-weight:700;display:flex}.tab-btn svg{stroke:currentColor;fill:none;stroke-width:1.8px;width:20px;height:20px}.tab-btn[aria-selected=true]{color:var(--indigo)}.tab-btn:focus-visible,.chip-toggle:focus-visible,.self-check:focus-visible,.ticket-head:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}.info-disclosure{margin-left:4px;display:inline-block}.info-disclosure summary{border:1px solid var(--ink-faint);width:14px;height:14px;color:var(--ink-faint);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:50%;justify-content:center;align-items:center;font-size:9.5px;font-weight:800;list-style:none;display:inline-flex}.info-disclosure summary::-webkit-details-marker{display:none}.info-disclosure summary:before{content:"i"}.info-disclosure[open] summary{color:var(--indigo);border-color:var(--indigo)}.info-disclosure p{color:var(--ink-soft);text-transform:none;letter-spacing:0;margin:6px 0 0;font-size:11px;font-weight:500;line-height:1.5}.pocket-card{background:var(--paper-raised);border:1px solid var(--gold);border-radius:var(--radius);margin-bottom:14px;padding:14px 16px}.pocket-card .amount-row{justify-content:space-between;align-items:baseline;display:flex}.pocket-card .amount{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--gold);font-size:24px;font-weight:700}.pocket-card .amount-sub{color:var(--ink-soft);font-size:11px;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.pocket-ledger{border-top:1px dashed var(--border);margin-top:10px;padding-top:10px}.pocket-ledger .row{color:var(--ink-soft);justify-content:space-between;padding:3px 0;font-size:12.5px;display:flex}.pocket-ledger .row .amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink)}.pocket-ledger .row.total{border-top:1px solid var(--border);color:var(--ink);margin-top:4px;padding-top:6px;font-weight:700}.topbar-inner{align-items:center}.topbar-left{align-items:center;gap:10px;display:flex}.back-btn{border:1px solid var(--border);background:var(--paper-raised);cursor:pointer;width:34px;height:34px;color:var(--ink);box-shadow:var(--shadow);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.back-btn:active{transform:scale(.96)}.back-btn:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}.back-btn svg{width:18px;height:18px}.home-page{padding-top:8px;padding-bottom:40px}.home-hero{padding:40px 4px 24px}.home-eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--gold);font-size:11px;font-weight:800}.home-title{letter-spacing:-.02em;margin:8px 0 4px;font-size:34px;font-weight:800}.home-sub{color:var(--ink-soft);margin:0;font-size:13px}.home-grid{flex-direction:column;gap:12px;display:flex}.topic-card{text-align:left;background:var(--paper-raised);border:1px solid var(--border);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);cursor:pointer;color:var(--ink);align-items:center;gap:14px;padding:16px;display:flex}.topic-card:active{transform:scale(.99)}.topic-card:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}.topic-card:disabled{opacity:.5;cursor:default}.topic-emoji{flex-shrink:0;font-size:26px;line-height:1}.topic-text{flex:1;min-width:0}.topic-label{letter-spacing:-.01em;font-size:16px;font-weight:800}.topic-subtitle{color:var(--ink-soft);margin-top:2px;font-size:12.5px}.topic-chevron{width:20px;height:20px;color:var(--ink-faint);flex-shrink:0}.warn-note{background:var(--due-tint);color:var(--due);border:1px solid var(--due);border-radius:10px;margin-top:12px;padding:10px 12px;font-size:12.5px;font-weight:600;line-height:1.5}.flight-leg{margin-bottom:12px}.flight-leg-head{justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;display:flex}.flight-leg-label{text-transform:uppercase;letter-spacing:.06em;color:var(--indigo);font-size:12px;font-weight:800}.flight-no{color:var(--ink-soft);text-align:right;font-size:12px;font-weight:700}.flight-route{grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;display:grid}.flight-point{min-width:0}.flight-point.end{text-align:right}.airport-code{letter-spacing:-.01em;font-size:22px;font-weight:800}.airport-time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;margin-top:1px;font-size:15px;font-weight:700}.airport-meta{color:var(--ink-soft);margin-top:2px;font-size:11px;line-height:1.35}.flight-arrow{color:var(--ink-faint);flex-direction:column;align-items:center;padding:0 4px;display:flex}.flight-arrow svg{width:44px;height:12px}.flight-dur{white-space:nowrap;color:var(--ink-faint);margin-bottom:3px;font-size:10px}.flight-leg-foot{border-top:1px dashed var(--border);color:var(--ink-soft);justify-content:space-between;margin-top:12px;padding-top:10px;font-size:11.5px;font-weight:600;display:flex}.layover{background:var(--gold-tint);border:1px dashed var(--gold);border-radius:10px;margin:-2px 0 12px;padding:10px 14px}.layover-title{color:var(--gold);justify-content:space-between;align-items:baseline;font-size:12.5px;font-weight:800;display:flex}.layover-dur{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.layover-place{color:var(--ink-soft);margin-top:3px;font-size:12px}.layover-note{color:var(--ink-soft);margin-top:5px;font-size:11.5px;font-style:italic;line-height:1.5}.pax-row{border-bottom:1px dashed var(--border);justify-content:space-between;gap:10px;padding:5px 0;display:flex}.pax-name{font-size:13.5px;font-weight:700}.pax-ticket{font-family:var(--font-mono);color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:12px}.pax-pnr{color:var(--ink-soft);margin-top:10px;font-size:12px}.pax-pnr b{font-family:var(--font-mono);color:var(--ink);letter-spacing:.02em}.bag-line{color:var(--ink-soft);margin-top:7px;font-size:12.5px;line-height:1.5}.bag-label{text-transform:uppercase;letter-spacing:.03em;min-width:66px;color:var(--ink-faint);margin-right:4px;font-size:10px;font-weight:700;display:inline-block}.prep-list{margin:0;padding-left:20px}.prep-list li{color:var(--ink);margin-bottom:7px;font-size:13px;line-height:1.6}.prep-list li::marker{color:var(--gold)}.itin-day{border:1px solid var(--border);border-radius:var(--radius);background:var(--paper-raised);box-shadow:var(--shadow);margin-bottom:12px;overflow:hidden}.itin-day-head{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:none;align-items:center;gap:10px;padding:13px 14px;display:flex}.itin-day-head:focus-visible{outline:2px solid var(--indigo);outline-offset:-2px}.itin-day-heading{flex:1;min-width:0}.itin-day-top{align-items:baseline;gap:8px;display:flex}.itin-day-num{letter-spacing:-.01em;font-size:16px;font-weight:800}.itin-day-date{color:var(--ink-soft);font-size:12px;font-weight:600}.itin-day-theme{color:var(--indigo);margin-top:1px;font-size:12.5px;font-weight:600}.itin-weather{color:var(--ink-soft);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}.itin-chevron{transform:rotate(90deg)}.itin-day.is-closed .itin-chevron{transform:rotate(0)}.itin-day-body{padding:2px 14px 14px}.itin-day-note{background:var(--gold-tint);color:var(--gold);border-radius:10px;margin-bottom:12px;padding:9px 12px;font-size:12px;font-weight:600;line-height:1.5}.itin-timeline{position:relative}.itin-item{border-top:1px dashed var(--border);grid-template-columns:62px 1fr;gap:10px;padding:10px 0;display:grid}.itin-item:first-child{border-top:none;padding-top:4px}.itin-time{color:var(--ink-faint);font-variant-numeric:tabular-nums;padding-top:2px;font-size:11px;font-weight:700;line-height:1.35}.itin-item-body{min-width:0}.itin-item-title{letter-spacing:-.005em;align-items:center;gap:6px;font-size:14px;font-weight:700;display:flex}.itin-emoji{font-size:15px}.itin-activity{color:var(--ink-soft);margin-top:4px;font-size:12.5px;line-height:1.5}.route{margin-top:10px;margin-bottom:2px}.route-names{display:flex}.route-name{text-align:center;flex:1 1 0;min-width:0;padding:0 3px;font-size:10px;font-weight:700;line-height:1.25}.route-bar{height:6px;margin:5px 0;display:flex;position:relative}.route-seg{flex:1 1 0;height:6px}.route-seg:first-child{border-radius:3px 0 0 3px}.route-seg:last-child{border-radius:0 3px 3px 0}.route-dot{background:var(--paper-raised);border:2px solid var(--ink-soft);border-radius:50%;width:9px;height:9px;position:absolute;top:50%;transform:translate(-50%,-50%)}.route-stations{min-height:28px;position:relative}.route-st{width:64px;color:var(--ink);font-size:9px;font-weight:700;line-height:1.2;position:absolute;top:0}.route-st.start{text-align:left;left:0;transform:translate(0)}.route-st.mid{text-align:center;transform:translate(-50%)}.route-st.end{text-align:right;transform:translate(-100%)}.itin-fares{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.fare-pill{font-variant-numeric:tabular-nums;border-radius:7px;padding:3px 8px;font-size:11px;font-weight:700}.fare-pill.transit{background:var(--indigo-tint);color:var(--indigo)}.fare-pill.entry{background:var(--gold-tint);color:var(--gold)}.fare-pill.oap{background:var(--gold);color:#fff;letter-spacing:.04em}.itin-note{color:var(--due);background:var(--due-tint);border-radius:8px;margin-top:8px;padding:6px 9px;font-size:11.5px;font-weight:600;line-height:1.45}.usj-switch{grid-template-columns:1fr 1fr;gap:8px;display:grid}.usj-tab{text-align:left;cursor:pointer;background:var(--paper-raised);border:1px solid var(--border);color:var(--ink);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;gap:3px;padding:11px 12px;display:flex}.usj-tab.is-active{border-color:var(--indigo);background:var(--indigo-tint)}.usj-tab:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}.usj-tab-name{letter-spacing:-.01em;font-size:13px;font-weight:800}.usj-tab-meta{color:var(--ink-soft);font-size:10.5px}.usj-stars{letter-spacing:-1px;font-size:9px}.usj-intro{color:var(--ink-soft);margin:12px 0 4px;font-size:12.5px;line-height:1.55}.usj-timeline{margin-top:6px}.usj-phase{text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:7px;margin:16px 0 8px;font-size:11px;font-weight:800;display:flex}.usj-phase-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.usj-phase.start{color:var(--ink-faint)}.usj-phase.start .usj-phase-dot{background:var(--ink-faint)}.usj-phase.morning{color:var(--gold)}.usj-phase.morning .usj-phase-dot{background:var(--gold)}.usj-phase.noon{color:var(--due)}.usj-phase.noon .usj-phase-dot{background:var(--due)}.usj-phase.evening{color:var(--indigo)}.usj-phase.evening .usj-phase-dot{background:var(--indigo)}.usj-step{grid-template-columns:68px 1fr;gap:10px;padding:8px 0;display:grid}.usj-step-time{color:var(--ink-faint);font-variant-numeric:tabular-nums;padding-top:1px;font-size:11px;font-weight:700;line-height:1.35}.usj-step-title{letter-spacing:-.005em;font-size:13.5px;font-weight:700}.usj-step-detail{color:var(--ink-soft);margin-top:3px;font-size:12.5px;line-height:1.5}.usj-legend{gap:6px;margin-bottom:10px;display:flex}.tier-badge{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:6px;padding:2px 7px;font-size:9.5px;font-weight:800}.tier-badge.top{background:var(--indigo-tint);color:var(--indigo)}.tier-badge.medium{background:var(--gold-tint);color:var(--gold)}.tier-badge.basic{background:var(--paper-sunken);color:var(--ink-faint)}.usj-zone{padding-top:12px}.usj-zone-name{letter-spacing:-.01em;align-items:center;gap:7px;font-size:14px;font-weight:800;display:flex}.usj-zone-emoji{font-size:16px}.usj-att-list{margin:8px 0 0;padding:0;list-style:none}.usj-att{border-top:1px dashed var(--border);border-left:3px solid #0000;justify-content:space-between;align-items:center;gap:8px;padding:6px 0 6px 9px;display:flex}.usj-att:first-child{border-top:none}.usj-att.tier-top{border-left-color:var(--indigo)}.usj-att.tier-medium{border-left-color:var(--gold)}.usj-att-name{min-width:0;font-size:12.5px;font-weight:600}.usj-att.tier-top .usj-att-name{font-weight:700}.usj-att-tags{flex-shrink:0;align-items:center;gap:5px;display:flex}.usj-closing{color:var(--due);background:var(--due-tint);text-transform:uppercase;letter-spacing:.03em;border-radius:6px;padding:2px 6px;font-size:9.5px;font-weight:800}.usj-maps{grid-template-columns:1fr 1fr;gap:8px;display:grid}.usj-map{margin:0}.usj-map-btn{border:1px solid var(--border);background:var(--paper-raised);cursor:zoom-in;width:100%;box-shadow:var(--shadow);border-radius:12px;padding:0;display:block;position:relative;overflow:hidden}.usj-map-btn img{width:100%;height:auto;display:block}.usj-map-btn:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}.usj-map-zoom{color:#fff;background:#0000008c;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:flex;position:absolute;bottom:6px;right:6px}.usj-map-cap{color:var(--ink-soft);text-align:center;margin:6px 2px 0;font-size:10.5px;line-height:1.4}.usj-map-note{color:var(--ink-faint);margin:10px 2px 0;font-size:11.5px;line-height:1.5}.usj-lightbox{z-index:60;cursor:zoom-out;background:#000000e0;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.usj-lightbox img{cursor:default;border-radius:8px;max-width:100%;max-height:92vh}.usj-lightbox-close{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;width:40px;height:40px;font-size:26px;line-height:1;position:absolute;top:12px;right:16px}.ins-row{border-top:1px dashed var(--border);justify-content:space-between;gap:12px;padding:6px 0;display:flex}.ins-row:first-child{border-top:none}.ins-label{color:var(--ink-faint);white-space:nowrap;font-size:12px;font-weight:700}.ins-value{text-align:right;font-size:13px;font-weight:600}.ins-value.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.cover-row{border-top:1px dashed var(--border);justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;display:flex}.cover-row:first-child{border-top:none}.cover-label{font-size:13px;font-weight:600}.cover-amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--paid);white-space:nowrap;font-size:14px;font-weight:700}.eat-zone{border:1px solid var(--border);border-radius:var(--radius);background:var(--paper-raised);box-shadow:var(--shadow);margin-bottom:10px;overflow:hidden}.eat-zone-head{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:none;align-items:center;gap:10px;padding:13px 14px;display:flex}.eat-zone-head:focus-visible{outline:2px solid var(--indigo);outline-offset:-2px}.eat-zone-name{letter-spacing:-.01em;flex:1;font-size:15px;font-weight:800}.eat-zone-count{color:var(--indigo);background:var(--indigo-tint);border-radius:999px;padding:2px 9px;font-size:11px;font-weight:800}.eat-chevron{transform:rotate(90deg)}.eat-zone.is-closed .eat-chevron{transform:rotate(0)}.eat-list{padding:0 14px 6px}.eat-item{border-top:1px dashed var(--border);padding:11px 0}.eat-item-top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.eat-name{letter-spacing:-.005em;font-size:14px;font-weight:700}.eat-cost{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--gold);white-space:nowrap;font-size:13px;font-weight:700}.eat-tags{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.eat-tag{background:var(--paper-sunken);color:var(--ink-soft);white-space:nowrap;border-radius:6px;padding:2px 7px;font-size:10px;font-weight:700}.eat-tag.beef{background:var(--due-tint);color:var(--due)}.eat-note{color:var(--ink-soft);margin-top:6px;font-size:12px;line-height:1.5}.hotel-date{letter-spacing:-.01em;margin-top:1px;font-size:14px;font-weight:800}.hotel-links{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.hotel-link{color:var(--indigo);background:var(--indigo-tint);border-radius:8px;padding:6px 11px;font-size:12px;font-weight:700;text-decoration:none}.hotel-link:active{transform:scale(.98)}.amenity-wrap{flex-wrap:wrap;gap:6px;display:flex}.amenity{color:var(--ink-soft);background:var(--paper-raised);border:1px solid var(--border);border-radius:999px;padding:4px 9px;font-size:11px;font-weight:600}.cancel-fee{color:var(--due);white-space:nowrap;font-size:12px;font-weight:700}.cancel-fee.free{color:var(--paid)}.status-pill.pending-pill{background:var(--pending-tint);color:var(--pending)}.esim-features{flex-wrap:wrap;gap:8px;display:flex}.esim-feat{border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700}.esim-feat.on{background:var(--paid-tint);color:var(--paid)}.esim-feat.off{background:var(--paper-sunken);color:var(--ink-faint);text-decoration:line-through}.esim-old{color:var(--ink-faint);font-size:11px;font-family:var(--font-mono);margin-left:4px;text-decoration:line-through}.esim-disc{color:var(--due);background:var(--due-tint);border-radius:5px;margin-left:4px;padding:1px 6px;font-size:10px;font-weight:800}.self-total{border-radius:var(--radius);background:var(--gold-tint);color:var(--gold);justify-content:space-between;align-items:baseline;margin-top:6px;padding:12px 15px;font-size:13px;font-weight:700;display:flex}.self-total-amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:15px}.fj{background:var(--paper-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px;padding:4px 16px 14px}.fj-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:8px;padding:12px 0 10px;display:flex}.fj-plane{width:18px;height:18px;color:var(--indigo);flex-shrink:0}.fj-head-main{flex:1;align-items:baseline;gap:8px;display:flex}.fj-label{letter-spacing:-.01em;font-size:14px;font-weight:800}.fj-date{color:var(--ink-soft);font-size:12px}.fj-total{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.tl-row{grid-template-columns:48px 22px 1fr;column-gap:10px;display:grid}.tl-time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;padding-top:1px;font-size:15px;font-weight:700}.tl-time.small{color:var(--ink-faint);font-size:10.5px;font-weight:600;line-height:1.3;font-family:var(--font-face);padding-top:3px}.tl-rail{position:relative}.tl-rail:before{content:"";background:var(--ink-faint);opacity:.55;width:2px;position:absolute;top:0;bottom:0;left:11px;transform:translate(-50%)}.tl-rail.dotted:before{border-left:2px dotted var(--ink-faint);opacity:.7;background:0 0;width:0}.tl-stop.first .tl-rail:before{top:50%}.tl-stop.last .tl-rail:before{bottom:50%}.tl-dot{background:var(--indigo);width:9px;height:9px;box-shadow:0 0 0 3px var(--paper-raised);border-radius:50%;position:absolute;top:4px;left:11px;transform:translate(-50%)}.tl-stop .tl-body{padding:0 0 2px}.tl-airport{font-size:13.5px;line-height:1.35}.tl-airport b{letter-spacing:-.01em;font-size:15px;font-weight:800}.tl-airport-name{color:var(--ink-soft)}.tl-term{color:var(--indigo);background:var(--indigo-tint);white-space:nowrap;border-radius:5px;margin-left:4px;padding:1px 6px;font-size:10px;font-weight:700}.tl-airport-date{color:var(--ink-faint);margin-top:1px;font-size:10.5px}.tl-seg .tl-body{padding:6px 0}.tl-flight{flex-direction:column;gap:1px;display:flex}.tl-airline{color:var(--ink);font-size:12px;font-weight:700}.tl-flight-meta{color:var(--ink-soft);font-size:11px}.tl-layover-row .tl-body{padding:4px 0 8px}.layover-box{background:var(--paper-sunken);border-radius:10px;padding:9px 12px}.lo-title{font-size:12px;font-weight:800}.lo-warn{color:var(--due);margin-top:5px;font-size:11.5px;font-weight:600}.lo-ok{color:var(--paid);margin-top:3px;font-size:11.5px;font-weight:600}
