:root{--bg:#1c0d20;--bg-2:#241028;--bg-3:#2e1633;--hair:#d8c8de1f;--hair-strong:#d8c8de38;--text:#f2ecf4;--text-soft:#b9a9c0;--text-mute:#8a7793;--accent:#c9a3d0;--brand:#8b5c96;--good:#d8c8de;--bad:#e08a8a;--font:"Inter", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font);margin:0;padding:0}#root{min-height:100dvh}.shell{flex-direction:column;min-height:100dvh;display:flex}.main{padding:16px 16px calc(84px + env(safe-area-inset-bottom));flex:1;width:100%;max-width:1180px;margin:0 auto}.top{justify-content:space-between;align-items:center;width:100%;max-width:1180px;margin:0 auto;padding:14px 16px 6px;display:flex}.top__brand{letter-spacing:.14em;align-items:center;gap:10px;font-size:.82rem;font-weight:800;display:flex}.top__brand img{border-radius:7px;width:26px;height:26px}.range{background:var(--bg-3);border:1px solid var(--hair);border-radius:999px;gap:2px;padding:3px;display:flex}.range button{color:var(--text-mute);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:5px 11px;font-size:.74rem;font-weight:600}.range button.on{background:var(--brand);color:#fff}.nav{z-index:50;background:color-mix(in oklab, var(--bg-2) 92%, black);border-top:1px solid var(--hair);padding:8px 4px calc(8px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.nav button{color:var(--text-mute);font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:3px;padding:2px 6px;font-size:.6rem;font-weight:600;display:flex}.nav button svg{width:20px;height:20px}.nav button.on{color:var(--accent)}.kpis{grid-template-columns:repeat(2,1fr);gap:10px;margin:10px 0 18px;display:grid}.kpi{background:linear-gradient(180deg, var(--bg-3), var(--bg-2));border:1px solid var(--hair);border-radius:14px;padding:14px 14px 12px}.kpi--hero{grid-column:1/-1;padding:18px 16px}.kpi__label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-mute);font-size:.62rem;font-weight:700}.kpi__value{letter-spacing:-.02em;margin-top:4px;font-size:1.5rem;font-weight:800}.kpi--hero .kpi__value{font-size:2.4rem}.kpi__value.pos{color:var(--good)}.kpi__value.neg{color:var(--bad)}.kpi__sub{color:var(--text-soft);margin-top:2px;font-size:.72rem}.section{margin:22px 0}.section h2{letter-spacing:.14em;text-transform:uppercase;color:var(--text-mute);margin:0 0 10px;font-size:.72rem;font-weight:700}.card{background:var(--bg-2);border:1px solid var(--hair);border-radius:14px;padding:14px}.rows{flex-direction:column;display:flex}.row{border-bottom:1px solid var(--hair);justify-content:space-between;align-items:baseline;gap:10px;padding:9px 2px;font-size:.86rem;display:flex}.row:last-child{border-bottom:0}.row__name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.row__meta{color:var(--text-mute);font-size:.72rem}.row__val{white-space:nowrap;font-weight:700}.funnel{flex-direction:column;gap:8px;display:flex}.fstep{grid-template-columns:110px 1fr auto;align-items:center;gap:10px;font-size:.78rem;display:grid}.fstep__bar{background:linear-gradient(90deg, var(--brand), var(--accent));border-radius:6px;min-width:2px;height:22px}.fstep__n{font-weight:700}.fstep__cr{color:var(--text-mute);font-size:.68rem}.tscroll{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.78rem}th{text-align:left;letter-spacing:.1em;text-transform:uppercase;color:var(--text-mute);border-bottom:1px solid var(--hair-strong);white-space:nowrap;padding:8px 10px;font-size:.62rem}td{border-bottom:1px solid var(--hair);white-space:nowrap;padding:9px 10px}tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}input.cogs{background:var(--bg-3);border:1px solid var(--hair-strong);width:74px;color:var(--text);font:inherit;text-align:right;border-radius:8px;padding:6px 8px;font-size:.8rem}input.cogs:focus{border-color:var(--accent);outline:none}button.save{background:var(--brand);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:8px;padding:7px 12px;font-size:.72rem;font-weight:700}button.save:disabled{opacity:.4}.badge{background:var(--bg-3);border:1px solid var(--hair-strong);color:var(--text-soft);border-radius:999px;padding:2px 8px;font-size:.62rem;font-weight:700;display:inline-block}.badge.good{color:var(--good);border-color:color-mix(in oklab, var(--good) 40%, transparent)}.badge.bad{color:var(--bad);border-color:color-mix(in oklab, var(--bad) 40%, transparent)}.empty{color:var(--text-mute);padding:18px 4px;font-size:.8rem}.err{color:var(--bad);padding:12px;font-size:.8rem}.login{place-items:center;min-height:100dvh;padding:24px;display:grid}.login form{text-align:center;flex-direction:column;gap:12px;width:min(360px,100%);display:flex}.login img{border-radius:18px;width:72px;height:72px;margin:0 auto}.login h1{letter-spacing:.18em;margin:4px 0 10px;font-size:1rem}.login input{background:var(--bg-3);border:1px solid var(--hair-strong);color:var(--text);font:inherit;text-align:center;border-radius:12px;padding:13px 14px}.login button{background:var(--brand);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:12px;padding:13px;font-weight:700}@media (width>=900px){.shell{flex-direction:row}.nav{border-top:0;border-right:1px solid var(--hair);flex-direction:column;justify-content:flex-start;gap:4px;width:176px;height:100dvh;padding:18px 10px;position:sticky;top:0;bottom:auto}.nav button{border-radius:10px;flex-direction:row;gap:10px;width:100%;padding:10px 12px;font-size:.8rem}.nav button.on{background:var(--bg-3)}.main{padding:18px 28px 40px}.kpis{grid-template-columns:repeat(4,1fr)}.kpi--hero{grid-column:span 2}.grid2{grid-template-columns:1fr 1fr;gap:16px;display:grid}}
