.purple-cmm-root {
  --pcm-purple: #5b2b82;
  --pcm-purple-dark: #35144f;
  --pcm-purple-soft: #eee6f4;
  --pcm-lime: #d8ef71;
  --pcm-ink: #18151c;
  --pcm-muted: #6f6875;
  --pcm-line: #ded8e2;
  --pcm-paper: #fbfaf8;
  --pcm-white: #fff;
  background: var(--pcm-paper);
  color: var(--pcm-ink);
  font-family: Arial, Helvetica, sans-serif;
  margin: 0 calc(50% - 50vw);
  min-height: 100vh;
  width: 100vw;
}

.purple-cmm-root * { box-sizing: border-box; }
.purple-cmm-root button,
.purple-cmm-root input,
.purple-cmm-root textarea,
.purple-cmm-root select { font: inherit; }
.purple-cmm-root button { text-transform: none; }
.purple-cmm-root .pcm-eyebrow { color: var(--pcm-purple); display: block; font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }

.pcm-topbar { align-items: center; background: rgba(251,250,248,.95); border-bottom: 1px solid var(--pcm-line); display: grid; grid-template-columns: auto 1fr auto; min-height: 74px; padding: 0 4vw; position: sticky; top: 0; z-index: 30; backdrop-filter: blur(14px); }
.pcm-brand { background: var(--pcm-purple); color: #fff; font-size: 11px; font-weight: 900; letter-spacing: .18em; padding: 12px 11px; }
.pcm-topbar-copy { display: flex; flex-direction: column; gap: 2px; padding-left: 16px; }
.pcm-topbar-copy strong { font-size: 15px; }
.pcm-topbar-copy span,
.pcm-admin-link { color: var(--pcm-muted); font-size: 12px; }
.pcm-admin-link { text-decoration: none; }

.pcm-layout { display: grid; grid-template-columns: minmax(240px,.28fr) minmax(0,1fr); margin: 0 auto; max-width: 1480px; min-height: calc(100vh - 74px); }
.pcm-progress { align-self: start; border-right: 1px solid var(--pcm-line); min-height: calc(100vh - 74px); padding: 64px clamp(24px,3.4vw,64px); position: sticky; top: 74px; }
.pcm-progress-number { color: var(--pcm-purple-dark); font-size: 60px; font-weight: 800; letter-spacing: -.08em; line-height: 1; }
.pcm-progress-number span { color: #aaa1ae; font-size: 19px; letter-spacing: 0; }
.pcm-progress-line { background: var(--pcm-line); height: 4px; margin: 18px 0 34px; overflow: hidden; }
.pcm-progress-line span { background: var(--pcm-purple); display: block; height: 100%; transition: width .2s ease; }
.pcm-progress ol { display: grid; gap: 5px; list-style: none; margin: 0; padding: 0; }
.pcm-progress li button { align-items: center; background: transparent; border: 0; color: #918995; display: grid; gap: 11px; grid-template-columns: 27px 1fr; padding: 9px 0; text-align: left; width: 100%; }
.pcm-progress li button > span { align-items: center; border: 1px solid var(--pcm-line); border-radius: 50%; display: flex; font-size: 10px; height: 27px; justify-content: center; width: 27px; }
.pcm-progress li.active button { color: var(--pcm-ink); font-weight: 700; }
.pcm-progress li.active button > span { background: var(--pcm-purple); border-color: var(--pcm-purple); color: #fff; }
.pcm-progress li.done button { color: var(--pcm-purple); cursor: pointer; }
.pcm-progress li.done button > span { background: var(--pcm-purple-soft); border-color: var(--pcm-purple-soft); }
.pcm-progress > p { border-top: 1px solid var(--pcm-line); color: var(--pcm-muted); font-size: 11px; line-height: 1.55; margin-top: 30px; padding-top: 16px; }

.pcm-content { margin: 0 auto; max-width: 940px; padding: 80px clamp(24px,5vw,96px) 128px; width: 100%; }
.pcm-intro { margin-bottom: 50px; }
.pcm-intro h1 { color: var(--pcm-purple-dark); font-size: clamp(38px,5vw,76px); font-weight: 700; letter-spacing: -.055em; line-height: .98; margin: 11px 0 20px; max-width: 820px; }
.pcm-intro > p { color: var(--pcm-muted); font-size: 17px; line-height: 1.75; margin: 0; max-width: 720px; }
.pcm-compact-intro { border-bottom: 1px solid var(--pcm-line); margin-bottom: 32px; padding-bottom: 32px; }
.pcm-compact-intro h1 { font-size: clamp(35px,4vw,59px); }
.pcm-principle { background: var(--pcm-purple-dark); color: #f6eef9; display: grid; gap: 7px; line-height: 1.6; margin-top: 30px; max-width: 740px; padding: 22px 24px; }
.pcm-principle strong { color: var(--pcm-lime); font-size: 12px; letter-spacing: .09em; text-transform: uppercase; }

.pcm-identity,
.pcm-two-fields { display: grid; gap: 16px; grid-template-columns: repeat(2,minmax(0,1fr)); margin-bottom: 38px; }
.pcm-field { display: grid; gap: 8px; }
.pcm-field > span { color: #4e4752; font-size: 12px; font-weight: 700; }
.pcm-field input,
.pcm-field textarea,
.pcm-field select { background: #fff; border: 1px solid #cfc7d2; border-radius: 0; color: var(--pcm-ink); outline: none; padding: 13px 15px; width: 100%; }
.pcm-field textarea { line-height: 1.55; min-height: 88px; resize: vertical; }
.pcm-field input:focus,
.pcm-field textarea:focus,
.pcm-field select:focus { border-color: var(--pcm-purple); box-shadow: 0 0 0 3px rgba(91,43,130,.11); }
.pcm-field input:disabled { background: #f1eef2; color: #716a74; }

.pcm-open-list { display: grid; gap: 16px; }
.pcm-card { background: #fff; border: 1px solid var(--pcm-line); box-shadow: 0 8px 30px rgba(53,20,79,.035); }
.pcm-open-card,
.pcm-class-card { display: grid; gap: 16px; grid-template-columns: 48px 1fr; padding: 24px; }
.pcm-class-card { margin-bottom: 16px; }
.pcm-q-index { color: var(--pcm-purple); font-size: 11px; font-weight: 900; letter-spacing: .08em; }
.pcm-q-body { display: block; min-width: 0; }
.pcm-open-card .pcm-q-body > strong { display: block; font-size: 16px; line-height: 1.45; }
.pcm-open-card .pcm-q-body > small { color: var(--pcm-muted); display: block; line-height: 1.55; margin: 6px 0 16px; }
.pcm-open-card textarea { border: 0; border-top: 1px solid var(--pcm-line); line-height: 1.6; outline: none; padding: 16px 0 0; resize: vertical; width: 100%; }
.pcm-class-card h3 { color: var(--pcm-purple-dark); font-size: 17px; line-height: 1.4; margin: 0; }
.pcm-hint { color: var(--pcm-muted); font-size: 13px; line-height: 1.55; margin: 7px 0 16px; }
.pcm-class-options { display: flex; flex-wrap: wrap; gap: 7px; }
.pcm-chip { align-items: center; background: #f7f4f8; border: 1px solid #e6dfe9; color: #514858; cursor: pointer; display: flex; font-size: 12px; gap: 7px; line-height: 1.35; padding: 9px 11px; }
.purple-cmm-root .pcm-chip:hover { background: #eee7f2; border-color: #c9b8d3; color: var(--pcm-purple-dark); }
.purple-cmm-root .pcm-chip:focus-within { box-shadow: 0 0 0 3px rgba(91,43,130,.18); outline: 2px solid transparent; }
.purple-cmm-root .pcm-chip.selected,
.purple-cmm-root .pcm-chip.selected:hover { background: var(--pcm-purple); border-color: var(--pcm-purple); color: #fff !important; }
.purple-cmm-root .pcm-chip.selected span,
.purple-cmm-root .pcm-chip.selected:hover span { color: #fff !important; -webkit-text-fill-color: #fff; }
.purple-cmm-root .pcm-chip input { -webkit-appearance: none; appearance: none; background: #fff; border: 1.5px solid #817888; border-radius: 50%; flex: 0 0 16px; height: 16px; margin: 0; width: 16px; }
.purple-cmm-root .pcm-chip input:checked { background: #fff; border-color: #fff; box-shadow: inset 0 0 0 4px var(--pcm-purple-dark); }
.pcm-scenario-option input { accent-color: var(--pcm-purple); margin: 0; }
.pcm-compact { margin-top: 14px; max-width: 520px; }

.pcm-scenario { margin-bottom: 16px; padding: clamp(22px,3vw,35px); }
.pcm-scenario-number { color: var(--pcm-purple); font-size: 11px; font-weight: 900; }
.pcm-scenario h2 { color: var(--pcm-purple-dark); font-size: 25px; letter-spacing: -.025em; margin: 7px 0 12px; }
.pcm-scenario > p { color: var(--pcm-muted); line-height: 1.65; margin: 0 0 20px; }
.pcm-scenario-options { display: grid; gap: 8px; margin-bottom: 22px; }
.pcm-scenario-option { align-items: flex-start; background: #f8f6f8; border: 1px solid #e4dee7; cursor: pointer; display: flex; font-size: 13px; gap: 12px; line-height: 1.5; padding: 13px 14px; }
.pcm-scenario-option input { margin-top: 3px; }
.pcm-scenario-option.selected { background: var(--pcm-purple-soft); border-color: #b9a1c8; color: var(--pcm-purple-dark); }

.pcm-selection { background: #fff; border: 1px solid var(--pcm-line); margin: 0 0 16px; padding: 24px; position: relative; }
.pcm-selection legend { color: var(--pcm-purple-dark); font-size: 17px; font-weight: 800; padding: 0 6px; }
.pcm-selection > p { color: var(--pcm-muted); font-size: 12px; line-height: 1.55; margin: 0 0 16px; }
.pcm-counter { background: #eee9ef; color: var(--pcm-purple-dark); font-size: 11px; font-weight: 800; padding: 6px 10px; position: absolute; right: 20px; top: 18px; }
.pcm-counter.complete { background: var(--pcm-lime); }
.pcm-checklist { border-top: 1px solid var(--pcm-line); }
.pcm-check-row { align-items: flex-start; border-bottom: 1px solid #eee9f0; cursor: pointer; display: grid; font-size: 12px; gap: 11px; grid-template-columns: auto 29px 1fr; line-height: 1.45; padding: 11px 7px; }
.pcm-check-row input { accent-color: var(--pcm-purple); margin-top: 3px; }
.pcm-check-row.selected { background: #f3edf6; color: var(--pcm-purple-dark); }
.pcm-check-row.disabled { color: #aaa3ad; cursor: not-allowed; opacity: .52; }
.pcm-check-number { color: #9c92a1; font-size: 10px; font-weight: 800; }
.pcm-none-option { align-items: center; background: #f6f2f7; border: 1px solid #ddd3e1; color: var(--pcm-purple-dark); cursor: pointer; display: flex; font-size: 12px; font-weight: 700; gap: 9px; margin: 0 0 12px; padding: 11px 13px; }
.pcm-none-option input { accent-color: var(--pcm-purple); margin: 0; }
.pcm-none-option.selected { background: var(--pcm-purple-soft); border-color: #b9a1c8; }

.pcm-revision { background: var(--pcm-purple-dark); color: #fff; display: grid; gap: 16px; margin: 32px 0; padding: clamp(24px,4vw,42px); }
.pcm-revision .pcm-eyebrow { color: var(--pcm-lime); }
.pcm-revision h2 { color: #fff; font-size: 25px; line-height: 1.3; margin: 0 0 8px; }
.pcm-revision .pcm-field > span { color: #eee4f2; }
.pcm-submit-note { border-left: 4px solid var(--pcm-lime); margin: 24px 0; padding: 3px 0 3px 16px; }
.pcm-submit-note p { color: var(--pcm-muted); font-size: 12px; line-height: 1.55; margin: 6px 0 0; }
.pcm-error { background: #fff0f3; border: 1px solid #e7b9c4; color: #742039; font-size: 13px; line-height: 1.55; margin: 24px 0; padding: 16px 19px; }
.pcm-error ul { margin: 7px 0 0; padding-left: 18px; }
.pcm-actions { align-items: center; border-top: 1px solid var(--pcm-line); display: flex; justify-content: space-between; margin-top: 40px; padding-top: 24px; }
.pcm-button { align-items: center; border: 1px solid transparent; border-radius: 0; cursor: pointer; display: inline-flex; font-size: 13px; font-weight: 800; justify-content: center; min-height: 46px; padding: 12px 18px; text-decoration: none; }
.pcm-button:disabled { cursor: not-allowed; opacity: .45; }
.pcm-primary { background: var(--pcm-purple); color: #fff; }
.pcm-secondary { background: #fff; border-color: #c6b8cc; color: var(--pcm-purple-dark); }
.pcm-ghost { background: transparent; border-color: var(--pcm-line); color: var(--pcm-muted); }

.pcm-status { align-items: center; display: flex; justify-content: center; min-height: 70vh; padding: 32px; }
.pcm-status > div { background: #fff; border: 1px solid var(--pcm-line); box-shadow: 0 18px 50px rgba(53,20,79,.08); max-width: 540px; padding: clamp(32px,6vw,64px); width: 100%; }
.pcm-status h1 { color: var(--pcm-purple-dark); font-size: clamp(32px,5vw,52px); letter-spacing: -.045em; line-height: 1; margin: 13px 0 19px; }
.pcm-status p { color: var(--pcm-muted); line-height: 1.65; }

.pcm-report-page { margin: 0 auto; max-width: 1120px; padding: 64px 32px 112px; }
.pcm-report-hero { background: var(--pcm-purple-dark); color: #fff; margin-bottom: 32px; padding: clamp(32px,6vw,80px); }
.pcm-report-hero .pcm-eyebrow { color: var(--pcm-lime); }
.pcm-report-hero h1 { color: #fff; font-size: clamp(40px,6vw,80px); letter-spacing: -.06em; line-height: .96; margin: 13px 0 22px; max-width: 800px; }
.pcm-report-hero > p { color: #dcd0e2; line-height: 1.7; max-width: 720px; }
.pcm-report-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }
.pcm-deadline { border-top: 1px solid #6e4b80; color: #e8ddeb; font-size: 12px; margin-top: 24px; padding-top: 16px; }
.pcm-review-link { background: rgba(255,255,255,.08); color: #e7ddea; font-family: monospace; font-size: 11px; margin-top: 13px; overflow-wrap: anywhere; padding: 11px; }
.pcm-print-report { background: #fff; border: 1px solid var(--pcm-line); padding: clamp(32px,6vw,80px); }
.pcm-print-title { border-bottom: 3px solid var(--pcm-purple); margin-bottom: 32px; padding-bottom: 24px; }
.pcm-print-title > span { color: var(--pcm-purple); font-size: 11px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.pcm-print-title h1 { color: var(--pcm-purple-dark); font-size: clamp(32px,5vw,60px); letter-spacing: -.045em; margin: 10px 0; }
.pcm-print-title p { color: var(--pcm-muted); margin: 0; }
.pcm-report-grid { display: grid; gap: 1px; grid-template-columns: repeat(2,1fr); }
.pcm-report-grid > div { background: #f4f0f5; display: grid; gap: 5px; padding: 16px; }
.pcm-report-grid span { color: var(--pcm-muted); font-size: 10px; text-transform: uppercase; }
.pcm-print-report > h2 { border-bottom: 1px solid var(--pcm-line); color: var(--pcm-purple-dark); font-size: 24px; margin: 48px 0 19px; padding-bottom: 11px; }
.pcm-report-answer { margin-bottom: 19px; }
.pcm-report-answer h3,
.pcm-report-list h3 { font-size: 13px; margin: 0 0 6px; }
.pcm-report-answer p,
.pcm-report-list li { color: #4f4754; font-size: 13px; line-height: 1.6; margin: 4px 0; }
.pcm-report-table { border-top: 1px solid var(--pcm-line); }
.pcm-report-row { border-bottom: 1px solid var(--pcm-line); display: grid; gap: 16px; grid-template-columns: 48px 1fr; padding: 13px 0; }
.pcm-report-row > span { color: var(--pcm-muted); font-size: 11px; font-weight: 800; }
.pcm-report-row strong { display: block; font-size: 13px; }
.pcm-report-row small { color: var(--pcm-purple); display: block; font-size: 11px; line-height: 1.45; margin-top: 4px; }
.pcm-report-columns { display: grid; gap: 16px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.pcm-report-list { background: #f6f3f7; padding: 16px; }
.pcm-report-list ol { margin: 0; padding-left: 19px; }
.pcm-report-followup { background: var(--pcm-purple-soft); border-left: 4px solid var(--pcm-purple); margin-top: 48px; padding: 8px 22px 18px; }
.pcm-report-followup h2 { border-bottom: 1px solid #cdbed5; color: var(--pcm-purple-dark); font-size: 22px; margin: 18px 0 12px; padding-bottom: 9px; }
.pcm-report-followup p { color: #4f4754; font-size: 13px; line-height: 1.6; }
.pcm-report-followup a { color: var(--pcm-purple); overflow-wrap: anywhere; }

@media (max-width: 980px) {
  .pcm-layout { display: block; }
  .pcm-progress { background: var(--pcm-paper); border-bottom: 1px solid var(--pcm-line); border-right: 0; min-height: 0; padding: 16px 24px; position: sticky; top: 74px; z-index: 20; }
  .pcm-progress-number,
  .pcm-progress ol,
  .pcm-progress > p { display: none; }
  .pcm-progress-line { margin: 0; }
  .pcm-content { padding-top: 48px; }
}

@media (max-width: 680px) {
  .pcm-topbar { min-height: 66px; padding: 0 16px; }
  .pcm-topbar-copy span,
  .pcm-admin-link { display: none; }
  .pcm-progress { top: 66px; }
  .pcm-content { padding: 40px 16px 96px; }
  .pcm-intro h1 { font-size: 41px; }
  .pcm-identity,
  .pcm-two-fields,
  .pcm-report-grid,
  .pcm-report-columns { grid-template-columns: 1fr; }
  .pcm-open-card,
  .pcm-class-card { grid-template-columns: 1fr; }
  .pcm-class-options { display: grid; }
  .pcm-chip { min-height: 44px; }
  .pcm-actions { gap: 11px; }
  .pcm-actions .pcm-button { flex: 1; }
  .pcm-report-page { padding: 16px; }
  .pcm-print-report { padding: 21px; }
}

@media print {
  @page { margin: 14mm; size: A4 portrait; }
  .purple-cmm-root { background: #fff; margin: 0; width: auto; }
  .pcm-no-print { display: none !important; }
  .pcm-report-page { margin: 0; max-width: none; padding: 0; }
  .pcm-print-report { border: 0; padding: 0; }
  .pcm-print-title h1 { font-size: 24pt; }
  .pcm-print-report > h2 { break-after: avoid; font-size: 15pt; margin-top: 18pt; }
  .pcm-report-answer,
  .pcm-report-row,
  .pcm-report-list { break-inside: avoid; }
  .pcm-report-answer p,
  .pcm-report-row strong,
  .pcm-report-row small,
  .pcm-report-list li { font-size: 8.5pt; }
}
