/* Scoped learning module; other pages and the existing grade navigation keep their styles. */
.ms-solids { grid-column:1/-1; min-width:0; border-top:1px solid var(--line); padding:clamp(16px,2.4vw,30px); color:var(--ink); }
.ms-solids [hidden] { display:none!important; }
.ms-solids-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:16px; }
.ms-solids-heading .material-label { display:none; }
.ms-solids-heading h3 { font:500 clamp(1.75rem,2.5vw,2.35rem)/1.1 Georgia,serif; color:var(--navy); margin:0 0 5px; }
.ms-solids-heading p:last-child { margin:0; font-size:.9rem; color:#51645d; }
.ms-solids-chooser { flex:0 1 300px; min-width:220px; }
.ms-solids label { display:grid; gap:5px; color:var(--navy); font-size:.81rem; font-weight:650; }
.ms-solids select { width:100%; min-height:44px; max-width:100%; margin:0; padding:9px 32px 9px 11px; border:1px solid #aebdb6; border-radius:5px; color:var(--navy); background:#fff; font-size:.88rem; }
.ms-solids-workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(285px,340px); grid-template-rows:auto minmax(0,1fr); border:1px solid #cad5ce; border-radius:8px; background:#fffefa; overflow:hidden; }
.ms-solids-model-heading { grid-column:1/-1; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:4px 20px; padding:13px 18px; border-bottom:1px solid #e4e8e3; }
.ms-solids-model-heading h4 { display:none; }
.ms-solids-model-heading>span { color:#50645b; font-size:.8rem; }
.ms-solids-stage { grid-column:1; grid-row:2; min-height:clamp(410px,39vw,520px); position:relative; isolation:isolate; min-width:0; align-self:stretch; }
.ms-solids-stage canvas { display:block; width:100%; height:100%; outline-offset:-4px; touch-action:none; cursor:default; }
.ms-solids-stage canvas:focus-visible { outline:3px solid var(--gold); }
.ms-solids-loading { position:absolute; inset:40% 16px auto; text-align:center; color:#536458; }
.ms-solids-side { grid-column:2; grid-row:2; display:flex; flex-direction:column; min-width:0; border-left:1px solid #dfe5df; background:linear-gradient(180deg,#fbfbf7,#f1f5ef); }
.ms-solids-controls { display:grid; gap:12px; padding:15px; }
.ms-solids-control-group { display:grid; gap:8px; padding:12px; border:1px solid rgba(58,88,73,.14); border-radius:8px; background:rgba(255,255,251,.78); box-shadow:0 16px 32px rgba(21,54,43,.055); }
.ms-solids-control-group>strong { color:#476157; font-size:.7rem; line-height:1.2; letter-spacing:.08em; text-transform:uppercase; font-weight:750; }
.ms-solids-modes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.ms-solids-view-controls { display:grid; grid-template-columns:42px 42px 1fr; gap:7px; padding:10px 12px; border:1px solid rgba(58,88,73,.14); border-radius:8px; background:rgba(255,255,251,.72); }
.ms-solids button { min-height:38px; padding:7px 9px; border:1px solid #bdcabf; border-radius:6px; background:#fffefa; color:#214e3e; font-size:.76rem; font-weight:700; line-height:1.25; cursor:pointer; box-shadow:0 7px 16px rgba(21,54,43,.04); transition:background 160ms ease,border-color 160ms ease,color 160ms ease,transform 160ms ease; }
.ms-solids button:hover { background:#f2f6ed; border-color:#8da495; transform:translateY(-1px); }
.ms-solids button[aria-pressed=true] { color:#fff; background:#234f3c; border-color:#234f3c; box-shadow:0 10px 24px rgba(35,79,60,.2); }
.ms-solids button:disabled { opacity:.45; cursor:default; }
.ms-solids button:focus-visible,.ms-solids select:focus-visible,.ms-solids input:focus-visible,.ms-solids summary:focus-visible { outline:3px solid #956123; outline-offset:2px; }
.ms-solids button[data-solid-zoom] { width:44px; padding:4px; font-size:1.15rem; }
.ms-solids-parameters { display:grid; grid-template-columns:1fr; gap:8px; }
.ms-solids-parameter { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; padding:9px 8px; border:1px solid #e0e7df; border-radius:10px; background:linear-gradient(135deg,#fffefa,#f5f8f2); }
.ms-solids-parameter-copy { display:grid; min-width:0; gap:3px; }
.ms-solids-parameter-copy strong { font-size:.76rem; color:#214e3e; }
.ms-solids-parameter-copy small { font-size:.6rem; line-height:1.4; color:#66786e; }
.ms-solids-stepper { display:grid; grid-template-columns:34px 55px 34px; align-items:center; padding:3px; border:1px solid #d3ded4; border-radius:10px; background:#fff; box-shadow:0 3px 8px rgba(21,54,43,.04); }
.ms-solids .ms-solids-stepper button { width:34px; min-height:36px; padding:0; border:0; border-radius:7px; background:#edf3ec; box-shadow:none; font-size:1.12rem; }
.ms-solids .ms-solids-stepper button:hover:not(:disabled) { background:#234f3c; color:#fff; transform:none; }
.ms-solids .ms-solids-stepper button:disabled { transform:none; opacity:.3; }
.ms-solids-stepper output { text-align:center; color:#7c4b16; font-size:.78rem; font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap; }
.ms-solids-sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }

@media (max-width:700px) {
  .ms-solids { padding:14px 10px; }
  .ms-solids-heading { display:grid; grid-template-columns:1fr; align-items:start; gap:8px; margin-bottom:10px; }
  .ms-solids-heading h3 { font-size:1.48rem; margin:0; }
  .ms-solids-heading p:last-child { display:none; }
  .ms-solids-chooser { width:100%; min-width:0; }
  .ms-solids-workspace { grid-template-columns:1fr; grid-template-rows:auto auto auto; }
  .ms-solids-model-heading { grid-column:1; padding:7px 10px; }
  .ms-solids-stage { grid-column:1; grid-row:2; height:clamp(220px,29svh,270px); min-height:0; }
  .ms-solids-side { grid-column:1; grid-row:3; border:0; border-top:1px solid #dfe5df; }
  .ms-solids-controls { gap:6px; padding:7px; }
  .ms-solids-control-group { gap:6px; padding:7px; }
  .ms-solids-modes { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .ms-solids-view-controls { padding:7px; }
  .ms-solids button { min-height:34px; font-size:.69rem; padding:5px 4px; }
  .ms-solids-parameters { grid-template-columns:1fr; gap:5px; }
  .ms-solids-parameter { padding:5px 8px; }
}
@media (min-width:701px) and (max-height:720px) {
  .ms-solids { padding-block:10px; }
  .ms-solids-heading { margin-bottom:8px; }
  .ms-solids-heading p:last-child { display:none; }
  .ms-solids-stage { height:auto; min-height:clamp(220px,56svh,315px); }
}
@media (max-width:380px), (max-height:680px) and (max-width:700px) {
  .ms-solids-stage { height:205px; min-height:0; }
  .ms-solids-controls { gap:6px; }
  .ms-solids button { min-height:32px; }
}
@media (prefers-reduced-motion:reduce) { .ms-solids * { scroll-behavior:auto; animation:none; transition:none; } }
