:root{--bg: #0f1222;--surface: #1a1e33;--surface-2: #232846;--border: #2e3557;--text: #e8eaf6;--muted: #9aa1c4;--primary: #6c5ce7;--primary-hover: #7d6ef0;--green: #27ae60;--red: #e74c3c;--radius: 10px}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text)}h1{font-size:1.5rem;margin:0}h2{font-size:1.05rem;margin:24px 0 12px;color:var(--text)}input,textarea,select{width:100%;padding:9px 11px;margin-top:6px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.92rem}input:focus,textarea:focus{outline:none;border-color:var(--primary)}label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:12px}button{cursor:pointer;border:none;border-radius:8px;padding:10px 16px;font-size:.9rem;background:var(--surface-2);color:var(--text)}button:hover{filter:brightness(1.15)}button:disabled{opacity:.6;cursor:not-allowed}button.primary{background:var(--primary)}button.primary:hover{background:var(--primary-hover)}button.danger{background:#e74c3c2e;color:#ff8a80}button.small{padding:6px 10px;font-size:.8rem}.error{background:#e74c3c26;border:1px solid rgba(231,76,60,.4);color:#ff8a80;padding:10px 12px;border-radius:8px;font-size:.9rem}.success{background:#27ae6026;border:1px solid rgba(39,174,96,.4);color:#7ee0a8;padding:10px 12px;border-radius:8px;font-size:.9rem}.layout{display:flex;min-height:100vh}.sidebar{width:230px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:18px 12px;position:sticky;top:0;height:100vh}.brand{font-size:1.15rem;font-weight:700;margin-bottom:22px;padding:0 8px}.brand span{color:var(--primary)}.brand.center{text-align:center;margin-bottom:8px}.sidebar nav{display:flex;flex-direction:column;gap:4px;flex:1}.sidebar nav a{color:var(--muted);text-decoration:none;padding:10px 12px;border-radius:8px;font-size:.93rem}.sidebar nav a:hover{background:var(--surface-2);color:var(--text)}.sidebar nav a.active{background:var(--primary);color:#fff}.logout{margin-top:8px}.content{flex:1;padding:28px 34px;max-width:1100px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 600px at 20% -10%,rgba(108,92,231,.25),transparent),var(--bg)}.login-card{width:340px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:30px 28px}.login-card h1{font-size:1.25rem;text-align:center;margin:4px 0 20px}.login-card button{width:100%;background:var(--primary);margin-top:6px}.cards{display:flex;gap:16px;margin:22px 0}.card{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px}.card-value{font-size:2rem;font-weight:700;color:var(--primary)}.card-label{color:var(--muted);margin-top:4px;font-size:.9rem}.hint{color:var(--muted);font-size:.92rem}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;font-size:.9rem}th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--border)}th{background:var(--surface-2);color:var(--muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}tr:last-child td{border-bottom:none}td.empty{color:var(--muted);text-align:center;padding:26px}.actions{display:flex;gap:6px;flex-wrap:wrap}.badge{padding:3px 9px;border-radius:999px;font-size:.75rem;font-weight:600}.badge-on{background:#27ae602e;color:#7ee0a8}.badge-off{background:#e74c3c26;color:#ff8a80}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:50;overflow:auto}.modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:26px;width:100%;max-width:560px}.modal h2{margin-top:0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.check{display:flex;align-items:center;gap:8px}.check input{width:auto;margin:0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px 26px}.panel>.grid2{margin-bottom:8px}.panel>button{margin-top:8px}.loading{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--muted)}@media (max-width: 720px){.sidebar{width:180px}.content{padding:18px}.grid2{grid-template-columns:1fr}}
