/* Shared screen/PDF visual language. Charts remain vector-sharp in print. */
.visual-report { --report-accent:var(--ink); --report-soft:#f3f3f3; --report-silver:#e8e8e8; --report-mist:#efefef; }
.visual-report .result-cover { margin-top:22px; background:linear-gradient(145deg,#fff,#e3e3e3); }
.visual-report .archetype-image { width:180px; height:180px; object-fit:cover; border-radius:50%; margin:16px auto; border:6px solid #fff; }
.visual-report .type-name { font-size:26px; }
.visual-report .style-code { font-size:18px; margin:8px 0; color:var(--report-accent); }
.visual-report .cover-caption { font-size:11px; }
.visual-report .type-description { font-size:14px; }
.report-icon { width:24px; height:24px; flex:none; }
.visual-icon { width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; border-radius:15px; background:var(--report-soft); color:var(--report-accent); flex:none; }
.visual-axes { margin:30px 0 20px; }
.visual-heading { display:flex; gap:10px; align-items:center; }
.visual-heading h2 { font-size:19px; margin-top:3px; }
.visual-heading .eyebrow { font-size:8px; letter-spacing:.12em; margin:0; }
.visual-heading>b { margin-left:auto; font-size:14px; letter-spacing:.1em; color:var(--report-accent); }
.visual-caption { font-size:11px; line-height:1.8; color:#666; margin:12px 0; }
.axis-card-grid { display:grid; gap:12px; margin:16px 0; }
.axis-card { padding:18px; border:1px solid #dedede; border-radius:20px; background:#fff; break-inside:avoid; }
.axis-card header { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.axis-card header>.report-icon { color:var(--report-accent); width:20px; height:20px; }
.axis-card h3 { font-size:13px; }
.visual-pill { display:inline-block; font-size:10px; padding:4px 8px; border-radius:8px; background:var(--report-soft); color:#333; line-height:1.5; }
.axis-card header .visual-pill { margin-left:auto; }
.axis-card>p { font-size:11px; color:#666; line-height:1.7; margin-top:12px; }
.axis-card .context-note { border-left:2px solid #aaa; padding-left:8px; color:#666; }
.axis-chart { margin-top:18px; }
.axis-chart-labels,.axis-chart-caption { display:flex; justify-content:space-between; gap:12px; font-size:10px; color:#333; }
.axis-chart-labels>span { max-width:48%; }
.axis-chart-labels>span:last-child { text-align:right; }
.axis-chart svg { display:block; width:100%; height:auto; overflow:visible; }
.axis-chart-caption { font-size:9px; color:#666; }
.axis-chart-compact { padding:12px; background:#f3f3f3; border-radius:12px; margin-bottom:16px; }
.response-ring { display:flex; align-items:center; gap:15px; padding:12px; border:1px solid #dedede; background:#f3f3f3; border-radius:20px; margin:20px 0 12px; break-inside:avoid; }
.response-ring>svg { width:100px; height:100px; flex:none; }
.response-ring strong { font-size:13px; }.response-ring p { margin-top:8px; font-size:11px; line-height:1.8; color:#666; }
.visual-report .report-contents { background:#fff; }.visual-report .report-contents ol { gap:0; margin-top:10px; }
.visual-report .report-contents li { border-bottom:1px solid #dedede; padding:12px 0; }
.visual-report .report-contents a { align-items:center; font-size:12px; }.visual-report .report-contents a span { font-size:17px; color:#666; width:28px; flex:none; }
.visual-report .visual-chapter { margin-top:32px; padding-top:24px; }
.chapter-heading { display:flex; align-items:center; gap:14px; margin-bottom:20px; }
.chapter-illustration { display:grid; place-items:center; width:64px; height:64px; flex:none; background:var(--report-soft); border-radius:22px 22px 22px 6px; color:var(--report-accent); }
.chapter-illustration .report-icon { width:34px; height:34px; }
.chapter-illustration img { width:100%; height:100%; object-fit:cover; border-radius:inherit; }
.report-cue { margin-top:14px; padding-left:10px; border-left:2px solid #aaa; }
.report-cue>strong { display:block; font-size:10px; color:#333; margin-bottom:4px; }
.chapter-needs .chapter-illustration,.chapter-partners .chapter-illustration { background:var(--report-silver); color:#333; }
.chapter-conflict .chapter-illustration,.chapter-checklist .chapter-illustration { background:var(--report-mist); color:#333; }
.chapter-heading .report-section-label { font-size:9px; letter-spacing:.12em; margin-bottom:5px; }
.visual-report .chapter-heading h2 { font-size:21px; line-height:1.45; }
.chapter-prose>p { font-size:13px; line-height:1.85; color:#666; margin:16px 0; }
.reading-map { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:24px 0; }
.reading-map>div { text-align:center; padding:14px 6px; background:#fff; border:1px solid #dedede; border-radius:18px; }
.reading-map .visual-icon { display:flex; margin:0 auto 10px; }.reading-map small { display:block; font-size:9px; color:#666; }.reading-map strong { display:block; font-size:12px; margin:5px 0; }.reading-map p { font-size:9px; line-height:1.6; color:#666; margin:0; }
.visual-report .report-block { background:#fff; box-shadow:none; padding:20px; border:1px solid #dedede; border-radius:18px; margin-top:14px; }
.visual-row>* { min-width:0; }
.visual-report .report-block h3 { font-size:15px; line-height:1.6; }
.visual-report .report-block p { font-size:12px; line-height:1.85; }
.domain-heading { display:flex; gap:12px; align-items:center; margin-bottom:14px; }.domain-heading .eyebrow { font-size:10px; margin:0 0 4px; }.domain-heading h3 { margin:0; }
.report-dialogue { display:flex; gap:10px; padding:16px; margin:14px 0; border:1px solid #dedede; border-radius:16px 16px 16px 3px; background:#f3f3f3; color:#333; break-inside:avoid; }
.report-dialogue>.report-icon { width:18px; height:18px; margin-top:3px; }.visual-report .report-dialogue p { margin:0; color:#333; font-size:12px; line-height:1.8; }
.expectation-row { background:#fff; padding:16px; border:1px solid #dedede; border-radius:16px; margin:10px 0; break-inside:avoid; }.expectation-row h3 { display:flex; align-items:center; gap:8px; font-size:12px; margin-bottom:12px; }.expectation-row h3 svg { width:18px; height:18px; color:#666; }
.expectation-row>div { display:grid; grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr); gap:7px; align-items:stretch; }.expectation-row section { padding:12px 10px; border-radius:12px; background:#f3f3f3; }.expectation-row section:last-child { background:#e7e7e7; }.expectation-row small { display:block; font-size:9px; color:#666; margin-bottom:7px; }.expectation-row strong { font-size:12px; line-height:1.6; font-weight:600; display:block; }.expectation-bridge { align-self:center; color:#666; }
.practice-map { margin:20px 0; }.practice-map>h3 { font-size:15px; }.practice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }.practice-tile { display:flex; flex-direction:column; gap:6px; padding:14px; border-radius:16px; background:#fff; border:1px solid #dedede; text-decoration:none; break-inside:avoid; }.practice-tile:hover { border-color:#666; }.practice-tile strong { font-size:12px; }.practice-tile>span:not(.practice-mark),.practice-tile small { font-size:10px; color:#666; }.practice-mark { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:#f3f3f3; color:#333; font-size:19px; }.practice-practice .practice-mark { background:#f3f3f3; color:#333; }.practice-contextual .practice-mark { background:#f3f3f3; color:#333; }
.visual-item>.visual-icon { margin-bottom:12px; }.visual-item>.visual-pill { margin-bottom:10px; }
.conversation-scene { display:flex; align-items:center; justify-content:space-around; gap:10px; background:#f3f3f3; border:1px solid #dedede; border-radius:20px; padding:22px 12px; }.conversation-scene>span { display:flex; flex-direction:column; align-items:center; gap:10px; }.conversation-scene svg { width:36px; height:36px; color:#333; }.conversation-scene b { font-size:11px; }.conversation-scene i { font-size:10px; font-style:normal; text-align:center; color:#666; max-width:90px; }
.question-number { font-size:24px; color:#666; font-weight:700; display:block; margin-bottom:8px; }.visual-report .question-card { background:#f3f3f3; }
.report-timeline { border-left:2px solid #aaa; margin:22px 0 0 20px; padding-left:24px; }.visual-report .timeline-item { position:relative; padding-top:44px; }.day-marker { position:absolute; top:-1px; left:-47px; width:47px; height:47px; display:flex; flex-direction:column; align-items:center; justify-content:center; background:#f3f3f3; border:2px solid #aaa; border-radius:50%; }.day-marker small { font-size:8px; letter-spacing:.1em; }.day-marker b { font-size:20px; line-height:1; }.timeline-item h3 { margin-top:0; }
.visual-report .report-method { background:#f3f3f3; }.visual-report .ev { border-top:1px dashed #dedede; margin-top:16px; padding-top:12px; }.visual-report .ev summary { font-size:11px; color:#666; }
@media (min-width:900px) {
  body:has(.visual-report) #app { max-width:980px; }
  .visual-report { padding-left:44px; padding-right:44px; }
  .visual-report .result-cover { max-width:600px; margin-left:auto; margin-right:auto; }
  .axis-card-grid,.visual-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start; }
  .visual-row { margin-bottom:16px; }
  .visual-report .visual-block-grid .report-block { margin-top:0; }
  .visual-report .report-contents ol { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 30px; }
  .practice-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .reading-map { max-width:650px; margin-left:auto; margin-right:auto; }.reading-map p { font-size:12px; }
  .report-timeline { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; border-left:0; border-top:2px solid #aaa; margin:40px 0 0; padding:22px 0 0; }
  .visual-report .timeline-item { margin:0; padding-top:32px; }.day-marker { top:-47px; left:18px; }
}
@media print {
  @page { size:A4; margin:14mm 15mm; }
  body:has(.visual-report) #app,body:has(.visual-report) main,body:has(.visual-report) .content { display:block!important; min-height:0!important; }
  .visual-report { --report-accent:var(--ink); -webkit-print-color-adjust:exact; print-color-adjust:exact; padding:0!important; }
  .visual-report .preview-notice,.visual-report .report-tools,.visual-report .cover-bottom { display:none!important; }
  .visual-report .result-cover { padding:5mm!important; margin:4mm 0!important; border-radius:5mm; display:grid; grid-template-columns:38mm 1fr; gap:1mm 6mm; text-align:left; break-inside:avoid; }
  .visual-report .result-cover .archetype-image { grid-column:1; grid-row:1 / span 7; width:36mm; height:36mm; margin:0; border-width:1mm; }
  .visual-report .result-cover>*:not(.archetype-image) { grid-column:2; margin:0; text-align:left; }
  .visual-report .result-cover .cover-top { font-size:8pt; padding:0; }.visual-report .result-cover .cover-top>span:last-child { display:none; }
  .visual-report .type-name { font-size:20pt; }.visual-report .style-code { font-size:12pt; }.visual-report .type-description { font-size:9pt; }
  .visual-axes { margin:5mm 0; }.visual-heading h2 { font-size:15pt; }.axis-card-grid { display:grid; grid-template-columns:1fr 1fr; gap:3mm; margin:3mm 0; }
  .axis-card { padding:3mm; border-radius:3mm; }.axis-card h3 { font-size:10pt; }.axis-card header .visual-pill { font-size:7pt; }.axis-card>p:not(.context-note) { display:none; }.axis-card .context-note { font-size:7pt; margin-top:1mm; }.axis-chart { margin-top:3mm; }.axis-chart-labels { font-size:8pt; }.axis-chart-caption { font-size:7pt; }.visual-caption { font-size:8pt; margin:2mm 0; }
  .response-ring { padding:2mm 4mm; margin:3mm 0; }.response-ring>svg { width:19mm; height:19mm; }.response-ring strong { font-size:10pt; }.response-ring p { font-size:8pt; margin:1mm 0; }
  .visual-report .report-contents { padding:3mm; margin:3mm 0; break-after:page; }.visual-report .report-contents>p { font-size:10pt; }.visual-report .report-contents>p>span { display:none; }.visual-report .report-contents ol { display:grid; grid-template-columns:1fr 1fr; gap:0 5mm; margin-top:2mm; }.visual-report .report-contents li { padding:2mm 0; }.visual-report .report-contents a { font-size:8pt; }.visual-report .report-contents a span { font-size:10pt; }
  .visual-report .visual-chapter { break-before:auto; margin:6mm 0 0!important; padding:0!important; }
  .visual-report .report-cue { margin-top:2mm; }.visual-report .report-cue>strong { font-size:8pt; }.visual-report .report-block p+p { margin-top:2mm; }
  .chapter-heading { break-after:avoid; margin-bottom:4mm; }.chapter-illustration { width:14mm; height:14mm; border-radius:4mm; }.chapter-heading .report-section-label { font-size:7pt; }.visual-report .chapter-heading h2 { font-size:16pt; }
  .visual-report .visual-block-grid { display:block; }.visual-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3mm; align-items:start; break-inside:avoid; margin-bottom:3mm; }.visual-report .report-block { display:block; width:auto; padding:3mm; margin:0; border-radius:3mm; break-inside:avoid; background:#fff!important; }.visual-report .report-block h3 { font-size:10pt; margin-bottom:2mm; }.visual-report .report-block p,.chapter-prose>p { font-size:9pt; line-height:1.65; }.domain-heading { gap:2mm; margin-bottom:3mm; }.visual-icon { width:9mm; height:9mm; border-radius:3mm; }.visual-icon svg { width:5mm; height:5mm; }
  .chapter-prose:empty { display:none; }.chapter-actions { break-inside:avoid; }
  .report-dialogue { padding:3mm; margin:3mm 0; }.visual-report .report-dialogue p { font-size:9pt; }.reading-map { margin:4mm 0; break-inside:avoid; }.reading-map>div { padding:3mm; }.reading-map p { font-size:8pt; }.reading-map strong { font-size:10pt; }
  .expectation-map { break-inside:avoid; margin-bottom:4mm; }.expectation-row { padding:2mm 3mm; margin:2mm 0; }.expectation-row h3 { margin-bottom:1mm; font-size:9pt; }.expectation-row section { padding:2mm; }.expectation-row small { font-size:7pt; margin-bottom:1mm; }.expectation-row strong { font-size:9pt; }
  .practice-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:2mm; }.practice-tile { padding:3mm; }.practice-tile strong { font-size:9pt; }.practice-tile>span:not(.practice-mark),.practice-tile small { font-size:7pt; }.practice-map { break-inside:avoid; margin:4mm 0; }
  .conversation-scene { break-inside:avoid; padding:4mm; }.question-number { font-size:17pt; }
  .report-timeline { display:block; border-top:0; border-left:2px solid #aaa; margin:6mm 0 0 6mm; padding:0 0 0 8mm; }.visual-report .timeline-item { display:block; position:relative; padding:4mm 4mm 4mm 7mm; margin-bottom:4mm; }.day-marker { top:3mm; left:-15mm; width:12mm; height:12mm; }
  .visual-report .report-method { margin-top:5mm; padding:4mm; }.visual-report .report-method p { font-size:8pt; }.visual-report .report-method h2 { font-size:10pt; }
}
