/* School gradebook calculators (PowerSchool, Infinite Campus, Skyward, Schoology, Google Classroom): additions on top
   of tools.css and score-tools.css (same tokens, light and dark). */
.tl-mount--k12:not(.is-ready) { min-height: 1500px; }
@media (max-width: 999px) { .tl-mount--k12:not(.is-ready) { min-height: 2600px; } }
.k12-step + .k12-step { margin-top: 28px; padding-top: 26px; border-top: 1px solid var(--line); }
.k12-cats, .k12-parts { display: grid; gap: 10px; }
.k12-cat, .k12-part { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; padding: 12px; border-radius: 14px; background: var(--surface-2); border: 1px solid var(--line); }
.k12-cat .sc-cat-n, .k12-part-n { flex: 1 1 100%; margin: 0; }
.k12-f { min-width: 0; }
.k12-f .tl-in { width: 100%; }
.k12-f--name { flex: 1 1 130px; }
.k12-f--w { flex: 1 1 84px; max-width: 140px; }
.k12-f--p { flex: 1 1 100px; max-width: 160px; }
.k12-f--m { flex: 1 1 140px; max-width: 200px; }
.k12-f--s { flex: 3 1 220px; }
.k12-f--d { flex: 0 1 104px; }
.k12-f--d .tl-check { min-height: 44px; }
.k12-f--rm { flex: 0 0 44px; display: flex; justify-content: flex-end; }
.k12-part .k12-f--name { flex: 1 1 120px; }
.k12-ctl { display: grid; gap: 4px 20px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .k12-ctl { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 419px) { .k12-f--w, .k12-f--p, .k12-f--m { max-width: none; } }
@media print { .k12-cats, .k12-parts { display: none !important; } }
/* A stacked table is display:block, so its caption needs a block box too or it shrinks to its longest word. */
.k12-step .tl-table--stack > caption { display: block; width: auto; }
