/* /Components/Layout/BackofficeAuthGate.razor.rz.scp.css */
.page--auth-gate main[b-qvgf4s2zrt] {
    min-height: 100vh;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: clamp(1rem, 5vw, 2.8rem) var(--backoffice-padding-x) 2.5rem;
}

.page--auth-gate .content-shell[b-qvgf4s2zrt] {
    width: min(100%, 58rem);
    padding: 0;
}

.page--auth-gate .page-header-card[b-qvgf4s2zrt] {
    margin-bottom: 0.72rem;
    border-radius: 14px;
    border: 1px solid color-mix(in srgb, var(--bp-accent) 22%, var(--bp-border));
    background: linear-gradient(180deg, var(--bp-surface) 0%, color-mix(in srgb, var(--bp-surface) 75%, var(--bp-soft)) 100%);
    box-shadow: var(--bp-shadow);
}

.page--auth-gate .page-header-card > div > .page-intro[b-qvgf4s2zrt],
.page--auth-gate .section-kicker[b-qvgf4s2zrt] {
    display: block;
}

.page--auth-gate .toolbar-button[b-qvgf4s2zrt] {
    min-height: 2.2rem;
    justify-content: center;
    padding-inline: 1rem;
}

@media (max-width: 640px) {
    .page--auth-gate main[b-qvgf4s2zrt] {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }
}
/* /Components/Layout/BackofficeOperationStrip.razor.rz.scp.css */
.operation-strip[b-70edqteleg] {
    display: grid;
    grid-template-columns: minmax(11rem, 0.85fr) minmax(0, 1.45fr) minmax(10rem, 0.75fr);
    gap: 0;
    border-bottom: 1px solid var(--shell-line);
    background: color-mix(in srgb, var(--bp-surface-soft) 78%, var(--bp-accent) 5%);
}

.operation-strip-item[b-70edqteleg] {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
    padding: 0.38rem var(--backoffice-padding-x);
    border-inline-end: 1px solid var(--shell-line);
    color: var(--bp-text);
    text-decoration: none;
}

.operation-strip-item:last-child[b-70edqteleg] {
    border-inline-end: 0;
}

.operation-strip-label[b-70edqteleg] {
    color: var(--bp-muted);
    font-size: 0.58rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
}

.operation-strip-item strong[b-70edqteleg] {
    min-width: 0;
    overflow: hidden;
    color: var(--bp-ink);
    font-size: 0.76rem;
    font-weight: 850;
    line-height: 1.16;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.operation-strip-primary[b-70edqteleg] {
    background: color-mix(in srgb, var(--bp-accent) 12%, var(--bp-surface-soft));
}

.operation-strip-item:hover[b-70edqteleg],
.operation-strip-item:focus-visible[b-70edqteleg] {
    background: color-mix(in srgb, var(--bp-accent) 16%, var(--bp-surface));
    outline: none;
}

.operation-strip-item:focus-visible[b-70edqteleg] {
    box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--bp-accent) 72%, var(--bp-surface));
}

@media (max-width: 1024px) {
    .operation-strip[b-70edqteleg] {
        grid-template-columns: 1fr;
    }

    .operation-strip-item[b-70edqteleg] {
        border-inline-end: 0;
        border-bottom: 1px solid var(--shell-line);
    }

    .operation-strip-item:last-child[b-70edqteleg] {
        border-bottom: 0;
    }
}

@media (max-width: 700px) {
    .operation-strip-item[b-70edqteleg] {
        padding: 0.34rem 0.78rem;
    }
}
/* /Components/Layout/BackofficeSafetyRail.razor.rz.scp.css */
.safety-rail[b-eh3l7iuobe] {
    position: sticky;
    top: calc(var(--top-height) + 2.35rem);
    display: grid;
    gap: 0.45rem;
    max-height: calc(100vh - var(--top-height) - 2.35rem);
    overflow: auto;
    padding: 0.55rem var(--backoffice-padding-x) 0.9rem 0;
}

.safety-panel[b-eh3l7iuobe] {
    display: grid;
    gap: 0.42rem;
    min-width: 0;
    padding: 0.52rem;
    border: 1px solid var(--shell-line);
    border-radius: 6px;
    background: color-mix(in srgb, var(--bp-surface) 88%, var(--bp-accent) 3%);
}

.safety-panel-primary[b-eh3l7iuobe] {
    background: color-mix(in srgb, var(--bp-accent) 13%, var(--bp-surface));
}

.safety-kicker[b-eh3l7iuobe] {
    margin: 0;
    color: var(--bp-muted);
    font-size: 0.58rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
}

.safety-panel h2[b-eh3l7iuobe] {
    margin: 0;
    color: var(--bp-ink);
    font-size: 0.9rem;
    line-height: 1.14;
}

.safety-panel p[b-eh3l7iuobe] {
    margin: 0;
    color: var(--bp-text);
    font-size: 0.74rem;
    line-height: 1.32;
}

.safety-list[b-eh3l7iuobe] {
    display: grid;
    gap: 0.28rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.safety-list li[b-eh3l7iuobe] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 0.32rem;
    min-width: 0;
    color: var(--bp-text);
    font-size: 0.74rem;
    font-weight: 760;
    line-height: 1.2;
}

.safety-dot[b-eh3l7iuobe] {
    width: 0.48rem;
    height: 0.48rem;
    border-radius: 999px;
    background: var(--bp-accent);
    box-shadow: 0 0 0 0.16rem color-mix(in srgb, var(--bp-accent) 18%, transparent);
}

.safety-dot-danger[b-eh3l7iuobe] {
    background: var(--bp-danger);
    box-shadow: 0 0 0 0.16rem color-mix(in srgb, var(--bp-danger) 14%, transparent);
}

.safety-action[b-eh3l7iuobe],
.safety-link[b-eh3l7iuobe] {
    display: inline-flex;
    align-items: center;
    min-height: 1.72rem;
    padding: 0.24rem 0.42rem;
    border: 1px solid var(--shell-line);
    border-radius: 6px;
    background: var(--bp-surface);
    color: var(--bp-ink);
    font-size: 0.74rem;
    font-weight: 850;
    line-height: 1.12;
    text-decoration: none;
}

.safety-action[b-eh3l7iuobe] {
    border-color: color-mix(in srgb, var(--bp-accent) 70%, var(--bp-border));
    background: color-mix(in srgb, var(--bp-accent) 78%, var(--bp-surface));
}

.safety-action:hover[b-eh3l7iuobe],
.safety-action:focus-visible[b-eh3l7iuobe],
.safety-link:hover[b-eh3l7iuobe],
.safety-link:focus-visible[b-eh3l7iuobe] {
    border-color: var(--bp-accent-strong);
    background: color-mix(in srgb, var(--bp-accent) 12%, var(--bp-surface));
    color: var(--bp-ink);
    outline: none;
}

@media (max-width: 1500px) {
    .safety-rail[b-eh3l7iuobe] {
        position: static;
        order: -1;
        grid-template-columns: minmax(13rem, 0.9fr) minmax(13rem, 1fr) minmax(11rem, 0.8fr);
        max-height: none;
        padding: 0.55rem var(--backoffice-padding-x) 0;
    }
}

@media (max-width: 1024px) {
    .safety-rail[b-eh3l7iuobe] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        padding: 0.58rem 0.7rem 0;
    }
}

@media (max-width: 700px) {
    .safety-rail[b-eh3l7iuobe] {
        grid-template-columns: 1fr;
    }

    .safety-panel:not(.safety-panel-primary)[b-eh3l7iuobe] {
        display: none;
    }
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-5lrogcpjt3] {
    display: flex;
    min-height: 100vh;
    color: var(--bp-ink);
    background: var(--bp-soft);
    font-variant-numeric: tabular-nums;
}

.page--backoffice[b-5lrogcpjt3] {
    --backoffice-padding-x: clamp(0.48rem, 1.3vw, 0.82rem);
    --top-height: 3.1rem;
    --shell-line: color-mix(in srgb, var(--bp-accent) 16%, var(--bp-border));
    background:
        linear-gradient(90deg, color-mix(in srgb, var(--bp-surface-soft) 86%, var(--bp-accent) 6%) 0, var(--bp-soft) 36rem),
        var(--bp-soft);
}

.page--auth-gate[b-5lrogcpjt3] {
    --backoffice-padding-x: clamp(1rem, 3vw, 1.5rem);
    background:
        radial-gradient(circle at 15% -10%, rgba(99, 199, 202, 0.12), transparent 38%),
        radial-gradient(circle at 85% 0%, rgba(230, 0, 18, 0.09), transparent 34%),
        var(--bp-soft);
}

.sidebar[b-5lrogcpjt3] {
    flex: 0 0 15.15rem;
    min-width: 12.8rem;
    background: var(--bp-surface);
    border-right: 1px solid var(--bp-border);
    display: flex;
    flex-direction: column;
}

main[b-5lrogcpjt3] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.top-row[b-5lrogcpjt3] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.58rem;
    width: 100%;
    min-height: var(--top-height);
    padding: 0.46rem var(--backoffice-padding-x);
    border-bottom: 1px solid var(--shell-line);
    background: color-mix(in srgb, var(--bp-surface) 94%, var(--bp-accent) 6%);
}

.top-context[b-5lrogcpjt3] {
    min-width: 0;
    display: grid;
    gap: 0.22rem;
    color: var(--bp-text);
}

.eyebrow[b-5lrogcpjt3] {
    margin: 0;
    color: var(--bp-accent-strong);
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.topline[b-5lrogcpjt3] {
    display: flex;
    align-items: baseline;
    gap: 0.45rem;
    margin: 0;
    min-width: 0;
}

.topline span[b-5lrogcpjt3] {
    min-width: 0;
    font-size: 0.98rem;
    font-weight: 900;
    line-height: 1.2;
    color: var(--bp-ink);
}

.topline small[b-5lrogcpjt3] {
    display: none;
}

.topline[b-5lrogcpjt3]  .planning-schoolyear-select {
    min-height: 1.75rem;
    max-width: 10.4rem;
    padding: 0 1.45rem 0 0.44rem;
    border: 1px solid var(--bp-border-strong);
    border-radius: 6px;
    font-size: 0.74rem;
    background: var(--bp-surface);
}

.top-actions[b-5lrogcpjt3] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.32rem;
    min-width: 0;
}

.status-pill[b-5lrogcpjt3],
.top-action[b-5lrogcpjt3],
.top-action-link[b-5lrogcpjt3] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    min-height: 1.78rem;
    padding: 0.24rem 0.48rem;
    border-radius: 6px;
    border: 1px solid var(--bp-border);
    background: var(--bp-surface);
    color: var(--bp-text);
    font-size: 0.72rem;
    font-weight: 800;
    text-decoration: none;
}

.status-pill[b-5lrogcpjt3] {
    color: #2d4656;
    border-color: color-mix(in srgb, var(--bp-accent) 20%, var(--bp-border));
    background: color-mix(in srgb, var(--bp-accent) 8%, var(--bp-surface));
}

.status-pill-warning[b-5lrogcpjt3] {
    border-color: color-mix(in srgb, var(--bp-danger) 28%, var(--bp-border));
    color: var(--bp-danger-strong);
    background: color-mix(in srgb, var(--bp-danger) 8%, var(--bp-surface));
}

.status-pill-ok[b-5lrogcpjt3] {
    border-color: color-mix(in srgb, var(--bp-accent) 30%, var(--bp-border));
}

.status-dot[b-5lrogcpjt3] {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: var(--bp-accent);
    box-shadow: 0 0 0 0.19rem color-mix(in srgb, var(--bp-accent) 24%, transparent);
}

.status-pill-warning .status-dot[b-5lrogcpjt3] {
    background: var(--bp-danger);
    box-shadow: 0 0 0 0.19rem color-mix(in srgb, var(--bp-danger) 18%, transparent);
}

.top-action:hover[b-5lrogcpjt3],
.top-action:focus-visible[b-5lrogcpjt3],
.top-action-link:hover[b-5lrogcpjt3],
.top-action-link:focus-visible[b-5lrogcpjt3] {
    color: var(--bp-ink);
    border-color: color-mix(in srgb, var(--bp-accent) 45%, var(--bp-border));
    background: color-mix(in srgb, var(--bp-accent) 12%, var(--bp-surface));
    text-decoration: none;
}

.top-action-primary[b-5lrogcpjt3] {
    border-color: color-mix(in srgb, var(--bp-accent) 70%, var(--bp-border));
    background: color-mix(in srgb, var(--bp-accent) 86%, var(--bp-surface));
    color: var(--bp-ink);
}

.top-action[b-5lrogcpjt3]  .backoffice-icon,
.top-action-link[b-5lrogcpjt3]  .backoffice-icon {
    width: 0.95rem;
    height: 0.95rem;
}

.database-switch[b-5lrogcpjt3] {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 1.9rem;
    cursor: pointer;
    user-select: none;
}

.database-switch input[b-5lrogcpjt3] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.database-switch-track[b-5lrogcpjt3] {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    min-width: 5rem;
    min-height: 1.55rem;
    padding: 0.13rem;
    border: 1px solid var(--bp-border);
    border-radius: 6px;
    background: var(--bp-surface);
    color: var(--bp-text);
    font-size: 0.68rem;
    font-weight: 800;
    line-height: 1;
    text-align: center;
}

.database-switch-track[b-5lrogcpjt3]::before {
    content: "";
    position: absolute;
    inset: 0.13rem auto 0.13rem 0.13rem;
    width: calc(50% - 0.13rem);
    border-radius: 999px;
    background: var(--bp-accent);
    transition: transform 160ms ease;
}

.database-switch-track span[b-5lrogcpjt3] {
    position: relative;
    z-index: 1;
}

.database-switch input:checked + .database-switch-track[b-5lrogcpjt3]::before {
    transform: translateX(100%);
    background: #ffd166;
}

.database-switch:focus-within .database-switch-track[b-5lrogcpjt3] {
    outline: 2px solid color-mix(in srgb, var(--bp-accent) 26%, transparent);
    outline-offset: 2px;
}

.database-reset-button[b-5lrogcpjt3] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 4.2rem;
    min-height: 1.85rem;
    padding: 0.28rem 0.5rem;
    border: 1px solid color-mix(in srgb, var(--bp-danger) 30%, transparent);
    border-radius: 6px;
    background: color-mix(in srgb, var(--bp-danger) 12%, var(--bp-surface));
    color: var(--bp-danger-strong);
    font: inherit;
    font-size: 0.7rem;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
}

.database-reset-button:hover[b-5lrogcpjt3],
.database-reset-button:focus-visible[b-5lrogcpjt3] {
    background: color-mix(in srgb, var(--bp-danger) 24%, var(--bp-surface));
    border-color: color-mix(in srgb, var(--bp-danger) 55%, transparent);
    outline: none;
}

.database-reset-button:disabled[b-5lrogcpjt3] {
    cursor: wait;
    opacity: 0.72;
}

.database-reset-error[b-5lrogcpjt3] {
    display: inline-flex;
    align-items: center;
    min-height: 1.9rem;
    padding: 0.25rem 0.45rem;
    border: 1px solid color-mix(in srgb, var(--bp-danger) 20%, transparent);
    border-radius: 6px;
    background: color-mix(in srgb, var(--bp-danger) 9%, var(--bp-surface));
    color: var(--bp-danger-strong);
    font-size: 0.7rem;
    font-weight: 800;
}

.view-as-control[b-5lrogcpjt3] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 1.9rem;
    max-width: 18rem;
    padding: 0.16rem 0.4rem;
    border: 1px solid var(--bp-border);
    border-radius: 6px;
    background: var(--bp-surface);
    color: var(--bp-text);
    font-size: 0.72rem;
    font-weight: 800;
}

.view-as-control span[b-5lrogcpjt3],
.view-as-control select[b-5lrogcpjt3] {
    min-width: 0;
}

.view-as-control select[b-5lrogcpjt3] {
    min-width: 7.9rem;
    max-width: 11.4rem;
    min-height: 1.35rem;
    padding: 0.05rem 1.35rem 0.05rem 0.3rem;
    border: 1px solid var(--bp-border);
    border-radius: 999px;
    background: var(--bp-surface-soft);
    color: #101726;
    font: inherit;
    font-size: 0.68rem;
}

.view-as-control:focus-within[b-5lrogcpjt3],
.view-as-control:hover[b-5lrogcpjt3] {
    border-color: color-mix(in srgb, var(--bp-accent) 35%, var(--bp-border));
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--bp-accent) 18%, transparent);
}

.top-user-name[b-5lrogcpjt3] {
    max-width: 12rem;
}

.top-user-name span[b-5lrogcpjt3] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.top-action-link[b-5lrogcpjt3] {
    appearance: none;
    cursor: pointer;
    font: inherit;
}

.content-shell[b-5lrogcpjt3] {
    width: 100%;
    min-height: 0;
    margin: 0 auto;
    padding: 0.55rem var(--backoffice-padding-x) 0.9rem;
}

.workspace-frame[b-5lrogcpjt3] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(14.5rem, 18rem);
    align-items: start;
    gap: 0;
    min-width: 0;
    min-height: 0;
    overflow-x: clip;
}

.workspace-frame-wide[b-5lrogcpjt3] {
    grid-template-columns: minmax(0, 1fr);
}

.workspace-frame .content-shell[b-5lrogcpjt3] {
    min-width: 0;
    overflow-x: auto;
}

.safety-rail[b-5lrogcpjt3] {
    position: sticky;
    top: calc(var(--top-height) + 2.35rem);
    display: grid;
    gap: 0.45rem;
    max-height: calc(100vh - var(--top-height) - 2.35rem);
    overflow: auto;
    padding: 0.55rem var(--backoffice-padding-x) 0.9rem 0;
}

.safety-panel[b-5lrogcpjt3] {
    display: grid;
    gap: 0.42rem;
    min-width: 0;
    padding: 0.52rem;
    border: 1px solid var(--shell-line);
    border-radius: 6px;
    background: color-mix(in srgb, var(--bp-surface) 88%, var(--bp-accent) 3%);
}

.safety-panel-primary[b-5lrogcpjt3] {
    background: color-mix(in srgb, var(--bp-accent) 13%, var(--bp-surface));
}

.safety-kicker[b-5lrogcpjt3] {
    margin: 0;
    color: var(--bp-muted);
    font-size: 0.58rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
}

.safety-panel h2[b-5lrogcpjt3] {
    margin: 0;
    color: var(--bp-ink);
    font-size: 0.9rem;
    line-height: 1.14;
}

.safety-panel p[b-5lrogcpjt3] {
    margin: 0;
    color: var(--bp-text);
    font-size: 0.74rem;
    line-height: 1.32;
}

.safety-list[b-5lrogcpjt3] {
    display: grid;
    gap: 0.28rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.safety-list li[b-5lrogcpjt3] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 0.32rem;
    min-width: 0;
    color: var(--bp-text);
    font-size: 0.74rem;
    font-weight: 760;
    line-height: 1.2;
}

.safety-dot[b-5lrogcpjt3] {
    width: 0.48rem;
    height: 0.48rem;
    border-radius: 999px;
    background: var(--bp-accent);
    box-shadow: 0 0 0 0.16rem color-mix(in srgb, var(--bp-accent) 18%, transparent);
}

.safety-dot-danger[b-5lrogcpjt3] {
    background: var(--bp-danger);
    box-shadow: 0 0 0 0.16rem color-mix(in srgb, var(--bp-danger) 14%, transparent);
}

.safety-action[b-5lrogcpjt3],
.safety-link[b-5lrogcpjt3] {
    display: inline-flex;
    align-items: center;
    min-height: 1.72rem;
    padding: 0.24rem 0.42rem;
    border: 1px solid var(--shell-line);
    border-radius: 6px;
    background: var(--bp-surface);
    color: var(--bp-ink);
    font-size: 0.74rem;
    font-weight: 850;
    line-height: 1.12;
    text-decoration: none;
}

.safety-action[b-5lrogcpjt3] {
    border-color: color-mix(in srgb, var(--bp-accent) 70%, var(--bp-border));
    background: color-mix(in srgb, var(--bp-accent) 78%, var(--bp-surface));
}

.safety-action:hover[b-5lrogcpjt3],
.safety-action:focus-visible[b-5lrogcpjt3],
.safety-link:hover[b-5lrogcpjt3],
.safety-link:focus-visible[b-5lrogcpjt3] {
    border-color: var(--bp-accent-strong);
    background: color-mix(in srgb, var(--bp-accent) 12%, var(--bp-surface));
    color: var(--bp-ink);
    outline: none;
}

.skip-link[b-5lrogcpjt3] {
    position: fixed;
    z-index: 1000;
    top: 0.5rem;
    left: 0.5rem;
    transform: translateY(-200%);
    padding: 0.45rem 0.62rem;
    border: 1px solid var(--bp-accent-strong);
    border-radius: 6px;
    background: var(--bp-surface);
    color: var(--bp-ink);
    font-size: 0.78rem;
    font-weight: 900;
    text-decoration: none;
    transition: transform 160ms ease;
}

.skip-link:focus-visible[b-5lrogcpjt3] {
    transform: translateY(0);
    outline: 2px solid var(--bp-accent);
    outline-offset: 2px;
}

.operation-strip[b-5lrogcpjt3] {
    display: grid;
    grid-template-columns: minmax(11rem, 0.85fr) minmax(0, 1.45fr) minmax(10rem, 0.75fr);
    gap: 0;
    border-bottom: 1px solid var(--shell-line);
    background: color-mix(in srgb, var(--bp-surface-soft) 78%, var(--bp-accent) 5%);
}

.operation-strip-item[b-5lrogcpjt3] {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
    padding: 0.38rem var(--backoffice-padding-x);
    border-inline-end: 1px solid var(--shell-line);
    color: var(--bp-text);
    text-decoration: none;
}

.operation-strip-item:last-child[b-5lrogcpjt3] {
    border-inline-end: 0;
}

.operation-strip-label[b-5lrogcpjt3] {
    color: var(--bp-muted);
    font-size: 0.58rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
}

.operation-strip-item strong[b-5lrogcpjt3] {
    min-width: 0;
    overflow: hidden;
    color: var(--bp-ink);
    font-size: 0.76rem;
    font-weight: 850;
    line-height: 1.16;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.operation-strip-primary[b-5lrogcpjt3] {
    background: color-mix(in srgb, var(--bp-accent) 12%, var(--bp-surface-soft));
}

.operation-strip-item:hover[b-5lrogcpjt3],
.operation-strip-item:focus-visible[b-5lrogcpjt3] {
    background: color-mix(in srgb, var(--bp-accent) 16%, var(--bp-surface));
    outline: none;
}

.operation-strip-item:focus-visible[b-5lrogcpjt3] {
    box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--bp-accent) 72%, var(--bp-surface));
}

.page--auth-gate main[b-5lrogcpjt3] {
    min-height: 100vh;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: clamp(1rem, 5vw, 2.8rem) var(--backoffice-padding-x) 2.5rem;
}

.page--auth-gate .content-shell[b-5lrogcpjt3] {
    width: min(100%, 58rem);
    padding: 0;
}

.page--auth-gate .page-header-card[b-5lrogcpjt3],
.page--auth-gate .formula-bar-panel[b-5lrogcpjt3] {
    border-radius: 14px;
    border: 1px solid color-mix(in srgb, var(--bp-accent) 22%, var(--bp-border));
    background: linear-gradient(180deg, #ffffff 0%, color-mix(in srgb, #ffffff 75%, var(--bp-soft)) 100%);
    box-shadow: var(--bp-shadow);
}

.page--auth-gate .page-header-card[b-5lrogcpjt3] {
    margin-bottom: 0.72rem;
}

.page--auth-gate .page-header-card > div > .page-intro[b-5lrogcpjt3],
.page--auth-gate .section-kicker[b-5lrogcpjt3] {
    display: block;
}

.page--auth-gate .formula-bar-panel[b-5lrogcpjt3] {
    padding: 1rem;
}

.page--auth-gate .formula-bar-main[b-5lrogcpjt3] {
    align-items: stretch;
}

.page--auth-gate .toolbar-button[b-5lrogcpjt3] {
    min-height: 2.2rem;
    justify-content: center;
    padding-inline: 1rem;
}

#blazor-error-ui[b-5lrogcpjt3] {
    background: #fef2f2;
    border-top: 1px solid color-mix(in srgb, var(--bp-danger) 30%, transparent);
    bottom: 0;
    box-shadow: 0 -10px 28px rgba(15, 23, 42, 0.12);
    color: var(--bp-danger-strong);
    display: none;
    left: 0;
    padding: 0.8rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

#blazor-error-ui .dismiss[b-5lrogcpjt3] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}

@media (min-width: 1025px) {
    .sidebar[b-5lrogcpjt3] {
        width: 16.2rem;
        min-height: 100vh;
        position: sticky;
        top: 0;
        align-self: flex-start;
    }

    .top-row[b-5lrogcpjt3] {
        position: sticky;
        top: 0;
        z-index: 20;
        backdrop-filter: blur(10px);
    }

    .top-action:not(.top-user-name):not(.top-action-primary) span[b-5lrogcpjt3] {
        display: inline;
    }

    .top-action-teacher[b-5lrogcpjt3] {
        display: none;
    }
}

@media (max-width: 1500px) {
    .workspace-frame[b-5lrogcpjt3] {
        grid-template-columns: 1fr;
    }

    .safety-rail[b-5lrogcpjt3] {
        position: static;
        order: -1;
        grid-template-columns: minmax(13rem, 0.9fr) minmax(13rem, 1fr) minmax(11rem, 0.8fr);
        max-height: none;
        padding: 0.55rem var(--backoffice-padding-x) 0;
    }
}

@media (max-width: 1024px) {
    .page[b-5lrogcpjt3] {
        flex-direction: column;
    }

    .sidebar[b-5lrogcpjt3] {
        flex: 0 0 auto;
        position: static;
        width: 100%;
        min-width: 0;
        min-height: auto;
    }

    .top-row[b-5lrogcpjt3] {
        flex-wrap: wrap;
        padding-top: 0.86rem;
        padding-bottom: 0.86rem;
    }

    .top-actions[b-5lrogcpjt3] {
        justify-content: flex-start;
        width: 100%;
    }

    .safety-rail[b-5lrogcpjt3] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        padding: 0.58rem 0.7rem 0;
    }

    .operation-strip[b-5lrogcpjt3] {
        grid-template-columns: 1fr;
    }

    .operation-strip-item[b-5lrogcpjt3] {
        border-inline-end: 0;
        border-bottom: 1px solid var(--shell-line);
    }

    .operation-strip-item:last-child[b-5lrogcpjt3] {
        border-bottom: 0;
    }
}

@media (max-width: 700px) {
    .topline[b-5lrogcpjt3] {
        display: grid;
        gap: 0.24rem;
    }

    .topline small[b-5lrogcpjt3] {
        display: block;
        overflow-wrap: anywhere;
        color: var(--bp-muted);
    }

    .topline[b-5lrogcpjt3]  .planning-schoolyear-select {
        max-width: none;
    }

    .top-action[b-5lrogcpjt3],
    .top-action-link[b-5lrogcpjt3],
    .status-pill[b-5lrogcpjt3],
    .view-as-control[b-5lrogcpjt3],
    .database-switch[b-5lrogcpjt3] {
        flex: 1 1 auto;
        justify-content: center;
    }

    .top-action[b-5lrogcpjt3],
    .top-action-link[b-5lrogcpjt3],
    .status-pill[b-5lrogcpjt3] {
        min-height: 1.9rem;
    }

    .content-shell[b-5lrogcpjt3] {
        padding: 0.78rem 0.8rem;
    }

    .top-action-admin[b-5lrogcpjt3],
    .top-action-teacher[b-5lrogcpjt3],
    .top-user-name[b-5lrogcpjt3],
    .view-as-control[b-5lrogcpjt3] {
        display: none;
    }

    .operation-strip-item[b-5lrogcpjt3] {
        padding: 0.34rem 0.78rem;
    }

    .safety-rail[b-5lrogcpjt3] {
        grid-template-columns: 1fr;
    }

    .safety-panel:not(.safety-panel-primary)[b-5lrogcpjt3] {
        display: none;
    }
}

@media (max-width: 640px) {
    .page--auth-gate main[b-5lrogcpjt3] {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    .page--auth-gate .formula-bar-main[b-5lrogcpjt3] {
        flex-direction: column;
        align-items: stretch;
    }
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.nav-shell[b-2u0pcperlr] {
    height: 100%;
    display: flex;
    flex-direction: column;
    color: color-mix(in srgb, var(--bp-surface) 92%, var(--bp-accent) 4%);
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--bp-ink) 92%, var(--bp-accent) 8%) 0%, var(--bp-ink) 100%);
    border-right: 1px solid color-mix(in srgb, var(--bp-accent) 24%, var(--bp-ink));
}

.nav-header[b-2u0pcperlr] {
    padding: 0.62rem 0.64rem 0.58rem;
    border-bottom: 1px solid color-mix(in srgb, var(--bp-accent) 18%, var(--bp-ink));
    background: color-mix(in srgb, var(--bp-ink) 88%, var(--bp-accent) 12%);
}

.nav-brand[b-2u0pcperlr] {
    display: inline-flex;
    align-items: center;
    gap: 0.46rem;
    color: color-mix(in srgb, var(--bp-surface) 94%, var(--bp-accent) 6%);
    text-decoration: none;
}

.nav-brand-mark[b-2u0pcperlr] {
    display: inline-grid;
    place-items: center;
    width: 1.52rem;
    height: 1.52rem;
    border-radius: 6px;
    background: var(--bp-accent);
    color: var(--bp-ink);
    box-shadow:
        0 0.04rem 0 color-mix(in srgb, var(--bp-ink) 16%, transparent),
        inset 0 0 0 1px color-mix(in srgb, var(--bp-accent-strong) 48%, transparent);
    font-weight: 900;
    font-size: 0.87rem;
}

.nav-brand-copy[b-2u0pcperlr] {
    display: grid;
    gap: 0.04rem;
}

.nav-brand-copy strong[b-2u0pcperlr] {
    font-size: 0.92rem;
    line-height: 1.15;
}

.nav-brand-copy span[b-2u0pcperlr] {
    color: color-mix(in srgb, var(--bp-surface) 62%, var(--bp-accent) 20%);
    font-size: 0.64rem;
    font-weight: 600;
}

.nav-brand-role[b-2u0pcperlr] {
    display: none;
}

.nav-mobile-toggle[b-2u0pcperlr] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.nav-mobile-handle[b-2u0pcperlr] {
    position: absolute;
    top: 0.84rem;
    right: 0.75rem;
    display: none;
    width: 2.2rem;
    height: 2rem;
    border: 1px solid var(--bp-border);
    border-radius: 6px;
    background: var(--bp-surface);
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.nav-mobile-handle-icon[b-2u0pcperlr] {
    position: relative;
    width: 1.08rem;
    height: 0.92rem;
    background: var(--bp-ink);
    border-radius: 999px;
    box-shadow:
        0 0.36rem 0 var(--bp-ink),
        0 -0.36rem 0 var(--bp-ink);
    transition: background-color 140ms ease, box-shadow 140ms ease;
}

.nav-mobile-handle-icon[b-2u0pcperlr]::before,
.nav-mobile-handle-icon[b-2u0pcperlr]::after {
    content: "";
    width: 100%;
    height: 1.8px;
    position: absolute;
    left: 0;
    top: 50%;
    border-radius: 999px;
    background: var(--bp-ink);
    transition: transform 140ms ease, opacity 140ms ease;
    opacity: 0;
}

.nav-mobile-handle-icon[b-2u0pcperlr]::before {
    transform: translateY(-50%);
}

.nav-mobile-toggle:checked + .nav-mobile-handle .nav-mobile-handle-icon[b-2u0pcperlr]::before {
    opacity: 1;
    transform: translateY(-50%) rotate(45deg);
}

.nav-mobile-toggle:checked + .nav-mobile-handle .nav-mobile-handle-icon[b-2u0pcperlr]::after {
    opacity: 1;
    transform: translateY(-50%) rotate(-45deg);
}

.nav-mobile-toggle:checked + .nav-mobile-handle .nav-mobile-handle-icon[b-2u0pcperlr] {
    background-color: transparent;
    box-shadow: none;
}

.nav-scrollable[b-2u0pcperlr] {
    display: none;
    flex: 1;
    overflow-y: auto;
    padding: 0.48rem 0.46rem 0.6rem;
    scrollbar-width: thin;
    scrollbar-color: var(--bp-muted) transparent;
}

.nav-main[b-2u0pcperlr] {
    display: grid;
    gap: 0.5rem;
}

.nav-section[b-2u0pcperlr] {
    display: grid;
    gap: 0.12rem;
}

.nav-main[b-2u0pcperlr]  .nav-section-title {
    margin: 0 0 0.1rem;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 0.34rem;
    color: color-mix(in srgb, var(--bp-accent) 70%, var(--bp-surface) 18%);
    font-size: 0.56rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 800;
}

.nav-main[b-2u0pcperlr]  .nav-section-title .nav-section-icon {
    display: inline-grid;
    place-items: center;
    width: 0.9rem;
    height: 0.9rem;
    color: var(--bp-accent);
}

.nav-main[b-2u0pcperlr]  .nav-item {
    border-radius: 6px;
}

.nav-main[b-2u0pcperlr]  .nav-item .nav-link,
.nav-main[b-2u0pcperlr]  .nav-item button.view-foldout-toggle,
.view-foldout-toggle[b-2u0pcperlr] {
    appearance: none;
    border: 1px solid transparent;
    border-radius: 6px;
    min-height: 1.8rem;
    width: 100%;
    display: inline-flex;
    align-items: center;
    gap: 0.46rem;
    padding: 0.22rem 0.4rem;
    color: color-mix(in srgb, var(--bp-surface) 74%, var(--bp-accent) 12%);
    text-decoration: none;
    background: transparent;
    font: inherit;
    text-align: left;
    line-height: 1.1;
    transition:
        border-color 160ms ease,
        background-color 160ms ease,
        color 160ms ease,
        transform 160ms ease,
        box-shadow 160ms ease;
}

.nav-main[b-2u0pcperlr]  .nav-item .nav-link strong,
.nav-main[b-2u0pcperlr]  .nav-item .nav-link small,
.nav-main[b-2u0pcperlr]  .nav-item button.view-foldout-toggle strong,
.nav-main[b-2u0pcperlr]  .nav-item button.view-foldout-toggle small,
.view-foldout-toggle strong[b-2u0pcperlr],
.view-foldout-toggle small[b-2u0pcperlr] {
    display: block;
}

.nav-main[b-2u0pcperlr]  .nav-symbol,
.nav-symbol[b-2u0pcperlr] {
    display: inline-grid;
    place-items: center;
    width: 1.18rem;
    height: 1.18rem;
    border-radius: 5px;
    background: color-mix(in srgb, var(--bp-surface) 8%, transparent);
    color: color-mix(in srgb, var(--bp-accent) 86%, var(--bp-surface) 8%);
    transition: background-color 140ms ease, color 140ms ease;
}

.nav-main[b-2u0pcperlr]  .nav-item .nav-link strong,
.view-foldout-toggle strong[b-2u0pcperlr] {
    color: color-mix(in srgb, var(--bp-surface) 94%, var(--bp-accent) 4%);
    font-size: 0.76rem;
    line-height: 1.12;
}

.nav-main[b-2u0pcperlr]  .nav-item .nav-link small,
.view-foldout-toggle small[b-2u0pcperlr] {
    color: color-mix(in srgb, var(--bp-surface) 52%, var(--bp-accent) 10%);
    font-size: 0.62rem;
}

.nav-main[b-2u0pcperlr]  .nav-item strong,
.nav-main[b-2u0pcperlr]  .nav-item small {
    color: inherit;
}

.nav-main[b-2u0pcperlr]  .nav-item .nav-link:hover,
.view-foldout-toggle:hover[b-2u0pcperlr] {
    border-color: color-mix(in srgb, var(--bp-accent) 36%, var(--bp-ink));
    background: color-mix(in srgb, var(--bp-surface) 9%, var(--bp-accent) 4%);
    transform: translateY(-1px);
}

.nav-main[b-2u0pcperlr]  .nav-item .nav-link:focus-visible,
.view-foldout-toggle:focus-visible[b-2u0pcperlr] {
    outline: none;
    border-color: color-mix(in srgb, var(--bp-accent) 80%, var(--bp-surface));
    box-shadow: 0 0 0 0.12rem color-mix(in srgb, var(--bp-accent) 34%, transparent);
}

.nav-main[b-2u0pcperlr]  .nav-item .nav-link.active,
.view-foldout-toggle.active[b-2u0pcperlr] {
    border-color: color-mix(in srgb, var(--bp-accent) 64%, var(--bp-ink));
    background: color-mix(in srgb, var(--bp-accent) 18%, var(--bp-ink));
    color: color-mix(in srgb, var(--bp-surface) 94%, var(--bp-accent) 4%);
}

.nav-main[b-2u0pcperlr]  .nav-item .nav-link.active .nav-symbol,
.view-foldout-toggle.active .nav-symbol[b-2u0pcperlr] {
    background: var(--bp-accent);
    color: var(--bp-ink);
}

.nav-main[b-2u0pcperlr]  .nav-item .nav-link.active strong,
.nav-main[b-2u0pcperlr]  .nav-item .nav-link.active small,
.view-foldout-toggle.active strong[b-2u0pcperlr],
.view-foldout-toggle.active small[b-2u0pcperlr] {
    color: var(--bp-ink);
}

.nav-main[b-2u0pcperlr]  .nav-item .nav-link.active strong,
.nav-main[b-2u0pcperlr]  .nav-item .nav-link.active small,
.view-foldout-toggle.active strong[b-2u0pcperlr],
.view-foldout-toggle.active small[b-2u0pcperlr] {
    color: color-mix(in srgb, var(--bp-surface) 96%, var(--bp-accent) 4%);
}

.nav-shell .view-foldout-toggle[b-2u0pcperlr] {
    appearance: none;
    border: 1px solid transparent;
    border-radius: 6px;
    min-height: 1.8rem;
    width: 100%;
    display: inline-flex;
    align-items: center;
    gap: 0.52rem;
    padding: 0.24rem 0.46rem;
    background: transparent;
    color: color-mix(in srgb, var(--bp-surface) 74%, var(--bp-accent) 12%);
    text-align: left;
    font: inherit;
    line-height: 1.1;
    text-decoration: none;
}

.nav-foldout[b-2u0pcperlr] {
    display: grid;
    gap: 0.08rem;
}

.nav-foldout-chevron[b-2u0pcperlr] {
    margin-left: auto;
    width: 0.9rem;
    height: 0.9rem;
    color: color-mix(in srgb, var(--bp-surface) 46%, var(--bp-accent) 18%);
    transition: transform 160ms ease;
    flex: 0 0 auto;
}

.nav-foldout-chevron.is-open[b-2u0pcperlr] {
    transform: rotate(180deg);
}

.nav-submenu[b-2u0pcperlr] {
    display: grid;
    gap: 0.06rem;
    margin: 0.08rem 0 0 0.76rem;
    padding: 0.1rem 0.1rem 0.1rem 0.1rem;
    border-inline-start: 1px solid color-mix(in srgb, var(--bp-accent) 24%, var(--bp-ink));
}

.nav-submenu[b-2u0pcperlr]  .nav-item {
    border-radius: 7px;
}

.flow-kicker[b-2u0pcperlr] {
    margin-top: 0.62rem;
    padding: 0.48rem 0.5rem;
    border: 1px solid color-mix(in srgb, var(--bp-accent) 24%, var(--bp-ink));
    border-radius: 6px;
    background: color-mix(in srgb, var(--bp-surface) 8%, var(--bp-accent) 4%);
}

.flow-kicker-label[b-2u0pcperlr] {
    margin: 0;
    color: color-mix(in srgb, var(--bp-accent) 78%, var(--bp-surface));
    font-size: 0.56rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.flow-kicker-title[b-2u0pcperlr] {
    margin: 0.2rem 0 0;
    color: color-mix(in srgb, var(--bp-surface) 92%, var(--bp-accent) 8%);
    font-size: 0.8rem;
    font-weight: 900;
}

.flow-kicker-copy[b-2u0pcperlr] {
    margin: 0.18rem 0 0;
    color: color-mix(in srgb, var(--bp-surface) 54%, var(--bp-accent) 10%);
    font-size: 0.68rem;
}

@media (min-width: 641px) {
    .nav-mobile-toggle[b-2u0pcperlr],
    .nav-mobile-handle[b-2u0pcperlr] {
        display: none;
    }

    .nav-scrollable[b-2u0pcperlr] {
        display: block;
        overflow-x: hidden;
    }
}

@media (max-width: 1024px) {
    .nav-mobile-handle[b-2u0pcperlr] {
        display: inline-flex;
    }

    .nav-scrollable[b-2u0pcperlr] {
        display: none;
        max-height: calc(100dvh - 4.95rem);
    }

    .nav-mobile-toggle:checked ~ .nav-scrollable[b-2u0pcperlr] {
        display: block;
    }
}

@media (max-width: 700px) {
    .nav-main[b-2u0pcperlr]  .nav-item .nav-link strong,
    .view-foldout-toggle strong[b-2u0pcperlr] {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
}
