:root{--primary:#0b2545;--primary-dark:#071a38;--primary-soft:#eff6ff;--primary-soft-border:#bfdbfe;--secondary:#f59e0b;--secondary-text:#451a03;--accent:#0d9488;--warn:#ea580c;--danger:#dc2626;--success:#15803d;--bg:#faf9f5;--surface:#ecf4f1;--elevated:#fff;--border:#e5e7eb;--text:#0f172a;--muted:#475569;--tertiary:#94a3b8}*{box-sizing:border-box}html,body,#root{height:100%;color:var(--text);background:var(--bg);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.sidebar a{color:#ffffffe6}.sidebar a:hover{text-decoration:none}button{font:inherit;cursor:pointer}.app-shell{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--primary);color:#fff;padding:24px 16px}.sidebar h1{color:#fff;margin:0 0 24px;font-size:18px}.sidebar nav{flex-direction:column;gap:4px;display:flex}.sidebar nav a{color:#ffffffd9;border-radius:8px;padding:10px 12px;font-size:14px;display:block}.sidebar nav a.active,.sidebar nav a:hover{color:#fff;background:#ffffff1f;text-decoration:none}.sidebar nav .nav-group{flex-direction:column;gap:2px;margin-top:8px;display:flex}.main{padding:28px 32px}.main h2{color:var(--text);margin-top:0}.card{background:var(--elevated);border:1px solid var(--border);border-radius:12px;margin-bottom:20px;padding:20px}.table{border-collapse:collapse;background:var(--elevated);border:1px solid var(--border);border-radius:12px;width:100%;overflow:hidden}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);padding:12px 14px;font-size:14px}.table th{background:var(--surface);color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:var(--primary-soft)}.badge{color:#fff;border-radius:12px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.badge-approved{background:var(--accent)}.badge-pending{background:var(--warn)}.badge-rejected,.badge-expired{background:var(--danger)}.badge-muted{background:#9ca3af}.btn{border:none;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:600;transition:opacity .15s}.btn:hover{opacity:.88}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark);opacity:1}.btn-accent{background:var(--accent);color:#fff}.btn-cta{background:var(--secondary);color:var(--secondary-text)}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{color:var(--primary);border:1px solid var(--primary);background:0 0}.form-row{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.form-row label{color:var(--muted);font-size:13px;font-weight:600}.form-row input,.form-row select,.form-row textarea{border:1px solid var(--border);background:var(--elevated);color:var(--text);border-radius:8px;padding:10px 12px;font-size:14px}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:2px solid var(--primary);outline-offset:1px}.login-wrap{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{width:100%;max-width:380px}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px;display:grid}.kpi{background:var(--elevated);border:1px solid var(--border);border-radius:12px;padding:16px}.kpi-label{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px}.kpi-value{color:var(--primary);margin-top:4px;font-size:28px;font-weight:800}.error{color:var(--danger);margin-top:8px;font-size:13px}.muted{color:var(--muted)}
