/* ACMK Portal do Aluno Premium — V41.35 */
:root{
  --portal-red:#d3131b;
  --portal-red-dark:#900b11;
  --portal-graphite:#171d28;
  --portal-surface:#ffffff;
  --portal-soft:#f4f6f9;
  --portal-border:#e2e7ee;
  --portal-muted:#677286;
  --portal-shadow:0 18px 50px rgba(20,30,48,.09);
  --portal-shadow-soft:0 8px 26px rgba(20,30,48,.07);
}

body{background:linear-gradient(180deg,#f7f8fa 0,#f3f5f8 100%)}
.auth{padding:clamp(16px,2.6vw,30px)}
.auth-shell{width:min(1220px,100%);min-height:min(720px,calc(100svh - 36px));grid-template-columns:minmax(0,1.02fr) minmax(430px,.98fr);border-radius:30px}
.auth-showcase{padding:clamp(34px,4.6vw,58px);justify-content:center;gap:34px}
.auth-showcase h2{font-size:clamp(2.2rem,4.5vw,4rem);max-width:680px;margin:21px 0 14px}
.auth-showcase .lead{max-width:600px}
.auth-benefits{margin-top:30px;gap:10px}
.auth-benefit{padding:13px 14px}
.auth-showcase-footer{margin-top:auto}
.auth-panel{padding:clamp(26px,4vw,48px)}
.auth-panel-inner{width:min(455px,100%)}
.auth-brand-row{margin-bottom:26px}
.auth-heading{margin-bottom:19px}
.tabs{margin-bottom:18px}
.auth-form{gap:13px}
.auth-footer{margin-top:20px}

/* Card de ajuda no login, discreto e sem poluir */
.auth-help-strip{margin:18px 0 0;padding:13px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #ead9dc;border-radius:15px;background:#fffafb}
.auth-help-strip-copy{display:flex;align-items:center;gap:10px;color:#4c5668;font-size:.78rem;line-height:1.45}
.auth-help-strip-copy i{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#fff0f1;color:var(--portal-red);flex:0 0 auto}
.auth-help-strip button{border:0;background:transparent;color:var(--portal-red-dark);font-weight:800;cursor:pointer;white-space:nowrap;padding:8px 4px}

/* Área autenticada */
.top{background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(218,224,233,.9)}
.top-inner{max-width:1360px}
.wrap{max-width:1360px;padding-top:22px}
.hero{border-radius:25px;padding:clamp(26px,3.4vw,38px);box-shadow:0 20px 48px rgba(86,9,14,.16)}
.hero h1{font-size:clamp(1.9rem,3.4vw,3rem)}
.hero-actions{min-width:205px}

.portal-quick-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:14px 0 18px}
.portal-quick-link{display:flex;align-items:center;gap:10px;min-height:58px;padding:12px 14px;border:1px solid var(--portal-border);border-radius:16px;background:#fff;text-decoration:none;box-shadow:0 5px 16px rgba(25,36,55,.04);transition:.18s ease}
.portal-quick-link:hover{transform:translateY(-1px);border-color:#efc6ca;box-shadow:var(--portal-shadow-soft)}
.portal-quick-link i{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#fff0f1;color:var(--portal-red);flex:0 0 auto}
.portal-quick-link span{font-size:.78rem;font-weight:800;color:#344054;line-height:1.25}

.stats{gap:12px;margin-bottom:18px}
.stat{border:1px solid var(--portal-border);box-shadow:0 7px 22px rgba(20,30,48,.05);padding:17px}
.layout{grid-template-columns:minmax(260px,300px) minmax(0,1fr);gap:18px}
.card{border:1px solid var(--portal-border);box-shadow:var(--portal-shadow-soft)}
.student-sidebar{top:88px}
.card-head{background:linear-gradient(180deg,#fff,#fafbfc)}
.student-link{border:1px solid transparent}
.student-link:hover{background:#fafbfc;border-color:#e8ebf0}
.student-link.active{background:linear-gradient(135deg,#fff5f5,#fff);border-color:#f1c7ca;box-shadow:0 8px 18px rgba(211,19,27,.08)}
.content-column{gap:18px}
.profile-card{overflow:hidden}
.student-overview{padding:21px}
.section-block{margin-top:20px}
.section-title{margin-bottom:10px}
.section-title-copy h2{font-size:1.05rem}
.section-title-copy p{font-size:.8rem}
.activity,.payment-card{border:1px solid var(--portal-border);box-shadow:none;background:linear-gradient(180deg,#fff,#fdfdfd)}
.attendance-alerts{margin-top:2px}
.profile-form-card{box-shadow:var(--portal-shadow-soft)}
.profile-editor-summary{padding:18px 19px}
.notify-box{border:1px solid var(--portal-border);box-shadow:var(--portal-shadow-soft)}

/* Assistente IA */
.portal-ai-launcher{position:fixed;right:22px;bottom:max(22px,env(safe-area-inset-bottom));z-index:9998;display:flex;align-items:center;gap:10px;min-height:54px;padding:8px 15px 8px 9px;border:0;border-radius:999px;background:linear-gradient(135deg,var(--portal-red),var(--portal-red-dark));color:#fff;box-shadow:0 18px 42px rgba(140,9,15,.3);cursor:pointer;font-weight:800;transition:.2s ease}
.portal-ai-launcher:hover{transform:translateY(-2px);box-shadow:0 22px 48px rgba(140,9,15,.36)}
.portal-ai-launcher-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.17);font-size:1rem}
.portal-ai-launcher small{display:block;font-size:.62rem;font-weight:700;opacity:.75;text-align:left}
.portal-ai-launcher>div>span{display:block;font-size:.8rem;text-align:left}
.portal-ai-panel{position:fixed;right:22px;bottom:88px;z-index:9999;width:min(390px,calc(100vw - 28px));height:min(610px,calc(100svh - 120px));display:none;grid-template-rows:auto auto minmax(0,1fr) auto;background:#fff;border:1px solid #e0e5ec;border-radius:23px;box-shadow:0 28px 80px rgba(18,27,43,.25);overflow:hidden}
.portal-ai-panel.open{display:grid;animation:portalAiIn .2s ease}
@keyframes portalAiIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.portal-ai-head{display:flex;align-items:center;gap:11px;padding:15px 16px;background:linear-gradient(135deg,#171d28,#4f1115);color:#fff}
.portal-ai-avatar{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#fff,#ffe6e8);color:var(--portal-red);font-size:1.05rem;flex:0 0 auto;box-shadow:0 8px 20px rgba(0,0,0,.16)}
.portal-ai-head-copy{flex:1}
.portal-ai-head-copy strong{display:block;font-size:.92rem}
.portal-ai-head-copy span{display:flex;align-items:center;gap:6px;margin-top:3px;font-size:.7rem;color:rgba(255,255,255,.7)}
.portal-ai-dot{width:7px;height:7px;border-radius:50%;background:#45d483;box-shadow:0 0 0 3px rgba(69,212,131,.15)}
.portal-ai-close{width:36px;height:36px;border:0;border-radius:11px;background:rgba(255,255,255,.1);color:#fff;cursor:pointer;display:grid;place-items:center}
.portal-ai-security{padding:9px 13px;background:#fff8f8;border-bottom:1px solid #f0e0e2;color:#7c4248;font-size:.68rem;line-height:1.4;display:flex;gap:7px;align-items:flex-start}
.portal-ai-security i{color:var(--portal-red);margin-top:2px}
.portal-ai-messages{padding:14px;overflow:auto;background:linear-gradient(180deg,#f7f8fa,#fff);display:flex;flex-direction:column;gap:10px}
.portal-ai-message{max-width:88%;padding:11px 12px;border-radius:15px;font-size:.78rem;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.portal-ai-message.model{align-self:flex-start;background:#fff;border:1px solid #e1e6ed;color:#3d485b;border-bottom-left-radius:6px;box-shadow:0 4px 12px rgba(20,30,48,.04)}
.portal-ai-message.user{align-self:flex-end;background:linear-gradient(135deg,var(--portal-red),var(--portal-red-dark));color:#fff;border-bottom-right-radius:6px}
.portal-ai-message.typing{display:flex;align-items:center;gap:5px;width:max-content}
.portal-ai-message.typing span{width:6px;height:6px;border-radius:50%;background:#9ba4b1;animation:portalDot 1s infinite alternate}
.portal-ai-message.typing span:nth-child(2){animation-delay:.15s}.portal-ai-message.typing span:nth-child(3){animation-delay:.3s}
@keyframes portalDot{to{transform:translateY(-4px);opacity:.55}}
.portal-ai-quick{display:flex;gap:7px;overflow-x:auto;padding:0 14px 10px;background:#fff;scrollbar-width:none}
.portal-ai-quick::-webkit-scrollbar{display:none}
.portal-ai-chip{flex:0 0 auto;border:1px solid #e0e5ec;background:#fff;color:#4d586a;border-radius:999px;padding:8px 10px;font-size:.69rem;font-weight:800;cursor:pointer}
.portal-ai-chip:hover{border-color:#efbfc3;color:var(--portal-red-dark);background:#fff8f8}
.portal-ai-form{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;padding:11px 12px;border-top:1px solid #e2e7ee;background:#fff}
.portal-ai-input{width:100%;min-height:44px;max-height:110px;resize:none;border:1px solid #ccd4df;border-radius:13px;padding:12px 13px;outline:0;font:inherit;font-size:.78rem;line-height:1.4}
.portal-ai-input:focus{border-color:var(--portal-red);box-shadow:0 0 0 4px rgba(211,19,27,.08)}
.portal-ai-send{width:44px;height:44px;border:0;border-radius:13px;background:linear-gradient(135deg,var(--portal-red),var(--portal-red-dark));color:#fff;cursor:pointer;display:grid;place-items:center}
.portal-ai-send:disabled{opacity:.55;cursor:not-allowed}

@media(max-width:1150px){
  .portal-quick-nav{grid-template-columns:repeat(3,minmax(0,1fr))}
  .layout{grid-template-columns:minmax(245px,280px) minmax(0,1fr)}
}
@media(max-width:900px){
  .auth-shell{grid-template-columns:1fr;max-width:760px}
  .auth-showcase{padding:29px 27px;gap:20px}
  .auth-showcase h2{font-size:clamp(2rem,7vw,3.25rem)}
  .auth-benefits{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:22px}
  .auth-benefit{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
  .auth-benefit span{display:none}
  .auth-panel{padding:30px 24px 36px}
  .portal-quick-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .layout{grid-template-columns:1fr}
}
@media(max-width:600px){
  .auth-showcase{padding:22px 17px 19px}
  .auth-showcase h2{font-size:1.82rem}
  .auth-benefits{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .auth-panel{padding:25px 15px 34px}
  .auth-help-strip{align-items:flex-start;flex-direction:column}
  .auth-help-strip button{padding-left:44px}
  .portal-quick-nav{grid-template-columns:1fr 1fr;gap:8px}
  .portal-quick-link{min-height:52px;padding:10px 11px}
  .portal-quick-link i{width:32px;height:32px}
  .portal-quick-link span{font-size:.72rem}
  .portal-ai-launcher{right:13px;bottom:max(13px,env(safe-area-inset-bottom));padding-right:12px}
  .portal-ai-launcher small{display:none}
  .portal-ai-panel{right:10px;bottom:76px;width:calc(100vw - 20px);height:min(620px,calc(100svh - 92px));border-radius:20px}
}
@media(max-width:380px){
  .portal-quick-nav{grid-template-columns:1fr}
  .portal-ai-launcher>div{display:none}
  .portal-ai-launcher{width:54px;padding:8px}
}

/* ACMK Portal do Aluno Premium — V41.32: contraste, IA e responsividade */
/* Proteção contra estilos globais do painel/site que tornavam textos invisíveis. */
.top .brand,
.top .brand b,
.top .brand-copy,
.top .brand-copy b{color:#172033!important}
.top .brand-copy small{color:#677286!important}
.top-actions .btn-light{background:#eef2f6!important;color:#202838!important;border-color:#e1e6ed!important}
.top-actions .btn-white{background:#fff!important;color:#900b11!important}
.top-actions .btn i,.top-actions .btn span{color:inherit!important}

.student-copy{display:block;min-width:0;overflow:hidden}
.student-copy b{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#172033!important;font-weight:800}
.student-copy small{display:block;max-width:100%;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#677286!important}
.card-head h2,.profile-copy h2,.section-title h2,.profile-editor-summary-copy h3,
.activity h3,.payment-card h3,.notify-box h2{color:#172033!important}
.profile-copy p,.section-title p,.profile-editor-summary-copy p{color:#677286!important}
.profile-meta .badge,.activity .badge,.payment-card .badge{color:inherit}
.portal-quick-link{width:100%;appearance:none;-webkit-appearance:none;font:inherit;text-align:left;color:#344054!important;overflow:hidden}
.portal-quick-link span{display:block;min-width:0;overflow-wrap:anywhere;color:#344054!important}
.stat strong{color:#172033!important}
.stat>span:not(.stat-icon){color:#677286!important}
.hero .hero-kicker,.hero h1{color:#fff!important}
.hero p{color:rgba(255,255,255,.82)!important}
.profile-editor-summary{overflow:hidden}
.profile-editor-summary-copy,.profile-editor-summary-copy>div{min-width:0}
.profile-editor-summary-copy h3,.profile-editor-summary-copy p{overflow-wrap:anywhere}

/* Botão da Lia mais elegante e sem invadir o conteúdo. */
.portal-ai-launcher{
  right:clamp(14px,2vw,26px);
  bottom:max(18px,env(safe-area-inset-bottom));
  min-width:174px;
  max-width:min(230px,calc(100vw - 28px));
  min-height:52px;
  padding:7px 15px 7px 8px;
  gap:10px;
  border:1px solid rgba(255,255,255,.22);
  background:linear-gradient(135deg,#e31b23 0%,#b50f17 55%,#85080e 100%);
  box-shadow:0 14px 34px rgba(133,8,14,.28),0 3px 10px rgba(18,27,43,.12);
}
.portal-ai-launcher-icon{width:38px;height:38px;flex:0 0 38px;background:rgba(255,255,255,.18);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.portal-ai-launcher>.portal-ai-launcher-icon{display:grid!important;place-items:center!important;align-items:center!important;justify-content:center!important;padding:0!important;margin:0!important;text-align:center!important;line-height:1!important;overflow:hidden}
.portal-ai-launcher>.portal-ai-launcher-icon i,.portal-ai-launcher>.portal-ai-launcher-icon i::before{display:block!important;width:auto!important;height:auto!important;margin:0!important;padding:0!important;line-height:1!important;position:static!important;transform:none!important;text-align:center!important}
.portal-ai-launcher>div{min-width:0;line-height:1.08}
.portal-ai-launcher small{font-size:.61rem;letter-spacing:.01em;color:rgba(255,255,255,.78);white-space:nowrap}
.portal-ai-launcher>div>span{font-size:.79rem;color:#fff!important;white-space:nowrap}
.portal-ai-launcher:focus-visible{outline:3px solid rgba(227,27,35,.22);outline-offset:4px}
.portal-ai-panel{border-color:#dce2ea;box-shadow:0 26px 78px rgba(18,27,43,.28)}
.portal-ai-head-copy strong{color:#fff!important}
.portal-ai-head-copy span{color:rgba(255,255,255,.74)!important}
.portal-ai-message.model{color:#344054!important}
.portal-ai-message.user{color:#fff!important}

/* Login: nenhum texto sai dos cards. */
.auth-shell,.auth-panel,.auth-showcase,.auth-benefit,.auth-help-strip,.auth-footer{min-width:0}
.auth-showcase h2,.auth-showcase .lead,.auth-benefit b,.auth-benefit span,.auth-mini-card b,.auth-mini-card span{overflow-wrap:anywhere}
.auth-help-strip-copy{min-width:0}
.auth-help-strip-copy>div{min-width:0;overflow-wrap:anywhere}
.auth-help-strip button{max-width:48%;white-space:normal;text-align:right;line-height:1.25}
.auth-footer>*{min-width:0;overflow-wrap:anywhere}
.auth-footer a{white-space:normal}
.tabs button{min-width:0;overflow:hidden}
.tabs button span{overflow:hidden;text-overflow:ellipsis}

@media(max-width:900px){
  .top-inner{width:100%}
  .brand-copy{display:block;min-width:0}
  .brand-copy b,.brand-copy small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .portal-ai-panel{right:14px;bottom:82px;width:min(410px,calc(100vw - 28px));height:min(620px,calc(100svh - 108px))}
}

@media(max-width:600px){
  .top{position:sticky;top:0;z-index:1000}
  .top-inner{min-height:64px;padding:8px 10px;gap:8px}
  .top .brand{gap:8px;max-width:calc(100% - 104px)}
  .top .brand img{width:40px;height:40px;flex:0 0 40px}
  .top .brand-copy b{font-size:.88rem}
  .top .brand-copy small{font-size:.67rem}
  .top-actions{flex:0 0 auto}
  .top-actions .btn{width:40px;min-width:40px;min-height:40px;height:40px;padding:0;border-radius:11px}

  .wrap{padding-inline:10px}
  .hero{padding:21px 17px;border-radius:20px}
  .hero h1{font-size:clamp(1.45rem,7.3vw,1.85rem);line-height:1.08;letter-spacing:-.035em}
  .hero p{font-size:.83rem;line-height:1.52}
  .hero-actions .btn{white-space:normal;line-height:1.25}

  .portal-quick-nav{grid-template-columns:1fr 1fr}
  .portal-quick-link{min-height:54px;padding:9px 10px;gap:8px}
  .portal-quick-link i{width:31px;height:31px;flex-basis:31px}
  .portal-quick-link span{font-size:.7rem;line-height:1.25}

  .student-link{grid-template-columns:46px minmax(0,1fr) 14px;gap:9px;padding:10px}
  .student-link .avatar{width:46px;height:46px}
  .student-copy b{font-size:.82rem}
  .student-copy small{font-size:.68rem}

  .student-overview{grid-template-columns:58px minmax(0,1fr);padding:15px;gap:12px}
  .profile-avatar{width:58px;height:58px;border-radius:17px}
  .profile-copy h2{font-size:1.08rem;line-height:1.16;overflow-wrap:anywhere}
  .profile-copy p{font-size:.76rem;line-height:1.45}
  .profile-meta{display:flex;flex-wrap:wrap}
  .profile-count{font-size:.72rem}

  .profile-editor-summary{flex-direction:column;align-items:stretch;gap:14px;padding:15px}
  .profile-editor-summary-copy{align-items:flex-start}
  .profile-editor-summary-copy h3{font-size:.94rem;line-height:1.3}
  .profile-editor-summary-copy p{font-size:.74rem;line-height:1.45}
  .profile-editor-action{width:100%;align-self:stretch;display:flex;align-items:center;gap:8px}
  .profile-editor-button{flex:1;justify-content:center;min-width:0;white-space:normal;text-align:center;line-height:1.25}
  .profile-editor-action>.fa-chevron-down{flex:0 0 auto}

  .section-title{align-items:flex-start}
  .section-title-copy h2{font-size:1rem;line-height:1.3}
  .section-title-copy p{display:block!important;font-size:.72rem;line-height:1.42}

  .auth-showcase{padding:22px 16px 19px}
  .auth-showcase h2{font-size:clamp(1.65rem,9vw,2rem);line-height:1.06;letter-spacing:-.045em}
  .auth-showcase .lead{font-size:.83rem}
  .auth-benefits{grid-template-columns:1fr 1fr}
  .auth-showcase-footer{display:none}
  .auth-panel{padding:25px 14px 32px}
  .auth-brand-row{align-items:flex-start}
  .auth-security{font-size:.66rem;padding:7px 9px}
  .auth-heading h1{font-size:1.58rem;overflow-wrap:anywhere}
  .tabs button{font-size:.68rem;line-height:1.2;white-space:normal}
  .auth-help-strip{padding:12px;gap:10px}
  .auth-help-strip button{max-width:none;width:100%;padding:9px 10px;text-align:center;border-radius:11px;background:#fff0f1}
  .auth-footer{display:grid;grid-template-columns:1fr;gap:12px;align-items:start}
  .auth-footer a{display:inline-flex;max-width:100%;align-items:center;line-height:1.35}

  .portal-ai-launcher{
    right:12px;
    bottom:max(12px,env(safe-area-inset-bottom));
    min-width:0;
    width:auto;
    max-width:calc(100vw - 24px);
    min-height:48px;
    padding:6px 12px 6px 7px;
    gap:8px;
  }
  .portal-ai-launcher-icon{width:36px;height:36px;flex-basis:36px}
  .portal-ai-launcher small{display:none}
  .portal-ai-launcher>div>span{font-size:0}
  .portal-ai-launcher>div>span::after{content:"Ajuda da Lia";font-size:.75rem;font-weight:800}
  .portal-ai-panel{
    inset:10px 8px max(10px,env(safe-area-inset-bottom)) 8px;
    width:auto;
    height:auto;
    max-height:none;
    border-radius:19px;
  }
  .portal-ai-head{padding:12px 13px}
  .portal-ai-avatar{width:38px;height:38px;border-radius:12px}
  .portal-ai-security{font-size:.64rem}
  .portal-ai-messages{padding:12px}
  .portal-ai-message{max-width:92%;font-size:.76rem}
  .portal-ai-form{padding-bottom:max(11px,env(safe-area-inset-bottom))}
}

@media(max-width:390px){
  .top .brand-copy small{display:none}
  .top .brand-copy b{font-size:.82rem}
  .portal-quick-nav{grid-template-columns:1fr}
  .auth-benefits{grid-template-columns:1fr}
  .auth-benefit:nth-child(n+3){display:none}
  .portal-ai-launcher>div{display:block}
  .portal-ai-launcher{width:auto;padding-right:11px}
  .portal-ai-launcher span{font-size:.72rem}
}

/* V41.32.1 — Centralização precisa do ícone da Lia. */
.portal-ai-launcher-icon{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  line-height:1!important;
  text-align:center!important;
}
.portal-ai-launcher-icon i,
.portal-ai-launcher-icon svg{
  display:block!important;
  margin:0!important;
  padding:0!important;
  line-height:1!important;
  width:1em!important;
  height:1em!important;
  flex:0 0 auto!important;
  text-align:center!important;
  transform:none!important;
}

/* V41.34 — Lia com resposta digitada letra por letra */
.portal-ai-message.model.is-streaming::after{
  content:"";
  display:inline-block;
  width:2px;
  height:1.05em;
  margin-left:3px;
  vertical-align:-.14em;
  border-radius:2px;
  background:#c91520;
  animation:portalAiCaret .72s steps(1,end) infinite;
}
.portal-ai-form.is-busy .portal-ai-send{
  cursor:wait;
  opacity:.72;
}
.portal-ai-message.model.is-streaming{
  cursor:pointer;
}
@keyframes portalAiCaret{
  0%,48%{opacity:1}
  49%,100%{opacity:0}
}
@media (prefers-reduced-motion:reduce){
  .portal-ai-message.model.is-streaming::after{animation:none;opacity:1}
}

/* V41.35 — Lia por voz e login acessível */
.voice-login-callout{margin:0 0 18px}
.voice-login-button{width:100%;display:grid;grid-template-columns:48px minmax(0,1fr) 18px;align-items:center;gap:12px;padding:12px 13px;border:1px solid #ecc9cc;border-radius:16px;background:linear-gradient(135deg,#fff7f8,#fff);color:#172033;text-align:left;cursor:pointer;box-shadow:0 8px 22px rgba(144,11,17,.07);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.voice-login-button:hover{transform:translateY(-1px);border-color:#df9da2;box-shadow:0 12px 28px rgba(144,11,17,.11)}
.voice-login-button:focus-visible{outline:3px solid rgba(211,19,27,.2);outline-offset:3px}
.voice-login-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,var(--portal-red),var(--portal-red-dark));color:#fff;font-size:1.05rem;box-shadow:0 8px 18px rgba(144,11,17,.2)}
.voice-login-copy{display:block;min-width:0}
.voice-login-copy strong{display:block;color:#172033!important;font-size:.88rem;line-height:1.25}
.voice-login-copy small{display:block;margin-top:3px;color:#667085!important;font-size:.69rem;line-height:1.4;overflow-wrap:anywhere}
.voice-login-arrow{color:#a5adba;font-size:.8rem}
.voice-login-callout>p{display:flex;align-items:flex-start;gap:7px;margin:8px 4px 0;color:#727c8d;font-size:.66rem;line-height:1.45}
.voice-login-callout>p i{margin-top:2px;color:var(--portal-red)}

.hero-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.portal-ai-form{grid-template-columns:minmax(0,1fr) 44px 44px}
.portal-ai-mic{width:44px;height:44px;border:1px solid #e3c4c7;border-radius:13px;background:#fff5f6;color:var(--portal-red-dark);cursor:pointer;display:grid;place-items:center;transition:.18s ease}
.portal-ai-mic:hover{background:#ffecee;border-color:#df9da2}
.portal-ai-mic:focus-visible{outline:3px solid rgba(211,19,27,.18);outline-offset:2px}

.portal-voice{position:fixed;inset:0;z-index:10050;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(14,20,31,.66);backdrop-filter:blur(9px)}
.portal-voice.open{display:flex;animation:portalVoiceBackdrop .18s ease}
.portal-voice-dialog{width:min(520px,100%);max-height:min(760px,calc(100svh - 30px));overflow:auto;border:1px solid rgba(255,255,255,.55);border-radius:27px;background:#fff;box-shadow:0 35px 100px rgba(7,13,23,.4);outline:0}
.portal-voice-header{display:grid;grid-template-columns:50px minmax(0,1fr) 40px;align-items:center;gap:12px;padding:16px 17px;background:linear-gradient(135deg,#171d28 0%,#451216 54%,#8e0b12 100%);color:#fff}
.portal-voice-avatar{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#fff,#ffe8ea);color:var(--portal-red);font-size:1.15rem;box-shadow:0 9px 22px rgba(0,0,0,.2)}
.portal-voice-header strong{display:block;color:#fff!important;font-size:1rem;line-height:1.2}
.portal-voice-header span{display:block;margin-top:4px;color:rgba(255,255,255,.73)!important;font-size:.7rem}
.portal-voice-close{width:40px;height:40px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.1);color:#fff;display:grid;place-items:center;cursor:pointer}
.portal-voice-close:hover{background:rgba(255,255,255,.18)}
.portal-voice-body{padding:18px;display:grid;gap:14px}
.portal-voice-state{display:grid;grid-template-columns:68px minmax(0,1fr);align-items:center;gap:15px;padding:15px;border:1px solid #e2e7ee;border-radius:18px;background:linear-gradient(135deg,#fafbfc,#fff)}
.portal-voice-pulse{position:relative;width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:#f1f3f6;color:#697386;font-size:1.2rem;transition:.2s ease}
.portal-voice-state strong{display:block;color:#172033!important;font-size:.95rem;line-height:1.25}
.portal-voice-state p{margin:5px 0 0;color:#687386!important;font-size:.76rem;line-height:1.45;overflow-wrap:anywhere}
.portal-voice-state[data-voice-state="listening"] .portal-voice-pulse{background:linear-gradient(135deg,#ed2630,#ad0d14);color:#fff;box-shadow:0 0 0 0 rgba(227,27,35,.35);animation:portalVoicePulse 1.35s infinite}
.portal-voice-state[data-voice-state="speaking"] .portal-voice-pulse{background:linear-gradient(135deg,#172033,#364258);color:#fff;animation:portalVoiceSpeak .9s ease-in-out infinite alternate}
.portal-voice-state[data-voice-state="thinking"] .portal-voice-pulse{background:#fff1f2;color:var(--portal-red);animation:portalVoiceRotate 1.2s linear infinite}
.portal-voice-state[data-voice-state="error"]{border-color:#efb6ba;background:#fff7f7}
.portal-voice-state[data-voice-state="error"] .portal-voice-pulse{background:#ffe8e9;color:#a60c14}
.portal-voice-transcript{padding:13px 14px;border:1px solid #e4e8ee;border-radius:15px;background:#f7f8fa}
.portal-voice-transcript small{display:block;color:#7c8696!important;font-size:.63rem;text-transform:uppercase;letter-spacing:.07em;font-weight:800}
.portal-voice-transcript p{margin:5px 0 0;color:#2f3a4c!important;font-size:.82rem;line-height:1.5;min-height:1.5em;overflow-wrap:anywhere}
.portal-voice-privacy{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border-radius:14px;background:#fff7f8;color:#70434a;font-size:.68rem;line-height:1.45}
.portal-voice-privacy i{margin-top:2px;color:var(--portal-red)}
.portal-voice-main-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.portal-voice-listen,.portal-voice-stop{min-height:52px;border-radius:15px;font:inherit;font-weight:850;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:9px}
.portal-voice-listen{border:0;background:linear-gradient(135deg,var(--portal-red),var(--portal-red-dark));color:#fff;box-shadow:0 11px 24px rgba(144,11,17,.22)}
.portal-voice-listen.is-listening{background:linear-gradient(135deg,#f03841,#9c0910)}
.portal-voice-listen.is-listening i{animation:portalVoiceMic .7s ease-in-out infinite alternate}
.portal-voice-stop{min-width:112px;border:1px solid #dfe4eb;background:#fff;color:#3d485a}
.portal-voice-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.portal-voice-controls button{min-height:43px;padding:8px;border:1px solid #e0e5ec;border-radius:12px;background:#fff;color:#445065;font:inherit;font-size:.69rem;font-weight:800;cursor:pointer}
.portal-voice-controls button:hover{border-color:#e2b4b8;background:#fff8f8;color:var(--portal-red-dark)}
.portal-voice-examples{padding:12px 13px;border-radius:14px;background:#f3f5f8;color:#596579;font-size:.7rem;line-height:1.45}
.portal-voice-examples strong{display:block;margin-bottom:4px;color:#293447!important}
.portal-voice-examples span{color:#596579!important;overflow-wrap:anywhere}
body.portal-voice-open{overflow:hidden}

@keyframes portalVoiceBackdrop{from{opacity:0}to{opacity:1}}
@keyframes portalVoicePulse{70%{box-shadow:0 0 0 17px rgba(227,27,35,0)}100%{box-shadow:0 0 0 0 rgba(227,27,35,0)}}
@keyframes portalVoiceSpeak{from{transform:scale(.96)}to{transform:scale(1.04)}}
@keyframes portalVoiceRotate{to{transform:rotate(360deg)}}
@keyframes portalVoiceMic{to{transform:scale(1.18)}}

@media(max-width:600px){
  .voice-login-button{grid-template-columns:44px minmax(0,1fr) 14px;padding:11px;gap:10px}
  .voice-login-icon{width:44px;height:44px;border-radius:14px}
  .voice-login-copy strong{font-size:.82rem}
  .voice-login-copy small{font-size:.65rem}
  .hero-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .hero-actions .btn{width:100%;min-width:0;padding-inline:10px;font-size:.72rem}
  .portal-ai-form{grid-template-columns:minmax(0,1fr) 42px 42px;gap:6px}
  .portal-ai-mic,.portal-ai-send{width:42px;height:42px}
  .portal-voice{padding:0;align-items:stretch}
  .portal-voice-dialog{width:100%;height:100svh;max-height:none;border:0;border-radius:0;display:grid;grid-template-rows:auto minmax(0,1fr)}
  .portal-voice-header{grid-template-columns:46px minmax(0,1fr) 40px;padding:12px 13px;padding-top:max(12px,env(safe-area-inset-top))}
  .portal-voice-avatar{width:46px;height:46px;border-radius:14px}
  .portal-voice-body{overflow:auto;padding:14px;padding-bottom:max(18px,env(safe-area-inset-bottom));align-content:start}
  .portal-voice-state{grid-template-columns:58px minmax(0,1fr);gap:12px;padding:13px}
  .portal-voice-pulse{width:58px;height:58px}
  .portal-voice-main-actions{grid-template-columns:1fr}
  .portal-voice-stop{min-width:0}
  .portal-voice-controls{grid-template-columns:1fr 1fr}
  .portal-voice-controls button:first-child{grid-column:1/-1}
}

@media(max-width:380px){
  .hero-actions{grid-template-columns:1fr}
  .portal-ai-form{grid-template-columns:minmax(0,1fr) 40px 40px}
  .portal-ai-mic,.portal-ai-send{width:40px;height:40px}
  .portal-voice-header strong{font-size:.9rem}
  .portal-voice-state{grid-template-columns:50px minmax(0,1fr)}
  .portal-voice-pulse{width:50px;height:50px}
}

@media(prefers-reduced-motion:reduce){
  .portal-voice.open,.portal-voice-pulse,.portal-voice-listen i{animation:none!important}
}


/* V41.37 — ícones centralizados e seletor de voz natural */
.portal-ai-launcher-icon,
.portal-ai-avatar,
.portal-ai-mic,
.portal-ai-send,
.voice-login-icon,
.portal-voice-avatar,
.portal-voice-pulse,
.portal-voice-close{
  display:inline-grid!important;
  place-items:center!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  padding:0!important;
  line-height:1!important;
}
.portal-ai-launcher-icon>i,
.portal-ai-avatar>i,
.portal-ai-mic>i,
.portal-ai-send>i,
.voice-login-icon>i,
.portal-voice-avatar>i,
.portal-voice-pulse>i,
.portal-voice-close>i{
  display:block!important;
  width:1em!important;
  height:1em!important;
  line-height:1!important;
  margin:0!important;
  padding:0!important;
  position:static!important;
  transform:none!important;
  text-align:center!important;
}
.portal-ai-launcher-icon>i::before,
.portal-ai-avatar>i::before,
.portal-ai-mic>i::before,
.portal-ai-send>i::before,
.voice-login-icon>i::before,
.portal-voice-avatar>i::before,
.portal-voice-pulse>i::before,
.portal-voice-close>i::before{
  display:block!important;
  line-height:1!important;
  margin:0!important;
  padding:0!important;
}
.portal-voice-picker{display:grid;grid-template-columns:minmax(0,1fr);gap:7px;padding:12px 13px;border:1px solid #e1e6ed;border-radius:15px;background:#fbfcfd}
.portal-voice-picker label{display:flex;align-items:center;gap:8px;color:#263247;font-size:.75rem;font-weight:850}
.portal-voice-picker label i{color:var(--portal-red)}
.portal-voice-picker select{width:100%;min-height:44px;border:1px solid #cfd7e2;border-radius:12px;background:#fff;color:#273246;padding:0 38px 0 12px;font:inherit;font-size:.76rem;font-weight:700;outline:0;appearance:auto}
.portal-voice-picker select:focus{border-color:var(--portal-red);box-shadow:0 0 0 4px rgba(211,19,27,.08)}
.portal-voice-picker small{color:#6d7788;font-size:.65rem;line-height:1.4;overflow-wrap:anywhere}
@media(max-width:560px){.portal-voice-picker{padding:11px}.portal-voice-picker select{font-size:.72rem}}


/* ACMK V74 — financeiro responsivo */
#portal-mensalidades .payment-card{border:1px solid #e5eaf1;border-radius:20px;padding:18px;background:linear-gradient(180deg,#fff 0%,#fbfcfe 100%);box-shadow:0 12px 34px rgba(31,42,68,.07)}
.payment-debt-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}
.payment-debt-summary>div{min-width:0;padding:12px;border:1px solid #e7ebf1;border-radius:14px;background:#f8fafc;display:grid;gap:5px}
.payment-debt-summary span{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:#718096;font-weight:800}
.payment-debt-summary strong{font-size:1rem;color:#172033;overflow-wrap:anywhere}.payment-debt-summary .is-overdue{background:#fff1f1;border-color:#ffc9c9}.payment-debt-summary .is-overdue strong{color:#c51f2a}
#portal-pagamentos-online>.card{overflow:hidden;border-radius:24px;border:1px solid #e3e8ef;box-shadow:0 18px 50px rgba(31,42,68,.09)}
#portal-pagamentos-online .card-body{padding:clamp(16px,2.4vw,28px)}
.pay-online-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.72fr);gap:22px;align-items:start}
.pay-choice-list{display:grid;gap:10px}.pay-choice{border:1px solid #e2e7ef;border-radius:16px;padding:14px;background:#fff;transition:.18s ease}.pay-choice:has(input:checked){border-color:#d51f29;box-shadow:0 0 0 3px rgba(213,31,41,.09);background:#fffafa}
.pay-controls{position:sticky;top:18px;border:1px solid #e2e7ef;border-radius:19px;padding:16px;background:#fbfcfe;box-shadow:0 10px 28px rgba(31,42,68,.06)}
.pay-controls select{width:100%;min-height:48px;border:1px solid #d9e0e9;border-radius:13px;padding:0 13px;background:#fff;font:inherit}
.pay-methods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.pay-method span{min-height:74px;border-radius:14px;display:grid;place-items:center;align-content:center;gap:7px;text-align:center;padding:10px;font-size:.78rem}.pay-method i{font-size:1.2rem}
.pay-dialog{width:min(760px,calc(100vw - 24px));max-height:min(88vh,820px);overflow:auto;border-radius:24px}.pix-code{width:100%;min-height:110px;resize:none;overflow-wrap:anywhere}
#paymentQr{display:grid;place-items:center;padding:12px}#paymentQr img,#paymentQr canvas{width:min(260px,74vw)!important;height:auto!important;max-width:100%;border-radius:16px}
@media(max-width:900px){.pay-online-grid{grid-template-columns:1fr}.pay-controls{position:static}.pay-methods{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.payment-debt-summary{grid-template-columns:1fr}.pay-methods{grid-template-columns:1fr}.pay-method span{min-height:54px;display:flex;justify-content:flex-start;padding:0 15px}.pay-dialog{width:calc(100vw - 16px);padding:14px;border-radius:18px}.pay-choice{grid-template-columns:auto minmax(0,1fr)!important}.pay-choice>strong:last-child{grid-column:2}.section-title-copy h2{overflow-wrap:anywhere}}


/* ACMK V75 — responsividade integral da Área do Aluno */
:root{
  --portal-shell-max:1600px;
  --portal-shell-gutter:clamp(14px,2.25vw,34px);
}

/* Estrutura fluida: aproveita monitores grandes sem deixar o conteúdo excessivamente largo. */
.shell,
.top,
.top-inner,
.wrap,
.layout,
.content-column,
.section-block,
.card{min-width:0}
.top-inner,
.wrap{
  width:min(var(--portal-shell-max),100%);
  max-width:var(--portal-shell-max);
}
.top-inner{padding-inline:var(--portal-shell-gutter)}
.wrap{
  padding-inline:var(--portal-shell-gutter);
  padding-bottom:max(100px,env(safe-area-inset-bottom));
}
.section-block{scroll-margin-top:94px}
.content-column{width:100%}
img,
video,
canvas{max-width:100%;height:auto}
input,
select,
textarea,
button{max-width:100%}

/* Existem seis atalhos no portal: uma coluna para cada item em desktop amplo. */
.portal-quick-nav{grid-template-columns:repeat(6,minmax(0,1fr))}
.portal-quick-link{min-width:0}
.portal-quick-link span{overflow-wrap:anywhere}

/* Coluna acadêmica estável e conteúdo principal realmente elástico. */
.layout{grid-template-columns:minmax(270px,310px) minmax(0,1fr)}
.grid2{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}

/* Mantém os cartões financeiros com a estrutura e os espaçamentos internos corretos. */
#portal-mensalidades .payment-card{padding:0}
#portal-mensalidades .payment-card-main{padding:18px 18px 15px}
#portal-mensalidades .payment-card .payment-meta{padding:13px 18px 14px}
#portal-pagamentos-online .pay-online-card .card-body{padding:0}
.pay-online-grid{
  grid-template-columns:minmax(0,1.45fr) minmax(310px,390px);
  gap:clamp(18px,1.7vw,26px);
}
.pay-controls{width:100%}
.pay-choice-copy,
.pay-choice-value{min-width:0}
.pay-choice-copy b,
.pay-choice-copy small{overflow-wrap:anywhere}
.table-wrap{max-width:100%}

/* Sidebar rolável apenas quando a altura útil do computador for pequena. */
@media(min-width:1121px){
  .student-sidebar{
    top:88px;
    max-height:calc(100dvh - 106px);
    display:grid;
    grid-template-rows:auto minmax(0,1fr);
    overflow:hidden;
  }
  .student-sidebar>.card-body{
    min-height:0;
    overflow:auto;
    scrollbar-width:thin;
    scrollbar-color:#c9d0da transparent;
  }
}

/* Desktop compacto e notebooks: mais respiro e componentes sem compressão. */
@media(max-width:1320px){
  .portal-quick-nav{grid-template-columns:repeat(3,minmax(0,1fr))}
  .layout{grid-template-columns:minmax(245px,280px) minmax(0,1fr)}
}
@media(max-width:1280px){
  .pay-online-grid{grid-template-columns:1fr}
  .pay-controls{position:static}
}

/* Em 1024 px e notebooks estreitos, o seletor de matrícula passa para cima. */
@media(min-width:701px) and (max-width:1120px){
  .layout{grid-template-columns:1fr}
  .student-sidebar{
    position:static;
    display:block;
    max-height:none;
    overflow:hidden;
  }
  .student-sidebar>.card-body{overflow:visible}
  .student-list{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:10px;
    overflow:visible;
    padding-bottom:0;
  }
  .student-link{min-width:0}
  .add-child{margin-top:12px}
}

/* Notebooks com pouca altura ganham uma versão compacta, sem cortar conteúdo. */
@media(min-width:1121px) and (max-height:800px){
  .top-inner{min-height:64px}
  .wrap{padding-top:16px}
  .student-sidebar{
    top:76px;
    max-height:calc(100dvh - 90px);
  }
  .hero{padding:23px 28px}
  .hero h1{font-size:clamp(1.85rem,2.7vw,2.5rem)}
  .hero-actions{
    min-width:350px;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .portal-quick-link{min-height:52px;padding-block:9px}
  .stats{margin-block:14px}
  .stat{padding:14px 15px}
}

/* Tablet e celular mantêm navegação simples e componentes em uma coluna. */
@media(max-width:900px){
  .wrap{padding-inline:clamp(10px,2.8vw,20px)}
  .portal-quick-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .layout,
  .grid2,
  .pay-online-grid{grid-template-columns:1fr}
  .pay-controls{position:static}
}
@media(max-width:700px){
  .student-list{
    display:flex;
    grid-template-columns:none;
    gap:10px;
    overflow-x:auto;
    padding-bottom:4px;
    scroll-snap-type:x proximity;
  }
  .student-link{
    min-width:min(270px,82vw);
    scroll-snap-align:start;
  }
}
@media(max-width:640px){
  .wrap{padding-bottom:max(94px,env(safe-area-inset-bottom))}
  #portal-mensalidades .payment-card-main{padding:16px 15px 14px}
  #portal-mensalidades .payment-card .payment-meta{padding:12px 15px}
}
@media(max-width:380px){
  .portal-quick-nav{grid-template-columns:1fr}
}
