/* Signal Architect Royal Institutional Visual System v1.0
   Reference palette: Top-Down / Bottom-Up Analysis.
   Loaded last and scoped to body.sa-royal-theme so research logic is untouched. */

body.sa-royal-theme{
  color-scheme:dark;
  --sa-royal-bg:#080b0d;
  --sa-royal-bg-deep:#050809;
  --sa-royal-panel:#0d1215;
  --sa-royal-panel-2:#11171b;
  --sa-royal-ivory:#f3efe4;
  --sa-royal-text:#c7c5bc;
  --sa-royal-muted:#9d9a91;
  --sa-royal-brass:#b79a5b;
  --sa-royal-brass-2:#d2bd86;
  --sa-royal-line:rgba(183,154,91,.32);
  --sa-royal-line-soft:rgba(183,154,91,.20);
  --sa-royal-bull:#78c5a5;
  --sa-royal-bear:#d08787;
  --sa-royal-info:#8fb6ce;
  --sa-royal-warn:#d7b36b;
  --sa-royal-shadow:0 24px 70px rgba(0,0,0,.30);

  /* Shared-variable remap */
  --sa-bg:var(--sa-royal-bg);
  --sa-panel:var(--sa-royal-panel);
  --sa-text:var(--sa-royal-ivory);
  --sa-muted:var(--sa-royal-muted);
  --sa-line:var(--sa-royal-line);
  --sa-accent:var(--sa-royal-brass-2);
  --sa-focus:var(--sa-royal-brass-2);
  --bg:var(--sa-royal-bg);
  --panel:var(--sa-royal-panel);
  --panel2:var(--sa-royal-panel-2);
  --text:var(--sa-royal-ivory);
  --muted:var(--sa-royal-muted);
  --line:var(--sa-royal-line);
  --accent:var(--sa-royal-brass-2);
  --cyan:var(--sa-royal-info);
  --green:var(--sa-royal-bull);
  --red:var(--sa-royal-bear);
  --bad:var(--sa-royal-bear);
  --amber:var(--sa-royal-warn);

  /* Specialist workspace variable families */
  --ar-bg:var(--sa-royal-bg);
  --ar-panel:var(--sa-royal-panel);
  --ar-panel2:var(--sa-royal-panel-2);
  --ar-line:var(--sa-royal-line);
  --ar-text:var(--sa-royal-ivory);
  --ar-muted:var(--sa-royal-muted);
  --ar-cyan:var(--sa-royal-brass-2);
  --ar-green:var(--sa-royal-bull);
  --ar-amber:var(--sa-royal-warn);
  --ar-red:var(--sa-royal-bear);
  --ar-shadow:var(--sa-royal-shadow);
  --ipe-border:var(--sa-royal-line);
  --ipe-panel:rgba(13,18,21,.94);
  --ipe-muted:var(--sa-royal-muted);
  --ipe-cyan:var(--sa-royal-brass-2);
  --ipe-gold:var(--sa-royal-brass-2);
  --ipe-red:var(--sa-royal-bear);
  --il-panel:var(--sa-royal-panel);
  --il-panel2:var(--sa-royal-panel-2);
  --il-border:var(--sa-royal-line);
  --il-accent:var(--sa-royal-brass-2);

  margin-top:0;
  background:radial-gradient(circle at 50% -18%,#20272a 0,#0b0f11 34%,#060809 72%) !important;
  color:var(--sa-royal-ivory) !important;
  font-family:Inter,"Segoe UI",Arial,sans-serif;
}

html:has(body.sa-royal-theme){background:var(--sa-royal-bg-deep)!important}

body.sa-royal-theme h1,
body.sa-royal-theme h2,
body.sa-royal-theme h3,
body.sa-royal-theme h4,
body.sa-royal-theme h5,
body.sa-royal-theme .title-block h1,
body.sa-royal-theme .brand strong{
  font-family:Georgia,"Times New Roman",serif!important;
  color:var(--sa-royal-ivory)!important;
  font-weight:500;
}

body.sa-royal-theme a{color:var(--sa-royal-brass-2)}
body.sa-royal-theme ::selection{background:rgba(210,189,134,.28);color:var(--sa-royal-ivory)}

/* Global navigation / identity */
body.sa-royal-theme .sa-global-header,
body.sa-royal-theme .top-bar,
body.sa-royal-theme .topbar,
body.sa-royal-theme .lh-header,
body.sa-royal-theme .ar-header,
body.sa-royal-theme .ipe-header{
  background:rgba(5,8,9,.95)!important;
  border-color:var(--sa-royal-line)!important;
  box-shadow:none!important;
  backdrop-filter:blur(14px);
}
body.sa-royal-theme .sa-global-mark,
body.sa-royal-theme .logo,
body.sa-royal-theme .lh-mark,
body.sa-royal-theme .ar-mark{
  border-color:var(--sa-royal-brass)!important;
  color:var(--sa-royal-brass-2)!important;
  background:#0c1113!important;
  box-shadow:none!important;
}
body.sa-royal-theme .sa-global-brand,
body.sa-royal-theme .sa-global-nav a,
body.sa-royal-theme .lh-brand,
body.sa-royal-theme .ar-brand{color:var(--sa-royal-ivory)!important}
body.sa-royal-theme .sa-global-nav a:hover,
body.sa-royal-theme .sa-global-nav a[aria-current="page"],
body.sa-royal-theme .sa-global-nav a.active{color:var(--sa-royal-brass-2)!important}

/* Legacy home/workspace palette remap */
body.sa-royal-theme .cad-shell{background:transparent!important}
body.sa-royal-theme .title-block h1{color:var(--sa-royal-ivory)!important;letter-spacing:.12em}
body.sa-royal-theme .title-block p,
body.sa-royal-theme .status-panel p,
body.sa-royal-theme #lastUpdated{color:var(--sa-royal-muted)!important}
body.sa-royal-theme .top-bar,
body.sa-royal-theme .tab-bar,
body.sa-royal-theme .ticker-strip{border-color:var(--sa-royal-line)!important}
body.sa-royal-theme .ticker-strip{background:rgba(8,13,15,.96)!important}
body.sa-royal-theme .ticker-label,
body.sa-royal-theme .tab-btn{color:var(--sa-royal-brass-2)!important}
body.sa-royal-theme .tab-btn{
  background:#0a0f11!important;
  border-color:var(--sa-royal-line)!important;
  box-shadow:none!important;
  border-radius:3px!important;
}
body.sa-royal-theme .tab-btn:hover,
body.sa-royal-theme .tab-btn.active{
  background:linear-gradient(180deg,rgba(183,154,91,.15),rgba(183,154,91,.05))!important;
  border-color:var(--sa-royal-brass-2)!important;
  color:var(--sa-royal-ivory)!important;
  box-shadow:inset 0 0 0 1px rgba(210,189,134,.10)!important;
}
body.sa-royal-theme .market-pulse-symbol,
body.sa-royal-theme .market-pulse-price{color:var(--sa-royal-ivory)!important}
body.sa-royal-theme .market-pulse-up{color:var(--sa-royal-bull)!important}
body.sa-royal-theme .market-pulse-down{color:var(--sa-royal-bear)!important}
body.sa-royal-theme .market-pulse-neutral{color:var(--sa-royal-warn)!important}
body.sa-royal-theme .market-pulse-state{background:#0a0f11!important;border-color:var(--sa-royal-line-soft)!important;color:var(--sa-royal-muted)!important}

/* Institutional surfaces. We style common surface classes while leaving geometry/grid logic intact. */
body.sa-royal-theme :is(.panel,.block,.card,.lh-panel,.lh-card,.lh-metric,.lh-tf,.ar-panel,.ar-model-card,.ar-road-card,.ar-sequence-row,.ll-card,.status,.boundary,.journey,.enterprise,.plan,.gate,.mini-card,.decision-card,.metric,.questionbox,.evidence-item,.sa-price-preference,.sa-journey-rail,.sa-context-strip){
  border-color:var(--sa-royal-line-soft)!important;
  background-color:var(--sa-royal-panel)!important;
  background-image:linear-gradient(145deg,rgba(17,23,27,.92),rgba(9,13,15,.96))!important;
  box-shadow:none!important;
}
body.sa-royal-theme :is(.hero,.lh-hero,.ar-hero){
  border-color:var(--sa-royal-line)!important;
  background:linear-gradient(135deg,rgba(31,36,38,.90),rgba(10,14,16,.94))!important;
  box-shadow:var(--sa-royal-shadow)!important;
}
body.sa-royal-theme :is(.panel,.block,.card,.lh-panel,.lh-card,.lh-metric,.lh-tf,.ar-panel,.ar-model-card,.ar-road-card,.ar-sequence-row,.ll-card,.status,.boundary,.journey,.enterprise,.plan,.gate,.mini-card,.decision-card,.metric,.questionbox,.evidence-item){border-radius:6px!important}

/* Labels / eyebrows / selected context use brass. */
body.sa-royal-theme :is(.eyebrow,.lh-kicker,.ar-kicker,.kicker,.section-kicker,.recommended-label){color:var(--sa-royal-brass-2)!important}
body.sa-royal-theme :is(.muted,.hint,.lh-empty,.lh-footnote,.ar-muted){color:var(--sa-royal-muted)!important}

/* Controls */
body.sa-royal-theme input,
body.sa-royal-theme select,
body.sa-royal-theme textarea{
  background:#070b0d!important;
  color:var(--sa-royal-ivory)!important;
  border-color:var(--sa-royal-line)!important;
  border-radius:4px!important;
}
body.sa-royal-theme input:focus,
body.sa-royal-theme select:focus,
body.sa-royal-theme textarea:focus{border-color:var(--sa-royal-brass-2)!important;outline-color:var(--sa-royal-brass-2)!important}
body.sa-royal-theme button,
body.sa-royal-theme .primary,
body.sa-royal-theme a.primary{
  border-radius:4px!important;
}
body.sa-royal-theme :is(button.primary,.primary:not(.tag),.billing button,.enterprise button,.ar-button){
  background:var(--sa-royal-brass)!important;
  border-color:var(--sa-royal-brass)!important;
  color:#090c0d!important;
  box-shadow:none!important;
}
body.sa-royal-theme :is(button.ghost,.ghost,.outline,.secondary,.ar-button.secondary){
  background:transparent!important;
  border-color:var(--sa-royal-line)!important;
  color:var(--sa-royal-brass-2)!important;
}
body.sa-royal-theme button:hover,
body.sa-royal-theme .primary:hover,
body.sa-royal-theme .outline:hover{border-color:var(--sa-royal-brass-2)!important;filter:brightness(1.05)}

/* Tables */
body.sa-royal-theme table{color:var(--sa-royal-text)}
body.sa-royal-theme th{color:var(--sa-royal-brass-2)!important;border-color:var(--sa-royal-line-soft)!important}
body.sa-royal-theme td{border-color:var(--sa-royal-line-soft)!important}
body.sa-royal-theme tbody tr:hover{background:rgba(183,154,91,.035)!important}

/* Semantic analytical state colors remain separate from decorative brass. */
body.sa-royal-theme :is(.bull,.positive,.up,.confirmed,.ready,.success){--state-color:var(--sa-royal-bull)}
body.sa-royal-theme :is(.bear,.negative,.down,.failed,.critical,.error){--state-color:var(--sa-royal-bear)}
body.sa-royal-theme :is(.warning,.forming,.developmental,.advisory){--state-color:var(--sa-royal-warn)}
body.sa-royal-theme .lh-tabs button.active{border-color:var(--sa-royal-brass-2)!important;color:var(--sa-royal-brass-2)!important;background:rgba(183,154,91,.08)!important}
body.sa-royal-theme .lh-candidate .state,
body.sa-royal-theme .ar-status.confirmed,
body.sa-royal-theme .ar-pill.confirmed{color:var(--sa-royal-bull)!important}
body.sa-royal-theme .ar-status.developmental,
body.sa-royal-theme .ar-pill.forming{color:var(--sa-royal-warn)!important}

/* Public/marketing pages */
body.sa-royal-theme header>span,
body.sa-royal-theme .enterprise span{color:var(--sa-royal-brass-2)!important}
body.sa-royal-theme .mode{border-color:var(--sa-royal-line)!important}
body.sa-royal-theme .plan.recommended{border-color:var(--sa-royal-brass-2)!important;box-shadow:inset 0 0 0 1px rgba(210,189,134,.10)!important}
body.sa-royal-theme .recommended-label{color:var(--sa-royal-brass-2)!important}
body.sa-royal-theme header>a,
body.sa-royal-theme .boundary a{color:var(--sa-royal-brass-2)!important}

/* Thin premium separators instead of neon glows. */
body.sa-royal-theme *:focus-visible{outline:1px solid var(--sa-royal-brass-2)!important;outline-offset:2px}

@media(max-width:700px){
  body.sa-royal-theme h1{letter-spacing:.01em}
}
