/* Popov Academy — content-factory/mosh-physics-2026-27-qualifying-v1 (copied from content-factory/phystech-2026-27-physics-round-2-v1): student labs (loaded only on these pages); copied from the
   accepted Phystech 2025/26 final package (visuals/lab.css there, unchanged above the «Additions of this package» line).
   Base styles shared by all labs; each lab may add visuals/labs/<kind>.css, which assets.mjs appends to this file.
   Colours are local variables. Dark values follow the site's own theme switch (html[data-design=v2] with
   data-theme=dark, or the system dark mode unless data-theme=light) and reuse the site tokens from
   redesign.css, as in the 2025 package; the global theme itself is not changed. */
.arch-lab{min-width:0;--arch-surface:#fff;--arch-ink:#1f2937;--arch-label:#203c58;--arch-muted:#5b6b82;--arch-field-line:#aebed1;--arch-soft-line:#d7e1ed;--arch-primary-bg:#244974;--arch-primary-ink:#fff;--arch-link:#244974;--arch-pressed-bg:#e6eefb;--arch-pressed-line:#244974;--arch-good:#047857;--arch-bad:#b91c1c;--arch-focus:#f59e0b;--arch-fig-line:#1f2937;--arch-grid:#c7d2e0;--arch-fill:#dbeafe;--arch-piece-a:#bfdbfe;--arch-piece-b:#fde68a;--arch-piece-c:#fecaca;--arch-piece-d:#bbf7d0;--arch-accent:#c2410c;--arch-water:#e0f2fe;--arch-ok-bg:#dcfce7;--arch-bad-bg:#fee2e2;--arch-knight:#1d4ed8;--arch-liar:#9f1239;--arch-clear:#e2e8f0}
@media (prefers-color-scheme: dark){:root[data-design="v2"]:not([data-theme="light"]) .arch-lab{--arch-surface:var(--play-stage);--arch-ink:var(--ink);--arch-label:var(--ink);--arch-muted:var(--ink-2);--arch-field-line:var(--ink-3);--arch-soft-line:var(--play-line);--arch-primary-bg:var(--accent);--arch-primary-ink:var(--on-ink);--arch-link:var(--accent-ink);--arch-pressed-bg:var(--accent-soft);--arch-pressed-line:var(--accent);--arch-good:var(--ok);--arch-bad:var(--bad);--arch-fig-line:#dbe4f0;--arch-grid:#4a5568;--arch-fill:#1e3a5f;--arch-piece-a:#1e40af;--arch-piece-b:#854d0e;--arch-piece-c:#9f1239;--arch-piece-d:#166534;--arch-accent:#fb923c;--arch-water:#0c2a3f;--arch-ok-bg:#14341f;--arch-bad-bg:#431818;--arch-knight:#93c5fd;--arch-liar:#fda4af;--arch-clear:#3f4654}}
:root[data-design="v2"][data-theme="dark"] .arch-lab{--arch-surface:var(--play-stage);--arch-ink:var(--ink);--arch-label:var(--ink);--arch-muted:var(--ink-2);--arch-field-line:var(--ink-3);--arch-soft-line:var(--play-line);--arch-primary-bg:var(--accent);--arch-primary-ink:var(--on-ink);--arch-link:var(--accent-ink);--arch-pressed-bg:var(--accent-soft);--arch-pressed-line:var(--accent);--arch-good:var(--ok);--arch-bad:var(--bad);--arch-fig-line:#dbe4f0;--arch-grid:#4a5568;--arch-fill:#1e3a5f;--arch-piece-a:#1e40af;--arch-piece-b:#854d0e;--arch-piece-c:#9f1239;--arch-piece-d:#166534;--arch-accent:#fb923c;--arch-water:#0c2a3f;--arch-ok-bg:#14341f;--arch-bad-bg:#431818;--arch-knight:#93c5fd;--arch-liar:#fda4af;--arch-clear:#3f4654}
.arch-try{margin:18px 0}
.arch-lab [data-arch-lab-body]{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;min-width:0}
.arch-lab .arch-lab-fallback{color:var(--arch-muted);font-size:15px}
.arch-lab label,.arch-lab .arch-label{font-weight:600;color:var(--arch-label)}
.arch-lab .arch-help{font-size:14px;color:var(--arch-muted);margin:0}
.arch-lab .arch-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0}
.arch-lab input[type=text],.arch-lab input[type=number],.arch-lab select{font:inherit;font-size:18px;min-height:44px;padding:8px 12px;border:1px solid var(--arch-field-line);border-radius:12px;background:var(--arch-surface);color:var(--arch-ink);min-width:0}
.arch-lab input[type=number]{width:88px}
.arch-lab input[type=range]{flex:1 1 180px;min-width:0;min-height:44px;accent-color:var(--arch-primary-bg)}
.arch-lab button{font:inherit;font-size:16px;min-height:44px;min-width:44px;padding:10px 16px;border-radius:999px;line-height:1.4;max-width:100%;white-space:normal;cursor:pointer}
.arch-lab .arch-primary{background:var(--arch-primary-bg);color:var(--arch-primary-ink);border:1px solid var(--arch-primary-bg)}
.arch-lab .arch-secondary{background:var(--arch-surface);color:var(--arch-link);border:1px solid var(--arch-field-line)}
.arch-lab button[aria-disabled=true]{opacity:.45;cursor:default}
.arch-lab button:focus-visible,.arch-lab input:focus-visible,.arch-lab select:focus-visible,.arch-lab [tabindex]:focus-visible{outline:3px solid var(--arch-focus);outline-offset:2px}
.arch-lab .arch-actions{display:flex;flex-wrap:wrap;gap:8px}
.arch-lab .arch-toggle{display:flex;flex-wrap:wrap;gap:6px}
.arch-lab .arch-toggle button{background:var(--arch-surface);color:var(--arch-link);border:1px solid var(--arch-field-line)}
.arch-lab .arch-toggle button[aria-pressed=true]{background:var(--arch-pressed-bg);border-color:var(--arch-pressed-line);font-weight:600}
.arch-lab .arch-result{background:var(--arch-surface);color:var(--arch-ink);border:1px solid var(--arch-soft-line);border-radius:14px;padding:14px 16px;line-height:1.55;min-width:0;overflow-wrap:anywhere}
.arch-lab .arch-result:empty{display:none}
.arch-lab :is(button,input,select){scroll-margin-block:120px}
.arch-lab .arch-result p{margin:6px 0}
.arch-lab .arch-checks{list-style:none;padding:0;margin:6px 0;display:grid;gap:6px}
.arch-lab .arch-checks li{display:flex;gap:8px;align-items:flex-start}
.arch-lab .arch-pass::before{content:'✓';color:var(--arch-good);font-weight:700;flex-shrink:0;width:1.2em}
.arch-lab .arch-fail::before{content:'✗';color:var(--arch-bad);font-weight:700;flex-shrink:0;width:1.2em}
.arch-lab .arch-good{color:var(--arch-good);font-weight:600}
.arch-lab .arch-bad{color:var(--arch-bad);font-weight:600}
.arch-lab .arch-sub{display:grid;gap:8px;border-top:1px solid var(--arch-soft-line);padding-top:12px}
.arch-lab .arch-stage{background:var(--arch-surface);border:1px solid var(--arch-soft-line);border-radius:8px;padding:8px;min-width:0}
.arch-lab .arch-stage svg{display:block;width:100%;height:auto;max-height:70vh;touch-action:manipulation}
.arch-lab svg text{fill:var(--arch-ink);font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
.arch-lab .arch-readouts{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0;font-variant-numeric:tabular-nums}
.arch-lab .arch-readouts div{display:flex;gap:6px;align-items:baseline}
.arch-lab .arch-readouts dt{color:var(--arch-muted);font-size:14px}
.arch-lab .arch-readouts dd{margin:0;font-weight:600;color:var(--arch-ink);white-space:nowrap;overflow-wrap:normal}
.arch-lab .arch-table-wrap{overflow-x:auto;max-width:100%}
.arch-lab table.arch-table{border-collapse:collapse;font-variant-numeric:tabular-nums}
.arch-lab table.arch-table th,.arch-lab table.arch-table td{border:1px solid var(--arch-soft-line);padding:4px 8px;text-align:center;color:var(--arch-ink)}
.arch-lab table.arch-table th{color:var(--arch-label);font-weight:600}
.arch-lab .arch-chip{display:inline-flex;align-items:center;justify-content:center;min-width:2.2em;padding:2px 8px;border-radius:999px;border:1px solid var(--arch-soft-line);font-weight:600}
@media(max-width:480px){.arch-lab .arch-row .arch-primary{flex:1 1 100%}.arch-lab button{padding:8px 10px}}
/* shared: play button keeps its width next to a time slider, also on phones */
.arch-lab .arch-timeline{flex-wrap:nowrap}
.arch-lab .arch-timeline .arch-play{flex:0 0 auto;min-width:96px}
/* Inside the «Исследовать» disclosure the lab already has a frame: on phones drop the second one so models keep their width. */
@media (max-width:560px){.lesson-disclosure .arch-lab{padding:0;border:0;background:none;box-shadow:none}.lesson-disclosure .arch-lab .arch-stage{padding:4px}}
/* Phones: «Крупные клетки» (ui.mjs zoomable). Cells keep at least 44 px and the board scrolls sideways in its frame;
   the board geometry is unchanged, only its scale. */
.arch-lab .arch-zoom{min-width:0}
.arch-lab .arch-zoom-tools{margin-bottom:8px}
.arch-lab .arch-zoom-hint{margin:0 0 8px;font-weight:600;color:var(--arch-label)}
.arch-lab .arch-zoom-probe{height:0}
.arch-lab .arch-zoom-scroll{overflow-x:auto;overscroll-behavior-x:contain;padding:4px;min-width:0}
/* shared extras for this package: cell boards built from buttons, a status line that is never hidden under the
   sticky header after a programmatic scroll, and a compact step list */
.arch-lab .arch-board{display:grid;gap:0;justify-content:center;margin:auto}
.arch-lab .arch-cell{aspect-ratio:1;min-width:0;min-height:0;width:100%;padding:0;border-radius:0;background:var(--arch-surface);color:var(--arch-ink);border:1px solid var(--arch-grid);outline-offset:-3px;font-variant-numeric:tabular-nums}
.arch-lab .arch-result{scroll-margin-top:96px;scroll-margin-bottom:96px}
.arch-lab .arch-log{margin:0;padding-left:1.4em;display:grid;gap:4px;font-variant-numeric:tabular-nums}
.arch-lab .arch-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;padding:0;list-style:none;font-size:14px;color:var(--arch-ink)}
.arch-lab .arch-legend li{display:flex;align-items:center;gap:6px}

/* Same page presentation as the final 2023–2024 edition on main (GPT polish of 18.10.2026): the shared research
   renderer follows the current site on these pages only. Diagrams keep their light paper; controls and readouts
   follow the selected theme. */
[data-problem-id^="phystech-2026-2027-physics-"] .cf-figure figcaption,
[data-problem-id^="phystech-2026-2027-physics-"] .lesson-source{color:var(--ink-2)}
[data-problem-id^="phystech-2026-2027-physics-"] .lesson-source summary{color:var(--ink)}
[data-problem-id^="phystech-2026-2027-physics-"] :is(button[data-cf-zoom],button[data-cf-scene-zoom]){color:var(--ink);background:var(--play-stage);border-color:var(--ink-3);border-radius:999px;min-height:44px;padding:10px 16px;margin-top:12px;max-width:100%;line-height:1.4}
[data-problem-id^="phystech-2026-2027-physics-"] .interactive-actions button{color:var(--ink);background:var(--play-stage);border-color:var(--ink-3);font-size:16px}
[data-problem-id^="phystech-2026-2027-physics-"] .interactive-actions button[data-action=play]{color:var(--on-ink);background:var(--ink);border-color:var(--ink)}
[data-problem-id^="phystech-2026-2027-physics-"] .interactive-range-row{grid-template-columns:minmax(60px,1fr) 88px}
[data-problem-id^="phystech-2026-2027-physics-"] .cf-number{background:var(--play-stage);color:var(--ink);border-color:var(--ink-3);border-radius:12px;min-height:44px;height:auto;padding:8px 6px;font-size:18px;font-variant-numeric:tabular-nums}
[data-problem-id^="phystech-2026-2027-physics-"] .interactive-range-row input[type=range]{min-height:44px;accent-color:var(--accent)}
[data-problem-id^="phystech-2026-2027-physics-"] .interactive-results>div{background:var(--play-stage);border-color:var(--play-line);border-radius:14px;padding:14px 16px;font-size:16px}
[data-problem-id^="phystech-2026-2027-physics-"] .interactive-results :is(div,span,strong){color:var(--ink)}
[data-problem-id^="phystech-2026-2027-physics-"] .learning-interactive :is(button,input){scroll-margin-block:120px}
/* Keep diagrams readable as diagrams, without the inherited white text outline. */
[data-problem-id^="phystech-2026-2027-physics-"] :is(.cf-figure-svg,.cf-zoom-content) svg text{stroke:none;paint-order:normal}
[data-problem-id^="phystech-2026-2027-physics-"] .cf-figure figcaption button[data-cf-zoom]{display:block;margin:14px auto 0}
[data-problem-id^="phystech-2026-2027-physics-"] .arch-model-entry{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;padding:20px 24px;margin:24px 0;border:1px solid var(--play-line);border-radius:var(--r-lg);background:var(--play-bg);color:var(--ink)}
[data-problem-id^="phystech-2026-2027-physics-"] .arch-model-entry>div{flex:1 1 240px;min-width:0}
[data-problem-id^="phystech-2026-2027-physics-"] .arch-model-entry strong{font-size:17px}
[data-problem-id^="phystech-2026-2027-physics-"] .arch-model-entry p{margin:5px 0 0;color:var(--ink-2);font-size:16px;line-height:1.5}
[data-problem-id^="phystech-2026-2027-physics-"] .arch-model-entry a{display:inline-flex;gap:12px;align-items:center;min-height:44px;padding:10px 16px;border:1px solid var(--ink-3);border-radius:999px;background:var(--play-stage);color:var(--ink);font:600 16px/1.4 var(--font);text-decoration:none}
[data-problem-id^="phystech-2026-2027-physics-"] .arch-model-entry a:hover{border-color:var(--accent);color:var(--accent)}
[data-problem-id^="phystech-2026-2027-physics-"] .arch-model-entry a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media(max-width:480px){[data-problem-id^="phystech-2026-2027-physics-"] .arch-model-entry{padding:16px}[data-problem-id^="phystech-2026-2027-physics-"] .arch-model-entry a{width:100%;justify-content:space-between}}

/* ===== Physics controls of this package (visuals/phys.mjs): slider + exact input + large «−»/«+» ===== */
.arch-lab .phx-controls{display:grid;gap:12px;min-width:0}
.arch-lab .phx-params{display:grid;gap:12px;min-width:0}
.arch-lab .phx-param{display:grid;gap:2px;min-width:0;padding:6px 10px;border:1px solid var(--arch-soft-line);border-radius:14px;background:var(--arch-surface)}
.arch-lab .phx-param-label{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.arch-lab .phx-param-name{font-weight:600;color:var(--arch-label)}
.arch-lab .phx-param-bounds{font-weight:400;font-size:13px;color:var(--arch-muted)}
.arch-lab .phx-param .arch-help{font-size:13px}
.arch-lab .phx-param-row{display:grid;grid-template-columns:48px minmax(0,1fr) 48px var(--phx-num-w,84px);gap:8px;align-items:center;min-width:0}
.arch-lab .phx-param-row input[type=range]{width:100%;margin:0}
.arch-lab .phx-step{min-width:48px;min-height:48px;padding:0;font-size:24px;font-weight:600;line-height:1;border-radius:12px}
.arch-lab input.phx-num{width:100%;font-size:18px;min-height:48px;padding:8px 10px;text-align:right;font-variant-numeric:tabular-nums}
.arch-lab .phx-param-msg{margin:0;font-size:14px;color:var(--arch-bad);min-height:0}
.arch-lab .phx-param-msg:empty{display:none}
@media (max-width:420px){
 .arch-lab .phx-param-row{grid-template-columns:48px minmax(0,1fr) 48px;grid-template-areas:"range range range" "minus num plus"}
 .arch-lab .phx-param-row input[type=range]{grid-area:range}
 .arch-lab .phx-param-row .phx-step:first-child{grid-area:minus}
 .arch-lab .phx-param-row .phx-step:nth-child(3){grid-area:plus}
 .arch-lab .phx-param-row input.phx-num{grid-area:num}
}
.arch-lab .phx-presets{display:grid;gap:6px}
.arch-lab .phx-presets-title{margin:0;font-weight:600;color:var(--arch-label)}
.arch-lab .phx-preset[aria-pressed=true]{background:var(--arch-pressed-bg);border-color:var(--arch-pressed-line);font-weight:600}
.arch-lab .phx-preset-state{margin:0;font-size:14px;color:var(--arch-muted)}
.arch-lab .phx-readouts dd.phx-secret{color:var(--arch-muted)}
.arch-lab .phx-time{font-variant-numeric:tabular-nums;font-weight:600;min-width:9em;color:var(--arch-ink)}
.arch-lab .phx-clock{display:grid;gap:6px}
.arch-lab .phx-clock input[type=range]{flex:1 1 160px}
.arch-lab .phx-svg{display:block;width:100%;height:auto}
.arch-lab .phx-stage{padding:4px}
.arch-lab .phx-stage-pair{display:grid;gap:10px;grid-template-columns:minmax(0,1fr)}
@media (min-width:900px){.arch-lab .phx-stage-pair.phx-two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.arch-lab .phx-choice{display:flex;flex-wrap:wrap;gap:8px}
.arch-lab .phx-note{margin:0;font-size:14px;color:var(--arch-muted)}
/* SVG: theme-aware strokes and fills */
.arch-lab .phx-svg{--phx-a:#1d4ed8;--phx-b:#c2410c;--phx-c:#047857;--phx-d:#7c3aed;--phx-water:#dbeafe;--phx-body:#e2e8f0;--phx-paper:#ffffff}
@media (prefers-color-scheme: dark){:root[data-design="v2"]:not([data-theme="light"]) .arch-lab .phx-svg{--phx-a:#93c5fd;--phx-b:#fdba74;--phx-c:#6ee7b7;--phx-d:#c4b5fd;--phx-water:#0c2a3f;--phx-body:#334155;--phx-paper:transparent}}
:root[data-design="v2"][data-theme="dark"] .arch-lab .phx-svg{--phx-a:#93c5fd;--phx-b:#fdba74;--phx-c:#6ee7b7;--phx-d:#c4b5fd;--phx-water:#0c2a3f;--phx-body:#334155;--phx-paper:transparent}
.arch-lab .phx-svg .phx-line{stroke:var(--arch-fig-line);stroke-width:2;fill:none}
.arch-lab .phx-svg .phx-thin{stroke:var(--arch-fig-line);stroke-width:1;fill:none}
.arch-lab .phx-svg .phx-dash{stroke:var(--arch-muted);stroke-width:1.5;fill:none;stroke-dasharray:5 4}
.arch-lab .phx-svg .phx-body{fill:var(--phx-body);stroke:var(--arch-fig-line);stroke-width:2}
.arch-lab .phx-svg .phx-body-a{fill:var(--phx-a);stroke:var(--arch-fig-line);stroke-width:1.5}
.arch-lab .phx-svg .phx-body-b{fill:var(--phx-b);stroke:var(--arch-fig-line);stroke-width:1.5}
.arch-lab .phx-svg .phx-water{fill:var(--phx-water);stroke:none}
.arch-lab .phx-svg .phx-ground{stroke:var(--arch-fig-line);stroke-width:2.5}
.arch-lab .phx-svg .phx-hatch{stroke:var(--arch-fig-line);stroke-width:1.2}
.arch-lab .phx-svg .phx-grid{stroke:var(--arch-grid);stroke-width:1}
.arch-lab .phx-svg .phx-axis{stroke:var(--arch-fig-line);stroke-width:1.5}
.arch-lab .phx-svg .phx-tick{font-size:12px;fill:var(--arch-muted)}
.arch-lab .phx-svg .phx-axis-label{font-size:13px;font-weight:600}
.arch-lab .phx-svg .phx-text{font-size:15px}
.arch-lab .phx-svg .phx-small{font-size:12.5px}
.arch-lab .phx-svg .phx-big{font-size:18px;font-weight:600}
.arch-lab .phx-svg .phx-curve{fill:none;stroke:var(--phx-a);stroke-width:2.5}
.arch-lab .phx-svg .phx-curve-b{fill:none;stroke:var(--phx-b);stroke-width:2.5}
.arch-lab .phx-svg .phx-curve-c{fill:none;stroke:var(--phx-c);stroke-width:2.5}
.arch-lab .phx-svg .phx-curve-d{fill:none;stroke:var(--phx-d);stroke-width:2.5}
.arch-lab .phx-svg .phx-ghost{fill:none;stroke:var(--arch-muted);stroke-width:1.5;stroke-dasharray:3 4}
.arch-lab .phx-svg .phx-arrow .phx-arrow-shaft{stroke:var(--arch-accent);stroke-width:2.5}
.arch-lab .phx-svg .phx-arrow .phx-arrow-head{fill:var(--arch-accent);stroke:none}
.arch-lab .phx-svg .phx-arrow-a .phx-arrow-shaft{stroke:var(--phx-a);stroke-width:2.5}
.arch-lab .phx-svg .phx-arrow-a .phx-arrow-head{fill:var(--phx-a);stroke:none}
.arch-lab .phx-svg .phx-arrow-b .phx-arrow-shaft{stroke:var(--phx-b);stroke-width:2.5}
.arch-lab .phx-svg .phx-arrow-b .phx-arrow-head{fill:var(--phx-b);stroke:none}
.arch-lab .phx-svg .phx-arrow-c .phx-arrow-shaft{stroke:var(--phx-c);stroke-width:2.5}
.arch-lab .phx-svg .phx-arrow-c .phx-arrow-head{fill:var(--phx-c);stroke:none}
.arch-lab .phx-svg .phx-arrow-ink .phx-arrow-shaft{stroke:var(--arch-fig-line);stroke-width:1.6}
.arch-lab .phx-svg .phx-arrow-ink .phx-arrow-head{fill:var(--arch-fig-line);stroke:none}
.arch-lab .phx-svg .phx-dot{fill:var(--arch-fig-line);stroke:none}
.arch-lab .phx-svg .phx-dot-a{fill:var(--phx-a);stroke:var(--arch-surface);stroke-width:1.5}
.arch-lab .phx-svg .phx-dot-b{fill:var(--phx-b);stroke:var(--arch-surface);stroke-width:1.5}
.arch-lab .phx-svg .phx-dot-c{fill:var(--phx-c);stroke:var(--arch-surface);stroke-width:1.5}
.arch-lab .phx-svg .phx-fill-a{fill:var(--phx-a);fill-opacity:.18;stroke:var(--phx-a);stroke-width:1.5}
.arch-lab .phx-svg .phx-fill-b{fill:var(--phx-b);fill-opacity:.18;stroke:var(--phx-b);stroke-width:1.5}
.arch-lab .phx-svg .phx-fill-c{fill:var(--phx-c);fill-opacity:.18;stroke:var(--phx-c);stroke-width:1.5}
.arch-lab .phx-svg .phx-fill-d{fill:var(--phx-d);fill-opacity:.18;stroke:var(--phx-d);stroke-width:1.5}
.arch-lab .phx-svg .phx-wire{stroke:var(--arch-fig-line);stroke-width:2.5;fill:none;stroke-linecap:round}
.arch-lab .phx-svg .phx-hot{stroke:var(--phx-b);stroke-width:4;fill:none;stroke-linecap:round}
.arch-lab .phx-svg .phx-cold{stroke:var(--phx-a);stroke-width:4;fill:none;stroke-linecap:round}
.arch-lab .phx-svg .phx-text-a{fill:var(--phx-a);font-weight:600}
.arch-lab .phx-svg .phx-text-b{fill:var(--phx-b);font-weight:600}
.arch-lab .phx-svg .phx-text-c{fill:var(--phx-c);font-weight:600}
.arch-lab .phx-svg text{paint-order:stroke;stroke:var(--arch-surface);stroke-width:3px;stroke-linejoin:round}
.arch-lab .phx-svg .phx-tick,.arch-lab .phx-svg .phx-nohalo{stroke:none}
.arch-lab .phx-drag{cursor:grab;touch-action:none}
.arch-lab .phx-handle{fill:var(--phx-b);fill-opacity:.25;stroke:var(--phx-b);stroke-width:2}
.arch-lab .phx-handle:focus-visible{outline:none;stroke:var(--arch-focus);stroke-width:4}
/* Readouts as a two-column table: long values wrap instead of running off a phone screen. */
.arch-lab .phx-readouts{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:6px 12px;align-items:baseline}
.arch-lab .phx-readouts>div{display:contents}
.arch-lab .phx-readouts dd{white-space:normal;overflow-wrap:anywhere}
.arch-lab .phx-svg .phx-rod{stroke:var(--arch-fig-line);stroke-width:7;stroke-linecap:round;fill:none}
.arch-lab .phx-svg .phx-arrow-g .phx-arrow-shaft{stroke:var(--arch-fig-line);stroke-width:3}
.arch-lab .phx-svg .phx-arrow-g .phx-arrow-head{fill:var(--arch-fig-line);stroke:none}
/* ===== Additions of the final package ===== */
/* Check boxes: a large box and a whole-label touch target of at least 44 px. */
.arch-lab label.arch-row{min-height:44px;cursor:pointer;flex-wrap:nowrap}
.arch-lab label.arch-row>span{flex:1 1 auto;min-width:0}
.arch-lab input[type=checkbox]{width:24px;height:24px;margin:0;flex:0 0 auto;accent-color:var(--arch-primary-bg)}

/* Phone controls remain in document flow: a sticky scene hid parameter names,
   sliders and playback buttons while scrolling. Never trade readable controls for a floating scene. */
.learning-interactive.arch-lab{overflow:clip}
@media (max-width:600px) and (min-height:500px){
 .arch-lab .phx-stage{position:relative;top:auto;z-index:auto;background:var(--arch-surface);max-height:40vh}
 .arch-lab .phx-stage .phx-svg{max-height:calc(40vh - 10px)}
 /* z-index:auto too: in a grid or flex lab body a static item with a z-index still stacks and would scroll over the sticky scene */
 .arch-lab .phx-stage ~ .phx-stage,.arch-lab .phx-stage-pair .phx-stage{position:static;z-index:auto;max-height:none}
 .arch-lab .phx-stage-pair .phx-svg{max-height:none}
}
/* Narrow screens: readout names and values in two equal columns, long names may break */
@media (max-width:360px){
 .arch-lab .phx-readouts{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
 .arch-lab .phx-readouts dt{overflow-wrap:anywhere}
}

/* ===== Additions of this package (the version frame and drawn objects as in the Phystech 2024/25 math package) ===== */
/* Official versions: ID chips, the statement of the chosen version, «свои значения» status with a way back. */
.arch-lab .p25-versions{display:grid;gap:8px;min-width:0;padding:12px 14px;border:1px solid var(--arch-soft-line);border-radius:14px;background:var(--arch-surface)}
.arch-lab .p25-versions-head,.arch-lab .p25-data-head{margin:0;font-weight:700;color:var(--arch-label)}
.arch-lab .p25-chip-group{display:grid;gap:4px}
.arch-lab .p25-chip-title{margin:0;font-size:14px;color:var(--arch-muted)}
.arch-lab .p25-chips{gap:8px}
.arch-lab .p25-chip{font-variant-numeric:tabular-nums}
.arch-lab .p25-chip[aria-pressed=true]{background:var(--arch-pressed-bg);border-color:var(--arch-pressed-line);font-weight:700;box-shadow:inset 0 0 0 1px var(--arch-pressed-line)}
.arch-lab .p25-version{display:grid;gap:4px;padding:10px 12px;border-radius:10px;background:var(--p25-paper);border-left:4px solid var(--arch-pressed-line)}
.arch-lab .p25-version p{margin:0}
.arch-lab .p25-version-title{font-size:14px;font-weight:600;color:var(--arch-muted)}
.arch-lab .p25-version-text{font-size:16px;line-height:1.55;color:var(--arch-ink);overflow-wrap:anywhere}
.arch-lab .p25-version-diff{font-size:14px;color:var(--arch-label);font-weight:600}
.arch-lab .p25-status-row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.arch-lab .p25-status{margin:0;font-size:14px;color:var(--arch-muted);flex:1 1 220px}
.arch-lab .p25-data{display:grid;gap:8px;min-width:0}
/* the hidden result: nothing of it is in the page before the press */
.arch-lab .p25-secret{display:grid;gap:8px}
.arch-lab .p25-reveal{justify-self:start}
.arch-lab .p25-secret-body{display:grid;gap:6px;padding:12px 14px;border-radius:12px;border:2px solid var(--arch-good);background:var(--arch-surface);color:var(--arch-ink);line-height:1.55}
.arch-lab .p25-secret-body p{margin:0}
.arch-lab .p25-secret-body:focus{outline:3px solid var(--arch-focus);outline-offset:2px}
.arch-lab .p25-secret-body strong{color:var(--arch-good)}
.arch-lab .p25-facts dd.phx-secret{font-weight:700}
/* own actions of a lab: cards, cells, tokens as real buttons with a 44 px target */
.arch-lab .p25-tiles{display:flex;flex-wrap:wrap;gap:6px}
.arch-lab .p25-tile{min-width:44px;min-height:44px;padding:6px 10px;border-radius:10px;border:1px solid var(--arch-field-line);background:var(--arch-surface);color:var(--arch-ink);font-weight:600;font-variant-numeric:tabular-nums}
.arch-lab .p25-tile[aria-pressed=true]{background:var(--arch-pressed-bg);border-color:var(--arch-pressed-line);box-shadow:inset 0 0 0 1px var(--arch-pressed-line)}
/* drawn objects (draw.mjs): illustration colours with an outline that follows the theme */
.arch-lab{--p25-paper:#f6f8fc;--p25-skin:#f6d2b4;--p25-hair-a:#7c4a25;--p25-hair-b:#2b2b33;--p25-hair-c:#d9a441;--p25-shirt-a:#3b82f6;--p25-shirt-b:#ef6c3a;--p25-shirt-c:#22a06b;--p25-shirt-d:#8b5cf6;--p25-pants:#334155;--p25-card:#fffdf7;--p25-card-edge:#c9b98f;--p25-board:#24543f;--p25-board-ink:#f4f1e6;--p25-wood:#b07a43;--p25-candy-a:#ef4444;--p25-candy-b:#f59e0b;--p25-candy-c:#7c4a25;--p25-paper2:#ffffff;--p25-grass:#86c06c;--p25-grass2:#5f9d4b;--p25-soil:#c9a26b;--p25-water:#bfe1f6;--p25-metal:#94a3b8;--p25-glass:#cfe8ff;--p25-track:#d97757}
@media (prefers-color-scheme: dark){:root[data-design="v2"]:not([data-theme="light"]) .arch-lab{--p25-paper:#1b2333;--p25-track:#a3523b;--p25-skin:#e8bf9c;--p25-card:#f3efe2;--p25-card-edge:#8f8466;--p25-board:#1f4a37;--p25-paper2:#e9edf5;--p25-water:#1e4a66;--p25-glass:#8db8de}}
:root[data-design="v2"][data-theme="dark"] .arch-lab{--p25-paper:#1b2333;--p25-track:#a3523b;--p25-skin:#e8bf9c;--p25-card:#f3efe2;--p25-card-edge:#8f8466;--p25-board:#1f4a37;--p25-paper2:#e9edf5;--p25-water:#1e4a66;--p25-glass:#8db8de}
.arch-lab .phx-svg .p25-o{stroke:var(--arch-fig-line);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}
.arch-lab .phx-svg .p25-o-thin{stroke:var(--arch-fig-line);stroke-width:1;stroke-linejoin:round}
.arch-lab .phx-svg .p25-card-text{fill:#1f2937;font-weight:700;stroke:none}
.arch-lab .phx-svg .p25-board-text{fill:var(--p25-board-ink);stroke:none;font-family:"Comic Sans MS","Chalkboard SE","Segoe Print",system-ui,sans-serif}
.arch-lab .phx-svg .p25-shadow{fill:#0f172a;fill-opacity:.12;stroke:none}

.arch-lab .p25-swap{gap:6px}
.arch-lab .p25-swap .p25-tile{min-width:44px;font-size:20px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--p25-card);color:#1f2937;border-color:var(--p25-card-edge)}
.arch-lab .p25-swap .p25-tile[aria-pressed=true]{outline:3px solid var(--arch-focus);outline-offset:2px}
.arch-lab .p25-swap-note{margin:4px 0 0;min-height:1.4em}
.arch-lab .phx-svg .p25-scale-text{fill:var(--arch-ink);stroke:none;font-weight:600}
.arch-lab .p25-tile[aria-disabled=true]{opacity:.45}
.arch-lab{--p25-snow:#eef4fb}
@media (prefers-color-scheme: dark){:root[data-design="v2"]:not([data-theme="light"]) .arch-lab{--p25-snow:#26324a}}
:root[data-design="v2"][data-theme="dark"] .arch-lab{--p25-snow:#26324a}
/* 9-II №8: a resistor 2R on the cards of the arrangement */
.arch-lab .p25-swap .p25-tile.p25-tile-alt{box-shadow:inset 0 -5px 0 #ef6c3a}

/* ===== Phystech 2024/25 physics ===== */
/* The scene keeps its drawn size on small screens. The inherited phone cap (40 % of the screen height, made for a sticky
   scene) shrank the tall two-panel scenes of this package — a scene above its graph, up to 630 px — to half size with
   7–8 px labels. The scene stays in the normal flow and the page scrolls past it to the controls. */
.arch-lab .arch-stage svg.phx-svg{max-height:none}
@media (max-width:600px) and (min-height:500px){
 .arch-lab .phx-stage{max-height:none}
 .arch-lab .phx-stage .phx-svg{max-height:none}
}
/* A step of the solution is a row «number + text» (shared research.css). Its text column takes the whole remaining width:
   sized by its content, a step with only a heading and a formula (the answer) shrank to the narrowest layout of the
   formula, and the responsive formula then measured that narrow column and kept the formula cut with «Прокрути формулу». */
[data-problem-id^="phystech-2026-2027-physics-"] .proof-step>div{flex:1 1 auto}
/* A long formula keeps its own horizontal scroll, its keyboard focus and the accessible name of the shared
   math-responsive.js («Формула, можно прокрутить по горизонтали»), without the text «↔ Прокрути формулу» under it — as in the
   owner's correction of the Phystech 2025/26 qualifying lessons (25.10.2026): the text showed also where the formula fitted
   (inside the 10 px margin) and only took room. */
[data-problem-id^="phystech-2026-2027-physics-"] .math-display[data-math-overflow=true]::after{content:none}
/* GPT-2 R12: this stylesheet is loaded only by these 30 lessons.
   Restore normal inline KaTeX layout: the Atlas inline-block/hidden rule cuts
   vector accents and subscripts. Display equations keep their own containers. */
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-main:has([data-arch-lab]) p > .katex,
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-main:has([data-arch-lab]) .math-inline-short {
  display:inline;
  max-width:none;
  overflow:visible;
  vertical-align:baseline;
  padding:0;
  margin:0;
}

/* Loaded only by this batch. Keep the mobile hint label whole at 320 CSS px. */
@media (max-width:360px){:root[data-design="v2"] button[data-bar="hint"]{font-size:14px!important}}

/* ===== Additions of content-factory/mosh-physics-2026-27-qualifying-v1: the answer check by subparts (visuals/parts.mjs) =====
   It sits next to the statement (outside .arch-lab), so it uses the site tokens with light fallbacks. */
.mosh-parts{margin:18px 0 0;padding:16px;border:1px solid var(--line,#d7e1ed);border-radius:16px;background:var(--surface,#fff);min-width:0}
.mosh-parts h3{margin:0 0 6px;font-size:18px}
.mosh-parts .mosh-parts-help{margin:0 0 10px;font-size:15px;color:var(--ink-2,#5b6b82)}
.mosh-parts .mosh-parts-variants{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.mosh-parts .mosh-parts-variants button{font:inherit;font-size:16px;min-height:44px;min-width:44px;padding:8px 16px;border-radius:999px;border:1px solid var(--line,#aebed1);background:transparent;color:inherit;cursor:pointer}
.mosh-parts .mosh-parts-variants button[aria-pressed="true"]{border-color:var(--accent,#244974);background:var(--accent-soft,#e6eefb);font-weight:600}
.mosh-parts .mosh-parts-vnote{margin:0 0 10px;font-size:15px}
.mosh-parts .mosh-part{display:grid;gap:6px;margin:0 0 12px;min-width:0}
.mosh-parts .mosh-part-key{font-weight:700}
.mosh-parts .mosh-part-unit{color:var(--ink-2,#5b6b82)}
.mosh-parts .mosh-part-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-width:0}
.mosh-parts .mosh-part-row input{font:inherit;font-size:18px;min-height:44px;width:min(220px,100%);padding:8px 12px;border:1px solid var(--line,#aebed1);border-radius:12px;background:transparent;color:inherit;min-width:0}
.mosh-parts .mosh-part-result{font-size:15px}
.mosh-parts [data-result="correct"]{color:var(--ok,#047857)}
.mosh-parts [data-result="incorrect"],.mosh-parts [data-result="format"]{color:var(--bad,#b91c1c)}
.mosh-parts .mosh-part-note{margin:0;font-size:15px;color:var(--ink-2,#5b6b82)}
.mosh-parts .mosh-parts-submit{font:inherit;font-size:16px;min-height:44px;padding:10px 20px;border-radius:999px;border:1px solid var(--accent,#244974);background:var(--accent,#244974);color:var(--on-ink,#fff);cursor:pointer}
.mosh-parts .mosh-parts-feedback{margin:10px 0 0}

/* a real fraction in a text of a model (ui.mjs setText: «{num|den}») */
.arch-lab .arch-frac{display:inline-flex;flex-direction:column;align-items:stretch;text-align:center;vertical-align:middle;line-height:1.15;margin:0 .15em;font-variant-numeric:tabular-nums}
.arch-lab .arch-frac>span:first-child{border-bottom:1.5px solid currentColor;padding:0 .2em}
.arch-lab .arch-frac>span:last-child{padding:0 .2em}
/* the bar of a fraction spans the wider of numerator and denominator (stretch); a root's bar covers the whole radicand */
.arch-lab .arch-root{display:inline-flex;align-items:flex-start;white-space:nowrap}
.arch-lab .arch-root>span{border-top:1.5px solid currentColor;padding:0 .1em;margin-left:.05em;margin-top:.12em}
.arch-lab sup{font-size:75%;line-height:0}

/* ETALON §3 (приёмка ННГУ 03.11, контраст): the scene of every lab is light paper with dark lines and labels in both themes —
   no dark field with white elements; the symbols of the legend are the same paper (a white chip); the controls and readouts
   around it follow the theme (GPT-1 R11, круг 3). The light values are those of the light theme above; the selectors outrank
   the dark rules of lab.css and of visuals/labs/*.css. */
@media (prefers-color-scheme: dark){:root[data-design="v2"]:not([data-theme="light"]) .arch-lab .arch-stage.phx-stage,:root[data-design="v2"]:not([data-theme="light"]) .arch-lab .arch-legend .phx-svg.phx-svg{--arch-surface:#fff;--arch-ink:#1f2937;--arch-label:#203c58;--arch-muted:#5b6b82;--arch-field-line:#aebed1;--arch-soft-line:#d7e1ed;--arch-good:#047857;--arch-bad:#b91c1c;--arch-fig-line:#1f2937;--arch-grid:#c7d2e0;--arch-fill:#dbeafe;--arch-piece-a:#bfdbfe;--arch-piece-b:#fde68a;--arch-piece-c:#fecaca;--arch-piece-d:#bbf7d0;--arch-accent:#c2410c;--arch-water:#e0f2fe;--arch-ok-bg:#dcfce7;--arch-bad-bg:#fee2e2;--arch-knight:#1d4ed8;--arch-liar:#9f1239;--arch-clear:#e2e8f0;--p25-paper:#f6f8fc;--p25-track:#d97757;--p25-skin:#f6d2b4;--p25-card:#fffdf7;--p25-card-edge:#c9b98f;--p25-board:#24543f;--p25-paper2:#ffffff;--p25-water:#bfe1f6;--p25-glass:#cfe8ff;--p25-snow:#eef4fb;color:#1f2937;color-scheme:light}:root[data-design="v2"]:not([data-theme="light"]) .arch-lab .arch-stage.phx-stage .phx-svg.phx-svg,:root[data-design="v2"]:not([data-theme="light"]) .arch-lab .arch-legend .phx-svg.phx-svg{--phx-a:#1d4ed8;--phx-b:#c2410c;--phx-c:#047857;--phx-d:#7c3aed;--phx-water:#dbeafe;--phx-body:#e2e8f0;--phx-paper:#ffffff;--p11-mm:#9fb3c8;--p11-paper:#fbfdff}:root[data-design="v2"]:not([data-theme="light"]) .arch-lab .arch-stage.phx-stage .phx-svg.phx-svg .p11j-thread{stroke:#92400e}:root[data-design="v2"]:not([data-theme="light"]) .arch-lab .arch-stage.phx-stage .phx-svg.phx-svg .p11j-ball{fill:#475569}:root[data-design="v2"]:not([data-theme="light"]) .arch-lab .arch-stage.phx-stage .phx-svg.phx-svg .p11-blot{fill:#ffffff;stroke:#e2e8f0}}
:root[data-design="v2"][data-theme="dark"] .arch-lab .arch-stage.phx-stage,:root[data-design="v2"][data-theme="dark"] .arch-lab .arch-legend .phx-svg.phx-svg{--arch-surface:#fff;--arch-ink:#1f2937;--arch-label:#203c58;--arch-muted:#5b6b82;--arch-field-line:#aebed1;--arch-soft-line:#d7e1ed;--arch-good:#047857;--arch-bad:#b91c1c;--arch-fig-line:#1f2937;--arch-grid:#c7d2e0;--arch-fill:#dbeafe;--arch-piece-a:#bfdbfe;--arch-piece-b:#fde68a;--arch-piece-c:#fecaca;--arch-piece-d:#bbf7d0;--arch-accent:#c2410c;--arch-water:#e0f2fe;--arch-ok-bg:#dcfce7;--arch-bad-bg:#fee2e2;--arch-knight:#1d4ed8;--arch-liar:#9f1239;--arch-clear:#e2e8f0;--p25-paper:#f6f8fc;--p25-track:#d97757;--p25-skin:#f6d2b4;--p25-card:#fffdf7;--p25-card-edge:#c9b98f;--p25-board:#24543f;--p25-paper2:#ffffff;--p25-water:#bfe1f6;--p25-glass:#cfe8ff;--p25-snow:#eef4fb;color:#1f2937;color-scheme:light}:root[data-design="v2"][data-theme="dark"] .arch-lab .arch-stage.phx-stage .phx-svg.phx-svg,:root[data-design="v2"][data-theme="dark"] .arch-lab .arch-legend .phx-svg.phx-svg{--phx-a:#1d4ed8;--phx-b:#c2410c;--phx-c:#047857;--phx-d:#7c3aed;--phx-water:#dbeafe;--phx-body:#e2e8f0;--phx-paper:#ffffff;--p11-mm:#9fb3c8;--p11-paper:#fbfdff}:root[data-design="v2"][data-theme="dark"] .arch-lab .arch-stage.phx-stage .phx-svg.phx-svg .p11j-thread{stroke:#92400e}:root[data-design="v2"][data-theme="dark"] .arch-lab .arch-stage.phx-stage .phx-svg.phx-svg .p11j-ball{fill:#475569}:root[data-design="v2"][data-theme="dark"] .arch-lab .arch-stage.phx-stage .phx-svg.phx-svg .p11-blot{fill:#ffffff;stroke:#e2e8f0}
:root[data-design="v2"][data-theme="dark"] .arch-lab .arch-legend .phx-svg.phx-svg{background:#fff;border-radius:4px}
@media (prefers-color-scheme: dark){:root[data-design="v2"]:not([data-theme="light"]) .arch-lab .arch-legend .phx-svg.phx-svg{background:#fff;border-radius:4px}}
/* GPT-1 R14 (#263): an inline formula with a fraction (a row .base of KaTeX) gets a little air above and below, so that the
   fractions of neighbouring lines of a paragraph never touch (Safari iPhone: «3» under «D»); the font size stays. */
[data-problem-id^="moscow-physics-2026-2027-"] :is(p,li) .katex:not(.katex-display>.katex) .base:has(.mfrac){padding-block:4px}

/* Popov Academy — content-factory/mosh-physics-2026-27-qualifying-v1: labs of 7 №1–4 and 8 №1–4 (p7q1-*, p8q1-*).
   A visible status line under the drawing and the colour keys of the legends (same colours as the --phx-a… of the drawings). */
.arch-lab .m78-status{margin:0;padding:8px 12px;border-radius:10px;background:var(--p25-paper);color:var(--arch-ink);font-weight:600;font-size:15px;line-height:1.45;overflow-wrap:anywhere}
.arch-lab .m78-legend{font-size:14px}
.arch-lab .m78-key{display:inline-block;flex:0 0 auto;width:22px;height:12px;border-radius:3px;border:1px solid var(--arch-fig-line);background:var(--m78-k)}
.arch-lab .m78-key[data-k=line]{height:0;border-width:2px 0 0;border-color:var(--m78-k);border-radius:0}
.arch-lab .m78-key[data-k=dash]{height:0;border-width:2px 0 0;border-style:dashed;border-color:var(--arch-muted);border-radius:0;background:none}
.arch-lab .m78-key[data-c=a]{--m78-k:#1d4ed8}
.arch-lab .m78-key[data-c=b]{--m78-k:#c2410c}
.arch-lab .m78-key[data-c=c]{--m78-k:#047857}
.arch-lab .m78-key[data-c=d]{--m78-k:#7c3aed}
.arch-lab .m78-key[data-c=grass]{--m78-k:#86c06c}
.arch-lab .m78-key[data-c=wood]{--m78-k:#b07a43}
.arch-lab .m78-key[data-c=water]{--m78-k:#93c5fd}
.arch-lab .m78-key[data-c=kero]{--m78-k:#fcd34d}
.arch-lab .m78-key[data-c=ice]{--m78-k:#e0f7ff}
.arch-lab .m78-key[data-c=grey]{--m78-k:#94a3b8}
@media (prefers-color-scheme: dark){:root[data-design="v2"]:not([data-theme="light"]) .arch-lab .m78-key{--m78-dark:1}
 :root[data-design="v2"]:not([data-theme="light"]) .arch-lab .m78-key[data-c=a]{--m78-k:#93c5fd}
 :root[data-design="v2"]:not([data-theme="light"]) .arch-lab .m78-key[data-c=b]{--m78-k:#fdba74}
 :root[data-design="v2"]:not([data-theme="light"]) .arch-lab .m78-key[data-c=c]{--m78-k:#6ee7b7}
 :root[data-design="v2"]:not([data-theme="light"]) .arch-lab .m78-key[data-c=d]{--m78-k:#c4b5fd}}
:root[data-design="v2"][data-theme="dark"] .arch-lab .m78-key[data-c=a]{--m78-k:#93c5fd}
:root[data-design="v2"][data-theme="dark"] .arch-lab .m78-key[data-c=b]{--m78-k:#fdba74}
:root[data-design="v2"][data-theme="dark"] .arch-lab .m78-key[data-c=c]{--m78-k:#6ee7b7}
:root[data-design="v2"][data-theme="dark"] .arch-lab .m78-key[data-c=d]{--m78-k:#c4b5fd}
.arch-lab .m78-tools{display:grid;gap:10px}

/* Popov Academy — content-factory/mosh-physics-2026-27-qualifying-v1: lab of 10 №1 «Стержень» (p10q1-1-rod).
   Rails of the rod ends, the sliders on them, the purple arrows of the components of a_C, the angular-velocity dial. */
.arch-lab .phx-svg .p10q1-1-rail{stroke:var(--arch-muted);stroke-width:1.6;fill:none;stroke-dasharray:7 5}
.arch-lab .phx-svg .p10q1-1-slider{fill:#cbd5e1;stroke:var(--arch-fig-line);stroke-width:1.4}
.arch-lab .phx-svg .p10q1-1-joint{fill:var(--arch-surface,#fff);stroke:var(--arch-fig-line);stroke-width:2}
.arch-lab .phx-svg .p10q1-1-rodbody{stroke:#64748b;stroke-width:8;stroke-linecap:round;fill:none}
.arch-lab .phx-svg .p10q1-1-rodshine{stroke:#e2e8f0;stroke-width:2;stroke-linecap:round;fill:none;opacity:.8}
.arch-lab .phx-svg .p10q1-1-ad .phx-arrow-shaft{stroke:var(--phx-d);stroke-width:2;stroke-dasharray:5 3}
.arch-lab .phx-svg .p10q1-1-ad .phx-arrow-head{fill:var(--phx-d);stroke:none}
.arch-lab .phx-svg .p10q1-1-text-d{fill:var(--phx-d);font-weight:600}
.arch-lab .phx-svg .p10q1-1-dial{fill:var(--arch-surface,#fff);stroke:var(--arch-fig-line);stroke-width:1.5}
.arch-lab .phx-svg .p10q1-1-hand{stroke:var(--arch-fig-line);stroke-width:3;stroke-linecap:round}
.arch-lab .phx-svg .p10q1-1-spin{fill:none;stroke:var(--phx-d);stroke-width:2.2}
.arch-lab .phx-svg .p10q1-1-icv{fill:var(--arch-muted);stroke:none}
.arch-lab .p10q1-1-time{display:grid;gap:8px}
.arch-lab .p10q1-1-status{margin:0;padding:8px 12px;border-radius:10px;background:var(--p25-paper);color:var(--arch-ink);font-weight:600;font-size:15px;line-height:1.45;overflow-wrap:anywhere}

/* Popov Academy — content-factory/mosh-physics-2026-27-qualifying-v1: lab of 10 №5 «Клин из зеркал» (p10q1-5-mirrors).
   Mirrors (a silvered face with hatching outside), the axis (dash-dot), the laser beam, the images of the mirrors in the
   unfolding and a visible status line. Colours come from the theme variables of lab.css, so both themes work. */
.arch-lab .phx-svg .p10q1-5-mirror{stroke:#64748b;stroke-width:4;stroke-linecap:round;fill:none}
.arch-lab .phx-svg .p10q1-5-silver{stroke:#e2e8f0;stroke-width:1.2;stroke-linecap:round;fill:none}
.arch-lab .phx-svg .p10q1-5-hatch{stroke:var(--arch-fig-line);stroke-width:1;fill:none;opacity:.7}
.arch-lab .phx-svg .p10q1-5-axis{stroke:var(--arch-muted);stroke-width:1.2;fill:none;stroke-dasharray:12 4 2 4}
.arch-lab .phx-svg .p10q1-5-slit{stroke:var(--arch-muted);stroke-width:1.4;fill:none;stroke-dasharray:4 4}
.arch-lab .phx-svg .p10q1-5-glass{fill:var(--phx-water);fill-opacity:.45;stroke:none}
.arch-lab .phx-svg .p10q1-5-beam{stroke:var(--phx-b);stroke-width:2.6;fill:none;stroke-linejoin:round;stroke-linecap:round}
.arch-lab .phx-svg .p10q1-5-glow{stroke:var(--phx-b);stroke-width:8;fill:none;opacity:.18;stroke-linejoin:round;stroke-linecap:round}
.arch-lab .phx-svg .p10q1-5-next{stroke:var(--phx-b);stroke-width:2;fill:none;stroke-dasharray:3 5}
.arch-lab .phx-svg .p10q1-5-image{stroke:var(--phx-a);stroke-width:2.4;fill:none;stroke-linecap:round}
.arch-lab .phx-svg .p10q1-5-ray0{stroke:var(--phx-a);stroke-width:1;fill:none;opacity:.35;stroke-dasharray:2 5}
.arch-lab .phx-svg .p10q1-5-chord{stroke:var(--arch-muted);stroke-width:1.2;fill:none;stroke-dasharray:4 4}
.arch-lab .phx-svg .p10q1-5-narrow{stroke:var(--phx-c);stroke-width:1.6;fill:none;stroke-dasharray:4 3}
.arch-lab .phx-svg .p10q1-5-hit{fill:var(--phx-b);stroke:var(--arch-surface);stroke-width:1.5}
.arch-lab .phx-svg .p10q1-5-laser{fill:#334155;stroke:#0f172a;stroke-width:1.2}
.arch-lab .phx-svg .p10q1-5-lens{fill:#f87171;stroke:#7f1d1d;stroke-width:1}
.arch-lab .p10q1-5-status{margin:0;padding:8px 12px;border-radius:10px;background:var(--p25-paper);color:var(--arch-ink);font-weight:600;font-size:15px;line-height:1.45;overflow-wrap:anywhere}
.arch-lab .p10q1-5-steps{display:flex;flex-wrap:wrap;gap:8px}
.arch-lab .p10q1-5-steps button{min-height:44px}
.arch-lab .p10q1-5-toggles{display:grid;gap:6px}

/* Popov Academy — content-factory/mosh-physics-2026-27-qualifying-v1: lab of 11 №1 «Рывок нити» (p11q1-1-jerk).
   The thread, the ball, the part of the velocity that the jerk takes away (red) and the moment of the jerk (a flash).
   Colours come from the theme variables of lab.css, so both themes work. */
.arch-lab .phx-svg .p11j-thread{stroke:#92400e;stroke-width:2.2;fill:none;stroke-linecap:round}
.arch-lab .phx-svg .p11j-ball{fill:#475569;stroke:var(--arch-fig-line);stroke-width:1.5}
.arch-lab .phx-svg .p11j-ring{fill:var(--arch-surface);stroke:var(--arch-fig-line);stroke-width:2}
.arch-lab .phx-svg .p11j-trace{stroke:var(--arch-muted);stroke-width:1.6;fill:none;stroke-dasharray:2 4}
.arch-lab .phx-svg .p11j-lost .phx-arrow-shaft{stroke:var(--arch-bad);stroke-width:2.5}
.arch-lab .phx-svg .p11j-lost .phx-arrow-head{fill:var(--arch-bad);stroke:none}
.arch-lab .phx-svg .p11j-lost-text{fill:var(--arch-bad);font-weight:600}
.arch-lab .phx-svg .p11j-flash{fill:#facc15;fill-opacity:.55;stroke:#ca8a04;stroke-width:2}
@media (prefers-color-scheme: dark){:root[data-design="v2"]:not([data-theme="light"]) .arch-lab .phx-svg .p11j-thread{stroke:#fbbf24}:root[data-design="v2"]:not([data-theme="light"]) .arch-lab .phx-svg .p11j-ball{fill:#cbd5e1}}
:root[data-design="v2"][data-theme="dark"] .arch-lab .phx-svg .p11j-thread{stroke:#fbbf24}
:root[data-design="v2"][data-theme="dark"] .arch-lab .phx-svg .p11j-ball{fill:#cbd5e1}
.arch-lab .p11j-jumps button{min-height:44px}

/* Popov Academy — content-factory/mosh-physics-2026-27-qualifying-v1: lab of 11 №5 «Линза на миллиметровке» (p11q1-5-lens).
   The glass of the lens, its axis (dash-dot), the focal plane, the official arc of the figure, the image built by the model and
   the rays. Colours come from the theme variables of lab.css, so both themes work. */
.arch-lab .phx-svg .p11l-glass{fill:var(--phx-water);fill-opacity:.85;stroke:var(--phx-a);stroke-width:1.8}
.arch-lab .phx-svg .p11l-axis{stroke:var(--arch-muted);stroke-width:1.3;fill:none;stroke-dasharray:12 4 2 4}
.arch-lab .phx-svg .p11l-focal{stroke:var(--phx-c);stroke-width:1.4;fill:none;stroke-dasharray:5 4}
.arch-lab .phx-svg .p11l-object{stroke:var(--arch-fig-line);stroke-width:2.6;fill:none;stroke-linejoin:round}
.arch-lab .phx-svg .p11l-asym{stroke:var(--arch-fig-line);stroke-width:1.3;fill:none;stroke-dasharray:6 5;opacity:.8}
.arch-lab .phx-svg .p11l-arc{stroke:var(--arch-fig-line);stroke-width:2.6;fill:none;opacity:.55}
.arch-lab .phx-svg .p11l-end{fill:var(--arch-surface);stroke:var(--arch-fig-line);stroke-width:1.6}
.arch-lab .phx-svg .p11l-image{stroke:var(--phx-b);stroke-width:3;fill:none;stroke-linejoin:round;stroke-linecap:round}
.arch-lab .phx-svg .p11l-far{fill:var(--phx-c);stroke:var(--arch-surface);stroke-width:1.5}
.arch-lab .phx-svg .p11l-ray{stroke:var(--phx-d);stroke-width:1.8;fill:none}
.arch-lab .phx-svg .p11l-ray-back{stroke:var(--phx-d);stroke-width:1.4;fill:none;stroke-dasharray:4 4}

/* Popov Academy — content-factory/mosh-physics-2026-27-qualifying-v1: millimetre paper of the 11th-grade labs (p11q1-*).
   All data of the 11th grade are on graph paper: thin lines every 1 mm, middle every 5 mm, bold every 1 cm (or the bold
   step of the figure). The colours follow the theme variables of lab.css, so both themes work. */
.arch-lab .phx-svg{--p11-mm:#9fb3c8;--p11-paper:#fbfdff}
@media (prefers-color-scheme: dark){:root[data-design="v2"]:not([data-theme="light"]) .arch-lab .phx-svg{--p11-mm:#5b6f86;--p11-paper:transparent}}
:root[data-design="v2"][data-theme="dark"] .arch-lab .phx-svg{--p11-mm:#5b6f86;--p11-paper:transparent}
.arch-lab .phx-svg .p11-paper{fill:var(--p11-paper);stroke:var(--p11-mm);stroke-width:1.4}
.arch-lab .phx-svg .p11-mm1{stroke:var(--p11-mm);stroke-width:.5;opacity:.45}
.arch-lab .phx-svg .p11-mm5{stroke:var(--p11-mm);stroke-width:.8;opacity:.75}
.arch-lab .phx-svg .p11-mm10{stroke:var(--p11-mm);stroke-width:1.3;opacity:1}
/* a white blot of the 11 №3 graph (milk spilt by Glück): covers the grid and the line, as on the figure */
.arch-lab .phx-svg .p11-blot{fill:#ffffff;stroke:#e2e8f0;stroke-width:1}
@media (prefers-color-scheme: dark){:root[data-design="v2"]:not([data-theme="light"]) .arch-lab .phx-svg .p11-blot{fill:#e9edf5;stroke:#cbd5e1}}
:root[data-design="v2"][data-theme="dark"] .arch-lab .phx-svg .p11-blot{fill:#e9edf5;stroke:#cbd5e1}
/* dashed grey arrow: the pressure a substance would have without condensation */
.arch-lab .phx-svg .p11-ghost-arrow .phx-arrow-shaft{stroke:var(--arch-muted);stroke-dasharray:4 3;opacity:.7}
.arch-lab .phx-svg .p11-ghost-arrow .phx-arrow-head{fill:var(--arch-muted);opacity:.7}
