:root {
  --green: #9cd92e;
  --yellow: #f8ef00;
  --orange: #f78200;
  --pink: #f80091;
  --purple: #44009d;
  --ink: #2f182c;
  --muted: #746a72;
  --white: #fff;
  --cream: #fffdf1;
  --shadow: 0 18px 50px rgba(68, 0, 157, .13);
  --radius-xl: 32px;
  --radius-lg: 24px;
  --radius-md: 17px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); font-family: 'Nunito Sans', sans-serif; }
button { border: 0; cursor: pointer; font: inherit; color: inherit; }
button:focus-visible { outline: 4px solid rgba(248, 239, 0, .9); outline-offset: 3px; }
.app-shell { min-height: 100vh; overflow: hidden; }
.topbar { height: 78px; padding: 0 clamp(18px, 5vw, 72px); display: flex; align-items: center; justify-content: space-between; gap: 22px; background: rgba(255,253,241,.93); border-bottom: 1px solid rgba(68,0,157,.08); position: sticky; top: 0; z-index: 20; backdrop-filter: blur(16px); }
.brand { display: flex; align-items: center; gap: 10px; background: transparent; padding: 0; text-align: left; }
.brand-mark { width: 34px; height: 43px; display: block; position: relative; transform: rotate(-9deg); }
.brand-mark i,.brand-mark b,.brand-mark em { position: absolute; display: block; border-radius: 100% 0 100% 0; width: 13px; height: 34px; transform-origin: bottom center; }
.brand-mark i { left: 11px; top: 1px; background: var(--green); transform: rotate(31deg); }
.brand-mark b { left: 7px; top: 7px; background: var(--orange); transform: rotate(-36deg); }
.brand-mark em { left: 14px; top: 12px; background: var(--pink); transform: rotate(8deg); }
.brand-copy { display: grid; line-height: .85; }
.brand-copy strong { font: 22px/1 'Anton', sans-serif; letter-spacing: .02em; }
.brand-copy small { color: var(--purple); font-weight: 900; letter-spacing: .15em; text-transform: uppercase; font-size: 9px; margin-top: 5px; }
.topnav { display: flex; gap: 8px; }
.topnav button,.footer-links button { background: transparent; padding: 10px 12px; font-size: 13px; font-weight: 800; color: var(--muted); }
.topnav button:hover,.topnav button.active,.footer-links button:hover { color: var(--purple); }
.top-actions { display: flex; gap: 9px; }
.round-btn,.avatar-btn { width: 40px; height: 40px; border-radius: 50%; font-weight: 900; display: grid; place-items: center; }
.round-btn { color: var(--white); background: var(--purple); font-size: 12px; }
.avatar-btn { background: var(--yellow); color: var(--purple); border: 2px solid var(--purple); font-size: 12px; }
#app { min-height: calc(100vh - 138px); }
.page { max-width: 1320px; margin: 0 auto; padding: 34px clamp(18px, 5vw, 72px) 80px; }
.hero { min-height: 450px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 30px; align-items: center; position: relative; }
.hero:before { content: ''; position: absolute; width: 520px; height: 520px; background: var(--yellow); border-radius: 48% 52% 58% 42%; top: -170px; right: -180px; z-index: -1; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; color: var(--purple); font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .12em; }
.eyebrow:before { content: ''; width: 20px; height: 7px; background: var(--pink); border-radius: 20px; }
h1,h2,h3,p { margin-top: 0; }
h1 { font: 50px/.98 'Anton', sans-serif; text-transform: uppercase; letter-spacing: .01em; color: var(--purple); margin: 16px 0 18px; max-width: 680px; }
h1 .orange { color: var(--orange); } h1 .pink { color: var(--pink); }
.lead { font-size: 16px; line-height: 1.5; max-width: 610px; color: #4e3b49; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.btn { padding: 14px 20px; border-radius: 999px; font-weight: 900; display: inline-flex; align-items: center; justify-content: center; gap: 8px; transition: transform .2s, box-shadow .2s; }
.btn:hover { transform: translateY(-3px); box-shadow: 0 12px 24px rgba(68,0,157,.16); }
.btn-primary { background: var(--orange); color: var(--white); }
.btn-secondary { background: var(--white); color: var(--purple); border: 2px solid var(--purple); }
.btn-green { background: var(--green); color: var(--purple); }
.hero-art { min-height: 390px; border-radius: 34px; overflow: hidden; position: relative; box-shadow: var(--shadow); background: linear-gradient(145deg, var(--yellow), var(--green)); }
.hero-art img { width: 100%; height: 100%; object-fit: contain; object-position: center bottom; display: block; padding: 18px 18px 0; }
.mascot-stage:before { content: ""; position: absolute; width: 250px; height: 250px; background: var(--white); opacity: .48; border-radius: 50%; left: 50%; top: 48%; transform: translate(-50%,-50%); }
.mascot-glow { position: absolute; width: 170px; height: 170px; border-radius: 50%; background: var(--pink); opacity: .2; top: 18%; right: 10%; filter: blur(2px); }
.hero-art .art-label { position: absolute; left: 18px; bottom: 18px; background: var(--white); color: var(--purple); padding: 10px 14px; border-radius: 999px; font-weight: 900; font-size: 12px; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin: 35px 0 18px; }
.section-heading h2 { font: 31px/.98 'Anton', sans-serif; color: var(--purple); text-transform: uppercase; margin: 0; }
.section-heading p { color: var(--muted); margin: 6px 0 0; }
.link-btn { color: var(--purple); background: transparent; font-weight: 900; }
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.card { background: var(--white); border-radius: var(--radius-lg); padding: 22px; box-shadow: 0 7px 22px rgba(68,0,157,.08); position: relative; overflow: hidden; transition: transform .2s, box-shadow .2s; }
.card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.card:after { content: ''; position: absolute; width: 80px; height: 80px; border-radius: 50%; right: -28px; bottom: -28px; background: var(--yellow); opacity: .8; }
.card h3 { font: 23px/1 'Anton', sans-serif; text-transform: uppercase; margin: 15px 0 9px; color: var(--purple); }
.card p { line-height: 1.5; color: var(--muted); position: relative; z-index: 1; }
.card .card-icon { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; font-weight: 900; color: var(--white); font-size: 20px; }
.card .card-icon.green { background: var(--green); color: var(--purple); }.card .card-icon.orange { background: var(--orange); }.card .card-icon.pink { background: var(--pink); }.card .card-icon.purple { background: var(--purple); }.card .card-icon.yellow { background: var(--yellow); color: var(--purple); }
.game-card { min-height: 235px; padding: 0; display: flex; flex-direction: column; justify-content: end; cursor: pointer; }
.game-card .game-color { position: absolute; inset: 0 0 40px; opacity: .96; }
.game-card .game-content { position: relative; z-index: 1; padding: 21px; background: linear-gradient(transparent, rgba(47,24,44,.85)); color: var(--white); }
.game-card h3 { color: var(--white); margin: 8px 0 4px; }.game-card p { color: rgba(255,255,255,.86); font-size: 14px; margin: 0; }.game-card .mini-pill { display: inline-block; padding: 5px 9px; border-radius: 999px; color: var(--purple); background: var(--white); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.game-card .game-color.green { background: radial-gradient(circle at 25% 25%, #efff8d, var(--green) 42%, #54a71f); }.game-card .game-color.orange { background: radial-gradient(circle at 25% 25%, #ffc65a, var(--orange) 50%, #e34e00); }.game-card .game-color.purple { background: radial-gradient(circle at 65% 22%, #bd80ff, var(--purple) 53%, #260064); }.game-card .game-color.pink { background: radial-gradient(circle at 30% 20%, #ff8dcb, var(--pink) 50%, #a9006a); }.game-card .game-color.blue { background: radial-gradient(circle at 20% 20%, #d4faff, #37add4 50%, #135b9a); }
.stats-row { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-top: 24px; }.stat { background: var(--white); padding: 18px; border-radius: var(--radius-md); }.stat strong { display: block; font: 35px/1 'Anton', sans-serif; color: var(--orange); }.stat span { color: var(--muted); font-size: 12px; font-weight: 800; }
.page-head { background: var(--purple); color: var(--white); border-radius: var(--radius-xl); padding: 32px; margin-bottom: 24px; position: relative; overflow: hidden; }.page-head:after { content: ''; position: absolute; width: 270px; height: 270px; background: var(--pink); border-radius: 50%; opacity: .8; right: -85px; top: -110px; }.page-head h1 { color: var(--white); font-size: 43px; max-width: 760px; margin-bottom: 8px; }.page-head p { color: rgba(255,255,255,.82); max-width: 710px; margin: 0; line-height: 1.5; position: relative; z-index: 1; }
.dashboard { display: grid; grid-template-columns: 1.4fr .8fr; gap: 18px; }.panel { background: var(--white); border-radius: var(--radius-lg); padding: 22px; box-shadow: 0 7px 22px rgba(68,0,157,.08); }.panel h2 { font: 23px/1 'Anton', sans-serif; color: var(--purple); text-transform: uppercase; }.progress { height: 13px; background: #eee8ef; border-radius: 20px; overflow: hidden; }.progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--green),var(--yellow),var(--orange)); }.skill-list { display: grid; gap: 12px; }.skill { display: grid; grid-template-columns: 40px 1fr auto; align-items: center; gap: 10px; }.skill-icon { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; font-weight: 900; color: var(--white); }.skill small { color: var(--muted); }.skill b { color: var(--purple); }
.ai-box { display: grid; grid-template-columns: 1fr .8fr; gap: 20px; align-items: stretch; }.ai-chat { min-height: 330px; background: #fbf7ff; border-radius: var(--radius-lg); padding: 20px; display: flex; flex-direction: column; gap: 12px; }.bubble { max-width: 80%; padding: 12px 15px; border-radius: 17px; line-height: 1.4; font-size: 14px; }.bubble.bot { background: var(--white); color: var(--purple); border-bottom-left-radius: 5px; }.bubble.user { background: var(--purple); color: var(--white); align-self: end; border-bottom-right-radius: 5px; }.chat-input { display: flex; gap: 8px; margin-top: auto; }.chat-input input { min-width: 0; flex: 1; border: 2px solid #eadcf4; border-radius: 999px; padding: 11px 14px; font: inherit; outline: none; }.chat-input input:focus { border-color: var(--pink); }
.filter-row { display: flex; gap: 8px; flex-wrap: wrap; margin: 18px 0; }.filter { padding: 9px 13px; border-radius: 999px; background: var(--white); border: 1px solid #eadcf4; font-size: 12px; font-weight: 900; color: var(--muted); }.filter.active,.filter:hover { color: var(--white); background: var(--purple); }
.modal-backdrop { display: none; position: fixed; inset: 0; z-index: 50; background: rgba(47,24,44,.55); padding: 18px; align-items: center; justify-content: center; }.modal-backdrop.open { display: flex; }.modal { width: min(680px, 100%); max-height: 90vh; overflow: auto; background: var(--cream); border-radius: 28px; padding: 30px; position: relative; box-shadow: 0 25px 90px rgba(47,24,44,.35); }.modal-close { position: absolute; right: 17px; top: 12px; width: 36px; height: 36px; border-radius: 50%; background: var(--white); color: var(--purple); font-size: 25px; line-height: 1; }.modal h2 { font: 32px/1 'Anton', sans-serif; text-transform: uppercase; color: var(--purple); margin: 0 0 10px; }.modal p { line-height: 1.55; color: var(--muted); }.modal ul { color: var(--muted); line-height: 1.7; padding-left: 20px; }.modal .modal-accent { width: 75px; height: 8px; border-radius: 20px; background: var(--pink); margin-bottom: 18px; }
.footer { background: var(--purple); color: var(--white); padding: 22px clamp(18px,5vw,72px); display: flex; align-items: center; justify-content: space-between; gap: 20px; }.footer strong { display: block; font: 24px/1 'Anton', sans-serif; text-transform: uppercase; }.footer span { color: #d8c6ef; font-size: 12px; }.footer-links { display: flex; gap: 6px; }.footer-links button { color: #eadffc; }
.empty-state { text-align: center; padding: 50px 20px; background: var(--white); border-radius: var(--radius-lg); }.empty-state h2 { font: 35px 'Anton'; color: var(--purple); text-transform: uppercase; }
@media (max-width: 900px) { .hero,.dashboard,.ai-box { grid-template-columns: 1fr; }.hero-art { min-height: 320px; }.cards { grid-template-columns: repeat(2,1fr); } h1 { font-size: 44px; }.topnav { display: none; } }
@media (max-width: 560px) { .page { padding-top: 22px; }.hero { min-height: auto; }.hero-art { min-height: 270px; }.cards,.stats-row { grid-template-columns: 1fr; }.section-heading { display: block; }.section-heading .link-btn { margin-top: 14px; }.page-head { padding: 28px 22px; }.page-head h1 { font-size: 36px; }.footer { display: block; }.footer-links { margin-top: 14px; flex-wrap: wrap; padding: 0; margin-left: -12px; } }

/* Refinamento de clareza e leitura */
.hero { min-height: 410px; gap: 46px; }
.hero-copy { max-width: 610px; }
.hero-trust { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; color: var(--muted); font-size: 12px; font-weight: 800; }
.trust-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 5px rgba(156,217,46,.16); }
.mascot-stage { min-height: 410px; background: linear-gradient(145deg, #fff69a 0%, var(--yellow) 46%, var(--green) 100%); isolation: isolate; }
.mascot-stage:before, .mascot-glow { display: none; }
.mascot-stage img { position: relative; z-index: 2; width: 100%; height: 100%; object-fit: contain; object-position: center bottom; padding: 30px 36px 0; filter: drop-shadow(0 18px 18px rgba(68,0,157,.16)); }
.hero-art .art-label { z-index: 4; top: 18px; bottom: auto; left: 18px; box-shadow: 0 6px 16px rgba(68,0,157,.13); }
.section-heading.compact { margin-top: 20px; }
.how-it-works { margin-top: 18px; padding: 22px 24px 24px; background: var(--white); border: 1px solid rgba(68,0,157,.08); border-radius: var(--radius-lg); }
.how-it-works .section-heading { margin: 0 0 18px; }
.how-it-works .section-heading h2 { margin-top: 8px; }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.step { display: flex; align-items: flex-start; gap: 12px; padding: 14px; border-radius: 16px; background: #fbf8ff; }
.step > span { flex: 0 0 auto; font: 23px/1 'Anton', sans-serif; color: var(--pink); }
.step strong { display: block; color: var(--purple); font-size: 15px; }
.step p { margin: 4px 0 0; color: var(--muted); font-size: 13px; line-height: 1.4; }
.journey-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.journey-card { min-height: 315px; border-radius: var(--radius-lg); padding: 22px; position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; box-shadow: 0 9px 26px rgba(68,0,157,.10); }
.journey-card:after { content: ''; position: absolute; width: 170px; height: 170px; border-radius: 50%; right: -64px; top: -58px; background: rgba(255,255,255,.19); }
.journey-green { background: var(--green); color: var(--purple); }.journey-orange { background: var(--orange); color: var(--white); }.journey-pink { background: var(--pink); color: var(--white); }
.journey-number { position: absolute; top: 18px; right: 20px; font: 25px/1 'Anton', sans-serif; opacity: .8; }
.journey-icon { width: 48px; height: 48px; border-radius: 15px; background: var(--white); color: var(--purple); display: grid; place-items: center; font-weight: 900; position: relative; z-index: 1; }
.journey-kicker { margin-top: 20px; font-size: 11px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; opacity: .8; position: relative; z-index: 1; }
.journey-card h3 { color: inherit; font-size: 30px; margin: 7px 0 8px; position: relative; z-index: 1; }
.journey-card p { color: inherit; opacity: .88; line-height: 1.45; font-size: 14px; position: relative; z-index: 1; }
.journey-card .btn { margin-top: auto; position: relative; z-index: 1; }
.btn-pink { background: var(--pink); color: var(--white); }
.support-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.support-card { display: flex; align-items: flex-start; gap: 14px; background: var(--white); padding: 19px; border-radius: var(--radius-md); box-shadow: 0 7px 22px rgba(68,0,157,.08); }
.support-card h3 { font-size: 20px; margin: 2px 0 7px; }.support-card p { font-size: 13px; line-height: 1.45; margin-bottom: 8px; }
@media (max-width: 900px) { .steps,.journey-grid,.support-grid { grid-template-columns: 1fr; }.journey-card { min-height: 250px; }.mascot-stage { min-height: 350px; } }

/* Miniaturas leves dos jogos */
.game-card { min-height: 0; padding: 0; display: block; background: var(--white); cursor: pointer; }
.game-card:hover { transform: translateY(-4px); }
.game-card:after { display: none; }
.game-thumb { height: 150px; padding: 12px; background: #fffaf0; border-radius: var(--radius-lg) var(--radius-lg) 0 0; overflow: hidden; }
.game-thumb img { width: 100%; height: 100%; display: block; object-fit: cover; border-radius: 14px; }
.game-card .game-content { min-height: 145px; padding: 16px 18px 18px; background: var(--white); color: var(--ink); }
.game-card .game-content h3 { color: var(--purple); font-size: 22px; margin: 10px 0 6px; }
.game-card .game-content p { color: var(--muted); font-size: 13px; line-height: 1.4; margin: 0; }
.game-card .mini-pill { color: var(--purple); background: #f4effa; }
.game-card .mini-pill.green { background: #e8f7c9; }.game-card .mini-pill.yellow { background: #fffbc2; }.game-card .mini-pill.orange { background: #fff0d7; }.game-card .mini-pill.pink { background: #ffe1f1; }.game-card .mini-pill.purple { background: #eee3ff; }.game-card .mini-pill.blue { background: #e0f5fa; }
@media (max-width: 560px) { .game-thumb { height: 185px; } }

/* Áreas por perfil e Companhia IA flutuante */
.top-actions .round-btn { display: none; }
.profile-head { margin-bottom: 14px; }
.profile-nav { display: flex; flex-wrap: wrap; gap: 9px; margin: 0 0 20px; }
.profile-tab { display: inline-flex; align-items: center; gap: 8px; padding: 11px 15px; background: var(--white); color: var(--purple); border: 1px solid #eadcf4; border-radius: 999px; font-size: 13px; font-weight: 900; box-shadow: 0 4px 12px rgba(68,0,157,.05); }
.profile-tab span { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: #f3ecfa; font-size: 11px; }
.profile-tab.active, .profile-tab:hover { background: var(--purple); color: var(--white); border-color: var(--purple); }.profile-tab.active span, .profile-tab:hover span { background: var(--yellow); color: var(--purple); }
.profile-tab-ai { border-color: var(--pink); color: var(--pink); }.profile-tab-ai span { background: #ffe1f1; color: var(--pink); }
.student-layout,.parent-layout,.teacher-layout { display: grid; grid-template-columns: 1.4fr .7fr; gap: 18px; }.student-main,.parent-layout>.panel:first-child,.teacher-layout>.panel:first-child { min-width: 0; }
.panel-title-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }.panel-title-row h2 { margin-top: 8px; }.status-chip { padding: 7px 10px; background: #eee3ff; color: var(--purple); border-radius: 999px; font-size: 10px; font-weight: 900; white-space: nowrap; }.status-green { background: #e8f7c9; color: #49751d; }
.mission-card { display: grid; grid-template-columns: 145px 1fr; align-items: center; gap: 18px; background: #fffaf0; border: 1px solid #f6eacb; border-radius: 20px; padding: 13px; margin: 18px 0 26px; }.mission-art { height: 145px; background: var(--white); border-radius: 14px; overflow: hidden; }.mission-art img { width: 100%; height: 100%; object-fit: cover; }.mission-card h3 { color: var(--purple); margin: 10px 0 6px; font-size: 25px; }.mission-card p { font-size: 14px; margin-bottom: 14px; }.student-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; }.student-columns h2 { margin-bottom: 16px; }.week-card { background: #fbf8ff; padding: 16px; border-radius: 16px; }.week-card strong { display: block; font: 42px/1 'Anton',sans-serif; color: var(--orange); }.week-card span { color: var(--purple); font-weight: 900; font-size: 13px; display: block; margin: 5px 0 16px; }.week-card small { color: var(--muted); display: block; margin-top: 8px; }.tree-symbol { width: 100px; height: 100px; margin: 25px auto 15px; display: grid; place-items: center; border-radius: 50% 50% 45% 55%; background: var(--green); color: var(--purple); font-size: 46px; }.center-copy { text-align: center; }.progress-label { font-size: 12px; color: var(--muted); margin: 8px 0 0; }.full-btn { width: 100%; margin-top: 17px; }.feeling-card { background: #fffaf0; border-radius: 16px; padding: 15px; margin-top: 25px; }.feeling-card span { color: var(--muted); font-size: 12px; display: block; }.feeling-card strong { color: var(--purple); display: block; font-size: 21px; margin: 4px 0 9px; }
.parent-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin: 20px 0 28px; }.parent-stats div { background: #fbf8ff; padding: 14px; border-radius: 15px; }.parent-stats strong { display: block; font: 32px/1 'Anton',sans-serif; color: var(--orange); }.parent-stats span { display: block; color: var(--muted); font-size: 11px; margin-top: 5px; }.development-row { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; }.development-row h3,.next-step h3 { color: var(--purple); font-size: 19px; }.bar-row { display: grid; grid-template-columns: 95px 1fr 38px; gap: 8px; align-items: center; margin: 14px 0; font-size: 12px; }.bar-row b { color: var(--purple); font-size: 11px; }.next-step { background: #fffaf0; padding: 17px; border-radius: 17px; }.next-step p { font-size: 13px; line-height: 1.45; }.compact-list { display: grid; gap: 10px; }.compact-list button { display: grid; grid-template-columns: 48px 1fr auto; align-items: center; gap: 10px; padding: 9px; border-radius: 14px; background: #fbf8ff; text-align: left; }.compact-list img { width: 48px; height: 48px; object-fit: cover; border-radius: 10px; }.compact-list b,.compact-list small { display: block; }.compact-list b { color: var(--purple); font-size: 12px; }.compact-list small { color: var(--muted); font-size: 10px; margin-top: 4px; }.compact-list strong { color: var(--pink); }
.class-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin: 20px 0 30px; }.class-card { display: grid; grid-template-columns: 5px 1fr auto; gap: 11px; align-items: center; text-align: left; background: #fbf8ff; border-radius: 15px; padding: 14px 12px 14px 0; }.class-color { width: 5px; height: 55px; border-radius: 0 5px 5px 0; }.class-color.green { background: var(--green); }.class-color.orange { background: var(--orange); }.class-color.pink { background: var(--pink); }.class-card b,.class-card small,.class-card strong { display: block; }.class-card b { color: var(--purple); font-size: 16px; }.class-card small { color: var(--muted); font-size: 10px; margin: 4px 0; }.class-card strong { color: var(--pink); font-size: 11px; }.class-card>span:last-child { color: var(--purple); }.teacher-summary>h2 { margin-bottom: 6px; }.teacher-summary>p { color: var(--muted); font-size: 13px; }.student-list { display: grid; gap: 8px; margin-top: 16px; }.student-list button { display: grid; grid-template-columns: 40px 1fr auto; gap: 10px; align-items: center; text-align: left; padding: 9px; border-radius: 13px; background: #fbf8ff; }.student-avatar { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; font-size: 11px; font-weight: 900; color: var(--purple); }.student-avatar.green { background: var(--green); }.student-avatar.orange { background: #ffd08e; }.student-avatar.pink { background: #ffc4e2; }.student-list b,.student-list small { display: block; }.student-list b { color: var(--purple); font-size: 13px; }.student-list small { color: var(--muted); font-size: 11px; margin-top: 3px; }.student-list strong { color: var(--pink); font-size: 11px; }.school-number { background: #fbf8ff; border-radius: 16px; padding: 18px; margin: 18px 0; }.school-number strong { display: block; font: 48px/1 'Anton',sans-serif; color: var(--orange); }.school-number span { color: var(--muted); font-size: 12px; }
.ai-context-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }.ai-context-grid .panel h2 { margin-top: 18px; }.ai-context-grid .panel p { min-height: 74px; font-size: 14px; line-height: 1.5; }.student-modal-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 18px 0; }.student-modal-stats div { background: #fbf8ff; padding: 14px; border-radius: 14px; }.student-modal-stats strong,.student-modal-stats span { display: block; }.student-modal-stats strong { color: var(--orange); font: 29px/1 'Anton',sans-serif; }.student-modal-stats span { color: var(--muted); font-size: 11px; margin-top: 4px; }
.ai-float-wrap { position: fixed; right: 24px; bottom: 24px; z-index: 40; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }.ai-fab { width: 62px; height: 62px; border-radius: 50%; background: var(--pink); color: var(--white); display: grid; place-items: center; box-shadow: 0 12px 30px rgba(248,0,145,.3); border: 4px solid var(--white); }.ai-fab span { font-weight: 900; font-size: 16px; line-height: 1; }.ai-fab small { font-size: 8px; margin-top: -15px; font-weight: 900; }.ai-widget { display: none; width: min(340px, calc(100vw - 32px)); background: var(--white); border-radius: 20px; box-shadow: 0 20px 60px rgba(47,24,44,.22); overflow: hidden; border: 1px solid rgba(68,0,157,.1); }.ai-widget.open { display: block; animation: ai-pop .2s ease-out; }.ai-widget-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; background: var(--purple); color: var(--white); }.ai-widget-head strong,.ai-widget-head small { display: block; }.ai-widget-head strong { font-size: 14px; }.ai-widget-head small { color: #e8d9f8; font-size: 10px; margin-top: 3px; }.ai-widget-head button { background: transparent; color: var(--white); font-size: 23px; }.ai-online { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--green); margin-right: 6px; }.ai-widget-body { padding: 16px; background: #fbf8ff; }.ai-mini-bubble { background: var(--white); color: var(--purple); border-radius: 14px 14px 14px 4px; padding: 13px; font-size: 13px; line-height: 1.45; }.ai-mini-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 13px; }.ai-mini-list span { background: #eee3ff; color: var(--purple); border-radius: 999px; padding: 5px 8px; font-size: 9px; font-weight: 900; }.ai-widget-foot { padding: 10px 16px; color: var(--muted); font-size: 10px; border-top: 1px solid #eee8ef; }
@keyframes ai-pop { from { transform: translateY(8px) scale(.98); opacity: .4; } to { transform: translateY(0) scale(1); opacity: 1; } }
@media (max-width: 900px) { .student-layout,.parent-layout,.teacher-layout { grid-template-columns: 1fr; }.ai-context-grid,.class-grid { grid-template-columns: 1fr; }.development-row,.student-columns { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .profile-tab { flex: 1 1 auto; justify-content: center; }.mission-card { grid-template-columns: 1fr; }.mission-art { height: 170px; }.parent-stats { grid-template-columns: 1fr; }.bar-row { grid-template-columns: 80px 1fr 34px; }.ai-float-wrap { right: 15px; bottom: 15px; } }

/* Página inicial como apresentação geral */
.home-hero { min-height: 430px; }
.platform-promise { display: grid; grid-template-columns: 1.1fr .9fr; gap: 28px; align-items: stretch; margin: 18px 0 30px; padding: 28px; background: var(--white); border-radius: var(--radius-lg); box-shadow: 0 7px 22px rgba(68,0,157,.07); }
.platform-promise h2,.home-how h2 { color: var(--purple); font: 31px/.98 'Anton',sans-serif; text-transform: uppercase; margin: 9px 0 10px; }.platform-promise p,.home-how p { color: var(--muted); line-height: 1.55; max-width: 650px; margin: 0; }.promise-points { display: grid; grid-template-columns: 1fr; gap: 9px; }.promise-points div { padding: 14px 16px; border-radius: 14px; background: #fbf8ff; border-left: 5px solid var(--green); }.promise-points div:nth-child(2) { border-color: var(--orange); }.promise-points div:nth-child(3) { border-color: var(--pink); }.promise-points strong,.promise-points span { display: block; }.promise-points strong { color: var(--purple); font-size: 15px; }.promise-points span { color: var(--muted); font-size: 12px; margin-top: 3px; }.home-anchor { scroll-margin-top: 100px; }
.space-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }.space-card { min-height: 310px; display: flex; flex-direction: column; align-items: flex-start; padding: 20px; border-radius: var(--radius-lg); overflow: hidden; position: relative; box-shadow: 0 9px 26px rgba(68,0,157,.10); }.space-card:after { content: ''; position: absolute; width: 130px; height: 130px; border-radius: 50%; right: -48px; top: -45px; background: rgba(255,255,255,.2); }.space-student { background: #e8f7c9; color: var(--purple); }.space-parent { background: #fff0d7; color: var(--purple); }.space-teacher { background: #eee3ff; color: var(--purple); }.space-ai { background: #ffe1f1; color: var(--purple); }.space-card-top { width: 100%; display: flex; justify-content: space-between; align-items: flex-start; position: relative; z-index: 1; }.space-number { font: 24px/1 'Anton',sans-serif; color: var(--purple); opacity: .65; }.space-icon { width: 48px; height: 48px; display: grid; place-items: center; background: var(--white); color: var(--purple); border-radius: 15px; font-weight: 900; }.space-kicker { margin-top: 22px; font-size: 10px; text-transform: uppercase; letter-spacing: .1em; font-weight: 900; opacity: .75; position: relative; z-index: 1; }.space-card h3 { color: var(--purple); font-size: 24px; margin: 7px 0; position: relative; z-index: 1; }.space-card p { color: var(--ink); opacity: .78; font-size: 13px; line-height: 1.45; position: relative; z-index: 1; }.space-card .btn { margin-top: auto; position: relative; z-index: 1; padding: 11px 14px; font-size: 12px; }.home-how { display: grid; grid-template-columns: .8fr 1.2fr; gap: 26px; align-items: center; margin: 34px 0 15px; padding: 25px 28px; background: var(--purple); color: var(--white); border-radius: var(--radius-lg); }.home-how h2 { color: var(--white); }.home-how p { color: #eadffc; }.home-how .eyebrow { color: var(--yellow); }.home-how-steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }.home-how-steps div { padding: 14px; background: rgba(255,255,255,.1); border-radius: 14px; }.home-how-steps span,.home-how-steps strong,.home-how-steps small { display: block; }.home-how-steps span { color: var(--yellow); font: 23px/1 'Anton',sans-serif; }.home-how-steps strong { margin-top: 13px; font-size: 13px; }.home-how-steps small { color: #eadffc; font-size: 11px; line-height: 1.35; margin-top: 5px; }
@media (max-width: 1050px) { .space-grid { grid-template-columns: repeat(2,1fr); }.platform-promise,.home-how { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .space-grid { grid-template-columns: 1fr; }.home-how-steps { grid-template-columns: 1fr; }.platform-promise,.home-how { padding: 21px; }.platform-promise h2,.home-how h2 { font-size: 27px; } }

/* Paleta de prioridade da marca: laranja + verde */
:root { --pink: var(--orange); --yellow: #fff2a8; }
.hero:before { background: var(--green); opacity: .42; }
.mascot-stage { background: linear-gradient(145deg, #fff0d7 0%, var(--orange) 47%, var(--green) 100%); }
.eyebrow:before { background: var(--orange); }
h1 .pink { color: var(--orange); }
.page-head:after { background: var(--green); opacity: .8; }
.btn-pink { background: var(--orange); color: var(--white); }
.journey-pink { background: var(--orange); color: var(--white); }
.space-teacher { background: #e8f7c9; }.space-ai { background: #fff0d7; }
.profile-tab-ai { border-color: var(--orange); color: var(--orange); }.profile-tab-ai span { background: #fff0d7; color: var(--orange); }
.ai-fab { background: var(--orange); box-shadow: 0 12px 30px rgba(247,130,0,.3); }
.game-card .mini-pill.pink { background: #fff0d7; }
.home-how { background: var(--green); color: var(--purple); }.home-how h2 { color: var(--purple); }.home-how p { color: #3e5120; }.home-how .eyebrow { color: var(--purple); }.home-how-steps div { background: rgba(255,255,255,.52); }.home-how-steps span { color: var(--orange); }.home-how-steps small { color: #3e5120; }
.progress span { background: linear-gradient(90deg, var(--green), var(--orange)); }
.status-chip { background: #e8f7c9; }.status-green { background: #e8f7c9; color: #49751d; }
.assessment-hub { margin-top:18px; }.assessment-lead { color:var(--muted); max-width:780px; line-height:1.5; font-size:13px; margin:7px 0 0; }.assessment-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:18px; }.assessment-card { min-height:215px; border:0; border-radius:18px; padding:18px; text-align:left; color:var(--purple); display:flex; flex-direction:column; align-items:flex-start; cursor:pointer; transition:transform .2s,box-shadow .2s; }.assessment-card:hover { transform:translateY(-4px); box-shadow:0 12px 24px rgba(68,0,157,.13); }.assessment-mte { background:#e8f7c9; }.assessment-copsoq { background:#fff0d7; }.assessment-hse { background:#e5f2ff; }.assessment-climate { background:#eee3ff; }.assessment-badge { width:32px; height:32px; display:grid; place-items:center; border-radius:10px; background:#fff; font-size:11px; font-weight:900; margin-bottom:auto; }.assessment-card strong { font:700 19px/1.05 'Baloo 2',sans-serif; margin-top:20px; }.assessment-card small { color:#5d5362; font-size:11px; line-height:1.4; margin:7px 0 15px; }.assessment-card em { font-style:normal; font-size:11px; font-weight:900; }.assessment-modal-note { background:#f5f0fb; border-radius:14px; padding:13px 15px; margin:18px 0; }.assessment-modal-note strong,.assessment-modal-note span { display:block; }.assessment-modal-note strong { color:var(--purple); font-size:12px; }.assessment-modal-note span { color:var(--muted); line-height:1.45; font-size:12px; margin-top:4px; }
@media(max-width:1050px) { .assessment-grid { grid-template-columns:repeat(2,1fr); } }.assessment-grid + * { margin-top:0; }
@media(max-width:560px) { .assessment-grid { grid-template-columns:1fr; }.assessment-card { min-height:170px; } }

/* Correção estrutural da entrada: três acessos principais */
.is-locked { display:none !important; }
.login-screen { min-height:100vh; display:grid; place-items:center; padding:34px 20px; background:radial-gradient(circle at 8% 12%, #ff8fab35 0 12%, transparent 34%),radial-gradient(circle at 91% 18%, #78b7ff42 0 14%, transparent 35%),linear-gradient(135deg,#fffdf8 0%,#fff7f1 52%,#f0f9e9 100%); position:relative; overflow:hidden; }
.login-screen.is-hidden { display:none; }
.login-card { width:min(1060px,100%); position:relative; z-index:2; background:rgba(255,255,255,.88); border:1px solid rgba(50,21,95,.1); border-radius:34px; padding:clamp(28px,5vw,58px); box-shadow:0 28px 90px rgba(50,21,95,.13); backdrop-filter:blur(12px); }
.login-brand { width:min(300px,72vw); height:82px; margin-bottom:22px; display:flex; align-items:center; overflow:hidden; }.login-brand img { width:auto; max-width:100%; height:auto; max-height:100%; object-fit:contain; object-position:left center; display:block; }
.login-card h1 { font-size:clamp(34px,5vw,64px); max-width:780px; margin:12px 0 14px; line-height:.95; color:var(--purple); }.login-copy { max-width:720px; line-height:1.55; color:var(--muted); margin-bottom:30px; }
.access-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }.access-card { border:0; text-align:left; min-height:190px; padding:20px; border-radius:22px; color:var(--purple); display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; cursor:pointer; transition:transform .2s,box-shadow .2s; }.access-card:hover { transform:translateY(-5px); box-shadow:0 14px 28px rgba(50,21,95,.14); }.access-card strong { font:700 24px/1 'Baloo 2','Nunito Sans',sans-serif; margin-bottom:5px; }.access-card small { color:#5c5362; margin-bottom:14px; font-size:12px; }.access-card b { font-size:11px; }.access-icon { width:46px; height:46px; border-radius:14px; display:grid; place-items:center; color:var(--purple); font-size:24px; margin-bottom:auto; }.access-school { background:#e5f2ff; }.access-parent { background:#fff0d7; }.access-student { background:#e8f7c9; }.access-school .access-icon { background:#9ed7ff; }.access-parent .access-icon { background:var(--orange); }.access-student .access-icon { background:var(--green); }
.login-foot { display:flex; justify-content:space-between; gap:15px; margin-top:28px; color:#81778a; font-size:12px; flex-wrap:wrap; }.login-orbit { position:absolute; border-radius:50%; filter:blur(1px); }.orbit-a { width:240px; height:240px; background:#8bd4504d; left:-100px; bottom:-60px; }.orbit-b { width:330px; height:330px; background:#ffa94d40; right:-120px; top:-90px; }
.brand-logo { width:170px; height:48px; display:flex; align-items:center; overflow:hidden; }.brand-logo img { display:block; width:auto; max-width:100%; height:auto; max-height:100%; object-fit:contain; object-position:left center; }.brand { max-width:190px; overflow:hidden; }
@media(max-width:700px) { .access-grid { grid-template-columns:1fr; }.access-card { min-height:135px; }.login-card { padding:26px 20px; }.login-brand { height:62px; }.brand-logo { width:140px; } }

/* Acabamento dos portais e navegação interna */
#app { outline: none; }
.portal-tabs { display:flex; flex-wrap:wrap; gap:10px; margin: -8px 0 22px; }.portal-tab { padding:11px 15px; border-radius:999px; background:var(--white); color:var(--purple); border:1px solid rgba(68,0,157,.12); font-size:12px; font-weight:900; box-shadow:0 4px 12px rgba(68,0,157,.06); }.portal-tab:hover,.portal-tab.active { background:var(--purple); color:var(--white); border-color:var(--purple); }
.panel-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:18px; }.panel-title-row h2 { margin:8px 0 0; }.panel-title-row p { margin:8px 0 0; }.module-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }.module-grid button { min-height:112px; padding:16px; border-radius:17px; background:#fbf8ff; border:1px solid #eee4f5; color:var(--purple); text-align:left; display:flex; flex-direction:column; gap:7px; transition:transform .2s,box-shadow .2s; }.module-grid button:hover { transform:translateY(-3px); box-shadow:0 9px 20px rgba(68,0,157,.1); }.module-grid button span { width:28px; height:28px; border-radius:9px; background:var(--green); display:grid; place-items:center; font-weight:900; }.module-grid button:nth-child(2) span { background:var(--orange); }.module-grid button:nth-child(3) span { background:#b9dcff; }.module-grid button:nth-child(4) span { background:#e9d6ff; }.module-grid button b { font-size:13px; }.module-grid button small { color:var(--muted); line-height:1.3; font-size:11px; }
.school-radar { display:grid; grid-template-columns:220px 1fr; gap:24px; align-items:center; }.radar-ring { width:190px; height:190px; border-radius:50%; display:grid; place-items:center; background:conic-gradient(var(--green) 0 78%,#eee8ef 78% 100%); position:relative; }.radar-ring:after { content:''; position:absolute; inset:18px; background:var(--white); border-radius:50%; }.radar-ring > div { position:relative; z-index:1; text-align:center; }.radar-ring strong { display:block; color:var(--purple); font:42px/1 'Anton',sans-serif; }.radar-ring small { color:var(--muted); font-size:10px; max-width:80px; display:block; margin:auto; }.radar-legend { display:grid; gap:15px; }.radar-legend div { display:grid; grid-template-columns:10px 1fr auto; align-items:center; gap:8px; font-size:12px; }.radar-legend b { color:var(--purple); }.dot { width:9px; height:9px; border-radius:50%; display:block; }.dot-green { background:var(--green); }.dot-blue { background:#75baf0; }.dot-pink { background:var(--orange); }.alert-list { margin:15px 0 20px; padding-left:18px; color:var(--muted); line-height:1.65; font-size:13px; }.alert-list li b { color:var(--purple); margin-right:4px; }.full-btn { width:100%; }.status-chip { padding:6px 10px; border-radius:999px; font-size:10px; font-weight:900; white-space:nowrap; }.status-green { background:#e8f7c9; color:#49751d; }
.brand-logo { width:215px; height:54px; }.brand-logo img { max-height:54px; }
@media(max-width:900px) { .module-grid { grid-template-columns:repeat(2,1fr); }.school-radar { grid-template-columns:1fr; }.radar-ring { margin:auto; } }.assessment-hub { overflow:visible; }
@media(max-width:560px) { .module-grid { grid-template-columns:1fr; }.portal-tabs { gap:7px; }.portal-tab { padding:9px 11px; }.brand-logo { width:160px; height:44px; } }


/* Identidade visual Educar para Florescer / MBA */
:root{
  --forest:#17392d;--forest-2:#234c3c;--sage:#6f9b7b;--mint:#edf5ef;--paper:#f7faf8;--cream:#f2ecdc;--gold:#c6a15b;--ink:#21352b;--muted:#68786d;--white:#fff;--line:rgba(23,57,45,.14);--shadow:0 18px 50px rgba(23,57,45,.12);--radius-xl:28px;--radius-lg:18px;--radius-md:12px;
  --green:var(--sage);--yellow:#e5d59c;--orange:var(--gold);--pink:#9ab6a2;--purple:var(--forest);--cream:#f7faf8;
}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:86px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Manrope',system-ui,sans-serif;font-size:14px;line-height:1.65;-webkit-font-smoothing:antialiased}button{font-family:inherit;color:inherit}button:focus-visible{outline:3px solid rgba(198,161,91,.75);outline-offset:3px}h1,h2,h3,.section-heading h2,.panel h2,.modal h2,.empty-state h2,.login-card h1{font-family:'Cormorant Garamond',Georgia,serif!important;text-transform:none!important;letter-spacing:-.045em!important;font-weight:500!important}.app-shell{background:var(--paper)}.topbar{height:82px;padding:0 clamp(18px,5vw,72px);background:rgba(247,250,248,.94);border-bottom:1px solid var(--line);box-shadow:0 5px 22px rgba(23,57,45,.04)}.brand{max-width:310px;display:flex;align-items:center;gap:10px}.brand-logo{width:42px;height:54px;display:flex;align-items:center;overflow:hidden}.brand-logo img{width:38px;height:50px;object-fit:contain}.brand-copy{display:grid;text-align:left;color:var(--forest);font-family:'Cormorant Garamond',serif;font-size:22px;line-height:.9;font-weight:600;white-space:nowrap}.brand-copy small{margin-top:7px;color:var(--sage);font-family:'Manrope',sans-serif;font-size:8px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.topnav{gap:5px}.topnav button,.footer-links button{padding:10px 12px;color:var(--muted);font-size:11px;font-weight:800}.topnav button:hover,.topnav button.active,.footer-links button:hover{color:var(--forest)}.session-badge{padding:7px 10px;border-radius:99px;background:var(--mint);color:var(--forest);font-size:10px;font-weight:800}.logout-btn{padding:8px 12px;border:1px solid var(--line);border-radius:99px;background:transparent;color:var(--forest);font-size:11px;font-weight:800}.page{max-width:1320px;padding:42px clamp(18px,5vw,72px) 84px}.eyebrow{color:var(--sage);font-size:10px;font-weight:800;letter-spacing:.16em}.eyebrow:before{width:22px;height:1px;background:var(--gold);border-radius:0}.hero{min-height:420px;gap:70px}.hero:before{width:520px;height:520px;top:-200px;right:-190px;background:transparent;border:1px solid rgba(111,155,123,.16);box-shadow:0 0 0 38px rgba(111,155,123,.04),0 0 0 82px rgba(111,155,123,.025)}h1{font-size:clamp(52px,6vw,82px)!important;line-height:.96;color:var(--forest);margin:16px 0 22px;max-width:720px}.lead{font-size:15px;line-height:1.8;color:var(--muted)}h1 .orange,h1 .pink{color:var(--sage)}.hero-actions{gap:14px}.btn{min-height:44px;padding:11px 17px;border-radius:2px;font-size:11px;letter-spacing:.02em;font-weight:800;transition:.2s}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(23,57,45,.14)}.btn-primary{background:var(--forest);color:#fff}.btn-secondary{background:transparent;color:var(--forest);border:1px solid rgba(23,57,45,.3)}.btn-green{background:var(--sage);color:#fff}.btn-pink{background:var(--gold);color:var(--forest)}.hero-art{border-radius:2px 90px 2px 2px;box-shadow:var(--shadow);background:linear-gradient(145deg,var(--mint),#dbe9dd)}.hero-art .art-label{left:18px;bottom:18px;border-radius:0;background:rgba(23,57,45,.84);color:#fff;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.platform-promise,.panel,.card,.support-card,.stat,.how-it-works,.empty-state{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 7px 22px rgba(23,57,45,.05)}.platform-promise{padding:30px}.platform-promise h2,.home-how h2{color:var(--forest);font-size:39px!important;line-height:1!important}.promise-points div{background:var(--mint);border-left:3px solid var(--sage)}.promise-points div:nth-child(2){border-color:var(--gold)}.promise-points div:nth-child(3){border-color:var(--forest)}.promise-points strong,.space-card h3,.journey-card h3,.card h3{color:var(--forest)}.section-heading{margin:46px 0 20px}.section-heading h2{font-size:39px!important;line-height:1.02;color:var(--forest)}.section-heading p,.card p,.space-card p,.journey-card p,.support-card p{color:var(--muted)}.link-btn{color:var(--forest);font-size:11px;font-weight:800}.space-card,.journey-card{border-radius:2px 28px 2px 2px;box-shadow:0 9px 26px rgba(23,57,45,.08)}.space-student{background:#dcebdd}.space-parent{background:#f0ead9}.space-teacher{background:#e4eee6}.space-ai{background:#e8e0ce}.space-icon,.journey-icon{background:#fff;color:var(--forest);border-radius:50%}.space-card h3{font-size:29px}.space-kicker,.journey-kicker{color:var(--forest);letter-spacing:.12em}.journey-green{background:var(--sage);color:#fff}.journey-orange{background:var(--gold);color:var(--forest)}.journey-pink{background:var(--forest-2);color:#fff}.journey-card h3{color:inherit}.page-head{border-radius:2px 42px 2px 2px;background:var(--forest);padding:36px}.page-head:after{background:var(--sage);opacity:.28}.page-head h1{color:#fff;font-size:54px!important}.page-head p{color:#c9dbcd}.dashboard{gap:22px}.panel{padding:24px}.panel h2,.modal h2{font-size:31px!important;color:var(--forest)}.progress{height:10px;background:#e4eee6}.progress span{background:linear-gradient(90deg,var(--sage),var(--gold))}.status-chip{background:var(--mint);color:var(--forest)}.status-green{background:#dcebdd;color:var(--forest)}.profile-tab{background:#fff;color:var(--forest);border-color:var(--line);box-shadow:none}.profile-tab.active,.profile-tab:hover{background:var(--forest);color:#fff;border-color:var(--forest)}.profile-tab span{background:var(--mint);color:var(--forest)}.mission-card,.next-step,.feeling-card{background:var(--cream);border-color:rgba(198,161,91,.3)}.mission-card h3,.development-row h3,.next-step h3,.student-list b,.compact-list b{color:var(--forest)}.tree-symbol{background:var(--sage);color:#fff}.modal-backdrop{background:rgba(23,57,45,.58)}.modal{border-radius:2px 28px 2px 2px;background:var(--paper);border:1px solid var(--line)}.modal-close{background:var(--mint);color:var(--forest)}.modal .modal-accent{background:var(--gold)}.footer{background:var(--forest);padding:26px clamp(18px,5vw,72px)}.footer strong{font-family:'Cormorant Garamond',serif!important;text-transform:none!important;font-size:29px}.footer span{color:#b9cec0}.footer-links button{color:#d9e7dc}.ai-fab{background:var(--forest);border-color:#fff;box-shadow:0 12px 30px rgba(23,57,45,.28)}.ai-widget{border-color:var(--line);border-radius:2px 20px 2px 2px}.ai-widget-head{background:var(--forest)}.ai-widget-head small{color:#c9dbcd}.ai-widget-body{background:var(--mint)}.ai-mini-bubble{color:var(--forest)}.ai-mini-list span{background:#dcebdd;color:var(--forest)}.login-screen{background:radial-gradient(circle at 92% 12%,rgba(198,161,91,.2),transparent 32%),radial-gradient(circle at 8% 88%,rgba(111,155,123,.16),transparent 34%),var(--paper)}.login-card{max-width:1080px;border:1px solid var(--line);border-radius:2px 42px 2px 2px;background:rgba(255,255,255,.9);box-shadow:0 28px 90px rgba(23,57,45,.12)}.login-brand{height:72px;display:flex;align-items:center;gap:12px;color:var(--forest);font-family:'Cormorant Garamond',serif;font-size:26px;line-height:.85;font-weight:600}.login-brand img{width:45px;height:62px;object-fit:contain}.login-brand em{color:var(--sage);font-style:italic}.login-card h1{font-size:clamp(44px,5vw,72px)!important;color:var(--forest)}.login-copy{color:var(--muted)}.access-card{background:#fff;border:1px solid var(--line);border-radius:2px 22px 2px 2px;box-shadow:0 7px 22px rgba(23,57,45,.06)}.access-card:hover{border-color:var(--sage);box-shadow:var(--shadow);transform:translateY(-3px)}.access-card strong{font-family:'Cormorant Garamond',serif;font-size:28px;color:var(--forest)}.access-card small,.access-card b{color:var(--muted)}.access-icon{background:var(--mint);color:var(--forest)}.login-foot{color:var(--muted)}.orbit-a{background:rgba(111,155,123,.12)}.orbit-b{background:rgba(198,161,91,.12)}
@media(max-width:900px){.hero{gap:40px}.topnav{display:none}.brand-copy{font-size:20px}}
@media(max-width:560px){.page{padding-top:26px}.brand-copy{font-size:19px}.brand-logo{width:34px}.brand-logo img{width:32px}.section-heading h2,.platform-promise h2{font-size:34px!important}.page-head h1{font-size:44px!important}.login-card{padding:28px 22px}.login-brand{font-size:24px}}


/* Reforço final de tipografia e presença */
body{font-weight:500;color:#1a3025}.lead,.login-copy,.page p,.card p,.space-card p,.journey-card p,.support-card p,.panel p{font-weight:550}.topnav button,.footer-links button,.btn,.link-btn,.logout-btn,.session-badge,.profile-tab,.access-card b{font-weight:800}.hero h1,.login-card h1{font-weight:600!important;text-shadow:0 .2px 0 currentColor}.section-heading h2,.platform-promise h2,.home-how h2,.page-head h1,.panel h2,.modal h2,.empty-state h2{font-weight:600!important}.space-card h3,.journey-card h3,.card h3,.support-card h3{font-weight:600!important}.brand-copy{font-weight:700}.brand-copy small{font-weight:900}.login-brand{font-weight:700}.login-brand em{font-weight:600}.footer strong{font-weight:600!important}.footer span{font-weight:500}.login-foot{font-weight:600}.access-card strong{font-weight:600}.access-card small{font-weight:600}


/* Correção de overflow visual da marca no destaque e no botão flutuante */
.hero-art,.mascot-stage{height:410px;min-height:410px;overflow:hidden;isolation:isolate}.hero-art img,.mascot-stage img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center bottom;padding:30px 36px 0}.ai-fab{overflow:hidden}.ai-fab img{display:block;width:34px!important;height:34px!important;max-width:34px!important;max-height:34px!important;object-fit:contain}.login-brand img,.brand-logo img{max-width:100%;max-height:100%}
@media(max-width:900px){.hero-art,.mascot-stage{height:350px;min-height:350px}.hero-art img,.mascot-stage img{padding:24px 28px 0}}
@media(max-width:560px){.hero-art,.mascot-stage{height:270px;min-height:270px}.hero-art img,.mascot-stage img{padding:22px 24px 0}}
