/* home dashboard (dash_ui.js) — same rules in the hosted app and the artifacts; colours come from each theme.
   --g1…--g4 are the pastel glows of the stat tiles (set by the Aurora themes; other themes fall back to a soft accent). */
.dsh{--d-bg:var(--bg);--d-card:var(--surface,var(--surf));--d-ink:var(--ink);--d-mut:var(--muted,var(--mut));--d-dim:var(--dim,var(--d-mut));--d-line:var(--line);
  --d-acc:var(--accent,var(--brass));--d-ok:var(--ok);--d-bad:var(--bad,var(--no));--d-warn:var(--flag,#C9A227);--d-track:color-mix(in srgb,var(--d-line) 85%,transparent);
  --d-shadow:0 1px 2px rgba(16,24,40,.04),0 10px 30px -16px rgba(16,24,40,.2);
  --d-soft:color-mix(in srgb,var(--d-acc) 12%,var(--d-card));margin:0 0 18px;font-family:var(--ui,var(--sans))}
.dsh button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;text-align:left;cursor:pointer;box-shadow:none;text-transform:none;letter-spacing:normal;min-height:0;width:auto}
.dsh .up{color:var(--d-ok)}.dsh .dn{color:var(--d-bad)}
.dsh .ok{color:var(--d-ok)}.dsh .warn{color:var(--d-warn)}.dsh .bad{color:var(--d-bad)}
.dsh .shl-i{display:inline-block;vertical-align:-3px;flex:0 0 auto}
.dsh-wel{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:8px 0 16px}
.dsh .dsh-h1{font:400 36px/1.08 var(--display,var(--serif));letter-spacing:-.01em;margin:0;color:var(--d-ink);text-transform:none}
.dsh-sub{font-size:13px;color:var(--d-mut);margin-top:5px}
.dsh-chips{display:flex;gap:6px;flex-wrap:wrap}
.dsh-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:5px 11px;border-radius:999px;background:var(--d-card);border:1px solid var(--d-line);color:var(--d-mut)}
.dsh-chip.acc{background:var(--d-soft);border-color:transparent;color:var(--d-acc)}
.dsh-g4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 12px}
.dsh-stat{position:relative;overflow:hidden;background:var(--d-card);border:1px solid var(--d-line);border-radius:18px;padding:15px 16px 14px;min-width:0;cursor:pointer;box-shadow:var(--d-shadow)}
.dsh-stat::after{content:"";position:absolute;right:-34px;top:-46px;width:180px;height:140px;border-radius:50%;background:var(--gc);filter:blur(30px);opacity:.95;pointer-events:none}
.dsh-stat.g1{--gc:var(--g1,color-mix(in srgb,var(--d-acc) 22%,transparent))}
.dsh-stat.g2{--gc:var(--g2,color-mix(in srgb,var(--d-bad) 18%,transparent))}
.dsh-stat.g3{--gc:var(--g3,color-mix(in srgb,var(--d-acc) 16%,transparent))}
.dsh-stat.g4{--gc:var(--g4,color-mix(in srgb,var(--d-warn) 20%,transparent))}
.dsh-stat>*{position:relative;z-index:1}
.dsh-stat:hover{border-color:var(--d-dim)}
.dsh-v{font-size:30px;font-weight:500;line-height:1.05;letter-spacing:-.03em;color:var(--d-ink)}
.dsh-v small{font-size:15px;font-weight:400;color:var(--d-mut);margin-left:2px;letter-spacing:0}
.dsh-sl{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;margin-top:10px;color:var(--d-ink)}
.dsh-sl .shl-i{color:var(--d-acc)}
.dsh-d{font-size:12px;color:var(--d-mut);line-height:1.4}
.dsh-k{font-size:12px;color:var(--d-mut)}
.dsh-two{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:12px}
.dsh-t{background:var(--d-card);border:1px solid var(--d-line);border-radius:18px;padding:16px 18px;min-width:0;box-shadow:var(--d-shadow)}
.dsh-brief{display:flex;flex-direction:column;align-items:flex-start}
.dsh .dsh-brief h2{font:400 25px/1.22 var(--display,var(--serif));margin:12px 0 8px;color:var(--d-ink);text-transform:none;letter-spacing:-.005em}
.dsh-brief p{margin:0 0 16px;color:var(--d-mut);font-size:14px;line-height:1.55}
.dsh-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.dsh .dsh-btn{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:500;padding:8px 15px;border-radius:999px;border:1px solid var(--d-line);background:var(--d-card);color:var(--d-ink);white-space:nowrap}
.dsh .dsh-btn:hover{border-color:var(--d-dim)}
.dsh .dsh-btn.dark{background:var(--d-ink);border-color:var(--d-ink);color:var(--d-bg);box-shadow:0 8px 18px -10px rgba(0,0,0,.55)}
.dsh .dsh-btn[disabled]{opacity:.5;cursor:default}
.dsh-bud select{font:inherit;font-size:13px;background:transparent;color:inherit;border:0;padding:0 2px;margin:0;cursor:pointer;width:auto;min-height:0;box-shadow:none;outline:none}
.dsh-bud select option{color:#111;background:#fff}
.dsh .dsh-cont{margin-top:16px;padding-top:13px;border-top:1px solid var(--d-line);display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px;width:100%}
.dsh-cont b{font-weight:500}
.dsh-th{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;font-size:12px;color:var(--d-mut)}
.dsh-th b{font-size:14px;font-weight:600;color:var(--d-ink)}
.dsh .dsh-row{display:grid;grid-template-columns:minmax(0,1fr) 92px 40px;gap:12px;align-items:center;width:100%;padding:8px 0;border-bottom:1px solid var(--d-line);font-size:13.5px;color:var(--d-ink)}
.dsh .dsh-row:last-of-type{border-bottom:0}
.dsh-row:hover .nm{color:var(--d-acc)}
.dsh-row .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dsh-bar{height:6px;border-radius:3px;background:var(--d-track);overflow:hidden}.dsh-bar i{display:block;height:100%;border-radius:3px;background:currentColor}
.dsh-pct{font-size:12.5px;text-align:right;font-variant-numeric:tabular-nums}
.dsh-empty{font-size:13px;color:var(--d-mut);margin:4px 0 0;line-height:1.5}
.dsh-stages{display:flex;height:10px;border-radius:5px;overflow:hidden;margin:8px 0 10px;background:var(--d-track)}.dsh-stages i{display:block;height:100%}
.dsh-stg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;font-size:12px;color:var(--d-mut)}
.dsh-stg b{display:block;font-size:17px;font-weight:500;color:var(--d-ink)}
.dsh-stg span{display:flex;align-items:center;gap:5px}.dsh-stg span i{flex:none;width:8px;height:8px;border-radius:2px;display:block}
.dsh-stg.six{grid-template-columns:repeat(auto-fit,minmax(92px,1fr))}
.dsh-qs{margin-top:12px}
.dsh-qgrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:8px}
.dsh .dsh-q{display:flex;flex-direction:column;gap:4px;padding:13px;border:1px solid var(--d-line);border-radius:14px;background:var(--d-card);min-width:0}
.dsh .dsh-q:hover{border-color:var(--d-acc)}
.dsh-q b{font-size:13.5px;font-weight:500;margin-top:14px;color:var(--d-ink)}
.dsh-qi{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--d-acc);background:var(--d-card);
  box-shadow:0 0 0 1.5px color-mix(in srgb,var(--d-acc) 35%,transparent),0 0 0 5px var(--d-soft)}
.dsh-qi .shl-i{vertical-align:0}
.dsh-foot{font-size:12px;color:var(--d-dim);text-align:center;margin-top:14px}
@media (max-width:900px){.dsh-two{grid-template-columns:1fr}.dsh-qgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){
  .dsh-g4{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .dsh .dsh-h1{font-size:28px}
  .dsh-stat{padding:12px 13px;border-radius:15px}.dsh-v{font-size:24px}
  .dsh-qgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dsh .dsh-brief h2{font-size:21px}
}

/* week plan strip + plan settings (30 Sep 2026) */
.dsh-days{display:flex;gap:6px;flex-wrap:wrap;margin:2px 0 12px}
.dsh-days span{display:flex;flex-direction:column;align-items:center;min-width:44px;padding:5px 6px;border:1px solid var(--d-line);border-radius:10px;font-size:11px;color:var(--d-mut)}
.dsh-days span b{font-size:15px;color:var(--d-ink);font-weight:600}
.dsh-days span.we{background:color-mix(in srgb,var(--d-acc) 9%,transparent)}
.dsh-days span.now{border-color:var(--d-acc);box-shadow:0 0 0 1px var(--d-acc) inset}
.dsh-plan{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin-top:12px;font-size:12px;color:var(--d-mut)}
.dsh-plan>span{font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:10.5px}
.dsh-plan label{display:inline-flex;gap:6px;align-items:center}
.dsh-plan select{font:inherit;color:var(--d-ink);background:var(--d-card);border:1px solid var(--d-line);border-radius:8px;padding:3px 6px}
/* quick start: compact, all options on one row (17 Oct 2026) */
.dsh-qgrid{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);grid-template-columns:none;gap:8px}
.dsh .dsh-q{display:grid;grid-template-columns:24px minmax(0,1fr);column-gap:8px;align-items:center;padding:8px 10px;border-radius:11px;text-align:left}
.dsh-q b{margin-top:0;font-size:13px;line-height:1.25;grid-column:2}
.dsh-q .dsh-d{grid-column:2;font-size:11.5px;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.dsh-q .dsh-qi{grid-row:1 / span 2;width:24px;height:24px;box-shadow:0 0 0 1.5px color-mix(in srgb,var(--d-acc) 30%,transparent)}
@media (max-width:900px){.dsh-qgrid{grid-template-columns:none;grid-auto-columns:minmax(132px,1fr);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px;scrollbar-width:thin}
  .dsh .dsh-q{scroll-snap-align:start}}
@media (max-width:640px){.dsh-qgrid{grid-template-columns:none}}
