:root{
  --paper:#fff;--wash:#f6f5f4;--ink:#1c1917;--muted:#57534e;--line:#d6d3d1;
  --brand:#7c3aed;--brand-2:#a21caf;--brand-soft:#f3e8ff;
  --warm:#d97706;--warm-soft:#fdf1df;
  --good:#059669;--good-soft:#e3f6ef;--warn:#d97706;--warn-soft:#fdf1df;--bad:#dc2626;--bad-soft:#fdeaea;
  --radius:16px;--radius-sm:10px;
  --shadow-sm:0 1px 2px rgb(28 25 23/.05),0 1px 3px rgb(28 25 23/.08);
  --fs-base:18px;--tap-min:52px;
}
body{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:var(--fs-base);line-height:1.6;background:var(--wash);color:var(--ink);-webkit-font-smoothing:antialiased;}
a{color:var(--brand);text-decoration:none;}
.wrap{max-width:1180px;margin-inline:auto;padding-inline:clamp(16px,4vw,32px);}
.navbar a{color:var(--ink);}
.panel{background:var(--paper);border:2px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:2px solid var(--line);flex-wrap:wrap;}
.panel-title{font-size:1.2rem;font-weight:700;margin:0;letter-spacing:-.02em;}
.small-caps{text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;font-weight:700;color:var(--muted);}
.badge-soft{font-weight:700;border-radius:999px;padding:.4em .85em;font-size:.82rem;white-space:nowrap;}
.bge-brand{background:var(--brand-soft);color:#5b21b6;}
.bge-warm{background:var(--warm-soft);color:#92400e;}
.bge-good{background:var(--good-soft);color:var(--good);}
.bge-warn{background:var(--warn-soft);color:var(--warn);}
.bge-bad{background:var(--bad-soft);color:var(--bad);}
.bge-line{background:var(--wash);color:var(--muted);border:2px solid var(--line);}
.form-label{font-size:var(--fs-base);font-weight:700;color:var(--ink);margin-bottom:6px;}
.form-control,.form-select{border-color:var(--line);border-radius:var(--radius-sm);font-size:var(--fs-base);padding:.65rem .85rem;min-height:var(--tap-min);}
.form-control:focus,.form-select:focus{border-color:var(--brand);box-shadow:0 0 0 .25rem rgb(124 58 237/.2);}
.btn{border-radius:var(--radius-sm);font-weight:700;padding:.6rem 1.2rem;font-size:var(--fs-base);min-height:var(--tap-min);display:inline-flex;align-items:center;gap:.5rem;}
.btn-brand{background:var(--brand);border-color:var(--brand);color:#fff;}
.btn-brand:hover{background:#6d28d9;border-color:#6d28d9;color:#fff;}
.btn-outline{background:#fff;border:2px solid var(--line);color:var(--ink);}
.btn-outline:hover{border-color:var(--brand);color:var(--brand);}
input[type=range]{width:100%;accent-color:var(--brand);height:8px;cursor:pointer;}
.meter{background:var(--wash);border:2px solid var(--line);border-radius:999px;height:12px;overflow:hidden;}
.meter>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#a21caf,var(--brand));}
.meter.good>span{background:linear-gradient(90deg,#34d399,var(--good));}
.stat-value{font-size:2.2rem;font-weight:800;letter-spacing:-.02em;}
.app-table{width:100%;border-collapse:collapse;font-size:.92rem;}
.app-table th{text-align:left;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:12px 16px;border-bottom:2px solid var(--line);}
.app-table td{padding:14px 16px;border-bottom:2px solid var(--line);vertical-align:middle;}
.tick{font-variant-numeric:tabular-nums;font-family:ui-monospace,Menlo,Consolas,monospace;}
.phase{border-left:4px solid var(--line);padding-left:16px;}
.phase.a{border-color:#f59e0b;} .phase.b{border-color:#8b5cf6;} .phase.c{border-color:#06b6d4;} .phase.d{border-color:#10b981;}

.hero{background:linear-gradient(180deg,var(--paper),color-mix(in srgb,var(--brand-soft) 45%,var(--paper)));border-bottom:2px solid var(--line);}
.hero h1{font-weight:800;letter-spacing:-.03em;}
.jar-card{border:2px solid var(--line);border-radius:var(--radius);background:#fff;}
.jar-card .jar-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;}
.chip{font-weight:700;border-radius:999px;padding:.25em .7em;font-size:.78rem;display:inline-flex;align-items:center;gap:.3em;border:2px solid var(--line);color:var(--muted);background:#fff;}
.chip.on{color:var(--good);border-color:var(--good);background:var(--good-soft);}
.chip.warm{color:#92400e;border-color:#fbbf24;background:var(--warm-soft);}
.chip.brand{color:#5b21b6;border-color:#c4b5fd;background:var(--brand-soft);}
.note{color:var(--muted);font-size:.95rem;}
.ending{border-top:2px solid var(--line);}
@media (min-width:768px){:root{--fs-base:17px;}}
@media (min-width:1024px){:root{--fs-base:16px;}}