:root{--lime:#b9f227;--ink:#0f1420;--ink-2:#1a2030;--ink-line:#2a3142;--off:#f6f7f3;--white:#fff;--muted:#565c57;--muted-2:#8a908b;--line:#e2e5dc;--soft:#e9ede2;--head:#ebeee6;--blue-bg:#dce6f7;--blue:#23498f;--pink-bg:#f6d9e4;--pink:#9b2c5a;--green-bg:#e3f3d6;--green:#3a7a17;--amber-bg:#fdf0d5;--amber:#b26b00;--red-bg:#fbe1da;--red:#b03a20;--red-strong:#a8321f;--display:"Bricolage Grotesque", system-ui, sans-serif;--body:"DM Sans", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--off);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:14px}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit}h1{font-family:var(--display);letter-spacing:-.02em;margin:0;font-size:30px;font-weight:800;line-height:1.15}h2{margin:0;font-size:16px;font-weight:700}h3{font-family:var(--display);letter-spacing:-.01em;margin:0;font-size:24px;font-weight:800}.layout{grid-template-columns:240px 1fr;min-height:100%;display:grid}.sidebar{background:var(--ink);color:var(--white);flex-direction:column;gap:28px;height:100vh;padding:28px 16px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:0 8px;display:flex}.brand b{font-family:var(--display);color:var(--lime);letter-spacing:-.02em;font-size:22px;font-weight:800}.brand span{color:#a3a9b6;margin-top:4px;font-size:14px}.nav{flex-direction:column;gap:6px;display:flex}.nav a{color:#c9cec9;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;font-size:15px;font-weight:600;text-decoration:none;display:flex}.nav a:hover{background:#1c201d}.nav a.active{background:var(--ink-2);color:var(--white)}.nav a.active svg{color:var(--lime)}.nav .count{background:var(--ink-line);color:#c9cec9;border-radius:11px;place-items:center;min-width:24px;height:22px;margin-left:auto;padding:0 7px;font-size:12px;font-weight:700;display:grid}.nav .count.hot{background:var(--lime);color:var(--ink)}.me{background:var(--ink-2);color:#a3a9b6;border-radius:12px;flex-direction:column;gap:6px;margin-top:auto;padding:12px;font-size:13px;display:flex}.me b{color:var(--white);font-size:14px}.me button{all:unset;cursor:pointer;color:var(--lime);font-size:13px;font-weight:600}.main{flex-direction:column;gap:20px;min-width:0;padding:28px 32px 48px;display:flex}.page-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-head p{color:var(--muted);margin:6px 0 0;font-size:15px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.grid{gap:16px;display:grid}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g5{grid-template-columns:repeat(5,1fr)}.side{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:16px;display:grid}.side.wide{grid-template-columns:380px minmax(0,1fr)}@media (width<=1100px){.g5{grid-template-columns:repeat(3,1fr)}.side,.side.wide,.g2{grid-template-columns:1fr}}.card{background:var(--white);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:14px;min-width:0;padding:18px 20px;display:flex}.card.dark{background:var(--ink);border-color:var(--ink);color:var(--white)}.card.dark h2{color:var(--lime)}.card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.kpi{gap:4px}.kpi .label{color:var(--muted);font-size:13px}.kpi .value{font-family:var(--display);letter-spacing:-.02em;font-size:28px;font-weight:800}.kpi .delta{color:var(--green);font-size:12px;font-weight:700}.pill{background:var(--soft);cursor:pointer;white-space:nowrap;border:none;border-radius:999px;align-items:center;gap:6px;height:28px;padding:0 12px;font-size:12.5px;font-weight:700;display:inline-flex}.pill.on{background:var(--ink);color:var(--white)}.tag{white-space:nowrap;background:var(--soft);border-radius:999px;align-items:center;height:24px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.tag.blue{background:var(--blue-bg);color:var(--blue)}.tag.pink{background:var(--pink-bg);color:var(--pink)}.tag.green{background:var(--green-bg);color:var(--green)}.tag.amber{background:var(--amber-bg);color:var(--amber)}.tag.red{background:var(--red-bg);color:var(--red)}.tag.dark{background:var(--ink);color:var(--lime)}.tag.redstrong{background:var(--red-strong);color:var(--white)}.btn{border:1.5px solid var(--line);background:var(--white);cursor:pointer;white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;gap:8px;height:40px;padding:0 16px;font-weight:700;display:inline-flex}.btn:hover{border-color:#c9cec4}.btn.dark{background:var(--ink);border-color:var(--ink);color:var(--white)}.btn.lime{background:var(--lime);border-color:var(--lime);color:var(--ink)}.btn.warn{background:var(--amber-bg);border-color:var(--amber-bg);color:var(--amber)}.btn.soft-red{background:var(--red-bg);border-color:var(--red-bg);color:var(--red)}.btn.red{background:var(--red-strong);border-color:var(--red-strong);color:var(--white)}.btn.block{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.lg{height:46px}.search{border:1px solid var(--line);background:var(--white);border-radius:12px;align-items:center;gap:10px;width:300px;height:40px;padding:0 14px;display:flex}.search input{background:0 0;border:none;outline:none;flex:1}.input{border:1.5px solid var(--line);background:var(--white);border-radius:10px;outline:none;width:100%;height:40px;padding:0 12px}.input:focus{border-color:var(--ink)}textarea.input{height:auto;padding:10px 12px}label.field{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.table{background:var(--white);border:1px solid var(--line);border-radius:16px;overflow-x:auto}.table table{border-collapse:collapse;width:100%;font-size:13.5px}.table th{text-align:left;background:var(--head);color:var(--muted);white-space:nowrap;padding:12px;font-size:13px;font-weight:600}.table th:first-child,.table td:first-child{padding-left:16px}.table td{border-top:1px solid var(--line);vertical-align:middle;padding:11px 12px}.table tr.click{cursor:pointer}.table tr.click:hover td{background:#fafbf8}.table tr.sel td{background:#e8f5d5}.empty{text-align:center;color:var(--muted);padding:28px}.avatar{width:28px;height:28px;color:var(--white);background:#2a3142;border-radius:50%;flex-shrink:0;place-items:center;font-size:11px;font-weight:700;display:inline-grid}.avatar.lg{width:52px;height:52px;font-size:18px;font-family:var(--display)}.who{white-space:nowrap;align-items:center;gap:10px;font-weight:700;display:flex}.kv{justify-content:space-between;gap:12px;font-size:14px;display:flex}.kv span:first-child{color:var(--muted)}.kv span:last-child{text-align:right;font-weight:700}.note{background:var(--amber-bg);color:var(--amber);border-radius:12px;padding:12px 14px;font-size:13px}.note.red{background:var(--red-bg);color:var(--red)}.note.green{background:var(--green-bg);color:var(--green)}.muted{color:var(--muted)}.small{font-size:12.5px}.bold{font-weight:700}.err{background:var(--red-bg);color:var(--red);border-radius:12px;padding:12px 14px;font-weight:600}.bars{align-items:flex-end;gap:10px;height:150px;display:flex}.bars div{background:#3a4256;border-radius:6px;flex:1;min-height:4px}.bars div.now{background:var(--lime)}.mini-bars{align-items:flex-end;gap:4px;height:48px;display:flex}.mini-bars div{background:#3a4256;border-radius:3px;flex:1;min-height:3px}.mini-bars div.peak{background:var(--lime)}.hbar{grid-template-columns:40px 1fr 1fr;align-items:center;gap:10px;font-size:13px;display:grid}.hbar .bar{color:var(--muted);align-items:center;gap:8px;display:flex}.hbar .bar i{border-radius:5px;height:10px;display:block}.list>div{white-space:nowrap;border-top:1px solid var(--line);align-items:center;gap:16px;padding:12px 0;display:flex}.list>div:first-child{border-top:none}.case{border:1px solid var(--line);background:var(--off);cursor:pointer;text-align:left;border-radius:16px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.case.on{border:2px solid var(--ink);background:var(--white)}.stat{background:var(--off);border-radius:12px;padding:12px 14px}.stat b{font-family:var(--display);font-size:20px;display:block}.quote{background:var(--off);border-radius:12px;padding:14px 16px;font-size:15px;line-height:1.5}.rule{justify-content:space-between;align-items:center;gap:16px;display:flex}.rule .unit{white-space:nowrap;border:1.5px solid var(--line);background:var(--off);border-radius:10px;flex-shrink:0;align-items:center;gap:8px;height:36px;padding:0 10px;display:inline-flex}.rule .unit input{text-align:right;background:0 0;border:none;outline:none;width:64px;font-size:15px;font-weight:800}.rule .unit input[type=date]{text-align:left;width:140px}.rule .unit span{color:var(--muted);font-size:12.5px}.rule.changed .unit{border-color:var(--ink);background:#f1f9e0}.auth{background:var(--ink);place-items:center;min-height:100%;padding:24px;display:grid}.auth .card{gap:18px;width:400px;padding:28px}.qr{background:var(--white);border:1px solid var(--line);border-radius:12px;place-items:center;padding:12px;display:grid}.qr img{width:180px;height:180px}code.secret{word-break:break-all;background:var(--off);border-radius:8px;padding:8px 10px;font-size:12px}.backdrop{z-index:50;background:#1518168c;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:var(--white);border-radius:18px;flex-direction:column;gap:16px;width:440px;max-width:100%;padding:24px;display:flex}.modal.wide{width:760px;max-height:85vh;overflow:auto}.toast{background:var(--ink);color:var(--white);z-index:60;border-radius:12px;padding:12px 18px;font-weight:600;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.card .grid.g2 .btn{padding:0 10px}
