/*
 * Norbell Design System
 * Shared visual language derived from the RPPS em Pauta event experience.
 * Loaded after legacy styles while the application is migrated component by component.
 */
:root {
    --brand-navy: #102a43;
    --brand-navy-deep: #0b2134;
    --brand-blue: #244760;
    --brand-gold: #d4ab59;
    --brand-gold-dark: #9b7229;
    --brand-paper: #f8f6f1;
    --brand-surface: #ffffff;
    --brand-soft: #e9edf0;
    --brand-ink: #162f45;
    --brand-muted: #526578;
    --brand-line: #d9dedf;
    --brand-success: #285c3b;
    --brand-success-soft: #e9f1eb;
    --brand-warning: #8b651e;
    --brand-warning-soft: #fff4dc;
    --brand-danger: #942833;
    --brand-danger-soft: #fff4f5;
    --brand-sans: Inter, "Segoe UI", Arial, sans-serif;
    --brand-serif: Georgia, "Times New Roman", serif;
    --brand-container: 1200px;
    --brand-sidebar: 310px;
    --brand-radius-xs: 3px;
    --brand-radius-sm: 5px;
    --brand-radius-md: 8px;
    --brand-shadow: 0 18px 44px rgba(16, 42, 67, .10);
    --brand-shadow-soft: 0 8px 24px rgba(16, 42, 67, .07);

    /* Compatibility tokens used by the existing application. */
    --font-sans: var(--brand-sans);
    --bg: var(--brand-paper);
    --surface: var(--brand-surface);
    --surface-soft: #f4f2ec;
    --line: var(--brand-line);
    --text: var(--brand-ink);
    --muted: var(--brand-muted);
    --muted-strong: #354d61;
    --primary: var(--brand-navy);
    --primary-soft: #e8eef2;
    --accent: var(--brand-gold);
    --accent-soft: #f6ecd6;
    --success: var(--brand-success);
    --success-soft: var(--brand-success-soft);
    --warning: var(--brand-warning);
    --warning-soft: var(--brand-warning-soft);
    --danger: var(--brand-danger);
    --danger-soft: var(--brand-danger-soft);
    --radius-xl: var(--brand-radius-md);
    --radius-lg: var(--brand-radius-md);
    --radius-md: var(--brand-radius-sm);
    --radius-sm: var(--brand-radius-xs);
    --shadow-lg: var(--brand-shadow);
    --shadow-md: var(--brand-shadow-soft);
    --shadow-sm: 0 4px 14px rgba(16, 42, 67, .06);
    --sidebar-width: var(--brand-sidebar);
    --norbell-primary: var(--brand-navy);
    --norbell-primary-dark: var(--brand-navy-deep);
    --norbell-primary-soft: #e8eef2;
    --norbell-primary-muted: var(--brand-blue);
    --norbell-bg: var(--brand-paper);
    --norbell-card: var(--brand-surface);
    --norbell-border: var(--brand-line);
    --norbell-text: var(--brand-ink);
    --norbell-muted: var(--brand-muted);
}

html { scroll-behavior: smooth; }

body:not(.event-page) {
    background: var(--brand-paper);
    color: var(--brand-ink);
    font-family: var(--brand-sans);
    -webkit-font-smoothing: antialiased;
}

body:not(.event-page) :focus-visible {
    outline: 3px solid #a85d10;
    outline-offset: 4px;
}

.skip-link {
    position: fixed;
    z-index: 9999;
    top: -80px;
    left: 20px;
    padding: 11px 18px;
    background: var(--brand-surface);
    color: var(--brand-navy);
    border: 1px solid var(--brand-gold);
    border-radius: var(--brand-radius-sm);
    font-weight: 800;
}

.skip-link:focus { top: 14px; }

body:not(.event-page) h1,
body:not(.event-page) h2,
body:not(.event-page) h3,
body:not(.event-page) h4 {
    color: var(--brand-navy);
    letter-spacing: -.025em;
}

body:not(.event-page) p { line-height: 1.7; }

body:not(.event-page) .eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 0;
    background: transparent;
    color: var(--brand-gold-dark);
    border-radius: 0;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

body:not(.event-page) .eyebrow::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--brand-gold);
}

/* Shared actions */
body:not(.event-page) .button,
body:not(.event-page) button.button,
body:not(.event-page) input[type="submit"] {
    min-height: 46px;
    border-radius: var(--brand-radius-sm);
    padding: 11px 18px;
    font-size: 13px;
    font-weight: 800;
    box-shadow: none;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

body:not(.event-page) .button:hover,
body:not(.event-page) button.button:hover { transform: translateY(-1px); }

body:not(.event-page) .button--primary {
    background: var(--brand-gold);
    border-color: var(--brand-gold);
    color: var(--brand-navy);
}

body:not(.event-page) .button--primary:hover {
    background: #dfb965;
    border-color: #dfb965;
    color: var(--brand-navy);
}

body:not(.event-page) .button--secondary {
    background: var(--brand-navy);
    border-color: var(--brand-navy);
    color: #fff;
}

body:not(.event-page) .button--secondary:hover {
    background: var(--brand-blue);
    border-color: var(--brand-blue);
    color: #fff;
}

body:not(.event-page) .button--ghost {
    background: transparent;
    border-color: #97a6b2;
    color: var(--brand-navy);
}

body:not(.event-page) .button--ghost:hover {
    background: #eef1f2;
    border-color: var(--brand-navy);
}

body:not(.event-page) .button--danger {
    background: var(--brand-danger);
    border-color: var(--brand-danger);
    color: #fff;
}

/* Forms */
body:not(.event-page) input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body:not(.event-page) select,
body:not(.event-page) textarea {
    border: 1px solid #bcc7ce;
    border-radius: var(--brand-radius-sm);
    background: #fff;
    color: var(--brand-ink);
    box-shadow: none;
}

body:not(.event-page) input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):focus,
body:not(.event-page) select:focus,
body:not(.event-page) textarea:focus {
    border-color: var(--brand-blue);
    box-shadow: 0 0 0 3px rgba(36, 71, 96, .12);
    outline: 0;
}

body:not(.event-page) label { color: var(--brand-ink); font-weight: 700; }

body:not(.event-page) input[type="checkbox"],
body:not(.event-page) input[type="radio"] { accent-color: var(--brand-navy); }

/* Shared content surfaces */
body:not(.event-page) .panel,
body:not(.event-page) .card,
body:not(.event-page) .metric-card,
body:not(.event-page) .stat-card,
body:not(.event-page) .hero-card,
body:not(.event-page) .dashboard-card,
body:not(.event-page) .modal-card,
body:not(.event-page) .empty-state {
    border: 1px solid var(--brand-line);
    border-radius: var(--brand-radius-sm);
    background: var(--brand-surface);
    box-shadow: none;
}

body:not(.event-page) .panel__header,
body:not(.event-page) .card__header {
    border-bottom-color: var(--brand-line);
}

body:not(.event-page) .table-wrapper {
    border: 1px solid var(--brand-line);
    border-radius: var(--brand-radius-sm);
    box-shadow: none;
    background: #fff;
}

body:not(.event-page) .table th {
    background: #eef1f2;
    color: var(--brand-navy);
    border-bottom: 1px solid var(--brand-line);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

body:not(.event-page) .table td { border-bottom-color: #e5e8e9; }
body:not(.event-page) .table tr:hover td { background: #faf9f6; }

body:not(.event-page) .badge {
    border-radius: 3px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

body:not(.event-page) .badge--success { background: var(--brand-success-soft); color: var(--brand-success); }
body:not(.event-page) .badge--warning { background: var(--brand-warning-soft); color: var(--brand-warning); }
body:not(.event-page) .badge--danger { background: var(--brand-danger-soft); color: var(--brand-danger); }
body:not(.event-page) .badge--info,
body:not(.event-page) .badge--primary { background: #e8eef2; color: var(--brand-blue); }

body:not(.event-page) .alert {
    border-radius: var(--brand-radius-sm);
    border-width: 1px;
    box-shadow: none;
}

body:not(.event-page) .alert--success { background: var(--brand-success-soft); border-color: #b9d0c0; color: var(--brand-success); }
body:not(.event-page) .alert--danger { background: var(--brand-danger-soft); border-color: #e8babd; color: var(--brand-danger); }
body:not(.event-page) .alert--warning { background: var(--brand-warning-soft); border-color: #ead39d; color: var(--brand-warning); }
body:not(.event-page) .alert--info { background: #eef3f6; border-color: #cad8e0; color: var(--brand-blue); }

/* Public site */
.layout-public {
    background: var(--brand-paper) !important;
}

.layout-public .public-header {
    position: sticky;
    top: 0;
    z-index: 40;
    padding: 0;
    background: rgba(248, 246, 241, .97);
    border-bottom: 1px solid var(--brand-line);
    backdrop-filter: blur(12px);
}

.layout-public .public-header__bar {
    width: min(var(--brand-container), calc(100% - 64px));
    min-height: 86px;
    margin: 0 auto;
    padding: 12px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.layout-public .public-brand img { width: 150px; max-height: 54px; object-fit: contain; }
.layout-public .public-brand strong { color: var(--brand-navy); }
.layout-public .public-brand small { color: var(--brand-muted); font-size: 9px; letter-spacing: .12em; }

.layout-public .public-nav { gap: 25px; flex-wrap: nowrap; }
.layout-public .public-nav a {
    padding: 12px 0;
    border-radius: 0;
    color: var(--brand-navy);
    font-size: 13px;
    font-weight: 650;
    white-space: nowrap;
}
.layout-public .public-nav a:hover,
.layout-public .public-nav a.is-active { background: transparent; color: var(--brand-gold-dark); }

.layout-public .public-header__actions { gap: 9px; }
.layout-public .public-header__actions .button { min-height: 44px; padding: 10px 15px; font-size: 11px; }
.layout-public .public-header__actions .button--primary {
    background: var(--brand-navy);
    border-color: var(--brand-navy);
    color: #fff;
}
.layout-public .public-header__actions .button--primary:hover {
    background: var(--brand-blue);
    border-color: var(--brand-blue);
    color: #fff;
}
.layout-public .public-page { width: min(var(--brand-container), calc(100% - 64px)); }

.layout-public .public-hero,
.layout-public .public-page-hero,
.layout-public .public-section,
.layout-public .public-article,
.layout-public .public-form-card,
.layout-public .public-info-card,
.layout-public .public-empty {
    border-color: var(--brand-line);
    border-radius: var(--brand-radius-sm);
    box-shadow: none;
}

.layout-public .public-hero,
.layout-public .public-page-hero {
    background: var(--brand-navy);
    color: #fff;
}

.layout-public .public-hero h1,
.layout-public .public-hero h2,
.layout-public .public-hero h3,
.layout-public .public-page-hero h1,
.layout-public .public-page-hero h2 { color: #fff; }

.layout-public .public-hero p,
.layout-public .public-page-hero p { color: #d3dde5; }

.layout-public .public-hero .eyebrow,
.layout-public .public-page-hero .eyebrow { color: var(--brand-gold); }

.layout-public .public-course-card,
.layout-public .public-news-card,
.layout-public .public-service-card,
.layout-public [class*="benefit-card"],
.layout-public [class*="course-card"] {
    border-radius: var(--brand-radius-sm);
    border-color: var(--brand-line);
    box-shadow: none;
}

.layout-public .public-footer { background: var(--brand-navy-deep); color: #d4dee5; }
.layout-public .public-footer h2,
.layout-public .public-footer h3,
.layout-public .public-footer strong { color: #fff; }

/* Public home: editorial rhythm shared with the event landing. */
.layout-public .cursosrpps-page {
    width: min(var(--brand-container), calc(100% - 64px));
    margin: 0 auto;
    padding: 0 0 72px;
}
.layout-public .cursosrpps-anchor-nav {
    margin: 0;
    padding: 17px 0;
    border: 0;
    border-bottom: 1px solid var(--brand-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.layout-public .cursosrpps-anchor-nav a { color: var(--brand-navy); font-size: 12px; font-weight: 750; }
.layout-public .cursosrpps-hero {
    grid-template-columns: 1.08fr 1fr;
    gap: 56px;
    margin: 0;
    padding: 58px 0 62px;
    border: 0;
    border-radius: 0;
    background: var(--brand-navy);
    box-shadow: none;
}
.layout-public .cursosrpps-hero::before { background: none; }
.layout-public .cursosrpps-hero__content { padding: 0 0 0 52px; }
.layout-public .cursosrpps-hero__aside { padding: 0 52px 0 0; }
.layout-public .cursosrpps-eyebrow { color: var(--brand-gold); background: transparent; padding: 0; font-size: 10px; letter-spacing: .14em; }
.layout-public .cursosrpps-eyebrow::before { content: '•'; margin-right: 8px; }
.layout-public .cursosrpps-hero h1 { color: #fff; font-size: clamp(38px, 4.2vw, 56px); line-height: 1.1; }
.layout-public .cursosrpps-hero p { color: #d4dfe7; }
.layout-public .cursosrpps-hero-panel { border: 0; border-radius: var(--brand-radius-sm); background: #244760; box-shadow: none; }
.layout-public .cursosrpps-hero-panel h2,
.layout-public .cursosrpps-hero-panel li { color: #fff; }
.layout-public .cursosrpps-hero .button--ghost { color: #fff; border-color: rgba(255,255,255,.5); }
.layout-public .cursosrpps-section { margin: 0; padding: 78px 52px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.layout-public .cursosrpps-section--soft { background: var(--brand-soft); }
.layout-public .cursosrpps-section--cta { background: var(--brand-blue); }
.layout-public .cursosrpps-section--cta h2 { color: #fff; }
.layout-public .cursosrpps-section--cta p { color: #d4dfe7; }
.layout-public .cursosrpps-section__header { max-width: 720px; }
.layout-public .cursosrpps-section h2 { font-size: clamp(30px, 3.2vw, 44px); }
.layout-public .cursosrpps-benefit-card,
.layout-public .cursosrpps-course-card,
.layout-public .cursosrpps-public-card,
.layout-public .cursosrpps-methodology-card { border-radius: var(--brand-radius-sm); border-color: var(--brand-line); box-shadow: none; }
.layout-public .cursosrpps-benefit-card { border-top: 2px solid var(--brand-gold); }
.layout-public .cursosrpps-course-card { display:flex; flex-direction:column; }
.layout-public .cursosrpps-course-card .button { margin-top:auto; }
.layout-public .cursosrpps-course-card__category { color: var(--brand-gold-dark); }
.layout-public .cursosrpps-course-meta { border-top-color: var(--brand-line); }
.layout-public .cursosrpps-public-card__dot { background: var(--brand-gold); }

/* Authentication */
.layout-auth {
    min-height: 100vh;
    background: linear-gradient(90deg, var(--brand-navy) 0 48%, var(--brand-paper) 48% 100%) !important;
}

.layout-auth .auth-shell {
    width: min(1100px, calc(100% - 48px));
    margin: 0 auto;
    min-height: 100vh;
    justify-items: end;
    padding: 54px 0;
    position: relative;
}

.layout-auth .auth-shell::before {
    content: "Conhecimento aplicado para decisões mais seguras.";
    position: absolute;
    left: 0;
    top: 50%;
    width: min(38vw, 440px);
    transform: translateY(-50%);
    color: #fff;
    font-family: var(--brand-serif);
    font-size: clamp(34px, 4vw, 54px);
    line-height: 1.12;
    letter-spacing: -.035em;
}

.layout-auth .auth-card {
    width: min(100%, 480px);
    padding: 42px;
    justify-items: stretch;
    background: var(--brand-surface);
    border: 1px solid var(--brand-line);
    border-radius: var(--brand-radius-sm);
    box-shadow: var(--brand-shadow);
    backdrop-filter: none;
}

.layout-auth .auth-card__intro { justify-items: start; text-align: left; }
.layout-auth .auth-logo { width: 178px; }
.layout-auth .auth-card h1 { font-size: 32px; }
.layout-auth .auth-card__summary { color: var(--brand-muted); }
.layout-auth .auth-card__intro > p:last-child { display: none; }

/* App shell: administration and student */
.layout-admin,
.layout-aluno { background: var(--brand-paper) !important; }

.layout-admin .app-shell,
.layout-aluno .app-shell { background: var(--brand-paper); }

.layout-admin .sidebar,
.layout-aluno .sidebar,
.dashboard-shell .sidebar {
    width: var(--brand-sidebar);
    background: var(--brand-navy-deep) !important;
    border-right: 0;
    padding: 0;
    box-shadow: none;
}

.layout-admin .sidebar__brand,
.layout-aluno .sidebar__brand,
.dashboard-shell .sidebar__brand {
    min-height: 88px;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
    padding: 17px 22px;
}

.layout-admin .sidebar__brand a,
.layout-aluno .sidebar__brand a,
.dashboard-shell .sidebar__brand a {
    display: grid;
    align-content: center;
    gap: 4px;
    min-width: 0;
    padding: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.layout-admin .sidebar-wordmark,
.layout-aluno .sidebar-wordmark,
.dashboard-shell .sidebar-wordmark {
    display: flex;
    align-items: baseline;
    gap: 7px;
    color: #fff;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: 1;
    text-transform: uppercase;
}

.layout-admin .sidebar-wordmark em,
.layout-aluno .sidebar-wordmark em,
.dashboard-shell .sidebar-wordmark em {
    color: var(--brand-gold);
    font-style: normal;
}

.layout-admin .brand-copy,
.layout-aluno .brand-copy,
.dashboard-shell .brand-copy { display: block; }
.layout-admin .brand-copy small,
.layout-aluno .brand-copy small,
.dashboard-shell .brand-copy small { color: #b8c6d0; font-size: 9px; text-transform: uppercase; letter-spacing: .12em; }

.layout-admin .sidebar__nav,
.layout-aluno .sidebar__nav,
.dashboard-shell .sidebar__nav { padding: 20px 14px; }

.layout-admin .sidebar__group-toggle,
.layout-admin .sidebar__link,
.layout-aluno .sidebar__group-toggle,
.layout-aluno .sidebar__link,
.dashboard-shell .sidebar__group-toggle,
.dashboard-shell .sidebar__link {
    border-radius: var(--brand-radius-xs);
    color: #c8d4dc;
    font-size: 12px;
    min-height: 43px;
}

.layout-admin .sidebar__label,
.layout-aluno .sidebar__label,
.dashboard-shell .sidebar__label {
    align-items: center;
    min-width: 0;
}

.layout-admin .sidebar__link-text,
.layout-aluno .sidebar__link-text,
.dashboard-shell .sidebar__link-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.layout-admin .sidebar__group-icon,
.layout-aluno .sidebar__group-icon,
.dashboard-shell .sidebar__group-icon { flex: 0 0 auto; }

.layout-admin .sidebar__group-toggle:hover,
.layout-admin .sidebar__group.is-open .sidebar__group-toggle,
.layout-admin .sidebar__link:hover,
.layout-admin .sidebar__link.is-active,
.layout-aluno .sidebar__group-toggle:hover,
.layout-aluno .sidebar__group.is-open .sidebar__group-toggle,
.layout-aluno .sidebar__link:hover,
.layout-aluno .sidebar__link.is-active {
    background: rgba(212, 171, 89, .14) !important;
    color: #fff !important;
}

.layout-admin .sidebar__link.is-active,
.layout-aluno .sidebar__link.is-active { box-shadow: inset 3px 0 var(--brand-gold); }
.layout-admin .sidebar__icon,
.layout-aluno .sidebar__icon { color: var(--brand-gold); }

.layout-admin .sidebar__group-items,
.layout-aluno .sidebar__group-items { border-left-color: rgba(212, 171, 89, .30); }

.layout-admin .sidebar__footer,
.layout-aluno .sidebar__footer { border-top-color: rgba(255, 255, 255, .12); color: #d5dfe5; }
.layout-admin .sidebar__logout,
.layout-aluno .sidebar__logout { color: #fff; border-color: rgba(255,255,255,.22); border-radius: var(--brand-radius-xs); }

.layout-admin .app-main,
.layout-aluno .app-main {
    margin-left: 0;
    background: var(--brand-paper);
}

.layout-admin .topbar,
.layout-aluno .topbar,
.dashboard-shell .topbar {
    min-height: 88px;
    padding: 17px 32px;
    background: rgba(248, 246, 241, .97) !important;
    border-bottom: 1px solid var(--brand-line);
    box-shadow: none !important;
    backdrop-filter: blur(10px);
}

.layout-admin .topbar h1,
.layout-aluno .topbar h1 { color: var(--brand-navy); font-size: 22px; font-weight: 750; }
.layout-admin .topbar p,
.layout-aluno .topbar p { color: var(--brand-muted); font-size: 12px; }
.layout-admin .topbar__search,
.layout-aluno .topbar__search { border-color: var(--brand-line); border-radius: var(--brand-radius-sm); background: #fff; }
.layout-admin .topbar__action-button,
.layout-aluno .topbar__action-button { border-radius: var(--brand-radius-sm); background: var(--brand-navy); color: #fff; }
.layout-admin .user-pill,
.layout-aluno .user-pill { border-radius: var(--brand-radius-sm); border-color: var(--brand-line); background: #fff; }
.layout-admin .user-pill__avatar,
.layout-aluno .user-pill__avatar { background: var(--brand-gold); color: var(--brand-navy); }

.layout-admin .content,
.layout-aluno .content { width: min(100%, 1500px); padding: 34px 38px 56px; }

.layout-admin .page-header,
.layout-aluno .page-header {
    padding: 0 0 24px;
    border: 0;
    border-bottom: 1px solid var(--brand-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.layout-admin .page-header h2,
.layout-aluno .page-header h2 { font-size: clamp(27px, 3vw, 38px); }

/* Dashboard */
.layout-admin .dashboard-command,
.layout-aluno .student-hero,
.layout-aluno .student-course-overview__header {
    border-radius: var(--brand-radius-sm);
    background: var(--brand-navy);
    color: #fff;
    box-shadow: none;
}

.layout-admin .dashboard-command h2,
.layout-admin .dashboard-command h3,
.layout-aluno .student-hero h2,
.layout-aluno .student-course-overview__header h2 { color: #fff; }
.layout-admin .dashboard-command p,
.layout-aluno .student-hero p,
.layout-aluno .student-course-overview__header p { color: #d2dde5; }
.layout-admin .dashboard-command__eyebrow,
.layout-admin .dashboard-card__eyebrow { color: var(--brand-gold); }

.layout-admin .dashboard-kpi-card {
    border-radius: var(--brand-radius-sm);
    border: 1px solid var(--brand-line);
    box-shadow: none;
}
.layout-admin .dashboard-kpi-card__value { color: var(--brand-navy); }

/* Student learning */
.layout-aluno .student-course-grid { gap: 20px; }
.layout-aluno .student-course-card-v2,
.layout-aluno .student-module-card,
.layout-aluno .student-lesson-card,
.layout-aluno .student-simulation-card,
.layout-aluno .student-certificate-card {
    border: 1px solid var(--brand-line);
    border-radius: var(--brand-radius-sm);
    box-shadow: none;
    background: #fff;
}

.layout-aluno .student-course-card-v2__media { border-radius: var(--brand-radius-sm) var(--brand-radius-sm) 0 0; }
.layout-aluno .student-progress__bar { background: #dfe5e8; }
.layout-aluno .student-progress__bar span { background: var(--brand-gold); }
.layout-aluno .sidebar__student-tree { border-top-color: rgba(255,255,255,.12); }
.layout-aluno .sidebar__student-back,
.layout-aluno .sidebar__student-course-link,
.layout-aluno .sidebar__student-lesson { color: #d0dbe2; }
.layout-aluno .sidebar__student-lesson.is-active { background: rgba(212,171,89,.14); color: #fff; box-shadow: inset 3px 0 var(--brand-gold); }

/* Guided workflow */
.workflow-strip {
    display: grid;
    grid-template-columns: repeat(7, minmax(115px, 1fr));
    gap: 1px;
    margin: 0 0 28px;
    border: 1px solid var(--brand-line);
    border-radius: var(--brand-radius-sm);
    overflow-x: auto;
    background: var(--brand-line);
}

.workflow-strip__step {
    min-width: 115px;
    padding: 15px 14px;
    background: #fff;
    color: var(--brand-muted);
    text-decoration: none;
}

.workflow-strip__step span {
    display: block;
    margin-bottom: 5px;
    color: var(--brand-gold-dark);
    font-family: var(--brand-serif);
    font-size: 15px;
}

.workflow-strip__step strong { display: block; color: var(--brand-navy); font-size: 11px; line-height: 1.35; }
.workflow-strip__step.is-active { background: var(--brand-navy); }
.workflow-strip__step.is-active span { color: var(--brand-gold); }
.workflow-strip__step.is-active strong { color: #fff; }

.workflow-hero { display:flex; align-items:end; justify-content:space-between; gap:28px; margin-bottom:24px; padding:34px; border-radius:var(--brand-radius-sm); background:var(--brand-navy); color:#fff; }
.workflow-hero .eyebrow { color:var(--brand-gold); }
.workflow-hero h2 { margin:12px 0 8px; color:#fff; font-size:clamp(30px,4vw,46px); }
.workflow-hero p:not(.eyebrow) { max-width:720px; margin:0; color:#d1dde5; }
.workflow-hero__status { display:grid; gap:1px; min-width:135px; padding:17px 20px; border:1px solid rgba(212,171,89,.5); color:#d3dee5; }
.workflow-hero__status strong { color:var(--brand-gold); font-family:var(--brand-serif); font-size:33px; line-height:1; }
.workflow-hero__status span { font-size:11px; font-weight:700; }
.workflow-next { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:24px; padding:25px 28px; border:1px solid #ead39d; border-radius:var(--brand-radius-sm); background:#fffaf0; }
.workflow-next .eyebrow { margin:0 0 8px; }
.workflow-next h3 { margin:0; font-size:23px; }
.workflow-next p:not(.eyebrow) { margin:6px 0 0; color:var(--brand-muted); }
.workflow-next .button { flex:0 0 auto; }
.workflow-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.workflow-card { display:grid; grid-template-columns:43px 1fr; gap:17px; padding:25px; border:1px solid var(--brand-line); border-radius:var(--brand-radius-sm); background:#fff; }
.workflow-card__number { color:var(--brand-gold-dark); font-family:var(--brand-serif); font-size:19px; }
.workflow-card .badge { margin-bottom:11px; }
.workflow-card h3 { margin:0; font-size:21px; }
.workflow-card p { margin:7px 0; color:var(--brand-muted); font-size:13px; }
.workflow-card small { display:block; color:var(--brand-blue); font-size:11px; font-weight:800; }
.workflow-card a { display:inline-block; margin-top:16px; color:var(--brand-navy); font-size:12px; font-weight:800; text-decoration:underline; text-underline-offset:4px; }
.workflow-card.is-ready { border-top:3px solid var(--brand-success); }

@media (max-width: 1180px) {
    .layout-public .public-header__bar { width: min(100% - 36px, var(--brand-container)); }
    .layout-public .public-nav { gap: 15px; }
    .layout-public .public-header__actions .button--ghost { display: none; }
}

@media (max-width: 960px) {
    .layout-public .public-header__bar { min-height: 72px; }
    .layout-public .public-nav-toggle { display: inline-flex; align-items: center; justify-content: center; }
    .layout-public .public-nav { gap: 4px; }
    .layout-auth { background: var(--brand-paper) !important; }
    .layout-auth .auth-shell { justify-items: center; width: min(100% - 32px, 520px); padding: 32px 0; }
    .layout-auth .auth-shell::before { display: none; }
    .layout-admin .app-main,
    .layout-aluno .app-main { margin-left: 0; }
    .layout-admin .content,
    .layout-aluno .content { padding: 28px 24px 48px; }
}

@media (max-width: 767px) {
    .layout-public .public-header__bar { width: calc(100% - 32px); padding-block: 10px; }
    .layout-public .public-brand { flex: 1 1 0; width: auto; min-width: 0; }
    .layout-public .public-brand img { width: 120px; max-width: 100%; }
    .layout-public .public-brand span { display: none; }
    .layout-public .public-header__actions { display: none; }
    .layout-public .public-page { width: calc(100% - 32px); }
    .layout-public .public-nav {
        position: absolute;
        left: 0;
        right: 0;
        top: 72px;
        padding: 17px 20px;
        flex-direction: column;
        align-items: stretch;
        background: var(--brand-paper);
        border-bottom: 1px solid var(--brand-line);
        box-shadow: var(--brand-shadow-soft);
    }
    .layout-public .public-nav a { min-height: 42px; padding: 10px 0; }
    .layout-auth .auth-card { padding: 28px 22px; }
    .layout-admin .topbar,
    .layout-aluno .topbar { min-height: 72px; padding: 13px 18px; }
    .layout-admin .topbar h1,
    .layout-aluno .topbar h1 { font-size: 18px; }
    .layout-admin .topbar__search,
    .layout-aluno .topbar__search { display: none; }
    .layout-admin .content,
    .layout-aluno .content { padding: 22px 16px 42px; }
    .workflow-strip { grid-template-columns: repeat(7, 128px); }
    .workflow-hero,
    .workflow-next { align-items:flex-start; flex-direction:column; padding:24px 20px; }
    .workflow-grid { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
