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

.section-gap {
    margin-top: 1.25rem;
}

.secondary-action {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
}

.search-panel {
    display: flex;
    align-items: end;
    gap: 1rem;
    padding: 1rem;
    box-shadow: none;
}

.search-panel__field {
    flex: 1;
}

.search-panel__field label {
    display: block;
    margin-bottom: .25rem;
    font-weight: 700;
}

.search-summary {
    margin: 1rem 0 0;
    color: var(--muted);
}

select {
    width: 100%;
    min-height: 2.85rem;
    padding: .65rem .75rem;
    border: 1px solid #aeb8c2;
    border-radius: 7px;
    background: #fff;
    color: var(--ink);
    font: inherit;
}

select:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 3px;
}

.auth-shell--wide {
    width: min(48rem, 100%);
}

.search-panel--users {
    flex-wrap: wrap;
}

.search-panel--users .search-panel__field {
    flex: 1 1 12rem;
}

.breadcrumb {
    margin-bottom: .75rem;
}

.section-heading {
    margin-top: 0;
}

.credential-panel {
    border: 2px solid var(--brand);
}

.temporary-secret {
    overflow-wrap: anywhere;
    font-family: ui-monospace, "Cascadia Mono", monospace;
    font-size: 1.15rem;
}

.badge--disabled {
    background: #f1e5e3;
    color: #7a1b15;
}

@media (max-width: 620px) {
    .search-panel {
        display: block;
    }

    .search-panel .button-row {
        margin-top: .75rem;
    }

    .search-panel--users .button-row,
    .search-panel--users .button {
        width: 100%;
    }
}

.campus-layout .site-header__inner { min-height: 5rem; }
.campus-layout .main-nav a { padding: .45rem .15rem; text-decoration: none; border-bottom: 2px solid transparent; }
.campus-layout .main-nav a:hover { border-color: rgb(244 196 48 / 55%); }
.campus-layout .main-nav a[aria-current="page"] { border-color: var(--accent); font-weight: 800; }
.campus-layout .account-nav { padding-left: 1.25rem; border-left: 1px solid rgb(255 255 255 / 24%); }
.campus-layout .account-nav > a { white-space: nowrap; }
.campus-home { display: grid; gap: clamp(2rem, 5vw, 3.5rem); }
.campus-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(14rem, 20rem); align-items: end; gap: 2rem; padding: clamp(1.5rem, 4vw, 2.75rem); border-radius: 16px; background: var(--brand-dark); color: #fff; }
.campus-hero .eyebrow { color: var(--accent); }
.campus-hero h1 { max-width: 44rem; margin: .35rem 0 .65rem; }
.campus-hero__intro { max-width: 42rem; margin-bottom: 0; color: #dbe9ee; font-size: 1.05rem; }
.establishment-context { margin: 0; padding: .9rem 1rem; border: 1px solid rgb(255 255 255 / 25%); border-radius: 10px; background: rgb(255 255 255 / 8%); }
.establishment-context span { display: block; margin-bottom: .15rem; color: #dbe9ee; font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.establishment-context strong { display: block; overflow-wrap: anywhere; font-size: 1.05rem; }
.campus-modules,.campus-tools { scroll-margin-top: 1rem; }
.section-intro { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1rem; }
.section-intro h2 { margin: .25rem 0 0; font-size: clamp(1.4rem, 3vw, 1.75rem); }
.section-intro > p { max-width: 30rem; margin: 0; color: var(--muted); }
.module-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.module-card { display: flex; min-height: 12rem; gap: 1rem; padding: 1.25rem; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); box-shadow: 0 5px 16px rgb(23 33 43 / 6%); transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.module-card:hover { border-color: #a9bcc5; box-shadow: var(--shadow); transform: translateY(-2px); }
.module-card:focus-within { border-color: var(--focus); }
.module-card__body { display: flex; min-width: 0; flex: 1; flex-direction: column; align-items: flex-start; }
.module-card h3 { margin: .15rem 0 .5rem; font-size: 1.2rem; }
.module-card p { margin: 0 0 1rem; color: var(--muted); }
.module-card .button { margin-top: auto; }
.module-card__number { display: grid; place-items: center; flex: 0 0 2.75rem; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--accent); color: var(--ink); font-weight: 800; }
.campus-tools__grid { display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 1rem; }
.campus-tool { min-width: 0; padding: 1.25rem; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.campus-tool h3 { margin: 0 0 .45rem; }
.campus-tool p { color: var(--muted); }
.campus-tool > a:not(.button) { display: inline-flex; min-height: 2.75rem; align-items: center; }
.campus-tool--search { display: flex; grid-row: span 2; flex-direction: column; justify-content: space-between; background: #eef5f7; }
.campus-tool--search .button { align-self: flex-start; }
.campus-page { width: min(48rem,100%); }
.campus-page > h1 { margin: .25rem 0 .65rem; }
.campus-page__intro { max-width: 42rem; color: var(--muted); font-size: 1.05rem; }
.campus-empty { margin: 1.5rem 0; padding: 1.25rem; border-left: 4px solid var(--accent); border-radius: 0 10px 10px 0; background: #fff; }
.campus-empty h2 { margin: 0 0 .35rem; font-size: 1.05rem; }
.campus-empty p { margin-bottom: 0; color: var(--muted); }
.campus-page--wide { width: min(52rem,100%); }
.pedagogical-content { width: min(46rem,100%); }
.content-list { display: grid; gap: 1rem; margin: 1.5rem 0; }
.content-card { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; padding: 1.25rem; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.content-card__body { min-width: 0; }
.content-card h2 { margin: 0 0 .35rem; overflow-wrap: anywhere; }
.content-card p { margin: 0; color: var(--muted); overflow-wrap: anywhere; }
.content-card .button { flex: 0 0 auto; }
.pedagogical-content__header h1 { margin-bottom: .75rem; overflow-wrap: anywhere; }
.pedagogical-content__summary { max-width: 42rem; margin-bottom: 0; color: var(--muted); font-size: 1.08rem; line-height: 1.65; overflow-wrap: anywhere; }
.pedagogical-content__blocks { margin: 2rem 0; font-size: 1.02rem; line-height: 1.72; }
.content-block--title { margin: 2rem 0 .75rem; overflow-wrap: anywhere; }
.content-block--title:first-child { margin-top: 0; }
.content-block--paragraph { margin: 0 0 1.25rem; white-space: normal; overflow-wrap: anywhere; }
.content-block--image { margin: 1.5rem 0; }
.content-block--image img { display: block; width: 100%; height: auto; max-width: 100%; margin-inline: auto; border-radius: 12px; }
.campus-return { margin-top: .25rem; }
.breadcrumb { display: flex; flex-wrap: wrap; gap: .35rem .45rem; color: var(--muted); overflow-wrap: anywhere; }
.breadcrumb > * { min-width: 0; }
.breadcrumb [aria-current="page"] { color: var(--ink); }

@media (max-width: 980px) {
    .campus-layout .site-header__inner { align-items: center; flex-wrap: wrap; padding: .85rem 0; }
    .campus-layout .main-nav { order: 3; width: 100%; padding-top: .65rem; border-top: 1px solid rgb(255 255 255 / 18%); }
    .campus-layout .account-nav { margin-left: auto; }
    .campus-hero { grid-template-columns: minmax(0,1fr) minmax(12rem,16rem); }
}

@media (max-width: 780px) {
    .campus-hero { grid-template-columns: 1fr; gap: 1.25rem; }
    .section-intro { display: block; }
    .section-intro > p { margin-top: .5rem; }
    .campus-tools__grid { grid-template-columns: 1fr 1fr; }
    .campus-tool--search { grid-column: 1 / -1; grid-row: auto; }
}

@media (max-width: 620px) {
    .campus-layout .brand { width: 100%; }
    .campus-layout .main-nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .35rem; }
    .campus-layout .main-nav a { display: flex; min-height: 2.75rem; align-items: center; padding: .55rem .7rem; border: 1px solid rgb(255 255 255 / 22%); border-radius: 7px; }
    .campus-layout .main-nav a:hover,.campus-layout .main-nav a[aria-current="page"] { border-color: var(--accent); background: rgb(255 255 255 / 8%); }
    .campus-layout .account-nav { width: 100%; margin: 0; padding: .75rem 0 0; border-top: 1px solid rgb(255 255 255 / 18%); border-left: 0; }
    .campus-layout .account-nav .account-name { display: block; max-width: none; flex: 1 1 100%; }
    .campus-layout .account-nav > a,.campus-layout .account-nav button { min-height: 2.75rem; }
    .campus-home { gap: 2rem; }
    .campus-hero { padding: 1.25rem; }
    .module-grid,.campus-tools__grid { grid-template-columns: 1fr; }
    .module-card { min-height: 0; }
    .module-card .button,.campus-tool--search .button { width: 100%; }
    .campus-tool--search { grid-column: auto; }
    .content-card { align-items: stretch; flex-direction: column; }
    .content-card .button { width: 100%; }
    .pedagogical-content__blocks { font-size: 1rem; line-height: 1.68; }
    .campus-return { width: 100%; }
}
.class-mode {
    min-height: 100vh;
    min-height: 100dvh;
    background: #09131d;
    color: #f7fbff;
}

.class-mode a:focus-visible,
.class-mode button:focus-visible {
    outline-color: #f4c430;
    outline-width: 4px;
}

.class-mode__header {
    position: sticky;
    z-index: 10;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 4.75rem;
    padding: .75rem clamp(1rem, 3vw, 2.5rem);
    border-bottom: 1px solid #324758;
    background: #13202b;
}

.class-mode__brand {
    color: #dbe9f2;
    font-size: 1rem;
    font-weight: 800;
    white-space: nowrap;
}

.class-mode__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .75rem;
}

.class-mode__actions .button {
    min-height: 3rem;
}

.class-mode__fullscreen {
    border-color: #91a9ba;
}

.class-mode__exit {
    border-color: #f4c430;
    background: #f4c430;
    color: #17212b;
}

.class-mode__exit:hover {
    background: #ffe071;
    color: #17212b;
}

.class-mode__main {
    display: flex;
    width: min(1120px, calc(100% - 2rem));
    min-height: calc(100vh - 4.75rem);
    min-height: calc(100dvh - 4.75rem);
    margin: 0 auto;
    padding: clamp(1.25rem, 3vh, 2.5rem) 0 1rem;
    flex-direction: column;
}

.class-mode__context {
    position: relative;
    padding-right: 6rem;
}

.class-mode__context .eyebrow {
    color: #f4c430;
    font-size: .9rem;
}

.class-mode__context h1 {
    max-width: 42ch;
    margin: .25rem 0 0;
    color: #f7fbff;
    font-size: clamp(1.5rem, 2.5vw, 2.4rem);
    overflow-wrap: anywhere;
}

.class-mode__progress {
    position: absolute;
    top: .2rem;
    right: 0;
    margin: 0;
    color: #dbe9f2;
    font-size: 1.1rem;
    font-variant-numeric: tabular-nums;
    font-weight: 800;
}

.class-mode__blocks {
    width: min(100%, 52rem);
    margin: clamp(1.5rem, 5vh, 3.5rem) auto;
    color: #f7fbff;
    font-size: clamp(1.3rem, 1.2vw + .75rem, 1.85rem);
    line-height: 1.55;
}

.class-mode__blocks .content-block--title {
    margin: 1.5em 0 .6em;
    color: #fff;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.class-mode__blocks h2.content-block--title {
    font-size: clamp(2rem, 4vw, 3.75rem);
}

.class-mode__blocks h3.content-block--title {
    font-size: clamp(1.7rem, 3vw, 3rem);
}

.class-mode__blocks h4.content-block--title {
    font-size: clamp(1.45rem, 2.2vw, 2.35rem);
}

.class-mode__blocks .content-block--paragraph {
    max-width: 62ch;
    margin: 0 0 1.25em;
    overflow-wrap: anywhere;
}

.class-mode__blocks .content-block--image {
    margin: 1.5rem auto;
    text-align: center;
}

.class-mode__blocks .content-block--image img {
    display: inline-block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: min(60vh, 42rem);
    border-radius: 12px;
    object-fit: contain;
}

.class-mode__empty {
    width: min(100%, 46rem);
    margin: clamp(2rem, 10vh, 6rem) auto;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border: 1px solid #40596c;
    border-left: 5px solid #f4c430;
    border-radius: .75rem;
    background: #13202b;
}

.class-mode__empty h2 {
    margin-top: 0;
    color: #fff;
    font-size: clamp(1.5rem, 3vw, 2.25rem);
}

.class-mode__empty p {
    margin-bottom: 0;
    color: #dbe9f2;
    font-size: 1.2rem;
}

.class-mode__navigation {
    position: sticky;
    bottom: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 1rem;
    margin-top: auto;
    padding: 1rem 0;
    background: linear-gradient(to bottom, rgb(9 19 29 / 0%), #09131d 28%);
}

.class-mode__navigation .button {
    min-width: 10rem;
    min-height: 3.5rem;
    padding: .8rem 1.25rem;
    font-size: 1.15rem;
}

.class-mode__navigation [data-class-mode-previous] {
    justify-self: start;
}

.class-mode__navigation [data-class-mode-next] {
    justify-self: end;
}

.class-mode__navigation .button--secondary {
    border-color: #dbe9f2;
    background: #13202b;
    color: #fff;
}

.class-mode__keyboard-hint {
    margin: 0 0 .25rem;
    color: #b8cbd8;
    font-size: .9rem;
    text-align: center;
}

@media (max-height: 760px) and (min-width: 700px) {
    .class-mode__header {
        min-height: 4rem;
        padding-block: .5rem;
    }

    .class-mode__main {
        min-height: calc(100dvh - 4rem);
        padding-top: 1rem;
    }

    .class-mode__blocks {
        margin-block: 1.25rem;
    }

    .class-mode__blocks .content-block--image img {
        max-height: 52vh;
    }
}

@media (max-width: 699px) {
    .class-mode__header {
        position: static;
        align-items: flex-start;
        flex-direction: column;
    }

    .class-mode__actions,
    .class-mode__actions .button {
        width: 100%;
    }

    .class-mode__context {
        padding-right: 0;
    }

    .class-mode__progress {
        position: static;
        margin-top: .75rem;
    }

    .class-mode__blocks {
        font-size: clamp(1.15rem, 5vw, 1.45rem);
    }

    .class-mode__navigation .button {
        min-width: 0;
        width: 100%;
    }

    .class-mode__keyboard-hint {
        display: none;
    }
}

@media (max-width: 420px) {
    .class-mode__main {
        width: min(100% - 1rem, 1120px);
    }

    .class-mode__navigation {
        gap: .5rem;
    }

    .class-mode__navigation .button {
        padding-inline: .6rem;
        font-size: 1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .class-mode {
        scroll-behavior: auto;
    }
}
.resource-library{width:100%}.resource-filters{display:grid;grid-template-columns:minmax(16rem,2fr) repeat(5,minmax(8rem,1fr));gap:1rem;align-items:end;margin:2rem 0;padding:1.25rem;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.resource-filters label{display:block;margin-bottom:.4rem;color:var(--ink);font-weight:700}.resource-filters input,.resource-filters select{width:100%;min-height:2.75rem;padding:.6rem .7rem;border:1px solid #aeb8c2;border-radius:7px;background:var(--surface);color:var(--ink);font:inherit}.resource-filters__actions{grid-column:1/-1;display:flex;gap:.75rem;flex-wrap:wrap}.resource-filters .button--ghost{color:var(--brand)}.resource-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1.25rem}.resource-card{display:flex;flex-direction:column;min-width:0;padding:1.35rem;background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:12px;box-shadow:var(--shadow)}.resource-card h2{margin:.85rem 0 .55rem;font-size:1.2rem}.resource-card h2 a{color:var(--brand-dark)}.resource-card>p{margin:.15rem 0 1rem;color:var(--muted)}.resource-card__meta{display:flex;gap:.5rem;flex-wrap:wrap}.resource-card__meta span{padding:.25rem .55rem;background:#eef3f5;color:#33414d;border-radius:999px;font-size:.85rem;font-weight:750}.resource-card__details{display:flex;gap:.45rem 1rem;flex-wrap:wrap;margin:.25rem 0 1rem;padding:0;color:var(--muted);list-style:none}.resource-card__open{align-self:flex-start;margin-top:auto;font-weight:750}.resource-count{color:var(--muted);font-weight:700}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;flex-wrap:wrap;margin:2rem 0;padding:1rem;background:var(--surface);border:1px solid var(--line);border-radius:10px}.resource-detail{width:min(58rem,100%);margin:auto}.resource-detail__back{display:inline-flex;margin-bottom:1.25rem;font-weight:750}.resource-detail__header,.resource-detail__section{padding:clamp(1.25rem,3vw,2rem);background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.resource-detail__header{border-top:5px solid var(--accent)}.resource-detail__header h1{margin:.35rem 0 .65rem}.resource-detail__section{margin-top:1.25rem}.resource-detail__section h2{margin-top:0}.resource-detail__taxonomies{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:0}.resource-detail__taxonomies div{padding:1rem;background:var(--canvas);border-radius:8px}.resource-detail__taxonomies dt{font-weight:800}.resource-detail__taxonomies dd{margin:.35rem 0 0;color:var(--muted)}.resource-access{border-left:4px solid var(--brand)}.resource-access .button{margin-top:.25rem}.resource-source{margin:0}.resource-sources{margin:0;padding-left:1.25rem}.resource-video{position:relative;padding-top:56.25%;overflow:hidden;border-radius:8px;background:#000}.resource-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1000px){.resource-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.resource-filters__search{grid-column:1/-1}.resource-detail__taxonomies{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.resource-filters,.resource-detail__taxonomies{grid-template-columns:1fr}.resource-filters__search,.resource-filters__actions{grid-column:auto}.resource-filters__actions .button{width:100%;text-align:center}.resource-detail__header,.resource-detail__section{padding:1rem}}
.module-recommendations{margin-top:2.5rem}.resource-grid--recommendations{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr))}.resource-grid--recommendations .resource-card h3{font-size:1.1rem}

/* Cartes Ressources partagées entre la bibliothèque et les recommandations */
.resource-grid,.resource-grid--recommendations{grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));align-items:stretch}
.resource-card{padding:0;overflow:hidden;border-top:0}
.resource-card__visual{width:100%;aspect-ratio:1/1;overflow:hidden;background:#e7eef2;border-bottom:1px solid var(--line)}
.resource-card__thumbnail{display:block;width:100%;height:100%;object-fit:cover}
.resource-card__thumbnail--fallback{display:grid;place-items:center;background:linear-gradient(145deg,#e8f2fb,#d8e6ef);color:var(--brand-dark);font-weight:900;font-size:1.15rem;letter-spacing:.04em}
.resource-card__thumbnail--fallback span{display:grid;place-items:center;width:5.5rem;aspect-ratio:1;border:2px solid currentColor;border-radius:50%}
.resource-card__body{display:flex;flex:1;flex-direction:column;padding:1rem 1.1rem 1.15rem}
.resource-card__badges{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;flex-wrap:wrap}
.resource-card__badges .badge{margin:0}
.resource-card h2,.resource-card h3{margin:.8rem 0 .5rem;font-size:1.15rem;line-height:1.3}
.resource-card__summary{display:-webkit-box;overflow:hidden;margin:.1rem 0 .8rem;color:var(--muted);-webkit-box-orient:vertical;-webkit-line-clamp:3}
.resource-card__details{font-size:.9rem}
.resource-card__open{padding-top:.25rem}
@media(min-width:1500px){.resource-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Nouveautés Campus */
.news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));gap:1.25rem;align-items:stretch;margin-top:1.5rem}
.news-card{display:flex;min-width:0;min-height:15rem;flex-direction:column;padding:1.2rem;background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:12px;box-shadow:var(--shadow)}
.news-card__badges{display:flex;align-items:flex-start;justify-content:space-between;gap:.65rem;flex-wrap:wrap}
.news-card__type{padding:.25rem .55rem;background:#eef3f5;color:#33414d;border-radius:999px;font-size:.85rem;font-weight:750}
.news-card__badges .badge{margin:0}
.news-card h2{margin:.9rem 0 .55rem;font-size:1.2rem;line-height:1.35}
.news-card h2 a{color:var(--brand-dark)}
.news-card__summary{display:-webkit-box;overflow:hidden;margin:.1rem 0 1rem;color:var(--muted);-webkit-box-orient:vertical;-webkit-line-clamp:4}
.news-card__open{align-self:flex-start;margin-top:auto;font-weight:750}
@media(min-width:1500px){.news-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Médiathèque Atelier */
.media-library{display:grid;grid-template-columns:minmax(16rem,21rem) minmax(0,1fr);gap:1.25rem;align-items:start}.media-library__upload{position:sticky;top:1rem}.media-library__catalog{min-width:0}.media-library__search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem;align-items:end;margin-bottom:1.25rem}.media-library__search label{grid-column:1/-1;font-weight:700}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,14rem),1fr));gap:1rem}.media-card{min-width:0;padding:0;overflow:hidden}.media-card__preview{display:grid;place-items:center;width:100%;height:clamp(11.25rem,18vw,13.75rem);overflow:hidden;background:#eef3f5;border-bottom:1px solid var(--line)}.media-card__preview img{display:block;width:100%;height:100%;object-fit:contain}.media-card__pdf{display:grid;place-items:center;width:5rem;aspect-ratio:4/5;border-radius:.4rem;background:#fff;border:2px solid var(--danger);color:var(--danger);font-weight:900;letter-spacing:.08em}.media-card__body{padding:1rem}.media-card__body h2{margin:0;overflow-wrap:anywhere}.media-card__meta{margin:.5rem 0 0;color:var(--muted);font-size:.9rem}@media(max-width:900px){.media-library{grid-template-columns:1fr}.media-library__upload{position:static}.media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.media-grid,.media-library__search{grid-template-columns:1fr}.media-library__search label{grid-column:auto}.media-library__search button{width:100%}.media-card__preview{height:12rem}}
.resource-filters select:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.badge--news{display:inline-flex;margin-bottom:.45rem;background:#d8ebff;color:#075ea8}.statistics-filters{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:1rem;align-items:end}.statistics-section{margin-top:1.5rem}.statistics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.statistic-card{display:grid;gap:.35rem}.statistic-card strong{font-size:2rem;color:var(--brand)}.statistics-rankings{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.5rem}.statistics-ranking{padding-left:1.4rem}.statistics-ranking li{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--line)}@media(max-width:800px){.statistics-filters,.statistics-grid{grid-template-columns:1fr 1fr}.statistics-rankings{grid-template-columns:1fr}}@media(max-width:520px){.statistics-filters,.statistics-grid{grid-template-columns:1fr}}
.maintenance-unavailable{max-width:42rem;margin:10vh auto}.maintenance-mode{display:flex;justify-content:space-between;gap:1.5rem;align-items:center}.maintenance-section{margin-top:1.5rem}.maintenance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.maintenance-status{display:grid;align-content:start;gap:.65rem}.maintenance-job-counts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}.maintenance-job-counts article{display:grid;gap:.3rem}.maintenance-job-counts strong{font-size:1.8rem;color:var(--brand)}.maintenance-jobs{display:grid;gap:1rem}.maintenance-job{display:flex;justify-content:space-between;align-items:end;gap:1.5rem}.maintenance-job dl{display:grid;grid-template-columns:auto 1fr;gap:.3rem 1rem}.maintenance-job dt{font-weight:700}@media(max-width:850px){.maintenance-grid{grid-template-columns:1fr 1fr}.maintenance-job-counts{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.maintenance-mode,.maintenance-job{align-items:stretch;flex-direction:column}.maintenance-grid,.maintenance-job-counts{grid-template-columns:1fr}}
.badge--success{background:var(--success-bg);color:var(--success)}.badge--warning{background:var(--warning-bg);color:var(--warning)}.badge--error{background:var(--danger-bg);color:var(--danger)}
.newsletter-composer{margin:1.5rem 0;padding:0;border:0}.newsletter-content-list{display:grid;gap:.65rem}.newsletter-content-choice{display:grid;grid-template-columns:minmax(0,1fr) 7rem;gap:1rem;align-items:center;padding:.75rem 1rem;border:1px solid var(--line);border-radius:8px;background:var(--canvas)}.newsletter-content-choice__select{display:flex;gap:.75rem;align-items:center;margin:0}.newsletter-content-choice__select input{width:auto;min-height:auto}.newsletter-content-choice__select span{display:grid}.newsletter-content-choice__select small{color:var(--muted)}.newsletter-content-choice__position{display:grid;grid-template-columns:auto 4rem;gap:.5rem;align-items:center;margin:0;font-size:.9rem}.newsletter-content-choice__position input{min-height:2.3rem;padding:.35rem;width:4rem}.newsletter-content-choice__position input:disabled{background:#e9edf0;color:var(--muted)}@media(max-width:620px){.newsletter-content-choice{grid-template-columns:1fr}.newsletter-content-choice__position{justify-content:start}}
.rich-text-toolbar{display:flex;gap:.35rem;align-items:center;padding:.45rem;background:#13202B;border:1px solid var(--border);border-bottom:0;border-radius:.5rem .5rem 0 0}.rich-text-toolbar+textarea{border-top-left-radius:0;border-top-right-radius:0}.rich-text-toolbar__button{min-width:2.35rem;padding:.35rem .6rem;background:#1C2C39;color:#fff;border:1px solid #405466}.rich-text-toolbar__button:hover,.rich-text-toolbar__button:focus-visible{border-color:#1D90FF;background:#20384a}
.media-grid{align-items:stretch}.media-card{display:flex;flex-direction:column;height:100%}.media-card__preview{height:auto;min-height:0;aspect-ratio:4/3}.media-card__preview img{max-width:100%;max-height:100%;object-fit:contain}.media-card__body{flex:1}.media-card--portrait .media-card__preview{background:#e7eef2}.media-card--landscape .media-card__preview,.media-card--square .media-card__preview{background:#eef3f5}
.content-block--youtube{margin:1.5rem 0}.content-video{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:12px;background:#000}.content-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.content-block--youtube figcaption{margin-top:.5rem;font-size:.9rem}.class-mode__blocks .content-block--youtube{width:min(100%,64rem);margin:1.5rem auto}.class-mode__blocks .content-video{max-height:65vh}
.class-mode-editor{display:grid;gap:1rem}.class-mode-editor__screen{margin:0}.class-mode-editor__screen.is-dragging{opacity:.55}.class-mode-editor__header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.class-mode-editor__handle{cursor:grab}.class-mode-editor__handle:active{cursor:grabbing}@media(max-width:700px){.class-mode-editor__header{align-items:flex-start;flex-direction:column}.class-mode-editor__screen[draggable=true]{touch-action:auto}}
.text-align-left{text-align:left}.text-align-center{text-align:center}.text-align-right{text-align:right}.text-align-justify{text-align:justify}
.resource-card__thumbnail{display:block;width:100%;aspect-ratio:16/9;margin-bottom:1rem;object-fit:cover;border-radius:8px;background:#eef3f5}.resource-card__thumbnail--fallback{display:grid;place-items:center;color:var(--brand);font-size:2rem;font-weight:900}
.content-block--paragraph ul{margin:1rem 0;padding-left:1.5rem}.content-block--paragraph li{margin:.35rem 0}
