/* Additions scoped to the imported subjects; typography and layout come from Math-3Zs. */
.subject-mode .subject-heading{font-size:2rem;margin:6px 0 8px;letter-spacing:-.02em}
.subject-mode .subject-intro{max-width:62ch}
.subject-mode .subject-progress{margin:18px 0 20px}.subject-progress .bar{max-width:220px}
.subject-mode .subject-visual{margin:20px 0;padding:18px;background:#fff;color:#23303a;border:1px solid var(--rule);border-radius:var(--r)}
.subject-visual svg,.subject-visual canvas{display:block;max-width:100%;height:auto;margin:auto}
.subject-visual figcaption{font: .84rem/1.5 var(--sans);margin-top:12px;color:#576660}
/* Licensed photographs: the credit sits in the caption, smaller than the caption text. */
.subject-mode .subject-photo{margin:22px 0;padding:0;background:#fff;border:1px solid var(--rule);border-radius:var(--r);overflow:hidden}
.subject-photo img{display:block;width:100%;height:auto;max-height:620px;object-fit:contain;background:#f6f8f7}
.figure-compact img{margin:auto}
.visual-reading{padding:12px 16px;margin:16px 0;border-left:3px solid var(--accent);background:var(--accent-soft)}
.subject-photo figcaption{font:.84rem/1.55 var(--sans);padding:12px 16px 14px;color:#576660}
.subject-photo .figure-credit{display:block;margin-top:6px;font-size:.74rem;color:#7c8a85}
.subject-photo .figure-credit a{color:inherit;text-decoration:underline}
.subject-mode .nav-note{border-left:3px solid var(--accent);background:var(--accent-soft)}
@media(max-width:700px){.subject-photo img{max-height:420px}}
.subject-mode .anim-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;margin-top:12px}
.subject-mode .anim-btn{font:inherit;background:#fff;color:#17627a;border:1px solid #d8e2dd;border-radius:6px;padding:4px 10px;cursor:pointer}
.subject-mode .anim-slider{max-width:100%;accent-color:#17627a}.subject-mode .anim-readout{text-align:center;margin:10px 0;font:.85rem var(--sans)}
.subject-mode .subject-points{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}
.subject-mode .subject-points button{font-size:.8rem}.subject-mode .subject-points [aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-2)}
.subject-mode textarea{width:100%;min-height:140px;resize:vertical;border:1px solid var(--rule);border-radius:var(--r-s);padding:12px;font:1rem/1.6 var(--serif);background:var(--paper);color:var(--ink)}
.subject-mode .subject-note{font-size:.84rem;color:var(--ink2);margin:12px 0}
.subject-mode .subject-empty{padding:24px;background:var(--paper);border:1px solid var(--rule);border-radius:var(--r)}
.subject-mode .subject-filter{max-width:100%;padding:8px;border:1px solid var(--rule);border-radius:8px;background:var(--paper);color:var(--ink);font:inherit;margin:0 0 18px}
.subject-mode .subject-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:20px 0}
.subject-mode .subject-overview .item b{display:block;font:600 1.6rem var(--disp)}
.subject-mode .subject-link{display:block;width:100%;text-align:left;padding:14px;margin:8px 0;border:1px solid var(--rule);border-radius:var(--r-s);background:var(--paper);color:var(--ink);font:inherit;cursor:pointer}
.subject-mode .subject-link small{display:block;color:var(--ink2)}
.subject-mode .subject-more{margin:18px 0;padding:12px 16px;border:1px solid var(--rule);border-radius:var(--r-s)}
.subject-mode .subject-more summary{cursor:pointer;font-weight:600;color:var(--accent)}
.subject-mode .subject-actions{margin-top:24px}.subject-mode .sec{scroll-margin-top:90px}
.subject-mode .subject-result{margin:18px 0}.subject-mode .subject-result strong{font-size:1.3rem}
.subject-mode .qtext,.subject-mode .sec,.subject-mode .vocab{overflow-wrap:anywhere}
.subject-mode .subject-search{width:100%;margin:12px 0 20px;padding:12px;font:inherit;border:1px solid var(--rule);border-radius:8px;background:var(--paper);color:var(--ink)}
@media(max-width:700px){.subject-mode .subject-heading{font-size:1.65rem}.subject-mode .subject-visual{padding:10px}.subject-mode .subject-points{gap:6px}.subject-mode .choice{padding:10px}}
/* Public anchors retain the existing button appearance and native link behaviour. */
a.btn,a.unit-link,a.navbtn,a.ucard,a.subject-link,a.brand,a.paceopt,a.tab{color:inherit;text-decoration:none;cursor:pointer}
#public-content h1{margin:10px 0 22px}#public-content h2{margin:26px 0 12px}
#public-content figure svg{display:block;max-width:100%;height:auto}#public-content nav{margin:12px 0 24px}
#public-content .ex{padding:16px}#public-content details{padding:12px;cursor:pointer}
.subject-mode fieldset{border:0;padding:0;margin:0}.subject-mode fieldset .choice{margin:8px 0}
.subject-mode .chapter-heading{border:0;background:none;color:inherit;font:inherit;text-align:left;padding:0;text-decoration:none;cursor:pointer}
.subject-mode .unit-link[aria-current=page]{background:var(--accent-soft);color:var(--accent)}
.subject-mode #lesson-reading{scroll-margin-top:80px;max-width:68ch}
.subject-mode .box ul{padding-left:22px}.subject-mode .box li{margin:8px 0}
.subject-mode .unit-link .n{min-width:26px;font-size:.72rem}
.subject-mode .tabs{overflow-x:auto;overflow-y:hidden}.subject-mode .tabs .tab{white-space:nowrap}
.subject-mode .subject-table{overflow-x:auto}.subject-table table{width:100%;border-collapse:collapse;font-size:.9rem}
.subject-table th,.subject-table td{padding:10px;border:1px solid var(--rule);text-align:left}
.subject-mode #subject-tab label[for^=lab-]{display:block;margin:18px 0 6px;font-weight:600}
.subject-mode #subject-tab h2{margin-top:26px}.subject-mode #subject-tab h3{margin-top:20px}
.exam-writing-space{min-height:8em;border-bottom:1px solid var(--rule)}
.subject-mode #course-exam label[for]{display:block;font-weight:600;margin:14px 0 8px}
.subject-mode #course-exam input[type=text],.subject-mode #course-exam select{max-width:100%;padding:10px;border:1px solid var(--rule);border-radius:6px;font:inherit;background:var(--paper);color:var(--ink)}
.subject-mode #course-exam input:disabled,.subject-mode #course-exam textarea:disabled{opacity:1;background:var(--accent-soft);color:var(--ink)}

/* Preserve verse, dialogue, and paragraph breaks in authored English sources. */
.reading-source { white-space: pre-wrap; overflow-wrap: anywhere; }
.reading-selection { max-width: 76ch; }
.reading-selection .reading-source { display: flex; gap: 1rem; align-items: baseline; }
.reading-number { font-size: .8rem; color: var(--muted, #666); min-width: 1.4rem; }
.reading-selection .reading-source p { flex: 1; }

.book-full-text { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; line-height: 1.7; }

/* Return to the general menu from inside any course. */
.rail-all{display:block;margin:.5rem .75rem 0;padding:.42rem .6rem;border:1px solid var(--rule);
  border-radius:var(--r-s);font-size:.86rem;color:var(--ink2);text-decoration:none;background:var(--paper)}
.rail-all:hover{border-color:var(--accent);color:var(--accent)}

/* Stacked practice: a whole set on one page, each question clearly separate. */
.stack-item{margin:0 0 1.1rem}
.stack-item .player{border:1px solid var(--rule);border-radius:var(--r);background:var(--paper)}
.stack-item:last-of-type{margin-bottom:1.6rem}
.physics-explorer{margin:24px 0;padding:16px;border:1px solid var(--rule);border-radius:8px}
.physics-explorer svg{display:block;width:100%;height:auto}
.physics-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:16px 0}
.physics-controls label{display:grid;gap:8px;font-weight:600;flex:1;min-width:160px}
.physics-controls input,.physics-controls select{width:100%;font:inherit}
.physics-controls button,.physics-controls select{padding:8px 12px;background:var(--paper);color:var(--ink);border:1px solid var(--rule);border-radius:6px}
.physics-controls button{cursor:pointer;font:inherit}
.physics-values{font-variant-numeric:tabular-nums}
@media print{.physics-explorer{display:none}}
#subject-pips{position:sticky;top:0;z-index:2;background:var(--paper);padding:.5rem 0;margin-bottom:.8rem}
#subject-pips .pip{cursor:pointer}
