:root{--color-bg: #0f172a;--color-surface: #1a2333;--color-surface-2: #232f45;--color-border: #2f3d55;--color-text: #e6ebf5;--color-text-dim: #9aa8c2;--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-danger: #ef4444;--color-warning: #f59e0b;--color-success: #22c55e;--radius: 8px;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--color-bg);color:var(--color-text)}a{color:var(--color-primary)}input,select,button,textarea{font-family:inherit;font-size:14px}button{cursor:pointer}.app-shell{display:flex;min-height:100vh}.mobile-nav-toggle{display:none;position:fixed;top:10px;left:12px;z-index:110;width:40px;height:40px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:18px}.sidebar-backdrop{display:none}.sidebar{width:220px;flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);padding:16px 0;display:flex;flex-direction:column;overflow-y:auto}.sidebar h1{font-size:16px;padding:0 16px 16px;margin:0;border-bottom:1px solid var(--color-border)}.sidebar nav{display:flex;flex-direction:column;margin-top:8px}.sidebar nav a{padding:10px 16px;color:var(--color-text-dim);text-decoration:none;border-left:3px solid transparent}.sidebar nav a.active,.sidebar nav a:hover{color:var(--color-text);background:var(--color-surface-2);border-left-color:var(--color-primary)}.nav-group{margin-bottom:4px}.nav-group-header{width:100%;display:flex;align-items:center;justify-content:space-between;background:none;border:none;color:var(--color-text-dim);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:12px 16px 6px;min-height:0}.nav-group-header:hover{color:var(--color-text)}.nav-group-chevron{display:inline-block;transition:transform .15s ease;font-size:10px}.nav-group-chevron.open{transform:rotate(90deg)}.nav-group-items{display:flex;flex-direction:column}.sidebar-footer{margin-top:auto;padding:12px 16px;border-top:1px solid var(--color-border);font-size:12px;color:var(--color-text-dim)}.main-content{flex:1;min-width:0;padding:24px 32px;overflow-x:auto}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px;overflow-x:auto}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--color-border);font-size:14px}th{color:var(--color-text-dim);font-weight:600}.btn{background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius);padding:10px 16px;font-weight:600;min-height:40px}.btn:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 16px;min-height:40px}.btn-danger{background:transparent;color:var(--color-danger);border:1px solid var(--color-danger);border-radius:var(--radius);padding:8px 14px;min-height:40px}.form-row{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.form-row label{font-size:12px;color:var(--color-text-dim)}.form-row input,.form-row select{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);padding:10px;min-height:40px;width:100%}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login-card{width:320px;max-width:100%}.error-text{color:var(--color-danger);font-size:13px}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}.badge-ok{background:#22c55e26;color:var(--color-success)}.badge-warn{background:#ef444426;color:var(--color-danger)}@media (max-width: 768px){.mobile-nav-toggle{display:block}.sidebar{position:fixed;top:0;left:0;bottom:0;width:240px;max-width:80vw;z-index:100;transform:translate(-100%);transition:transform .2s ease}.sidebar.sidebar-open{transform:translate(0)}.sidebar-backdrop.sidebar-open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:95}.main-content{padding:64px 16px 16px}.card-grid{grid-template-columns:1fr}table{font-size:13px}th,td{padding:6px 8px}}
