/* ===== PRSHub — Liquid Glass UI (navy brand) ===== */
:root{
  --navy:#0d1f4d; --navy-2:#16306e; --ink:#0f172a; --muted:#54617d;
  --line:rgba(17,40,90,.12); --accent:#1c5bd6; --accent-2:#1246b0;
  --ok:#15803d; --warn:#9a6700; --live:#b91c1c;
  --badge-bg:#dbeafe; --badge-ink:#12336b;
  /* glass tokens */
  --glass:rgba(255,255,255,.55); --glass-2:rgba(255,255,255,.42);
  --glass-brd:rgba(255,255,255,.65); --glass-hi:rgba(255,255,255,.9);
  --glass-shadow:0 8px 30px rgba(13,31,77,.10),0 2px 8px rgba(13,31,77,.06);
  --glass-blur:saturate(180%) blur(20px);
  /* domain accents */
  --d-breast:#b02557; --d-headneck:#5733b8; --d-ue:#155fa6; --d-integ:#a86400;
  --d-trunk:#0a7a52; --d-le:#b8460a; --d-gu:#8a2ba0; --d-core:#495d78; --d-periop:#1e6b30;
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh;
  background:
    radial-gradient(1200px 700px at 12% -8%, rgba(90,140,240,.22), transparent 60%),
    radial-gradient(1000px 650px at 95% 0%, rgba(150,120,235,.18), transparent 55%),
    radial-gradient(900px 700px at 50% 120%, rgba(12,166,120,.12), transparent 60%),
    linear-gradient(180deg,#eef3fb 0%,#e7edf8 40%,#eaf0fa 100%);
  background-attachment:fixed;
}
a{color:inherit}
img{max-width:100%}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}
.mono{font-variant-numeric:tabular-nums}

/* glass utility */
.glass{background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-brd);border-radius:18px;box-shadow:var(--glass-shadow);position:relative}
.glass::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:linear-gradient(180deg,var(--glass-hi),transparent 40%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:.7}

/* ---------- header ---------- */
header.site{position:sticky;top:0;z-index:50;background:rgba(13,31,77,.72);
  backdrop-filter:saturate(160%) blur(16px);-webkit-backdrop-filter:saturate(160%) blur(16px);
  border-bottom:1px solid rgba(255,255,255,.12);color:#fff}
.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:62px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:7px;text-decoration:none;color:#fff;padding:9px 0}
.brand img,.brand svg{height:41px;width:41px;border-radius:10px;display:block}
.brand b{font-size:17px;font-weight:800;letter-spacing:.2px;line-height:1}
.brand .tag{display:block;font-size:11px;color:#b9c6ea;font-weight:500;margin-top:1px}
.brand>span{text-align:left}
nav.main{display:flex;gap:3px;flex-wrap:wrap;align-items:center}
nav.main a{color:#cdd7f0;text-decoration:none;font-weight:600;font-size:14px;padding:8px 12px;border-radius:10px}
nav.main a:hover{color:#fff;background:rgba(255,255,255,.10)}
nav.main a.active{color:#fff;background:rgba(255,255,255,.16)}
.langsw{display:inline-flex;gap:3px;margin-left:8px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:3px}
.langsw button{background:transparent;border:0;font-size:16px;line-height:1;padding:4px 8px;border-radius:999px;cursor:pointer;opacity:.5;filter:grayscale(.4)}
.langsw button.on{opacity:1;filter:none;background:rgba(255,255,255,.22)}
.langsw button:hover{opacity:.9}
.navtoggle{display:none;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.20);border-radius:10px;color:#fff;width:42px;height:38px;cursor:pointer;align-items:center;justify-content:center;padding:0;flex:0 0 auto}
.navtoggle svg{width:22px;height:22px;display:block}
@media (max-width:760px){
  .site .wrap{position:relative;flex-wrap:nowrap;min-height:56px}
  .navtoggle{display:inline-flex}
  nav.main{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:2px;display:none;background:rgba(13,31,77,.98);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid rgba(255,255,255,.14);padding:8px 16px 14px;box-shadow:0 18px 44px rgba(0,0,0,.4)}
  nav.main.open{display:flex}
  nav.main a{padding:12px 10px;font-size:15px;border-radius:8px}
  .themebtn{align-self:flex-start;margin-top:6px}
  .langsw{align-self:flex-start;margin:8px 0 0}
}

.disclaimer{background:rgba(255,255,255,.5);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);color:#42506b;font-size:12.5px}
.disclaimer .wrap{padding:8px 20px}
.disclaimer b{color:var(--navy)}

/* ---------- hero ---------- */
.hero{padding:34px 0 12px}
.hero h1{font-size:33px;line-height:1.1;margin:0 0 10px;letter-spacing:-.6px}
.hero p.lead{font-size:16.5px;color:var(--muted);margin:0 0 16px;max-width:820px}
.crumb{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 10px}
.crumb a{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;text-decoration:none;color:var(--navy);
  border:1px solid var(--glass-brd);background:var(--glass);backdrop-filter:var(--glass-blur);border-radius:999px;padding:7px 13px;box-shadow:var(--glass-shadow)}
.crumb a:hover{background:rgba(255,255,255,.75)}

/* ---------- home tiles ---------- */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin:22px 0}
.tile{display:block;text-decoration:none;color:inherit;padding:22px;transition:transform .14s,box-shadow .14s;
  background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-brd);border-radius:20px;box-shadow:var(--glass-shadow)}
.tile:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(13,31,77,.16)}
.tile .ic{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg,rgba(28,91,214,.16),rgba(112,72,232,.12));color:var(--accent);margin-bottom:14px}
.tile h3{margin:0 0 6px;font-size:17px}
.tile p{margin:0 0 12px;font-size:13.5px;color:var(--muted)}
.tile .go{font-size:13px;font-weight:800;color:var(--accent)}
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:16px 0 4px}
.statbox{padding:16px;text-align:center;background:var(--glass);backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-brd);border-radius:15px;box-shadow:var(--glass-shadow)}
.statbox b{display:block;font-size:27px;font-weight:800;color:var(--navy);letter-spacing:-.5px}
.statbox span{font-size:12px;color:var(--muted);font-weight:600}

/* ---------- controls ---------- */
.controls{position:sticky;top:70px;z-index:30;padding:12px;margin:8px 0 16px;
  background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-brd);border-radius:16px;box-shadow:var(--glass-shadow)}
.ctl-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ctl-row + .ctl-row{margin-top:10px}
.grow{flex:1 1 260px}
.search{width:100%;border:1px solid var(--line);border-radius:11px;padding:10px 13px;font-size:14px;outline:none;background:rgba(255,255,255,.7)}
.search:focus{border-color:#9db5e6;box-shadow:0 0 0 3px rgba(37,99,235,.14)}
.sel{border:1px solid var(--line);border-radius:11px;padding:9px 11px;font-size:13.5px;font-weight:600;color:#3a4866;background:rgba(255,255,255,.7)}
.count{font-size:12.5px;color:var(--muted);margin-left:auto;white-space:nowrap;font-weight:600}

/* ---------- BROWSE layout: content left + category menu right ---------- */
.browse{display:grid;grid-template-columns:320px 1fr;gap:22px;align-items:start;margin-top:6px}
.browse-main{min-width:0}
.cat-menu{order:-1;position:sticky;top:78px;padding:10px;background:var(--glass);backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-brd);border-radius:16px;box-shadow:var(--glass-shadow);
  max-height:calc(100vh - 96px);overflow:auto}
.cat-menu .reset{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--accent);
  background:none;border:0;cursor:pointer;padding:6px 8px;border-radius:8px}
.cat-menu .reset:hover{background:rgba(28,91,214,.08)}
.cat{border-radius:12px;overflow:hidden;margin:6px 0}
.cat-head{display:flex;align-items:center;gap:9px;padding:11px 12px;cursor:pointer;user-select:none;
  border-left:4px solid var(--cc,#495d78);background:var(--cbg,rgba(73,93,120,.09))}
.cat-head:hover{filter:brightness(.98)}
.cat-head.active{box-shadow:inset 0 0 0 2px var(--cc,#1c5bd6)}
.cat[data-leaf="1"] .cat-head{cursor:pointer}
.cat-head .tw{font-size:11px;color:var(--cc,#495d78);transition:transform .15s;flex:0 0 auto}
.cat.open .cat-head .tw{transform:rotate(90deg)}
.cat-head .nm{font-weight:800;font-size:14px;color:var(--cc,#334);flex:1;min-width:0;letter-spacing:-.1px}
.cat-head .ct{font-size:12px;color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}
.cat-body{display:none;padding:4px 4px 8px}
.cat.open .cat-body{display:block}
.cat-item{display:flex;align-items:center;gap:8px;padding:8px 10px 8px 20px;cursor:pointer;border-radius:9px;font-size:13px;color:#33425f;font-weight:600}
.cat-item:hover{background:rgba(255,255,255,.6)}
.cat-item.active{background:rgba(28,91,214,.12);color:var(--navy);font-weight:800}
.cat-item .ct{margin-left:auto;font-size:11.5px;color:var(--muted);font-weight:700}
.cat-item .dot{width:7px;height:7px;border-radius:50%;background:var(--cc,#495d78);flex:0 0 auto}

/* ---------- trials list ---------- */
.tgrid{display:flex;flex-direction:column;gap:10px}
.grp-head{display:flex;align-items:center;gap:10px;margin:6px 2px 2px;font-size:13px;font-weight:800;color:var(--navy)}
.grp-head .dot{width:10px;height:10px;border-radius:50%}
.tcard{overflow:hidden;border-left:4px solid var(--cc,#495d78);
  background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border-top:1px solid var(--glass-brd);border-right:1px solid var(--glass-brd);border-bottom:1px solid var(--glass-brd);
  border-radius:14px;box-shadow:var(--glass-shadow)}
.tcard>summary{list-style:none;cursor:pointer;padding:11px 15px;display:flex;gap:12px;align-items:center}
.tcard>summary::-webkit-details-marker{display:none}
.tcard .tmain{flex:1;min-width:0}
.tcard .tname{font-weight:800;font-size:15px;letter-spacing:-.2px;margin:0 0 4px}
.tcard .tmeta{font-size:12.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 10px}
.tcard .tmeta b{color:#3a4866;font-weight:700}
.tcard .tright{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:0 0 auto}
.dtag{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;padding:3px 9px;border-radius:999px;color:#fff;white-space:nowrap}
.yr{font-size:12px;color:var(--muted);font-weight:700}
.chev{transition:transform .15s;color:#9aa7c2;flex:0 0 auto;margin-top:2px}
.tcard[open] .chev{transform:rotate(90deg)}
.tbody{padding:2px 16px 16px;border-top:1px solid var(--line);background:rgba(255,255,255,.35)}

.badge{display:inline-block;background:var(--badge-bg);color:var(--badge-ink);font-weight:700;
  text-transform:uppercase;letter-spacing:.3px;font-size:11px;padding:3px 10px;border-radius:9999px;margin-right:7px;vertical-align:middle}
.trial-summary p{margin:13px 0;font-size:14px;line-height:1.55}
.trial-summary .badge{display:block;width:fit-content;margin:0 0 6px}
.trial-summary strong{color:var(--ink)}
.trial-summary a{color:var(--accent);font-weight:600;text-decoration:none;overflow-wrap:anywhere}
.trial-summary a:hover{text-decoration:underline}
.extlinks{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.extlinks a{font-size:12px;font-weight:700;text-decoration:none;color:var(--navy);border:1px solid var(--line);
  background:rgba(255,255,255,.6);border-radius:9px;padding:6px 11px}
.extlinks a:hover{background:rgba(255,255,255,.85)}

/* ---------- notes ---------- */
.note-article{padding:30px 34px;min-width:0;background:var(--glass);backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-brd);border-radius:18px;box-shadow:var(--glass-shadow)}
.note-article h1{font-size:26px;margin:0 0 6px;letter-spacing:-.4px}
.note-article .nsub{color:var(--muted);font-size:13.5px;margin:0 0 20px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.note-article h2{font-size:19px;margin:26px 0 8px;color:var(--navy);letter-spacing:-.2px}
.note-article h3{font-size:15.5px;margin:18px 0 6px;color:#243a63}
.note-article p,.note-article li{font-size:14.5px;line-height:1.6}
.note-article ul,.note-article ol{padding-left:22px;margin:8px 0}
.note-article li{margin:5px 0}
.note-article strong{color:#182948}
.note-article table{border-collapse:collapse;width:100%;margin:14px 0;font-size:13.5px}
.note-article th,.note-article td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.note-article th{background:rgba(219,234,254,.6);font-weight:700;color:var(--navy)}
.note-article .pearl{background:rgba(253,243,214,.75);border-left:4px solid var(--warn);border-radius:10px;padding:11px 14px;margin:14px 0;font-size:13.5px}
.note-article .pearl b{color:var(--warn)}
.wt{display:inline-block;font-size:11px;font-weight:800;color:var(--accent);background:rgba(28,91,214,.12);border-radius:999px;padding:2px 10px;margin-left:8px;vertical-align:middle}
.note-article{scroll-margin-top:76px}
.note-article h2{scroll-margin-top:82px}
.note-toc{border:1px solid var(--line);border-left:4px solid var(--cc,#1c5bd6);border-radius:10px;background:rgba(255,255,255,.5);padding:12px 15px 13px;margin:2px 0 22px}
.note-toc .toc-h{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:6px}
.note-toc .toc-links{columns:2;column-gap:22px}
.note-toc a{display:block;font-size:13.5px;font-weight:600;color:var(--cc,#1c5bd6);text-decoration:none;padding:4px 2px;line-height:1.3;break-inside:avoid}
.note-toc a:hover{text-decoration:underline}
@media (max-width:640px){.note-toc .toc-links{columns:1}}
/* ---------- Case Prep ---------- */
.case-search{width:100%;border:1px solid var(--glass-brd);border-radius:13px;padding:14px 16px;font-size:16px;outline:none;background:rgba(255,255,255,.75);box-shadow:var(--glass-shadow)}
.case-search:focus{border-color:#9db5e6;box-shadow:0 0 0 3px rgba(37,99,235,.14)}
.case-hint{font-size:12.5px;color:var(--muted);margin:6px 2px 0;font-weight:600}
.secnum{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;border-radius:6px;background:var(--cc,#1c5bd6);color:#fff;font-size:11px;font-weight:800;margin-right:9px;padding:0 6px;vertical-align:middle}
.case-sixty{background:var(--cbg,rgba(28,91,214,.08));border:1px solid var(--glass-brd);border-left:4px solid var(--cc,#1c5bd6);border-radius:10px;padding:14px 16px;margin:2px 0 10px;font-size:15px;line-height:1.6}
.case-sixty p{margin:0}
.note-article .case-sec{margin:24px 0 0}
.note-article .case-sec .body{margin-top:6px}
.note-article .case-sec ol,.note-article .case-sec ul{padding-left:22px}
.note-article .case-sec li{margin:6px 0;line-height:1.55}
.pimp{border:1px solid var(--line);border-radius:10px;margin:8px 0;overflow:hidden;background:rgba(255,255,255,.55)}
.pimp>summary{list-style:none;cursor:pointer;padding:11px 14px;display:flex;gap:10px;align-items:flex-start;font-weight:600;font-size:14px;line-height:1.45}
.pimp>summary::-webkit-details-marker{display:none}
.pimp .lvl{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;padding:3px 8px;border-radius:999px;color:#fff;flex:0 0 auto;margin-top:1px}
.pimp .lvl.junior{background:#1e6b30}.pimp .lvl.senior{background:#1c5bd6}.pimp .lvl.advanced{background:#8a2ba0}
.pimp .qa{padding:11px 14px 13px;font-size:14px;line-height:1.6;color:#2b3a57;border-top:1px solid var(--line);background:rgba(255,255,255,.4)}
.paper{border-left:3px solid var(--cc,#1c5bd6);padding:6px 0 6px 13px;margin:12px 0}
.paper .cite{font-weight:700;font-size:14px;color:#182948}
.paper .cite a.cite-ev{color:inherit;text-decoration:none}
.paper .cite a.cite-ev:hover{color:var(--cc,#1c5bd6);text-decoration:underline}
.paper .why{font-size:13.5px;color:var(--muted);margin:3px 0}
.paper a{color:var(--accent);font-weight:700;text-decoration:none;font-size:12.5px}
.paper a:hover{text-decoration:underline}
.relbox{margin-top:26px;padding-top:18px;border-top:1px solid var(--line)}
.relbox h3{font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:0 0 10px}
.relchips{display:flex;flex-wrap:wrap;gap:8px}
.relchip{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;text-decoration:none;color:var(--navy);border:1px solid var(--glass-brd);background:rgba(255,255,255,.62);border-radius:999px;padding:7px 13px}
.relchip:hover{background:#fff}
.relchip .dot{width:8px;height:8px;border-radius:50%}

/* ---------- Dark mode ---------- */
.themebtn{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);color:#cdd7f0;width:34px;height:30px;border-radius:9px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;margin-left:8px;font-size:15px;line-height:1}
.themebtn:hover{background:rgba(255,255,255,.18);color:#fff}
html[data-theme="dark"]{
  --ink:#e7ecf6; --muted:#9fb0cf; --line:rgba(255,255,255,.12);
  --glass:rgba(28,38,64,.55); --glass-2:rgba(28,38,64,.42);
  --glass-brd:rgba(255,255,255,.12); --glass-hi:rgba(255,255,255,.10);
  --glass-shadow:0 10px 34px rgba(0,0,0,.5),0 2px 10px rgba(0,0,0,.4);
  --soft:#151d31; --soft-2:#1a2440; --badge-bg:#20386340; --badge-ink:#bcd3ff;
  --accent:#79aaff; --accent-2:#5b8cf0;
}
html[data-theme="dark"] body{color:var(--ink);background:
  radial-gradient(1200px 700px at 12% -8%, rgba(40,72,150,.30), transparent 60%),
  radial-gradient(1000px 650px at 95% 0%, rgba(80,60,140,.24), transparent 55%),
  linear-gradient(180deg,#0a0f1c 0%,#0c1322 45%,#0a0f1e 100%);}
html[data-theme="dark"] .disclaimer{background:rgba(18,26,44,.6);color:#b7c3de;border-bottom-color:rgba(255,255,255,.10)}
html[data-theme="dark"] .disclaimer b{color:#cdd9f5}
html[data-theme="dark"] h1{color:#f0f3fa}
html[data-theme="dark"] .note-article h2,html[data-theme="dark"] .note-article h3,html[data-theme="dark"] .panel h2,html[data-theme="dark"] .prose h2{color:#a9c4ff}
html[data-theme="dark"] .note-article strong,html[data-theme="dark"] .trial-summary strong,html[data-theme="dark"] .paper .cite{color:#f0f3fa}
html[data-theme="dark"] .prose p,html[data-theme="dark"] .prose li,html[data-theme="dark"] .cat-item,html[data-theme="dark"] .bar-row .bl{color:#c4cfe6}
html[data-theme="dark"] .grp-head{color:#cde0ff}
html[data-theme="dark"] .cat-item:hover{background:rgba(255,255,255,.06)}
html[data-theme="dark"] .cat-item.active{background:rgba(121,170,255,.16);color:#eaf1ff}
html[data-theme="dark"] .note-article th{background:rgba(60,84,150,.32);color:#cde0ff;border-color:var(--line)}
html[data-theme="dark"] .note-article td{border-color:var(--line)}
html[data-theme="dark"] .note-article .pearl{background:rgba(154,103,0,.16);color:#efe3c8}
html[data-theme="dark"] .note-article .pearl b{color:#f0c25a}
html[data-theme="dark"] .note-toc{background:rgba(20,28,48,.5)}
html[data-theme="dark"] .pimp{background:rgba(20,28,48,.5)}
html[data-theme="dark"] .pimp .qa{background:rgba(12,18,32,.4);color:#c4cfe6}
html[data-theme="dark"] .tcard .tmeta b{color:#c4cfe6}
html[data-theme="dark"] .search,html[data-theme="dark"] .case-search,html[data-theme="dark"] .sel{background:rgba(16,23,40,.72);color:#e7ecf6;border-color:var(--glass-brd)}
html[data-theme="dark"] .case-search::placeholder,html[data-theme="dark"] .search::placeholder{color:#8496b6}
html[data-theme="dark"] .extlinks a,html[data-theme="dark"] .relchip{background:rgba(255,255,255,.06);color:#cdd9f5}
html[data-theme="dark"] .statbox b,html[data-theme="dark"] .kpi b,html[data-theme="dark"] .bar-row .bv{color:#eaf1ff}
html[data-theme="dark"] .bar-track{background:rgba(255,255,255,.08)}
html[data-theme="dark"] .tile .ic{background:rgba(121,170,255,.14)}
html[data-theme="dark"] .empty{color:#9fb0cf}

/* ---------- flashcards ---------- */
.fc-stage{max-width:640px;margin:6px auto}
.fc-card{perspective:1600px;height:340px;margin:14px 0}
.fc-inner{position:relative;width:100%;height:100%;transition:transform .5s;transform-style:preserve-3d;cursor:pointer}
.fc-inner.flip{transform:rotateY(180deg)}
.fc-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:20px;padding:28px;display:flex;flex-direction:column;
  justify-content:center;text-align:center;overflow:auto;background:var(--glass);backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-brd);box-shadow:var(--glass-shadow)}
.fc-face .lbl{position:absolute;top:14px;left:16px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.fc-face.back{transform:rotateY(180deg);text-align:left;background:rgba(238,243,251,.6)}
.fc-q{font-size:19px;font-weight:700;line-height:1.4}
.fc-a{font-size:15px;line-height:1.6}
.fc-a strong{color:var(--navy)}
.fc-ctrl{display:flex;gap:10px;justify-content:center;align-items:center;margin-top:14px;flex-wrap:wrap}
.btn{border:1px solid var(--glass-brd);background:var(--glass);backdrop-filter:var(--glass-blur);color:var(--navy);
  font-weight:700;font-size:14px;border-radius:11px;padding:10px 16px;cursor:pointer;box-shadow:var(--glass-shadow)}
.btn:hover{background:rgba(255,255,255,.8)}
.btn.primary{background:linear-gradient(160deg,#1f4bb0,#0d1f4d);color:#fff;border-color:transparent}
.btn.primary:hover{filter:brightness(1.1)}
.btn.ghost{background:transparent;box-shadow:none}
.fc-prog{text-align:center;font-size:13px;color:var(--muted);font-weight:600;margin-top:8px}

/* ---------- stats ---------- */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:16px 0}
.kpi{padding:18px;background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-brd);border-radius:16px;box-shadow:var(--glass-shadow)}
.kpi b{display:block;font-size:30px;font-weight:800;color:var(--navy);letter-spacing:-.6px}
.kpi span{font-size:12.5px;color:var(--muted);font-weight:600}
.panel{padding:22px 24px;margin:16px 0;background:var(--glass);backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-brd);border-radius:18px;box-shadow:var(--glass-shadow)}
.panel h2{margin:0 0 4px;font-size:18px}
.panel .psub{color:var(--muted);font-size:13px;margin:0 0 16px}
.bar-row{display:grid;grid-template-columns:190px 1fr 48px;align-items:center;gap:12px;margin:9px 0;font-size:13px}
.bar-row .bl{font-weight:700;color:#33425f;display:flex;align-items:center;gap:8px}
.bar-row .bl .sw{width:10px;height:10px;border-radius:3px;flex:0 0 auto}
.bar-track{background:rgba(28,45,90,.09);border-radius:999px;height:16px;overflow:hidden}
.bar-fill{height:100%;border-radius:999px}
.bar-row .bv{text-align:right;font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums}

/* ---------- about ---------- */
.about-hero{display:flex;gap:26px;align-items:center;flex-wrap:wrap;padding:26px;margin:12px 0 22px;
  background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-brd);border-radius:20px;box-shadow:var(--glass-shadow)}
.about-photo{width:160px;height:160px;border-radius:50%;object-fit:cover;object-position:center top;flex:0 0 auto;border:3px solid var(--glass-brd);box-shadow:var(--glass-shadow)}
.about-photo.ph{display:flex;align-items:center;justify-content:center;background:var(--navy);color:#fff;font-size:46px;font-weight:800;letter-spacing:1px}
.about-photo.sm{width:160px;height:160px}
.about-hero h1{margin:0 0 4px;font-size:26px}
.about-hero .role{color:var(--accent);font-weight:700;font-size:14px;margin:0 0 10px}
.about-hero p{margin:0;color:var(--muted);font-size:14px;max-width:640px}
.sec-editors{margin:6px 0 10px}
.sec-ed-group{margin:0 0 24px}
.sec-ed-secname{font-size:15.5px;font-weight:800;color:var(--navy);margin:0 0 3px}
.sec-ed-label{font-size:11px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--muted);margin:0 0 12px}
.sec-ed-grid{display:flex;flex-wrap:wrap;gap:16px}
.sec-ed-card{display:flex;gap:18px;align-items:center;width:100%;max-width:560px;padding:16px 18px;background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-brd);border-radius:16px;box-shadow:var(--glass-shadow)}
.sec-ed-card img,.sec-ed-ph{width:160px;height:160px;border-radius:50%;flex:0 0 auto;border:3px solid var(--glass-brd)}
.sec-ed-card img{object-fit:cover;object-position:center top}
.sec-ed-ph{display:flex;align-items:center;justify-content:center;background:var(--navy);color:#fff;font-size:24px;font-weight:800}
.sec-ed-card .n{font-size:15px;font-weight:800;color:var(--navy);margin:0 0 4px}
.sec-ed-card .b{font-size:13px;color:var(--muted);line-height:1.5;margin:0}
.prose{max-width:820px}
.prose h2{font-size:19px;margin:24px 0 8px;color:var(--navy)}
.prose p,.prose li{font-size:14.5px;line-height:1.65;color:#2b3a57}
.prose a{color:var(--accent);font-weight:600}
.prose .pearl{background:rgba(238,243,251,.7);border-left:4px solid var(--accent);border-radius:10px;padding:12px 15px;margin:14px 0;font-size:13.5px}

footer.site{margin-top:36px;background:rgba(13,31,77,.82);backdrop-filter:blur(14px);color:#cdd7f0}
footer.site .wrap{padding:15px 20px;display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:space-between}
footer .ft-l b{color:#fff;font-size:15px}
footer .ft-l p{margin:4px 0 0;font-size:12px;max-width:680px;color:#aebbe0}
.copy{border-top:1px solid rgba(255,255,255,.12)}
.copy .wrap{padding:9px 20px;font-size:12px;color:#9aa7c2;display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.copy a{color:#cdd7f0}
.empty{text-align:center;color:var(--muted);padding:44px 30px;background:var(--glass-2);backdrop-filter:blur(10px);
  border:1px solid var(--glass-brd);border-radius:16px;margin-top:4px;font-size:14.5px}

@media (max-width:860px){
  .browse{grid-template-columns:1fr}
  .cat-menu{position:static;max-height:none;order:-1}
  .hero h1{font-size:26px}
  .note-article{padding:22px}
  .bar-row{grid-template-columns:130px 1fr 42px}
}

/* ---------- PWA install popup ---------- */
.pwa-pop{position:fixed;z-index:200;left:14px;right:14px;bottom:14px;max-width:400px;margin:0 auto;display:flex;gap:12px;align-items:center;flex-wrap:wrap;
  background:#fff;border:1px solid var(--line);border-radius:16px;padding:13px 15px;box-shadow:0 18px 50px rgba(13,31,77,.28);
  transform:translateY(160%);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.pwa-pop.show{transform:translateY(0)}
.pwa-pop img{width:44px;height:44px;border-radius:11px;flex:0 0 auto;object-fit:contain;background:var(--navy);padding:4px}
.pwa-pop .pwa-tx{flex:1;min-width:150px}
.pwa-pop .pwa-tx b{display:block;font-size:14px;color:var(--navy);margin-bottom:1px}
.pwa-pop .pwa-tx span{font-size:12.5px;color:var(--muted);line-height:1.35}
.pwa-pop .pwa-bt{display:flex;gap:8px;margin-left:auto}
.pwa-pop .pwa-bt button{border-radius:9px;padding:8px 14px;font-size:13px;font-weight:700;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--navy)}
.pwa-pop .pwa-bt .pwa-yes{background:var(--accent);color:#fff;border-color:var(--accent)}
.pwa-pop .pwa-bt button:hover{filter:brightness(.97)}
@media(min-width:600px){.pwa-pop{left:auto;right:22px;bottom:22px;margin:0}}
html[data-theme="dark"] .pwa-pop{background:#141c30;border-color:rgba(255,255,255,.12)}
html[data-theme="dark"] .pwa-pop .pwa-tx b{color:#f0f3fa}
html[data-theme="dark"] .pwa-pop .pwa-bt button{background:#1b2439;color:#e6ebf6;border-color:rgba(255,255,255,.14)}
html[data-theme="dark"] .pwa-pop .pwa-bt .pwa-yes{background:var(--accent);color:#fff;border-color:var(--accent)}
