/* Run Advisor */
.adv{padding-block:22px 60px;display:flex;flex-direction:column;gap:26px}
.adv-sec h2{font-size:26px;margin-bottom:4px}
.adv-sec > .lede{margin-bottom:12px;font-size:15px;color:var(--muted)}
.adv-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px 18px;align-items:center;border:1px solid var(--line);background:var(--panel);padding:12px 16px}
.adv-strip > div{display:flex;flex-direction:column;gap:2px;min-width:0}
.adv-strip b{font-family:var(--f-display);font-weight:700;font-size:22px;line-height:1.05;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adv-strip small{font-family:var(--f-mono);font-size:11px;color:var(--muted)}
.goal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.goal{border:1px solid var(--line);background:var(--panel);padding:14px 16px;display:flex;flex-direction:column;gap:8px;min-width:0}
.goal.first{border-color:var(--red);background:color-mix(in srgb,var(--red) 7%,var(--panel))}
.goal h3{font-size:21px;line-height:1.05}
.goal .why{font-size:14px}
.need-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:14px}
.need-list li{display:flex;gap:8px;align-items:baseline;padding:4px 0;border-bottom:1px solid var(--line)}
.need-list li:last-child{border-bottom:0}
.need-list li b{font-family:var(--f-mono);font-size:13px;min-width:54px;color:var(--warn)}
.need-list li.ok{color:var(--muted)} .need-list li.ok b{color:var(--good)}
.adv-plan{border:1px solid var(--line);background:var(--panel);padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.adv-plan .fld{flex:0 0 auto}
.adv-prefs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin-top:8px}
.adv-prefs .pref{display:flex;flex-direction:column;gap:5px;min-width:0}
.adv-prefs .pref.wide{grid-column:1/-1}
.adv-prefs .plabel{white-space:nowrap}
.adv-prefs .filter-group{flex-wrap:wrap;align-items:center}
.gridin input{width:150px;min-height:34px;padding:4px 10px;border:1px solid var(--line);background:var(--cell);font-family:var(--f-mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.msel select{min-height:36px;padding:4px 10px;border:1px solid var(--line);background:var(--cell);font-size:14px;max-width:100%}
.chk{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;color:var(--muted)}
.chk input{accent-color:var(--red);width:16px;height:16px}
.route-card{border:1px solid var(--line);background:var(--panel);padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.route-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 16px;align-items:flex-start}
.route-head h3{font-size:24px;line-height:1.05}
.route-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}
#routeCanvas{width:100%;height:auto;aspect-ratio:640/593;border:1px solid var(--line-2);background:#0b0a0a;display:block}
.stops{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.stop{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:start;border:1px solid var(--line);background:var(--cell);padding:10px 12px}
.stop .n{width:30px;height:30px;display:grid;place-items:center;background:var(--red);color:#fff;font-family:var(--f-display);font-weight:700;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}
.stop.exfil .n{background:#3cb3a5;color:#0b0a0a}
.stop-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.stop-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.stop-head b{font-family:var(--f-display);font-weight:700;font-size:17px;letter-spacing:.03em;text-transform:uppercase;line-height:1.1}
.grid-tag{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.1em;padding:2px 6px;border:1px solid var(--line-2);color:var(--muted)}
.stop-get{font-size:14px}
.key-hint{font-size:13px;color:var(--sc,#e3b73c)}
.warn-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13.5px;color:var(--warn)}
.warn-list li::before{content:"\26A0  "}
.ask-box{display:flex;gap:8px}
.ask-box input{flex:1 1 auto;min-width:0}
.ask-out{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.ask-a{border:1px solid var(--line);border-left:3px solid var(--red);background:var(--panel);padding:12px 14px;display:flex;flex-direction:column;gap:6px;font-size:15px}
.ask-a.ai{border-left-color:#89b6de}
.ask-a ul,.ask-a ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.ask-a p{margin:0}
.ai-set{display:flex;flex-direction:column;gap:8px;padding:0 16px 16px}
.ai-set .fld{display:flex;flex-direction:column;gap:4px}
.phases{display:flex;flex-direction:column;gap:8px}
.phase{border:1px solid var(--line);background:var(--panel)}
.phase.here{border-color:var(--red)}
.phase summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"l s" "b s";gap:2px 12px;padding:12px 16px;align-items:center}
.phase summary::-webkit-details-marker{display:none}
.phase summary .plabel{grid-area:l}
.phase summary b{grid-area:b;font-family:var(--f-display);font-weight:700;font-size:19px;letter-spacing:.03em;text-transform:uppercase}
.phase summary small{grid-area:s;font-family:var(--f-mono);font-size:12px;color:var(--muted)}
.phase-body{padding:0 16px 14px;display:flex;flex-direction:column;gap:8px}
.rsteps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.rsteps label{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);background:var(--cell);cursor:pointer}
.rsteps input{accent-color:var(--red);width:18px;height:18px;flex:0 0 auto;margin-top:2px}
.rsteps label > span{flex:1 1 auto;min-width:0}
.rsteps .grid-tag{display:inline;white-space:normal}
.rsteps li.on label{opacity:.6}
.rsteps li.on b{text-decoration:line-through}
.saved-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.saved-list li{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--cell);padding:8px 10px}
.saved-list a{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;text-decoration:none;color:var(--fg)}
.saved-list b{font-family:var(--f-display);font-weight:600;font-size:15.5px;text-transform:uppercase;letter-spacing:.03em}
.saved-list small{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* route on the Leaflet map */
.route-panel{position:absolute;left:10px;top:10px;z-index:800;max-width:min(320px,calc(100% - 80px));background:rgba(11,10,10,.86);border:1px solid var(--line-2);padding:10px 12px;display:flex;flex-direction:column;gap:4px;font-size:13px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.route-panel b{font-family:var(--f-display);font-weight:700;font-size:15px;letter-spacing:.03em;text-transform:uppercase}
.route-panel ol{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:2px}
.route-panel .x{position:absolute;right:6px;top:4px;color:var(--muted);font-size:16px}
.mk-route{width:0;height:0}
.mk-route .rn{position:absolute;left:-13px;top:-13px;width:26px;height:26px;display:grid;place-items:center;background:var(--red);color:#fff;font-family:var(--f-display);font-weight:700;font-size:13px;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);box-shadow:0 0 0 2px rgba(255,255,255,.6)}
.mk-route.ex .rn{background:#3cb3a5;color:#0b0a0a}
.mk-route.ex.alt .rn{background:rgba(11,10,10,.85);color:#3cd1c0;box-shadow:0 0 0 2px #3cd1c0}
.mk-route.mis .rn{background:#e3b73c;color:#1a1500;clip-path:none;border-radius:4px;font-size:15px}
@media (max-width:960px){
  .goal-grid{grid-template-columns:minmax(0,1fr)}
  .adv-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .adv-strip .btn{grid-column:1/-1;justify-self:start}
  .route-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  .adv-prefs{grid-template-columns:minmax(0,1fr)}
  .ask-box{flex-direction:column}
  .route-head h3{font-size:20px}
}
.log-run summary{font-family:var(--f-mono)}
.log-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:8px;padding:0 16px 12px}
.log-grid .fld span{font-size:13px}
.log-grid input{min-height:40px;padding:6px 10px;border:1px solid var(--line);background:var(--cell);width:100%}
.curated{border:1px solid var(--line);background:var(--panel);margin-bottom:8px}
.curated summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"l s" "b s";gap:2px 12px;padding:12px 16px;align-items:center}
.curated summary::-webkit-details-marker{display:none}
.curated summary .plabel{grid-area:l}
.curated summary b{grid-area:b;font-family:var(--f-display);font-weight:700;font-size:18px;letter-spacing:.03em;text-transform:uppercase;line-height:1.1}
.curated summary small{grid-area:s;font-family:var(--f-mono);font-size:12px;color:var(--muted)}
.curated-body{padding:0 16px 14px;display:flex;flex-direction:column;gap:8px}

.goal h3{display:flex;align-items:center;gap:10px}
.goal-ic{width:40px;height:40px;object-fit:cover;border-radius:4px;box-shadow:0 0 0 1px var(--line);flex:none}
.tchip .tg{width:22px;height:22px;object-fit:contain;vertical-align:middle;margin-right:6px;background:color-mix(in srgb,var(--t) 45%,#111);border-radius:50%;padding:3px}
.chip.on{border-color:var(--good);color:var(--good)}

/* ---------- Run briefing ---------- */
.brief{gap:14px}
.brief-head{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"l s" "a a";gap:10px 18px;align-items:start}
.bh-l{grid-area:l;display:flex;flex-direction:column;gap:6px;min-width:0}
.bh-l h3{font-size:26px;line-height:1.05}
.needline{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center}
.needline .q{font-family:var(--f-mono);font-size:12px;color:var(--muted);margin-right:4px}
.needitem{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.bh-stats{grid-area:s;display:flex;gap:6px}
.bh-stats > div{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:74px;padding:8px 10px;border:1px solid var(--line);background:var(--cell)}
.bh-stats b{font-family:var(--f-display);font-weight:700;font-size:24px;line-height:1;font-variant-numeric:tabular-nums}
.bh-stats span{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:3px}
.bh-stats > div.over{border-color:var(--warn)}
.bh-stats > div.over b{color:var(--warn)}
.bh-acts{grid-area:a}
.ichip{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:14px;white-space:nowrap}
.ichip .ig{width:24px;height:24px;object-fit:cover;border-radius:3px;box-shadow:0 0 0 1px var(--line);flex:none}
.chip.ichip{font-weight:400}
.chip.ichip .ig{width:22px;height:22px}
.map-side{display:flex;flex-direction:column;gap:10px;min-width:0}
.legend-row{display:flex;flex-wrap:wrap;gap:6px 14px;font-family:var(--f-mono);font-size:11px;color:var(--muted)}
.legend-row span{display:inline-flex;align-items:center;gap:6px}
.lg{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;font-family:var(--f-display);font-weight:700;font-size:10px;color:#fff;font-style:normal}
.lg-stop{background:var(--red)}
.lg-mis{background:#e3b73c;color:#1a1500}
.lg-ex{background:transparent;border:2px solid #3cd1c0;color:#3cd1c0;font-size:8px}
.lg-path{width:22px;height:0;border-top:2px dashed var(--red);border-radius:0}
.cov{width:100%;border-collapse:collapse;font-size:13.5px}
.cov th{font-family:var(--f-mono);font-weight:400;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:left;padding:6px 6px;border-bottom:1px solid var(--line)}
.cov td{padding:7px 6px;border-bottom:1px solid var(--line);vertical-align:middle}
.cov td.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.cov th.num{text-align:right}
.st{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;padding:2px 7px;border:1px solid currentColor;white-space:nowrap}
.st-locked{color:var(--good)}
.st-likely{color:var(--sc,#e3b73c)}
.st-thin{color:var(--warn)}
.st-none{color:var(--dim)}
.rtl{gap:0}
.rtl .stop{position:relative;margin:0}
.rtl .stop .n{width:34px;height:34px;font-size:15px}
.rtl .stop.mission{border-color:#e3b73c}
.rtl .stop.mission .n{background:#e3b73c;color:#1a1500;clip-path:none;border-radius:4px}
.rtl .leg{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;min-height:30px}
.rtl .leg .leg-line{justify-self:center;width:0;height:100%;min-height:26px;border-left:2px dashed color-mix(in srgb,var(--red) 70%,transparent)}
.rtl .leg .leg-txt{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.06em;color:var(--muted);padding:4px 0}
.rtl .leg.start .leg-line{border-left-style:solid;border-color:var(--muted)}
.rtl .leg.exleg .leg-line{border-color:#3cd1c0}
.dwell{margin-left:auto;font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;color:var(--muted);white-space:nowrap}
.mis-line{font-size:14px;color:#e3b73c}
.takes{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-direction:column;gap:5px}
.take{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:4px 10px;align-items:center;padding:6px 8px;border:1px solid var(--line);background:var(--panel)}
.take.rel{border-left:3px solid var(--good)}
.take .exp{font-family:var(--f-mono);font-size:12px;color:var(--good);white-space:nowrap}
.take .spot{grid-column:1/-1;font-size:13px;color:var(--fg)}
.take .open{grid-column:1/-1;font-size:12px;color:var(--muted)}
.exopts{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}
.exopts li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:6px 8px;border:1px solid var(--line);background:var(--panel)}
.exopts li.best{border-color:#3cd1c0}
.exopts b{font-family:var(--f-display);font-weight:600;font-size:15px;letter-spacing:.02em;text-transform:uppercase}
.exopts .pnote{flex-basis:100%;font-size:12.5px}
.stop.exfil{border-color:color-mix(in srgb,#3cd1c0 55%,var(--line))}
.other-ways{border:1px solid var(--line);background:var(--cell);padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.ow-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ow-list li{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border:1px solid var(--line);background:var(--panel)}
.ow-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ow-list p{margin:0}
.ow-alt{color:var(--fg)}
.warn-list li.tip::before{content:"\2192  "}
.warn-list li.tip{color:var(--muted)}
.assume{font-size:12.5px}
@media (max-width:960px){
  .brief-head{grid-template-columns:minmax(0,1fr);grid-template-areas:"l" "s" "a"}
  .bh-stats{flex-wrap:wrap}
  .bh-stats > div{flex:1 1 70px;min-width:0}
  .adv-prefs{grid-template-columns:minmax(0,1fr)}
  .cov{font-size:12.5px}
  .cov td,.cov th{padding:6px 4px}
  .ichip{font-size:13px}
  .ichip .ig{width:20px;height:20px}
  .route-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  /* coverage table becomes one card per ingredient: nothing to squeeze sideways */
  .cov,.cov tbody{display:block;width:100%}
  .cov thead{display:none}
  .cov tr{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:9px 0;border-bottom:1px solid var(--line)}
  .cov td,.cov td.num{display:inline-flex;align-items:baseline;gap:5px;padding:0;border:0;white-space:normal}
  .cov td.nm{flex:1 1 100%;min-width:0}
  .cov td.nm .ichip{white-space:normal}
  .cov td.num::before{content:attr(data-l);font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
  .cov td.stc{margin-left:auto}
  .cov td.wh{flex:1 1 100%}
  .st{letter-spacing:.06em;padding:2px 6px}
  .take{grid-template-columns:minmax(0,1fr) auto}
  .take .ichip{white-space:normal}
  .exopts li{gap:4px 8px}
  .exopts b{font-size:14px}
  .bh-stats{gap:4px}
  .bh-stats > div{flex:1 1 56px;padding:7px 3px}
  .bh-stats b{font-size:20px}
  .bh-stats span{font-size:9px;letter-spacing:.06em;white-space:nowrap}
}
