/* Crystallux Insurer Portal — compact layout. Mirrors insurance-mga-dashboard
   layout but with carrier-grade neutral palette. */
:root { --bg:#f7f8fa; --card:#ffffff; --text:#0f172a; --muted:#475569; --border:#e2e8f0; --primary:#0f4c81; --success:#15803d; --warning:#b45309; --danger:#b91c1c; --info:#0e7490; --neutral:#475569; }
html, body { margin:0; padding:0; font-family:'Inter','system-ui',sans-serif; color:var(--text); background:var(--bg); font-size:14px; }
a { color:var(--primary); text-decoration:none; }
a:hover { text-decoration:underline; }
button { font-family:inherit; }
.clx-topbar { display:flex; align-items:center; justify-content:space-between; padding:14px 22px; background:#fff; border-bottom:1px solid var(--border); height:48px; }
.clx-topbar-left, .clx-topbar-right { display:flex; align-items:center; gap:12px; }
.clx-logo { font-weight:700; font-size:18px; display:flex; align-items:center; gap:6px; color:var(--text); }
.clx-logo-mark { width:28px; height:28px; border-radius:6px; background:var(--primary); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-weight:800; }
.clx-vertical-badge { background:var(--primary); color:#fff; font-size:11px; padding:2px 8px; border-radius:10px; margin-left:6px; }
.clx-role-pill { background:#e2e8f0; color:#0f172a; font-size:11px; padding:2px 8px; border-radius:10px; margin-left:6px; }
.clx-user-chip { background:#f1f5f9; padding:6px 12px; border-radius:18px; font-size:13px; }
.clx-shell { display:flex; height:calc(100vh - 49px); }
.clx-sidebar { width:220px; background:#fff; border-right:1px solid var(--border); padding:14px 0; overflow-y:auto; flex-shrink:0; }
.clx-sidebar a { display:block; padding:8px 18px; color:var(--muted); border-left:3px solid transparent; }
.clx-sidebar a:hover { background:#f1f5f9; text-decoration:none; }
.clx-sidebar a.active { color:var(--primary); background:#f1f5f9; border-left-color:var(--primary); font-weight:600; }
.clx-sidebar-section { padding:14px 18px 6px; font-size:11px; font-weight:700; text-transform:uppercase; color:var(--muted); letter-spacing:0.6px; }
.clx-main { flex:1; overflow-y:auto; }
.clx-content { max-width:1320px; margin:0 auto; padding:24px; }
.clx-page-head { margin-bottom:18px; display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:12px; }
.clx-page-title { font-size:24px; font-weight:700; margin:0 0 4px; }
.clx-page-sub { color:var(--muted); }
.clx-card { background:var(--card); border:1px solid var(--border); border-radius:8px; padding:18px; margin-bottom:18px; }
.clx-card-head { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:14px; flex-wrap:wrap; gap:8px; }
.clx-card-title { font-weight:700; font-size:16px; }
.clx-card-sub { color:var(--muted); font-size:13px; margin-top:2px; }
.clx-stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; margin-bottom:18px; }
.clx-stat { background:#fff; border:1px solid var(--border); border-radius:8px; padding:14px; }
.clx-stat-label { color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:0.4px; }
.clx-stat-value { font-size:24px; font-weight:700; margin-top:4px; }
.clx-stat-sub { color:var(--muted); font-size:12px; margin-top:2px; }
.clx-two-col { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
@media (max-width: 768px) { .clx-shell { display:block; height:auto; } .clx-sidebar { width:100%; height:auto; } .clx-two-col { grid-template-columns:1fr; } }
.clx-empty { padding:24px; text-align:center; color:var(--muted); }
.clx-error-box { background:#fef2f2; color:#991b1b; border:1px solid #fecaca; border-radius:6px; padding:12px; }
.clx-spinner { display:inline-block; width:14px; height:14px; border:2px solid #cbd5e1; border-top-color:var(--primary); border-radius:50%; animation:clx-spin 1s linear infinite; vertical-align:middle; }
@keyframes clx-spin { from{transform:rotate(0)} to{transform:rotate(360deg)} }
.clx-table { width:100%; border-collapse:collapse; }
.clx-table th, .clx-table td { text-align:left; padding:9px 11px; border-bottom:1px solid var(--border); font-size:13px; }
.clx-table th { font-weight:600; color:var(--muted); background:#f8fafc; }
.clx-badge { display:inline-block; padding:2px 8px; border-radius:11px; font-size:11px; font-weight:600; }
.clx-badge-success { background:#dcfce7; color:var(--success); }
.clx-badge-info    { background:#cffafe; color:var(--info); }
.clx-badge-warning { background:#fef3c7; color:var(--warning); }
.clx-badge-danger  { background:#fee2e2; color:var(--danger); }
.clx-badge-neutral { background:#e2e8f0; color:var(--neutral); }
.clx-btn { display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border:1px solid var(--border); border-radius:6px; background:#fff; color:var(--text); cursor:pointer; font-size:13px; font-weight:500; }
.clx-btn:hover { background:#f1f5f9; }
.clx-btn-primary { background:var(--primary); color:#fff; border-color:var(--primary); }
.clx-btn-primary:hover { background:#0a3a64; color:#fff; }
.clx-btn-ghost { background:transparent; }
input, select, textarea { font-family:inherit; font-size:13px; padding:6px 10px; border:1px solid var(--border); border-radius:6px; background:#fff; }
.clx-progress { background:#e2e8f0; border-radius:4px; height:22px; position:relative; overflow:hidden; }
.clx-progress-fill { height:100%; }
.clx-bar-success { background:var(--success); }
.clx-bar-info    { background:var(--info); }
.clx-bar-warning { background:var(--warning); }
.clx-bar-danger  { background:var(--danger); }
.clx-progress-label { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:600; color:var(--text); }
.clx-readonly-banner { background:#fef3c7; color:var(--warning); padding:8px 14px; font-size:12px; text-align:center; border-bottom:1px solid #fde68a; }
