:root {
  color-scheme: light;
  --bg: #f8f8fd;
  --panel: #ffffff;
  --panel-2: #eeefff;
  --line: rgba(41, 45, 72, .17);
  --text: #292d48;
  --muted: #676b83;
  --teal: #5c5ec9;
  --cyan: #5c5ec9;
  --warning: #b54736;
  --danger: #b53e55;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background: radial-gradient(circle at 75% -20%, rgba(122, 150, 239, .20), transparent 40%), var(--bg); color: var(--text); }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
.app-shell { min-height: 100vh; }
.topbar { height: 76px; padding: 0 32px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); background: #ffffff; }
.brand, .top-actions, .step-meta, .button-row { display: flex; align-items: center; gap: 12px; }button.brand { padding: 0; border: 0; background: none; color: inherit; text-align: left; }
.brand-mark { display: block; width: 40px; height: 40px; border-radius: 12px; }
.brand strong { display: block; font-size: 16px; letter-spacing: .04em; }
.brand small { display: block; color: var(--muted); font-size: 11px; margin-top: 3px; }
.status-pill, .tag { border: 1px solid var(--line); padding: 6px 10px; border-radius: 999px; color: var(--muted); font-size: 12px; }
.status-pill.ready { color: var(--teal); border-color: rgba(122, 150, 239, .4); }
.ghost-button, .primary-button, .secondary-button { border: 1px solid var(--line); border-radius: 8px; padding: 10px 14px; background: transparent; color: var(--text); }
.primary-button { background: var(--teal); color: #ffffff; border-color: var(--teal); font-weight: 700; }
.secondary-button { background: rgba(92, 94, 201, .08); color: var(--cyan); }
.ghost-button:hover, .secondary-button:hover { border-color: var(--teal); }
.primary-button:disabled { opacity: .5; cursor: wait; }
.workspace { display: grid; grid-template-columns: 260px minmax(0, 1fr) 340px; max-width: 1560px; margin: 0 auto; min-height: calc(100vh - 76px); }
.sidebar, .evidence-panel { padding: 28px 20px; border-right: 1px solid var(--line); }
.evidence-panel { border-right: 0; border-left: 1px solid var(--line); position: sticky; top: 76px; align-self: start; height: calc(100vh - 76px); overflow: hidden; display: flex; flex-direction: column; }
.eyebrow { text-transform: uppercase; letter-spacing: .16em; font-size: 10px; color: var(--teal); }
.sidebar h1 { margin: 7px 0 20px; font-size: 24px; line-height: 1.15; }
.topic-switcher { margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.evidence-panel .topic-switcher { flex: 0 0 auto; min-height: 280px; margin: 0 0 24px; padding: 20px 16px 22px; border: 1px solid rgba(92, 94, 201, .32); border-radius: 14px; background: #e6e9ff; }
.topic-switcher-head { display: flex; align-items: center; justify-content: space-between; color: #4a4cb8; font-size: 13px; font-weight: 700; margin-bottom: 14px; }
.topic-add { border: 1px solid rgba(92, 94, 201, .28); border-radius: 8px; background: #ffffff; color: var(--teal); width: 34px; height: 34px; font-size: 20px; line-height: 1; }
.topic-add:hover { border-color: var(--teal); background: rgba(92, 94, 201, .06); }
.topic-list { display: grid; gap: 10px; min-height: 200px; max-height: none; overflow: auto; }
.topic-tab { min-height: 76px; display: flex; align-items: stretch; border: 1px solid rgba(41, 45, 72, .14); border-radius: 10px; background: rgba(255, 255, 255, .64); color: #4b4f70; text-align: left; overflow: hidden; }
.topic-tab-main { flex: 1; min-width: 0; padding: 13px 12px; border: 0; background: transparent; color: inherit; text-align: left; }
.topic-tab strong, .topic-tab small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topic-tab strong { font-size: 13px; }
.topic-tab small { margin-top: 5px; font-size: 10px; color: inherit; opacity: .7; }
.topic-tab-meta { display: flex; align-items: center; gap: 14px; margin-top: 7px; color: inherit; font-size: 10px; opacity: .82; white-space: nowrap; }
.topic-tab-meta time { color: inherit; }
.topic-delete { flex: 0 0 32px; align-self: center; width: 26px; height: 26px; margin: 0 8px 0 0; padding: 0; border: 1px solid transparent; border-radius: 7px; background: transparent; color: var(--danger); font-size: 18px; line-height: 1; opacity: .68; }
.topic-delete:hover { border-color: rgba(181, 62, 85, .3); background: rgba(181, 62, 85, .08); opacity: 1; }
.topic-delete:disabled { cursor: wait; opacity: .35; }
.topic-tab:hover { border-color: rgba(92, 94, 201, .42); background: rgba(255, 255, 255, .88); }
.topic-tab-main:focus-visible, .topic-delete:focus-visible { outline: 2px solid var(--teal); outline-offset: -2px; }
.topic-tab.active { border-color: var(--teal); background: #ffffff; color: var(--text); box-shadow: 0 0 0 2px rgba(92, 94, 201, .1); }
.phase { color: var(--muted); font-size: 11px; margin: 22px 0 8px; }
.step-item { width: 100%; padding: 12px 10px; display: flex; align-items: center; gap: 10px; border: 1px solid transparent; border-radius: 10px; background: transparent; color: var(--muted); text-align: left; }
.step-item:hover { background: rgba(122, 150, 239, .06); }
.step-item.active { border-color: rgba(122, 150, 239, .34); background: rgba(122, 150, 239, .09); color: var(--text); }
.step-item:disabled { cursor: not-allowed; opacity: .45; }
.step-number { color: var(--teal); font-size: 11px; width: 24px; }
.step-item small { display: block; margin-top: 4px; color: inherit; opacity: .68; }
.main-content { padding: 38px clamp(20px, 4vw, 58px); min-width: 0; }
.hero { display: flex; justify-content: space-between; gap: 20px; align-items: flex-end; margin-bottom: 26px; }
.hero h2 { margin: 8px 0 0; font-size: clamp(27px, 4vw, 43px); letter-spacing: -.045em; }
.hero p { color: var(--muted); max-width: 650px; line-height: 1.7; }
.card { background: rgba(255, 255, 255, .88); border: 1px solid var(--line); border-radius: 14px; padding: 22px; box-shadow: 0 14px 38px rgba(41, 45, 72, .08); }
.card + .card { margin-top: 16px; }
.card h3, .card h4 { margin: 0 0 10px; }
.card p, .card li { color: #4b4f70; line-height: 1.75; }
.grid-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.intake-card { padding: 0; overflow: hidden; }
.intake-intro { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 24px 26px; border-bottom: 1px solid var(--line); background: linear-gradient(120deg, rgba(238, 239, 255, .76), rgba(255, 255, 255, .8)); }
.intake-intro h3 { margin: 6px 0 7px; font-size: 23px; letter-spacing: -.03em; }
.intake-intro p { margin: 0; color: var(--muted); line-height: 1.65; }
.intake-step-mark { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid rgba(92, 94, 201, .25); border-radius: 12px; background: #ffffff; color: var(--teal); font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.intake-section { padding: 24px 26px; border-bottom: 1px solid var(--line); }
.intake-section-title { display: flex; gap: 13px; align-items: flex-start; margin-bottom: 18px; }
.intake-section-title > span { display: grid; place-items: center; flex: 0 0 auto; width: 27px; height: 27px; border-radius: 8px; background: rgba(92, 94, 201, .1); color: var(--teal); font-size: 11px; font-weight: 800; }
.intake-section-title h4 { margin: 2px 0 4px; font-size: 15px; }
.intake-section-title p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.intake-section-title em { margin-left: 7px; color: var(--muted); font-size: 10px; font-style: normal; font-weight: 500; }
.intake-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.intake-fields .field.full { grid-column: 1 / -1; }
.intake-material-section { background: rgba(248, 248, 253, .62); }
.source-input { overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: #ffffff; }
.source-mode-tabs { display: flex; gap: 5px; padding: 8px; border-bottom: 1px solid var(--line); background: rgba(238, 239, 255, .6); }
.source-mode-tab { flex: 1; min-height: 38px; padding: 8px 12px; border: 1px solid transparent; border-radius: 7px; background: transparent; color: var(--muted); font-size: 12px; font-weight: 650; }
.source-mode-tab:hover { color: var(--teal); background: rgba(255, 255, 255, .7); }
.source-mode-tab.active { border-color: rgba(92, 94, 201, .25); background: #ffffff; color: var(--teal); box-shadow: 0 2px 8px rgba(41, 45, 72, .07); }
.source-panel { padding: 18px; }
.source-panel > label { display: block; margin-bottom: 8px; color: var(--text); font-size: 13px; font-weight: 700; }
.source-panel textarea { width: 100%; min-height: 150px; resize: vertical; color: var(--text); background: #fcfcff; border: 1px solid var(--line); border-radius: 8px; padding: 12px; outline: none; }
.source-panel textarea:focus, .source-panel input:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(122, 150, 239, .08); }
.source-panel input[type="file"] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.source-file-label { display: block; margin-bottom: 10px; color: var(--text); font-size: 13px; font-weight: 700; }
.source-file-picker { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 86px; padding: 16px; border: 1px dashed rgba(92, 94, 201, .35); border-radius: 10px; background: linear-gradient(135deg, rgba(238, 239, 255, .72), rgba(248, 248, 253, .9)); color: var(--text); cursor: pointer; transition: border-color .16s ease, background .16s ease, transform .16s ease; }
.source-panel > label.source-file-picker { display: grid; margin-bottom: 0; }
.source-file-picker:hover { border-color: var(--teal); background: rgba(238, 239, 255, .95); transform: translateY(-1px); }
.source-file-picker:focus-within { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(122, 150, 239, .12); }
.source-file-picker:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }
.source-file-icon { display: grid; place-items: center; flex: 0 0 auto; width: 38px; height: 38px; border: 1px solid rgba(92, 94, 201, .25); border-radius: 9px; background: #ffffff; color: var(--teal); font-size: 21px; font-weight: 500; line-height: 1; }
.source-file-picker > span:nth-child(2) { display: grid; gap: 4px; min-width: 0; }
.source-file-picker strong { font-size: 13px; }
.source-file-picker small { color: var(--muted); font-size: 11px; }
.source-file-action { padding: 8px 11px; border: 1px solid rgba(92, 94, 201, .24); border-radius: 7px; background: #ffffff; color: var(--teal); font-size: 12px; font-weight: 700; white-space: nowrap; }
.source-panel input[type="url"] { min-width: 0; flex: 1; color: var(--text); background: #fcfcff; border: 1px solid var(--line); border-radius: 8px; padding: 12px; outline: none; }
.source-link-row { display: flex; align-items: center; gap: 9px; }
.source-link-row .secondary-button { flex: 0 0 auto; min-height: 43px; }
.source-panel-hint { margin: 9px 0 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.source-file-list { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 13px; }
.source-file-list span { padding: 6px 8px; border-radius: 6px; background: rgba(92, 94, 201, .08); color: var(--text); font-size: 11px; }
.source-input-feedback { margin: 10px 0 0; color: var(--teal); font-size: 12px; }
.intake-notice { margin: 20px 26px 24px; }
.field { display: grid; gap: 7px; }
.field.full { grid-column: 1 / -1; }
.field label { color: var(--muted); font-size: 12px; }
.field input, .field textarea, .field select { width: 100%; color: var(--text); background: #fcfcff; border: 1px solid var(--line); border-radius: 8px; padding: 12px; outline: none; }
.required, .optional { margin-left: 8px; font-size: 10px; font-weight: 500; color: var(--teal); }
.optional { color: var(--muted); }
.field-hint { color: var(--muted); font-size: 11px; line-height: 1.5; }
.field textarea { min-height: 110px; resize: vertical; }
.field input:focus, .field textarea:focus, .field select:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(122, 150, 239, .08); }
.step-header { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.step-header h2 { margin: 6px 0; font-size: clamp(22px, 3vw, 32px); }
.step-header p { margin: 0; color: var(--muted); }
.step-output { white-space: pre-wrap; color: #3c4066; line-height: 1.8; max-height: 520px; overflow: auto; }
.notice { padding: 12px 14px; border-left: 3px solid var(--warning); background: rgba(240, 190, 178, .12); color: #8a3a2c; border-radius: 6px; line-height: 1.6; }
.error { border-left-color: var(--danger); background: rgba(242, 140, 155, .12); color: #8c2941; }
.auto-status { display: grid; gap: 4px; margin-top: 18px; padding: 14px 16px; border: 1px solid rgba(92, 94, 201, .24); border-radius: 10px; background: rgba(92, 94, 201, .055); color: var(--text); }.generation-controls { display: flex; align-items: center; gap: 12px; margin-top: 14px; }.generation-controls p { margin: 0; flex: 1; color: var(--muted); font-size: 13px; line-height: 1.6; }.generation-error { margin: 0 0 8px; color: var(--warning, #b54736); font-size: 13px; line-height: 1.6; }.intake-actions { display: flex; align-items: center; gap: 14px; }.intake-actions .field-hint { margin: 0; }.source-issues-card { margin-top: 14px; border-color: rgba(181, 71, 54, .3); background: rgba(181, 71, 54, .05); }.source-issues-card h4 { margin: 0 0 10px; }.source-issues-card p { margin: 10px 0 14px; color: var(--muted); font-size: 13px; line-height: 1.6; }.generation-controls.paused { padding: 12px 14px; border: 1px solid rgba(92, 94, 201, .2); border-radius: 10px; background: rgba(92, 94, 201, .04); }
.auto-status span { color: var(--muted); font-size: 13px; line-height: 1.6; }
.auto-status.complete { border-color: rgba(92, 94, 201, .22); background: rgba(92, 94, 201, .055); }
.reading-output { padding: 0; overflow: hidden; }
.reading-output-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 20px 22px; border-bottom: 1px solid var(--line); background: rgba(238, 239, 255, .48); }
.reading-output-head h3 { margin: 5px 0 0; }
.reading-output-head > span { color: var(--muted); font-size: 12px; }
.reading-output > :not(.reading-output-head) { margin-left: 22px; margin-right: 22px; }
.reading-output > :last-child { margin-bottom: 22px; }
.perspective { padding: 22px 0; border-bottom: 1px solid var(--line); }
.perspective:last-child { border-bottom: 0; }
.perspective-tabs { display: flex; align-items: center; gap: 8px; margin: 0 -22px; padding: 14px 22px; border-bottom: 1px solid var(--line); background: rgba(238, 239, 255, .38); overflow-x: auto; }
.perspective-tabs-label { flex: 0 0 auto; color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .06em; }
.perspective-tab { flex: 0 0 auto; padding: 8px 11px; border: 1px solid rgba(41, 45, 72, .16); border-radius: 999px; background: #ffffff; color: var(--muted); font-size: 12px; white-space: nowrap; }
.perspective-tab:hover { border-color: rgba(92, 94, 201, .48); color: var(--teal); }
.perspective-tab.active { border-color: var(--teal); background: var(--teal); color: #ffffff; box-shadow: 0 3px 10px rgba(92, 94, 201, .18); }
.perspective-panel { min-height: 340px; }
.perspective-head { display: grid; gap: 8px; }
.perspective-head > span, .conflict > span, .resource-grid > article > span, .ladder > article > span, .lesson-list > article > span { color: var(--teal); font-size: 11px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.perspective p { margin: 0; color: var(--text); font-size: 16px; line-height: 1.8; }
.perspective section { margin-top: 18px; }
.perspective h4, .reading-section h4, .callout h4, .lesson-list h4, .ladder h4 { margin: 0 0 8px; color: var(--text); font-size: 13px; }
.evidence-list { display: grid; gap: 10px; }
.evidence-list article { padding: 12px 14px; border-left: 2px solid rgba(92, 94, 201, .42); background: rgba(92, 94, 201, .045); }
.evidence-list strong, .evidence-list span { display: block; }
.evidence-list strong { font-size: 13px; color: var(--text); }
.evidence-list span { margin-top: 4px; color: var(--muted); font-size: 12px; }
.evidence-list p { margin: 8px 0 0; font-size: 13px; }
.reading-section { margin-top: 22px; }
.reading-section h3, .callout h3 { margin: 0 0 10px; font-size: 18px; }
.reading-list, .numbered-reading-list { margin: 0; padding-left: 20px; color: #4b4f70; }
.reading-list li, .numbered-reading-list li { padding: 5px 0; line-height: 1.75; }
.numbered-reading-list { counter-reset: finding; list-style: none; padding-left: 0; }
.numbered-reading-list li { counter-increment: finding; display: grid; grid-template-columns: 28px 1fr; gap: 10px; }
.numbered-reading-list li::before { content: counter(finding, decimal-leading-zero); color: var(--teal); font-size: 12px; font-weight: 750; padding-top: 4px; }
.reading-empty { color: var(--muted); font-size: 13px; }
.two-column-reading { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.two-column-reading > .reading-section, .two-column-reading > section { min-width: 0; }
.conflict { padding: 16px 0; border-bottom: 1px solid var(--line); }
.conflict h4 { margin: 6px 0 0; font-size: 16px; }
.contradiction-workbench { display: grid; gap: 14px; margin-top: 22px; }
.contradiction-map, .conflict-detail, .evidence-ranking, .conflict-insights { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: rgba(255, 255, 255, .76); }
.contradiction-map { padding: 22px; background: linear-gradient(135deg, rgba(238, 239, 255, .82), rgba(248, 248, 253, .92)); }
.contradiction-map-head, .evidence-ranking > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.contradiction-map-head h3, .evidence-ranking h3 { margin: 5px 0 0; font-size: 19px; }
.contradiction-map-head p { max-width: 330px; margin: 1px 0 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.conflict-nodes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.conflict-node { display: inline-flex; align-items: center; gap: 8px; padding: 8px 11px 8px 8px; border: 1px solid rgba(92, 94, 201, .22); border-radius: 999px; background: #ffffff; color: var(--text); font-size: 12px; font-weight: 650; }
.conflict-node i { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: rgba(92, 94, 201, .1); color: var(--teal); font-size: 9px; font-style: normal; }
.conflict-edges { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; margin-top: 16px; }
.conflict-edge { display: grid; grid-template-columns: 54px minmax(0, 1fr); align-items: center; gap: 10px; min-height: 76px; padding: 11px 12px; border: 1px solid rgba(41, 45, 72, .16); border-radius: 10px; background: rgba(255, 255, 255, .75); color: var(--text); text-align: left; }
.conflict-edge:hover { border-color: rgba(92, 94, 201, .45); background: #ffffff; }
.conflict-edge.active { border-color: var(--teal); background: #ffffff; box-shadow: 0 4px 14px rgba(41, 45, 72, .09); }
.conflict-edge strong, .conflict-edge small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.conflict-edge strong { font-size: 12px; }
.conflict-edge small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.conflict-edge-line { display: flex; align-items: center; gap: 3px; color: var(--cyan); }
.conflict-edge-line i { flex: 1; height: 1px; background: currentColor; }
.conflict-edge-line b { display: grid; place-items: center; width: 23px; height: 23px; border: 1px solid currentColor; border-radius: 50%; font-size: 14px; font-weight: 500; }
.conflict-empty { margin-top: 18px; padding: 18px; border: 1px dashed rgba(41, 45, 72, .2); border-radius: 8px; color: var(--muted); font-size: 13px; }
.conflict-detail { padding: 22px; }
.conflict-detail > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.conflict-detail > header > div > span { color: var(--teal); font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.conflict-detail h3 { margin: 6px 0 0; font-size: 21px; }
.conflict-detail > header > strong { padding: 7px 9px; border-radius: 999px; background: rgba(92, 94, 201, .08); color: var(--cyan); font-size: 11px; white-space: nowrap; }
.conflict-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.conflict-detail-grid section { min-width: 0; padding: 16px; border: 1px solid rgba(41, 45, 72, .13); border-radius: 9px; background: rgba(248, 248, 253, .75); }
.conflict-detail-label { margin-bottom: 8px; color: var(--teal); font-size: 11px; font-weight: 800; letter-spacing: .06em; }
.conflict-detail-grid .reading-list { margin: 0; }
.evidence-ranking { padding: 22px; }
.evidence-ranking > header > span { color: var(--muted); font-size: 11px; }
.evidence-ranking-list { display: grid; gap: 8px; margin-top: 16px; }
.evidence-ranking-list article { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; padding: 11px 12px; border-left: 3px solid rgba(92, 94, 201, .42); background: rgba(92, 94, 201, .045); }
.evidence-ranking-list article > span { color: var(--cyan); font-size: 11px; font-weight: 800; }
.evidence-ranking-list p { margin: 0; color: var(--text); font-size: 13px; line-height: 1.65; }
.conflict-insight-tabs { display: flex; gap: 6px; padding: 9px; border-bottom: 1px solid var(--line); background: rgba(238, 239, 255, .6); overflow-x: auto; }
.conflict-insight-tab { flex: 0 0 auto; min-height: 35px; padding: 8px 11px; border: 1px solid transparent; border-radius: 7px; background: transparent; color: var(--muted); font-size: 12px; font-weight: 650; }
.conflict-insight-tab:hover { color: var(--teal); background: rgba(255, 255, 255, .76); }
.conflict-insight-tab.active { border-color: rgba(92, 94, 201, .24); background: #ffffff; color: var(--teal); }
.conflict-insights article { padding: 20px 22px; }
.conflict-insight-focus, .conflict-insight-list { display: grid; gap: 8px; }
.conflict-insight-focus > span, .conflict-insight-list > span { color: var(--teal); font-size: 11px; font-weight: 800; }
.conflict-insight-focus p { margin: 0; color: var(--text); font-size: 16px; line-height: 1.75; }
.conflict-insight-list .reading-list { margin: 0; }
.callout, .executive-summary { margin-top: 22px; padding: 18px; border-left: 3px solid var(--teal); background: rgba(92, 94, 201, .055); }
.callout p, .executive-summary p { margin: 0; color: var(--text); line-height: 1.8; }
.source-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.source-links a, .resource-grid a { color: var(--cyan); font-size: 12px; text-decoration: none; border-bottom: 1px solid currentColor; }
.brief-workbench, .review-workbench { display: grid; gap: 14px; margin-top: 22px; }
.brief-summary, .brief-core-concept, .brief-findings, .brief-bridge article, .brief-frontier, .review-score-hero, .review-findings, .review-insight-card, .revision-board { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: rgba(255, 255, 255, .76); }
.brief-summary { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 16px; padding: 22px; background: linear-gradient(135deg, rgba(238, 239, 255, .9), rgba(248, 248, 253, .92)); }
.brief-core-concept { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(220px, .65fr); gap: 18px; padding: 20px 22px; border-color: rgba(92, 94, 201, .32); background: linear-gradient(135deg, rgba(223, 236, 255, .92), rgba(255, 255, 255, .96)); }
.brief-core-concept h3 { margin: 5px 0 7px; color: var(--text); font-size: 20px; }
.brief-core-concept p { margin: 0; color: var(--text); line-height: 1.75; }
.brief-core-concept-why { padding-left: 18px; border-left: 1px solid rgba(92, 94, 201, .2); }
.brief-core-concept-why > span { color: var(--teal); font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.brief-core-concept-why p { margin-top: 7px; font-size: 13px; }
.brief-summary-mark { display: grid; place-items: center; align-self: start; width: 58px; height: 58px; border: 1px solid rgba(92, 94, 201, .28); border-radius: 15px; background: #ffffff; color: var(--teal); font-size: 15px; font-weight: 850; letter-spacing: -.04em; }
.brief-summary h3, .brief-findings h3, .brief-bridge h3, .brief-frontier h3, .review-score-hero h3, .review-findings h3, .review-insight-card h3, .revision-board h3 { margin: 5px 0 8px; font-size: 19px; }
.brief-summary p, .brief-finding-panel p, .brief-bridge p, .brief-frontier p, .review-score-hero p, .review-finding-panel p, .review-insight-card p, .revision-card p { margin: 0; color: var(--text); line-height: 1.8; }
.brief-findings > header, .revision-board > header, .review-findings > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 20px 22px 16px; }
.brief-findings > header > span, .revision-board > header > span, .review-findings > header > span { color: var(--muted); font-size: 11px; }
.brief-findings-layout, .review-findings-layout { display: grid; grid-template-columns: minmax(190px, .38fr) minmax(0, .62fr); border-top: 1px solid var(--line); }
.brief-finding-tabs, .review-finding-tabs { display: grid; align-content: start; gap: 7px; padding: 14px; border-right: 1px solid var(--line); background: rgba(238, 239, 255, .42); }
.brief-finding-tab, .review-finding-tab { display: grid; grid-template-columns: 27px minmax(0, 1fr); gap: 9px; align-items: start; width: 100%; padding: 11px 10px; border: 1px solid transparent; border-radius: 9px; background: transparent; color: var(--muted); text-align: left; }
.brief-finding-tab:hover, .review-finding-tab:hover { border-color: rgba(92, 94, 201, .25); background: rgba(255, 255, 255, .76); }
.brief-finding-tab.active, .review-finding-tab.active { border-color: rgba(92, 94, 201, .32); background: #ffffff; color: var(--text); box-shadow: 0 3px 10px rgba(41, 45, 72, .06); }
.brief-finding-tab > span, .review-finding-tab > span { color: var(--teal); font-size: 11px; font-weight: 800; }
.brief-finding-tab strong, .review-finding-tab strong, .review-finding-tab small { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.brief-finding-tab strong { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; font-size: 12px; line-height: 1.55; }
.brief-finding-panel, .review-finding-panel { min-width: 0; padding: 22px; }
.brief-finding-panel-head, .review-finding-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.brief-finding-panel-head span, .review-finding-panel-head span { color: var(--teal); font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.brief-finding-panel-head strong, .review-finding-panel-head strong { padding: 7px 9px; border-radius: 999px; background: rgba(92, 94, 201, .08); color: var(--cyan); font-size: 11px; white-space: nowrap; }
.brief-finding-panel h4, .review-finding-panel h4 { margin: 0 0 12px; color: var(--text); font-size: 17px; line-height: 1.55; }
.brief-perspective-tags { display: grid; gap: 11px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); }
.brief-perspective-tags > div { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.brief-perspective-tags span { flex: 0 0 68px; color: var(--muted); font-size: 11px; }
.brief-perspective-tags em { padding: 5px 8px; border: 1px solid rgba(92, 94, 201, .2); border-radius: 999px; background: rgba(92, 94, 201, .05); color: var(--teal); font-size: 11px; font-style: normal; }
.brief-bridge { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.brief-bridge article { padding: 20px; }
.brief-bridge article:first-child { border-top: 3px solid var(--cyan); }
.brief-bridge article:last-child { border-top: 3px solid var(--teal); }
.brief-bridge article > span, .brief-frontier > div > span, .review-insight-card > span { color: var(--teal); font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.brief-frontier { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 14px; padding: 20px; background: rgba(92, 94, 201, .045); }
.brief-frontier-mark { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid rgba(92, 94, 201, .3); border-radius: 50%; background: #ffffff; color: var(--cyan); font-size: 19px; font-weight: 700; }
.brief-frontier h3 { margin-top: 5px; }
.review-score-hero { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 22px; background: linear-gradient(135deg, rgba(92, 94, 201, .08), rgba(248, 248, 253, .9)); }
.review-score-value { display: flex; align-items: baseline; gap: 7px; flex: 0 0 auto; padding: 10px 0 10px 22px; border-left: 1px solid var(--line); }
.review-score-value strong { color: var(--cyan); font-size: 42px; line-height: 1; letter-spacing: -.06em; }
.review-score-value span { color: var(--muted); font-size: 11px; line-height: 1.35; }
.review-finding-tab { grid-template-columns: 27px minmax(0, 1fr); }
.review-finding-tab strong { color: var(--cyan); font-size: 12px; }
.review-finding-tab small { grid-column: 2; margin-top: 4px; color: inherit; font-size: 11px; line-height: 1.45; white-space: nowrap; }
.review-finding-panel > p { font-size: 15px; }
.review-insight-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.review-insight-card { padding: 20px; }
.review-insight-card h4 { margin: 18px 0 8px; color: var(--text); font-size: 12px; }
.review-insight-risk { border-top: 3px solid var(--warning); }
.review-insight-risk > span { color: var(--warning); }
.review-insight-card .reading-list { margin: 0; }
.revision-board { padding-bottom: 20px; }
.revision-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 0 20px; }
.revision-card { display: grid; align-content: start; gap: 14px; padding: 16px; border: 1px solid rgba(41, 45, 72, .14); border-radius: 9px; background: rgba(248, 248, 253, .82); }
.revision-card-head { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 9px; align-items: start; }
.revision-card-head > span { color: var(--teal); font-size: 11px; font-weight: 800; }
.revision-card-head strong { color: var(--text); font-size: 13px; line-height: 1.55; }
.revision-card small { color: var(--teal); font-size: 10px; font-weight: 800; letter-spacing: .06em; }
.revision-card p { margin-top: 5px; font-size: 13px; }
.review-score { display: flex; align-items: baseline; justify-content: space-between; margin-top: 22px; padding: 18px; background: rgba(92, 94, 201, .06); }
.review-score span { color: var(--muted); font-size: 13px; }
.review-score strong { color: var(--cyan); font-size: 32px; letter-spacing: -.05em; }
.review-score small { font-size: 13px; letter-spacing: 0; }
.exam-current-output { margin-top: 22px; padding: 18px; border: 1px solid rgba(92, 94, 201, .2); border-radius: 10px; background: rgba(92, 94, 201, .045); }
.exam-question-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--muted); font-size: 12px; }
.exam-question-meta strong { color: var(--teal); }
.exam-question h3 { margin: 18px 0 8px; font-size: clamp(20px, 2.6vw, 28px); line-height: 1.45; }
.exam-question p { margin-bottom: 0; }
.exam-hint { width: fit-content; margin: 12px 0 14px; }
.exam-hint summary { min-height: 40px; display: inline-flex; align-items: center; color: var(--cyan); cursor: pointer; font-size: 13px; font-weight: 700; }
.exam-hint summary:hover { color: var(--teal); }
.exam-hint p { margin: 2px 0 0; padding: 10px 12px; border-radius: 8px; background: rgba(92, 94, 201, .07); color: var(--text); font-size: 13px; line-height: 1.65; }
.exam-generating { display: flex; align-items: center; gap: 14px; margin-top: 18px; padding: 15px 16px; border: 1px solid rgba(92, 94, 201, .2); border-radius: 10px; background: rgba(92, 94, 201, .055); }
.exam-generating strong { display: block; color: var(--text); font-size: 14px; }
.exam-generating p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.exam-generating-mark { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 4px; width: 32px; height: 32px; padding: 0 6px; border-radius: 9px; background: rgba(92, 94, 201, .12); }
.exam-generating-mark i { width: 5px; height: 5px; border-radius: 999px; background: var(--teal); animation: exam-pulse 1.05s ease-in-out infinite; }
.exam-generating-mark i:nth-child(2) { animation-delay: .14s; }
.exam-generating-mark i:nth-child(3) { animation-delay: .28s; }
@keyframes exam-pulse { 0%, 100% { opacity: .32; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } }
.exam-feedback, .exam-final { display: grid; gap: 16px; }
.exam-feedback-ready { display: grid; gap: 14px; }
.exam-feedback-ready > div:first-child { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.exam-feedback-ready span { color: var(--teal); font-size: 13px; font-weight: 750; }
.exam-feedback-ready p { margin: 5px 0 0; color: var(--muted); line-height: 1.65; }
.exam-feedback-ready > .secondary-button { justify-self: start; }
.exam-feedback-section { padding-top: 14px; border-top: 1px solid var(--line); }
.exam-feedback-section h4, .exam-follow-up h4 { margin-bottom: 8px; }
.exam-feedback-section p { margin: 0; }
.exam-score { color: var(--cyan) !important; font-size: 24px; }
.exam-follow-up { padding: 14px 16px; border-left: 3px solid var(--teal); background: rgba(92, 94, 201, .06); }
.exam-follow-up p { margin: 0; color: var(--text); font-weight: 650; }
.exam-rubric { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.exam-rubric li { display: grid; gap: 3px; padding: 10px 12px; background: rgba(255, 255, 255, .68); border: 1px solid var(--line); }
.exam-rubric li strong { color: var(--text); }
.exam-rubric li span { color: var(--muted); font-size: 13px; }
.exam-answer-field { margin-top: 18px; }
.exam-controls { margin-top: 16px; }
.exam-history { margin-top: 16px; padding: 20px 22px; background: rgba(255, 255, 255, .7); border: 1px solid var(--line); border-radius: 14px; }
.exam-history-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.exam-history-head h3 { margin: 5px 0 0; font-size: 18px; }
.exam-history-head > span { color: var(--muted); font-size: 12px; }
.exam-history-tabs { display: flex; gap: 8px; margin: 18px -22px 0; padding: 12px 22px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(238, 239, 255, .5); overflow-x: auto; }
.exam-history-tab { flex: 0 0 auto; min-height: 36px; padding: 8px 12px; border: 1px solid rgba(41, 45, 72, .18); border-radius: 999px; background: #ffffff; color: var(--muted); font-size: 12px; }
.exam-history-tab.active { border-color: var(--teal); background: var(--teal); color: #ffffff; }
.exam-history-panel { display: grid; gap: 16px; padding-top: 18px; }
.exam-history-panel section { display: grid; gap: 6px; }
.exam-history-panel section > span { color: var(--teal); font-size: 11px; font-weight: 750; }
.exam-history-panel p { margin: 0; color: var(--text); font-size: 14px; line-height: 1.7; }
.exam-history-panel .exam-history-answer { padding: 10px 12px; border-left: 2px solid rgba(92, 94, 201, .42); background: rgba(92, 94, 201, .05); }
.exam-history-evaluations { display: grid; gap: 8px; }
.exam-history-evaluation { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid rgba(92, 94, 201, .22); border-radius: 8px; background: rgba(92, 94, 201, .045); color: var(--text); text-align: left; }
.exam-history-evaluation strong, .exam-history-evaluation small { display: block; }
.exam-history-evaluation small { color: var(--muted); font-size: 11px; text-align: right; }
.exam-modal-backdrop { position: fixed; z-index: 20; inset: 0; display: grid; place-items: center; padding: 24px; background: rgba(23, 25, 44, .38); }
.exam-feedback-modal { width: min(760px, 100%); max-height: min(760px, calc(100vh - 48px)); overflow-y: auto; padding: 24px; border: 1px solid rgba(92, 94, 201, .26); border-radius: 14px; background: #ffffff; box-shadow: 0 24px 64px rgba(23, 25, 44, .24); }
.exam-feedback-modal header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.exam-feedback-modal h3 { margin: 5px 0 0; font-size: 22px; }
.exam-modal-close { flex: 0 0 auto; min-height: 40px; }
.review-item, .revision { padding: 14px 0; border-bottom: 1px solid var(--line); }
.review-item > div { display: flex; justify-content: space-between; gap: 12px; color: var(--text); }
.review-item > div span { color: var(--cyan); font-size: 13px; }
.review-item p, .revision p { margin: 8px 0 0; }
.revision h4 { margin: 0; }
.resource-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 22px; }
.resource-grid > article, .ladder > article, .lesson-list > article { padding: 18px; border: 1px solid var(--line); background: rgba(255, 255, 255, .58); }
.resource-grid h3, .ladder h3, .lesson-list h3 { margin: 7px 0; font-size: 18px; }
.resource-grid p, .ladder p, .lesson-list p { margin: 8px 0; font-size: 14px; }
.resource-grid small { display: block; margin-top: 12px; color: var(--muted); font-size: 11px; }
.resource-meta { color: var(--muted); }
.ladder, .lesson-list { display: grid; gap: 14px; margin-top: 22px; }
.ladder > article { border-left: 3px solid rgba(92, 94, 201, .42); }
.lesson-list > article { border-left: 3px solid rgba(92, 94, 201, .42); }
.ladder-workbench, .microcourse-workbench { margin-top: 22px; }
.ladder-map, .core-focus-map { padding: 20px 22px; border: 1px solid var(--line); border-radius: 12px; background: linear-gradient(135deg, rgba(238, 239, 255, .84), rgba(248, 248, 253, .92)); }
.ladder-map-head, .core-focus-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.ladder-map-head h3, .core-focus-head h3 { margin: 5px 0 0; font-size: 19px; }
.ladder-map-head p { max-width: 360px; margin: 2px 0 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.ladder-route { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-top: 22px; }
.ladder-route::before { content: ''; position: absolute; z-index: 0; top: 21px; right: 9%; left: 9%; height: 1px; background: linear-gradient(90deg, rgba(92, 94, 201, .2), rgba(92, 94, 201, .45)); }
.ladder-route-stop { position: relative; z-index: 1; display: grid; justify-items: center; gap: 8px; min-width: 0; padding: 0 4px 8px; border: 0; background: transparent; color: var(--muted); text-align: center; }
.ladder-route-number { display: grid; place-items: center; width: 43px; height: 43px; border: 1px solid rgba(41, 45, 72, .23); border-radius: 50%; background: #ffffff; color: var(--cyan); font-size: 12px; font-weight: 800; box-shadow: 0 4px 12px rgba(41, 45, 72, .08); }
.ladder-route-copy { display: grid; gap: 3px; min-width: 0; }
.ladder-route-copy strong, .ladder-route-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ladder-route-copy strong { font-size: 12px; }
.ladder-route-copy small { color: var(--muted); font-size: 10px; }
.ladder-route-stop:hover .ladder-route-number { border-color: var(--teal); color: var(--teal); }
.ladder-route-stop.active { color: var(--text); }
.ladder-route-stop.active .ladder-route-number { border-color: var(--teal); background: var(--teal); color: #ffffff; box-shadow: 0 6px 18px rgba(92, 94, 201, .25); }
.ladder-level-panel { margin-top: 14px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: rgba(255, 255, 255, .68); }
.ladder-level-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; padding: 24px 24px 20px; background: linear-gradient(120deg, rgba(92, 94, 201, .11), rgba(92, 94, 201, .035)); }
.ladder-level-hero > div:first-child { max-width: 720px; }
.ladder-level-hero > div:first-child > span, .microcourse-lesson-hero > div:first-child > span { color: var(--teal); font-size: 11px; font-weight: 800; letter-spacing: .1em; }
.ladder-level-hero h3, .microcourse-lesson-hero h3 { margin: 8px 0; font-size: clamp(22px, 3vw, 30px); letter-spacing: -.035em; }
.ladder-level-hero p, .microcourse-lesson-hero p { margin: 0; color: var(--text); font-size: 16px; line-height: 1.75; }
.ladder-level-marker { position: relative; flex: 0 0 64px; display: grid; place-items: center; width: 64px; height: 64px; overflow: hidden; border-radius: 14px; background: rgba(92, 94, 201, .12); color: var(--teal); }
.ladder-level-marker i { position: absolute; width: 42px; height: 1px; background: rgba(92, 94, 201, .35); transform: rotate(-38deg); }
.ladder-level-marker i:nth-child(1) { translate: 8px 19px; }
.ladder-level-marker i:nth-child(2) { translate: 0 0; }
.ladder-level-marker i:nth-child(3) { translate: -8px -19px; }
.ladder-level-marker strong { position: relative; z-index: 1; padding: 2px 7px; background: #f0f1ff; font-size: 15px; }
.ladder-signal-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; padding: 20px 24px; }
.ladder-signal-grid section { padding: 16px; border: 1px solid rgba(41, 45, 72, .13); border-radius: 10px; background: rgba(255, 255, 255, .72); }
.content-kicker { display: block; color: var(--teal); font-size: 10px; font-weight: 800; letter-spacing: .09em; }
.ladder-signal-grid h4, .ladder-mission h4, .microcourse-learning-flow h4, .micro-resource h4, .micro-review h4, .final-project-board h4 { margin: 6px 0 7px; color: var(--text); font-size: 14px; }
.ladder-signal-grid p, .ladder-mission p, .microcourse-learning-flow p, .micro-resource p, .final-project-board p { margin: 0; color: #4b4f70; font-size: 14px; line-height: 1.7; }
.skill-chips, .concept-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.skill-chips span, .concept-grid span { padding: 7px 9px; border: 1px solid rgba(92, 94, 201, .18); border-radius: 7px; background: rgba(92, 94, 201, .055); color: var(--text); font-size: 12px; line-height: 1.45; }
.ladder-mission { display: grid; grid-template-columns: minmax(0, 1fr) 32px minmax(0, 1fr); align-items: stretch; gap: 12px; padding: 0 24px 20px; }
.ladder-mission-step { display: flex; gap: 13px; padding: 16px; border-left: 3px solid var(--teal); background: rgba(92, 94, 201, .055); }
.ladder-mission-step > span, .microcourse-learning-flow > section > span { flex: 0 0 auto; color: var(--cyan); font-size: 12px; font-weight: 800; letter-spacing: .05em; }
.ladder-mission-step small, .microcourse-learning-flow small, .micro-resource small { color: var(--muted); font-size: 11px; }
.ladder-mission-arrow { display: grid; place-items: center; color: var(--cyan); font-size: 22px; }
.ladder-checkpoint { margin: 0 24px 24px; border-top: 1px solid var(--line); }
.ladder-checkpoint summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 0; color: var(--text); cursor: pointer; list-style: none; }
.ladder-checkpoint summary::-webkit-details-marker { display: none; }
.ladder-checkpoint summary span { color: var(--teal); font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.ladder-checkpoint summary strong { font-size: 13px; }
.ladder-checkpoint > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; padding: 0 0 6px; }
.ladder-checkpoint section { min-width: 0; }
.ladder-checkpoint h4 { margin: 0 0 8px; font-size: 13px; }
.ladder-checkpoint p { margin: 0; color: #4b4f70; font-size: 14px; line-height: 1.7; }
.core-focus-head > span { flex: 0 0 auto; padding: 7px 9px; border-radius: 999px; background: rgba(92, 94, 201, .09); color: var(--teal); font-size: 11px; font-weight: 750; }
.core-focus-nodes { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-top: 18px; }
.core-focus-nodes article { min-height: 100px; padding: 13px; border: 1px solid rgba(41, 45, 72, .14); border-radius: 10px; background: rgba(255, 255, 255, .76); }
.core-focus-nodes article > span { color: var(--cyan); font-size: 11px; font-weight: 800; }
.core-focus-nodes p { margin: 9px 0 0; color: var(--text); font-size: 13px; line-height: 1.6; }
.microcourse-shell { display: grid; grid-template-columns: minmax(218px, .72fr) minmax(0, 1.8fr); gap: 14px; margin-top: 14px; }
.microcourse-outline { padding: 19px 15px 15px; border: 1px solid var(--line); border-radius: 12px; background: rgba(239, 250, 249, .68); }
.microcourse-outline h3 { margin: 5px 0; font-size: 18px; }
.microcourse-outline p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.microcourse-lesson-tabs { display: grid; gap: 5px; margin-top: 18px; }
.microcourse-lesson-tab { display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 9px; width: 100%; min-height: 42px; padding: 8px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--muted); text-align: left; }
.microcourse-lesson-tab > span { display: grid; place-items: center; width: 25px; height: 25px; border: 1px solid rgba(41, 45, 72, .17); border-radius: 50%; background: #ffffff; color: var(--cyan); font-size: 10px; font-weight: 800; }
.microcourse-lesson-tab strong { overflow: hidden; font-size: 12px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.microcourse-lesson-tab:hover { background: rgba(92, 94, 201, .055); color: var(--text); }
.microcourse-lesson-tab.active { border-color: rgba(92, 94, 201, .26); background: #ffffff; color: var(--text); box-shadow: 0 3px 10px rgba(41, 45, 72, .07); }
.microcourse-lesson-tab.active > span { border-color: var(--teal); background: var(--teal); color: #ffffff; }
.microcourse-lesson-panel { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: rgba(255, 255, 255, .76); }
.microcourse-lesson-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 24px; background: linear-gradient(120deg, rgba(92, 94, 201, .09), rgba(255, 255, 255, .1)); }
.microcourse-count { flex: 0 0 auto; display: flex; align-items: baseline; color: var(--cyan); }
.microcourse-count strong { font-size: 32px; letter-spacing: -.06em; }
.microcourse-count span { color: var(--muted); font-size: 12px; }
.microcourse-learning-flow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--line); }
.microcourse-learning-flow > section { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 10px; padding: 18px; background: rgba(255, 255, 255, .86); }
.micro-resource { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 10px; margin: 18px; padding: 15px; border: 1px solid rgba(92, 94, 201, .2); border-radius: 10px; background: rgba(92, 94, 201, .05); }
.micro-resource > span { color: var(--cyan); font-size: 18px; font-weight: 800; }
.micro-review { margin: 0 18px 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.micro-review-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.micro-review-head > span { color: var(--muted); font-size: 12px; }
.micro-review-card { margin-top: 12px; padding: 16px; border-left: 3px solid var(--teal); background: rgba(92, 94, 201, .05); }
.micro-review-card p { margin: 0 0 12px; color: var(--text); font-size: 15px; line-height: 1.65; }
.micro-review-controls { display: flex; justify-content: space-between; gap: 10px; margin-top: 10px; }
.final-project-board { display: grid; grid-template-columns: 42px minmax(0, 1fr) minmax(190px, .75fr); gap: 16px; align-items: start; margin-top: 14px; padding: 22px; border: 1px solid rgba(92, 94, 201, .27); border-radius: 12px; background: linear-gradient(135deg, rgba(92, 94, 201, .09), rgba(92, 94, 201, .055)); }
.final-project-mark { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--teal); color: #ffffff; font-size: 18px; }
.final-project-board h3 { margin: 6px 0 8px; font-size: 19px; }
.final-project-board section { padding-left: 16px; border-left: 1px solid rgba(41, 45, 72, .17); }
.final-project-board .reading-list { margin-top: 0; }
.lesson-list details { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.lesson-list summary { color: var(--cyan); cursor: pointer; font-size: 13px; }
.review-question-list { display: grid; gap: 14px; margin: 14px 0 0; padding-left: 24px; }
.review-question-list li { padding-left: 4px; }
.review-question-list li > p { margin: 0 0 8px; }
.step7-answer-button { padding: 7px 10px; color: var(--teal); font-size: 12px; }
.step7-answer { margin-top: 10px; }
.step7-answer-card { padding: 14px 16px; border: 1px solid rgba(92, 94, 201, .18); border-radius: 10px; background: rgba(238, 239, 255, .52); }
.step7-answer-card p { margin: 7px 0 12px; }
.step7-answer-card h5 { margin: 12px 0 5px; color: var(--text); font-size: 12px; }
.step7-answer-card .reading-list { margin: 0; }
.feynman-answer-field { margin-top: 20px; }
.feynman-answer-field textarea { min-height: 150px; }
.feynman-controls { margin-top: 18px; }
.feynman-generating { display: flex; align-items: center; gap: 13px; margin-top: 18px; padding: 15px 16px; border: 1px solid rgba(92, 94, 201, .22); border-radius: 10px; background: linear-gradient(135deg, rgba(92, 94, 201, .08), rgba(238, 239, 255, .58)); }
.feynman-generating strong, .feynman-generating p { display: block; }
.feynman-generating strong { color: var(--text); font-size: 13px; }
.feynman-generating p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.feynman-generating-mark { display: flex; align-items: center; gap: 4px; flex: 0 0 auto; }
.feynman-generating-mark i { width: 7px; height: 7px; border-radius: 50%; background: var(--cyan); animation: feynman-pulse 1.15s ease-in-out infinite; }
.feynman-generating-mark i:nth-child(2) { animation-delay: .16s; }
.feynman-generating-mark i:nth-child(3) { animation-delay: .32s; }
@keyframes feynman-pulse { 0%, 100% { opacity: .35; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } }
.feynman-workbench { display: grid; gap: 14px; margin-top: 2px; }
.feynman-explanation, .feynman-next, .feynman-issues, .feynman-confusions, .feynman-definition { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: rgba(255, 255, 255, .78); }
.feynman-explanation { padding: 22px; background: linear-gradient(135deg, rgba(238, 239, 255, .85), rgba(248, 248, 253, .94)); }
.feynman-explanation header, .feynman-issues header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.feynman-explanation h3, .feynman-next h3, .feynman-issues h3 { margin: 5px 0 9px; font-size: 19px; }
.feynman-explanation > p, .feynman-next p { margin: 0; color: var(--text); font-size: 15px; line-height: 1.85; }
.feynman-example { margin-top: 16px; padding: 13px 14px; border-left: 3px solid var(--cyan); background: rgba(255, 255, 255, .72); }
.feynman-example strong, .feynman-definition .content-kicker { color: var(--teal); font-size: 11px; font-weight: 800; }
.feynman-example p { margin: 6px 0 0; color: var(--text); font-size: 13px; line-height: 1.7; }
.feynman-confusions { padding: 20px 22px; background: rgba(92, 94, 201, .035); }
.feynman-confusions header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.feynman-confusions h3 { margin: 5px 0 0; font-size: 18px; }
.feynman-confusions header > span { color: var(--muted); font-size: 11px; }
.feynman-confusion-list { display: grid; gap: 8px; margin-top: 14px; }
.feynman-confusion-list article { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; padding: 12px 13px; border-left: 3px solid rgba(92, 94, 201, .55); background: rgba(255, 255, 255, .78); }
.feynman-confusion-list article > span { color: var(--cyan); font-size: 11px; font-weight: 800; }
.feynman-confusion-list strong { color: var(--text); font-size: 13px; }
.feynman-confusion-list p { margin: 5px 0 0; color: var(--text); font-size: 13px; line-height: 1.65; }
.feynman-definition { padding: 17px 20px; border-color: rgba(92, 94, 201, .28); background: rgba(92, 94, 201, .05); }
.feynman-definition p { margin: 6px 0 0; color: var(--text); font-size: 15px; font-weight: 700; line-height: 1.75; }
.feynman-round { flex: 0 0 auto; padding: 7px 9px; border-radius: 999px; background: rgba(92, 94, 201, .09); color: var(--cyan); font-size: 11px; }
.feynman-next { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 14px; padding: 20px 22px; border-color: rgba(92, 94, 201, .24); background: rgba(92, 94, 201, .055); }
.feynman-next-mark { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--teal); color: #ffffff; font-size: 20px; font-weight: 800; }
.feynman-issues { padding: 20px 22px; }
.feynman-issues header > span { color: var(--muted); font-size: 11px; }
.feynman-issue-list { display: grid; gap: 9px; margin-top: 14px; }
.feynman-issue { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; padding: 12px 13px; border-left: 3px solid rgba(242, 140, 155, .72); background: rgba(242, 140, 155, .06); }
.feynman-issue > span { color: var(--danger); font-size: 11px; font-weight: 800; }
.feynman-issue strong { color: var(--text); font-size: 12px; }
.feynman-issue p { margin: 5px 0 0; color: var(--text); font-size: 13px; line-height: 1.65; }
.feynman-issue .feynman-issue-excerpt { color: var(--muted); font-size: 12px; }
.feynman-passed { padding: 12px 14px; border: 1px solid rgba(92, 94, 201, .24); border-radius: 8px; background: rgba(92, 94, 201, .055); color: var(--teal); font-size: 13px; font-weight: 700; }
.feynman-guide { margin-top: 20px; padding: 18px 20px; border: 1px solid rgba(92, 94, 201, .2); border-radius: 11px; background: rgba(92, 94, 201, .045); }
.feynman-guide h3 { margin: 5px 0 7px; color: var(--text); font-size: 18px; }
.feynman-guide > p { margin: 0; color: var(--text); font-size: 14px; line-height: 1.75; }
.feynman-guide-flow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 15px; }
.feynman-guide-flow > div { display: grid; grid-template-columns: 26px minmax(0, 1fr); align-items: center; gap: 8px; padding: 10px; border: 1px solid rgba(92, 94, 201, .14); border-radius: 8px; background: rgba(255, 255, 255, .72); }
.feynman-guide-flow strong { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--cyan); color: #ffffff; font-size: 11px; }
.feynman-guide-flow span { color: var(--text); font-size: 12px; line-height: 1.45; }
.feynman-guide-answer { border-color: rgba(92, 94, 201, .2); background: rgba(92, 94, 201, .045); }
.feynman-answer-frame { margin-top: 14px; padding: 12px 14px; border-left: 3px solid var(--teal); background: rgba(255, 255, 255, .72); }
.feynman-answer-frame > span { color: var(--teal); font-size: 11px; font-weight: 750; }
.feynman-answer-frame ol { margin: 8px 0 0; padding-left: 20px; color: var(--text); }
.feynman-answer-frame li { padding: 3px 0; font-size: 13px; line-height: 1.55; }
.feynman-target { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-top: 20px; padding: 18px 20px; border: 1px solid rgba(92, 94, 201, .28); border-radius: 11px; background: linear-gradient(135deg, rgba(223, 236, 255, .9), rgba(248, 248, 253, .96)); }
.feynman-target h3 { margin: 5px 0 7px; color: var(--text); font-size: 20px; line-height: 1.45; }
.feynman-target p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.feynman-target-badge { flex: 0 0 auto; padding: 7px 10px; border-radius: 999px; background: rgba(92, 94, 201, .1); color: var(--teal); font-size: 11px; font-weight: 750; white-space: nowrap; }
.feynman-target.needs-regeneration { border-color: rgba(181, 71, 54, .38); background: linear-gradient(135deg, rgba(255, 247, 235, .95), rgba(255, 252, 246, .98)); }
.feynman-target.needs-regeneration .feynman-target-badge { background: rgba(181, 71, 54, .12); color: #8a3a2c; }
.feynman-guide-reset { border-color: rgba(181, 71, 54, .3); background: rgba(255, 247, 235, .7); }
.feynman-current-output { margin-top: 20px; }
.reading-subsections section { padding: 12px 0; border-bottom: 1px solid var(--line); }
.reading-subsections h4 { margin: 0 0 6px; font-size: 13px; }
.reading-fallback { margin-top: 22px; }
.evidence-panel h3 { margin: 0 0 16px; font-size: 14px; }
.evidence-context { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 18px 16px; border: 1px solid rgba(41, 45, 72, .12); border-radius: 12px; background: rgba(255, 255, 255, .78); }
.method-note { flex: 0 0 auto; margin-top: 14px; padding: 16px; border: 1px solid rgba(92, 94, 201, .2); border-radius: 12px; background: rgba(238, 239, 255, .72); }
.method-note .eyebrow { margin-bottom: 6px; }
.method-note h3 { margin: 0 0 8px; }
.method-note p { margin: 0; }

.evidence-panel section { padding: 16px 0; border-bottom: 1px solid var(--line); }
.evidence-panel section:first-of-type { padding-top: 0; }
.evidence-panel p, .evidence-panel li { color: var(--muted); font-size: 13px; line-height: 1.7; }
.admin-page { max-width: 1560px; margin: 0 auto; padding: 38px clamp(20px, 4vw, 58px); }
.admin-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 26px; }
.admin-header h1 { margin: 7px 0 8px; font-size: clamp(28px, 4vw, 42px); letter-spacing: -.045em; }
.admin-header p { max-width: 700px; margin: 0; color: var(--muted); line-height: 1.7; }
.admin-summary { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.admin-stat { display: grid; gap: 8px; min-width: 0; padding: 16px 18px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255, 255, 255, .82); }
.admin-stat span { color: var(--muted); font-size: 12px; }
.admin-stat strong { overflow: hidden; color: var(--text); font-size: 24px; letter-spacing: -.03em; text-overflow: ellipsis; white-space: nowrap; }
.admin-stat-ios, .admin-stat-points { color: var(--teal) !important; }
.admin-panel { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: rgba(255, 255, 255, .84); box-shadow: 0 14px 38px rgba(41, 45, 72, .06); }
.admin-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px; border-bottom: 1px solid var(--line); background: rgba(238, 239, 255, .48); }
.admin-tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.admin-tab { min-height: 38px; padding: 8px 12px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--muted); font-size: 12px; font-weight: 700; }
.admin-tab:hover { color: var(--teal); background: rgba(255, 255, 255, .72); }
.admin-tab.active { border-color: rgba(92, 94, 201, .25); background: #ffffff; color: var(--teal); box-shadow: 0 2px 8px rgba(41, 45, 72, .07); }
.admin-search { display: flex; align-items: center; gap: 8px; }
.admin-search label { color: var(--muted); font-size: 12px; }
.admin-search input { width: min(280px, 28vw); min-height: 38px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #ffffff; color: var(--text); outline: none; }
.admin-search input:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(92, 94, 201, .08); }
.admin-loading, .admin-empty, .admin-error { margin: 18px; }
.admin-loading, .admin-empty { padding: 38px 18px; color: var(--muted); text-align: center; }
.admin-table-wrap { overflow-x: auto; }
.admin-table { width: 100%; min-width: 920px; border-collapse: collapse; text-align: left; }
.admin-table th, .admin-table td { padding: 14px 16px; border-bottom: 1px solid rgba(41, 45, 72, .1); vertical-align: top; }
.admin-table th { color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .04em; white-space: nowrap; }
.admin-table td { color: var(--text); font-size: 13px; }
.admin-table tbody tr:hover { background: rgba(238, 239, 255, .3); }
.admin-table td strong, .admin-table td small, .admin-table td code { display: block; }
.admin-table td small { margin-top: 5px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.admin-feedback-content { min-width: 280px; max-width: 560px; white-space: normal; line-height: 1.6; }
.admin-table td code { max-width: 150px; overflow: hidden; color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.admin-badge, .admin-provider { display: inline-flex; align-items: center; min-height: 22px; padding: 3px 8px; border-radius: 999px; background: rgba(92, 94, 201, .09); color: var(--teal); font-size: 11px; white-space: nowrap; }
.admin-badge.is-danger, .admin-status-failed { background: rgba(181, 62, 85, .1); color: var(--danger); }
.admin-status-paid { background: rgba(52, 139, 94, .12); color: #287a4c; }
.admin-status-pending { background: rgba(181, 130, 45, .13); color: #946b1f; }
.admin-muted { color: var(--muted); }
.admin-negative { color: var(--danger) !important; font-weight: 700; }
.admin-positive { color: #287a4c !important; font-weight: 700; }
.admin-pagination { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 18px; color: var(--muted); font-size: 12px; }
.admin-pagination > div { display: flex; gap: 8px; }
.template-layout { max-width: 1420px; margin: 0 auto; padding: 38px clamp(20px, 4vw, 58px); }
.template-grid { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 18px; }
.template-list { display: grid; gap: 7px; align-content: start; }
.template-tab { padding: 13px; border: 1px solid var(--line); border-radius: 9px; background: rgba(255, 255, 255, .75); color: var(--muted); text-align: left; }
.template-tab.active { border-color: var(--teal); color: var(--text); background: rgba(92, 94, 201, .09); }
.template-tab strong, .template-tab small { display: block; }
.template-tab small { margin-top: 5px; color: var(--muted); }
.template-editor textarea { min-height: 420px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; line-height: 1.65; background: #fbfbff; }
.history { margin-top: 24px; border-top: 1px solid var(--line); padding-top: 18px; }
.history-title { color: var(--muted); font-size: 12px; margin-bottom: 10px; }
.history-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(41, 45, 72, .1); }
.history-row strong, .history-row small { display: block; }
.history-row small { color: var(--muted); font-size: 11px; margin-top: 3px; }
.variable-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.tag { color: var(--cyan); font-family: ui-monospace, monospace; }
.empty { padding: 30px; text-align: center; color: var(--muted); }
@media (max-width: 1120px) { .workspace { grid-template-columns: 220px minmax(0, 1fr) 300px; } }
@media (max-width: 720px) { .topbar { padding: 0 16px; } .brand small, .top-actions .status-pill { display: none; } .workspace { display: block; } .sidebar { border-right: 0; border-bottom: 1px solid var(--line); padding: 16px; overflow-x: auto; } .sidebar h1, .sidebar .eyebrow, .phase { display: none; } .step-list { display: flex; gap: 6px; min-width: max-content; } .step-item { width: auto; } .step-item small { display: none; } .main-content { padding: 24px 16px; } .grid-form, .intake-fields, .template-grid, .two-column-reading, .resource-grid, .ladder-signal-grid, .ladder-checkpoint > div, .microcourse-shell, .microcourse-learning-flow, .final-project-board { grid-template-columns: 1fr; } .hero { display: block; } .hero .button-row { margin-top: 16px; } .reading-output-head { display: block; } .reading-output-head > span { display: block; margin-top: 8px; } .ladder-map-head, .core-focus-head { display: block; } .ladder-map-head p { margin-top: 10px; } .ladder-route { display: flex; overflow-x: auto; padding-bottom: 4px; } .ladder-route::before { display: none; } .ladder-route-stop { flex: 0 0 106px; } .ladder-level-hero, .microcourse-lesson-hero { padding: 20px; } .ladder-level-marker { flex-basis: 52px; width: 52px; height: 52px; } .ladder-mission { grid-template-columns: 1fr; padding: 0 18px 18px; } .ladder-mission-arrow { min-height: 20px; transform: rotate(90deg); } .ladder-checkpoint { margin: 0 18px 18px; } .microcourse-outline { padding: 16px; } .microcourse-lesson-tabs { display: flex; overflow-x: auto; padding-bottom: 4px; } .microcourse-lesson-tab { flex: 0 0 178px; } .microcourse-lesson-hero { display: block; } .microcourse-count { margin-top: 14px; } .microcourse-learning-flow > section { padding: 16px; } .final-project-board section { padding: 14px 0 0; border-top: 1px solid rgba(41, 45, 72, .17); border-left: 0; } .intake-intro, .intake-section { padding: 20px 18px; } .intake-notice { margin: 18px; } .source-mode-tabs { overflow-x: auto; } .source-mode-tab { flex: 0 0 auto; min-width: 92px; } .source-link-row { display: grid; grid-template-columns: 1fr; } .source-link-row .secondary-button { width: 100%; } .evidence-panel { position: static; height: auto; overflow: visible; display: block; border-left: 0; border-top: 1px solid var(--line); padding: 22px 16px; } .evidence-panel .topic-switcher { min-height: 0; margin: 0 0 20px; padding: 18px; } .topic-list { min-height: 0; max-height: 260px; } .evidence-context { overflow: visible; padding: 16px; } }
@media (max-width: 720px) { .contradiction-map, .conflict-detail, .evidence-ranking { padding: 18px; } .contradiction-map-head, .evidence-ranking > header, .conflict-detail > header { display: block; } .contradiction-map-head p { margin-top: 9px; } .conflict-detail > header > strong { display: inline-block; margin-top: 12px; } .conflict-detail-grid { grid-template-columns: 1fr; } .conflict-edges { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .admin-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); } .admin-toolbar { align-items: stretch; flex-direction: column; } .admin-search input { width: min(360px, 55vw); } }
@media (max-width: 720px) { .admin-page { padding: 24px 16px; } .admin-header { align-items: flex-start; flex-direction: column; } .admin-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .admin-search { align-items: stretch; flex-wrap: wrap; } .admin-search label { width: 100%; } .admin-search input { width: 100%; flex: 1 1 100%; } .admin-pagination { align-items: flex-start; flex-direction: column; } }
@media (max-width: 720px) { .brief-summary { grid-template-columns: 1fr; } .brief-summary-mark { width: 48px; height: 48px; } .brief-findings-layout, .review-findings-layout, .brief-bridge, .review-insight-grid, .revision-grid { grid-template-columns: 1fr; } .brief-finding-tabs, .review-finding-tabs { border-right: 0; border-bottom: 1px solid var(--line); display: flex; overflow-x: auto; } .brief-finding-tab, .review-finding-tab { flex: 0 0 180px; } .brief-finding-panel, .review-finding-panel { padding: 18px; } .brief-finding-panel-head, .review-finding-panel-head { align-items: flex-start; flex-direction: column; } .review-score-hero { display: block; } .review-score-value { margin-top: 18px; padding: 14px 0 0; border-top: 1px solid var(--line); border-left: 0; } .brief-frontier { grid-template-columns: 1fr; } .brief-frontier-mark { width: 36px; height: 36px; } .revision-grid { padding: 0 18px; } }
@media (max-width: 720px) { .feynman-guide-flow { grid-template-columns: 1fr; } .feynman-next { grid-template-columns: 36px minmax(0, 1fr); padding: 18px; } .feynman-explanation, .feynman-issues { padding: 18px; } .feynman-target { display: block; } .feynman-target-badge { display: inline-block; margin-top: 11px; } }

/* ---- 学习资料卡 ---- */
.source-card-list { display: grid; gap: 8px; }
.source-card { padding: 10px 12px; border: 1px solid var(--line); border-radius: 9px; background: rgba(255, 255, 255, .78); }
.source-card header { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.source-card header strong { font-size: 13px; color: var(--text); }
.source-status { flex: none; font-size: 11px; padding: 2px 8px; border-radius: 99px; background: rgba(92, 94, 201, .12); color: #4f51b5; }
.source-card.status-failed .source-status, .source-card.status-ocr_required .source-status { background: rgba(180, 60, 40, .12); color: #a33d28; }
.source-card-meta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; color: var(--muted); font-size: 11px; }
.source-card-location a { font-size: 11px; color: var(--cyan); word-break: break-all; }
.source-card-error { margin-top: 6px; color: #a33d28; font-size: 12px; }
.intake-source-list { margin-top: 14px; }
.source-input-feedback { margin-top: 10px; font-size: 13px; color: #4f51b5; }

/* ---- 第十步工作台 ---- */
.step10-workbench { display: grid; gap: 18px; }
.step10-pane { border: 1px solid var(--line); border-radius: 14px; background: rgba(255, 255, 255, .8); padding: 20px; }
.step10-pane > header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 14px; }
.step10-pane > header h3 { margin: 4px 0 0; font-size: 16px; }
.step10-pane-auto { background: rgba(248, 248, 253, .9); }
.step10-auto-meta { color: var(--muted); font-size: 12px; margin-bottom: 12px; }
.step10-badge { font-size: 11px; padding: 3px 10px; border-radius: 99px; background: rgba(92, 94, 201, .12); color: #4f51b5; }
.step10-read-fields section { padding: 10px 0; border-bottom: 1px solid rgba(41, 45, 72, .08); }
.step10-read-fields h4 { margin: 0 0 6px; font-size: 13px; color: var(--text); }
.step10-read-fields .pinned { color: var(--text); font-weight: 600; }
.pin-mark { color: #b54736; margin-right: 6px; }
.step10-pane-mine .intake-fields { grid-template-columns: 1fr 1fr; }
.step10-pane-mine .field.full { grid-column: 1 / -1; }
.step10-pane-mine textarea { min-height: 74px; }
.step10-diff { margin-top: 14px; border-top: 1px dashed var(--line); padding-top: 12px; }
.step10-diff summary { cursor: pointer; color: var(--muted); font-size: 13px; }
.step10-newer-auto { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0; }
.step10-newer-auto p { margin: 0; }

/* ---- 打印：只输出速查表 ---- */
@media print {
  body * { visibility: hidden; }
  #print-area, #print-area * { visibility: visible; }
  #print-area { display: block !important; position: absolute; inset: 0; padding: 24px; }
}

/* ---- 与 iOS 对齐：步骤导语卡（StepPurposeCard） ---- */
.step-purpose-card { display: flex; align-items: flex-start; gap: 13px; margin-bottom: 14px; padding: 16px 18px; border: 0; border-radius: 20px; background: linear-gradient(120deg, #dfe8ff, #e7dcff); }
.step-purpose-mark { flex: 0 0 auto; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: rgba(255, 255, 255, .72); color: var(--teal); font-size: 13px; font-weight: 800; }
.step-purpose-kicker { display: block; color: var(--teal); font-size: 12px; font-weight: 800; }
.step-purpose-card p { margin: 5px 0 4px; color: var(--text); font-size: 14px; font-weight: 600; line-height: 1.6; }
.step-purpose-card small { color: rgba(41, 45, 72, .76); font-size: 12px; }

/* ---- 与 iOS 对齐：第一步 3+2 视角规划 ---- */
.perspective-plan { overflow: hidden; margin-top: 22px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255, 255, 255, .76); }
.perspective-plan > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 20px 22px 14px; }
.perspective-plan h3 { margin: 5px 0 0; font-size: 18px; }
.perspective-plan-count { flex: 0 0 auto; color: var(--muted); font-size: 12px; font-weight: 700; }
.perspective-plan .perspective-tabs { margin: 0; border-bottom: 0; border-radius: 0 0 12px 12px; background: rgba(238, 239, 255, .38); }
.perspective-tab-kind { margin-left: 6px; padding: 2px 6px; border-radius: 999px; background: rgba(92, 94, 201, .16); color: inherit; font-size: 9px; font-style: normal; font-weight: 800; vertical-align: 1px; }
.perspective-tab.active .perspective-tab-kind { background: rgba(255, 255, 255, .28); }
.perspective-current-label { color: var(--muted); font-size: 12px; font-weight: 600; }
.perspective-role { margin: 3px 0 0; color: var(--text); font-size: 21px; font-weight: 800; line-height: 1.3; }
.perspective-kind-badge { flex: 0 0 auto; align-self: flex-start; padding: 5px 9px; border-radius: 999px; background: var(--panel-2); color: var(--teal); font-size: 11px; font-weight: 700; white-space: nowrap; }
.perspective-stance { color: var(--text); font-size: 16px; font-weight: 700; line-height: 1.75; }
.perspective-plan-info { margin-top: 14px; padding: 12px 14px; border-radius: 10px; background: var(--panel-2); }
.perspective-plan-info h4 { margin: 0 0 5px; }
.perspective-plan-info p { margin: 0; color: var(--text); font-size: 13px; line-height: 1.65; }
.perspective-evidence-label { margin: 14px 0 0; color: var(--muted); font-size: 12px; }

/* ---- 与 iOS 对齐：第二步置顶待解问题 / 折叠冲突 / VS 详情 ---- */
.conflict-next-step { padding: 20px 22px; border: 1px solid rgba(92, 94, 201, .28); border-radius: 12px; background: rgba(238, 239, 255, .82); }
.conflict-next-step h3 { margin: 5px 0 8px; font-size: 19px; }
.conflict-next-step p { margin: 0; color: var(--text); font-size: 15px; font-weight: 650; line-height: 1.7; }
.conflict-next-step small { display: block; margin-top: 6px; color: var(--muted); font-size: 12px; }
.conflict-more { margin-top: 10px; }
.conflict-more > summary { display: inline-flex; align-items: center; min-height: 38px; padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255, 255, 255, .8); color: var(--muted); font-size: 12px; font-weight: 650; cursor: pointer; }
.conflict-more > summary:hover { border-color: var(--teal); color: var(--teal); }
.conflict-more[open] > summary { margin-bottom: 10px; }
.conflict-claims { display: grid; gap: 0; margin-top: 18px; }
.conflict-claim { padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel-2); }
.conflict-claim header span { color: var(--teal); font-size: 11px; font-weight: 800; }
.conflict-claim p { margin: 7px 0 0; color: var(--text); font-size: 14px; font-weight: 650; line-height: 1.65; }
.conflict-claim small { display: block; margin-top: 6px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.conflict-vs { display: grid; place-items: center; padding: 8px 0; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.conflict-evidence-label { margin: 14px 0 0; color: var(--muted); font-size: 12px; }

/* ---- 与 iOS 对齐：第四步评分解读 ---- */
.review-score-guidance { margin-top: 8px; padding: 9px 12px; border-radius: 8px; background: var(--panel-2); color: var(--text); font-size: 13px; font-weight: 650; }

/* ---- 与 iOS 对齐：第五步推荐首选 + 结构化一周路径 ---- */
.resource-pick { display: block; margin-top: 6px; color: var(--teal); font-size: 12px; font-weight: 700; text-decoration: none; border-bottom: 1px solid currentColor; }
.weekly-schedule { min-width: 0; margin-top: 0; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255, 255, 255, .76); }
.weekly-schedule > .eyebrow { display: block; margin-bottom: 12px; }
.weekly-schedule article { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; align-items: start; padding: 9px 0; }
.weekly-schedule article + article { border-top: 1px solid var(--line); }
.weekly-schedule article > span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--panel-2); color: var(--teal); font-size: 11px; font-weight: 800; }
.weekly-schedule strong { display: block; color: var(--text); font-size: 13px; font-weight: 650; line-height: 1.5; }
.weekly-schedule small { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; }

/* ---- 账户区 / 登录弹层 / 点数卡 ---- */
.account-chip { display: flex; align-items: center; gap: 10px; }
.account-name { color: var(--text); font-size: 13px; font-weight: 700; }
.account-plus { margin-left: 5px; padding: 2px 6px; border-radius: 999px; background: var(--teal); color: #ffffff; font-size: 10px; font-style: normal; font-weight: 800; }
.account-points { color: var(--teal); font-size: 12px; font-weight: 700; }
.account-topup { min-height: 32px; padding: 5px 10px; font-size: 12px; }
.account-logout { min-height: 34px; padding: 6px 10px; font-size: 12px; }
.account-login { min-height: 38px; }
.account-modal-backdrop { position: fixed; z-index: 30; inset: 0; display: grid; place-items: center; padding: 24px; background: rgba(23, 25, 44, .38); }
.account-modal { width: min(420px, 100%); padding: 24px; border-radius: 16px; background: #ffffff; box-shadow: 0 24px 60px rgba(23, 25, 44, .2); }
.account-modal header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.account-modal h3 { margin: 0; font-size: 18px; }
.account-modal p { margin: 0 0 14px; color: var(--muted); font-size: 13px; line-height: 1.65; }
.account-modal-hint { color: var(--warning); }
.account-login-message { margin-top: 12px; color: var(--danger); font-size: 12px; }
.wallet-card { margin-top: 22px; padding: 16px; border: 1px solid rgba(92, 94, 201, .25); border-radius: 14px; background: linear-gradient(135deg, rgba(238, 239, 255, .92), rgba(255, 255, 255, .96)); }
.wallet-card-debt { border-color: rgba(181, 71, 54, .4); }
.wallet-topup { width: 100%; margin-top: 14px; min-height: 36px; }
.wallet-balance { display: flex; align-items: baseline; justify-content: space-between; }
.wallet-balance span { color: var(--muted); font-size: 12px; font-weight: 650; }
.wallet-balance strong { color: var(--text); font-size: 24px; font-weight: 800; letter-spacing: -.03em; }
.wallet-debt-notice { margin-bottom: 10px; padding: 9px 11px; border-radius: 9px; background: rgba(181, 71, 54, .1); color: #8a3a2c; font-size: 12px; font-weight: 650; line-height: 1.5; }
.wallet-plus { display: inline-block; margin-top: 8px; padding: 4px 9px; border-radius: 999px; background: var(--teal); color: #ffffff; font-size: 11px; font-weight: 800; }
.wallet-entries { margin: 14px 0 0; padding: 0; list-style: none; }
.wallet-entries li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 0; }
.wallet-entries li + li { border-top: 1px solid var(--line); }
.wallet-entries strong { display: block; color: var(--text); font-size: 12px; }
.wallet-entries small { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; }
.wallet-entries li > span { flex: 0 0 auto; color: var(--teal); font-size: 12px; font-weight: 750; }
.wallet-entries .wallet-out { color: #8a3a2c; }

/* ---- Creem 点数充值页 ---- */
.topup-page { width: min(900px, 100%); margin: 0 auto; padding: 34px 34px 64px; }
.topup-header { padding: 8px 0 28px; }
.topup-header h1 { margin: 12px 0 8px; font-size: clamp(30px, 5vw, 46px); letter-spacing: -.04em; }
.topup-header p { max-width: 620px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.7; }
.topup-panel { padding: 26px; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.86); box-shadow: 0 14px 38px rgba(41,45,72,.07); }
.topup-panel-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.topup-panel-head h2 { margin: 7px 0 0; font-size: 21px; }
.topup-balance { color: var(--teal); font-size: 13px; font-weight: 750; }
.topup-products { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.topup-product { display: flex; align-items: center; gap: 12px; min-height: 78px; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: #fff; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease; }
.topup-product.selected { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(65,157,147,.12); }
.topup-product input { accent-color: var(--teal); }
.topup-product span { flex: 1; min-width: 0; }
.topup-product strong, .topup-product small { display: block; }
.topup-product strong { color: var(--text); font-size: 14px; }
.topup-product small { margin-top: 4px; color: var(--muted); font-size: 12px; }
.topup-product b { color: var(--text); font-size: 15px; }
.topup-empty, .topup-loading { padding: 22px; border-radius: 12px; background: var(--panel-2); color: var(--muted); font-size: 13px; line-height: 1.7; }
.topup-actions { display: flex; align-items: center; gap: 14px; margin-top: 22px; }
.topup-message { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.ledger-panel { margin-top: 18px; padding: 26px; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.86); }
.ledger-panel-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.ledger-panel-head h2 { margin: 7px 0 0; font-size: 21px; }
.ledger-total { color: var(--muted); font-size: 12px; }
.ledger-tabs { display: flex; gap: 8px; margin-top: 20px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.ledger-tab { padding: 8px 14px; border: 0; border-radius: 999px; background: var(--panel-2); color: var(--muted); font-size: 13px; font-weight: 700; }
.ledger-tab.active { background: var(--teal); color: #fff; }
.ledger-list { margin: 0; padding: 0; list-style: none; }
.ledger-list li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 0; }
.ledger-list li + li { border-top: 1px solid var(--line); }
.ledger-list strong, .ledger-list small { display: block; }
.ledger-list strong { color: var(--text); font-size: 13px; }
.ledger-list small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.ledger-list li > span { color: var(--teal); font-size: 14px; font-weight: 800; }
.ledger-list li > .ledger-out { color: #8a3a2c; }
.ledger-empty, .ledger-loading { padding: 24px 0; color: var(--muted); font-size: 13px; }
.ledger-pagination { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 14px; color: var(--muted); font-size: 12px; }
.ledger-pagination .ghost-button { min-height: 32px; padding: 5px 10px; font-size: 12px; }
.ios-topup-guide { display: flex; align-items: flex-start; gap: 14px; margin-top: 18px; padding: 20px 22px; border: 1px solid rgba(92, 94, 201, .2); border-radius: 18px; background: linear-gradient(135deg, rgba(238, 239, 255, .88), rgba(255, 255, 255, .94)); }
.ios-topup-guide-mark { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 auto; border-radius: 12px; background: var(--teal); color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .04em; }
.ios-topup-guide h2 { margin: 6px 0 6px; font-size: 17px; }
.ios-topup-guide p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
@media (max-width: 640px) { .topup-page { padding: 24px 18px 42px; } .topup-panel { padding: 18px; } .topup-panel-head { align-items: flex-start; flex-direction: column; } .topup-actions { align-items: flex-start; flex-direction: column; } .account-chip { gap: 6px; } }

/* ---- 登录门禁页 ---- */
.login-gate { display: grid; place-items: center; min-height: calc(100vh - 76px); padding: 32px; }
.login-gate-card { display: grid; justify-items: center; gap: 14px; width: min(400px, 100%); padding: 36px 32px; border: 1px solid var(--line); border-radius: 20px; background: rgba(255, 255, 255, .88); box-shadow: 0 14px 38px rgba(41, 45, 72, .08); text-align: center; }
.login-gate-card img { width: 64px; height: 64px; border-radius: 16px; }
.login-gate-card h2 { margin: 0; font-size: 26px; letter-spacing: -.02em; }
.login-gate-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.65; }

/* ---- 工作台加载提示 ---- */
.workspace-loading-spinner { width: 30px; height: 30px; border: 3px solid var(--soft); border-top-color: var(--teal); border-radius: 50%; animation: ws-spin .8s linear infinite; }
@keyframes ws-spin { to { transform: rotate(360deg); } }

.source-card-analysis{margin:4px 0 0;font-size:12px;color:var(--ink-soft,#5b6472);}
.source-card-delete{margin-top:6px;border:none;background:none;color:#a33d28;font-size:12px;cursor:pointer;padding:0;text-decoration:underline;}
