:root{--color-bg:#f4f6f9;--color-surface:#fff;--color-border:#e2e6ed;--color-text-primary:#1a1a2e;--color-text-secondary:#5a6478;--color-primary-900:#12294a;--color-primary-700:#1e3a5f;--color-primary-500:#3366a0;--color-primary-300:#a3c4e9;--color-primary-100:#e8f1fa;--color-primary-50:#f0f6fc;--color-sidebar:#12294a;--color-sidebar-text:#8aa4c4;--color-sidebar-active:#fff;--radius-md:8px;--radius-lg:12px;--shadow-card:0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--color-bg);color:var(--color-text-primary);-webkit-font-smoothing:antialiased}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--color-sidebar);width:220px;color:var(--color-sidebar-text);flex-direction:column;padding:24px 0;display:flex}.sidebar .sidebar-logo{border-bottom:1px solid rgba(255,255,255,.05);padding:0 24px 24px}.sidebar .sidebar-logo h1{color:#fff;font-size:18px}.sidebar .sidebar-logo span{opacity:.7;font-size:11px}.sidebar nav{padding:16px 0}.sidebar nav ul{list-style:none}.sidebar nav li a{color:var(--color-sidebar-text);padding:10px 24px;font-size:13.5px;font-weight:500;text-decoration:none;display:block}.sidebar nav li a:hover{color:var(--color-sidebar-active)}.sidebar nav li a.active{color:var(--color-sidebar-active);background:rgba(255,255,255,.05)}.content{flex:1;padding:32px 40px}.page-header{margin-bottom:24px}.page-header h2{font-size:22px;font-weight:700}.page-header p{color:var(--color-text-secondary);font-size:13px}.metrics-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px;display:grid}.metric-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:20px}.metric-card.hero{border-color:var(--color-primary-500);background:linear-gradient(135deg, var(--color-surface), #f0f6fc)}.metric-card .metric-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12.5px;font-weight:500}.metric-card .metric-value{font-size:36px;font-weight:700}.login-shell{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:380px;box-shadow:var(--shadow-card);padding:32px}.login-card h1{margin-bottom:8px;font-size:20px}.login-card .subtitle{color:var(--color-text-secondary);margin-bottom:24px;font-size:13px}.login-card label{margin-bottom:16px;display:block}.login-card label span{margin-bottom:4px;font-size:12.5px;display:block}.login-card label input{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;font-family:var(--font);padding:10px 12px;font-size:14px}.login-card button{background:var(--color-primary-700);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;width:100%;padding:10px;font-weight:600}.login-card button:hover:not(:disabled){background:var(--color-primary-500)}.login-card button:disabled{opacity:.6;cursor:not-allowed}.login-card .success{color:#16a34a;margin-top:16px;font-size:13px}.login-card .error{color:#dc2626;margin-top:16px;font-size:13px}.data-table{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-card);overflow:hidden}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:12px 16px;font-size:13.5px}.data-table th{background:var(--color-bg);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11.5px;font-weight:600}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--color-bg)}.data-table .row-link{color:var(--color-primary-500);text-decoration:none}.data-table .row-link:hover{text-decoration:underline}.data-table .badge{background:var(--color-primary-50);color:var(--color-primary-700);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.data-table .badge.success{color:#166534;background:#dcfce7}.data-table .badge.warn{color:#92400e;background:#fef3c7}.data-table .badge.error{color:#991b1b;background:#fee2e2}.empty-state{background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-lg);text-align:center;color:var(--color-text-secondary);padding:48px 24px;font-size:13.5px}.form-field{margin-bottom:16px;display:block}.form-field .form-label{color:var(--color-text-secondary);margin-bottom:6px;font-size:12.5px;font-weight:500;display:block}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;font-family:var(--font);background:var(--color-surface);padding:10px 12px;font-size:14px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--color-primary-500);outline:none}.form-field textarea{resize:vertical;min-height:80px}.button-primary{background:var(--color-primary-700);color:#fff;border-radius:var(--radius-md);cursor:pointer;font-size:13.5px;font-weight:600;font-family:var(--font);border:none;padding:10px 18px}.button-primary:hover:not(:disabled){background:var(--color-primary-500)}.button-primary:disabled{opacity:.6;cursor:not-allowed}.button-danger{color:#fff;border-radius:var(--radius-md);cursor:pointer;font-size:13.5px;font-weight:600;font-family:var(--font);background:#dc2626;border:none;padding:10px 18px}.button-danger:hover:not(:disabled){background:#b91c1c}.section-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin-bottom:16px;padding:24px}.section-card h3{margin-bottom:16px;font-size:15px;font-weight:600}.message{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:12px;padding:14px 18px}.message .message-meta{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:11.5px}.message .message-body{white-space:pre-wrap;font-size:13.5px;line-height:1.5}.message.user{background:var(--color-primary-50);border-color:var(--color-primary-300)}.message.bot{background:var(--color-surface)}