[hidden] { display:none !important; }
button, input, textarea { font:inherit; }
button { cursor:pointer; }
button.button { background:white; color:var(--text); }
button.button-primary { background:var(--accent); color:white; }
.muted { color:var(--muted); }
.small { font-size:.86rem; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.assessment-hero { padding:4.5rem 0 3rem; }
.intro-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:4rem; align-items:center; }
.intro-grid h1 { max-width:13ch; }
.intro-card { padding:2rem; }
.intro-card h2 { font-size:1.65rem; }
.intro-card ol { padding-left:1.25rem; color:var(--muted); }
.intro-card li { padding-left:.3rem; margin:.8rem 0; }
.intro-card p { border-top:1px solid var(--line); padding-top:1rem; color:var(--muted); margin-bottom:0; }
.assessment-shell { padding-bottom:3rem; }
.level-guide { padding:1.4rem 1.6rem; margin-bottom:2rem; }
summary { cursor:pointer; font-weight:650; }
.guide-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin:1.5rem 0 1rem; }
.guide-item { background:var(--bg); padding:1rem; border-radius:12px; }
.guide-item h3 { font-size:1rem; margin:0; }
.guide-item p { font-size:.9rem; color:var(--muted); margin:.5rem 0 0; }
.assessment-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:2rem; align-items:start; }
.context-card { padding:1.75rem; }
.context-card h2 { font-size:1.4rem; }
.context-card p { margin:.5rem 0 1rem; font-size:.93rem; }
.context-card label { display:block; font-size:.95rem; font-weight:600; margin:1rem 0 .4rem; }
.context-card input,.context-card textarea { width:100%; padding:.75rem; border:1px solid #94a3b8; border-radius:10px; color:var(--text); background:white; }
.context-card textarea { resize:vertical; min-height:5rem; }
#functions { padding:2.5rem 0 0; scroll-margin-top:8rem; }
#functions h2 { font-size:clamp(1.6rem,3vw,2.2rem); }
#functions .section-header { margin-bottom:1.5rem; }
.function-card { padding:1.5rem; margin-bottom:1rem; }
.function-header { display:flex; gap:.9rem; align-items:baseline; }
.function-header h3 { margin:0; font-size:1.3rem; letter-spacing:-.025em; }
.function-number { color:#26737c; font-size:.9rem; font-weight:700; font-variant-numeric:tabular-nums; }
.function-prompt { color:var(--muted); margin:.5rem 0 .75rem; font-size:.95rem; }
.function-guide { margin:.8rem 0 1rem; color:var(--muted); font-size:.86rem; }
.function-guide ol { padding-left:1.4rem; }
.function-guide li { padding:.3rem 0 .3rem .3rem; }
.score-group { border:0; padding:0; margin:1rem 0; min-width:0; }
.score-group legend { font-size:.8rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; margin-bottom:.45rem; padding:0; }
.score-choices { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:.4rem; }
.score-choice { position:relative; cursor:pointer; }
.score-choice input { position:absolute; width:1px; height:1px; opacity:0; }
.score-face { border:1px solid #cbd5e1; border-radius:10px; display:flex; flex-direction:column; justify-content:center; align-items:center; padding:.55rem .15rem; min-height:65px; color:var(--muted); background:var(--bg); }
.score-face strong { font-size:1.15rem; line-height:1.3; }
.score-face span { font-size:.67rem; margin-top:.2rem; }
.score-choice input:checked + .score-face { background:#1e3a5f; border-color:#1e3a5f; color:white; box-shadow:inset 0 0 0 2px white; }
.target .score-choice input:checked + .score-face { background:#176775; border-color:#176775; }
.score-choice input:focus-visible + .score-face { outline:3px solid #208594; outline-offset:3px; }
.score-choice:hover .score-face { border-color:#1e3a5f; }
fieldset:disabled .score-face { opacity:.4; cursor:default; }
.row-feedback { color:#1e3a5f; font-size:.82rem; margin:.7rem 0; min-height:1.4em; }
.function-actions { display:flex; flex-wrap:wrap; gap:.8rem 1.2rem; align-items:center; border-top:1px solid var(--line); padding-top:.8rem; font-size:.83rem; }
.check-label { display:flex; gap:.45rem; align-items:center; cursor:pointer; }
.check-label input { accent-color:#1e3a5f; width:18px; height:18px; margin:0; }
.check-label:has(input:disabled) { color:#64748b; cursor:default; }
.text-button { padding:.25rem 0; border:0; background:transparent; color:var(--muted); text-decoration:underline; text-underline-offset:3px; font-size:inherit; }
.function-actions .text-button { margin-left:auto; }
.progress-card { position:sticky; top:8rem; padding:1.5rem; }
.progress-card h2 { font-size:1.5rem; line-height:1.3; margin:.75rem 0; }
.progress-card h3 { font-size:1rem; margin:1.5rem 0 .5rem; }
.progress-card ul { padding-left:1.1rem; font-size:.9rem; }
.progress-card li { margin:.35rem 0; }
.progress-card .button { width:100%; text-align:center; font-size:.9rem; }
.progress-card > .text-button { font-size:.85rem; }
progress { width:100%; height:8px; border:0; border-radius:6px; overflow:hidden; background:#e2e8f0; accent-color:#208594; }
progress::-webkit-progress-bar { background:#e2e8f0; }
progress::-webkit-progress-value { background:#208594; }
progress::-moz-progress-bar { background:#208594; }
#reset-confirm { font-size:.85rem; border-top:1px solid var(--line); margin-top:1rem; }
#reset-confirm button { margin:.25rem 0; }
.results { padding:2rem; margin-top:2.5rem; scroll-margin-top:8rem; }
.results h2 { max-width:30ch; font-size:clamp(1.7rem,3vw,2.5rem); }
.report-brand { display:none; }
#report-context { font-weight:650; margin-bottom:.25rem; overflow-wrap:anywhere; }
#report-objective { margin:.25rem 0; overflow-wrap:anywhere; }
.report-key { display:flex; flex-wrap:wrap; gap:1.4rem; font-size:.85rem; padding:1rem 0; border-bottom:1px solid var(--line); }
.report-key span { display:flex; align-items:center; gap:.45rem; }
.report-key i { width:18px; height:10px; border-radius:3px; display:inline-block; }
.key-current { background:#1e3a5f; }
.key-target { background:#b4d9dd; border:1px solid #176775; }
.result-row { display:grid; grid-template-columns:1fr 1.7fr; gap:1.5rem; padding:1rem 0; border-bottom:1px solid var(--line); align-items:center; break-inside:avoid; }
.result-name { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; font-size:.95rem; }
.priority-badge { font-size:.65rem; border:1px solid #a7c9cf; border-radius:5px; padding:.1rem .4rem; color:#125562; }
.bar-line { display:grid; grid-template-columns:3.5rem 1fr 8rem; align-items:center; gap:.5rem; font-size:.78rem; margin:.25rem 0; }
.bar-track { background:#eef2f6; height:9px; border-radius:3px; overflow:hidden; }
.bar { display:block; height:9px; border-radius:3px; }
.bar-current { background:#1e3a5f; }
.bar-target { background:#b4d9dd; border:1px solid #176775; }
.report-notes h3 { font-size:1.1rem; margin:1.5rem 0 .3rem; }
.report-notes p { max-width:60rem; margin:.5rem 0; }
@media (max-width:1100px) { .assessment-layout { grid-template-columns:minmax(0,1fr) 260px; gap:1.25rem; } .intro-grid { gap:2rem; } .progress-card { top:10rem; } }
@media (max-width:860px) {
  .intro-grid, .assessment-layout { grid-template-columns:1fr; }
  .intro-grid h1 { max-width:100%; }
  .assessment-hero { padding:2.5rem 0 2rem; }
  .intro-card { padding:1.5rem; }
  .progress-card { position:static; }
  .score-face span { font-size:.7rem; }
  .guide-grid { grid-template-columns:repeat(2,1fr); }
  #functions, .results { scroll-margin-top:1rem; }
}
@media (max-width:520px) {
  .function-card, .context-card, .results { padding:1.1rem; }
  .function-header h3 { font-size:1.12rem; }
  .score-choices { grid-template-columns:repeat(3,minmax(0,1fr)); gap:.35rem; }
  .score-face { min-height:62px; border-radius:7px; }
  .score-face span { font-size:.72rem; line-height:1.2; text-align:center; }
  .result-row { grid-template-columns:1fr; gap:.5rem; }
  .bar-line { grid-template-columns:3rem 1fr 7rem; gap:.35rem; font-size:.73rem; }
  .guide-grid { grid-template-columns:1fr; }
  .results .actions { flex-direction:column; align-items:stretch; text-align:center; }
}
@media print {
  @page { size:A4; margin:15mm; }
  body { background:white; color:#0f172a; font-size:10pt; line-height:1.35; }
  .site-header, .skip-link, .assessment-hero, .level-guide, .assessment-layout, footer, .report-actions, noscript { display:none !important; }
  .container { width:100%; max-width:none; }
  .assessment-shell { padding:0; }
  .results { border:0; box-shadow:none; border-radius:0; padding:0; margin:0; }
  .report-brand { display:block; font-weight:700; font-size:11pt; color:#1e3a5f; margin-bottom:7mm; }
  .results h2 { font-size:20pt; max-width:none; margin-bottom:4mm; }
  .results .eyebrow { font-size:8pt; margin-bottom:2mm; }
  .result-row { grid-template-columns:1fr 1.5fr; padding:3mm 0; gap:6mm; }
  .result-name { font-size:9pt; }
  .bar-line { grid-template-columns:13mm 1fr 30mm; font-size:8pt; }
  .report-key, .small { font-size:8pt; }
  .bar, .bar-track, .report-key i { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  .report-notes { break-inside:avoid; }
  .report-notes h3 { font-size:11pt; }
  .priority-badge { font-size:7pt; }
}
