/* Brantools SATELLITE PORTAL skin — shared override sheet, loaded AFTER each
   page's own styles. Successor to the macOS-glass sheet: same selector map,
   re-derived for the green-on-void transmission look so every tool page
   matches the Command Center. No layout/JS changes.
   Chromium bug note (unchanged): no backdrop-filter on scrolling content —
   blur only on small sticky chrome (nav/header). */
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&family=Chakra+Petch:wght@500;600;700&display=swap');

:root{
  /* surfaces */
  --bg:#050d09 !important; --bg2:#07120c !important; --bg3:#091510 !important; --bg4:#0b1a12 !important;
  --surface:rgba(7,18,12,.93) !important; --surface2:rgba(9,21,15,.9) !important;
  --panel:rgba(7,18,12,.93) !important; --tile:rgba(9,21,15,.9) !important; --header:rgba(5,14,10,.96) !important;
  /* lines */
  --border:rgba(64,224,140,.22) !important; --border2:rgba(64,224,140,.4) !important; --line:rgba(64,224,140,.16) !important;
  /* ink */
  --text:#dff5e8 !important; --text2:#a9c9b8 !important; --text3:#7fa894 !important; --txt:#dff5e8 !important;
  --dim:#7fa894 !important; --faint:#517b64 !important;
  /* accents — signal green primary, cyan secondary */
  --green:var(--th-accent,#3ff085) !important; --green-dim:rgba(63,240,133,.14) !important; --success:var(--th-accent,#3ff085) !important;
  --cyan:#4fd6e0 !important; --cyan-dim:rgba(79,214,224,.14) !important;
  --blue:#4fd6e0 !important; --blue-dim:rgba(79,214,224,.14) !important; --blue2:#37b3bd !important;
  --purple:#9c8cf2 !important; --red:#ff6472 !important; --danger:#ff6472 !important;
  --yellow:#ffb648 !important; --warn:#ffb648 !important; --amber:#ffb648 !important; --gold:#ffb648 !important;
  --glow:rgba(63,240,133,.35) !important; --shadow:0 10px 30px rgba(0,0,0,.55) !important;
  /* type */
  --font:'Chakra Petch','JetBrains Mono',ui-monospace,monospace !important;
  --ui:'Chakra Petch','JetBrains Mono',ui-monospace,monospace !important;
  --font-ui:'Chakra Petch','JetBrains Mono',ui-monospace,monospace !important;
  --mono:'JetBrains Mono',ui-monospace,'SF Mono',Consolas,monospace !important;
  --font-mono:'JetBrains Mono',ui-monospace,'SF Mono',Consolas,monospace !important;
}

/* Tool-page backdrop: the void + plexus poster + green atmosphere. Scrim
   keeps floating white/green headings at readable contrast over the image. */
body{
  background:
    linear-gradient(180deg,
      rgba(3,9,6,.86) 0%,
      rgba(3,9,6,.78) 40%,
      rgba(3,9,6,.78) 60%,
      rgba(3,9,6,.9) 100%),
    url('/static/portal-poster.jpg') center/cover fixed,
    #030906 !important;
  background-attachment:fixed, fixed, fixed !important;
  color:#dff5e8 !important;
  font-family:var(--font) !important;
  -webkit-font-smoothing:antialiased;
}

/* restrained glow is allowed back, but only where set explicitly below */
*{text-shadow:none !important;}

/* top chrome: dark sticky transmission bar (small sticky element — blur safe) */
body > nav, body > header{
  background:rgba(4,12,8,.92) !important;
  border-bottom:1px solid rgba(64,224,140,.28) !important;
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  box-shadow:0 6px 24px rgba(0,0,0,.45) !important;
}
body > nav a, body > header a{color:#a9c9b8;}
body > nav a:hover, body > header a:hover{color:var(--th-accent,#3ff085);}

/* page scanline overlays: keep pages clean; the shell supplies atmosphere */
body::before, body::after{content:none !important;}

/* logo/user chrome */
.logo-text{color:#dff5e8 !important;letter-spacing:.06em;}
.logo-icon{background:var(--th-accent,#3ff085) !important;color:#04140c !important;}
.user-pill{color:#a9c9b8 !important;}
.back-btn,.signout{color:#a9c9b8 !important;border-color:rgba(64,224,140,.3) !important;}
.back-btn:hover,.signout:hover{color:var(--th-accent,#3ff085) !important;}

/* page headers float on the backdrop */
.page-header{background:transparent !important;border-bottom:none !important;}
.page-header .page-title, .page-title{color:#f2fff8;}
.page-header .page-sub, .page-sub{color:#a9c9b8;}

/* generic panel/card treatments — dark glass, targeting-bracket adjacent look */
.panel,.card,.tool-card,.box,.section,.stat-card,.modal,.dropzone,.table-wrap,.form-card,.upload-panel,.toggle-card,.info-note,.info-box,.filters,.toolbar,.mode-bar,.sidebar,.result-box{
  background:linear-gradient(180deg,rgba(8,20,14,.95),rgba(6,15,10,.93)) !important;
  border:1px solid rgba(64,224,140,.24) !important;
  box-shadow:0 10px 30px rgba(0,0,0,.5) !important;
  color:#dff5e8;
  border-radius:6px;
}

/* text that floats on the backdrop */
.page-title,.page-header h1,.page-header h2,
.hero h1,.hero-text h1,.hero-title,
.main > h1,.wrapper > h1,body > h1,h1{
  color:#f2fff8 !important;
  text-shadow:0 0 18px rgba(63,240,133,.25),0 2px 14px rgba(0,0,0,.6) !important;
}
.page-sub,.page-desc,.hero-sub,.page-header p,.hero-text p,.subtitle,.sub,.page-header .sub{
  color:#a9c9b8 !important;
  text-shadow:0 1px 10px rgba(0,0,0,.5) !important;
}
.page-tag,.badge,.tool-badge,.hero-pill,.card-badge,.active-badge{
  background:rgba(63,240,133,.1) !important;
  color:var(--th-accent,#3ff085) !important;
  border:1px solid rgba(63,240,133,.35) !important;
  text-shadow:none !important;
}
.sec-label,.section-label{
  color:var(--th-accent,#3ff085) !important;
  letter-spacing:.14em;
  text-shadow:0 0 10px rgba(63,240,133,.3) !important;
}
.prompt,.page-header .hint,.hero .hint,
.empty,.empty p,.empty div,.empty span{
  color:#7fa894 !important;
}
.disclaimer,.warning,.notice,.callout,.alert{
  background:rgba(40,26,6,.6) !important;
  color:#ffcf8a !important;
  border:1px solid rgba(255,182,72,.35) !important;
  text-shadow:none !important;
  border-radius:6px;
}
.disclaimer strong,.warning strong,.notice strong,.callout strong,.alert strong{
  color:#ffb648 !important;
}
.prompt strong,.prompt b,.prompt em,.prompt a,.prompt span,
.hint strong,.hint b,.hint a,
.empty strong,.empty b,.empty a,
.muted strong,.muted b,.muted a,
.page-header a,.hero a{
  color:var(--th-accent,#3ff085) !important;
}
/* panels re-assert their ink */
.panel,.card,.tool-card,.box,.section,.stat-card,.modal,.dropzone,.table-wrap,.form-card,.upload-panel,.toggle-card,.info-note,.info-box,.filters,.toolbar,.mode-bar,.sidebar,.result-box{
  color:#dff5e8 !important;
}
.panel .page-title,.card .page-title,.panel h1,.card h1,.panel h2,.card h2,
.panel .page-sub,.card .page-sub,.panel p,.card p{
  color:#dff5e8 !important;
  text-shadow:none !important;
}
.panel .sec-label,.card .sec-label,.panel .section-label,.card .section-label{
  color:var(--th-accent,#3ff085) !important;
  text-shadow:none !important;
}
.panel h1,.card h1,.form-card h1,.upload-panel h1{color:#f2fff8 !important;}
.panel .empty,.card .empty,.panel .empty p,.card .empty p,
.panel .prompt,.card .prompt,.panel .hint,.card .hint,
.panel .muted,.card .muted,
.panel .empty-msg,.card .empty-msg,.panel .upload-hint,.card .upload-hint,
.panel .coords-note,.card .coords-note,.panel-title,.sidebar-title{
  color:#7fa894 !important;
  text-shadow:none !important;
}
.panel strong,.card strong{color:inherit !important;}

/* Inputs: dark fields, light ink — set background and text together, always. */
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=submit]):not([type=button]):not([type=reset]):not([type=image]):not([type=file]),
select,
textarea{
  background:rgba(63,240,133,.05) !important;
  background-image:none !important;
  color:#dff5e8 !important;
  border:1px solid rgba(64,224,140,.28) !important;
  font-family:var(--mono) !important;
  -webkit-text-fill-color:#dff5e8 !important;
  caret-color:var(--th-accent,#3ff085) !important;
  border-radius:4px;
}
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=submit]):not([type=button]):focus,
select:focus,
textarea:focus{
  border-color:rgba(63,240,133,.6) !important;
  box-shadow:0 0 0 3px rgba(63,240,133,.12) !important;
  outline:none !important;
}
input[type=checkbox],input[type=radio]{
  background:initial !important;
  border:initial !important;
  accent-color:var(--th-accent,#3ff085) !important;
}
option,optgroup{
  background:#07120c !important;
  color:#dff5e8 !important;
}
input::placeholder,textarea::placeholder{
  color:#517b64 !important;
  -webkit-text-fill-color:#517b64 !important;
  opacity:1 !important;
}
input:disabled,select:disabled,textarea:disabled,
input[readonly],textarea[readonly]{
  background:rgba(63,240,133,.03) !important;
  color:#6d8f7d !important;
  -webkit-text-fill-color:#6d8f7d !important;
}

/* Buttons: fill + ink controlled together. Primary = signal green on void. */
.btn:not(.btn-ghost):not(.btn-outline):not(.btn-secondary):not(.btn-copy):not(.btn-link):not(.btn-danger),
.gen-btn,.scan-btn,.search-btn,.action-btn,.run-btn,.send-btn,
button[class*="primary"]{
  background:var(--th-accent,#3ff085) !important;
  color:#04140c !important;
  border-color:var(--th-accent,#3ff085) !important;
  font-weight:700 !important;
  letter-spacing:.06em;
}
.btn-danger,.btn-red{ background:#c73a46 !important; color:#fff !important; border-color:#c73a46 !important; }
.btn-ghost,.btn-outline,.btn-secondary,.btn-copy,.btn-link{
  background:transparent !important;
  color:#a9c9b8 !important;
  border:1px solid rgba(64,224,140,.3) !important;
}
.btn-ghost:hover,.btn-outline:hover,.btn-secondary:hover,.btn-copy:hover,.btn-link:hover{
  color:var(--th-accent,#3ff085) !important;
  border-color:rgba(63,240,133,.55) !important;
}
button{font-family:var(--font) !important;}

/* retired-neon leftovers used inline */
[style*="#39ff14"],[style*="#00f5ff"],.cdet,.text-cyan,.text-blue,.stats span,.stat-val span{
  color:var(--th-accent,#3ff085) !important;
}

/* results & output surfaces (appear after a feature runs) */
.tbl-wrap,.results,.result-box,.result-card,.history-item,.raw-wrap,
.report-area,#report-area,#output,#result-card,.output,
.email-preview,.post-list,.slist,.file-list{
  background:linear-gradient(180deg,rgba(8,20,14,.96),rgba(6,15,10,.94)) !important;
  color:#dff5e8 !important;
  border:1px solid rgba(64,224,140,.22) !important;
  border-radius:8px;
}
/* the PDF preview pane keeps a neutral surface — it holds a rendered page */
.preview-wrap{background:#20241f !important;}

.tbl-wrap *,.results *,.result-box *,.result-card *,.history-item *,
.report-area *,#report-area *,#output *,#result-card *,.output *{
  text-shadow:none !important;
}
.tbl-wrap td,.tbl-wrap th,.tbl-wrap span,.tbl-wrap div,
.results td,.results th,#report-area td,#report-area th{
  color:#dff5e8;
}

/* tables safety net */
table{background:rgba(7,18,12,.92) !important;color:var(--text);}
td,th{border-color:rgba(64,224,140,.14) !important;}
tbody td{color:#dff5e8;}
th{color:#7fa894 !important;letter-spacing:.08em;text-transform:uppercase;font-size:.72em;}

/* dynamic accent text inside results */
.tbl-wrap .cbadge,.results .cbadge,td .cbadge,
.tbl-wrap .ai-ok,td.ai-ok{color:var(--th-accent,#3ff085) !important;}
td.blank{color:#ffb648 !important;}

/* scrollbars */
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-thumb{background:rgba(63,240,133,.25);border-radius:5px;}
::-webkit-scrollbar-thumb:hover{background:rgba(63,240,133,.45);}
::-webkit-scrollbar-track{background:transparent;}

/* mobile: deliberate simplification — single column, calm spacing */
@media(max-width:640px){
  .panel,.card,.tool-card,.form-card{border-radius:8px;}
  body{background-attachment:scroll, scroll, scroll !important;}
}
