/* Dimensional surfaces use CSS only; controls and chart geometry remain flat and readable. */
[data-theme=porcelain3d]{--bg:#eef0f7;--surface:#fafbff;--border:#d8dcea;--text:#292c43;--muted:#555c73;--primary:#6550a7;--on-primary:#fff;--success:#216649;--danger:#a42d4b;--warning:#795013;--accent:#c9bef0;--accent-two:#bfdcdb;--soft:#e6e8f2;--side:#f5f6fc;--radius:26px;--head-font:'Trebuchet MS',system-ui,sans-serif;--depth:#bac1d755;--edge:#fff;--shadow:8px 10px 0 -6px #c2c8df,14px 20px 32px #a4acc338,inset 0 2px 1px #fff;color-scheme:light}
[data-theme=lagoon3d]{--bg:#e9f3f1;--surface:#f5fcfa;--border:#c5dcd6;--text:#1f3b3a;--muted:#456560;--primary:#226f69;--on-primary:#fff;--success:#216649;--danger:#a42d4b;--warning:#795013;--accent:#a9d8cd;--accent-two:#b8c9e4;--soft:#dceee8;--side:#edf8f3;--radius:30px;--head-font:'Trebuchet MS',system-ui,sans-serif;--depth:#8eb7ad55;--edge:#fff;--shadow:8px 10px 0 -6px #abcfc4,14px 20px 32px #709a8d26,inset 0 2px 1px #fff;color-scheme:light}
[data-theme=alloy3d]{--bg:#141c2b;--surface:#233147;--border:#4c607b;--text:#f0f5fc;--muted:#bacbdd;--primary:#a1dfe6;--on-primary:#142936;--success:#b3e2c6;--danger:#ffc0ce;--warning:#f2d399;--accent:#839bc5;--accent-two:#7bbdbf;--soft:#2b3c55;--side:#1b273a;--radius:24px;--head-font:'Trebuchet MS',system-ui,sans-serif;--depth:#0006;--edge:#ffffff16;--shadow:8px 10px 0 -6px #0c1421,14px 20px 32px #0004,inset 0 2px 1px #ffffff18;color-scheme:dark}
html:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]) body::before{background:radial-gradient(ellipse at 90% 0,var(--accent),transparent 45%),radial-gradient(ellipse at 0 90%,var(--accent-two),transparent 45%);opacity:.22}
:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]) :is(.card,.hero-panel,.page-intro,.theme-preview-panel){background:linear-gradient(145deg,var(--surface),var(--soft));border:1px solid var(--border);box-shadow:var(--shadow);backdrop-filter:none}
:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]) :is(.btn,button):not(.table-sort){border-radius:17px;box-shadow:inset 0 2px 1px #ffffff50,inset 0 -3px 1px #0002,0 4px 0 var(--depth),0 7px 12px var(--depth);transition:transform .15s,box-shadow .15s}
:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]) :is(.btn,button):not(.table-sort):active{transform:translateY(2px);box-shadow:inset 0 1px 2px #0002,0 2px 0 var(--depth)}
:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]) :is(input,select,textarea){border-radius:14px;background:var(--surface);box-shadow:inset 2px 3px 6px var(--depth),inset -2px -2px 4px var(--edge)}
:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]) :is(input,select,textarea,button,a):focus-visible{outline:3px solid var(--primary);outline-offset:4px}
:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]) .router-top{fill:var(--surface);stroke:var(--border);stroke-width:2}
:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]) .router-front{fill:var(--accent);stroke:var(--border);stroke-width:2}
:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]) .router-side{fill:var(--accent-two);stroke:var(--border);stroke-width:2}
:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]) .router-art svg{filter:drop-shadow(8px 14px 8px var(--depth))}
:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]) .router-antenna{stroke:var(--accent);stroke-width:12}
:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]) .router-signal{stroke:var(--primary);stroke-width:7}
:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]) .router-led{fill:var(--success)}
.theme-preview:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]){background:var(--bg);color:var(--text);border-radius:22px}
.theme-preview:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]) .theme-preview-side{background:var(--side);border-right:1px solid var(--border)}
.theme-preview:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]) .theme-preview-panel{border-radius:16px;box-shadow:4px 6px 0 -2px var(--depth),inset 0 2px 1px var(--edge)}
.theme-preview:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]) .theme-preview-button{background:var(--primary);color:var(--on-primary);border-radius:11px;box-shadow:inset 0 2px 1px #fff4,0 4px 0 var(--depth)}
@media(prefers-reduced-motion:reduce){:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]) :is(.btn,button){transition:none;transform:none}}
html[data-motion="0"]:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]) :is(.btn,button){transition:none;transform:none}
@media(max-width:700px){:is([data-theme=porcelain3d],[data-theme=lagoon3d],[data-theme=alloy3d]) :is(.card,.hero-panel){box-shadow:4px 6px 0 -3px var(--depth),0 8px 18px var(--depth),inset 0 2px 1px var(--edge)}}
