@font-face { font-family: Manrope; src: url('/static/design/Manrope.ttf') format('truetype'); font-display: swap; }
:root {
  color-scheme: dark; --bg: #0b0f19; --panel: #121927; --raised: #1b2435; --line: #2a354a;
  --text: #f2f5fb; --muted: #abb8ce; --accent: #a8baff; --primary: #5369e8; --focus: #b5c5ff;
  --soft: #202b48; --green: #8ee3b3; --good-bg: #143829; --amber: #f2cc83; --warn-bg: #3b301c;
  --red: #ffadb8; --bad-bg: #442432; --radius: 14px; --control-radius: 9px;
  --font: Manrope, 'Segoe UI', sans-serif; --shadow: 0 12px 36px #00000020;
  font-family: var(--font); font-size: 14px; font-synthesis: none;
}
:root[data-theme='light'] {
  color-scheme: light; --bg: #f7f8fc; --panel: #ffffff; --raised: #eef1f8; --line: #dce1ed;
  --text: #192239; --muted: #53617a; --accent: #4356c7; --primary: #465ed3; --focus: #4054c7;
  --soft: #e9edff; --green: #17613d; --good-bg: #e4f5ec; --amber: #845313; --warn-bg: #fff2d9;
  --red: #a92d43; --bad-bg: #fdeaf0; --shadow: 0 12px 36px #2335570c;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scrollbar-color: var(--muted) var(--bg); }
body { margin: 0; background: var(--bg); color: var(--text); font: 400 14px/1.65 var(--font); }
::selection { background: var(--accent); color: var(--bg); }
a { color: var(--accent); text-decoration: none; text-underline-offset: 4px; }
a:hover { text-decoration: underline; }
img { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
:where(a,button,input,select,textarea,summary):focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
input, textarea { caret-color: var(--accent); }
input, select, textarea { color: var(--text); background: var(--panel); border: 1px solid var(--line); border-radius: var(--control-radius); padding: 11px 13px; min-height: 44px; max-width: 100%; }
.help-text.field-error { color: var(--red); font-weight: 650; }
input[aria-invalid='true'], select[aria-invalid='true'], textarea[aria-invalid='true'] { border-color: var(--red); }
[aria-invalid='true']:focus-visible { outline-color: var(--red); }
input::placeholder, textarea::placeholder { color: var(--muted); }
input[type='checkbox'], input[type='radio'] { accent-color: var(--primary); }
button:disabled, .cta[aria-disabled='true'] { opacity: .6; cursor: not-allowed; }
h1, h2, h3 { line-height: 1.25; text-wrap: balance; color: var(--text); }
h1 { font-size: clamp(30px, 3.5vw, 48px); letter-spacing: -.035em; margin: 0 0 16px; }
h2 { font-size: 22px; letter-spacing: -.025em; margin: 0 0 14px; }
h3 { font-size: 17px; margin: 0 0 10px; }
p { max-width: 72ch; margin: 0 0 16px; }
strong, b { font-weight: 700; }
small { font-size: 12px; }
code { font: .9em ui-monospace, monospace; background: var(--raised); color: var(--text); padding: 3px 6px; border-radius: 4px; overflow-wrap: anywhere; }
.muted, .help-text, .lead, .note { color: var(--muted); }
.icon { flex-shrink: 0; vertical-align: middle; }
.button, .cta, button.primary { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 44px; padding: 11px 18px; border: 1px solid var(--line); border-radius: var(--control-radius); font-weight: 650; text-decoration: none; color: var(--text); background: var(--panel); transition: background .15s, border-color .15s; }
.cta, .button.primary, button.primary { background: var(--primary); color: #fff; border-color: var(--primary); }
.cta:hover, .button.primary:hover, button.primary:hover { background: color-mix(in srgb, var(--primary), #152555 15%); text-decoration: none; }
.ghost, .cta.ghost { background: transparent; color: var(--text); border-color: var(--line); }
.ghost:hover, .cta.ghost:hover { background: var(--raised); }
.theme-toggle { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 10px; border: 1px solid var(--line); border-radius: var(--control-radius); color: var(--text); background: transparent; flex-shrink: 0; }
.theme-dark, [data-theme='light'] .theme-light { display: none; }
[data-theme='light'] .theme-dark { display: block; }
.status, .availability { display: inline-flex; align-items: center; gap: 7px; padding: 5px 9px; border-radius: 6px; font-size: 12px; font-weight: 650; white-space: nowrap; color: var(--muted); background: var(--raised); }
.status i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.good, .open { color: var(--green); background: var(--good-bg); }
.warn { color: var(--amber); background: var(--warn-bg); }
.bad, .err { color: var(--red); background: var(--bad-bg); }
.card, .panel { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); }
.banner, .notice { padding: 16px 18px; color: var(--muted); background: var(--raised); border-radius: 10px; }
.err { padding: 16px 18px; border-radius: 10px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
fieldset { padding: 0; border: 0; min-width: 0; }
legend { padding: 0; font-size: 17px; font-weight: 700; margin-bottom: 16px; }
details summary { cursor: pointer; min-height: 44px; padding: 10px 0; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
@media (max-width: 640px) { .form-grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
