:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}#root{text-align:left;border-inline:none;width:100%;max-width:none;margin:0}*{box-sizing:border-box}.btn{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:8px;padding:8px 14px;font-size:14px;transition:filter .15s,background .15s}.btn:hover{filter:brightness(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-danger{color:#fff;background:#e5484d;border-color:#e5484d}.btn-sm{padding:5px 10px;font-size:13px}.input,.select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:8px;width:100%;padding:8px 10px;font-size:14px;transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-bg);outline:none}.field{text-align:left;flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{color:var(--text);font-size:13px}.input.is-invalid,.select.is-invalid{border-color:#e5484d;box-shadow:0 0 0 1px #e5484d59}.field-error{color:#e5484d;margin-top:-1px;font-size:12.5px}.login-wrap{background:radial-gradient(60% 55% at 18% 12%, var(--accent-bg), transparent 70%), radial-gradient(50% 50% at 88% 88%, var(--accent-bg), transparent 70%), var(--social-bg);place-items:center;min-height:100svh;padding:24px;display:grid;position:relative;overflow:hidden}.login-card{z-index:1;border:1px solid var(--border);width:384px;max-width:100%;box-shadow:var(--shadow);background:var(--bg);text-align:left;border-radius:18px;padding:36px 34px 30px;position:relative}.login-brand{align-items:center;gap:10px;margin-bottom:22px;display:flex}.login-logo{color:#fff;background:linear-gradient(140deg, var(--accent), #7c3aed);width:40px;height:40px;box-shadow:0 4px 12px var(--accent-bg);border-radius:11px;place-items:center;display:grid}.login-brand-name{color:var(--text-h);letter-spacing:-.2px;font-size:16px;font-weight:600}.login-card h1{letter-spacing:-.4px;margin:0 0 6px;font-size:25px}.login-card .sub{margin:0 0 26px;font-size:14px;line-height:1.5}.login-submit{width:100%;margin-top:6px;padding:11px 14px;font-size:15px}.login-foot{text-align:center;margin-top:18px;font-size:12.5px}.shell{grid-template-columns:230px 1fr;min-height:100svh;display:grid}.sidebar{border-right:1px solid var(--border);flex-direction:column;gap:4px;padding:20px 14px;display:flex}.sidebar .brand{color:var(--text-h);padding:6px 12px 18px;font-size:18px;font-weight:600}.nav-item{color:var(--text);font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;width:100%;padding:10px 12px;font-size:15px;text-decoration:none;display:flex}.nav-item:hover{background:var(--social-bg)}.nav-item.active{background:var(--accent-bg);color:var(--accent)}.sidebar .spacer{flex:1}.sidebar .who{color:var(--text);border-top:1px solid var(--border);margin-top:8px;padding:8px 12px;font-size:13px}.main{padding:28px 32px;overflow-x:auto}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.page-head h1{margin:0;font-size:28px}.grid{gap:16px;display:grid}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.card{border:1px solid var(--border);background:var(--bg);border-radius:12px;padding:18px}.stat .label{color:var(--text);margin-bottom:8px;font-size:13px}.stat .value{color:var(--text-h);font-size:30px;font-weight:600}.stat .delta{color:var(--accent);margin-top:4px;font-size:13px}.card h3{color:var(--text-h);margin:0 0 14px;font-size:15px}.table-wrap{border:1px solid var(--border);border-radius:12px;overflow:hidden}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--border);padding:11px 14px}th{text-transform:uppercase;letter-spacing:.4px;color:var(--text);background:var(--social-bg);font-size:12px}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--social-bg)}td.actions{white-space:nowrap;gap:8px;display:flex}.badge{background:var(--social-bg);color:var(--text-h);border:1px solid var(--border);border-radius:999px;padding:3px 9px;font-size:12px;display:inline-block}.badge.green{color:#30a46c;background:#30a46c26;border-color:#0000}.badge.red{color:#e5484d;background:#e5484d26;border-color:#0000}.badge.amber{color:#d9890a;background:#ffa9402e;border-color:#0000}.badge.blue{color:#4082ff;background:#4082ff26;border-color:#0000}.badge.violet{background:var(--accent-bg);color:var(--accent);border-color:#0000}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.toolbar .input,.toolbar .select{width:auto;min-width:160px}.pager{justify-content:flex-end;align-items:center;gap:12px;margin-top:16px;font-size:14px;display:flex}.muted{color:var(--text);font-size:14px}.error-box{color:#e5484d;background:#e5484d1f;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:14px}.center-state{text-align:center;color:var(--text);padding:60px 0}.modal-backdrop{z-index:50;background:#00000073;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:var(--bg);border:1px solid var(--border);width:460px;max-width:100%;max-height:90svh;box-shadow:var(--shadow);border-radius:14px;padding:24px;overflow-y:auto}.modal h2{margin:0 0 18px;font-size:20px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.kv{grid-template-columns:130px 1fr;gap:8px 14px;font-size:14px;display:grid}.kv dt{color:var(--text)}.kv dd{color:var(--text-h);word-break:break-word;margin:0}.toast-wrap{z-index:100;flex-direction:column-reverse;gap:10px;max-width:min(380px,100vw - 40px);display:flex;position:fixed;bottom:20px;right:20px}.toast{border:1px solid var(--border);background:var(--bg);box-shadow:var(--shadow);color:var(--text-h);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;animation:.18s ease-out toast-in;display:flex}.toast-body{flex-direction:column;flex:1;gap:10px;display:flex}.toast-msg{word-break:break-word;line-height:1.4}.toast-actions{justify-content:flex-end;gap:8px;display:flex}.toast-close{color:var(--text);cursor:pointer;background:0 0;border:none;padding:0;font-size:18px;line-height:1}.toast-error{border-color:#e5484d73 #e5484d73 #e5484d73 #e5484d;border-left-style:solid;border-left-width:3px}.toast-success{border-color:#30a46c73 #30a46c73 #30a46c73 #30a46c;border-left-style:solid;border-left-width:3px}.toast-info{border-left:3px solid var(--accent)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
