/* FALCON theme — light / dark for the console login, Studio, Analyst Desk, Daily Calculator and admin.
   Graph scenes (4D views, the solar system, the replay) keep their own dark look in both themes; buttons keep
   their shape, size and order. Contrast is checked for WCAG AA (normal text ≥ 4.5:1). */

/* ============================================================ switch button */
.fx-theme-btn{font-size:16px!important;line-height:1!important;min-width:38px;min-height:34px;padding:6px 10px!important;cursor:pointer}
.fx-theme-float{position:fixed;right:12px;bottom:12px;z-index:2147483000;border-radius:999px!important;border:1px solid rgba(15,23,42,.25);
  background:#fff;color:#0f172a;box-shadow:0 6px 18px rgba(15,23,42,.18)}
html[data-theme="dark"] .fx-theme-float{background:#0f172a;color:#f8fafc;border-color:rgba(255,255,255,.25);box-shadow:0 6px 18px rgba(0,0,0,.5)}
.fx-theme-studio{margin-left:auto;padding:3px 9px!important;min-height:28px;font-size:15px!important}
.fx-theme-head{flex:0 0 auto!important;width:auto!important;margin-left:4px}
.fx-theme-btn:focus-visible{outline:3px solid #2563eb!important;outline-offset:2px}
html[data-theme] *{scrollbar-width:thin}
html[data-theme="light"]{color-scheme:light}
html[data-theme="dark"]{color-scheme:dark}

/* ============================================================ STUDIO */
/* dark: lift the faintest text to readable contrast */
html[data-theme="dark"].fx-p-studio:root{--faint:#8d99ba}
html.fx-p-studio .vb .sub{font-size:12px}
/* white text on a filled red: a deeper red keeps the look and passes 4.5:1 */
html[data-theme="dark"].fx-p-studio .btn.primary,html[data-theme="dark"].fx-p-studio .vb.on,html[data-theme="dark"].fx-p-studio .sb.on,
html[data-theme="dark"].fx-p-studio .cat.xmc.on,html[data-theme="dark"].fx-p-studio .tabs button.on,html[data-theme="dark"].fx-p-studio .head .code{background:#dc2626!important;border-color:#dc2626!important}
html.fx-p-studio .fx-theme-studio{color:var(--ink)}
html[data-theme="light"].fx-p-studio:root{
  --bg:#f3f5fa;--ink:#0f172a;--muted:#475569;--faint:#5b6577;
  --red:#cc1f29;--red-soft:#b3212a;--red-glow:rgba(204,31,41,.16);
  --glass:rgba(255,255,255,.9);--glass-hi:#ffffff;--glass-on:rgba(204,31,41,.08);
  --stroke:rgba(15,23,42,.13);--stroke-hi:rgba(15,23,42,.28);
  --ok:#047857;--needs:#b45309;--err:#be123c;--empty:#64748b;--run:#0369a1}
html[data-theme="light"].fx-p-studio body::before{background:
  radial-gradient(42vw 42vw at 8% 12%,rgba(255,90,110,.10),transparent 60%),radial-gradient(38vw 38vw at 92% 8%,rgba(80,130,255,.10),transparent 62%),
  radial-gradient(46vw 46vw at 70% 96%,rgba(20,180,150,.08),transparent 60%),var(--bg)}
html[data-theme="light"].fx-p-studio .glass{box-shadow:0 1px 2px rgba(15,23,42,.06),0 6px 18px rgba(15,23,42,.06);backdrop-filter:none;-webkit-backdrop-filter:none}
html[data-theme="light"].fx-p-studio .brand b,html[data-theme="light"].fx-p-studio #login h1,html[data-theme="light"].fx-p-studio .head h2{text-shadow:none}
html[data-theme="light"].fx-p-studio input,html[data-theme="light"].fx-p-studio select,html[data-theme="light"].fx-p-studio textarea,
html[data-theme="light"].fx-p-studio .card input,html[data-theme="light"].fx-p-studio .card select,html[data-theme="light"].fx-p-studio .form textarea,
html[data-theme="light"].fx-p-studio .form input,html[data-theme="light"].fx-p-studio #login input,
html[data-theme="light"].fx-p-studio [style*="background:rgba(0,0,0,.28)"],html[data-theme="light"].fx-p-studio [style*="background:rgba(0,0,0,.3)"]{
  background:#fff!important;border-color:var(--stroke-hi)!important;color:var(--ink)}
html[data-theme="light"].fx-p-studio .card input[type=datetime-local]{color-scheme:light}
html[data-theme="light"].fx-p-studio ::placeholder{color:#64748b;opacity:1}
html[data-theme="light"].fx-p-studio .bar{background:rgba(15,23,42,.1)}
html[data-theme="light"].fx-p-studio .kpi b{background:none;-webkit-text-fill-color:currentColor;color:var(--ink)}
html[data-theme="light"].fx-p-studio .rp p,html[data-theme="light"].fx-p-studio .rp li{color:#1e293b}
html[data-theme="light"].fx-p-studio .rp b.n,html[data-theme="light"].fx-p-studio [style*="color:#fff"]:not(.btn):not(.on){color:var(--ink)!important}
html[data-theme="light"].fx-p-studio .btn.primary,html[data-theme="light"].fx-p-studio .vb.on .nm,html[data-theme="light"].fx-p-studio .sb.on .nm,
html[data-theme="light"].fx-p-studio .head .code,html[data-theme="light"].fx-p-studio .tabs button.on{color:#fff}
html[data-theme="light"].fx-p-studio [style*="color:#ffb02e"]{color:#b45309!important}
html[data-theme="light"].fx-p-studio [style*="color:#ff6b81"]{color:#be123c!important}
html[data-theme="light"].fx-p-studio th{background:#eef1f7;color:var(--red-soft)}
html[data-theme="light"].fx-p-studio td{border-top-color:rgba(15,23,42,.08)}
html[data-theme="light"].fx-p-studio tr:hover td{background:rgba(15,23,42,.035)}
html[data-theme="light"].fx-p-studio .chart svg text{fill:#334155}
html[data-theme="light"].fx-p-studio .chart svg [stroke="rgba(255,255,255,.05)"],html[data-theme="light"].fx-p-studio .chart svg [stroke="rgba(255,255,255,.08)"],
html[data-theme="light"].fx-p-studio .chart svg [stroke="rgba(255,255,255,.1)"]{stroke:rgba(15,23,42,.14)}
html[data-theme="light"].fx-p-studio .chart svg [fill="rgba(255,255,255,.05)"],html[data-theme="light"].fx-p-studio .chart svg [fill="rgba(255,255,255,.03)"]{fill:rgba(15,23,42,.04)}
html[data-theme="light"].fx-p-studio #side::-webkit-scrollbar-thumb,html[data-theme="light"].fx-p-studio #stage::-webkit-scrollbar-thumb{background:rgba(15,23,42,.2)}
html[data-theme="light"].fx-p-studio iframe[style*="background:#05080f"]{background:#f3f5fa!important}
html[data-theme="light"].fx-p-studio #drop{background:rgba(243,245,250,.9)}
html[data-theme="light"].fx-p-studio #toast{background:#0f172a;color:#f8fafc;border-color:#0f172a}
/* responsive: the top bar never squeezes below readable width */
@media (max-width:1180px){html.fx-p-studio #topbar .card{min-width:0}html.fx-p-studio .card .lbl{white-space:normal}}
@media (max-width:640px){
  html.fx-p-studio .card .lbl{font-size:17px}
  html.fx-p-studio .brand b{font-size:32px}
  html.fx-p-studio .head{padding:12px 14px}
  html.fx-p-studio .head h2,html.fx-p-studio .head .code{font-size:21px}
  html.fx-p-studio .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  html.fx-p-studio .kpi b{font-size:26px}
  html.fx-p-studio .subs,html.fx-p-studio .vgrid{grid-template-columns:1fr 1fr}
  html.fx-p-studio .row{flex-wrap:wrap}
  html.fx-p-studio td{max-width:70vw}
}

/* ============================================================ ANALYST DESK (the Ultra-4D overlay keeps its dark sky) */
html[data-theme="light"].fx-p-analyst:root{--bg:#f3f5fa;--panel:#ffffff;--stroke:rgba(15,23,42,.14);--txt:#0f172a;--muted:#475569;
  --red:#be123c;--amber:#b45309;--green:#047857;--blue:#1d4ed8;--violet:#6d28d9}
html[data-theme="light"].fx-p-analyst body{background:radial-gradient(1200px 700px at 20% -10%,#e3ebff 0,#f3f5fa 60%) fixed}
html[data-theme="light"].fx-p-analyst header{background:rgba(255,255,255,.92)}
html[data-theme="light"].fx-p-analyst header h1{background:linear-gradient(90deg,#be123c,#b45309,#1d4ed8);-webkit-background-clip:text;background-clip:text}
html[data-theme="light"].fx-p-analyst input,html[data-theme="light"].fx-p-analyst select,html[data-theme="light"].fx-p-analyst textarea{background:#fff;border-color:rgba(15,23,42,.24)}
html[data-theme="light"].fx-p-analyst ::placeholder{color:#64748b;opacity:1}
html[data-theme="light"].fx-p-analyst button{background:rgba(29,78,216,.08);border-color:rgba(29,78,216,.45);color:#0f172a}
html[data-theme="light"].fx-p-analyst button:hover{background:rgba(29,78,216,.16)}
html[data-theme="light"].fx-p-analyst button.pri{background:linear-gradient(90deg,#be123c,#e11d48);border-color:#be123c;color:#fff}
html[data-theme="light"].fx-p-analyst button.ghost{background:transparent}
html[data-theme="light"].fx-p-analyst nav button{background:#fff}
html[data-theme="light"].fx-p-analyst nav button.on{background:linear-gradient(90deg,rgba(225,29,72,.16),rgba(29,78,216,.14));border-color:#be123c}
html[data-theme="light"].fx-p-analyst .panel{box-shadow:0 1px 2px rgba(15,23,42,.06),0 6px 18px rgba(15,23,42,.05)}
html[data-theme="light"].fx-p-analyst .panel h2{color:#9f1239}
html[data-theme="light"].fx-p-analyst .kp div,html[data-theme="light"].fx-p-analyst .files label,html[data-theme="light"].fx-p-analyst .snaps .s,
html[data-theme="light"].fx-p-analyst .xt{background:#f8fafc}
html[data-theme="light"].fx-p-analyst th{background:#eef1f7;color:#334155}
html[data-theme="light"].fx-p-analyst tr:hover td{background:rgba(15,23,42,.035)}
html[data-theme="light"].fx-p-analyst .chain .nd{background:rgba(180,83,9,.08);border-color:#b45309}
html[data-theme="light"].fx-p-analyst .warn,html[data-theme="light"].fx-p-analyst [style*="color:#fca5a5"]{color:#b91c1c!important}
html[data-theme="light"].fx-p-analyst [style*="color:#fde68a"],html[data-theme="light"].fx-p-analyst [style*="color:#fbbf24"]{color:#92400e!important}
html[data-theme="light"].fx-p-analyst [style*="color:#cbd5f5"],html[data-theme="light"].fx-p-analyst [style*="color:#9fb6dd"],
html[data-theme="light"].fx-p-analyst [style*="color:#94a3b8"]{color:#475569!important}
html[data-theme="light"].fx-p-analyst [style*="color:#ffd1dc"],html[data-theme="light"].fx-p-analyst [style*="color:#fb7185"]{color:#9f1239!important}
html[data-theme="light"].fx-p-analyst [style*="color:#e8eeff"],html[data-theme="light"].fx-p-analyst [style*="color:#eef2ff"]{color:#0f172a!important}
html[data-theme="light"].fx-p-analyst main svg text[fill="#e8eeff"],html[data-theme="light"].fx-p-analyst main svg text[fill="#cbd5f5"]{fill:#0f172a}
html[data-theme="light"].fx-p-analyst main svg text[fill="#8fa3c8"],html[data-theme="light"].fx-p-analyst main svg text[fill="#9fb0d6"]{fill:#475569}
html[data-theme="light"].fx-p-analyst main svg [fill="#050912"]{fill:#f8fafc}
html[data-theme="light"].fx-p-analyst #actTip{background:#0f172a;color:#f8fafc}
html[data-theme="light"].fx-p-analyst .snaps img{background:#eef1f7}
html[data-theme="light"].fx-p-analyst #u4d{--panel:rgba(16,24,44,.82);--stroke:rgba(140,170,255,.18);--txt:#e8eeff;--muted:#8fa3c8;color:#e8eeff;color-scheme:dark}
html[data-theme="light"].fx-p-analyst #u4d button{background:rgba(96,165,250,.12);color:#e8eeff;border-color:rgba(96,165,250,.45)}
html[data-theme="light"].fx-p-analyst #u4d svg text{fill:inherit}
html[data-theme="light"].fx-p-analyst #netSvg{background:#f8fafc!important}
@media(max-width:760px){html.fx-p-analyst header h1{width:auto!important;flex:1 1 auto}html.fx-p-analyst header .fx-theme-btn{flex:0 0 auto!important;min-width:44px}}

/* ============================================================ DAILY CALCULATOR (4D graphs and the solar system keep their dark sky) */
html[data-theme="light"].fx-p-calc:root{--bg:#f3f5fa;--card:#ffffff;--card2:#f1f4f9;--bd:rgba(15,23,42,.14);--tx:#0f172a;--mu:#475569;
  --red:#c81e1e;--red2:#b91c1c;--ok:#047857;--am:#b45309;--cy:#0e7490;--pu:#6d28d9}
html[data-theme="light"].fx-p-calc body{background:radial-gradient(1200px 700px at 10% -10%,#f3e8ff 0,transparent 60%),radial-gradient(900px 600px at 110% 10%,#e0f2fe 0,transparent 55%),var(--bg)}
html[data-theme="light"].fx-p-calc header{background:rgba(255,255,255,.92)}
html[data-theme="light"].fx-p-calc .panel,html[data-theme="light"].fx-p-calc .cards .c{box-shadow:0 1px 2px rgba(15,23,42,.06),0 4px 14px rgba(15,23,42,.05)}
html[data-theme="light"].fx-p-calc button{background:#fff;color:#0f172a}
html[data-theme="light"].fx-p-calc button:hover{border-color:rgba(15,23,42,.4)}
html[data-theme="light"].fx-p-calc button.pri{background:linear-gradient(135deg,#dc2626,#a21caf);color:#fff}
html[data-theme="light"].fx-p-calc input,html[data-theme="light"].fx-p-calc select{background:#fff;color:#0f172a;border-color:rgba(15,23,42,.24)}
html[data-theme="light"].fx-p-calc th{background:#eef1f7;color:#334155}
html[data-theme="light"].fx-p-calc td,html[data-theme="light"].fx-p-calc th{border-bottom-color:rgba(15,23,42,.08)}
html[data-theme="light"].fx-p-calc tr.silent td{background:rgba(220,38,38,.07);color:#991b1b}
html[data-theme="light"].fx-p-calc .heat i,html[data-theme="light"].fx-p-calc .bar{background:rgba(15,23,42,.07)}
html[data-theme="light"].fx-p-calc .bg.ok{color:#047857;border-color:rgba(4,120,87,.5)}
html[data-theme="light"].fx-p-calc .bg.no{color:#b91c1c;border-color:rgba(185,28,28,.5)}
html[data-theme="light"].fx-p-calc .bg.am{color:#92400e;border-color:rgba(146,64,14,.5)}
html[data-theme="light"].fx-p-calc .up{color:#047857}html[data-theme="light"].fx-p-calc .dn{color:#b91c1c}
html[data-theme="light"].fx-p-calc .chip.error{color:#b91c1c}html[data-theme="light"].fx-p-calc .chip.working{color:#0e7490}
html[data-theme="light"].fx-p-calc .tr.rising{color:#047857}html[data-theme="light"].fx-p-calc .tr.falling{color:#b91c1c}
html[data-theme="light"].fx-p-calc .tr.new{color:#0e7490}html[data-theme="light"].fx-p-calc .tr.stopped{color:#c2410c}
html[data-theme="light"].fx-p-calc .tr.steady,html[data-theme="light"].fx-p-calc .tr.single,html[data-theme="light"].fx-p-calc .tr.none,html[data-theme="light"].fx-p-calc .tr.rare{color:#475569}
html[data-theme="light"].fx-p-calc .sub{color:#b91c1c}
html[data-theme="light"].fx-p-calc tr.foc td{background:rgba(14,116,144,.1)}
/* the 4D section and the solar system stay a dark sky: restore dark tokens inside them */
html[data-theme="light"].fx-p-calc .tl,html[data-theme="light"].fx-p-calc .sol-wrap,html[data-theme="light"].fx-p-calc #tip{
  --card:rgba(255,255,255,.05);--card2:rgba(255,255,255,.08);--bd:rgba(255,255,255,.14);--tx:#e8edf7;--mu:#a5b1c6;
  --red:#ff4d4d;--red2:#ff8a8a;--ok:#34d399;--am:#fbbf24;--cy:#22d3ee;--pu:#a78bfa;color:#e8edf7;color-scheme:dark}
html[data-theme="light"].fx-p-calc .tl button,html[data-theme="light"].fx-p-calc .sol-wrap button,html[data-theme="light"].fx-p-calc .sol-wrap select{background:rgba(255,255,255,.08);color:#e8edf7}
html[data-theme="light"].fx-p-calc .tl .tabs button.on,html[data-theme="light"].fx-p-calc .tl button.cf.on{background:linear-gradient(135deg,#0891b2,#a855f7);color:#fff}
html[data-theme="light"].fx-p-calc .sol-ctl button.on{background:linear-gradient(135deg,#f97316,#db2777);color:#fff}
html[data-theme="light"].fx-p-calc .tl input,html[data-theme="light"].fx-p-calc .tl select{background:rgba(255,255,255,.08);color:#e8edf7;border-color:rgba(255,255,255,.2)}
html[data-theme="light"].fx-p-calc .tl th{background:#111827;color:#a5b1c6}
html[data-theme="light"].fx-p-calc .tl td,html[data-theme="light"].fx-p-calc .tl th{border-bottom-color:rgba(255,255,255,.07)}
html[data-theme="light"].fx-p-calc .tl tr.silent td{background:rgba(255,77,77,.09);color:#ff8a8a}
html[data-theme="light"].fx-p-calc .tl .sub{color:#ff8a8a}
html[data-theme="light"].fx-p-calc .tl .bg.ok{color:#34d399}html[data-theme="light"].fx-p-calc .tl .bg.no{color:#ff6b6b}html[data-theme="light"].fx-p-calc .tl .bg.am{color:#fbbf24}
html[data-theme="light"].fx-p-calc .tl .up{color:#22c55e}html[data-theme="light"].fx-p-calc .tl .dn{color:#f87171}
html[data-theme="light"].fx-p-calc .tl .tr.rising{color:#22c55e}html[data-theme="light"].fx-p-calc .tl .tr.falling{color:#f87171}
html[data-theme="light"].fx-p-calc .tl .tr.new{color:#22d3ee}html[data-theme="light"].fx-p-calc .tl .tr.stopped{color:#fb923c}
html[data-theme="light"].fx-p-calc .tl .tr.steady,html[data-theme="light"].fx-p-calc .tl .tr.single,html[data-theme="light"].fx-p-calc .tl .tr.none,html[data-theme="light"].fx-p-calc .tl .tr.rare{color:#a5b1c6}
html[data-theme="light"].fx-p-calc .tl .lbl,html[data-theme="light"].fx-p-calc .tl .mu{color:#a5b1c6}
html.fx-p-calc .lbl{color:var(--mu)}
@media (max-width:600px){html.fx-p-calc header h1 small{display:none}html.fx-p-calc header{position:static}}

/* ============================================================ CONSOLE — login screen */
/* a readable veil over the live map, in both themes */
html:has(#screenLogin.active) #uiLayer{background:linear-gradient(180deg,rgba(5,9,20,.72),rgba(5,9,20,.86))}
html[data-theme="light"]:has(#screenLogin.active) #uiLayer{background:linear-gradient(180deg,rgba(243,245,250,.86),rgba(226,232,244,.92))}
html:has(#screenLogin.active) .header.glass-panel{background:rgba(10,16,32,.78)!important;border:1px solid rgba(255,255,255,.16)!important;border-radius:16px!important;box-shadow:0 10px 30px rgba(0,0,0,.35)!important}
html[data-theme="light"]:has(#screenLogin.active) .header.glass-panel{background:rgba(255,255,255,.94)!important;border-color:rgba(15,23,42,.12)!important;box-shadow:0 1px 2px rgba(15,23,42,.06),0 10px 28px rgba(15,23,42,.08)!important}
html:has(#screenLogin.active) .header .logo{filter:none!important;text-shadow:none!important}
html:has(#screenLogin.active) .header .logo span{text-shadow:none!important}
html:has(#screenLogin.active) .header *,#screenLogin>.glass-panel *{text-shadow:none!important;-webkit-text-stroke:0!important;paint-order:normal!important;filter:none!important}
html:has(#screenLogin.active) .header .fullname{font-weight:700!important}
html:has(#screenLogin.active) .header .credits span{background:none!important;-webkit-text-fill-color:currentColor!important}
html:has(#screenLogin.active) .header .fullname{background:none!important;-webkit-text-fill-color:#e2e8f0!important;color:#e2e8f0!important}
html:has(#screenLogin.active) .header .subtitle{color:#7dd3fc!important;-webkit-text-fill-color:#7dd3fc!important}
html:has(#screenLogin.active) .header .credits{color:#e2e8f0!important}
html:has(#screenLogin.active) .header .credits .text-neon-green{color:#5eead4!important}
html[data-theme="light"]:has(#screenLogin.active) .header .logo{background:linear-gradient(95deg,#b91c1c,#7c2d12 30%,#6d28d9 60%,#b91c1c)!important;-webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important;color:#b91c1c!important}
html[data-theme="light"]:has(#screenLogin.active) .header .fullname{-webkit-text-fill-color:#1e293b!important;color:#1e293b!important}
html[data-theme="light"]:has(#screenLogin.active) .header .subtitle{color:#0369a1!important;-webkit-text-fill-color:#0369a1!important}
html[data-theme="light"]:has(#screenLogin.active) .header .credits{color:#334155!important}
html[data-theme="light"]:has(#screenLogin.active) .header .credits .text-neon-green{color:#047857!important}
html:has(#screenLogin.active) .control-panel{background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.18)!important}
html[data-theme="light"]:has(#screenLogin.active) .control-panel{background:#f1f5f9!important;border-color:rgba(15,23,42,.12)!important}
html:has(#screenLogin.active) .control-panel .btn-glass{text-shadow:none!important;color:#e2e8f0!important;border:1px solid rgba(255,255,255,.3)!important;background:rgba(255,255,255,.04)!important;box-shadow:none!important}
html[data-theme="light"]:has(#screenLogin.active) .control-panel .btn-glass{color:#0f172a!important;border-color:rgba(15,23,42,.25)!important;background:#fff!important}
html:has(#screenLogin.active) #speedButton{color:#3f6212!important}
html[data-theme="dark"]:has(#screenLogin.active) #speedButton{color:#a3e635!important}
html:has(#screenLogin.active) .ps-logo{text-shadow:none!important}
html[data-theme="light"]:has(#screenLogin.active) .ps-logo{color:#92400e!important;border-color:#b45309!important;background:#fffbeb}
/* the sign-in card */
#screenLogin>.glass-panel{background:rgba(10,16,32,.86)!important;border:1px solid rgba(255,255,255,.16)!important;border-radius:18px!important;
  box-shadow:0 18px 50px rgba(0,0,0,.45)!important;padding:clamp(22px,5vw,40px)!important;position:relative;z-index:1;max-width:460px!important}
html[data-theme="light"] #screenLogin>.glass-panel{background:#ffffff!important;border-color:rgba(15,23,42,.12)!important;box-shadow:0 1px 2px rgba(15,23,42,.06),0 18px 44px rgba(15,23,42,.14)!important}
#screenLogin h2{text-shadow:none!important;color:#7dd3fc!important;-webkit-text-fill-color:#7dd3fc!important;font-size:clamp(1.45rem,5.2vw,2.2rem)!important;line-height:1.15!important;letter-spacing:.02em}
html[data-theme="light"] #screenLogin h2{color:#0f172a!important;-webkit-text-fill-color:#0f172a!important}
#screenLogin #loginId{background:rgba(255,255,255,.06)!important;color:#f8fafc!important;text-shadow:none!important;font-weight:600!important;border:1.5px solid rgba(255,255,255,.35)!important;border-radius:10px!important;font-size:16px!important}
html[data-theme="light"] #screenLogin #loginId{background:#fff!important;color:#0f172a!important;border-color:rgba(15,23,42,.3)!important}
#screenLogin #loginId::placeholder{color:#a5b1c6;font-weight:500;opacity:1}
html[data-theme="light"] #screenLogin #loginId::placeholder{color:#64748b}
#screenLogin #loginId:focus{border-color:#38bdf8!important;box-shadow:0 0 0 3px rgba(56,189,248,.28)!important}
html[data-theme="light"] #screenLogin #loginId:focus{border-color:#2563eb!important;box-shadow:0 0 0 3px rgba(37,99,235,.2)!important}
#screenLogin .btn-glass{background:linear-gradient(135deg,#0284c7,#2563eb)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;text-shadow:none!important;
  border:0!important;border-radius:10px!important;box-shadow:0 6px 16px rgba(37,99,235,.35)!important;font-size:clamp(.92rem,3.6vw,1.05rem)!important;letter-spacing:.04em}
#screenLogin .btn-glass:hover{filter:brightness(1.08);transform:none!important}
#screenLogin button[onclick*="showAdminLogin"]{text-shadow:none!important;color:#fda4af!important;font-weight:800!important;padding:8px 10px;border-radius:8px}
html[data-theme="light"] #screenLogin button[onclick*="showAdminLogin"]{color:#b91c1c!important}
#screenLogin button[onclick*="showAdminLogin"]:hover{text-decoration:underline}
#screenLogin #feHero{opacity:.35!important}
html[data-theme="light"] #screenLogin #feHero{opacity:.22!important;filter:none!important}
html[data-theme="light"]:has(#screenLogin.active) #falconSky .fe{opacity:.12!important;filter:none!important}
/* the wordmark never breaks into one letter per line */
html:has(#screenLogin.active) .header{flex-wrap:wrap!important;gap:10px!important}
html:has(#screenLogin.active) .header .logo{white-space:nowrap!important;display:flex!important;flex-wrap:nowrap!important;font-size:clamp(2.2rem,9vw,4.6rem)!important}
@media (max-width:980px){
  html:has(#screenLogin.active) .header{flex-direction:column!important;align-items:stretch!important;padding:12px!important}
  html:has(#screenLogin.active) .header .control-panel{order:1;justify-content:center;flex-wrap:wrap}
  html:has(#screenLogin.active) .header .header-titles{order:2;align-items:center!important;text-align:center!important;width:100%}
  html:has(#screenLogin.active) .header .header-meta{order:3;justify-content:center;width:100%}
  html:has(#screenLogin.active) .header .ps-logo{width:42px;height:42px;font-size:1rem}
  html:has(#screenLogin.active) .header .fullname{font-size:.82rem!important}
  html:has(#screenLogin.active) .header .subtitle{font-size:1rem!important}
  html:has(#screenLogin.active) .header .credits{font-size:.8rem!important}
  #screenLogin{padding:6px 0 30px}
}
@media (prefers-reduced-motion:reduce){html:has(#screenLogin.active) #falconSky{display:none}}

/* ============================================================ ADMIN */
html[data-theme="light"].fx-p-admin body{background:#f3f5fa!important;color:#0f172a!important}
html[data-theme="light"].fx-p-admin h2{color:#0369a1!important}
html[data-theme="light"].fx-p-admin a{color:#1d4ed8!important}
html[data-theme="light"].fx-p-admin button,html[data-theme="light"].fx-p-admin select,html[data-theme="light"].fx-p-admin input{background:#fff!important;color:#0f172a!important;border-color:#6d28d9!important}

/* ============================================================ ⛶ FULL VIEW (one block on the whole screen) */
.fx-fv-btn{position:absolute;top:8px;right:8px;z-index:6;width:34px;height:30px;padding:0!important;display:grid;place-items:center;
  font:700 16px/1 system-ui,sans-serif!important;border-radius:8px!important;cursor:pointer;opacity:.72;
  background:rgba(15,23,42,.72)!important;color:#f8fafc!important;border:1px solid rgba(255,255,255,.28)!important;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.fx-fv-btn:hover,.fx-fv-btn:focus-visible{opacity:1}
html[data-theme="light"] .fx-fv-btn{background:rgba(255,255,255,.92)!important;color:#0f172a!important;border-color:rgba(15,23,42,.25)!important;box-shadow:0 2px 8px rgba(15,23,42,.15)}
@media (hover:none){.fx-fv-btn{opacity:.9;width:40px;height:36px}}
/* the full-screen holder (the browser's own full screen where it exists, else a layer over the page) */
.fx-fv-host{position:fixed;inset:0;z-index:2147483600;background:var(--bg,#070b14);overflow:auto;padding:clamp(8px,2vw,22px);box-sizing:border-box;
  -webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.fx-fv-host:fullscreen,.fx-fv-host:-webkit-full-screen{width:100vw;height:100vh;background:var(--bg,#070b14)}
.fx-fv-host::backdrop{background:var(--bg,#070b14)}
.fx-fv-host>.fx-fv-target{margin:0!important;min-height:calc(100vh - 2*clamp(8px,2vw,22px));max-height:none!important;box-sizing:border-box;width:100%!important;max-width:none!important}
.fx-fv-host>.fx-fv-target>.fx-fv-btn{display:none}
.fx-fv-x{position:fixed;top:10px;right:12px;z-index:2147483601;width:46px;height:42px;border-radius:12px;cursor:pointer;font:700 20px/1 system-ui,sans-serif;
  background:rgba(15,23,42,.82);color:#fff;border:1px solid rgba(255,255,255,.35);box-shadow:0 4px 14px rgba(0,0,0,.4)}
html[data-theme="light"] .fx-fv-x{background:#fff;color:#0f172a;border-color:rgba(15,23,42,.3);box-shadow:0 4px 14px rgba(15,23,42,.2)}
.fx-fv-x:focus-visible{outline:3px solid #2563eb;outline-offset:2px}
html.fx-fv-lock,html.fx-fv-lock body{overflow:hidden!important}
.fx-fv-r{position:fixed;top:10px;right:66px;z-index:2147483601;width:46px;height:42px;border-radius:12px;cursor:pointer;font:700 20px/1 system-ui,sans-serif;
  background:rgba(15,23,42,.82);color:#fff;border:1px solid rgba(255,255,255,.35)}
html[data-theme="light"] .fx-fv-r{background:#fff;color:#0f172a;border-color:rgba(15,23,42,.3)}
/* sideways view on a portrait phone: the block is turned 90° to use the long side of the screen */
.fx-fv-host.fx-rot{overflow:hidden;padding:0}
.fx-fv-host.fx-rot>.fx-fv-target{position:absolute!important;top:0;left:0;width:100vh!important;height:100vw!important;min-height:0!important;
  transform:translateX(100vw) rotate(90deg);transform-origin:0 0;overflow:auto;padding:12px 64px 12px 12px!important}
.fx-fv-host.fx-rot>.fx-fv-target.chart svg{height:calc(100vw - 70px)!important}
/* a single chart grows to the screen; tables and lists scroll inside the screen */
.fx-fv-target.chart{padding-top:14px!important}
.fx-fv-target.chart svg{width:100%!important;height:calc(100vh - 130px)!important;max-height:none!important}
.fx-fv-target .tbl,.fx-fv-target .tb,.fx-fv-target .tw{max-height:calc(100vh - 140px)!important}
.fx-fv-target #netSvg{height:calc(100vh - 170px)!important}
.fx-fv-target #actCv{max-height:calc(100vh - 170px)}
.fx-fv-target .sol-cv{height:calc(100vh - 170px)!important}
.fx-fv-target .two{grid-template-columns:1fr!important}
/* Studio FULL: the analysis uses the whole display */
html.fx-p-studio body.full #body{padding:8px!important}
html.fx-p-studio body.full #stage{padding:0!important}
@media (max-width:900px){html.fx-p-studio body.full #body{padding:6px!important}}
@media print{.fx-fv-btn{display:none!important}}
