:root{
  --portal-input:#0f1912;--portal-input-line:#3c5842;--portal-hover:#203a27;
  --portal-on-accent:#142214;--portal-glow:#1b30209c;--portal-heading:#e5f2e2;
  --portal-row:#1b2c1f;--portal-error:#ffd5d5;--portal-error-bg:#4b252b;
  --portal-ok:#d5f8d3;--portal-ok-bg:#173c22;
}
:root[data-panel-theme="neon"]{
  --bg:#090c1b;--card:#151b32;--line:#374365;--text:#eef2ff;--muted:#a5b5d0;--accent:#78e4f5;
  --portal-input:#10142b;--portal-input-line:#485e80;--portal-hover:#263556;
  --portal-on-accent:#092536;--portal-glow:#583c9a55;--portal-heading:#eef2ff;--portal-row:#1e2640;
}
:root[data-panel-theme="paper"]{
  --bg:#f2eee5;--card:#fffcf5;--line:#d7c9b4;--text:#303126;--muted:#6c6d60;--accent:#a34e36;
  --portal-input:#fcf9f1;--portal-input-line:#b6a78e;--portal-hover:#eadbc4;
  --portal-on-accent:#fff;--portal-glow:#eac79688;--portal-heading:#303126;--portal-row:#f1e9da;
  --portal-error:#842c30;--portal-error-bg:#fae5e4;--portal-ok:#285431;--portal-ok-bg:#e3f0df;
}
body{background:radial-gradient(circle at 76% -16%,var(--portal-glow),transparent 34%),var(--bg)}
.portal-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-wrap:wrap;min-width:0}
.top .portal-theme-switch{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;background:var(--portal-input);color:var(--text);border:1px solid var(--line);padding:9px 12px;font-size:12px;min-height:38px}
.portal-theme-switch[hidden]{display:none}
.top .portal-theme-switch:hover{background:var(--portal-hover);border-color:var(--accent)}
.portal-theme-switch:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.portal-theme-switch>span:first-child{font-size:17px;line-height:1;color:var(--accent)}
/* The portal has its own forms and tables; keep every surface within its palette. */
.card,.portal-disclosure{background:var(--card)}
input,textarea,select{background:var(--portal-input);color:var(--text);border-color:var(--portal-input-line);color-scheme:inherit}
input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
button{color:var(--portal-on-accent)}
button:hover{background:var(--accent);filter:brightness(1.06)}
.top button:hover{background:var(--portal-hover)}
.top nav a:hover,.top nav a[aria-current="page"]{background:var(--portal-hover);border-color:var(--line);color:var(--text)}
.portal-eyebrow,.portal-disclosure>summary:after{color:var(--accent)}
.portal-disclosure>summary{color:var(--portal-heading)}
.tabs a{background:var(--portal-input);color:var(--text);border-color:var(--line)}
.tabs a[aria-current="page"]{background:var(--accent);color:var(--portal-on-accent);border-color:var(--accent)}
.card th{background:var(--portal-input);color:var(--muted)}
.card td,.card th,.actions a{border-color:var(--line)}
.card tr:hover td{background:var(--portal-row)}
.error{color:var(--portal-error);background:var(--portal-error-bg)}
.ok{color:var(--portal-ok);background:var(--portal-ok-bg)}
@media(max-width:800px){.portal-header-actions{justify-content:flex-start;margin-top:14px;gap:10px}.portal-header-actions nav{margin-top:0}.top .portal-theme-switch{min-height:44px}}
@media(prefers-reduced-motion:reduce){.portal-theme-switch{transition:none}}
