@import url("/fonts/option-a/fonts.css");

:root {
  --ink: #172033;
  --muted: #657086;
  --line: #dfe4ec;
  --surface: #ffffff;
  --canvas: #f3f5f8;
  --primary: #3157d5;
  --primary-soft: #edf2ff;
  --cyan: #0d91a8;
  --orange: #c56818;
  --danger: #b63c3c;
  --success: #157b59;
  color-scheme: light;
  font-family: var(--font-sans);
}

* { box-sizing: border-box; }
html, body { min-height: 100%; margin: 0; background: var(--canvas); color: var(--ink); }
button, input, select { font: inherit; }
button { color: inherit; }

.demo-shell { min-height: 100vh; padding: 18px; background: linear-gradient(180deg, #fafbfc 0, #f1f3f7 65%); }
.topbar, .scope-banner, .lab-layout, .evidence-sources { width: min(1480px, 100%); margin-inline: auto; }
.topbar { min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.brand { display: flex; align-items: center; gap: 12px; }
.brand-mark { position: relative; width: 38px; height: 38px; flex: none; border-radius: 8px; background: #20396d; }
.brand-mark::before, .brand-mark::after, .brand-mark i { content: ""; position: absolute; left: 9px; width: 20px; height: 4px; border: 1px solid rgba(255,255,255,.9); transform: skewY(-20deg); }
.brand-mark::before { top: 9px; }
.brand-mark i { top: 17px; }
.brand-mark::after { top: 25px; }
.brand small, .eyebrow, .insight-kicker, .lesson-nav__heading span { display: block; color: var(--muted); font: 500 11px/1.4 var(--font-mono); letter-spacing: .12em; }
.brand h1 { margin: 3px 0 0; font-size: 18px; line-height: 1.2; font-weight: 500; }
.lab-status { padding: 8px 11px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.8); color: var(--muted); font-size: 12px; }

.scope-banner { margin-top: 6px; padding: 10px 14px; display: flex; align-items: baseline; gap: 12px; border: 1px solid #ead7b1; border-radius: 9px; background: #fff9ec; color: #715b34; font-size: 13px; line-height: 1.55; }
.scope-banner strong { flex: none; color: #8c540f; font-weight: 500; }

.lab-layout { margin-top: 14px; display: grid; grid-template-columns: 220px minmax(620px, 1fr) 270px; gap: 12px; align-items: start; }
.lesson-nav, .lesson-stage, .lesson-insight { border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.94); box-shadow: 0 14px 36px rgba(38, 50, 78, .06); }

.lesson-nav { padding: 15px 10px 12px; }
.lesson-nav__heading { padding: 0 8px 12px; border-bottom: 1px solid var(--line); }
.lesson-nav__heading strong { display: block; margin-top: 4px; font-size: 14px; font-weight: 500; }
.lesson-tab { width: 100%; min-height: 64px; margin-top: 7px; padding: 8px; display: grid; grid-template-columns: 32px 1fr; gap: 9px; align-items: center; border: 1px solid transparent; border-radius: 8px; background: transparent; text-align: left; cursor: pointer; }
.lesson-tab:hover { background: #f6f8fb; }
.lesson-tab.is-active { border-color: #bfcaf0; background: var(--primary-soft); }
.lesson-tab > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 7px; background: #e8ebf1; color: var(--muted); font: 500 12px var(--font-mono); }
.lesson-tab.is-active > span { background: var(--primary); color: #fff; }
.lesson-tab strong, .lesson-tab small { display: block; }
.lesson-tab strong { font-size: 13px; font-weight: 500; }
.lesson-tab small { margin-top: 3px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.lesson-nav > p { margin: 14px 8px 0; color: var(--muted); font-size: 12px; line-height: 1.55; }

.lesson-stage { min-width: 0; overflow: hidden; }
.lesson-panel { min-height: 670px; padding: 20px; }
.lesson-panel[hidden] { display: none; }
.lesson-header { padding-bottom: 16px; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--line); }
.lesson-header h2 { margin: 4px 0 0; font-size: 21px; line-height: 1.25; font-weight: 500; letter-spacing: -.02em; }
.lesson-header > span { padding: 7px 10px; border-radius: 999px; background: #f0f2f6; color: var(--muted); font-size: 12px; white-space: nowrap; }

.alignment-grid, .energy-grid, .monitor-grid, .inspection-grid { margin-top: 18px; display: grid; gap: 18px; }
.alignment-grid, .energy-grid { grid-template-columns: minmax(260px, .8fr) minmax(340px, 1.2fr); }
.monitor-grid { grid-template-columns: minmax(360px, 1.2fr) minmax(240px, .8fr); }
.inspection-grid { grid-template-columns: minmax(220px, .7fr) minmax(380px, 1.3fr); }

.control-stack { display: grid; align-content: start; gap: 18px; }
.range-field, .select-field { display: grid; gap: 9px; }
.range-field > span, .select-field > span { display: flex; justify-content: space-between; gap: 16px; color: var(--muted); font-size: 13px; }
.range-field output { color: var(--ink); font: 500 13px var(--font-mono); }
input[type="range"] { width: 100%; accent-color: var(--primary); }
select { width: 100%; min-height: 40px; padding: 0 10px; border: 1px solid #cfd5df; border-radius: 7px; background: #fff; }
.action-row { display: flex; flex-wrap: wrap; gap: 8px; }
.button { min-height: 38px; padding: 0 13px; border: 1px solid transparent; border-radius: 7px; font-weight: 500; font-size: 13px; cursor: pointer; }
.button:disabled { cursor: not-allowed; opacity: .45; }
.button-primary { background: var(--primary); color: #fff; }
.button-secondary { border-color: #cfd5df; background: #fff; color: var(--ink); }
.model-note { margin: 0; padding: 10px 12px; border-left: 3px solid #aab6ca; background: #f6f7f9; color: var(--muted); font-size: 12px; line-height: 1.55; }

.alignment-visual, .energy-visual { min-width: 0; }
.plate-field { position: relative; height: 330px; overflow: hidden; border: 1px solid #d9dee7; border-radius: 10px; background: linear-gradient(180deg, #f8fafc, #e9edf3); }
.plate-half { position: absolute; top: 45px; bottom: 45px; width: calc(50% - 4px); border: 1px solid #bbc4d2; background: repeating-linear-gradient(120deg, #e9edf2 0 8px, #f7f9fb 8px 16px); box-shadow: inset 0 0 30px rgba(78, 92, 118, .08); }
.plate-left { left: 0; border-radius: 0 5px 5px 0; }
.plate-right { right: 0; border-radius: 5px 0 0 5px; }
.seam-marker, .measured-marker, .beam-marker { position: absolute; top: 34px; bottom: 34px; left: 50%; transform: translateX(-50%); transition: left .35s ease; }
.seam-marker { width: 3px; z-index: 3; background: #27364f; }
.measured-marker { width: 2px; z-index: 5; border-left: 2px dashed var(--cyan); }
.beam-marker { width: 4px; z-index: 4; background: linear-gradient(180deg, #5779ed, #9b55e7 48%, #f07831); box-shadow: 0 0 12px rgba(85, 93, 235, .55); }
.seam-marker i, .measured-marker i, .beam-marker i { position: absolute; top: -25px; left: 50%; transform: translateX(-50%); padding: 3px 5px; border-radius: 4px; background: #fff; box-shadow: 0 2px 8px rgba(30,40,60,.1); font-style: normal; font-size: 11px; white-space: nowrap; }
.axis { margin-top: 6px; display: flex; justify-content: space-between; color: var(--muted); font: 12px var(--font-mono); }
.result-strip { margin-top: 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.result-strip > div, .calculated-values > div { padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: #fbfcfd; }
.result-strip span, .result-strip strong, .calculated-values span, .calculated-values strong, .calculated-values small { display: block; }
.result-strip span, .calculated-values span { color: var(--muted); font-size: 12px; }
.result-strip strong, .calculated-values strong { margin-top: 5px; font: 500 16px var(--font-mono); }

.beam-scale { position: relative; height: 330px; overflow: hidden; border-radius: 10px; background: linear-gradient(#f7f9fc, #e9edf4); }
.beam-cone { --spot: 130px; position: absolute; left: 50%; top: 35px; width: var(--spot); height: 220px; transform: translateX(-50%); clip-path: polygon(38% 0, 62% 0, 100% 100%, 0 100%); background: linear-gradient(180deg, rgba(53,87,203,.72), rgba(113,77,222,.48) 60%, rgba(233,113,45,.62)); transition: width .2s ease; }
.work-surface { position: absolute; left: 8%; right: 8%; bottom: 58px; height: 38px; transform: skewX(-18deg); border: 1px solid #b9c2d0; background: linear-gradient(160deg, #fff, #cdd4df); box-shadow: 0 12px 20px rgba(40,55,85,.12); }
.calculated-values { margin-top: 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.calculated-values small { margin-top: 4px; color: var(--muted); font: 12px var(--font-mono); }
.comparison-box { margin-top: 8px; padding: 11px 12px; border-left: 3px solid var(--primary); background: var(--primary-soft); }
.comparison-box span { color: var(--primary); font-size: 12px; font-weight: 500; }
.comparison-box p { margin: 4px 0 0; color: #4d5b78; font-size: 12px; line-height: 1.55; }

.event-picker { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 7px; }
.event-button { min-height: 36px; padding: 0 11px; border: 1px solid #cfd5df; border-radius: 7px; background: #fff; cursor: pointer; font-size: 12px; }
.event-button.is-active { border-color: var(--primary); background: var(--primary-soft); color: var(--primary); }
.signal-matrix { border-top: 1px solid var(--line); }
.signal-matrix > div { min-height: 62px; padding: 10px 4px; display: grid; grid-template-columns: 145px 1fr; gap: 16px; align-items: center; border-bottom: 1px solid var(--line); }
.signal-matrix .matrix-head { min-height: 36px; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.signal-matrix strong { font-size: 13px; font-weight: 500; }
.signal-matrix span { color: var(--muted); font-size: 12px; line-height: 1.5; }
.decision-task { padding: 14px; border: 1px solid var(--line); border-radius: 9px; background: #fafbfd; }
.task-label { color: var(--muted); font-size: 12px; }
.decision-options { margin-top: 10px; display: grid; gap: 7px; }
.decision-options button { min-height: 42px; padding: 8px 10px; border: 1px solid #cfd5df; border-radius: 7px; background: #fff; text-align: left; cursor: pointer; font-size: 12px; }
.decision-options button:hover { border-color: #98a9df; }
.decision-feedback { margin-top: 12px; min-height: 74px; padding: 10px; border-left: 3px solid #aab6ca; background: #f1f3f6; color: var(--muted); font-size: 12px; line-height: 1.55; }
.decision-feedback.is-warning { border-color: var(--danger); background: #fff1f1; color: #7f3030; }
.decision-feedback.is-good { border-color: var(--success); background: #eef9f4; color: #245f4c; }

.method-picker { margin: 0; padding: 0; border: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.method-picker legend { margin-bottom: 10px; color: var(--muted); font-size: 12px; }
.method-picker label { min-height: 66px; padding: 10px; display: flex; align-items: flex-start; gap: 9px; border: 1px solid var(--line); border-radius: 8px; background: #fafbfd; cursor: pointer; }
.method-picker input { margin-top: 3px; accent-color: var(--primary); }
.method-picker strong, .method-picker small { display: block; }
.method-picker strong { font-size: 13px; font-weight: 500; }
.method-picker small { margin-top: 3px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.coverage-feedback { margin-top: 16px; min-height: 76px; padding: 12px 14px; border-left: 3px solid #aab6ca; background: #f4f6f8; color: var(--muted); font-size: 12px; line-height: 1.6; }
.coverage-feedback.is-warning { border-color: var(--orange); background: #fff7eb; color: #75501f; }
.coverage-feedback.is-good { border-color: var(--success); background: #eef9f4; color: #245f4c; }

.lesson-insight { padding: 18px 16px; }
.lesson-insight h2 { margin: 6px 0 0; font-size: 17px; font-weight: 500; }
.lesson-insight > p { margin: 10px 0 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.insight-rule, .insight-boundary { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.insight-rule span, .insight-boundary span { display: block; color: var(--muted); font-size: 11px; }
.insight-rule strong { display: block; margin-top: 7px; color: var(--primary); font: 500 13px/1.55 var(--font-mono); }
.insight-boundary p { margin: 7px 0 0; color: #6c4d2d; font-size: 12px; line-height: 1.55; }
.lesson-insight > a { display: inline-block; margin-top: 18px; color: var(--primary); font-size: 12px; text-decoration: none; }

.evidence-sources { margin-top: 12px; padding: 13px 16px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.9); }
.evidence-sources summary { cursor: pointer; font-size: 13px; font-weight: 500; }
.source-grid { margin-top: 12px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.source-grid a { padding: 10px; border: 1px solid var(--line); border-radius: 7px; color: inherit; text-decoration: none; }
.source-grid strong, .source-grid span { display: block; }
.source-grid strong { color: var(--primary); font-size: 12px; font-weight: 500; }
.source-grid span { margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.evidence-sources > p { margin: 12px 0 2px; color: var(--muted); font-size: 12px; line-height: 1.6; }

@media (max-width: 1180px) {
  .lab-layout { grid-template-columns: 200px minmax(580px, 1fr); }
  .lesson-insight { grid-column: 1 / -1; display: grid; grid-template-columns: 180px 1fr 1fr 160px; gap: 14px; align-items: start; }
  .lesson-insight > p, .insight-rule, .insight-boundary, .lesson-insight > a { margin-top: 0; }
}

@media (max-width: 820px) {
  .demo-shell { padding: 10px; }
  .topbar { align-items: flex-start; }
  .lab-status { display: none; }
  .scope-banner { align-items: flex-start; flex-direction: column; gap: 4px; }
  .lab-layout { display: block; }
  .lesson-nav { margin-bottom: 10px; }
  .lesson-nav__heading { border-bottom: 0; }
  .lesson-nav { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; }
  .lesson-nav__heading, .lesson-nav > p { grid-column: 1 / -1; }
  .lesson-tab { margin-top: 0; }
  .lesson-panel { min-height: 0; padding: 16px; }
  .alignment-grid, .energy-grid, .monitor-grid, .inspection-grid { grid-template-columns: 1fr; }
  .lesson-insight { margin-top: 10px; display: block; }
  .lesson-insight > p, .insight-rule, .insight-boundary, .lesson-insight > a { margin-top: 12px; }
  .source-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 520px) {
  .brand small { display: none; }
  .brand h1 { font-size: 16px; }
  .lesson-nav { grid-template-columns: 1fr; }
  .lesson-nav__heading, .lesson-nav > p { grid-column: auto; }
  .lesson-header { flex-direction: column; }
  .result-strip, .calculated-values, .method-picker, .source-grid { grid-template-columns: 1fr; }
  .signal-matrix > div { grid-template-columns: 1fr; gap: 4px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Keep the Simplified Chinese demo aligned with the site's bilingual UI family. */
html[lang="zh-CN" i] body,
html[lang="zh-CN" i] body :where(*) {
  font-family: var(--font-sans) !important;
}
