
:root{
  --navy:#062f68;
  --green:#159447;
  --bg:#f5f8fb;
  --ink:#17384a;
  --muted:#627885;
  --line:#d5e2e8;
  --paper:#fff;
  --good:#e9f8ee;
  --mid:#f1f3f5;
  --worry:#fff4d6;
  --hard:#ffe7e3;
  --purple:#7355a6;
  --focus:#ffbf47;
  --base:18px;
}
*{box-sizing:border-box}
html{font-size:var(--base);scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.55}
.wrap{width:min(1060px,calc(100% - 28px));margin:auto}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:10px;top:10px;z-index:100;background:#fff;color:#000;padding:12px;border:3px solid #000}
.site-header{background:var(--navy);color:#fff;border-bottom:5px solid var(--green)}
.header-inner{display:grid;grid-template-columns:115px 1fr auto;gap:18px;align-items:center;padding:14px 0}
.logo{width:110px;background:#fff;border-radius:8px;padding:4px}
.hub-label{margin:0;color:#bff0cc;font-size:.75rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
h1{font:700 clamp(2rem,4vw,3rem) Georgia,serif;margin:.2rem 0}
.header-copy p:last-child{margin:0}
.access-tools{display:flex;gap:6px;flex-wrap:wrap}
.access-tools button,.primary,.secondary{border:0;border-radius:10px;padding:10px 13px;font-weight:850;cursor:pointer}
.access-tools button{background:#fff;color:var(--navy)}
main{padding:25px 0 50px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:22px;margin:16px 0;box-shadow:0 8px 22px rgba(6,47,104,.07)}
.eyebrow{margin:0;color:var(--green);font-weight:900;font-size:.77rem;letter-spacing:.11em;text-transform:uppercase}
h2,h3{font-family:Georgia,serif;line-height:1.25}
h2{margin:.35rem 0 .45rem}
h3{margin-top:0}
.lead{font-size:1.08rem}
.legend{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}
.legend-item{padding:11px;border-radius:12px;text-align:center;border:2px solid var(--line)}
.legend-item.great{background:var(--good)}
.legend-item.neutral{background:var(--mid)}
.legend-item.worried{background:var(--worry)}
.legend-item.hard{background:var(--hard)}
.privacy-note{display:grid;gap:2px;background:#edf7f1;border-left:5px solid var(--green);padding:13px;border-radius:9px}
.day-rows{display:grid;gap:10px}
.day-row{display:grid;grid-template-columns:minmax(150px,1.25fr) repeat(4,1fr);gap:8px;align-items:stretch}
.day-label{display:flex;align-items:center;gap:9px;background:#f7fafc;border:1px solid var(--line);border-radius:12px;padding:12px;font-weight:850}
.day-label .icon{font-size:1.45rem}
.rate{position:relative}
.rate input{position:absolute;opacity:0;pointer-events:none}
.rate label{height:100%;min-height:64px;border:2px solid var(--line);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:1.65rem;cursor:pointer;background:#fff}
.rate label span{font-size:.65rem;font-weight:800;color:var(--muted);margin-top:2px}
.rate.good input:checked + label{background:var(--good);border-color:#45a765}
.rate.mid input:checked + label{background:var(--mid);border-color:#8d99a1}
.rate.worry input:checked + label{background:var(--worry);border-color:#d4a726}
.rate.hard input:checked + label{background:var(--hard);border-color:#ce5e53}
.help{color:var(--muted)}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.choice{display:flex;gap:9px;align-items:flex-start;border:2px solid var(--line);border-radius:11px;padding:11px;background:#fff;font-weight:750}
.choice input{width:19px;height:19px;margin-top:2px}
.choice:has(input:checked){background:#eef8f2;border-color:var(--green)}
.text-label{display:block;font-weight:850;margin-top:15px}
.text-label span{font-weight:500;color:var(--muted);font-size:.82rem}
textarea{width:100%;padding:12px;margin-top:7px;border:2px solid #adc0c9;border-radius:10px;font:inherit;color:var(--ink);background:#fff}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}
.primary{background:var(--navy);color:#fff}
.secondary{background:#e8eef2;color:var(--ink)}
.big{font-size:1.03rem;padding:13px 18px}
.result-hero{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#fff,#eef5fb);border-top:5px solid var(--navy)}
.overall-chip{background:var(--green);color:#fff;padding:10px 14px;border-radius:999px;font-weight:900}
.visual-heatmap{display:grid;gap:9px}
.heat-row{display:grid;grid-template-columns:minmax(150px,1.2fr) 2fr auto;gap:10px;align-items:center}
.heat-name{font-weight:850}
.heat-bar{height:20px;border-radius:999px;border:1px solid var(--line);overflow:hidden;background:#eef2f4}
.heat-fill{height:100%}
.heat-fill.good{width:25%;background:#76c98f}
.heat-fill.mid{width:50%;background:#aeb7bd}
.heat-fill.worry{width:75%;background:#e7bd49}
.heat-fill.hard{width:100%;background:#dc776d}
.heat-face{font-size:1.5rem}
.summary-pill{display:inline-block;margin:4px 6px 4px 0;padding:7px 10px;border-radius:999px;font-weight:800}
.summary-pill.worry{background:var(--worry)}
.summary-pill.hard{background:var(--hard)}
.summary-pill.good{background:var(--good)}
.positive-card{border-left:5px solid var(--green)}
.message-card{border-top:5px solid var(--purple)}
.message-box{white-space:pre-wrap;background:#f7fafc;border:1px solid var(--line);border-radius:11px;padding:14px}
.status{min-height:1.2rem;color:var(--green);font-weight:800}
.safety-card{background:#fff8e8;border-left:5px solid #a66a12}
.footer-card{background:#eef5fb;border:1px solid var(--line);border-radius:16px;padding:18px 20px;margin-top:18px}
.footer-card p{margin:.2rem 0 0}
.footer{background:var(--navy);color:#fff;padding:20px 0}
button:focus-visible,input:focus-visible,textarea:focus-visible{outline:4px solid var(--focus);outline-offset:2px}
body.hc{--bg:#000;--ink:#fff;--muted:#fff;--line:#fff;--paper:#000;--good:#000;--mid:#000;--worry:#000;--hard:#000;--navy:#000;--green:#00ff84}
body.hc .card,body.hc .day-label,body.hc .rate label,body.hc .choice,body.hc .message-box,body.hc .footer-card{background:#000;color:#fff;border-color:#fff}
body.hc textarea{background:#000;color:#fff;border-color:#fff}
body.hc .secondary{background:#000;color:#fff;border:2px solid #fff}
@media(max-width:820px){
  .header-inner{grid-template-columns:1fr;align-items:start}
  .legend{grid-template-columns:1fr 1fr}
  .day-row{grid-template-columns:1fr repeat(4,1fr)}
  .day-label{grid-column:1/-1}
  .choice-grid{grid-template-columns:1fr}
  .result-hero{align-items:flex-start;gap:12px}
}
@media(max-width:520px){
  .legend{grid-template-columns:1fr 1fr}
  .day-row{grid-template-columns:repeat(4,1fr)}
  .rate label{min-height:70px;font-size:1.75rem}
  .rate label span{font-size:.58rem}
  .heat-row{grid-template-columns:1fr auto}
  .heat-bar{grid-column:1/-1}
}
@media print{
  header,form,.access-tools,.actions,.footer,.footer-card,.safety-card{display:none!important}
  body{background:#fff;color:#000}
  .wrap{width:100%}
  .card{box-shadow:none;break-inside:avoid}
}
