@font-face {
    font-family: "Alegreya";
    src: url("../fonts/Alegreya-Variable.ttf") format("truetype");
    font-style: normal;
    font-weight: 400 900;
    font-display: swap;
}

@font-face {
    font-family: "Alegreya Sans";
    src: url("../fonts/AlegreyaSans-Regular.ttf") format("truetype");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "Alegreya Sans";
    src: url("../fonts/AlegreyaSans-Medium.ttf") format("truetype");
    font-style: normal;
    font-weight: 500 600;
    font-display: swap;
}

@font-face {
    font-family: "Alegreya Sans";
    src: url("../fonts/AlegreyaSans-Bold.ttf") format("truetype");
    font-style: normal;
    font-weight: 700 900;
    font-display: swap;
}

:root {
    --ink: #14213d;
    --navy: #062b5f;
    --blue: #105c9f;
    --teal: #177e89;
    --green: #2c7a4b;
    --gold: #b88a2e;
    --red: #b42318;
    --paper: #ffffff;
    --soft: #f4f7fb;
    --line: #d9e2ef;
    --muted: #667085;
    --shadow: 0 12px 30px rgba(16, 35, 69, .08);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }

body {
    margin: 0;
    font-family: "Segoe UI Variable Text", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
    color: var(--ink);
    background: #f8fafc;
}

button,
input,
select,
textarea {
    font-family: inherit;
}

a { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: underline; }

img { max-width: 100%; display: block; }

.topbar {
    position: sticky;
    top: 0;
    z-index: 10;
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 12px clamp(16px, 4vw, 48px);
    background: rgba(255, 255, 255, .96);
    border-bottom: 1px solid var(--line);
    backdrop-filter: blur(10px);
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--ink);
    min-width: 240px;
}

.brand-mark {
    position: relative;
    width: 76px;
    height: 76px;
    flex: 0 0 76px;
    overflow: hidden;
}

.brand-mark img {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 198px;
    height: 198px;
    max-width: none;
    object-fit: contain;
    transform: translate(-50%, -38.6%);
}

.brand strong {
    display: block;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 0;
}

.brand small {
    display: block;
    max-width: 250px;
    color: var(--muted);
    font-size: 12px;
}

.nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px 16px;
    font-weight: 600;
    font-size: 14px;
}

.nav a { color: var(--ink); }

main { min-height: calc(100vh - 150px); }

.hero {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(260px, .7fr);
    align-items: center;
    gap: clamp(28px, 5vw, 72px);
    padding: clamp(42px, 8vw, 92px) clamp(16px, 5vw, 72px);
    background:
        linear-gradient(120deg, rgba(6, 43, 95, .08), rgba(23, 126, 137, .08)),
        #fff;
}

.hero h1 {
    margin: 0 0 18px;
    font-size: clamp(34px, 5vw, 58px);
    line-height: 1.08;
    font-weight: 700;
    letter-spacing: 0;
}

.page h1,
.admin-content h1 {
    margin: 0 0 14px;
    font-size: clamp(32px, 4vw, 42px);
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: 0;
}

.admin-content h1 { font-size: 36px; }

.hero p {
    max-width: 680px;
    font-size: 19px;
    color: #344054;
    line-height: 1.6;
}

.hero-logo {
    display: grid;
    place-items: center;
    min-height: 340px;
    background: var(--paper);
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
    border-radius: 8px;
    padding: 28px;
}

.hero-logo img {
    width: min(100%, 360px);
    object-fit: contain;
}

.eyebrow {
    display: block;
    margin: 0 0 10px;
    color: var(--gold);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0;
}

.section-head a + .eyebrow { margin-top: 8px; }

.section,
.page {
    padding: clamp(30px, 5vw, 60px) clamp(16px, 5vw, 72px);
}

.page {
    width: 100%;
    max-width: 1500px;
    margin-inline: auto;
}

.narrow,
.page.narrow { max-width: 960px; margin: 0 auto; }

.section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 22px;
}

.section h2,
.page h2,
.admin-content h2 {
    margin: 0 0 14px;
    font-size: 26px;
}

.actions,
.card-actions,
.right {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.right { justify-content: flex-end; margin-top: 18px; }

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 18px;
    border: 1px solid var(--navy);
    border-radius: 6px;
    background: var(--navy);
    color: #fff;
    font-weight: 650;
    cursor: pointer;
    text-decoration: none;
}

.btn:hover { text-decoration: none; background: #0b3a7a; }
.btn-outline { background: #fff; color: var(--navy); }
.btn-outline:hover { background: var(--soft); }
.btn-small { min-height: 34px; padding: 0 12px; font-size: 13px; }
.full { width: 100%; }

.course-grid,
.info-grid,
.stat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 18px;
}

.course-card,
.info-grid > div,
.stat,
.summary,
.student-block,
.notice,
.report-card,
.lesson {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: var(--shadow);
}

.course-card {
    display: flex;
    min-height: 300px;
    flex-direction: column;
    gap: 12px;
    padding: 20px;
}

.course-card span,
.pill {
    width: fit-content;
    padding: 5px 9px;
    border-radius: 999px;
    color: var(--teal);
    background: rgba(23, 126, 137, .1);
    font-size: 12px;
    font-weight: 650;
}

.course-card h3 { margin: 0; font-size: 22px; }
.course-card p { color: var(--muted); line-height: 1.5; }
.course-card strong { margin-top: auto; font-size: 20px; color: var(--green); }

dl {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin: 0;
}

dt { color: var(--muted); font-size: 11px; }
dd { margin: 0; font-weight: 600; font-size: 13px; }

.split,
.checkout,
.course-detail,
.admin-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 440px);
    gap: 24px;
    align-items: start;
}

.form-panel {
    display: grid;
    gap: 14px;
    padding: 22px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: var(--shadow);
}

label {
    display: grid;
    gap: 6px;
    color: #344054;
    font-size: 13px;
    font-weight: 600;
}

input,
select,
textarea {
    width: 100%;
    min-height: 42px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    padding: 9px 11px;
    color: var(--ink);
    background: #fff;
    font: inherit;
}

textarea { resize: vertical; }

.check {
    display: flex;
    align-items: center;
    gap: 8px;
}

.check input,
.payment-options input,
td input[type="checkbox"] {
    width: auto;
    min-height: auto;
}

.grid-2,
.grid-3 {
    display: grid;
    gap: 14px;
}

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

.summary {
    position: sticky;
    top: 98px;
    padding: 22px;
}

.summary > span {
    display: block;
    color: var(--muted);
    font-weight: 600;
    margin-bottom: 8px;
}

.summary > strong {
    display: block;
    margin-bottom: 18px;
    color: var(--green);
    font-size: 34px;
}

.summary-line {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.summary-line.total { font-size: 20px; }

.metrics,
.status-row,
.payment-options,
.filter-bar {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: end;
}

.metrics span,
.status-row span {
    padding: 10px 12px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 6px;
    font-weight: 600;
}

.auth-page {
    display: grid;
    min-height: 70vh;
    place-items: center;
    padding: 32px 16px;
}

.auth-card {
    width: min(100%, 440px);
}

.preregistration-card {
    width: min(100%, 980px);
}

.auth-card img {
    width: 120px;
    margin: 0 auto;
}

.admin-shell {
    grid-template-columns: 220px minmax(0, 1fr);
    padding: 24px clamp(12px, 3vw, 36px);
}

.side {
    position: sticky;
    top: 96px;
    display: grid;
    gap: 6px;
    padding: 12px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: var(--shadow);
}

.side a {
    padding: 10px 12px;
    border-radius: 6px;
    color: var(--ink);
    font-weight: 600;
}

.side a:hover { background: var(--soft); text-decoration: none; }

.admin-content {
    display: grid;
    gap: 20px;
    min-width: 0;
    width: 100%;
    margin-inline: auto;
}

.stat {
    padding: 18px;
}

.stat span {
    display: block;
    color: var(--muted);
    font-size: 13px;
    text-transform: uppercase;
}

.stat strong {
    display: block;
    margin-top: 8px;
    font-size: 34px;
    color: var(--navy);
}

.top-gap { margin-top: 10px; }

.table-wrap {
    width: 100%;
    overflow-x: auto;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
}

table {
    width: 100%;
    border-collapse: collapse;
    min-width: 720px;
}

th,
td {
    padding: 12px;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
}

th {
    background: var(--soft);
    font-size: 12px;
    text-transform: uppercase;
    color: #475467;
}

td small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
}

.mini { width: 78px; min-width: 78px; }

.link-button {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--red);
    cursor: pointer;
    font: inherit;
    font-weight: 600;
}

.inline-form {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 2px 6px 2px 0;
}

.flash {
    max-width: 1180px;
    margin: 14px auto 0;
    padding: 12px 16px;
    border-radius: 6px;
    border: 1px solid var(--line);
    background: #fff;
    font-weight: 600;
}

.flash-success { border-color: rgba(44, 122, 75, .35); color: var(--green); }
.flash-danger { border-color: rgba(180, 35, 24, .35); color: var(--red); }
.flash-warning { border-color: rgba(184, 138, 46, .45); color: #8a6200; }

.hint { color: var(--muted); font-size: 13px; }

.pix-box {
    display: grid;
    gap: 12px;
    margin-top: 20px;
    padding: 18px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
}

.success-note {
    padding: 14px 16px;
    border-radius: 6px;
    background: rgba(44, 122, 75, .1);
    color: var(--green);
    font-weight: 600;
}

.student-block {
    margin: 22px 0;
    padding: 20px;
}

.notice-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 12px;
    margin: 16px 0 22px;
}

.notice {
    padding: 16px;
}

.notice p {
    margin-bottom: 0;
    color: var(--muted);
    line-height: 1.5;
}

.report-card {
    display: grid;
    gap: 8px;
    min-height: 120px;
    padding: 18px;
    color: var(--ink);
}

.report-card:hover {
    text-decoration: none;
    border-color: var(--blue);
}

.report-card strong {
    font-size: 21px;
}

.report-card span {
    color: var(--muted);
}

.lesson-module {
    margin: 12px 0;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.lesson-module summary {
    cursor: pointer;
    font-weight: 600;
}

.lesson-module summary span {
    color: var(--muted);
    font-size: 13px;
}

.lesson {
    margin-top: 12px;
    padding: 14px;
}

.lesson p {
    line-height: 1.55;
}

.print-head {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 32px;
}

.print-head img {
    width: 110px;
}

.declaration {
    background: #fff;
    margin-top: 32px;
    border: 1px solid var(--line);
}

.footer {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 22px clamp(16px, 5vw, 72px);
    color: #fff;
    background: var(--ink);
    font-size: 13px;
}

.footer-contacts {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
}

.footer-contacts a {
    color: #fff;
    text-decoration: none;
}

.footer-contacts a:hover {
    text-decoration: underline;
}

.student-profile-page,
.teaching-plan-page {
    max-width: 1240px;
    margin: 0 auto;
}

.student-form,
.teaching-plan-form {
    gap: 22px;
}

.form-section {
    min-width: 0;
    margin: 0;
    padding: 20px 0 0;
    border: 0;
    border-top: 1px solid var(--line);
}

.form-section:first-of-type {
    padding-top: 0;
    border-top: 0;
}

.form-section legend {
    padding: 0 14px 0 0;
    color: var(--navy);
    font-size: 18px;
    font-weight: 650;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(180px, 1fr));
    gap: 15px;
    margin-top: 14px;
}

.span-2 { grid-column: span 2; }
.span-full { grid-column: 1 / -1; }

.form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding-top: 4px;
}

input[readonly] {
    color: #667085;
    background: #f2f4f7;
}

.profile-score {
    display: grid;
    min-width: 105px;
    align-content: center;
    padding: 10px 14px;
    border-left: 3px solid var(--teal);
    background: #fff;
}

.profile-score span,
.plan-context span {
    color: var(--muted);
    font-size: 11px;
    text-transform: uppercase;
}

.profile-score strong { font-size: 24px; color: var(--navy); }
.profile-status-group { display: grid; justify-items: end; gap: 8px; }

.plan-context {
    display: grid;
    grid-template-columns: repeat(3, minmax(180px, 1fr));
    gap: 12px 20px;
    padding-bottom: 4px;
}

.plan-context > div { display: grid; gap: 2px; }
.plan-context strong { font-weight: 600; }

.approval-note {
    margin: 0;
    padding: 12px 14px;
    border-left: 3px solid var(--green);
    color: var(--green);
    background: #ecfdf3;
}

.status.status-aprovado { color: #067647; background: #ecfdf3; }
.status.status-submetido { color: #175cd3; background: #eff8ff; }
.status.status-rascunho { color: #475467; background: #f2f4f7; }
.status.status-validado { color: #067647; background: #ecfdf3; }
.status.status-em_analise { color: #175cd3; background: #eff8ff; }
.status.status-rejeitado { color: #b42318; background: #fef3f2; }

.checkout-page { max-width: 1500px; margin: 0 auto; }
.checkout-steps { display: flex; gap: 0; margin: 0 0 18px; }
.checkout-steps span { display: flex; align-items: center; gap: 8px; min-width: 170px; padding: 10px 18px 10px 0; color: var(--muted); border-bottom: 2px solid var(--line); font-size: 13px; }
.checkout-steps span.current { color: var(--navy); border-color: var(--navy); font-weight: 600; }
.checkout-steps span.done { color: var(--green); border-color: var(--green); }
.checkout-steps strong { display: grid; width: 26px; height: 26px; place-items: center; border: 1px solid currentColor; border-radius: 50%; }
.checkout-preregistration > h1,
.staff-checkout-block > h1 { font-size: 38px; margin: 0; }
.checkout-preregistration > p,
.staff-checkout-block > p { margin: 0; color: #475467; }
.preregistration-grid { margin: 4px 0; }
.consent-check { align-items: flex-start; color: #475467; font-weight: 500; line-height: 1.5; }
.consent-check input { margin-top: 4px; }
.access-explainer { display: grid; gap: 3px; padding: 13px 15px; border-left: 3px solid var(--teal); color: #344054; background: #f0f9fa; }
.access-explainer span { font-size: 13px; }
.auth-switch { margin: 0; text-align: center; }
.checkout-heading { margin: 0; }
.validated-badge { display: grid; min-width: 125px; padding: 10px 12px; border-left: 3px solid var(--green); color: var(--green); background: #ecfdf3; }
.validated-badge span { font-size: 10px; text-transform: uppercase; }
.payment-detail { display: grid; gap: 16px; padding: 18px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.payment-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.payment-detail-head h3 { margin: 0 0 3px; font-size: 20px; }
.payment-detail-head p { margin: 0; color: var(--muted); }
.payment-detail-head > span { padding: 5px 9px; color: var(--teal); background: rgba(23, 126, 137, .1); font-size: 12px; font-weight: 600; }
.payment-flow { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 0; padding: 0; list-style: none; counter-reset: payment-step; }
.payment-flow li { display: flex; align-items: center; gap: 8px; color: #344054; font-size: 13px; counter-increment: payment-step; }
.payment-flow li::before { display: grid; flex: 0 0 26px; height: 26px; place-items: center; border-radius: 50%; color: #fff; background: var(--teal); content: counter(payment-step); }
.provider-note { margin: 0; color: #475467; line-height: 1.55; }
.buyer-summary { display: grid; gap: 2px; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line); }
.buyer-summary span { color: var(--muted); font-size: 11px; text-transform: uppercase; }
.buyer-summary strong { font-weight: 600; }
.buyer-summary small { color: var(--muted); }

.plan-view {
    margin-bottom: 20px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.plan-view > summary {
    padding: 14px 16px;
    cursor: pointer;
    color: var(--navy);
    font-weight: 600;
}

.plan-view-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    padding: 4px 16px 18px;
}

.plan-view-grid section:first-child,
.plan-view-grid section:nth-child(3) { grid-column: 1 / -1; }
.plan-view-grid h3 { margin: 0 0 6px; font-size: 16px; }
.plan-view-grid p { margin: 0; color: #475467; line-height: 1.65; }

@media (max-width: 900px) {
    .topbar,
    .section-head,
    .footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .nav { justify-content: flex-start; }

    .hero,
    .split,
    .checkout,
    .course-detail,
    .admin-shell,
    .grid-2,
    .grid-3 {
        grid-template-columns: minmax(0, 1fr);
    }

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

    .hero-logo { min-height: 220px; }
    .side,
    .summary { position: static; }
    .side {
        display: flex;
        max-width: 100%;
        overflow-x: auto;
        white-space: nowrap;
        scrollbar-width: thin;
    }
    .side a { flex: 0 0 auto; }
}

@media (max-width: 560px) {
    .brand { min-width: 0; }
    .brand small { display: none; }
    .hero h1,
    .page h1,
    .admin-content h1 { font-size: 34px; }
    dl { grid-template-columns: 1fr; }
    .btn { width: 100%; }
    .form-grid,
    .plan-context,
    .plan-view-grid { grid-template-columns: 1fr; }
    .span-2,
    .plan-view-grid section { grid-column: 1 / -1; }
    .form-actions .btn { width: 100%; }
}

@media print {
    .topbar,
    .footer,
    .flash,
    .declaration .btn {
        display: none;
    }

    body {
        background: #fff;
    }

    .declaration {
        border: 0;
        margin: 0;
        padding: 30px;
    }
}

/* Ambiente virtual */
.lms-page { max-width: 1380px; }
.lms-class-card { min-height: 270px; }
.lms-class-card h2 { margin: 0; font-size: 22px; }
.progress-line { height: 8px; overflow: hidden; border-radius: 4px; background: #e4e7ec; }
.progress-line i { display: block; height: 100%; background: var(--green); }
.compact-stats { grid-template-columns: repeat(4, minmax(130px, 1fr)); }
.compact-stats .stat strong { font-size: 28px; }
.lms-columns { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; }
.lms-aside { position: sticky; top: 96px; }
.module-panel { margin-bottom: 14px; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.module-panel > p { margin: 0; padding: 0 18px 16px; color: var(--muted); }
.module-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 17px 18px; }
.module-heading h3 { margin: 2px 0 0; font-size: 19px; }
.module-heading small { color: var(--teal); font-weight: 650; text-transform: uppercase; }
.module-heading > span { color: var(--muted); font-size: 13px; font-weight: 600; }
.lesson-list { border-top: 1px solid var(--line); }
.lesson-row { display: flex; align-items: center; gap: 12px; padding: 13px 18px; border-bottom: 1px solid var(--line); color: var(--ink); }
.lesson-row:last-child { border-bottom: 0; }
.lesson-row:hover { background: var(--soft); text-decoration: none; }
.lesson-row > span:last-child { display: grid; gap: 2px; }
.lesson-row small { color: var(--muted); }
.lesson-state { display: grid; flex: 0 0 30px; width: 30px; height: 30px; place-items: center; border: 1px solid #cbd5e1; border-radius: 50%; font-size: 12px; font-weight: 650; }
.lesson-state.done { border-color: var(--green); color: #fff; background: var(--green); }
.stack-list { display: grid; gap: 12px; }
.task-panel { position: relative; display: grid; gap: 12px; padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.task-panel h3 { margin: 6px 0; font-size: 19px; }
.task-panel p { margin: 5px 0; line-height: 1.5; }
.task-link { grid-template-columns: minmax(0, 1fr) auto; align-items: center; color: var(--ink); }
.task-link:hover { border-color: var(--blue); text-decoration: none; }
.submission-form { display: grid; gap: 10px; padding-top: 12px; border-top: 1px solid var(--line); }
.grade-badge { position: absolute; top: 16px; right: 16px; display: grid; min-width: 58px; padding: 7px; border-radius: 6px; text-align: center; color: #fff; background: var(--green); }
.grade-badge strong { font-size: 19px; }.grade-badge span { font-size: 10px; text-transform: uppercase; }
.status { display: inline-block; width: fit-content; padding: 4px 8px; border-radius: 4px; color: #344054; background: #eef2f6; font-size: 11px; font-weight: 650; text-transform: uppercase; }
.status-enviado { color: #175cd3; background: #eff8ff; }.status-corrigido { color: #067647; background: #ecfdf3; }.status-pendente { color: #93370d; background: #fff6ed; }
.feedback { padding: 12px; border-left: 3px solid var(--green); background: #ecfdf3; }
.closed-note, .late-note { color: var(--red); font-weight: 650; }
.timeline { display: grid; gap: 0; border-left: 2px solid #d0d5dd; margin-left: 8px; padding-left: 18px; }
.timeline > div { position: relative; display: grid; gap: 3px; padding: 0 0 18px; }
.timeline > div::before { position: absolute; top: 5px; left: -24px; width: 10px; height: 10px; border: 2px solid #fff; border-radius: 50%; background: var(--teal); content: ''; }
.timeline time, .timeline span { color: var(--muted); font-size: 11px; text-transform: uppercase; }
.forum-mini, .resource-list { display: grid; gap: 8px; }
.forum-mini a, .resource-list a { display: grid; gap: 3px; padding: 11px; border: 1px solid var(--line); border-radius: 6px; color: var(--ink); background: #fff; }
.forum-mini a:hover, .resource-list a:hover { border-color: var(--blue); text-decoration: none; }
.forum-mini small, .resource-list small { color: var(--muted); }
.empty-state { padding: 24px; border: 1px dashed #98a2b3; border-radius: 8px; color: var(--muted); text-align: center; background: #fff; }
.lesson-content { margin: 22px 0; padding: 24px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font-size: 16px; line-height: 1.75; }
.lesson-page > small { display: block; margin-top: 18px; color: var(--teal); font-weight: 650; }
.quiz-info > div { display: grid; gap: 8px; min-height: 90px; padding: 16px; }.quiz-info small { color: var(--muted); }.quiz-info strong { font-size: 20px; }
.quiz-clock { display: grid; min-width: 150px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 8px; text-align: right; background: #fff; }
.quiz-clock span { color: var(--muted); font-size: 11px; text-transform: uppercase; }.quiz-clock strong { font-size: 24px; color: var(--navy); }
.quiz-question { display: grid; gap: 10px; margin: 0 0 16px; padding: 20px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.quiz-question legend { display: flex; align-items: center; gap: 9px; width: 100%; padding: 0 4px; font-weight: 650; }
.quiz-question legend > span { display: grid; flex: 0 0 28px; height: 28px; place-items: center; border-radius: 50%; color: #fff; background: var(--navy); }
.quiz-question legend small { margin-left: auto; color: var(--muted); }
.quiz-option { display: flex; grid-template-columns: none; align-items: center; gap: 10px; min-height: 46px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 6px; cursor: pointer; font-weight: 500; }
.quiz-option:hover { border-color: var(--blue); background: #f8fbff; }.quiz-option input { width: auto; min-height: auto; }
.result-panel { display: grid; gap: 14px; padding: 28px; border: 1px solid var(--line); border-radius: 8px; background: #fff; text-align: center; }.result-panel strong { font-size: 34px; color: var(--navy); }
.quiz-review { display: flex; justify-content: space-between; gap: 14px; margin-bottom: 8px; padding: 14px; border-left: 4px solid #98a2b3; background: #fff; }.quiz-review.correct { border-color: var(--green); }.quiz-review.wrong { border-color: var(--red); }
.admin-tabs { display: grid; gap: 12px; }.admin-tabs > details { border: 1px solid var(--line); border-radius: 8px; background: #fff; }.admin-tabs > details > summary { padding: 16px 18px; cursor: pointer; font-size: 18px; font-weight: 650; }.detail-body { padding: 0 18px 18px; }
.teacher-lesson { display: grid; gap: 9px; padding: 14px 18px; border-top: 1px solid var(--line); }.teacher-lesson > div { display: grid; gap: 3px; }.teacher-lesson small { color: var(--muted); }
.resource-inline { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 8px; align-items: center; }.resource-inline input { min-width: 0; }
.option-editor { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 8px; align-items: center; }.option-editor > input[type="radio"] { width: auto; min-height: auto; }
.teacher-question > div { display: flex; gap: 10px; align-items: center; }.teacher-question > div > span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; color: #fff; background: var(--navy); }.teacher-question p { margin: 0; padding: 7px 10px; }.teacher-question .correct-option { color: var(--green); background: #ecfdf3; font-weight: 650; }
.forum-list { display: grid; gap: 10px; margin-top: 18px; }.forum-list > a { display: grid; grid-template-columns: minmax(0, 1fr) 80px; gap: 16px; padding: 17px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: #fff; }.forum-list > a:hover { border-color: var(--blue); text-decoration: none; }.forum-list h3 { margin: 4px 0; }.forum-list span, .forum-list small { color: var(--muted); }.forum-list > a > strong { display: grid; align-content: center; text-align: center; font-size: 22px; }.forum-list > a > strong small { display: block; font-size: 10px; }
.topic-head { margin: 16px 0; padding: 22px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }.topic-head > span, .topic-head > small { color: var(--muted); }.topic-head p { line-height: 1.6; }
.moderation-bar { display: flex; gap: 14px; align-items: center; margin-bottom: 14px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.post-list { display: grid; gap: 10px; margin: 14px 0; }.post-list article { padding: 17px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }.post-list article > div { display: flex; justify-content: space-between; gap: 12px; }.post-list article span { color: var(--muted); font-size: 12px; }.post-list article p { line-height: 1.6; }
.payment-segments { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.payment-segments label { display: block; cursor: pointer; }
.payment-segments input { position: absolute; opacity: 0; pointer-events: none; }
.payment-segments span { display: grid; min-height: 44px; place-items: center; border: 1px solid #cbd5e1; border-radius: 6px; background: #fff; }
.payment-segments span strong { font-weight: 600; }
.payment-segments span small { color: var(--muted); font-size: 11px; }
.payment-segments input:checked + span small { color: rgba(255, 255, 255, .82); }
.payment-segments input:checked + span { border-color: var(--navy); color: #fff; background: var(--navy); }
button:disabled, .btn:disabled { cursor: not-allowed; opacity: .55; }

@media (max-width: 900px) {
    .compact-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lms-columns { grid-template-columns: 1fr; }
    .lms-aside { position: static; }
    .resource-inline { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
    .compact-stats { grid-template-columns: 1fr 1fr; }
    .module-heading, .post-list article > div, .quiz-review { align-items: flex-start; flex-direction: column; }
    .resource-inline { grid-template-columns: 1fr; }
    .quiz-question legend { align-items: flex-start; flex-wrap: wrap; }
    .quiz-question legend small { width: 100%; margin-left: 37px; }
    .forum-list > a { grid-template-columns: 1fr; }
    .forum-list > a > strong { text-align: left; }
    .payment-segments { grid-template-columns: 1fr; }
    .checkout-steps { overflow-x: auto; }
    .checkout-steps span { flex: 0 0 150px; }
    .payment-flow { grid-template-columns: 1fr; }
    .profile-status-group { justify-items: start; }
}

/* Identidade institucional e biblioteca */
:root {
    --ink: #172033;
    --navy: #0a315f;
    --blue: #176b87;
    --teal: #177b73;
    --green: #287652;
    --gold: #c3923f;
    --coral: #b95d4f;
    --soft: #f3f6f8;
    --line: #d8e0e7;
    --muted: #627083;
    --shadow: 0 14px 34px rgba(26, 45, 70, .09);
}

body {
    font-family: "Alegreya Sans", "Segoe UI", sans-serif;
    font-size: 16px;
    color: var(--ink);
    background: #f6f8fa;
}

h1, h2, h3, p { overflow-wrap: anywhere; }
.home-page h1,
.home-page .section h2,
.experience-band h2,
.library-teaser h2,
.course-public-hero h1,
.library-hero h1 {
    font-family: "Alegreya", Georgia, serif;
    font-weight: 400;
}

.topbar {
    min-height: 96px;
    padding: 8px clamp(18px, 4vw, 56px);
    background: rgba(255, 255, 255, .97);
}

.brand { gap: 10px; min-width: 260px; text-decoration: none; }
.brand:hover { text-decoration: none; }
.brand strong { font-size: 20px; }
.brand small { font-size: 11px; }
.nav { align-items: center; gap: 6px 18px; }
.nav > a { display: inline-flex; align-items: center; gap: 7px; min-height: 38px; color: #27364a; }
.nav > a.active { color: var(--navy); box-shadow: inset 0 -2px var(--gold); }
.nav svg, .btn svg, .text-link svg, .icon-link svg, .icon-button svg { width: 18px; height: 18px; flex: 0 0 auto; }
.portal-link { padding: 0 13px; border: 1px solid var(--line); border-radius: 5px; }
.cart-link b { display: grid; width: 21px; height: 21px; place-items: center; border-radius: 50%; color: #fff; background: var(--coral); font-size: 11px; }
.icon-link, .icon-button { display: inline-grid; width: 40px; height: 40px; flex: 0 0 40px; place-items: center; border: 1px solid var(--line); border-radius: 5px; color: var(--navy); background: #fff; cursor: pointer; }
.nav > a.topbar-exit { justify-content: center; padding: 0; }
.icon-link:hover, .icon-button:hover { border-color: var(--navy); text-decoration: none; }
.icon-button.selected { color: #fff; border-color: var(--gold); background: var(--gold); }
.nav-toggle { display: none; width: 42px; height: 42px; place-items: center; border: 1px solid var(--line); border-radius: 5px; color: var(--navy); background: #fff; }
.nav-toggle svg { width: 21px; height: 21px; }

.btn { gap: 8px; border-radius: 5px; font-weight: 650; }
.btn-accent { color: #172033; border-color: #e2b65f; background: #e2b65f; }
.btn-accent:hover { color: #172033; background: #efc978; }
.btn-ghost-light { color: #fff; border-color: rgba(255,255,255,.7); background: rgba(7, 29, 51, .28); }
.btn-ghost-light:hover { color: #fff; background: rgba(7, 29, 51, .55); }
.eyebrow { color: #9a6d20; }
.eyebrow.light { color: #f4c96d; }
.text-link { display: inline-flex; align-items: center; gap: 7px; color: var(--navy); font-weight: 650; }

.institutional-hero {
    position: relative;
    min-height: 620px;
    height: 78vh;
    max-height: 780px;
    display: grid;
    align-content: space-between;
    padding: 108px clamp(20px, 7vw, 104px) 28px;
    color: #fff;
    background: url('../img/students-campus-hero.jpg') 50% 43% / cover no-repeat;
    isolation: isolate;
}
.institutional-hero::before { position: absolute; inset: 0; z-index: -1; background: rgba(5, 31, 61, .67); content: ""; }
.institutional-hero__content { width: min(740px, 100%); }
.institutional-hero h1 { max-width: 680px; margin: 0 0 18px; font-size: 52px; line-height: 1.08; letter-spacing: 0; }
.institutional-hero__content > p:not(.eyebrow) { max-width: 640px; margin: 0 0 28px; color: #edf3f8; font-size: 18px; line-height: 1.6; }
.hero-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: min(100%, 1050px); border-top: 1px solid rgba(255,255,255,.45); }
.hero-facts > div { display: grid; gap: 2px; padding: 17px 28px 0 0; }
.hero-facts strong { font-size: 16px; }
.hero-facts span { color: #d9e4ec; font-size: 12px; }

.section { max-width: 1440px; margin: 0 auto; }
.section-head--editorial { align-items: end; margin-bottom: 32px; }
.section-head--editorial h2 { max-width: 620px; margin: 0; font-size: 32px; line-height: 1.2; }
.course-showcase { padding-top: 64px; padding-bottom: 76px; background: #fff; }
.public-course-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.public-course-card { min-height: 350px; padding: 23px; border-top: 3px solid var(--teal); box-shadow: none; }
.public-course-card:nth-child(2n) { border-top-color: var(--gold); }
.public-course-card:nth-child(3n) { border-top-color: var(--coral); }
.course-card__top, .course-card__footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.course-card__top small { color: var(--muted); }
.public-course-card h3 { font-size: 22px; line-height: 1.25; }
.public-course-card p { min-height: 66px; }
.public-course-card dl { grid-template-columns: repeat(3, minmax(0, 1fr)); padding-top: 12px; border-top: 1px solid var(--line); }
.public-course-card .course-card__footer { margin-top: auto; }
.public-course-card .course-card__footer > strong { margin: 0; font-size: 19px; }

.experience-band { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: stretch; color: #fff; background: #173f48; }
.experience-band > img { width: 100%; min-height: 600px; height: 100%; object-fit: cover; object-position: center; }
.experience-band > div { display: grid; align-content: center; padding: 64px clamp(28px, 6vw, 92px); }
.experience-band h2, .library-teaser h2 { margin: 0 0 20px; font-size: 35px; line-height: 1.18; }
.experience-band > div > p:not(.eyebrow), .library-teaser p { color: #dce9e9; font-size: 17px; line-height: 1.65; }
.feature-list { display: grid; gap: 18px; margin: 28px 0 0; padding: 0; list-style: none; }
.feature-list li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; align-items: start; }
.feature-list svg { width: 28px; height: 28px; color: #f4c96d; }
.feature-list strong { display: block; color: #fff; font-size: 16px; }

.journey-section { padding-top: 76px; padding-bottom: 82px; }
.journey-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; border-top: 1px solid #aebac5; list-style: none; }
.journey-steps li { position: relative; display: grid; gap: 9px; padding: 28px 34px 0 0; }
.journey-steps li::before { position: absolute; top: -5px; left: 0; width: 9px; height: 9px; border-radius: 50%; background: var(--coral); content: ""; }
.journey-steps span { color: var(--coral); font-family: "Alegreya", Georgia, serif; font-size: 23px; }
.journey-steps strong { font-size: 18px; }
.journey-steps p { margin: 0; color: var(--muted); }

.library-teaser { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, .8fr); color: #fff; background: #12345a; }
.library-teaser > div { display: grid; align-content: center; justify-items: start; padding: 64px clamp(28px, 7vw, 105px); }
.library-teaser img { width: 100%; min-height: 480px; height: 100%; object-fit: cover; }
.library-teaser .btn { margin-top: 18px; }

.interest-section { display: grid; grid-template-columns: minmax(0, .8fr) minmax(420px, 1.2fr); gap: 64px; padding-top: 80px; padding-bottom: 80px; }
.interest-copy h2 { max-width: 520px; margin: 0 0 18px; font-size: 32px; line-height: 1.2; }
.interest-copy > p:not(.eyebrow) { max-width: 500px; color: var(--muted); font-size: 17px; }
.contact-lines { display: grid; gap: 12px; margin-top: 30px; }
.contact-lines span { display: flex; align-items: center; gap: 10px; }
.contact-lines svg { width: 19px; color: var(--teal); }
.interest-form { box-shadow: none; }

.footer { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: 30px 56px; padding: 42px clamp(20px, 6vw, 90px) 24px; background: #121e2d; }
.footer > div { display: grid; align-content: start; justify-items: start; gap: 7px; }
.footer a { color: #cfd8e2; }
.footer-brand strong { font-family: "Alegreya", Georgia, serif; font-size: 30px; font-weight: 500; }
.footer small { grid-column: 1 / -1; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.16); color: #9eabb9; }

.admin-shell { grid-template-columns: 245px minmax(0, 1fr); max-width: 1680px; margin: 0 auto; padding-top: 28px; }
.side { max-height: calc(100vh - 108px); gap: 2px; overflow-y: auto; padding: 10px; box-shadow: none; }
.side > small { margin: 15px 10px 5px; color: #8a97a6; font-size: 10px; font-weight: 700; text-transform: uppercase; }
.side > a { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; align-items: center; padding: 9px 10px; font-size: 13px; }
.side > a svg { width: 17px; height: 17px; color: #617084; }
.side > a.active { color: var(--navy); background: #eaf1f5; box-shadow: inset 3px 0 var(--teal); }
.side > a.active svg { color: var(--teal); }
.admin-content { gap: 22px; }
.admin-content > h1, .admin-heading h1 { margin: 0; font-size: 27px; font-weight: 700; }
.admin-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.admin-heading p { margin: 3px 0 0; color: var(--muted); }
.back-link { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 14px; color: var(--navy); font-size: 13px; font-weight: 650; }
.back-link svg { width: 17px; height: 17px; }
.academic-form, .library-admin-form { padding: 24px 28px; box-shadow: none; }
.check-row { display: flex; align-items: center; gap: 18px; min-height: 42px; }
.form-section legend { font-size: 16px; }

.library-hero { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(350px, .8fr); min-height: 330px; color: #fff; background: #123d4a; }
.library-hero > div { display: grid; align-content: center; padding: 50px clamp(24px, 7vw, 100px); }
.library-hero h1 { max-width: 720px; margin: 0 0 15px; font-size: 40px; line-height: 1.12; }
.library-hero p:not(.eyebrow) { max-width: 720px; margin: 0; color: #dce9eb; font-size: 17px; }
.library-hero img { width: 100%; height: 330px; object-fit: cover; }
.library-page { max-width: 1500px; margin: 0 auto; }
.library-ava-heading { align-items: start; margin-bottom: 26px; }
.library-ava-heading .text-link { margin-bottom: 22px; }
.library-ava-heading .eyebrow { margin: 0 0 5px; }
.library-ava-heading h1 { max-width: 760px; margin: 0 0 8px; }
.library-ava-heading p:last-child { max-width: 780px; margin: 0; color: var(--muted); }
.library-search { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(200px, 280px) auto; gap: 14px; align-items: end; padding: 20px; border: 1px solid var(--line); background: #fff; }
.search-input { position: relative; }
.search-input svg { position: absolute; top: 12px; left: 12px; width: 18px; color: var(--muted); }
.search-input input { padding-left: 40px; }
.provider-warning { display: flex; align-items: center; gap: 8px; margin: 12px 0; padding: 10px 12px; border-left: 3px solid var(--gold); background: #fff9e9; }
.provider-warning svg { width: 18px; }
.library-result-head { margin-top: 48px; }
.library-result-head h2 { margin-bottom: 0; font-size: 28px; }
.book-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.book-card { display: grid; grid-template-columns: 105px minmax(0, 1fr); min-height: 300px; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.book-cover { min-height: 100%; background: #e7edf1; }
.book-cover img { width: 100%; height: 100%; object-fit: cover; }
.book-cover--empty { display: grid; align-content: center; justify-items: center; gap: 8px; color: #7b8795; }
.book-cover--empty svg { width: 34px; height: 34px; }
.book-cover--empty span { font-family: "Alegreya", Georgia, serif; font-size: 12px; }
.book-card__body { display: flex; min-width: 0; flex-direction: column; gap: 7px; padding: 16px; }
.book-card h3 { margin: 0; font-size: 18px; line-height: 1.25; }
.book-card p { margin: 0; color: var(--muted); font-size: 13px; }
.book-subtitle { font-style: italic; }
.book-authors { color: #3b4858 !important; font-weight: 600; }
.book-meta { display: flex; justify-content: space-between; gap: 8px; color: var(--teal); font-size: 10px; font-weight: 700; text-transform: uppercase; }
.access-note { display: flex; gap: 6px; align-items: flex-start; margin-top: auto; color: var(--green); }
.access-note svg { width: 15px; height: 15px; flex: 0 0 auto; }
.book-actions { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 4px; }
.book-actions .icon-button { width: 34px; height: 34px; }
.saved-shelf, .saved-lessons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.saved-shelf > a, .saved-lessons > a, .ava-quick-links > a { display: grid; grid-template-columns: 26px minmax(0, 1fr) 20px; gap: 10px; align-items: center; padding: 14px; border: 1px solid var(--line); border-radius: 6px; color: var(--ink); background: #fff; }
.saved-shelf a:hover, .saved-lessons a:hover, .ava-quick-links a:hover { border-color: var(--teal); text-decoration: none; }
.saved-shelf svg, .saved-lessons svg, .ava-quick-links svg { width: 20px; color: var(--teal); }
.saved-shelf small, .saved-lessons small, .ava-quick-links small { display: block; color: var(--muted); }
.collection-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.collection-grid > a { position: relative; min-height: 220px; padding: 20px; border: 1px solid var(--line); border-radius: 6px; color: var(--ink); background: #fff; }
.collection-grid > a:hover { border-color: var(--blue); text-decoration: none; }
.collection-grid span { color: var(--coral); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.collection-grid h3 { margin: 12px 0 7px; font-size: 19px; }
.collection-grid p { color: var(--muted); font-size: 13px; }
.collection-grid small { position: absolute; bottom: 18px; left: 20px; }
.collection-grid > a > svg { position: absolute; right: 18px; bottom: 16px; width: 19px; }
.empty-state { display: grid; justify-items: center; gap: 6px; }
.empty-state svg { width: 30px; }

.ava-quick-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 22px 0; }
.aside-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.aside-heading a { display: inline-grid; width: 30px; height: 30px; place-items: center; }
.aside-heading svg { width: 17px; }
.library-mini { display: grid; gap: 8px; margin-bottom: 24px; }
.library-mini > a { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 9px; align-items: start; padding: 10px; border: 1px solid var(--line); border-radius: 5px; color: var(--ink); background: #fff; }
.library-mini > a:hover { border-color: var(--teal); text-decoration: none; }
.library-mini svg { width: 18px; color: var(--teal); }
.library-mini small { display: block; color: var(--muted); }
.lesson-note-panel { display: grid; gap: 12px; margin: 22px 0; padding: 20px; border: 1px solid var(--line); border-left: 4px solid var(--teal); background: #fff; }
.lesson-note-panel > div:first-child { display: flex; align-items: center; gap: 10px; }
.lesson-note-panel > div:first-child svg { color: var(--teal); }
.lesson-note-panel small { display: block; color: var(--muted); }
.lesson-note-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; }

.course-public-hero { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 50px; align-items: end; padding: 64px clamp(20px, 7vw, 100px); color: #fff; background: #113b5c; }
.course-public-hero h1 { margin: 0 0 14px; font-size: 44px; line-height: 1.12; }
.course-public-hero > div > p:not(.eyebrow) { max-width: 760px; color: #dce6ef; font-size: 18px; }
.course-public-facts { display: flex; flex-wrap: wrap; gap: 14px 28px; margin-top: 28px; }
.course-public-facts span { display: grid; grid-template-columns: 24px auto; column-gap: 8px; color: #c9d8e3; font-size: 12px; }
.course-public-facts svg { grid-row: 1 / 3; width: 21px; color: #f4c96d; }
.course-public-facts strong { color: #fff; font-size: 14px; }
.course-public-hero > aside { display: grid; gap: 10px; padding: 24px; color: var(--ink); background: #fff; }
.course-public-hero > aside > strong { font-size: 31px; color: var(--green); }
.course-public-hero > aside > a { text-align: center; font-size: 13px; }
.course-public-page { max-width: 1420px; margin: 0 auto; }
.course-public-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 64px; }
.course-copy { margin-bottom: 52px; }
.course-copy h2, .course-data-panel h2 { font-size: 28px; }
.course-copy > p { color: #435167; font-size: 16px; line-height: 1.75; }
.curriculum-list { border-top: 1px solid var(--line); }
.curriculum-list details { border-bottom: 1px solid var(--line); background: #fff; }
.curriculum-list summary { display: grid; grid-template-columns: 44px minmax(0, 1fr) 70px; gap: 14px; align-items: center; padding: 16px; cursor: pointer; }
.curriculum-list summary > span { color: var(--coral); font-weight: 700; }
.curriculum-list summary small { text-align: right; }
.curriculum-list details > div { padding: 0 74px 18px; color: var(--muted); }
.curriculum-list dl { margin-top: 14px; }
.course-data-panel { position: sticky; top: 100px; align-self: start; padding-left: 26px; border-left: 3px solid var(--gold); }
.course-data-panel dl { grid-template-columns: 1fr; }
.course-data-panel dl > div { padding: 11px 0; border-bottom: 1px solid var(--line); }
.course-data-panel h3 { margin: 26px 0 6px; font-size: 16px; }
.course-data-panel p { color: var(--muted); }

@media (max-width: 1240px) {
    .public-course-grid, .book-grid, .collection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .institutional-hero h1 { font-size: 47px; }
}

@media (max-width: 900px) {
    .topbar { align-items: center; flex-flow: row wrap; }
    .brand { min-width: 0; }
    .nav-toggle { display: grid; }
    .nav { display: none; width: 100%; align-items: stretch; flex-direction: column; padding: 10px 0 4px; border-top: 1px solid var(--line); }
    .nav.open { display: flex; }
    .nav > a { width: 100%; padding: 5px 8px; }
    .topbar-exit { width: 100% !important; justify-content: start; padding-left: 8px; border: 0; }
    .institutional-hero { min-height: 600px; height: 76vh; padding-top: 80px; }
    .institutional-hero h1 { font-size: 42px; }
    .experience-band, .library-teaser, .interest-section, .library-hero, .course-public-layout { grid-template-columns: 1fr; }
    .experience-band > img { min-height: 420px; max-height: 520px; }
    .library-teaser img { min-height: 360px; max-height: 460px; }
    .journey-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 36px; }
    .library-hero img { display: none; }
    .library-search { grid-template-columns: 1fr 1fr; }
    .library-search button { grid-column: 1 / -1; }
    .saved-shelf, .saved-lessons { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .course-public-hero { grid-template-columns: 1fr; }
    .course-public-hero > aside { width: min(100%, 440px); }
    .course-data-panel { position: static; padding-left: 0; border-left: 0; }
    .admin-shell { grid-template-columns: minmax(0, 1fr); padding: 20px 12px; }
    .admin-shell > .side { position: static; display: flex; width: 100%; max-width: none; max-height: none; overflow-x: auto; white-space: nowrap; }
    .side > small { display: none; }
    .side > a { display: flex; flex: 0 0 auto; }
    .admin-content { width: 100%; min-width: 0; }
    .admin-heading { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 680px) {
    .brand-mark { width: 66px; height: 66px; flex-basis: 66px; }
    .brand-mark img { width: 172px; height: 172px; }
    .brand small { display: none; }
    .institutional-hero { min-height: 560px; height: auto; padding: 72px 20px 24px; }
    .institutional-hero h1 { font-size: 35px; }
    .institutional-hero__content > p:not(.eyebrow) { font-size: 17px; }
    .hero-facts { grid-template-columns: 1fr; margin-top: 54px; }
    .hero-facts > div { padding-top: 10px; }
    .section-head--editorial h2, .interest-copy h2 { font-size: 28px; }
    .public-course-grid, .book-grid, .collection-grid, .saved-shelf, .saved-lessons, .ava-quick-links { grid-template-columns: 1fr; }
    .public-course-card { min-height: 320px; }
    .experience-band h2, .library-teaser h2 { font-size: 30px; }
    .experience-band > div, .library-teaser > div { padding: 50px 22px; }
    .journey-steps { grid-template-columns: 1fr; border-top: 0; }
    .journey-steps li { padding: 18px 0 20px; border-top: 1px solid #aebac5; }
    .interest-section { grid-template-columns: 1fr; gap: 30px; }
    .interest-form .grid-2 { grid-template-columns: 1fr; }
    .interest-form .span-2 { grid-column: auto; }
    .footer { grid-template-columns: 1fr 1fr; }
    .footer-brand, .footer small { grid-column: 1 / -1; }
    .library-search { grid-template-columns: 1fr; }
    .library-search button { grid-column: auto; }
    .library-hero h1, .course-public-hero h1 { font-size: 33px; }
    .book-card { grid-template-columns: 92px minmax(0, 1fr); }
    .library-page { padding-left: 14px; padding-right: 14px; }
    .lesson-note-actions { align-items: stretch; flex-direction: column; }
    .course-public-hero { padding: 44px 20px; }
    .course-public-facts { flex-direction: column; }
    .curriculum-list summary { grid-template-columns: 34px minmax(0, 1fr); }
    .curriculum-list summary small { grid-column: 2; text-align: left; }
    .curriculum-list details > div { padding: 0 16px 18px; }
    .academic-form, .library-admin-form { padding: 20px 16px; }
}

/* Páginas institucionais: Sobre, Pesquisa e Extensão */
.academic-hero {
    position: relative;
    min-height: 610px;
    display: grid;
    align-content: space-between;
    gap: 70px;
    padding: clamp(76px, 10vw, 124px) clamp(20px, 7vw, 104px) 30px;
    color: #fff;
    background-position: center;
    background-size: cover;
    isolation: isolate;
}
.academic-hero::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(90deg, rgba(5, 31, 61, .92) 0%, rgba(5, 31, 61, .72) 50%, rgba(5, 31, 61, .34) 100%);
    content: "";
}
.academic-hero--about { background-image: url('../img/students-campus-hero.jpg'); background-position: 50% 43%; }
.academic-hero--research { background-image: url('../img/students-library.jpg'); }
.academic-hero--extension { background-image: url('../img/students-classroom.jpg'); }
.academic-hero--research::before { background: linear-gradient(90deg, rgba(8, 38, 57, .94), rgba(8, 47, 67, .72) 58%, rgba(8, 47, 67, .4)); }
.academic-hero--extension::before { background: linear-gradient(90deg, rgba(18, 51, 54, .94), rgba(20, 67, 65, .72) 58%, rgba(20, 67, 65, .38)); }
.academic-hero__content { width: min(780px, 100%); }
.academic-hero h1,
.editorial-section h2,
.institutional-feature h2,
.journal-feature h2,
.ipatri-feature h2,
.extension-flow h2 {
    font-family: "Alegreya", Georgia, serif;
    font-weight: 400;
}
.academic-hero h1 { max-width: 760px; margin: 0 0 20px; font-size: clamp(42px, 5.3vw, 66px); line-height: 1.02; letter-spacing: -.025em; }
.academic-hero__content > p:not(.eyebrow) { max-width: 690px; margin: 0 0 30px; color: #eef4f7; font-size: 19px; line-height: 1.62; }
.academic-hero__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: min(1120px, 100%); border-top: 1px solid rgba(255, 255, 255, .42); }
.academic-hero__facts > div { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 12px; align-items: start; padding: 20px 32px 0 0; }
.academic-hero__facts svg { width: 25px; color: #f4c96d; }
.academic-hero__facts span { color: #dce8ed; font-size: 13px; line-height: 1.35; }
.academic-hero__facts strong { display: block; margin-bottom: 2px; color: #fff; font-size: 16px; }

.editorial-section { max-width: 1360px; margin: 0 auto; padding: clamp(64px, 7vw, 96px) clamp(20px, 7vw, 100px); }
.editorial-section h2 { margin: 0; font-size: clamp(34px, 4vw, 48px); line-height: 1.08; }
.institutional-intro,
.extension-intro { display: grid; grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr); gap: clamp(42px, 8vw, 116px); align-items: start; }
.editorial-copy { padding-top: 22px; border-top: 1px solid #aebbc6; }
.editorial-copy p { color: #526173; font-size: 17px; line-height: 1.75; }
.editorial-copy .lead,
.research-group .lead { margin-top: 0; color: var(--ink); font-size: 22px; line-height: 1.55; }

.institutional-principles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; padding-top: 0; }
.principle-card { position: relative; min-height: 310px; padding: 34px; overflow: hidden; background: #fff; border: 1px solid var(--line); }
.principle-card > span { position: absolute; top: 24px; right: 28px; color: #a87325; font-family: "Alegreya", Georgia, serif; font-size: 20px; }
.principle-card > svg { width: 34px; height: 34px; margin-bottom: 52px; color: var(--teal); }
.principle-card h3 { margin: 0 0 12px; font-family: "Alegreya", Georgia, serif; font-size: 28px; font-weight: 500; }
.principle-card p { margin: 0; color: var(--muted); line-height: 1.65; }
.principle-card:nth-child(2) { background: #f1f5f5; }
.principle-card:nth-child(3) { color: #fff; background: #153d48; border-color: #153d48; }
.principle-card:nth-child(3) p { color: #dce7e9; }
.principle-card:nth-child(3) > svg { color: #f4c96d; }

.institutional-feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); color: #fff; background: #12345a; }
.institutional-feature > img { width: 100%; min-height: 600px; height: 100%; object-fit: cover; }
.institutional-feature > div { display: grid; align-content: center; padding: 72px clamp(30px, 7vw, 100px); }
.institutional-feature h2 { margin: 0 0 22px; font-size: clamp(34px, 4vw, 46px); line-height: 1.08; }
.institutional-feature > div > p:not(.eyebrow) { margin: 0; color: #dbe6ef; font-size: 18px; line-height: 1.7; }
.knowledge-paths__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.knowledge-paths__grid > a { min-height: 210px; display: grid; grid-template-columns: 42px minmax(0, 1fr) 24px; gap: 16px; align-items: start; padding: 28px; color: var(--ink); background: #fff; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-decoration: none; transition: background .2s ease, transform .2s ease; }
.knowledge-paths__grid > a:hover { background: #eef4f5; transform: translateY(-3px); }
.knowledge-paths__grid > a > svg:first-child { width: 32px; height: 32px; color: var(--teal); }
.knowledge-paths__grid > a > svg:last-child { width: 20px; color: var(--navy); }
.knowledge-paths__grid small,
.knowledge-paths__grid strong,
.knowledge-paths__grid em { display: block; }
.knowledge-paths__grid small { margin-bottom: 12px; color: #9a6d20; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.knowledge-paths__grid strong { margin-bottom: 7px; font-family: "Alegreya", Georgia, serif; font-size: 24px; font-weight: 500; }
.knowledge-paths__grid em { color: var(--muted); font-style: normal; line-height: 1.45; }

.research-group { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(330px, .88fr); gap: clamp(46px, 8vw, 110px); scroll-margin-top: 120px; }
.research-group__intro > p:not(.eyebrow) { color: #526173; font-size: 17px; line-height: 1.75; }
.research-group__intro .lead { color: var(--ink); font-size: 22px; }
.research-group__agenda { padding: 36px; color: #fff; background: #153d48; }
.research-group__agenda ul { display: grid; gap: 0; margin: 24px 0 0; padding: 0; list-style: none; }
.research-group__agenda li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 15px; padding: 21px 0; border-top: 1px solid rgba(255, 255, 255, .18); }
.research-group__agenda li > svg { width: 26px; color: #f4c96d; }
.research-group__agenda strong { display: block; margin-bottom: 4px; }
.research-group__agenda span { color: #dce8e9; line-height: 1.45; }
.research-lines-section { max-width: none; background: #eef3f5; }
.research-lines-section > * { max-width: 1160px; margin-left: auto; margin-right: auto; }
.research-lines { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.research-lines article { min-height: 290px; padding: 30px; background: #fff; border: 1px solid var(--line); }
.research-lines article + article { border-left: 0; }
.research-lines span { color: var(--coral); font-family: "Alegreya", Georgia, serif; font-size: 22px; }
.research-lines h3 { margin: 52px 0 12px; font-family: "Alegreya", Georgia, serif; font-size: 25px; font-weight: 500; line-height: 1.15; }
.research-lines p { margin: 0; color: var(--muted); line-height: 1.6; }

.journal-feature { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(360px, .75fr); gap: clamp(50px, 8vw, 120px); align-items: center; padding: clamp(70px, 8vw, 108px) clamp(20px, 7vw, 104px); color: #fff; background: #0b2e54; }
.journal-feature__copy { max-width: 800px; }
.journal-feature h2 { max-width: 720px; margin: 0 0 22px; font-size: clamp(37px, 4.5vw, 54px); line-height: 1.04; }
.journal-feature__copy > p:not(.eyebrow) { color: #d9e5ee; font-size: 18px; line-height: 1.7; }
.journal-tags { display: flex; flex-wrap: wrap; gap: 9px; margin: 28px 0; }
.journal-tags span { padding: 7px 11px; border: 1px solid rgba(255, 255, 255, .3); color: #eef4f7; font-size: 12px; }
.journal-feature__mark { min-height: 390px; display: flex; flex-direction: column; justify-content: space-between; padding: 34px; border: 1px solid rgba(255, 255, 255, .35); background: linear-gradient(145deg, rgba(255, 255, 255, .06), rgba(23, 126, 137, .2)); }
.journal-feature__mark > span { color: #f4c96d; font-size: 14px; font-weight: 700; letter-spacing: .18em; }
.journal-feature__mark strong { font-family: "Alegreya", Georgia, serif; font-size: clamp(28px, 3vw, 40px); font-weight: 400; line-height: 1.05; }
.journal-feature__mark small { max-width: 220px; color: #cddbe5; text-transform: uppercase; letter-spacing: .08em; }
.participation-callout { display: flex; align-items: center; justify-content: space-between; gap: 50px; }
.participation-callout > div { max-width: 790px; }
.participation-callout h2 { font-size: clamp(32px, 4vw, 44px); }
.participation-callout p:last-child { color: var(--muted); font-size: 17px; line-height: 1.65; }
.participation-callout > .btn { flex: 0 0 auto; }

.ipatri-feature { display: grid; grid-template-columns: minmax(320px, .75fr) minmax(0, 1.25fr); gap: clamp(50px, 8vw, 120px); align-items: center; padding: clamp(70px, 8vw, 108px) clamp(20px, 7vw, 104px); color: #fff; background: #163f48; }
.ipatri-feature__identity { min-height: 330px; display: flex; flex-direction: column; justify-content: space-between; padding: 34px; border: 1px solid rgba(255, 255, 255, .3); background: rgba(255, 255, 255, .05); }
.ipatri-feature__identity span { color: #f4c96d; font-family: "Alegreya", Georgia, serif; font-size: clamp(54px, 7vw, 86px); line-height: 1; }
.ipatri-feature__identity strong { max-width: 270px; font-size: 15px; line-height: 1.45; text-transform: uppercase; letter-spacing: .06em; }
.ipatri-feature__copy h2 { margin: 0 0 20px; font-size: clamp(36px, 4.5vw, 50px); line-height: 1.05; }
.ipatri-feature__copy > p:not(.eyebrow) { color: #dce9e9; font-size: 18px; line-height: 1.7; }
.extension-activities { scroll-margin-top: 120px; }
.extension-activities__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.extension-activities__grid article { min-height: 260px; display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 20px; padding: 30px; background: #fff; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.extension-activities__grid article > svg { width: 34px; height: 34px; color: var(--teal); }
.extension-activities__grid small { display: block; margin-bottom: 30px; color: #9a6d20; font-weight: 700; }
.extension-activities__grid h3 { margin: 0 0 10px; font-family: "Alegreya", Georgia, serif; font-size: 25px; font-weight: 500; }
.extension-activities__grid p { margin: 0; color: var(--muted); line-height: 1.6; }
.extension-flow { display: grid; grid-template-columns: minmax(280px, .7fr) minmax(0, 1.3fr); gap: clamp(50px, 8vw, 110px); align-items: start; padding: clamp(70px, 8vw, 100px) clamp(20px, 7vw, 104px); color: #fff; background: #12345a; }
.extension-flow > div > p:not(.eyebrow) { color: #dbe6ef; font-size: 17px; line-height: 1.65; }
.extension-flow h2 { margin: 0 0 18px; font-size: clamp(34px, 4vw, 46px); line-height: 1.08; }
.extension-flow ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255, 255, 255, .35); border-left: 1px solid rgba(255, 255, 255, .35); }
.extension-flow li { min-height: 170px; padding: 23px; border-right: 1px solid rgba(255, 255, 255, .35); border-bottom: 1px solid rgba(255, 255, 255, .35); }
.extension-flow li span { display: block; margin-bottom: 26px; color: #f4c96d; font-family: "Alegreya", Georgia, serif; font-size: 21px; }
.extension-flow li strong { font-size: 18px; }
.extension-flow li p { margin: 6px 0 0; color: #dbe6ef; }

@media (max-width: 1050px) {
    .footer { grid-template-columns: 1.5fr repeat(3, 1fr); gap: 30px; }
    .journal-feature { grid-template-columns: minmax(0, 1fr) 320px; }
}

@media (max-width: 900px) {
    .footer { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .footer-brand, .footer small { grid-column: 1 / -1; }
    .academic-hero { min-height: 600px; }
    .institutional-intro,
    .extension-intro,
    .research-group,
    .journal-feature,
    .ipatri-feature,
    .extension-flow,
    .institutional-feature { grid-template-columns: 1fr; }
    .institutional-principles,
    .knowledge-paths__grid,
    .research-lines { grid-template-columns: 1fr; }
    .research-lines article + article { border-top: 0; border-left: 1px solid var(--line); }
    .institutional-feature > img { min-height: 420px; max-height: 520px; }
    .journal-feature__mark,
    .ipatri-feature__identity { width: min(100%, 520px); min-height: 310px; }
    .participation-callout { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 680px) {
    .footer { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .academic-hero { min-height: 670px; padding: 70px 20px 24px; }
    .academic-hero::before { background: rgba(7, 36, 62, .82); }
    .academic-hero--extension::before { background: rgba(18, 61, 61, .82); }
    .academic-hero h1 { font-size: 39px; }
    .academic-hero__content > p:not(.eyebrow) { font-size: 17px; }
    .academic-hero__facts { grid-template-columns: 1fr; }
    .academic-hero__facts > div { padding-top: 11px; }
    .editorial-section { padding: 58px 20px; }
    .institutional-principles { padding-top: 0; }
    .principle-card { min-height: 270px; }
    .institutional-feature > div { padding: 54px 22px; }
    .knowledge-paths__grid > a { grid-template-columns: 34px minmax(0, 1fr) 20px; padding: 22px; }
    .research-group__agenda { padding: 27px 22px; }
    .research-lines article { min-height: 250px; padding: 25px; }
    .research-lines h3 { margin-top: 34px; }
    .journal-feature,
    .ipatri-feature,
    .extension-flow { padding: 60px 20px; }
    .journal-feature__mark,
    .ipatri-feature__identity { min-height: 280px; padding: 26px; }
    .extension-activities__grid { grid-template-columns: 1fr; }
    .extension-activities__grid article { min-height: 240px; padding: 24px 20px; }
    .extension-flow ol { grid-template-columns: 1fr; }
    .extension-flow li { min-height: 145px; }
    .participation-callout > .btn { width: 100%; }
}

/* Atendimento híbrido: widget público, protocolo e central humana */
.support-widget-button { position: fixed; right: 24px; bottom: 22px; z-index: 80; min-width: 142px; height: 54px; padding: 0 18px; display: flex; align-items: center; justify-content: center; gap: 9px; border: 0; border-radius: 17px; color: #fff; background: linear-gradient(135deg, #063e7b, #0a659f); box-shadow: 0 16px 38px rgba(6,43,95,.3); cursor: pointer; font-weight: 750; }
.support-widget-button:hover { transform: translateY(-2px); box-shadow: 0 19px 44px rgba(6,43,95,.36); }
.support-widget-button svg { width: 21px; }
.support-widget { position: fixed; right: 24px; bottom: 88px; z-index: 90; width: min(410px, calc(100vw - 30px)); height: min(690px, calc(100vh - 112px)); display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgba(6,43,95,.13); border-radius: 22px; background: #fff; box-shadow: 0 30px 85px rgba(13,34,64,.28); opacity: 0; visibility: hidden; transform: translateY(18px) scale(.97); transform-origin: bottom right; transition: .2s ease; }
.support-widget.open { opacity: 1; visibility: visible; transform: none; }
.support-widget > header { position: relative; min-height: 150px; padding: 23px; color: #fff; background: linear-gradient(145deg, #052e65 0%, #0a5a91 72%, #177e89 140%); overflow: hidden; }
.support-widget > header::after { content: ""; position: absolute; width: 220px; height: 220px; right: -110px; top: -125px; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; box-shadow: 0 0 0 48px rgba(255,255,255,.035); }
.support-widget > header > button { position: absolute; top: 18px; right: 18px; z-index: 2; width: 35px; height: 35px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; color: #fff; background: rgba(255,255,255,.08); cursor: pointer; }
.support-widget > header > p { max-width: 310px; margin: 16px 0 0; color: rgba(255,255,255,.76); font-size: 12px; line-height: 1.45; }
.support-widget-brand { position: relative; z-index: 1; display: flex; gap: 12px; align-items: center; }
.support-widget-brand > span { width: 43px; height: 43px; display: grid; place-items: center; color: var(--navy); border-radius: 13px; background: #fff; }
.support-widget-brand > span svg { width: 22px; }
.support-widget-brand small, .support-widget-brand strong { display: block; }
.support-widget-brand small { color: rgba(255,255,255,.68); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.support-widget-brand strong { margin-top: 3px; font-family: "Alegreya", Georgia, serif; font-size: 23px; font-weight: 650; }
.support-widget-tabs { min-height: 53px; display: grid; grid-template-columns: repeat(3,1fr); border-bottom: 1px solid var(--line); background: #fff; }
.support-widget-tabs button { position: relative; border: 0; color: #7b8798; background: transparent; cursor: pointer; font-size: 12px; font-weight: 750; }
.support-widget-tabs button.active { color: var(--navy); }
.support-widget-tabs button.active::after { content: ""; position: absolute; right: 25%; bottom: 0; left: 25%; height: 3px; border-radius: 3px 3px 0 0; background: var(--teal); }
.support-widget-body { min-height: 0; flex: 1; overflow: hidden; background: #f5f8fb; }
.support-widget-panel { height: 100%; display: none; overflow: auto; padding: 20px; }
.support-widget-panel.active { display: block; }
.support-online { padding: 14px; display: flex; align-items: center; gap: 11px; border: 1px solid #dce7ef; border-radius: 12px; background: #fff; }
.support-online > span { width: 10px; height: 10px; border: 2px solid #d6f1e6; border-radius: 50%; background: #20a36d; box-shadow: 0 0 0 4px #e8f8f1; }
.support-online strong, .support-online small { display: block; }
.support-online strong { font-size: 12px; }
.support-online small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.support-widget-primary, .support-widget-secondary { width: 100%; display: flex; align-items: center; border-radius: 12px; cursor: pointer; }
.support-widget-primary { min-height: 72px; margin-top: 13px; padding: 0 15px; gap: 11px; border: 0; color: #fff; text-align: left; background: var(--navy); box-shadow: 0 8px 20px rgba(6,43,95,.16); }
.support-widget-primary > span { flex: 1; }
.support-widget-primary strong, .support-widget-primary small { display: block; }
.support-widget-primary small { margin-top: 2px; color: rgba(255,255,255,.65); font-size: 10px; }
.support-widget-primary > svg:last-child { width: 18px; }
.support-widget-secondary { min-height: 50px; margin-top: 10px; padding: 0 15px; gap: 10px; border: 1px solid var(--line); color: var(--ink); background: #fff; font-weight: 700; }
.support-widget-history { display: block; margin-top: 15px; text-align: center; font-size: 12px; font-weight: 700; }
.support-widget-cards { margin-top: 12px; display: grid; gap: 8px; }
.support-widget-cards button { width: 100%; padding: 12px 13px; display: block; border: 1px solid var(--line); border-radius: 11px; color: #34435a; text-align: left; background: #fff; cursor: pointer; }
.support-widget-cards button:hover { border-color: #9ebfd2; background: #fafdff; }
.support-widget-cards strong, .support-widget-cards small { display: block; }
.support-widget-cards strong { color: var(--navy); font-size: 12px; }
.support-widget-cards small { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.35; }
.support-widget-form, .support-page-form { display: grid; gap: 10px; }
.support-widget-form label, .support-page-form label { display: grid; gap: 4px; color: #435168; font-size: 11px; font-weight: 750; }
.support-widget-form label small, .support-page-form label small { color: var(--muted); font-weight: 400; }
.support-widget-form input, .support-widget-form select, .support-widget-form textarea, .support-page-form input, .support-page-form select, .support-page-form textarea { width: 100%; padding: 10px 11px; border: 1px solid #cbd7e3; border-radius: 9px; color: var(--ink); background: #fff; outline: none; font: inherit; font-size: 12px; }
.support-widget-form input:focus, .support-widget-form select:focus, .support-widget-form textarea:focus, .support-page-form input:focus, .support-page-form select:focus, .support-page-form textarea:focus { border-color: #5593ba; box-shadow: 0 0 0 3px rgba(16,92,159,.1); }
.support-widget-form textarea { resize: vertical; }
.support-widget-form > button { min-height: 45px; display: flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 10px; color: #fff; background: var(--teal); cursor: pointer; font-weight: 800; }
.support-widget-form > button:disabled { opacity: .55; cursor: wait; }
.support-widget-feedback { min-height: 17px; margin: 0; color: var(--teal); text-align: center; font-size: 11px; }
.support-widget-feedback.error { color: var(--red); }
.support-honeypot { position: absolute !important; left: -10000px !important; }
.support-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.support-widget-result { padding: 18px; border: 1px solid #b9dfcf; border-radius: 13px; background: #effaf5; text-align: center; }
.support-widget-result > * { display: block; }
.support-result-icon { width: 38px; height: 38px; margin: 0 auto 10px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--green); }
.support-widget-result strong { color: #165e3d; font-size: 15px; }
.support-widget-result small { margin-top: 4px; color: #48725f; }
.support-widget-result p { margin: 14px 0; color: #365648; font-size: 12px; text-align: left; white-space: pre-line; }
.support-widget-result a { margin-top: 13px; font-weight: 800; }
.support-faq-search { display: flex; align-items: center; gap: 8px; padding: 0 11px; border: 1px solid #cbd7e3; border-radius: 9px; background: #fff; }
.support-faq-search svg { width: 17px; color: var(--muted); }
.support-faq-search input { flex: 1; height: 43px; border: 0; outline: 0; background: transparent; }
.support-widget-faqs { margin-top: 11px; display: grid; gap: 7px; }
.support-widget-faqs details { padding: 0 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.support-widget-faqs summary { min-height: 45px; display: flex; align-items: center; justify-content: space-between; gap: 8px; cursor: pointer; list-style: none; color: var(--navy); font-size: 12px; font-weight: 750; }
.support-widget-faqs summary::-webkit-details-marker { display: none; }
.support-widget-faqs summary svg { width: 16px; }
.support-widget-faqs p { margin: 0 0 13px; color: var(--muted); font-size: 11px; }

.support-widget-panel.support-widget-chat { padding: 0; overflow: hidden; }
.support-widget-panel.support-widget-chat.active { display: flex; flex-direction: column; }
.support-chat-bar { min-height: 60px; padding: 10px 14px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--line); background: #fff; }
.support-chat-bar > div { min-width: 0; display: flex; align-items: center; gap: 10px; }
.support-chat-avatar { width: 36px; height: 36px; flex: 0 0 36px; display: grid; place-items: center; border-radius: 11px; color: #fff; background: linear-gradient(145deg,#063e7b,#0b79a0); font-family: "Alegreya",Georgia,serif; font-size: 18px; font-weight: 800; }
.support-chat-bar p { min-width: 0; margin: 0; }
.support-chat-bar strong, .support-chat-bar small { display: block; }
.support-chat-bar strong { color: var(--navy); font-size: 12px; }
.support-chat-bar small { margin-top: 2px; color: #7a8797; font-size: 9px; }
.support-chat-bar small i { width: 7px; height: 7px; display: inline-block; border-radius: 50%; background: #20a36d; box-shadow: 0 0 0 2px #dff5ea; }
.support-chat-bar > button { min-height: 31px; padding: 0 11px; border: 1px solid #cad8e5; border-radius: 99px; color: var(--navy); background: #fff; cursor: pointer; font-size: 9px; font-weight: 800; white-space: nowrap; }
.support-chat-bar > button:disabled { color: #557083; background: #edf5f7; cursor: default; }
.support-chat-messages { min-height: 150px; flex: 1; padding: 16px 14px; display: flex; flex-direction: column; gap: 10px; overflow: auto; scroll-behavior: smooth; background: #f2f5f8; }
.support-chat-bubble { max-width: 86%; align-self: flex-start; padding: 11px 12px; border: 1px solid #d8e2eb; border-radius: 14px 14px 14px 4px; background: #fff; box-shadow: 0 6px 15px rgba(16,35,69,.05); }
.support-chat-bubble.user { align-self: flex-end; border-color: #a9ccda; border-radius: 14px 14px 4px 14px; background: #dff0f5; }
.support-chat-bubble.agent { border-color: #b6dfce; background: #effaf5; }
.support-chat-bubble.system { max-width: 94%; align-self: center; border-style: dashed; border-radius: 10px; background: #fff9ea; }
.support-chat-bubble > span { display: block; margin-bottom: 4px; color: #688099; font-size: 8px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.support-chat-bubble.user > span { color: #317087; text-align: right; }
.support-chat-bubble.agent > span { color: #16734d; }
.support-chat-bubble p { margin: 0; color: #38485c; font-size: 11px; line-height: 1.5; white-space: pre-line; }
.support-chat-bubble.typing p { display: flex; align-items: center; gap: 4px; min-height: 16px; }
.support-chat-bubble.typing i { width: 5px; height: 5px; border-radius: 50%; background: #66849d; animation: supportTyping 1s infinite ease-in-out; }
.support-chat-bubble.typing i:nth-child(2) { animation-delay: .14s; }
.support-chat-bubble.typing i:nth-child(3) { animation-delay: .28s; }
@keyframes supportTyping { 0%,80%,100% { opacity: .35; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-3px); } }
.support-chat-suggestions { padding: 9px 12px 3px; display: flex; gap: 6px; overflow-x: auto; background: #f2f5f8; }
.support-chat-suggestions button { min-height: 29px; padding: 0 10px; flex: 0 0 auto; border: 1px solid #c8d8e5; border-radius: 99px; color: #28536f; background: #fff; cursor: pointer; font-size: 9px; font-weight: 700; }
.support-chat-contact { padding: 14px; display: grid; gap: 9px; border-top: 1px solid var(--line); background: #fff; }
.support-chat-contact > div:first-child strong { color: var(--navy); font-size: 12px; }
.support-chat-contact > div:first-child p { margin: 3px 0 0; color: var(--muted); font-size: 9px; line-height: 1.4; }
.support-chat-contact label { display: grid; gap: 3px; color: #435168; font-size: 9px; font-weight: 800; }
.support-chat-contact input, .support-chat-contact select { width: 100%; height: 36px; padding: 0 9px; border: 1px solid #c6d4e0; border-radius: 8px; color: var(--ink); background: #fff; font: inherit; font-size: 11px; }
.support-chat-contact-actions { display: flex; justify-content: flex-end; gap: 7px; }
.support-chat-contact-actions button { min-height: 34px; padding: 0 12px; border: 1px solid #cbd7e3; border-radius: 8px; color: #4f6074; background: #fff; cursor: pointer; font-size: 10px; font-weight: 800; }
.support-chat-contact-actions button[type="submit"] { border-color: var(--navy); color: #fff; background: var(--navy); }
.support-chat-composer { margin: 10px 12px 0; min-height: 51px; padding: 5px 5px 5px 12px; display: flex; align-items: center; gap: 7px; border: 1px solid #bdccda; border-radius: 13px; background: #fff; }
.support-chat-composer:focus-within { border-color: #5593ba; box-shadow: 0 0 0 3px rgba(16,92,159,.1); }
.support-chat-composer textarea { min-width: 0; flex: 1; max-height: 88px; padding: 8px 0; border: 0; outline: 0; resize: none; color: var(--ink); background: transparent; font: inherit; font-size: 11px; line-height: 1.4; }
.support-chat-composer button { width: 40px; height: 40px; flex: 0 0 40px; display: grid; place-items: center; border: 0; border-radius: 11px; color: #fff; background: var(--teal); cursor: pointer; }
.support-chat-composer button svg { width: 17px; }
.support-chat-meta { min-height: 30px; padding: 5px 14px 8px; display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #8290a2; background: #f5f8fb; font-size: 8px; }
.support-chat-meta a { color: var(--navy); font-weight: 800; }
.support-chat-feedback { min-height: 14px; margin: 0; padding: 0 14px 7px; color: #197153; background: #f5f8fb; text-align: center; font-size: 8px; }
.support-chat-feedback.error { color: var(--red); }

.support-public-page, .support-thread-page { max-width: 1280px; margin: 0 auto; padding: 58px 28px 80px; }
.support-public-hero { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(390px,.75fr); gap: 70px; align-items: center; }
.support-public-hero > div:first-child { padding: 35px 0; }
.support-public-hero h1 { max-width: 720px; margin: 8px 0 18px; font-family: "Alegreya", Georgia, serif; color: var(--navy); font-size: clamp(45px,6vw,76px); font-weight: 650; line-height: .98; letter-spacing: -.035em; }
.support-public-hero > div > p:not(.eyebrow) { max-width: 650px; color: var(--muted); font-size: 18px; }
.support-capabilities { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.support-capabilities span { padding: 9px 12px; display: flex; align-items: center; gap: 7px; border: 1px solid var(--line); border-radius: 99px; color: #3b4b61; background: #fff; font-size: 12px; font-weight: 700; }
.support-capabilities svg { width: 16px; color: var(--teal); }
.support-page-form { padding: 28px; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 24px 60px rgba(16,35,69,.1); }
.support-page-form h2 { margin: 0; color: var(--navy); font-family: "Alegreya",Georgia,serif; font-size: 29px; }
.support-page-form > p { margin: -6px 0 4px; color: var(--muted); font-size: 12px; }
.support-page-form .btn { justify-self: stretch; justify-content: center; }
.support-my-tickets, .support-public-faq { margin-top: 85px; }
.support-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.support-section-heading h2 { margin: 3px 0 0; color: var(--navy); font-family: "Alegreya",Georgia,serif; font-size: 34px; }
.support-section-heading > span { color: var(--muted); font-size: 12px; }
.support-ticket-cards { display: grid; gap: 9px; }
.support-ticket-cards > a { padding: 18px 20px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid var(--line); border-radius: 12px; color: inherit; background: #fff; }
.support-ticket-cards > a:hover { border-color: #a7c0d3; box-shadow: var(--shadow); text-decoration: none; }
.support-ticket-cards small, .support-ticket-cards strong, .support-ticket-cards p { display: block; }
.support-ticket-cards small { color: var(--muted); }
.support-ticket-cards strong { margin-top: 4px; color: var(--navy); }
.support-ticket-cards p { margin: 5px 0 0; color: var(--muted); }
.support-faq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.support-faq-grid details { padding: 0 18px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.support-faq-grid summary { min-height: 63px; display: flex; align-items: center; justify-content: space-between; gap: 12px; list-style: none; cursor: pointer; color: var(--navy); font-weight: 750; }
.support-faq-grid summary svg { width: 17px; color: var(--teal); }
.support-faq-grid p { margin: -2px 0 18px; color: var(--muted); }
.support-status { display: inline-flex; align-items: center; justify-content: center; padding: 5px 9px; border-radius: 99px; color: #475467; background: #eef2f6; font-size: 11px; font-style: normal; font-weight: 800; white-space: nowrap; }
.support-status-novo { color: #8f4b08; background: #fff0d9; }
.support-status-em_atendimento { color: #175cd3; background: #eaf2ff; }
.support-status-aguardando_solicitante { color: #6941c6; background: #f1edff; }
.support-status-resolvido, .support-status-fechado { color: #067647; background: #e9f8f0; }

.support-thread-head { display: flex; align-items: end; justify-content: space-between; gap: 28px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.support-thread-head h1 { margin: 4px 0; color: var(--navy); font-family: "Alegreya",Georgia,serif; font-size: 38px; }
.support-thread-head p { margin: 0; color: var(--muted); }
.support-thread-layout { display: grid; grid-template-columns: minmax(0,1fr) 310px; gap: 28px; margin-top: 28px; align-items: start; }
.support-conversation { padding: 22px; display: grid; gap: 13px; border: 1px solid var(--line); border-radius: 15px; background: #eef3f7; }
.support-message { max-width: 82%; padding: 13px 15px; border: 1px solid #d8e1e9; border-radius: 15px 15px 15px 4px; background: #fff; box-shadow: 0 4px 12px rgba(16,35,69,.04); }
.support-message.requester { justify-self: end; border-color: #b8d0e0; border-radius: 15px 15px 4px 15px; background: #e7f1f8; }
.support-message.ai { border-color: #c8d9ef; background: linear-gradient(135deg,#f7f9ff,#eef7fa); }
.support-message.private { max-width: 92%; border-style: dashed; border-color: #e5b657; background: #fff8e7; }
.support-message header { display: flex; justify-content: space-between; gap: 18px; margin-bottom: 5px; }
.support-message header strong { color: var(--navy); font-size: 11px; }
.support-message header time { color: #8290a2; font-size: 9px; white-space: nowrap; }
.support-message p { margin: 0; color: #3d4b5f; font-size: 13px; }
.support-reply-form { margin-top: 10px; padding-top: 17px; display: grid; gap: 10px; border-top: 1px solid #ccd8e3; }
.support-reply-form label { display: grid; gap: 6px; color: #44546a; font-weight: 700; }
.support-reply-form textarea { padding: 12px; border: 1px solid #b9c9d8; border-radius: 10px; resize: vertical; }
.support-reply-form .btn { justify-self: end; }
.support-thread-aside { padding: 22px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.support-thread-aside > svg { width: 34px; color: var(--teal); }
.support-thread-aside h2 { margin: 13px 0 8px; color: var(--navy); font-family: "Alegreya",Georgia,serif; font-size: 24px; }
.support-thread-aside p { color: var(--muted); font-size: 12px; }
.support-thread-aside dl, .support-ticket-controls dl { margin: 18px 0 0; }
.support-thread-aside dl div, .support-ticket-controls dl div { padding: 9px 0; border-top: 1px solid var(--line); }
.support-thread-aside dt, .support-ticket-controls dt { color: var(--muted); font-size: 10px; font-weight: 750; text-transform: uppercase; }
.support-thread-aside dd, .support-ticket-controls dd { margin: 3px 0 0; color: var(--ink); font-size: 12px; font-weight: 700; }

.support-admin-shell { max-width: 1800px; }
.support-central { min-width: 0; }
.support-metrics { margin-bottom: 22px; }
.support-desk { min-height: 640px; display: grid; grid-template-columns: minmax(290px,.72fr) minmax(520px,1.35fr); overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow); }
.support-desk.has-ticket { grid-template-columns: minmax(280px,.66fr) minmax(500px,1.28fr) 260px; }
.support-queue-panel, .support-agent-panel, .support-ticket-controls { min-width: 0; }
.support-queue-panel { border-right: 1px solid var(--line); background: #f8fafc; }
.support-queue-filters { min-height: 58px; padding: 10px 12px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); background: #fff; }
.support-queue-filters select { min-width: 0; flex: 1; height: 36px; border: 1px solid #cbd7e3; border-radius: 7px; background: #fff; }
.support-queue-filters label { display: flex; align-items: center; gap: 5px; color: var(--muted); font-size: 10px; white-space: nowrap; }
.support-queue-list { max-height: 760px; overflow: auto; }
.support-queue-item { padding: 14px; display: block; border-bottom: 1px solid #e3e9ef; color: inherit; background: #fff; }
.support-queue-item:hover, .support-queue-item.active { text-decoration: none; background: #edf5fa; }
.support-queue-item.active { box-shadow: inset 3px 0 var(--teal); }
.support-queue-top { display: flex; justify-content: space-between; color: #8491a3; font-size: 9px; }
.support-queue-item > strong { display: block; margin-top: 6px; color: var(--navy); font-size: 13px; }
.support-queue-item > span { display: block; color: #43526a; font-size: 12px; font-weight: 700; }
.support-queue-item > p { margin: 5px 0 9px; color: var(--muted); font-size: 10px; }
.support-queue-item footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.support-queue-item footer em { color: var(--muted); font-size: 9px; font-style: normal; }
.support-priority { color: #475467; font-size: 9px; text-transform: uppercase; }
.support-priority-alta, .support-priority-urgente { color: var(--red); }
.support-agent-panel { display: flex; flex-direction: column; background: #f1f5f8; }
.support-agent-head { min-height: 87px; padding: 15px 18px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); background: #fff; }
.support-agent-head small { color: var(--teal); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.support-agent-head h2 { margin: 2px 0; color: var(--navy); font-size: 17px; }
.support-agent-head p { margin: 0; color: var(--muted); font-size: 10px; }
.support-agent-messages { min-height: 360px; max-height: 505px; padding: 18px; display: flex; flex-direction: column; gap: 11px; overflow: auto; }
.support-agent-messages .support-message.service { align-self: flex-start; }
.support-agent-messages .support-message.requester { align-self: flex-end; }
.support-composer { margin-top: auto; padding: 14px 16px; border-top: 1px solid var(--line); background: #fff; }
.support-composer textarea { width: 100%; padding: 11px; border: 1px solid #bdccda; border-radius: 9px; resize: vertical; }
.support-composer label { color: #42526a; font-size: 11px; font-weight: 700; }
.support-composer-tools, .support-composer-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.support-composer-tools { margin-bottom: 9px; }
.support-composer-tools > select { min-width: 0; flex: 1; height: 35px; border: 1px solid #ccd7e1; border-radius: 7px; background: #fff; }
.support-composer-tools form { margin: 0; }
.btn-small { min-height: 35px; padding: 6px 10px; font-size: 10px; }
.support-composer-actions { margin-top: 7px; }
.support-composer-actions label { font-weight: 500; }
.support-ai-draft { margin-bottom: 11px; padding: 11px; border: 1px solid #cdd9ef; border-radius: 9px; background: #f4f6ff; }
.support-ai-draft > div { display: flex; justify-content: space-between; gap: 10px; }
.support-ai-draft span { display: flex; align-items: center; gap: 5px; color: #3448a1; font-size: 10px; font-weight: 800; }
.support-ai-draft svg { width: 14px; }
.support-ai-draft small { color: #6f78a2; font-size: 9px; }
.support-ai-draft p { margin: 7px 0; color: #384567; font-size: 11px; }
.support-ai-draft button { padding: 0; border: 0; color: #3855a4; background: transparent; cursor: pointer; font-size: 10px; font-weight: 800; }
.support-ticket-controls { padding: 16px; border-left: 1px solid var(--line); background: #fbfcfd; }
.support-ticket-controls h3 { margin: 0 0 14px; color: var(--navy); font-size: 15px; }
.support-ticket-controls form { display: grid; gap: 10px; }
.support-ticket-controls form label { display: grid; gap: 4px; color: var(--muted); font-size: 10px; font-weight: 700; }
.support-ticket-controls select { width: 100%; height: 37px; border: 1px solid #cbd6e1; border-radius: 7px; background: #fff; }
.support-ticket-controls .btn { width: 100%; justify-content: center; }
.support-empty { min-height: 160px; display: grid; place-content: center; justify-items: center; padding: 25px; color: var(--muted); text-align: center; }
.support-empty svg { width: 32px; margin-bottom: 8px; color: #9aabbb; }
.support-empty-large { min-height: 590px; }
.support-empty-large p { margin: 4px 0 0; font-size: 12px; }

.support-settings { max-width: 1250px; }
.support-settings-section { margin-top: 28px; padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: 0 8px 24px rgba(16,35,69,.04); scroll-margin-top: 90px; }
.support-settings-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.support-settings-heading > div { display: flex; align-items: center; gap: 13px; }
.support-settings-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; color: var(--navy); background: #e9f2f8; }
.support-settings-heading h2 { margin: 0; color: var(--navy); font-family: "Alegreya",Georgia,serif; font-size: 27px; }
.support-settings-heading p { margin: 1px 0 0; color: var(--muted); font-size: 12px; }
.support-config-state { padding: 5px 8px; border-radius: 99px; color: #667085; background: #eef1f4; font-size: 9px; font-weight: 850; text-transform: uppercase; white-space: nowrap; }
.support-config-state.on { color: #067647; background: #e8f7ef; }
.support-ai-stats { margin-bottom: 18px; display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: var(--line); }
.support-ai-stats > div { padding: 14px; background: #f9fbfc; }
.support-ai-stats strong, .support-ai-stats span { display: block; }
.support-ai-stats strong { color: var(--navy); font-size: 23px; }
.support-ai-stats span { color: var(--muted); font-size: 10px; }
.support-settings-form { box-shadow: none; }
.support-category-checks { padding: 14px; display: grid; grid-template-columns: repeat(2,1fr); gap: 7px; border: 1px solid var(--line); border-radius: 9px; }
.support-category-checks legend { padding: 0 5px; color: var(--muted); font-size: 10px; font-weight: 750; }
.support-category-checks label { display: flex; align-items: center; gap: 6px; font-weight: 500; }
.support-config-list { display: grid; gap: 8px; }
.support-config-list details { border: 1px solid var(--line); border-radius: 10px; background: #fbfcfd; }
.support-config-list summary { min-height: 61px; padding: 10px 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; list-style: none; }
.support-config-list summary::-webkit-details-marker { display: none; }
.support-config-list summary strong, .support-config-list summary small { display: block; }
.support-config-list summary strong { color: var(--navy); }
.support-config-list summary small { margin-top: 2px; color: var(--muted); }
.support-config-list details > form { padding: 16px; border-top: 1px solid var(--line); background: #fff; }
.support-config-list details > form .btn { margin-top: 12px; }

@media (max-width: 1280px) {
    .support-desk.has-ticket { grid-template-columns: 270px minmax(480px,1fr); }
    .support-ticket-controls { grid-column: 1 / -1; display: grid; grid-template-columns: 180px 1fr; gap: 25px; border-top: 1px solid var(--line); border-left: 0; }
    .support-ticket-controls form { grid-template-columns: repeat(4,1fr); align-items: end; }
}
@media (max-width: 980px) {
    .support-public-hero { grid-template-columns: 1fr; gap: 28px; }
    .support-public-hero > div:first-child { padding-bottom: 0; }
    .support-thread-layout { grid-template-columns: 1fr; }
    .support-desk, .support-desk.has-ticket { grid-template-columns: 240px minmax(430px,1fr); overflow-x: auto; }
    .support-ticket-controls { grid-template-columns: 1fr; }
    .support-ticket-controls form { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 720px) {
    .support-widget-button { right: 14px; bottom: 14px; min-width: 54px; width: 54px; padding: 0; border-radius: 18px; }
    .support-widget-button span { display: none; }
    .support-widget { right: 8px; left: 8px; bottom: 76px; width: auto; height: calc(100vh - 88px); border-radius: 18px; }
    .support-form-row { grid-template-columns: 1fr; }
    .support-public-page, .support-thread-page { padding: 35px 16px 60px; }
    .support-public-hero h1 { font-size: 45px; }
    .support-page-form { padding: 20px; }
    .support-faq-grid { grid-template-columns: 1fr; }
    .support-thread-head { align-items: flex-start; flex-direction: column; }
    .support-thread-layout { gap: 16px; }
    .support-conversation { padding: 13px; }
    .support-message { max-width: 94%; }
    .support-desk, .support-desk.has-ticket { display: block; min-height: 0; overflow: visible; }
    .support-queue-list { max-height: 390px; }
    .support-agent-panel { border-top: 1px solid var(--line); }
    .support-agent-messages { max-height: 520px; }
    .support-ticket-controls form { grid-template-columns: 1fr; }
    .support-settings-section { padding: 16px; }
    .support-settings-heading { align-items: flex-start; flex-direction: column; }
    .support-ai-stats { grid-template-columns: 1fr 1fr; }
    .support-category-checks { grid-template-columns: 1fr; }
}

/* Academic workspace */
.teacher-workspace, .lesson-workspace { max-width: 1580px; margin: 0 auto; }
.workspace-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.workspace-header h1 { margin: 5px 0 4px; font-size: 34px; }
.workspace-header p { margin: 0; color: var(--muted); }
.workspace-header .text-link { margin-bottom: 18px; font-size: 13px; }
.workspace-actions, .item-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.workspace-nav { position: sticky; top: 76px; z-index: 8; display: flex; gap: 5px; margin: 0 -4px; padding: 12px 4px; overflow-x: auto; border-bottom: 1px solid var(--line); background: rgba(248, 250, 252, .96); backdrop-filter: blur(10px); }
.workspace-nav a { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 7px; padding: 7px 11px; border-radius: 5px; color: #344054; font-size: 13px; font-weight: 650; }
.workspace-nav a:hover { color: var(--navy); background: #eaf1f5; text-decoration: none; }
.workspace-nav svg { width: 17px; }
.workspace-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 24px 0 34px; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: var(--line); }
.workspace-metrics > div { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 10px; align-items: center; min-height: 84px; padding: 16px 20px; background: #fff; }
.workspace-metrics > div > svg { width: 25px; color: var(--teal); }
.workspace-metrics span { color: var(--muted); font-size: 12px; }
.workspace-metrics strong { display: block; color: var(--navy); font-size: 24px; line-height: 1.1; }
.workspace-metrics .metric-alert { background: #fff7ed; }
.workspace-metrics .metric-alert svg, .workspace-metrics .metric-alert strong { color: #b54708; }
.workspace-section { margin: 0 0 42px; scroll-margin-top: 150px; }
.workspace-section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 16px; }
.workspace-section__head .eyebrow { margin: 0 0 4px; }
.workspace-section__head h2 { margin: 0 0 3px; font-size: 24px; }
.workspace-section__head p:not(.eyebrow) { margin: 0; color: var(--muted); }
.content-module-list { display: grid; gap: 14px; }
.content-module { overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.content-module.is-draft, .teacher-lesson-row.is-draft, .asset-library-item.is-archived { opacity: .68; }
.content-module > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 18px 20px; background: #f8fafc; border-bottom: 1px solid var(--line); }
.content-module > header h3 { display: inline-block; margin: 5px 0 0 8px; font-size: 18px; }
.content-module > header p { margin: 3px 0 0; color: var(--muted); font-size: 13px; }
.teacher-lesson-list { display: grid; }
.teacher-lesson-row { display: grid; grid-template-columns: 38px minmax(240px, 1fr) 72px auto; gap: 13px; align-items: center; min-height: 78px; padding: 13px 18px; border-bottom: 1px solid #e8edf3; }
.teacher-lesson-row:last-child { border-bottom: 0; }
.lesson-kind { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; color: var(--teal); background: #e8f3f4; }
.lesson-kind svg { width: 17px; }
.teacher-lesson-copy { min-width: 0; }
.teacher-lesson-copy > strong, .teacher-lesson-copy > small { display: block; }
.teacher-lesson-copy > small { margin-top: 2px; color: var(--muted); font-size: 12px; }
.lesson-discussion-count { display: grid; justify-items: center; color: var(--muted); font-size: 10px; }
.lesson-discussion-count strong { color: var(--navy); font-size: 18px; line-height: 1; }
.lesson-discussion-count.has-open strong { color: #b54708; }
.resource-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.resource-chips > span { display: inline-flex; align-items: center; gap: 5px; max-width: 100%; padding: 3px 6px; border: 1px solid #dfe7ee; border-radius: 4px; color: #475467; background: #fff; font-size: 11px; }
.resource-chips svg { width: 13px; height: 13px; flex: 0 0 auto; }
.resource-chips button { display: inline-grid; width: 17px; height: 17px; padding: 0; place-items: center; color: #667085; border: 0; background: transparent; cursor: pointer; }
.icon-button { display: inline-grid; width: 38px; height: 38px; flex: 0 0 auto; padding: 0; place-items: center; border: 1px solid var(--line); border-radius: 5px; color: var(--navy); background: #fff; cursor: pointer; }
.icon-button:hover { color: var(--navy); border-color: #9eb3c8; background: #f3f7fa; text-decoration: none; }
.icon-button svg { width: 17px; height: 17px; }
.icon-button.danger, .text-button.danger { color: var(--red); }
.icon-button.danger:hover { border-color: #f2b8b5; background: #fff4f3; }
.asset-library-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.asset-library-item { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 12px; align-items: start; min-height: 112px; padding: 16px; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.asset-library-item > svg { width: 25px; color: var(--teal); }
.asset-library-item span { color: var(--gold); font-size: 10px; font-weight: 700; text-transform: uppercase; }
.asset-library-item h3 { margin: 3px 0; font-size: 16px; }
.asset-library-item p { margin: 0; overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; }
.management-list { display: grid; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.management-list > a, .management-row > a { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 10px; align-items: center; padding: 14px 16px; color: var(--ink); }
.management-list > a { border-bottom: 1px solid var(--line); }
.management-list > a:last-child { border-bottom: 0; }
.management-list > a:hover, .management-row > a:hover { background: #f8fafc; text-decoration: none; }
.management-list svg { width: 20px; color: var(--teal); }
.management-list small { display: block; color: var(--muted); }
.management-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; border-bottom: 1px solid var(--line); }
.management-row:last-child { border-bottom: 0; }
.management-row > .item-actions { padding-right: 12px; }
.communication-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.communication-grid > div { border-top: 2px solid var(--teal); background: #fff; }
.communication-grid > div:nth-child(2) { border-top-color: var(--gold); }
.communication-grid h3 { margin: 0; padding: 14px 16px; border: 1px solid var(--line); border-top: 0; font-size: 17px; }
.communication-grid article { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 13px 16px; border: 1px solid var(--line); border-top: 0; }
.communication-grid article > div:first-child { min-width: 0; }
.communication-grid article p { margin: 4px 0; color: var(--muted); font-size: 13px; }
.communication-grid article small { color: #667085; }

.app-modal { width: min(680px, calc(100vw - 28px)); max-height: calc(100vh - 40px); padding: 0; overflow: auto; border: 0; border-radius: 7px; color: var(--ink); background: #fff; box-shadow: 0 24px 80px rgba(6, 30, 64, .25); }
.app-modal--small { width: min(500px, calc(100vw - 28px)); }
.app-modal--wide { width: min(980px, calc(100vw - 28px)); }
.app-modal::backdrop { background: rgba(10, 25, 47, .58); backdrop-filter: blur(2px); }
.app-modal > form { display: grid; gap: 16px; padding: 24px; }
.app-modal .modal-body { display: grid; gap: 14px; }
.modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 2px; }
.modal-head > div { display: flex; align-items: center; gap: 11px; }
.modal-head h2 { margin: 0; font-size: 21px; }
.modal-icon { display: inline-grid; width: 38px; height: 38px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: var(--teal); background: #e7f2f3; }
.modal-icon.danger { color: var(--red); background: #fff0ef; }
.modal-icon svg { width: 19px; }
.modal-actions { display: flex; justify-content: flex-end; gap: 9px; padding-top: 16px; border-top: 1px solid var(--line); }
.btn-danger { color: #fff; border-color: var(--red); background: var(--red); }
.btn-danger:hover { color: #fff; border-color: #8f1c14; background: #8f1c14; }
.segmented-control { display: grid; grid-template-columns: repeat(2, 1fr); gap: 5px; padding: 4px; border-radius: 6px; background: #eef2f6; }
.segmented-control label { display: block; }
.segmented-control input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.segmented-control span { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 38px; padding: 7px 10px; border-radius: 4px; cursor: pointer; }
.segmented-control input:checked + span { color: var(--navy); background: #fff; box-shadow: 0 1px 4px rgba(16, 35, 69, .12); }
.segmented-control svg { width: 17px; }

.lesson-workspace__header { align-items: center; }
.compact-metrics { width: min(410px, 100%); grid-template-columns: repeat(2, 1fr); margin: 0; }
.lesson-workspace__layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(390px, .8fr); gap: 28px; margin-top: 26px; align-items: start; }
.lesson-preview { padding: 0; }
.video-embed { position: relative; width: 100%; overflow: hidden; aspect-ratio: 16 / 9; border-radius: 6px; background: #071b30; }
.video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.external-media-link { display: grid; grid-template-columns: 42px minmax(0, 1fr) 22px; gap: 12px; align-items: center; padding: 18px; border: 1px solid var(--line); border-left: 4px solid var(--teal); border-radius: 6px; color: var(--ink); background: #fff; }
.external-media-link:hover { border-color: var(--teal); text-decoration: none; }
.external-media-link > svg { width: 23px; color: var(--teal); }
.external-media-link small { display: block; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.lesson-content { margin: 20px 0; padding: 24px; border: 1px solid var(--line); border-radius: 6px; color: #344054; background: #fff; font-size: 16px; line-height: 1.75; }
.lesson-materials { margin-top: 28px; }
.polished-resource-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.polished-resource-list > a { display: grid; grid-template-columns: 30px minmax(0, 1fr) 18px; gap: 9px; align-items: center; padding: 13px; border: 1px solid var(--line); border-radius: 5px; color: var(--ink); background: #fff; }
.polished-resource-list > a:hover { border-color: var(--teal); text-decoration: none; }
.polished-resource-list svg { width: 18px; color: var(--teal); }
.polished-resource-list small { display: block; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.discussion-panel { position: sticky; top: 96px; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.discussion-panel > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; padding: 18px; border-bottom: 1px solid var(--line); background: #f8fafc; }
.discussion-panel > header h2 { margin: 0; font-size: 20px; }
.discussion-panel > header p:not(.eyebrow) { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.discussion-list { display: grid; max-height: calc(100vh - 270px); min-height: 220px; overflow-y: auto; }
.discussion-thread { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 10px; padding: 16px; border-bottom: 1px solid #e8edf3; }
.discussion-thread.is-question { box-shadow: inset 3px 0 #d99c37; }
.discussion-avatar { display: grid; width: 32px; height: 32px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: #fff; background: var(--teal); font-size: 12px; font-weight: 700; }
.discussion-body { min-width: 0; }
.discussion-body > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.discussion-body small, .discussion-reply small { display: block; color: var(--muted); font-size: 11px; }
.discussion-body > p, .discussion-reply p { margin: 8px 0; color: #344054; font-size: 13px; line-height: 1.55; }
.discussion-kind { flex: 0 0 auto; padding: 3px 6px; border-radius: 4px; color: #475467; background: #eef2f6; font-size: 10px; font-weight: 700; }
.discussion-kind.status-aberta { color: #9a3412; background: #fff1e8; }
.discussion-kind.status-resolvida { color: #166534; background: #eaf7ec; }

/* Portal do aluno: navegação por áreas e telas de consulta */
.student-portal-page {
    --student-home: #203b66;
    --student-academic: #4257a6;
    --student-ava: #087a76;
    --student-finance: #2b7952;
    --student-secretary: #b76b18;
    --student-profile: #a14f6c;
    width: 100%;
    max-width: 1500px;
    margin: 0 auto;
}

.student-portal-bar {
    position: sticky;
    top: 96px;
    z-index: 7;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin: calc(clamp(30px, 5vw, 60px) * -1) calc(clamp(16px, 5vw, 72px) * -1) 38px;
    padding: 11px clamp(16px, 5vw, 72px);
    color: #fff;
    background: rgba(18, 39, 65, .97);
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    box-shadow: 0 8px 22px rgba(16, 35, 69, .1);
    backdrop-filter: blur(12px);
}

.student-portal-id { display: flex; flex: 0 0 auto; align-items: center; gap: 10px; }
.student-avatar { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; color: #152841; background: #fff; font-weight: 800; }
.student-portal-id > span:last-child { display: grid; line-height: 1.15; }
.student-portal-id small { color: #b8c8da; font-size: 10px; text-transform: uppercase; letter-spacing: .06em; }
.student-portal-id strong { font-size: 14px; }
.student-portal-links { display: flex; min-width: 0; gap: 5px; overflow-x: auto; scrollbar-width: thin; }
.student-portal-links a { position: relative; display: flex; flex: 0 0 auto; align-items: center; gap: 7px; padding: 9px 11px; border-radius: 6px; color: #dbe6f1; font-size: 13px; font-weight: 650; }
.student-portal-links a::after { position: absolute; right: 10px; bottom: 3px; left: 10px; height: 2px; border-radius: 2px; background: transparent; content: ''; }
.student-portal-links a:hover { color: #fff; background: rgba(255, 255, 255, .08); text-decoration: none; }
.student-portal-links a.is-active { color: #fff; background: rgba(255, 255, 255, .11); }
.student-portal-links a.is-active::after { background: #fff; }
.student-portal-links svg { width: 17px; height: 17px; }
.student-portal-links .area-academic.is-active { background: rgba(112, 136, 241, .32); }
.student-portal-links .area-ava.is-active { background: rgba(21, 174, 163, .3); }
.student-portal-links .area-finance.is-active { background: rgba(75, 177, 119, .3); }
.student-portal-links .area-secretary.is-active { background: rgba(226, 144, 54, .3); }
.student-portal-links .area-profile.is-active { background: rgba(205, 102, 137, .3); }

.student-welcome {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
    gap: 30px;
    align-items: stretch;
    margin-bottom: 24px;
    padding: clamp(26px, 4vw, 44px);
    border-radius: 14px;
    color: #fff;
    background: linear-gradient(125deg, #183759 0%, #285d76 64%, #217b78 100%);
    box-shadow: 0 18px 44px rgba(22, 55, 85, .17);
}
.student-welcome .eyebrow { color: #f5cc7d; }
.student-welcome h1 { max-width: 700px; margin-bottom: 10px; font-size: clamp(34px, 4vw, 50px); }
.student-welcome > div > p:last-child { max-width: 680px; margin: 0; color: #d5e4ee; font-size: 17px; }
.student-next-action { display: grid; align-content: center; gap: 7px; padding: 23px; border: 1px solid rgba(255, 255, 255, .27); border-radius: 10px; color: #fff; background: rgba(255, 255, 255, .11); }
.student-next-action:hover { background: rgba(255, 255, 255, .17); text-decoration: none; }
.student-next-action > span { display: flex; align-items: center; gap: 7px; color: #f5cc7d; font-size: 11px; font-weight: 700; text-transform: uppercase; }
.student-next-action > span svg { width: 17px; }
.student-next-action > strong { font-size: 21px; }
.student-next-action > small { color: #d5e4ee; }
.student-next-action > b { display: flex; align-items: center; gap: 6px; margin-top: 9px; font-size: 13px; }
.student-next-action > b svg { width: 17px; }
.student-next-action.is-clear > span { color: #bce9d1; }

.student-area-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin-bottom: 30px; }
.student-area-card { --area-color: var(--student-home); position: relative; display: grid; grid-template-columns: 42px minmax(0, 1fr) 20px; gap: 12px; align-items: center; min-height: 132px; padding: 18px; overflow: hidden; border: 1px solid var(--line); border-top: 4px solid var(--area-color); border-radius: 9px; color: var(--ink); background: #fff; box-shadow: 0 7px 20px rgba(16, 35, 69, .05); }
.student-area-card:hover { border-color: var(--area-color); transform: translateY(-2px); text-decoration: none; box-shadow: 0 12px 28px rgba(16, 35, 69, .1); }
.student-area-card > svg:first-child { width: 25px; height: 25px; color: var(--area-color); }
.student-area-card > svg:last-child { width: 17px; color: #98a2b3; }
.student-area-card > span { display: grid; min-width: 0; gap: 2px; }
.student-area-card small { color: var(--area-color); font-size: 10px; font-weight: 750; text-transform: uppercase; }
.student-area-card strong { font-size: 18px; line-height: 1.2; }
.student-area-card em { color: var(--muted); font-size: 12px; font-style: normal; line-height: 1.3; }
.student-area-card.area-academic { --area-color: var(--student-academic); }
.student-area-card.area-ava { --area-color: var(--student-ava); }
.student-area-card.area-finance { --area-color: var(--student-finance); }
.student-area-card.area-secretary { --area-color: var(--student-secretary); }
.student-area-card.area-profile { --area-color: var(--student-profile); }

.student-dashboard-columns, .classroom-overview-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr); gap: 20px; align-items: start; }
.student-read-panel { min-width: 0; padding: 22px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: 0 7px 22px rgba(16, 35, 69, .04); }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.panel-heading h2 { margin: 0; font-size: 23px; }
.panel-heading p:not(.eyebrow) { margin: 4px 0 0; color: var(--muted); }
.panel-heading > svg { width: 25px; color: var(--teal); }
.panel-heading > a { font-size: 13px; font-weight: 650; }
.student-notice-feed { display: grid; }
.student-notice-feed article { display: grid; grid-template-columns: 8px minmax(0, 1fr); gap: 13px; padding: 14px 0; border-top: 1px solid var(--line); }
.student-notice-feed article:first-child { padding-top: 0; border-top: 0; }
.student-notice-feed article > span { width: 8px; height: 8px; margin-top: 7px; border-radius: 50%; background: var(--student-secretary); box-shadow: 0 0 0 4px #fff4e8; }
.student-notice-feed strong { font-size: 16px; }
.student-notice-feed p { margin: 3px 0; color: #536174; }
.student-notice-feed small { color: var(--muted); }
.student-enrollment-list { display: grid; }
.student-enrollment-list article { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 13px 0; border-top: 1px solid var(--line); }
.student-enrollment-list article:first-child { padding-top: 0; border-top: 0; }
.student-enrollment-list article > div { display: grid; }
.student-enrollment-list small { color: var(--muted); }
.course-monogram { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 9px; color: var(--student-academic); background: #eef0ff; font-weight: 800; }

.student-page-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 24px; padding: 28px 30px; border: 1px solid var(--line); border-left: 6px solid var(--heading-color, var(--student-home)); border-radius: 10px; background: var(--heading-bg, #f1f5f9); }
.student-page-heading h1 { margin-bottom: 7px; }
.student-page-heading p:last-child { max-width: 760px; margin: 0; color: #536174; font-size: 16px; }
.student-page-heading > svg { width: 56px; height: 56px; color: var(--heading-color, var(--student-home)); opacity: .72; }
.area-academic-heading { --heading-color: var(--student-academic); --heading-bg: #f1f2ff; }
.area-ava-heading { --heading-color: var(--student-ava); --heading-bg: #edf9f7; }
.area-finance-heading { --heading-color: var(--student-finance); --heading-bg: #eef8f1; }
.area-secretary-heading { --heading-color: var(--student-secretary); --heading-bg: #fff7ec; }
.area-profile-heading { --heading-color: var(--student-profile); --heading-bg: #fff2f6; }

.student-academic-course { margin-bottom: 26px; overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.student-academic-course > header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 24px; color: #fff; background: linear-gradient(120deg, #34488f, #536bb8); }
.student-academic-course > header h2 { margin: 2px 0; color: #fff; }
.student-academic-course > header p { margin: 0; color: #dfe4ff; }
.student-academic-course > header > div:first-child > span { color: #dfe4ff; font-size: 11px; font-weight: 700; text-transform: uppercase; }
.academic-read-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: 0; }
.academic-read-grid > section { min-width: 0; padding: 23px; }
.academic-read-grid > section + section { border-left: 1px solid var(--line); }
.subsection-heading { display: flex; align-items: center; gap: 11px; margin-bottom: 16px; }
.subsection-heading > svg { width: 25px; color: var(--student-academic); }
.subsection-heading h3 { margin: 0; font-size: 20px; }
.subsection-heading p { margin: 0; color: var(--muted); font-size: 13px; }
.attendance-list { display: grid; }
.attendance-list article { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 0; border-top: 1px solid var(--line); }
.attendance-list article:first-child { border-top: 0; }
.attendance-list article > div { display: grid; }
.attendance-list small { color: var(--muted); }
.attendance-score { display: grid; flex: 0 0 56px; height: 44px; place-items: center; border-radius: 7px; color: var(--student-finance); background: #ebf7ef; font-weight: 800; }
.attendance-score.is-low { color: #b42318; background: #fef3f2; }

.student-summary-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0 0 22px; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: var(--line); }
.student-summary-strip article { display: grid; gap: 2px; min-height: 102px; align-content: center; padding: 18px 22px; background: #fff; }
.student-summary-strip span { color: var(--muted); font-size: 11px; text-transform: uppercase; }
.student-summary-strip strong { color: var(--student-finance); font-size: 27px; }
.student-summary-strip small { color: var(--muted); }
.student-summary-strip article.is-alert strong, .student-summary-strip article.is-alert small { color: #b42318; }
.student-secretary-page .student-summary-strip strong { color: var(--student-secretary); }
.student-table-panel { margin-bottom: 22px; padding: 0; overflow: hidden; }
.student-table-panel .panel-heading { margin: 0; padding: 20px 22px; border-bottom: 1px solid var(--line); }
.student-table { margin: 0; }
.student-table th { color: #536174; background: #f8fafc; font-size: 11px; text-transform: uppercase; }
.student-table td strong + small, .student-table td > small { display: block; color: var(--muted); }
.read-only-mark { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; color: var(--student-finance); background: #ebf7ef; }
.read-only-mark svg { width: 16px; }
.document-read-list { display: grid; padding: 0 22px 18px; }
.document-read-list article { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 15px 0; border-top: 1px solid var(--line); }
.document-read-list article:first-child { border-top: 0; }
.document-read-list article > svg { width: 22px; color: var(--student-secretary); }
.document-read-list article > div { display: grid; }
.document-read-list small { color: var(--muted); }

.profile-heading-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.profile-read-sections { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.profile-read-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 22px; margin: 0; }
.profile-read-grid > div { padding: 12px 0; border-top: 1px solid var(--line); }
.profile-read-grid > div:nth-child(-n + 2) { border-top: 0; }
.profile-read-grid dt { color: var(--muted); font-size: 11px; text-transform: uppercase; }
.profile-read-grid dd { margin: 3px 0 0; color: var(--ink); font-weight: 650; }
.student-profile-edit-page { max-width: 1320px; }
.student-profile-edit-page > .section-head { margin-top: 8px; }

.ava-deadline-strip { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 18px; align-items: center; margin-bottom: 24px; padding: 18px; border: 1px solid #f0c9a6; border-radius: 10px; background: #fff8ef; }
.ava-deadline-strip > div:first-child { display: flex; align-items: center; gap: 11px; }
.ava-deadline-strip > div:first-child > svg { width: 26px; color: var(--student-secretary); }
.ava-deadline-strip span { display: grid; }
.ava-deadline-strip small { color: var(--muted); }
.deadline-chips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.deadline-chips a { display: grid; gap: 1px; min-width: 0; padding: 11px; border: 1px solid #efd8c3; border-radius: 7px; color: var(--ink); background: #fff; }
.deadline-chips a:hover { border-color: var(--student-secretary); text-decoration: none; }
.deadline-chips a > span { color: var(--student-secretary); font-size: 10px; font-weight: 700; text-transform: uppercase; }
.deadline-chips a strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.student-class-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-bottom: 28px; }
.student-class-card { --class-color: var(--student-ava); display: grid; gap: 20px; min-height: 350px; padding: 22px; border: 1px solid var(--line); border-top: 6px solid var(--class-color); border-radius: 11px; background: #fff; box-shadow: 0 9px 25px rgba(16, 35, 69, .06); }
.student-class-card.class-color-2 { --class-color: #4e63a7; }
.student-class-card.class-color-3 { --class-color: #af6820; }
.student-class-card.class-color-4 { --class-color: #9b5270; }
.student-class-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; color: var(--class-color); font-size: 11px; font-weight: 750; text-transform: uppercase; }
.student-class-card > header svg { width: 23px; }
.student-class-card h2 { margin: 3px 0; font-size: 25px; }
.student-class-card p { margin: 0; color: var(--muted); }
.student-class-card > div:nth-child(2) > small { color: var(--muted); text-transform: uppercase; }
.class-progress { display: grid; gap: 6px; align-self: end; }
.class-progress > div:first-child { display: flex; justify-content: space-between; gap: 10px; }
.class-progress > div:first-child span { color: var(--muted); }
.class-progress .progress-line i { background: var(--class-color); }
.class-progress > small { color: var(--muted); }
.student-class-card > .btn { justify-content: space-between; margin-top: auto; background: var(--class-color); }
.ava-support-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(280px, .7fr); gap: 18px; }
.ava-help-card { padding: 24px; border-radius: 10px; color: #fff; background: linear-gradient(135deg, #20465e, #176d6b); }
.ava-help-card > svg { width: 32px; color: #f5cc7d; }
.ava-help-card h2 { margin: 14px 0 8px; }
.ava-help-card ol { padding-left: 22px; color: #d8e9eb; }
.ava-help-card a { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; color: #fff; font-weight: 700; }
.ava-help-card a svg { width: 17px; }

.student-course-header { margin-bottom: 25px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.student-course-header > .text-link { margin: 20px 24px 0; }
.student-course-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 21px 24px 24px; }
.student-course-heading h1 { margin-bottom: 5px; }
.student-course-heading p:last-child { margin: 0; color: var(--muted); }
.course-progress-card { display: grid; grid-template-columns: minmax(120px, 180px) auto; gap: 3px 14px; min-width: 300px; padding: 15px 18px; border-left: 4px solid var(--student-ava); border-radius: 7px; background: #edf9f7; }
.course-progress-card > span { color: var(--muted); font-size: 11px; text-transform: uppercase; }
.course-progress-card > strong { grid-row: 1 / 3; grid-column: 2; align-self: center; color: var(--student-ava); font-size: 28px; }
.course-progress-card .progress-line { grid-column: 1; }
.course-progress-card small { grid-column: 1 / -1; color: var(--muted); }
.course-progress-card .progress-line i { background: var(--student-ava); }
.student-course-tabs { display: flex; gap: 0; padding: 0 17px; overflow-x: auto; border-top: 1px solid var(--line); background: #f8fafc; scrollbar-width: thin; }
.student-course-tabs a { display: flex; flex: 0 0 auto; align-items: center; gap: 7px; padding: 13px 12px; border-bottom: 3px solid transparent; color: #536174; font-size: 13px; font-weight: 650; }
.student-course-tabs a:hover { color: var(--student-ava); text-decoration: none; }
.student-course-tabs a.is-active { color: var(--student-ava); border-color: var(--student-ava); background: #fff; }
.student-course-tabs svg { width: 17px; }
.continue-learning-card { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 16px; align-items: center; margin-bottom: 20px; padding: 19px 22px; border-radius: 10px; color: #fff; background: linear-gradient(115deg, #116966, #258a7e); }
.continue-icon { display: grid; width: 50px; height: 50px; place-items: center; border-radius: 50%; color: var(--student-ava); background: #fff; }
.continue-learning-card > div:nth-child(2) { display: grid; }
.continue-learning-card > div:nth-child(2) > span { color: #bfe9e0; font-size: 10px; text-transform: uppercase; }
.continue-learning-card > div:nth-child(2) > strong { font-size: 20px; }
.continue-learning-card > div:nth-child(2) > small { color: #d8efea; }
.continue-learning-card .btn { color: var(--student-ava); background: #fff; }
.classroom-area-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 22px; }
.classroom-area-card { --card-color: var(--student-ava); display: grid; grid-template-columns: 38px minmax(0, 1fr) 18px; gap: 11px; align-items: center; min-height: 130px; padding: 18px; border: 1px solid var(--line); border-left: 4px solid var(--card-color); border-radius: 9px; color: var(--ink); background: #fff; }
.classroom-area-card:hover { border-color: var(--card-color); transform: translateY(-2px); text-decoration: none; box-shadow: 0 9px 23px rgba(16, 35, 69, .08); }
.classroom-area-card > svg:first-child { width: 25px; color: var(--card-color); }
.classroom-area-card > svg:last-child { width: 17px; color: #98a2b3; }
.classroom-area-card > span { display: grid; }
.classroom-area-card small { color: var(--card-color); font-size: 10px; font-weight: 750; text-transform: uppercase; }
.classroom-area-card strong { font-size: 17px; }
.classroom-area-card em { color: var(--muted); font-size: 12px; font-style: normal; }
.classroom-area-card.activity-area { --card-color: #b36a1d; }
.classroom-area-card.assessment-area { --card-color: #465da5; }
.classroom-area-card.forum-area { --card-color: #99506d; }
.student-plan-view { border-left: 4px solid var(--student-academic); }
.student-plan-view > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.student-plan-view > summary > span { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 0 10px; align-items: center; }
.student-plan-view > summary > span > svg { grid-row: 1 / 3; color: var(--student-academic); }
.student-plan-view > summary small { color: var(--muted); font-weight: 400; }
.student-plan-view > summary > svg { width: 18px; }
.classroom-overview-grid { margin-top: 22px; }
.student-timeline { margin-top: 8px; }
.classroom-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin: 0 0 20px; }
.classroom-section-heading h2 { margin: 0 0 3px; font-size: 28px; }
.classroom-section-heading p:not(.eyebrow) { margin: 0; color: var(--muted); }
.classroom-section-heading > span { display: flex; align-items: center; gap: 7px; padding: 9px 12px; border-radius: 7px; color: var(--student-ava); background: #edf9f7; font-weight: 700; }
.classroom-section-heading > span.is-alert { color: #9a4d0a; background: #fff4e8; }
.classroom-section-heading > span svg { width: 18px; }
.student-content-layout { grid-template-columns: minmax(0, 1fr) 330px; }
.student-module-list { display: grid; gap: 15px; }
.student-module-panel { margin: 0; }
.student-module-panel .module-heading { align-items: flex-start; background: #f8fafc; }
.student-module-panel .module-heading p { margin: 4px 0 0; color: var(--muted); }
.student-module-panel .lesson-row { display: grid; grid-template-columns: 32px minmax(0, 1fr) 20px; }
.student-module-panel .lesson-row span:nth-child(2) { display: grid; }
.student-module-panel .lesson-row span:nth-child(2) small { display: flex; align-items: center; gap: 5px; }
.student-module-panel .lesson-row span:nth-child(2) svg { width: 14px; }
.student-module-panel .lesson-row > svg { width: 18px; color: #98a2b3; }
.student-resource-aside { display: grid; gap: 14px; }
.study-tip { display: flex; gap: 11px; padding: 16px; border: 1px solid #efdbb3; border-radius: 8px; background: #fff9eb; }
.study-tip > svg { width: 22px; color: var(--student-secretary); }
.study-tip p { margin: 3px 0 0; color: var(--muted); }

.student-task-list { display: grid; gap: 16px; }
.student-task-card { padding: 22px; border: 1px solid var(--line); border-left: 5px solid #b36a1d; border-radius: 10px; background: #fff; }
.student-task-card.is-closed { border-left-color: #98a2b3; }
.student-task-card > header, .student-task-card > footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.task-date { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 13px; }
.task-date svg { width: 17px; }
.task-card-body { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; margin: 15px 0; }
.task-card-body h3 { margin: 0 0 7px; font-size: 22px; }
.task-card-body p { margin: 0; color: #4b596d; }
.task-grade { display: grid; min-width: 72px; align-content: center; justify-items: center; padding: 10px; border-radius: 8px; color: #fff; background: var(--student-finance); }
.task-grade strong { font-size: 25px; }.task-grade span { font-size: 10px; }
.task-meta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 14px 0; overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: var(--line); }
.task-meta > div { padding: 10px 12px; background: #f8fafc; }
.task-meta dt { color: var(--muted); font-size: 10px; text-transform: uppercase; }.task-meta dd { margin: 2px 0 0; font-weight: 650; }
.submission-read-summary { display: flex; gap: 12px; margin: 14px 0; padding: 13px; border-radius: 7px; background: #edf8f1; }
.submission-read-summary > svg { width: 22px; color: var(--student-finance); }
.submission-read-summary p { margin: 3px 0; color: #506157; }
.submission-read-summary small { color: #3a5c48; }
.student-task-card > footer { justify-content: flex-end; padding-top: 13px; border-top: 1px solid var(--line); }
.student-task-card .closed-note { display: flex; align-items: center; gap: 6px; }.student-task-card .closed-note svg { width: 17px; }
.modal-task-instructions { padding: 13px; border-left: 3px solid #b36a1d; background: #fff8ef; }
.modal-task-instructions p { margin: 4px 0 0; color: #5f5144; }

.assessment-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.assessment-card { display: grid; gap: 18px; min-height: 360px; padding: 21px; border: 1px solid var(--line); border-top: 5px solid var(--student-academic); border-radius: 10px; background: #fff; }
.assessment-card > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.assessment-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 9px; color: var(--student-academic); background: #eef0ff; }
.assessment-icon svg { width: 22px; }
.assessment-card > div > small { color: var(--student-academic); font-weight: 700; text-transform: uppercase; }
.assessment-card h3 { margin: 4px 0; font-size: 23px; }
.assessment-card p { margin: 0; color: var(--muted); }
.assessment-card dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: var(--line); }
.assessment-card dl > div { padding: 10px; background: #f8fafc; }
.assessment-card dt { color: var(--muted); font-size: 10px; text-transform: uppercase; }
.assessment-card dd { margin: 2px 0 0; font-weight: 700; }
.assessment-card > .btn { align-self: end; margin-top: auto; }

.status.status-ativa, .status.status-paga, .status.status-concluido, .status.status-deferido, .status.status-aprovado, .status.status-corrigido { color: #067647; background: #ecfdf3; }
.status.status-gerada, .status.status-aberto, .status.status-em_andamento, .status.status-enviado { color: #175cd3; background: #eff8ff; }
.status.status-vencida, .status.status-indeferido, .status.status-rejeitado, .status.status-encerrada { color: #b42318; background: #fef3f2; }
.status.status-cancelada { color: #475467; background: #f2f4f7; }

@media (max-width: 1250px) {
    .student-area-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .student-class-grid, .assessment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .classroom-area-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    .student-portal-bar { top: 96px; align-items: flex-start; flex-direction: column; gap: 8px; }
    .student-portal-links { width: 100%; }
    .student-welcome, .student-dashboard-columns, .classroom-overview-grid, .academic-read-grid, .ava-deadline-strip, .ava-support-grid, .student-content-layout { grid-template-columns: 1fr; }
    .student-page-heading, .student-academic-course > header, .student-course-heading { align-items: flex-start; flex-direction: column; }
    .student-page-heading > svg { display: none; }
    .academic-read-grid > section + section { border-top: 1px solid var(--line); border-left: 0; }
    .profile-read-sections { grid-template-columns: 1fr; }
    .deadline-chips { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .course-progress-card { width: 100%; min-width: 0; }
    .student-resource-aside { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
    .student-portal-page { padding-right: 14px; padding-left: 14px; }
    .student-portal-bar { position: static; margin-right: -14px; margin-left: -14px; padding-right: 14px; padding-left: 14px; }
    .student-portal-id { display: none; }
    .student-portal-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; overflow: visible; }
    .student-portal-links a { flex-direction: row; justify-content: center; gap: 5px; min-width: 0; padding: 8px 5px; font-size: 11px; }
    .student-welcome { padding: 24px 20px; }
    .student-area-grid, .student-class-grid, .assessment-grid, .student-summary-strip, .classroom-area-grid, .deadline-chips, .student-resource-aside { grid-template-columns: 1fr; }
    .student-area-card { min-height: 105px; }
    .student-page-heading { padding: 22px 18px; }
    .student-page-heading .actions, .student-page-heading .btn, .profile-heading-actions, .profile-heading-actions .btn { width: 100%; }
    .student-page-heading .actions { align-items: stretch; flex-direction: column; }
    .student-academic-course > header .actions { align-items: flex-start; }
    .student-academic-course > header .btn { width: auto; }
    .student-summary-strip article { min-height: 86px; }
    .profile-read-grid { grid-template-columns: 1fr; }
    .profile-read-grid > div:nth-child(2) { border-top: 1px solid var(--line); }
    .profile-read-grid .span-2 { grid-column: 1; }
    .student-course-header > .text-link { margin-right: 16px; margin-left: 16px; }
    .student-course-heading { padding: 18px 16px; }
    .student-course-tabs { padding: 0 7px; }
    .continue-learning-card { grid-template-columns: 44px minmax(0, 1fr); }
    .continue-learning-card > .btn { grid-column: 1 / -1; width: 100%; }
    .classroom-section-heading { align-items: flex-start; flex-direction: column; }
    .task-card-body { grid-template-columns: 1fr; }
    .task-grade { width: 82px; }
    .task-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .student-task-card > header { align-items: flex-start; flex-direction: column; }
    .student-task-card > footer .btn { width: 100%; }
    .student-module-panel .module-heading { align-items: flex-start; flex-direction: column; }
}
.discussion-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.discussion-actions form { display: inline-flex; }
.text-button { display: inline-flex; align-items: center; gap: 4px; padding: 0; border: 0; color: var(--blue); background: transparent; font-size: 11px; font-weight: 650; cursor: pointer; }
.text-button svg { width: 14px; }
.discussion-replies { display: grid; gap: 10px; margin-top: 12px; padding: 11px 0 0 12px; border-top: 1px solid #e8edf3; }
.discussion-reply { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 8px; }
.discussion-reply .discussion-avatar { width: 27px; height: 27px; color: var(--navy); background: #e5edf5; }
.discussion-reply p { margin-bottom: 0; }
.empty-state.compact { min-height: 140px; padding: 24px; text-align: center; color: var(--muted); }
.admin-quick-actions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.admin-quick-actions a { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 10px; align-items: center; min-height: 70px; padding: 13px 15px; border: 1px solid var(--line); border-radius: 6px; color: var(--ink); background: #fff; }
.admin-quick-actions a:hover { border-color: #9db4c9; background: #f8fafc; text-decoration: none; }
.admin-quick-actions svg { width: 22px; color: var(--teal); }
.admin-quick-actions small { display: block; color: var(--muted); }
.admin-stat-grid .stat { position: relative; min-height: 108px; padding-left: 56px; }
.admin-stat-grid .stat > svg { position: absolute; top: 22px; left: 20px; width: 24px; color: var(--teal); }
.question-management-list { display: grid; gap: 10px; }
.managed-question { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 14px; align-items: start; padding: 17px; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.question-number { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; color: #fff; background: var(--navy); font-weight: 700; }
.managed-question > div:nth-child(2) > strong { display: block; font-size: 15px; }
.managed-question > div:nth-child(2) > small { display: block; margin-top: 2px; color: var(--muted); }
.question-options { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.question-options span { display: inline-flex; align-items: center; gap: 4px; padding: 4px 7px; border-radius: 4px; color: #475467; background: #f1f4f7; font-size: 11px; }
.question-options span.is-correct { color: #166534; background: #eaf7ec; font-weight: 650; }
.question-options svg { width: 13px; }
.option-editor-list { display: grid; gap: 8px; }
.app-modal .option-editor { margin: 0; }
.ava-admin-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 0; margin-bottom: 8px; }
.virtual-room-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.virtual-room-list > a { display: grid; grid-template-columns: 38px minmax(0, 1fr) 20px; gap: 11px; align-items: center; min-height: 94px; padding: 15px; border: 1px solid var(--line); border-radius: 6px; color: var(--ink); background: #fff; }
.virtual-room-list > a:hover { border-color: #91adb9; background: #f8fbfc; text-decoration: none; }
.virtual-room-list > a > svg:first-child { width: 25px; color: var(--teal); }
.virtual-room-list > a > svg:last-child { width: 17px; color: var(--muted); }
.virtual-room-list span { min-width: 0; }
.virtual-room-list small, .virtual-room-list strong, .virtual-room-list em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.virtual-room-list small { color: var(--gold); font-size: 10px; font-weight: 700; text-transform: uppercase; }
.virtual-room-list strong { margin: 2px 0; font-size: 15px; }
.virtual-room-list em { color: var(--muted); font-size: 11px; font-style: normal; }
.admin-module-stack { display: grid; gap: 18px; }
.admin-learning-module { overflow: hidden; border: 1px solid #cbd8e3; border-left: 4px solid var(--teal); border-radius: 6px; background: #fff; }
.admin-learning-module.is-archived { opacity: .7; border-left-color: #98a2b3; }
.admin-learning-module > header { display: grid; grid-template-columns: 74px minmax(0, 1fr) auto; gap: 18px; align-items: start; padding: 19px 20px; border-bottom: 1px solid #cbd8e3; background: #eef4f6; }
.module-order { display: grid; align-content: center; justify-items: center; min-height: 66px; padding-right: 16px; border-right: 1px solid #b9cbd2; }
.module-order span { color: var(--muted); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.module-order strong { color: var(--navy); font-size: 29px; line-height: 1.1; }
.module-heading { min-width: 0; }
.module-context { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; color: #667085; font-size: 10px; font-weight: 700; text-transform: uppercase; }
.module-context svg { width: 12px; height: 12px; }
.module-heading h3 { margin: 5px 0 2px; font-size: 20px; }
.module-heading > p { margin: 0; color: var(--muted); font-size: 13px; }
.module-count { display: flex; align-items: center; gap: 5px; margin-top: 9px; color: var(--teal); font-size: 11px; font-weight: 650; }
.module-count svg { width: 15px; }
.admin-module-lessons { position: relative; background: #fff; }
.lesson-separator-label { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 34px; padding: 7px 18px 7px 98px; color: #475467; border-bottom: 1px solid #dde5ec; background: #f8fafc; font-size: 10px; font-weight: 700; text-transform: uppercase; }
.lesson-separator-label small { color: var(--muted); font-weight: 500; text-transform: none; }
.admin-module-lesson { position: relative; display: grid; grid-template-columns: 30px 38px minmax(0, 1fr) auto; gap: 12px; align-items: center; min-height: 82px; padding: 13px 18px 13px 26px; border-bottom: 1px solid #e6ecf1; }
.admin-module-lesson:last-child { border-bottom: 0; }
.admin-module-lesson::before { position: absolute; top: 0; bottom: 0; left: 40px; width: 1px; background: #c7d5de; content: ""; }
.admin-module-lesson.is-archived { opacity: .62; }
.lesson-position { position: relative; z-index: 1; display: grid; width: 28px; height: 28px; place-items: center; border: 2px solid #c7d5de; border-radius: 50%; color: #475467; background: #fff; font-size: 11px; font-weight: 700; }
.lesson-type { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 5px; color: var(--teal); background: #e8f3f4; }
.lesson-type svg { width: 17px; }
.admin-module-lesson > div:nth-child(3) { min-width: 0; }
.admin-module-lesson strong, .admin-module-lesson small { display: block; }
.admin-module-lesson small { margin-top: 2px; color: var(--muted); font-size: 11px; }
.admin-module-lesson p { margin: 4px 0 0; color: #667085; font-size: 12px; }
.empty-module-lessons { display: flex; align-items: center; gap: 12px; min-height: 88px; padding: 16px 20px 16px 98px; color: var(--muted); }
.empty-module-lessons > svg { width: 22px; color: var(--teal); }
.empty-module-lessons span { min-width: 0; }
.empty-module-lessons strong, .empty-module-lessons small { display: block; }
.empty-module-lessons .btn { margin-left: auto; }

@media (max-width: 1180px) {
    .asset-library-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lesson-workspace__layout { grid-template-columns: minmax(0, 1fr) 360px; }
    .virtual-room-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    .workspace-header, .workspace-section__head { align-items: flex-start; flex-direction: column; }
    .workspace-actions { width: 100%; }
    .workspace-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .workspace-nav { top: 0; }
    .teacher-lesson-row { grid-template-columns: 34px minmax(0, 1fr) auto; }
    .lesson-discussion-count { display: none; }
    .lesson-workspace__layout { grid-template-columns: 1fr; }
    .discussion-panel { position: static; }
    .discussion-list { max-height: none; }
    .compact-metrics { width: 100%; }
    .admin-quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-learning-module > header { grid-template-columns: 62px minmax(0, 1fr); }
    .admin-learning-module > header > .item-actions { grid-column: 2; }
}

@media (max-width: 680px) {
    .workspace-header h1 { font-size: 28px; }
    .workspace-actions .btn { flex: 1 1 140px; }
    .workspace-metrics { grid-template-columns: 1fr 1fr; }
    .workspace-metrics > div { grid-template-columns: 29px minmax(0, 1fr); min-height: 72px; padding: 12px; }
    .workspace-metrics strong { font-size: 21px; }
    .content-module > header, .teacher-lesson-row { align-items: flex-start; }
    .teacher-lesson-row { grid-template-columns: 30px minmax(0, 1fr); padding: 12px; }
    .teacher-lesson-row > .item-actions { grid-column: 2; }
    .asset-library-grid, .communication-grid, .polished-resource-list { grid-template-columns: 1fr; }
    .asset-library-item { grid-template-columns: 32px minmax(0, 1fr); }
    .asset-library-item .item-actions { grid-column: 2; }
    .app-modal > form { padding: 18px; }
    .app-modal .grid-2, .app-modal .grid-3 { grid-template-columns: 1fr; }
    .modal-actions { align-items: stretch; flex-direction: column-reverse; }
    .modal-actions .btn { width: 100%; }
    .lesson-workspace__header form, .lesson-workspace__header form .btn { width: 100%; }
    .discussion-panel > header { align-items: stretch; flex-direction: column; }
    .discussion-panel > header .btn { width: 100%; }
    .admin-quick-actions { grid-template-columns: 1fr; }
    .managed-question { grid-template-columns: 32px minmax(0, 1fr); }
    .managed-question > .item-actions { grid-column: 2; }
    .ava-admin-metrics, .virtual-room-list { grid-template-columns: 1fr; }
    .admin-learning-module > header { grid-template-columns: 46px minmax(0, 1fr); gap: 11px; padding: 15px 12px; }
    .module-order { min-height: 58px; padding-right: 10px; }
    .module-order strong { font-size: 24px; }
    .module-context { align-items: flex-start; flex-direction: column; }
    .module-context svg { display: none; }
    .module-heading h3 { font-size: 18px; }
    .lesson-separator-label { padding-left: 16px; }
    .admin-module-lesson { grid-template-columns: 28px 32px minmax(0, 1fr); gap: 8px; padding: 12px 10px 12px 12px; }
    .admin-module-lesson::before { left: 25px; }
    .admin-module-lesson > .item-actions { grid-column: 3; }
    .empty-module-lessons { align-items: flex-start; flex-wrap: wrap; padding: 18px; }
    .empty-module-lessons .btn { width: 100%; margin-left: 0; }
}

/* Keep the administrative menu expanded; the page handles scrolling. */
.admin-shell > .side:not(.support-side) {
    position: static;
    top: auto;
    display: grid;
    max-height: none;
    overflow: visible;
    white-space: normal;
}
.admin-shell > .side:not(.support-side) > small { display: block; }
.admin-shell > .side:not(.support-side) > a { display: grid; }
