:root{
  --bg:#eef2f3; --surface:#ffffff; --surface-2:#f6f9f9;
  --ink:#16252b; --muted:#5c7079; --line:#dbe4e7;
  --primary:#0f5b66; --primary-d:#0a444d; --primary-soft:#e1eff0;
  --low:#2f8f6b; --some:#c2871a; --high:#b4493f;
  --low-soft:#e6f4ee; --some-soft:#faf0db; --high-soft:#f7e6e3;
  --radius:14px; --shadow:0 1px 2px rgba(16,40,46,.06),0 8px 24px rgba(16,40,46,.05);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--ink);font-family:"Inter",system-ui,sans-serif;
  font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:"Newsreader",Georgia,serif;font-weight:500;line-height:1.15;margin:0}
.serif-i{font-family:"Newsreader",serif;font-style:italic}
a{color:var(--primary)}
button{font-family:inherit}

/* Header */
header.app{background:var(--primary-d);color:#eaf4f4;padding:16px 22px;
  display:flex;align-items:center;gap:14px;flex-wrap:wrap}
header.app .mark{width:38px;height:38px;border-radius:9px;background:#0f5b66;display:grid;
  place-items:center;font-family:"Newsreader",serif;font-weight:600;font-size:20px;color:#dff1f1;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
header.app h1{font-size:21px;color:#f3fafa}
header.app .sub{font-size:12px;color:#9fc4c6;letter-spacing:.03em;text-transform:uppercase}
header.app .spacer{flex:1}
header.app .navlinks{display:flex;gap:16px;align-items:center}
header.app .navlinks a{color:#cfe8e8;font-size:14px;font-weight:500;text-decoration:none}
header.app .navlinks a:hover{color:#fff}

/* Stepper */
nav.steps{background:var(--primary);display:flex;gap:2px;padding:0 12px;overflow-x:auto;scrollbar-width:none}
nav.steps::-webkit-scrollbar{display:none}
nav.steps button{background:transparent;border:0;color:#bfe0e2;cursor:pointer;padding:13px 16px;
  font-size:14px;font-weight:500;white-space:nowrap;border-bottom:3px solid transparent;
  display:flex;gap:8px;align-items:center}
nav.steps button .n{font-family:"Newsreader",serif;font-size:13px;opacity:.7}
nav.steps button[aria-current="true"]{color:#fff;border-bottom-color:#7fd4cf}
nav.steps button:hover{color:#fff}
nav.steps button:disabled{opacity:.45;cursor:not-allowed}

/* Layout */
main{max-width:880px;margin:0 auto;padding:26px 20px 80px}
.screen{display:none}
.screen.active{display:block;animation:fade .35s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.screen,*{animation:none!important}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:24px;margin-bottom:20px}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--primary);margin-bottom:8px}
.lead{font-size:17px;color:var(--muted);max-width:62ch}
h2.screen-title{font-size:30px;margin-bottom:6px}

.disclaimer{border-left:4px solid var(--some);background:var(--some-soft);padding:14px 16px;
  border-radius:8px;font-size:14px;color:#5e4410;margin:18px 0}
.disclaimer strong{color:#43300a}

/* Forms */
.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:620px){.grid{grid-template-columns:1fr}}
label.field{display:flex;flex-direction:column;gap:6px;font-size:13.5px;font-weight:600;color:var(--ink)}
.field input,.field select,.field textarea{font-family:inherit;font-size:15px;font-weight:400;color:var(--ink);
  padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2)}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--primary);outline-offset:1px;border-color:var(--primary)}
.field textarea{resize:vertical;min-height:74px}
.hint{font-size:12.5px;font-weight:400;color:var(--muted)}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;cursor:pointer;border-radius:10px;padding:12px 20px;
  font-size:15px;font-weight:600;border:1px solid transparent;text-decoration:none}
.btn.primary{background:var(--primary);color:#fff}
.btn.primary:hover{background:var(--primary-d)}
.btn.ghost{background:transparent;color:var(--primary);border-color:var(--line)}
.btn.ghost:hover{background:var(--primary-soft)}
.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}

/* Screening */
.rater-note{background:var(--primary-soft);border-radius:10px;padding:14px 16px;font-size:14px;color:#0c454d;margin-bottom:20px}
.band-pill{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:99px;
  padding:3px 11px;font-size:12.5px;font-weight:600;color:var(--primary);margin-left:6px}
.domain{margin-bottom:14px}
.domain summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:12px;padding:16px 18px;
  border:1px solid var(--line);border-radius:12px;background:var(--surface);font-weight:600;font-size:16px;box-shadow:var(--shadow)}
.domain summary::-webkit-details-marker{display:none}
.domain[open] summary{border-radius:12px 12px 0 0;border-bottom:0}
.domain .dot{width:11px;height:11px;border-radius:50%;background:var(--primary);flex:none}
.domain .count{margin-left:auto;font-size:12.5px;font-weight:500;color:var(--muted)}
.domain .body{border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px;padding:6px 18px 16px;background:var(--surface)}
.domain .desc{font-size:13.5px;color:var(--muted);padding:10px 0 4px}
.item{padding:14px 0;border-top:1px solid var(--line)}
.item:first-of-type{border-top:0}
.item .q{font-size:15px;margin-bottom:10px}
.scale{display:flex;gap:6px;flex-wrap:wrap}
.scale label{flex:1;min-width:84px;position:relative}
.scale input{position:absolute;opacity:0;width:0;height:0}
.scale span{display:block;text-align:center;font-size:12.5px;font-weight:500;color:var(--muted);
  padding:8px 4px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);cursor:pointer}
.scale input:checked + span{background:var(--primary);color:#fff;border-color:var(--primary)}
.scale input:focus-visible + span{outline:2px solid var(--primary);outline-offset:2px}

.progress-wrap{position:sticky;bottom:0;background:linear-gradient(transparent,var(--bg) 22%);padding-top:14px;margin-top:10px}
.progress-bar{height:8px;background:var(--line);border-radius:99px;overflow:hidden;margin-bottom:12px}
.progress-bar i{display:block;height:100%;background:var(--primary);width:0;transition:width .3s}

/* Results / profile */
.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:6px 0 22px}
.legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:middle}
.profile-row{display:grid;grid-template-columns:180px 1fr;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.profile-row:first-child{border-top:0}
@media (max-width:620px){.profile-row{grid-template-columns:1fr}}
.profile-row .name{font-weight:600;font-size:14.5px}
.profile-row .name small{display:block;font-weight:400;color:var(--muted);font-size:12px}
.track{position:relative;height:30px;background:var(--surface-2);border-radius:8px;border:1px solid var(--line);overflow:hidden}
.track .fill{height:100%;border-radius:7px 0 0 7px;display:flex;align-items:center;justify-content:flex-end;
  padding-right:8px;color:#fff;font-size:12px;font-weight:600;transition:width .6s ease}
.track .thr{position:absolute;top:-3px;bottom:-3px;width:2px;background:rgba(22,37,43,.35)}
.flag-badge{display:inline-block;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:99px;margin-left:8px}
.b-low{background:var(--low-soft);color:var(--low)} .b-some{background:var(--some-soft);color:#8a5e08}
.b-high{background:var(--high-soft);color:var(--high)}

/* Recommendations */
.rec-block{border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin-bottom:16px;box-shadow:var(--shadow);background:var(--surface)}
.rec-block h3{font-size:20px;margin-bottom:4px;display:flex;align-items:center;flex-wrap:wrap}
.rec-block .grp{margin-top:14px}
.rec-block .grp h4{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--primary);margin:0 0 6px}
.rec-block ul{margin:0;padding-left:20px}
.rec-block li{font-size:14.5px;margin-bottom:5px}

/* Report */
#reportOut{font-size:14.5px}
#reportOut h3{font-size:21px;margin:22px 0 8px;padding-bottom:6px;border-bottom:2px solid var(--primary-soft)}
.meta-table{width:100%;border-collapse:collapse;margin:4px 0}
.meta-table td{padding:6px 8px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:top}
.meta-table td:first-child{font-weight:600;width:36%;color:var(--muted)}
.sig{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:34px}
.sig div{border-top:1px solid var(--ink);padding-top:6px;font-size:13px;color:var(--muted)}
.empty{color:var(--muted);font-style:italic;padding:30px 0;text-align:center}

/* Dashboard */
table.data{width:100%;border-collapse:collapse;font-size:14px;margin-top:8px}
table.data th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);
  padding:10px 10px;border-bottom:2px solid var(--line)}
table.data td{padding:11px 10px;border-bottom:1px solid var(--line)}
table.data tr:hover td{background:var(--surface-2)}
.mini-flags{display:flex;gap:4px;flex-wrap:wrap}
.mini{width:10px;height:10px;border-radius:3px;display:inline-block}
.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:6px 0 4px}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;
  padding:12px 20px;border-radius:10px;font-size:14px;font-weight:500;box-shadow:var(--shadow);
  opacity:0;pointer-events:none;transition:opacity .3s,transform .3s}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* Login */
.login-wrap{max-width:380px;margin:60px auto;padding:0 20px}
.flash{background:var(--high-soft);color:var(--high);border-radius:9px;padding:10px 14px;font-size:14px;margin-bottom:14px}

/* ADHD symptom-count engine */
.eng-panel{border:1px solid var(--primary-soft);background:var(--primary-soft);border-radius:12px;padding:16px 18px;margin:22px 0}
.eng-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.eng-head strong{font-size:16px;color:var(--primary-d)}
.eng-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:7px 0;border-top:1px solid #cfe6e7}
.eng-name{font-weight:600;font-size:14px}
.eng-count{font-size:13.5px;font-weight:600}
.eng-flag{font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:99px}
.eng-pres{margin-top:12px;font-size:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
@media (max-width:560px){.eng-row{grid-template-columns:1fr auto}.eng-flag{grid-column:2}}

/* ADHD rating scale */
.rate-item{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}
.rate-item:first-of-type{border-top:0}
.rate-item .q{font-size:14.5px}
.rate-scale{display:flex;gap:5px;flex-wrap:wrap}
.rate-scale label{position:relative}
.rate-scale input{position:absolute;opacity:0;width:0;height:0}
.rate-scale span{display:block;padding:6px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);
  font-size:12.5px;font-weight:500;color:var(--muted);cursor:pointer;white-space:nowrap}
.rate-scale input:checked + span{background:var(--primary);color:#fff;border-color:var(--primary)}
.rate-scale input:focus-visible + span{outline:2px solid var(--primary);outline-offset:2px}
@media (max-width:560px){.rate-item{grid-template-columns:1fr}}
.count-pill{display:inline-block;font-size:12.5px;font-weight:600;padding:3px 10px;border-radius:99px;margin-left:8px}

@media print{
  header.app,nav.steps,.no-print,.disclaimer.screenonly,.toolbar{display:none!important}
  body{background:#fff}
  main{max-width:none;padding:0}
  .card{box-shadow:none;border:0;padding:0}
  .rec-block,.profile-row{break-inside:avoid}
  #reportOut h3{break-after:avoid}
}

/* ---- Report builder ---- */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:640px){.grid2{grid-template-columns:1fr}}
h3.sec{font-family:Newsreader,serif;font-size:21px;margin:26px 0 8px;padding-top:14px;border-top:1px solid var(--line)}
.linked{background:var(--primary-soft);border-radius:10px;padding:12px 16px;margin:6px 0 4px;font-size:14px}
.linked ul{margin:6px 0 0;padding-left:18px}
.score-head,.score-row{display:grid;gap:8px;align-items:center}
.score-head{grid-template-columns:1fr 80px 56px 1fr;font-size:12px;font-weight:600;color:var(--muted);margin-top:8px;padding:0 2px}
.score-row{grid-template-columns:1fr 80px auto auto auto;margin-top:6px}
.score-head.ach{grid-template-columns:1fr 1fr 56px 48px 1fr 1.4fr}
#achRows .score-row{grid-template-columns:1fr 1fr 72px auto auto 1.4fr auto}
.score-row input{padding:7px 9px}
.r-pct,.r-cls{font-size:12.5px;white-space:nowrap}
.rec-group{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-top:10px}
.rec-title{font-weight:600;margin-bottom:8px}
.rec-items{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px;margin-bottom:8px}
@media (max-width:640px){.rec-items{grid-template-columns:1fr}}
.chk{font-size:13.5px;display:flex;gap:8px;align-items:flex-start;cursor:pointer}
.rec-group textarea{width:100%}

/* ---- Report document ---- */
.report-doc .rpt{max-width:760px}
.rpt-head h1{font-family:Newsreader,serif;font-size:30px;margin:4px 0 2px;color:var(--primary-d)}
.rpt-head .conf{font-size:12px;letter-spacing:.12em;color:var(--high);font-weight:700;margin:0}
h2.rpt-sec{font-family:Newsreader,serif;font-size:22px;margin:24px 0 8px;padding-bottom:5px;border-bottom:2px solid var(--primary-soft);color:var(--primary-d)}
.rpt h3{font-size:15px;margin:14px 0 4px;color:var(--ink)}
.rpt-ul{margin:4px 0 10px;padding-left:20px}.rpt-ul li{margin:3px 0}
.score-table{width:100%;border-collapse:collapse;margin:8px 0 12px;font-size:13.5px}
.score-table th,.score-table td{border:1px solid var(--line);padding:7px 9px;text-align:left}
.score-table th{background:var(--surface-2);font-size:12.5px}
.score-table .find{font-size:12.5px;color:var(--muted)}
.cls{font-weight:600;font-size:12.5px}
.cls-extremely-low,.cls-very-low{color:var(--high)}.cls-low-average{color:var(--some)}
.cls-average{color:var(--ink)}.cls-high-average,.cls-very-high,.cls-extremely-high{color:var(--low)}
.dx{margin:10px 0;padding:10px 14px;border-left:4px solid var(--primary);background:var(--primary-soft);border-radius:6px}
.dx-title{font-weight:700;color:var(--primary-d)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:640px){.two-col{grid-template-columns:1fr}}
.sign{margin-top:26px;padding-top:14px;border-top:1px solid var(--line)}
.rpt-foot{margin-top:20px;font-size:11.5px;color:var(--muted);font-style:italic}
@media print{.report-doc{box-shadow:none;border:0;padding:0}}

/* Password show/hide toggle */
.pw-wrap{position:relative;display:block}
.pw-wrap input{width:100%;padding-right:64px;box-sizing:border-box}
.pw-toggle{position:absolute;top:50%;right:6px;transform:translateY(-50%);
  border:0;background:transparent;cursor:pointer;padding:6px 8px;border-radius:7px;
  font-family:inherit;font-size:12.5px;font-weight:600;color:var(--primary)}
.pw-toggle:hover{background:rgba(15,91,102,.08)}
.pw-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
