:root{
  --bg:#f6f7f9; --card:#fff; --ink:#1c2330; --muted:#6b7585;
  --line:#e4e8ee; --accent:#3a5bd9; --accent-dark:#27408f;
  --sev-high:#b3261e; --sev-mid:#b06a00; --sev-low:#1f7a4d; --sev-neutral:#5a6473;
}
*{box-sizing:border-box}
body{margin:0;font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 26px;background:#10182b;color:#fff;position:sticky;top:0;z-index:5}
.topbar .brand{color:#fff;font-weight:700;font-size:19px;letter-spacing:.3px}
.topbar .brand .mark{color:#8fb0ff}
.topbar nav a{color:#c3ccdd;margin-left:20px;font-size:14px}
.topbar nav a:hover{color:#fff;text-decoration:none}

main{max-width:1000px;margin:26px auto;padding:0 20px}
footer{max-width:1000px;margin:40px auto;padding:20px;color:var(--muted);font-size:13px;border-top:1px solid var(--line)}

/* filters */
.filters{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:18px;box-shadow:0 1px 2px rgba(20,30,60,.04)}
.filters .search{width:100%;padding:11px 14px;font-size:16px;border:1px solid var(--line);border-radius:8px;margin-bottom:10px}
.facets{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.facets select{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13px;max-width:230px}
.facets button{padding:8px 18px;background:var(--accent);color:#fff;border:0;border-radius:8px;font-weight:600;cursor:pointer}
.facets button:hover{background:var(--accent-dark)}
.facets .clearbtn{padding:8px 12px;color:var(--muted);font-size:13px}

.resultcount{color:var(--muted);margin:6px 2px 14px}

/* case list */
.caselist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.caselist li{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:0 1px 2px rgba(20,30,60,.04)}
.caselist li.empty{text-align:center;color:var(--muted);padding:34px}
.caserow{display:flex;justify-content:space-between;gap:18px}
.casename{font-size:17px;font-weight:650}
.meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:5px;color:var(--muted);font-size:12.5px}
.badge{display:inline-block;padding:1px 8px;border-radius:20px;font-size:11px;font-weight:600;border:1px solid var(--line)}
.badge.body{background:#eef2ff;color:#33459c;border-color:#dbe3ff}
.badge.type{background:#f0f4f0;color:#3a6b4d}
.badge.inn{background:#fbf1e6;color:#8a5a1d}
.cn{font-variant-numeric:tabular-nums}
.alleg{margin:9px 0 0;color:#48515f;font-size:13.5px}
.caseside{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;text-align:right}
.outcome{font-size:12.5px;font-weight:650;padding:3px 10px;border-radius:7px;background:#eef0f3;color:var(--sev-neutral);max-width:230px}
.oc-strike_off,.oc-revocation{background:#fae9e8;color:var(--sev-high)}
.oc-suspension,.oc-conditions{background:#fbf0e0;color:var(--sev-mid)}
.oc-fine,.oc-reprimand{background:#fff6e0;color:#8a6a12}
.oc-no_order,.oc-dismissed{background:#e9f6ef;color:var(--sev-low)}
.appeal{font-size:11.5px;color:#7a4ea0;background:#f3ecfa;padding:2px 8px;border-radius:6px}
.docs{font-size:11.5px;color:var(--muted)}

/* pager */
.pager{display:flex;gap:14px;align-items:center;justify-content:center;margin:24px 0}
.pager a{padding:8px 14px;background:var(--card);border:1px solid var(--line);border-radius:8px}
.pager .pageno{color:var(--muted);font-size:13px}

/* detail */
.back{display:inline-block;margin-bottom:12px;color:var(--muted)}
.casedetail{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:24px 26px}
.casedetail h1{margin:0 0 16px;font-size:25px}
.casedetail h2{font-size:14px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:22px 0 8px}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 24px}
.kv div{font-size:14px}
.kv span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin-bottom:1px}
.allegfull{background:#f7f8fa;border:1px solid var(--line);border-radius:8px;padding:12px 14px;font-size:14px}
.rulechips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.rulechips li a{display:inline-block;background:#eef2ff;color:#33459c;padding:4px 11px;border-radius:20px;font-size:12.5px}
.doclist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.doclist li{font-size:14.5px}
.dmeta{color:var(--muted);font-size:12px;margin-left:8px}
.dmeta.warn{color:var(--sev-high)}
.source{margin-top:18px;font-size:12px;color:var(--muted);word-break:break-all}
.muted{color:var(--muted)}

/* tables */
.ruletable{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:14px}
.ruletable th{background:#f0f2f6;text-align:left;padding:10px 12px;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.ruletable td{padding:10px 12px;border-top:1px solid var(--line)}
.ruletable tr.current td{background:#f3f8f4}

/* duties matrix */
.legend{display:flex;gap:10px;margin:6px 0 14px;font-size:12px}
.legend .cell{padding:2px 10px;border-radius:5px}
.matrixwrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}
.dutymatrix{border-collapse:collapse;width:100%;font-size:12.5px;background:var(--card)}
.dutymatrix th,.dutymatrix td{border:1px solid var(--line);padding:6px 8px;text-align:center;vertical-align:middle}
.dutymatrix thead th{background:#10182b;color:#fff;font-size:11.5px;position:sticky;top:0;min-width:96px}
.dutymatrix thead th .colsub{display:block;font-weight:400;color:#aab6cf;font-size:10px;margin-top:2px}
.dutymatrix th.dutyhdr{text-align:left;min-width:180px}
.dutymatrix td.dutyname{text-align:left;font-weight:600;background:#f7f8fa;position:sticky;left:0}
.dutymatrix tr.catrow td{background:#eef2ff;color:#33459c;text-align:left;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.4px}
.dutymatrix td.cell{font-variant-numeric:tabular-nums}
.dutymatrix td.cell.strong{background:#e9f6ef;color:#1f7a4d}
.dutymatrix td.cell.partial{background:#fdf4e3;color:#9a6a12}
.dutymatrix td.cell.absent{background:#f4f5f7;color:#9aa3b0}
.legend .cell.strong{background:#e9f6ef;color:#1f7a4d}
.legend .cell.partial{background:#fdf4e3;color:#9a6a12}
.legend .cell.absent{background:#f4f5f7;color:#9aa3b0}
.dutymatrix td.cell a{font-weight:600;text-decoration:none}
.dutymatrix td.cell a:hover{text-decoration:underline}
.dutymatrix td.dutyname a{color:var(--ink);text-decoration:none}
.dutymatrix td.dutyname a:hover{color:var(--accent);text-decoration:underline}

/* floating tooltip bubble */
#tipbubble{position:absolute;display:none;z-index:50;max-width:440px;
  background:#10182b;color:#f2f5fb;font-size:12.5px;line-height:1.5;
  padding:10px 12px;border-radius:8px;box-shadow:0 6px 24px rgba(10,20,40,.28);
  pointer-events:none}

/* duty/rule header on the cases page */
.dutyhead{background:#10182b;color:#fff;border-radius:12px;padding:16px 20px;margin-bottom:16px}
.dutyhead-title{font-size:17px}
.dutyhead-title strong{color:#8fb0ff}
.dutyhead-sub{font-size:12px;color:#aab6cf;margin-left:8px;text-transform:uppercase;letter-spacing:.4px}
.dutyhead-text{margin:8px 0 10px;color:#d7deeb;font-size:14px;line-height:1.55}
.dutyhead-back{color:#8fb0ff;font-size:13px}
