/* ============================================================
   Immigrant Shield Academy — design system do portal do aluno
   Usado por portal.html. As páginas públicas continuam em styles.css.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@600;700;800&family=Playfair+Display:ital@1&display=swap');

:root {
  --ac-bg:        #040706;
  --ac-bg-side:   #070c0a;
  --ac-surface:   #0b110f;
  --ac-surface-2: #0f1714;
  --ac-line:      rgba(255,255,255,.08);
  --ac-line-2:    rgba(255,255,255,.13);
  --ac-green:     #1db96a;
  --ac-green-2:   #2bd67f;
  --ac-green-ink: #03130a;
  --ac-green-rgb: 29,185,106;
  --ac-text:      #ffffff;
  --ac-text-2:    rgba(255,255,255,.74);
  --ac-text-3:    rgba(255,255,255,.5);
  --ac-body:      'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --ac-display:   'Plus Jakarta Sans', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ac-serif:     'Playfair Display', Georgia, 'Times New Roman', serif;
  --ac-sidebar-w: 300px;
  --ac-topbar-h:  60px;
  --ac-pad:       32px;
  --acc:          #1db96a;
  --acc-rgb:      29,185,106;

  /* Imagens (arquivos em assets/img/) */
  --ac-img-hero:      url('img/hero-liberty.jpg');
}

/* Cor de destaque por módulo / recurso */
.acc-0, .acc-green  { --acc: #1db96a; --acc-rgb: 29,185,106; }
.acc-1, .acc-red    { --acc: #ef4d55; --acc-rgb: 239,77,85; }
.acc-2, .acc-blue   { --acc: #3d8bfd; --acc-rgb: 61,139,253; }
.acc-3, .acc-amber  { --acc: #e3ab45; --acc-rgb: 227,171,69; }
.acc-4, .acc-purple { --acc: #9b6bff; --acc-rgb: 155,107,255; }
.acc-5, .acc-pink   { --acc: #ec4c86; --acc-rgb: 236,76,134; }

/* ─── BASE ─────────────────────────────────────────────────── */
body.ac {
  background: var(--ac-bg); color: var(--ac-text);
  font-family: var(--ac-body); line-height: 1.55;
  min-height: 100vh; overflow-x: hidden; visibility: hidden;
  -webkit-font-smoothing: antialiased;
}
.ac-ic { width: 20px; height: 20px; flex-shrink: 0; fill: none; stroke: currentColor;
  stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.ac-ic--sm { width: 16px; height: 16px; }
.ac-ic--lg { width: 24px; height: 24px; }
.ac-ic--fill { fill: currentColor; stroke: none; }

.ac-app {
  display: grid; grid-template-columns: var(--ac-sidebar-w) minmax(0, 1fr);
  min-height: 100vh;
}
.ac-main { min-width: 0; display: flex; flex-direction: column; position: relative; }
.ac-scrim { display: none; }
.ac-view { display: none; }
.ac-view.show { display: block; }
#dashboard-view.hide { display: none; }

/* ─── SIDEBAR ──────────────────────────────────────────────── */
.ac-sidebar {
  position: sticky; top: 0; height: 100vh; overflow-y: auto;
  background: var(--ac-bg-side); border-right: 1px solid var(--ac-line);
  padding: 18px 16px 24px; display: flex; flex-direction: column;
  scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.12) transparent; z-index: 60;
}
.ac-brand { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 6px 0 8px; }
.ac-brand-link { display: flex; align-items: center; gap: 11px; text-decoration: none; min-width: 0; }
.ac-brand-text { display: flex; flex-direction: column; line-height: 1.12; font-family: var(--ac-display); font-weight: 700; font-size: 16px; }
.ac-brand-text b { color: #fff; font-weight: 700; white-space: nowrap; }
.ac-brand-text i { color: var(--ac-green); font-style: normal; }

.ac-icon-btn {
  width: 32px; height: 32px; flex-shrink: 0; border-radius: 9px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.04); border: 1px solid var(--ac-line-2);
  color: var(--ac-text-2); cursor: pointer; transition: background .15s, color .15s, border-color .15s;
}
.ac-icon-btn:hover { background: rgba(255,255,255,.08); color: #fff; }
.ac-icon-btn .ac-ic { width: 16px; height: 16px; }

.ac-side-progress {
  margin-top: 20px; padding: 14px 14px; border-radius: 14px;
  background: rgba(255,255,255,.025); border: 1px solid var(--ac-line);
  display: flex; align-items: center; gap: 14px;
}
.ac-ring { position: relative; flex-shrink: 0; }
.ac-ring svg { display: block; width: 100%; height: 100%; }
.ac-ring--sm { width: 56px; height: 56px; }
.ac-ring--lg { width: 116px; height: 116px; }
.ac-ring--md { width: 96px; height: 96px; }
.ac-ring-track { fill: none; stroke: rgba(255,255,255,.09); }
.ac-ring-fill {
  fill: none; stroke: var(--ac-green); stroke-linecap: round;
  transform-box: fill-box; transform-origin: center; transform: rotate(-90deg);
  transition: stroke-dashoffset 1.2s cubic-bezier(.4,0,.2,1);
}
.ac-ring-label {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-family: var(--ac-display); font-weight: 800; color: #fff;
}
.ac-ring--sm .ac-ring-label { font-size: 14px; }
.ac-ring--md .ac-ring-label { font-size: 22px; }
.ac-ring--lg .ac-ring-label { font-size: 28px; letter-spacing: -.5px; }
.ac-side-progress-info { min-width: 0; flex: 1; }
.ac-side-progress-info small { display: block; font-size: 12px; color: var(--ac-text-3); }
.ac-side-progress-info b { display: block; font-size: 12.5px; font-weight: 600; color: #fff; margin: 3px 0 9px; }

.ac-bar { height: 5px; border-radius: 99px; background: rgba(255,255,255,.1); overflow: hidden; }
.ac-bar > i { display: block; height: 100%; width: 0; border-radius: 99px; background: var(--acc, var(--ac-green)); transition: width .9s cubic-bezier(.4,0,.2,1); }

.ac-nav { margin: 18px -16px 0; display: flex; flex-direction: column; }
.ac-nav-item {
  display: flex; align-items: center; gap: 15px; width: 100%;
  padding: 12px 26px; background: none; border: none; cursor: pointer; text-align: left;
  color: var(--ac-text-2); font-family: var(--ac-body); font-size: 14.5px; font-weight: 500;
  border-left: 3px solid transparent; transition: background .15s, color .15s;
}
.ac-nav-item:hover { color: #fff; background: rgba(255,255,255,.03); }
.ac-nav-item.active {
  color: #fff; border-left-color: var(--ac-green);
  background: linear-gradient(90deg, rgba(var(--ac-green-rgb),.2), rgba(var(--ac-green-rgb),.05));
}
.ac-nav-item.active .ac-ic { color: var(--ac-green-2); }

.ac-side-label {
  margin: 20px 0 10px; padding: 18px 8px 0; border-top: 1px solid var(--ac-line);
  font-size: 11px; font-weight: 600; letter-spacing: 1.8px; text-transform: uppercase; color: var(--ac-text-3);
}
.ac-mods { display: flex; flex-direction: column; gap: 2px; }
.ac-sm { border-radius: 10px; }
.ac-sm-toggle {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 7px 6px;
  background: none; border: none; cursor: pointer; text-align: left; border-radius: 10px;
  font-family: var(--ac-body); color: #fff; transition: background .15s, border-color .15s;
  border: 1px solid transparent;
}
.ac-sm-toggle:hover { background: rgba(255,255,255,.035); }
.ac-sm-num {
  width: 32px; height: 32px; flex-shrink: 0; border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--ac-display); font-weight: 800; font-size: 14.5px; color: #fff;
  background: rgba(var(--acc-rgb), .85); box-shadow: inset 0 0 0 1px rgba(255,255,255,.14);
}
.acc-0 .ac-sm-num { background: rgba(255,255,255,.08); box-shadow: inset 0 0 0 1px rgba(255,255,255,.16); }
.ac-sm-text { flex: 1; min-width: 0; }
.ac-sm-text b { display: block; font-size: 13px; font-weight: 600; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ac-sm-text small { display: block; font-size: 12px; color: var(--ac-text-3); margin-top: 1px; }
.ac-sm-chev { color: var(--ac-text-3); display: flex; transition: transform .2s; }
.ac-sm-chev .ac-ic { width: 14px; height: 14px; }
.ac-sm.open .ac-sm-chev { transform: rotate(90deg); }
.ac-sm.open > .ac-sm-toggle { border-color: rgba(var(--ac-green-rgb), .6); background: rgba(var(--ac-green-rgb), .08); }
.ac-sm.open:has(.ac-sl.active) > .ac-sm-toggle { border-color: transparent; background: none; }
.ac-sm.open .ac-sm-text small { color: var(--ac-green-2); }
.ac-sm.locked .ac-sm-num, .ac-sm.locked .ac-sm-text { opacity: .5; }
.ac-sm-list { display: none; padding: 2px 4px 8px 8px; }
.ac-sm.open .ac-sm-list { display: block; }
.ac-sl {
  display: flex; align-items: flex-start; gap: 12px; padding: 7px 10px; border-radius: 8px;
  text-decoration: none; color: var(--ac-text-2); font-size: 12.5px; line-height: 1.35;
  border: 1px solid transparent; transition: background .15s, color .15s;
}
.ac-sl:hover { background: rgba(255,255,255,.04); color: #fff; }
.ac-sl-dot {
  width: 17px; height: 17px; flex-shrink: 0; margin-top: 1px; border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,.4); display: flex; align-items: center; justify-content: center;
}
.ac-sl-dot .ac-ic { width: 10px; height: 10px; stroke-width: 3; }
.ac-sl.done .ac-sl-dot { background: var(--ac-green); border-color: var(--ac-green); color: var(--ac-green-ink); }
.ac-sl.locked { opacity: .45; cursor: not-allowed; }
.ac-sl.locked .ac-sl-dot { border-color: transparent; }
.ac-sl.active { color: var(--ac-green-2); border-color: rgba(var(--ac-green-rgb), .6); background: rgba(var(--ac-green-rgb), .1); font-weight: 600; }
.ac-sl.active .ac-sl-dot { border-color: var(--ac-green-2); }

/* ─── TOPBAR ───────────────────────────────────────────────── */
.ac-topbar {
  position: sticky; top: 0; z-index: 50; height: var(--ac-topbar-h);
  display: flex; align-items: center; gap: 16px; padding: 0 var(--ac-pad);
  background: rgba(4,7,6,.72); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--ac-line);
}
.ac-menu-btn { display: none; }
body.sb-collapsed .ac-menu-btn { display: inline-flex; }
body.sb-collapsed .ac-app { grid-template-columns: minmax(0, 1fr); }
body.sb-collapsed .ac-sidebar { display: none; }

.ac-search { position: relative; flex: 0 1 448px; min-width: 0; }
.ac-search > .ac-ic { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 17px; height: 17px; color: var(--ac-text-2); pointer-events: none; }
.ac-search input {
  width: 100%; height: 38px; padding: 0 14px 0 44px; border-radius: 9px;
  background: rgba(255,255,255,.035); border: 1px solid var(--ac-line-2);
  color: #fff; font-family: var(--ac-body); font-size: 13.5px; outline: none; transition: border-color .15s, background .15s;
}
.ac-search input::placeholder { color: var(--ac-text-3); }
.ac-search input:focus { border-color: rgba(var(--ac-green-rgb), .7); background: rgba(255,255,255,.05); }
.ac-search input::-webkit-search-cancel-button { display: none; }
.ac-search-pop {
  position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 70;
  background: #0b110f; border: 1px solid var(--ac-line-2); border-radius: 12px; padding: 6px;
  box-shadow: 0 24px 60px rgba(0,0,0,.65); max-height: 420px; overflow-y: auto;
}
.ac-search-pop[hidden] { display: none; }
.ac-sr {
  display: flex; align-items: flex-start; gap: 12px; width: 100%; padding: 10px 10px; border-radius: 8px;
  background: none; border: none; cursor: pointer; text-align: left; color: #fff; font-family: var(--ac-body);
}
.ac-sr:hover, .ac-sr.sel { background: rgba(var(--ac-green-rgb), .1); }
.ac-sr-num {
  width: 28px; height: 28px; border-radius: 8px; flex-shrink: 0; display: flex; align-items: center; justify-content: center;
  font-family: var(--ac-display); font-weight: 800; font-size: 12.5px; background: rgba(var(--acc-rgb), .85);
}
.acc-0 .ac-sr-num { background: rgba(255,255,255,.1); }
.ac-sr-text { min-width: 0; }
.ac-sr-text b { display: block; font-size: 13.5px; font-weight: 600; line-height: 1.3; }
.ac-sr-text small { display: block; font-size: 12px; color: var(--ac-text-3); margin-top: 2px; line-height: 1.4; }
.ac-sr-text mark { background: none; color: var(--ac-green-2); font-weight: 600; }
.ac-sr-empty { padding: 14px 12px; font-size: 13px; color: var(--ac-text-3); }

.ac-topbar-right { margin-left: auto; display: flex; align-items: center; gap: 14px; }
.ac-user { position: relative; padding-left: 18px; border-left: 1px solid var(--ac-line-2); }
.ac-user-btn {
  display: flex; align-items: center; gap: 11px; background: none; border: none; cursor: pointer;
  color: #fff; font-family: var(--ac-body); font-size: 14px; font-weight: 500; padding: 4px 2px;
}
.ac-user-btn > .ac-ic { width: 16px; height: 16px; color: var(--ac-text-2); }
.ac-avatar {
  width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center;
  background: var(--ac-green); color: #fff; font-family: var(--ac-display); font-weight: 700; font-size: 13px; letter-spacing: .3px;
}
.ac-user-name { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ac-menu {
  position: absolute; right: 0; top: calc(100% + 12px); min-width: 220px; z-index: 70;
  background: #0b110f; border: 1px solid var(--ac-line-2); border-radius: 12px; padding: 6px;
  box-shadow: 0 24px 60px rgba(0,0,0,.65);
}
.ac-menu[hidden] { display: none; }
.ac-menu button {
  display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px 12px; border-radius: 8px;
  background: none; border: none; cursor: pointer; color: var(--ac-text-2); font-family: var(--ac-body); font-size: 13.5px; text-align: left;
}
.ac-menu button:hover { background: rgba(255,255,255,.06); color: #fff; }
.ac-menu button .ac-ic { width: 17px; height: 17px; }
.ac-menu-val { margin-left: auto; font-size: 11.5px; font-weight: 600; color: var(--ac-text-3); letter-spacing: .6px; }
.ac-menu hr { border: none; border-top: 1px solid var(--ac-line); margin: 5px 4px; }

/* ─── HERO ─────────────────────────────────────────────────── */
.ac-hero {
  position: relative; overflow: hidden; isolation: isolate;
  margin-top: calc(-1 * var(--ac-topbar-h)); padding: calc(var(--ac-topbar-h) + 34px) var(--ac-pad) 28px 46px;
}
.ac-hero-img {
  position: absolute; z-index: -2; top: 0; right: 10%; width: max(64%, 760px); aspect-ratio: 1672 / 941;
  transform: translateY(-8%);
  background: var(--ac-img-hero) center / cover no-repeat;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 34%, #000 90%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0%, #000 34%, #000 90%, transparent 100%);
}
.ac-hero::after {
  content: ''; position: absolute; z-index: -1; inset: 0; pointer-events: none;
  background:
    linear-gradient(180deg, rgba(4,7,6,.35) 0%, transparent 24%, transparent 66%, var(--ac-bg) 100%),
    linear-gradient(90deg, var(--ac-bg) 0%, rgba(4,7,6,.8) 36%, rgba(4,7,6,.18) 62%, rgba(4,7,6,0) 100%);
}
.ac-hero-body { display: flex; align-items: flex-start; gap: 36px; padding-right: 190px; }
.ac-hero-copy { flex: 0 1 548px; min-width: 0; }
.ac-hero-copy--wide { flex-basis: 580px; }
.ac-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: 2.4px; text-transform: uppercase; color: var(--ac-green-2); margin-bottom: 12px; }
.ac-h1 {
  font-family: var(--ac-display); font-weight: 800; font-size: clamp(30px, 2.8vw, 47px);
  line-height: 1.08; letter-spacing: -1.2px; color: #fff; margin: 0 0 16px;
}
.ac-accent { color: var(--ac-green-2); }
.ac-lead { font-size: 17px; line-height: 1.5; color: var(--ac-text-2); max-width: 510px; margin: 0 0 26px; }

.ac-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  height: 42px; padding: 0 20px; border-radius: 10px; cursor: pointer; text-decoration: none;
  font-family: var(--ac-body); font-size: 14px; font-weight: 600; color: #fff;
  background: rgba(255,255,255,.04); border: 1px solid var(--ac-line-2);
  transition: background .15s, border-color .15s, transform .15s, box-shadow .15s, opacity .15s;
}
.ac-btn:hover { background: rgba(255,255,255,.08); }
.ac-btn .ac-ic { width: 17px; height: 17px; }
.ac-btn--primary {
  background: linear-gradient(180deg, #1fae66, #158f52); border-color: rgba(120,255,190,.45);
  box-shadow: 0 0 0 1px rgba(var(--ac-green-rgb), .25), 0 10px 30px rgba(var(--ac-green-rgb), .22);
}
.ac-btn--primary:hover { background: linear-gradient(180deg, #24c273, #179a59); transform: translateY(-1px); }
.ac-btn--outline { background: transparent; border-color: rgba(var(--ac-green-rgb), .6); color: var(--ac-green-2); }
.ac-btn--outline:hover { background: rgba(var(--ac-green-rgb), .1); }
.ac-btn--lg { height: 52px; padding: 0 26px; font-size: 15.5px; font-weight: 700; gap: 16px; }
.ac-btn:disabled { opacity: .45; cursor: not-allowed; transform: none; }

.ac-progress-card {
  flex: 0 1 376px; min-width: 300px; margin-top: 16px; padding: 20px 24px 22px; border-radius: 14px;
  background: rgba(8,13,11,.62); border: 1px solid var(--ac-line-2);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.ac-progress-card-label { font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--ac-text-3); margin-bottom: 14px; }
.ac-progress-card-row { display: flex; align-items: center; gap: 22px; }
.ac-progress-card-info { min-width: 0; flex: 1; }
.ac-progress-card-info b { display: block; font-family: var(--ac-display); font-size: 17px; font-weight: 700; color: #fff; line-height: 1.25; }
.ac-progress-card-info span { display: block; font-size: 14px; color: var(--ac-text-2); margin-bottom: 12px; }
.ac-progress-card-info small { display: block; font-size: 12px; color: var(--ac-text-3); line-height: 1.5; margin-top: 12px; }

.ac-quote {
  position: absolute; z-index: 1; right: var(--ac-pad); top: calc(var(--ac-topbar-h) + 62px); width: 150px; margin: 0;
  font-family: var(--ac-serif); font-style: italic; font-size: 18px; line-height: 1.35; color: rgba(255,255,255,.86);
}
.ac-quote::before { content: ''; display: block; width: 26px; height: 2px; background: var(--ac-green); margin-bottom: 14px; }

/* ─── STATS ────────────────────────────────────────────────── */
.ac-section { padding: 0 var(--ac-pad); scroll-margin-top: var(--ac-topbar-h); }
.ac-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; padding: 4px var(--ac-pad) 0; }
.ac-stat {
  display: flex; align-items: center; gap: 20px; padding: 17px 22px; border-radius: 14px;
  background: var(--ac-surface); border: 1px solid var(--ac-line);
}
.ac-tile {
  width: 52px; height: 52px; flex-shrink: 0; border-radius: 13px; display: flex; align-items: center; justify-content: center;
  background: rgba(var(--acc-rgb, var(--ac-green-rgb)), .1); border: 1px solid rgba(var(--acc-rgb, var(--ac-green-rgb)), .28);
  color: var(--acc, var(--ac-green-2));
}
.ac-tile .ac-ic { width: 25px; height: 25px; }
.ac-tile--plain { background: rgba(255,255,255,.04); border-color: var(--ac-line-2); color: #fff; }
.ac-stat-num { font-family: var(--ac-display); font-size: 28px; font-weight: 800; line-height: 1; color: #fff; }
.ac-stat-label { font-size: 15px; color: #fff; margin-top: 5px; }
.ac-stat-sub { font-size: 12.5px; color: var(--ac-text-3); margin-top: 1px; }

/* ─── JORNADA / CARDS DE MÓDULO ────────────────────────────── */
.ac-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin: 30px 0 18px; flex-wrap: wrap; }
.ac-h2 { font-family: var(--ac-display); font-size: 28px; font-weight: 800; letter-spacing: -.4px; color: #fff; margin: 0 0 6px; line-height: 1.2; }
.ac-sub { font-size: 14.5px; color: var(--ac-text-2); max-width: 680px; margin: 0; line-height: 1.45; }
.ac-seg { display: inline-flex; border: 1px solid var(--ac-line-2); border-radius: 10px; background: rgba(255,255,255,.02); }
.ac-seg button {
  display: inline-flex; align-items: center; gap: 10px; height: 40px; padding: 0 18px; border-radius: 9px;
  background: none; border: 1px solid transparent; margin: -1px; cursor: pointer;
  color: var(--ac-text-2); font-family: var(--ac-body); font-size: 13.5px; font-weight: 500;
}
.ac-seg button .ac-ic { width: 16px; height: 16px; }
.ac-seg button.active { color: var(--ac-green-2); border-color: rgba(var(--ac-green-rgb), .75); background: rgba(var(--ac-green-rgb), .08); font-weight: 600; }

.ac-mod-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; padding-bottom: 44px; }
.ac-mod {
  position: relative; display: flex; flex-direction: column; overflow: hidden; cursor: pointer;
  border-radius: 12px; border: 1px solid rgba(var(--acc-rgb), .32);
  background: linear-gradient(180deg, rgba(var(--acc-rgb), .1), rgba(var(--acc-rgb), .03) 46%, rgba(255,255,255,.012)), var(--ac-surface);
  transition: transform .2s, border-color .2s, box-shadow .2s;
}
.ac-mod:hover { transform: translateY(-3px); border-color: rgba(var(--acc-rgb), .7); box-shadow: 0 18px 44px rgba(0,0,0,.5); }
.ac-mod-cover {
  height: 86px; flex-shrink: 0; position: relative;
  background: linear-gradient(135deg, rgba(var(--acc-rgb), .3), rgba(var(--acc-rgb), .06));
  background-size: cover; background-position: center;
}
.ac-mod-cover i { position: absolute; inset: 0; background-size: cover; background-position: center var(--cover-y, 22%); }
.acc-1 .ac-mod-cover i { --cover-y: 12%; }
.acc-4 .ac-mod-cover i { --cover-y: 16%; }
.acc-5 .ac-mod-cover i { --cover-y: 4%; }
.ac-mod-cover::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(4,7,6,.15) 0%, rgba(11,17,15,.55) 62%, rgba(11,17,15,.96) 100%); }
.ac-mod-body { display: flex; flex-direction: column; flex: 1; padding: 0 16px 16px; margin-top: -12px; position: relative; }
.ac-mod-tag { display: flex; align-items: center; gap: 10px; font-size: 10.5px; font-weight: 700; letter-spacing: 1.7px; text-transform: uppercase; color: var(--ac-text-2); margin-bottom: 9px; }
.ac-mod-tag-ic {
  width: 20px; height: 20px; border-radius: 5px; display: flex; align-items: center; justify-content: center;
  background: rgba(var(--acc-rgb), .18); border: 1px solid rgba(var(--acc-rgb), .55); color: var(--acc);
}
.ac-mod-tag-ic .ac-ic { width: 11px; height: 11px; stroke-width: 2.2; }
.ac-mod-title { font-family: var(--ac-display); font-size: 16px; font-weight: 700; line-height: 1.22; color: #fff; margin: 0 0 7px; }
.ac-mod-desc { font-size: 12px; line-height: 1.45; color: var(--ac-text-2); margin: 0 0 12px; flex: 1; }
.ac-mod-prog { display: flex; align-items: center; gap: 10px; }
.ac-mod-prog .ac-bar { flex: 1; height: 5px; }
.ac-mod-prog span { font-size: 12px; font-weight: 600; color: #fff; }
.ac-mod-count { font-size: 12px; color: var(--ac-text-2); margin: 6px 0 11px; }
.ac-mod-cta {
  display: flex; align-items: center; justify-content: center; gap: 12px; height: 38px; border-radius: 8px;
  border: 1px solid rgba(var(--acc-rgb), .6); color: #fff; font-size: 13px; font-weight: 600;
  background: rgba(var(--acc-rgb), .04); transition: background .15s;
}
.ac-mod-cta .ac-ic { width: 15px; height: 15px; }
.ac-mod:hover .ac-mod-cta { background: rgba(var(--acc-rgb), .14); }
.ac-mod.locked { cursor: not-allowed; }
.ac-mod.locked:hover { transform: none; box-shadow: none; border-color: rgba(var(--acc-rgb), .32); }
.ac-mod.locked .ac-mod-cover, .ac-mod.locked .ac-mod-body > *:not(.ac-mod-cta) { opacity: .5; }
.ac-mod.locked .ac-mod-cta { border-color: var(--ac-line-2); color: var(--ac-text-2); background: none; }
.ac-mod-lock {
  position: absolute; z-index: 2; top: 10px; right: 10px; display: flex; align-items: center; gap: 6px;
  padding: 4px 9px; border-radius: 8px; background: rgba(0,0,0,.72); border: 1px solid var(--ac-line-2);
  font-size: 11px; font-weight: 700; color: var(--ac-text-2);
}
.ac-mod-lock .ac-ic { width: 11px; height: 11px; stroke-width: 2.4; }

/* visão em lista */
.ac-mod-grid.list { grid-template-columns: minmax(0, 1fr); gap: 10px; }
.ac-mod-grid.list .ac-mod { flex-direction: row; align-items: stretch; }
.ac-mod-grid.list .ac-mod-cover { width: 150px; height: auto; }
.ac-mod-grid.list .ac-mod-cover::after { background: linear-gradient(90deg, rgba(4,7,6,.1), rgba(11,17,15,.9)); }
.ac-mod-grid.list .ac-mod-body {
  margin: 0; padding: 16px 20px; display: grid; align-items: center; column-gap: 28px; row-gap: 4px;
  grid-template-columns: minmax(0, 1fr) 200px 180px;
  grid-template-areas: "tag prog cta" "title prog cta" "desc count cta";
}
.ac-mod-grid.list .ac-mod-tag { grid-area: tag; margin: 0; }
.ac-mod-grid.list .ac-mod-title { grid-area: title; margin: 0; }
.ac-mod-grid.list .ac-mod-desc { grid-area: desc; margin: 0; }
.ac-mod-grid.list .ac-mod-prog { grid-area: prog; align-self: end; }
.ac-mod-grid.list .ac-mod-count { grid-area: count; margin: 0; align-self: start; }
.ac-mod-grid.list .ac-mod-cta { grid-area: cta; }

/* ─── MÓDULO (lista de aulas) ──────────────────────────────── */
.ac-crumb { display: flex; align-items: center; gap: 12px; font-size: 14px; color: var(--ac-text-2); margin-bottom: 18px; flex-wrap: wrap; }
.ac-crumb-back { display: inline-flex; align-items: center; gap: 9px; background: none; border: none; cursor: pointer; padding: 0; color: var(--ac-text-2); font-family: var(--ac-body); font-size: 14px; transition: color .15s; }
.ac-crumb-back:hover { color: var(--ac-green-2); }
.ac-crumb-back .ac-ic { width: 16px; height: 16px; color: var(--ac-green-2); }
.ac-crumb-sep { color: var(--ac-text-3); }
.ac-crumb-here { display: inline-flex; align-items: center; gap: 9px; color: #fff; }
.ac-crumb-here .ac-ic { width: 17px; height: 17px; color: var(--ac-text-2); }
.ac-chips { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.ac-chip {
  display: inline-flex; align-items: center; gap: 9px; height: 34px; padding: 0 15px; border-radius: 10px;
  border: 1px solid var(--ac-line-2); background: rgba(255,255,255,.03);
  font-size: 12.5px; font-weight: 600; letter-spacing: 1.4px; text-transform: uppercase; color: var(--ac-text-2);
}
.ac-chip .ac-ic { width: 16px; height: 16px; }
.ac-chip--acc { border-color: rgba(var(--ac-green-rgb), .7); background: rgba(var(--ac-green-rgb), .1); color: #fff; font-weight: 700; }
.ac-chip--acc .ac-ic { color: var(--ac-green-2); }
.ac-chip--amber { border-color: rgba(227,171,69,.6); background: rgba(227,171,69,.08); color: #f0c063; font-weight: 700; }
.ac-hero-body--col { display: block; padding-right: 190px; }
.ac-h1--lesson { font-size: clamp(26px, 2.75vw, 46px); max-width: 900px; }
.ac-meta { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; font-size: 14px; color: var(--ac-text-2); }
.ac-meta-item { display: inline-flex; align-items: center; gap: 9px; }
.ac-meta-item .ac-ic { width: 18px; height: 18px; }
.ac-meta-sep { width: 1px; height: 22px; background: var(--ac-line-2); }
.ac-pill {
  display: inline-flex; align-items: center; gap: 9px; height: 32px; padding: 0 14px; border-radius: 8px;
  border: 1px solid rgba(var(--ac-green-rgb), .5); background: rgba(var(--ac-green-rgb), .08);
  font-size: 13.5px; font-weight: 600; color: var(--ac-green-2);
}
.ac-pill .ac-ic { width: 16px; height: 16px; }
.ac-pill--dim { border-color: var(--ac-line-2); background: rgba(255,255,255,.03); color: var(--ac-text-2); }

.ac-modview-progress { display: flex; align-items: center; gap: 14px; margin-top: 4px; max-width: 420px; }
.ac-modview-progress .ac-bar { flex: 1; }
.ac-modview-progress span { font-size: 13px; color: var(--ac-text-2); white-space: nowrap; }
.ac-lessons { display: flex; flex-direction: column; gap: 10px; padding: 8px var(--ac-pad) 48px; max-width: 1040px; }
.ac-lrow {
  display: flex; align-items: center; gap: 18px; padding: 16px 20px; border-radius: 12px; text-decoration: none; color: inherit;
  background: var(--ac-surface); border: 1px solid var(--ac-line); transition: border-color .15s, background .15s, transform .15s;
}
.ac-lrow:hover { border-color: rgba(var(--ac-green-rgb), .5); background: var(--ac-surface-2); transform: translateX(3px); }
.ac-lrow-num {
  width: 42px; height: 42px; flex-shrink: 0; border-radius: 11px; display: flex; align-items: center; justify-content: center;
  font-family: var(--ac-display); font-weight: 800; font-size: 15px; color: var(--ac-green-2);
  background: rgba(var(--ac-green-rgb), .1); border: 1px solid rgba(var(--ac-green-rgb), .3);
}
.ac-lrow-num .ac-ic { width: 18px; height: 18px; stroke-width: 2.4; }
.ac-lrow-text { flex: 1; min-width: 0; }
.ac-lrow-text b { display: block; font-size: 15px; font-weight: 600; color: #fff; line-height: 1.3; }
.ac-lrow-text small { display: block; font-size: 12.5px; color: var(--ac-text-3); margin-top: 3px; }
.ac-lrow > .ac-ic { color: var(--ac-text-3); }
.ac-lrow.done .ac-lrow-num { background: var(--ac-green); border-color: var(--ac-green); color: var(--ac-green-ink); }
.ac-lrow.done .ac-lrow-text small { color: var(--ac-green-2); font-weight: 600; }
.ac-lrow.locked { opacity: .45; cursor: not-allowed; }
.ac-lrow.locked:hover { transform: none; border-color: var(--ac-line); background: var(--ac-surface); }
.ac-lrow.locked .ac-lrow-num { background: rgba(255,255,255,.04); border-color: var(--ac-line-2); color: var(--ac-text-2); }

/* ─── AULA ─────────────────────────────────────────────────── */
.ac-lesson-grid { display: grid; grid-template-columns: minmax(0, 1fr) 344px; gap: 22px; padding: 8px var(--ac-pad) 48px 42px; align-items: start; }
.ac-card { background: var(--ac-surface); border: 1px solid var(--ac-line); border-radius: 14px; padding: 20px 20px; }
.ac-card-title { font-family: var(--ac-display); font-size: 17px; font-weight: 700; color: #fff; margin: 0 0 14px; padding-bottom: 14px; border-bottom: 1px solid var(--ac-line); display: flex; align-items: center; gap: 12px; }
.ac-lesson-side { display: flex; flex-direction: column; gap: 14px; position: sticky; top: calc(var(--ac-topbar-h) + 16px); }
.ac-lp { display: flex; align-items: center; gap: 24px; }
.ac-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.ac-steps li { display: flex; align-items: center; gap: 12px; font-size: 13px; color: var(--ac-text-2); }
.ac-steps li::before { content: ''; width: 15px; height: 15px; flex-shrink: 0; border-radius: 50%; border: 1.5px solid rgba(255,255,255,.45); box-sizing: border-box; }
.ac-steps li.on::before { border-color: var(--ac-green-2); background: radial-gradient(circle, var(--ac-green-2) 0 3.5px, transparent 4.5px); }
.ac-steps li.ok { color: #fff; }
.ac-steps li.ok::before { border-color: var(--ac-green); background: var(--ac-green); }

.ac-navcard { display: flex; align-items: center; gap: 16px; width: 100%; text-align: left; cursor: pointer; font-family: var(--ac-body); color: inherit; transition: border-color .15s, background .15s; }
.ac-navcard:hover { border-color: rgba(var(--ac-green-rgb), .5); background: var(--ac-surface-2); }
.ac-navcard-ic { width: 38px; height: 38px; flex-shrink: 0; border-radius: 10px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,.04); border: 1px solid var(--ac-line-2); color: #fff; }
.ac-navcard-ic .ac-ic { width: 17px; height: 17px; }
.ac-navcard small { display: block; font-size: 12px; color: var(--ac-text-2); }
.ac-navcard b { display: block; font-size: 13.5px; font-weight: 600; color: #fff; margin: 3px 0 1px; line-height: 1.3; }
.ac-navcard span.sub { display: block; font-size: 12px; color: var(--ac-text-3); }

.ac-next { display: flex; align-items: center; gap: 12px; cursor: pointer; }
.ac-next-thumb { width: 96px; height: 96px; flex-shrink: 0; border-radius: 9px; background: linear-gradient(135deg, rgba(var(--acc-rgb), .3), rgba(var(--acc-rgb), .06)); background-size: cover; background-position: center 18%; border: 1px solid var(--ac-line); }
.ac-next-text { flex: 1; min-width: 0; }
.ac-next-text b { display: block; font-size: 13.5px; font-weight: 600; color: #fff; line-height: 1.3; }
.ac-next-text small { display: block; font-size: 12px; color: var(--ac-text-2); margin-top: 8px; }
.ac-next-text .t { display: flex; align-items: center; gap: 7px; font-size: 12px; color: var(--ac-text-2); margin-top: 8px; }
.ac-next-text .t .ac-ic { width: 15px; height: 15px; }
.ac-round { width: 38px; height: 38px; flex-shrink: 0; border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(var(--acc-rgb, var(--ac-green-rgb)), .7); color: var(--acc, var(--ac-green-2)); background: rgba(var(--acc-rgb, var(--ac-green-rgb)), .06); transition: background .15s; }
.ac-round .ac-ic { width: 17px; height: 17px; }
.ac-next:hover .ac-round { background: rgba(var(--ac-green-rgb), .18); }
.ac-next-empty { font-size: 13px; color: var(--ac-text-2); line-height: 1.5; }

.ac-mat { display: flex; align-items: center; gap: 14px; font-size: 13px; color: var(--ac-text-2); line-height: 1.45; }
.ac-mat .ac-tile { width: 46px; height: 46px; }
.ac-mat .ac-tile .ac-ic { width: 21px; height: 21px; }
.ac-mat-name { font-size: 13px; font-weight: 600; color: #fff; line-height: 1.35; }
.ac-mat-meta { font-size: 12px; color: var(--ac-text-3); margin-top: 3px; }
.ac-mat-btn { margin-top: 14px; width: 100%; }
.ac-mat-note { display: flex; gap: 8px; font-size: 11.5px; color: var(--ac-text-3); margin-top: 10px; line-height: 1.4; }
.ac-mat-note .ac-ic { width: 13px; height: 13px; margin-top: 1px; }

.ac-lesson-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 16px; }
.ac-lesson-actions > div { display: flex; gap: 10px; }

/* corpo editorial da aula */
.ac-lesson-body {
  background: var(--ac-surface); border: 1px solid var(--ac-line); border-radius: 14px;
  padding: 30px 46px 34px 108px; line-height: 1.6; color: var(--ac-text-2); font-size: 15px;
}
.ac-lesson-body > :first-child { margin-top: 0; }
.ac-lesson-body h2 {
  position: relative; font-family: var(--ac-display); font-size: 24px; font-weight: 700; letter-spacing: -.3px; line-height: 1.25;
  color: #fff; margin: 30px 0 14px; padding-top: 30px; border-top: 1px solid var(--ac-line);
}
.ac-lesson-body h2:first-child { padding-top: 6px; border-top: none; }
.ac-lesson-body h2::before {
  content: ''; position: absolute; left: -84px; top: 22px; width: 56px; height: 56px; border-radius: 13px;
  background: rgba(var(--ac-green-rgb), .1); border: 1px solid rgba(var(--ac-green-rgb), .3); box-sizing: border-box;
}
.ac-lesson-body h2::after {
  content: ''; position: absolute; left: -68px; top: 38px; width: 24px; height: 24px; background: var(--ac-green-2);
  -webkit-mask: var(--h2-ic) center / contain no-repeat; mask: var(--h2-ic) center / contain no-repeat;
}
.ac-lesson-body h2:first-child::before { top: -2px; }
.ac-lesson-body h2:first-child::after { top: 14px; }
.ac-lesson-body h2 { --h2-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4'/%3E%3Cpath d='M10 9H8'/%3E%3Cpath d='M16 13H8'/%3E%3Cpath d='M16 17H8'/%3E%3C/svg%3E"); }
.ac-lesson-body h2:nth-of-type(4n+2) { --h2-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E"); }
.ac-lesson-body h2:nth-of-type(4n+3) { --h2-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Ccircle cx='12' cy='12' r='6'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3C/svg%3E"); }
.ac-lesson-body h2:nth-of-type(4n+4) { --h2-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 7v14'/%3E%3Cpath d='M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z'/%3E%3C/svg%3E"); }
.ac-lesson-body h3 { font-family: var(--ac-display); font-size: 18px; font-weight: 700; color: #fff; margin: 26px 0 10px; line-height: 1.3; }
.ac-lesson-body h4 { font-size: 15px; font-weight: 700; color: var(--ac-green-2); margin: 20px 0 8px; }
.ac-lesson-body p { margin: 0 0 14px; }
.ac-lesson-body ul, .ac-lesson-body ol { padding-left: 22px; margin: 0 0 16px; }
.ac-lesson-body li { margin-bottom: 8px; }
.ac-lesson-body li::marker { color: var(--ac-green-2); }
.ac-lesson-body strong { color: #fff; font-weight: 600; }
.ac-lesson-body em { color: rgba(255,255,255,.86); }
.ac-lesson-body hr { border: none; border-top: 1px solid var(--ac-line); margin: 26px 0; }
.ac-lesson-body table { width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 13.5px; border: 1px solid var(--ac-line); border-radius: 10px; overflow: hidden; }
.ac-lesson-body th { background: rgba(var(--ac-green-rgb), .12); color: var(--ac-green-2); padding: 11px 14px; text-align: left; font-weight: 600; border-bottom: 1px solid rgba(var(--ac-green-rgb), .25); }
.ac-lesson-body td { padding: 11px 14px; border-bottom: 1px solid var(--ac-line); vertical-align: top; }
.ac-lesson-body tr:last-child td { border-bottom: none; }
.ac-lesson-body .callout {
  position: relative; margin: 20px 0; padding: 18px 22px 18px 92px; border-radius: 12px;
  background: rgba(var(--ac-green-rgb), .07); border: 1px solid rgba(var(--ac-green-rgb), .38); border-left: 3px solid var(--ac-green);
}
.ac-lesson-body .callout::before {
  content: ''; position: absolute; left: 24px; top: 16px; width: 48px; height: 48px; border-radius: 12px; box-sizing: border-box;
  background: rgba(var(--ac-green-rgb), .12); border: 1px solid rgba(var(--ac-green-rgb), .35);
}
.ac-lesson-body .callout::after {
  content: ''; position: absolute; left: 36px; top: 28px; width: 24px; height: 24px; background: var(--ac-green-2);
  -webkit-mask: var(--co-ic) center / contain no-repeat; mask: var(--co-ic) center / contain no-repeat;
  --co-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
}
.ac-lesson-body .callout p { margin: 0 0 8px; color: #7fe3b0; font-size: 14.5px; line-height: 1.5; }
.ac-lesson-body .callout p:last-child { margin-bottom: 0; }
.ac-lesson-body .callout strong { color: var(--ac-green-2); font-weight: 700; }
.ac-lesson-body .callout p > strong:first-child { display: block; font-size: 16px; margin-bottom: 3px; }
.ac-lesson-body .disclaimer-box { margin: 20px 0; padding: 14px 18px; border-radius: 10px; background: rgba(255,255,255,.03); border: 1px solid var(--ac-line); }
.ac-lesson-body .disclaimer-box p { font-size: 12.5px; color: var(--ac-text-3); margin: 0; line-height: 1.6; }
.ac-lesson-body .case-study { margin: 20px 0; padding: 18px 22px; border-radius: 12px; background: rgba(255,255,255,.03); border: 1px solid var(--ac-line-2); }
.ac-lesson-body .badge { display: inline-flex; padding: 3px 10px; border-radius: 99px; font-size: 11px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; background: rgba(var(--ac-green-rgb), .14); color: var(--ac-green-2); border: 1px solid rgba(var(--ac-green-rgb), .3); }

/* ─── BÔNUS ────────────────────────────────────────────────── */
.ac-hero-note {
  flex: 0 1 300px; display: flex; gap: 18px; padding: 22px 24px; border-radius: 14px;
  background: rgba(8,13,11,.6); border: 1px solid var(--ac-line-2); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  color: #fff;
}
.ac-hero-note .ac-ic { width: 26px; height: 26px; margin-top: 4px; }
.ac-hero-note p { margin: 0; font-family: var(--ac-serif); font-style: italic; font-size: 16.5px; line-height: 1.4; color: rgba(255,255,255,.88); }
.ac-hero-note p::before { content: ''; display: block; width: 26px; height: 2px; background: rgba(255,255,255,.8); margin-bottom: 12px; }
.ac-h1--xl { font-size: clamp(34px, 3.5vw, 60px); }

.ac-bonus-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; padding: 6px var(--ac-pad) 0; }
.ac-bonus-wide { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; padding: 18px var(--ac-pad) 0; }
.ac-bonus {
  position: relative; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; min-height: 284px;
  padding: 20px 20px 16px; border-radius: 14px; text-decoration: none; color: inherit;
  border: 1px solid rgba(var(--acc-rgb), .42);
  background: linear-gradient(135deg, rgba(var(--acc-rgb), .16), rgba(var(--acc-rgb), .04) 60%), var(--ac-surface);
  transition: transform .2s, border-color .2s, box-shadow .2s;
}
a.ac-bonus:hover { transform: translateY(-3px); border-color: rgba(var(--acc-rgb), .85); box-shadow: 0 18px 44px rgba(0,0,0,.5); }
.ac-bonus-img {
  position: absolute; z-index: -1; top: 0; right: 0; bottom: 0; width: 66%; background-size: cover; background-position: center; opacity: .8;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 60%); mask-image: linear-gradient(90deg, transparent, #000 60%);
}
.ac-bonus::after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, transparent 20%, rgba(11,17,15,.82) 62%, rgba(11,17,15,.94)); }
.ac-bonus .ac-tile { width: 60px; height: 60px; border-radius: 13px; background: rgba(var(--acc-rgb), .16); border-color: rgba(var(--acc-rgb), .55); }
.ac-bonus .ac-tile .ac-ic { width: 28px; height: 28px; }
.ac-bonus-title { font-family: var(--ac-display); font-size: 21px; font-weight: 800; line-height: 1.15; letter-spacing: -.3px; color: var(--acc); margin: 16px 0 12px; max-width: 270px; }
.ac-bonus-desc { font-size: 15px; line-height: 1.45; color: rgba(255,255,255,.86); flex: 1; max-width: 300px; }
.ac-bonus-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(var(--acc-rgb), .28); }
.ac-bonus-meta { font-size: 11.5px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: var(--acc); }
.ac-bonus--wide { min-height: 190px; padding: 20px 22px 14px; }
.ac-bonus--wide .ac-bonus-head { display: flex; gap: 30px; flex: 1; }
.ac-bonus--wide .ac-bonus-title { margin: 8px 0 10px; max-width: none; font-size: 21px; }
.ac-bonus--wide .ac-bonus-desc { max-width: 340px; }
.ac-bonus--wide .ac-bonus-img { width: 46%; }
.ac-bonus--wide::after { background: linear-gradient(90deg, rgba(11,17,15,.9) 46%, rgba(11,17,15,.35)); }
.ac-bonus.soon { cursor: default; }

/* banner Immigrant Shield Office */
#office-hub-section { padding: 18px var(--ac-pad) 44px; }
.ac-ohub {
  display: grid; grid-template-columns: minmax(0, 1.5fr) auto auto; align-items: center; gap: 32px;
  padding: 22px 26px; border-radius: 14px; border: 1px solid rgba(var(--ac-green-rgb), .55);
  background: linear-gradient(110deg, rgba(var(--ac-green-rgb), .14), rgba(var(--ac-green-rgb), .03) 55%, rgba(var(--ac-green-rgb), .08)), var(--ac-surface);
}
.ac-ohub-main { display: flex; gap: 22px; min-width: 0; }
.ac-ohub-main > img { flex-shrink: 0; margin-top: 2px; }
.ac-ohub-title { font-family: var(--ac-display); font-size: 21px; font-weight: 800; line-height: 1.25; color: #fff; margin: 0 0 8px; }
.ac-ohub-desc { font-size: 13px; line-height: 1.5; color: var(--ac-text-2); max-width: 520px; }
.ac-ohub-desc strong { color: #fff; font-weight: 600; }
.ac-ohub-feats { display: flex; gap: 34px; padding: 0 30px; border-left: 1px solid var(--ac-line-2); border-right: 1px solid var(--ac-line-2); }
.ac-ohub-feat { display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; font-size: 12.5px; line-height: 1.35; color: #fff; max-width: 104px; }
.ac-ohub-feat .ac-ic { width: 30px; height: 30px; color: var(--ac-green-2); }
.ac-ohub-cta { display: flex; flex-direction: column; gap: 14px; min-width: 236px; }
.ac-ohub-logo { display: flex; align-items: center; gap: 12px; }
.ac-ohub-logo b { display: block; font-family: var(--ac-display); font-size: 15px; font-weight: 700; color: #fff; }
.ac-ohub-logo b span { color: var(--ac-green-2); }
.ac-ohub-logo small { display: block; font-size: 10.5px; letter-spacing: 1.3px; text-transform: uppercase; color: var(--ac-text-2); margin-top: 2px; }
.ac-ohub-note { font-size: 11px; color: var(--ac-text-3); text-align: center; margin-top: -4px; }

/* ─── CERTIFICADO ──────────────────────────────────────────── */
#cert-section { padding: 6px var(--ac-pad) 48px; max-width: 1040px; }
.cert-card {
  display: flex; align-items: center; gap: 28px; flex-wrap: wrap; padding: 30px 34px; border-radius: 14px;
  border: 1px solid rgba(var(--ac-green-rgb), .45);
  background: linear-gradient(120deg, rgba(var(--ac-green-rgb), .12), rgba(var(--ac-green-rgb), .03) 60%), var(--ac-surface);
}
.cert-shield { flex-shrink: 0; }
.cert-body { flex: 1; min-width: 220px; }
.cert-tag { display: inline-block; padding: 4px 12px; border-radius: 8px; margin-bottom: 12px; font-size: 11px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: var(--ac-green-2); background: rgba(var(--ac-green-rgb), .1); border: 1px solid rgba(var(--ac-green-rgb), .4); }
.cert-title { font-family: var(--ac-display); font-size: 22px; font-weight: 800; color: #fff; margin-bottom: 6px; }
.cert-sub { font-size: 14px; color: var(--ac-text-2); margin-bottom: 20px; line-height: 1.55; max-width: 640px; }

/* ─── RODAPÉ ───────────────────────────────────────────────── */
.ac-footer { margin-top: auto; padding: 24px var(--ac-pad) 28px; border-top: 1px solid var(--ac-line); text-align: center; }
.ac-footer p { max-width: 1000px; margin: 0 auto 8px; font-size: 12px; line-height: 1.6; color: var(--ac-text-3); }
.ac-footer strong { color: #e3ab45; font-weight: 600; }
.ac-footer a { color: var(--ac-green-2); text-decoration: none; }
.ac-footer a:hover { text-decoration: underline; }
.ac-footer-meta { font-size: 11px !important; }

/* ─── MODAIS ───────────────────────────────────────────────── */
.lock-overlay {
  display: none; position: fixed; inset: 0; z-index: 999; align-items: center; justify-content: center; padding: 24px;
  background: rgba(0,0,0,.74); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.lock-overlay.open { display: flex; }
.lock-modal { position: relative; width: 100%; max-width: 420px; padding: 36px 34px; text-align: center; border-radius: 16px; background: #0b110f; border: 1px solid var(--ac-line-2); box-shadow: 0 40px 80px rgba(0,0,0,.7); }
.lock-modal-icon { width: 64px; height: 64px; margin: 0 auto 20px; border-radius: 15px; display: flex; align-items: center; justify-content: center; background: rgba(var(--ac-green-rgb), .1); border: 1px solid rgba(var(--ac-green-rgb), .3); color: var(--ac-green-2); }
.lock-modal-icon .ac-ic { width: 28px; height: 28px; }
.lock-modal-title { font-family: var(--ac-display); font-size: 20px; font-weight: 800; color: #fff; margin-bottom: 8px; }
.lock-modal-sub { font-size: 13.5px; color: var(--ac-text-2); line-height: 1.6; margin-bottom: 22px; }
.lock-countdown-box { background: rgba(var(--ac-green-rgb), .06); border: 1px solid rgba(var(--ac-green-rgb), .2); border-radius: 12px; padding: 18px 20px; margin-bottom: 22px; }
.lock-days-num { font-family: var(--ac-display); font-size: 42px; font-weight: 800; color: var(--ac-green-2); line-height: 1; }
.lock-days-lbl { font-size: 11px; color: var(--ac-text-3); margin-top: 6px; text-transform: uppercase; letter-spacing: 1px; }
.lock-date-hint { font-size: 12px; color: var(--ac-text-3); margin-top: 6px; }
.lock-close-btn { width: 100%; height: 44px; border-radius: 10px; cursor: pointer; background: rgba(255,255,255,.05); border: 1px solid var(--ac-line-2); color: var(--ac-text-2); font-family: var(--ac-body); font-size: 14px; font-weight: 600; transition: background .15s, color .15s; }
.lock-close-btn:hover { background: rgba(255,255,255,.1); color: #fff; }
.name-input { width: 100%; height: 48px; padding: 0 14px; border-radius: 10px; text-align: center; background: rgba(255,255,255,.04); border: 1px solid var(--ac-line-2); color: #fff; font-family: var(--ac-body); font-size: 15px; outline: none; transition: border-color .15s; }
.name-input:focus { border-color: var(--ac-green); }
.name-input:disabled { color: var(--ac-text-2); }
.name-error { min-height: 18px; font-size: 12.5px; color: #ff8589; margin: 8px 0 10px; }
.name-save-btn { width: 100%; height: 46px; margin-bottom: 10px; }

/* ─── ANIMAÇÃO DE ENTRADA ──────────────────────────────────── */
@keyframes acFadeUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.fade-up { animation: acFadeUp .45s cubic-bezier(.4,0,.2,1) both; }
.d1 { animation-delay: .05s; } .d2 { animation-delay: .12s; } .d3 { animation-delay: .2s; } .d4 { animation-delay: .28s; }
@media (prefers-reduced-motion: reduce) { .fade-up { animation: none; } .ac-bar > i, .ac-ring-fill { transition: none; } }

/* ─── RESPONSIVO ───────────────────────────────────────────── */
@media (max-width: 1500px) {
  .ac-mod-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ac-bonus-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ac-ohub { grid-template-columns: minmax(0, 1fr) auto; }
  .ac-ohub-feats { display: none; }
}
@media (max-width: 1280px) {
  :root { --ac-pad: 24px; }
  .ac-quote { display: none; }
  .ac-hero-img { right: 0; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 40%); mask-image: linear-gradient(90deg, transparent 0%, #000 40%); }
  .ac-hero-body, .ac-hero-body--col { padding-right: 0; }
  .ac-lesson-grid { grid-template-columns: minmax(0, 1fr) 300px; padding-left: var(--ac-pad); }
  .ac-stats { gap: 12px; }
  .ac-stat { gap: 14px; padding: 15px 16px; }
  .ac-stat .ac-tile { width: 46px; height: 46px; }
  .ac-stat .ac-tile .ac-ic { width: 22px; height: 22px; }
  .ac-stat-label { font-size: 14px; }
  .ac-lesson-body { padding: 26px 30px 30px 92px; }
  .ac-lesson-body h2::before { left: -72px; width: 48px; height: 48px; }
  .ac-lesson-body h2::after { left: -60px; }
}
@media (max-width: 1040px) {
  .ac-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ac-lesson-grid { grid-template-columns: minmax(0, 1fr); }
  .ac-lesson-side { position: static; }
  .ac-bonus-wide { grid-template-columns: minmax(0, 1fr); }
  .ac-mod-grid.list .ac-mod-body { grid-template-columns: minmax(0, 1fr); grid-template-areas: "tag" "title" "desc" "prog" "count" "cta"; row-gap: 8px; }
}
@media (max-width: 900px) {
  .ac-app { grid-template-columns: minmax(0, 1fr); }
  .ac-sidebar { display: none; position: fixed; inset: 0 auto 0 0; width: min(88vw, 300px); height: 100dvh; box-shadow: 30px 0 80px rgba(0,0,0,.7); }
  .ac-sidebar.open { display: flex; }
  .ac-scrim { position: fixed; inset: 0; z-index: 55; background: rgba(0,0,0,.6); }
  .ac-sidebar.open ~ .ac-scrim { display: block; }
  .ac-menu-btn { display: inline-flex; }
  body.sb-collapsed .ac-sidebar { display: none; }
  body.sb-collapsed .ac-sidebar.open { display: flex; }
  .ac-hero { padding-left: var(--ac-pad); }
  .ac-hero-img { width: 100%; opacity: .45; -webkit-mask-image: none; mask-image: none; }
  .ac-hero-body { flex-direction: column; align-items: stretch; gap: 22px; }
  .ac-hero-copy, .ac-progress-card, .ac-hero-note { flex: 0 0 auto; min-width: 0; }
  .ac-mod-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ac-ohub { grid-template-columns: minmax(0, 1fr); }
  .ac-user-name { display: none; }
  .ac-user { padding-left: 12px; }
}
@media (max-width: 600px) {
  :root { --ac-pad: 16px; }
  .ac-h1 { letter-spacing: -.5px; }
  .ac-lead { font-size: 15px; }
  .ac-stats { gap: 10px; }
  .ac-stat { padding: 14px; gap: 12px; flex-direction: column; align-items: flex-start; }
  .ac-tile { width: 42px; height: 42px; border-radius: 11px; }
  .ac-tile .ac-ic { width: 20px; height: 20px; }
  .ac-stat-num { font-size: 24px; }
  .ac-stat-label { font-size: 13.5px; }
  .ac-h2 { font-size: 22px; }
  .ac-sub { font-size: 14px; }
  .ac-seg { width: 100%; }
  .ac-seg button { flex: 1; justify-content: center; padding: 0 10px; }
  .ac-mod-grid, .ac-bonus-grid { grid-template-columns: minmax(0, 1fr); }
  .ac-mod-grid.list .ac-mod-cover { width: 84px; }
  .ac-progress-card-row { gap: 16px; }
  .ac-ring--lg { width: 92px; height: 92px; }
  .ac-ring--lg .ac-ring-label { font-size: 22px; }
  .ac-lesson-body { padding: 20px 18px 24px; font-size: 15px; }
  .ac-lesson-body h2 { font-size: 20px; padding-left: 52px; min-height: 40px; }
  .ac-lesson-body h2::before { left: 0; width: 40px; height: 40px; border-radius: 10px; top: 24px; }
  .ac-lesson-body h2::after { left: 10px; top: 34px; width: 20px; height: 20px; }
  .ac-lesson-body h2:first-child::before { top: 0; }
  .ac-lesson-body h2:first-child::after { top: 10px; }
  .ac-lesson-body .callout { padding: 16px 16px 16px 16px; }
  .ac-lesson-body .callout::before, .ac-lesson-body .callout::after { display: none; }
  .ac-lesson-body table { display: block; overflow-x: auto; white-space: nowrap; }
  .ac-lesson-actions { flex-direction: column-reverse; align-items: stretch; }
  .ac-lesson-actions > div { justify-content: space-between; }
  .ac-bonus { min-height: 0; }
  .ac-bonus--wide .ac-bonus-head { gap: 16px; }
  .ac-ohub-main { flex-direction: column; gap: 12px; }
  .cert-card { padding: 22px 20px; }
  .ac-search input { font-size: 16px; }
}

/* ─── PÁGINA INTERNA DE BÔNUS ──────────────────────────────── */
.ac-accent-acc { color: var(--acc); display: block; }
#bonus-page-title { font-size: clamp(26px, 2.65vw, 44px); line-height: 1.1; }
.ac-hero--flag .ac-hero-img { right: 15%; }
.ac-hero-flag {
  position: absolute; z-index: -2; top: 0; right: 0; bottom: 0; width: 30%;
  background: url('img/mod-1.jpg') 70% 10% / cover no-repeat; opacity: .55;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 75%); mask-image: linear-gradient(90deg, transparent 0%, #000 75%);
}
.ac-hero-body--split { align-items: flex-end; justify-content: space-between; padding-right: 0; }
.ac-hero-body--split > div:first-child { min-width: 0; flex: 1; }
.ac-hero-actions { display: flex; gap: 14px; flex-shrink: 0; padding-bottom: 2px; }
.ac-hero-actions .ac-btn { height: 44px; padding: 0 20px; font-weight: 700; }
.ac-hero-actions .ac-btn--outline { background: rgba(4,7,6,.55); }

.ac-bonus-page { padding: 8px var(--ac-pad) 56px; }
.ac-lesson-body.ac-bonus-body { background: none; border: none; border-radius: 0; padding: 0 0 0 78px; }
.ac-bonus-body [id] { scroll-margin-top: calc(var(--ac-topbar-h) + 20px); }
.ac-bonus-body h2 { display: flex; align-items: center; gap: 18px; color: var(--ac-green-2); border-top: none; padding-top: 6px; margin-top: 40px; }
.ac-bonus-body h2::before { left: -78px; top: -8px; width: 54px; height: 54px; }
.ac-bonus-body h2::after { left: -63px; top: 7px; }
.ac-bonus-body h2:first-child::before { top: -8px; }
.ac-bonus-body h2:first-child::after { top: 7px; }
.ac-h2-rule { flex: 1; height: 1px; background: rgba(var(--ac-green-rgb), .4); }
.ac-bonus-body .callout.ac-updated, .ac-bonus-body .disclaimer-box.ac-legal { margin-left: -78px; }
.ac-bonus-body .callout.ac-updated { margin-top: 0; margin-bottom: 22px !important; padding-top: 22px; padding-bottom: 22px; border-left-width: 1px; color: var(--ac-text-2); font-size: 14.5px; line-height: 1.6; }
.ac-bonus-body .callout.ac-updated::after { --co-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E"); }
.ac-bonus-body .callout.ac-updated::before { top: 18px; }
.ac-bonus-body .callout.ac-updated::after { top: 30px; }
.ac-bonus-body .callout.ac-updated strong { font-size: 16.5px; }
.ac-bonus-body .callout.ac-updated a { color: var(--ac-green-2); }
.ac-bonus-body .disclaimer-box.ac-legal {
  position: relative; padding: 24px 28px 22px 134px; border-radius: 12px;
  background: rgba(239,77,85,.08); border: 1px solid rgba(239,77,85,.5);
}
.ac-bonus-body .disclaimer-box.ac-legal::before {
  content: ''; position: absolute; left: 26px; top: 26px; width: 76px; height: 76px; border-radius: 50%; box-sizing: border-box;
  background: rgba(239,77,85,.12); border: 1px solid rgba(239,77,85,.5);
}
.ac-bonus-body .disclaimer-box.ac-legal::after {
  content: ''; position: absolute; left: 44px; top: 43px; width: 40px; height: 40px; background: #ff6369;
  -webkit-mask: var(--lg-ic) center / contain no-repeat; mask: var(--lg-ic) center / contain no-repeat;
  --lg-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3'/%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E");
}
.ac-bonus-body .disclaimer-box.ac-legal > strong { display: block; margin-bottom: 10px; font-size: 15.5px; font-weight: 700; letter-spacing: .6px; color: #ff6369; }
.ac-bonus-body .disclaimer-box.ac-legal p { font-size: 14.5px; line-height: 1.55; color: rgba(255,255,255,.86); margin-bottom: 12px; }
.ac-bonus-body .disclaimer-box.ac-legal p:last-child { margin-bottom: 0; }
.ac-bonus-body a { color: var(--ac-green-2); }
.ac-bonus-body .red-flag-box { margin: 18px 0; padding: 16px 20px; border-radius: 12px; background: rgba(239,77,85,.07); border: 1px solid rgba(239,77,85,.35); border-left: 3px solid #ef4d55; }
.ac-bonus-body .red-flag-box > strong { display: block; margin-bottom: 8px; color: #ff6369; }
.ac-bonus-body .red-flag-box ul { margin-bottom: 0; }
.ac-bonus-body .red-flag-box li::marker { color: #ff6369; }
.ac-bonus-body pre {
  margin: 14px 0 24px; padding: 20px 22px; border-radius: 12px; background: var(--ac-surface); border: 1px solid var(--ac-line-2);
  font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace; font-size: 13px; line-height: 1.6; color: rgba(255,255,255,.84);
  white-space: pre-wrap; overflow-wrap: anywhere;
}
.ac-bonus-body .checklist-toc { margin: 22px 0; padding: 20px 24px; border-radius: 12px; background: var(--ac-surface); border: 1px solid var(--ac-line); }
.ac-bonus-body .checklist-toc h2 { margin-top: 0; font-size: 18px; }
.ac-bonus-body .checklist-toc h2::before, .ac-bonus-body .checklist-toc h2::after { display: none; }
.ac-bonus-body .checklist-toc ol { columns: 2; column-gap: 40px; margin-bottom: 0; }
.ac-bonus-body .lesson-footer { margin-top: 40px; padding-top: 8px; border-top: 1px solid var(--ac-line); }
.ac-bonus-body .meta { font-size: 12.5px; color: var(--ac-text-3); }
.ac-bonus-body p.callout { color: #7fe3b0; font-size: 14.5px; }

@media (max-width: 1280px) {
  .ac-hero-body--split { flex-direction: column; align-items: flex-start; gap: 18px; }
  .ac-hero-flag { display: none; }
  .ac-hero--flag .ac-hero-img { right: 0; }
}
@media (max-width: 600px) {
  .ac-lesson-body.ac-bonus-body { padding: 0; }
  .ac-bonus-body .callout.ac-updated, .ac-bonus-body .disclaimer-box.ac-legal { margin-left: 0; }
  .ac-bonus-body .disclaimer-box.ac-legal { padding: 20px 18px; }
  .ac-bonus-body .disclaimer-box.ac-legal::before, .ac-bonus-body .disclaimer-box.ac-legal::after { display: none; }
  .ac-bonus-body h2 { padding-left: 52px; }
  .ac-bonus-body h2::before { left: 0; top: 0; width: 40px; height: 40px; }
  .ac-bonus-body h2::after { left: 10px; top: 10px; }
  .ac-bonus-body h2:first-child::before { top: 0; }
  .ac-bonus-body h2:first-child::after { top: 10px; }
  .ac-bonus-body .checklist-toc ol { columns: 1; }
  .ac-hero-actions { width: 100%; }
  .ac-hero-actions .ac-btn { flex: 1; padding: 0 12px; }
}
