@font-face{font-family:Satoshi;src:url("/static/assets/fonts/satoshi-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Satoshi;src:url("/static/assets/fonts/satoshi-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Satoshi;src:url("/static/assets/fonts/satoshi-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Satoshi;src:url("/static/assets/fonts/satoshi-900.woff2") format("woff2");font-weight:900;font-style:normal;font-display:swap}

:root{--bg:#f8f9fc;--paper:#fff;--ink:#171823;--muted:#646674;--line:#e6e7ee;--green:#6845e6;--lime:#f0ebff;--sand:#f5f4fa;--warn:#80531e;--red:#af3548;--brand-primary:#6845e6;--brand-primary-hover:#5431cc;--brand-primary-active:#4525b3;--brand-deep:#493290;--brand-lilac:#a88af7;--brand-tint:#f0ebff;--brand-charcoal:#151522;--brand-slate:#272735;--page-background:#f8f9fc;--surface:#fff;--surface-subtle:#f5f4fa;--text-primary:#171823;--text-secondary:#646674;--text-on-dark:#fff;--border-default:#e6e7ee;--focus-ring:#6845e6;--brand-gradient:linear-gradient(135deg,#493290,#8259ed);--shadow-card:none;--shadow-hover:0 5px 14px #1718230d;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);background:var(--bg);font:16px/1.6 Satoshi,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:var(--brand-primary-hover);text-underline-offset:4px}img{max-width:100%}p{max-width:56ch}h1,h2,h3{color:var(--ink);font-family:inherit;line-height:1.15;letter-spacing:-.035em}h1,h2,h3{font-weight:700}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #6845e629;outline-offset:1px;border-color:var(--focus-ring)}[hidden],.hidden{display:none!important}.skip-link{position:fixed;top:10px;left:16px;z-index:1000;padding:12px 18px;border-radius:8px;background:var(--ink);color:white;transform:translateY(-200%)}.skip-link:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.primary,.secondary,.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:12px 20px;border-radius:9px;font-weight:700;line-height:1.3;text-decoration:none;border:1px solid transparent;transition:background .2s ease,transform .2s ease,border-color .2s ease}.primary{background:var(--green);color:#fff}.primary:hover{background:var(--brand-primary-hover);color:white}.secondary{background:var(--surface);color:var(--ink);border-color:var(--line)}.secondary:hover{background:var(--sand);border-color:#b7a5ef;color:var(--ink)}.primary:active,.secondary:active{transform:translateY(1px)}.text-button{min-height:36px;color:var(--brand-primary-hover)}label{font-weight:700}input:not([type=checkbox]):not([type=radio]),select,textarea{min-height:46px;border:1px solid var(--border-default);border-radius:8px;padding:11px 13px;color:var(--ink);background:var(--surface)}input::placeholder,textarea::placeholder{color:#737581;opacity:1}.muted{color:var(--muted);font-size:14px}.brand-logo,.public-logo{width:44px;height:44px;object-fit:contain;flex-shrink:0;filter:none}.brand,.public-brand{display:flex;align-items:center;gap:10px;font-weight:900;font-size:21px;letter-spacing:-.035em;color:var(--ink);text-decoration:none}.brand small,.public-brand small{display:block;margin:0;color:var(--muted);font-size:12px;line-height:1.5;letter-spacing:normal;font-weight:500;text-transform:none}.notice,.status{font-size:14px;line-height:1.6}.notice.error,.status.error{color:#94283a;background:#fff0f2}.status.good{color:#285b4d;background:#edf7f0}.status:empty{display:none}svg.ui-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}small{font-size:13px}details summary{cursor:pointer}::selection{background:#d9ccff;color:#251251}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Dark theme: explicit choice, and the system default unless the user chose light. */
:root[data-theme="dark"]{--bg:#0f1016;--paper:#191a24;--ink:#e9e9f1;--muted:#a6a7b6;--line:#2a2b39;--green:#8a6df0;--lime:#241c45;--sand:#1d1e29;--warn:#e0b878;--red:#f1869a;--brand-primary:#8a6df0;--brand-primary-hover:#9d85f5;--brand-primary-active:#b09bf8;--brand-deep:#c3b3f7;--brand-lilac:#a88af7;--brand-tint:#241c45;--brand-charcoal:#e9e9f1;--brand-slate:#c4c5d4;--page-background:#0f1016;--surface:#191a24;--surface-subtle:#1d1e29;--text-primary:#e9e9f1;--text-secondary:#a6a7b6;--text-on-dark:#fff;--border-default:#2a2b39;--focus-ring:#8a6df0;--shadow-card:none;--shadow-hover:0 6px 18px #00000066;color-scheme:dark}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0f1016;--paper:#191a24;--ink:#e9e9f1;--muted:#a6a7b6;--line:#2a2b39;--green:#8a6df0;--lime:#241c45;--sand:#1d1e29;--warn:#e0b878;--red:#f1869a;--brand-primary:#8a6df0;--brand-primary-hover:#9d85f5;--brand-primary-active:#b09bf8;--brand-deep:#c3b3f7;--brand-lilac:#a88af7;--brand-tint:#241c45;--brand-charcoal:#e9e9f1;--brand-slate:#c4c5d4;--page-background:#0f1016;--surface:#191a24;--surface-subtle:#1d1e29;--text-primary:#e9e9f1;--text-secondary:#a6a7b6;--text-on-dark:#fff;--border-default:#2a2b39;--focus-ring:#8a6df0;--shadow-card:none;--shadow-hover:0 6px 18px #00000066;color-scheme:dark}}
:root[data-theme="dark"]{.notice.error,.status.error{background:#3a1d24;color:#f1869a}.status.good{background:#13302a;color:#86d9bd}.secondary:hover{border-color:var(--brand-primary)}.theme-toggle svg{stroke:currentColor}}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){.notice.error,.status.error{background:#3a1d24;color:#f1869a}.status.good{background:#13302a;color:#86d9bd}.secondary:hover{border-color:var(--brand-primary)}.theme-toggle svg{stroke:currentColor}}}
/* Toggle button */
.theme-toggle{min-height:40px;padding:8px 12px;gap:8px}
.theme-toggle .ui-icon{width:18px;height:18px}
