[hidden]{display:none !important}
/* ===== Divona theme =====
   Change these to match your branding exactly. */
:root{
  --bg:#0f130e; --bg2:#141912; --panel:#171d15; --panel2:#1e261c; --line:#2a3327; --line2:#3a4636; 
  --text:#ece6d8; --muted:#9a9a86; --dim:#666b5c;
  --olive:#2f3a2c;         /* Divona logo green */
  --accent:#b8995e;        /* Divona logo gold */
  --accent-2:color-mix(in srgb,var(--accent) 50%,#000);
  --gold:#d2b77c;          /* rank / currency highlight */
  --gold-d:#7a6538;
  --pos:#9bb174; --red:#c8604a; --discord:#5865F2;
  --r:6px;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 "IBM Plex Sans",system-ui,sans-serif}
body{min-height:100vh;background:
  radial-gradient(ellipse at 15% -20%,rgba(47,58,44,.9),transparent 55%),
  radial-gradient(ellipse at 100% 0,rgba(184,153,94,.07),transparent 45%),
  var(--bg)}
a{color:var(--accent)}
h1,h2,h3{margin:0}
.display{font-family:Jost,sans-serif;letter-spacing:.08em}
h1{font:700 26px Rajdhani,sans-serif;letter-spacing:.06em;text-transform:uppercase}
h2{font:700 18px Rajdhani,sans-serif;letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px}
h3{font:700 19px Rajdhani,sans-serif;letter-spacing:.03em}
.mono{font-family:"IBM Plex Mono",monospace}
.boot{display:grid;place-items:center;min-height:100vh;color:var(--muted)}

/* header */
header{position:sticky;top:0;z-index:20;background:rgba(11,14,13,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.bar{max-width:1160px;margin:0 auto;padding:10px 22px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text)}
.brand .logo{width:40px;height:40px;object-fit:contain}
.brand b{display:block;font:600 21px Jost,sans-serif;letter-spacing:.16em;line-height:1}
.brand small{display:block;font:600 10px Rajdhani,sans-serif;letter-spacing:.3em;color:var(--muted);text-transform:uppercase;margin-top:3px}
nav{display:flex;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.tab{white-space:nowrap;padding:7px 12px;color:var(--muted);text-decoration:none;font:600 15px Rajdhani,sans-serif;letter-spacing:.08em;text-transform:uppercase;border-bottom:2px solid transparent}
.tab:hover{color:var(--text)}
.tab.on{color:var(--text);border-bottom-color:var(--accent)}
.me{white-space:nowrap;display:flex;align-items:center;gap:10px;font-size:13px}
.me img{width:30px;height:30px;border-radius:50%;border:1px solid var(--line2)}
.me .who{line-height:1.2}
.me .who b{display:block;font-size:14px}
.me .who span{color:var(--gold);font-family:"IBM Plex Mono",monospace;font-size:12px}
main{max-width:1160px;margin:0 auto;padding:26px 22px 70px}
footer{border-top:1px solid var(--line);color:var(--dim);font-size:12px;text-align:center;padding:18px;letter-spacing:.2em;text-transform:uppercase;font-family:Rajdhani,sans-serif}

/* hero */
.hero-banner{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:10px;padding:28px 30px;margin-bottom:24px;
  background:linear-gradient(120deg,rgba(47,58,44,.95),rgba(20,26,23,.6) 45%,rgba(184,153,94,.10)),var(--panel)}
.hero-banner::before{content:"";position:absolute;right:30px;top:50%;transform:translateY(-50%);width:200px;height:200px;background:url(/logo.png) center/contain no-repeat;opacity:.13}
.hero-banner::after{content:"";position:absolute;right:-60px;top:-60px;width:280px;height:280px;border:1px solid rgba(184,153,94,.18);border-radius:50%;box-shadow:0 0 0 30px rgba(184,153,94,.04),0 0 0 60px rgba(184,153,94,.025)}
.hero-banner .kicker{font:600 12px Rajdhani,sans-serif;letter-spacing:.3em;color:var(--gold);text-transform:uppercase}
.hero-banner .title{font:600 30px Jost,sans-serif;letter-spacing:.06em;margin:6px 0 4px}
.hero-banner .sub{max-width:620px}
.hero-banner .next{display:flex;gap:26px;flex-wrap:wrap;margin-top:16px;position:relative;z-index:1}
.kv .k{font:700 11px Rajdhani,sans-serif;letter-spacing:.2em;color:var(--muted);text-transform:uppercase}
.kv .v{font:500 18px "IBM Plex Mono",monospace}

/* generic */
.view-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.sub{color:var(--muted);font-size:14px}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.seg{display:inline-flex;border:1px solid var(--line2);border-radius:var(--r);overflow:hidden}
.seg button{background:none;border:0;color:var(--muted);padding:6px 14px;font:600 14px Rajdhani,sans-serif;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.seg button.on{background:var(--panel2);color:var(--text)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line2);background:var(--panel2);color:var(--text);padding:7px 14px;border-radius:var(--r);font:700 14px Rajdhani,sans-serif;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;text-decoration:none}
.btn:hover{border-color:var(--muted)}
.btn.pri{background:var(--accent);border-color:var(--accent);color:#17130a}
.btn.pri:hover{filter:brightness(1.1)}
.btn.gold{background:var(--gold);border-color:var(--gold);color:#1a1405}
.btn.warn{color:var(--red);border-color:#5c3027;background:transparent}
.btn.ghost{background:transparent}
.btn.sm{padding:4px 10px;font-size:12px}
.btn.discord{background:var(--discord);border-color:var(--discord);color:#fff;font-size:16px;padding:12px 22px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:18px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}
.empty{color:var(--muted);text-align:center;padding:54px 20px;border:1px dashed var(--line2);border-radius:8px}
.tag{display:inline-block;font:700 11px Rajdhani,sans-serif;letter-spacing:.1em;text-transform:uppercase;padding:2px 8px;border-radius:3px;border:1px solid var(--line2);color:var(--muted)}
.tag.ok{color:var(--accent);border-color:var(--accent-2)}
.tag.gold{color:var(--gold);border-color:var(--gold-d)}
.tag.x{color:var(--dim)}
.rank{font:500 11px "IBM Plex Mono",monospace;color:var(--gold);border:1px solid var(--gold-d);padding:1px 6px;border-radius:3px;white-space:nowrap}

/* missions */
.mission{display:flex;flex-direction:column;gap:10px;border-top:3px solid var(--accent)}
.mission.complete{border-top-color:var(--gold)}
.mission.cancelled{border-top-color:var(--dim);opacity:.7}
.mhead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.when{font:500 13px "IBM Plex Mono",monospace;color:var(--accent)}
.mission.complete .when{color:var(--gold)}
.desc{color:#c9d1cb;font-size:14px;white-space:pre-wrap;max-height:9.5em;overflow:hidden;position:relative}
.desc.long::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2.5em;background:linear-gradient(transparent,var(--panel))}
.more{background:none;border:0;color:var(--accent);padding:0;font-size:13px;cursor:pointer;text-align:left}
.stats{display:flex;gap:18px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.stats b{color:var(--text);font:500 14px "IBM Plex Mono",monospace}
.bar-fill{height:4px;background:var(--line);border-radius:2px;overflow:hidden}
.bar-fill i{display:block;height:100%;background:var(--accent)}
.people{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;background:var(--panel2);border:1px solid var(--line);padding:2px 9px 2px 2px;border-radius:20px;color:#d0d7d2}
.chip img{width:20px;height:20px;border-radius:50%}
.chip i{font-style:normal;color:var(--gold);font:500 10px "IBM Plex Mono",monospace}
.chip.me{border-color:var(--accent-2)}
.actions{display:flex;gap:6px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:auto}

/* tables */
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font:700 12px Rajdhani,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:9px 12px;border-bottom:1px solid var(--line2)}
td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
tr.click{cursor:pointer}
tr.click:hover td{background:rgba(255,255,255,.02)}
tr.mine td{background:rgba(184,153,94,.07)}
td.num,th.num{text-align:right;font-family:"IBM Plex Mono",monospace}
.person{display:flex;align-items:center;gap:10px}
.person img{width:30px;height:30px;border-radius:50%}
.person small{display:block;color:var(--dim);font-size:12px}
.pos{color:var(--pos)} .neg{color:var(--red)}

/* profile */
.prof{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:16px;margin-bottom:16px}
.idcard{display:flex;gap:18px;align-items:center}
.idcard img{width:84px;height:84px;border-radius:8px;border:2px solid var(--gold-d)}
.callsign{font:700 30px Rajdhani,sans-serif;letter-spacing:.06em;text-transform:uppercase;line-height:1.1}
.big{font:500 34px "IBM Plex Mono",monospace;line-height:1.1}
.label{font:700 11px Rajdhani,sans-serif;letter-spacing:.2em;color:var(--muted);text-transform:uppercase}
.ladder{display:flex;flex-wrap:wrap;gap:5px;margin-top:14px}
.ladder span{font:500 11px "IBM Plex Mono",monospace;padding:3px 7px;border-radius:3px;background:var(--panel2);color:var(--dim);border:1px solid var(--line)}
.ladder span.done{color:var(--muted);border-color:var(--line2)}
.ladder span.cur{color:#1a1405;background:var(--gold);border-color:var(--gold);font-weight:600}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.li{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.li:last-child{border-bottom:0}

/* login */
.login{min-height:100vh;display:grid;place-items:center;padding:30px;text-align:center}
.login .crest{width:240px;max-width:70vw;height:auto;margin-bottom:18px}
.login h1{font:600 54px Jost,sans-serif;letter-spacing:.2em;margin:0}
.login .tag-line{font:600 14px Rajdhani,sans-serif;letter-spacing:.45em;color:var(--gold);text-transform:uppercase;margin:6px 0 2px}
.login .irish{color:var(--muted);font-style:italic;letter-spacing:.15em;font-size:13px;margin-bottom:30px}
.login .box{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:28px;max-width:420px;margin:0 auto}
.login .note{font-size:13px;color:var(--muted);margin-top:14px}
.alert{background:#2a1a14;border:1px solid #5c3027;color:#f1c7b8;padding:10px 14px;border-radius:var(--r);font-size:14px;margin-bottom:16px}

/* modal */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;z-index:50;overflow:auto}
.modal.hidden{display:none}
.mbox{background:var(--panel);border:1px solid var(--line2);border-radius:10px;width:100%;max-width:540px;padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.6)}
.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}
.field label{font:700 12px Rajdhani,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.hint{font-size:12px;color:var(--dim)}
input,select,textarea{background:var(--bg);border:1px solid var(--line2);color:var(--text);border-radius:var(--r);padding:8px 10px;font:14px "IBM Plex Sans",sans-serif;width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}
input[type=checkbox]{width:auto}
textarea{min-height:100px;resize:vertical}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.checks{max-height:300px;overflow:auto;border:1px solid var(--line);border-radius:var(--r);padding:6px 10px}
.checks label{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:14px;cursor:pointer;text-transform:none;letter-spacing:0;font-family:"IBM Plex Sans",sans-serif;color:var(--text)}
.mfoot{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--panel2);border:1px solid var(--line2);padding:10px 18px;border-radius:var(--r);font-size:14px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:60}
#toast.show{opacity:1}
#toast.err{border-color:#5c3027;color:#f1c7b8}

@media (max-width:780px){
  .prof,.two,.f2{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr}
  nav{order:3;flex-basis:100%;overflow:auto}
  .login h1{font-size:40px}
  .hero-banner .title{font-size:24px}
}

/* multi-game */
.rank.none{color:var(--dim);border-color:var(--line2)}
.tag.g{color:var(--text);border-color:var(--line2);background:var(--panel2);font-size:10px;padding:1px 6px;vertical-align:1px}
.rankgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:16px}
.rankcard{border-top:3px solid var(--accent)}
.rankcard.off{border-top-color:var(--line2)}
.rk{display:flex;align-items:center;gap:12px;margin-top:10px}
.rank.big-r{font-size:15px;padding:4px 10px}
.rkname{font:700 22px Rajdhani,sans-serif;letter-spacing:.04em;text-transform:uppercase}
.f3{display:grid;grid-template-columns:2fr 1fr 1.3fr;gap:10px}
.games-ed{display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr));gap:16px}
@media (max-width:780px){.f3{grid-template-columns:1fr}.games-ed{grid-template-columns:1fr}}

/* ===== portal ===== */
.muted{color:var(--muted)}
.sec-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:30px 0 14px}
.sec-head h2{margin:0;font-size:20px}
.portal-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding:30px 32px;border:1px solid var(--line);border-radius:12px;position:relative;overflow:hidden;
  background:radial-gradient(ellipse at 85% 50%,rgba(184,153,94,.16),transparent 55%),linear-gradient(120deg,rgba(47,58,44,.95),rgba(23,29,21,.8)),var(--panel)}
.portal-hero::after{content:"";position:absolute;right:-30px;top:50%;transform:translateY(-50%);width:300px;height:300px;background:url(/logo.png) center/contain no-repeat;opacity:.08;pointer-events:none}
.portal-hero .kicker{font:600 12px Rajdhani,sans-serif;letter-spacing:.3em;color:var(--accent);text-transform:uppercase}
.welcome{font:600 34px Jost,sans-serif;letter-spacing:.03em;text-transform:none;margin:6px 0 4px}
.ph-stats{display:flex;gap:34px;position:relative;z-index:1}
.kv .v.big{font:500 30px "IBM Plex Mono",monospace}
.divgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px}
.divcard{display:flex;flex-direction:column;gap:16px;padding:22px;border-radius:12px;text-decoration:none;color:var(--text);border:1px solid var(--line);position:relative;overflow:hidden;transition:transform .15s,border-color .15s;
  background:linear-gradient(150deg,color-mix(in srgb,var(--accent) 16%,transparent),transparent 60%),var(--panel)}
.divcard::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--accent)}
.divcard:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 60%,transparent)}
.dc-top{display:flex;gap:14px;align-items:center}
.dc-name{font:600 22px Jost,sans-serif;letter-spacing:.06em;text-transform:uppercase;line-height:1.1}
.dglyph{display:inline-grid;place-items:center;width:40px;height:40px;color:var(--accent)}
.dglyph svg{width:100%;height:100%}
.dglyph.big{width:54px;height:54px;padding:8px;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:10px;background:color-mix(in srgb,var(--accent) 10%,transparent)}
.dc-stats{display:flex;gap:22px;flex-wrap:wrap}
.dc-stats .v{font-size:16px;font-family:Rajdhani,sans-serif;font-weight:700;letter-spacing:.04em}
.dc-stats .v.mono{font-family:"IBM Plex Mono",monospace;font-weight:500}
.dc-next{border-top:1px dashed var(--line2);padding-top:12px}
.dc-next .k{font:700 11px Rajdhani,sans-serif;letter-spacing:.2em;color:var(--accent);text-transform:uppercase;margin-bottom:2px}
.dc-enter{margin-top:auto;font:700 14px Rajdhani,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.dc-enter span{display:inline-block;transition:transform .15s}
.divcard:hover .dc-enter span{transform:translateX(4px)}

/* news on portal */
.news-front{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}
.news-lead{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel);text-decoration:none;color:var(--text)}
.nl-img{aspect-ratio:16/8;background:center/cover no-repeat var(--panel2)}
.nl-img.noimg{display:grid;place-items:center;background:radial-gradient(circle,rgba(184,153,94,.12),transparent 70%),var(--olive)}
.nl-img.noimg img{width:110px;opacity:.6}
.nl-body{padding:18px 20px}
.nl-body h3{font:600 24px Jost,sans-serif;margin:6px 0 8px;line-height:1.2}
.nl-body p{margin:0;color:#c9cbbd;font-size:14px}
.news-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:6px 18px}
.news-item{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--text)}
.news-item:last-child{border-bottom:0}
.news-item b{font:600 17px Jost,sans-serif;line-height:1.25;display:block;margin-top:3px}
.news-item:hover b,.news-lead:hover h3,.news-card:hover h3{color:var(--accent)}
.ni-img{flex:none;width:78px;height:58px;border-radius:6px;background:center/cover no-repeat var(--panel2)}
.nmeta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font:600 11px Rajdhani,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.ncat{color:var(--accent)}

/* news page */
.masthead{text-align:center;margin:6px 0 26px}
.mh-rule{height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.6}
.mh-title{font:600 42px Jost,sans-serif;letter-spacing:.16em;text-transform:uppercase;margin:14px 0 2px}
.mh-sub{font:600 12px Rajdhani,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}
.news-card{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel);text-decoration:none;color:var(--text);display:flex;flex-direction:column}
.nc-img{aspect-ratio:16/9;background:center/cover no-repeat var(--panel2)}
.nc-body{padding:16px 18px}
.nc-body h3{font:600 20px Jost,sans-serif;margin:6px 0;line-height:1.25}
.nc-body p{margin:0;color:#c9cbbd;font-size:14px}
.article{max-width:760px;margin:0 auto}
.a-title{font:600 42px Jost,sans-serif;letter-spacing:.01em;text-transform:none;line-height:1.15;margin:10px 0 12px}
.a-lead{font-size:19px;color:#d7d4c4;line-height:1.5;margin:0 0 22px;border-left:3px solid var(--accent);padding-left:14px}
.a-img{width:100%;border-radius:10px;margin-bottom:24px;border:1px solid var(--line)}
.a-body{font-size:17px;line-height:1.75;color:#dedbd0}
.a-body p{margin:0 0 1.1em}
.a-body h3{font:600 23px Jost,sans-serif;margin:1.6em 0 .5em;color:var(--text)}
.a-body blockquote{margin:1.4em 0;padding:4px 20px;border-left:3px solid var(--accent);color:var(--gold);font-style:italic;font-size:19px}
.a-body hr{border:0;height:1px;background:var(--line2);margin:2em 0}
.a-end{display:flex;align-items:center;gap:10px;justify-content:center;margin:40px 0 10px;color:var(--muted);font:600 12px Rajdhani,sans-serif;letter-spacing:.24em;text-transform:uppercase}
.a-end img{width:26px;opacity:.8}
.img-prev{width:180px;height:100px;border-radius:6px;border:1px dashed var(--line2);background:center/cover no-repeat var(--bg);display:grid;place-items:center;color:var(--dim);font-size:12px;flex:none}
.mbox.wide{max-width:760px}

/* ===== divisions ===== */
body.division{background:radial-gradient(ellipse at 15% -20%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 55%),var(--bg)}
body.division header{border-bottom-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
.back{flex:none}
.brand .dglyph{width:34px;height:34px}
body.division .hero-banner{background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 22%,transparent),rgba(20,26,23,.6) 50%),var(--panel)}
body.division .hero-banner::before{display:none}
body.division .hero-banner .kicker{color:var(--accent)}
.hb-glyph{position:absolute;right:40px;top:50%;transform:translateY(-50%);width:170px;height:170px;color:var(--accent);opacity:.13}
.hb-glyph svg{width:100%;height:100%}
body.division .rank{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 55%,#000)}
body.division .ladder span.cur{background:var(--accent);border-color:var(--accent)}
body.division .when,body.division .mission.complete .when{color:var(--accent)}
body.division .mission.complete{border-top-color:var(--gold)}
.gamecard{border-top:3px solid var(--accent)}
.gamecard input[type=color]{height:38px;padding:3px;cursor:pointer}

@media (max-width:860px){.news-front{grid-template-columns:1fr}.welcome{font-size:26px}.a-title{font-size:30px}.mh-title{font-size:28px}.hb-glyph{display:none}}
.news-list{align-self:start}
body.division .hero-banner::after{border-color:color-mix(in srgb,var(--accent) 22%,transparent);box-shadow:0 0 0 30px color-mix(in srgb,var(--accent) 4%,transparent),0 0 0 60px color-mix(in srgb,var(--accent) 2%,transparent)}

.dc-game{font:700 11px Rajdhani,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:var(--accent)}
.dc-top{position:relative}
.dc-top>div{flex:1}
.dc-status{align-self:flex-start;font:700 11px Rajdhani,sans-serif;letter-spacing:.14em;text-transform:uppercase;padding:3px 9px;border-radius:20px;border:1px solid var(--line2);color:var(--muted);white-space:nowrap}
.dc-status.in{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 50%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.dc-invite{color:var(--muted);font-size:14px;line-height:1.5;padding:10px 12px;border:1px dashed var(--line2);border-radius:8px}
.divcard.not-member{background:var(--panel)}
.divcard.not-member .dglyph.big{filter:grayscale(.6);opacity:.75}
.divcard.not-member::before{opacity:.45}

/* ===== mission cards: extras ===== */
.m-thumb{display:block;height:120px;margin:-18px -18px 4px;border-radius:7px 7px 0 0;background:center/cover no-repeat var(--panel2);position:relative;border-bottom:1px solid var(--line)}
.m-thumb span{position:absolute;left:10px;bottom:8px;font:700 10px Rajdhani,sans-serif;letter-spacing:.2em;text-transform:uppercase;background:rgba(0,0,0,.6);padding:2px 7px;border-radius:3px;color:var(--text)}
.mission .m-thumb + .mhead{margin-top:6px}
.mtitle{color:inherit;text-decoration:none}
.mtitle:hover{color:var(--accent)}
.badges{font:500 10px "IBM Plex Mono",monospace;color:var(--muted);text-transform:none;letter-spacing:0}

/* ===== mission briefing page ===== */
.op-head{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:12px;padding:26px 30px;margin-bottom:18px;border-top:3px solid var(--accent);
  background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 18%,transparent),transparent 60%),var(--panel)}
.op-head.complete{border-top-color:var(--gold)} .op-head.cancelled{opacity:.75;border-top-color:var(--dim)}
.op-head .kicker{font:600 12px Rajdhani,sans-serif;letter-spacing:.26em;text-transform:uppercase;color:var(--accent)}
.op-title{font:600 36px Jost,sans-serif;letter-spacing:.02em;text-transform:none;margin:6px 0 14px;line-height:1.15}
.op-head .next{display:flex;gap:28px;flex-wrap:wrap}
.op-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.op-main{display:flex;flex-direction:column;gap:18px;min-width:0}
.op-side{position:sticky;top:80px}
.sec-label{display:flex;align-items:center;gap:10px;font:700 13px Rajdhani,sans-serif;letter-spacing:.2em;text-transform:uppercase;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.sec-label span{font:500 11px "IBM Plex Mono",monospace;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);padding:1px 6px;border-radius:3px}
.sec-label em{margin-left:auto;font:700 10px Rajdhani,sans-serif;letter-spacing:.2em;color:var(--red);border:1px solid #5c3027;padding:2px 8px;border-radius:3px;font-style:normal}
.brief-body{font-size:15.5px;line-height:1.7}
.brief-body h3{font-size:18px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:1.4em 0 .4em}
.brief-body h3:first-child{margin-top:0}
.op-map{margin:0;cursor:zoom-in}
.op-map img{display:block;width:100%;border-radius:8px;border:1px solid var(--line2)}
.op-map figcaption,.intel-item figcaption{font-size:13px;color:#c9cbbd;margin-top:8px}
.intel-sec{background:repeating-linear-gradient(135deg,transparent 0 14px,rgba(200,96,74,.025) 14px 28px),var(--panel)}
.intel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.intel-item{margin:0;cursor:zoom-in}
.ii-img{aspect-ratio:4/3;border-radius:6px;background:center/cover no-repeat var(--bg);border:1px solid var(--line2);transition:border-color .15s}
.intel-item:hover .ii-img{border-color:var(--accent)}
.intel-item .mono{color:var(--accent);font-size:11px}
.rgroup{margin-bottom:12px}
.rg-head{display:flex;justify-content:space-between;font:700 12px Rajdhani,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.rg-head b{font:500 12px "IBM Plex Mono",monospace;color:var(--text)}
.open-slot{border:1px dashed var(--line2);border-radius:6px;padding:6px 10px;font-size:12px}
.plist{display:flex;flex-direction:column;gap:4px}
.pers{display:flex;align-items:center;gap:9px;padding:5px 8px;border-radius:6px;text-decoration:none;color:var(--text);background:var(--panel2);border:1px solid transparent}
.pers:hover{border-color:var(--line2)}
.pers.me{border-color:color-mix(in srgb,var(--accent) 50%,transparent)}
.pers img{width:24px;height:24px;border-radius:50%}
.pers span{font-size:13px;line-height:1.2}
.pers i{font:500 10px "IBM Plex Mono",monospace;color:var(--accent);font-style:normal}
.pers small{display:block;color:var(--muted);font-size:11px}

/* ===== mission editor ===== */
.ftabs{display:flex;gap:2px;border-bottom:1px solid var(--line2);margin:-4px 0 16px}
.ftabs button{background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:8px 14px;font:700 13px Rajdhani,sans-serif;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.ftabs button.on{color:var(--text);border-bottom-color:var(--accent)}
.map-prev{height:260px;border:1px dashed var(--line2);border-radius:8px;background:center/contain no-repeat var(--bg);display:grid;place-items:center;color:var(--dim);font-size:13px}
label.btn{cursor:pointer}
.intel-ed{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow:auto}
.ie-row{display:grid;grid-template-columns:96px 1fr auto;gap:10px;align-items:center;padding:6px;border:1px solid var(--line);border-radius:6px;background:var(--panel2)}
.ie-img{height:64px;border-radius:4px;background:center/cover no-repeat var(--bg)}
.mbox.xl{max-width:min(1400px,96vw)}
.lightbox img{display:block;max-width:100%;max-height:78vh;margin:0 auto;border-radius:6px}
.lb-cap{text-align:center;color:#c9cbbd;margin-top:10px;font-size:14px}
.btn[hidden]{display:none}
@media (max-width:980px){.op-grid{grid-template-columns:1fr}.op-side{position:static}.op-title{font-size:28px}}

.chip{text-decoration:none}
.grid{align-items:start}
.mission .actions .btn:first-child{flex-basis:100%;justify-content:space-between}

/* ===== roles, qualifications, profile ===== */
.me-link{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;padding:3px 8px 3px 3px;border-radius:24px}
.me-link:hover{background:var(--panel2)}
.role-badge{display:inline-flex;align-items:center;font:700 11px Rajdhani,sans-serif;letter-spacing:.12em;text-transform:uppercase;padding:2px 9px;border-radius:20px;color:var(--rc);border:1px solid color-mix(in srgb,var(--rc) 55%,transparent);background:color-mix(in srgb,var(--rc) 12%,transparent);white-space:nowrap}
.profile-card{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.pdivs{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.pdiv{display:flex;gap:14px;align-items:center;padding:16px 18px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;background:var(--panel);text-decoration:none;color:var(--text)}
.pdiv.off{border-left-color:var(--line2);opacity:.75}
.pdiv b{font:700 18px Rajdhani,sans-serif;letter-spacing:.04em;text-transform:uppercase}
.quals{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.qual{position:relative;display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel2)}
.q-badge{flex:none;display:grid;place-items:center;min-width:46px;height:46px;padding:0 6px;border-radius:50%;font:600 12px "IBM Plex Mono",monospace;color:var(--qc,var(--gold));border:2px solid var(--qc,var(--gold));background:color-mix(in srgb,var(--qc,var(--gold)) 12%,transparent)}
.q-body b{display:block;font-size:15px}
.q-note{font-size:12px;color:#c9cbbd;margin-top:4px;font-style:italic}
.q-x{position:absolute;top:8px;right:8px;padding:1px 6px}
/* training */
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.tcard{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:10px;background:var(--panel);text-decoration:none;color:var(--text)}
.tcard:hover h3{color:var(--accent)}
.tcard h3{font:600 19px Jost,sans-serif;margin:2px 0}
.tcard p{margin:0;color:#c9cbbd;font-size:14px}
.t-qual{margin-top:auto;font-size:12px;color:var(--muted);padding-top:8px;border-top:1px dashed var(--line2)}
.t-qual b{color:var(--gold)}
.t-qual.have b,.t-qual.have{color:var(--pos)}
.t-qual.tq-big{display:flex;gap:14px;align-items:center;font-size:15px;padding:14px;border:1px solid var(--line2);border-radius:10px;background:var(--panel);margin:0 0 22px}
.files{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}
.file{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line2);border-radius:8px;background:var(--panel);text-decoration:none;color:var(--text)}
.file:hover{border-color:var(--accent)}
.file span:nth-child(2){flex:1}
.f-ic{display:inline-grid;place-items:center;width:38px;height:44px;border-radius:4px;background:#5c2a22;color:#f1c7b8;font:700 11px "IBM Plex Mono",monospace;letter-spacing:.05em}
.ie-img.f-ic.big{width:auto;height:64px;font-size:14px}
/* command editors */
.role-ed{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.roleed{padding:14px}
.perm-checks{display:flex;flex-direction:column;gap:4px;margin-top:10px}
.perm-checks label{display:flex;gap:8px;align-items:center;font-size:14px;cursor:pointer}
.qd-head,.qd-row{display:grid;grid-template-columns:1.3fr 90px 120px 2fr 38px;gap:8px;align-items:center}
.qd-head{font:700 11px Rajdhani,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:4px 0 8px}
.qd-row{margin-bottom:6px}
@media (max-width:780px){.qd-head{display:none}.qd-row{grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);padding-bottom:8px}}
input[type=color]{height:38px;padding:3px;cursor:pointer}

/* training centre tabs */
.ttabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-bottom:22px}
.ttab{display:flex;gap:14px;align-items:center;padding:16px 18px;border:1px solid var(--line);border-radius:10px;background:var(--panel);text-decoration:none;color:var(--muted);transition:border-color .15s}
.ttab b{display:block;font:600 19px Jost,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:var(--text)}
.ttab small{font-size:12px}
.ttab .dglyph{opacity:.6}
.ttab:hover{border-color:var(--line2)}
.ttab.on{border-color:var(--accent);background:linear-gradient(140deg,color-mix(in srgb,var(--accent) 18%,transparent),transparent 70%),var(--panel);box-shadow:inset 0 -3px 0 var(--accent)}
.ttab.on .dglyph{opacity:1}
.tlayout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:22px;align-items:start}
.tcats{position:sticky;top:80px;display:flex;flex-direction:column;gap:2px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.tcat{display:flex;justify-content:space-between;align-items:center;background:none;border:0;border-left:2px solid transparent;color:var(--muted);padding:8px 10px;font:600 15px Rajdhani,sans-serif;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;text-align:left;border-radius:0 6px 6px 0}
.tcat b{font:500 12px "IBM Plex Mono",monospace;color:var(--dim)}
.tcat:hover{color:var(--text);background:var(--panel2)}
.tcat.on{color:var(--text);border-left-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.tcat.on b{color:var(--accent)}
.tcat.empty-cat span{opacity:.6}
.tlayout .tcard{border-top-color:var(--accent)}
.tlayout .ncat{color:var(--accent)}
@media (max-width:860px){.tlayout{grid-template-columns:1fr}.tcats{position:static;flex-direction:row;flex-wrap:wrap}.tcat{border-left:0;border-bottom:2px solid transparent;border-radius:6px}.tcat.on{border-bottom-color:var(--accent)}}

/* guests */
.guest-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 16px;margin-bottom:18px;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:10px;background:color-mix(in srgb,var(--accent) 10%,var(--panel));font-size:14px}
.g-intro{color:#d7d4c4;font-size:16px;line-height:1.6;margin:6px 0 0}
.guest-hero .welcome{font-size:38px}
.me .btn + .btn{margin-left:4px}

/* ===== Command Centre map ===== */
body.mapview main{max-width:1560px}
.bs-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap;margin-bottom:14px}
.bs-head .kicker{font:600 12px Rajdhani,sans-serif;letter-spacing:.3em;text-transform:uppercase;color:var(--accent)}
.bs-head h1{font:600 34px Jost,sans-serif;letter-spacing:.12em}
.bs-stats{display:flex;gap:26px;align-items:center;flex-wrap:wrap}
.bs-stats .v{font:500 22px "IBM Plex Mono",monospace}
.bs-wrap{display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px;align-items:stretch}
.bs-side{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow:hidden;max-height:74vh}
.bs-filters{display:flex;flex-wrap:wrap;gap:4px;padding:10px;border-bottom:1px solid var(--line)}
.bs-filters button{display:inline-flex;align-items:center;gap:6px;background:var(--panel2);border:1px solid var(--line);color:var(--muted);border-radius:20px;padding:3px 10px;font:600 12px Rajdhani,sans-serif;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.bs-filters button i{width:8px;height:8px;border-radius:50%;background:var(--hc)}
.bs-filters button b{font:500 11px "IBM Plex Mono",monospace;color:var(--dim)}
.bs-filters button.on{color:var(--text);border-color:var(--accent)}
.bs-list{overflow:auto;flex:1}
.bs-item{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--text);border-left:3px solid transparent}
.bs-item:hover{background:var(--panel2)}
.bs-item.on{background:color-mix(in srgb,var(--hc) 12%,transparent);border-left-color:var(--hc)}
.bs-item .dot{width:10px;height:10px;border-radius:50%;background:var(--hc);box-shadow:0 0 8px var(--hc)}
.bs-item b{display:block;font-size:14px}
.bs-item small{color:var(--muted);font-size:12px}
.thr{font-size:9px;letter-spacing:1px;color:var(--dim)}
.thr.t1,.thr-txt.t1{color:#7fae6a}.thr.t2,.thr-txt.t2{color:#a9b45c}.thr.t3,.thr-txt.t3{color:#d6b04c}.thr.t4,.thr-txt.t4{color:#e0803c}.thr.t5,.thr-txt.t5{color:#e2513c}
.bs-map{position:relative;height:74vh;min-height:460px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#070a09}
.bs-svg{display:block;width:100%;height:100%;cursor:grab}
.bs-svg:active{cursor:grabbing}
.bs-sphere{fill:#0a1418;stroke:#24352f;stroke-width:1}
.bs-grat{fill:none;stroke:rgba(127,166,196,.09);stroke-width:.5;vector-effect:non-scaling-stroke}
.bs-land{fill:#1d2a1f;stroke:#3a4a3b;stroke-width:.5;vector-effect:non-scaling-stroke;transition:fill .15s}
.bs-land:hover{fill:#26362a}
.bs-pin .core{fill:var(--hc);stroke:#0a0d0c;stroke-width:1.5}
.bs-pin .pulse{display:none;fill:none;stroke:var(--hc);stroke-width:1.5;opacity:0;transform-box:fill-box;transform-origin:center}
.bs-pin.pulsing .pulse{display:block;animation:hsPulse 2.4s ease-out infinite}
.bs-pin.pulsing .core{animation:hsCore 2.4s ease-in-out infinite}
@keyframes hsCore{0%,100%{opacity:1}50%{opacity:.65}}
.bs-pin .pulse.p2{animation-delay:1.3s}
.bs-pin.resolved .pulse{display:none}
.bs-pin.resolved .core{opacity:.55}
@keyframes hsPulse{0%{transform:scale(.4);opacity:.9}100%{transform:scale(2.4);opacity:0}}
.bs-pin .lbl{font:600 11px Rajdhani,sans-serif;letter-spacing:.08em;text-transform:uppercase;fill:#e9e4d4;paint-order:stroke;stroke:#070a09;stroke-width:3px;opacity:0;pointer-events:none;transition:opacity .2s}
.bs-pins.labels .lbl,.bs-pin:hover .lbl,.bs-pin.on .lbl{opacity:1}
.bs-pin.on .core{stroke:#fff;stroke-width:2}
.bs-loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted)}
.bs-hud{position:absolute;padding:4px 10px;border-radius:4px;background:rgba(7,10,9,.75);border:1px solid var(--line);font-size:12px;color:var(--muted);pointer-events:none}
.bs-hud.tl{left:12px;top:12px}
.bs-zoom{position:absolute;left:12px;bottom:46px;display:flex;flex-direction:column;gap:4px}
.bs-zoom button{width:32px;height:32px;border-radius:6px;border:1px solid var(--line2);background:rgba(20,26,23,.9);color:var(--text);font-size:17px;cursor:pointer}
.bs-zoom button:hover{border-color:var(--accent)}
.bs-legend{position:absolute;left:12px;bottom:10px;max-width:calc(100% - 24px);display:flex;flex-wrap:wrap;gap:12px;font-size:11px;color:var(--muted);background:rgba(7,10,9,.75);padding:4px 10px;border-radius:4px;border:1px solid var(--line)}
.bs-legend span{display:inline-flex;align-items:center;gap:5px}
.bs-legend i{width:8px;height:8px;border-radius:50%;background:var(--hc)}
.bs-tip{position:absolute;pointer-events:none;background:rgba(20,26,23,.95);border:1px solid var(--line2);border-radius:4px;padding:3px 8px;font-size:12px;white-space:nowrap;z-index:3}
.bs-note{position:absolute;right:12px;top:12px;pointer-events:none;max-width:50%;font-size:11px;color:var(--dim);background:rgba(7,10,9,.75);padding:4px 8px;border-radius:4px}
.bs-placing{position:absolute;left:50%;top:12px;transform:translateX(-50%);display:flex;gap:12px;align-items:center;padding:8px 10px 8px 16px;border-radius:30px;background:var(--accent);color:#17130a;font-size:14px;z-index:4;box-shadow:0 6px 24px rgba(0,0,0,.5)}
.bs-placing .btn{background:rgba(0,0,0,.2);border-color:transparent;color:#17130a}
/* hotspot panel */
.hs-panel{position:absolute;top:12px;right:12px;bottom:12px;width:min(420px,calc(100% - 24px));display:flex;flex-direction:column;background:rgba(20,26,23,.97);border:1px solid var(--line2);border-top:3px solid var(--hc);border-radius:10px;box-shadow:0 18px 50px rgba(0,0,0,.55);z-index:5;overflow:hidden}
.hp-head{display:flex;justify-content:space-between;gap:10px;padding:16px 16px 10px}
.hp-type{display:flex;align-items:center;gap:6px;font:700 11px Rajdhani,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--hc)}
.hp-type i{width:8px;height:8px;border-radius:50%;background:var(--hc);box-shadow:0 0 8px var(--hc)}
.hp-head h2{font:600 24px Jost,sans-serif;letter-spacing:.02em;text-transform:none;margin:4px 0 0;line-height:1.15}
.hp-threat{display:flex;align-items:center;gap:10px;padding:0 16px 12px;font:700 11px Rajdhani,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.hp-threat div{display:flex;gap:3px}
.hp-threat i{width:22px;height:6px;border-radius:2px;background:var(--line2)}
.hp-threat i.on.t1{background:#7fae6a}.hp-threat i.on.t2{background:#a9b45c}.hp-threat i.on.t3{background:#d6b04c}.hp-threat i.on.t4{background:#e0803c}.hp-threat i.on.t5{background:#e2513c}
.hp-tabs{display:flex;border-bottom:1px solid var(--line2);padding:0 8px;overflow-x:auto;flex:none}
.hp-tabs button{background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:9px 8px;font:700 12px Rajdhani,sans-serif;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;white-space:nowrap}
.hp-tabs button b{font:500 10px "IBM Plex Mono",monospace;color:var(--hc);margin-left:2px}
.hp-tabs button.on{color:var(--text);border-bottom-color:var(--hc)}
.hp-body-wrap{flex:1;overflow:auto;padding:16px}
.hp-img{aspect-ratio:16/8;border-radius:8px;background:center/cover no-repeat var(--bg);margin-bottom:14px;cursor:zoom-in;border:1px solid var(--line)}
.hp-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-bottom:14px}
.hp-facts span{display:block;font:700 10px Rajdhani,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.hp-facts b{font-size:14px}
.hp-facts b.mono{font-size:12px;font-weight:500}
.hp-sum{font-size:15px;color:#ded9c8;line-height:1.55;margin:0 0 12px;border-left:3px solid var(--hc);padding-left:12px}
.hp-body{font-size:14.5px;line-height:1.65}
.hp-body h3{font-size:16px;text-transform:uppercase;letter-spacing:.08em;color:var(--hc)}
.hp-news,.hp-op{display:flex;gap:12px;padding:10px;border:1px solid var(--line);border-radius:8px;margin-bottom:8px;text-decoration:none;color:var(--text);background:var(--panel2)}
.hp-news:hover,.hp-op:hover{border-color:var(--hc)}
.hp-news b,.hp-op b{display:block;font-size:14px;margin-top:2px}
.hp-news small,.hp-op small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.hp-op .dglyph{width:30px;height:30px;flex:none}
.hp-intel{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hp-tl{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--line2)}
.hp-tl li{position:relative;padding:0 0 16px 12px}
.hp-tl li::before{content:"";position:absolute;left:-21px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--hc);box-shadow:0 0 0 3px var(--panel)}
.hp-tl span{font-size:11px;color:var(--hc)}
.hp-tl p{margin:3px 0 0;font-size:14px;color:#d7d4c4}
.tl-row{display:grid;grid-template-columns:130px 1fr auto;gap:8px;align-items:start;margin-bottom:8px}
.tl-row textarea{min-height:52px}
.map-links{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.map-links a{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border:1px solid color-mix(in srgb,var(--hc) 50%,transparent);border-radius:20px;background:color-mix(in srgb,var(--hc) 10%,transparent);text-decoration:none;color:var(--text);font-size:13px}
.map-links i{width:8px;height:8px;border-radius:50%;background:var(--hc);box-shadow:0 0 6px var(--hc)}
.map-links span{color:var(--muted);font-size:12px}
@media (max-width:980px){
  .bs-wrap{grid-template-columns:1fr}
  .bs-side{order:2;max-height:none}
  .bs-map{height:62vh}
  .hs-panel{top:auto;left:8px;right:8px;width:auto;height:62%}
  .bs-legend{display:none}
}

.bs-legend .pl i{animation:lgPulse 1.8s ease-in-out infinite}
.bs-legend .lg-thr i{background:transparent;border:1.5px solid #e2513c}
@keyframes lgPulse{0%,100%{box-shadow:0 0 0 0 var(--hc,#e2513c)}50%{box-shadow:0 0 0 4px transparent}}
.lg-edit{background:none;border:0;border-left:1px solid var(--line2);padding:0 0 0 10px;color:var(--accent);font:600 11px "IBM Plex Sans",sans-serif;cursor:pointer}
.key-head,.key-row{display:grid;grid-template-columns:52px 1fr 56px 40px 38px;gap:8px;align-items:center}
.key-head{font:700 11px Rajdhani,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-bottom:6px}
.key-row{margin-bottom:6px}
.kp{display:flex;align-items:center;gap:6px;cursor:pointer}
.kdot i{display:block;width:10px;height:10px;border-radius:50%;background:var(--hc)}
.kdot.pl i{animation:lgPulse 1.8s ease-in-out infinite}
.key-row .btn:disabled{opacity:.3}

/* SOPs and demonstrations */
.a-body ul{margin:0 0 1.1em;padding-left:1.3em}
.a-body li{margin:.25em 0}
.tag.demo{color:#e0a54c;border-color:#7a5a2a}
.demo-toggle{margin:4px 0 12px;gap:8px}
.demo-flag{border:1px solid #7a5a2a;background:rgba(224,165,76,.08);color:#ecd9b3;border-radius:8px;padding:10px 14px;margin:0 0 22px;font-size:14px}
.demo-flag a{color:#e0a54c}
.demo-guide{margin:34px 0 10px;border:1px solid #7a5a2a;border-top:3px solid #e0a54c;border-radius:10px;padding:20px 22px;background:linear-gradient(160deg,rgba(224,165,76,.08),transparent 60%),var(--panel)}
.dg-head span{font:700 11px Rajdhani,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:#e0a54c}
.dg-head h2{font:600 24px Jost,sans-serif;text-transform:none;letter-spacing:.02em;margin:2px 0 12px}
.demo-guide ul{list-style:none;padding-left:0}
.demo-guide li{position:relative;padding-left:28px;margin:.5em 0}
.demo-guide li::before{content:"";position:absolute;left:0;top:.2em;width:16px;height:16px;border:1.5px solid #e0a54c;border-radius:3px}
.sj-row{display:grid;grid-template-columns:auto 1fr 30px 38px;gap:8px;align-items:center;margin-bottom:6px}

/* nav dropdown */
.tab-group{position:relative;display:flex}
.tab-group>.tab{background:none;border:0;border-bottom:2px solid transparent;cursor:pointer}
.tab-group.on>.tab{color:var(--text);border-bottom-color:var(--accent)}
.caret{font-size:10px;opacity:.7}
.tab-menu{display:none;position:absolute;top:100%;left:0;min-width:240px;margin-top:6px;padding:6px;background:var(--panel);border:1px solid var(--line2);border-radius:10px;box-shadow:0 14px 40px rgba(0,0,0,.5);z-index:30}
.tab-group:hover .tab-menu,.tab-group.open .tab-menu,.tab-group:focus-within .tab-menu{display:block}
.tab-group::after{content:"";position:absolute;left:0;right:0;top:100%;height:8px}
.tab-menu a{display:block;padding:9px 12px;border-radius:7px;text-decoration:none;color:var(--text)}
.tab-menu a:hover,.tab-menu a.on{background:var(--panel2)}
.tab-menu a.on b{color:var(--accent)}
.tab-menu b{display:block;font:700 14px Rajdhani,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.tab-menu small{color:var(--muted);font-size:12px}
nav{overflow:visible}
/* leaderboard */
.lb{padding:16px 18px}
.lb-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(5,auto);grid-auto-flow:column;column-gap:24px}
.lb-list li{display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;padding:8px 6px;border-bottom:1px solid var(--line)}
.lb-list li.lb-me{background:color-mix(in srgb,var(--accent) 10%,transparent);border-radius:6px}
.lb-list a{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);min-width:0}
.lb-list a b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-list img{width:28px;height:28px;border-radius:50%;flex:none}
.lb-pos{font:600 15px "IBM Plex Mono",monospace;color:var(--muted);text-align:center}
.lb-list li.p1 .lb-pos{color:#e6c46a}.lb-list li.p2 .lb-pos{color:#c8ccd2}.lb-list li.p3 .lb-pos{color:#c98a5a}
.lb-list li.p1 img{box-shadow:0 0 0 2px #e6c46a}.lb-list li.p2 img{box-shadow:0 0 0 2px #c8ccd2}.lb-list li.p3 img{box-shadow:0 0 0 2px #c98a5a}
.lb-c{color:var(--gold)}
.lb-you{display:flex;justify-content:space-between;margin-top:10px;padding:8px 12px;border:1px dashed var(--line2);border-radius:6px;font-size:14px;color:var(--muted)}
@media (max-width:780px){.lb-list{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row}}
@media (max-width:780px){nav{flex-wrap:wrap}.tab-menu{left:auto;right:0}}

.tab-group>.tab{padding-right:4px}
.caret-btn{background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:7px 8px 7px 2px;font-size:11px;cursor:pointer}
.tab-group.on>.caret-btn{border-bottom-color:var(--accent);color:var(--text)}
.caret-btn:hover{color:var(--text)}

.me-role{font:700 10px Rajdhani,sans-serif;font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line2);border-radius:10px;padding:0 6px;margin-left:4px;vertical-align:2px}
.person .role-badge{font-size:10px;padding:1px 7px;vertical-align:1px}
/* long rank names wrap instead of pushing the card off narrow screens */
.rk{flex-wrap:wrap}
.prof>.card,.idcard>div{min-width:0}
.rkname{overflow-wrap:anywhere}

/* Operative Centre */
.pdiv{position:relative}
.pdiv-main{flex:1;text-decoration:none;color:inherit;min-width:0}
.pdiv.primary{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 55%,transparent);background:linear-gradient(140deg,color-mix(in srgb,var(--accent) 12%,transparent),transparent 70%),var(--panel)}
.prim-tag{font:700 10px Rajdhani,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);border-radius:12px;padding:2px 8px;white-space:nowrap}
.prim-line{display:inline-flex;align-items:center;gap:6px;margin-top:4px;text-decoration:none;color:var(--accent);font:700 13px Rajdhani,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.prim-line .dglyph{width:18px;height:18px}
.roster-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:14px;padding:16px 18px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;background:linear-gradient(140deg,color-mix(in srgb,var(--accent) 12%,transparent),transparent 70%),var(--panel)}
.roster-head .row{gap:22px;align-items:flex-end}
.roster-head .v{font-size:20px}
.roster-table .rk-head td{background:color-mix(in srgb,var(--accent) 7%,transparent);font:700 13px Rajdhani,sans-serif;letter-spacing:.1em;text-transform:uppercase;padding:7px 12px;border-bottom:1px solid var(--line2)}
.roster-table .rank{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 55%,#000)}
.qchips{display:flex;flex-wrap:wrap;gap:4px}
.qchips span{font:500 10px "IBM Plex Mono",monospace;color:var(--gold);border:1px solid var(--gold-d);border-radius:3px;padding:1px 5px}
.attached{display:flex;flex-wrap:wrap;gap:6px}
.attached small{font:700 10px Rajdhani,sans-serif;letter-spacing:.1em}
.wip{text-align:center;padding:34px 20px;border:1px dashed var(--line2);border-radius:12px;background:repeating-linear-gradient(135deg,transparent 0 16px,rgba(184,153,94,.04) 16px 32px),var(--panel);margin-bottom:18px}
.wip-badge{display:inline-block;font:700 11px Rajdhani,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:#17130a;background:var(--gold);padding:3px 12px;border-radius:12px;margin-bottom:10px}
.wip h2{text-transform:none;font:600 24px Jost,sans-serif;letter-spacing:.02em;margin:0 0 6px}
.wip p{max-width:560px;margin:0 auto}
.arm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.arm-card{display:flex;flex-direction:column;gap:4px;padding:18px;border:1px solid var(--line);border-radius:10px;background:var(--panel);opacity:.65}
.arm-card b{font:700 17px Rajdhani,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.arm-lock{font-size:18px;filter:grayscale(1)}
@media (max-width:640px){.roster-table th:nth-child(3),.roster-table td:nth-child(3){display:none}#rosterSearch{width:100%!important}}

/* avatar picker */
.av-edit{position:relative;padding:0;border:0;background:none;cursor:pointer;border-radius:8px;flex:none}
.av-edit img{display:block}
.av-edit span{position:absolute;inset:auto 0 0 0;padding:3px 0;font:700 10px Rajdhani,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#17130a;background:var(--gold);border-radius:0 0 7px 7px;opacity:0;transition:opacity .15s}
.av-edit:hover span,.av-edit:focus-visible span{opacity:1}
.av-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px;max-height:62vh;overflow:auto;padding:2px}
.av-opt{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--muted);cursor:pointer;font:600 12px Rajdhani,sans-serif;letter-spacing:.04em;text-transform:uppercase;text-align:center;line-height:1.2}
.av-opt img{width:78px;height:78px;border-radius:50%;object-fit:cover;border:2px solid transparent;background:var(--bg)}
.av-opt:hover{border-color:var(--line2);color:var(--text)}
.av-opt.on{border-color:var(--gold);color:var(--text);background:color-mix(in srgb,var(--gold) 10%,var(--panel2))}
.av-opt.on img{border-color:var(--gold)}
img{object-fit:cover}

/* ---------- Awards & medals ---------- */
.medal{display:block;width:auto;filter:drop-shadow(0 3px 4px rgba(0,0,0,.45))}
.medal-img{display:block;width:auto;max-width:100%;object-fit:contain;filter:drop-shadow(0 3px 4px rgba(0,0,0,.45))}
.rack{display:flex;flex-wrap:wrap;gap:3px;max-width:340px;margin-bottom:14px}
.rbar{position:relative;display:inline-block;width:46px;height:14px;border-radius:2px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(0,0,0,.4),0 1px 2px rgba(0,0,0,.4)}
.rbar svg{display:block;width:100%;height:100%}
.rbar i{position:absolute;right:1px;top:50%;transform:translateY(-50%);font:700 8px/1 "IBM Plex Mono",monospace;font-style:normal;color:#fff;background:rgba(0,0,0,.6);padding:1px 2px;border-radius:2px}
.medals{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.medal-card{all:unset;box-sizing:border-box;cursor:pointer;display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-left:3px solid var(--mc,var(--gold));border-radius:8px;background:var(--panel2);transition:border-color .15s,transform .15s}
.medal-card:hover,.medal-card:focus-visible{border-color:var(--mc,var(--gold));transform:translateY(-1px)}
.mc-art{flex:none;width:64px;display:flex;justify-content:center}
.mc-art .medal,.mc-art .medal-img{height:92px;max-width:64px}
.mc-body{min-width:0;flex:1}
.mc-body b{display:block;line-height:1.3}
.mc-n{font:600 12px "IBM Plex Mono",monospace;color:var(--gold)}
.mc-cite{margin-top:6px;font-style:italic;font-size:13px;color:var(--text);opacity:.85;overflow-wrap:anywhere}
.mc-meta{margin-top:6px}
.medal-detail{display:flex;gap:18px;align-items:center}
.md-art{flex:none}
.md-desc{margin:8px 0 0;font-size:14px}
.md-list{display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow:auto}
.md-item{display:flex;gap:10px;justify-content:space-between;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel2)}
.md-cite{font-style:italic;margin-bottom:4px;overflow-wrap:anywhere}
.award-pick{display:flex;gap:14px;align-items:center}
.ap-art{flex:none;width:84px;display:flex;justify-content:center}
.awd-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin-top:14px}
.awd{display:flex;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-left:3px solid var(--mc,var(--gold));border-radius:8px;background:var(--panel2)}
.awd-art{flex:none;width:56px;display:flex;justify-content:center}
.awd-art .medal,.awd-art .medal-img{max-width:56px}
.awd-body{flex:1;min-width:0}
.designer{display:grid;grid-template-columns:200px 1fr;gap:20px;align-items:start}
.dz-prev{position:sticky;top:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 10px;border:1px solid var(--line);border-radius:10px;background:radial-gradient(circle at 50% 35%,rgba(184,153,94,.12),transparent 70%),var(--panel2)}
.dz-prev .medal-img{max-height:170px}
.st-c{position:relative;display:inline-flex}
.st-c input[type=color]{width:40px;height:34px;padding:2px}
.st-c button{position:absolute;top:-6px;right:-6px;width:16px;height:16px;border-radius:50%;border:0;background:#7a2a22;color:#fff;font-size:9px;line-height:16px;padding:0;cursor:pointer}
#dM{display:flex;gap:6px;flex-wrap:wrap}
#dM button{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel2);color:var(--text);cursor:pointer;font:inherit}
#dM button.on{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}
#dM i{width:14px;height:14px;border-radius:50%;display:inline-block}
@media (max-width:640px){
  .designer{grid-template-columns:1fr}
  .dz-prev{position:static}
  .medal-detail{flex-direction:column;text-align:center}
  .medals,.awd-list{grid-template-columns:1fr}
}

/* Header fit: five tabs plus the account box, without overlapping */
.bar{max-width:1320px}
nav{flex-wrap:wrap;row-gap:0}
.tab{padding:7px 10px;letter-spacing:.06em}
@media (max-width:1240px){.me .who{display:none}}
@media (max-width:640px){.ph-stats{flex-wrap:wrap;row-gap:10px}}
