/* FOREVER:NEON // BOOK ONE FACTION HARDWARE PROVENANCE
   Presentation only. The same canonical faction/cell state remains authoritative. */

/* Resistance CADRE: repaired surplus field terminal. */
body:has(#portal-callsign):has(.paper):has(.hero){
  background:radial-gradient(circle at top,#292b20,#0a0b08 65%)!important;
}
body:has(#portal-callsign):has(.paper):has(.hero) .hero,
body:has(#portal-callsign):has(.paper):has(.hero) .panel,
body:has(#portal-callsign):has(.paper):has(.hero) .stat,
body:has(#portal-callsign):has(.paper):has(.hero) .team-card{
  border-radius:1px!important;
  border-color:#373a2e!important;
  background:linear-gradient(#34372c,#1b1e17)!important;
  box-shadow:inset 0 1px 0 #56594a!important;
}
body:has(#portal-callsign):has(.paper):has(.hero) .hero{
  border-width:1px!important;
  box-shadow:0 16px 36px #0009,inset 0 0 0 2px #4b4d40!important;
}
body:has(#portal-callsign):has(.paper):has(.hero) h1{color:#d8c78e!important;text-shadow:none!important}
body:has(#portal-callsign):has(.paper):has(.hero) :is(.value,#portal-loosh){color:#afcf91!important;text-shadow:0 0 6px rgba(175,207,145,.25)}
body:has(#portal-callsign):has(.paper):has(.hero) :is(button,.btn){border-radius:1px!important;background:linear-gradient(#4b4b3e,#292b23)!important;border-color:#6d664d!important;box-shadow:0 3px 0 #11120e!important}
body:has(#portal-callsign):has(.paper):has(.hero) .paper{transform:rotate(-.25deg);box-shadow:3px 5px 0 #0008!important}

/* Vril DIVISION: proprietary late-1980s corporate workstation. This replaces
   the generic Windows clone feel without pretending Vril is using a modern OS. */
body:has(.titlebar):has(#portal-callsign):not(:has(.paper)){
  background:linear-gradient(135deg,#9a998f,#66675f)!important;
  color:#111!important;
  font-family:Arial,Helvetica,sans-serif!important;
}
body:has(.titlebar):has(#portal-callsign):not(:has(.paper)) .window{
  border:1px solid #22231f!important;
  background:linear-gradient(#d2d0c7,#aaa99f)!important;
  box-shadow:10px 12px 26px #0007,inset 0 0 0 2px #efeee8!important;
}
body:has(.titlebar):has(#portal-callsign):not(:has(.paper)) .titlebar{
  background:linear-gradient(90deg,#272d36,#444b54)!important;
  color:#f2f1e8!important;
  border-bottom:1px solid #111!important;
  letter-spacing:.04em;
}
body:has(.titlebar):has(#portal-callsign):not(:has(.paper)) h1{
  color:#20262d!important;
  border-bottom:3px double #545a5e!important;
  font-family:Arial,Helvetica,sans-serif!important;
  letter-spacing:.02em;
}
body:has(.titlebar):has(#portal-callsign):not(:has(.paper)) .marquee{
  background:#d7d2b6!important;
  border:1px solid #6f6d62!important;
  color:#272720!important;
}
body:has(.titlebar):has(#portal-callsign):not(:has(.paper)) :is(.stat,.panel,.team-card){
  border:1px solid #77786f!important;
  background:linear-gradient(#e4e2d9,#c5c4bb)!important;
  box-shadow:inset 1px 1px 0 #fff,inset -1px -1px 0 #777!important;
}
body:has(.titlebar):has(#portal-callsign):not(:has(.paper)) .value{
  color:#243b32!important;
  font-family:'Share Tech Mono','Courier New',monospace!important;
}
body:has(.titlebar):has(#portal-callsign):not(:has(.paper)) :is(button,.btn){
  border-radius:1px!important;
  background:linear-gradient(#efeee8,#b9b8b0)!important;
  border:1px solid #5f6059!important;
  box-shadow:inset 1px 1px 0 #fff,0 2px 0 #686861!important;
  color:#161713!important;
}
body:has(.titlebar):has(#portal-callsign):not(:has(.paper)) input{
  border-radius:1px!important;border:1px solid #62645d!important;background:#f3f2e9!important;color:#111!important
}

/* Speakeasy is already the strongest Book 1 hardware treatment. Only remove
   the remaining full-page scanline layer; the CRT scope keeps its own raster. */
body:has(#speakeasyMain) > ::before{pointer-events:none}
body:has(#speakeasyMain)::before{display:none!important}

/* Signal Cells directory: convert existing mini meters/stat boxes into the
   same hardware family without altering the server-owned aggregate counts. */
body:has(#cadre-forming):has(#division-forming) :is(.meter,.mini){border-radius:1px!important}
body:has(#cadre-forming):has(#division-forming) .mini{
  background:#11140f!important;border:1px solid #343a31!important;color:#a8d49b!important;box-shadow:inset 0 0 12px #000!important
}
body:has(#cadre-forming):has(#division-forming) .mini span{color:#9d977f!important}

@media(prefers-reduced-motion:reduce){
  body:has(#portal-callsign) *,body:has(#cadre-forming) *{transition:none!important;animation:none!important}
}
