.assessment-main { max-width: 1120px; margin: auto; padding: 40px 24px 64px; color: #10264c; }
.assessment-main h1 { font-size: clamp(2rem, 5vw, 3.5rem); line-height: 1.12; margin: 20px 0; }
.assessment-main h2 { font-size: 1.65rem; margin: 0 0 16px; }
.assessment-main p { line-height: 1.7; margin: 12px 0; }
.assessment-main .back-link { color: #315f9e; text-decoration: underline; }
.assessment-intro { max-width: 850px; margin-bottom: 28px; }
.assessment-panel { background: #fff; border: 1px solid #cbd5e4; border-radius: 20px; padding: 28px; margin: 24px 0; }
.assessment-main label { display: block; font-weight: 700; margin-bottom: 8px; }
.assessment-main input { background: #fff; border: 1px solid #7181a0; border-radius: 7px; color: #10264c; font: inherit; padding: 10px; min-height: 44px; }
#firm-name { width: min(100%, 420px); }
.assessment-main :focus-visible { outline: 3px solid #315f9e; outline-offset: 3px; }
.question-table { width: 100%; border-collapse: collapse; margin-top: 24px; table-layout: fixed; }
.question-table caption { text-align: left; margin-bottom: 16px; color: #42597c; }
.question-table th, .question-table td { padding: 18px 10px; text-align: left; border-bottom: 1px solid #dce4f0; vertical-align: top; }
.question-table thead th { background: #edf3fc; }
.question-table th:first-child { width: 66%; }
.question-table tbody th { font-weight: 600; line-height: 1.5; }
.question-table input { width: 100%; max-width: 90px; }
.question-table small { display: block; font-weight: 400; color: #42597c; margin-top: 8px; font-size: .8rem; }
.question-id { color: #315f9e; display: block; font-size: .75rem; letter-spacing: .07em; margin-bottom: 5px; }
.assessment-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px; }
.assessment-main button { font: inherit; font-weight: 700; padding: 12px 18px; border-radius: 9px; border: 1px solid #10264c; cursor: pointer; background: #10264c; color: #fff; }
.assessment-main button.secondary-action { background: #fff; color: #10264c; }
.assessment-note { color: #42597c; font-size: .88rem; }
#assessment-status { min-height: 1.7em; }
#assessment-results { scroll-margin-top: 120px; }
.chart-group { border-top: 1px solid #dce4f0; padding-top: 22px; margin-top: 28px; }
.chart-group h3 { font-size: 1.3rem; font-weight: 700; }
.chart-group > p { font-size: .9rem; color: #42597c; }
.chart-item { margin: 20px 0; }
.chart-item h4 { font-size: .95rem; font-weight: 600; margin-bottom: 8px; }
.chart-line { display: grid; grid-template-columns: 85px minmax(0, 1fr) 70px; align-items: center; gap: 10px; margin: 6px 0; font-size: .82rem; }
.bar-track { background: #edf1f7; height: 14px; border-radius: 3px; overflow: hidden; }
.bar { height: 100%; }
.bar.now { background: #224d8b; }
.bar.future { background: #087f7b; }
.chart-axis { display: flex; justify-content: space-between; padding: 0 80px 0 95px; color: #52688c; font-size: .78rem; }
.chart-line meter { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.score-value { font-variant-numeric: tabular-nums; }
@media (max-width: 600px) {
  .assessment-main { padding: 24px 12px; }
  .assessment-panel { padding: 18px 10px; }
  .question-table th:first-child { width: 54%; }
  .question-table th, .question-table td { padding: 14px 5px; font-size: .8rem; }
  .question-table small { font-size: .73rem; }
  .question-table input { padding: 8px 4px; }
  .chart-line { grid-template-columns: 67px minmax(0, 1fr) 60px; gap: 6px; }
  .chart-axis { padding-left: 73px; padding-right: 66px; }
}
@media print {
  .site-header, footer, .back-link, .assessment-actions, #assessment-status { display: none !important; }
  .assessment-main { max-width: none; padding: 0; }
  .assessment-panel { border: 0; padding: 0; }
  .chart-item, .question-table tr { break-inside: avoid; }
  .bar-track, .bar { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}
