:root{
  --pandora-font-body:"Segoe UI","Helvetica Neue",Arial,sans-serif;
  --pandora-font-display:"Bahnschrift SemiCondensed","Arial Narrow",sans-serif;
  --pandora-font-data:Consolas,monospace;
}
.lab{font-family:var(--pandora-font-body);letter-spacing:.08em}
.lab :is(h1,h2,h3,h4){font-family:var(--pandora-font-display)}
.lab :is(button,input,select,textarea){letter-spacing:inherit}
.operations-expansion .combat-card{background:linear-gradient(90deg,rgba(2,13,14,.88),rgba(2,13,14,.48))}
.operations-expansion .combat-card>small{font:600 .62rem/1.3 var(--pandora-font-data);letter-spacing:.08em}
.operations-expansion .combat-card h3{font:600 1rem/1.2 var(--pandora-font-display);letter-spacing:.055em}
.operations-expansion .combat-card p{font:.78rem/1.55 var(--pandora-font-body);letter-spacing:.04em}
.operations-expansion .combat-ring{--ring:var(--signal);background:radial-gradient(circle at center,rgba(2,13,14,.98) 0 55%,transparent 57%),conic-gradient(var(--ring) var(--win),rgba(85,213,197,.12) 0);box-shadow:0 0 12px rgba(85,213,197,.14),inset 0 0 9px rgba(0,0,0,.7)}
.operations-expansion .combat-ring strong{font:300 1.55rem/1 var(--pandora-font-display);letter-spacing:.03em}
.operations-expansion .combat-ring span{font:600 .58rem/1.3 var(--pandora-font-data);letter-spacing:.08em}
.operations-expansion .combat-main b{font:600 .83rem/1.2 var(--pandora-font-display)}
.operations-expansion .combat-main :is(span,em),.operations-expansion .direct-track{font:600 .61rem/1.4 var(--pandora-font-data);letter-spacing:.055em}
.operations-expansion :is(.progress,.pressure i,.direct-track i){height:5px;overflow:hidden;background:rgba(85,213,197,.16);box-shadow:inset 0 0 4px #000}
.operations-expansion :is(.progress i,.pressure em,.direct-track i b){box-shadow:0 0 8px currentColor,0 0 3px #d8fff6}
.operations-expansion .direct-track.loss i b{color:var(--danger)}
/* Use these motion hooks for imagery, rings, bars and numbers on new pages. */
/* Hide Living visuals before the deferred renderers run, so an offscreen item
   never flashes in its finished state while the long dossier is being built. */
html.pandora-photon-boot :is(.lab-grid .metric-ring,.operations-expansion .combat-ring,.lab-grid .scenario-card,.operations-expansion .history-card.has-art,.lab img,.operations-expansion img,.detail-dialog img,.operations-expansion .progress i,.operations-expansion .pressure em,.operations-expansion .direct-track i b,.lab-grid .stock-track i,.lab-grid .metric-ring span,.lab-grid .entity-row>b,.operations-expansion .combat-ring strong,.operations-expansion .combat-main b,.operations-expansion .job-identity>b,.operations-expansion .honor-operations b,.operations-expansion .honor-rank,.operations-expansion .linked-row>b,.operations-expansion .ledger-list article>b,.operations-expansion .leader-row>b,.operations-expansion .leader-row>span,.operations-expansion .stat-strip b,.operations-expansion .chapter-meta b,.operations-expansion .module-toolbar>span>b,.operations-expansion .regional-list .pressure b,.lab h2,.lab h3,.lab h4,.lab p,.lab button,.lab a,.operations-expansion h2,.operations-expansion h3,.operations-expansion h4,.operations-expansion p,.operations-expansion button,.operations-expansion a):not(.pandora-photon-active){opacity:0!important}
[data-pandora-photon].pandora-photon-pending{opacity:0}
[data-pandora-photon="image"].pandora-photon-pending,
[data-pandora-photon="art"].pandora-photon-pending{transform:scale(.72);filter:brightness(8) blur(5px)}
[data-pandora-photon="ring"].pandora-photon-pending{transform:scale(.58) rotate(-180deg);filter:drop-shadow(0 0 16px white) brightness(5)}
[data-pandora-photon="number"].pandora-photon-pending{filter:blur(7px) brightness(6);transform:scale(1.45)}
[data-pandora-photon="fill"].pandora-photon-pending{transform:scaleX(0);transform-origin:left;filter:brightness(8)}
[data-pandora-photon="copy"].pandora-photon-pending,[data-pandora-photon="control"].pandora-photon-pending{filter:brightness(5) blur(4px)}
[data-pandora-photon="image"].pandora-photon-active,
[data-pandora-photon="art"].pandora-photon-active{animation:pandoraPhotonImage .95s ease-out both}
[data-pandora-photon="ring"].pandora-photon-active{animation:pandoraPhotonRing 1.25s ease-out both}
[data-pandora-photon="number"].pandora-photon-active{animation:pandoraPhotonNumber .88s ease-out both}
[data-pandora-photon="fill"].pandora-photon-active{animation:pandoraPhotonFill .72s ease-out both}
[data-pandora-photon="copy"].pandora-photon-active,[data-pandora-photon="control"].pandora-photon-active{animation:pandoraPhotonCopy .85s ease-out both}
@keyframes pandoraPhotonImage{0%{opacity:0;transform:scale(.72);clip-path:inset(49% 0 49% 0);filter:brightness(8) blur(5px)}24%{opacity:1;transform:scale(1.03);clip-path:inset(47% 0 47% 0);filter:brightness(5) drop-shadow(3px 0 #e35270) drop-shadow(-3px 0 #50e7dd)}45%{clip-path:inset(0);filter:brightness(2.6) drop-shadow(2px 0 #e35270)}100%{opacity:1;transform:none;clip-path:inset(0);filter:none}}
@keyframes pandoraPhotonRing{0%{opacity:0;transform:scale(.58) rotate(-180deg);filter:drop-shadow(0 0 16px white) brightness(5)}55%{opacity:1;filter:drop-shadow(0 0 10px currentColor) brightness(1.7)}100%{opacity:1;transform:none;filter:none}}
@keyframes pandoraPhotonNumber{0%{opacity:0;filter:blur(7px) brightness(6);transform:scale(1.45)}55%{opacity:1;filter:blur(1px) brightness(2.3)}100%{opacity:1;filter:none;transform:none}}
@keyframes pandoraPhotonFill{0%{opacity:0;transform:scaleX(0);filter:brightness(8)}55%{opacity:1;filter:brightness(4)}100%{opacity:1;transform:scaleX(1);filter:none}}
@keyframes pandoraPhotonCopy{0%{opacity:0;filter:brightness(5) blur(4px)}52%{opacity:.85;filter:brightness(2)}100%{opacity:1;filter:none}}
@media(prefers-reduced-motion:reduce){[data-pandora-photon].pandora-photon-pending,[data-pandora-photon].pandora-photon-active{opacity:1;transform:none;clip-path:none;filter:none;animation:none!important}}
/* The saved Living status factors use the same compact command-card language as Home. */
.lab .lab-panel.metrics{position:relative;z-index:12;overflow:visible}
.lab .metric-card{position:relative;overflow:visible;z-index:1}
.lab .metric-card:has(.metric-explainer[open]){z-index:30}
.lab .metric-explainer{grid-row:5;width:100%;font:600 .58rem/1.35 var(--pandora-font-data);letter-spacing:.04em}
.lab .metric-explainer summary{list-style:none;cursor:pointer;color:var(--signal);padding:.28rem .2rem;border-top:1px solid var(--line);text-align:center}
.lab .metric-explainer summary::-webkit-details-marker{display:none}
.lab .metric-explainer summary:hover,.lab .metric-explainer summary:focus-visible{color:#dcfff8;text-shadow:0 0 8px var(--signal)}
.lab .metric-explainer-body{position:absolute;top:calc(100% - 1px);left:-1px;width:min(28rem,calc(100vw - 2rem));max-height:min(27rem,70vh);overflow:auto;padding:.9rem 1rem;background:#061719;border:1px solid var(--signal);box-shadow:0 12px 32px #000d,0 0 12px #45d7c344;scrollbar-color:var(--signal) #071718;text-align:left}
.lab .metric-card:nth-child(4n) .metric-explainer-body{right:-1px;left:auto}
/* On the selected Living Epic the complete status card is one native disclosure. */
.chronicle-production .lab .metric-card{min-width:0;z-index:1;padding:0}
.chronicle-production .lab .metric-card-toggle{display:grid;grid-template-rows:5.4rem 3rem minmax(2rem,auto);justify-items:center;align-content:start;width:100%;min-height:10.4rem;height:100%;padding:.45rem .3rem .3rem;text-align:center;color:var(--ink);cursor:url('/assets/icons/pandora-action-04.svg') 12 5,pointer}
.chronicle-production .lab .metric-card-toggle .metric-copy{display:flex;flex-direction:column;align-items:center;width:100%;min-width:0}
.chronicle-production .lab .metric-card-toggle strong{display:flex;align-items:center;justify-content:center;min-height:2.65rem;margin:0;line-height:1.12}
.chronicle-production .lab .metric-card-toggle small{margin:.1rem 0 0}
.chronicle-production .lab .metric-card-toggle em{margin:.12rem 0 0}
.chronicle-production .lab .metric-card-toggle .metric-ring{grid-row:2;align-self:center}
.chronicle-production .lab .metric-card-cta{grid-row:3;align-self:end;width:100%;padding:.35rem .1rem .1rem;border-top:1px solid var(--line);color:var(--signal);font:600 .58rem/1.3 var(--pandora-font-data);letter-spacing:.04em}
.chronicle-production .lab .metric-card-toggle:hover .metric-card-cta,.chronicle-production .lab .metric-card-toggle:focus-visible .metric-card-cta{color:#dcfff8;text-shadow:0 0 8px var(--signal)}
.chronicle-production .lab .metric-card-toggle:focus-visible{outline:1px solid var(--signal);outline-offset:-2px}
.chronicle-production .lab .metric-card-toggle:hover,.chronicle-production .lab .metric-card-toggle[aria-expanded="true"]{border-color:var(--signal);background:rgba(var(--theme-rgb,85,213,197),.12)}
.metric-effects-tooltip{position:fixed;z-index:1000;overflow:auto;overscroll-behavior:contain;padding:.82rem 1rem;border:1px solid rgba(var(--theme-rgb,85,213,197),.55);border-left:2px solid rgb(var(--theme-rgb,85,213,197));background:linear-gradient(135deg,rgba(var(--hud-surface-rgb,3,17,19),.99),rgba(1,13,15,.98));box-shadow:inset 0 0 16px rgba(var(--theme-rgb,85,213,197),.07),0 12px 32px rgba(0,0,0,.82);color:var(--ink);scrollbar-width:thin;scrollbar-color:rgba(var(--theme-rgb,85,213,197),.8) rgba(1,8,9,.7)}
.metric-effects-tooltip[hidden]{display:none!important}
.metric-effects-tooltip::-webkit-scrollbar{width:6px}
.metric-effects-tooltip::-webkit-scrollbar-track{background:rgba(1,8,9,.7)}
.metric-effects-tooltip::-webkit-scrollbar-thumb{background:rgba(var(--theme-rgb,85,213,197),.8);border-radius:3px}
.metric-effects-tooltip>small{display:block;margin-bottom:.55rem;padding-bottom:.45rem;border-bottom:1px solid rgba(var(--theme-rgb,85,213,197),.3);color:rgb(var(--theme-rgb,85,213,197));font:600 .66rem var(--pandora-font-data);letter-spacing:.1em}
.metric-effects-tooltip .metric-explainer-body{position:static;width:auto;max-height:none;overflow:visible;padding:0;border:0;background:none;box-shadow:none}
.metric-effects-tooltip h4{margin:.8rem 0 .35rem;color:rgb(var(--theme-rgb,85,213,197));font:700 .65rem var(--pandora-font-data)}
.metric-effects-tooltip h4:first-child{margin-top:0}
.metric-effects-tooltip p,.metric-effects-tooltip li{color:#c6e0d9;font:400 .72rem/1.5 var(--pandora-font-body);letter-spacing:.025em}
.metric-effects-tooltip p{margin:.35rem 0}
.metric-effects-tooltip ul{padding:0;margin:.25rem 0;list-style:none}
.metric-effects-tooltip li{padding:.32rem 0;border-top:1px solid rgba(var(--theme-rgb,85,213,197),.24)}
.metric-effects-tooltip li strong,.metric-effects-tooltip li span{display:block}
.metric-effects-tooltip li strong{color:#ddf6ef}
.lab .metric-explainer-body h4{margin:.8rem 0 .35rem;color:var(--signal);font:700 .65rem var(--pandora-font-data)}
.lab .metric-explainer-body h4:first-child{margin-top:0}
.lab .metric-explainer-body p,.lab .metric-explainer-body li{color:#c6e0d9;font:400 .72rem/1.5 var(--pandora-font-body);letter-spacing:.025em}
.lab .metric-explainer-body p{margin:.35rem 0}
.lab .metric-explainer-body ul{padding:0;margin:.25rem 0;list-style:none}
.lab .metric-explainer-body li{padding:.32rem 0;border-top:1px solid #27504b}
.lab .metric-explainer-body li strong,.lab .metric-explainer-body li span{display:block}
.lab .metric-explainer-body li strong{color:#ddf6ef}
.lab .scenario-card.has-art{background-blend-mode:normal;box-shadow:inset 0 0 24px rgba(0,0,0,.32)}
.lab .scenario-card.has-art:hover,.lab .scenario-card.has-art.is-selected{background-image:linear-gradient(90deg,rgba(2,12,14,.73),rgba(2,12,14,.24)),var(--scenario-art);box-shadow:inset 0 0 14px rgba(0,0,0,.18),0 0 10px rgba(85,213,197,.16)}
.lab .scenario-card.has-art .scenario-card-copy{filter:drop-shadow(0 2px 4px #000)}
@media(max-width:700px){.lab .metric-card:nth-child(4n) .metric-explainer-body{left:-1px;right:auto}.lab .metric-card:nth-child(even) .metric-explainer-body{left:auto;right:-1px}}
.operations-expansion .job-card{overflow:visible}
.operations-expansion .job-contributors{margin-top:.7rem;padding-top:.55rem;border-top:1px solid var(--line)}
.operations-expansion .job-contributors>strong{display:block;margin-bottom:.35rem;color:var(--signal);font:700 .6rem var(--pandora-font-data)}
.operations-expansion .job-contributors>div{display:flex;flex-wrap:wrap;gap:.32rem}
.operations-expansion .job-contributor{position:relative;display:inline-flex;width:2.15rem;height:2.15rem;border:1px solid var(--line);cursor:help;outline-offset:2px}
.operations-expansion .job-contributor:hover,.operations-expansion .job-contributor:focus-visible{z-index:20;border-color:var(--signal);box-shadow:0 0 12px rgba(85,213,197,.5)}
.operations-expansion .job-contributor>img{width:100%;height:100%;object-fit:cover}
.operations-expansion .job-contributor>[role=tooltip]{display:none;position:absolute;z-index:30;bottom:calc(100% + .35rem);left:0;min-width:11rem;max-width:16rem;padding:.5rem .65rem;border:1px solid var(--signal);background:#061719;box-shadow:0 8px 20px #000c;color:#d5f0e9;white-space:nowrap}
.operations-expansion .job-contributor:hover>[role=tooltip],.operations-expansion .job-contributor:focus-visible>[role=tooltip]{display:block}
.operations-expansion .job-contributor>[role=tooltip] b,.operations-expansion .job-contributor>[role=tooltip] em{display:block;font:600 .62rem/1.45 var(--pandora-font-body);font-style:normal}
.operations-expansion .job-contributor>[role=tooltip] em{color:var(--signal);font-family:var(--pandora-font-data)}
/* Jetunba's nested scroll areas inherit the selected HUD colour. */
.lab :is(.scenario-list,.scenario-detail,.story-text,.entity-list,.timeline-list,.oruk-content,.job-list,.history-list,.metric-explainer-body){scrollbar-width:thin;scrollbar-color:rgba(var(--theme-rgb,85,213,197),.72) rgba(1,8,9,.55)}
.lab :is(.scenario-list,.scenario-detail,.story-text,.entity-list,.timeline-list,.oruk-content,.job-list,.history-list,.metric-explainer-body)::-webkit-scrollbar{width:6px;height:6px}
.lab :is(.scenario-list,.scenario-detail,.story-text,.entity-list,.timeline-list,.oruk-content,.job-list,.history-list,.metric-explainer-body)::-webkit-scrollbar-track{background:rgba(1,8,9,.55)}
.lab :is(.scenario-list,.scenario-detail,.story-text,.entity-list,.timeline-list,.oruk-content,.job-list,.history-list,.metric-explainer-body)::-webkit-scrollbar-thumb{background:rgba(var(--theme-rgb,85,213,197),.72);border-radius:3px}
/* Data reloads retain the user's view and use a brief signal reveal, not boot ignition. */
.lab-header .page-refresh-readout{position:relative;top:auto;left:auto;display:inline-flex;align-items:center;gap:.45rem;margin:.45rem 0;color:var(--signal);font:600 .62rem/1 var(--pandora-font-data);letter-spacing:.1em;transform:none}
.lab-header .page-refresh-readout i{width:.35rem;height:.35rem;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}
.lab-header .page-refresh-readout b{color:var(--ink);font:inherit}
.lab-header .page-refresh-readout.is-paused{opacity:.6}
.lab-header .page-refresh-readout.is-refreshing i{animation:pandoraRefreshPulse .55s ease-in-out infinite alternate}
html.is-pandora-data-refresh .lab-header,html.is-pandora-data-refresh .lab-grid{animation:pandoraDataRefresh .65s ease-out both}
html.is-pandora-data-refresh :is([data-pandora-photon].pandora-photon-pending,[data-photon].photon-pending,.lab-panel.photon-pending,.metric-ring.photon-pending,.scenario-card.photon-pending){transform:none!important}
html.is-pandora-data-refresh :is([data-pandora-photon].pandora-photon-active,[data-photon].photon-active,.lab-panel.photon-active,.metric-ring.photon-active,.scenario-card.photon-active){animation:pandoraDataRefresh .75s ease-out both!important}
@keyframes pandoraDataRefresh{0%{opacity:.38;filter:brightness(3) blur(2px)}40%{opacity:.9;filter:brightness(1.8) blur(.5px)}100%{opacity:1;filter:none}}
@keyframes pandoraRefreshPulse{to{opacity:.25;transform:scale(.7)}}
@media(prefers-reduced-motion:reduce){html.is-pandora-data-refresh :is(.lab-header,.lab-grid,[data-pandora-photon].pandora-photon-active,[data-photon].photon-active){animation:none!important;filter:none!important;opacity:1!important}}
