:root{
  --bg:#15181d; --panel:#1d2128; --panel2:#252a33; --ink:#e9eaec; --muted:#9aa3b0;
  --line:#333a45; --accent:#b71c1c; --accent2:#d4af37; --link:#7fb2ff;
}
html[data-theme="light"]{
  --bg:#f3f4f6; --panel:#ffffff; --panel2:#eceef1; --ink:#1a1c20; --muted:#5a6470;
  --line:#d3d7dd; --accent:#b71c1c; --accent2:#8a6d12; --link:#1a5fb4;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
  font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}

/* ===== lean grimdark atmosphere ===== */
body.grimdark{
  background-image:
    radial-gradient(120% 80% at 50% -10%, rgba(255,255,255,.04), transparent 60%),
    radial-gradient(140% 120% at 50% 120%, rgba(0,0,0,.55), transparent 55%),
    repeating-linear-gradient(45deg, rgba(0,0,0,.03) 0 2px, transparent 2px 6px);
  background-attachment:fixed}
html[data-theme="light"] body.grimdark{
  background-image:
    radial-gradient(140% 120% at 50% 120%, rgba(0,0,0,.10), transparent 55%),
    repeating-linear-gradient(45deg, rgba(0,0,0,.02) 0 2px, transparent 2px 6px)}
/* faint faction-tinted skull watermark behind content */
body.grimdark::before{
  content:"\2620\FE0E";position:fixed;right:-3vw;bottom:-8vh;z-index:0;pointer-events:none;
  font-size:62vh;line-height:1;color:var(--page-accent);opacity:.05}
main,.topbar,.foot{position:relative;z-index:1}
/* Imperial-inscription display font for the big stuff */
.brand,.hero h1,main>h1,.dc-name,.faction-name,.detach h2,.cl-entry h2{font-family:'Cinzel',serif;letter-spacing:1px}
.dc-name{letter-spacing:2px}
.topbar{border-bottom-color:var(--page-accent)}
.foot .lore{font-family:'Cinzel',serif;color:var(--accent2);letter-spacing:2px;font-size:13px;text-align:center;margin:0 0 10px;opacity:.85}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
main{max-width:980px;margin:0 auto;padding:20px 16px 60px}

/* top bar */
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;
  background:#0f1216;border-bottom:2px solid var(--accent);padding:10px 16px}
.brand{font-weight:800;letter-spacing:.5px;color:var(--accent2);font-size:18px}
.search{flex:1;max-width:420px;background:var(--panel2);border:1px solid var(--line);
  color:var(--ink);border-radius:6px;padding:8px 12px;font-size:14px}
.results{position:absolute;top:52px;left:16px;right:16px;max-width:420px;background:var(--panel);
  border:1px solid var(--line);border-radius:8px;max-height:60vh;overflow:auto;box-shadow:0 12px 30px rgba(0,0,0,.5)}
.results a{display:flex;justify-content:space-between;padding:9px 12px;border-bottom:1px solid var(--line);color:var(--ink)}
.results a:hover{background:var(--panel2);text-decoration:none}
.results .rf{color:var(--muted);font-size:12px}
.rtag{display:inline-block;font-size:10px;text-transform:uppercase;letter-spacing:.4px;border-radius:3px;
  padding:1px 5px;margin-right:6px;color:#fff;vertical-align:middle}
.rt-unit{background:#3a6ea5}.rt-stratagem{background:#9a4b1f}.rt-detachment{background:#6b2a8a}
.rt-faction{background:#2e7d57}.rt-rule{background:#555a63}

/* theme toggle button */
.theme-toggle{background:var(--panel2);border:1px solid var(--line);color:var(--ink);
  border-radius:6px;width:30px;height:28px;cursor:pointer;font-size:15px;line-height:1;padding:0}
.theme-toggle:hover{border-color:var(--accent2)}

/* home */
.hero{padding:28px 0 8px}
.hero h1{margin:0 0 6px;color:var(--accent2);font-size:30px}
.hero p{color:var(--muted);margin:0}
.faction-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:18px}
.faction-card{display:flex;justify-content:space-between;align-items:center;background:var(--panel);
  border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;padding:14px 16px;color:var(--ink)}
.faction-card:hover{background:var(--panel2);text-decoration:none}
.faction-count{color:var(--muted);font-size:13px}

/* lists / crumbs */
.crumbs{color:var(--muted);font-size:13px;margin-bottom:10px}
.ds-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:6px}
.ds-row{display:flex;align-items:stretch;background:var(--panel);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.ds-row:hover{background:var(--panel2)}
.ds-row.legends{opacity:.65}
.ds-link{display:flex;justify-content:space-between;align-items:center;gap:8px;flex:1;padding:9px 12px;color:var(--ink)}
.ds-link:hover{text-decoration:none}
.ds-pts{color:var(--accent2);font-size:13px;white-space:nowrap}
.ds-add{flex:0 0 36px;border:none;border-left:1px solid var(--line);background:transparent;color:var(--muted);
  font-size:18px;cursor:pointer;line-height:1}
.ds-add:hover{background:var(--accent);color:#fff}

/* ===== GW-style datacard (faction colour driven by --fac, set inline) ===== */
.datacard{
  --fac:#7a1f24;                 /* overridden per-faction inline */
  --dc-dark:#26282d; --dc-ink:#23241f; --dc-paper:#eceae3; --dc-line:#cbc7bc;
  background:
    repeating-linear-gradient(135deg, rgba(0,0,0,.012) 0 2px, transparent 2px 5px),
    linear-gradient(180deg,#f1efe8,#e4e1d8);
  color:var(--dc-ink);
  border:2px solid var(--fac);border-radius:3px;padding:0;overflow:hidden;
  box-shadow:0 12px 34px rgba(0,0,0,.5)}
.datacard .badge{font-size:11px;background:#000;color:#ddd;padding:2px 7px;border-radius:3px;vertical-align:middle}

/* banner: dark, with a faction-colour wash from the right */
.dc-banner{position:relative;background:
    linear-gradient(110deg, var(--dc-dark) 55%, color-mix(in srgb, var(--fac) 70%, #15161a) 100%),
    var(--dc-dark);
  color:#fff;padding:12px 16px 16px}
.dc-banner-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.dc-name{font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;
  letter-spacing:1px;font-size:29px;line-height:1.02;margin:0;color:#fff}
.dc-sub{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:2px;
  font-size:12px;color:#c4c7cf;margin-top:2px}
.dc-pts{display:flex;gap:8px;align-items:center;flex-shrink:0}
.dc-pt{min-width:52px;text-align:center;background:rgba(0,0,0,.45);border:2px solid var(--fac);
  border-radius:4px;padding:5px 8px}
.dc-pt-n{display:block;font-family:'Oswald',sans-serif;font-weight:700;font-size:22px;color:#fff;line-height:1}
.dc-pt-l{display:block;font-size:10px;color:#c9ccd4;letter-spacing:.5px;margin-top:2px}

/* stat boxes: white, faction-bordered, clipped top-left corner, faction-colour value */
.dc-model-name{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:1px;
  font-size:13px;color:#fff;margin:10px 0 2px}
.dc-stats{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;align-items:flex-start}
.dc-stat{width:54px;text-align:center}
.dc-inv-badge{display:block;margin-top:5px;background:var(--fac);color:#fff;font-family:'Oswald',sans-serif;
  font-weight:700;font-size:15px;border-radius:5px;padding:2px 0 3px;line-height:1}
.dc-inv-badge small{display:block;font-size:8px;font-weight:500;letter-spacing:1px;opacity:.85;margin-top:1px}
.dc-stat-l{display:block;font-family:'Oswald',sans-serif;font-weight:600;font-size:13px;
  letter-spacing:1px;color:#fff;margin-bottom:3px}
.dc-stat-v{display:block;background:#fff;border:2px solid var(--fac);
  clip-path:polygon(22% 0, 100% 0, 100% 100%, 0 100%, 0 22%);
  font-family:'Oswald',sans-serif;font-weight:700;font-size:23px;color:var(--fac);
  padding:5px 0;line-height:1}
.dc-invuln{display:inline-flex;align-items:center;margin-top:10px}
.dc-shield{background:var(--fac);color:#fff;font-family:'Oswald',sans-serif;font-weight:700;font-size:17px;
  padding:4px 12px;clip-path:polygon(0 0,100% 0,100% 60%,50% 100%,0 60%)}
.dc-inv-l{background:rgba(0,0,0,.35);color:#fff;font-family:'Oswald',sans-serif;font-weight:500;
  letter-spacing:1px;font-size:12px;padding:5px 12px}

.dc-loadout{font-size:13px;color:#55524c;margin:10px 16px 4px}

/* two-column body: weapons (left) | abilities (right), GW-style */
.dc-main{display:flex;align-items:stretch}
.dc-weapons-col{flex:1.7;min-width:0}
.dc-abilities-col{flex:1;min-width:0;border-left:2px solid var(--fac)}
.dc-abilities-col .dc-section{margin-top:0;height:100%}
@media(max-width:720px){.dc-main{display:block}.dc-abilities-col{border-left:none}}

/* weapon tables: faction-colour header bar, dotted row separators */
.dc-weapons{width:100%;border-collapse:collapse;font-size:14px;margin-top:8px}
.dc-weapons-col .dc-weapons:first-child{margin-top:0}
.dc-whead th{background:var(--fac);color:#fff;font-family:'Oswald',sans-serif;font-weight:500;
  text-transform:uppercase;letter-spacing:.6px;font-size:12px;padding:7px 6px;text-align:center;border:none}
.dc-whead th.wn{text-align:left;padding-left:16px;font-weight:700;letter-spacing:1px}
.w-icon{opacity:.9}
.dc-weapons td{padding:6px;text-align:center;border-bottom:1px dotted var(--dc-line);width:46px}
.dc-weapons td.wn{text-align:left;width:auto;padding-left:16px}
.dc-weapons tbody tr:last-child td{border-bottom:none}
.w-name{font-weight:600}
.wkw{color:var(--fac);font-size:11px;font-weight:600;font-variant:small-caps;text-transform:lowercase;letter-spacing:.3px}

/* section bars */
.dc-section{margin-top:4px}
.dc-bar{background:var(--fac);color:#fff;font-family:'Oswald',sans-serif;font-weight:600;
  text-transform:uppercase;letter-spacing:1px;font-size:13px;padding:6px 16px}
.dc-body{padding:10px 16px;font-size:14px}
.dc-body ul{margin:4px 0;padding-left:20px}
.opts li{margin:4px 0}
.dc-inline{margin:4px 0}
.dc-tag{display:inline-block;background:var(--dc-dark);color:#fff;border-radius:3px;
  font-family:'Oswald',sans-serif;font-size:11px;letter-spacing:1px;padding:1px 8px;margin-right:6px;vertical-align:middle}
.ability{margin:8px 0;line-height:1.45}
.ab-name{color:var(--fac);font-weight:700}
.ability.damaged .ab-name{color:#b3261e}

/* keyword band: light KEYWORDS box | faction diamond | dark FACTION KEYWORDS box */
.dc-keywords{display:flex;align-items:stretch;gap:0;margin-top:6px;
  border-top:2px solid var(--fac);font-size:13px}
.dc-kw{display:flex;align-items:center;flex-wrap:wrap;padding:10px 16px}
.dc-kw:first-child{flex:1;border:2px solid var(--fac);border-top:none;border-left:none;background:rgba(255,255,255,.5)}
.dc-kw-l{font-family:'Oswald',sans-serif;font-weight:600;letter-spacing:1px;color:#3a3a3a;margin-right:8px}
.dc-kw-v{font-variant:small-caps;font-weight:600;color:#23241f}
.dc-fk{background:var(--dc-dark);color:#fff;min-width:34%}
.dc-fk .dc-kw-l{color:#c9ccd4}
.dc-fk .dc-kw-v{color:#fff}
.dc-diamond{flex:0 0 40px;align-self:center;width:30px;height:30px;margin:0 -15px;z-index:2;
  background:var(--dc-paper);border:3px solid var(--fac);transform:rotate(45deg)}

.fluff{color:#6b675f;font-style:italic;font-size:13px;margin:14px 16px;border-left:3px solid var(--dc-line);padding-left:12px}
.src{font-size:12px;color:#8a857c;margin:10px 16px}
.src a{color:#8a857c}

.foot{max-width:980px;margin:0 auto;padding:20px 16px;color:var(--muted);font-size:12px;border-top:1px solid var(--line)}
@media(max-width:560px){.card-head{flex-direction:column}.pts-block{text-align:left}.pts{justify-content:flex-start}}

/* faction rules page */
.rules-link{margin:6px 0 14px}
.rules-link a{display:inline-block;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent2);border-radius:6px;padding:8px 12px}
.detach{margin:22px 0;border-top:1px solid var(--line);padding-top:12px}
.detach h2{color:var(--accent2);font-size:20px;margin:0 0 8px}
.pdf-badge{font-size:11px;background:var(--fac,var(--accent));color:#fff;padding:2px 8px;border-radius:4px;vertical-align:middle;letter-spacing:.3px}
.rsub{color:var(--muted);text-transform:uppercase;font-size:12px;letter-spacing:.6px;margin:14px 0 6px}
.strat{background:var(--panel2);border:1px solid var(--line);border-left:3px solid var(--fac,var(--accent));border-radius:6px;padding:8px 12px;margin:6px 0}
.strat-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.strat-meta{color:var(--muted);font-size:12px;white-space:nowrap}

/* toolbar on faction list (sort/filter — a small "twist") */
.toolbar{display:flex;gap:14px;align-items:center;margin:6px 0 12px;font-size:13px;color:var(--muted)}
.toolbar label{cursor:pointer;user-select:none}
.toolbar button{background:var(--panel2);border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:5px 10px;cursor:pointer;font-size:13px}
.toolbar button.active{border-color:var(--accent2);color:var(--accent2)}

/* topbar roster link + nav */
.topbar-nav{display:flex;gap:12px;align-items:center}
.topbar-nav a{color:var(--muted);font-size:13px}
.roster-link{position:relative;color:var(--ink);font-size:18px;text-decoration:none}
.roster-badge{position:absolute;top:-8px;right:-10px;background:var(--accent);color:#fff;
  font-size:11px;font-weight:700;min-width:16px;height:16px;border-radius:8px;text-align:center;line-height:16px;padding:0 3px}

/* enriched toolbar */
.tb-grp{display:inline-flex;align-items:center;gap:6px}
.toolbar select,.toolbar input[type=number]{background:var(--panel2);border:1px solid var(--line);
  color:var(--ink);border-radius:6px;padding:4px 6px;font-size:13px}
.tb-count{margin-left:auto;color:var(--muted);font-size:12px}

/* datacard action buttons */
.dc-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.dc-add{align-self:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.4);color:#fff;
  font-family:'Oswald',sans-serif;font-size:13px;letter-spacing:.5px;border-radius:5px;padding:6px 12px;cursor:pointer;white-space:nowrap}
.dc-add:hover{background:var(--fac)}
.dc-add.added{background:#2e7d32;border-color:#2e7d32}
.ds-compare{flex:0 0 32px;border:none;border-left:1px solid var(--line);background:transparent;color:var(--muted);font-size:14px;cursor:pointer}
.ds-compare:hover{background:var(--accent2);color:#15181d}

/* compare floating pill + page */
#compare-pill{position:fixed;left:14px;bottom:14px;z-index:30;display:none;align-items:center;gap:6px;
  background:var(--accent);color:#fff;border-radius:20px;padding:9px 16px;font-size:14px;font-weight:600;
  box-shadow:0 6px 18px rgba(0,0,0,.5)}
#compare-pill:hover{text-decoration:none;filter:brightness(1.1)}
.cmp-table{width:100%;border-collapse:collapse;margin:12px 0}
.cmp-table th,.cmp-table td{border:1px solid var(--line);padding:8px 12px;text-align:center}
.cmp-table thead th{background:var(--panel2);font-family:'Oswald',sans-serif}
.cmp-table tbody th{text-align:left;background:var(--panel);color:var(--muted);text-transform:uppercase;font-size:12px;letter-spacing:.5px}
.cmp-best{background:rgba(212,175,55,.18);font-weight:700;color:var(--accent2)}
.cmp-rm{background:transparent;border:none;color:var(--muted);cursor:pointer}
.cmp-rm:hover{color:#ff6b6b}
.cmp-cards{display:flex;gap:14px;overflow-x:auto;padding-bottom:10px;align-items:flex-start}
.cmp-card{flex:0 0 360px;max-width:360px}

/* roster page */
.roster-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--panel);
  border:1px solid var(--line);border-radius:8px;padding:12px 16px;margin:12px 0}
.roster-bar input{background:var(--panel2);border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:5px 8px}
.ros-total{font-family:'Oswald',sans-serif;font-size:20px;font-weight:700;color:var(--accent2)}
.ros-total.over{color:#ff6b6b}
.roster-actions{margin-left:auto;display:flex;gap:8px}
.roster-actions button{background:var(--panel2);border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:7px 12px;cursor:pointer;font-size:13px}
.roster-actions button:hover{border-color:var(--accent2)}
.roster-actions .danger:hover{border-color:#ff6b6b;color:#ff6b6b}
.ros-msg{color:var(--accent2);font-size:13px;margin:4px 0}
.ros-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.ros-row{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:9px 12px}
.ros-row a{flex:1;color:var(--ink)}
.ros-fac{color:var(--muted);font-size:12px}
.ros-pts{color:var(--accent2);font-size:13px;min-width:60px;text-align:right}
.ros-rm{background:transparent;border:none;color:var(--muted);font-size:14px;cursor:pointer}
.ros-rm:hover{color:#ff6b6b}
.ros-empty{color:var(--muted);margin-top:14px}
.print-area{display:none}
.bs-btn{background:var(--panel2);border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:5px 10px;cursor:pointer;font-size:12px}
.bs-btn:hover{border-color:var(--accent2)}
.ros-validate{margin:10px 0;display:flex;flex-direction:column;gap:4px}
.val-row{font-size:13px;padding:6px 12px;border-radius:6px}
.val-row.ok{background:rgba(46,125,50,.15);color:#9be29f}
.val-row.bad{background:rgba(183,28,28,.18);color:#ff9b9b}
.ros-enh{background:var(--panel2);border:1px solid var(--line);color:var(--ink);border-radius:5px;padding:3px 6px;font-size:12px;max-width:200px}
.ros-wl{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:3px;white-space:nowrap}

/* changelog */
.cl-entry{border-top:1px solid var(--line);margin-top:18px;padding-top:12px}
.cl-entry h2{font-family:'Oswald',sans-serif;color:var(--accent2);margin:0 0 6px}
.cl-sum{display:flex;gap:8px;margin:0 0 8px}
.cl-pill{font-size:12px;border-radius:4px;padding:2px 8px}
.cl-add{background:#1f3d22;color:#9be29f}
.cl-chg{background:#3a341a;color:#e2d49b}
.cl-rem{background:#3d1f1f;color:#e29b9b}
.cl-sub{color:var(--muted);text-transform:uppercase;font-size:12px;letter-spacing:.6px;margin:10px 0 4px}
.cl-list{margin:0;padding-left:20px}
.cl-list li{margin:3px 0}
.cl-fac{color:var(--muted);font-size:12px}
.muted{color:var(--muted)}

/* what's-new (11th edition) page */
.nav-new,.home-new{color:var(--accent2)!important;font-weight:600}
.wn-hero{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent2);border-radius:8px;padding:14px 16px;margin:10px 0}
.wn-hero p{margin:6px 0}
.wn-datanote{color:var(--muted);font-size:13px}
.wn-video{position:relative;width:100%;max-width:720px;aspect-ratio:16/9;margin:14px 0}
.wn-video iframe{position:absolute;inset:0;width:100%;height:100%;border:1px solid var(--line);border-radius:8px}
.wn-watch{margin:6px 0 4px}
.wn-watch a{color:var(--accent2);font-weight:600}
.wn-change{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin:10px 0}
.wn-title{font-family:'Oswald',sans-serif;margin:0 0 8px;font-size:17px;display:flex;align-items:center;gap:8px}
.wn-impact{font-size:10px;text-transform:uppercase;letter-spacing:.6px;border-radius:4px;padding:2px 7px;color:#fff}
.wn-major{background:var(--accent)}.wn-medium{background:#5a6470}
.wn-cols{display:grid;grid-template-columns:1fr 28px 1fr;gap:10px;align-items:stretch}
.wn-col{border-radius:6px;padding:10px 12px}
.wn-col p{margin:4px 0 0;font-size:14px}
.wn-old{background:rgba(183,28,28,.10);border:1px solid rgba(183,28,28,.3)}
.wn-new{background:rgba(46,125,80,.12);border:1px solid rgba(46,125,80,.35)}
.wn-lbl{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.6px;font-size:11px;color:var(--muted)}
.wn-arrow{align-self:center;text-align:center;color:var(--accent2);font-size:20px;font-weight:700}
.wn-list{line-height:1.6}
@media(max-width:600px){.wn-cols{grid-template-columns:1fr}.wn-arrow{transform:rotate(90deg)}}

/* buy guide (per faction) */
.buy-hero{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--fac,var(--accent));border-radius:8px;padding:14px 16px;margin:10px 0}
.buy-why{margin:0 0 10px;font-size:15px}
.buy-badges{display:flex;flex-wrap:wrap;gap:8px}
.bg-rating{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.5px;font-size:12px;border-radius:4px;padding:3px 9px;color:#fff}
.bg-beginner{background:#2e7d32}.bg-intermediate{background:#b5651d}.bg-advanced{background:#9a1f1f}
.bg-meta{background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:3px 9px;font-size:13px;color:var(--muted)}
.buy-block{margin:18px 0}
.buy-box{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px 16px}
.buy-box-head{font-size:16px}
.buy-price{color:var(--accent2);font-weight:700;margin-left:6px}
.buy-contents{color:var(--ink);margin:8px 0 4px;font-size:14px}
.buy-note{color:var(--muted);font-size:13px;font-style:italic;margin:4px 0 10px}
.buy-btn{display:inline-block;background:var(--accent);color:#fff;border-radius:6px;padding:9px 16px;font-weight:600;font-size:14px}
.buy-btn:hover{filter:brightness(1.1);text-decoration:none}
.buy-grow{display:flex;flex-direction:column;gap:6px}
.grow-row{display:grid;grid-template-columns:1fr 1.4fr 32px;gap:10px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:9px 12px}
.grow-unit{font-weight:600}
.grow-note{color:var(--muted);font-size:13px}
.grow-buy{text-align:center;font-size:15px}
.grow-buy:hover{text-decoration:none}
.buy-disclaimer{font-size:12px;margin-top:18px}
@media(max-width:560px){.grow-row{grid-template-columns:1fr 28px;grid-auto-flow:row}.grow-note{grid-column:1/3}}

/* collecting picker + quiz */
.quiz{display:flex;flex-direction:column;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin:12px 0}
.quiz-q{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.quiz-q>span{min-width:110px;color:var(--muted);font-size:13px}
.quiz-q button{background:var(--panel2);border:1px solid var(--line);color:var(--ink);border-radius:16px;padding:5px 12px;font-size:13px;cursor:pointer}
.quiz-q button.on{border-color:var(--accent2);color:var(--accent2)}
.quiz-result{color:var(--accent2);font-size:14px;margin:8px 0;min-height:1.2em}
.coll-table th a{color:var(--link)}
.coll-table .coll-play{color:var(--muted);font-size:13px;text-align:left}
.coll-table td,.coll-table th{text-align:center}
.coll-table tbody th{text-align:left}

/* 11th-edition inline tag */
.t-11{display:inline-block;background:var(--accent2);color:#15181d;font-size:10px;font-weight:700;border-radius:3px;padding:1px 5px;letter-spacing:.4px;vertical-align:middle}

/* timeline */
.tl{border-left:2px solid var(--line);margin:14px 0 0 8px;padding-left:0}
.tl-item{display:grid;grid-template-columns:150px 1fr;gap:14px;padding:0 0 18px 16px;position:relative}
.tl-item::before{content:"";position:absolute;left:-7px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid var(--bg)}
.tl-date{color:var(--accent2);font-family:'Oswald',sans-serif;font-size:13px}
.tl-era{display:inline-block;color:var(--muted);text-transform:uppercase;font-size:11px;letter-spacing:.5px}
.tl-title{margin:2px 0 4px;font-size:17px}
@media(max-width:560px){.tl-item{grid-template-columns:1fr;gap:2px}}

/* lore */
.lore-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-top:10px}
.lore-card{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;padding:12px 14px}
.lore-card h3{margin:0 0 4px;font-family:'Cinzel',serif}
.lore-sum{color:var(--accent2);font-size:14px;margin:0 0 6px}
.lore-id{font-size:14px;margin:0 0 6px}
.lore-chars{color:var(--muted);font-size:13px;margin:0}
.god-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-top:10px}
.god-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 14px}
.god-card h3{margin:0;font-family:'Cinzel',serif;display:flex;justify-content:space-between;align-items:center}
.god-num{background:var(--accent);color:#fff;border-radius:50%;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;font-size:13px}
.god-title{color:var(--accent2);font-size:13px;margin-bottom:6px}
.god-meta{list-style:none;padding:0;margin:8px 0 0;font-size:13px;color:var(--muted)}
.god-meta li{margin:2px 0}
.char-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;margin-top:10px}
.char-card{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:9px 12px}
.char-name{font-weight:700;display:block}
.char-fac{color:var(--accent2);font-size:12px;display:block;margin-bottom:3px}
.char-bio{color:var(--muted);font-size:13px}

/* media cards */
.media-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;margin-top:10px}
.media-card{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:10px 12px}
.media-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.media-meta{color:var(--muted);font-size:12px;margin-top:3px}
.media-status{font-size:10px;text-transform:uppercase;letter-spacing:.4px;border-radius:3px;padding:2px 6px;color:#fff;white-space:nowrap}
.st-released{background:#2e7d32}.st-announced{background:#5a6470}.st-indevelopment{background:#b5651d}

/* home reference links */
.home-refs{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.home-refs a{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:6px 14px;font-size:13px;color:var(--ink)}
.home-refs a:hover{border-color:var(--accent2);text-decoration:none}

/* reference pages (core rules / missions) */
.ref-subnav{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 12px}
.ref-subnav a{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:6px 12px;font-size:13px;color:var(--ink)}
.ref-subnav a.on{border-color:var(--accent2);color:var(--accent2)}
.ref-sec{margin-top:18px}
.ref-h{font-family:'Oswald',sans-serif;color:var(--accent2);border-bottom:1px solid var(--line);padding-bottom:4px;font-size:18px}
.ref-item{display:grid;grid-template-columns:180px 1fr;gap:14px;padding:8px 0;border-bottom:1px dotted var(--line)}
.ref-name{font-family:'Oswald',sans-serif;font-weight:600;color:var(--ink)}
.ref-text{color:var(--muted);font-size:14px}
@media(max-width:560px){.ref-item{grid-template-columns:1fr;gap:2px}}

/* base size + ability tooltips on datacard */
.dc-base{margin-top:10px;align-self:center;color:#fff;font-family:'Oswald',sans-serif;font-size:13px;
  background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.3);border-radius:4px;padding:3px 10px;display:inline-block}
.dc-body abbr,.wkw abbr{text-decoration:underline dotted;cursor:help}
abbr[title]{text-decoration:underline dotted}

/* MathHammer calculator */
.dc-mathhammer{border-top:1px solid var(--dc-line)}
.dc-mathhammer summary{cursor:pointer;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.6px;
  font-size:13px;padding:8px 16px;color:var(--fac);background:rgba(0,0,0,.03)}
.mh-body{padding:12px 16px}
.mh-loading{color:#888;font-size:13px;margin:0}
.mh-controls,.mh-toggles{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;margin-bottom:10px}
.mh-controls label,.mh-toggles label{display:flex;flex-direction:column;font-size:11px;text-transform:uppercase;
  letter-spacing:.4px;color:#666;gap:3px}
.mh-toggles label{flex-direction:row;align-items:center;text-transform:none;letter-spacing:0;font-size:13px;color:#333;gap:5px}
.mh-body input,.mh-body select{background:#fff;border:1px solid var(--dc-line);border-radius:5px;padding:4px 6px;font-size:14px;color:#1b1c1f}
.mh-body input[type=number]{width:64px}
.mh-out{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.mh-stat{background:var(--dc-row);border:1px solid var(--dc-line);border-radius:8px;padding:8px 14px;text-align:center;min-width:78px}
.mh-stat span{display:block;font-family:'Oswald',sans-serif;font-weight:700;font-size:22px;color:#1b1c1f;line-height:1}
.mh-stat.mh-big{background:var(--fac);border-color:var(--fac)}
.mh-stat.mh-big span{color:#fff}
.mh-note{color:#888;font-size:11px;margin:8px 0 0}

/* stratagems on card */
.dc-strats{margin-top:4px;border-top:1px solid var(--dc-line)}
.dc-strats summary{cursor:pointer;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.6px;
  font-size:13px;padding:8px 16px;color:var(--fac);background:rgba(0,0,0,.03)}
.dc-strat-row{display:flex;justify-content:space-between;gap:10px;padding:3px 0;border-bottom:1px dotted var(--dc-line);font-size:13px}
.dc-strat-meta{color:#777;white-space:nowrap;font-size:12px}

/* faction page: links row + allies */
.fac-links{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 8px}
.fac-links .rules-link{margin:0}
.allies{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:10px 14px;font-size:13px;color:var(--ink)}
.allies strong{color:var(--accent2)}

/* glossary */
.gl-h{font-family:'Oswald',sans-serif;color:var(--accent2);border-bottom:1px solid var(--line);padding-bottom:4px;margin-top:24px}
.gl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:8px;margin-top:10px}
.gl-item{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:6px;padding:8px 12px}
.gl-term{display:block;font-family:'Oswald',sans-serif;font-weight:600;color:var(--accent2);letter-spacing:.5px}
.gl-def{display:block;font-size:13px;color:var(--muted);margin-top:2px}

/* points table */
.pts-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:14px}
.pts-table th{background:var(--panel2);text-align:left;padding:7px 10px;border-bottom:2px solid var(--line);font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.pts-table td{padding:7px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.pts-table tr.legends{opacity:.6}
.pt-cost{color:var(--accent2);font-weight:700;text-align:right}

/* keywords */
.kw-cloud{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.kw-chip{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:5px 12px;font-size:13px;color:var(--ink)}
.kw-chip:hover{border-color:var(--accent2);text-decoration:none}
.kw-n{color:var(--muted);font-size:11px}
.dc-kw-v a{color:inherit;text-decoration:underline dotted}

/* print: clean datacards for tabletop use */
@media print{
  body{background:#fff;color:#000}
  .topbar,.foot,.crumbs,.src,.fluff,.results,.dc-add,.dc-strats,.roster-bar,.ros-list,.ros-msg,.ros-empty,.toolbar{display:none!important}
  main>h1{display:none}
  main{max-width:none;padding:0}
  .print-area{display:block}
  .datacard{break-inside:avoid;page-break-inside:avoid;margin:0 0 10px;border-radius:0;box-shadow:none}
  .dc-banner,.dc-bar,.dc-whead th,.dc-stat-v,.dc-inv-badge,.dc-keywords .dc-fk,.dc-tag,.dc-pt{
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  a{color:#000;text-decoration:none}
}
