/* Shared look for the DFC sign-up form and its admin panel (DFC navy, green→blue, Barlow Condensed). */
:root{
  --ground:#e8eef3; --surface:#ffffff; --sunk:#f2f6f9; --ink:#0a1826; --muted:#546577;
  --line:#d4dde5; --line-strong:#aebdca; --tick-empty:#d9e2e9;
  --grad-a:#7ac943; --grad-b:#1fa2db; --grad:linear-gradient(90deg,var(--grad-a),var(--grad-b)); --on-grad:#04121f;
  --accent:#0f6f9a; --sel:#eef8fd;
  --ok:#37701a; --ok-bg:#e7f4dc; --warn:#9a5c00; --warn-bg:#fff1d6; --crit:#b93434; --crit-bg:#fcebeb;
  --shadow:0 1px 2px rgba(6,18,31,.05),0 10px 30px -12px rgba(6,18,31,.12);
  --display:"Barlow Condensed","Arial Narrow",system-ui,sans-serif;
  --text:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root{
    --ground:#06121f; --surface:#0c1c2c; --sunk:#091829; --ink:#eef3f8; --muted:#93a7b9;
    --line:#1c3246; --line-strong:#2f4b63; --tick-empty:#193043;
    --accent:#4db9e9; --sel:rgba(31,162,219,.1);
    --ok:#9ade6a; --ok-bg:rgba(122,201,67,.13); --warn:#f2b54f; --warn-bg:rgba(242,181,79,.12); --crit:#ff8c80; --crit-bg:rgba(255,140,128,.1);
    --shadow:0 1px 0 rgba(255,255,255,.03),0 18px 40px -20px rgba(0,0,0,.6);
    color-scheme:dark;
  }
}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font:400 15px/1.55 var(--text);-webkit-font-smoothing:antialiased;padding-inline:16px;padding-block:0 48px}
button,input,textarea,select{font:inherit;color:inherit}
h1,h2,h3{margin:0;text-wrap:balance}
p{margin:0}
a{color:var(--accent)}
.label{font:600 12px/1.2 var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* top bar */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;padding-block:18px 4px}
.brand{display:flex;align-items:center;gap:12px;min-width:0;color:var(--ink);text-decoration:none}
.logo{width:81px;height:28px;background:currentColor;-webkit-mask:url(rixos-logo.png) center/contain no-repeat;mask:url(rixos-logo.png) center/contain no-repeat;flex:none}
.brand .sep{width:1px;height:24px;background:var(--line-strong)}
.brand .label{color:var(--ink)}

/* surfaces */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}

/* capacity */
.tally{display:flex;align-items:baseline;gap:8px;font-variant-numeric:tabular-nums}
.tally .num{font:700 48px/.85 var(--display)}
.tally .of{font:600 16px/1 var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pill{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;font:600 13px/1 var(--text);white-space:nowrap;background:var(--surface);color:var(--muted);border:1px solid var(--line)}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.pill.ok{background:var(--ok-bg);color:var(--ok);border-color:transparent}
.pill.warn{background:var(--warn-bg);color:var(--warn);border-color:transparent}
.pill.crit{background:var(--crit-bg);color:var(--crit);border-color:transparent}
.ticks{display:flex;gap:3px;height:30px}
.tick{flex:1;min-width:1px;border-radius:3px;background:var(--tick-empty);transition:background-color .35s ease}
.ticks.grouped .tick:nth-child(5n):not(:last-child){margin-right:5px}
.tick.on{background:var(--c)}

/* fields */
.field{width:100%;height:46px;padding:0 14px;border:1px solid var(--line-strong);border-radius:9px;background:var(--surface);transition:border-color .15s,box-shadow .15s}
textarea.field{height:auto;min-height:88px;padding:11px 14px;resize:vertical;line-height:1.5}
.field::placeholder{color:var(--muted);opacity:.7}
.field:focus{outline:none;border-color:var(--grad-b);box-shadow:0 0 0 3px color-mix(in srgb,var(--grad-b) 22%,transparent)}
.err{display:none;font-size:13px;font-weight:500;color:var(--crit)}
.invalid .err{display:block}
.invalid .field,.invalid .opt{border-color:var(--crit)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 22px;border-radius:10px;border:1px solid var(--line-strong);background:var(--surface);font-weight:600;cursor:pointer;white-space:nowrap;text-decoration:none;color:var(--ink)}
.btn:hover{border-color:var(--ink)}
.btn.primary{border:0;background:var(--grad);color:var(--on-grad);font:700 17px/1 var(--display);letter-spacing:.1em;text-transform:uppercase;padding:0 26px}
.btn.primary:hover{filter:brightness(1.05)}
.btn[disabled]{opacity:.6;cursor:progress}
.btn.quiet{border-color:transparent;background:none;color:var(--muted)}
.btn.quiet:hover{color:var(--ink)}
.btn.small{height:36px;padding:0 14px;font-size:14px}
.btn.primary.small{font-size:15px;padding:0 18px}
.btn:focus-visible,.link:focus-visible,.switch:focus-visible,.tab:focus-visible{outline:2px solid var(--grad-b);outline-offset:2px}
.link{background:none;border:0;padding:0;color:var(--accent);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* choice tiles */
.opts{display:grid;gap:8px}
.opt{display:grid;grid-template-columns:20px minmax(0,1fr);gap:12px;align-items:start;padding:12px 14px;border:1px solid var(--line);border-radius:10px;cursor:pointer;background:var(--surface);transition:border-color .15s,background-color .15s}
.opt:hover{border-color:var(--line-strong)}
.opt:has(input:checked){border-color:var(--grad-b);background:var(--sel)}
.opt b{display:block;font-weight:600;font-size:14.5px;line-height:1.3}
.opt small{display:block;font-size:13px;color:var(--muted);line-height:1.4;margin-top:2px}
.opt input{appearance:none;-webkit-appearance:none;width:20px;height:20px;margin:0;border:2px solid var(--line-strong);border-radius:50%;display:grid;place-items:center;background:var(--surface);cursor:pointer}
.opt input:checked{border-color:var(--grad-b)}
.opt input[type="radio"]:checked::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--grad)}
.opt input[type="checkbox"]{border-radius:5px}
.opt input[type="checkbox"]:checked{background:var(--grad);border-color:transparent}
.opt input[type="checkbox"]:checked::before{content:"";width:5px;height:10px;border:solid var(--on-grad);border-width:0 2.5px 2.5px 0;transform:translateY(-1px) rotate(45deg)}
.opt input:focus-visible{outline:2px solid var(--grad-b);outline-offset:2px}

/* switch */
.switch{display:inline-flex;align-items:center;gap:10px;border:0;background:none;padding:4px 0;cursor:pointer;font-size:14px;font-weight:500;color:var(--ink)}
.switch .track{width:38px;height:22px;border-radius:999px;background:var(--line-strong);position:relative;transition:background-color .2s;flex:none}
.switch .track::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s}
.switch[aria-checked="true"] .track{background:var(--grad-b)}
.switch[aria-checked="true"] .track::after{transform:translateX(16px)}
.switch[disabled]{opacity:.6;cursor:progress}

.notice{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;padding:12px 16px;border-radius:12px;font-size:14px;background:var(--sel);color:var(--ink);border:1px solid var(--line)}
.notice.warn{background:var(--warn-bg)}
.notice.crit{background:var(--crit-bg)}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
