/* Zero Trust Baseline Assessment (/zero-trust-assessment/). Loaded only on that page.
   Same rule as site.css: nothing is hidden (scripts/check-hidden.js). Steps are rendered one at a time
   by zt-baseline.js, and the print view replaces the page with the report. */

.zt-app { background: var(--bg); border: 1px solid var(--line); border-top: 4px solid var(--indigo); border-radius: var(--radius); padding: 1.5rem; scroll-margin-top: 1rem; }
@media (min-width: 48rem) { .zt-app { padding: 2rem 2.25rem; } }
.zt-app h2 { font-size: 1.6rem; }
.zt-app h2:focus { outline: none; }
.zt-app h3 { margin-top: 2rem; }
.zt-app h4 { font-size: 1.05rem; margin: 1.5rem 0 0.5rem; }
.zt-app button.btn, .zt-report button.btn { font: inherit; font-weight: 600; cursor: pointer; }
.btn[disabled] { opacity: 0.5; cursor: not-allowed; }

/* Fields */
.zt-fieldset { border: 0; padding: 0; margin: 0 0 1.75rem; min-width: 0; }
.zt-legend { font-weight: 600; font-size: 1.08rem; padding: 0; margin-bottom: 0.35rem; }
.zt-qnum { display: block; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--link); margin-bottom: 0.2rem; }
.zt-q { border-top: 1px solid var(--line); padding-top: 1.25rem; }
.zt-q .zt-fieldset { margin-bottom: 1.5rem; }
.zt-help { font-size: 0.93rem; color: var(--muted); margin: 0.35rem 0 0; padding-left: 1.1em; }
.zt-help li { margin-bottom: 0.25em; }
.zt-noselect { -webkit-user-select: none; user-select: none; }
.zt-choices { list-style: none; display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.75rem 0 0; padding: 0; }
.zt-choice { margin: 0; }
.zt-choice label { display: inline-flex; align-items: center; gap: 0.5rem; border: 1px solid var(--line); border-radius: 999px; padding: 0.45rem 1rem; background: var(--bg); font-weight: 600; font-size: 0.95rem; cursor: pointer; }
.zt-choice label:hover { border-color: var(--link); }
.zt-choice label:has(input:checked) { border-color: var(--link); background: #E6F0F9; }
.zt-choice input { margin: 0; width: 1rem; height: 1rem; accent-color: var(--link); }
.zt-field { margin: 1rem 0 0; }
.zt-field label { display: block; font-size: 0.95rem; margin-bottom: 0.3rem; }
.zt-text { font: inherit; width: 100%; max-width: 28rem; padding: 0.5rem 0.7rem; border: 1px solid #B8C2D1; border-radius: var(--radius); }
.zt-note { font-size: 0.93rem; color: var(--muted); }
.zt-error { color: #A4161A; font-weight: 600; margin-top: 1rem; }

/* Progress and navigation */
.zt-progress { margin-bottom: 1.25rem; }
.zt-step { font-size: 0.9rem; font-weight: 600; color: var(--muted); margin-bottom: 0.35rem; }
.zt-progress progress { width: 100%; height: 0.5rem; accent-color: var(--indigo); }
.zt-area-intro { font-size: 1.05rem; }
.zt-rules { background: var(--panel); border-left: 4px solid var(--violet); border-radius: 0 var(--radius) var(--radius) 0; padding: 0.9rem 1.1rem; font-size: 0.92rem; margin: 0 0 1.5rem; }
.zt-rules p { margin: 0 0 0.5rem; }
.zt-rules p:last-child { margin-bottom: 0; }
.zt-nav { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.75rem; margin-top: 1.5rem; }
.zt-nav .btn-primary:only-child { margin-left: auto; }

/* Results */
.zt-meta { color: var(--muted); font-size: 0.95rem; }
.zt-overall { border: 1px solid var(--line); border-radius: var(--radius); padding: 1.1rem 1.25rem; margin: 1rem 0; background: var(--panel); }
.zt-overall-k { font-size: 0.8rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); margin: 0 0 0.4rem; }
.zt-overall-score { margin: 0.6rem 0 0; }
.zt-label { display: inline-block; font-weight: 600; font-size: 0.92rem; padding: 0.15rem 0.6rem; border-left: 4px solid var(--muted); background: var(--bg); border-radius: 0 4px 4px 0; }
.zt-label-big { font-size: 1.25rem; padding: 0.3rem 0.8rem; }
.zt-label-gaps { border-left-color: #C2410C; }
.zt-label-partly { border-left-color: #B7791F; }
.zt-label-most { border-left-color: #15803D; }
.zt-label-unknown { border-left-color: #64748B; }
.zt-label-excluded { border-left-color: var(--line); color: var(--muted); }
.zt-keynote { display: block; font-size: 0.88rem; color: var(--muted); margin-top: 0.3rem; }
.zt-kind { display: block; font-weight: 400; font-size: 0.82rem; color: var(--muted); }
.zt-key { display: inline-block; margin-left: 0.4rem; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; border: 1px solid var(--violet); color: #5B47D6; border-radius: 3px; padding: 0 0.3rem; vertical-align: 0.1em; }
.zt-disclaimer { font-size: 0.92rem; color: var(--muted); border-left: 3px solid var(--line); padding-left: 0.8rem; }
.zt-table { font-size: 0.93rem; }
.zt-table th[scope="row"] { background: transparent; }
.zt-detail td:first-child { width: 32%; }
.zt-detail td:nth-child(2) { width: 12%; white-space: nowrap; }
.zt-list li { margin-bottom: 0.5em; }
.zt-actions { padding-left: 1.3em; }
.zt-actions li { margin-bottom: 1rem; }
.zt-actions p { margin: 0.2rem 0 0; }
.zt-answer { color: var(--muted); font-size: 0.93rem; }
.zt-benefit { font-size: 0.92rem; color: var(--muted); }
.zt-status { min-height: 1.5em; font-size: 0.95rem; margin-top: 0.75rem; }
.zt-copybox { display: block; width: 100%; margin-top: 0.5rem; font-family: var(--mono); font-size: 0.85rem; padding: 0.6rem; border: 1px solid var(--line); border-radius: var(--radius); }
.zt-aise { margin: 2rem 0; padding: 1.25rem 1.5rem; background: var(--panel); border-top: 4px solid var(--violet); border-radius: var(--radius); }
.zt-aise h3, .zt-aise h2 { margin-top: 0; }

/* Page content around the tool */
.zt-facts { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; list-style: none; padding: 0; margin: 1.25rem 0 0; font-weight: 600; font-size: 0.97rem; }
.zt-facts li { margin: 0; }
.zt-compare th:first-child { width: 28%; }

/* Print view: zt-baseline.js swaps the whole page for .zt-report */
html.zt-printing body { background: #fff; }
.zt-report { max-width: 52rem; margin: 0 auto; padding: 1.5rem 1rem 3rem; font-size: 0.98rem; }
.zt-report h1 { font-size: 1.8rem; margin: 1rem 0 0.5rem; }
.zt-report h2 { font-size: 1.25rem; margin: 1.75rem 0 0.6rem; }
.zt-report h3 { font-size: 1.05rem; margin: 1.25rem 0 0.4rem; }
.zt-report-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; padding: 0.9rem 1rem; margin-bottom: 1.5rem; background: var(--panel); border-radius: var(--radius); }
.zt-report-actions .zt-note { margin: 0; }
.zt-report-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 3px solid var(--indigo); padding-bottom: 0.75rem; }
.zt-report-head img { width: 150px; }
.zt-report-head span { font-weight: 600; color: var(--muted); }
.zt-report-foot { margin-top: 2rem; padding-top: 0.75rem; border-top: 1px solid var(--line); font-size: 0.85rem; color: var(--muted); }

@media print {
  @page { margin: 14mm; }
  .zt-report { max-width: none; padding: 0; font-size: 10.5pt; }
  .zt-report h2, .zt-report h3 { break-after: avoid; }
  .zt-report tr, .zt-report li, .zt-overall { break-inside: avoid; }
  .zt-report .table-scroll { overflow: visible; }
  .zt-report th { background: #F4F7FB; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
