:root{--primary: #4f46e5;--primary-hover: #4338ca;--primary-active: #3730a3;--secondary: #4f46e5;--accent: #f97316;--accent-text: #c2410e;--cyan: #06b6d4;--cyan-text: #0e7490;--neutral: #71717a;--bg: #fafafa;--surface: #ffffff;--surface-raised: #f4f4f5;--text: #18181b;--text-secondary: #71717a;--text-tertiary: #a1a1aa;--border: #e4e4e7;--border-strong: #d4d4d8;--success: #22c55e;--success-text: #15803d;--success-bg: #f0fdf4;--warning: #f59e0b;--warning-text: #b45309;--warning-bg: #fff7ed;--error: #ef4444;--error-text: #b91c1c;--error-bg: #fef2f2;--error-strong: #b91c1c;--error-hover: #991b1b;--info: #3b82f6;--info-text: #1d4ed8;--info-bg: #eff6ff;--on-navy: #ffffff;--on-navy-muted: rgba(255, 255, 255, .85);--ring: 0 0 0 3px rgba(79, 70, 229, .12);--font-display: "Outfit", system-ui, -apple-system, sans-serif;--font-body: "Inter", system-ui, -apple-system, sans-serif;--font-code: "Source Code Pro", ui-monospace, monospace;--radius-sm: 4px;--radius: 8px;--radius-card: 8px;--radius-lg: 12px;--radius-pill: 9999px;--shadow-1: 0 1px 2px rgba(24, 24, 27, .05);--shadow-2: 0 4px 6px -1px rgba(24, 24, 27, .07), 0 2px 4px -2px rgba(24, 24, 27, .05);--shadow-3: 0 10px 15px -3px rgba(24, 24, 27, .08), 0 4px 6px -4px rgba(24, 24, 27, .04);--shadow-hover: var(--shadow-2);--shadow-modal: var(--shadow-3);--shadow-drag: 0 12px 24px -4px rgba(79, 70, 229, .15);--glow-primary: none;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sidebar-w: 248px;--container: 1280px}*{box-sizing:border-box}html,body{margin:0}body{font-family:var(--font-body);font-size:16px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-family:var(--font-display);font-weight:700;color:var(--text);margin:0}h1{font-size:24px}h2{font-size:20px}code,pre{font-family:var(--font-code)}.muted{color:var(--neutral)}.num{text-align:right;font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.cell-body{display:inline-block;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}td.cell-clip{max-width:480px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{background:var(--secondary);padding:var(--sp-6) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-6);position:sticky;top:0;height:100vh;overflow-y:auto;box-shadow:var(--shadow-2)}.brand{font-family:var(--font-display);font-weight:700;font-size:20px;color:var(--on-navy)}.brand small{display:block;font-family:var(--font-body);font-weight:400;font-size:12px;color:var(--on-navy-muted)}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-group h4{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--on-navy-muted);margin:0 0 var(--sp-2) var(--sp-3);font-weight:700}.nav-link{display:block;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);color:var(--on-navy-muted);font-weight:600;font-size:14px;border-left:3px solid transparent}.nav-link:hover{background:#ffffff14;color:var(--on-navy);text-decoration:none}.nav-link.active{color:var(--on-navy);background:#ffffff29;border-left-color:var(--on-navy)}.sidebar-foot{margin-top:auto;font-size:12px;color:var(--on-navy-muted)}.linklike{color:var(--primary)}.sidebar-foot a,.sidebar .linklike{color:var(--on-navy)}.linklike{display:inline;margin-top:var(--sp-2);padding:0;background:none;border:none;font:inherit;font-weight:600;cursor:pointer}.linklike:hover{text-decoration:underline}.linklike.danger{color:var(--error-text)}.row-actions{display:inline-flex;gap:var(--sp-3);white-space:nowrap}.main{padding:var(--sp-8) var(--sp-10);max-width:none;width:100%;min-width:0}.records-head,.page-head{display:flex;align-items:baseline;gap:var(--sp-4);margin-bottom:var(--sp-6)}.records-head .muted{font-size:14px}.records-head .btn,.page-head .btn{margin-left:auto;align-self:center}.head-actions{margin-left:auto;display:inline-flex;align-items:center;gap:var(--sp-3)}.head-actions .btn{margin-left:0}.btn{display:inline-flex;align-items:center;gap:var(--sp-2);height:40px;padding:0 var(--sp-4);border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-weight:600;cursor:pointer;transition:all .15s}.btn:hover{background:var(--surface-raised)}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);box-shadow:var(--glow-primary)}.btn-danger{background:var(--error-strong);border-color:var(--error-strong);color:#fff}.btn-danger:hover{background:var(--error-hover);border-color:var(--error-hover)}.chip{display:inline-flex;align-items:center;padding:6px var(--sp-3);border-radius:var(--radius-pill);background:var(--surface-raised);color:var(--text-secondary);font-size:13px;font-weight:600}a.chip:hover{text-decoration:none;background:var(--border)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-4);margin-bottom:var(--sp-8)}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--sp-4)}.tile-v{font-family:var(--font-display);font-weight:700;font-size:32px;color:var(--text)}.tile-l{font-size:13px;color:var(--text-secondary);font-weight:600}.tile-s{font-size:12px;color:var(--neutral);margin-top:2px}.dash-section{margin-bottom:var(--sp-8)}.dash-section h2{margin-bottom:var(--sp-4)}.bars{display:flex;flex-direction:column;gap:var(--sp-2)}.bar-row{display:grid;grid-template-columns:160px 1fr 48px;align-items:center;gap:var(--sp-3);font-size:14px}.bar-k{color:var(--text-secondary);text-transform:capitalize}.bar-track{background:var(--surface-raised);border-radius:var(--radius-pill);height:8px;overflow:hidden}.bar-fill{display:block;height:100%;background:var(--primary);border-radius:var(--radius-pill);transition:width .3s ease}.bar-v{text-align:right;font-variant-numeric:tabular-nums;color:var(--neutral)}.grid-wrap{width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface)}.grid{width:100%;border-collapse:collapse;background:var(--surface)}.grid th,.grid td{text-align:left;padding:var(--sp-4);border-bottom:1px solid var(--border);font-size:14px;color:var(--text-secondary);white-space:nowrap}.grid th{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--neutral);background:var(--surface)}.grid tbody tr:last-child td{border-bottom:none}.grid tbody tr:hover{background:var(--surface)}.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-4);margin:0 0 var(--sp-8)}.facts>div{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--sp-3) var(--sp-4)}.facts dt{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--neutral);font-weight:600}.facts dd{margin:2px 0 0;font-weight:600}.pill{display:inline-flex;padding:2px var(--sp-2);border-radius:var(--radius-pill);font-size:12px;font-weight:600;text-transform:capitalize;background:var(--surface-raised);color:var(--text-secondary);white-space:nowrap}.pill-on_track{background:var(--success-bg);color:var(--success-text)}.pill-at_risk{background:var(--warning-bg);color:var(--warning-text)}.pill-blocked{background:var(--error-bg);color:var(--error-text)}.msg{padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);font-size:14px}.msg.error{background:var(--error-bg);color:var(--error-text);border:1px solid var(--error)}.msg.warn{background:var(--warning-bg);color:var(--warning-text);border:1px solid var(--warning)}.loading{color:var(--neutral);padding:var(--sp-6)}.prose{max-width:760px}.prose h1,.prose h2,.prose h3{margin:var(--sp-8) 0 var(--sp-3)}.prose p,.prose li{color:var(--text-secondary)}.prose code{background:var(--surface-raised);padding:1px 5px;border-radius:var(--radius-sm);font-size:.9em}.prose pre{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--sp-4);overflow-x:auto}.prose pre code{background:none;padding:0}.prose table{border-collapse:collapse;width:100%}.prose th,.prose td{border:1px solid var(--border);padding:var(--sp-2) var(--sp-3);text-align:left}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#18181b66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:start center;padding:var(--sp-10) var(--sp-4);overflow-y:auto;z-index:50}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-3);width:100%;max-width:520px;padding:var(--sp-6)}.modal-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--sp-4)}.schema-form{display:flex;flex-direction:column;gap:var(--sp-4)}.schema-form .field{display:flex;flex-direction:column;gap:var(--sp-1);margin:0}.schema-form label{font-size:12px;font-weight:600;color:var(--text)}.schema-form .req{color:var(--error-text)}.schema-form input[type=text],.schema-form input[type=number],.schema-form input[type=date],.schema-form select,.schema-form textarea{height:40px;padding:0 var(--sp-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font:inherit;color:var(--text);width:100%}.schema-form textarea{height:auto;padding:var(--sp-2) var(--sp-3);resize:vertical}.schema-form input:focus,.schema-form select:focus,.schema-form textarea:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring)}.schema-form .field-inline{flex-direction:row;align-items:center;gap:var(--sp-2)}.schema-form .field-inline input{width:auto;height:auto}.schema-form .field-hint{font-size:11px;color:var(--neutral)}.form-actions{display:flex;justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-2)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:var(--sp-6)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-hover);padding:var(--sp-8);width:100%;max-width:380px}.login-card h1{margin-bottom:var(--sp-2)}.field{display:flex;flex-direction:column;gap:var(--sp-2);margin:var(--sp-6) 0}.field label{font-size:14px;font-weight:600}.field input{height:44px;padding:0 var(--sp-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font:inherit}.field input:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring)}
