/* Deliberate report variants; shared only where requested. */
#report-view [hidden] {display:none!important;}
#report-view #expert-toggle-bar {width:100%;font:inherit;text-align:left;}
#report-view #expert-toggle-content,#report-view .expert-toggle-eyebrow,#report-view .expert-toggle-title,#report-view .expert-toggle-desc {display:block;}
#report-view #expert-toggle-btn {display:inline-flex;align-items:center;justify-content:center;}
#report-view button:focus-visible,#report-view [role="button"]:focus-visible {outline:3px solid var(--gold-premium);outline-offset:3px;}
#report-view dialog#theory-popover {padding:0;margin:0;border:0;box-sizing:border-box;width:100%;max-width:100%;}
#report-view dialog#theory-popover:not([open]) {display:none!important;}
#report-view dialog#theory-popover::backdrop {background:rgba(0,0,0,.42);}
@media(min-width:769px) {
 #report-view dialog#theory-popover {width:400px;max-width:calc(100vw - 32px);border:1px solid #e2e8f0;}
 #report-view dialog#theory-popover::backdrop {background:transparent;}
 #report-view .score-criteria-grid[data-count="5"] {grid-template-columns:repeat(6,minmax(0,1fr));}
 #report-view .score-criteria-grid[data-count="5"] > .score-criteria-item {grid-column:span 2;}
 #report-view .score-criteria-grid[data-count="5"] > .score-criteria-item:nth-child(4) {grid-column:2/4;}
 #report-view .score-criteria-grid[data-count="5"] > .score-criteria-item:nth-child(5) {grid-column:4/6;}
}
@media(min-width:1025px) {
 #report-view .score-criteria-grid[data-count="5"] {grid-template-columns:repeat(5,minmax(0,1fr));}
 #report-view .score-criteria-grid[data-count="5"] > .score-criteria-item:nth-child(n) {grid-column:auto;}
}
@media(max-width:768px) {
 #report-view .score-criteria-grid[data-count="5"] > .score-criteria-item:last-child {grid-column:1/-1;}
}
#report-view,#self-report-view {word-break:keep-all;overflow-wrap:break-word;}
#report-view .section-title,#self-report-view .section-title {word-break:keep-all;overflow-wrap:normal;text-wrap:balance;}
#report-view .story-chapter-label,#self-report-view .story-chapter-label {word-break:keep-all;overflow-wrap:normal;text-wrap:balance;}
#report-view .report-card p,#self-report-view .report-card p,#report-view .cvs-text,#report-view .season-desc,#self-report-view .season-desc {text-wrap:pretty;}
#report-view .report-header .score-badge {display:inline-flex;justify-content:center;flex-wrap:wrap;gap:0 6px;box-sizing:border-box;max-width:100%;white-space:normal;line-height:1.7;text-wrap:balance;}
#report-view .score-badge-value {display:inline-block;white-space:nowrap;font-variant-numeric:tabular-nums;}
#report-view .oheng-diff-note code {display:inline-block;white-space:nowrap;}
#report-view .radar-chart-container {height:auto;aspect-ratio:1;}
#self-report-view .exec-items {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
#self-report-view .exec-item {justify-content:space-between;white-space:nowrap;min-width:0;}
#report-view .season-num,#self-report-view .season-num,.suri-seq-item strong {font-variant-numeric:tabular-nums;}
.report-grade {display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;white-space:nowrap;line-height:1.5;border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:800;}
.report-grade-great {background:#dcfce7;color:#166534;}.report-grade-good {background:#dbeafe;color:#1d4ed8;}.report-grade-neutral,.report-grade-missing {background:#f1f5f9;color:#475569;}.report-grade-bad {background:#fef3c7;color:#92400e;}.report-grade-worst {background:#fee2e2;color:#b91c1c;}
.dn-report-math {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}
.dn-report-math .suri-sub-card {min-width:0;background:white;border:1.5px solid var(--border-light,#e2e8f0);border-radius:18px;padding:24px;}
.suri-sub-heading {display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.suri-sub-heading h4 {flex:1 1 0;min-width:0;font-size:.95rem;font-weight:800;line-height:1.65;margin:0;color:var(--bg-dark,#0f172a);overflow-wrap:break-word;}
.suri-sub-heading h4 span {display:inline-block;font-size:.85em;color:var(--text-secondary,#64748b);}
.suri-method,.suri-number-key {font-size:.78rem;line-height:1.8;color:var(--text-secondary,#64748b);margin:14px 0;overflow-wrap:anywhere;}
.suri-number-key {margin-bottom:0;}
.suri-number-key {display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;}
.suri-number-key span {display:inline-block;white-space:nowrap;}
.suri-yin-seq,.suri-oheng-seq {display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px;margin:16px 0;}
.suri-seq-item {display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;padding:10px 4px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;font-size:.72rem;line-height:1.7;text-align:center;}
.suri-seq-item strong {font-size:1.15rem;line-height:1.5;color:#0f172a;}.suri-seq-name {font-size:.68rem;color:#64748b;overflow-wrap:anywhere;}
.suri-saved-desc {font-size:.88rem;line-height:1.85;color:var(--text-primary,#1e293b);margin:12px 0 0;white-space:pre-line;overflow-wrap:anywhere;}
.report-missing {font-size:.85rem;color:#64748b;}
.premium-saju-guide {font-size:.88rem;line-height:1.85;color:var(--text-secondary);margin:20px 0 28px;}
/* Snapshot chips are report facts, not selectable form options. */
#self-jawon-inline .jawon-chip {opacity:1;filter:none;cursor:default;background:white!important;color:var(--bg-dark)!important;box-shadow:none;transform:none;}
#self-jawon-inline .jawon-chip .jawon-chip-label {opacity:1;color:var(--text-secondary);}
.hanja-s1-story p {margin:0 0 8px;}.hanja-s1-story p:last-child {margin-bottom:0;}
.premium-hanja-interpretation {border-left:3px solid var(--gold-premium);padding:8px 0 8px 20px;margin:24px 0;}
.premium-hanja-interpretation h3 {font-size:1rem;line-height:1.7;margin:0 0 10px;color:var(--bg-dark);}
.premium-hanja-interpretation p,.premium-hanja-detail p {font-size:.9rem;line-height:1.85;margin:0;white-space:pre-line;overflow-wrap:anywhere;}
.premium-hanja-details {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px;}
.premium-hanja-detail {min-width:0;padding:20px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;}
.premium-hanja-detail h4 {font-size:.95rem;line-height:1.7;margin:0 0 12px;}
.premium-hanja-facts {display:flex;flex-wrap:wrap;gap:8px;margin:16px 0;font-size:.75rem;color:#64748b;}
.premium-hanja-facts span {padding:4px 10px;border-radius:999px;border:1px solid #e2e8f0;background:white;}
.premium-hanja-detail .premium-hanja-synergy {margin-top:12px;color:var(--text-secondary);}
.sound-syllables {display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px;margin-bottom:20px;}
.sound-syllable-card {min-width:0;padding:18px 12px;background:white;border:1.5px solid #e2e8f0;border-radius:16px;text-align:center;}
.sound-syllable-label {font-size:.72rem;color:#64748b;line-height:1.7;}.sound-syllable-card .char-kr {display:block;font-size:1.8rem;font-weight:900;line-height:1.8;margin:6px 0;color:#0f172a;}
.sound-syllable-facts {display:flex;justify-content:center;gap:6px;flex-wrap:wrap;font-size:.72rem;font-weight:700;line-height:1.8;}.sound-syllable-facts span {padding:2px 8px;border-radius:10px;background:#f1f5f9;}
.self-sound-metric {display:flex;align-items:center;gap:10px;margin-top:16px;font-size:.85rem;}.self-sound-explanation {font-size:.9rem;line-height:1.85;color:#475569;margin:10px 0 0;}
/* Both premium sound diagrams use the same equal-width syllable columns. */
#report-view .ai-sound-flow,#report-view .sound-yin-flow {display:grid;grid-template-columns:repeat(var(--sound-columns,3),minmax(0,1fr));align-items:center;gap:0;width:100%;padding:8px 0;margin:0;}
#report-view .ai-sound-char,#report-view .sound-yin-char {position:relative;min-width:0;text-align:center;}
#report-view .ai-sound-char .char-kr,#report-view .sound-yin-char .char-kr {display:block;font-size:1.6rem;font-weight:800;color:var(--bg-dark);line-height:1.7;}
#report-view .ai-sound-char .char-oheng {max-width:100%;box-sizing:border-box;line-height:1.7;white-space:nowrap;}
#report-view .ai-sound-arrow {position:absolute;left:100%;top:50%;transform:translate(-50%,-50%);font-size:1.15rem;line-height:1;}
#report-view .sound-relations {display:grid;gap:10px;margin:16px 0 0;padding:14px 16px;background:white;border:1px solid var(--border-light);border-radius:12px;font-size:.82rem;line-height:1.8;}
#report-view .sound-relation-row {display:grid;grid-template-columns:4.2em minmax(0,1fr);align-items:start;gap:12px;min-width:0;}
#report-view .sound-relation-row dt {margin:0;font-weight:800;white-space:nowrap;}
#report-view .sound-relation-row.good dt {color:#15803d;}#report-view .sound-relation-row.bad dt {color:#dc2626;}
#report-view .sound-relation-row dt span {display:inline-block;width:1.1em;text-align:center;}
#report-view .sound-relation-row dd {display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;margin:0;color:var(--text-primary);}
#report-view .sound-relation-pair {display:block;max-width:100%;overflow-wrap:anywhere;}
#report-view .suri-seasons-grid {align-items:stretch;}
#report-view .season-card {display:flex;flex-direction:column;min-width:0;padding:20px 16px;}
#report-view .season-top {min-height:30px;}
#report-view .season-heading {display:flex;align-items:center;gap:6px;font-size:.9rem;font-weight:800;line-height:1.6;}
#report-view .season-kicker {display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap;margin:6px 0 12px;font-size:.78rem;color:#64748b;}
#report-view .season-grade {font-size:.7rem!important;padding:3px 8px!important;line-height:1.5;white-space:nowrap;}
#report-view .season-num {line-height:1.4;}
#report-view .season-desc {line-height:1.9;}
#report-view .season-special-badges {display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:auto;padding-top:14px;min-height:40px;}
#report-view .season-special-badges > div {margin-top:0!important;}
#report-view .suri-special-badge {white-space:nowrap;line-height:1.7;letter-spacing:0;font-size:.68rem;padding:3px 8px;}
/* A chapter caption has its own row; its title and controls share the next one. */
#report-view .chapter-acc-title-row,#self-report-view .chapter-acc-title-row {display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;row-gap:8px;align-items:center;}
#report-view .chapter-acc-title-row .story-chapter-label,#self-report-view .chapter-acc-title-row .story-chapter-label {grid-column:1/-1;grid-row:1;margin:0;}
#report-view .ch-title-row {grid-column:1;grid-row:2;display:flex;align-items:center;gap:8px;min-width:0;}
#report-view .ch-title-row h2 {flex:0 1 auto;min-width:0;margin:0!important;}
#report-view .ch-title-row .theory-info-btn {flex:0 0 20px;margin:0;}
#self-report-view .chapter-acc-title-row h2 {grid-column:1;grid-row:2;margin:0!important;}
#report-view .chapter-acc-title-row > .chapter-toggle-btn,#self-report-view .chapter-acc-title-row > .chapter-toggle-btn {grid-column:2;grid-row:2;align-self:center;margin:0;}
#report-view .report-method-badge {grid-column:1/-1;grid-row:3;justify-self:start;font-size:.68rem;font-weight:800;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:20px;padding:2px 10px;white-space:nowrap;line-height:1.7;}
#report-view .chapter-verdict-strip {display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;align-items:center;}
#report-view .chapter-verdict-strip .cvs-badge {justify-self:start;white-space:nowrap;}
#report-view .chapter-verdict-strip .cvs-text {min-width:0;}
#self-report-view .self-conclusion-points .conclusion-point {display:grid;grid-template-columns:16px minmax(0,1fr);gap:8px;align-items:center;box-sizing:border-box;min-height:86px;padding:14px 12px;}
#self-report-view .conclusion-point-icon {display:grid;place-items:center;width:16px;height:20px;line-height:1;}
#self-report-view .conclusion-point-body {display:grid;gap:6px;min-width:0;align-content:center;}
#self-report-view .conclusion-point-label {display:block;font-size:.8rem;line-height:1.5;white-space:nowrap;}
#self-report-view .conclusion-point-grade {display:inline-block;justify-self:start;font-size:.7rem;font-weight:800;line-height:1.5;white-space:nowrap;padding:3px 8px;border-radius:999px;}
#report-view .report-hanja-entry {display:grid;grid-template-columns:56px minmax(0,1fr);gap:16px;align-items:start;background:#f8fafc;border:1px solid var(--border-light);border-radius:18px;padding:20px;margin-bottom:14px;}
#report-view .report-hanja-glyph {display:grid;place-items:center;box-sizing:border-box;width:56px;height:56px;border:2px solid;border-radius:14px;background:white;font:900 2.2rem/1 serif;color:var(--bg-dark);}
#report-view .report-hanja-copy {min-width:0;}
#report-view .report-hanja-copy h3 {font-size:1.05rem;font-weight:800;line-height:1.5;color:var(--bg-dark);margin:0;}
#report-view .report-hanja-meta {font-size:.78rem;line-height:1.7;color:var(--text-secondary);margin-top:4px;}
#report-view .report-hanja-copy p {font-size:.85rem;line-height:1.7;color:var(--text-secondary);margin:6px 0 0;}
#report-view .career-jobs {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
#report-view .career-job {display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:10px;box-sizing:border-box;min-height:76px;padding:12px 16px;border:1.5px solid;border-radius:var(--radius-sm);}
#report-view .career-job-icon {display:grid;place-items:center;width:20px;line-height:1;font-size:.9rem;}
#report-view .career-job-label {font-size:.88rem;line-height:1.6;}
@media(max-width:640px) {
 #report-view #expert-toggle-bar {flex-direction:column;align-items:stretch;}
 #report-view #expert-toggle-btn {align-self:flex-end;}
 #report-view .chapter-acc-title-row,#self-report-view .chapter-acc-title-row {column-gap:12px;}
 #self-report-view .exec-summary {flex-direction:column;align-items:stretch;gap:16px;}
 #self-report-view .exec-score-ring {align-self:center;}
 #self-report-view .exec-score-body {width:100%;}
 #self-report-view .exec-items {grid-template-columns:repeat(2,minmax(0,1fr));}
 #self-report-view .saju-mingsik {table-layout:fixed;}
 #self-report-view .saju-mingsik th,#self-report-view .saju-mingsik .row-label {white-space:nowrap;padding:12px 4px;}
 #self-report-view .saju-mingsik th:first-child,#self-report-view .saju-mingsik .row-label {width:44px;}
 #self-report-view .saju-mingsik .gan-cell,#self-report-view .saju-mingsik .ji-cell {padding-left:4px;padding-right:4px;}
 #report-view .suri-sub-heading,#self-report-view .suri-sub-heading {flex-wrap:nowrap;gap:8px;}
 #report-view .chapter-verdict-strip {grid-template-columns:minmax(0,1fr);gap:8px;padding:14px 16px;}
 #report-view .career-jobs {grid-template-columns:minmax(0,1fr);}
 #report-view .report-hanja-entry {padding:16px;gap:12px;}
 #report-view .sound-relations {padding:12px 10px;gap:8px;font-size:.75rem;}#report-view .sound-relation-row {gap:8px;}
 #report-view .ai-sound-char .char-oheng {font-size:.68rem;padding:2px 6px;}
 .dn-report-math {grid-template-columns:minmax(0,1fr);gap:16px;}.dn-report-math .suri-sub-card {padding:20px 16px;}
 .sound-syllables {grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}.sound-syllable-card {padding:14px 6px;}.sound-syllable-card .char-kr {font-size:1.5rem;}
 .premium-hanja-details {grid-template-columns:minmax(0,1fr);}
 #self-report-view .exec-name,#self-report-view .report-header h1,#report-view .report-header h1 {height:auto;max-height:none;line-height:1.55;overflow:visible;overflow-wrap:anywhere;}
 #self-report-view .exec-name span {display:inline-block;line-height:1.7;}
 #self-report-view .meta-info,#report-view .meta-info {max-width:100%;white-space:normal;line-height:1.8;}
 #report-view .season-card {padding:20px;}
}
@media(min-width:641px) and (max-width:1024px) {
 #self-report-view .exec-items {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:480px) {
 #self-report-view .exec-items {grid-template-columns:minmax(0,1fr);}
 #report-view .suri-pattern-banner {flex-direction:column;align-items:stretch;gap:12px;}
 #report-view .suri-pattern-banner .spb-left {flex-direction:row;justify-content:flex-start;gap:10px;}
 #report-view .season-special-badges:empty {display:none;}
 #report-view .report-header .score-badge {padding:10px 16px;}
}
