:root{--bg: #0f1419;--surface: #1a2332;--border: #2d3a4d;--text: #e7edf5;--muted: #8b9cb3;--accent: #3d8bfd;--accent-hover: #5c9dff;--danger: #e05252;--success: #3db88a;--radius: 10px;font-family:DM Sans,system-ui,-apple-system,sans-serif}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);line-height:1.5}a{color:var(--accent)}#root{min-height:100vh}.app-shell{min-height:100vh;display:flex;flex-direction:column}.top-bar{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--border);gap:1rem;flex-wrap:wrap}.brand-link{text-decoration:none;color:inherit}.brand-link:hover h1{color:var(--accent)}.top-bar h1{margin:0;font-size:1.125rem;font-weight:600;letter-spacing:-.02em}.top-bar-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.pagination-bar{justify-content:space-between}.top-bar .user{font-size:.85rem;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:var(--radius);border:none;font-size:.9rem;font-weight:500;cursor:pointer;text-decoration:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--border)}.btn-ghost:hover{color:var(--text);border-color:var(--muted)}.btn-danger{background:#e052522e;color:#f0a8a8;border:1px solid var(--danger)}.btn-danger:hover:not(:disabled){background:#e0525252;color:#fff}.btn-danger:disabled{opacity:.55;cursor:not-allowed}main.page{flex:1;padding:1.5rem;max-width:1200px;margin:0 auto;width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;margin-bottom:1.25rem}.card h2{margin:0 0 1rem;font-size:1.1rem}.form-grid{display:grid;gap:1rem;max-width:400px}label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--muted)}input[type=text],input[type=email],input[type=password],input[type=number]{padding:.55rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:1rem}input:focus{outline:2px solid var(--accent);outline-offset:1px}.check{flex-direction:row;align-items:center;gap:.5rem}.check input{width:auto}.banner{padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.9rem}.banner-error{background:#e0525226;border:1px solid var(--danger);color:#f0a8a8}.banner-success{background:#3db88a26;border:1px solid var(--success);color:#7fd4b8}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.875rem}th,td{text-align:left;padding:.65rem .75rem;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:500}tr:hover td{background:#ffffff05}.toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:1rem}.toolbar input.search{flex:1;min-width:200px;max-width:320px}.pill{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;background:var(--border);color:var(--muted)}.pill.on{background:#3db88a40;color:var(--success)}.pill.off{background:#e0525233;color:#f0a8a8}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.login-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem}.login-card h1{margin:0 0 .25rem;font-size:1.35rem}.login-card .sub{color:var(--muted);margin:0 0 1.5rem;font-size:.9rem}.muted{color:var(--muted);font-size:.85rem}th.numeric,td.numeric{text-align:right}.mono{font-variant-numeric:tabular-nums}
