/* PFLabs: approved electric blue / charcoal / white. Load after page styles.
   This file never writes preferences. Explicit Dark, Light and Pink remain intact. */
:root { --pf-blue:#1687ff; --pf-bg:#111419; --pf-text:#f5f7fc; --pf-muted:#b4c1d4; }
:root:not([data-theme="dark"]):not([data-theme="light"]):not([data-theme="pink"]) {
 color-scheme:dark;
 --bg:#111419; --glow:#16263d; --text:#f5f7fc; --muted:#b4c1d4; --subtle:#9caec7;
 --surface:#19212d; --surface-raised:#233145; --surface-hover:#2a3d56;
 --border:#465b76; --border-strong:#7692b5;
 --accent:#1687ff; --accent-ink:#07111e; --invite:#1687ff; --invite-ink:#07111e;
 --selected:#193c64; --selected-text:#c4e2ff; --selected-border:#1687ff;
 --nav:#19212d; --nav-glass:#19212df5; --nav-line:#a6bdd136;
 --highlight:#ffffff0d; --shadow:#0005; --danger:#ffb7af; --danger-bg:#9a3931;
 --back-a:#15365d; --back-b:#204b7b; --back-edge:#7692b5; --back-ink:#c4e2ff; --back-shadow:#101f34;
 background:var(--bg); color:var(--text);
}
body { isolation:isolate; min-height:100svh; }
:root:not([data-theme="dark"]):not([data-theme="light"]):not([data-theme="pink"]) body {
 background:radial-gradient(ellipse at 50% 0%,#1687ff0c,transparent 65%);
}
/* Fixed decorative layers cannot intercept taps or enter the accessibility tree. */
body::before,body::after { content:""; position:fixed; pointer-events:none; z-index:-1; }
body::before { inset:-36px; background:url('/icons/pflabs-game-outlines.svg') repeat; background-size:560px 440px; opacity:.16; }
body::after { inset:0; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='5' height='5'%3E%3Cpath d='M0 0h1v1H0z' fill='%23fff' fill-opacity='.035'/%3E%3C/svg%3E"); }
/* Player-selected palettes keep their existing background without blue decoration. */
:root:is([data-theme="dark"],[data-theme="light"],[data-theme="pink"]) body::before,
:root:is([data-theme="dark"],[data-theme="light"],[data-theme="pink"]) body::after { display:none; }
@media(prefers-reduced-motion:no-preference) { body::before { animation:pf-outline-drift 32s ease-in-out infinite alternate; } }
@keyframes pf-outline-drift { from { transform:translate3d(-12px,-8px,0); } to { transform:translate3d(12px,8px,0); } }
@media(prefers-reduced-motion:reduce) { body::before,body::after { animation:none!important; transform:none!important; } }
@media(max-width:480px) { body::before { background-size:448px 352px; opacity:.12; } }
.pflabs-hub header span,.pflabs-hub header p,.pflabs-hub footer { color:var(--muted); }
.pflabs-hub .notice { background:var(--surface); border-color:var(--accent); }
.pflabs-hub .game { background:var(--surface); border-color:var(--border); margin-bottom:16px; box-shadow:0 8px 24px #0002; }
.pflabs-hub .game>span,.pflabs-hub .game b,.pflabs-hub a { color:#67b2ff; }
.pflabs-hub a:focus-visible { outline-color:var(--accent); }
.pflabs-hub .game:hover { border-color:var(--accent); background:var(--surface-raised); }
.bug-report-card { background:var(--surface); }
.bug-beta-label { background:var(--selected); color:var(--text); }
.bug-report-form input,.bug-report-form textarea { border-color:var(--border-strong); background:var(--bg); }
.pflabs-stud .brand,.pflabs-stud .intro,.pflabs-stud #welcome,.pflabs-stud .hint,.pflabs-stud details,.pflabs-stud footer { color:var(--muted); }
.pflabs-stud .badge,.pflabs-stud details,.pflabs-stud footer { border-color:var(--border); }
.pflabs-stud .stakes,.pflabs-stud .seat h2 span { color:#8ec5ff; }
.pflabs-stud .table { background:radial-gradient(ellipse at center,#203b5b,#172638); border-color:var(--border); }
.pflabs-stud .card.down { background:repeating-linear-gradient(45deg,var(--back-a),var(--back-a) 4px,var(--back-b) 4px,var(--back-b) 8px); border-color:var(--back-edge); color:var(--back-ink); }
.pflabs-stud .card.private { border-bottom-color:var(--accent); }
.pflabs-stud .center,.pflabs-stud summary { color:var(--text); }
.pflabs-stud .center strong { color:#8ec5ff; }
.pflabs-stud .center #status { color:var(--text); }
.pflabs-stud button { background:var(--accent); color:var(--accent-ink); border-color:var(--accent); }
.pflabs-stud button.secondary { background:var(--surface-raised); color:var(--text); border-color:var(--border-strong); }
.pflabs-stud input { background:var(--bg); color:var(--text); border-color:var(--border-strong); }
.pflabs-stud :is(button,summary,a,input):focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.swatch-classic { --swatch-bg:#111419; --swatch-accent:#1687ff; }
:root[data-pf-motion="off"] body::before { animation:none!important; transform:none!important; }
.pf-motion-toggle { display:block; margin:10px auto 0; min-height:44px; padding:8px 12px; border:1px solid var(--border); border-radius:10px; background:var(--surface); color:var(--muted); font:inherit; cursor:pointer; }
.pf-motion-toggle:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.pf-motion-toggle:disabled { opacity:1; cursor:default; }
:root:is([data-theme="dark"],[data-theme="light"],[data-theme="pink"]) .pf-motion-toggle { display:none; }

.pflabs-hub .bug-report-form button { min-height:44px; padding:10px 16px; border:1px solid var(--accent); border-radius:10px; background:var(--accent); color:var(--accent-ink); font:inherit; cursor:pointer; }
:root[data-theme="classic"] .mini-card.ace { color:var(--accent-ink); }

/* Keep screen-reader navigation focus on static headings without drawing title boxes. */
[data-pf-panel] :is(h1,h2,h3)[tabindex="-1"]:focus,
#settingsTitle[tabindex="-1"]:focus,
#matchesTitle[tabindex="-1"]:focus { outline: none; }
