:root{--bg:#0d1117;--card:#161b22;--line:#2a313c;--text:#e6edf3;--muted:#8b949e;--acc:#f0b429;--good:#3fb950;--bad:#f85149;--blue:#58a6ff;--purple:#bc8cff}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:1.5rem;margin:0 0 .3rem}h2{font-size:1.1rem;margin:0 0 .8rem}
.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:1rem;padding:.6rem 1rem;background:#0b0f14ee;border-bottom:1px solid var(--line);backdrop-filter:blur(6px)}
.brand{font-weight:700;color:var(--acc);white-space:nowrap}
nav{display:flex;gap:.25rem;overflow-x:auto;flex:1}
nav a{color:var(--muted);padding:.35rem .7rem;border-radius:8px;white-space:nowrap}
nav a.on,nav a:hover{color:var(--text);background:#21262d;text-decoration:none}
.logout button{background:none;border:1px solid var(--line);color:var(--muted);border-radius:8px;padding:.25rem .55rem;cursor:pointer;font-size:1rem}
main{max-width:1200px;margin:0 auto;padding:1rem}
footer{color:var(--muted);text-align:center;font-size:.8rem;padding:1rem 1rem 2rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem;margin-bottom:1rem}
.card.warn{border-color:#6e4a12;background:#1f1a10}
.hero{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}
.desc{color:var(--muted);max-width:40rem;white-space:pre-line}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.6rem;flex:1;min-width:280px;max-width:640px}
.kpis div{background:#0d1117;border:1px solid var(--line);border-radius:10px;padding:.55rem .7rem}
.kpis b{display:block;font-size:1.05rem}.kpis span{color:var(--muted);font-size:.78rem}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.grid2>.card{margin-bottom:0}.grid2{margin-bottom:1rem}
@media (max-width:800px){.grid2{grid-template-columns:1fr}.brand{display:none}main{padding:.6rem}}
.muted{color:var(--muted)}.small{font-size:.82rem}.big{font-size:1.15rem}.score{font-size:1.3rem;font-weight:600}
.err{color:var(--bad)}.bad{color:var(--bad);font-weight:600}
.stats{list-style:none;padding:0;margin:0}.stats li{padding:.3rem 0;border-bottom:1px solid var(--line)}.stats li:last-child{border:0}
.stats.inline{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem}.stats.inline li{border:0}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -1rem;padding:0 1rem}
table{border-collapse:collapse;width:100%;font-size:.9rem}
th,td{padding:.45rem .55rem;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
th{color:var(--muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.02em;position:sticky;top:0;background:var(--card)}
table.sortable th{cursor:pointer;user-select:none}table.sortable th.asc::after{content:" ▲"}table.sortable th.desc::after{content:" ▼"}
tbody tr:hover{background:#1c2129}tr.gone{opacity:.55}tr.theirs td{color:#c9d1d9}tr.ours td:first-child{box-shadow:inset 3px 0 var(--good)}tr.theirs td:first-child{box-shadow:inset 3px 0 var(--bad)}
.badge{display:inline-block;font-size:.72rem;padding:.08rem .4rem;border-radius:999px;background:#21262d;color:var(--muted);margin-right:.2rem;vertical-align:1px}
.badge.up{background:#12361f;color:var(--good)}.badge.down{background:#3a1d1d;color:#ff9a92}.badge.th{background:#2d2252;color:var(--purple)}.badge.me{background:#3b2f0b;color:var(--acc)}
.stars{color:var(--acc);letter-spacing:1px}.stars.s0{color:var(--muted)}
.res{font-weight:700;font-size:.8rem}.res.win{color:var(--good)}.res.lose{color:var(--bad)}.res.tie{color:var(--acc)}
.role{font-size:.82rem}.role.leader{color:var(--acc)}.role.coLeader{color:var(--purple)}.role.admin{color:var(--blue)}
.filters{display:flex;flex-wrap:wrap;gap:.8rem 1.2rem;align-items:center;margin:.6rem 0 1rem}
.filters input[type=number]{width:4.5rem;background:#0d1117;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:.3rem .5rem;margin-left:.3rem}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.seg.small{margin-bottom:.7rem}
.seg label{padding:.35rem .8rem;cursor:pointer;color:var(--muted)}.seg label.on{background:#21262d;color:var(--text)}.seg input{display:none}
.chk{color:var(--muted)}
.btn{display:inline-block;background:var(--acc);color:#111;font-weight:600;padding:.4rem .9rem;border-radius:8px}
.empty{text-align:center;padding:2rem 1rem;color:var(--muted)}.empty h2{color:var(--text)}.empty-inline{color:var(--muted)}
.login-body{display:grid;place-items:center;min-height:100vh;padding:1rem}
.login{width:100%;max-width:340px;display:flex;flex-direction:column;gap:.8rem}.login h1{color:var(--acc);text-align:center}
.login label{display:flex;flex-direction:column;gap:.3rem;color:var(--muted);font-size:.9rem}
.login input{background:#0d1117;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:.65rem;font-size:1rem}
.login button{background:var(--acc);border:0;border-radius:8px;padding:.7rem;font-weight:700;font-size:1rem;cursor:pointer}
canvas{max-width:100%}
.bar{background:#0d1117;border:1px solid var(--line);border-radius:6px;height:10px;min-width:90px;overflow:hidden}
.bar span{display:block;height:100%;background:linear-gradient(90deg,var(--acc),var(--good))}
.chips{display:flex;flex-wrap:wrap;gap:.35rem;margin:.5rem 0 .8rem}
.chip{font-size:.8rem;background:#0d1117;border:1px solid var(--line);border-radius:8px;padding:.15rem .45rem;color:var(--muted)}
.chip b{color:var(--text)}.chip.max{border-color:#1f6f3a}.chip.max b{color:var(--good)}
details{margin:.4rem 0}summary{cursor:pointer;padding:.3rem 0;font-weight:600}
td.wrap{white-space:normal;min-width:14rem}
.pct-hi{color:var(--good)}.pct-mid{color:var(--acc)}.pct-lo{color:var(--bad)}
.formula{background:#0d1117;border:1px solid var(--line);border-radius:10px;padding:.8rem;font-size:.85rem;overflow-x:auto}
.formula code{color:var(--acc)}
.timeline{list-style:none;padding:0;margin:0}.timeline li{padding:.45rem 0;border-bottom:1px solid var(--line)}
.filters select{background:#0d1117;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:.3rem .5rem;margin-left:.3rem}

/* ===================== game-dashboard theme ===================== */
:root{--bg:#0a0e14;--card:#121821;--card2:#171f2b;--line:#253040;--gold:#f5c542;--gold2:#c8962b}
body{background:radial-gradient(1200px 600px at 10% -10%,#1b2a44 0,transparent 60%),radial-gradient(900px 500px at 110% 0,#2a1d3f 0,transparent 55%),var(--bg);background-attachment:fixed}
.top{background:linear-gradient(180deg,#141c28f2,#0e141cf2);border-bottom:1px solid #2c3a4f;box-shadow:0 2px 12px #0008}
.brand{display:flex;align-items:center;gap:.45rem;color:var(--gold);font-weight:800;letter-spacing:.03em;text-shadow:0 1px 0 #000}
.brand img{filter:drop-shadow(0 1px 2px #000)}
nav a.on{background:linear-gradient(180deg,#2a3546,#1e2734);color:var(--gold);box-shadow:inset 0 -2px 0 var(--gold2)}
.card{background:linear-gradient(180deg,var(--card2),var(--card));border:1px solid var(--line);box-shadow:0 4px 18px #0006,inset 0 1px 0 #ffffff08}
h1,h2{font-weight:800;letter-spacing:.01em}h2{color:#f0e6c8}
.kpis div{background:linear-gradient(180deg,#0f151e,#0b1017);border-color:#2a3647}
.kpis b{color:#fff}.kpis .lg{display:flex;align-items:center;gap:.5rem}
.clan-id{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.clan-hero h1{font-size:1.9rem;color:#fff;text-shadow:0 2px 0 #000}
.badge-img,.league-img,.thi{object-fit:contain;vertical-align:middle;filter:drop-shadow(0 1px 1px #000a)}
.thi{margin-right:.15rem}.thn{font-size:.75rem;color:var(--muted);margin-left:.1rem}
.fb-chip{display:inline-block;font-size:.7rem;font-weight:700;padding:.05rem .35rem;border-radius:6px;background:#2d2252;color:var(--purple)}
.fb-badge{display:inline-grid;place-items:center;border-radius:50%;background:#253040;color:var(--muted);font-size:.65rem;font-weight:700;vertical-align:middle}
.labels{display:flex;gap:.3rem;margin:.4rem 0}
.vs{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}
.vs-head{display:flex;align-items:center;gap:.8rem;margin-bottom:.4rem}.vs-x{font-weight:900;color:var(--gold);font-size:1.3rem;text-shadow:0 2px 0 #000}
.league-line{display:flex;align-items:center;gap:.4rem;margin:.3rem 0 0;color:#d6dde6}
.th-big{display:flex;flex-direction:column;align-items:center;font-weight:800;color:var(--gold);font-size:.8rem}
.nowrap{white-space:nowrap}
/* unit tiles */
.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:.45rem;margin:.6rem 0 1rem}
.tile{position:relative;display:inline-grid;place-items:center;width:58px;height:58px;border-radius:10px;
  background:linear-gradient(180deg,#2a3a55,#1a2333);border:1px solid #33445e;box-shadow:inset 0 1px 0 #ffffff14,0 2px 4px #0007}
.tile img{object-fit:contain;width:48px;height:48px}
.tile.max{background:linear-gradient(180deg,#5a4510,#2c220a);border-color:var(--gold2);box-shadow:0 0 0 1px #f5c54255,inset 0 1px 0 #ffffff22}
.tile .lvl{position:absolute;right:2px;bottom:1px;font-size:.72rem;font-weight:800;color:#fff;background:#000b;border-radius:5px;padding:0 .25rem;line-height:1.25}
.tile.max .lvl{color:#1a1200;background:var(--gold)}
.tile-fb{display:grid;place-items:center;font-size:.72rem;font-weight:800;color:#c9d4e3;background:#253246;border-radius:8px;text-align:center}
.hc-eq .tile{width:40px;height:40px;border-radius:8px}.hc-eq .tile img{width:34px;height:34px}.hc-eq .tile .lvl{font-size:.65rem}
.tile.mini{width:30px;height:30px;border-radius:7px}.tile.mini img{width:26px;height:26px}.tile.mini .lvl{font-size:.6rem;right:0;bottom:0}
.mini-heroes{display:inline-flex;gap:.2rem;vertical-align:middle;margin-right:.3rem}
/* hero cards */
.hero-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.7rem;margin:.6rem 0 1rem}
.hero-card{display:flex;gap:.7rem;padding:.6rem;border-radius:12px;background:linear-gradient(135deg,#1d2940,#121a27);border:1px solid #31425c;box-shadow:0 3px 10px #0007}
.hero-card.maxed{border-color:var(--gold2);background:linear-gradient(135deg,#3b2e0e,#151a24 70%)}
.portrait{flex:0 0 96px;height:96px;border-radius:10px;background:radial-gradient(circle at 50% 35%,#3d5b8a,#151e2e 70%);display:grid;place-items:center;overflow:hidden}
.portrait img{width:96px;height:96px;object-fit:contain}
.hc-body{flex:1;min-width:0}.hc-name{font-weight:800;color:#fff}.hc-lvl b{font-size:1.4rem;color:var(--gold)}.hc-lvl span{color:var(--muted);margin-left:.2rem}
.hc-eq{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:.45rem}
.hero-th img{display:inline-block;object-fit:contain;filter:drop-shadow(0 1px 2px #000)}.hero-th{text-align:center}
footer .fcp{max-width:720px;margin:.5rem auto;color:#7d8794;font-size:.75rem}footer .credit{font-size:.72rem;color:#6b7480}
.login-fcp{max-width:340px;text-align:center;color:#7d8794;font-size:.72rem}
.login-body{display:flex;flex-direction:column;justify-content:center}
@media (max-width:600px){.hero-grid{grid-template-columns:1fr}.clan-hero h1{font-size:1.45rem}.icon-grid{grid-template-columns:repeat(auto-fill,minmax(52px,1fr))}
  .tile{width:52px;height:52px}.tile img{width:42px;height:42px}.vs-head .badge-img{width:44px;height:44px}}
@media (max-width:800px){.brand{display:flex}.brand span{display:none}}
.kpis .lg{grid-column:span 2}.kpis .lg b{white-space:nowrap}
/* raid medals */
.badge.warn{background:#3b2f0b;color:#f0b429}.badge.good{background:#12361f;color:var(--good)}.badge.bad{background:#3a1d1d;color:#ff9a92}
.medals{color:#f0b429}
table.breakdown{max-width:640px}table.breakdown td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
table.breakdown tr.total td{border-top:2px solid #30363d;font-size:1.05rem}

/* ===================== v3: accounts, public pages, mobile ===================== */
html,body{max-width:100%;overflow-x:hidden}
img{max-width:100%;height:auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.logo{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:linear-gradient(180deg,#f5c542,#c8962b);color:#1a1200;font-size:1.05rem}
.whoami{margin:0 0 .6rem;text-align:right}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;min-height:44px;padding:.5rem 1rem;border:0;border-radius:10px;
  background:var(--gold,#f0b429);color:#1a1200;font-weight:700;font-size:.95rem;cursor:pointer;text-decoration:none;line-height:1.1}
.btn:hover{text-decoration:none;filter:brightness(1.07)}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
.btn.danger{background:#5a1d1d;color:#ffb4ad}
.btn.small{min-height:36px;padding:.3rem .7rem;font-size:.85rem}
.btn.big{min-height:50px;padding:.7rem 1.4rem;font-size:1.05rem}
.btn.wide{width:100%}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.cta{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}
.note{border-color:#1f6f3a !important;background:#0f1f15 !important}
.center{text-align:center}
/* forms */
.form{display:flex;flex-direction:column;gap:.85rem}
.form.narrow,.narrow{max-width:440px;margin:1.5rem auto}
.form label{display:flex;flex-direction:column;gap:.35rem;color:var(--muted);font-size:.9rem}
.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form select{
  width:100%;min-height:46px;background:#0b1017;border:1px solid #33445e;color:var(--text);border-radius:10px;padding:.6rem .75rem;font-size:16px}
.form input:focus,.form select:focus{outline:2px solid var(--gold2,#c8962b);outline-offset:1px}
.form label.check{flex-direction:row;align-items:flex-start;gap:.6rem;color:var(--text);font-size:.9rem;min-height:44px}
.form label.check input{width:22px;height:22px;margin:.1rem 0 0;flex:0 0 22px}
.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.8rem}
.copy{display:flex;gap:.5rem}.copy input{flex:1;min-width:0;min-height:44px;background:#0b1017;border:1px solid #33445e;color:var(--text);border-radius:10px;padding:.5rem;font-size:16px}
td.actions{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}td.actions form{margin:0}
h3{font-size:1rem;margin:1.2rem 0 .6rem}
.steps li,.how li{margin:.4rem 0}
/* public pages */
.top.pub{justify-content:space-between}
.pub-actions{display:flex;gap:.5rem}
.pub-main{max-width:1000px}
.landing-hero{text-align:center;padding:2.5rem 0 1.5rem}
.landing-hero h1{font-size:2.4rem;line-height:1.15;color:#fff;text-shadow:0 2px 0 #000}
.lead{font-size:1.1rem;color:#d6dde6;max-width:44rem;margin:.8rem auto}
.landing-hero .cta{justify-content:center}
.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1rem}
.features .card{margin:0}.features p{color:#c9d1d9;margin:0}
/* clan switcher */
.switcher{margin:0}.switcher select{min-height:40px;max-width:180px;background:#0b1017;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:.3rem .5rem;font-size:16px}
.logout button{min-height:40px;font-size:.85rem}
/* charts */
.chart-box{position:relative;width:100%;height:260px}
.chart-toggles{display:flex;flex-wrap:wrap;gap:.4rem;margin:.2rem 0 .7rem}
.chip-btn{--c:#8b949e;min-height:44px;padding:.35rem .8rem;border-radius:999px;border:1px solid var(--line);background:#0b1017;color:var(--muted);font-size:.85rem;cursor:pointer}
.chip-btn.on{border-color:var(--c);color:#fff;box-shadow:inset 0 0 0 1px var(--c);background:#141c28}
.chip-btn::before{content:"";display:inline-block;width:.6rem;height:.6rem;border-radius:50%;background:var(--c);margin-right:.4rem;vertical-align:1px}
/* tables: sticky first column inside their own scroll container */
.tablewrap{position:relative;max-width:calc(100% + 2rem)}
.tablewrap table th:first-child,.tablewrap table td:first-child{position:sticky;left:0;z-index:1;background:#141b26}
.tablewrap table thead th:first-child{z-index:2}
.basic-note{margin:-.4rem 0 1rem}
/* nav: compact menu on phones */
.menu-btn{display:none}
@media (max-width:900px){
  .top{flex-wrap:wrap;gap:.5rem;padding:.5rem .75rem}
  .brand{flex:1;min-width:0;min-height:44px}.brand span{display:inline !important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .menu-btn{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0 11px;border:1px solid var(--line);border-radius:10px;background:#0b1017;cursor:pointer}
  .menu-btn span{display:block;height:2px;background:var(--text);border-radius:2px}
  #mainnav{display:none;flex-basis:100%;flex-direction:column;gap:.15rem;padding:.3rem 0 .5rem;max-height:calc(100vh - 70px);overflow-y:auto}
  #mainnav.open{display:flex}
  #mainnav a{display:flex;align-items:center;min-height:44px;padding:.5rem .8rem;font-size:1rem}
  .switcher select{max-width:none;width:100%;min-height:44px}
  .logout button{width:100%;min-height:44px}
}
@media (max-width:600px){
  body{font-size:15px}
  main{padding:.6rem}
  .card{padding:.85rem;border-radius:10px}
  .tablewrap{margin:0 -.85rem;padding:0 .85rem}
  th,td{padding:.6rem .55rem}
  td a{display:inline-block;padding:.35rem 0}
  .kpis{min-width:0;grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpis .lg{grid-column:span 2}
  .hero{flex-direction:column}
  .landing-hero h1{font-size:1.75rem}
  .lead{font-size:1rem}
  .pub-actions .btn{min-height:44px;padding:.45rem .8rem}
  .brand-name{font-size:.95rem}
  .chart-box{height:220px}
  .clan-id{gap:.6rem}.clan-id .badge-img{width:72px;height:72px}
  .th-big img{width:72px;height:72px}
  .portrait{flex-basis:72px;height:72px}.portrait img{width:72px;height:72px}
  .filters{gap:.6rem}
  .seg label{min-height:44px;display:inline-flex;align-items:center}
  .filters input[type=number],.filters select{min-height:44px;font-size:16px}
  .whoami{text-align:left}
  /* small admin/account tables collapse into cards */
  table.cards-sm thead{display:none}
  table.cards-sm,table.cards-sm tbody,table.cards-sm tr,table.cards-sm td{display:block;width:100%}
  table.cards-sm tr{border:1px solid var(--line);border-radius:10px;margin:0 0 .6rem;padding:.4rem .6rem;background:#0f151e}
  table.cards-sm td{border:0;white-space:normal;padding:.3rem 0;position:static !important;background:none !important}
  table.cards-sm td[data-label]::before{content:attr(data-label);display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.03em}
  table.cards-sm td.actions{justify-content:flex-start}
  .tablewrap:has(table.cards-sm){margin:0;padding:0}
}

/* ---------------------------------------------------------------- legal pages, FAQ */
.prose { line-height: 1.6; }
.prose h2 { margin-top: 1.4em; }
.prose > h2:first-child, .prose > h1:first-child { margin-top: 0; }
.prose h3 { margin: 1.2em 0 .4em; font-size: 1.05rem; }
.prose ul { padding-left: 1.2em; }
.prose li { margin: .35em 0; }
.prose code { font-size: .85em; background: #0b1017; padding: .1em .35em; border-radius: 4px; overflow-wrap: anywhere; }
.legal-page { max-width: 820px; margin: 0 auto; }
.legal-page h1 { margin-top: 0; }
.about, .faq { max-width: 1100px; margin-left: auto; margin-right: auto; }
.faq details { border-top: 1px solid #2a313c; padding: .2em 0; }
.faq details:first-of-type { border-top: 0; }
.faq summary { cursor: pointer; font-weight: 600; padding: .65em 0; min-height: 44px; display: flex; align-items: center; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before { content: "+"; display: inline-block; width: 1.3em; color: #f0b429; font-weight: 700; flex: none; }
.faq details[open] summary::before { content: "–"; }
.faq details p { margin: 0 0 .8em 1.3em; color: #c9d1d9; }
footer .legal { margin: .5em 0; }
footer .legal a { display: inline-block; padding: .35em .2em; }

/* ---------------------------------------------------------------- cookie banner */
.consent { position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 60; max-width: 720px; margin: 0 auto;
  background: #161c25; border: 1px solid #3a4452; border-radius: 12px; padding: 14px 16px; box-shadow: 0 8px 30px rgba(0,0,0,.5);
  display: flex; gap: 14px; align-items: center; padding-bottom: calc(14px + env(safe-area-inset-bottom)); }
.consent[hidden] { display: none; }
.consent p { margin: 0; font-size: .9rem; line-height: 1.45; flex: 1; }
.consent-btns { display: flex; gap: 8px; flex: none; }
.consent-btns .btn { min-height: 44px; min-width: 96px; }
@media (max-width: 560px) {
  .consent { flex-direction: column; align-items: stretch; left: 8px; right: 8px; bottom: 8px; }
  .consent-btns .btn { flex: 1; }
}

/* ---------------------------------------------------------------- ad slots (rendered only with ADSENSE_PUB_ID + slot ID) */
.ad-slot { display: block; margin: 14px auto; max-width: 100%; overflow: hidden; text-align: center; clear: both; contain: layout; }
.ad-slot[hidden] { display: none; }
.ad-slot .ad-label { display: block; font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; color: #6e7681; margin-bottom: 4px; }
.ad-slot ins { display: block; width: 100%; }
.ad-banner { min-height: 90px; max-width: 970px; }
.ad-incontent { min-height: 250px; max-width: 728px; }
@media (max-width: 560px) { .ad-banner { min-height: 100px; } .ad-incontent { min-height: 250px; } }
.ad-slot ins[data-ad-status="unfilled"] { display: none !important; }
/* crowded desktop nav (leader + admin links) */
#mainnav a, #mainnav .logout button { white-space: nowrap; }
@media (min-width: 901px) and (max-width: 1400px) { #mainnav a { padding-left: .5em; padding-right: .5em; font-size: .9rem; } }
/* test accounts (admin) */
.inline-select{display:inline-flex;gap:.3rem;align-items:center;margin:0 .3rem .3rem 0}.inline-select select{max-width:9rem}
.test-banner{border-left:4px solid var(--acc)}
/* clan settings: visibility matrix */
.vis-table{width:100%}.vis-table th[scope=row]{text-align:left;font-weight:400;white-space:normal}.vis-table th[scope=row] span{display:block;margin-top:.1rem}
.vis-table td{text-align:center;width:5.5rem}.vis-table thead th:not(:first-child){text-align:center}
.vis-box{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;cursor:pointer}
.vis-box input{width:22px;height:22px;margin:0;accent-color:var(--acc)}
@media (max-width:520px){.vis-table td{width:3.6rem}.vis-table th,.vis-table td{padding:.45rem .3rem}}
.vis-table th[scope=row]{text-transform:none;letter-spacing:normal;font-size:.92rem;color:inherit;position:static}
/* Sign in with Google (follows Google's light button: white, G logo, dark text) */
.sso{margin:.4rem 0 .2rem}
.btn-google{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;min-height:44px;padding:.55rem 1rem;border-radius:8px;
  background:#fff;color:#1f1f1f;border:1px solid #747775;font-weight:600;font-size:.95rem;text-decoration:none;font-family:inherit}
.btn-google:hover,.btn-google:focus-visible{background:#f2f2f2;text-decoration:none}
.or{display:flex;align-items:center;gap:.6rem;color:var(--muted);font-size:.8rem;margin:.9rem 0 .2rem}.or::before,.or::after{content:"";flex:1;border-top:1px solid var(--line)}
.signin-list{list-style:none;padding:0;margin:0}.signin-list li{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.6rem 0;border-bottom:1px solid var(--line)}
.signin-list li:last-child{border-bottom:0}.signin-list form{margin:0}
/* Getting-started guide */
.guide h2{margin-top:0}.guide.compact summary{cursor:pointer;list-style:none}.guide.compact summary h2{display:inline;font-size:1.05rem}
.guide.compact summary::before{content:"▸ ";color:var(--acc)}.guide.compact details[open] summary::before{content:"▾ "}
.gsteps{list-style:none;padding:0;margin:1rem 0;display:grid;gap:1rem}
.gstep{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:1rem;align-items:center;background:var(--card2,#171f2b);border:1px solid var(--line);border-radius:12px;padding:1rem}
.gtext h3{display:inline;margin:0;font-size:1.05rem;vertical-align:middle}.gtext .sub{margin:.6rem 0 0;padding-left:1.2rem}.gtext .sub li{margin:.3rem 0}
.gnum{display:inline-flex;align-items:center;justify-content:center;width:1.8rem;height:1.8rem;border-radius:50%;background:var(--acc);color:#1b1300;font-weight:800;margin-right:.5rem;vertical-align:middle}
.tip{margin:.7rem 0 0;padding:.5rem .7rem;border-left:3px solid var(--acc);background:#2a2410;border-radius:6px;font-size:.92rem}
.gfig{margin:0}.gfig figcaption{font-size:.75rem;color:var(--muted);margin-top:.35rem;text-align:center}
.mock{border:2px dashed #3b4a5e;border-radius:12px;background:repeating-linear-gradient(135deg,#0f1520,#0f1520 10px,#111925 10px,#111925 20px);padding:.8rem;font-size:.9rem}
.mock-profile,.mock-clan{display:flex;align-items:center;gap:.7rem}
.mp-xp{width:44px;height:44px;flex:none;border-radius:50%;background:radial-gradient(circle at 35% 30%,#7fc4ff,#2463b8);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:.85rem;border:2px solid #cfe6ff}
.mp-name{display:flex;flex-direction:column;min-width:0}.mp-tag{font-family:ui-monospace,Menlo,monospace;color:var(--acc);font-size:.88rem}
.mk-hl{font-style:normal;font-family:inherit;font-size:.72rem;background:#2d2252;color:var(--purple);border-radius:999px;padding:.05rem .4rem;margin-left:.3rem;white-space:nowrap}
.ms-head{font-weight:700;margin-bottom:.4rem}.ms-btn{display:inline-block;background:#2b6e2f;color:#fff;border-radius:8px;padding:.25rem .7rem;font-weight:700;margin-bottom:.5rem}
.ms-row{display:flex;align-items:center;gap:.4rem;padding:.3rem 0;border-top:1px solid #253040;flex-wrap:wrap}.ms-row span:first-child{flex:1}
.ms-pill{background:#3a4658;border-radius:6px;padding:.1rem .5rem;font-weight:700;font-size:.8rem}.ms-pill.hl{background:var(--acc);color:#1b1300}.ms-arrow{color:var(--muted)}
.mock-form label{display:block;font-size:.78rem;color:var(--muted);margin-bottom:.4rem}.mf-in{display:block;background:#0b1018;border:1px solid #2a313c;border-radius:6px;padding:.3rem .5rem;color:var(--text);font-family:ui-monospace,Menlo,monospace}
.mf-btn{display:block;text-align:center;background:var(--acc);color:#1b1300;border-radius:8px;padding:.35rem;font-weight:700}
.gextra{margin:1rem 0}.gextra h3{margin-top:0}
.trouble dt{font-weight:700;margin-top:.7rem}.trouble dd{margin:.2rem 0 0 0;color:var(--muted)}
@media (max-width:640px){.gstep{grid-template-columns:1fr;padding:.85rem}.gfig{max-width:340px}}

/* ===================== awards ===================== */
@property --aw-ang{syntax:"<angle>";inherits:false;initial-value:0deg}
.aw{--s:48px;--a1:#fff3b0;--a2:#f2bf2e;--a3:#8c5e05;--a4:#ffe17a99;position:relative;display:inline-grid;place-items:center;flex:0 0 auto;
  width:var(--s);height:var(--s);border-radius:50%;vertical-align:middle;overflow:hidden;
  background:radial-gradient(circle at 34% 26%,var(--a1) 0,var(--a2) 52%,var(--a3) 100%);
  box-shadow:inset 0 0 0 max(1.5px,calc(var(--s)*.05)) var(--a4),inset 0 calc(var(--s)*-.07) calc(var(--s)*.14) #0006,0 2px 6px #000a}
.aw img{width:66%;height:66%;object-fit:contain;filter:drop-shadow(0 2px 1px #000a);position:relative;z-index:1}
.aw-bronze{--a1:#f8cfa6;--a2:#c47a3d;--a3:#5e2f10;--a4:#f0b27a88}
.aw-silver{--a1:#ffffff;--a2:#b4bec9;--a3:#4c5561;--a4:#eef3f8aa}
.aw-gold{--a1:#fff5b8;--a2:#f2bf2e;--a3:#835603;--a4:#ffe58899}
.aw-legendary{--a1:#ffd9ff;--a2:#a84dff;--a3:#28094f;--a4:transparent;border:max(1.5px,calc(var(--s)*.065)) solid transparent;
  background:radial-gradient(circle at 34% 26%,var(--a1) 0,var(--a2) 52%,var(--a3) 100%) padding-box,
    conic-gradient(from var(--aw-ang),#ff6ad5,#ffd23f,#5ee0ff,#a84dff,#ff6ad5) border-box;
  box-shadow:inset 0 calc(var(--s)*-.07) calc(var(--s)*.14) #0006,0 0 calc(var(--s)*.25) #c56bff77,0 2px 6px #000a;animation:aw-ring 6s linear infinite}
.aw-legendary::after{content:"";position:absolute;inset:0;border-radius:50%;z-index:2;pointer-events:none;
  background:linear-gradient(115deg,transparent 38%,#ffffffb0 50%,transparent 62%);background-size:260% 100%;animation:aw-shine 3.6s ease-in-out infinite}
.aw-gold::after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;z-index:2;background:linear-gradient(160deg,#ffffff40,transparent 45%)}
.aw-mini.aw-legendary::after{display:none}
@keyframes aw-ring{to{--aw-ang:360deg}}
@keyframes aw-shine{0%{background-position:160% 0}55%,100%{background-position:-110% 0}}
@media (prefers-reduced-motion:reduce){.aw-legendary,.aw-legendary::after{animation:none}.aw-tile{transition:none}}
.aw-t-bronze{--tc:#d08a4e}.aw-t-silver{--tc:#c3ccd6}.aw-t-gold{--tc:#f2bf2e}.aw-t-legendary{--tc:#d38bff}
.aw-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;margin-bottom:.6rem}.aw-head h1,.aw-head h2{margin:0}
.aw-flash{margin:0 0 .7rem;padding:.5rem .7rem;border-radius:10px;background:#0f1f15;border:1px solid #1f6f3a;color:#bfe9c8}
/* shelf */
.aw-card{border-color:#3a3220;background:linear-gradient(180deg,#1d1a12,var(--card) 60%)}
.aw-shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:.6rem}
.aw-tile{position:relative;width:100%;display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.75rem .4rem .6rem;border-radius:14px;
  background:linear-gradient(180deg,#1c2535,#111821);border:1px solid var(--line);color:var(--text);cursor:pointer;font:inherit;text-align:center;
  transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.aw-tile:hover,.aw-tile[aria-expanded=true],.aw-tile:focus-visible{transform:translateY(-2px);border-color:var(--tc);box-shadow:0 6px 18px -8px var(--tc)}
.aw-tile:focus-visible{outline:2px solid var(--tc);outline-offset:2px}
.aw-tile.pinned{border-color:var(--tc);box-shadow:inset 0 0 0 1px var(--tc),0 0 18px -8px var(--tc)}
.aw-label{font-weight:800;font-size:.86rem;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;color:#fff}
.aw-sub{font-size:.66rem;color:var(--tc);text-transform:uppercase;letter-spacing:.05em;font-weight:800;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aw-pin{position:absolute;top:6px;right:9px;color:var(--gold);font-size:.9rem;text-shadow:0 1px 0 #000}
.aw-detail{display:flex;gap:1rem;align-items:flex-start;margin-top:.8rem;padding:.9rem;border-radius:12px;border:1px solid var(--tc,var(--line));background:#0c121a}
.aw-detail[hidden]{display:none}
.aw-d-body{flex:1;min-width:0}.aw-detail h3{margin:0 0 .35rem;font-size:1.15rem;color:#fff;overflow-wrap:anywhere}
.aw-note{font-style:italic;color:#d6dde6;margin:.4rem 0;overflow-wrap:anywhere}
.aw-tierchip{display:inline-block;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:.1rem .45rem;border-radius:999px;border:1px solid var(--tc);color:var(--tc);vertical-align:2px}
.aw-chips{display:flex;flex-wrap:wrap;gap:.3rem;margin:0;align-items:center}
.aw-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.6rem}.aw-actions form,.aw-fi-act form,.aw-tpls form{margin:0}
/* table minis */
.aw-minis{display:inline-flex;align-items:center;gap:2px;margin-left:.35rem;vertical-align:middle}.aw-minis:hover{text-decoration:none}
.aw-more{font-size:.7rem;color:var(--muted);font-weight:800;margin-left:2px}
/* hall of fame */
.aw-hof-hero{background:radial-gradient(600px 200px at 0 0,#3a2d0b55,transparent 70%),linear-gradient(180deg,var(--card2),var(--card))}
.aw-hof-hero .filters{margin:.4rem 0 0}
.aw-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin-bottom:1rem;align-items:end}
.aw-pod{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.9rem .5rem;border-radius:14px;border:1px solid var(--line);color:var(--text);text-align:center;
  background:linear-gradient(180deg,#1c2535,#111821)}
.aw-pod:hover{text-decoration:none;border-color:var(--gold2)}
.aw-pod-1{order:2;padding-top:1.4rem;border-color:#8c6a16;background:linear-gradient(180deg,#3a2d0b,#141a22)}.aw-pod-2{order:1}.aw-pod-3{order:3}
.aw-pod-rank{font-size:1.8rem;line-height:1}.aw-pod-name{font-weight:800;color:#fff;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aw-pod-badges{display:flex;gap:.2rem;justify-content:center;flex-wrap:wrap}.aw-pod-n{font-size:.8rem;color:var(--muted)}.aw-pod-n b{color:var(--gold);font-size:1rem}
.aw-hof-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:1rem;margin-bottom:1rem}.aw-hof-grid>.card{margin-bottom:0}
.aw-feed{list-style:none;margin:0;padding:0}
.aw-feed-item{display:flex;gap:.75rem;align-items:flex-start;padding:.75rem 0;border-bottom:1px solid var(--line)}.aw-feed-item:last-child{border-bottom:0}
.aw-fi-body{flex:1;min-width:0}.aw-fi-label{font-size:1rem;color:#fff;overflow-wrap:anywhere}.aw-fi-top{margin-bottom:.15rem}
.aw-fi-act{display:flex;gap:.35rem;flex-wrap:wrap}
.aw-dot{display:inline-block;min-width:1.3rem;text-align:center;font-size:.7rem;font-weight:800;border-radius:999px;padding:0 .3rem;border:1px solid var(--tc);color:var(--tc)}
.aw-board-badges{display:flex;gap:3px}
.aw-tpls{list-style:none;margin:0;padding:0}.aw-tpls li{display:flex;align-items:center;gap:.6rem;padding:.45rem 0;border-bottom:1px solid var(--line)}
.aw-tpl-label{flex:1;min-width:0;font-weight:700;overflow-wrap:anywhere}
/* give / edit form */
.aw-errs{border:1px solid #6e2b2b;background:#2a1414;color:#ffc2bd;border-radius:10px;padding:.6rem .8rem}.aw-errs ul{margin:.3rem 0 0;padding-left:1.1rem}
.aw-give{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:1.3rem;align-items:start}
.aw-give-main{display:flex;flex-direction:column;gap:.95rem;min-width:0}
.aw-form fieldset{border:0;padding:0;margin:0;min-width:0}.aw-form legend{color:var(--muted);font-size:.9rem;margin-bottom:.4rem;padding:0}
.form textarea{background:#0b1017;border:1px solid #33445e;color:var(--text);border-radius:10px;padding:.6rem;font:inherit;font-size:16px;resize:vertical;min-height:80px}
.form textarea:focus{outline:2px solid var(--gold2,#c8962b);outline-offset:1px}
.aw-count{align-self:flex-end;font-variant-numeric:tabular-nums}
.aw-quick{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.aw-qchip{display:inline-flex;align-items:center;gap:.35rem;min-height:36px;padding:.2rem .65rem .2rem .25rem;border-radius:999px;border:1px solid var(--tc);color:var(--text);font-size:.82rem;background:#0d131c}
.aw-qchip:hover{text-decoration:none;background:#1a2230}
.aw-gal-tools{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}
.aw-form input[type=search]{flex:1 1 220px;min-height:44px;background:#0b1017;border:1px solid #33445e;color:var(--text);border-radius:10px;padding:.5rem .7rem;font-size:16px}
.aw-cats{display:flex;gap:.3rem;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;padding-bottom:2px}
.aw-cat{min-height:38px;padding:.25rem .75rem;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--muted);white-space:nowrap;cursor:pointer;font:inherit;font-size:.82rem}
.aw-cat.on{background:#2a3546;color:var(--gold);border-color:var(--gold2)}
.aw-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.35rem;max-height:360px;overflow-y:auto;padding:.35rem;border:1px solid var(--line);border-radius:12px;background:#0a0f16}
.form label.aw-opt{position:relative;display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.5rem .2rem .4rem;border-radius:10px;border:2px solid transparent;
  cursor:pointer;color:#d6dde6;font-size:.7rem;text-align:center;line-height:1.1}
.form label.aw-opt[hidden]{display:none}
.form label.aw-opt:hover{background:#151d29}
.aw-opt input,.aw-tier-opt input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.form label.aw-opt:has(input:checked){border-color:var(--gold);background:#2a2410;color:#fff}
.aw-opt:has(input:focus-visible),.aw-tier-opt:has(input:focus-visible){outline:2px solid var(--blue);outline-offset:1px}
.aw-tiers{display:flex;flex-wrap:wrap;gap:.45rem}
.form label.aw-tier-opt{position:relative;flex-direction:row;align-items:center;gap:.45rem;padding:.35rem .8rem .35rem .45rem;min-height:44px;border:2px solid var(--line);border-radius:999px;cursor:pointer;color:var(--text);font-weight:700;font-size:.88rem}
.form label.aw-tier-opt:has(input:checked){border-color:var(--tc);background:#ffffff0d;color:var(--tc)}
.aw-preview-wrap{position:sticky;top:76px}
.aw-preview{border:1px solid var(--line);border-radius:14px;padding:.9rem;background:radial-gradient(260px 160px at 50% 0,#2a3a5566,transparent 70%),#0c121a;text-align:center}
.aw-prev-h{margin:0 0 .6rem;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.aw-prev-tile{cursor:default;max-width:170px;margin:0 auto}.aw-prev-tile .aw-label{font-size:1rem}
.aw-prev-row{display:flex;align-items:center;justify-content:center;gap:.35rem;margin:.6rem 0 0}.aw-prev-name{color:var(--blue)}
@media (max-width:900px){.aw-hof-grid{grid-template-columns:1fr}}
@media (max-width:800px){.aw-give{grid-template-columns:1fr}.aw-preview-wrap{position:static;order:-1}.aw-preview{display:grid;grid-template-columns:auto 1fr;gap:.2rem .8rem;text-align:left;align-items:center}
  .aw-prev-h{grid-column:1/-1;margin:0}.aw-prev-tile{max-width:130px;margin:0}.aw-prev-tile .aw{--s:64px !important}.aw-prev-row{justify-content:flex-start;margin:0}}
@media (max-width:600px){.aw-shelf{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.45rem}.aw-tile{padding:.6rem .3rem .5rem}.aw-tile .aw{--s:54px !important}
  .aw-detail{gap:.7rem;padding:.75rem}.aw-detail>.aw{--s:56px !important}
  .aw-podium{gap:.4rem}.aw-pod{padding:.7rem .3rem}.aw-pod-1{padding-top:1rem}.aw-pod .aw{--s:30px !important}.aw-pod-name{font-size:.85rem}
  .aw-feed-item{flex-wrap:wrap}.aw-fi-act{width:100%;padding-left:calc(52px + .75rem)}
  .aw-gallery{grid-template-columns:repeat(auto-fill,minmax(70px,1fr));max-height:300px}.aw-gallery .aw{--s:46px !important}}
