/* Renovação visual aprovada — componentes compartilhados, sem alterar a arte da marca. */
:root {
  --bg:#f5f8fc;
  --ink:#0b2044;
  --muted:#61738c;
  --line:#e1e9f3;
  --heading-font:Manrope,Montserrat,Arial,sans-serif;
}
body {font-size:14px;line-height:1.7;background:var(--bg)}
h1,h2,h3,h4 {font-family:var(--heading-font);font-weight:800;color:var(--ink)}
h1 {font-size:34px;letter-spacing:-1.2px;line-height:1.25}
h2 {font-size:23px;letter-spacing:-.7px;line-height:1.35}
h3 {font-size:18px;letter-spacing:-.4px;line-height:1.5}
.eyebrow {font-size:10px;font-weight:700;letter-spacing:1.6px}
.subheading {font-size:14px;line-height:1.8;margin-top:10px}
.btn {min-height:46px;padding:12px 19px;font-size:12px;font-weight:650;border-radius:10px;gap:9px;line-height:1.5;box-shadow:none}
.btn.primary {background:var(--blue);box-shadow:0 4px 12px #0755b310}
.btn.primary:hover {background:#064995;box-shadow:0 5px 16px #0755b31c}
.btn.cyan {color:var(--navy);background:var(--cyan);border-color:var(--cyan)}
.btn.secondary {border-color:#bdcde2;color:var(--blue)}
.btn .icon {width:18px;height:18px}
.btn.small {font-size:11px;min-height:42px;padding:9px 13px}
.btn.ghost {font-size:12px}
.badge {font-size:10px;padding:5px 10px;line-height:1.5;border-radius:6px;font-weight:600}
.text-link {font-size:12px;min-height:36px;gap:8px}
.text-link>.icon {width:17px;height:17px}
.panel {border-radius:15px;border-color:var(--line);box-shadow:0 3px 13px #12355903}
.padded {padding:28px}
.muted-text,.small-copy {font-size:12px;line-height:1.9}
.helper {font-size:11px;line-height:1.9}
.empty h3 {font-size:21px}
.empty p {font-size:13px;line-height:1.9}
.notice {font-size:12px;line-height:1.9;border-radius:11px}
.page-heading {margin-bottom:28px;gap:20px}
.section-heading {margin-bottom:20px;align-items:center}
.section-heading h2 {font-size:25px}
.section-heading p {font-size:12px;line-height:1.8}
.today-date {font-size:11px}
.main-footer {font-size:10px;padding:22px 36px;color:#647893}

/* Portal público */
.portal-topline {display:none}
.portal-header {background:white;border-bottom:1px solid #e4ecf4}
.portal-header-inner {width:min(1280px,calc(100% - 80px));gap:24px}
.portal-container {width:min(1280px,calc(100% - 80px))}
.portal-nav {gap:25px}
.portal-nav>a:not(.btn) {font-family:var(--heading-font);font-size:13px;font-weight:650;color:#334a68;min-height:46px}
.portal-nav>a[aria-current]:not(.btn) {color:var(--blue);font-weight:800}
.portal-nav>.btn {font-size:12px;padding:12px 19px;border-radius:10px;white-space:nowrap}
.portal-nav>.btn>.icon {width:18px;height:18px}
.welcome-hero {background:linear-gradient(110deg,#eaf9ff 0%,#e7f7fd 56%,#d9f2fc 100%);overflow:hidden;padding:46px 0 48px}
.welcome-inner {display:grid;grid-template-columns:1fr 1.12fr;gap:60px;align-items:center}
.welcome-copy>.eyebrow {font-size:11px;font-weight:750;color:var(--navy);margin-bottom:18px;letter-spacing:1.7px}
.welcome-copy h1 {font-family:var(--heading-font);font-size:clamp(40px,4.2vw,61px);font-weight:800;letter-spacing:-2.3px;line-height:1.1;margin:0 0 20px}
.welcome-copy h1 em {font-style:normal;color:var(--blue)}
.welcome-copy>p:not(.eyebrow) {font-size:16px;color:#314c6c;line-height:1.8;letter-spacing:-.2px;margin-bottom:25px}
.welcome-actions {display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.welcome-actions>.btn {font-size:13px;min-height:49px;padding:13px 21px}
.welcome-actions>.btn.secondary {background:white;border:1px solid #52769e;color:var(--navy)}
.welcome-photo {position:relative;margin:0 9px 15px 0;isolation:isolate}
.welcome-photo:after {position:absolute;content:'';inset:20px -18px -18px 22px;background:var(--navy);border-radius:20px;z-index:-1}
.welcome-photo>img {display:block;width:100%;height:auto;aspect-ratio:1.55;object-fit:cover;object-position:center;border-radius:20px}
.welcome-photo>figcaption {position:absolute;right:18px;bottom:18px;max-width:calc(100% - 36px);display:flex;align-items:center;gap:9px;background:#fff;color:var(--ink);border:1px solid #f3f6fb;border-radius:11px;box-shadow:0 8px 24px #092b5215;padding:12px 16px;font-family:var(--heading-font);font-size:12px;font-weight:750}
.welcome-photo>figcaption>.icon {color:#cc7600;width:22px;height:22px}
.benefits-bar {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #a9c9ee;border-radius:12px;padding:18px 8px;margin-top:24px;background:white}
.benefits-bar>span {display:flex;align-items:center;justify-content:center;gap:13px;font-family:var(--heading-font);font-size:14px;font-weight:750;color:var(--ink);padding:2px 15px;text-align:center;line-height:1.6}
.benefits-bar>span+span {border-left:1px solid #c2d8f0}
.benefits-bar .icon {width:28px;height:28px;color:var(--blue);stroke-width:1.5}
.renewed-catalog {padding-top:42px;padding-bottom:48px}
.renewed-catalog>.catalog-heading {margin-bottom:20px;align-items:center}
.catalog-heading h2 {font-size:31px;letter-spacing:-1px}
.catalog-heading .eyebrow {font-size:9px;letter-spacing:1.5px}
.catalog-heading>.search-field {max-width:365px;min-height:47px}
.search-field {border-color:#cbd8e8;border-radius:10px;min-height:46px}
.search-field input {font-size:12px;color:var(--ink);min-height:44px}
.search-field input::placeholder {color:#6c7e96}
.catalog-controls {display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap}
.category-chips {border:0;padding:0;margin:0;min-width:0;display:flex;gap:9px;flex-wrap:wrap}
.category-chip {position:relative;display:inline-flex;cursor:pointer;align-items:center}
.category-chip>input {position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.category-chip>span {display:flex;align-items:center;justify-content:center;min-height:41px;padding:9px 17px;background:#edf8fd;border:1px solid #e0f1fa;border-radius:24px;font-size:11px;font-weight:550;color:var(--ink);line-height:1.6;transition:background .15s,color .15s}
.category-chip:has(input:checked)>span {background:var(--blue);border-color:var(--blue);color:white;font-weight:650}
.category-chip:has(input:focus-visible)>span {outline:3px solid var(--electric);outline-offset:3px}
.category-chip:hover>span {border-color:#98bddf}
.catalog-control-selects {display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.catalog-select>select {background:white;border:1px solid #dbe4ef;border-radius:8px;min-height:41px;padding:8px 26px 8px 10px;color:#4f6580;font-size:10px;max-width:190px;cursor:pointer}
.catalog-control-selects>.btn {font-size:10px;min-height:41px;padding:8px 10px}
.catalog-results-heading {font-size:11px;color:#6c7e96;margin:22px 0 17px}
.catalog-results-heading>span:first-child {color:#506582}
.public-course-grid {grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.public-course-card {border-color:#dce5f0;border-radius:15px;box-shadow:0 3px 10px #102b4c05;max-width:100%;min-width:0}
.public-course-card:hover {box-shadow:0 10px 28px #19385b10;border-color:#bdd0e7}
.public-course-body {padding:21px 23px 0}
.public-course-body h3 {font-size:23px;letter-spacing:-.6px;line-height:1.35;margin:13px 0}
.public-course-body .card-kicker {font-size:11px}
.public-course-body .badge {font-size:9px;padding:4px 8px}
.public-card-description {font-size:13px;line-height:1.85;margin-bottom:18px;-webkit-line-clamp:2}
.public-card-instructor {font-size:11px;gap:8px}
.public-card-facts {font-size:11px;gap:17px;padding:16px 0 18px}
.public-card-facts .icon,.public-card-instructor .icon {width:15px;height:15px}
.public-course-link {min-height:55px;font-size:12px;gap:10px}
.public-course-link>.icon {color:var(--blue);width:18px;height:18px}
.public-course-cover {display:block}
.course-art.photo-cover {position:relative;isolation:isolate;height:190px;background:#dcecf4;overflow:hidden}
.course-art.photo-cover:before,.course-art.photo-cover:after {display:none}
.course-art.photo-cover>img {display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-1}
.photo-category {position:absolute;top:15px;left:15px;max-width:calc(100% - 30px);padding:5px 10px;background:#e4faffed;color:#0755a3;border:1px solid #ffffffb3;font-size:10px;font-weight:650;line-height:1.5;border-radius:6px;box-shadow:0 2px 5px #14274608}
.photo-cover .format-tag {font-size:9px;right:13px;bottom:13px;background:#fff;color:var(--blue);border:1px solid #ffffffbb;border-radius:5px;padding:4px 8px;gap:5px}
.photo-cover .format-tag .icon {height:12px;width:12px}
.public-course-card .course-art.photo-cover {height:218px}
.public-detail-cover .course-art.photo-cover {height:280px;border-radius:16px}
.public-detail-cover .photo-category {font-size:11px}
.about-line {background:#f3f8fe;border-top:1px solid #e9f1fa;border-bottom:1px solid #e9f1fa;padding:45px 0}
.about-inner {display:grid;grid-template-columns:.9fr 1.1fr;gap:65px;align-items:center}
.about-inner h2 {font-size:34px;line-height:1.25;letter-spacing:-1px}
.about-inner p:not(.eyebrow) {font-size:14px;color:#5b708a;line-height:1.9;margin-bottom:13px}
.about-inner .text-link {margin-top:6px}
.portal-callout {background:#e9f7fd;padding:35px 0}
.portal-callout h2 {font-size:23px}
.portal-callout p {font-size:13px;line-height:1.9}
.portal-callout .btn {font-size:12px}
.portal-footer {background:#f9fbfe;border-top:1px solid #e0e9f5;color:#536d8e;padding-top:35px}
.portal-footer h2 {color:var(--ink);font-size:14px}
.portal-footer p {color:#687d99;font-size:12px;line-height:1.9}
.portal-footer>div:first-child {width:min(1280px,calc(100% - 80px));grid-template-columns:1.5fr .8fr 1fr;gap:50px}
.portal-footer>div:first-child>div>a:not(.ld-brand) {font-size:12px;min-height:30px}
.portal-footer>div:first-child>div>a:hover {color:var(--blue)}
.portal-footer-bottom {font-size:10px;color:#6a7d95;border-top:1px solid #e1eaf5;padding:20px max(40px,calc((100% - 1280px)/2))}
.portal-page-intro {background:#eff8ff;padding:20px 0 32px}
.portal-page-intro h1 {font-size:37px}
.portal-page-intro .portal-container>p:last-child {font-size:14px}
.public-detail {padding-top:25px;padding-bottom:48px}
.back-link {font-size:12px;min-height:34px;line-height:1.6}
.public-detail-heading h1 {font-size:37px;line-height:1.2;margin-bottom:18px}
.public-detail-heading>div>p:not(.eyebrow) {font-size:14px;line-height:1.9}
.public-detail-heading .eyebrow {font-size:10px}
.public-detail-badges>.badge {font-size:11px}
.public-detail-badges>span:last-child {font-size:12px}
.public-detail-teacher small {font-size:8px}
.public-detail-teacher strong {font-size:13px}
.public-detail-layout {grid-template-columns:minmax(0,1fr) 330px;gap:36px}
.public-information>h2,.public-information>.section-heading h2 {font-size:26px}
.public-information>p:not(.eyebrow) {font-size:14px;line-height:1.95}
.public-information>h3 {font-size:18px}
.public-info-pair h3 {font-size:16px}
.public-info-pair p {font-size:13px;line-height:1.9}
.public-module summary h3 {font-size:14px}
.public-program-lesson h4 {font-size:13px}
.public-program-lesson p {font-size:11px}
.public-information>.section-heading>span {font-size:11px}
.public-enrollment {padding:26px;border-radius:16px}
.public-enrollment h2 {font-size:21px;line-height:1.5}
.public-enrollment-top>span {font-size:8px}
.public-enrollment dl>div {font-size:11px;padding:15px 0}
.public-enrollment dd {max-width:170px}
.public-enrollment .btn {font-size:12px}
.public-closed-note {font-size:12px}
.public-access-note {font-size:10px}
.public-certification h2 {font-size:22px}
.public-certification p {font-size:13px}
.public-certification .helper {font-size:11px}

/* Áreas internas: navegação clara e controles com leitura confortável. */
.sidebar {background:#fff;color:var(--ink);border-right:1px solid var(--line);padding:30px 18px 18px;width:252px;scrollbar-color:#c6d4e7 transparent}
.workspace {margin-left:252px;width:calc(100% - 252px)}
.workspace-role {color:#697e98;font-size:11px;margin:28px 14px 20px;gap:8px}
.sidebar .workspace-role {margin-top:28px}
.workspace-role .icon {color:var(--blue);width:17px;height:17px}
.sidebar nav {gap:7px}
.nav-link {color:#263f62;font-size:13px;font-weight:500;padding:13px 14px;min-height:49px;gap:13px;border-radius:10px}
.nav-link .icon {width:21px;height:21px;color:var(--blue);opacity:1;stroke-width:1.7}
.nav-link.active {background:#def4fe;color:var(--navy);font-weight:700}
.nav-link.active:before {display:none}
.nav-link:hover {background:#eff6fd;color:var(--blue)}
.nav-count {background:#d3e9fa;color:var(--blue);font-size:10px;padding:1px 7px}
.sidebar-bottom {padding-top:30px}
.support-card {background:var(--navy);color:#fff;border:0;border-radius:13px;padding:19px;margin-bottom:15px}
.support-card strong {font-size:13px;color:white}
.support-card p {color:#b4cce8;font-size:11px;line-height:1.9}
.support-icon {margin-bottom:10px;color:var(--cyan)}
.support-link {color:var(--cyan);font-size:11px;min-height:36px}
.sidebar-bottom>.nav-link {font-size:11px;padding-left:12px;gap:11px}
.sidebar-foot {border-top:1px solid #e0e8f3;color:#7388a3;font-size:8px;padding-top:18px;white-space:normal;line-height:1.9}
.online-dot {background:var(--blue);flex-shrink:0}
.topbar {height:82px;padding:0 36px;border-color:var(--line);gap:20px}
.breadcrumb {font-size:11px;color:#72849c;gap:10px}
.breadcrumb strong {color:var(--ink)}
.demo-chip {font-size:10px;color:#215575;background:#e1f8fc;border-color:#d3f1f6;border-radius:18px;padding:5px 11px;font-weight:500}
.user-chip strong {font-size:12px}
.user-chip small {font-size:10px}
.avatar {width:39px;height:39px;background:#edf4ff;border-color:#f8fbff;color:var(--blue);font-size:12px}
.user-chip {padding-left:18px;gap:10px}
main#main {padding:30px 36px 42px;max-width:1580px}
.student-greeting {margin-bottom:22px}
.student-greeting h1 {font-size:37px;letter-spacing:-1.2px}
.student-greeting .subheading {font-size:15px;margin-top:8px}
.continue-banner {background:linear-gradient(105deg,#dcf6ff,#e8f8fe);border:1px solid #dceff8;border-radius:17px;display:grid;grid-template-columns:1.15fr .85fr;min-height:253px;overflow:hidden;margin-bottom:21px}
.continue-copy {padding:28px 31px;min-width:0;align-self:center}
.continue-copy>.eyebrow {font-size:10px;margin-bottom:12px;letter-spacing:1.7px;color:var(--blue)}
.continue-copy h2 {font-size:29px;font-weight:800;letter-spacing:-.9px;line-height:1.25;margin-bottom:11px}
.continue-copy>p:not(.eyebrow) {font-size:12px;color:#486482;line-height:1.85;max-width:540px}
.continue-progress {display:flex;align-items:center;gap:16px;margin:18px 0}
.continue-progress>.meter {height:8px;flex:1;background:#cbdff4;max-width:380px}
.meter>span {background:var(--blue)}
.continue-progress>span {font-size:11px;white-space:nowrap;color:#254363}
.continue-copy .btn {font-size:12px;min-height:44px;padding:11px 17px}
.continue-photo {min-width:0;overflow:hidden;position:relative;clip-path:polygon(13% 0,100% 0,100% 100%,0 100%)}
.continue-photo>img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:49% center}
.student-stats {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:30px}
.student-stat {display:flex;align-items:center;gap:16px;background:#fff;border:1px solid #e0e9f5;border-radius:14px;padding:21px 18px;box-shadow:0 3px 8px #173b6304;min-width:0}
.student-stat>.icon {width:32px;height:32px;color:var(--blue);stroke-width:1.5}
.student-stat strong {display:block;font-family:var(--heading-font);font-weight:800;font-size:28px;line-height:1.1;letter-spacing:-1px;color:var(--ink)}
.student-stat span {display:block;font-size:10px;line-height:1.8;color:#526984;margin-top:5px}
.student-columns {display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:25px;align-items:start}
.student-columns .section-heading h2 {font-size:26px}
.course-grid {gap:22px}
.course-grid.two {gap:19px}
.course-card {border-radius:14px;border-color:#dfe8f4;box-shadow:0 3px 10px #14335c04}
.course-card .course-art.photo-cover {height:170px}
.course-card-body {padding:18px 19px 0}
.course-card h3 {font-size:19px;line-height:1.4;margin:11px 0 10px;min-height:52px;letter-spacing:-.5px}
.course-card .card-kicker {font-size:9px;gap:7px}
.course-card .badge {font-size:8px;padding:4px 6px}
.instructor {font-size:11px;line-height:1.8}
.course-meta {font-size:11px;line-height:1.8;gap:15px;margin-top:13px}
.course-meta .icon {width:14px;height:14px}
.progress-caption {font-size:9px;margin-top:17px;margin-bottom:9px}
.progress-caption strong {font-size:9px}
.meter {height:6px}
.course-link {font-size:11px;min-height:52px;margin-top:16px}
.course-link>.icon {width:17px;height:17px}
.student-rail>.section-heading {margin-bottom:20px}
.student-rail .text-link {font-size:11px;gap:6px}
.upcoming-card {padding:24px}
.upcoming-card>.badge {font-size:9px;letter-spacing:.3px;border-radius:5px}
.upcoming-content {display:flex;align-items:flex-start;gap:17px;margin:20px 0}
.upcoming-content .agenda-date {background:#dff6ff;border-color:#d1edf9;border-radius:9px;min-width:64px;padding:11px 8px;flex-shrink:0}
.upcoming-content .agenda-date>strong {font-size:30px;line-height:1;font-family:var(--heading-font)}
.upcoming-content .agenda-date>span {font-size:10px;margin-top:8px}
.upcoming-content h3 {font-size:15px;line-height:1.55;letter-spacing:-.2px}
.upcoming-content p {font-size:10px;color:var(--muted);line-height:1.8;margin-top:6px}
.upcoming-content>div:last-child>span {display:flex;align-items:center;flex-wrap:wrap;gap:5px;font-size:10px;line-height:1.8;margin-top:8px;color:#4d6987}
.upcoming-content .icon {width:14px;height:14px}
.upcoming-card>.btn {font-size:11px;min-height:42px}
.upcoming-card>h3 {margin:20px 0 12px}
.upcoming-card>p {font-size:12px;color:var(--muted);margin-bottom:20px}
.student-achievement {display:flex;align-items:flex-start;gap:18px;background:#dcf7fd;border:1px solid #cfedf6;border-radius:13px;padding:25px 23px;margin-top:19px}
.student-achievement>.icon {width:43px;height:43px;flex-shrink:0;color:var(--blue);stroke-width:1.5}
.student-achievement h3 {font-size:18px;line-height:1.45;margin-bottom:9px}
.student-achievement p {font-size:12px;color:#44647f;line-height:1.8}
.student-achievement .text-link {font-size:12px;margin-top:9px}
.attendance-shortcut {display:flex;align-items:center;gap:13px;padding:18px 20px;margin-top:19px;color:var(--blue)}
.attendance-shortcut>span {flex:1}
.attendance-shortcut strong {font-size:12px;display:block;color:var(--ink)}
.attendance-shortcut small {display:block;font-size:10px;color:var(--muted);margin-top:4px}
.attendance-shortcut>.icon:last-child {width:15px;height:15px}
.presence-summary-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:23px}
.presence-summary {padding:27px}
.presence-summary .card-kicker {font-size:10px}
.presence-summary h2 {font-size:23px;margin-top:18px;line-height:1.4}
.presence-frequency {display:flex;align-items:center;gap:16px;margin:25px 0 15px}
.presence-frequency>strong {font-family:var(--heading-font);font-size:39px;letter-spacing:-1.5px;line-height:1.1;color:var(--blue)}
.presence-frequency>span {font-size:12px;color:#4c6480}
.presence-frequency small {font-size:10px;color:var(--muted)}
.presence-summary>p {font-size:12px;color:var(--muted);margin:17px 0 22px}

/* Formulários, administração e demais telas seguem a mesma base visual. */
.stats {gap:17px}
.stat {padding:22px;grid-template-columns:42px 1fr;gap:0 13px;border-radius:13px}
.stat strong {font-family:var(--heading-font);font-size:29px;line-height:1.2}
.stat div>span {font-size:11px;line-height:1.8}
.stat p {font-size:10px;line-height:1.8}
.stat-icon {width:42px;height:42px}
table {font-size:12px;line-height:1.8}
th {font-size:10px;letter-spacing:.4px;padding:17px 20px}
td {padding:18px 20px}
td strong {font-size:12px;line-height:1.8}
td small {font-size:10px;line-height:1.9}
.table-actions {flex-wrap:wrap;gap:8px}
.field {font-size:12px;gap:9px;line-height:1.8}
.field input,.field textarea,.field select {font-size:13px;min-height:47px;line-height:1.8;border-color:#cbd8e8;border-radius:9px;padding:11px 13px}
.field input::placeholder,.field textarea::placeholder {color:#7286a0}
.filter-select select {font-size:12px;border-color:#cbd8e8;border-radius:9px}
.result-count {font-size:11px}
.form-grid {gap:23px}
.form-footer {gap:17px}
.editor-section-heading>h2 {font-size:27px}
.editor-section-heading>p {font-size:13px}
.editor-section-heading>span {font-size:10px}
.editor-steps li {font-size:11px;line-height:1.8}
.lesson-editor>legend {font-size:13px}
.check-row strong {font-size:12px}
.check-row small {font-size:11px}
.editor-form {padding:31px}
.quick-card strong {font-size:13px}
.quick-card>span {font-size:11px;line-height:1.8}
.panel-heading h2 {font-size:17px}
.attention-icon {margin:24px 0 20px}
.admin-columns>aside h3 {font-size:19px}
.course-header {padding:30px;grid-template-columns:1fr 230px;border-radius:15px;gap:30px}
.course-header h1 {font-size:32px}
.course-header>div>p:not(.eyebrow) {font-size:14px;line-height:1.9}
.course-header-meta>span {font-size:11px}
.course-progress-box {border-radius:12px;padding:20px}
.course-progress-box>small {font-size:10px}
.tabs {gap:26px;margin:23px 0 28px}
.tabs>a {font-size:12px;padding:15px 2px}
.detail-columns {grid-template-columns:minmax(0,1fr) 280px;gap:28px}
.detail-columns .padded>p {font-size:14px;line-height:1.9}
.detail-columns .padded>h3 {font-size:17px}
.learning-list>div {font-size:13px;line-height:1.8;gap:12px}
.module summary strong {font-size:13px}
.module summary>span:not(.module-number) {font-size:10px}
.module-lesson {font-size:12px;line-height:1.8;min-height:48px}
.module-lesson>small {font-size:10px}
.course-facts>p {font-size:12px}
.course-facts dl {font-size:12px}
.lesson {padding:25px;gap:20px}
.lesson-info h3 {font-size:17px}
.lesson-info .card-kicker {font-size:10px}
.lesson-info .course-meta {font-size:11px}
.lesson-actions .btn {font-size:11px}
.material h3 {font-size:18px}
.material p {font-size:12px}
.frequency-banner strong {font-family:var(--heading-font);font-size:24px}
.frequency-banner p {font-size:12px;line-height:1.9}
.present {font-size:12px}
.certificate-card h2 {font-size:23px;line-height:1.4}
.certificate-card>p {font-size:12px}
.cert-frequency {font-size:12px}
.cert-frequency small {font-size:10px}
.certificate-card>.text-link {font-size:12px}
.certificate-eligibility h2 {font-size:27px}
.certificate-eligibility>p:not(.eyebrow) {font-size:13px}
.requirements>div {font-size:12px}
.requirements strong {font-size:11px}
.certificate-eligibility>small {font-size:10px}
.pending-message {font-size:12px;line-height:1.8}
.agenda-row h3 {font-size:17px}
.agenda-row p {font-size:12px}
.agenda-row .card-kicker {font-size:10px}
.past-events>summary {font-size:13px}
.profile-summary h2 {font-size:23px}
.profile-summary p {font-size:12px}
.profile-summary>span:last-child {font-size:12px}
.profile-layout form>h2 {font-size:25px}
.modal-heading h2 {font-size:21px}
.modal-body>p {font-size:13px}
.help-items h3 {font-size:16px}
.help-items p {font-size:12px}
#toast {font-size:12px;line-height:1.8}
.login-brand {background:#e8f6ff;color:var(--ink)}
.login-brand>img {border-radius:18px;margin-bottom:36px}
.login-brand .eyebrow {color:var(--blue)}
.login-brand h1 {font-family:var(--heading-font);color:var(--navy);font-size:40px;font-weight:800;letter-spacing:-1px}
.login-brand p:not(.eyebrow) {color:#4a6687;font-size:14px;line-height:1.9}
.login-brand>span {color:#687f9d;font-size:12px}
.login-form-wrap {max-width:540px;padding:45px 42px}
.login-form-wrap h2 {font-size:30px}
.login-form-wrap>.muted-text {font-size:13px}
.login-form-wrap .notice {font-size:12px}
.login-footer {font-size:10px}
.login-form-help .btn {font-size:11px}
.login-course-context strong {font-size:14px}
.login-course-context p {font-size:12px}
.login-course-context small {font-size:9px}

@media(min-width:1550px) {
  .welcome-copy h1 {font-size:64px}
  .continue-copy {padding:33px 36px}
  .continue-copy h2 {font-size:33px}
  .continue-copy>p:not(.eyebrow) {font-size:14px}
  .continue-banner {min-height:265px}
  .course-card .course-art.photo-cover {height:195px}
  .course-card h3 {font-size:21px}
  .student-stat span {font-size:12px}
  .student-columns {grid-template-columns:minmax(0,1.9fr) minmax(310px,1fr);gap:28px}
}
@media(max-width:1250px) {
  .portal-header-inner,.portal-container {width:calc(100% - 56px)}
  .portal-nav {gap:17px}
  .portal-nav>a:not(.btn) {font-size:12px}
  .portal-nav>.btn {font-size:11px;padding:11px 14px}
  .welcome-inner {gap:38px}
  .welcome-copy h1 {font-size:49px;letter-spacing:-1.8px}
  .welcome-copy>p:not(.eyebrow) {font-size:14px}
  .welcome-actions>.btn {font-size:12px;padding:12px 16px}
  .welcome-photo>figcaption {font-size:11px;padding:11px 13px}
  .catalog-heading h2 {font-size:28px}
  .portal-footer>div:first-child {width:calc(100% - 56px);gap:30px}
  .public-detail-layout {grid-template-columns:minmax(0,1fr) 300px;gap:28px}
  .sidebar {width:226px;padding:27px 16px 16px}
  .workspace {margin-left:226px;width:calc(100% - 226px)}
  .nav-link {font-size:12px;min-height:48px;gap:11px}
  .nav-link .icon {width:20px;height:20px}
  .topbar {height:78px;padding:0 27px}
  main#main {padding:28px 27px 38px}
  .student-greeting h1 {font-size:34px}
  .student-greeting .subheading {font-size:14px}
  .continue-copy {padding:26px}
  .continue-copy h2 {font-size:26px}
  .continue-banner {grid-template-columns:1.15fr .85fr}
  .student-stats {gap:12px}
  .student-stat {padding:19px 14px;gap:12px}
  .student-stat>.icon {width:27px;height:27px}
  .student-stat strong {font-size:26px}
  .student-stat span {font-size:9px}
  .student-columns {grid-template-columns:minmax(0,1fr) 285px;gap:22px}
  .course-card .course-art.photo-cover {height:150px}
  .course-card h3 {font-size:17px;min-height:48px}
  .course-card-body {padding:16px 16px 0}
  .course-card .card-kicker {font-size:8px}
  .course-card .badge {font-size:7px;padding:4px 5px}
  .course-card .instructor {font-size:10px}
  .course-card .course-meta {font-size:10px;gap:10px}
  .student-columns .section-heading h2 {font-size:23px}
  .student-rail .text-link {font-size:10px}
  .upcoming-card {padding:21px}
  .upcoming-content {gap:13px}
  .upcoming-content h3 {font-size:14px}
  .upcoming-content .agenda-date {min-width:54px}
  .upcoming-content .agenda-date>strong {font-size:26px}
  .student-achievement {padding:22px 19px;gap:14px}
  .student-achievement h3 {font-size:17px}
  .student-achievement>.icon {width:35px;height:35px}
  .student-achievement p {font-size:11px}
  .presence-summary h2 {font-size:21px}
  .main-footer {padding:20px 27px}
  #toast {left:calc(50% + 113px)}
  .portal-mode #toast {left:50%}
}
@media(max-width:1080px) {
  .portal-header .ld-brand {width:255px}
  .portal-nav {gap:14px}
  .portal-nav>a:not(.btn) {font-size:11px}
  .portal-nav>.btn {font-size:10px;padding:11px}
  .welcome-inner {gap:29px;grid-template-columns:1fr 1fr}
  .welcome-copy h1 {font-size:43px;letter-spacing:-1.5px}
  .welcome-copy>.eyebrow {font-size:9px}
  .welcome-copy>p:not(.eyebrow) {font-size:13px}
  .welcome-actions {gap:10px}
  .welcome-actions>.btn {font-size:11px;padding:11px 14px;min-height:45px}
  .welcome-photo>img {aspect-ratio:1.25}
  .welcome-photo>figcaption {font-size:10px;gap:7px;padding:10px}
  .catalog-heading h2 {font-size:27px}
  .catalog-heading>.search-field {max-width:310px}
  .benefits-bar>span {font-size:12px;gap:10px}
  .benefits-bar .icon {width:24px;height:24px}
  .public-course-body h3 {font-size:22px}
  .student-columns {grid-template-columns:1fr}
  .student-rail {display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:stretch}
  .student-rail>.section-heading {grid-column:1/-1;margin-bottom:0}
  .student-achievement {margin-top:0;flex-direction:column;justify-content:center}
  .attendance-shortcut {grid-column:1/-1;margin-top:0}
  .course-card .course-art.photo-cover {height:190px}
  .course-card h3 {font-size:20px;min-height:54px}
  .course-card .card-kicker {font-size:10px}
  .course-card .badge {font-size:8px}
  .course-card-body {padding:20px 20px 0}
  .course-card .instructor {font-size:11px}
  .continue-copy h2 {font-size:24px}
  .continue-copy>.eyebrow {font-size:8px}
  .continue-copy>p:not(.eyebrow) {font-size:11px}
  .continue-banner {min-height:240px}
  .student-stats {grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .student-stat {padding:21px;gap:18px}
  .student-stat strong {font-size:30px}
  .student-stat span {font-size:11px}
  .student-stat>.icon {width:32px;height:32px}
  .topbar .demo-chip {display:none}
  .breadcrumb {font-size:10px}
  .user-chip>span:last-child {display:none}
  .detail-columns {grid-template-columns:1fr}
  .detail-columns>aside {display:block}
  .course-header {grid-template-columns:1fr}
  .course-progress-box {display:block}
  .course-progress-box .progress-caption {margin-bottom:9px}
  .course-progress-box>small {display:block}
  .course-header h1 {font-size:31px}
  .presence-summary-grid {grid-template-columns:1fr}
  .public-detail-heading h1 {font-size:32px}
}
@media(max-width:850px) {
  .welcome-copy h1 {font-size:38px}
  .welcome-copy>p:not(.eyebrow) {font-size:12px}
  .welcome-copy>.eyebrow {font-size:8px;letter-spacing:1.2px}
  .welcome-photo>figcaption {position:relative;inset:auto;margin:-20px 10px 0;font-size:10px;justify-content:center;max-width:none}
  .welcome-photo>img {aspect-ratio:1.15}
  .catalog-heading h2 {font-size:25px}
  .catalog-heading>.search-field {max-width:280px}
  .portal-nav {gap:10px}
  .portal-nav>a:not(.btn) {font-size:10px}
  .portal-nav>.btn {font-size:9px;padding:10px;gap:6px}
  .portal-header .ld-brand {width:230px}
  .public-detail-layout {grid-template-columns:minmax(0,1fr) 260px;gap:24px}
  .public-detail-heading {gap:25px}
  .public-detail-heading h1 {font-size:29px}
  .public-detail-heading>div>p:not(.eyebrow) {font-size:13px}
  .public-enrollment {padding:22px}
  .public-enrollment h2 {font-size:19px}
  .public-enrollment dl>div {font-size:10px}
  .public-information>h2,.public-information>.section-heading h2 {font-size:24px}
  .public-information>p:not(.eyebrow) {font-size:13px}
  .public-info-pair {grid-template-columns:1fr}
  .public-enrollment dd {max-width:125px}
  .about-inner {gap:35px}
  .about-inner h2 {font-size:30px}
  .about-inner p:not(.eyebrow) {font-size:13px}
  .portal-footer>div:first-child {grid-template-columns:1.3fr .8fr}
  .portal-footer>div:first-child>div:last-child {display:none}
}
@media(max-width:760px) {
  .sidebar {width:252px}
  .workspace {margin-left:0;width:100%}
  .topbar {height:72px;padding:0 19px;gap:8px}
  .topbar-left,.topbar-right {gap:8px}
  .breadcrumb {font-size:10px}
  .breadcrumb>strong {display:none}
  main#main {padding:26px 22px 35px}
  .mobile-menu {display:inline-flex}
  .main-footer {font-size:9px;padding:20px 22px}
  #toast {left:50%;font-size:11px}
  .student-greeting h1 {font-size:33px}
  .student-greeting .subheading {font-size:13px}
  .continue-copy {padding:25px}
  .continue-copy h2 {font-size:26px}
  .continue-copy>p:not(.eyebrow) {font-size:12px}
  .continue-copy>.eyebrow {font-size:9px}
  .continue-banner {grid-template-columns:1.15fr .85fr;min-height:245px}
  .student-stats {grid-template-columns:repeat(2,minmax(0,1fr))}
  .student-stat span {font-size:11px}
  .course-card .course-art.photo-cover {height:180px}
  .course-card h3 {font-size:19px}
  .section-heading h2 {font-size:23px}
  .page-heading h1 {font-size:30px}
  .form-grid {gap:20px}
  .table-scroll table {min-width:640px}
  .table-actions .btn {font-size:10px}
  .lesson-info h3 {font-size:17px}
  .agenda-row h3 {font-size:16px}
  .agenda-row p {font-size:11px}
  .agenda-row .card-kicker {font-size:10px}
  .tabs>a {font-size:12px}
  .certificate-grid {grid-template-columns:1fr}
  .profile-layout {grid-template-columns:1fr}
  .profile-summary {display:none}
  .editor-steps li {font-size:9px;line-height:1.6}
  .course-header h1 {font-size:29px}
  .course-header>div>p:not(.eyebrow) {font-size:13px}
  .course-header-meta>span {font-size:11px}
  .module summary strong {font-size:12px}
  .module-lesson {font-size:12px}
}
@media(max-width:680px) {
  .portal-container,.portal-header-inner {width:calc(100% - 40px)}
  .portal-header .ld-brand {width:min(280px,calc(100vw - 110px))}
  .portal-nav>a:not(.btn) {font-size:13px;padding:9px 12px}
  .portal-nav>.btn {font-size:12px;padding:12px 16px}
  .portal-nav {gap:6px}
  .welcome-hero {padding:30px 0 34px}
  .welcome-inner {grid-template-columns:1fr;gap:29px}
  .welcome-copy h1 {font-size:clamp(37px,8.6vw,49px);letter-spacing:-1.5px;line-height:1.12;margin-bottom:18px}
  .welcome-copy>.eyebrow {font-size:9px;letter-spacing:1.5px;margin-bottom:16px}
  .welcome-copy>p:not(.eyebrow) {font-size:14px;line-height:1.9;margin-bottom:21px}
  .welcome-actions {gap:10px}
  .welcome-actions>.btn {font-size:11px;min-height:45px;padding:11px 14px}
  .welcome-photo {margin:0 12px 10px 0}
  .welcome-photo>img {aspect-ratio:1.65;border-radius:14px}
  .welcome-photo:after {inset:13px -12px -12px 15px;border-radius:14px}
  .welcome-photo>figcaption {position:absolute;right:12px;bottom:12px;left:auto;margin:0;font-size:9px;max-width:calc(100% - 24px);padding:9px 11px;border-radius:8px}
  .welcome-photo>figcaption>.icon {width:17px;height:17px}
  .benefits-bar {padding:13px 0;border-radius:10px;margin-top:18px}
  .benefits-bar>span {flex-direction:column;font-size:9px;line-height:1.65;gap:8px;padding:0 9px}
  .benefits-bar .icon {width:23px;height:23px}
  .renewed-catalog {padding-top:30px;padding-bottom:32px}
  .renewed-catalog>.catalog-heading {align-items:stretch;flex-direction:column;gap:18px;margin-bottom:18px}
  .catalog-heading h2 {font-size:27px;letter-spacing:-.8px;max-width:none;line-height:1.25}
  .catalog-heading .eyebrow {font-size:8px}
  .catalog-heading>.search-field {max-width:none;min-height:46px}
  .catalog-heading input {font-size:12px;min-height:43px}
  .catalog-controls {gap:16px;flex-direction:column}
  .category-chips {gap:8px}
  .category-chip>span {font-size:10px;min-height:40px;padding:9px 13px}
  .catalog-control-selects {gap:8px;width:100%}
  .catalog-select {flex:1;min-width:110px}
  .catalog-select select {width:100%;max-width:none;font-size:9px;padding:8px;min-height:40px}
  .catalog-control-selects>.btn {font-size:9px;padding:8px;gap:5px}
  .catalog-results-heading {font-size:10px;line-height:1.8;gap:15px;margin:19px 0 17px}
  .catalog-results-heading>span:last-child {display:none}
  .public-course-grid {grid-template-columns:1fr;gap:22px}
  .public-course-card .course-art.photo-cover {height:205px}
  .public-course-body {padding:21px 22px 0}
  .public-course-body h3 {font-size:23px;line-height:1.35}
  .public-course-body .card-kicker {font-size:10px}
  .public-course-body .badge {font-size:8px}
  .public-card-description {font-size:13px;line-height:1.9;-webkit-line-clamp:3}
  .public-card-instructor {font-size:11px}
  .public-card-facts {font-size:11px}
  .public-course-link {font-size:12px;min-height:56px}
  .photo-category {font-size:10px;padding:6px 9px;top:13px;left:13px}
  .photo-cover .format-tag {font-size:9px}
  .about-line {padding:32px 0}
  .about-inner {grid-template-columns:1fr;gap:20px}
  .about-inner h2 {font-size:31px}
  .about-inner p:not(.eyebrow) {font-size:13px}
  .portal-callout {padding:30px 0}
  .portal-callout h2 {font-size:23px;line-height:1.4}
  .portal-callout p {font-size:12px}
  .portal-callout .btn {font-size:12px}
  .portal-footer>div:first-child {width:calc(100% - 40px);grid-template-columns:1fr;gap:25px}
  .portal-footer h2 {font-size:15px}
  .portal-footer p {font-size:12px}
  .portal-footer>div:first-child>div>a:not(.ld-brand) {font-size:12px;min-height:35px}
  .portal-footer-bottom {padding:20px;font-size:9px;line-height:1.8;gap:9px}
  .portal-page-intro {padding:18px 0 28px}
  .portal-page-intro h1 {font-size:32px}
  .portal-page-intro .portal-container>p:last-child {font-size:13px}
  .public-detail-heading {grid-template-columns:1fr}
  .public-detail-heading h1 {font-size:33px}
  .public-detail-heading>div>p:not(.eyebrow) {font-size:14px}
  .public-detail-cover .course-art.photo-cover {height:220px}
  .public-detail-layout {display:flex;flex-direction:column;gap:28px}
  .public-information>h2,.public-information>.section-heading h2 {font-size:25px}
  .public-information>p:not(.eyebrow) {font-size:14px}
  .public-info-pair h3 {font-size:17px}
  .public-info-pair p {font-size:13px}
  .public-program-lesson h4 {font-size:13px;line-height:1.8}
  .public-program-lesson p {font-size:11px}
  .public-module summary h3 {font-size:14px}
  .public-certification {padding:22px}
  .public-certification h2 {font-size:22px}
  .public-certification p {font-size:13px}
  .public-enrollment {width:100%;padding:25px}
  .public-enrollment h2 {font-size:23px}
  .public-enrollment dl>div {font-size:12px}
  .public-enrollment dd {max-width:180px}
  .public-closed-note {font-size:13px}
  .public-enrollment .btn {font-size:12px}
  .login-form-wrap {padding:35px 25px}
  .login-form-wrap h2 {font-size:28px}
}
@media(max-width:520px) {
  main#main {padding:24px 20px 32px}
  .page-heading h1,.student-greeting h1 {font-size:31px}
  .subheading,.student-greeting .subheading {font-size:13px}
  .student-greeting {margin-bottom:21px}
  .continue-banner {grid-template-columns:1fr;margin-bottom:18px}
  .continue-copy {padding:25px 23px}
  .continue-copy>.eyebrow {font-size:9px}
  .continue-copy h2 {font-size:28px}
  .continue-copy>p:not(.eyebrow) {font-size:12px}
  .continue-copy .btn {font-size:12px;min-height:45px}
  .continue-progress {gap:10px;margin:18px 0}
  .continue-progress>span {font-size:10px}
  .continue-photo {height:150px;clip-path:none}
  .continue-photo>img {object-position:center 43%}
  .student-stats {gap:10px;margin-bottom:27px}
  .student-stat {padding:17px 13px;gap:11px;align-items:flex-start}
  .student-stat>.icon {width:25px;height:25px;margin-top:2px}
  .student-stat strong {font-size:27px}
  .student-stat span {font-size:9px;line-height:1.7;max-width:105px}
  .student-columns {gap:26px}
  .student-columns .section-heading h2 {font-size:25px}
  .course-grid.two,.course-grid {grid-template-columns:1fr;gap:21px}
  .course-card .course-art.photo-cover {height:200px}
  .course-card-body {padding:21px 22px 0}
  .course-card h3 {font-size:23px;min-height:0;line-height:1.4}
  .course-card .card-kicker {font-size:10px}
  .course-card .badge {font-size:8px;padding:4px 7px}
  .course-card .instructor {font-size:12px}
  .course-card .course-meta {font-size:11px;gap:17px}
  .progress-caption,.progress-caption strong {font-size:10px}
  .course-link {min-height:56px;font-size:12px}
  .student-rail {grid-template-columns:1fr;gap:17px}
  .student-rail>.section-heading {margin-bottom:0}
  .upcoming-card {padding:24px}
  .upcoming-content {gap:17px}
  .upcoming-content h3 {font-size:16px}
  .upcoming-content p {font-size:11px}
  .upcoming-content>div:last-child>span {font-size:11px}
  .upcoming-content .agenda-date {min-width:62px}
  .upcoming-content .agenda-date>strong {font-size:30px}
  .student-achievement {padding:24px;flex-direction:row;gap:17px}
  .student-achievement h3 {font-size:20px}
  .student-achievement p {font-size:12px}
  .student-achievement .text-link {font-size:12px}
  .attendance-shortcut {padding:20px}
  .attendance-shortcut strong {font-size:13px}
  .attendance-shortcut small {font-size:11px}
  .student-stats .icon {stroke-width:1.5}
  .presence-summary {padding:24px}
  .presence-summary h2 {font-size:23px}
  .presence-frequency>strong {font-size:37px}
  .presence-summary>p {font-size:12px}
  .stats {gap:11px}
  .stat {padding:16px;grid-template-columns:32px 1fr;gap:0 9px}
  .stat strong {font-size:25px}
  .stat div>span {font-size:9px;line-height:1.7}
  .stat p {font-size:8px}
  .stat-icon {width:32px;height:32px}
  .form-grid {grid-template-columns:1fr}
  .field {font-size:12px}
  .field input,.field textarea,.field select {font-size:13px}
  .form-footer {flex-direction:column;align-items:stretch}
  .form-footer>.muted-text {font-size:11px}
  .editor-form {padding:22px}
  .editor-steps li {font-size:8px}
  .editor-section-heading>p {font-size:12px}
  .editor-section-heading>h2 {font-size:26px}
  .course-header {padding:24px}
  .course-header h1 {font-size:29px}
  .course-header>div>p:not(.eyebrow) {font-size:13px}
  .course-header-meta>span {font-size:11px}
  .tabs {gap:22px}
  .tabs>a {font-size:11px}
  .detail-columns .padded>p {font-size:13px}
  .detail-columns .padded>h3 {font-size:17px}
  .learning-list>div {font-size:12px}
  .module summary {gap:10px;padding:16px}
  .module summary strong {font-size:12px}
  .module summary>span:not(.module-number) {font-size:9px}
  .module-lesson {font-size:11px}
  .module-lesson>small {font-size:9px}
  .lesson-info h3 {font-size:17px}
  .lesson-info .course-meta {font-size:11px}
  .frequency-banner strong {font-size:22px}
  .frequency-banner p {font-size:12px}
  .frequency-banner>.badge {margin-left:0}
  .certificate-card {padding:25px}
  .certificate-card h2 {font-size:23px}
  .certificate-card .badge {font-size:9px}
  .certificate-eligibility h2 {font-size:25px}
  .cert-frequency {font-size:11px}
  .cert-frequency small {font-size:9px}
  .requirements>div {font-size:11px}
  .requirements strong {font-size:10px}
  .agenda-row {padding:20px}
  .agenda-row h3 {font-size:15px}
  .agenda-row p {font-size:11px}
  .agenda-row .card-kicker {font-size:10px}
  .quick-card strong {font-size:13px}
  .quick-card>span {font-size:11px}
  .profile-layout form>h2 {font-size:25px}
  .modal-heading h2 {font-size:20px}
  .modal-body {padding:22px}
  .notice {font-size:12px}
}
@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after {transition:none!important;animation:none!important;scroll-behavior:auto!important}
}


@media(max-width:520px){.portal-footer>div:first-child{min-width:0}.portal-footer .ld-brand{width:100%;max-width:100%}.portal-footer p{max-width:100%}}

.portal-footer>div:first-child>div{min-width:0}

/* Catálogo: três colunas no computador, duas no tablet e uma no celular. */
.public-course-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.public-card-facts{flex-wrap:wrap;row-gap:8px}
@media(max-width:950px){.public-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.public-course-grid{grid-template-columns:minmax(0,1fr)}}

/* Estados do catálogo: ciclo suave de 1,25 segundo, sem apagar o texto. */
.badge.course-status-available{background:#d5f5df;color:#14532d;animation:course-available-pulse 1.25s ease-in-out infinite}
.badge.course-status-closed{background:#b91c1c;color:#fff}
@keyframes course-available-pulse{
  0%,100%{background-color:#14532d;color:#fff}
  50%{background-color:#d5f5df;color:#14532d}
}
@media(prefers-reduced-motion:reduce){.badge.course-status-available{animation:none;background:#d5f5df;color:#14532d}}


.catalog-carousel-actions{display:flex;justify-content:flex-end;gap:10px;margin:0 0 18px}
.carousel-arrow{border:1px solid #c7d8e9;background:white;color:#0755b3;width:46px;height:46px;border-radius:50%;font-size:24px;cursor:pointer}
.carousel-arrow:hover{background:#e4f5fc}.carousel-arrow:disabled{opacity:.35;cursor:default}
.public-course-grid.course-track{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 48px)/3);gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;align-items:stretch}
.course-track::-webkit-scrollbar{display:none}.course-track>article{scroll-snap-align:start;display:flex;flex-direction:column}.course-track .public-course-body{flex:1;display:flex;flex-direction:column}.course-track h3{min-height:64px}.course-track .public-card-facts{margin-top:auto}
.public-course-grid.course-track.is-empty{display:block}
.carousel-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:28px;font-size:12px;color:#5c7390}
.archive-button{display:inline-flex;align-items:center;gap:14px;padding:14px 24px;border-radius:12px;border:1px solid #bcd3e7;color:#0755b3;background:#edf7ff;font-weight:750;font-size:12px;letter-spacing:.8px;text-decoration:none}
.archive-button:hover{background:#d8efff;box-shadow:0 5px 16px #0755b315}
@media(max-width:950px){.public-course-grid.course-track{grid-auto-columns:calc((100% - 24px)/2)}}
@media(max-width:680px){.public-course-grid.course-track{grid-auto-columns:100%}.carousel-bottom{align-items:start;flex-direction:column}}

.course-cover-editor{border:1px dashed #a9c8e5;border-radius:14px;padding:22px;background:#f6fbff}.course-cover-editor h3{font-size:19px;margin-bottom:10px}.course-cover-editor p{font-size:12px;line-height:1.8;color:#436180;margin-bottom:18px}.course-cover-editor input[type=file]{padding:12px;background:white;border:1px solid #c9dcee;border-radius:9px;max-width:100%}.cover-editor-preview{max-width:420px;margin:18px 0}.cover-editor-preview .course-art.photo-cover{height:auto;aspect-ratio:16/9;border-radius:10px}#cover-feedback{font-size:12px;color:#315577;margin-top:12px}
