:root {
    color-scheme: light;
    --ink: #142033;
    --muted: #52657a;
    --paper: #e7f4fe;
    --surface: #ffffff;
    --line: #cbd8e7;
    --navy: #2d5eb4;
    --navy-strong: #244b8f;
    --navy-deep: #0d263d;
    --teal: #2d5eb4;
    --teal-light: #e7f4fe;
    --amber: #d88921;
    --amber-light: #fff0d2;
    --status-unavailable-light: rgba(255, 240, 210, .45);
    --status-unavailable-medium: #fff0d2;
    --status-unavailable-dark: #805010;
    --red: #a33b43;
    --red-light: #fbe9e9;
    --shadow: 0 8px 24px rgba(13, 38, 61, .08);
    --topbar-height: 78px;
    --sidebar-width: 280px;
    --content-gutter: clamp(.8rem, 1.35vw, 1.5rem);
    --font-interface: "Segoe UI", Arial, sans-serif;
    --font-math-base: 1rem;
    --font-table-size: .76rem;
    font-family: var(--font-interface);
}

:root[data-interface-font="calibri"] {
    --font-interface: Calibri, "Segoe UI", Arial, sans-serif;
    --font-math-base: .910125rem;
    font-size: 109.875%;
}

:root[data-interface-size="large"] {
    --font-table-size: .88rem;
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
    background: var(--paper);
}

body {
    min-height: 100vh;
    margin: 0;
    padding-top: var(--topbar-height);
    display: flex;
    flex-direction: column;
    color: var(--ink);
    background: var(--paper);
}

button,
input,
select {
    font: inherit;
}

a {
    color: inherit;
}

.skip-link {
    position: fixed;
    z-index: 100;
    top: .75rem;
    left: .75rem;
    padding: .75rem 1rem;
    color: white;
    background: var(--navy-deep);
    border-radius: .5rem;
    transform: translateY(-150%);
}

.skip-link:focus {
    transform: translateY(0);
}

.site-header {
    position: fixed;
    z-index: 90;
    inset: 0 0 auto;
    width: 100%;
    min-height: var(--topbar-height);
    border-bottom: 1px solid var(--line);
    background: white;
}

.site-header-inner {
    width: min(1180px, calc(100% - 2rem));
    min-height: var(--topbar-height);
    margin: 0 auto;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.25rem;
}

.has-app-shell .site-header-inner {
    width: 100%;
    padding: 0 1rem;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: .8rem;
    text-decoration: none;
}

.has-app-shell .brand {
    width: calc(var(--sidebar-width) - 1rem);
}

.brand-mark {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 4px;
    color: white;
    background: var(--navy);
    font-family: var(--font-interface);
    font-size: 1.8rem;
}

.brand-symbol {
    display: block;
    line-height: 1;
}

.brand strong,
.brand small {
    display: block;
}

.brand strong {
    font-size: .98rem;
    letter-spacing: .01em;
}

.brand small {
    margin-top: .15rem;
    color: var(--muted);
    font-size: .74rem;
}

.account-area {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.account-area form {
    margin: 0;
}

.account-area .button {
    min-height: 38px;
    padding: .6rem .8rem;
}

.account-avatar {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(45, 94, 180, .24);
    border-radius: 50%;
    color: var(--navy);
    background: var(--teal-light);
    font-size: .82rem;
    font-weight: 850;
}

.account-summary {
    text-align: right;
}

.account-summary strong,
.account-summary small {
    display: block;
}

.account-summary small {
    margin-top: .15rem;
    color: var(--muted);
    font-size: .72rem;
}

.topbar-current {
    min-width: 0;
    padding-left: 1.15rem;
    border-left: 1px solid rgba(20, 32, 51, .1);
}

.topbar-current small,
.topbar-current strong {
    display: block;
}

.topbar-current small {
    margin-bottom: .2rem;
    color: var(--teal);
    font-size: .64rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.topbar-current .topbar-path {
    overflow: hidden;
    font-size: .7rem;
    letter-spacing: 0;
    text-overflow: ellipsis;
    text-transform: none;
    white-space: nowrap;
}

.topbar-path-separator {
    padding: 0 .32rem;
    color: var(--muted);
}

.compact-curriculum-model .page-header {
    display: none;
}

.topbar-current strong {
    overflow: hidden;
    color: var(--navy-deep);
    font-size: .9rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.site-main {
    width: 100%;
    margin: 0;
    padding: 2.5rem 0 5rem;
    flex: 1;
}

.site-content {
    width: min(1180px, calc(100% - 2rem));
    margin: 0 auto;
}

.has-app-shell .site-main {
    width: calc(100% - var(--sidebar-width));
    margin-left: var(--sidebar-width);
    padding: 0 var(--content-gutter) 4rem;
    background: white;
}

.has-app-shell .site-content {
    width: 100%;
    max-width: none;
    margin: 0;
}

.site-content [id] {
    scroll-margin-top: calc(var(--topbar-height) + 1rem);
}

.has-app-shell .site-content [id] {
    scroll-margin-top: calc(var(--topbar-height) + 7rem);
}

.site-footer {
    width: min(1180px, calc(100% - 2rem));
    margin: 0 auto;
    padding: 1.5rem 0 2rem;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: var(--muted);
    border-top: 1px solid rgba(20, 32, 51, .1);
    font-size: .82rem;
}

.site-footer nav {
    display: flex;
    gap: 1rem;
}

.site-footer a,
.privacy-note a,
.legal-shell a {
    color: var(--navy);
    text-underline-offset: .2em;
}

.has-app-shell .site-footer {
    width: calc(100% - var(--sidebar-width));
    margin-right: 0;
    margin-left: var(--sidebar-width);
    padding-right: var(--content-gutter);
    padding-left: var(--content-gutter);
}

.app-sidebar {
    position: fixed;
    z-index: 70;
    top: var(--topbar-height);
    bottom: 0;
    left: 0;
    width: var(--sidebar-width);
    overflow-y: auto;
    color: var(--ink);
    border-right: 1px solid #b9cde1;
    background: #fff;
    scrollbar-color: #b7bec7 transparent;
}

.app-navigation-tree {
    min-height: 100%;
    padding: 1rem .75rem .75rem;
    display: flex;
    flex-direction: column;
}

.app-navigation-context {
    padding: 0 .35rem .85rem;
    border-bottom: 1px solid #bfd2e5;
}

.app-navigation-context > span,
.app-navigation-context strong,
.app-navigation-context small {
    display: block;
}

.app-navigation-context > span {
    color: #5e6875;
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.app-navigation-context strong {
    margin-top: .35rem;
    color: #162231;
    font-size: 1rem;
    font-weight: 700;
}

.app-navigation-context small {
    margin-top: .2rem;
    color: #66717f;
    font-size: .66rem;
    line-height: 1.35;
}

.tree-navigation {
    margin-top: .7rem;
    color: #17202b;
    font-family: var(--font-interface);
}

.tree-navigation ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.tree-navigation .tree-root {
    display: grid;
    gap: .08rem;
}

.tree-navigation details {
    margin: 0;
}

.tree-navigation .tree-branch > details > ul {
    position: relative;
    margin: 0 0 .12rem .38rem;
    padding-left: 1.05rem;
    display: grid;
    gap: .03rem;
    border-left: 1px dotted #9aa4af;
}

.tree-navigation .tree-branch > details > ul > li {
    position: relative;
}

.tree-navigation .tree-branch > details > ul > li::before {
    content: "";
    position: absolute;
    top: .8rem;
    left: -1.05rem;
    width: .78rem;
    border-top: 1px dotted #9aa4af;
}

.tree-navigation .tree-topic-branch > details > ul {
    margin-left: .38rem;
    padding-left: 1.05rem;
}

.tree-navigation .tree-topic-branch > details > ul > li::before {
    left: -1.05rem;
    width: .78rem;
}

.tree-folder,
.tree-leaf a,
.tree-leaf-disabled {
    min-height: 25px;
    padding: .19rem .25rem;
    display: flex;
    align-items: center;
    gap: .32rem;
    border-radius: 0;
}

.tree-leaf-disabled {
    color: #737e8b;
    font-size: .7rem;
    cursor: not-allowed;
}

.tree-leaf-disabled .tree-node-icon {
    filter: grayscale(.55);
    opacity: .65;
}

.tree-folder {
    color: #17202b;
    cursor: pointer;
    font-size: .72rem;
    font-weight: 500;
    letter-spacing: 0;
    list-style: none;
    user-select: none;
}

.tree-folder-link {
    min-width: 0;
    flex: 1 1 auto;
    color: inherit;
    text-decoration: none;
}

.tree-folder-link:hover,
.tree-folder-link:focus-visible {
    color: var(--navy-strong);
    outline: none;
    text-decoration: underline;
    text-underline-offset: .16em;
}

.tree-folder::-webkit-details-marker {
    display: none;
}

.tree-folder:focus-visible {
    background: #d8ebfc;
    outline: 1px dotted #294f73;
    outline-offset: -1px;
}

.tree-topic-folder {
    min-height: 25px;
    padding: .19rem .25rem;
    font-size: .7rem;
    line-height: 1.25;
}

.tree-topic-branch .tree-leaf a {
    min-height: 24px;
    padding: .16rem .25rem;
    font-size: .7rem;
}

.tree-empty {
    padding: .25rem;
    color: #6a7481;
    font-size: .68rem;
    line-height: 1.4;
}

.tree-branch.is-current-branch > details > .tree-folder {
    color: #17202b;
    font-weight: 700;
}

.tree-folder-marker {
    width: 11px;
    height: 11px;
    flex: 0 0 11px;
    display: grid;
    place-items: center;
    border: 1px solid #8793a0;
    border-radius: 0;
    color: var(--navy-strong);
    background: white;
    font-family: var(--font-interface);
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
}

.tree-folder-marker::before {
    content: "+";
    transform: translateY(-.5px);
}

.tree-navigation details[open] > .tree-folder .tree-folder-marker::before {
    content: "−";
}

.tree-node-icon {
    position: relative;
    width: 14px;
    height: 11px;
    flex: 0 0 14px;
    display: block;
    margin-top: 2px;
    border: 1px solid #c99a22;
    background: linear-gradient(180deg, #ffe888 0%, #ffd24e 100%);
}

.tree-node-icon::before {
    content: "";
    position: absolute;
    top: -4px;
    left: -1px;
    width: 7px;
    height: 4px;
    border: 1px solid #c99a22;
    border-bottom: 0;
    background: #ffe174;
}

.tree-leaf-spacer {
    width: 11px;
    height: 11px;
    flex: 0 0 11px;
}

.tree-leaf a {
    position: relative;
    color: #17202b;
    font-size: .72rem;
    font-weight: 400;
    line-height: 1.25;
    text-decoration: none;
}

.tree-leaf a:hover,
.tree-leaf a:focus-visible {
    color: #17202b;
    background: #d8ebfc;
    outline: 1px dotted #65788a;
    outline-offset: -1px;
}

.tree-leaf a.is-active {
    color: var(--navy-strong);
    background: #e7f4fe;
    outline: 1px solid #76a9e8;
    outline-offset: -1px;
    font-weight: 700;
}

.mobile-navigation {
    display: none;
}

.legal-shell {
    width: min(820px, 100%);
    margin: 1rem auto;
    padding: clamp(1.5rem, 5vw, 3rem);
    border: 1px solid rgba(20, 32, 51, .08);
    border-radius: 24px;
    background: white;
    box-shadow: var(--shadow);
}

.legal-shell h1 {
    margin-top: .35rem;
    font-family: var(--font-interface);
    font-size: clamp(2.3rem, 6vw, 4rem);
    font-weight: 500;
}

.legal-shell section {
    margin-top: 2.2rem;
    padding-top: 1.6rem;
    border-top: 1px solid rgba(20, 32, 51, .09);
}

.legal-shell h2,
.legal-shell h3 {
    color: var(--navy-deep);
}

.legal-shell p,
.legal-shell li,
.legal-shell address,
.legal-shell dd {
    line-height: 1.75;
}

.legal-shell address {
    color: inherit;
    font-style: normal;
}

.legal-shell code {
    padding: .12rem .35rem;
    border-radius: .3rem;
    background: var(--paper);
}

.pre-line {
    white-space: pre-line;
}

.legal-details {
    display: grid;
    gap: .75rem;
}

.legal-details div {
    display: grid;
    grid-template-columns: 7rem 1fr;
}

.legal-details dt {
    color: var(--muted);
}

.legal-details dd {
    margin: 0;
}

.legal-version {
    margin-top: 2rem;
    color: var(--muted);
    font-size: .85rem;
}

.legal-back {
    margin-top: 2rem;
}

.auth-page {
    background: var(--paper);
}

.auth-shell {
    min-height: min(680px, calc(100vh - 220px));
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr);
    gap: clamp(2rem, 7vw, 7rem);
    align-items: center;
}

.auth-intro {
    position: relative;
}

.auth-intro::before {
    content: "";
    position: absolute;
    width: 9rem;
    height: .35rem;
    top: -2rem;
    left: 0;
    border-radius: 1rem;
    background: var(--navy);
}

.eyebrow {
    margin: 0 0 .8rem;
    color: var(--teal);
    font-weight: 750;
    font-size: .78rem;
    letter-spacing: .12em;
    text-transform: uppercase;
}

h1,
h2,
p {
    text-wrap: pretty;
}

.auth-intro h1 {
    margin: 0;
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-weight: 500;
    font-size: clamp(2.8rem, 6vw, 5.4rem);
    line-height: .98;
    letter-spacing: -.045em;
}

.auth-lead {
    max-width: 41rem;
    margin: 1.8rem 0 0;
    color: var(--muted);
    font-size: clamp(1rem, 2vw, 1.18rem);
    line-height: 1.75;
}

.formula-strip {
    margin-top: 2.2rem;
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
}

.formula-strip > .math-tex {
    padding: .65rem .85rem;
    border: 1px solid rgba(21, 58, 91, .12);
    border-radius: 999px;
    color: var(--navy);
    background: rgba(255, 255, 255, .55);
    font-family: var(--font-interface);
}

.auth-card {
    padding: clamp(1.5rem, 4vw, 2.6rem);
    border: 1px solid rgba(21, 58, 91, .1);
    border-radius: 26px;
    background: rgba(255, 255, 255, .94);
    box-shadow: var(--shadow);
}

.card-heading {
    margin-bottom: 1.6rem;
}

.card-heading h1,
.card-heading h2 {
    margin: 0;
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-size: clamp(1.8rem, 4vw, 2.35rem);
    font-weight: 500;
    letter-spacing: -.025em;
}

.card-heading p:last-child {
    margin: .65rem 0 0;
    color: var(--muted);
    line-height: 1.55;
}

.form-stack {
    display: grid;
    gap: 1.2rem;
}

.field {
    display: grid;
    gap: .45rem;
}

.field label {
    color: var(--ink);
    font-size: .9rem;
    font-weight: 700;
}

.field small {
    color: var(--muted);
    line-height: 1.45;
}

.field input,
.field textarea {
    width: 100%;
    min-height: 50px;
    padding: .8rem .9rem;
    border: 1px solid #c9d0d9;
    border-radius: 4px;
    color: var(--ink);
    background: #fbfcfd;
    outline: 0;
    transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.field textarea {
    resize: vertical;
    line-height: 1.55;
}

.field select {
    width: 100%;
    min-height: 50px;
    padding: .8rem 2.4rem .8rem .9rem;
    border: 1px solid #c9d0d9;
    border-radius: 4px;
    color: var(--ink);
    background: #fbfcfd;
    outline: 0;
}

.field input:focus,
.field select:focus,
.field textarea:focus {
    border-color: var(--teal);
    background: white;
    box-shadow: 0 0 0 3px rgba(45, 94, 180, .16);
}

.input-suffix {
    position: relative;
}

.input-suffix input {
    padding-right: 8.2rem;
}

.input-suffix span {
    position: absolute;
    top: 50%;
    right: .85rem;
    color: var(--muted);
    transform: translateY(-50%);
    pointer-events: none;
}

.button {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .75rem 1rem;
    border: 0;
    border-radius: 4px;
    font-weight: 750;
    cursor: pointer;
    text-decoration: none;
}

.button:focus-visible {
    outline: 3px solid rgba(45, 94, 180, .28);
    outline-offset: 2px;
}

.button-primary {
    color: white;
    background: var(--navy);
    box-shadow: none;
}

.button-primary:hover {
    background: var(--navy-deep);
}

.button-full {
    width: 100%;
    margin-top: .25rem;
}

.button-quiet {
    min-height: 40px;
    border: 1px solid rgba(21, 58, 91, .15);
    color: var(--navy);
    background: rgba(255, 255, 255, .55);
}

.notice {
    margin: 0 0 1.25rem;
    padding: .9rem 1rem;
    border-radius: 10px;
    line-height: 1.5;
}

.notice ul {
    margin: 0;
    padding-left: 1.15rem;
}

.notice-error {
    border: 1px solid rgba(163, 59, 67, .25);
    color: #7e2830;
    background: var(--red-light);
}

.notice-success {
    border: 1px solid rgba(15, 118, 110, .2);
    color: #0b5a54;
    background: var(--teal-light);
}

.privacy-note {
    margin: 1.25rem 0 0;
    color: var(--muted);
    font-size: .78rem;
    line-height: 1.55;
}

.narrow-shell {
    width: min(620px, 100%);
    margin: 2rem auto 0;
}

.password-card {
    padding: clamp(1.5rem, 5vw, 3rem);
}

.subject-grid {
    margin-top: 1.4rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.4rem;
}

.subject-card {
    position: relative;
    min-height: 290px;
    overflow: hidden;
    padding: 2rem;
    border: 1px solid rgba(20, 32, 51, .08);
    border-radius: 22px;
    background: white;
}

.subject-card h2,
.info-panel h2 {
    margin: 0;
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-size: 2rem;
    font-weight: 500;
}

.subject-card > p:not(.eyebrow) {
    max-width: 30rem;
    color: var(--muted);
    line-height: 1.65;
}

.subject-symbol {
    position: absolute;
    right: -1rem;
    bottom: -2.5rem;
    color: rgba(21, 58, 91, .07);
    font-family: var(--font-interface);
    font-size: 9rem;
    line-height: 1;
}

.subject-math {
    background: linear-gradient(145deg, white 45%, var(--teal-light));
}

.subject-physics {
    background: linear-gradient(145deg, white 45%, var(--amber-light));
}

.subject-physics .eyebrow {
    color: #9b5b0e;
}

.status-chip {
    position: absolute;
    left: 2rem;
    bottom: 2rem;
    padding: .5rem .75rem;
    border: 1px solid rgba(21, 58, 91, .1);
    border-radius: 999px;
    color: var(--navy);
    background: rgba(255, 255, 255, .75);
    font-size: .78rem;
    font-weight: 750;
}

.info-panel {
    margin-top: 1.4rem;
    padding: 2rem;
    display: grid;
    grid-template-columns: .7fr 1.3fr;
    gap: 2rem;
    align-items: start;
    border: 1px solid rgba(20, 32, 51, .08);
    border-radius: 22px;
    background: rgba(255, 255, 255, .72);
}

.account-details {
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.account-details div {
    padding-left: 1rem;
    border-left: 2px solid var(--teal-light);
}

.account-details dt {
    color: var(--muted);
    font-size: .78rem;
}

.account-details dd {
    margin: .35rem 0 0;
    overflow-wrap: anywhere;
    font-weight: 700;
}

.subject-section,
.empty-panel {
    margin-top: 1.4rem;
    padding: clamp(1.5rem, 4vw, 2.4rem);
    border: 1px solid rgba(20, 32, 51, .08);
    border-radius: 22px;
    background: rgba(255, 255, 255, .82);
}

.section-heading {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 2rem;
}

.section-heading h2,
.empty-panel h2 {
    max-width: 47rem;
    margin: 0;
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-size: clamp(1.7rem, 3vw, 2.35rem);
    font-weight: 500;
    line-height: 1.2;
}

.section-progress {
    flex: none;
    padding: .55rem .8rem;
    border: 1px solid rgba(15, 118, 110, .14);
    border-radius: 999px;
    color: var(--teal);
    background: var(--teal-light);
    font-size: .78rem;
    font-weight: 750;
}

.topic-block {
    margin-top: 2rem;
    padding-top: 1.6rem;
    border-top: 1px solid rgba(20, 32, 51, .09);
}

.topic-heading {
    margin-bottom: 1rem;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
}

.topic-heading h3 {
    margin: 0;
    color: var(--navy-deep);
    font-size: 1.05rem;
}

.topic-heading span {
    color: var(--muted);
    font-size: .78rem;
}

.task-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.task-card {
    min-height: 205px;
    padding: 1.4rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    border: 1px solid rgba(21, 58, 91, .1);
    border-radius: 17px;
    color: var(--ink);
    background: white;
    text-decoration: none;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.task-card:hover {
    border-color: rgba(15, 118, 110, .35);
    box-shadow: 0 14px 34px rgba(24, 41, 65, .1);
    transform: translateY(-2px);
}

.task-card:focus-visible {
    outline: 3px solid rgba(15, 118, 110, .25);
    outline-offset: 3px;
}

.task-card.is-solved {
    border-color: rgba(15, 118, 110, .25);
    background: linear-gradient(145deg, white 55%, rgba(216, 241, 236, .7));
}

.task-state {
    padding: .38rem .6rem;
    border-radius: 999px;
    color: var(--navy);
    background: var(--paper);
    font-size: .72rem;
    font-weight: 750;
}

.task-card.is-solved .task-state {
    color: #0b5a54;
    background: var(--teal-light);
}

.task-card h4 {
    margin: 1rem 0 .45rem;
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-size: 1.55rem;
    font-weight: 500;
}

.task-card p {
    margin: 0;
    color: var(--muted);
    line-height: 1.55;
}

.task-meta {
    margin-top: auto;
    padding-top: 1.2rem;
    color: var(--muted);
    font-size: .75rem;
}

.empty-panel p:last-child {
    max-width: 45rem;
    color: var(--muted);
    line-height: 1.65;
}

.back-link {
    color: var(--navy);
    text-underline-offset: .2em;
}

.page-header {
    position: sticky;
    z-index: 60;
    top: var(--topbar-height);
    min-height: 86px;
    margin: 0 calc(var(--content-gutter) * -1);
    padding: .75rem var(--content-gutter);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    border-bottom: 1px solid var(--line);
    background: white;
}

.page-header-copy {
    min-width: 0;
}

.page-header .eyebrow {
    margin-bottom: .2rem;
    font-size: .64rem;
    letter-spacing: .1em;
}

.page-header h1 {
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    font-weight: 500;
    line-height: 1.12;
    letter-spacing: -.02em;
}

.page-header-description {
    max-width: 100rem;
    margin: .28rem 0 0;
    color: var(--muted);
    font-size: .78rem;
    line-height: 1.42;
}

.page-header-aside {
    flex: none;
    display: flex;
    align-items: center;
    gap: .6rem;
}

.page-header-stat,
.page-header-badge {
    border: 1px solid rgba(45, 94, 180, .24);
    border-radius: 4px;
    color: var(--navy-deep);
    background: rgba(255, 255, 255, .76);
}

.page-header-stat {
    min-width: 88px;
    padding: .48rem .7rem;
    text-align: right;
}

.page-header-stat strong,
.page-header-stat span {
    display: block;
}

.page-header-stat strong {
    font-size: 1rem;
}

.page-header-stat span {
    margin-top: .05rem;
    color: var(--muted);
    font-size: .65rem;
}

.page-header-badge {
    padding: .55rem .75rem;
    color: var(--teal);
    font-size: .75rem;
    font-weight: 800;
}

.task-layout {
    margin-top: 1.4rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 1.4rem;
    align-items: start;
}

.exercise-card,
.attempt-panel {
    border: 1px solid rgba(20, 32, 51, .08);
    border-radius: 22px;
    background: white;
    box-shadow: 0 18px 50px rgba(24, 41, 65, .08);
}

.exercise-card {
    padding: clamp(1.5rem, 5vw, 3rem);
}

.task-prompt {
    margin: 0 0 2.2rem;
    padding: clamp(1.4rem, 4vw, 2.2rem);
    border-left: 5px solid var(--teal);
    border-radius: 0 16px 16px 0;
    color: var(--navy-deep);
    background: var(--paper);
    font-family: var(--font-interface);
    font-size: clamp(1.35rem, 3vw, 1.9rem);
    line-height: 1.45;
}

.answer-result {
    margin-bottom: 1.5rem;
    padding: 1.2rem 1.3rem;
    border-radius: 14px;
}

.answer-result.is-correct {
    border: 1px solid rgba(15, 118, 110, .22);
    color: #0b5a54;
    background: var(--teal-light);
}

.answer-result.is-incorrect {
    border: 1px solid rgba(216, 137, 33, .28);
    color: #805010;
    background: var(--amber-light);
}

.answer-result p {
    margin: .35rem 0 0;
    line-height: 1.55;
}

.answer-result .result-label {
    margin-top: 0;
    font-weight: 800;
}

.solution-note {
    padding-top: .8rem;
    border-top: 1px solid currentColor;
}

.answer-form {
    display: grid;
    gap: 1.3rem;
}

.answer-form .button {
    justify-self: start;
    min-width: 180px;
}

.answer-input-row {
    display: flex;
    align-items: center;
    gap: .8rem;
}

.answer-input-row input {
    max-width: 320px;
}

.unit-label {
    color: var(--navy-deep);
    font-weight: 750;
}

.choice-fieldset {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.choice-fieldset legend {
    margin-bottom: .7rem;
    font-weight: 750;
}

.choice-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.choice-option {
    min-height: 60px;
    padding: .8rem;
    display: flex;
    align-items: center;
    gap: .8rem;
    border: 1px solid #c9d0d9;
    border-radius: 12px;
    cursor: pointer;
    background: #fbfcfd;
}

.choice-option:has(input:checked) {
    border-color: var(--teal);
    background: var(--teal-light);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, .1);
}

.choice-option:focus-within {
    outline: 3px solid rgba(15, 118, 110, .2);
    outline-offset: 2px;
}

.choice-option input {
    width: 1rem;
    height: 1rem;
    flex: none;
    accent-color: var(--teal);
}

.choice-key {
    width: 1.8rem;
    height: 1.8rem;
    flex: none;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: var(--navy);
    background: white;
    font-size: .75rem;
    font-weight: 800;
}

.attempt-panel {
    position: sticky;
    top: 1rem;
    padding: 1.5rem;
}

.attempt-panel h2 {
    margin: 0;
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-size: 1.8rem;
    font-weight: 500;
}

.attempt-empty {
    color: var(--muted);
    line-height: 1.55;
}

.attempt-list {
    margin: 1.2rem 0 0;
    padding: 0;
    display: grid;
    gap: .8rem;
    list-style: none;
}

.attempt-list li {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.attempt-list strong,
.attempt-list small {
    display: block;
}

.attempt-list strong {
    overflow-wrap: anywhere;
}

.attempt-list small {
    margin-top: .15rem;
    color: var(--muted);
    font-size: .72rem;
}

.attempt-icon {
    width: 2rem;
    height: 2rem;
    flex: none;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-weight: 800;
}

.attempt-icon.is-correct {
    color: #0b5a54;
    background: var(--teal-light);
}

.attempt-icon.is-incorrect {
    color: #805010;
    background: var(--amber-light);
}

.back-link {
    margin-top: 1.5rem;
    display: inline-block;
    font-size: .82rem;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.metric-grid {
    margin-top: 1.4rem;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1rem;
}

.metric-card {
    min-height: 140px;
    padding: 1.35rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    border: 1px solid rgba(20, 32, 51, .08);
    border-radius: 18px;
    background: white;
}

.metric-card span {
    color: var(--muted);
    font-size: .82rem;
    font-weight: 700;
}

.metric-card strong {
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-size: 2.7rem;
    font-weight: 500;
}

.access-status-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .8rem;
}

.access-status-grid article {
    min-height: 128px;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    border: 1px solid rgba(20, 32, 51, .08);
    border-radius: 14px;
    background: white;
}

.access-status-grid article > strong {
    margin-top: auto;
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-size: 2.25rem;
    font-weight: 500;
}

.access-status-grid article > small {
    margin-top: .25rem;
    color: var(--muted);
    line-height: 1.4;
}

.access-status {
    display: inline-flex;
    width: fit-content;
    padding: .35rem .55rem;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 800;
    white-space: nowrap;
}

.access-status.is-not-started {
    color: #805010;
    background: var(--amber-light);
}

.access-status.is-password-change-pending,
.access-status.is-pending {
    color: var(--navy-deep);
    background: #dceaf7;
}

.access-status.is-ready {
    color: #0b5a54;
    background: var(--teal-light);
}

.access-status.is-locked {
    color: #7e2830;
    background: var(--red-light);
}

.teacher-panel {
    margin-top: 1.4rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid rgba(20, 32, 51, .08);
    border-radius: 22px;
    background: rgba(255, 255, 255, .86);
}

.teacher-panel-heading {
    margin-bottom: 1.4rem;
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 2rem;
}

.teacher-panel-heading h2 {
    margin: 0;
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-size: clamp(1.8rem, 3vw, 2.35rem);
    font-weight: 500;
}

.teacher-filter {
    display: flex;
    align-items: end;
    justify-content: flex-end;
    gap: .65rem;
}

.compact-field {
    min-width: 190px;
    gap: .3rem;
}

.compact-field input,
.compact-field select {
    min-height: 42px;
    padding-top: .55rem;
    padding-bottom: .55rem;
}

.teacher-filter .button {
    min-height: 42px;
}

.table-scroll {
    max-width: 100%;
    overflow-x: auto;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .88rem;
    font-variant-numeric: tabular-nums lining-nums;
}

.table-number {
    text-align: right !important;
    white-space: nowrap;
}

.table-value-start {
    text-align: left !important;
    white-space: nowrap;
}

.data-table th,
.data-table td {
    padding: .9rem .75rem;
    border-bottom: 1px solid rgba(20, 32, 51, .08);
    text-align: left;
    vertical-align: middle;
}

.data-table th {
    color: var(--muted);
    font-size: .72rem;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.data-table tbody tr:last-child th,
.data-table tbody tr:last-child td {
    border-bottom: 0;
}

.data-table strong,
.data-table td > small {
    display: block;
}

.data-table td > small {
    margin-top: .15rem;
    color: var(--muted);
    font-size: .72rem;
}

.curriculum-version-list {
    min-width: 0;
    display: grid;
    gap: 1.4rem;
}

.curriculum-version-card {
    min-width: 0;
    margin-top: 0;
}

.curriculum-general-section,
.curriculum-subsection {
    min-width: 0;
}

.curriculum-subsection > header {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 2rem;
}

.curriculum-subsection h2 {
    margin: 0;
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-weight: 500;
}

.curriculum-general-section {
    margin-top: 1.5rem;
}

.curriculum-general-section > header {
    margin-bottom: .75rem;
}

.curriculum-general-section h2 {
    margin: 0;
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-size: 1.65rem;
    font-weight: 500;
}

.curriculum-general-table {
    min-width: 820px;
    border-top: 1px solid rgba(20, 32, 51, .08);
}

.curriculum-general-table tbody th {
    width: 15%;
    background: rgba(20, 32, 51, .025);
    letter-spacing: .035em;
    white-space: nowrap;
}

.curriculum-general-table tbody td {
    width: 35%;
    color: var(--navy-deep);
    font-weight: 750;
}

.curriculum-model-general-table tbody :is(th, td) {
    width: auto;
}

.curriculum-model-general-table td {
    text-align: left;
}

.curriculum-model-general-table .curriculum-general-main-heading-column {
    width: 11%;
}

.curriculum-model-general-table .curriculum-general-detail-heading-column {
    width: 9%;
}

.curriculum-model-general-table .curriculum-general-primary-value-column {
    width: 30%;
}

.curriculum-model-general-table .curriculum-general-secondary-heading-column {
    width: 15%;
}

.curriculum-model-general-table .curriculum-general-secondary-value-column {
    width: 35%;
}

.curriculum-model-general-table .curriculum-general-classification-heading {
    border-bottom: 0;
}

.curriculum-model-general-table tbody th[rowspan] {
    vertical-align: top;
}

.curriculum-model-general-table .curriculum-general-classification-internal-row > :is(th, td):not([rowspan]) {
    border-bottom: 0;
}

.curriculum-model-general-table .curriculum-general-classification-row > :is(th, td) {
    padding-block: .18rem;
}

.curriculum-model-general-table .curriculum-general-systematics {
    white-space: normal;
}

.bank-preview-general-table {
    min-width: 920px;
    table-layout: fixed;
}

.bank-preview-general-table .bank-preview-general-main-heading-column {
    width: 11%;
}

.bank-preview-general-table .bank-preview-general-detail-heading-column {
    width: 9%;
}

.bank-preview-general-table .bank-preview-general-primary-value-column {
    width: 30%;
}

.bank-preview-general-table .bank-preview-general-coverage-heading-column {
    width: 25%;
}

.bank-preview-general-table .bank-preview-general-secondary-value-column {
    width: 16%;
}

.bank-preview-general-table .bank-preview-general-coverage-heading {
    white-space: nowrap;
}

.bank-preview-general-table tbody th[rowspan] {
    border-bottom: 1px solid rgba(20, 32, 51, .08);
}

.curriculum-general-table tbody tr:last-child th,
.curriculum-general-table tbody tr:last-child td {
    border-bottom: 0;
}

.curriculum-general-range .math-tex {
    display: block;
    line-height: 1.7;
}

.curriculum-subsection {
    margin-top: 1.6rem;
    padding-top: 1.6rem;
    border-top: 1px solid var(--line);
}

.curriculum-subsection > header {
    margin-bottom: 1rem;
}

.curriculum-subsection h2 {
    font-size: 1.65rem;
}

.curriculum-subsection .eyebrow {
    margin-bottom: .35rem;
}

.requirement-level-table {
    max-width: 720px;
}

.teacher-task-system-area {
    --curriculum-code-column-width: 72px;
}

.requirement-level-table .requirement-level-code-column {
    width: var(--curriculum-code-column-width);
}

.requirement-level-table :is(th, td):first-child {
    width: var(--curriculum-code-column-width);
    min-width: var(--curriculum-code-column-width);
    max-width: var(--curriculum-code-column-width);
}

.requirement-level-table tbody :is(th, td):nth-child(3),
.requirement-level-table tbody :is(th, td):nth-child(6) {
    border-left: 1px solid rgba(20, 32, 51, .08);
}

.requirement-level-table tbody :is(th, td):nth-child(6) {
    border-right: 1px solid rgba(20, 32, 51, .08);
}

.requirement-level-table :is(th, td):nth-child(n + 2),
.curriculum-supervised-test-plan-table :is(th, td):nth-child(n + 3),
.bank-preview-target-table :is(th, td):nth-child(n + 3),
.bank-preview-block-table :is(th, td):not(:last-child),
.bank-preview-task-table :is(th, td):nth-child(1),
.bank-preview-task-table :is(th, td):nth-child(n + 5) {
    text-align: right;
}

.requirement-level-table tbody th,
.curriculum-model-classification-code,
.curriculum-supervised-test-plan-table tbody th {
    background: rgba(20, 32, 51, .025);
}

.requirement-level-table tbody th {
    font-size: .82rem;
}

.requirement-level-heading-groups > th:first-child,
.requirement-level-table tbody th {
    text-align: center;
}

.teacher-task-system-area .data-table,
.teacher-task-system-area .curriculum-model-classification-list {
    border-bottom: 1px solid var(--line);
}

.teacher-task-system-area .data-table tfoot tr:last-child th,
.teacher-task-system-area .data-table tfoot tr:last-child td,
.teacher-task-system-area .curriculum-model-classification-row:last-child > summary {
    border-bottom: 0;
}

.requirement-level-table thead th,
.curriculum-supervised-test-plan-table thead th {
    border-top: 1px solid rgba(20, 32, 51, .12);
    border-bottom: 1px solid rgba(20, 32, 51, .12);
    border-radius: 0;
    background: var(--teal-light);
}

.requirement-level-table thead th:first-child,
.curriculum-supervised-test-plan-table thead th:first-child {
    border-left: 1px solid rgba(20, 32, 51, .12);
}

.requirement-level-table thead th + th,
.curriculum-supervised-test-plan-table thead th + th {
    border-left: 1px solid rgba(20, 32, 51, .12);
}

.requirement-level-table thead th:last-child,
.curriculum-supervised-test-plan-table thead th:last-child {
    border-right: 1px solid rgba(20, 32, 51, .12);
}

.curriculum-supervised-test-plan-table tfoot th,
.curriculum-supervised-test-plan-table tfoot td {
    border-top: 1px solid rgba(20, 32, 51, .14);
    border-bottom: 1px solid rgba(20, 32, 51, .14);
    background: rgba(20, 32, 51, .08);
}

.curriculum-model-classification-table {
    max-width: 100%;
    position: relative;
}

.task-system-table-sticky-heading {
    position: sticky;
    z-index: 50;
    top: var(--task-system-table-sticky-top, calc(var(--topbar-height) + 6.5rem));
    margin-bottom: 0 !important;
    padding-top: .75rem;
    padding-bottom: .35rem;
    background: #fff;
}

.compact-bank-preview .teacher-panel-heading.task-system-table-sticky-heading {
    padding-bottom: 1.4rem;
}

.curriculum-supervised-test-plan-section > .task-system-table-sticky-heading {
    padding-bottom: 1rem;
}

.task-system-sticky-table-head {
    position: static;
}

.task-system-sticky-table-head.is-replaced {
    opacity: 0;
    pointer-events: none;
}

.task-system-sticky-column-viewport {
    max-width: 100%;
    position: sticky;
    z-index: 49;
    top: calc(
        var(--task-system-table-sticky-top, calc(var(--topbar-height) + 6.5rem))
        + var(--task-system-table-sticky-height, 2.5rem)
    );
    overflow: hidden;
    background: #fff;
}

.task-system-sticky-column-table {
    margin: 0;
    table-layout: fixed;
    border-bottom: 0 !important;
}

.table-scroll.has-task-system-sticky-column-proxy {
    margin-top: calc(-1 * var(--task-system-sticky-column-height, 0px));
}

.curriculum-model-classification-sticky {
    position: sticky;
    z-index: 50;
    top: var(--task-system-table-sticky-top, calc(var(--topbar-height) + 6.5rem));
    padding-top: .75rem;
    background: #fff;
}

.curriculum-model-classification-sticky > header {
    margin-bottom: 1rem;
}

.curriculum-model-classification-header-viewport {
    max-width: 100%;
    overflow-x: hidden;
}

.curriculum-model-classification-view {
    max-width: 100%;
    overflow-x: auto;
}

.curriculum-model-classification-header,
.curriculum-model-classification-list,
.curriculum-model-classification-row-proxy {
    --curriculum-model-columns: var(--curriculum-code-column-width) 230px minmax(0, 1fr) 72px 104px 80px 104px 46px;
    min-width: 920px;
}

.curriculum-model-classification-list {
    display: grid;
    gap: 0;
    background: #fff;
}

.curriculum-model-classification-header,
.curriculum-model-classification-row > summary {
    display: grid;
    grid-template-columns: var(--curriculum-model-columns);
    gap: 0;
}

.curriculum-model-classification-header {
    position: relative;
    z-index: 1;
    align-self: start;
    overflow: visible;
    border: 0;
    border-radius: 0;
    box-shadow:
        inset 1px 0 0 rgba(20, 32, 51, .12),
        inset -1px 0 0 rgba(20, 32, 51, .12);
    color: var(--navy-deep);
    background: var(--teal-light);
    font-size: .62rem;
    font-weight: 850;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.curriculum-model-classification-header::before,
.curriculum-model-classification-header::after {
    content: "";
    position: absolute;
    z-index: 2;
    right: 0;
    left: 0;
    height: 1px;
    background: rgba(20, 32, 51, .12);
    pointer-events: none;
}

.curriculum-model-classification-header::before {
    top: 0;
}

.curriculum-model-classification-header::after {
    bottom: 0;
}

.curriculum-model-classification-header > span:not(.curriculum-condition-scroll),
.curriculum-model-classification-row > summary > span:not(.curriculum-condition-scroll) {
    min-width: 0;
    padding: .72rem .6rem;
    display: flex;
    align-items: center;
}

.curriculum-model-classification-header > span:not(.curriculum-condition-scroll) {
    justify-content: center;
    text-align: center;
}

.curriculum-model-classification-header > span:nth-child(2) {
    justify-content: flex-start;
    text-align: left;
}

.curriculum-model-classification-list,
.curriculum-sample-targets,
.curriculum-sample-table {
    font-variant-numeric: tabular-nums lining-nums;
}

.curriculum-model-classification-header > span:nth-child(n + 4):nth-child(-n + 7),
.curriculum-model-classification-row > summary > span:nth-child(n + 4):nth-child(-n + 7) {
    justify-content: flex-end;
    text-align: right;
}

.curriculum-model-classification-header > span + span,
.curriculum-model-classification-row > summary > span + span,
.curriculum-model-classification-row > summary::after {
    border-left: 1px solid rgba(20, 32, 51, .12);
}

.curriculum-model-classification-header > span:nth-child(2),
.curriculum-model-classification-row > summary > span:nth-child(2) {
    border-left: 0;
}

.curriculum-model-classification-header .curriculum-condition-track > span {
    padding-block: .65rem;
    background: var(--teal-light);
}

.curriculum-model-classification-row {
    margin-top: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    overflow: clip;
    background: #fff;
}

.curriculum-model-classification-row > summary {
    align-items: stretch;
    border-bottom: 1px solid rgba(20, 32, 51, .08);
    cursor: pointer;
    list-style: none;
}

.curriculum-model-classification-row > summary::-webkit-details-marker {
    display: none;
}

.curriculum-model-classification-row > summary > span:not(.curriculum-condition-scroll) {
    justify-content: center;
    color: var(--navy-deep);
    font-size: .78rem;
    text-align: center;
}

.curriculum-model-classification-row > summary > .curriculum-condition-scroll {
    padding: 0;
}

.curriculum-model-classification-row > summary::after {
    content: "+";
    display: grid;
    place-items: center;
    color: var(--navy-deep);
    background: var(--teal-light);
    font-size: 1.05rem;
    font-weight: 900;
}

.curriculum-model-classification-row[open] > summary::after {
    content: "−";
}

.curriculum-model-classification-row[open] > summary,
.curriculum-model-classification-row[open] > summary > span:not(.curriculum-condition-scroll),
.curriculum-model-classification-row[open] > summary .curriculum-condition-track > span {
    background: #f9fcfc;
}

.curriculum-open-classification-row-proxy {
    position: absolute;
    z-index: 3;
    top: 100%;
    right: 0;
    left: 0;
    overflow: hidden;
    border-bottom: 1px solid var(--line);
    background: #fff;
    pointer-events: none;
}

.curriculum-open-classification-detail-head-proxy {
    position: absolute;
    z-index: 2;
    right: 0;
    left: 0;
    overflow: hidden;
    background: #fff;
    pointer-events: none;
}

.curriculum-open-classification-detail-head-proxy .curriculum-sample-table {
    margin: 0;
    position: relative;
    table-layout: fixed;
    border-bottom: 0 !important;
    will-change: transform;
}

.curriculum-model-classification-row-proxy {
    overflow: visible;
    background: #fff;
}

.curriculum-model-classification-row-proxy > summary {
    background: #f9fcfc !important;
}

.curriculum-model-classification-code {
    font-size: .82rem !important;
    font-weight: 700;
}

.requirement-level-table tbody th,
.curriculum-model-classification-row > summary > span.curriculum-model-classification-code {
    color: var(--muted);
    font-weight: 700;
}

.requirement-level-table tbody th > strong,
.curriculum-model-classification-row > summary > span.curriculum-model-classification-code > strong {
    color: inherit;
    font-weight: inherit;
}

.curriculum-model-classification-name {
    justify-content: flex-start !important;
    font-size: .82rem !important;
    font-weight: 400;
    line-height: 1.3;
    text-align: left !important;
}

.curriculum-model-classification-body {
    padding-top: .65rem;
}

.curriculum-stage-navigation {
    margin-top: 1.4rem;
    padding: .35rem;
    display: inline-flex;
    gap: .35rem;
    border: 1px solid rgba(20, 32, 51, .08);
    border-radius: 999px;
    background: white;
}

.curriculum-stage-link {
    min-width: 104px;
    padding: .7rem 1rem;
    border-radius: 999px;
    color: var(--navy-deep);
    font-size: .82rem;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
}

.curriculum-stage-link:hover,
.curriculum-stage-link:focus-visible {
    background: var(--teal-light);
}

.curriculum-stage-link.is-active {
    color: white;
    background: var(--navy-deep);
}

.curriculum-condition-scroll {
    min-width: 0;
    display: block;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
}

.curriculum-condition-scroll:not(.curriculum-condition-scroll-master) {
    scrollbar-width: none;
}

.curriculum-condition-scroll:not(.curriculum-condition-scroll-master)::-webkit-scrollbar {
    display: none;
}

.curriculum-condition-scroll-master {
    scrollbar-color: var(--teal) rgba(20, 32, 51, .08);
    scrollbar-gutter: stable;
}

.curriculum-condition-scroll-master:focus-visible {
    outline: 3px solid rgba(15, 118, 110, .35);
    outline-offset: -3px;
}

.curriculum-condition-scroll-master::-webkit-scrollbar {
    height: 14px;
}

.curriculum-condition-scroll-master::-webkit-scrollbar-track {
    background: rgba(20, 32, 51, .08);
}

.curriculum-condition-scroll-master::-webkit-scrollbar-thumb {
    border: 3px solid transparent;
    border-radius: 999px;
    background: var(--teal);
    background-clip: padding-box;
}

.curriculum-condition-track {
    min-height: 100%;
    display: grid;
    grid-template-columns: repeat(var(--condition-column-count, 1), 260px);
}

.curriculum-sample-columns-4 .curriculum-condition-track {
    grid-template-columns: 220px 210px 210px 210px;
}

.curriculum-sample-columns-5 .curriculum-condition-track {
    grid-template-columns: 240px 210px 210px 240px 240px;
}

.curriculum-sample-columns-7 .curriculum-condition-track {
    grid-template-columns: 240px 300px 200px 250px 250px 200px 250px;
}

.curriculum-condition-track > span {
    min-width: 0;
    padding: .8rem .7rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    white-space: nowrap;
}

.curriculum-condition-track > span + span {
    border-left: 1px solid rgba(20, 32, 51, .12);
}

.curriculum-sample-condition-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.curriculum-sample-condition-cell.is-empty {
    background: #fff;
}

.curriculum-sample-body {
    padding: .65rem 1.3rem 1.3rem;
    border-top: 1px solid var(--line);
}

.curriculum-sample-targets {
    margin: 1rem 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .6rem;
}

.curriculum-sample-targets > div {
    padding: .75rem;
    border-radius: 10px;
    background: rgba(20, 32, 51, .035);
}

.curriculum-sample-targets dt {
    color: var(--muted);
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.curriculum-sample-targets dd {
    margin: .3rem 0 0;
    color: var(--navy-deep);
    font-weight: 800;
}

.curriculum-sample-table {
    min-width: 1000px;
}

.curriculum-sample-table thead th {
    border-top: 1px solid rgba(20, 32, 51, .12);
    border-bottom: 1px solid rgba(20, 32, 51, .12);
    border-radius: 0;
    color: var(--status-unavailable-dark);
    background: var(--status-unavailable-medium);
}

.curriculum-sample-table thead .math-tex {
    color: var(--status-unavailable-dark);
}

.curriculum-sample-heading-groups th:first-child {
    border-left: 1px solid rgba(20, 32, 51, .12);
}

.curriculum-sample-heading-groups th + th,
.curriculum-sample-heading-details th + th {
    border-left: 1px solid rgba(20, 32, 51, .12);
}

.curriculum-sample-heading-groups th:last-child,
.curriculum-sample-heading-details th:last-child {
    border-right: 1px solid rgba(20, 32, 51, .12);
}

.curriculum-sample-table td:nth-child(2),
.curriculum-sample-table td:nth-child(3) {
    min-width: 150px;
}

.curriculum-sample-heading-groups th:last-child,
.curriculum-sample-heading-details th:first-child,
.curriculum-sample-table tbody td:nth-child(6) {
    border-left: 1px solid rgba(20, 32, 51, .12);
}

.curriculum-sample-table tbody td:nth-child(n + 5) {
    text-align: right;
    white-space: nowrap;
}

.curriculum-sample-table tbody td {
    background: var(--status-unavailable-light);
}

.curriculum-sample-table tbody td:first-child {
    color: var(--status-unavailable-dark);
    background: var(--status-unavailable-medium);
}

.math-tex {
    max-width: 100%;
    display: inline-block;
    color: var(--navy-deep);
    font-size: var(--font-math-base);
    letter-spacing: normal;
    text-transform: none;
    vertical-align: middle;
}

.math-tex[data-latex]:not([data-latex-rendered]):not([data-latex-fallback-visible]) {
    visibility: hidden;
}

.math-tex-display {
    display: block;
}

.math-tex .katex {
    font-size: 1em;
}

.math-tex-task .katex {
    font-size: 1.188em;
}

.math-tex-rule {
    display: block;
}

.math-tex-rule .katex {
    font-size: 1em;
}

.math-tex-gcd .katex {
    font-size: 1.188em;
}

.bank-preview-notice {
    margin-top: 1.4rem;
    margin-bottom: 0;
}

.bank-preview-check-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
}

.bank-preview-check {
    min-height: 72px;
    padding: .8rem;
    display: flex;
    align-items: center;
    gap: .65rem;
    border: 1px solid rgba(20, 32, 51, .08);
    border-radius: 12px;
    color: var(--navy-deep);
    background: white;
    font-size: .76rem;
    line-height: 1.4;
}

.bank-preview-check > span {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-weight: 900;
}

.bank-preview-check.is-passed > span {
    color: #0b5a54;
    background: var(--teal-light);
}

.bank-preview-check.is-failed > span {
    color: #7e2830;
    background: var(--red-light);
}

.bank-preview-target-table {
    min-width: 1300px;
}

.bank-preview-positions {
    max-width: 270px;
    color: var(--muted);
    font-size: .76rem;
    line-height: 1.45;
}

.bank-preview-block-table {
    min-width: 980px;
}

.bank-preview-block-table tr.is-selected {
    background: rgba(119, 211, 200, .14);
}

.bank-block-navigation {
    margin-bottom: 1rem;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .45rem;
}

.bank-block-navigation a {
    padding: .55rem .45rem;
    border: 1px solid rgba(20, 32, 51, .1);
    border-radius: 9px;
    color: var(--navy-deep);
    background: white;
    font-size: .7rem;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
}

.bank-block-navigation a:hover,
.bank-block-navigation a:focus-visible {
    border-color: var(--teal);
    background: var(--teal-light);
}

.bank-block-navigation a.is-active {
    border-color: var(--navy-deep);
    color: white;
    background: var(--navy-deep);
}

.bank-preview-task-table {
    min-width: 1100px;
}

.bank-preview-task-table td:nth-child(2),
.bank-preview-task-table td:nth-child(3) {
    min-width: 145px;
}

.bank-preview-task-table td:nth-child(4) {
    min-width: 190px;
}

.week-table {
    min-width: 1120px;
}

.week-table .week-row-unavailable {
    background: var(--status-unavailable-light);
}

.week-number,
.week-calendar-number,
.week-date-range {
    white-space: nowrap;
}

.week-number {
    color: var(--navy-deep);
    font-weight: 800;
}

.week-notes {
    min-width: 230px;
}

.week-notes strong,
.week-notes small {
    display: block;
}

.week-notes small {
    margin-top: .2rem;
    color: var(--muted);
}

.planning-hint {
    margin: -.25rem 0 1.25rem;
    padding: .85rem 1rem;
    border-left: 4px solid var(--teal);
    border-radius: 0 10px 10px 0;
    color: var(--muted);
    background: var(--teal-light);
    font-size: .82rem;
    line-height: 1.55;
}

.week-topics {
    min-width: 220px;
}

.week-topic-empty {
    color: var(--muted);
    font-size: .78rem;
}

.week-topic-list {
    margin: 0;
    padding-left: 1.25rem;
}

.week-topic-list li + li {
    margin-top: .55rem;
}

.week-topic-list strong,
.week-topic-list small {
    display: block;
}

.week-topic-list small {
    margin-top: .1rem;
    color: var(--muted);
    font-size: .7rem;
}

.week-edit-panel {
    width: 100%;
}

.availability-choice {
    margin: 0;
    padding: 1.1rem;
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    border: 1px solid var(--line);
    border-radius: 14px;
}

.availability-choice legend {
    padding: 0 .35rem;
    font-weight: 750;
}

.availability-choice label {
    min-width: 180px;
    padding: .85rem 1rem;
    display: flex;
    align-items: center;
    gap: .65rem;
    border: 1px solid var(--line);
    border-radius: 11px;
    cursor: pointer;
    background: white;
}

.availability-choice label:has(input:checked) {
    border-color: var(--teal);
    background: var(--teal-light);
}

.availability-choice input,
.topic-option input {
    width: 1rem;
    height: 1rem;
    flex: none;
    accent-color: var(--teal);
}

.topic-picker {
    margin-top: .4rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--line);
}

.topic-picker h2 {
    margin: 0;
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-size: 2rem;
    font-weight: 500;
}

.topic-picker > div > p:last-child {
    color: var(--muted);
    line-height: 1.55;
}

.topic-picker-group {
    margin: 1.3rem 0 0;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 14px;
}

.topic-picker-group legend {
    padding: 0 .4rem;
    color: var(--navy-deep);
    font-weight: 800;
}

.topic-option-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
}

.topic-option {
    min-height: 74px;
    padding: .8rem;
    display: flex;
    align-items: start;
    gap: .7rem;
    border: 1px solid rgba(20, 32, 51, .08);
    border-radius: 11px;
    cursor: pointer;
    background: white;
}

.topic-option:has(input:checked) {
    border-color: var(--teal);
    background: var(--teal-light);
}

.topic-option strong,
.topic-option small {
    display: block;
}

.topic-option small {
    margin-top: .2rem;
    color: var(--muted);
    line-height: 1.4;
}

.form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
}

.table-progress {
    min-width: 118px;
}

.table-progress > span {
    height: .4rem;
    display: block;
    overflow: hidden;
    border-radius: 999px;
    background: var(--line);
}

.table-progress i {
    height: 100%;
    display: block;
    border-radius: inherit;
    background: var(--teal);
}

.table-progress small {
    margin-top: .3rem;
    display: block;
    color: var(--muted);
    font-size: .72rem;
}

.row-link {
    color: var(--navy);
    font-size: .78rem;
    font-weight: 750;
    text-underline-offset: .2em;
}

.table-empty {
    padding: 1.5rem !important;
    color: var(--muted);
    text-align: center !important;
    line-height: 1.55;
}

.teacher-pagination {
    margin-top: 1.2rem;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1rem;
    color: var(--muted);
    font-size: .78rem;
}

.teacher-pagination a {
    color: var(--navy);
    font-weight: 750;
}

.teacher-two-column {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
    gap: 1.4rem;
}

.catalog-list {
    display: grid;
    gap: .8rem;
}

.catalog-item {
    padding: 1.1rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.5rem;
    border: 1px solid rgba(20, 32, 51, .08);
    border-radius: 14px;
    background: white;
}

.catalog-item h3 {
    margin: .55rem 0 .25rem;
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-size: 1.25rem;
    font-weight: 500;
}

.catalog-item p {
    margin: 0;
    color: var(--muted);
    font-size: .78rem;
    line-height: 1.5;
}

.catalog-status {
    display: inline-flex;
    padding: .35rem .55rem;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 800;
}

.catalog-status.is-active {
    color: #0b5a54;
    background: var(--teal-light);
}

.catalog-status.is-inactive {
    color: var(--status-unavailable-dark);
    background: var(--status-unavailable-medium);
}

.catalog-item dl {
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, auto);
    gap: 1rem;
}

.catalog-item dl div {
    min-width: 3rem;
    padding-left: .7rem;
    border-left: 1px solid var(--line);
}

.catalog-item dt {
    color: var(--muted);
    font-size: .65rem;
}

.catalog-item dd {
    margin: .2rem 0 0;
    font-weight: 750;
}

.teacher-activity-list {
    margin: 0;
    padding: 0;
    display: grid;
    gap: .95rem;
    list-style: none;
}

.teacher-activity-list li {
    display: flex;
    align-items: start;
    gap: .8rem;
}

.teacher-activity-list strong,
.teacher-activity-list small {
    display: block;
}

.teacher-activity-list p {
    margin: .2rem 0;
    color: var(--muted);
    font-size: .78rem;
    line-height: 1.45;
}

.teacher-activity-list small {
    color: var(--muted);
    font-size: .7rem;
}

.student-access-details {
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
}

.student-access-details div {
    padding: 1rem;
    border: 1px solid rgba(20, 32, 51, .08);
    border-radius: 13px;
    background: white;
}

.student-access-details dt {
    color: var(--muted);
    font-size: .72rem;
    font-weight: 750;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.student-access-details dd {
    margin: .5rem 0 0;
    color: var(--navy-deep);
    font-weight: 750;
}

.password-reset-form {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--line);
}

.password-reset-form > p:first-child {
    max-width: 760px;
    color: var(--muted);
    line-height: 1.6;
}

.confirmation-check {
    max-width: 760px;
    margin: 1rem 0;
    padding: .9rem 1rem;
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: white;
    cursor: pointer;
    line-height: 1.5;
}

.confirmation-check:has(input:checked) {
    border-color: var(--teal);
    background: var(--teal-light);
}

.confirmation-check input {
    width: 1rem;
    height: 1rem;
    flex: none;
    margin-top: .2rem;
    accent-color: var(--teal);
}

.button-danger {
    color: white;
    background: var(--red);
}

.button-danger:hover {
    background: #7e2830;
}

.field-error {
    color: #7e2830;
    font-size: .82rem;
}

.credential-print-card {
    width: min(780px, 100%);
    margin: 1.5rem auto 0;
    padding: clamp(1.5rem, 5vw, 3rem);
    border: 1px solid rgba(20, 32, 51, .08);
    border-radius: 24px;
    background: white;
    box-shadow: var(--shadow);
}

.credential-print-card h2 {
    margin: 0;
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-size: clamp(2.1rem, 5vw, 3.4rem);
    font-weight: 500;
    letter-spacing: -.035em;
}

.credential-intro,
.credential-warning {
    line-height: 1.65;
}

.credential-intro {
    color: var(--muted);
}

.credential-values {
    margin: 1.5rem 0;
    display: grid;
    grid-template-columns: minmax(150px, .6fr) minmax(0, 1.4fr);
    gap: .8rem;
}

.credential-values div {
    padding: 1.1rem;
    border-radius: 13px;
    background: var(--paper);
}

.credential-values dt {
    color: var(--muted);
    font-size: .72rem;
    font-weight: 750;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.credential-values dd {
    margin: .55rem 0 0;
    overflow-wrap: anywhere;
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-size: clamp(1.2rem, 4vw, 1.75rem);
    font-weight: 750;
}

.credential-steps {
    padding-left: 1.4rem;
    line-height: 1.7;
}

.credential-warning {
    padding: .9rem 1rem;
    border-left: 4px solid var(--amber);
    border-radius: 0 10px 10px 0;
    color: #68420d;
    background: var(--amber-light);
}

.student-task-list {
    display: grid;
    gap: .7rem;
}

.student-task-list article {
    padding: 1rem;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .9rem;
    border: 1px solid rgba(20, 32, 51, .08);
    border-radius: 13px;
    background: white;
}

.student-task-list h3 {
    margin: 0;
    color: var(--navy-deep);
    font-size: .95rem;
}

.student-task-list p,
.student-task-list article > span:last-child {
    margin: .2rem 0 0;
    color: var(--muted);
    font-size: .75rem;
}

@media (max-width: 1180px) {
    .topbar-student-view {
        display: none;
    }
}

@media (max-width: 980px) {
    .is-kor-area .brand-copy,
    .is-kor-area .interface-typography-controls,
    .is-kor-area .account-summary {
        display: none;
    }

    .app-sidebar {
        display: none;
    }

    .has-app-shell .site-header-inner {
        width: 100%;
    }

    .has-app-shell .brand {
        width: auto;
    }

    .has-app-shell .site-main {
        width: 100%;
        margin-left: 0;
        padding-right: var(--content-gutter);
        padding-left: var(--content-gutter);
    }

    .has-app-shell .site-content {
        width: 100%;
    }

    .has-app-shell .site-footer {
        width: 100%;
        margin-right: 0;
        margin-left: 0;
        padding-right: var(--content-gutter);
        padding-left: var(--content-gutter);
    }

    .mobile-navigation {
        display: block;
    }

    .mobile-navigation > summary {
        min-height: 38px;
        padding: .58rem .72rem;
        border: 1px solid rgba(20, 32, 51, .14);
        border-radius: 9px;
        color: var(--navy-deep);
        background: white;
        cursor: pointer;
        font-size: .75rem;
        font-weight: 800;
        list-style: none;
    }

    .mobile-navigation > summary::-webkit-details-marker {
        display: none;
    }

    .mobile-navigation[open] > summary {
        color: white;
        background: var(--navy-deep);
    }

    .mobile-navigation-panel {
        position: fixed;
        z-index: 89;
        top: var(--topbar-height);
        right: 0;
        bottom: 0;
        width: min(340px, 88vw);
        overflow-y: auto;
        color: var(--ink);
        border-left: 1px solid #b9cde1;
        background: #fff;
        box-shadow: -18px 24px 50px rgba(13, 38, 61, .24);
    }
}

@media (max-width: 820px) {
    .auth-shell {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    .auth-intro {
        padding-top: 2rem;
    }

    .subject-grid,
    .info-panel {
        grid-template-columns: 1fr;
    }

    .account-details {
        grid-template-columns: 1fr;
    }

    .account-summary {
        display: none;
    }

    .task-layout {
        grid-template-columns: 1fr;
    }

    .attempt-panel {
        position: static;
    }

    .metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .access-status-grid,
    .student-access-details {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .teacher-panel-heading,
    .teacher-filter,
    .curriculum-subsection > header {
        align-items: stretch;
        flex-direction: column;
    }

    .curriculum-sample-targets {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .bank-preview-check-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .teacher-filter {
        width: 100%;
    }

    .teacher-two-column {
        grid-template-columns: 1fr;
    }

    .topic-option-grid {
        grid-template-columns: 1fr;
    }
}

.correction-next-action {
    margin-top: .8rem;
    padding: .75rem .85rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border: 1px solid rgba(18, 126, 114, .25);
    border-radius: 10px;
    background: #f2fbf8;
}

.correction-next-action strong,
.correction-next-action span {
    display: block;
}

.correction-next-action strong {
    color: var(--navy-deep);
    font-size: .76rem;
}

.correction-next-action span {
    margin-top: .15rem;
    color: var(--muted);
    font-size: .64rem;
    line-height: 1.4;
}

.correction-review-intro {
    margin-top: 1rem;
}

.correction-analysis-panel {
    margin-top: 1rem;
}

.correction-analysis-panel > p {
    margin: .65rem 0 0;
    max-width: 78rem;
    color: var(--muted);
    font-size: .68rem;
    line-height: 1.5;
}

.correction-analysis-panel > small {
    margin-top: .55rem;
    display: block;
    color: var(--muted);
    font-size: .61rem;
}

.correction-analysis-actions {
    margin-top: .7rem;
    display: flex;
    align-items: center;
    gap: .75rem;
}

.correction-analysis-actions > span {
    color: var(--muted);
    font-size: .64rem;
    line-height: 1.4;
}

.correction-source-catalog {
    margin-top: .75rem;
    padding-top: .65rem;
    border-top: 1px solid var(--line);
}

.correction-source-catalog summary {
    color: var(--primary);
    cursor: pointer;
    font-size: .64rem;
    font-weight: 800;
}

.correction-source-catalog ul {
    margin: .65rem 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
    list-style: none;
}

.correction-source-catalog li {
    min-width: 0;
    padding: .55rem .65rem;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #f8faf9;
}

.correction-source-catalog strong,
.correction-source-catalog span,
.correction-source-catalog small {
    display: block;
}

.correction-source-catalog strong {
    color: var(--navy-deep);
    font-size: .62rem;
}

.correction-source-catalog span,
.correction-source-catalog small,
.correction-source-catalog a {
    margin-top: .18rem;
    overflow-wrap: anywhere;
    font-size: .56rem;
    line-height: 1.35;
}

.correction-source-catalog span,
.correction-source-catalog small {
    color: var(--muted);
}

.correction-review-summary {
    margin-top: .8rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
}

.correction-review-summary article {
    min-width: 0;
    padding: .75rem .85rem;
    border: 1px solid rgba(20, 32, 51, .08);
    border-radius: 9px;
    background: #f8faf9;
}

.correction-review-summary span,
.correction-review-summary strong,
.correction-review-summary small {
    display: block;
}

.correction-review-summary span,
.correction-review-summary small {
    color: var(--muted);
    font-size: .62rem;
}

.correction-review-summary strong {
    margin: .18rem 0;
    color: var(--navy-deep);
    font-size: 1.2rem;
}

.correction-submission-navigation {
    margin-top: .8rem;
    padding-top: .75rem;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: .75rem;
    border-top: 1px solid var(--line);
}

.correction-submission-navigation > :last-child {
    justify-self: end;
}

.correction-submission-navigation > span {
    color: var(--muted);
    font-size: .66rem;
    font-weight: 800;
}

.correction-review-task-list {
    margin-top: 1rem;
    display: grid;
    gap: 1rem;
}

.correction-review-task {
    min-width: 0;
    margin-top: 0;
    padding: 0;
    overflow: hidden;
}

.correction-review-task-heading {
    padding: .8rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid var(--line);
    background: #f8faf9;
}

.correction-review-task-heading span,
.correction-review-task-heading h2 {
    display: block;
}

.correction-review-task-heading div > span {
    color: var(--muted);
    font-size: .64rem;
}

.correction-review-task-heading h2 {
    margin: .15rem 0 0;
    color: var(--navy-deep);
    font-size: .95rem;
}

.correction-reference {
    margin: .8rem 1rem 0;
    padding: .6rem .75rem;
    border: 1px solid #cbdbea;
    border-radius: 8px;
    background: #f5f9fd;
}

.correction-reference summary {
    color: var(--navy-deep);
    cursor: pointer;
    font-size: .68rem;
    font-weight: 800;
}

.correction-reference > div {
    margin-top: .65rem;
}

.correction-reference > div > strong {
    color: var(--navy-deep);
    font-size: .65rem;
}

.correction-reference p,
.correction-reference-math {
    margin: .25rem 0 0;
    color: var(--ink);
    font-size: .72rem;
    line-height: 1.5;
    white-space: pre-wrap;
}

.correction-review-task-layout {
    padding: 1rem;
    display: grid;
    grid-template-columns: minmax(420px, 1.12fr) minmax(360px, .88fr);
    align-items: start;
    gap: 1rem;
}

.correction-evidence,
.correction-assessment {
    min-width: 0;
}

.correction-evidence {
    display: grid;
    gap: .8rem;
}

.correction-evidence-region {
    min-width: 0;
    padding: .75rem;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: white;
}

.correction-evidence-region > header {
    margin-bottom: .5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.correction-evidence-region > header strong {
    color: var(--navy-deep);
    font-size: .7rem;
}

.correction-evidence-region > header span {
    color: var(--muted);
    font-size: .6rem;
}

.correction-preview {
    position: relative;
    width: 100%;
    min-height: 0;
    overflow: hidden;
    border: 1px solid #c5cdd2;
    border-radius: 7px;
    background:
        linear-gradient(45deg, #e8ecef 25%, transparent 25%) 0 0 / 18px 18px,
        linear-gradient(-45deg, #e8ecef 25%, transparent 25%) 0 9px / 18px 18px,
        linear-gradient(45deg, transparent 75%, #e8ecef 75%) 9px -9px / 18px 18px,
        linear-gradient(-45deg, transparent 75%, #e8ecef 75%) -9px 0 / 18px 18px,
        #f3f5f6;
}

.correction-preview canvas {
    width: 100%;
    height: auto;
    display: block;
    background: white;
}

.correction-preview.has-render-error {
    min-height: 240px;
    border-color: #c77a3a;
}

.correction-annotation-layer {
    position: absolute;
    z-index: 3;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    touch-action: none;
}

.correction-annotation-layer.is-drawing {
    cursor: crosshair;
    pointer-events: auto;
}

.correction-evidence-region.is-drawing .correction-preview {
    outline: 3px solid rgba(178, 31, 31, .2);
    outline-offset: 2px;
}

.correction-annotation-mark,
.correction-annotation-code {
    position: absolute;
    z-index: 4;
    margin: 0;
    font: inherit;
    pointer-events: auto;
}

.correction-annotation-mark {
    min-width: 5px;
    min-height: 5px;
    padding: 0;
    border: 0;
    border-bottom: 3px solid #c52222;
    border-radius: 0;
    background: rgba(213, 32, 32, .08);
    cursor: pointer;
}

.correction-annotation-mark:hover,
.correction-annotation-mark:focus-visible {
    outline: 2px solid #c52222;
    outline-offset: 1px;
    background: rgba(213, 32, 32, .16);
}

.correction-annotation-mark.is-excluded-variant {
    border-bottom: 0;
    background: transparent;
}

.correction-annotation-mark.is-excluded-variant::after {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 3px;
    border-radius: 999px;
    background: #c52222;
    content: '';
}

.correction-annotation-mark.is-excluded-variant:hover,
.correction-annotation-mark.is-excluded-variant:focus-visible {
    background: rgba(213, 32, 32, .08);
}

.correction-annotation-code {
    right: .25rem;
    min-width: 1.55rem;
    min-height: 1.55rem;
    padding: .14rem .3rem;
    transform: translateY(-50%);
    border: 2px solid #c52222;
    border-radius: 999px;
    color: #a20f0f;
    background: rgba(255, 255, 255, .95);
    cursor: pointer;
    font-size: .62rem;
    font-weight: 900;
    line-height: 1;
}

.correction-annotation-code:hover,
.correction-annotation-code:focus-visible {
    outline: 2px solid rgba(197, 34, 34, .35);
    outline-offset: 2px;
}

.correction-annotation-drawing-outline {
    position: absolute;
    z-index: 6;
    border: 2px dashed #c52222;
    background: rgba(213, 32, 32, .1);
    pointer-events: none;
}

.correction-render-status,
.correction-draw-hint {
    margin: .4rem 0 0;
    display: block;
    color: var(--muted);
    font-size: .61rem;
    line-height: 1.4;
}

.correction-draw-hint:not(:empty) {
    padding: .42rem .5rem;
    border-left: 3px solid #c52222;
    background: #fff1f1;
    color: #7f1d1d;
}

.correction-preview-actions {
    margin-top: .5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .65rem;
}

.correction-preview-actions > div {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.correction-preview-actions .button {
    min-height: 34px;
    padding: .4rem .65rem;
    font-size: .64rem;
}

.correction-preview-actions .row-link {
    margin-left: auto;
    font-size: .62rem;
}

.correction-transcription {
    margin-top: .65rem;
    padding: .55rem .65rem;
    border: 1px solid #dce2e6;
    border-radius: 7px;
    background: #f8faf9;
}

.correction-transcription summary {
    color: var(--navy-deep);
    cursor: pointer;
    font-size: .65rem;
    font-weight: 800;
}

.correction-transcription pre,
.correction-transcription p,
.correction-transcription-math {
    margin: .5rem 0 0;
    overflow-x: auto;
    color: var(--ink);
    font-family: var(--font-interface);
    font-size: .7rem;
    line-height: 1.5;
    white-space: pre-wrap;
}

.correction-missing-region {
    margin: 0;
    line-height: 1.5;
}

.correction-score-fields,
.correction-annotation-editor {
    min-width: 0;
    margin: 0;
    padding: .8rem;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: white;
}

.correction-score-fields legend {
    padding: 0 .3rem;
    color: var(--navy-deep);
    font-size: .7rem;
    font-weight: 850;
}

.correction-score-fields legend small {
    margin-left: .35rem;
    color: var(--muted);
    font-size: .56rem;
    font-weight: 700;
}

.correction-points-input {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: .3rem .55rem;
}

.correction-points-input label {
    grid-column: 1 / -1;
    color: var(--navy-deep);
    font-size: .64rem;
    font-weight: 750;
}

.correction-points-input input {
    width: 100%;
    min-height: 44px;
    font-size: 1rem;
    font-weight: 800;
}

.correction-points-input input.has-validation-error {
    border-color: #b42323;
    box-shadow: 0 0 0 2px rgba(180, 35, 35, .1);
}

.correction-points-input span {
    padding-bottom: .75rem;
    color: var(--muted);
    font-size: .68rem;
    font-weight: 800;
    white-space: nowrap;
}

.correction-score-fields > .field {
    margin-top: .7rem;
}

.correction-score-fields textarea {
    width: 100%;
    resize: vertical;
}

.correction-annotation-editor {
    margin-top: .8rem;
}

.correction-annotation-editor > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
}

.correction-annotation-editor > header strong,
.correction-annotation-editor > header small {
    display: block;
}

.correction-annotation-editor > header strong {
    color: var(--navy-deep);
    font-size: .72rem;
}

.correction-annotation-editor > header small {
    margin-top: .18rem;
    color: var(--muted);
    font-size: .59rem;
    line-height: 1.4;
}

.correction-annotation-editor > header > span {
    min-width: 1.6rem;
    padding: .2rem .38rem;
    border-radius: 999px;
    color: #8f1818;
    background: #ffe5e5;
    font-size: .62rem;
    font-weight: 900;
    text-align: center;
}

.correction-annotation-list {
    margin-top: .65rem;
    display: grid;
    gap: .6rem;
}

.correction-annotation-row {
    min-width: 0;
    margin: 0;
    padding: .65rem;
    border: 1px solid #edbcbc;
    border-radius: 8px;
    background: #fffafa;
}

.correction-annotation-row.is-selected {
    border-color: #c52222;
    box-shadow: 0 0 0 3px rgba(197, 34, 34, .1);
}

.correction-annotation-row.is-deleted {
    opacity: .58;
    background: #f2f3f4;
}

.correction-annotation-row.is-excluded-variant .correction-error-only {
    display: none;
}

.correction-annotation-row.is-excluded-variant .correction-annotation-row-grid {
    grid-template-columns: 1fr;
}

.correction-annotation-row.is-deleted > :not(legend):not([data-annotation-delete]):not(input[type="hidden"]) {
    display: none;
}

.correction-annotation-row legend {
    padding: 0 .25rem;
    color: #8f1818;
    font-size: .64rem;
    font-weight: 850;
}

.correction-annotation-row-grid {
    display: grid;
    grid-template-columns: minmax(90px, .3fr) minmax(0, .7fr);
    gap: .55rem;
}

.correction-annotation-correction-field {
    grid-column: 1 / -1;
}

.correction-annotation-source-field,
.correction-annotation-locator-field {
    grid-column: 1 / -1;
}

.correction-annotation-source-field [data-source-reference] {
    margin-top: .22rem;
    display: block;
    overflow-wrap: anywhere;
    color: var(--muted);
    font-size: .56rem;
    line-height: 1.4;
}

.correction-proposal-origin {
    margin: 0 0 .5rem;
    display: block;
    color: var(--primary);
    font-size: .58rem;
    font-weight: 800;
}

.correction-annotation-row input,
.correction-annotation-row textarea,
.correction-annotation-row select {
    width: 100%;
    font-size: .67rem;
}

.correction-annotation-row textarea {
    resize: vertical;
}

.correction-annotation-row [data-annotation-delete] {
    margin-top: .5rem;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    font-size: .61rem;
}

.correction-annotation-row .row-link.is-danger {
    color: #9b2c2c;
}

.correction-annotation-empty {
    margin: .65rem 0 0;
    color: var(--muted);
    font-size: .63rem;
}

.correction-review-submit {
    grid-template-columns: minmax(0, 1fr) auto auto auto;
}

@media (max-width: 1080px) {
    .correction-review-task-layout {
        grid-template-columns: 1fr;
    }

    .correction-assessment {
        display: grid;
        grid-template-columns: minmax(260px, .7fr) minmax(340px, 1.3fr);
        align-items: start;
        gap: .8rem;
    }

    .correction-annotation-editor {
        margin-top: 0;
    }
}

@media (max-width: 760px) {
    .correction-next-action,
    .correction-preview-actions,
    .correction-analysis-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .correction-review-summary,
    .correction-assessment,
    .correction-source-catalog ul {
        grid-template-columns: 1fr;
    }

    .correction-submission-navigation {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .correction-submission-navigation > * {
        justify-self: stretch !important;
    }

    .correction-review-task-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .correction-review-task-layout {
        padding: .75rem;
    }

    .correction-annotation-row-grid {
        grid-template-columns: 1fr;
    }

    .correction-annotation-correction-field {
        grid-column: auto;
    }

    .correction-review-submit {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    :root {
        --content-gutter: .65rem;
    }

    .site-header {
        min-height: 76px;
    }

    .account-summary,
    .account-avatar,
    .brand-copy {
        display: none;
    }

    .site-header-inner,
    .has-app-shell .site-header-inner {
        padding-right: .65rem;
        padding-left: .65rem;
        gap: .65rem;
    }

    .topbar-current {
        padding-left: .65rem;
    }

    .topbar-current small {
        display: none;
    }

    .topbar-current strong {
        font-size: .78rem;
    }

    .account-area {
        gap: .4rem;
    }

    .account-area .button {
        padding-right: .6rem;
        padding-left: .6rem;
        font-size: .72rem;
    }

    .site-main {
        padding-top: 1.4rem;
    }

    .site-footer {
        flex-direction: column;
    }

    .auth-intro h1 {
        font-size: clamp(2.5rem, 14vw, 3.8rem);
    }

    .input-suffix input {
        padding-right: .9rem;
    }

    .input-suffix span {
        position: static;
        display: block;
        margin-top: .35rem;
        transform: none;
        font-size: .78rem;
    }

    .section-heading {
        display: grid;
    }

    .task-grid,
    .choice-list {
        grid-template-columns: 1fr;
    }

    .task-card {
        min-height: 185px;
    }

    .page-header {
        min-height: 80px;
        gap: .55rem;
    }

    .page-header h1 {
        font-size: 1.2rem;
    }

    .page-header-description {
        font-size: .7rem;
    }

    .page-header-stat {
        min-width: 70px;
        padding: .42rem .52rem;
    }

    .metric-grid {
        grid-template-columns: 1fr;
    }

    .access-status-grid,
    .student-access-details,
    .credential-values {
        grid-template-columns: 1fr;
    }

    .curriculum-stage-navigation {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .curriculum-stage-link {
        min-width: 0;
        padding-inline: .5rem;
    }

    .curriculum-sample-targets {
        grid-template-columns: 1fr;
    }

    .bank-preview-check-grid {
        grid-template-columns: 1fr;
    }

    .bank-block-navigation {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .metric-card {
        min-height: 115px;
    }

    .catalog-item {
        grid-template-columns: 1fr;
    }

    .catalog-item dl {
        justify-content: start;
    }

    .student-task-list article {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .student-task-list article > span:last-child {
        grid-column: 2;
    }
}

/* Neuer KOR-Arbeitsbereich: Aufgabenblatt und Vorbereitung ohne Verzeichnisbaum */
.has-app-shell.is-kor-area .site-main {
    width: 100%;
    margin-left: 0;
    padding: 0 var(--content-gutter);
}

.has-app-shell.is-kor-area .site-footer {
    width: 100%;
    margin-right: 0;
    margin-left: 0;
    padding-right: var(--content-gutter);
    padding-left: var(--content-gutter);
}

.is-kor-area .kor-workflow {
    margin-top: .75rem;
}

.kor-preparation-layout {
    width: 100%;
    margin-top: .5rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.kor-task-sheet-panel,
.kor-assessment-panel {
    min-width: 0;
    border: 1px solid var(--line);
    background: white;
}

.kor-task-sheet-panel,
.kor-assessment-panel {
    width: 100%;
    min-height: 0;
    padding: .55rem;
    display: flex;
    flex-direction: column;
}

.kor-panel-heading {
    min-height: 44px;
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        "eyebrow actions"
        "title title";
    align-items: center;
    gap: .15rem .65rem;
    padding-bottom: .35rem;
}

.kor-task-sheet-heading-copy {
    display: contents;
}

.kor-task-sheet-heading-copy .eyebrow {
    grid-area: eyebrow;
    margin: 0;
}

.kor-task-sheet-title-line {
    grid-area: title;
    min-width: 0;
    display: flex;
    align-items: baseline;
    gap: .45rem;
    overflow: hidden;
}

.kor-panel-heading h2 {
    margin: .1rem 0 0;
    flex: 0 0 auto;
    color: var(--navy-deep);
    font-size: 1rem;
}

.kor-task-sheet-actions {
    grid-area: actions;
    min-width: max-content;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .45rem;
    font-size: .72rem;
}

.kor-assessment-heading {
    min-height: 44px;
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        ". actions"
        "title title";
    align-items: center;
    gap: .15rem .65rem;
    padding-bottom: .35rem;
}

.kor-assessment-heading h2 {
    grid-area: title;
    margin: .1rem 0 0;
    color: var(--navy-deep);
    font-size: 1rem;
}

.kor-rubric-view-toggle {
    grid-area: actions;
    width: auto;
    height: 32px;
    min-height: 32px;
    padding: .35rem .58rem;
    align-self: center;
    flex: 0 0 auto;
    font-size: .68rem;
    line-height: 1;
}

.kor-pdf-open-button {
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    display: grid;
    place-items: center;
    border: 1px solid #d4dce4;
    border-radius: 5px;
    background: white;
}

.kor-pdf-open-button:hover,
.kor-pdf-open-button:focus-visible {
    border-color: #e7a6a9;
    background: #fff4f4;
}

.kor-pdf-open-button svg {
    width: 26px;
    height: 26px;
    display: block;
}

.kor-pdf-icon-page {
    fill: #e1262f;
}

.kor-pdf-icon-fold {
    fill: #a91e26;
}

.kor-pdf-icon-mark {
    fill: white;
}

.kor-task-sheet-name {
    min-width: 4rem;
    margin: 0;
    padding-left: .45rem;
    flex: 1 1 8rem;
    overflow: hidden;
    border-left: 1px solid #cad6e0;
    color: var(--muted);
    font-size: .72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kor-task-sheet-class-names {
    max-width: 44%;
    margin: 0;
    padding-left: .45rem;
    flex: 0 1 auto;
    overflow: hidden;
    border-left: 1px solid #cad6e0;
    color: var(--navy-deep);
    font-size: .76rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kor-task-sheet-viewer {
    position: relative;
    width: 100%;
    height: calc(100vh - var(--topbar-height) - 235px);
    min-height: 520px;
    display: block;
    overflow: auto;
    border: 1px solid #b9cde1;
    background: #eef2f5;
    scrollbar-gutter: stable;
}

.kor-task-sheet-viewer-status {
    margin: 0;
    padding: 2rem 1rem;
    color: var(--muted);
    text-align: center;
}

.kor-task-sheet-viewer.has-error .kor-task-sheet-viewer-status {
    color: var(--danger);
}

.kor-task-sheet-pages {
    display: grid;
    justify-items: center;
    gap: .8rem;
    padding: .7rem;
}

.kor-task-sheet-page {
    width: fit-content;
    max-width: 100%;
    margin: 0;
    border: 1px solid #c8d2dc;
    background: white;
    box-shadow: 0 2px 7px rgb(22 48 73 / 14%);
}

.kor-task-sheet-page canvas {
    max-width: 100%;
    height: auto;
    display: block;
}

.kor-task-sheet-page figcaption {
    padding: .25rem .4rem;
    border-top: 1px solid #dbe3ea;
    color: var(--muted);
    background: #f8fafb;
    font-size: .65rem;
    text-align: right;
}

.kor-task-sheet-empty {
    min-height: 520px;
    display: grid;
    place-content: center;
    padding: 2rem;
    color: var(--muted);
    background: #f5f7f9;
    text-align: center;
}

.kor-task-sheet-empty strong {
    color: var(--navy-deep);
}

.kor-task-sheet-empty p {
    margin: .4rem 0 0;
}

.kor-assessment-scroll {
    width: 100%;
    height: calc(100vh - var(--topbar-height) - 235px);
    min-height: 520px;
    overflow-x: hidden;
    overflow-y: auto;
    border: 1px solid #b9cde1;
    background: #f5f7f9;
    overscroll-behavior: contain;
    scrollbar-color: #b7bec7 transparent;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
}

.kor-rubric-tasks {
    padding: .55rem;
    display: grid;
    gap: .65rem;
}

.kor-rubric-task {
    overflow: visible;
    border: 1px solid #c7d4df;
    background: white;
}

.kor-rubric-task > header {
    min-width: 0;
    padding: .42rem .5rem;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .55rem;
    border-bottom: 1px solid #cfdae4;
    background: #edf5fb;
}

.kor-rubric-task h3 {
    margin: 0;
    color: var(--navy-deep);
    font-size: .76rem;
    line-height: 1.3;
}

.kor-rubric-task header p {
    margin: .14rem 0 0;
    color: var(--muted);
    font-size: .62rem;
}

.kor-rubric-task-points {
    flex: 0 0 auto;
    color: var(--navy-strong);
    font-size: .74rem;
    white-space: nowrap;
}

.kor-rubric-task table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.kor-rubric-task td {
    padding: .48rem .55rem;
    border-top: 1px solid #e1e7ec;
    color: var(--ink);
    font-size: .68rem;
    line-height: 1.5;
    vertical-align: top;
}

.kor-rubric-task tr:first-child td {
    border-top: 0;
}

.kor-rubric-task td:last-child {
    width: 42px;
    border-left: 1px solid #d7e0e7;
    color: var(--navy-deep);
    font-weight: 850;
    text-align: center;
}

[data-kor-rubric-presentation] [hidden] {
    display: none !important;
}

.kor-rubric-line {
    min-width: 0;
    max-width: 100%;
}

.kor-rubric-latex {
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .3rem .34rem;
}

.kor-rubric-latex-chunk {
    max-width: 100%;
    display: inline-block;
    flex: 0 1 auto;
    color: var(--navy-deep);
    font-size: calc(var(--font-math-base) * .9);
    line-height: 1.45;
}

.kor-rubric-text {
    overflow-wrap: anywhere;
    color: var(--ink);
    line-height: 1.55;
}

.kor-rubric-notes {
    margin: 0 .55rem .55rem;
    padding: .6rem .7rem;
    border: 1px solid #d5dce2;
    background: white;
}

.kor-rubric-notes h3 {
    margin: 0 0 .3rem;
    color: var(--navy-deep);
    font-size: .74rem;
}

.kor-rubric-notes ul {
    margin: 0;
    padding-left: 1rem;
    color: var(--muted);
    font-size: .66rem;
    line-height: 1.45;
}

.kor-rubric-notes li + li {
    margin-top: .35rem;
}

.kor-assessment-empty {
    min-height: 520px;
    display: grid;
    place-content: center;
    padding: 2rem;
    color: var(--muted);
    background: #f5f7f9;
    text-align: center;
}

.kor-assessment-empty strong {
    color: var(--navy-deep);
}

.kor-assessment-empty p {
    max-width: 32rem;
    margin: .4rem auto 0;
}

.kor-task-sheet-menu-row {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: .45rem;
    margin: 0 0 .45rem;
}

.kor-task-sheet-direct-upload {
    min-width: 0;
    display: flex;
}

.kor-task-sheet-file-picker {
    min-height: 30px;
    padding: .3rem .5rem;
    justify-content: center;
    font-size: .68rem;
    white-space: nowrap;
}

.kor-task-sheet-file-picker.is-compact {
    width: 32px;
    min-width: 32px;
    padding: 0;
}

.kor-task-sheet-change-icon {
    width: 17px;
    height: 17px;
    display: block;
    fill: #e7f4fe;
    stroke: var(--navy-deep);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.35;
}

.kor-task-sheet-choice-form {
    min-width: 0;
    display: grid;
    gap: .3rem;
}

.kor-task-sheet-form {
    margin-top: .7rem;
    display: grid;
    gap: .5rem;
}

.kor-task-sheet-form label {
    color: var(--navy-deep);
    font-size: .74rem;
    font-weight: 800;
}

.kor-task-sheet-form input[type="file"] {
    width: 100%;
    padding: .55rem;
    border: 1px solid #9fc0e5;
    color: var(--ink);
    background: white;
    font: inherit;
    font-size: .72rem;
}

.kor-task-sheet-form select,
.kor-task-sheet-choice-form select {
    width: 100%;
    min-width: 0;
    padding: .52rem .45rem;
    border: 1px solid #9fc0e5;
    color: var(--ink);
    background: white;
    font: inherit;
    font-size: .72rem;
}

.kor-task-sheet-form input[type="file"]::file-selector-button {
    margin-right: .55rem;
    padding: .42rem .55rem;
    border: 1px solid #9fc0e5;
    color: var(--navy-deep);
    background: var(--teal-light);
    cursor: pointer;
    font-weight: 750;
}

.kor-task-sheet-form .button {
    width: 100%;
    justify-content: center;
}

.kor-task-sheet-confirm {
    min-width: 58px;
}

.kor-task-sheet-auto-error {
    margin: 0 0 .4rem;
}

@media (min-width: 981px) {
    .has-app-shell.is-kor-area {
        height: 100dvh;
        min-height: 0;
        overflow: hidden;
    }

    .has-app-shell.is-kor-area .site-main {
        height: calc(100dvh - var(--topbar-height));
        min-height: 0;
        overflow: hidden;
    }

    .is-kor-area .site-content {
        height: calc(100dvh - var(--topbar-height));
        min-height: 0;
        padding-bottom: .6rem;
        display: flex;
        flex-direction: column;
    }

    .is-kor-area .kor-workflow {
        flex: 0 0 auto;
        grid-template-columns: repeat(7, minmax(0, 1fr));
    }

    .is-kor-area .kor-preparation-layout {
        width: 100%;
        min-height: 0;
        flex: 1 1 auto;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .is-kor-area .kor-task-sheet-panel,
    .is-kor-area .kor-assessment-panel {
        min-height: 0;
    }

    .is-kor-area .kor-task-sheet-viewer,
    .is-kor-area .kor-task-sheet-empty,
    .is-kor-area .kor-assessment-scroll,
    .is-kor-area .kor-assessment-empty {
        height: auto;
        min-height: 0;
        flex: 1 1 auto;
    }

    .is-kor-area .site-footer {
        display: none;
    }
}

@media (max-width: 760px) {
    .kor-task-sheet-viewer,
    .kor-assessment-scroll {
        height: 75vh;
        min-height: 520px;
    }
}

@media (max-width: 620px) {
    .kor-task-sheet-menu-row {
        grid-template-columns: 1fr;
    }

    .kor-task-sheet-confirm {
        width: 100%;
    }

    .kor-panel-heading {
        align-items: flex-start;
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "eyebrow"
            "title"
            "actions";
    }

    .kor-task-sheet-actions {
        justify-content: flex-start;
    }

    .kor-task-sheet-viewer,
    .kor-task-sheet-empty,
    .kor-assessment-scroll,
    .kor-assessment-empty {
        min-height: 440px;
    }
}

@media print {
    body {
        display: block;
        background: white;
    }

    .site-header,
    .site-footer,
    .no-print {
        display: none !important;
    }

    .site-main {
        width: 100%;
        padding: 0;
    }

    .credential-print-card {
        width: 100%;
        margin: 0;
        border: 0;
        box-shadow: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition: none !important;
    }
}

/* Structured student learning and mathematical input */
.learning-unit-grid,
.learning-mode-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.learning-unit-card,
.learning-mode-card,
.completion-panel {
    padding: 1.2rem;
    border: 1px solid rgba(20, 32, 51, .1);
    border-radius: 15px;
    background: white;
}

.learning-unit-card.is-current,
.learning-mode-card.is-primary {
    border-color: var(--teal);
    box-shadow: 0 12px 30px rgba(23, 118, 112, .1);
}

.learning-unit-card.is-locked {
    background: #f6f7f5;
}

.learning-unit-card-meta,
.practice-task-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    color: var(--muted);
    font-size: .7rem;
    font-weight: 750;
}

.learning-unit-card h3,
.learning-mode-card h2,
.completion-panel h2 {
    margin: .65rem 0;
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-weight: 500;
}

.learning-unit-card p,
.learning-mode-card p,
.completion-panel p {
    color: var(--muted);
    font-size: .8rem;
    line-height: 1.55;
}

.learning-progress,
.practice-progress {
    margin: 1rem 0;
}

.learning-progress > span,
.practice-progress > span {
    height: .48rem;
    display: block;
    overflow: hidden;
    border-radius: 999px;
    background: var(--line);
}

.learning-progress i,
.practice-progress i {
    height: 100%;
    display: block;
    border-radius: inherit;
    background: var(--teal);
}

.learning-progress small,
.practice-progress small {
    margin-top: .35rem;
    display: block;
    color: var(--muted);
    font-size: .7rem;
}

.button.is-disabled {
    opacity: .6;
    cursor: not-allowed;
}

.learning-test-list {
    margin: 1rem 0;
    padding: 0;
    list-style: none;
}

.learning-test-list li {
    padding: .7rem 0;
    border-top: 1px solid var(--line);
}

.learning-test-list strong,
.learning-test-list span {
    display: block;
}

.learning-test-list span,
.learning-mode-note {
    color: var(--muted);
    font-size: .72rem;
}

.practice-card {
    max-width: 980px;
    margin: 1rem auto 2rem;
    padding: clamp(1.25rem, 3vw, 2.2rem);
    border: 1px solid rgba(20, 32, 51, .1);
    border-radius: 20px;
    background: white;
    box-shadow: var(--shadow);
}

.practice-sheet {
    margin: 1rem 0 2rem;
}

.practice-fixed-header {
    flex: none;
    background: white;
}

.practice-compact-heading {
    padding: .25rem 0 .35rem;
    display: grid;
    grid-template-columns: minmax(230px, 1fr) minmax(180px, .65fr) auto;
    align-items: center;
    gap: 1rem;
}

.practice-instruction {
    min-width: 0;
}

.practice-instruction span,
.practice-instruction strong {
    display: block;
}

.practice-instruction span {
    overflow: hidden;
    color: var(--muted);
    font-size: .62rem;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.practice-instruction strong {
    margin-top: .08rem;
    color: var(--navy-deep);
    font-size: .9rem;
}

.practice-progress-compact {
    margin: 0;
    display: grid;
    grid-template-columns: minmax(90px, 1fr) auto;
    align-items: center;
    gap: .5rem;
}

.practice-progress-compact > span {
    height: .34rem;
}

.practice-progress-compact small {
    margin: 0;
    white-space: nowrap;
}

.practice-progress-compact small strong {
    color: var(--navy-deep);
}

.practice-package-heading {
    display: flex;
    align-items: baseline;
    justify-content: flex-end;
    gap: .35rem;
    white-space: nowrap;
}

.practice-package-heading .eyebrow {
    margin-bottom: .15rem;
}

.practice-package-heading h2 {
    margin: 0;
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-size: .92rem;
    font-weight: 600;
}

.practice-package-heading > span {
    margin-left: .25rem;
    color: var(--muted);
    font-size: .72rem;
}

.practice-package-heading > span strong {
    color: var(--navy-deep);
}

.practice-block-navigation {
    margin: 0 0 .4rem;
    padding: .28rem;
    display: flex;
    gap: .35rem;
    overflow-x: auto;
    border: 1px solid #cdddec;
    background: rgba(255, 255, 255, .97);
    box-shadow: none;
    scrollbar-width: thin;
}

.practice-block-navigation a {
    min-width: 70px;
    padding: .25rem .45rem;
    display: grid;
    gap: .08rem;
    border: 1px solid #c4d4e3;
    border-radius: 4px;
    color: var(--navy-deep);
    background: white;
    text-align: center;
    text-decoration: none;
}

.practice-block-navigation a:hover,
.practice-block-navigation a:focus-visible {
    border-color: #76a9e8;
    background: #f2f8fe;
}

.practice-block-navigation a.is-current {
    border-color: #76a9e8;
    background: #e7f4fe;
    box-shadow: inset 0 -2px 0 var(--primary);
}

.practice-block-navigation a.is-complete {
    border-color: rgba(23, 118, 112, .38);
}

.practice-block-navigation strong {
    font-size: .7rem;
}

.practice-block-navigation span {
    color: var(--muted);
    font-size: .6rem;
}

.practice-task-list {
    min-height: 0;
    padding-right: .25rem;
    display: grid;
    grid-auto-rows: minmax(58px, max-content);
    align-content: start;
    flex: 1 1 auto;
    gap: .4rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.practice-task-row {
    min-height: 58px;
    scroll-margin-top: calc(var(--topbar-height) + 6.5rem);
    overflow: hidden;
    border: 1px solid rgba(20, 32, 51, .12);
    border-left: 4px solid transparent;
    background: white;
}

.practice-task-row.is-active {
    border-color: #76a9e8;
    border-left-color: var(--primary);
    background: #f7fbff;
}

.practice-task-row.is-correct {
    border-left-color: #4f9478;
}

.practice-task-row.is-incorrect {
    border-left-color: #b84a52;
}

.practice-task-select {
    width: 100%;
    min-height: 58px;
    padding: .35rem .55rem;
    display: grid;
    grid-template-columns: 3rem minmax(130px, 1fr) minmax(112px, auto) minmax(92px, auto);
    align-items: center;
    gap: .65rem;
    border: 0;
    color: var(--navy-deep);
    background: transparent;
    cursor: pointer;
    text-align: left;
}

.practice-task-select:hover,
.practice-task-select:focus-visible {
    outline: none;
    background: #edf6fd;
}

.practice-task-number {
    font-size: .78rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.practice-task-prompt {
    min-height: 42px;
    display: grid;
    place-items: center start;
}

.practice-task-prompt .katex {
    font-size: 1.65em;
}

.practice-task-state {
    display: grid;
    justify-items: end;
    gap: .1rem;
}

.practice-task-result {
    min-width: 112px;
    min-height: 42px;
    padding: .25rem .45rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .35rem;
    border: 1px solid var(--line);
    border-radius: 4px;
    background: white;
}

.practice-task-result.is-correct {
    border-color: #78b49a;
    background: #e6f5ed;
}

.practice-task-result.is-incorrect {
    border-color: #d08b90;
    background: #fbe9e9;
}

.practice-task-result > strong {
    font-size: .62rem;
}

.practice-task-result .katex {
    font-size: 1.25em;
}

.practice-task-state strong {
    font-size: .7rem;
}

.practice-task-state small {
    color: var(--muted);
    font-size: .62rem;
    white-space: nowrap;
}

.practice-task-row .answer-result {
    margin: 0 .75rem .65rem 5.75rem;
}

.practice-prompt {
    min-height: 150px;
    display: grid;
    place-items: center;
    color: var(--navy-deep);
}

.practice-prompt .katex {
    font-size: clamp(2.4em, 7vw, 4.5em);
}

.practice-submit {
    margin-top: 1rem;
    display: flex;
    align-items: center;
    gap: 1rem;
}

.practice-submit span {
    color: var(--muted);
    font-size: .75rem;
}

.has-math-workbench .site-main {
    padding-bottom: calc(var(--math-workbench-current-height, 410px) + 1rem);
}

.has-app-shell.embedded-practice {
    height: 100dvh;
    min-height: 0;
    overflow: hidden;
}

.embedded-practice .site-main {
    height: calc(100dvh - var(--topbar-height) - var(--math-workbench-current-height, 410px));
    min-height: 0;
    padding-top: .35rem;
    padding-bottom: .35rem;
    flex: none;
    overflow: hidden;
}

.embedded-practice .site-content,
.embedded-practice .practice-sheet {
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.embedded-practice .practice-sheet {
    margin: 0;
}

.embedded-practice .site-footer {
    display: none;
}

.math-workbench {
    position: fixed;
    z-index: 70;
    right: 0;
    bottom: 0;
    left: var(--sidebar-width);
    height: var(--math-workbench-height, 410px);
    max-height: calc(100dvh - var(--topbar-height));
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 8px auto minmax(0, 1fr);
    overflow: hidden;
    box-sizing: border-box;
    border-top: 1px solid #9ebce0;
    background: #f5faff;
    box-shadow: 0 -10px 26px rgba(13, 38, 61, .14);
}

.math-workbench-resizer {
    position: relative;
    display: grid;
    place-items: center;
    cursor: ns-resize;
    touch-action: none;
    background: #edf6fd;
}

.math-workbench-resizer::before {
    content: '';
    position: absolute;
    inset: -5px 0;
}

.math-workbench-resizer > span {
    width: 52px;
    height: 3px;
    border-radius: 999px;
    background: #799dbd;
}

.math-workbench-resizer:hover,
.math-workbench-resizer:focus-visible,
.math-workbench.is-resizing-height .math-workbench-resizer {
    outline: none;
    background: #deedf9;
}

.math-workbench-resizer:hover > span,
.math-workbench-resizer:focus-visible > span,
.math-workbench.is-resizing-height .math-workbench-resizer > span {
    background: var(--teal);
}

.math-workbench-toolbar {
    min-height: 34px;
    padding: .3rem .65rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid #c9dced;
    background: #e7f4fe;
}

.math-workbench-toolbar > div:first-child {
    display: flex;
    align-items: baseline;
    gap: .7rem;
    min-width: 0;
}

.math-workbench-toolbar strong {
    color: var(--navy-deep);
    font-size: .78rem;
}

.math-workbench-toolbar > div:first-child > span {
    overflow: hidden;
    color: var(--muted);
    font-size: .65rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.math-workbench-toolbar-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .45rem;
}

.math-workbench-submit {
    min-height: 27px;
    padding: .32rem .65rem;
    font-size: .68rem;
    white-space: nowrap;
}

.math-workbench-submit:disabled {
    cursor: default;
    opacity: .62;
}

.math-workbench-height-controls {
    display: flex;
    gap: .18rem;
}

.math-workbench-restore {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .35rem;
}

.math-workbench-restore button,
.math-workbench-height-controls button,
.math-panel-controls button,
.math-panel-secondary {
    border: 1px solid #c4cbd0;
    border-radius: 4px;
    color: var(--navy-deep);
    background: white;
    cursor: pointer;
    font: inherit;
}

.math-workbench-restore button {
    padding: .25rem .4rem;
    font-size: .62rem;
}

.math-workbench-height-controls button {
    width: 25px;
    height: 25px;
    padding: 0;
    font-size: .75rem;
}

.math-workbench-panels {
    min-width: 0;
    min-height: 0;
    display: flex;
    align-items: stretch;
    overflow: hidden;
}

.math-workbench-panel {
    min-height: 0;
    min-width: 190px;
    padding: .45rem;
    display: flex;
    flex-basis: 0;
    flex-direction: column;
    overflow: hidden;
    box-sizing: border-box;
    border-right: 1px solid #d6e3ef;
    background: #fff;
}

.math-workbench-panel[hidden] {
    display: none;
}

.math-workbench-panel > header {
    margin-bottom: .3rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

.math-workbench-panel > header > strong {
    color: var(--navy-deep);
    font-size: .72rem;
}

.math-panel-controls {
    display: flex;
    gap: .18rem;
}

.math-panel-controls button {
    width: 23px;
    height: 23px;
    padding: 0;
    font-size: .68rem;
}

.math-pen-linear-label {
    margin-bottom: .4rem;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: .4rem;
    color: var(--muted);
    font-size: .62rem;
}

.math-pen-linear-label input {
    min-width: 0;
    height: 29px;
    padding: .25rem .45rem;
    border: 1px solid #c9d0d4;
    border-radius: 4px;
    color: var(--navy-deep);
    background: white;
    font: inherit;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.2;
}

.math-pen-linear-label input:focus-visible {
    border-color: var(--teal);
    outline: 2px solid rgba(23, 118, 112, .14);
    outline-offset: 0;
}

.math-pen-surface {
    position: relative;
    min-height: 0;
    flex: 1;
    overflow: hidden;
    border: 1px solid #c9d0d4;
    border-radius: 5px;
    background-color: white;
    background-image: linear-gradient(#edf0f1 1px, transparent 1px), linear-gradient(90deg, #edf0f1 1px, transparent 1px);
    background-size: 18px 18px;
}

.math-pen-surface canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    touch-action: none;
}

.math-pen-mirror {
    position: absolute;
    z-index: 1;
    inset: 0;
    display: grid;
    place-items: center;
    opacity: 0;
    pointer-events: none;
    color: var(--navy-deep);
    transition: opacity 100ms ease;
}

.math-pen-mirror .katex {
    font-size: clamp(1.7em, 3.5vw, 3em);
}

.math-pen-surface.has-synchronized-expression .math-pen-mirror {
    opacity: .42;
}

.math-pen-footer {
    min-height: 27px;
    margin-top: .25rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

.math-pen-footer > span {
    overflow: hidden;
    color: var(--muted);
    font-size: .6rem;
    line-height: 1.25;
    text-overflow: ellipsis;
}

.math-pen-tools {
    width: 100%;
    display: flex;
    justify-content: flex-end;
    gap: .25rem;
}

.math-pen-tools .math-panel-secondary {
    min-height: 27px;
    margin: 0;
    padding: .25rem .45rem;
}

.math-panel-secondary[disabled] {
    cursor: default;
    opacity: .42;
}

.math-pen-surface.is-selecting canvas {
    cursor: crosshair;
}

.math-pen-tools [data-pen-select][aria-pressed="true"] {
    border-color: var(--navy);
    color: var(--navy);
    background: var(--teal-light);
}

.math-panel-secondary {
    margin-top: 0;
    padding: .35rem .5rem;
    align-self: flex-start;
    flex: 0 0 auto;
    font-size: .65rem;
}

.structured-answer-editor {
    min-width: 0;
    min-height: 52px;
    padding: .35rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .12rem;
    overflow: hidden;
    border: 1px solid #c9d0d4;
    border-radius: 6px;
    outline: none;
    background: white;
}

.structured-answer-editor:focus-visible {
    border-color: var(--teal);
    box-shadow: 0 0 0 3px rgba(23, 118, 112, .14);
}

.structured-answer-slot {
    width: 74px;
    min-height: 32px;
    padding: .18rem .4rem;
    border: 1px solid #b9c2c8;
    border-radius: 4px;
    color: var(--navy-deep);
    background: #fbfcfb;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    cursor: text;
}

.structured-answer-boundary {
    width: 17px;
    min-width: 17px;
    height: 48px;
    padding: 0;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 3px;
    background: transparent;
    cursor: text;
}

.structured-answer-boundary > span {
    width: 2px;
    height: 34px;
    border-radius: 99px;
    background: transparent;
}

.structured-answer-boundary:hover {
    background: #eef6fc;
}

.structured-answer-boundary:hover > span,
.structured-answer-boundary:focus-visible > span,
.structured-answer-boundary.is-active > span {
    background: var(--teal);
}

.structured-answer-boundary:focus-visible {
    outline: 2px solid rgba(23, 118, 112, .2);
    outline-offset: -2px;
}

.structured-answer-slot.is-active {
    border-color: var(--teal);
    box-shadow: inset 0 0 0 1px var(--teal);
    background: var(--teal-light);
}

.structured-answer-fraction {
    display: inline-grid;
    grid-template-rows: auto 2px auto;
    gap: .22rem;
    align-items: center;
}

.structured-answer-fraction-line {
    width: 100%;
    height: 2px;
    display: block;
    background: var(--navy-deep);
}

.math-input-status {
    margin-top: .2rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    color: var(--muted);
    font-size: .64rem;
}

.math-input-status strong {
    color: var(--navy-deep);
    font-size: inherit;
}

.math-keypad {
    margin-top: .25rem;
    display: grid;
    gap: .25rem;
}

.math-keypad-digits,
.math-keypad-controls {
    display: grid;
    gap: .25rem;
}

.math-keypad-digits {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.math-keypad-controls {
    grid-auto-columns: minmax(0, 1fr);
    grid-auto-flow: column;
}

.math-keypad button {
    min-height: 30px;
    padding: .2rem;
    border: 1px solid #c4cbd0;
    border-radius: 5px;
    color: var(--navy-deep);
    background: white;
    cursor: pointer;
    font-size: .72rem;
    font-weight: 750;
}

.math-keypad .math-tex-key {
    min-height: 1rem;
    display: grid;
    place-items: center;
}

.math-key-fraction-visual {
    width: 1.25rem;
    height: 1.45rem;
    margin: 0 auto;
    display: grid;
    grid-template-rows: minmax(0, 1fr) 1px minmax(0, 1fr);
    align-items: center;
    justify-items: center;
}

.math-key-fraction-visual .math-tex-key {
    min-height: 0;
    line-height: 1;
}

.math-key-fraction-visual .katex {
    font-size: .72em !important;
    line-height: 1;
}

.math-key-fraction-line {
    width: 100%;
    height: 1px;
    display: block;
    align-self: center;
    background: currentColor;
}

.math-keypad .math-tex-key .katex {
    font-size: 1.05em;
}

.math-keypad button:hover,
.math-keypad button:focus-visible {
    border-color: var(--teal);
    background: var(--teal-light);
}

.math-live-preview {
    min-height: 0;
    flex: 1;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid #c9d0d4;
    border-radius: 5px;
    background: white;
}

.math-live-preview .katex {
    font-size: clamp(2em, 5vw, 3.6em);
}

.math-workbench-preview > small {
    margin-top: .45rem;
    color: var(--muted);
    font-size: .65rem;
}

@media (max-width: 980px) {
    .math-workbench {
        left: 0;
    }

    .learning-unit-grid,
    .learning-mode-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .math-workbench-panels {
        overflow-x: auto;
        overflow-y: hidden;
    }

    .math-workbench-panel {
        min-width: 270px;
    }

    .math-workbench-toolbar > div:first-child span {
        display: none;
    }
}

.self-test-navigation {
    margin: .75rem 0;
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.self-test-navigation a {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 1px solid #c4cbd0;
    border-radius: 5px;
    color: var(--navy-deep);
    background: white;
    font-size: .72rem;
    font-weight: 800;
    text-decoration: none;
}

.self-test-navigation a.is-answered {
    border-color: var(--teal);
    background: var(--teal-light);
}

.self-test-navigation a.is-current {
    color: white;
    border-color: var(--navy-deep);
    background: var(--navy-deep);
}

.self-test-submit-panel {
    max-width: 980px;
    margin: 1rem auto 2rem;
    padding: 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: white;
}

.self-test-submit-panel strong,
.self-test-submit-panel span {
    display: block;
}

.self-test-submit-panel span {
    margin-top: .25rem;
    color: var(--muted);
    font-size: .75rem;
}

.self-test-result-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
}

.self-test-result-summary > div {
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: white;
}

.self-test-result-summary span,
.self-test-result-summary strong {
    display: block;
}

.self-test-result-summary span {
    color: var(--muted);
    font-size: .7rem;
}

.self-test-result-summary strong {
    margin-top: .35rem;
    color: var(--navy-deep);
}

.self-test-result-list {
    margin: 1.5rem 0;
}

.self-test-result-list article {
    margin-top: .6rem;
    padding: .85rem;
    display: grid;
    grid-template-columns: 38px repeat(3, minmax(120px, 1fr)) auto;
    align-items: center;
    gap: .8rem;
    border: 1px solid var(--line);
    border-left-width: 5px;
    border-radius: 10px;
    background: white;
}

.self-test-result-list article.is-correct {
    border-left-color: var(--teal);
}

.self-test-result-list article.is-incorrect {
    border-left-color: var(--red);
}

.self-test-result-list article > div > span {
    display: block;
    color: var(--muted);
    font-size: .64rem;
}

.self-test-result-list .katex {
    font-size: 1.35em;
}

.self-test-result-number {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: white;
    background: var(--navy-deep);
    font-size: .72rem;
    font-weight: 800;
}

@media (max-width: 820px) {
    .self-test-result-summary {
        grid-template-columns: 1fr;
    }

    .self-test-result-list article {
        grid-template-columns: 38px 1fr;
    }

    .self-test-result-list article > div,
    .self-test-result-list article > strong {
        grid-column: 2;
    }
}

/* Shared ZLW/KOR workspace and correction preparation */
.topbar-workspace {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: .8rem;
}

.is-kor-area .topbar-current {
    display: none;
}

.portal-area-switcher {
    display: inline-flex;
    flex: 0 0 auto;
    border: 1px solid #9fc0e5;
    border-radius: 4px;
    background: var(--teal-light);
}

.portal-area-switcher a {
    min-width: 48px;
    padding: .42rem .62rem;
    border-right: 1px solid #9fc0e5;
    border-radius: 0;
    color: var(--muted);
    font-size: .69rem;
    font-weight: 850;
    letter-spacing: .06em;
    text-align: center;
    text-decoration: none;
}

.portal-area-switcher a:last-child {
    border-right: 0;
}

.portal-area-switcher a:hover,
.portal-area-switcher a:focus-visible {
    color: var(--navy-deep);
    outline: none;
}

.portal-area-switcher a.is-active {
    color: white;
    background: var(--navy);
}

.kor-class-switcher {
    min-width: 0;
    display: inline-flex;
    flex: 0 1 auto;
    overflow-x: auto;
    border: 1px solid #9fc0e5;
    border-radius: 4px;
    background: white;
    scrollbar-width: none;
}

.kor-class-switcher::-webkit-scrollbar {
    display: none;
}

.kor-class-switcher a {
    flex: 0 0 auto;
    padding: .42rem .62rem;
    border-right: 1px solid #9fc0e5;
    color: var(--navy-deep);
    font-size: .69rem;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
}

.kor-class-switcher a:last-child {
    border-right: 0;
}

.kor-class-switcher a:hover,
.kor-class-switcher a:focus-visible {
    color: var(--navy);
    background: var(--teal-light);
    outline: none;
}

.kor-class-switcher a.is-active {
    color: white;
    background: var(--navy);
}

.interface-typography-controls {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: stretch;
    gap: .35rem;
}

.font-family-switcher,
.font-size-switcher {
    display: inline-flex;
    flex: 0 0 auto;
    border: 1px solid #9fc0e5;
    border-radius: 4px;
    background: white;
}

.font-family-switcher button,
.font-size-switcher button {
    min-height: 30px;
    padding: .38rem .58rem;
    border: 0;
    border-right: 1px solid #9fc0e5;
    border-radius: 0;
    color: var(--muted);
    background: white;
    cursor: pointer;
    font-size: .69rem;
    font-weight: 750;
    white-space: nowrap;
}

.font-family-switcher button:last-child,
.font-size-switcher button:last-child {
    border-right: 0;
}

.font-family-switcher button:hover,
.font-family-switcher button:focus-visible,
.font-size-switcher button:hover,
.font-size-switcher button:focus-visible {
    color: var(--navy-deep);
    background: var(--teal-light);
    outline: none;
}

.font-family-switcher button.is-active,
:root[data-interface-font="segoe"] .font-family-switcher button[data-font-choice="segoe"],
:root[data-interface-font="calibri"] .font-family-switcher button[data-font-choice="calibri"] {
    color: white;
    background: var(--navy);
}

.font-size-switcher button {
    min-width: 34px;
    padding-right: .45rem;
    padding-left: .45rem;
}

.font-size-switcher button[data-font-size-choice="compact"] .font-size-sample {
    font-size: .76rem;
}

.font-size-switcher button[data-font-size-choice="large"] .font-size-sample {
    font-size: .88rem;
}

.font-size-switcher button.is-active,
:root[data-interface-size="compact"] .font-size-switcher button[data-font-size-choice="compact"],
:root[data-interface-size="large"] .font-size-switcher button[data-font-size-choice="large"] {
    color: white;
    background: var(--navy);
}

/* Die Größenwahl betrifft alle Tabellenzellen einschließlich der Tabellenköpfe; Seitenüberschriften und Mathematik bleiben fest. */
:root[data-interface-size] .has-app-shell .data-table > :is(thead, tbody, tfoot) > tr > :is(th, td),
:root[data-interface-size] .has-app-shell .curriculum-model-classification-header {
    font-size: var(--font-table-size);
}

.metric-card .metric-word {
    font-size: 1.4rem;
    letter-spacing: .08em;
}

.correction-empty-state {
    max-width: 680px;
    margin: 1rem auto;
    padding: clamp(1.3rem, 4vw, 2.4rem);
    border: 1px dashed #b9c4cb;
    border-radius: 16px;
    background: #f8faf9;
    text-align: center;
}

.correction-empty-state strong {
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-size: 1.35rem;
    font-weight: 500;
}

.correction-empty-state p {
    margin: .6rem auto 1rem;
    color: var(--muted);
    line-height: 1.55;
}

.correction-status {
    display: inline-flex;
    padding: .34rem .55rem;
    border-radius: 999px;
    color: #805010;
    background: var(--amber-light);
    font-size: .68rem;
    font-weight: 800;
    white-space: nowrap;
}

.correction-status.is-ready,
.correction-status.is-in-review {
    color: var(--navy-deep);
    background: #dceaf7;
}

.correction-status.is-completed {
    color: #0b5a54;
    background: var(--teal-light);
}

.correction-form-panel {
    max-width: 980px;
    margin-right: auto;
    margin-left: auto;
}

.correction-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.correction-field-wide {
    grid-column: 1 / -1;
}

.correction-workflow {
    margin: 1rem 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid rgba(20, 32, 51, .09);
    border-radius: 16px;
    background: rgba(255, 255, 255, .8);
    list-style: none;
}

.correction-workflow li {
    min-width: 0;
    padding: .9rem 1rem;
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    column-gap: .65rem;
    border-right: 1px solid rgba(20, 32, 51, .08);
}

.correction-workflow li:last-child {
    border-right: 0;
}

.correction-workflow li > span {
    width: 30px;
    height: 30px;
    grid-row: 1 / span 2;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: var(--muted);
    background: #e8ecef;
    font-size: .75rem;
    font-weight: 850;
}

.correction-workflow strong,
.correction-workflow small {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.correction-workflow strong {
    color: var(--navy-deep);
    font-size: .78rem;
}

.correction-workflow small {
    margin-top: .15rem;
    color: var(--muted);
    font-size: .66rem;
}

.correction-workflow li.is-active {
    background: linear-gradient(135deg, rgba(216, 241, 236, .8), rgba(255, 255, 255, .75));
}

.correction-workflow li.is-active > span {
    color: white;
    background: var(--teal);
}

.correction-overview-grid {
    margin-top: 1rem;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .7rem;
}

.correction-overview-grid article {
    padding: .85rem 1rem;
    border: 1px solid rgba(20, 32, 51, .08);
    border-radius: 12px;
    background: rgba(255, 255, 255, .72);
}

.correction-overview-grid span,
.correction-overview-grid strong {
    display: block;
}

.correction-overview-grid span {
    color: var(--muted);
    font-size: .68rem;
}

.correction-overview-grid strong {
    margin-top: .25rem;
    color: var(--navy-deep);
    font-size: 1rem;
}

.correction-instructions {
    margin-top: 1rem;
    padding: .9rem 1rem;
    border-left: 4px solid var(--amber);
    border-radius: 0 10px 10px 0;
    background: var(--amber-light);
}

.correction-instructions strong {
    color: #68400b;
    font-size: .74rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.correction-instructions p {
    margin: .35rem 0 0;
    line-height: 1.5;
    white-space: pre-line;
}

.correction-columns {
    margin-top: 1.2rem;
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(330px, .75fr);
    align-items: start;
    gap: 1rem;
}

.correction-columns > .teacher-panel {
    min-width: 0;
    margin-top: 0;
}

.correction-total {
    display: inline-flex;
    padding: .45rem .65rem;
    border-radius: 9px;
    color: var(--navy-deep);
    background: var(--teal-light);
    font-size: .78rem;
    font-weight: 850;
    white-space: nowrap;
}

.correction-task-list {
    display: grid;
    gap: .65rem;
}

.correction-task-card,
.correction-add-card {
    border: 1px solid var(--line);
    border-radius: 12px;
    background: white;
}

.correction-task-card > summary,
.correction-add-card > summary {
    cursor: pointer;
    list-style: none;
}

.correction-task-card > summary::-webkit-details-marker,
.correction-add-card > summary::-webkit-details-marker {
    display: none;
}

.correction-task-card > summary {
    padding: .75rem;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    align-items: center;
    gap: .7rem;
}

.correction-task-card > summary::after,
.correction-add-card > summary::after {
    content: '+';
    color: var(--teal);
    font-weight: 900;
}

.correction-task-card > summary::after {
    display: none;
}

.correction-task-card[open] > summary,
.correction-add-card[open] > summary {
    border-bottom: 1px solid var(--line);
}

.correction-add-card[open] > summary::after {
    content: '−';
}

.correction-task-code {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    color: white;
    background: var(--navy);
    font-size: .75rem;
    font-weight: 850;
}

.correction-task-card summary strong,
.correction-task-card summary small {
    display: block;
}

.correction-task-card summary small {
    margin-top: .18rem;
    color: var(--muted);
    font-size: .68rem;
}

.correction-edit-label {
    color: var(--teal);
    font-size: .7rem;
    font-weight: 800;
}

.correction-task-form {
    padding: 1rem;
}

.correction-add-card {
    margin-top: .8rem;
    border-style: dashed;
}

.correction-add-card > summary {
    padding: .85rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--navy-deep);
    font-size: .82rem;
    font-weight: 850;
}

.correction-upload-form {
    padding: 1rem;
    border: 1px dashed #b9c4cb;
    border-radius: 12px;
    background: #f8faf9;
}

.correction-upload-form > .button {
    width: 100%;
}

.correction-document-list {
    margin-top: 1rem;
    display: grid;
    gap: .6rem;
}

.correction-document-list article {
    min-width: 0;
    padding: .7rem;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: .65rem;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: white;
}

.correction-document-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    color: white;
    background: var(--red);
    font-size: .62rem;
    font-weight: 900;
}

.correction-document-list article > div {
    min-width: 0;
}

.correction-document-list strong,
.correction-document-list small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.correction-document-list strong {
    color: var(--navy-deep);
    font-size: .78rem;
}

.correction-document-list small {
    margin-top: .2rem;
    color: var(--muted);
    font-size: .64rem;
}

.correction-document-list .correction-document-warning {
    color: #9b2c2c;
    white-space: normal;
}

.correction-document-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .55rem;
}

.correction-document-actions form {
    margin: 0;
}

.correction-document-actions .button {
    min-height: 34px;
    padding: .45rem .7rem;
    font-size: .68rem;
}

.correction-next-panel {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr);
    gap: 2rem;
    border-color: rgba(15, 118, 110, .18);
    background: linear-gradient(135deg, rgba(216, 241, 236, .65), rgba(255, 255, 255, .88));
}

.correction-next-panel h2 {
    margin: 0;
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 500;
}

.correction-next-panel p {
    margin: .65rem 0 0;
    color: var(--muted);
    line-height: 1.55;
}

.correction-next-panel ul {
    margin: 0;
    padding-left: 1.2rem;
    display: grid;
    gap: .55rem;
    align-content: start;
    color: var(--navy-deep);
    font-size: .78rem;
    line-height: 1.45;
}

.correction-workflow li.is-complete > span {
    color: #0b5a54;
    background: var(--teal-light);
}

.scan-review-intro {
    margin-top: 1rem;
}

.scan-review-help {
    max-width: 900px;
    margin: 0 0 1rem;
    color: var(--muted);
    font-size: .78rem;
    line-height: 1.55;
}

.scan-local-ocr {
    margin-top: 1rem;
    padding: 1rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .75rem 1rem;
    border-color: rgba(45, 94, 180, .25);
    background: linear-gradient(135deg, #f7fbff, #fff);
}

.scan-local-ocr h2,
.scan-local-ocr p {
    margin: 0;
}

.scan-local-ocr h2 {
    color: var(--navy-deep);
    font-size: 1rem;
}

.scan-local-ocr div > p:last-child {
    max-width: 780px;
    margin-top: .35rem;
    color: var(--muted);
    font-size: .7rem;
    line-height: 1.5;
}

.scan-local-ocr.is-working .button {
    cursor: wait;
}

.scan-local-ocr-status {
    grid-column: 1 / -1;
    min-height: 1.1rem;
    color: var(--muted);
    font-size: .66rem;
    line-height: 1.45;
}

.scan-local-ocr.has-error .scan-local-ocr-status {
    color: #9b2c2c;
}

.scan-order-strip {
    margin: 0 0 1rem;
    padding: .8rem;
    display: flex;
    gap: 1.65rem;
    overflow-x: auto;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #f8faf9;
}

.scan-order-strip > div {
    position: relative;
    min-width: 130px;
    padding: .55rem .7rem;
    border: 1px solid rgba(45, 94, 180, .18);
    border-radius: 9px;
    background: white;
}

.scan-order-strip > div:not(:last-child)::after {
    content: '→';
    position: absolute;
    top: 50%;
    right: -1.25rem;
    color: var(--muted);
    transform: translateY(-50%);
}

.scan-order-strip > div.is-incomplete {
    border-color: rgba(189, 119, 16, .45);
    background: var(--amber-light);
}

.scan-order-strip strong,
.scan-order-strip span {
    display: block;
    white-space: nowrap;
}

.scan-order-strip strong {
    color: var(--navy-deep);
    font-size: .74rem;
}

.scan-order-strip span {
    margin-top: .18rem;
    color: var(--muted);
    font-size: .64rem;
}

.scan-page-grid {
    margin-top: 1rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(270px, 1fr));
    align-items: start;
    gap: 1rem;
}

.scan-page-card {
    min-width: 0;
    margin-top: 0;
    padding: 0;
    overflow: hidden;
}

.scan-page-card > header {
    padding: .75rem .85rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    border-bottom: 1px solid var(--line);
}

.scan-page-card > header span,
.scan-page-card > header strong {
    display: block;
}

.scan-page-card > header span {
    color: var(--muted);
    font-size: .62rem;
}

.scan-page-card > header strong {
    margin-top: .14rem;
    color: var(--navy-deep);
    font-size: .8rem;
}

.scan-page-state {
    padding: .28rem .48rem;
    border-radius: 999px;
    color: #805010 !important;
    background: var(--amber-light);
    font-weight: 800;
    white-space: nowrap;
}

.scan-page-state.is-confirmed {
    color: #0b5a54 !important;
    background: var(--teal-light);
}

.scan-page-preview {
    padding: .75rem;
    background: #e9edef;
}

.scan-page-preview-stage {
    position: relative;
    min-height: 240px;
    width: 100%;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid #c8d0d5;
    border-radius: 6px;
    background: white;
}

.scan-page-preview canvas {
    width: 100%;
    height: auto;
    display: block;
    opacity: 0;
}

.scan-page-card.is-preview-rendered .scan-page-preview canvas {
    opacity: 1;
}

.scan-page-preview-status {
    position: absolute;
    inset: 0;
    margin: 0;
    padding: 1rem;
    display: grid;
    place-items: center;
    color: var(--muted);
    font-size: .66rem;
    line-height: 1.45;
    text-align: center;
}

.scan-page-preview-status[hidden] {
    display: none;
}

.scan-page-card.has-preview-error .scan-page-preview-status {
    color: #9b2c2c;
}

.scan-page-preview .row-link {
    margin-top: .55rem;
    display: inline-block;
    font-size: .68rem;
}

.scan-page-preview-fallback {
    margin: .55rem 0 0;
    color: var(--muted);
    font-size: .64rem;
    line-height: 1.4;
}

.single-page-viewer {
    margin-top: 1rem;
    padding: clamp(.75rem, 2vw, 1.5rem);
    background: #e9edef;
}

.single-page-viewer-stage {
    position: relative;
    width: 100%;
    max-width: 1400px;
    min-height: min(72vh, 800px);
    margin-inline: auto;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid #c8d0d5;
    border-radius: 6px;
    background: white;
}

.single-page-viewer canvas {
    width: 100%;
    height: auto;
    display: block;
    opacity: 0;
}

.single-page-viewer.is-rendered canvas {
    opacity: 1;
}

.single-page-viewer-status {
    position: absolute;
    inset: 0;
    margin: 0;
    padding: 1.5rem;
    display: grid;
    place-items: center;
    color: var(--muted);
    line-height: 1.5;
    text-align: center;
}

.single-page-viewer-status[hidden] {
    display: none;
}

.single-page-viewer.has-error .single-page-viewer-status {
    color: #9b2c2c;
}

.single-page-viewer-fallback {
    margin: .75rem 0 0;
    color: var(--muted);
    font-size: .68rem;
}

.scan-page-fields {
    padding: .85rem;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(105px, .65fr);
    gap: .75rem;
    border-bottom: 1px solid var(--line);
}

.scan-field-heading {
    margin-bottom: .38rem;
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: .4rem;
}

.scan-field-heading label {
    margin: 0;
}

.scan-confidence {
    padding: .2rem .35rem;
    border-radius: 999px;
    color: #805010;
    background: var(--amber-light);
    font-size: .55rem;
    font-weight: 800;
    white-space: nowrap;
}

.scan-confidence.is-high {
    color: #0b5a54;
    background: var(--teal-light);
}

.scan-confidence.is-medium {
    color: var(--navy-deep);
    background: #dceaf7;
}

.scan-confidence.is-teacher {
    color: var(--navy-deep);
    background: #dceaf7;
}

.scan-confidence.is-missing {
    color: #7a3030;
    background: #fbe1e1;
}

.scan-page-ocr-status {
    min-height: 1.25rem;
    margin: 0;
    padding: 0 .85rem .8rem;
    color: var(--muted);
    font-size: .62rem;
    line-height: 1.4;
}

.scan-page-ocr-status.is-working {
    color: var(--navy-deep);
}

.scan-page-ocr-status.is-success {
    color: #0b5a54;
}

.scan-page-ocr-status.is-protected,
.scan-page-ocr-status.is-missing {
    color: #805010;
}

.scan-page-ocr-status.is-error {
    color: #9b2c2c;
}

@media (max-width: 980px) {
    .scan-local-ocr {
        grid-template-columns: 1fr;
    }

    .scan-local-ocr-status {
        grid-column: auto;
    }
}

.scan-review-actions {
    position: sticky;
    z-index: 5;
    bottom: 1rem;
    margin-top: 1rem;
    padding: .85rem 1rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: .8rem;
    border: 1px solid rgba(45, 94, 180, .22);
    border-radius: 12px;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 10px 28px rgba(20, 32, 51, .12);
}

.scan-review-actions strong,
.scan-review-actions span {
    display: block;
}

.scan-review-actions strong {
    color: var(--navy-deep);
    font-size: .76rem;
}

.scan-review-actions span {
    margin-top: .16rem;
    color: var(--muted);
    font-size: .64rem;
    line-height: 1.4;
}

.field-error {
    color: #9b2c2c !important;
}

.scan-review-navigation {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.task-region-intro {
    margin-top: 1rem;
}

.task-region-intro > p {
    max-width: 1050px;
    margin: 0 0 1rem;
    color: var(--muted);
    font-size: .78rem;
    line-height: 1.55;
}

.task-region-task-strip {
    margin: 0 0 1rem;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: .55rem;
}

.task-region-task-strip > div {
    min-width: 0;
    padding: .6rem .7rem;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: .55rem;
    border: 1px solid rgba(45, 94, 180, .18);
    border-radius: 9px;
    background: white;
}

.task-region-task-strip > div.is-unmapped {
    border-color: rgba(189, 119, 16, .38);
    background: var(--amber-light);
}

.task-region-task-strip strong {
    grid-row: 1 / span 2;
    color: var(--navy-deep);
    font-size: .78rem;
}

.task-region-task-strip span,
.task-region-task-strip small {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.task-region-task-strip span {
    color: var(--navy-deep);
    font-size: .68rem;
    font-weight: 750;
}

.task-region-task-strip small {
    margin-top: .12rem;
    color: var(--muted);
    font-size: .6rem;
}

.task-region-pages {
    margin-top: 1rem;
    display: grid;
    gap: 1rem;
}

.task-region-page {
    min-width: 0;
    margin-top: 0;
    padding: 0;
    overflow: hidden;
}

.task-region-page-heading {
    padding: .75rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid var(--line);
    background: #f8faf9;
}

.task-region-page-heading span,
.task-region-page-heading strong {
    display: block;
}

.task-region-page-heading span {
    color: var(--muted);
    font-size: .63rem;
}

.task-region-page-heading strong {
    margin-top: .12rem;
    color: var(--navy-deep);
    font-size: .82rem;
}

.task-region-page-heading > span {
    padding: .26rem .48rem;
    border-radius: 999px;
    color: var(--navy-deep);
    background: #dceaf7;
    font-weight: 800;
    white-space: nowrap;
}

.task-region-page-layout {
    padding: 1rem;
    display: grid;
    grid-template-columns: minmax(360px, 1.12fr) minmax(310px, .88fr);
    align-items: start;
    gap: 1rem;
}

.task-region-canvas-shell {
    position: relative;
    width: 100%;
    min-height: 300px;
    overflow: hidden;
    border: 1px solid #c5cdd2;
    border-radius: 7px;
    background:
        linear-gradient(45deg, #e8ecef 25%, transparent 25%) 0 0 / 18px 18px,
        linear-gradient(-45deg, #e8ecef 25%, transparent 25%) 0 9px / 18px 18px,
        linear-gradient(45deg, transparent 75%, #e8ecef 75%) 9px -9px / 18px 18px,
        linear-gradient(-45deg, transparent 75%, #e8ecef 75%) -9px 0 / 18px 18px,
        #f3f5f6;
}

.task-region-canvas-shell canvas {
    width: 100%;
    height: auto;
    display: block;
    background: white;
}

.task-region-overlay {
    position: absolute;
    z-index: 2;
    inset: 0;
    overflow: hidden;
    touch-action: none;
}

.task-region-page.is-drawing-region .task-region-overlay {
    cursor: crosshair;
}

.task-region-page.is-drawing-region .task-region-canvas-shell {
    outline: 3px solid rgba(45, 94, 180, .2);
    outline-offset: 2px;
}

.task-region-box {
    --task-region-color: hsl(calc(205deg + (var(--task-region-index) * 47deg)) 66% 43%);
    position: absolute;
    min-width: 0;
    min-height: 0;
    padding: .22rem .32rem;
    display: flex;
    align-items: flex-start;
    border: 2px solid var(--task-region-color);
    border-radius: 4px;
    color: #102942;
    background: color-mix(in srgb, var(--task-region-color) 16%, transparent);
    cursor: move;
    font: inherit;
    touch-action: none;
}

.task-region-box:hover,
.task-region-box:focus-visible,
.task-region-box.is-selected {
    z-index: 4;
    border-width: 3px;
    outline: 2px solid white;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--task-region-color) 42%, transparent);
}

.task-region-box > span {
    max-width: calc(100% - 16px);
    padding: .16rem .3rem;
    overflow: hidden;
    border-radius: 3px;
    color: white;
    background: var(--task-region-color);
    font-size: .58rem;
    font-weight: 850;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.task-region-resize-handle {
    position: absolute;
    right: -5px;
    bottom: -5px;
    width: 13px;
    height: 13px;
    border: 2px solid white;
    border-radius: 50%;
    background: var(--task-region-color);
    box-shadow: 0 0 0 1px var(--task-region-color);
    cursor: nwse-resize;
}

.task-region-drawing-outline {
    position: absolute;
    z-index: 5;
    border: 2px dashed var(--navy);
    background: rgba(45, 94, 180, .12);
    pointer-events: none;
}

.task-region-render-status,
.task-region-page-message {
    margin: .45rem 0 0;
    color: var(--muted);
    font-size: .63rem;
    line-height: 1.4;
}

.task-region-page-message:not(:empty) {
    padding: .45rem .55rem;
    border-left: 3px solid var(--navy);
    background: #edf4fb;
}

.task-region-toolbar {
    margin-top: .65rem;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
}

.task-region-toolbar .button {
    min-height: 34px;
    padding: .45rem .65rem;
    font-size: .66rem;
}

.task-region-toolbar .row-link {
    margin-left: auto;
    font-size: .65rem;
}

.task-region-list {
    max-height: min(85vh, 960px);
    padding-right: .25rem;
    display: grid;
    align-content: start;
    gap: .6rem;
    overflow-y: auto;
}

.task-region-row {
    min-width: 0;
    margin: 0;
    padding: .7rem;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: white;
}

.task-region-row.is-selected {
    border-color: var(--navy);
    box-shadow: 0 0 0 3px rgba(45, 94, 180, .1);
}

.task-region-row.is-deleted {
    opacity: .58;
    background: #f2f3f4;
}

.task-region-row.is-deleted > :not(legend):not(.task-region-row-actions) {
    display: none;
}

.task-region-row legend {
    padding: 0 .25rem;
    color: var(--navy-deep);
    font-size: .69rem;
    font-weight: 850;
}

.task-region-row-heading {
    margin-bottom: .55rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

.task-region-row-heading > span:last-child {
    color: var(--muted);
    font-size: .55rem;
    white-space: nowrap;
}

.task-region-origin {
    padding: .2rem .36rem;
    border-radius: 999px;
    color: #805010;
    background: var(--amber-light);
    font-size: .55rem;
    font-weight: 800;
    white-space: nowrap;
}

.task-region-origin.is-assistant,
.task-region-origin.is-manual {
    color: var(--navy-deep);
    background: #dceaf7;
}

.task-region-origin.is-layout {
    color: #0b5a54;
    background: var(--teal-light);
}

.task-region-row .field + .field {
    margin-top: .5rem;
}

.task-region-row .field label {
    margin-bottom: .25rem;
    font-size: .62rem;
}

.task-region-row input,
.task-region-row select {
    min-height: 34px;
    padding: .4rem .5rem;
    font-size: .68rem;
}

.task-region-coordinates {
    margin-top: .55rem;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .35rem;
}

.task-region-coordinates label span {
    margin-bottom: .18rem;
    display: block;
    color: var(--muted);
    font-size: .54rem;
    font-weight: 750;
}

.task-region-coordinates input {
    width: 100%;
}

.task-region-row-actions {
    margin-top: .55rem;
    padding-top: .5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    border-top: 1px solid var(--line);
}

.task-region-row-actions .row-link {
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    font-size: .62rem;
}

.task-region-row-actions .row-link.is-danger {
    color: #9b2c2c;
}

.task-region-submit {
    grid-template-columns: minmax(0, 1fr) auto auto;
}

.transcription-intro {
    margin-top: 1rem;
}

.transcription-intro > p {
    margin: .75rem 0 0;
}

.codex-transcription-intro {
    margin-top: .75rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .65rem 1rem;
}

.codex-transcription-intro > div {
    min-width: 0;
}

.codex-batch-status {
    grid-column: 1 / -1;
    min-height: 1em;
    color: var(--muted);
    font-size: .65rem;
}

.transcription-list {
    margin-top: 1rem;
    display: grid;
    gap: 1rem;
}

.transcription-card {
    min-width: 0;
    margin-top: 0;
    padding: 0;
    overflow: hidden;
}

.transcription-card-heading {
    padding: .8rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid var(--line);
    background: #f8faf9;
}

.transcription-card-heading span,
.transcription-card-heading h2 {
    display: block;
}

.transcription-card-heading div > span {
    color: var(--muted);
    font-size: .64rem;
}

.transcription-card-heading h2 {
    margin: .15rem 0 0;
    color: var(--navy-deep);
    font-size: .9rem;
}

.transcription-status {
    flex: 0 0 auto;
    padding: .3rem .55rem;
    border-radius: 999px;
    color: #4b5560;
    background: #e8ecef;
    font-size: .62rem;
    font-weight: 800;
    white-space: nowrap;
}

.transcription-status.is-confirmed {
    color: #14543f;
    background: #d8f1ec;
}

.transcription-status.is-stale {
    color: #813d12;
    background: #fce8d2;
}

.transcription-status.is-proposed {
    color: #183f70;
    background: #dceaf7;
}

.transcription-card-layout {
    padding: 1rem;
    display: grid;
    grid-template-columns: minmax(360px, 1.05fr) minmax(360px, .95fr);
    align-items: start;
    gap: 1rem;
}

.transcription-preview-column {
    min-width: 0;
    position: sticky;
    top: 1rem;
}

.transcription-preview {
    width: 100%;
    min-height: 0;
    overflow: hidden;
    border: 1px solid #c5cdd2;
    border-radius: 7px;
    background:
        linear-gradient(45deg, #e8ecef 25%, transparent 25%) 0 0 / 18px 18px,
        linear-gradient(-45deg, #e8ecef 25%, transparent 25%) 0 9px / 18px 18px,
        linear-gradient(45deg, transparent 75%, #e8ecef 75%) 9px -9px / 18px 18px,
        linear-gradient(-45deg, transparent 75%, #e8ecef 75%) -9px 0 / 18px 18px,
        #f3f5f6;
}

.transcription-preview canvas {
    width: 100%;
    height: auto;
    display: block;
    background: white;
}

.transcription-preview.has-render-error {
    min-height: 260px;
    border-color: #c77a3a;
}

.transcription-render-status {
    margin: .45rem 0 0;
    color: var(--muted);
    font-size: .63rem;
}

.transcription-preview-meta {
    margin-top: .55rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    color: var(--muted);
    font-size: .64rem;
}

.transcription-fields {
    min-width: 0;
    margin: 0;
    padding: .85rem;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: white;
}

.transcription-fields legend {
    padding: 0 .35rem;
    color: var(--navy-deep);
    font-size: .7rem;
    font-weight: 850;
}

.transcription-fields textarea {
    width: 100%;
    resize: vertical;
    line-height: 1.5;
}

.transcription-fields.is-blank textarea[data-transcription-content] {
    opacity: .52;
    background: #f1f3f4;
}

.transcription-origin-line {
    margin-bottom: .7rem;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .4rem;
}

.transcription-origin-line span,
.transcription-origin-line small {
    padding: .24rem .45rem;
    border-radius: 999px;
    background: #edf1f3;
    color: var(--muted);
    font-size: .6rem;
    font-weight: 750;
}

.transcription-origin-line span {
    color: var(--navy-deep);
    background: #dceaf7;
}

.codex-transcription-controls {
    margin: 0 0 .8rem;
    padding: .6rem .7rem;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .55rem;
    border: 1px solid #cbdbea;
    border-radius: .55rem;
    background: #f5f9fd;
}

.codex-transcription-controls .button {
    min-height: 2rem;
    padding: .4rem .65rem;
    font-size: .66rem;
}

.codex-transcription-controls [data-codex-status] {
    flex: 1 1 13rem;
    color: var(--muted);
    font-size: .64rem;
    line-height: 1.35;
}

.codex-transcription-controls [data-codex-status].has-error {
    color: #8a2d21;
}

.codex-transcription-controls.is-busy {
    border-color: #8eb5da;
    background: #edf6ff;
}

.transcription-blank-option {
    margin-top: .8rem;
    padding: .65rem .7rem;
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f8faf9;
    cursor: pointer;
}

.transcription-blank-option input {
    margin-top: .15rem;
}

.transcription-blank-option strong,
.transcription-blank-option small {
    display: block;
}

.transcription-blank-option strong {
    color: var(--navy-deep);
    font-size: .7rem;
}

.transcription-blank-option small {
    margin-top: .12rem;
    color: var(--muted);
    font-size: .61rem;
}

.transcription-submit {
    grid-template-columns: minmax(0, 1fr) auto auto auto;
}

@media (max-width: 1260px) {
    .scan-page-grid {
        grid-template-columns: repeat(2, minmax(270px, 1fr));
    }
}

@media (max-width: 980px) {
    .correction-workflow {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .correction-workflow li:nth-child(2) {
        border-right: 0;
    }

    .correction-workflow li:nth-child(-n + 2) {
        border-bottom: 1px solid rgba(20, 32, 51, .08);
    }

    .correction-workflow li {
        border-bottom: 1px solid rgba(20, 32, 51, .08);
    }

    .correction-workflow li:nth-child(even) {
        border-right: 0;
    }

    .correction-workflow li:last-child {
        grid-column: auto;
        border-right: 0;
        border-bottom: 0;
    }

    .correction-workflow li:nth-last-child(2) {
        border-bottom: 0;
    }

    .correction-columns,
    .correction-next-panel {
        grid-template-columns: 1fr;
    }

    .scan-review-actions {
        grid-template-columns: 1fr 1fr;
    }

    .scan-review-actions > div {
        grid-column: 1 / -1;
    }

    .task-region-page-layout,
    .transcription-card-layout {
        grid-template-columns: 1fr;
    }

    .transcription-preview-column {
        position: static;
    }

    .transcription-submit {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .codex-transcription-intro {
        grid-template-columns: 1fr;
    }

    .codex-batch-status {
        grid-column: auto;
    }

    .transcription-submit > div {
        grid-column: 1 / -1;
    }

    .task-region-list {
        max-height: none;
        overflow: visible;
    }
}

@media (max-width: 700px) {
    .correction-form-grid,
    .correction-overview-grid {
        grid-template-columns: 1fr;
    }

    .correction-field-wide {
        grid-column: auto;
    }

    .correction-workflow {
        grid-template-columns: 1fr;
    }

    .correction-workflow li,
    .correction-workflow li:nth-child(2) {
        border-right: 0;
        border-bottom: 1px solid rgba(20, 32, 51, .08);
    }

    .correction-workflow li:last-child {
        grid-column: auto;
        border-bottom: 0;
    }

    .correction-document-list article {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    .correction-document-list .correction-document-actions {
        grid-column: 2;
        align-items: flex-start;
        flex-direction: column;
    }

    .scan-page-grid,
    .scan-page-fields,
    .scan-review-actions {
        grid-template-columns: 1fr;
    }

    .scan-review-actions > div {
        grid-column: auto;
    }

    .scan-review-navigation,
    .task-region-page-heading,
    .task-region-row-heading,
    .task-region-row-actions,
    .transcription-card-heading,
    .transcription-preview-meta {
        align-items: flex-start;
        flex-direction: column;
    }

    .task-region-page-layout {
        padding: .65rem;
    }

    .task-region-canvas-shell {
        min-height: 220px;
    }

    .task-region-coordinates {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .task-region-toolbar .row-link {
        width: 100%;
        margin-left: 0;
    }

    .transcription-card-layout {
        padding: .65rem;
    }

    .transcription-preview {
        min-height: 0;
    }

    .transcription-submit {
        grid-template-columns: 1fr;
    }

    .transcription-submit > div {
        grid-column: auto;
    }
}

/* Einheitlicher, flacher Arbeitsbereich */
.has-app-shell {
    background: white;
}

.has-app-shell .site-main a:not(.button) {
    color: var(--navy);
    text-underline-offset: .18em;
}

.has-app-shell :where(
    .teacher-panel,
    .subject-section,
    .empty-panel,
    .info-panel,
    .exercise-card,
    .attempt-panel,
    .learning-unit-card,
    .learning-mode-card,
    .practice-card,
    .math-workbench,
    .math-workbench-panel,
    .self-test-submit-panel,
    .self-test-result-list article,
    .credential-print-card,
    .correction-workflow,
    .correction-overview-grid article,
    .correction-task-card,
    .correction-add-card,
    .correction-upload-form,
    .correction-document-list article,
    .planning-hint
) {
    border-radius: 0;
    box-shadow: none;
}

.has-app-shell :where(
    .teacher-panel,
    .subject-section,
    .empty-panel,
    .info-panel
) {
    padding-right: 0;
    padding-left: 0;
    border: 0;
    border-top: 1px solid var(--line);
    background: transparent;
}

.has-app-shell .site-content > h1.visually-hidden + :where(.teacher-panel, .subject-section, .empty-panel, .info-panel) {
    margin-top: 0;
    padding-top: 1.25rem;
    border-top: 0;
}

.has-app-shell .correction-form-panel {
    max-width: none;
}

.has-app-shell .metric-grid {
    gap: 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.has-app-shell .metric-card {
    min-height: 110px;
    border: 0;
    border-right: 1px solid var(--line);
    border-radius: 0;
    background: white;
}

.has-app-shell .metric-card:last-child {
    border-right: 0;
}

.has-app-shell .access-status-grid article {
    border-color: var(--line);
    border-radius: 0;
    background: white;
}

@media (max-width: 820px) {
    .has-app-shell .metric-card:nth-child(2n) {
        border-right: 0;
    }

    .has-app-shell .metric-card:nth-child(n + 3) {
        border-top: 1px solid var(--line);
    }
}

@media (max-width: 620px) {
    .topbar-current small {
        display: block;
        font-size: .58rem;
    }

    .portal-area-switcher a {
        min-width: 38px;
        padding-right: .42rem;
        padding-left: .42rem;
    }

    .kor-class-switcher a {
        padding-right: .46rem;
        padding-left: .46rem;
        font-size: .63rem;
    }

    .font-family-switcher button,
    .font-size-switcher button {
        padding-right: .42rem;
        padding-left: .42rem;
        font-size: .63rem;
    }

    .has-app-shell .metric-card,
    .has-app-shell .metric-card:nth-child(2n) {
        border-right: 0;
    }

    .has-app-shell .metric-card + .metric-card {
        border-top: 1px solid var(--line);
    }
}

/* Feste Themen- und Bereichswahl im Aufgabensystem */
.task-system-sticky-header {
    position: sticky;
    z-index: 65;
    top: var(--topbar-height);
    margin: 0 calc(var(--content-gutter) * -1) .75rem;
    padding: 0 var(--content-gutter);
    border-bottom: 1px solid #b9cde1;
    background: rgba(255, 255, 255, .98);
}

.task-system-topic-heading {
    padding: .85rem 0 .7rem;
}

.task-system-topic-heading h1 {
    margin: 0;
    color: var(--navy-deep);
    font-family: var(--font-interface);
    font-size: clamp(1.55rem, 2.25vw, 2.05rem);
    font-weight: 500;
    line-height: 1.12;
}

.task-system-tabs-shell {
    padding: .55rem 0;
}

.task-system-tabs {
    width: min(760px, 100%);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid #9fc0e5;
    border-radius: 4px;
    background: var(--teal-light);
}

.task-system-tabs a {
    min-height: 40px;
    padding: .55rem .7rem;
    display: grid;
    place-items: center;
    border-right: 1px solid #9fc0e5;
    color: var(--muted) !important;
    font-size: .72rem;
    font-weight: 850;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
}

.task-system-tabs a:last-child {
    border-right: 0;
}

.task-system-tabs a:hover,
.task-system-tabs a:focus-visible {
    color: var(--navy-deep) !important;
    outline: 2px solid #76a9e8;
    outline-offset: -2px;
}

.task-system-tabs a.is-active {
    color: white !important;
    background: var(--navy);
}

.task-system-inline-heading {
    min-width: 0;
    width: 100%;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
}

.task-system-inline-heading .eyebrow {
    margin: 0 !important;
    margin-left: auto !important;
    text-align: right;
    white-space: nowrap;
}

.task-system-inline-heading .eyebrow::after {
    content: none;
}

.task-system-inline-heading :is(h2, h3) {
    margin: 0;
    font-size: 1.18rem;
    line-height: 1.2;
}

.curriculum-supervised-tasks {
    margin-top: 0;
    padding-top: .6rem;
    border-top: 0 !important;
}

@media (max-width: 620px) {
    .task-system-topic-heading {
        padding-top: .7rem;
        padding-bottom: .55rem;
    }

    .task-system-topic-heading h1 {
        font-size: 1.45rem;
    }

    .task-system-tabs-shell {
        padding-top: .4rem;
        padding-bottom: .4rem;
    }

    .task-system-tabs a {
        min-height: 44px;
        padding-right: .35rem;
        padding-left: .35rem;
        font-size: .64rem;
    }
}

/* Verdichtete Prüfansicht des Fachmodells */
.compact-curriculum-model .curriculum-version-list {
    gap: .75rem;
}

.compact-curriculum-model .task-system-sticky-header {
    margin-bottom: 0;
}

.compact-curriculum-model .curriculum-version-card {
    padding-top: 0;
    border-top: 0;
}

.compact-curriculum-model .curriculum-general-section {
    margin-top: 0;
}

.compact-curriculum-model .curriculum-general-section,
.compact-curriculum-model .curriculum-time-section {
    padding-bottom: 0;
    border-bottom: 0;
}

.compact-curriculum-model .curriculum-general-section > header {
    margin-bottom: .25rem;
}

.compact-curriculum-model .curriculum-general-section h2,
.compact-curriculum-model .curriculum-subsection h2 {
    font-size: 1.18rem;
    line-height: 1.15;
}

.compact-curriculum-model .curriculum-general-table {
    font-size: .78rem;
}

.compact-bank-preview .bank-preview-general-section {
    margin-top: 0;
}

.compact-bank-preview .bank-preview-validation {
    padding-top: .65rem;
}

.compact-bank-preview .bank-preview-validation .teacher-panel-heading {
    margin-bottom: .35rem;
}

.compact-bank-preview .bank-preview-check-grid {
    gap: 0;
    border-top: 1px solid var(--line);
    border-left: 1px solid var(--line);
}

.compact-bank-preview .bank-preview-check {
    min-height: 48px;
    border: 0;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    border-radius: 0;
}

.compact-curriculum-model .curriculum-general-table th,
.compact-curriculum-model .curriculum-general-table td,
.compact-curriculum-model .requirement-level-table th,
.compact-curriculum-model .requirement-level-table td {
    padding: .38rem .55rem;
}

.compact-curriculum-model .curriculum-supervised-test-plan-table th,
.compact-curriculum-model .curriculum-supervised-test-plan-table td {
    padding: .34rem .55rem;
}

.compact-curriculum-model .curriculum-supervised-test-plan-table thead th {
    height: 44px;
}

.compact-curriculum-model .requirement-level-table thead th {
    height: 30px;
    padding-block: .2rem;
}

.compact-curriculum-model .curriculum-sample-table thead th {
    height: 30px;
    padding: .2rem .55rem;
}

.compact-curriculum-model .curriculum-general-table th,
.compact-curriculum-model .requirement-level-table th {
    font-size: .62rem;
}

.compact-curriculum-model .requirement-level-table tbody th {
    font-size: .76rem;
}

.compact-curriculum-model .curriculum-general-range .math-tex {
    line-height: 1.25;
}

.compact-curriculum-model .curriculum-subsection {
    margin-top: .75rem;
    padding-top: .65rem;
}

.compact-curriculum-model .curriculum-time-section,
.compact-curriculum-model .curriculum-classification-section {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

.compact-curriculum-model .curriculum-time-section {
    width: min(1180px, 100%);
}

.compact-curriculum-model .curriculum-subsection > header {
    margin-bottom: .35rem;
    gap: 1rem;
}

.compact-curriculum-model .curriculum-model-classification-sticky > header {
    margin-bottom: .35rem;
}

.compact-curriculum-model .task-system-table-sticky-heading,
.compact-curriculum-model .curriculum-model-classification-sticky {
    padding-top: 40px;
}

.compact-curriculum-model .curriculum-subsection .eyebrow {
    margin-bottom: .08rem;
    font-size: .58rem;
}

.compact-curriculum-model .requirement-level-table {
    max-width: 1180px;
    font-size: .78rem;
}

.compact-curriculum-model .curriculum-model-classification-header {
    min-height: 44px;
}

.compact-curriculum-model .curriculum-model-classification-row {
    border: 0;
}

.compact-curriculum-model .curriculum-model-classification-header > span:not(.curriculum-condition-scroll),
.compact-curriculum-model .curriculum-model-classification-row > summary > span:not(.curriculum-condition-scroll) {
    padding: .46rem .5rem;
}

.compact-curriculum-model .curriculum-model-classification-header .curriculum-condition-track > span {
    padding-block: .4rem;
}

.compact-curriculum-model .curriculum-condition-track > span {
    padding: .52rem .6rem;
}

.compact-curriculum-model .curriculum-model-classification-row > summary > span:not(.curriculum-condition-scroll) {
    font-size: var(--font-table-size);
}

.compact-curriculum-model .curriculum-model-classification-code,
.compact-curriculum-model .curriculum-model-classification-name {
    font-size: var(--font-table-size) !important;
}

/* Eingebettete Wochenplanung */
.has-app-shell.embedded-week-planning {
    height: 100vh;
    min-height: 0;
    overflow: hidden;
}

.embedded-week-planning .site-main {
    min-height: 0;
    padding-top: .45rem;
    padding-bottom: 0;
    flex: 1 1 auto;
    overflow: hidden;
}

.embedded-week-planning .site-content {
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.week-planning-summary {
    max-width: 100%;
    margin-bottom: 1.35rem;
    flex: none;
    overflow: hidden;
}

.week-planning-summary-heading {
    margin-bottom: .25rem;
}

.week-planning-summary-heading h2 {
    margin: 0;
    color: var(--navy-deep);
    font-size: 1.18rem;
    font-weight: 500;
    line-height: 1.15;
}

.week-planning-summary .table-scroll {
    width: min(420px, 100%);
}

.week-planning-summary-table {
    min-width: 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    font-size: .78rem;
}

.week-planning-summary-table th,
.week-planning-summary-table td {
    padding: .26rem .55rem;
    white-space: nowrap;
}

.week-planning-summary-table th {
    width: 72%;
    background: rgba(20, 32, 51, .025);
    font-size: .62rem;
}

.week-planning-summary-table td {
    width: 28%;
    color: var(--navy-deep);
    font-weight: 750;
}

.week-planning-summary-table tbody tr:last-child th,
.week-planning-summary-table tbody tr:last-child td {
    border-bottom: 0;
}

.has-app-shell .week-planning-panel {
    min-height: 0;
    margin-top: .45rem;
    padding-top: .45rem;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    overflow: hidden;
}

.has-app-shell.embedded-week-planning .site-content > h1.visually-hidden + .week-planning-panel {
    margin-top: 0;
    padding-top: .45rem;
}

.week-planning-panel .teacher-panel-heading {
    margin-bottom: .35rem;
    flex: none;
}

.week-planning-panel .teacher-panel-heading > div {
    width: 100%;
}

.week-planning-panel .teacher-panel-heading h2 {
    font-size: 1.18rem;
    line-height: 1.15;
}

.week-planning-panel .eyebrow {
    position: relative;
    top: .2rem;
    margin-bottom: .08rem;
    font-size: .58rem;
    text-align: right;
}

.week-planning-table-scroll {
    min-height: 0;
    border: 1px solid var(--line);
    flex: 1 1 auto;
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.week-planning-table-scroll .week-table {
    margin: 0;
}

.week-planning-table-scroll .week-table thead th {
    position: sticky;
    z-index: 2;
    top: 0;
    background: #f7fafc;
    box-shadow: 0 1px 0 var(--line);
}

.embedded-week-planning .site-footer {
    padding-top: .45rem;
    padding-bottom: .45rem;
    flex: none;
    background: white;
}

@media (max-width: 760px) {
    .practice-compact-heading {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: .45rem;
    }

    .practice-progress-compact {
        grid-template-columns: minmax(70px, 1fr) auto;
    }

    .practice-package-heading {
        grid-column: 1 / -1;
        justify-content: flex-start;
    }

    .practice-block-navigation {
        top: calc(var(--topbar-height) + .1rem);
    }

    .practice-task-select {
        grid-template-columns: 2.4rem minmax(0, 1fr) minmax(96px, auto);
        gap: .55rem;
    }

    .practice-task-state {
        display: none;
    }

    .practice-task-result {
        min-width: 96px;
    }

    .practice-task-row .answer-result {
        margin-left: 3.8rem;
    }

    .math-workbench-toolbar > div:first-child > span {
        display: none;
    }

    .math-workbench-submit {
        max-width: 145px;
        overflow: hidden;
        text-overflow: ellipsis;
    }
}

/* Muss nach den allgemeinen Scan-Aktionsleisten stehen. */
.scan-review-actions.correction-review-submit {
    grid-template-columns: minmax(0, 1fr) repeat(4, auto);
}

@media (max-width: 980px) {
    .scan-review-actions.correction-review-submit {
        grid-template-columns: repeat(4, 1fr);
    }

    .scan-review-actions.correction-review-submit > div {
        grid-column: 1 / -1;
    }
}

@media (max-width: 700px) {
    .scan-review-actions.correction-review-submit {
        grid-template-columns: 1fr;
    }

    .scan-review-actions.correction-review-submit > div {
        grid-column: auto;
    }
}

/* Freigabe und Auswertungen im KOR-Bereich */
.correction-result-entry {
    margin-top: .9rem;
    padding: .75rem .9rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border: 1px solid #b8d8cf;
    background: #f1faf7;
}

.correction-result-entry strong,
.correction-result-entry span {
    display: block;
}

.correction-result-entry strong {
    color: var(--navy-deep);
    font-size: .76rem;
}

.correction-result-entry span {
    margin-top: .15rem;
    color: var(--muted);
    font-size: .64rem;
}

.correction-result-metrics,
.correction-result-student-summary {
    margin-top: 1rem;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.correction-result-student-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.correction-result-metrics article,
.correction-result-student-summary article {
    min-width: 0;
    padding: .8rem .9rem;
    border-right: 1px solid var(--line);
}

.correction-result-metrics article:last-child,
.correction-result-student-summary article:last-child {
    border-right: 0;
}

.correction-result-metrics span,
.correction-result-metrics strong,
.correction-result-metrics small,
.correction-result-student-summary span,
.correction-result-student-summary strong {
    display: block;
}

.correction-result-metrics span,
.correction-result-metrics small,
.correction-result-student-summary span {
    color: var(--muted);
    font-size: .62rem;
}

.correction-result-metrics strong,
.correction-result-student-summary strong {
    margin: .2rem 0;
    color: var(--navy-deep);
    font-size: 1.18rem;
}

.correction-result-release-panel {
    margin-top: 1rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .72fr);
    align-items: start;
    gap: 1rem;
}

.correction-result-release-panel h2 {
    margin: .15rem 0 .35rem;
    color: var(--navy-deep);
}

.correction-result-release-panel p {
    margin: 0;
    max-width: 76ch;
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.5;
}

.correction-result-release-form {
    padding: .75rem;
    border: 1px solid #cbdbea;
    background: #f5f9fd;
}

.correction-result-release-form textarea {
    width: 100%;
    resize: vertical;
}

.correction-result-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.correction-result-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .7rem;
}

.correction-result-table th,
.correction-result-table td {
    padding: .58rem .65rem;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: middle;
}

.correction-result-table th {
    color: var(--muted);
    background: #f7f9fa;
    font-size: .59rem;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.correction-result-table td > strong,
.correction-result-table td > small {
    display: block;
}

.correction-result-table td > small {
    margin-top: .12rem;
    color: var(--muted);
    font-size: .6rem;
}

.correction-error-statistic {
    padding: .7rem 0;
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr);
    gap: .8rem;
    border-bottom: 1px solid var(--line);
}

.correction-error-statistic > strong {
    align-self: start;
    padding: .34rem .45rem;
    border: 2px solid #c52222;
    color: #a20f0f;
    text-align: center;
}

.correction-error-statistic span,
.correction-error-statistic small,
.correction-error-statistic p {
    display: block;
}

.correction-error-statistic span {
    color: var(--navy-deep);
    font-size: .7rem;
    font-weight: 800;
}

.correction-error-statistic small,
.correction-error-statistic p {
    margin: .18rem 0 0;
    color: var(--muted);
    font-size: .64rem;
    line-height: 1.45;
}

.correction-result-task-list {
    margin-top: 1rem;
    display: grid;
    gap: 1rem;
}

.correction-result-task {
    min-width: 0;
    margin-top: 0;
    padding: 0;
    overflow: hidden;
}

.correction-result-task-heading {
    padding: .8rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid var(--line);
    background: #f8faf9;
}

.correction-result-task-heading span,
.correction-result-task-heading h2 {
    display: block;
}

.correction-result-task-heading span {
    color: var(--muted);
    font-size: .62rem;
}

.correction-result-task-heading h2 {
    margin: .12rem 0 0;
    color: var(--navy-deep);
    font-size: .94rem;
}

.correction-result-task-heading > strong {
    flex: 0 0 auto;
    color: var(--navy-deep);
    font-size: .82rem;
}

.correction-result-score-comment {
    margin: .7rem 1rem 0;
    padding: .55rem .65rem;
    border-left: 3px solid #7896b9;
    background: #f5f9fd;
    color: var(--ink);
    font-size: .68rem;
    line-height: 1.45;
}

.correction-result-task-layout {
    padding: 1rem;
    display: grid;
    grid-template-columns: minmax(420px, 1.12fr) minmax(310px, .88fr);
    align-items: start;
    gap: 1rem;
}

.correction-result-evidence {
    min-width: 0;
    display: grid;
    gap: .8rem;
}

.correction-result-region {
    min-width: 0;
    padding: .75rem;
    border: 1px solid var(--line);
    background: white;
}

.correction-result-region > header {
    margin-bottom: .45rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .7rem;
    color: var(--muted);
    font-size: .61rem;
}

.correction-result-region > header strong {
    color: var(--navy-deep);
    font-size: .69rem;
}

.correction-result-annotation {
    position: absolute;
    z-index: 4;
    min-width: 4px;
    min-height: 4px;
    border-bottom: 3px solid #c52222;
    background: rgba(213, 32, 32, .08);
}

.correction-result-annotation.is-excluded-variant {
    border-bottom: 0;
    background: transparent;
}

.correction-result-annotation.is-excluded-variant::after {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 3px;
    border-radius: 999px;
    background: #c52222;
    content: '';
}

.correction-result-annotation > span {
    position: absolute;
    top: 50%;
    min-width: 1.45rem;
    padding: .14rem .28rem;
    transform: translate(-100%, -50%);
    border: 2px solid #c52222;
    border-radius: 999px;
    color: #a20f0f;
    background: rgba(255, 255, 255, .96);
    font-size: .6rem;
    font-weight: 900;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
}

.correction-result-feedback {
    min-width: 0;
    padding: .8rem;
    border: 1px solid var(--line);
    background: #fbfcfc;
}

.correction-result-feedback h3 {
    margin: 0 0 .6rem;
    color: var(--navy-deep);
    font-size: .78rem;
}

.correction-result-feedback > article {
    padding: .6rem 0;
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: .55rem;
    border-top: 1px solid var(--line);
}

.correction-result-feedback > article.is-excluded-variant {
    grid-template-columns: 92px minmax(0, 1fr);
}

.correction-result-feedback > article > strong {
    align-self: start;
    padding: .22rem .28rem;
    border: 2px solid #c52222;
    color: #a20f0f;
    text-align: center;
    font-size: .65rem;
}

.correction-result-feedback p,
.correction-result-feedback dl {
    margin: 0;
    color: var(--muted);
    font-size: .65rem;
    line-height: 1.45;
}

.correction-result-feedback dl {
    grid-column: 2;
}

.correction-result-feedback dt {
    margin-top: .25rem;
    color: var(--navy-deep);
    font-weight: 800;
}

.correction-result-feedback dd {
    margin: .08rem 0 0;
}

.correction-result-feedback > p {
    margin: 0;
}

.correction-result-actions {
    position: sticky;
    z-index: 12;
    bottom: 0;
    margin-top: 1rem;
    padding: .75rem 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .6rem;
    border-top: 1px solid var(--line);
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(8px);
}

.correction-result-submission-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.correction-result-submission-card {
    padding: .8rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .35rem .8rem;
    border: 1px solid var(--line);
    background: #fbfcfc;
}

.correction-result-submission-card > div {
    grid-row: span 3;
}

.correction-result-submission-card span,
.correction-result-submission-card small {
    color: var(--muted);
    font-size: .61rem;
}

.correction-result-submission-card h3 {
    margin: .16rem 0;
    color: var(--navy-deep);
    font-size: .82rem;
}

.correction-result-submission-card > strong {
    color: var(--navy-deep);
    font-size: .78rem;
    text-align: right;
}

.correction-result-submission-card > .button {
    justify-self: end;
}

.correction-result-missing-region {
    margin: 0;
}

@media (max-width: 980px) {
    .correction-result-release-panel,
    .correction-result-task-layout {
        grid-template-columns: 1fr;
    }

    .correction-result-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .correction-result-metrics article:nth-child(2) {
        border-right: 0;
    }

    .correction-result-metrics article:nth-child(n + 3) {
        border-top: 1px solid var(--line);
    }
}

@media (max-width: 700px) {
    .correction-result-entry,
    .correction-result-task-heading,
    .correction-result-region > header {
        align-items: flex-start;
        flex-direction: column;
    }

    .correction-result-metrics,
    .correction-result-student-summary,
    .correction-result-submission-grid {
        grid-template-columns: 1fr;
    }

    .correction-result-metrics article,
    .correction-result-student-summary article {
        border-right: 0;
    }

    .correction-result-metrics article + article,
    .correction-result-student-summary article + article {
        border-top: 1px solid var(--line);
    }

    .correction-result-task-layout {
        padding: .65rem;
    }

    .correction-error-statistic,
    .correction-result-feedback > article {
        grid-template-columns: 1fr;
    }

    .correction-result-feedback dl {
        grid-column: auto;
    }

    .correction-result-actions {
        position: static;
        align-items: stretch;
        flex-direction: column;
    }
}

@media print {
    .site-header,
    .site-sidebar,
    .correction-workflow,
    .correction-result-release-panel,
    .correction-result-actions,
    .site-footer {
        display: none !important;
    }

    .has-app-shell .site-main {
        margin: 0;
        padding: 0;
    }

    .correction-result-task {
        break-inside: avoid;
    }
}
