/* Fish's Clinical Psychopathology Lab — base styles.
   Shares the DSM-5 Learning Lab font pairing (PRD §8) with its own
   teal accent identity rather than an identical palette. */

:root{
  --paper:#faf8f3; --ink:#201f2b; --ink-soft:#55536a; --ink-faint:#6a6779;
  --line:#e3ddd0; --accent:#1a6b63; --accent-bg:#e2f2ef;
}
*{box-sizing:border-box;}
body{margin:0; background:var(--paper); color:var(--ink); font-family:-apple-system,"Segoe UI",sans-serif; line-height:1.6;}
h1,h2,h3{line-height:1.2;}
a{color:var(--accent);}
.wrap{max-width:880px; margin:0 auto; padding:0 1.5rem;}
.site-header{display:flex; justify-content:space-between; align-items:center; padding:1rem 1.5rem; border-bottom:1px solid var(--line);}
.site-header .brand{font-weight:700; text-decoration:none; color:var(--ink);}
.site-header nav a{margin-left:1rem; text-decoration:none; color:var(--ink-soft); font-size:.9rem;}
.site-header nav a.active{color:var(--accent); font-weight:600;}
.hero{padding:3rem 1.5rem 1rem;}
.lede{color:var(--ink-soft); max-width:70ch;}
.domain-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:1rem; padding:1rem 1.5rem 3rem;}
.domain-card{display:block; border:1px solid var(--line); border-radius:8px; padding:1rem; text-decoration:none; color:var(--ink); background:#fff;}
.domain-card__chapter{font-size:.75rem; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.05em;}
.domain-card__count{font-size:.85rem; color:var(--accent);}
.phenomenon-list, .syndrome-list, .defence-list, .comparison-list, .foundations-list, .case-list{list-style:none; padding:0;}
.phenomenon-list li{padding:.35rem 0;}
.phenomenon-list--children{padding-left:1.2rem; border-left:2px solid var(--line);}
.domain-heading{margin-top:2rem;}
.chapter-tag{font-size:.7rem; color:var(--ink-faint); font-weight:400;}
.breadcrumb{font-size:.85rem;}
.eponym, .classic-definition{color:var(--ink-soft); font-style:italic;}
.illustration{background:#fff; border-left:3px solid var(--accent); padding:.8rem 1rem; border-radius:4px;}
.variant-terms dt{font-weight:600;} .variant-terms dd{margin:0 0 .6rem;}
.references{font-size:.85rem; color:var(--ink-soft);}
.empty{color:var(--ink-faint); font-style:italic;}
.disclaimer{font-size:.8rem; color:var(--ink-soft); max-width:70ch; margin:2rem auto 0; padding:0 1.5rem;}
.meta{font-size:.75rem; color:var(--ink-faint); max-width:70ch; margin:.5rem auto 2rem; padding:0 1.5rem;}
.comparison-table{width:100%; border-collapse:collapse; margin:1rem 0; font-size:.9rem;}
.comparison-table th, .comparison-table td{border:1px solid var(--line); padding:.5rem .6rem; text-align:left; vertical-align:top;}
.comparison-table th{background:var(--accent-bg); color:var(--ink);}
.comparison-table td:first-child{font-weight:600; color:var(--ink-soft); white-space:nowrap;}
.clarifying-questions{list-style:decimal; padding-left:1.3rem;}
.clarifying-questions li{margin-bottom:.7rem;}
.clarifying-questions .why{color:var(--ink-soft); font-size:.85rem; margin-top:.2rem;}

/* Sprint E1 — practice layer (additive only; nothing above this point changed). */
.practice-list{list-style:none; padding:0;}
.practice-list li{padding:.35rem 0;}
.practice-options{list-style:none; padding:0; margin:1rem 0;}
.practice-option{border:1px solid var(--line); border-radius:6px; padding:.6rem .8rem; margin-bottom:.5rem; background:#fff; cursor:pointer;}
.practice-option:hover{border-color:var(--accent);}
.practice-option--selected{border-color:var(--accent); background:var(--accent-bg);}
.practice-option--correct{border-color:#2f7d3c; background:#e7f5ea;}
.practice-option--incorrect{border-color:#b3402c; background:#fbeae6;}
.practice-check, .practice-reveal{background:var(--accent); color:#fff; border:none; border-radius:6px; padding:.6rem 1.2rem; font-size:.9rem; cursor:pointer;}
.practice-check:disabled{background:var(--ink-faint); cursor:not-allowed;}
.practice-explanation{margin-top:1rem; background:#fff; border-left:3px solid var(--accent); padding:.8rem 1rem; border-radius:4px;}
.practice-targets{margin-top:.5rem; font-size:.9rem;}

/* Sprint E5 — progress page (additive only; nothing above this point changed). */
.progress-summary-stats{list-style:none; padding:0; display:flex; gap:1.5rem; flex-wrap:wrap;}
.progress-summary-stats li{background:#fff; border:1px solid var(--line); border-radius:6px; padding:.6rem 1rem;}
.progress-due-list, .progress-items-list{list-style:none; padding:0;}
.progress-due-list li, .progress-items-list li{padding:.4rem 0; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:.6rem; flex-wrap:wrap;}
.progress-level{font-size:.75rem; text-transform:uppercase; letter-spacing:.02em; border-radius:4px; padding:.15rem .5rem;}
.progress-level--new{background:#eee; color:var(--ink-soft);}
.progress-level--learning{background:#fdecd2; color:#8a5a12;}
.progress-level--familiar{background:#e0edfb; color:#1c5a96;}
.progress-level--mastered{background:#e7f5ea; color:#2f7d3c;}
.progress-attempts{font-size:.8rem; color:var(--ink-faint);}

/* Sprint E6 — accessibility fixes (additive only; nothing above this point changed except the --ink-faint value in :root, above, for WCAG AA contrast). */
.skip-link{position:absolute; left:-9999px; top:0; background:var(--accent); color:#fff; padding:.6rem 1rem; z-index:100; border-radius:0 0 6px 0;}
.skip-link:focus{left:0;}
.practice-option[role="option"]:focus-visible, .skip-link:focus-visible{outline:3px solid var(--accent); outline-offset:2px;}

/* Sprint E2 — educational interaction layer (additive only; nothing above this point changed). */
.practice-feedback-note{margin:.6rem 0 0; font-size:.9rem; color:var(--ink-soft);}
.practice-feedback-note strong{color:var(--ink);}

.case-step{margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--line);}
.case-step:first-of-type{margin-top:1.5rem; padding-top:0; border-top:none;}
.case-step-label{font-size:.75rem; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.05em; margin-bottom:.3rem;}
.case-step h2{margin-top:0; font-size:1.15rem;}
.case-step-count{color:var(--ink-soft); font-size:.9rem;}
.case-feedback-correct{color:#2f7d3c; font-weight:600; margin:0 0 .4rem;}
.case-feedback-incorrect{color:#b3402c; font-weight:600; margin:0 0 .4rem;}
.case-next{margin-top:.8rem;}

.search-box-wrap{margin:1rem 0;}
.search-label{display:block; font-size:.8rem; color:var(--ink-soft); margin-bottom:.3rem;}
.search-box{width:100%; max-width:360px; padding:.5rem .7rem; border:1px solid var(--line); border-radius:6px; font-size:.95rem; background:#fff; color:var(--ink);}
.search-box:focus{outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent);}
.search-empty{color:var(--ink-faint); font-style:italic; margin-top:.5rem;}

.phenomenon-mastery{margin:1rem 0;}
.phenomenon-mastery-line{font-size:.85rem; color:var(--ink-soft); background:#fff; border:1px solid var(--line); border-radius:6px; padding:.6rem .9rem; display:inline-block;}
.phenomenon-mastery-line strong{color:var(--ink);}
