:root{--red: #ee0011;--red-act: #c8101c;--red-ink: #8e0a12;--red-tint: #fff0f1;--black: #141416;--ink: #141416;--ink-2: #3b3d45;--muted: #6a6d78;--line: #e6e7ea;--line-2: #cfd2d8;--bg: #f6f6f7;--white: #ffffff;--ok: #14794a;--ok-tint: #e8f5ee;--err: #b3141c;--err-tint: #fdeeee;--f-head: "Montserrat", "Gotham", "Segoe UI", system-ui, sans-serif;--f-body: "Source Sans 3", "Segoe UI", system-ui, sans-serif;color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh}body{background:var(--bg);color:var(--ink);font:400 15px/1.55 var(--f-body);-webkit-font-smoothing:antialiased}a{color:var(--red-act);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit}h1{font-family:var(--f-head);font-size:24px;font-weight:700;margin:0 0 8px}h2{font-family:var(--f-head);font-size:18px;font-weight:600;margin:0 0 8px}.muted{color:var(--muted)}.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:var(--black);color:#c9cad1;padding:24px 0;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar .logo{padding:0 24px 16px;font-family:var(--f-head);font-size:18px;font-weight:700;color:#fff;border-bottom:1px solid #2a2b31}.sidebar .brand{font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:#8d8f99;margin-top:2px}.sidebar nav{padding:12px 8px;display:flex;flex-direction:column;gap:2px}.sidebar nav a{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:8px;color:#c9cad1;font-size:14px}.sidebar nav a:hover{background:#1d1e22;color:#fff;text-decoration:none}.sidebar nav a.active{background:var(--red-act);color:#fff}.sidebar .user{margin-top:auto;padding:16px 24px;border-top:1px solid #2a2b31;font-size:12px;color:#8d8f99}.sidebar .user b{color:#fff;font-weight:600;display:block;margin-bottom:2px;font-size:13px}.sidebar .user button{margin-top:10px;background:transparent;border:1px solid #3a3b42;color:#c9cad1;padding:6px 10px;border-radius:6px;font-size:12px}.sidebar .user button:hover{border-color:var(--red-act);color:#fff}.main{padding:24px 32px;min-width:0}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#141416,#2a2b31);padding:20px}.login .card{background:#fff;border-radius:16px;padding:36px 32px;max-width:420px;width:100%;box-shadow:0 20px 50px #0003}.login h1{text-align:center;margin-bottom:4px}.login .sub{text-align:center;color:var(--muted);font-size:14px;margin-bottom:24px}.login label{display:block;font-size:13px;font-weight:500;margin:14px 0 6px;color:var(--ink-2)}.login input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;outline:none;font-size:14px}.login input:focus{border-color:var(--red-act)}.login button.primary{width:100%;margin-top:20px;padding:12px;border:none;border-radius:10px;background:var(--red-act);color:#fff;font-weight:600;font-size:14px}.login button.primary:hover{background:var(--red-ink)}.login button.primary:disabled{background:var(--muted);cursor:not-allowed}.login .err{background:var(--err-tint);color:var(--err);border:1px solid #fcd5d5;padding:10px 12px;border-radius:10px;font-size:13px;margin-top:14px}.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:16px 0 24px}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.stat .l{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.stat .v{font-size:24px;font-weight:700;color:var(--ink);margin-top:4px}.stat .s{font-size:12px;color:var(--muted);margin-top:2px}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 24px;margin-bottom:20px}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--line-2);border-top-color:var(--red-act);border-radius:50%;animation:sp .7s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}.center{display:grid;place-items:center;padding:40px}
