@font-face{
  font-family:'Public Sans';
  src:url('/assets/public-sans.woff2') format('woff2');
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}

/* Palette: Blackened Steel #201E1B · Press Room Brick #8B3A2E · Raw Concrete #9A958C
   · Newsprint #ECE6D8 · White #FFFFFF · Machine Green #93A88E · Bolt Green #B4EC3C
   (Machine Green appears via its derived --band tints; other non-palette hexes are
   contrast-adjusted tints/shades of these, e.g. --volt #5E7D1B = bolt green darkened for text.) */
:root{
  --ground:#ECE6D8;
  --card:#FFFFFF;
  --header:#201E1B;
  --ink:#201E1B;
  --ink-soft:#57534B;
  --ink-faint:#9A958C;
  --line:#DBD5C6;
  --field:#FFFFFF;
  --field-line:#C9C2B1;
  --volt:#5E7D1B;
  --volt-fill:#B4EC3C;
  --volt-fill-ink:#201E1B;
  --danger:#8B3A2E;
  --danger-soft:#F4E5E1;
  --ok:#5E7D1B;
  --ok-soft:#EAF1D6;
  --band:#D7DECB;
  --shadow:0 1px 2px rgba(32,30,27,.06), 0 12px 34px rgba(32,30,27,.10);
  --radius:14px;
}
@media (prefers-color-scheme:dark){
  :root{
    --ground:#14120E;--card:#201E1B;--header:#100E0B;--ink:#ECE6D8;--ink-soft:#ABA599;--ink-faint:#7C766C;
    --line:#34302A;--field:#1A1713;--field-line:#3D382F;--volt:#B4EC3C;--volt-fill:#B4EC3C;--volt-fill-ink:#201E1B;
    --danger:#D98A76;--danger-soft:#2E1A15;--ok:#B4EC3C;--ok-soft:#1F2A11;--band:#2E3A2B;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 18px 44px rgba(0,0,0,.55);
  }
}
:root[data-theme="light"]{
  --ground:#ECE6D8;--card:#FFFFFF;--header:#201E1B;--ink:#201E1B;--ink-soft:#57534B;--ink-faint:#9A958C;
  --line:#DBD5C6;--field:#FFFFFF;--field-line:#C9C2B1;--volt:#5E7D1B;--volt-fill:#B4EC3C;--volt-fill-ink:#201E1B;
  --danger:#8B3A2E;--danger-soft:#F4E5E1;--ok:#5E7D1B;--ok-soft:#EAF1D6;--band:#D7DECB;
  --shadow:0 1px 2px rgba(32,30,27,.06), 0 12px 34px rgba(32,30,27,.10);
}
:root[data-theme="dark"]{
  --ground:#14120E;--card:#201E1B;--header:#100E0B;--ink:#ECE6D8;--ink-soft:#ABA599;--ink-faint:#7C766C;
  --line:#34302A;--field:#1A1713;--field-line:#3D382F;--volt:#B4EC3C;--volt-fill:#B4EC3C;--volt-fill-ink:#201E1B;
  --danger:#D98A76;--danger-soft:#2E1A15;--ok:#B4EC3C;--ok-soft:#1F2A11;--band:#2E3A2B;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 18px 44px rgba(0,0,0,.55);
}

*{box-sizing:border-box}
body{margin:0}
.page{
  font-family:'Public Sans',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  background:var(--ground);color:var(--ink);min-height:100vh;
  padding:28px 16px 64px;display:flex;flex-direction:column;align-items:center;gap:16px;
  -webkit-font-smoothing:antialiased;line-height:1.5;
}
.card{
  width:100%;max-width:640px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;
}
.brand{background:var(--header);padding:26px 28px 24px;border-bottom:2px solid var(--volt-fill);}
.brand svg{width:190px;height:auto;display:block}
.brand h1{margin:20px 0 0;font-size:30px;line-height:1.08;font-weight:900;letter-spacing:-.01em;color:#ECE6D8;text-wrap:balance;}
.body{padding:24px 28px 28px;}
.intro{display:flex;flex-direction:column;gap:12px;margin:0 0 24px;}
.intro>p{margin:0;color:var(--ink-soft);font-size:15px;max-width:62ch;}
.callout{display:flex;flex-direction:column;gap:5px;background:color-mix(in srgb,var(--ink) 5%,var(--card));border:1px solid var(--line);border-left:3px solid var(--danger);border-radius:10px;padding:13px 15px;margin-top:2px;}
.callout-tag{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--danger);}
.callout p{margin:0;color:var(--ink);font-size:14px;}
.fieldset{border:0;padding:0;margin:0 0 22px;}
.legend{display:flex;align-items:baseline;gap:8px;margin:0 0 12px;font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);}
.legend .num{color:var(--volt);font-size:12px;font-weight:800;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media (max-width:480px){.grid2{grid-template-columns:1fr;}}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;}
.field:last-child{margin-bottom:0;}
label .lab{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);}
label .req{color:var(--danger);}
label .opt{color:var(--ink-faint);font-weight:600;}
input,select,textarea{font-family:inherit;font-size:15px;color:var(--ink);background:var(--field);border:1px solid var(--field-line);border-radius:10px;padding:11px 12px;width:100%;transition:border-color .15s ease, box-shadow .15s ease;}
textarea{min-height:70px;resize:vertical;}
input::placeholder,textarea::placeholder{color:var(--ink-faint);}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--volt);box-shadow:0 0 0 3px color-mix(in srgb, var(--volt) 28%, transparent);}
input[aria-invalid="true"]{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 22%, transparent);}
.hint{font-size:12px;color:var(--ink-faint);}
.gauge-wrap{border:1px solid var(--line);border-radius:12px;padding:16px 16px 14px;background:var(--ground);margin-top:4px;}
.gauge-top{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px;}
.gauge-count{display:flex;align-items:baseline;gap:7px;}
.gauge-count .n{font-size:34px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em;}
.gauge-count .u{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);}
.pill{font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:5px 10px;border-radius:999px;border:1px solid transparent;white-space:nowrap;}
.pill.neutral{color:var(--ink-faint);background:transparent;border-color:var(--line);}
.pill.ok{color:var(--ok);background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 30%,transparent);}
.pill.bad{color:var(--danger);background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 30%,transparent);}
.track{position:relative;height:12px;border-radius:999px;background:color-mix(in srgb,var(--ink) 8%,transparent);overflow:hidden;}
.track .valid{position:absolute;top:0;bottom:0;background:var(--band);} /* left + width set by form.js from MIN_DAYS/MAX_DAYS */
.track .fill{position:absolute;top:0;bottom:0;left:0;width:0;background:var(--ok);opacity:.9;transition:width .18s ease, background .18s ease;}
.track .fill.bad{background:var(--danger);}
.ticks{position:relative;height:16px;margin-top:6px;font-size:10.5px;font-weight:700;letter-spacing:.06em;color:var(--ink-faint);}
.ticks span{position:absolute;transform:translateX(-50%);white-space:nowrap;}
/* .t14 / .t84 left positions set by form.js from MIN_DAYS/MAX_DAYS */
.gauge-msg{margin-top:12px;font-size:13.5px;font-weight:600;min-height:20px;color:var(--ink-soft);}
.gauge-msg.ok{color:var(--ok);}
.gauge-msg.bad{color:var(--danger);}
.resume{margin-top:6px;font-size:12.5px;color:var(--ink-faint);}
.resume b{color:var(--ink);font-weight:700;}
.check{display:flex;gap:11px;align-items:flex-start;padding:12px 13px;border:1px solid var(--field-line);border-radius:10px;background:var(--field);margin-bottom:10px;cursor:pointer;}
.check:last-of-type{margin-bottom:0;}
.check input{width:18px;height:18px;margin:2px 0 0;flex:0 0 auto;accent-color:var(--volt);}
.check span{font-size:13.5px;color:var(--ink-soft);}
.check a{color:var(--volt);font-weight:600;text-underline-offset:2px;}
.actions{margin-top:24px;}
.btn{width:100%;font-family:inherit;font-size:15px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border:0;border-radius:11px;padding:15px 18px;cursor:pointer;transition:transform .08s ease, opacity .15s ease, background .15s ease;background:var(--volt-fill);color:var(--volt-fill-ink);}
.btn:hover{transform:translateY(-1px);}
.btn:active{transform:translateY(0);}
.btn:disabled{background:color-mix(in srgb,var(--ink) 12%,transparent);color:var(--ink-faint);cursor:not-allowed;transform:none;}
.btn:focus-visible{outline:3px solid var(--volt);outline-offset:2px;}
.disclaim{margin-top:12px;text-align:center;font-size:12px;color:var(--ink-faint);}
.success{padding:40px 30px;text-align:center;}
.success .tick{width:56px;height:56px;border-radius:50%;background:var(--ok-soft);color:var(--ok);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;border:1.5px solid color-mix(in srgb,var(--ok) 40%,transparent);}
.success .tick svg{width:28px;height:28px;}
.success h2{margin:0 0 8px;font-size:24px;font-weight:900;letter-spacing:-.01em;}
.success p{margin:0 auto 18px;color:var(--ink-soft);max-width:44ch;font-size:15px;}
.summary{text-align:left;background:var(--ground);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin:0 auto 20px;max-width:400px;}
.summary .row{display:flex;justify-content:space-between;gap:16px;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px;}
.summary .row:last-child{border-bottom:0;}
.summary .row .k{color:var(--ink-faint);font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:11.5px;align-self:center;}
.summary .row .v{font-weight:700;text-align:right;}
.linkbtn{background:none;border:0;color:var(--volt);font-family:inherit;font-size:13.5px;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px;}
.hidden{display:none !important;}
@media (prefers-reduced-motion:reduce){*{transition:none !important;}}
