/* Jeeva (biology): hub and syllabus pages. Uses the shared theme variables from site.css. */
.jv-cta{ margin:22px 0 0; }
.jv-meta{ color:var(--chrome-2); font-size:.9rem; line-height:1.5; margin:6px 0 0; }

/* hub: one card per class */
.jv-classes{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; }
.jv-class{ display:flex; flex-direction:column; gap:10px; padding:20px; text-decoration:none; color:inherit; position:relative; }
.jv-class:hover{ border-color:var(--accent); text-decoration:none; }
.jv-class-n{ font-family:"IBM Plex Mono",monospace; font-size:2.4rem; line-height:1; font-weight:500; color:var(--accent); }
.jv-class h3{ margin:0 0 2px; font-size:1.15rem; }
.jv-class p{ margin:0; color:var(--chrome-2); font-size:.92rem; line-height:1.45; }
.jv-class .lc-cls{ align-self:flex-start; margin-top:auto; }

/* syllabus page */
.jv-nav{ display:flex; flex-wrap:wrap; gap:8px; margin-top:22px; }
.jv-chip{ font-family:"IBM Plex Mono",monospace; font-size:.85rem; padding:.45em 1em; border-radius:999px; border:1px solid var(--edge-hi); color:var(--chrome); text-decoration:none; background:var(--surface); }
.jv-chip:hover{ border-color:var(--accent); color:var(--accent); text-decoration:none; }
.jv-sec{ padding:44px 0 8px; border-top:1px solid var(--edge); scroll-margin-top:84px; }
.jv-sec:first-of-type{ border-top:0; }
.jv-sec h2{ margin:4px 0 10px; font-size:1.75rem; }
.jv-book{ max-width:72ch; line-height:1.55; margin:0 0 10px; color:var(--chrome-2); }
.jv-book strong{ color:var(--chrome); }
.jv-warn{ max-width:72ch; margin:0 0 14px; padding:10px 14px; border-radius:10px; font-size:.9rem; line-height:1.5;
  border:1px solid color-mix(in srgb,var(--accent-2) 45%,transparent); background:color-mix(in srgb,var(--accent-2) 10%,transparent); color:var(--chrome); }
.jv-grid2{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; margin:14px 0 6px; align-items:start; }
@media (max-width:800px){ .jv-grid2{ grid-template-columns:1fr; } }
.jv-marks, .jv-side{ background:var(--panel-2); border:1px solid var(--edge); border-radius:14px; padding:16px 18px; }
.jv-marks h3, .jv-chh{ font-size:1rem; margin:0 0 6px; }
.jv-chh{ margin:26px 0 12px; font-size:1.15rem; }
.jv-marks table{ width:100%; border-collapse:collapse; margin-top:10px; font-size:.92rem; }
.jv-marks th, .jv-marks td{ text-align:left; padding:7px 4px; border-bottom:1px solid var(--edge); }
.jv-marks th:last-child, .jv-marks td:last-child{ text-align:right; font-family:"IBM Plex Mono",monospace; width:4.5em; }
.jv-marks th{ font-size:.75rem; letter-spacing:.06em; text-transform:uppercase; color:var(--chrome-3); font-weight:500; }
.jv-total td{ font-weight:600; border-bottom:0; }
.jv-note{ margin:0 0 10px; font-size:.9rem; line-height:1.5; color:var(--chrome-2); }
.jv-prac{ margin-top:8px; }
.jv-prac summary{ cursor:pointer; font-weight:500; }
.jv-prac ul{ margin:8px 0 0; padding-left:18px; color:var(--chrome-2); font-size:.9rem; line-height:1.5; }
.jv-prac li{ margin-bottom:5px; }

.jv-chapters{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:14px; }
.jv-ch{ background:var(--panel-2); border:1px solid var(--edge); border-radius:14px; padding:16px 18px; display:flex; flex-direction:column; gap:8px; }
.jv-ch-h{ display:flex; gap:12px; align-items:flex-start; }
.jv-ch-h h4{ margin:0; font-size:1.02rem; line-height:1.3; font-weight:600; }
.jv-ch-n{ flex:0 0 auto; min-width:2.1em; height:2.1em; border-radius:50%; display:grid; place-items:center; font-family:"IBM Plex Mono",monospace; font-size:.8rem;
  color:var(--on-accent); background:var(--accent); font-weight:500; }
.jv-unit{ margin:-2px 0 0 calc(2.1em + 12px); font-size:.72rem; letter-spacing:.07em; text-transform:uppercase; color:var(--chrome-3); font-family:"IBM Plex Mono",monospace; }
.jv-topics{ margin:0; padding-left:18px; color:var(--chrome-2); font-size:.9rem; line-height:1.5; }
.jv-topics li{ margin-bottom:3px; }
.jv-skip{ margin:0; font-size:.82rem; line-height:1.45; color:var(--chrome-3); }
.jv-tags{ display:flex; flex-wrap:wrap; gap:6px; margin-top:auto; padding-top:6px; }
.jv-tag{ color:var(--accent-2); border-color:color-mix(in srgb,var(--accent-2) 40%,transparent); background:color-mix(in srgb,var(--accent-2) 10%,transparent); }
.jv-lab{ color:var(--accent); border-color:var(--accent); text-decoration:none; }
.jv-sources{ padding-bottom:56px; }
.jv-sources ul{ margin:8px 0 14px; padding-left:20px; color:var(--chrome-2); line-height:1.6; max-width:80ch; }

/* the lab header is the one the other subjects use (assets/lab.css); give the older labs a little room under it */
.crumbs{ margin:14px 0 0; }
.lab-head{ padding:2px 0 0; }
.lab-head h1{ margin:0; font-size:clamp(1.5rem,3vw,1.9rem); }

/* the Anatomy Lab shown inside the home page demo (?embed=1): only the human body, filling the frame, with no scroll bar */
html.embed, html.embed body{ overflow:hidden !important; background:#0a1311 !important; }
html.embed .crumbs, html.embed .lab-head, html.embed main > .ui-section, html.embed .lessons-toggle,
html.embed .jv-anat .jv-pillrow, html.embed .jv-anat .bar, html.embed .jv-anat .lcard, html.embed .jv-anat .hud, html.embed .jv-anat .hint{ display:none !important; }
html.embed main, html.embed main .wrap, html.embed .jv-anat{ padding:0 !important; margin:0 !important; max-width:none !important; }
html.embed .jv-anat .app{ display:block; margin:0; }
html.embed .jv-anat .stage-card{ padding:0; border:0; background:transparent; box-shadow:none; }
html.embed .jv-anat #view{ height:100vh; min-height:0; border:0; border-radius:0; }
