/* Shared light/dark appearance. Screen-only rules preserve printed documents. */
@media screen {
 :root{
  --bg:#F6F5FC;
  --glow-1:rgba(139,92,246,.16);
  --glow-2:rgba(77,141,255,.12);
  --card:rgba(255,255,255,.75);
  --card-inner:rgba(109,63,232,.06);
  --border:rgba(30,27,75,.08);
  --shadow:0 4px 20px rgba(76,52,170,.08);
  --text:#1B1A33;
  --text-2:#4A4868;
  --text-muted:#6B6890;
  --primary:#7C4DF0;
  --primary-end:#6236E0;
  --primary-gradient:linear-gradient(135deg,#7C4DF0,#6236E0);
  --primary-hover:linear-gradient(135deg,#7041E3,#582BCC);
  --accent:#6D3FE8;
  --blue:#2563EB;
  --orange:#F59E0B;
  --green:#059669;
  --danger:#E11D48;
  --radius-card:16px;
  --radius-control:10px;

  /* Semantic aliases keep every module on the same palette. */
  --brand:var(--primary);
  --brand-hover:var(--primary-end);
  --on-brand:#FFFFFF;
  --surface:var(--card);
  --surface-raised:#FFFFFF;
  --sidebar:var(--card);
  --soft:var(--card-inner);
  --secondary:var(--text-2);
  --muted:var(--text-muted);
  --blue-soft:rgba(37,99,235,.09);
  --blue-ink:#1D4ED8;
  --green-soft:rgba(5,150,105,.09);
  --green-ink:#047857;
  --amber:var(--orange);
  --amber-soft:rgba(245,158,11,.12);
  --amber-ink:#92400E;
  --note:var(--orange);
  --note-ink:var(--amber-ink);
  --note-soft:var(--amber-soft);
  --note-border:rgba(245,158,11,.25);
  --red:var(--danger);
  --red-soft:rgba(225,29,72,.08);
  --danger-bg:var(--danger);
  --danger-soft:var(--red-soft);
  --danger-border:rgba(225,29,72,.3);
  --on-danger:#FFFFFF;
  --focus:var(--accent);
  --hover-border:rgba(109,63,232,.35);
  --hover-surface:rgba(109,63,232,.09);
  --accent-soft:rgba(109,63,232,.09);
  --selection:rgba(139,92,246,.2);
  --backdrop:rgba(30,27,75,.35);
  color-scheme:light;
  scrollbar-color:rgba(109,63,232,.3) var(--bg);
 }
 :root[data-theme=dark]{
  --bg:#0B0A1F;
  --glow-1:rgba(124,77,255,.28);
  --glow-2:transparent;
  --card:rgba(26,24,58,.65);
  --card-inner:rgba(255,255,255,.04);
  --border:rgba(255,255,255,.08);
  --text:#F5F4FF;
  --text-2:#C9C6E4;
  --text-muted:#8A87AD;
  --primary:#8B5CF6;
  --primary-end:#6D3FE8;
  --primary-gradient:linear-gradient(135deg,#8B5CF6,#6D3FE8);
  --primary-hover:linear-gradient(135deg,#7C4FE7,#6335D8);
  --accent:#A78BFA;
  --blue:#4D8DFF;
  --orange:#FF9F43;
  --green:#34D399;
  --danger:#FF6B8A;
  --radius-card:16px;
  --radius-control:10px;

  /* Existing modules consume these semantic aliases. */
  --brand:var(--primary);
  --brand-hover:var(--primary-end);
  --on-brand:#FFFFFF;
  --surface:var(--card);
  --surface-raised:#1A183A;
  --sidebar:var(--card);
  --soft:var(--card-inner);
  --secondary:var(--text-2);
  --muted:var(--text-muted);
  --blue-soft:rgba(77,141,255,.13);
  --blue-ink:var(--blue);
  --green-soft:rgba(52,211,153,.12);
  --green-ink:var(--green);
  --amber:var(--orange);
  --amber-soft:rgba(255,159,67,.12);
  --amber-ink:var(--orange);
  --note:var(--orange);
  --note-ink:#FFBB7B;
  --note-soft:var(--amber-soft);
  --note-border:rgba(255,159,67,.25);
  --red:var(--danger);
  --red-soft:rgba(255,107,138,.12);
  --danger-bg:var(--danger);
  --danger-soft:var(--red-soft);
  --danger-border:rgba(255,107,138,.35);
  --on-danger:#0B0A1F;
  --focus:var(--accent);
  --hover-border:rgba(167,139,250,.45);
  --hover-surface:rgba(255,255,255,.07);
  --accent-soft:rgba(167,139,250,.12);
  --selection:rgba(139,92,246,.4);
  --backdrop:rgba(5,4,20,.72);
  --shadow:none;
  color-scheme:dark;
  scrollbar-color:rgba(167,139,250,.3) var(--bg);
 }
 :root body{
  min-height:100dvh;
  background:radial-gradient(ellipse at 0% 0%,var(--glow-1),transparent 60%),
   radial-gradient(ellipse at 85% 100%,var(--glow-2),transparent 55%),var(--bg);
  background-attachment:fixed;
 }
 :root[data-theme=dark] body{
  background:radial-gradient(ellipse at 85% 100%,var(--glow-1),transparent 55%),var(--bg);
  background-attachment:fixed;
 }
 :root[data-theme] ::selection{background:var(--selection);color:var(--text)}
 :root[data-theme] :is(.workspace,.main-wrap,#content,.main-footer){background:transparent}

 /* Glass is reserved for the outer surfaces, rather than repeated on every table row. */
 :root[data-theme] :is(.sidebar,.topbar){
  background:var(--card);
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
 }
 :root[data-theme] :is(
  .panel,.stat-card,.journey-card,.office-card,.module-card,.project-card,
  .asset-company,.asset-stat,.asset-card-hero,.asset-details,
  .fin-company-bar,.fin-stats>div,.fin-nav details,
  .desk-metric,.purchase-summary-counts a,.task-desk>a,.board-column,
  .mail-account-bar,.mail-layout,.mail-flow-card,.online-panel,.voyage-card
 ){
  background:var(--card);
  border-color:var(--border);
  border-radius:var(--radius-card);
  box-shadow:var(--shadow);
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
 }
 :root[data-theme] :is(
  .workspace-selector,.version-card,.task-detail-summary,.task-view-toggle,
  .task-more-actions summary,.mail-ai-policy,.mail-flow-stats>div,
  .crm-tags span,.asset-place-code
 ){
  background:var(--card-inner);
  border-color:var(--border);
  border-radius:var(--radius-control);
 }
 :root[data-theme] .journey-card{
  background:linear-gradient(120deg,var(--card) 45%,rgba(109,63,232,.16));
 }
 :root[data-theme] :is(.btn,.icon-btn,input,select,textarea,.nav-link,.tab,.mail-folder){
  border-radius:var(--radius-control);
 }
 :root[data-theme] :is(input,select,textarea){
  background:var(--card-inner);
  color:var(--text);
 }
 :root[data-theme] :is(input,select,textarea)::placeholder{color:var(--text-muted);opacity:1}
 :root[data-theme] :is(input,select,textarea):focus{border-color:var(--accent)}
 :root[data-theme] :is(option,optgroup){background:var(--surface-raised);color:var(--text)}
 :root[data-theme] .search-field input{background:transparent}

 /* Raised menus remain opaque, so underlying text cannot bleed through them. */
 :root[data-theme] :is(
  dialog,.notification-panel,.task-more-actions>div,.draft-leave-dialog,
  .online-summary,.fin-more[open]
 ){
  background:var(--surface-raised);
  border-color:var(--border);
  box-shadow:var(--shadow);
 }
 :root[data-theme] dialog{border-radius:var(--radius-card)}
 :root[data-theme] .btn{background:var(--card-inner);color:var(--text-2)}
 :root[data-theme] :is(.btn,.icon-btn,.nav-link):hover{
  background:var(--hover-surface);
  border-color:var(--hover-border);
  color:var(--text);
 }
 :root[data-theme] :is(
  .btn.primary,.nav-link.active,.mail-folder.selected,
  .mail-flow-nav .btn[aria-current=page],.fin-nav a.active,
  .purchase-form-steps button[aria-current=step]
 ){
  background:var(--primary-gradient);
  border-color:transparent;
  color:var(--on-brand);
  box-shadow:0 4px 16px rgba(109,63,232,.2);
 }
 :root[data-theme] .btn.primary:hover{
  background:var(--primary-hover);
  border-color:transparent;
  color:var(--on-brand);
 }
 :root[data-theme] :is(.nav-link.active .icon,.mail-folder.selected>.icon){color:var(--on-brand)}
 :root[data-theme] :is(
  .text-btn,.text-link,.asset-code,.task-code,.greeting-dot,
  .journey-copy .eyebrow,.auth-story h1>span
 ){color:var(--accent)}
 :root[data-theme] :is(.workspace-online,.version-dot){background:var(--green)}
 :root[data-theme] .tab.selected{background:var(--accent-soft);color:var(--accent)}
 :root[data-theme] :is(.task-view-toggle a[aria-current],.asset-nav>a.active){
  background:var(--accent-soft);color:var(--accent);
 }
 :root[data-theme] :is(th,.crm-report-panel th){background:var(--card-inner);color:var(--text-2)}
 :root[data-theme] :is(.op-table,.fin-workspace .op-table) th{
  /* Sticky headings need a solid backing when rows scroll underneath. */
  background:var(--surface-raised);color:var(--text-2);
 }
 :root[data-theme] tbody tr:hover{background:var(--card-inner)}
 :root[data-theme] .badge.amber{background:var(--amber-soft);color:var(--amber-ink)}
 :root[data-theme] .badge.blue{color:var(--blue-ink)}
 :root[data-theme] .badge.green{color:var(--green-ink)}
 :root[data-theme] .info-banner{
  background:var(--note-soft);color:var(--note-ink);
  border:1px solid var(--note-border);
 }
 :root[data-theme] :is(.task-readiness,.task-action-blocked,.task-blockers>span){border-left-color:var(--orange)}
 :root[data-theme] :is(.notification-count,.operator-cancellation .operator-cancel-confirm){
  background:var(--danger-bg);color:var(--on-danger);
 }
 :root[data-theme=dark] .auth-story{
  background:linear-gradient(150deg,rgba(139,92,246,.15),var(--card));
  border-right:1px solid var(--border);
 }
 :root[data-theme] .auth-main{background:transparent}
 :root[data-theme=dark] .auth-story .eyebrow{color:var(--accent)}
 :root:not([data-theme=dark]) .auth-story{background:var(--primary-gradient)}
 :root:not([data-theme=dark]) .auth-story :is(.eyebrow,h1>span,.route-art){color:var(--on-brand)}
 :root[data-theme] .online-hero .eyebrow{color:var(--on-brand)}
}
