:root{--s1: 4px;--s2: 8px;--s3: 10px;--s4: 14px;--s5: 20px;--s6: 28px;--s7: 40px;--r1: 8px;--r2: 12px;--r3: 16px;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--bg: #fafaf9;--sunken: #f1f1ef;--panel: #ffffff;--line: #e4e4e0;--line-strong: #d2d2cc;--text: #1a1a17;--muted: #6d6d66;--accent: #5b5bd6;--accent-soft: #eeeefc;--shadow: 0 1px 2px rgb(20 20 15 / .06), 0 1px 1px rgb(20 20 15 / .04);--shadow-lift: 0 4px 14px rgb(20 20 15 / .08);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #131316;--sunken: #18181c;--panel: #1d1d22;--line: #2b2b33;--line-strong: #3a3a45;--text: #ececed;--muted: #9c9ca8;--accent: #9d9dfa;--accent-soft: #23233a;--shadow: 0 1px 2px rgb(0 0 0 / .4);--shadow-lift: 0 4px 16px rgb(0 0 0 / .45)}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{letter-spacing:-.02em}code{font-family:var(--mono)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.lede{max-width:70ch;margin:0 0 var(--s4);color:var(--muted);font-size:.92rem;line-height:1.65}.lede:last-child{margin-bottom:0}.lede code{padding:1px 5px;border-radius:5px;background:var(--sunken);color:var(--text);font-size:.86em}.controls{display:flex;flex-wrap:wrap;gap:var(--s3)}.controls fieldset{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;margin:0;padding:var(--s2) var(--s4) var(--s3);border:1px solid var(--line);border-radius:var(--r2);background:var(--panel);box-shadow:var(--shadow)}.controls legend{padding:0 var(--s1);color:var(--muted);font-size:.66rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase}.controls label{display:inline-flex;gap:var(--s1);align-items:center;font-size:.85rem;cursor:pointer}button{padding:5px var(--s3);border:1px solid var(--line);border-radius:var(--r1);background:var(--panel);color:inherit;font:inherit;font-size:.82rem;cursor:pointer;transition:border-color .12s ease,color .12s ease}button:hover{border-color:var(--line-strong);color:var(--accent)}input[type=range]{width:140px;accent-color:var(--accent)}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}.stats{display:flex;flex-wrap:wrap;gap:var(--s6);margin:0;padding:var(--s3) var(--s5);border:1px solid var(--line);border-radius:var(--r2);background:var(--panel);box-shadow:var(--shadow)}.stats div{display:grid;gap:1px}.stats dt{color:var(--muted);font-size:.66rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase}.stats dd{margin:0;font-size:.95rem;font-variant-numeric:tabular-nums;font-weight:640}.card{overflow:hidden;border:1px solid var(--line);border-radius:var(--r2);background:var(--panel);box-shadow:var(--shadow);transition:box-shadow .16s ease}.card:hover{box-shadow:var(--shadow-lift)}.card img{display:block;width:100%;height:auto}.card-body{display:flex;flex-direction:column;gap:var(--s1);padding:var(--s4) var(--s4) var(--s5)}.card h2{margin:0;font-size:.92rem;font-weight:620}.card p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.5}.badge{align-self:flex-start;margin-top:var(--s2);padding:2px var(--s2);border-radius:999px;background:hsl(var(--hue) 62% 52% / .14);color:hsl(var(--hue) 62% 34%);font-size:.68rem;font-weight:650;letter-spacing:.01em}@media(prefers-color-scheme:dark){.badge{background:hsl(var(--hue) 62% 60% / .18);color:hsl(var(--hue) 75% 76%)}}.tile{display:grid;place-items:center;border:1px solid hsl(var(--hue) 50% 55% / .34);border-radius:var(--r1);background:hsl(var(--hue) 50% 55% / .16);color:var(--muted);font-family:var(--mono);font-size:.72rem}.stamp{position:absolute;top:0;right:0;z-index:1;display:grid;gap:var(--s1);width:min(320px,60%);padding:var(--s5);border:1px dashed var(--accent);border-radius:var(--r2);background:var(--accent-soft);font-size:.85rem}.stamp span{color:var(--muted)}.widget{display:flex;flex-direction:column;gap:var(--s2);overflow:hidden;padding:var(--s4);border:1px solid var(--line);border-radius:var(--r2);background:var(--panel);box-shadow:var(--shadow)}.widget header{display:flex;gap:var(--s2);align-items:baseline;justify-content:space-between}.widget h2{display:flex;gap:var(--s2);align-items:center;margin:0;font-size:.82rem;font-weight:620}.widget h2:before{content:"";width:7px;height:7px;border-radius:50%;background:hsl(var(--hue) 60% 55%);flex:none}.widget .dims{color:var(--muted);font-family:var(--mono);font-size:.64rem;white-space:nowrap}.kpi{display:flex;flex:1;flex-direction:column;justify-content:center;gap:1px}.kpi b{font-size:1.8rem;font-weight:640;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.15}.kpi .delta{color:#14794a;font-size:.75rem;font-weight:640}.kpi .delta.down{color:#bd3126}.kpi .delta small{color:var(--muted);font-weight:500}@media(prefers-color-scheme:dark){.kpi .delta{color:#4fcd8e}.kpi .delta.down{color:#f28376}}.bars{display:flex;flex:1;gap:3px;align-items:flex-end;min-height:0;padding-top:var(--s2)}.bars i{flex:1;min-width:0;border-radius:3px 3px 1px 1px;background:linear-gradient(180deg,hsl(var(--hue) 60% 58% / .85),hsl(var(--hue) 60% 58% / .4))}.widget ul{display:flex;flex:1;flex-direction:column;gap:var(--s2);overflow:hidden;margin:0;padding:0;list-style:none;font-size:.8rem}.widget li{display:flex;gap:var(--s3);justify-content:space-between;color:var(--muted)}.widget li b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:620}.widget-body{display:flex;flex:1;flex-direction:column;min-height:0}.skeleton{display:flex;flex:1;flex-direction:column;gap:var(--s2);justify-content:center}.skeleton span{height:9px;border-radius:999px;background:linear-gradient(90deg,hsl(var(--hue) 40% 58% / .12),hsl(var(--hue) 40% 58% / .3),hsl(var(--hue) 40% 58% / .12));background-size:220% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}.skeleton span:nth-child(1){width:68%}.skeleton span:nth-child(2){width:92%}.skeleton span:nth-child(3){width:51%}@keyframes skeleton-shimmer{0%{background-position:220% 0}to{background-position:-40% 0}}@media(prefers-reduced-motion:reduce){.skeleton span{animation:none}*{transition-duration:.01ms!important}}
