:root{--font-sans: "Plus Jakarta Sans", "IBM Plex Sans", sans-serif;--bg: #eef2f7;--bg-elevated: #ffffff;--bg-sidebar: #1e3a8a;--bg-sidebar-2: #0f1b3d;--border: #e2e8f0;--border-strong: #cbd5e1;--text: #0f172a;--text-muted: #64748b;--text-inverse: #eff6ff;--brand: #2563eb;--brand-strong: #1d4ed8;--brand-soft: #dbeafe;--danger: #dc2626;--danger-soft: #fef2f2;--success: #0f766e;--success-soft: #ecfdf5;--warning: #d97706;--shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 10px 28px rgba(15, 23, 42, .05);--radius: 14px;--radius-sm: 9px;--sidebar-w: 268px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:var(--brand-strong);text-decoration:none}button,input,select,textarea{font:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.7rem 1.05rem;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--brand);color:#fff;font-weight:600;cursor:pointer;transition:background .15s ease,box-shadow .15s ease,transform .12s ease}.btn:hover{background:var(--brand-strong);box-shadow:0 6px 16px #2563eb40}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.btn-secondary{background:#fff;color:var(--text);border-color:var(--border-strong);box-shadow:none}.btn-secondary:hover{background:#f8fafc;box-shadow:none}.btn-ghost{background:transparent;color:var(--text-muted);border-color:transparent;box-shadow:none}.btn-ghost:hover{background:#f1f5f9;color:var(--text);box-shadow:none}.btn-danger{background:var(--danger)}.btn-danger:hover{background:#b91c1c;box-shadow:0 6px 16px #dc262638}.field{display:grid;gap:.35rem}.field label{font-size:.8rem;font-weight:600;color:var(--text-muted)}.field input,.field select,.field textarea{width:100%;padding:.72rem .85rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:#fff;color:var(--text);transition:border-color .15s ease,box-shadow .15s ease}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 22%,white)}.panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel-h{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#fff,#fafbfc)}.panel-h h2{margin:0;font-size:1rem;font-weight:700;letter-spacing:-.01em}.panel-b{padding:1.25rem}.table-wrap{overflow:auto}table.data{width:100%;border-collapse:collapse}table.data th,table.data td{text-align:left;padding:.9rem 1.25rem;border-bottom:1px solid var(--border);font-size:.92rem;vertical-align:middle}table.data th{color:var(--text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;background:#f8fafc;font-weight:700}table.data tbody tr{transition:background .12s ease}table.data tbody tr:hover{background:#f8fafc}table.data tr:last-child td{border-bottom:0}.badge{display:inline-flex;align-items:center;padding:.22rem .58rem;border-radius:999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.badge-ok{background:var(--brand-soft);color:var(--brand-strong)}.badge-warn{background:#fffbeb;color:var(--warning)}.badge-off{background:#f1f5f9;color:var(--text-muted)}.empty{padding:2.75rem 1.25rem;text-align:center;color:var(--text-muted)}.alert{padding:.8rem .95rem;border-radius:var(--radius-sm);font-size:.9rem}.alert-error{background:var(--danger-soft);color:var(--danger);border:1px solid #fecaca}.alert-ok{background:var(--brand-soft);color:var(--brand-strong);border:1px solid #bfdbfe}.switch{display:inline-flex;align-items:center;gap:.55rem;font-size:.92rem;font-weight:500;padding-bottom:.15rem}.grid-form{display:grid;gap:.85rem}@media(min-width:800px){.grid-form.cols-3{grid-template-columns:1fr 1fr auto;align-items:end}.grid-form.cols-4{grid-template-columns:1.2fr 1fr 1fr auto;align-items:end}}
