:root{--background:#f4efe8;--panel:rgba(255,250,244,0.88);--foreground:#1f1b18;--muted:#6f655d;--border:rgba(111,101,93,0.18);--accent:#d6613d;--accent-deep:#8e3f26;--accent-soft:#f7d4c9;--shadow:0 18px 42px rgba(78,52,39,0.12)}body,html{max-width:100vw;overflow-x:hidden}body{color:var(--foreground);background:radial-gradient(circle at top,rgba(214,97,61,.16),transparent 30%),linear-gradient(180deg,#f8f2ea,#f2ebe1);font-family:Aptos,Segoe UI,Trebuchet MS,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;padding:0;margin:0}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:Bahnschrift,Arial Narrow,Segoe UI,sans-serif;line-height:1.05}button,input,select,textarea{font:inherit}button{border:none;cursor:pointer}input,select,textarea{width:100%;border-radius:18px;border:1px solid var(--border);background:rgba(255,255,255,.9);padding:.95rem 1rem;color:var(--foreground)}textarea{resize:vertical}.shell{width:min(100%,760px);margin:0 auto;padding:1.5rem 1rem 6rem}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.page-intro{margin-top:.75rem;color:var(--muted);line-height:1.55}.content{margin-top:1.25rem}.card{border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow);border-radius:28px;padding:1.15rem}.metric-lg{font-family:Bahnschrift,Arial Narrow,Segoe UI,sans-serif;font-size:clamp(1.8rem,6vw,2.8rem)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.73rem}.eyebrow,.muted{color:var(--muted)}.muted{line-height:1.5}.pill{display:inline-flex;align-items:center;border-radius:999px;background:var(--accent-soft);color:var(--accent-deep);padding:.4rem .75rem;font-size:.85rem}.grid,.stack-md,.stack-sm,.stack-xs{display:grid}.stack-xs{gap:.45rem}.stack-sm{gap:.7rem}.gap-md,.grid,.stack-md{gap:1rem}.dashboard-grid,.three-up,.two-up{display:grid;gap:1rem}.list-row,.split-row{display:flex;justify-content:space-between;gap:1rem;align-items:center}.list-row{padding:.8rem 0;border-bottom:1px solid var(--border)}.list-row:last-child{border-bottom:none;padding-bottom:0}.inset-panel{background:rgba(255,255,255,.58);border:1px solid rgba(111,101,93,.12);border-radius:22px;padding:.95rem}.field{display:grid;gap:.45rem}.field span{font-size:.88rem;color:var(--muted)}.grow{flex:1 1}.ghost-button,.primary-button{display:inline-flex;justify-content:center;align-items:center;min-height:48px;border-radius:999px;padding:.85rem 1.1rem}.primary-button{background:linear-gradient(135deg,var(--accent) 0,#ea8b5d 100%);color:white}.ghost-button{background:rgba(255,255,255,.72);color:var(--foreground);border:1px solid var(--border)}.inline-form{display:flex;gap:.85rem;align-items:end}.inline-link{color:var(--accent-deep)}.bottom-nav{position:fixed;left:50%;bottom:1rem;transform:translateX(-50%);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:min(calc(100% - 1.2rem),740px);padding:.45rem;background:rgba(255,250,244,.92);border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow)}.bottom-nav__item{text-align:center;padding:.85rem .35rem;border-radius:999px;color:var(--muted);font-size:.88rem}.bottom-nav__item.is-active{background:var(--foreground);color:white}.offline-screen{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.heatmap{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:.35rem;align-items:center}.heatmap__cell{width:100%;aspect-ratio:1/1;border-radius:10px;border:1px solid rgba(111,101,93,.14);background:rgba(255,255,255,.48)}.heatmap__cell.level-0{opacity:.6}.heatmap__cell.level-2{background:rgba(214,97,61,.35);border-color:rgba(214,97,61,.45);opacity:1}.heatmap__cell.level-3{background:rgba(214,97,61,.7);border-color:rgba(214,97,61,.8);opacity:1}.heatmap__cell.is-active{outline:2px solid rgba(31,27,24,.9);outline-offset:2px}@media (min-width:720px){.dashboard-grid,.two-up{grid-template-columns:repeat(2,minmax(0,1fr))}.three-up{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:719px){.inline-form{flex-direction:column;align-items:stretch}.list-row,.split-row,.topbar{flex-direction:column;align-items:flex-start}}