:root{
  --ink:#16243a; --paper:#eef3f8; --surface:#fff; --line:#cfd9e4; --muted:#5b6b7f;
  --signal:#f2c14e; --signal-ink:#16243a; --free:#2a7f7a; --free-soft:#d5ebe8;
  --warn:#b4561f; --overhead:#9fb0c4; --chip:#e3eaf2;
  color-scheme:light; box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){:root{
  --ink:#e8eef6; --paper:#0f1826; --surface:#172338; --line:#2a3a54; --muted:#9aabc2;
  --free:#4fb3ab; --free-soft:#163b3b; --warn:#e8915a; --overhead:#3d5170; --chip:#22324c; color-scheme:dark;
}}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.5 Barlow,"Segoe UI",system-ui,sans-serif}
h1,h2,h3,.cond{font-family:"Barlow Condensed","Arial Narrow",Barlow,sans-serif;letter-spacing:.01em}
a{color:inherit}
.wrap{max-width:1080px;margin:0 auto;padding:20px 20px 60px}
button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--signal);outline-offset:2px}
[hidden]{display:none!important}

header.top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.mark{width:34px;height:34px;border-radius:6px;background:var(--signal);color:var(--signal-ink);display:grid;place-items:center;font:700 20px "Barlow Condensed",sans-serif}
.brand h1{margin:0;font-size:28px;font-weight:700;line-height:1}
.brand span{color:var(--muted);font-size:14px}
.ghost{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:500 15px Barlow,sans-serif;padding:7px 12px;border-radius:6px;cursor:pointer}

.modes{display:flex;gap:4px;overflow-x:auto;background:var(--chip);border-radius:8px;padding:3px;margin-bottom:14px}
.modes button{flex:1 0 auto;border:0;background:transparent;color:var(--ink);font:600 15px Barlow,sans-serif;padding:9px 14px;border-radius:6px;cursor:pointer;white-space:nowrap}
.modes button[aria-selected="true"]{background:var(--surface);box-shadow:0 1px 0 var(--line)}
.lede{margin:0 0 12px;color:var(--muted);max-width:70ch}

.form{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px 16px;align-items:end}
label{display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--muted);font-weight:500}
select,input[type=datetime-local],input[type=number],input[type=time],input:not([type]){font:500 16px Barlow,sans-serif;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:9px 10px;width:100%;min-width:0}
.check{flex-direction:row;align-items:center;gap:8px;color:var(--ink);padding-bottom:10px}
.check input{width:18px;height:18px;accent-color:var(--free)}
.flight{display:flex;gap:8px;align-items:end;grid-column:span 2}
.flight label{flex:1}
.flight input{text-transform:uppercase}
@media (max-width:560px){.flight{grid-column:1/-1}}
.btn{border:0;background:var(--signal);color:var(--signal-ink);font:600 15px Barlow,sans-serif;padding:10px 14px;border-radius:6px;cursor:pointer;white-space:nowrap}
.status{grid-column:1/-1;margin:0;font-size:15px}
.status:empty{display:none}

.program{margin-top:12px}
.program:empty{display:none}
.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.card h3{margin:0 0 4px;font-size:21px}
.card p{margin:4px 0}

.board{margin:22px 0 8px}
.headline{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.big{font:700 clamp(42px,8vw,70px)/1 "Barlow Condensed",sans-serif}
.of{color:var(--muted);font-size:17px}
.verdict{margin:6px 0 14px;font-size:18px;max-width:64ch}
.ribbon{display:flex;height:58px;border-radius:8px;overflow:hidden;border:1px solid var(--line)}
.seg{display:flex;flex-direction:column;justify-content:center;padding:0 8px;min-width:0;font-size:13px;line-height:1.2;background:var(--overhead);border-right:1px solid var(--paper);white-space:nowrap;overflow:hidden}
.seg b{font:600 15px "Barlow Condensed",sans-serif}
.seg.free{background:var(--free);color:#fff}
.seg.free b{font-size:18px}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font-size:14px;color:var(--muted)}
.legend b{color:var(--ink);font-weight:600}

.cols{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;margin-top:24px}
@media (max-width:780px){.cols{grid-template-columns:1fr}}
section h2,.res h2{font-size:24px;margin:0 0 4px;font-weight:600}
p.sub{margin:0 0 10px;color:var(--muted);font-size:15px}
.block{margin-bottom:26px}

.timeline{list-style:none;margin:0;padding:0;border-left:3px solid var(--line);margin-left:6px}
.timeline li{position:relative;padding:0 0 16px 18px}
.timeline li::before{content:"";position:absolute;left:-8px;top:6px;width:13px;height:13px;border-radius:50%;background:var(--surface);border:3px solid var(--free)}
.timeline li.edge::before{border-color:var(--overhead)}
.timeline .when{font:600 15px "Barlow Condensed",sans-serif;color:var(--free)}
.timeline li.edge .when{color:var(--muted)}
.timeline .name{font-weight:600}
.timeline .meta{color:var(--muted);font-size:14px}

.list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.list li{padding:11px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:2px 12px}
.list .name{font-weight:600}
.list .meta{grid-column:1/2;color:var(--muted);font-size:14px}
.list li.dim .name,.list li.dim .meta{opacity:.55}
.tag{align-self:start;font:600 13px Barlow,sans-serif;padding:3px 8px;border-radius:5px;background:var(--chip);white-space:nowrap}
.tag.fits{background:var(--free-soft);color:var(--free)}
.tag.no{background:transparent;color:var(--muted);border:1px solid var(--line)}
.gate{font:700 22px "Barlow Condensed",sans-serif;text-align:right}
.gate small{display:block;font:500 12px Barlow,sans-serif;color:var(--muted)}

.advice{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.advice li{border-left:4px solid var(--signal);background:var(--surface);padding:10px 12px;border-radius:0 8px 8px 0;font-size:15px}
.advice li b{display:block;font:600 17px "Barlow Condensed",sans-serif}

.weather{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.wday{flex:0 0 auto;min-width:86px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:14px}
.wday b{display:block;font:600 15px "Barlow Condensed",sans-serif}
.wday .t{font:700 20px "Barlow Condensed",sans-serif}

.days{display:grid;gap:18px}
.day{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.day h3{margin:0 0 10px;font-size:22px}
.day h3 span{font:500 15px Barlow,sans-serif;color:var(--muted);margin-left:6px}

.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:18px 0 0}
.actions .msg{font-size:14px;color:var(--muted)}
.drawer{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:14px}
.drawer-head{display:flex;justify-content:space-between;align-items:center}
.drawer h2{margin:0;font-size:22px}
.note{margin-top:34px;font-size:14px;color:var(--muted);max-width:75ch}
.empty{color:var(--muted);font-size:15px}

.basefind{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}
.basefind .picks{grid-column:1/-1;border-top:0}
.basefind .picks:empty{display:none}
.basefind .picks button{all:unset;cursor:pointer;display:block;width:100%}
.basefind .picks li{grid-template-columns:1fr}
.loading{color:var(--muted);padding:24px 0}
.src{font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:1px 6px;margin-left:6px;vertical-align:2px;font-weight:500}

.wxhead{display:flex;align-items:center;justify-content:space-between;gap:10px}
.units{display:inline-flex;background:var(--chip);border-radius:6px;padding:2px}
.units button{border:0;background:transparent;color:var(--ink);font:600 14px Barlow,sans-serif;padding:4px 10px;border-radius:5px;cursor:pointer}
.units button[aria-pressed="true"]{background:var(--surface);box-shadow:0 1px 0 var(--line)}

.interests{grid-column:1/-1;border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 18px}
.interests legend{font-size:14px;color:var(--muted);font-weight:500;padding:0;margin-bottom:6px;width:100%}
.interests .check{padding-bottom:4px}
.day .sublabel{font:600 15px "Barlow Condensed",sans-serif;color:var(--muted);margin:14px 0 6px;text-transform:uppercase;letter-spacing:.04em}
.switch{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:600 14px Barlow,sans-serif;padding:6px 12px;border-radius:6px;cursor:pointer;margin:4px 6px 0 0}

/* ---- v0.6: map ---- */
.mapblock{margin-top:22px}
.mapslot{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}
.map{height:380px;width:100%}
.maptabs{display:flex;gap:6px;overflow-x:auto;margin-bottom:8px}
.maptabs button{flex:0 0 auto;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:600 14px Barlow,sans-serif;padding:6px 12px;border-radius:999px;cursor:pointer}
.maptabs button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.pin{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font:700 14px "Barlow Condensed",Barlow,sans-serif;background:var(--free);color:#fff;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.35);cursor:default}
.pin.home{background:var(--signal);color:var(--signal-ink)}
.pin.air{background:#16243a;color:#fff;font-size:15px}
.pin.event{background:var(--warn)}
.daylinks{margin:4px 0 0 24px;font-size:14px}

/* ---- v0.6: editing a plan ---- */
.timeline .tools{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.timeline .tools button{border:1px solid var(--line);background:var(--surface);color:var(--muted);font:600 13px Barlow,sans-serif;padding:4px 10px;border-radius:6px;cursor:pointer;min-height:30px}
.timeline .tools button:hover{color:var(--ink)}
.timeline .tools button[aria-pressed="true"]{background:var(--signal);color:var(--signal-ink);border-color:var(--signal)}
.timeline li.locked::before{border-color:var(--signal)}
.timeline li.ev::before{border-color:var(--warn)}
.timeline li.ev .when{color:var(--warn)}
button.tag{border:0;cursor:pointer;font:600 13px Barlow,sans-serif}
.linkbtn{all:unset;cursor:pointer;color:var(--free);font-weight:600;text-decoration:underline}

/* ---- v0.6: phones ---- */
@media (max-width:560px){
  .wrap{padding:14px 14px 48px}
  .form{padding:12px;gap:10px 12px;grid-template-columns:1fr 1fr}
  .form > label:has(input[type=datetime-local]){grid-column:1/-1}
  .brand h1{font-size:24px}
  .modes button{padding:8px 11px;font-size:14px}
  .map{height:300px}
  .verdict{font-size:16px}
  .day{padding:12px}
  .timeline li{padding-left:14px}
  .ribbon{height:52px}
  .seg{padding:0 5px}
}

/* ---- v0.7 ---- */
.topbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.buildrow{grid-column:1/-1;display:flex;gap:12px;align-items:center}
.btn.build{padding:12px 20px;font-size:16px}
.intro{background:var(--surface);border:1px dashed var(--line);border-radius:10px;padding:18px 20px;margin-top:20px}
.intro h2{margin:0 0 6px;font-size:22px}
.intro ul{margin:8px 0 0;padding-left:20px;color:var(--muted)}
.stale{font-size:14px;color:var(--muted)}
.partner{display:inline-block;margin-top:6px;font:600 14px Barlow,sans-serif;color:var(--free)}
.partners{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.partners a{border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;font:600 14px Barlow,sans-serif;padding:7px 12px;border-radius:6px}
.budget table{width:100%;border-collapse:collapse;font-size:15px}
.budget th,.budget td{text-align:right;padding:7px 8px;border-bottom:1px solid var(--line)}
.budget th:first-child,.budget td:first-child{text-align:left}
.budget tfoot td{font-weight:700}
.tablewrap{overflow-x:auto}
.guides-link{margin-top:28px;font-size:15px}
.acctform{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.acctform input{flex:1 1 220px;font:500 16px Barlow,sans-serif;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:9px 10px}
/* guide pages */
.guide .gtitle{font-size:clamp(32px,6vw,52px);margin:10px 0 6px;line-height:1.05}
.guide .crumbs{font-size:14px;color:var(--muted)}
.guide .btn{display:inline-block;text-decoration:none;margin:6px 0 14px}
.gtable{width:100%;border-collapse:collapse;font-size:15px}
.gtable th,.gtable td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line)}
.guide h3{font-size:19px;margin:16px 0 4px}
.cities{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px 16px}
.cities a{text-decoration:none}

/* ---- v0.8: site pages ---- */
.ghost.danger{color:var(--warn);border-color:var(--warn)}
body.site{padding-top:env(safe-area-inset-top,0px)}
.sitenav{border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:20}
.navwrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:12px;padding-bottom:12px;flex-wrap:wrap}
.sitenav nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.sitenav nav a{color:var(--ink);text-decoration:none;font-weight:500}
.sitenav nav a:hover{text-decoration:underline}
.bname{font:700 22px "Barlow Condensed",Barlow,sans-serif}
.navcta,.big-cta{text-decoration:none;display:inline-block}
.navcta{padding:8px 14px}
.prose{max-width:760px}
.prose h1{font-size:clamp(34px,6vw,52px);line-height:1.05;margin:28px 0 10px}
.prose h2{font-size:26px;margin:30px 0 6px}
.prose p,.prose li{font-size:17px;line-height:1.6}
.prose ul{padding-left:22px}
.kicker{text-transform:uppercase;letter-spacing:.08em;font-size:13px;color:var(--muted);margin:26px 0 -18px;font-weight:600}
.lede.lead{font-size:20px;color:var(--ink);max-width:56ch}
.big-cta{font-size:18px;padding:13px 22px;margin:18px 0}
.biglink{text-decoration:none;font-size:17px;padding:12px 18px}
.ctarow{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:36px;align-items:center;padding:44px 0 30px}
.hero h1{font-size:clamp(40px,7vw,72px);line-height:1;margin:0 0 14px}
.herodemo{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px}
.demo-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.demo-head .big{font-size:48px}
.demo-ribbon{display:flex;height:54px;border-radius:8px;overflow:hidden;border:1px solid var(--line);margin:8px 0 16px}
.timeline.demo{margin-top:6px}
.modes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin:30px 0}
.modecard{display:block;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px;text-decoration:none;color:var(--ink);transition:border-color .15s}
.modecard:hover{border-color:var(--free)}
.modecard h2{margin:0 0 6px;font-size:24px}
.modecard p{margin:0 0 10px;color:var(--muted)}
.modecard .more{font-weight:600;color:var(--free)}
.steps h2,.why h2,.popular h2,.closing h2{font-size:30px;margin:44px 0 12px}
.stepgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;padding:0;list-style:none;counter-reset:s}
.stepgrid li{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px;counter-increment:s;position:relative;padding-top:44px}
.stepgrid li::before{content:counter(s);position:absolute;top:14px;left:18px;width:24px;height:24px;border-radius:50%;background:var(--signal);color:var(--signal-ink);display:grid;place-items:center;font:700 14px "Barlow Condensed",sans-serif}
.stepgrid b{display:block;font:600 19px "Barlow Condensed",sans-serif;margin-bottom:4px}
.why{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:start}
.checks{list-style:none;padding:0;margin:44px 0 0;display:grid;gap:10px}
.checks li{padding-left:28px;position:relative;font-size:17px}
.checks li::before{content:"✓";position:absolute;left:0;color:var(--free);font-weight:700}
.closing{text-align:center;padding:20px 0 40px}
.featnav{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}
.featnav a{border:1px solid var(--line);border-radius:999px;padding:6px 14px;text-decoration:none;background:var(--surface);color:var(--ink)}
.note-box{background:var(--surface);border-left:4px solid var(--signal);padding:12px 14px;border-radius:0 8px 8px 0}
.attrib{margin-top:30px}
.sitefoot{border-top:1px solid var(--line);background:var(--surface);margin-top:50px;padding:30px 0 calc(24px + env(safe-area-inset-bottom,0px))}
.footgrid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:24px}
.footgrid h2{font-size:15px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:4px 0 8px}
.footgrid a{display:block;color:var(--ink);text-decoration:none;margin:4px 0}
.footgrid a.brand{display:flex}
.footgrid p{color:var(--muted)}
.fineprint{font-size:13px;color:var(--muted);margin-top:18px}
@media (max-width:820px){.hero,.why{grid-template-columns:1fr}.footgrid{grid-template-columns:1fr 1fr}.checks{margin-top:0}}
@media (max-width:560px){.sitenav nav{gap:12px;font-size:15px}.hero{padding-top:24px}}
