:root{--bg:#f7f7f8;--panel:#ffffff;--panel-2:#f0f0f1;--sidebar-bg:#000000;--sidebar-text:#ffffff;--sidebar-text-muted:#a3a3a3;--sidebar-hover:#1a1a1a;--text:#111111;--muted:#6b7280;--accent:#d20000;--accent-hover:#a80000;--accent-soft:rgba(210,0,0,0.08);--danger:#d20000;--warn:#f59e0b;--ok:#16a34a;--border:#e5e7eb;--border-strong:#d1d5db;--shadow:0 1px 2px rgba(0,0,0,0.04),0 1px 6px rgba(0,0,0,0.04)}*{box-sizing:border-box}body,html{height:100%;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}.app{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:var(--sidebar-bg);color:var(--sidebar-text);padding:24px 18px;display:flex;flex-direction:column}.sidebar .brand-logo{display:block;height:38px;width:auto;margin:4px 0 22px;color:#ffffff}.sidebar h1{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin:0 0 4px;color:var(--sidebar-text-muted)}.sidebar .brand-bar{width:36px;height:3px;background:var(--accent);border-radius:2px;margin-bottom:28px}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar nav a{display:block;padding:9px 12px;border-radius:6px;color:var(--sidebar-text);font-weight:500;font-size:13px;border-left:3px solid transparent;transition:background .15s,border-color .15s}.sidebar nav a:hover{background:var(--sidebar-hover);text-decoration:none;color:var(--sidebar-text)}.sidebar nav a.active{background:var(--sidebar-hover);border-left-color:var(--accent);color:#fff}.sidebar .footer{margin-top:auto;padding-top:24px;border-top:1px solid #2a2a2a;font-size:12px;color:var(--sidebar-text-muted)}.sidebar .footer .user-name{color:#fff;font-weight:600;margin-bottom:2px}.sidebar .footer .badges{margin:8px 0;display:flex;gap:6px;flex-wrap:wrap}.content{padding:32px 36px;max-width:1400px}.page-title{margin:0 0 22px;font-size:24px;font-weight:700;color:var(--text)}.page-title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.page-title-row .page-title{margin:0}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:18px;box-shadow:var(--shadow)}.card h3{margin:0 0 14px;font-size:14px;font-weight:600;color:var(--text)}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px;margin-bottom:24px}.kpi{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:18px;box-shadow:var(--shadow);position:relative;overflow:hidden}.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--border-strong)}.kpi.ok:before{background:var(--ok)}.kpi.warn:before{background:var(--warn)}.kpi.brand:before,.kpi.danger:before{background:var(--accent)}.kpi .label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.kpi .value{font-size:30px;font-weight:700;margin-top:4px;color:var(--text)}.kpi.ok .value{color:var(--ok)}.kpi.warn .value{color:var(--warn)}.kpi.danger .value{color:var(--accent)}table{width:100%;border-collapse:collapse}td,th{padding:11px 14px;border-bottom:1px solid var(--border);text-align:left;font-size:13px}th{color:var(--muted);font-weight:600;text-transform:uppercase;font-size:10px;letter-spacing:.06em;background:#fafafa;border-bottom:1px solid var(--border-strong)}tr:hover td{background:var(--accent-soft)}tbody tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em}.badge.ok{background:rgba(22,163,74,.1);color:var(--ok)}.badge.warn{background:rgba(245,158,11,.1);color:var(--warn)}.badge.danger{background:var(--accent-soft);color:var(--accent)}.badge.muted{background:#f0f0f1;color:var(--muted)}.badge.brand,.btn,button{background:var(--accent);color:#fff}.btn,button{border:none;padding:9px 16px;border-radius:6px;font-weight:600;cursor:pointer;font-size:13px;transition:background .15s,transform .05s}.btn:hover:not(:disabled),button:hover:not(:disabled){background:var(--accent-hover)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--panel-2);color:var(--text);border:1px solid var(--border-strong)}button.secondary:hover:not(:disabled){background:#e5e5e6}button.danger{background:var(--accent);color:#fff}button.ghost{background:transparent;color:var(--accent);border:1px solid var(--accent)}button.ghost:hover:not(:disabled){background:var(--accent-soft)}input,select,textarea{width:100%;background:#fff;border:1px solid var(--border-strong);color:var(--text);padding:9px 12px;border-radius:6px;font-size:13px;font-family:inherit;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}label{display:block;color:var(--muted);margin:14px 0 6px;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.04em}.login-shell{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;background:linear-gradient(135deg,#000,#1a0000 60%,#d20000 200%)}.login-card{width:400px;background:#fff;padding:32px;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.3);position:relative;overflow:hidden}.login-card:before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:var(--accent)}.login-card .login-logo{display:block;height:44px;width:auto;color:#000000;margin-bottom:18px}.login-card h1{margin:0 0 4px;color:var(--text);font-size:22px;font-weight:700}.login-card .sub{color:var(--muted);margin-bottom:24px;font-size:13px}.alert{padding:11px 14px;border-radius:6px;background:var(--accent-soft);color:var(--accent);border:1px solid rgba(210,0,0,.2);border-left:3px solid var(--accent);margin-bottom:14px;font-size:13px}.alert.ok{background:rgba(22,163,74,.08);color:var(--ok);border-color:rgba(22,163,74,.25);border-left-color:var(--ok)}.row{display:flex;gap:14px;align-items:flex-start}.row>*{flex:1 1}.right{display:flex;justify-content:flex-end;gap:8px}.muted{color:var(--muted)}.spacer{height:16px}@media (max-width:900px){.app{grid-template-columns:1fr}.sidebar{display:none}.kpi-grid{grid-template-columns:repeat(2,1fr)}.row{flex-direction:column}}