/* SchoolSaidNo — "Teal & Coral" design system. Warm, human, determined.
   Distinct from CSAScoreCheck (pine/brass/serif): humanist sans display, deep teal + coral. */
:root{
  --paper:#FBF4E9; --paper2:#F3E8D3; --card:#FFFDF8;
  --ink:#223140; --ink2:#46586A;
  --teal:#0E5A63; --teal-deep:#07333B; --teal-deep2:#05262C;
  --coral:#BC3F16; --coral-vivid:#E4572E; --marigold:#E9A13B;
  --line:#E2D5BE; --line-dark:#0F4A53;
  --ok:#177245; --warn:#9A5B08; --danger:#B3271E;
  --shadow:0 2px 6px rgba(34,49,64,.08),0 14px 34px rgba(34,49,64,.10);
  --radius:14px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:1.06rem;line-height:1.58}
h1,h2,h3{font-family:"Avenir Next","Trebuchet MS","Segoe UI",Verdana,sans-serif;
  line-height:1.14;letter-spacing:-.015em;color:var(--ink);margin:0 0 .5em}
h1{font-size:2.05rem;font-weight:800}
h2{font-size:1.55rem;font-weight:800;margin-top:1.6em}
h3{font-size:1.18rem;font-weight:700;margin-top:1.3em}
p{margin:.55em 0}
a{color:var(--teal);text-underline-offset:2px}
a:hover{color:var(--coral)}
small{color:var(--ink2)}
ul,ol{margin:.5em 0 .9em;padding-left:1.25em}
li{margin:.28em 0}
.wrap{max-width:1060px;margin:0 auto;padding:0 18px}
section{padding:34px 0}
section.alt{background:var(--paper2)}
section.dark{background:linear-gradient(160deg,#0B4750,#05262C);color:#F5EFE3}
section.dark h1,section.dark h2,section.dark h3{color:#FFF9EC}
section.dark p,section.dark li{color:#F5EFE3}
section.dark a{color:var(--marigold)}
section.dark small{color:#D8CFBB}
section.dark label,section.dark legend{color:#FFF9EC}

/* header + lockup (ONE lockup everywhere; on dark it sits on a light plate) */
header.site{background:var(--paper);border-bottom:3px solid var(--marigold)}
.hd{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;flex-wrap:wrap}
.lockup{display:inline-flex;align-items:center;gap:10px;text-decoration:none}
.lockup .mark{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;
  border-radius:10px;background:var(--coral-vivid);color:#fff;font-weight:900;font-size:1.25rem;line-height:1;
  font-family:"Avenir Next","Trebuchet MS",Verdana,sans-serif;box-shadow:0 3px 8px rgba(188,63,22,.35)}
.lockup .name{font-family:"Avenir Next","Trebuchet MS",Verdana,sans-serif;font-weight:800;font-size:1.32rem;letter-spacing:-.02em}
.lockup .a{color:var(--ink)} .lockup .b{color:var(--coral)}
.lockup.onplate{background:var(--paper);padding:7px 12px 7px 8px;border-radius:12px}
nav.main{display:flex;flex-wrap:wrap;gap:2px}
nav.main a{color:var(--ink);text-decoration:none;font-weight:600;font-size:.98rem;padding:8px 10px;border-radius:8px}
nav.main a:hover{background:var(--paper2);color:var(--coral)}

/* hero */
.hero{background:
  radial-gradient(620px 300px at 88% -40px,rgba(228,87,46,.38),transparent 62%),
  radial-gradient(700px 340px at -10% 110%,rgba(233,161,59,.20),transparent 60%),
  linear-gradient(155deg,#0D4F59 0%,#083A44 52%,#05262C 100%);
  color:#F7F1E3;padding:40px 0 46px;border-bottom:4px solid var(--coral-vivid)}
.hero h1{color:#FFFBF0;font-size:2.3rem;max-width:15.5em}
.hero h2,.hero h3{color:#FFFBF0}
.hero p,.hero li{color:#F3ECDA}
.hero a{color:var(--marigold)}
.hero small{color:#DCD2B8}
.hero label,.hero legend{color:#FFFBF0}
.eyebrow{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--coral);color:var(--coral);
  border-radius:999px;padding:4px 13px;font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px}
.eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--coral-vivid)}
.hero .eyebrow,section.dark .eyebrow{color:#FFD98F;border-color:var(--marigold)}
.lede{font-size:1.16rem;max-width:38em}

/* door picker */
.doorgrid{display:grid;grid-template-columns:1fr;gap:14px;margin:22px 0 6px}
.doorcard{display:block;background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius);
  padding:18px 18px 14px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);position:relative}
.doorcard:hover{border-color:var(--coral)}
.doorcard .fight{font-family:"Avenir Next","Trebuchet MS",Verdana,sans-serif;font-weight:800;font-size:1.22rem;color:var(--ink);display:block}
.doorcard .sub{color:var(--ink2);display:block;margin-top:4px;font-size:.99rem}
.doorcard .go{color:var(--coral);font-weight:700;display:block;margin-top:9px}
.doorcard .dnum{position:absolute;top:14px;right:16px;color:var(--coral);font-weight:800;font-size:.85rem;letter-spacing:.1em}
.hero .doorcard{background:rgba(255,253,248,.97)}

/* checker tool */
.tool{background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin:18px 0}
.tool h2{margin-top:0}
fieldset{border:1.5px solid var(--line);border-radius:12px;padding:14px 16px;margin:14px 0}
fieldset{min-width:0;max-width:100%}
input[type="checkbox"],input[type="radio"]{width:22px;height:22px;flex:none;accent-color:var(--coral);margin:0}
.checks label{display:flex;align-items:center;gap:10px;padding:9px 0;cursor:pointer;min-height:42px}
.tool fieldset input{min-width:0;max-width:100%}
.toolrow.brk input{min-width:0}
legend{font-weight:700;padding:0 6px;color:var(--ink)}
label{display:block;font-weight:600;margin:12px 0 5px;color:var(--ink)}
label .hint{font-weight:400;color:var(--ink2);font-size:.93rem}
input[type=text],input[type=number],input[type=date],select,textarea{
  width:100%;font-size:1.05rem;padding:12px 13px;border:2px solid #C9B892;
  border-radius:10px;background:#fff;color:var(--ink);font-family:inherit}
textarea{min-height:96px}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(233,161,59,.55);border-color:var(--teal)}
.toolrow{display:flex;gap:12px;align-items:stretch;margin-top:14px}
.toolrow input:not([type="checkbox"]):not([type="radio"]),.toolrow select{flex:1 1 220px}
.toolrow .btn{flex:0 0 auto}
.checks label{display:flex;gap:9px;align-items:flex-start;font-weight:500;margin:8px 0}
.checks input{width:20px;height:20px;margin-top:3px;flex:0 0 auto;accent-color:var(--teal)}
.radio-cards{display:grid;gap:9px;margin:8px 0}
.radio-cards label{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--line);border-radius:10px;padding:11px 13px;font-weight:600;cursor:pointer;background:#fff}
.radio-cards input{width:20px;height:20px;margin-top:2px;flex:0 0 auto;accent-color:var(--teal)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--teal);color:#fff;
  font-weight:700;font-size:1.05rem;padding:13px 22px;border-radius:11px;text-decoration:none;border:none;cursor:pointer;
  box-shadow:0 4px 12px rgba(14,90,99,.30);font-family:inherit}
.btn:hover{background:#0B4750;color:#fff}
.btn-coral{background:var(--coral);box-shadow:0 4px 12px rgba(188,63,22,.32)}
.btn-coral:hover{background:#A53711;color:#fff}
.btn-ghost{background:transparent;color:var(--teal);border:2px solid var(--teal);box-shadow:none}
.btn-ghost:hover{background:var(--teal);color:#fff}
section.dark .btn,section.hero .btn{box-shadow:0 4px 14px rgba(0,0,0,.35)}
.hero .btn-ghost{color:#FFD98F;border-color:#FFD98F}
.hero .btn-ghost:hover{background:#FFD98F;color:#223140}

/* result cards */
.result{background:var(--card);border:1.5px solid var(--line);border-top:5px solid var(--marigold);
  border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin:18px 0}
.result h2,.result h3{color:var(--ink)}
.result p,.result li{color:var(--ink)}
.result small{color:var(--ink2)}
.result label{color:var(--ink)}
.verdict{border-radius:10px;padding:14px 16px;font-weight:700;font-size:1.12rem;margin:0 0 14px;color:#fff;background:var(--teal)}
.verdict.warn{background:var(--warn)} .verdict.bad{background:var(--danger)} .verdict.good{background:var(--ok)}
.verdict p{color:#fff;margin:0}
.chip{display:inline-block;border-radius:999px;padding:2px 11px;font-size:.82rem;font-weight:700;letter-spacing:.04em}
.chip.exact{background:#DFF2E4;color:#0E5B33}.chip.est{background:#FBEAC8;color:#7A4A05}
.chip.fed{background:#E2EAF6;color:#274B7A}.chip.state{background:#FDEBDD;color:#8A3A10}.chip.dist{background:#EFE7D8;color:#6B5636}
.dl-row{display:flex;justify-content:space-between;gap:14px;border-bottom:1px dashed var(--line);padding:10px 0}
.dl-row .when{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.dl-row .what{min-width:0}

/* tables */
.tablewrap{overflow-x:auto;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--card);margin:16px 0}
table{border-collapse:collapse;width:100%;font-size:.98rem}
th{font-family:"Avenir Next","Trebuchet MS",Verdana,sans-serif;text-align:left;font-size:.8rem;letter-spacing:.09em;
  text-transform:uppercase;color:var(--ink2);padding:11px 13px;border-bottom:2px solid var(--line)}
td{padding:10px 13px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--ink)}
tr:last-child td{border-bottom:none}
td a{font-weight:600}
section.dark table td,section.dark table th{color:#F5EFE3;border-color:var(--line-dark)}
.stacktable td .k{display:none}

/* kit band */
.band{background:linear-gradient(150deg,#0D4F59,#062C33);border-radius:var(--radius);padding:22px;color:#F7F1E3;
  border-top:5px solid var(--coral-vivid);margin:22px 0;box-shadow:var(--shadow)}
.band h2,.band h3{color:#FFFBF0;margin-top:0}
.band p,.band li{color:#F3ECDA}
.band a{color:var(--marigold)}
.band small{color:#DCD2B8}
.band .price{font-size:1.5rem;font-weight:800;color:#FFD98F;font-variant-numeric:tabular-nums}
.band .btn-ghost{color:#FFD98F;border-color:#FFD98F}
.band .btn-ghost:hover{background:#FFD98F;color:#223140}
a.btn{color:#fff}
.hero a.btn,section.dark a.btn,.band a.btn,footer.site a.btn{color:#fff}
a.btn-ghost{color:var(--teal)}
.hero a.btn-ghost,section.dark a.btn-ghost,.band a.btn-ghost{color:#FFD98F}

/* lock panels, notices, docs */
.lockpanel{border:1.5px dashed #C9B892;border-radius:12px;padding:15px 17px;background:#FFF9EC;margin:14px 0;color:var(--ink)}
.lockpanel h3{color:var(--ink);margin-top:0}
.lockpanel p{color:var(--ink)}
.notice{border-left:5px solid var(--marigold);background:#FFF6DF;padding:13px 16px;border-radius:0 10px 10px 0;margin:16px 0;color:var(--ink)}
.notice p{color:var(--ink)}
.doc{background:#fff;border:1.5px solid var(--line);border-radius:8px;padding:22px;margin:16px 0;
  font-family:Georgia,"Times New Roman",serif;color:#1E1E1E;box-shadow:var(--shadow)}
.doc p,.doc li{color:#1E1E1E}
.doc h3{font-family:Georgia,serif;color:#1E1E1E}
.fill{border-bottom:1.5px solid #999;padding:0 8px;color:#555}
.card{background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.cards3{display:grid;grid-template-columns:1fr;gap:14px}
.steps{counter-reset:st;list-style:none;padding:0}
.steps li{counter-increment:st;position:relative;padding:4px 0 4px 46px;margin:12px 0}
.steps li::before{content:counter(st);position:absolute;left:0;top:0;width:32px;height:32px;border-radius:50%;
  background:var(--teal);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:1rem}
details{border:1.5px solid var(--line);border-radius:10px;padding:11px 15px;margin:9px 0;background:var(--card)}
summary{font-weight:700;cursor:pointer;color:var(--ink)}
.stamp{font-size:.86rem;color:var(--ink2)}
section.dark .stamp{color:#D8CFBB}
.cite{font-size:.88rem;color:var(--ink2)}
.result .cite{color:var(--ink2)}

/* footer */
footer.site{background:var(--teal-deep2);color:#E9E2CF;padding:30px 0 26px;margin-top:10px}
footer.site h2,footer.site h3{color:#FFFBF0}
footer.site p,footer.site li{color:#E9E2CF}
footer.site a{color:var(--marigold)}
footer.site small{color:#CFC5A9}
footer.site .cols{display:grid;grid-template-columns:1fr;gap:18px;margin-top:18px}
footer.site nav a{display:block;padding:3px 0;text-decoration:none}
.footline{border-top:1px solid var(--line-dark);margin-top:20px;padding-top:14px}

@media (min-width:720px){
  h1{font-size:2.5rem}.hero h1{font-size:2.85rem}
  .doorgrid{grid-template-columns:1fr 1fr}
  .cards3{grid-template-columns:1fr 1fr 1fr}
  footer.site .cols{grid-template-columns:1.4fr 1fr 1fr}
}
@media (max-width:719px){
  .hd{flex-direction:column;align-items:flex-start;gap:6px}
  nav.main a{padding:7px 8px;font-size:.93rem}
  .toolrow{flex-direction:column}
  .toolrow input:not([type="checkbox"]):not([type="radio"]),.toolrow select,.toolrow .btn{flex:0 0 auto;width:100%}
  table.stacktable,table.stacktable tbody,table.stacktable tr{display:block;width:100%}
  table.stacktable th{display:none}
  table.stacktable td{display:block;border-bottom:none;padding:5px 13px}
  table.stacktable td .k{display:block;font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2)}
  table.stacktable tr{border-bottom:1px solid var(--line);padding:7px 0}
  .dl-row{flex-direction:column;gap:2px}
  .dl-row .when{white-space:normal}
}
@media print{
  header.site,footer.site,nav.main,.band .btn{display:none}
  body{background:#fff}
}
