/* public-theme.css — the light/dark toggle and the few hand-tuned light-mode
 * fixes the generated palette cannot derive (logo filters). Owner 2026-09-06.
 * Palette rules themselves are generated: scripts/build-public-light-theme.mjs. */

.public-theme-toggle{
  display:inline-grid;place-items:center;width:34px;height:34px;padding:0;
  border:1px solid rgba(255,255,255,.16);border-radius:999px;
  background:rgba(255,255,255,.04);color:#f4f4f5;cursor:pointer;
  transition:border-color .2s,background .2s,transform .2s;
}
.public-theme-toggle:hover{border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.07)}
.public-theme-toggle:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.public-theme-icon{display:grid;place-items:center;line-height:0}
.public-theme-icon svg{display:block}
.public-theme-toggle .public-theme-icon-moon{display:none}
html[data-public-theme="light"] .public-theme-toggle .public-theme-icon-sun{display:none}
html[data-public-theme="light"] .public-theme-toggle .public-theme-icon-moon{display:grid}
html[data-public-theme="light"] .public-theme-toggle{border-color:rgba(0,0,0,.16);background:rgba(0,0,0,.04);color:#111113}
html[data-public-theme="light"] .public-theme-toggle:hover{border-color:rgba(0,0,0,.4);background:rgba(0,0,0,.07)}

/* Pages without an inline slot get a small fixed toggle out of the way. */
.public-theme-toggle-floating{
  position:fixed;right:16px;bottom:16px;z-index:2147482000;width:40px;height:40px;
  background:rgba(20,20,22,.9);backdrop-filter:blur(10px);box-shadow:0 10px 30px rgba(0,0,0,.45);
}
html[data-public-theme="light"] .public-theme-toggle-floating{background:rgba(255,255,255,.92);box-shadow:0 10px 30px rgba(0,0,0,.14)}
@media print{.public-theme-toggle{display:none}}

/* Landing page marks: keep them legible on a light ground. These carry one
 * extra `body` so they outrank the generated rules that load after them. */
html[data-public-theme="light"] body .grant-logo{filter:brightness(0);opacity:.8}
html[data-public-theme="light"] body .f6s-logo{filter:grayscale(1) brightness(.35)}
html[data-public-theme="light"] body ::selection{background:#111;color:#fff}
html[data-public-theme="light"] body .leap-mark{color:#fff;background:linear-gradient(145deg,#2a2a2e,#111113)}
/* Landing in light mode sits on true white (owner 2026-09-07), not the
 * mirrored off-white the generator derives. `body` outranks the generated rules. */
html[data-public-theme="light"] body{background:#ffffff}
html[data-public-theme="light"] body .page{background:radial-gradient(120% 70% at 50% -10%,#ededeb 0%,#f8f8f7 45%,#ffffff 100%)}
/* The landing nav slot sits between the language picker and Log in. */
.public-theme-slot{display:inline-flex;align-items:center}
.nav-tools{display:inline-flex;align-items:center;gap:14px}
.legal-page-header .public-theme-slot{margin-left:auto;margin-right:14px}
.legal-page-header .legal-page-kind{margin-left:0}
