:root{--bg-deepest: #06080c;--bg-base: #0a0e14;--bg-surface: #0d1117;--bg-elevated: #131820;--bg-hover: #1a2332;--bg-active: #1e2a3a;--bg-card: #0f1520;--border-subtle: #151c28;--border-default: #1c2536;--border-strong: #263040;--text-primary: #d2d8e0;--text-secondary: #8a95a5;--text-muted: #5a6577;--text-dim: #3a4555;--text-inverse: #0a0e14;--accent: #d98a3d;--accent-dim: #b06d28;--accent-bg: rgba(217, 138, 61, .09);--accent-border: rgba(217, 138, 61, .25);--green: #3ecf8e;--green-bg: rgba(62, 207, 142, .08);--warning: #f0a742;--warning-bg: rgba(240, 167, 66, .08);--error: #ef4444;--error-bg: rgba(239, 68, 68, .08);--info: #3b82f6;--info-bg: rgba(59, 130, 246, .08);--radius: 8px;--radius-sm: 5px}*{box-sizing:border-box}body{margin:0;background:var(--bg-deepest);color:var(--text-primary);font-family:Inter,-apple-system,sans-serif;font-size:13px}code,.mono{font-family:JetBrains Mono,monospace}#root{min-height:100vh}button{font-family:inherit;cursor:pointer}input,select{font-family:inherit;background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-primary);border-radius:var(--radius-sm);padding:7px 10px;font-size:13px}input:focus,select:focus{outline:none;border-color:var(--accent-border)}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-box{width:340px;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius);padding:32px}.login-box h1{font-size:15px;letter-spacing:1px;text-transform:uppercase;color:var(--accent);margin:0 0 4px}.login-box p.sub{color:var(--text-muted);font-size:12px;margin:0 0 24px}.login-box form{display:flex;flex-direction:column;gap:12px}.login-box label{font-size:11px;color:var(--text-secondary)}.btn-primary{background:var(--accent);color:var(--text-inverse);border:none;border-radius:var(--radius-sm);padding:9px 16px;font-weight:600;font-size:13px}.btn-primary:hover{background:var(--accent-dim)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.err-text{color:var(--error);font-size:12px;min-height:16px}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:var(--bg-surface);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;padding:16px 0}.sidebar-brand{padding:0 16px 16px;border-bottom:1px solid var(--border-subtle);margin-bottom:12px}.sidebar-brand .title{color:var(--accent);font-weight:700;font-size:13px;letter-spacing:.5px}.sidebar-brand .subtitle{color:var(--text-dim);font-size:10px;text-transform:uppercase;letter-spacing:1px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 16px;color:var(--text-secondary);border:none;background:transparent;border-left:2px solid transparent;text-align:left;font-size:13px;width:100%}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background:var(--accent-bg);color:var(--accent);border-left-color:var(--accent)}.sidebar-footer{margin-top:auto;padding:12px 16px 0;border-top:1px solid var(--border-subtle)}.whoami{font-size:11px;color:var(--text-muted);margin-bottom:8px}.btn-logout{background:transparent;border:1px solid var(--border-default);color:var(--text-secondary);border-radius:var(--radius-sm);padding:6px 10px;font-size:12px;width:100%}.btn-logout:hover{border-color:var(--error);color:var(--error)}.main-area{flex:1;padding:24px 28px;overflow-x:auto}.view-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:18px}.view-header h2{margin:0;font-size:17px}.view-header .count{color:var(--text-muted);font-size:12px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:22px}.stat-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:14px 16px}.stat-card .value{font-size:22px;font-weight:700;color:var(--text-primary)}.stat-card .label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius)}.toolbar{display:flex;gap:8px;margin-bottom:14px;align-items:center;flex-wrap:wrap}.toolbar input[type=text]{min-width:220px}table.data-table{width:100%;border-collapse:collapse;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);overflow:hidden}table.data-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:10px 14px;background:var(--bg-elevated);border-bottom:1px solid var(--border-default)}table.data-table td{padding:10px 14px;border-bottom:1px solid var(--border-subtle);font-size:13px}table.data-table tr:last-child td{border-bottom:none}table.data-table tr:hover td{background:var(--bg-hover)}.badge{display:inline-block;padding:2px 8px;border-radius:100px;font-size:11px;font-weight:600}.badge-role-admin{background:var(--accent-bg);color:var(--accent)}.badge-role-tuner{background:var(--info-bg);color:var(--info)}.badge-role-customer,.badge-role-viewer{background:var(--bg-elevated);color:var(--text-muted)}.badge-state-active{background:var(--green-bg);color:var(--green)}.badge-state-locked,.badge-state-disabled,.badge-state-rejected{background:var(--error-bg);color:var(--error)}.badge-state-pending,.badge-state-suspended,.badge-state-waiting,.badge-state-new{background:var(--warning-bg);color:var(--warning)}.badge-state-delivered{background:var(--green-bg);color:var(--green)}.badge-state-in_progress{background:var(--info-bg);color:var(--info)}.icon-btn{background:transparent;border:1px solid var(--border-default);color:var(--text-secondary);border-radius:var(--radius-sm);padding:5px 8px;display:inline-flex;align-items:center;gap:4px;font-size:12px}.icon-btn:hover{border-color:var(--accent-border);color:var(--accent)}.icon-btn.danger:hover{border-color:var(--error);color:var(--error)}.empty-state,.loading-state{text-align:center;padding:48px 0;color:var(--text-muted)}.toast-error{background:var(--error-bg);border:1px solid var(--error);color:var(--error);padding:10px 14px;border-radius:var(--radius-sm);margin-bottom:14px;font-size:13px}.perm-matrix{display:grid;gap:1px;background:var(--border-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius);overflow:hidden}.perm-row{display:contents}.perm-cell{background:var(--bg-surface);padding:10px 14px;font-size:12.5px;display:flex;align-items:center}.perm-cell.head{background:var(--bg-elevated);color:var(--text-muted);text-transform:uppercase;font-size:10.5px;letter-spacing:.5px}.toggle{width:34px;height:18px;border-radius:100px;border:1px solid var(--border-default);background:var(--bg-elevated);position:relative;cursor:pointer;transition:background .15s}.toggle.on{background:var(--accent);border-color:var(--accent)}.toggle .knob{position:absolute;top:1px;left:1px;width:14px;height:14px;border-radius:50%;background:var(--text-inverse);transition:transform .15s}.toggle.on .knob{transform:translate(16px)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#06080cb3;display:flex;align-items:center;justify-content:center;z-index:100}.modal-box{width:380px;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius);padding:22px}.modal-box h3{margin:0 0 16px;font-size:14px}.modal-box form{display:flex;flex-direction:column;gap:10px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.btn-ghost{background:transparent;border:1px solid var(--border-default);color:var(--text-secondary);border-radius:var(--radius-sm);padding:8px 14px;font-size:13px}.pager{display:flex;gap:8px;align-items:center;margin-top:14px;justify-content:flex-end;color:var(--text-muted);font-size:12px}
