:root{
  --ink:#141414; --ink-2:#141414; --paper:#FFFFFF; --paper-2:#EEF1F6; --line:#DCE1E9; --muted:#6B6F76;
  --red:#D3202A; --red-deep:#A6161E; --blue:#1F4FB5; --blue-light:#E3EAFB; --yellow:#FFC72C; --yellow-light:#FFF3C7;
  --teal:var(--blue); --teal-soft:var(--blue-light);
  --bg:var(--paper); --card:var(--paper-2); --text:var(--ink);
  --ok:var(--blue); --warn:#8a6400; --radius:14px; --shadow:none;
  --display:"Fraunces",Georgia,serif; --body:"Public Sans",system-ui,-apple-system,Segoe UI,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--body);color:var(--text);background:var(--bg);line-height:1.5}
h1,h2,h3{font-family:var(--display);letter-spacing:-.01em;margin:0 0 .4rem;color:var(--ink)}
h1{font-size:clamp(2.1rem,6vw,3.4rem);line-height:1.08}
h2{font-size:1.6rem}
h3{font-size:1.15rem}
p{margin:.3rem 0}
a{color:var(--teal)}
.muted{color:var(--muted)} .small{font-size:.85rem}
main{max-width:1080px;margin:0 auto;padding:0 16px 80px}

.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:8px 16px;gap:4px 10px}
.brand{display:flex;align-items:center;gap:6px;text-decoration:none;color:var(--ink);font-family:var(--display);font-weight:800;font-size:1.15rem;letter-spacing:-.01em;white-space:nowrap}
.brand-mark{display:none}
.brand .dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--red);margin-left:1px;vertical-align:-1px}
.nav{display:flex;gap:4px}
.nav a{text-decoration:none;color:var(--ink-2);font-weight:600;font-size:.85rem;padding:6px 9px;border-radius:999px;white-space:nowrap}
@media(max-width:560px){.nav{width:100%;justify-content:flex-start}}
.nav a.on{background:var(--ink);color:#fff}
.pill{display:inline-block;background:var(--blue);color:#fff;border-radius:999px;font-size:.7rem;padding:0 6px;margin-left:3px;vertical-align:1px}

.view{display:none;padding-top:22px;scroll-margin-top:80px}
.view.on{display:block}
.hero{padding:34px 0 20px;max-width:720px}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700;color:var(--muted)}
.lede{font-size:1.1rem;color:var(--ink-2);max-width:600px}
.cta-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.btn{display:inline-block;border:1px solid var(--ink);background:#fff;color:var(--ink);padding:10px 16px;border-radius:999px;font-weight:600;text-decoration:none;cursor:pointer;font-size:.95rem;font-family:inherit}
.btn.primary{background:var(--red);border-color:var(--red);color:#fff}
.btn.primary:hover{background:var(--red-deep);border-color:var(--red-deep)}
.btn.ghost{border-color:var(--line);color:var(--ink-2)}
.btn.wide{width:100%;margin-top:14px}
.btn.sm{padding:6px 12px;font-size:.85rem}
.btn:disabled{opacity:.5;cursor:default}

.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:18px 0}
@media(min-width:720px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px}
.stat b{display:block;font-family:Fraunces,serif;font-size:1.8rem;color:var(--ink);line-height:1.1}
.stat span{font-size:.8rem;color:var(--muted)}

.home-grid{display:grid;gap:14px}
@media(min-width:820px){.home-grid{grid-template-columns:1.1fr 1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.picks{margin:.6rem 0 0;padding-left:1.2rem}
.picks li{margin:.35rem 0}
.picks small{color:var(--muted);display:block}
.how{padding-left:1.1rem;margin:.5rem 0}
.how li{margin:.4rem 0}

.section-head{margin-bottom:14px}
.filters{position:sticky;top:54px;z-index:10;background:var(--paper);padding:6px 0 10px}
.filters input[type=search],.filters select,.calc input,.calc select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff;color:var(--text)}
input:focus,select:focus,button:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.chips{display:flex;gap:6px;overflow-x:auto;padding:10px 0 4px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font-size:.85rem;font-weight:600;color:var(--ink-2);cursor:pointer;font-family:inherit}
.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}
.filter-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px;align-items:center}
@media(min-width:720px){.filter-row{grid-template-columns:1fr 1fr auto auto}}
.check{font-size:.85rem;display:flex;align-items:center;gap:6px;color:var(--ink-2);white-space:nowrap}

.list{display:grid;gap:10px}
@media(min-width:720px){.list{grid-template-columns:1fr 1fr}}
.r{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px;cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:6px 12px;transition:border-color .15s}
.r:hover{border-color:var(--ink)}
.r h4{margin:0;font-size:1rem;color:var(--ink);font-family:Inter,sans-serif;font-weight:700}
.r .where{font-size:.82rem;color:var(--muted)}
.r .score{text-align:right}
.r .score b{display:block;font-family:Fraunces,serif;font-size:1.35rem;color:var(--ink);line-height:1}
.r .score span{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.r .score.na b{color:var(--muted);font-size:1rem}
.tags{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap}
.tag{font-size:.72rem;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:2px 7px;color:var(--ink-2)}
.tag.char{background:var(--blue-light);border-color:#E3EAFB;color:var(--blue)}
.tag.price{background:var(--yellow-light);border-color:#efd889;color:var(--ink)}
.meter{grid-column:1/-1;height:4px;background:var(--line);border-radius:3px;overflow:hidden}
.meter i{display:block;height:100%;background:var(--blue)}

.drawer-bg{position:fixed;inset:0;background:rgba(15,42,68,.45);display:none;z-index:30}
.drawer-bg.on{display:block}
.drawer{position:fixed;z-index:31;background:#fff;right:0;top:0;bottom:0;width:min(520px,100%);transform:translateX(100%);transition:transform .25s;overflow-y:auto;padding:20px;box-shadow:-10px 0 40px rgba(0,0,0,.2)}
.drawer.on{transform:none}
@media(max-width:600px){.drawer{top:auto;max-height:88vh;width:100%;border-radius:18px 18px 0 0;transform:translateY(100%)}}
.drawer .close{float:right;border:0;background:var(--bg);border-radius:999px;width:34px;height:34px;font-size:1.1rem;cursor:pointer}
.kv{display:grid;grid-template-columns:120px 1fr;gap:6px 10px;font-size:.9rem;margin:12px 0}
.kv dt{color:var(--muted)} .kv dd{margin:0}
.links{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.links a{font-size:.85rem;border:1px solid var(--line);border-radius:999px;padding:6px 12px;text-decoration:none;color:var(--ink)}
.note{background:var(--bg);border-radius:10px;padding:10px 12px;font-size:.88rem}

.calc{display:grid;gap:14px}
@media(min-width:820px){.calc{grid-template-columns:1fr 1fr;align-items:start}}
.calc label{display:block;font-size:.85rem;font-weight:600;color:var(--ink-2);margin:10px 0 0;position:relative}
.calc label input,.calc label select{margin-top:4px;font-weight:400}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.suggest{position:absolute;left:0;right:0;top:100%;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);z-index:5;max-height:260px;overflow-y:auto;display:none}
.suggest.on{display:block}
.suggest div{padding:9px 12px;cursor:pointer;font-weight:400}
.suggest div:hover{background:var(--bg)}
.suggest small{color:var(--muted);display:block}
.chosen{margin-top:10px}
.chosen .box{background:var(--teal-soft);border-radius:10px;padding:10px 12px;font-size:.9rem}
.mode-toggle{display:flex;background:var(--bg);border-radius:999px;padding:3px;margin:14px 0 4px}
.mode{flex:1;border:0;background:transparent;border-radius:999px;padding:8px;font-weight:600;font-family:inherit;cursor:pointer;color:var(--ink-2)}
.mode.on{background:#fff;color:var(--ink);box-shadow:var(--shadow)}
.assump{margin-top:12px;border:1px solid var(--line);border-radius:10px;padding:8px 12px}
.assump summary{cursor:pointer;font-size:.85rem;font-weight:600;color:var(--ink-2)}
.items{display:grid;gap:6px;margin:10px 0}
.item{display:grid;grid-template-columns:1fr 80px 60px 30px;gap:6px;align-items:center}
.item input{padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit}
.item button{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:1.1rem}

.calc-result{position:sticky;top:70px;background:#fff}
.total{font-family:Fraunces,serif;font-size:2.6rem;color:var(--ink);line-height:1;margin:6px 0}
.per{color:var(--muted);font-size:.9rem}
.lines{width:100%;border-collapse:collapse;margin:14px 0;font-size:.9rem}
.lines td{padding:6px 0;border-bottom:1px solid var(--line)}
.lines td:last-child{text-align:right;font-variant-numeric:tabular-nums}
.lines tr.sub td{font-weight:700;border-bottom:2px solid var(--ink)}
.basis{font-size:.8rem;color:var(--muted);background:var(--bg);border-radius:8px;padding:8px 10px}

.trip-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.trip-row b{display:block}
.trip-row small{color:var(--muted)}
.trip-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:12px}
.trip-total .total{font-size:2rem}
.bar{height:10px;background:var(--line);border-radius:6px;overflow:hidden;margin:10px 0 4px;display:flex}
.bar i{display:block;height:100%}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:.8rem;color:var(--muted)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}

.foot{max-width:1080px;margin:0 auto;padding:24px 16px 50px;border-top:1px solid var(--line);font-size:.85rem;color:var(--muted)}
.foot b{color:var(--ink)}

/* planner additions */
.stepper{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.stepper a{display:grid;grid-template-columns:36px 1fr auto;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;text-decoration:none;color:var(--text)}
.stepper a:hover{border-color:var(--ink)}
.stepper .num{width:32px;height:32px;border-radius:50%;background:var(--bg);border:1px solid var(--line);display:grid;place-items:center;font-weight:700;color:var(--ink)}
.stepper li.done .num{background:var(--blue);color:#fff;border-color:var(--blue)}
.stepper b{display:block;color:var(--ink)} .stepper small{color:var(--muted)}
.stepper .arrow{color:var(--muted);font-size:1.3rem}
.steps-home{margin:18px 0}
.step-head{margin-bottom:14px}
.step-no{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700;color:var(--muted)}
.step .cta-row{margin-top:18px}
.day{margin-bottom:10px}
.dayhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.parks{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.park{text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px;cursor:pointer;font-family:inherit}
.park b{display:block;font-size:.9rem;color:var(--ink)} .park span{font-size:.75rem;color:var(--muted)}
.park.on{border-color:var(--blue);background:var(--blue)} .park.on b,.park.on span{color:#fff}
.park:disabled{opacity:.5;cursor:default}
.dayline{margin-top:10px;font-size:.9rem;color:var(--ink-2)}
.evrow{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--line);font-size:.9rem}
.evrow small{display:block;color:var(--muted)}
.subtabs{display:flex;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:3px;margin:4px 0 14px}
.subtabs button{flex:1;border:0;background:transparent;border-radius:999px;padding:8px;font-weight:600;font-family:inherit;cursor:pointer;color:var(--ink-2);font-size:.9rem}
.subtabs button.on{background:var(--ink);color:#fff}
.r.sel{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue) inset}
#hotelChosen{margin-top:14px}
#hotelChosen label{display:block;font-size:.85rem;font-weight:600;color:var(--ink-2);margin:10px 0 0}
#hotelChosen input,#hotelChosen select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;margin-top:4px;font-weight:400}
#step1 label,#step4 label{display:block;font-size:.85rem;font-weight:600;color:var(--ink-2);margin:10px 0 0}
#step1 input,#step4 input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;margin-top:4px;font-weight:400}
.lines.budget td{vertical-align:top}
.lines.budget td small{display:block;color:var(--muted);font-weight:400}
.lines.budget a{color:var(--ink);font-weight:600;text-decoration:none}
.sw{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.kind{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;border-radius:6px;padding:2px 6px;background:var(--bg);color:var(--muted)}
.kind.published{background:var(--blue-light);color:var(--blue)} .kind.estimate{background:var(--yellow-light);color:var(--ink)} .kind.yours{background:#DCE1E9;color:var(--ink)}

.hours{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.8rem;color:var(--ink-2);margin:4px 0 8px}
.hours b{color:var(--muted);font-weight:600}
.hours small{flex-basis:100%;color:var(--muted);font-size:.72rem}
.wx{display:flex;gap:10px;align-items:baseline;font-size:.85rem;color:var(--ink-2);margin:2px 0 6px}
.wx-t{font-weight:700;color:var(--ink)} .wx small{color:var(--muted);font-size:.72rem}
.wxrow{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}
.llday{display:grid;grid-template-columns:110px 1fr;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.llday small{display:block;color:var(--muted)}
.llopts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
@media(max-width:520px){.llday{grid-template-columns:1fr}}

.unlock{margin-top:14px;border-color:var(--red);background:#fff}
@media print{.topbar,.nav,.cta-row,.unlock,.foot,.stepper{display:none!important}.view{display:none!important}.view.on{display:block!important}body{background:#fff}}

.chat{margin-bottom:18px}
.chat-log{display:flex;flex-direction:column;gap:8px;max-height:420px;overflow-y:auto;padding:4px 0 10px}
.msg{max-width:85%;padding:10px 14px;border-radius:16px;font-size:.95rem;line-height:1.45}
.msg.bot{background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px;align-self:flex-start}
.msg.me{background:var(--blue);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}
.chat-form{display:flex;gap:8px}
.chat-form input{flex:1;padding:11px 12px;border:1px solid var(--line);border-radius:999px;font:inherit}
.chat-quick{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.chat-quick button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font-size:.85rem;font-family:inherit;cursor:pointer;color:var(--ink-2)}
.chat-quick button:hover{border-color:var(--ink)}

/* packing list */
.pack-group{margin:14px 0}
.pack-group h3{margin-bottom:6px}
.pack-item{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-top:1px solid var(--line);font-size:.95rem}
.pack-item input{margin-top:4px;accent-color:var(--blue)}
.pack-item.done span{text-decoration:line-through;color:var(--muted)}
.pack-item small{display:block;color:var(--muted);font-size:.8rem}
.pack-why{background:var(--yellow-light);border-radius:10px;padding:10px 12px;font-size:.9rem;margin:10px 0}
.pack-progress{height:8px;background:var(--line);border-radius:6px;overflow:hidden;margin:6px 0 2px}
.pack-progress i{display:block;height:100%;background:var(--blue)}

.shoplink{margin-left:auto;font-size:.8rem;font-weight:600;color:var(--blue);text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:3px 10px;white-space:nowrap;background:#fff}
.gear{display:grid;gap:8px}
@media(min-width:720px){.gear{grid-template-columns:1fr 1fr}}
.gear-item{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center}
.gear-item b{flex:1 1 55%}
.gear-item small{flex-basis:100%;color:var(--muted);font-size:.8rem;order:3}
.gear-item .btn{margin-left:auto}

/* ---------- app shell (sidebar design) ---------- */
body.app{background:var(--paper-2)}
.mark{flex:none}
.brand .dot{display:none}
.mobile-only{display:none}
.shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}
.side{position:sticky;top:0;height:100vh;overflow:auto;background:#fff;border-right:1px solid var(--line);padding:18px 16px;display:flex;flex-direction:column;gap:16px}
.side .brand{font-size:1.05rem}
.side-nav{display:flex;flex-direction:column;gap:2px}
.side-nav a{display:flex;align-items:center;justify-content:space-between;gap:8px;text-decoration:none;color:var(--ink-2);font-weight:600;font-size:.9rem;padding:9px 11px;border-radius:10px}
.side-nav a:hover{background:var(--paper-2)}
.side-nav a.on{background:var(--ink);color:#fff}
.side-nav a.on .pill{background:#fff;color:var(--ink)}
.side-nav a.ask{margin-top:8px;border:1px solid var(--line)}
.side-nav a.ask.on{border-color:var(--ink)}
.side-foot{margin-top:auto}
.side-foot a{color:var(--muted)}
.trip-card{background:var(--paper-2);border:1px solid var(--line);border-radius:14px;padding:14px}
.trip-card .eyebrow{margin:0 0 4px}
.trip-card .trip-name{display:block;font-family:var(--display);font-size:1.05rem}
.trip-card small{display:block;color:var(--muted);font-size:.8rem;margin:2px 0 8px}
.trip-card .trip-total{font-family:var(--display);font-weight:800;font-size:1.7rem;letter-spacing:-.02em;margin-bottom:8px}
.trip-card .btn{margin-top:10px;width:100%;text-align:center}
.split{display:flex;height:10px;border-radius:999px;overflow:hidden;background:var(--line)}
.split i{display:block;height:100%}
.split .pub,.legend .pub{background:var(--blue)}
.split .est,.legend .est{background:var(--yellow,#FFC72C)}
.split .you,.legend .you{background:var(--ink)}
.split.empty i{background:var(--line)}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.78rem;color:var(--muted);margin-top:8px}
.legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.total-card .total-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}
.total-card .total{font-family:var(--display);font-weight:800;font-size:2.2rem;letter-spacing:-.02em;line-height:1;margin:4px 0 12px}
.total-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0 10px}
.total-grid a{display:block;background:var(--paper-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;text-decoration:none;color:var(--ink)}
.total-grid a small{display:block;color:var(--muted);font-size:.75rem}
.total-grid a b{font-size:1.05rem}
@media(min-width:720px){.total-grid{grid-template-columns:repeat(4,1fr)}}
/* three-column dining tool */
@media(min-width:1180px){.calc{grid-template-columns:1.05fr .95fr .8fr}}
.calc-compare h3{margin:0 0 10px;font-size:1rem}
.calc-compare h3+ .rbar{margin-top:0}
.calc-compare h3:not(:first-child){margin-top:16px}
.rbar{display:grid;grid-template-columns:76px 1fr 44px;align-items:center;gap:8px;font-size:.8rem;margin:6px 0}
.rbar span{color:var(--muted)}
.rbar .track{height:7px;border-radius:999px;background:var(--line);overflow:hidden}
.rbar .track i{display:block;height:100%;background:var(--blue)}
.rbar b{text-align:right}
.near a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:.88rem}
.near a:first-child{border-top:0}
.near a small{display:block;color:var(--muted);font-size:.75rem;font-weight:400}
.near a>b{color:var(--blue);white-space:nowrap}
.menu-btn{font:inherit;font-weight:600;font-size:.85rem;border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;cursor:pointer}
@media(max-width:900px){
  .mobile-only{display:flex}
  .shell{display:block}
  .side{position:fixed;left:0;top:0;bottom:0;width:min(300px,86vw);z-index:40;transform:translateX(-100%);transition:transform .2s;box-shadow:0 0 0 100vw rgba(0,0,0,0)}
  body.menu-open .side{transform:none;box-shadow:0 0 0 100vw rgba(20,20,20,.35)}
  .side>.brand{display:none}
}
@media print{.side,.mobile-only{display:none!important}.shell{display:block}}
.pq-q{font-family:var(--display);font-size:1.5rem;margin:10px 0 6px}
.pq-done{margin-bottom:6px}
.pq-done .chip{font-size:.78rem}
.pq-done .chip b{font-weight:700}
/* park day timeline */
.day-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start;margin-bottom:10px}
.day-head h3{margin:2px 0 4px;font-family:var(--display);font-size:1.35rem}
.day-stats{display:flex;gap:8px}
.day-stats div{background:var(--paper-2);border:1px solid var(--line);border-radius:10px;padding:8px 12px;text-align:center;min-width:72px}
.day-stats b{display:block;font-family:var(--display);font-size:1.3rem;line-height:1.1}
.day-stats span{font-size:.72rem;color:var(--muted)}
.day-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:8px 0 14px;font-size:.85rem}
.day-controls label{font-weight:600;color:var(--ink-2)}
.day-controls select{margin-left:6px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff}
.timeline{list-style:none;margin:0;padding:0;border-left:2px solid var(--line);margin-left:70px}
.tl{display:grid;grid-template-columns:1fr auto;gap:4px 10px;position:relative;padding:9px 0 9px 18px;border-bottom:1px solid var(--line)}
.tl::before{content:"";position:absolute;left:-7px;top:16px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--blue)}
.tl.meal::before{border-color:var(--yellow);background:var(--yellow)}
.tl.rest::before{border-color:var(--line);background:var(--paper-2)}
.tl.show::before{border-color:var(--ink);background:var(--ink)}
.tl-time{position:absolute;left:-82px;top:10px;width:64px;text-align:right;font-weight:700;font-size:.85rem}
.tl-time small{display:block;font-weight:400;color:var(--muted);font-size:.72rem}
.tl-body b{display:block}
.tl-body small{display:block;color:var(--muted);font-size:.78rem;margin-top:2px}
.tl-body .tl-land{color:var(--ink-2)}
.tl-pills{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;align-content:flex-start}
.tl-pills i{font-style:normal;font-size:.68rem;font-weight:700;padding:3px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.tl-pills .pill-ll{background:var(--blue);color:#fff;border-color:var(--blue)}
.tl-pills .pill-live{background:var(--yellow-light);color:var(--ink);border-color:var(--yellow)}
.tl-pills .pill-kind{background:var(--paper-2)}
.day-note{background:var(--paper-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:.85rem;margin-top:12px}
@media(max-width:560px){.timeline{margin-left:0;border-left:0}.tl{grid-template-columns:1fr;padding-left:0}.tl::before{display:none}.tl-time{position:static;width:auto;text-align:left;display:flex;gap:8px}.tl-pills{justify-content:flex-start}}
.todos{list-style:none;margin:0;padding:0}
.todos li{display:grid;grid-template-columns:110px 1fr auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.todos li.past{opacity:.55}
.todo-date b{display:block;font-size:.9rem}.todo-date small{color:var(--muted);font-size:.75rem}
.todo-body b{display:block}.todo-body small{display:block;color:var(--muted);font-size:.8rem;margin-top:2px}
.todo-act{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:600px){.todos li{grid-template-columns:1fr}.todo-act{justify-content:flex-start}}
.tl-skip{font:inherit;font-size:.68rem;font-weight:700;border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 8px;cursor:pointer;color:var(--muted)}
.tl-skip:hover{border-color:var(--ink);color:var(--ink)}
.linkbtn{font:inherit;font-size:.8rem;background:none;border:0;color:var(--blue);text-decoration:underline;cursor:pointer;padding:0}
.explain-grid{display:grid;gap:12px}
@media(min-width:720px){.explain-grid{grid-template-columns:repeat(3,1fr)}}
.explain-grid div{background:var(--paper-2);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.explain-grid b{display:block;margin-bottom:4px}
.explain-grid p{margin:0;font-size:.85rem;color:var(--ink-2)}
.verdict{display:inline-block;font-style:normal;font-size:.72rem;font-weight:700;padding:3px 9px;border-radius:999px;margin-top:6px;border:1px solid var(--line)}
.verdict.yes{background:var(--blue);color:#fff;border-color:var(--blue)}
.verdict.maybe{background:var(--yellow-light);border-color:var(--yellow)}
.verdict.no{background:var(--paper-2);color:var(--ink-2)}
.advice{grid-column:1/-1;margin:8px 0 0;font-size:.88rem;color:var(--ink-2)}
.waits{grid-column:1/-1;margin-top:8px;display:grid;gap:5px}
.waits small{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}
.waits span{display:grid;grid-template-columns:minmax(120px,1fr) 2fr auto;gap:10px;align-items:center;font-size:.8rem}
.waits span b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.waits span i{display:block;height:7px;border-radius:999px;background:var(--blue);min-width:4px;justify-self:start;width:100%}
.waits span em{font-style:normal;color:var(--muted);white-space:nowrap}
.basis-line{grid-column:1/-1;margin:8px 0 0;font-size:.82rem;color:var(--ink-2)}
.basis-line .muted{display:block;margin-top:2px}
.trial-note{display:block;text-align:center;margin-top:8px;color:var(--muted);font-size:.74rem}
/* trip guide */
.guide{padding:28px 30px}
.g-cover h1{font-family:var(--display);font-size:2rem;margin:4px 0 8px;letter-spacing:-.02em}
.g-cover .lede{font-size:1rem;color:var(--ink-2);margin:0 0 14px}
.g-total{display:flex;flex-direction:column;gap:8px;margin:6px 0 10px}
.g-total small{display:block;color:var(--muted);font-size:.75rem}
.g-total b{font-family:var(--display);font-size:2.2rem;line-height:1}
.guide section{margin-top:28px;padding-top:18px;border-top:1px solid var(--line)}
.guide h2{font-family:var(--display);font-size:1.4rem;margin:0 0 10px}
.guide h3{font-family:var(--display);font-size:1.1rem;margin:16px 0 4px}
.g-tl,.g-todo{width:100%;border-collapse:collapse;font-size:.86rem}
.g-tl td,.g-todo td{padding:6px 8px 6px 0;border-bottom:1px solid var(--line);vertical-align:top}
.g-tl td:first-child{white-space:nowrap;width:70px;font-weight:700}
.g-tl td:last-child{white-space:nowrap;text-align:right}
.g-tl tr.meal td:nth-child(2) b{color:#8a6a00}
.g-tl i{font-style:normal;font-size:.68rem;font-weight:700;padding:1px 6px;border-radius:999px;background:var(--blue-light);color:var(--blue)}
.g-pack{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.g-pack ul{margin:4px 0 0;padding-left:16px;font-size:.84rem}
.g-pack li{margin:2px 0}
@media print{.noprint,.side,.topbar,.cta-row,.step-head{display:none!important}.shell{display:block}main{padding:0;max-width:none}.guide{border:0;box-shadow:none;padding:0}.g-day{break-inside:avoid}}

.lastyear{display:flex;gap:10px;margin:10px 0 6px;flex-wrap:wrap}
.lastyear span{flex:1 1 180px;background:var(--paper2,#EEF1F6);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column}
.lastyear small{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#6B6F76}
.lastyear b{font-family:Fraunces,serif;font-size:26px;line-height:1.1;color:#141414}
.lastyear em{font-style:normal;font-size:12px;color:#555}
@media print{.lastyear{break-inside:avoid}}

/* intake wizard, when to go, premier */
.nav-group{display:block;margin:12px 11px 2px;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
.pill.free{background:var(--yellow,#FFC72C);color:#141414}
.wizard{max-width:720px}
.wiz-prog{display:flex;align-items:center;gap:6px;margin-bottom:18px}
.wiz-prog i{flex:1;height:5px;border-radius:3px;background:var(--line)}
.wiz-prog i.done{background:var(--ink)}
.wiz-prog i.on{background:var(--red)}
.wiz-prog small{margin-left:8px;color:var(--muted);white-space:nowrap}
.wizard h3{font-family:Fraunces,serif;font-size:1.6rem;margin:0 0 12px;line-height:1.15}
.wiz-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wiz-opts .park{text-align:left;padding:14px}
.chips.wrap{flex-wrap:wrap;overflow:visible}
.chip button{background:none;border:0;color:inherit;font-size:1rem;cursor:pointer;padding:0 0 0 4px}
.wizard .suggest{position:static;margin-top:6px}
.wizard .suggest button{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:9px 12px;font:inherit;cursor:pointer}
.wizard .suggest button:hover{background:var(--bg)}
.chosen-line{margin:10px 0 6px}
.when-hero h3{font-family:Fraunces,serif;font-size:1.7rem;margin:4px 0 12px;line-height:1.15}
.when-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:8px 0 12px}
.when-grid div{background:var(--bg);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.when-grid small{font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:700}
.when-grid b{font-family:Fraunces,serif;font-size:1.5rem}
.when-grid span{font-size:.78rem;color:var(--ink-2)}
.stars{letter-spacing:1px;color:var(--blue);font-size:.95rem}
.when-table{width:100%;border-collapse:collapse;font-size:.9rem;margin-top:8px}
.when-table th{text-align:left;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--line)}
.when-table td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.when-table td small{display:block;color:var(--muted);font-size:.74rem;margin-top:2px}
.when-table tr.hl td{background:var(--yellow-light,#FFF3C7)}
.verdict-word{font-family:Fraunces,serif;font-size:1.05rem}
.v-best .verdict-word{color:#1f7a3f}.v-good .verdict-word{color:var(--blue)}.v-fair .verdict-word{color:#8a6d00}.v-tough .verdict-word{color:var(--red)}
.unlock-list{list-style:none;padding:0;margin:10px 0;counter-reset:u}
.unlock-list li{display:grid;grid-template-columns:28px 130px 1fr;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);font-size:.9rem;align-items:baseline}
.unlock-list li::before{counter-increment:u;content:counter(u);width:24px;height:24px;border-radius:50%;background:var(--ink);color:#fff;font-size:.75rem;display:inline-flex;align-items:center;justify-content:center;font-weight:700}
.unlock-list li span{color:var(--ink-2)}
.note-card{background:var(--bg);font-size:.9rem;margin-bottom:12px}
.tag.booked{background:var(--ink);color:#fff;border-color:var(--ink);vertical-align:middle;font-size:.65rem}
.planned-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}
.planned-row small{display:block;color:var(--muted);font-size:.78rem}
@media (max-width:640px){.wiz-opts{grid-template-columns:1fr}.unlock-list li{grid-template-columns:28px 1fr}.unlock-list li span{grid-column:2}.when-table td small{display:none}}
