/* Olympus Gaming UCP - San Andreas theme.
   Pricedown headings (the GTA logo face), HUD money/stars/bars, loading-screen style thick outlines,
   the guide pages' IBM Plex body text and colour tokens underneath. Dark only: Los Santos at night. */
@font-face{font-family:'Pricedown';src:url("fonts/pricedown.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}

:root{
  --bg:#0b0e14; --bg2:#141924; --bg3:#1b2230; --fg:#f3ead6; --muted:#a39b8a; --line:#2a3240;
  --gold:#e6b84a; --gold2:#ffd86b; --orange:#f08a24; --orange2:#ff6b35; --cream:#f3ead6;
  --green:#4ea84a; --red:#c8322d; --blue:#5ea7d8;
  --accent:var(--gold); --accent2:#33ccff; --ok:#5fd08a; --warn:#f0c650; --illegal:#ff7a6e; --chip:#202838;
  --f-lspd:#8db4ff; --f-ems:#ff8a8a; --f-fd:#ff7a6e; --f-grove:#5fd08a; --f-ballas:#d59cff; --f-vagos:#ffe66b; --f-aztecas:#6fe3f5;
  --font-display:'Pricedown','Bebas Neue',Impact,'Arial Narrow',sans-serif;
  --font-body:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'IBM Plex Mono',Consolas,'Courier New',monospace;
  --outline:1px 1px 0 #000,-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,2px 2px 0 #000;
  --outline-big:2px 2px 0 #000,-2px -2px 0 #000,2px -2px 0 #000,-2px 2px 0 #000,5px 5px 0 rgba(0,0,0,.55);
  color-scheme:dark;
}
*{box-sizing:border-box}
/* the HTML "hidden" attribute must win over component rules like ".form input{display:block}" */
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
html,body{overflow-x:hidden}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;color:var(--fg);font-family:var(--font-body);line-height:1.55;
  background:radial-gradient(ellipse 90% 45% at 50% -8%,rgba(240,138,36,.30),transparent 70%),
             radial-gradient(ellipse 60% 30% at 100% 100%,rgba(143,95,198,.14),transparent 70%),var(--bg)}
a{color:var(--gold2)}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.wrap{width:100%;max-width:1100px;margin:0 auto;padding-left:16px;padding-right:16px}
main.page{flex:1;padding-bottom:30px}
.bleed{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}

/* ---- top bar ---- */
/* Row 1: brand · account; row 2: the page tabs (personal pages, then faction/radio/MDC/staff, server status at the
   far end). Phones: brand + Menu button; the account links and tabs fold into the menu (ucp.js adds .js-menu). */
nav.top{position:sticky;top:0;z-index:9;background:rgba(11,14,20,.95);backdrop-filter:blur(6px);border-bottom:3px solid var(--gold)}
nav.top .wrap{display:flex;align-items:center;gap:6px 18px;padding-block:9px 0;flex-wrap:wrap}
.brand{font-family:var(--font-display);font-size:30px;letter-spacing:.02em;color:var(--cream);text-decoration:none;line-height:1;white-space:nowrap;text-shadow:var(--outline)}
.brand span{color:var(--gold)}
.brand small{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;color:var(--muted);text-shadow:none;vertical-align:middle;margin-left:8px}
nav.top ul{flex-basis:100%;display:flex;gap:0 18px;list-style:none;margin:0;padding:0;flex-wrap:wrap;align-items:flex-end}
nav.top li a{text-decoration:none;color:var(--muted);font-family:var(--font-display);font-size:19px;letter-spacing:.03em;padding:7px 2px 6px;border-bottom:3px solid transparent;display:inline-block;line-height:1;white-space:nowrap}
nav.top li a:hover{color:var(--cream)}
nav.top li a[aria-current]{color:var(--gold2);border-bottom-color:var(--orange)}
nav.top li.sep{padding-left:18px;border-left:1px solid var(--line)}
nav.top li.end{margin-left:auto}
nav.top li.end a{font-size:16px}
nav.top .who{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:14px}
nav.top .who .name{color:var(--cream);font-weight:600;text-decoration:none;white-space:nowrap}
nav.top .who .gear{color:var(--muted)}
nav.top .who a.name:hover,nav.top .who a.name[aria-current]{color:var(--gold2)}
nav.top.guest ul{flex-basis:auto;order:1}
nav.top.guest .who{order:2}
nav.top.guest .wrap{padding-block:9px}
.menu-toggle{display:none;margin-left:auto;font-family:var(--font-display);font-size:18px;letter-spacing:.04em;line-height:1;padding:8px 12px 6px;color:var(--cream);background:var(--chip);border:2px solid #000;border-radius:4px;box-shadow:0 0 0 1px var(--line);cursor:pointer}
.menu-toggle::after{content:" \25BE"}
nav.top.open .menu-toggle::after{content:" \25B4"}
@media (max-width:760px){
  .brand{font-size:26px}
  nav.top .wrap{padding-block:8px}
  nav.top.js-menu .menu-toggle{display:inline-block}
  nav.top.js-menu .who,nav.top.js-menu ul{display:none}
  nav.top.js-menu.open .who{display:flex;order:3;flex-basis:100%;margin:4px 0 0;padding-top:8px;border-top:1px solid var(--line);justify-content:space-between}
  nav.top.js-menu.open ul{display:grid;order:4;grid-template-columns:1fr 1fr;gap:0 12px;padding-bottom:6px}
  nav.top li.sep{padding-left:0;border-left:0}
  nav.top li.end{margin-left:0}
  nav.top li a{padding:9px 2px 7px}
}
form.inline{display:inline;margin:0}

/* ---- type ---- */
.eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold2);text-shadow:1px 1px 0 #000}
h1{font-family:var(--font-display);font-weight:400;font-size:clamp(50px,9vw,96px);line-height:.9;margin:6px 0 14px;letter-spacing:.01em;color:var(--gold);text-shadow:var(--outline-big);text-wrap:balance}
h1 span{color:var(--cream)}
h2{font-family:var(--font-display);font-weight:400;font-size:clamp(30px,4.5vw,42px);letter-spacing:.02em;margin:0 0 10px;line-height:1;color:var(--cream);text-shadow:var(--outline);text-wrap:balance}
h3{font-family:var(--font-display);font-weight:400;font-size:26px;letter-spacing:.02em;margin:0 0 8px;line-height:1;color:var(--cream);text-shadow:var(--outline)}
h3 small{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-shadow:none;color:var(--muted)}
.lead{font-size:18px;max-width:62ch;margin:0;text-shadow:0 1px 2px rgba(0,0,0,.8)}
p{max-width:70ch}
.muted{color:var(--muted)}
.small-text{font-size:13px}
.mono{font-family:var(--font-mono);font-size:.94em}
.nowrap{white-space:nowrap}
section{padding-block:24px}
section+section{border-top:1px solid var(--line)}
ul.plain{padding-left:18px;margin:0 0 10px}
ul.plain li{margin-bottom:6px}

/* ---- photo heroes (Los Angeles = Los Santos) ---- */
header.hero{padding-block:40px 24px;position:relative}
header.hero.small{padding-block:30px 16px}
header.hero.small h1{font-size:clamp(42px,6.5vw,72px)}
header.hero.photo{background-size:cover;background-position:center 40%;border-bottom:3px solid var(--gold);margin-bottom:8px;padding-block:70px 34px;min-height:300px;display:flex;align-items:flex-end}
header.hero.photo.small{min-height:220px;padding-block:50px 26px}
header.hero.photo>.wrap{position:relative}
header.hero.photo::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,14,20,.15) 0%,rgba(11,14,20,.55) 55%,rgba(11,14,20,.96) 100%)}
.p-beach{background-image:url("img/beach.jpg")}
.p-downtown{background-image:url("img/downtown.jpg")}
.p-freeway{background-image:url("img/freeway.jpg");background-position:center 60%}
.p-hills{background-image:url("img/hills.jpg")}
.p-skyline{background-image:url("img/skyline.jpg")}
.p-pier{background-image:url("img/pier.jpg");background-position:center 35%}
.p-skatepark{background-image:url("img/skatepark.jpg")}

/* ---- cards, grids ---- */
.card{background:var(--bg2);border:2px solid #000;box-shadow:0 0 0 1px var(--line),6px 6px 0 rgba(0,0,0,.45);border-radius:6px;padding:16px;min-width:0;position:relative}
.card p{margin:0 0 8px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}
.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:18px}
.grid-wide{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:820px){.grid-wide{grid-template-columns:1fr}}
.empty-state{max-width:720px}
.login-foot{margin-top:14px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px}
.login-grid{display:grid;grid-template-columns:minmax(280px,440px) minmax(260px,1fr);gap:20px;align-items:start}
@media (max-width:720px){.login-grid{grid-template-columns:1fr}}

/* ---- HUD pieces ---- */
.hud{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:flex-end;margin:10px 0 4px}
.hud .k{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-shadow:1px 1px 0 #000;margin-bottom:7px}
.hud-money{font-family:var(--font-display);font-size:40px;line-height:1;color:var(--green);text-shadow:var(--outline-big);letter-spacing:.02em;white-space:nowrap}
.hud-money.cream{color:var(--cream)}
.hud-money.neg{color:var(--red)}
.hud-money.sm{font-size:30px}
.stars{font-size:26px;line-height:1;letter-spacing:.04em;color:var(--gold2);text-shadow:var(--outline);white-space:nowrap}
.stars .off{opacity:.28}
.stars.small{font-size:17px}
.hudbar{position:relative;height:16px;background:#1a1a1a;border:2px solid #000;box-shadow:0 0 0 1px rgba(255,255,255,.10);margin:6px 0 4px}
.hudbar span{display:block;height:100%;background:var(--red);transition:width .3s}
.hudbar.fuel span{background:var(--blue)}
.hudbar.stock span{background:var(--green)}
.hudbar.gold span{background:var(--gold)}
.hudbar.ok span{background:var(--green)} .hudbar.warn span{background:var(--gold)} .hudbar.bad span{background:var(--red)}
.meters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:12px 0}
.meter .k,.respect .k,.stat .k,.lic .k{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.meter .v,.respect .v{font-size:12px;color:var(--muted)}

/* ---- stat tiles ---- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}
.stat{background:var(--bg2);border:2px solid #000;box-shadow:0 0 0 1px var(--line),4px 4px 0 rgba(0,0,0,.45);border-radius:6px;padding:14px 16px;min-width:0;border-top:4px solid var(--gold);container-type:inline-size}
.stat.ok{border-top-color:var(--green)} .stat.warn{border-top-color:var(--orange)} .stat.bad{border-top-color:var(--red)}
.stat .v{font-family:var(--font-display);font-size:36px;font-size:clamp(22px,17cqi,36px);letter-spacing:.02em;line-height:1.05;margin-top:4px;overflow-wrap:anywhere;color:var(--cream);text-shadow:var(--outline)}
.stat .v.green{color:var(--green)}
.stat .v.small-v{font-size:22px;font-family:var(--font-body);font-weight:600;letter-spacing:0;text-shadow:none}
.stat .v small{font-size:.5em;color:var(--muted);font-family:var(--font-body);letter-spacing:0;text-shadow:none}
.stat .sub{font-size:12px;color:var(--muted);margin-top:2px}

/* ---- key/value ---- */
dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0;font-size:15px}
dl.kv.compact{font-size:14px;gap:4px 12px}
dl.kv dt{color:var(--muted);font-size:12px;padding-top:3px;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase}
dl.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}

/* ---- chips, badges, plates ---- */
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.chip{display:inline-block;background:var(--chip);border:1px solid #000;box-shadow:0 0 0 1px var(--line);border-radius:3px;padding:3px 10px;font-size:13px;line-height:1.4;color:var(--cream)}
.chip.online,.chip.ok{color:var(--ok);box-shadow:0 0 0 1px var(--ok)}
.chip.unknown,.chip.warn{color:var(--warn);box-shadow:0 0 0 1px var(--warn)}
.chip.offline{color:var(--muted)}
.chip.bad{color:var(--illegal);box-shadow:0 0 0 1px var(--illegal)}
.chip.gold{color:var(--gold2);box-shadow:0 0 0 1px var(--gold)}
.chip.accent{color:var(--orange);box-shadow:0 0 0 1px var(--orange)}
.chip.fac-lspd{color:var(--f-lspd);box-shadow:0 0 0 1px var(--f-lspd)} .chip.fac-ems{color:var(--f-ems);box-shadow:0 0 0 1px var(--f-ems)} .chip.fac-fd{color:var(--f-fd);box-shadow:0 0 0 1px var(--f-fd)}
.chip.fac-grove{color:var(--f-grove);box-shadow:0 0 0 1px var(--f-grove)} .chip.fac-ballas{color:var(--f-ballas);box-shadow:0 0 0 1px var(--f-ballas)} .chip.fac-vagos{color:var(--f-vagos);box-shadow:0 0 0 1px var(--f-vagos)} .chip.fac-aztecas{color:var(--f-aztecas);box-shadow:0 0 0 1px var(--f-aztecas)}
.badge{display:inline-block;font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:1px 8px;border-radius:3px;background:var(--chip);border:1px solid #000;color:var(--cream);white-space:nowrap}
.badge.ok{color:var(--ok)} .badge.warn{color:var(--warn)} .badge.bad{color:var(--illegal)} .badge.muted{color:var(--muted)}
.plate{display:inline-block;font-family:var(--font-mono);font-weight:500;letter-spacing:.16em;font-size:14px;padding:3px 12px;border:2px solid #1b1b1b;border-radius:4px;background:#f3ead6;color:#1b1b1b;box-shadow:inset 0 0 0 2px #fff,2px 2px 0 rgba(0,0,0,.5)}

/* ---- profile ---- */
.profile{display:flex;gap:26px;align-items:flex-end;flex-wrap:wrap}
.profile .skin{width:150px;height:225px;object-fit:contain;object-position:bottom;flex:none;filter:drop-shadow(0 0 1px #000) drop-shadow(0 0 1px #000) drop-shadow(8px 10px 0 rgba(0,0,0,.55))}
.profile-main{min-width:0;flex:1 1 320px}
.profile h1{margin-bottom:4px}
.respect{max-width:460px;margin-top:8px}

/* ---- licence: the ID card + small permits ---- */
.licences{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;container-type:inline-size}
.idcard>*{position:relative}
/* narrow card (staff/MDC side column, phones): no watermark behind the title, the stamp sits under the text */
@container (max-width:820px){
  .idcard::before{display:none}
  .idcard .stamp{position:static;grid-column:2;justify-self:start;font-size:22px;transform:rotate(-4deg)}
}
@container (max-width:380px){.idcard{grid-template-columns:72px 1fr}.idcard .photo{width:72px;height:96px}.idcard .title{font-size:20px}}
.idcard{grid-column:1 / -1;display:grid;grid-template-columns:110px 1fr;gap:14px;align-items:center;background:linear-gradient(135deg,#f6edd7 0%,#e3d2a6 60%,#d4bf8b 100%);color:#1b1b1b;border:2px solid #000;border-radius:8px;padding:14px;position:relative;overflow:hidden;box-shadow:6px 6px 0 rgba(0,0,0,.45)}
.idcard::before{content:"SAN ANDREAS";position:absolute;right:12px;top:6px;font-family:var(--font-display);font-size:30px;color:rgba(27,27,27,.14);letter-spacing:.04em}
.idcard .photo{width:110px;height:140px;object-fit:cover;object-position:top;background:#cbd8df;border:2px solid #1b1b1b;border-radius:4px}
.idcard .photo.empty{display:flex;align-items:center;justify-content:center;font-family:var(--font-display);color:#5d6774;font-size:22px}
.idcard .title{font-family:var(--font-display);font-size:24px;line-height:1;color:#1b1b1b;letter-spacing:.02em}
.idcard .holder{font-size:17px;font-weight:600;margin:4px 0 6px}
.idcard .row{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#4a4a4a}
.idcard .row b{color:#1b1b1b}
.idcard .state{font-family:var(--font-display);font-size:34px;line-height:1;margin-top:6px}
.idcard .state.ok{color:#1f7a32} .idcard .state.warn{color:#b35a00} .idcard .state.bad{color:#b4191d} .idcard .state.muted{color:#5d6774}
.idcard .note{font-size:13px;color:#3a3a3a;margin:4px 0 0;max-width:60ch}
.stamp{position:absolute;right:18px;bottom:16px;transform:rotate(-12deg);border:3px solid #b4191d;color:#b4191d;font-family:var(--font-display);font-size:28px;line-height:1;padding:4px 10px;border-radius:4px;opacity:.85;letter-spacing:.04em;background:rgba(255,255,255,.35)}
.stamp.warn{border-color:#b35a00;color:#b35a00}
.lic{background:var(--bg2);border:2px solid #000;box-shadow:0 0 0 1px var(--line),4px 4px 0 rgba(0,0,0,.45);border-left:6px solid var(--line);border-radius:6px;padding:12px 14px;min-width:0}
.lic.ok{border-left-color:var(--green)} .lic.warn{border-left-color:var(--orange)} .lic.bad{border-left-color:var(--red)} .lic.muted{border-left-color:#3a4150}
.lic .state{font-family:var(--font-display);font-size:30px;letter-spacing:.02em;line-height:1;margin:4px 0 6px;text-shadow:var(--outline)}
.lic.ok .state{color:var(--ok)} .lic.warn .state{color:var(--warn)} .lic.bad .state{color:var(--illegal)} .lic.muted .state{color:var(--muted)}
.lic .note{font-size:13px;color:var(--muted);margin:0}

/* ---- radar map ---- */
.samap-defs{position:absolute;width:0;height:0;overflow:hidden}
.samap{display:block;width:100%;aspect-ratio:1;background:#2f6a94;border:2px solid #000;border-radius:6px;box-shadow:0 0 0 1px var(--line)}
.samap.mini{width:130px;flex:none}
.samap.medium{width:min(360px,100%);flex:none}
.samap.spot{aspect-ratio:16/10}
.samap .district{font-family:var(--font-body);font-weight:600;letter-spacing:.04em;fill:rgba(20,16,8,.78);paint-order:stroke;stroke:rgba(255,248,230,.55);stroke-width:.14em;stroke-linejoin:round;pointer-events:none}
.samap .district.here{fill:#000;font-weight:700;stroke:rgba(255,230,107,.85);stroke-width:.22em}
.samap .city{font-family:var(--font-display);fill:rgba(0,0,0,.40);pointer-events:none}
.samap .county{font-family:var(--font-body);font-weight:600;letter-spacing:.08em;fill:rgba(0,0,0,.45);pointer-events:none}
/* on the map pictures: white names with a dark outline, like the in-game map */
.samap.photo .district{fill:#fff;stroke:rgba(0,0,0,.82);stroke-width:.2em}
.samap.photo .district.here{fill:var(--gold2);stroke:#000;stroke-width:.24em}
.samap.photo .city{fill:rgba(255,255,255,.92);paint-order:stroke;stroke:#000;stroke-width:.05em;letter-spacing:.02em}
.samap.photo .county{fill:rgba(255,255,255,.88);paint-order:stroke;stroke:rgba(0,0,0,.8);stroke-width:.18em}
.maptoggle{display:inline-flex;margin-left:auto;border:2px solid #000;border-radius:4px;box-shadow:0 0 0 1px var(--line);overflow:hidden}
.maptoggle button{font:inherit;font-size:12px;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border:0;background:var(--chip);color:var(--muted);cursor:pointer}
.maptoggle button+button{border-left:1px solid #000}
.maptoggle button[aria-pressed="true"]{background:var(--orange);color:#0b0e14}
.maptoggle button:hover{color:var(--cream)}
.maptoggle button[aria-pressed="true"]:hover{color:#0b0e14}
.samap .pin .ring{transform-box:fill-box;transform-origin:center;animation:pinring 1.8s ease-out infinite}
@keyframes pinring{0%{transform:scale(.45);opacity:.95}100%{transform:scale(1.25);opacity:0}}
@media (prefers-reduced-motion:reduce){.samap .pin .ring{animation:none;opacity:.6}}
.mapspot{margin:10px 0 0;max-width:560px}
.mapspot figcaption{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline;font-size:14px;margin-top:6px}
.mapspot figcaption .mono{color:var(--muted);font-size:12px}
.mapmore{margin-top:4px;font-size:13px}
.mapmore summary{cursor:pointer;color:var(--gold2);width:max-content}
.mapmore .samap{margin-top:8px}

/* ---- login decoration ---- */
.skin-row{display:flex;gap:6px;justify-content:flex-start;align-items:flex-end;margin-top:14px;flex-wrap:wrap}
.skin-row img{width:54px;height:81px;object-fit:contain;object-position:bottom;filter:drop-shadow(0 0 1px #000) drop-shadow(3px 4px 0 rgba(0,0,0,.5))}

/* ---- vehicles ---- */
.vehicle .pic{width:100%;height:160px;object-fit:cover;border:2px solid #000;border-radius:4px;background:#0b0e14;display:block;margin-bottom:10px}

/* ---- tables ---- */
.tbl{width:100%;border-collapse:collapse;font-size:14px;background:var(--bg2);border:2px solid #000;box-shadow:0 0 0 1px var(--line);border-radius:6px;overflow:hidden}
.tbl th,.tbl td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl th{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold2);font-weight:500;background:var(--bg3)}
.tbl tr:last-child td{border-bottom:0}
.tbl tr.current td{background:rgba(230,184,74,.12)}
.tbl.compact th,.tbl.compact td{padding:6px 10px}
@media (max-width:600px){.tbl{display:block;overflow-x:auto}}

/* ---- forms, buttons, alerts ---- */
.form label{display:block;font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:12px 0 4px}
.form input{display:block;width:100%;margin-top:4px;padding:11px 12px;font:inherit;font-size:16px;color:var(--fg);background:var(--bg);border:2px solid #000;box-shadow:0 0 0 1px var(--line);border-radius:4px}
.form input:focus{box-shadow:0 0 0 1px var(--gold)}
.form .btn{margin-top:16px}
.form label.check{display:flex;gap:10px;align-items:flex-start;font-family:var(--font-body);font-size:14px;letter-spacing:0;text-transform:none;color:var(--fg);margin:14px 0 0;cursor:pointer}
.form label.check input{width:18px;height:18px;margin:2px 0 0;flex:none;accent-color:var(--orange);box-shadow:none;padding:0}
.form label.check small{display:block;font-size:12px}
.devices{list-style:none;margin:0;padding:0}
.devices li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}
.devices li:last-child{border-bottom:0}
.btn{display:inline-block;font-family:var(--font-display);font-size:20px;letter-spacing:.03em;line-height:1;padding:10px 18px 8px;border-radius:4px;border:2px solid #000;background:var(--chip);color:var(--cream);text-decoration:none;cursor:pointer;box-shadow:0 0 0 1px var(--line),3px 3px 0 rgba(0,0,0,.5);text-shadow:1px 1px 0 #000}
.btn:hover{background:var(--bg3)}
.btn.primary{background:var(--orange);border-color:#000;color:#0b0e14;text-shadow:none;box-shadow:0 0 0 1px var(--orange2),3px 3px 0 rgba(0,0,0,.5)}
.btn.primary:hover{background:var(--gold2)}
.btn.small{padding:6px 10px 4px;font-size:16px}
.btn.ghost{background:transparent}
.alert{border:2px solid #000;border-left-width:6px;border-radius:4px;padding:10px 14px;margin:12px 0;background:var(--bg2);font-size:14px;box-shadow:0 0 0 1px var(--line)}
.alert.bad{border-left-color:var(--red)} .alert.warn{border-left-color:var(--orange)} .alert.ok{border-left-color:var(--green)}
.chat{font-family:var(--font-mono);font-size:13px;line-height:1.5;background:var(--bg2);border:1px solid var(--line);border-radius:4px;padding:10px 12px;margin:14px 0 0;overflow-x:auto;white-space:pre-wrap;max-width:none}

/* ---- faction + MDC ---- */
nav.top li a.mdc-link{color:var(--f-lspd)}
header.hero.mdc{border-bottom-color:var(--f-lspd)}
header.hero.mdc h1 span{color:var(--f-lspd)}
.mdc-search{display:flex;gap:14px;flex-wrap:wrap}
.mdc-search .form.inline-search{flex:1 1 300px;margin-top:10px}
.mug{width:28px;height:42px;object-fit:contain;object-position:bottom;vertical-align:middle}
a.plate{text-decoration:none}
.rank-form select{display:inline-block;width:auto;padding:4px 8px;font-size:13px;margin:0 4px 0 0}

/* ---- web radio ---- */
nav.top li a.radio-link{color:var(--f-aztecas)}
.radio-nets .chip,.radio-wrap .chip{text-decoration:none}
.radio-wrap{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:18px;align-items:start}
@media (max-width:820px){.radio-wrap{grid-template-columns:1fr}}
.radio-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.radio-hint{margin-left:auto}
.led{width:10px;height:10px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px var(--ok);display:inline-block}
.led.off{background:var(--red);box-shadow:0 0 8px var(--red)}
.radio-feed{list-style:none;margin:0;padding:10px 12px;height:min(56vh,520px);overflow-y:auto;background:#05070a;border:2px solid #000;box-shadow:inset 0 0 0 1px var(--line);border-radius:4px;font-family:var(--font-mono);font-size:13.5px;line-height:1.5}
.radio-feed li{padding:1px 0;color:#2fb5c9;text-shadow:1px 1px 0 #000;word-break:break-word}
.radio-feed.net-dept li{color:#ff8c8c}
.radio-feed.net-ems li{color:#5aa9ff}
.radio-feed li.web .line{color:#ffe66b}
.radio-feed li .t{color:var(--muted);font-size:11px;margin-right:4px}
.radio-feed li.fresh{background:rgba(230,184,74,.10)}
.radio-feed li.empty{color:var(--muted);text-shadow:none}
.radio-outbox{list-style:none;margin:6px 0 0;padding:0;font-size:12.5px}
.radio-outbox li{padding:2px 0}
.radio-outbox li.pending{color:var(--warn)}
.radio-outbox li.failed{color:var(--illegal)}
.radio-send{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap}
.radio-send .who{color:var(--gold2);white-space:nowrap}
.radio-send input[type=text]{flex:1 1 220px;padding:10px 12px;font:inherit;font-size:15px;color:var(--fg);background:var(--bg);border:2px solid #000;box-shadow:0 0 0 1px var(--line);border-radius:4px}
.radio-send input[type=text]:focus{box-shadow:0 0 0 1px var(--gold)}
.radio-foot{margin-top:8px}

/* ---- owner console ---- */
.console-wrap{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:980px){.console-wrap{grid-template-columns:1fr}}
.logview{list-style:none;margin:0;padding:8px 10px;height:min(64vh,620px);overflow-y:auto;background:#05070a;border:2px solid #000;box-shadow:inset 0 0 0 1px var(--line);border-radius:4px;font-family:var(--font-mono);font-size:12.5px;line-height:1.45;color:#c9d1d9}
.logview li{white-space:pre-wrap;word-break:break-word}
.logview li.chat{color:#e9edf2}
.logview li.join{color:#5fd08a}
.logview li.part{color:#9ba7b5}
.logview li.err{color:#ff7a6e}
.logview li.rcon{color:#ffe66b}
.logview li.sys{color:#33ccff}
.logview li.cmd{color:var(--gold2)}
.logview li.muted{color:var(--muted)}
.rcon-out{height:min(36vh,340px)}
.log-filter{flex:1 1 180px;margin-left:auto;padding:6px 10px;font:inherit;font-size:13px;color:var(--fg);background:var(--bg);border:2px solid #000;box-shadow:0 0 0 1px var(--line);border-radius:4px}
.log-follow{display:flex;gap:4px;align-items:center;color:var(--muted)}
.rcon-quick{margin-top:8px}
.rcon-quick .chip{cursor:pointer;font:inherit;font-size:12.5px}
.console.rcon h3{margin-bottom:10px}

.pending-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;padding:8px 14px;background:var(--bg2);border:2px solid #000;border-left:6px solid var(--warn);box-shadow:0 0 0 1px var(--line);border-radius:4px;font-size:14px}
.pending-bar a{margin-left:auto}
.pending-bar.ready{border-left-color:var(--ok)}
.led.warn{background:var(--warn);box-shadow:0 0 8px var(--warn);animation:ledpulse 1.4s ease-in-out infinite}
@keyframes ledpulse{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.led.warn{animation:none}}

a.stat-link{display:block;text-decoration:none;color:inherit}
a.stat-link:hover{box-shadow:0 0 0 1px var(--gold),4px 4px 0 rgba(0,0,0,.45)}

/* ---- faction members + rank ladder ---- */
.members{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
.member.is-leader{border-top:3px solid var(--orange)}
.member-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.member-head h3{margin-bottom:2px}
.member-meta{color:var(--muted);white-space:nowrap;padding-top:4px}
.ladder-pos{display:flex;gap:3px;margin:8px 0 10px}
.ladder-pos span{flex:1;height:6px;background:var(--chip);border:1px solid #000;border-radius:1px}
.ladder-pos span.on{background:var(--gold)}
.ladder-pos span.next{background:var(--orange);box-shadow:0 0 0 1px var(--orange)}
.member-tools{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.member-tools .btn{margin:0}
.member-tools .kick{margin-left:auto}
.btn:disabled{opacity:.45;cursor:not-allowed}
.tbl.ladder input{width:100%;max-width:340px;padding:6px 8px;font:inherit;font-size:14px;color:var(--fg);background:var(--bg);border:2px solid #000;box-shadow:0 0 0 1px var(--line);border-radius:4px}
.tbl.ladder tr.top td{background:rgba(230,184,74,.08)}
.tbl.ladder td{vertical-align:middle}
@media (max-width:600px){.tbl.ladder{display:table}.tbl.ladder th,.tbl.ladder td{padding:6px 6px}.tbl.ladder td:nth-child(2){width:62%}.tbl.ladder input{max-width:none;font-size:13px}}

/* ---- staff area ---- */
nav.top li a.staff{color:var(--orange)}
.form.inline-search{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap;margin-top:14px;max-width:560px}
.form.inline-search input{flex:1 1 240px;margin:0}
.form select{display:block;width:100%;margin-top:4px;padding:10px 12px;font:inherit;font-size:15px;color:var(--fg);background:var(--bg);border:2px solid #000;box-shadow:0 0 0 1px var(--line);border-radius:4px}
.chips a.chip{text-decoration:none}

/* ---- business page: manage forms, income chart ---- */
.manage .card.form h3{margin-bottom:4px}
.manage .card.form .btn{margin-top:12px}
.manage .card.form input:disabled,.manage .btn:disabled{opacity:.5;cursor:not-allowed}
.chart{display:flex;align-items:flex-end;gap:4px;height:140px;padding:6px 0 0;border-bottom:2px solid var(--line)}
.chart .col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.chart .bar{width:100%;max-width:34px;background:var(--green);border:2px solid #000;border-bottom:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.chart small{font-family:var(--font-mono);font-size:10px;color:var(--muted);margin-top:4px}
.alert.flash{margin-top:14px}

footer{padding-block:18px 30px;color:var(--muted);font-size:13px;border-top:1px solid var(--line)}
footer details{margin-top:6px}
footer summary{cursor:pointer;color:var(--gold2)}
footer ul{margin:6px 0 0;padding-left:18px}
