:root{
  --bg:#f4f1e8; --card:#fffdf7; --ink:#24301f; --muted:#6b7262; --line:#e2dccb;
  --forest:#2f3b2a; --moss:#4f6b3a; --blaze:#e8641b; --tan:#c9a86a;
  --s-low:#c9cbbd; --s-mid:#d9b25c; --s-good:#8aa848; --s-great:#f2a516; --s-hot:#e8641b; --s-night:#3a4436;
  --radius:14px; --shadow:0 1px 2px rgba(0,0,0,.05),0 4px 14px rgba(40,50,30,.08);
}
*{box-sizing:border-box}
body{margin:0;font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--moss)}
.wrap{max-width:1100px;margin:0 auto;padding:0 16px}
.hero{background:linear-gradient(135deg,#2f3b2a 0%,#3f5132 60%,#5a6b3c 100%);color:#f6f2e6;padding:18px 0 16px;box-shadow:var(--shadow)}
.brand{display:flex;gap:12px;align-items:center;margin-bottom:12px}
.logo{font-size:40px;line-height:1}
h1{margin:0;font-size:22px;letter-spacing:.2px}
.titles{min-width:0}
.slogan{margin:1px 0 0;font-size:17px;font-weight:600;color:#f2c98a;letter-spacing:.2px}
.tag{margin:3px 0 0;opacity:.85;font-size:13px;line-height:1.35;max-width:640px}
.asof{margin:2px 0 0;opacity:.6;font-size:11px;letter-spacing:.3px}
.search{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}
.qgroup{flex:1 1 340px;min-width:0}
.qline{display:flex;gap:8px}
.search-hint{margin:4px 0 0 4px;font-size:11.5px;line-height:1.2;opacity:.7;letter-spacing:.2px}
.search input{flex:1 1 260px;min-width:0;padding:11px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:#fffdf7;color:var(--ink);font-size:15px}
.search select{padding:10px;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:#fffdf7;color:var(--ink);font-size:14px}
.btn{padding:10px 14px;border-radius:10px;border:0;font-weight:600;font-size:14px;cursor:pointer}
.btn.primary{background:var(--blaze);color:#fff}
.btn.primary:hover{filter:brightness(1.07)}
.btn.ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.3)}
.alts{margin-top:8px;font-size:13px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.alts button{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:3px 10px;cursor:pointer;font-size:12px}
.status{margin:14px 0;min-height:1px}
.status.err{background:#fde7dc;border:1px solid #f3b79a;color:#7a2d0b;padding:10px 12px;border-radius:10px}
.status.load{color:var(--muted)}
.loc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:6px 0 12px}
.loc-head h2{margin:0;font-size:24px}
.muted{color:var(--muted)} .small{font-size:12.5px}
.loc-head p{margin:2px 0 0}
.now{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:8px 14px;box-shadow:var(--shadow);font-size:13px;display:flex;gap:14px;align-items:center}
.now b{font-size:22px}
.top-pick{background:var(--forest);color:#f6f2e6;border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.top-pick .big{font-size:34px;font-weight:800;color:#ffb27d;min-width:64px;text-align:center}
.top-pick .lbl{font-size:12px;text-transform:uppercase;letter-spacing:1px;opacity:.75}
.top-pick .when{font-size:18px;font-weight:700}
.section-title{margin:22px 0 10px;font-size:16px;text-transform:uppercase;letter-spacing:1px;color:var(--moss)}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media (max-width:899px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.cards{grid-template-columns:minmax(0,1fr)}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.card.best{outline:2px solid var(--blaze)}
.card .ribbon{position:absolute;top:10px;right:-30px;background:var(--blaze);color:#fff;font-size:10px;font-weight:700;padding:2px 32px;transform:rotate(35deg)}
.card h4{margin:0;font-size:16px}
.card .sub{font-size:12px;color:var(--muted);margin:2px 0 8px}
.card .phase{display:inline-block;background:#eef0e2;color:var(--moss);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700;margin-left:6px;vertical-align:middle}
.win{display:flex;align-items:center;gap:10px;padding:6px 0;border-top:1px dashed var(--line)}
.win:first-of-type{border-top:0}
.pill{min-width:44px;text-align:center;border-radius:8px;padding:4px 0;font-weight:800;color:#fff}
.win .t{font-weight:600}
.win .n{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}
.past{opacity:.5}
.reason{font-size:13px;margin:8px 0 6px;color:#3e4a35}
.wx{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.card{display:flex;flex-direction:column}
.spark-wrap{--spark-h:116px;position:relative;margin:auto -14px -12px;padding:8px 10px 6px;background:#f7f5ec;border-top:1px solid var(--line)}
.spark-plot{position:relative}
.spark{display:block;width:100%;height:var(--spark-h);cursor:crosshair;touch-action:pan-y}
.spark-grid{stroke:#c9c6b5;stroke-width:1;stroke-dasharray:3 3}
.spark-hl{fill:#1f281b;opacity:.14;pointer-events:none}
.spark-y{position:absolute;left:2px;transform:translateY(-100%);margin-top:-1px;padding:1px 3px;border-radius:3px;background:rgba(247,245,236,.88);font-size:11.5px;font-weight:700;color:#4f5748;line-height:1;pointer-events:none}
.spark-wrap{margin-top:auto}.card .wx{margin-bottom:10px}
.spark-x{position:relative;height:18px;font-size:12px;font-weight:600;color:var(--muted)}
.spark-x span{position:absolute;top:4px;transform:translateX(-50%);line-height:1}
.spark-tip{position:absolute;bottom:calc(100% - 2px);z-index:4;background:#1f281b;color:#f6f2e6;padding:6px 10px;border-radius:8px;font-size:13px;white-space:nowrap;box-shadow:var(--shadow);pointer-events:none}
.spark-tip b{color:#ffb27d}
@media (max-width:560px){.spark-wrap{--spark-h:100px}.spark-x{font-size:12.5px}.spark-y{font-size:12px}.spark-tip{font-size:13.5px}}
.chart-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow);position:relative}
.chart-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
#chart{display:block}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-bottom:6px}
.sw{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}
.s-low{background:var(--s-low)}.s-mid{background:var(--s-mid)}.s-good{background:var(--s-good)}.s-great{background:var(--s-great)}.s-hot{background:var(--s-hot)}.s-night{background:var(--s-night)}
.tip{position:absolute;pointer-events:none;background:#1f281b;color:#f6f2e6;padding:8px 10px;border-radius:8px;font-size:12px;max-width:240px;box-shadow:var(--shadow);z-index:5}
.tip b{color:#ffb27d}
.tip ul{margin:4px 0 0;padding-left:14px}
.how{margin:22px 0 10px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px}
.how summary{cursor:pointer;font-weight:700;color:var(--moss)}
.how-body{font-size:14px}
.how-body li{margin:4px 0}
.disclaimer{background:#fff4e5;border:1px solid #f1d2a6;border-radius:10px;padding:10px 12px;font-size:13px}
.foot{padding:10px 16px 30px}
@media (max-width:560px){h1{font-size:19px}.slogan{font-size:15px}.tag{font-size:12.5px}.logo{font-size:34px;align-self:flex-start}.loc-head h2{font-size:20px}.top-pick .big{font-size:28px}}
.rutpick{display:flex;white-space:nowrap;align-items:center;gap:6px;font-size:13px;color:#f6f2e6;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);border-radius:10px;padding:4px 8px}
.rutpick select,.rutpick input{padding:6px;border-radius:8px;border:0;background:#fffdf7;color:var(--ink);font-size:14px}
.rutpick input{width:52px}
.link{background:none;border:0;color:#ffd2b0;text-decoration:underline;cursor:pointer;font-size:12px;padding:0 2px}
.rutnote{font-size:12px;opacity:.8;margin-top:6px}
.rutpick input[type=date]{width:auto}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:-4px 0 12px}
.chip{background:#eef0e2;color:var(--moss);border:1px solid #d9dcc6;border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:600;text-decoration:none}
a.chip:hover{background:#e3e7d2}
.rutnote a{color:#ffd2b0}
.preview-banner{background:#fff1d6;border:1px solid #e9c37a;color:#5b3d07;border-radius:10px;padding:10px 12px;margin:12px 0;font-size:14px}
.preview-banner a{color:#a6400b;font-weight:600}
.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.card-head h4{margin:0}
.card-head .phase{margin-left:0;margin-top:3px}
.dscore{display:flex;flex-direction:column;align-items:center;min-width:64px;border-radius:12px;padding:4px 8px;background:color-mix(in srgb,var(--c) 14%,#fff);border:2px solid var(--c)}
.dscore b{font-size:30px;line-height:1;color:var(--c);font-weight:800;filter:brightness(.85)}
.dscore span{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:#3e4a35}
.card.best .card-head{padding-right:34px}
.strip-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;box-shadow:var(--shadow);margin-bottom:12px}
.strip-title{font-weight:700;color:var(--moss);font-size:13px;text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px}
.day-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:6px}
.ds-cell{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:6px 4px;background:#fff}
.ds-cell:hover{background:#f6f4ec}
.ds-cell.best{border:2px solid var(--blaze)}
.ds-dow{font-weight:700;font-size:12px}.ds-date{font-size:11px;color:var(--muted)}
.ds-bar{width:18px;height:42px;background:#eceadf;border-radius:5px;display:flex;align-items:flex-end;margin:4px 0;overflow:hidden}
.ds-bar i{display:block;width:100%;border-radius:5px}
.ds-cell b{font-size:18px;line-height:1.1;filter:brightness(.85)}
.ds-word{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700}
@media (max-width:560px){.day-strip{grid-template-columns:repeat(var(--cols,7),minmax(0,1fr));gap:3px}.ds-cell{padding:5px 1px}.ds-word{font-size:8.5px}.ds-cell b{font-size:15px}}
/* ---- v1.2 features ---- */
.spot-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:12px 0 0;font-size:13px}
.spot-lbl{font-weight:700;color:var(--moss)}
.spot-chip{border:1px solid #cfd3bb;background:#fff;border-radius:999px;padding:5px 11px;font-size:13px;font-weight:600;cursor:pointer;color:var(--ink)}
.spot-chip.on{background:var(--forest);color:#fff;border-color:var(--forest)}
.spot-save{display:inline-flex;gap:4px;flex-wrap:wrap}
.spot-save input{padding:6px 8px;border:1px solid #cfd3bb;border-radius:8px;font-size:13px;min-width:0;width:200px;max-width:60vw}
.btn.small{padding:6px 10px;font-size:12.5px;border-radius:8px;background:#e9ecdc;color:var(--ink);border:1px solid #d3d7c0}
.btn.small.primary{background:var(--blaze);color:#fff;border-color:var(--blaze)}
.btn.small.on{background:#2b7bff;color:#fff;border-color:#2b7bff}
.btn.ghost2{background:#fff;color:#7a2d0b;border:1px solid #e7c7b6}
.front-alert{background:linear-gradient(135deg,#1f4f7a,#2d6da3);color:#fff;border-radius:var(--radius);padding:10px 14px;margin:0 0 12px;box-shadow:var(--shadow)}
.front-alert .fa-title{font-weight:800;font-size:15px}
.front-alert ul{margin:4px 0 6px;padding-left:18px}
.front-alert .btn.small{margin-left:6px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow)}
.map-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}
.tog{display:inline-flex;gap:5px;align-items:center;font-size:13px}
.map{height:420px;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#cfd6c4}
@media (max-width:560px){.map{height:340px}}
.hour-pick{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.hour-pick input[type=range]{flex:1 1 220px;accent-color:var(--blaze)}
.wind-ctl{display:flex;gap:6px;align-items:center;background:rgba(255,255,255,.92);border-radius:10px;padding:4px 8px 4px 4px;font-size:12px;box-shadow:0 1px 4px rgba(0,0,0,.3);line-height:1.25}
.wind-ctl span{color:#555}
.stand-pin{width:22px;height:22px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:3px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.6)}
.stand-pin.ok{background:#2fae4e}.stand-pin.no{background:#e0392b}.stand-pin.na{background:#9aa08f}
.stand-tip{font-weight:700;font-size:12px;border:0;color:#fff;background:rgba(0,0,0,.65)}
.stand-tip.ok{background:rgba(31,122,51,.9)}.stand-tip.no{background:rgba(176,38,26,.9)}
.stand-tip::before{display:none}
.stand-form{display:flex;flex-direction:column;gap:6px;font-size:13px}
.stand-form input[name=n]{padding:6px;border:1px solid #ccc;border-radius:6px}
.stand-form .row{display:flex;gap:6px}
.wind-boxes{display:grid;grid-template-columns:repeat(4,1fr);gap:2px 6px}
.wind-boxes label{display:flex;gap:3px;align-items:center;font-size:12.5px}
.parcel-tiles{filter:brightness(0) invert(1) sepia(1) saturate(6) hue-rotate(-8deg) drop-shadow(0 0 1px rgba(0,0,0,.7))}
.stand-tbl,.sum-tbl,.hist-tbl{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}
.stand-tbl th,.sum-tbl th,.hist-tbl th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);border-bottom:1px solid var(--line);padding:4px 6px}
.stand-tbl td,.sum-tbl td,.hist-tbl td{border-bottom:1px dashed var(--line);padding:5px 6px;vertical-align:top}
.pill.sm{display:inline-block;min-width:30px;padding:1px 5px;font-size:12px;border-radius:6px;color:#fff;font-weight:800;text-align:center}
.stand-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}
.sb{font-size:11px;font-weight:700;border-radius:6px;padding:1px 6px}
.sb.ok{background:#dff3e2;color:#1f7a33}.sb.no{background:#fbe1dd;color:#a3271b}.sb.na{background:#eee;color:#666}
.wwind{font-weight:500;color:var(--muted);font-size:12px}
.log{margin:22px 0 10px}
.log summary{cursor:pointer;font-weight:700;color:var(--moss)}
.log-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:10px 0;align-items:end}
.log-form label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:2px}
.log-form label.tog{flex-direction:row;color:var(--ink)}
.log-form .wide{grid-column:1/-1}
.log-form input,.log-form select{padding:7px;border:1px solid #d3d7c0;border-radius:8px;font-size:14px;background:#fff;color:var(--ink)}
.log-tools{display:flex;gap:8px;margin:10px 0}
.filebtn{cursor:pointer}
.insight{border-radius:10px;padding:8px 10px;margin:8px 0;font-size:13.5px}
.insight.good{background:#e5f4e3;border:1px solid #b9dcb3}.insight.bad{background:#fdf0e0;border:1px solid #efcf9f}
.tune{margin-top:8px;font-size:13px;background:#f4f2ea;border-radius:8px;padding:6px 8px}
.hist-tbl .x{border:0;background:none;color:#a3271b;cursor:pointer;font-size:14px}
@media (max-width:560px){.hist-tbl th:nth-child(5),.hist-tbl td:nth-child(5){display:none}.stand-tbl{font-size:12px}}

/* chart: temperature line legend + sticky °F axis */
.sw-line{display:inline-block;width:18px;height:0;border-top:3px solid #1f6fb2;border-radius:2px;margin-right:5px;vertical-align:3px}
.legend .lg-temp{color:#1f6fb2;font-weight:700}
.chart-wrap{position:relative}
.temp-axis{position:absolute;right:0;top:0;pointer-events:none}
.tip .tip-temp{color:#9fd0ff}.tip .tip-temp b{color:#cfe8ff}
@media (max-width:560px){.legend{gap:8px 10px;font-size:12.5px}}
.ds-year{font-size:9.5px;color:var(--muted);line-height:1.1}
@media (max-width:560px){.ds-year{font-size:8px}.ds-word{font-size:7.5px;letter-spacing:0}}
.rut-lbl[role=button]{cursor:pointer;text-decoration:underline dotted}.rng-i{font-weight:400;opacity:.8}
.rut-range{margin-top:4px;padding:6px 8px;border-radius:8px;background:rgba(255,255,255,.12);font-size:12px}
.sync-bar{margin-top:8px;font-size:12.5px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sync-bar .btn.small{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.3)}
.auth-dlg{border:0;border-radius:14px;padding:16px;max-width:420px;width:calc(100% - 32px);box-shadow:0 10px 40px rgba(0,0,0,.35)}
.auth-dlg::backdrop{background:rgba(0,0,0,.45)}
.auth-dlg h3{margin:0 0 6px}.auth-dlg label{display:flex;flex-direction:column;gap:3px;font-size:13px;margin:8px 0}
.auth-dlg input{padding:8px;border:1px solid #cfd3bb;border-radius:8px;font-size:15px}
.auth-btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}

/* Best stand per sit */
.best-stand{margin:8px 0 2px;padding:7px 9px;border-radius:9px;background:#f1f4e8;border:1px solid #dde3c9;font-size:12.5px;line-height:1.35}
.best-stand .bs-title{font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--moss);margin-bottom:2px}
.best-stand .bs-line+.bs-line{margin-top:3px}
.best-stand .bs-stand{font-weight:700}
.best-stand .bs-why{color:var(--muted)}
.best-stand .bs-more{font-size:11.5px;color:var(--muted);margin-left:28px}
.best-stand .bs-bad{color:#a3271b;font-weight:600}
.best-stand.hint{color:var(--muted);background:#f7f5ec}
.best-stand.hint a{color:var(--moss);font-weight:700}
.top-pick .best-stand{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.25);margin-top:8px}
.top-pick .best-stand .bs-title,.top-pick .best-stand .bs-why,.top-pick .best-stand .bs-more,.top-pick .best-stand.hint,.top-pick .best-stand.hint a{color:inherit;opacity:.9}
.top-pick .best-stand .bs-bad{color:#ffc2b8}
/* Sightings summary: property filter + patterns */
.log-sum-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px}
.prop-filter{font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px}
.prop-filter select{padding:5px 8px;border:1px solid #cfd3bb;border-radius:8px;font-size:13px;max-width:60vw}
.patterns{margin:10px 0;padding:8px 10px;border-radius:10px;background:#f1f4e8;border:1px solid #dde3c9;font-size:13.5px}
.patterns ul{margin:4px 0 0;padding-left:18px}.patterns li{margin:3px 0}
.tune-head{margin-top:12px}

/* Hour-by-hour breakdown under each day graph */
.hr-box{margin:8px 0 4px;border-top:1px dashed var(--line);padding-top:6px}
.hr-box summary{cursor:pointer;font-size:12.5px;font-weight:700;color:var(--moss);list-style:revert;padding:2px 0}
.hr-box summary .muted{font-weight:500}
.hr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:4px;margin-top:6px}
.hr{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:4px;background:#fffdf7;border:1px solid var(--line);border-left:4px solid var(--c);border-radius:6px;padding:3px 5px;line-height:1.15}
.hr-t{font-size:11.5px;font-weight:700;color:#4f5748}
.hr-s{justify-self:end;font-size:14px;font-weight:800;color:var(--c)}
.hr-w{grid-column:1/-1;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hr.off{display:none}
.hr-box.all .hr.off{display:grid;opacity:.72}
.hr-all{margin:6px 0 2px;font-size:12px}
@media (max-width:560px){.hr-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.hr-t{font-size:12px}.hr-s{font-size:15px}.hr-w{font-size:11.5px}}
.hr-box .hr-all{color:var(--moss);font-weight:700}
.hr-s{background:var(--c);color:#fff;border-radius:4px;padding:0 5px;font-size:13px;text-shadow:0 0 2px rgba(0,0,0,.25)}
@media (max-width:560px){.hr-s{font-size:14px}}

/* Day-card graph: temperature line + right-side °F scale (same blue as the hourly chart) */
.spark-plot{--tgut:30px;padding-right:var(--tgut)}
.spark-x{margin-right:var(--tgut)}
.spark-temp{fill:none;stroke:#1f6fb2;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}
.spark-temp-halo{fill:none;stroke:#fff;stroke-opacity:.55;stroke-width:4.2;stroke-linejoin:round;pointer-events:none}
.spark-t-axis{position:absolute;right:calc(var(--tgut) - 2px);top:0;bottom:0;border-left:1.5px solid #1f6fb2;opacity:.55;pointer-events:none}
.spark-t{position:absolute;right:0;width:calc(var(--tgut) - 5px);transform:translateY(-50%);font-size:11px;font-weight:700;color:#1f6fb2;line-height:1;text-align:left;pointer-events:none}
.spark-t.unit{font-size:10px;opacity:.75}
.spark-dot{position:absolute;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:#1f6fb2;border:2px solid #fff;box-sizing:border-box;box-shadow:0 0 0 1px rgba(31,111,178,.35);pointer-events:none}
.spark-tip .tt{color:#9fd0ff}
@media (max-width:560px){.spark-plot{--tgut:32px}.spark-t{font-size:12px}.spark-temp{stroke-width:2.4}}

/* Preview control: date + Go (+ live) */
.preview-ctl .btn.small{padding:5px 10px}
.preview-ctl .btn[disabled]{opacity:.45;cursor:default}
.preview-banner .back-live{color:inherit;font-weight:700}
.preview-ctl #previewGo:not([disabled]){background:var(--blaze);color:#fff;border-color:var(--blaze)}

/* OTP sign-in */
.auth-dlg .auth-code{font-size:22px;letter-spacing:6px;text-align:center;font-variant-numeric:tabular-nums;max-width:200px}
#authMsg.err{color:#a3271b}#authMsg.ok{color:#1f7a33}
.auth-btns .btn[disabled]{opacity:.5;cursor:default}
