/*
 * Área do Aluno ACMK — Modelo 1: Resumo inteligente
 * Camada visual carregada depois do tema legado.
 * Mantém formulários, pagamentos, notificações e assistente sem alterar regras.
 */

/* Login no mesmo padrão visual do Modelo 1 */
body.portal-modelo1-login{
  --m1-login-red:#d3131b;
  --m1-login-red-dark:#930b12;
  --m1-login-ink:#172033;
  --m1-login-muted:#667085;
  --m1-login-line:#e1e6ed;
  margin:0;
  overflow-x:hidden;
  background:#f5f7fa;
  color:var(--m1-login-ink);
}

body.portal-modelo1-login .auth{
  min-height:100svh;
  padding:clamp(18px,3vw,34px);
  background:
    radial-gradient(circle at 8% 12%,rgba(211,19,27,.11),transparent 28%),
    radial-gradient(circle at 92% 88%,rgba(23,32,51,.08),transparent 31%),
    linear-gradient(145deg,#f8fafc 0%,#f4f6f9 52%,#fff5f5 100%);
}

body.portal-modelo1-login .auth::before{
  opacity:.32;
  background-image:
    linear-gradient(rgba(88,98,116,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(88,98,116,.055) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:linear-gradient(to bottom,black,transparent 90%);
}

body.portal-modelo1-login .auth-shell{
  width:min(1180px,100%);
  min-height:min(750px,calc(100svh - 44px));
  grid-template-columns:minmax(0,.9fr) minmax(460px,1.1fr);
  overflow:hidden;
  border:1px solid rgba(210,217,227,.95);
  border-radius:28px;
  background:#fff;
  box-shadow:0 30px 85px rgba(23,32,51,.16);
}

body.portal-modelo1-login .auth-showcase{
  position:relative;
  justify-content:space-between;
  gap:30px;
  padding:clamp(36px,4.8vw,58px);
  color:#fff;
  background:
    radial-gradient(circle at 87% 12%,rgba(255,255,255,.1),transparent 31%),
    linear-gradient(145deg,#171d28 0%,#2b171c 49%,#790b11 100%);
}

body.portal-modelo1-login .auth-showcase::before{
  width:390px;
  height:390px;
  right:-190px;
  top:-175px;
  border-width:58px;
  border-color:rgba(255,255,255,.065);
}

body.portal-modelo1-login .auth-showcase::after{
  width:250px;
  height:250px;
  left:-120px;
  bottom:-130px;
  background:rgba(211,19,27,.22);
}

body.portal-modelo1-login .auth-showcase-content,
body.portal-modelo1-login .auth-showcase-footer{
  position:relative;
  z-index:1;
}

body.portal-modelo1-login .auth-showcase-brand{
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  align-items:center;
  gap:12px;
  margin-bottom:38px;
}

body.portal-modelo1-login .auth-showcase-brand img{
  width:54px;
  height:54px;
  object-fit:contain;
  padding:4px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:16px;
  background:#fff;
  box-shadow:0 10px 25px rgba(0,0,0,.18);
}

body.portal-modelo1-login .auth-showcase-brand strong,
body.portal-modelo1-login .auth-showcase-brand small{
  display:block;
}

body.portal-modelo1-login .auth-showcase-brand strong{
  color:#fff;
  font-size:1.02rem;
  line-height:1.25;
}

body.portal-modelo1-login .auth-showcase-brand small{
  margin-top:3px;
  color:rgba(255,255,255,.62);
  font-size:.7rem;
}

body.portal-modelo1-login .auth-kicker{
  padding:7px 11px;
  border-color:rgba(255,255,255,.16);
  background:rgba(255,255,255,.08);
  color:#ffd9db;
  font-size:.68rem;
  letter-spacing:.085em;
}

body.portal-modelo1-login .auth-showcase h2{
  max-width:520px;
  margin:20px 0 13px;
  color:#fff;
  font-size:clamp(2.15rem,4.4vw,3.8rem);
  line-height:1.03;
  letter-spacing:-.055em;
}

body.portal-modelo1-login .auth-showcase .lead{
  max-width:530px;
  color:rgba(255,255,255,.72);
  font-size:.92rem;
  line-height:1.68;
}

body.portal-modelo1-login .auth-benefits{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
  max-width:560px;
  margin-top:28px;
}

body.portal-modelo1-login .auth-benefit{
  min-height:78px;
  grid-template-columns:38px minmax(0,1fr);
  gap:10px;
  padding:12px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:14px;
  background:rgba(255,255,255,.065);
  backdrop-filter:blur(8px);
}

body.portal-modelo1-login .auth-benefit i{
  width:38px;
  height:38px;
  border-radius:11px;
  background:rgba(255,255,255,.1);
  font-size:.9rem;
}

body.portal-modelo1-login .auth-benefit b{
  color:#fff;
  font-size:.76rem;
}

body.portal-modelo1-login .auth-benefit span{
  color:rgba(255,255,255,.56);
  font-size:.65rem;
  line-height:1.4;
}

body.portal-modelo1-login .auth-mini-card{
  max-width:100%;
  padding:13px 14px;
  border-color:rgba(255,255,255,.12);
  border-radius:15px;
  background:rgba(8,10,15,.25);
}

body.portal-modelo1-login .auth-mini-card .mini-icon{
  width:39px;
  height:39px;
  border-radius:12px;
}

body.portal-modelo1-login .auth-mini-card b{
  color:#fff;
  font-size:.76rem;
}

body.portal-modelo1-login .auth-mini-card span{
  color:rgba(255,255,255,.57);
  font-size:.65rem;
}

body.portal-modelo1-login .auth-panel{
  align-items:center;
  padding:clamp(28px,4.3vw,52px);
  overflow:auto;
  background:#fff;
}

body.portal-modelo1-login .auth-panel-inner{
  width:min(500px,100%);
}

body.portal-modelo1-login .auth-brand-row{
  margin-bottom:24px;
}

body.portal-modelo1-login .auth-brand-row .brand img{
  width:52px;
  height:52px;
  border:1px solid #ecd9db;
  border-radius:15px;
  box-shadow:none;
}

body.portal-modelo1-login .auth-brand-row .brand b{
  color:var(--m1-login-ink);
  font-size:1.02rem;
}

body.portal-modelo1-login .auth-brand-row .brand .small{
  margin-top:2px;
  color:var(--m1-login-muted);
  font-size:.68rem;
}

body.portal-modelo1-login .auth-security{
  padding:7px 10px;
  color:#087a45;
  background:#eaf8f1;
  font-size:.65rem;
}

body.portal-modelo1-login .auth-heading{
  margin-bottom:18px;
}

body.portal-modelo1-login .auth-heading h1{
  margin-bottom:8px;
  color:var(--m1-login-ink);
  font-size:clamp(1.6rem,2.6vw,2.15rem);
  line-height:1.1;
  letter-spacing:-.04em;
}

body.portal-modelo1-login .auth-heading p{
  max-width:460px;
  color:var(--m1-login-muted);
  font-size:.8rem;
  line-height:1.55;
}

body.portal-modelo1-login .voice-login-callout{
  margin:0 0 15px;
}

body.portal-modelo1-login .voice-login-button{
  grid-template-columns:43px minmax(0,1fr) 14px;
  gap:10px;
  padding:10px 11px;
  border-color:#ead7d9;
  border-radius:14px;
  background:#fffafa;
  box-shadow:none;
}

body.portal-modelo1-login .voice-login-button:hover{
  border-color:#dda6aa;
  box-shadow:0 8px 22px rgba(145,13,20,.08);
}

body.portal-modelo1-login .voice-login-icon{
  width:43px;
  height:43px;
  border-radius:12px;
}

body.portal-modelo1-login .voice-login-copy strong{
  font-size:.77rem;
}

body.portal-modelo1-login .voice-login-copy small{
  font-size:.63rem;
}

body.portal-modelo1-login .voice-login-callout>p{
  margin-top:6px;
  font-size:.6rem;
}

body.portal-modelo1-login .tabs{
  gap:4px;
  margin-bottom:17px;
  padding:4px;
  border:1px solid #e6eaf0;
  border-radius:14px;
  background:#f1f4f7;
}

body.portal-modelo1-login .tabs button{
  min-height:42px;
  padding:8px 6px;
  border-radius:10px;
  color:#687386;
  font-size:.7rem;
}

body.portal-modelo1-login .tabs button.active{
  color:var(--m1-login-red-dark);
  background:#fff;
  box-shadow:0 4px 12px rgba(23,32,51,.08);
}

body.portal-modelo1-login .auth-form{
  gap:12px;
}

body.portal-modelo1-login .field label{
  margin-bottom:6px;
  color:#3a4658;
  font-size:.72rem;
}

body.portal-modelo1-login .field input,
body.portal-modelo1-login .link-form input{
  min-height:48px;
  padding-top:10px;
  padding-bottom:10px;
  border-color:#cad2dd;
  border-radius:13px;
  color:var(--m1-login-ink);
  font-size:.82rem;
}

body.portal-modelo1-login .field input:focus,
body.portal-modelo1-login .link-form input:focus{
  border-color:var(--m1-login-red);
  box-shadow:0 0 0 4px rgba(211,19,27,.08);
}

body.portal-modelo1-login .auth-hint{
  color:#6d7788;
  font-size:.66rem;
}

body.portal-modelo1-login .auth-panel .btn-red{
  min-height:49px;
  border-radius:13px;
  font-size:.8rem;
  box-shadow:0 9px 22px rgba(168,12,20,.18);
}

body.portal-modelo1-login .auth-create-box{
  padding:13px;
  border-color:#eadcdf;
  border-radius:14px;
  background:#fffafa;
}

body.portal-modelo1-login .auth-create-head{
  margin-bottom:11px;
}

body.portal-modelo1-login .auth-create-head i{
  width:35px;
  height:35px;
  border-radius:10px;
}

body.portal-modelo1-login .auth-create-head h3{
  color:var(--m1-login-ink);
  font-size:.78rem;
}

body.portal-modelo1-login .auth-create-head p{
  font-size:.64rem;
}

body.portal-modelo1-login .auth-help-strip{
  margin-top:15px;
  padding:11px 12px;
  border-color:#eadcdf;
  border-radius:13px;
  background:#fffafb;
}

body.portal-modelo1-login .auth-help-strip-copy{
  font-size:.66rem;
}

body.portal-modelo1-login .auth-help-strip-copy i{
  width:32px;
  height:32px;
  border-radius:10px;
}

body.portal-modelo1-login .auth-help-strip button{
  color:var(--m1-login-red-dark);
  font-size:.67rem;
}

body.portal-modelo1-login .auth-footer{
  margin-top:16px;
  padding-top:15px;
  color:var(--m1-login-muted);
  font-size:.63rem;
}

body.portal-modelo1-login .auth-footer a{
  color:var(--m1-login-red-dark);
}

body.portal-modelo1-login .pane[aria-hidden="true"]{
  display:none;
}

body.portal-modelo1-login .pane[aria-hidden="false"]{
  display:block;
}

@media(max-width:940px){
  body.portal-modelo1-login .auth{
    align-items:start;
  }

  body.portal-modelo1-login .auth-shell{
    max-width:760px;
    min-height:0;
    grid-template-columns:1fr;
  }

  body.portal-modelo1-login .auth-showcase{
    min-height:auto;
    padding:27px;
    gap:20px;
  }

  body.portal-modelo1-login .auth-showcase-brand{
    margin-bottom:23px;
  }

  body.portal-modelo1-login .auth-showcase h2{
    max-width:650px;
    font-size:clamp(1.8rem,6vw,2.7rem);
  }

  body.portal-modelo1-login .auth-showcase .lead{
    max-width:650px;
  }

  body.portal-modelo1-login .auth-benefits{
    grid-template-columns:repeat(4,minmax(0,1fr));
    max-width:none;
    margin-top:20px;
  }

  body.portal-modelo1-login .auth-benefit{
    min-height:72px;
    display:grid;
    grid-template-columns:34px minmax(0,1fr);
  }

  body.portal-modelo1-login .auth-benefit i{
    width:34px;
    height:34px;
  }

  body.portal-modelo1-login .auth-benefit span{
    display:none;
  }

  body.portal-modelo1-login .auth-showcase-footer{
    display:none;
  }

  body.portal-modelo1-login .auth-panel{
    padding:30px 27px 36px;
  }
}

@media(max-width:600px){
  body.portal-modelo1-login .auth{
    display:block;
    min-height:100svh;
    padding:0;
    background:#fff;
  }

  body.portal-modelo1-login .auth::before{
    display:none;
  }

  body.portal-modelo1-login .auth-shell{
    width:100%;
    min-height:100svh;
    border:0;
    border-radius:0;
    box-shadow:none;
  }

  body.portal-modelo1-login .auth-showcase{
    padding:22px 16px 19px;
    border-radius:0 0 22px 22px;
  }

  body.portal-modelo1-login .auth-showcase::before{
    width:260px;
    height:260px;
    right:-150px;
    top:-140px;
    border-width:42px;
  }

  body.portal-modelo1-login .auth-showcase-brand{
    grid-template-columns:45px minmax(0,1fr);
    gap:10px;
    margin-bottom:17px;
  }

  body.portal-modelo1-login .auth-showcase-brand img{
    width:45px;
    height:45px;
    border-radius:13px;
  }

  body.portal-modelo1-login .auth-showcase-brand strong{
    font-size:.86rem;
  }

  body.portal-modelo1-login .auth-showcase-brand small{
    font-size:.61rem;
  }

  body.portal-modelo1-login .auth-kicker{
    padding:6px 9px;
    font-size:.59rem;
  }

  body.portal-modelo1-login .auth-showcase h2{
    max-width:440px;
    margin:14px 0 8px;
    font-size:1.58rem;
    line-height:1.07;
  }

  body.portal-modelo1-login .auth-showcase .lead{
    font-size:.73rem;
    line-height:1.5;
  }

  body.portal-modelo1-login .auth-benefits{
    grid-template-columns:1fr 1fr;
    gap:7px;
    margin-top:15px;
  }

  body.portal-modelo1-login .auth-benefit{
    min-height:53px;
    grid-template-columns:31px minmax(0,1fr);
    gap:8px;
    padding:8px;
    border-radius:11px;
  }

  body.portal-modelo1-login .auth-benefit:nth-child(n+3){
    display:none;
  }

  body.portal-modelo1-login .auth-benefit i{
    width:31px;
    height:31px;
    border-radius:9px;
    font-size:.76rem;
  }

  body.portal-modelo1-login .auth-benefit b{
    font-size:.64rem;
    line-height:1.3;
  }

  body.portal-modelo1-login .auth-panel{
    padding:25px 15px max(34px,env(safe-area-inset-bottom));
    overflow:visible;
  }

  body.portal-modelo1-login .auth-brand-row{
    margin-bottom:20px;
  }

  body.portal-modelo1-login .auth-brand-row .brand img{
    width:46px;
    height:46px;
  }

  body.portal-modelo1-login .auth-heading h1{
    font-size:1.45rem;
  }

  body.portal-modelo1-login .auth-heading p{
    font-size:.72rem;
  }

  body.portal-modelo1-login .tabs button{
    min-height:43px;
    font-size:.65rem;
    white-space:normal;
  }

  body.portal-modelo1-login .auth-form-grid{
    grid-template-columns:1fr;
  }

  body.portal-modelo1-login .auth-help-strip{
    align-items:stretch;
  }

  body.portal-modelo1-login .auth-help-strip button{
    width:100%;
    padding:9px 10px;
    border-radius:10px;
    background:#fff0f1;
    text-align:center;
  }

  body.portal-modelo1-login .auth-footer{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }
}

@media(max-width:370px){
  body.portal-modelo1-login .auth-showcase h2{
    font-size:1.42rem;
  }

  body.portal-modelo1-login .auth-security{
    display:none;
  }

  body.portal-modelo1-login .tabs button{
    gap:4px;
    font-size:.61rem;
  }

  body.portal-modelo1-login .tabs button i{
    display:none;
  }

  body.portal-modelo1-login .voice-login-copy small{
    display:none;
  }
}

body.portal-modelo1{
  --m1-red:#d3131b;
  --m1-red-dark:#9f0d14;
  --m1-red-soft:#fff1f2;
  --m1-ink:#172033;
  --m1-muted:#667085;
  --m1-bg:#f5f7fa;
  --m1-card:#ffffff;
  --m1-line:#e2e7ee;
  --m1-line-strong:#d5dce6;
  --m1-green:#087a45;
  --m1-green-soft:#eaf8f1;
  --m1-danger:#b42318;
  --m1-danger-soft:#fff0ef;
  --m1-shadow:0 14px 38px rgba(20,30,48,.07);
  --m1-shadow-soft:0 7px 22px rgba(20,30,48,.055);
  margin:0;
  background:var(--m1-bg);
  color:var(--m1-ink);
  overflow-x:hidden;
}

body.portal-modelo1 *{
  min-width:0;
  box-sizing:border-box;
}

body.portal-modelo1 .portal-model-one-shell{
  display:grid;
  grid-template-columns:272px minmax(0,1fr);
  min-height:100svh;
  background:var(--m1-bg);
}

body.portal-modelo1 .portal-app-main{
  min-width:0;
}

/* Menu lateral do computador */
body.portal-modelo1 .portal-app-sidebar{
  position:sticky;
  top:0;
  z-index:120;
  height:100dvh;
  display:flex;
  flex-direction:column;
  gap:18px;
  padding:20px 16px 16px;
  overflow:auto;
  background:#fff;
  border-right:1px solid var(--m1-line);
  scrollbar-width:thin;
  scrollbar-color:#cbd2dc transparent;
}

body.portal-modelo1 .portal-sidebar-brand{
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  align-items:center;
  gap:11px;
  padding:0 7px 17px;
  border-bottom:1px solid var(--m1-line);
  color:var(--m1-ink);
  text-decoration:none;
}

body.portal-modelo1 .portal-sidebar-brand img{
  width:48px;
  height:48px;
  object-fit:contain;
  padding:4px;
  border:1px solid #f0dadd;
  border-radius:15px;
  background:#fff7f7;
}

body.portal-modelo1 .portal-sidebar-brand span,
body.portal-modelo1 .portal-sidebar-brand strong,
body.portal-modelo1 .portal-sidebar-brand small{
  display:block;
}

body.portal-modelo1 .portal-sidebar-brand strong{
  color:var(--m1-ink);
  font-size:.96rem;
  line-height:1.25;
}

body.portal-modelo1 .portal-sidebar-brand small{
  margin-top:3px;
  color:var(--m1-muted);
  font-size:.7rem;
}

body.portal-modelo1 .portal-sidebar-nav{
  display:grid;
  gap:4px;
}

body.portal-modelo1 .portal-sidebar-nav a{
  position:relative;
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  align-items:center;
  gap:10px;
  min-height:47px;
  padding:7px 10px;
  border-radius:12px;
  color:#536075;
  text-decoration:none;
  font-size:.78rem;
  font-weight:750;
  transition:background .17s ease,color .17s ease,transform .17s ease;
}

body.portal-modelo1 .portal-sidebar-nav a::before{
  content:"";
  position:absolute;
  left:-16px;
  top:9px;
  bottom:9px;
  width:3px;
  border-radius:0 4px 4px 0;
  background:transparent;
}

body.portal-modelo1 .portal-sidebar-nav a i{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:11px;
  color:#788396;
  background:#f5f7fa;
}

body.portal-modelo1 .portal-sidebar-nav a:hover{
  color:var(--m1-ink);
  background:#f7f8fa;
  transform:translateX(1px);
}

body.portal-modelo1 .portal-sidebar-nav a.active{
  color:var(--m1-red);
  background:var(--m1-red-soft);
}

body.portal-modelo1 .portal-sidebar-nav a.active::before{
  background:var(--m1-red);
}

body.portal-modelo1 .portal-sidebar-nav a.active i{
  color:var(--m1-red);
  background:#fff;
}

body.portal-modelo1 .portal-sidebar-students{
  display:grid;
  align-content:start;
  gap:9px;
  padding-top:4px;
}

body.portal-modelo1 .portal-sidebar-section-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:0 5px;
  color:#7a8495;
  font-size:.65rem;
  font-weight:850;
  letter-spacing:.075em;
  text-transform:uppercase;
}

body.portal-modelo1 .portal-sidebar-count{
  min-width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#f0f3f7;
  color:#596579;
  font-size:.65rem;
}

body.portal-modelo1 .portal-sidebar-student-list{
  display:grid;
  gap:7px;
}

body.portal-modelo1 .portal-app-sidebar .student-link{
  grid-template-columns:42px minmax(0,1fr) 12px;
  gap:9px;
  padding:9px;
  border-color:transparent;
  border-radius:13px;
  box-shadow:none;
}

body.portal-modelo1 .portal-app-sidebar .student-link:hover{
  border-color:var(--m1-line);
  background:#fafbfc;
}

body.portal-modelo1 .portal-app-sidebar .student-link.active{
  border-color:#efc4c7;
  background:#fff6f6;
  box-shadow:inset 3px 0 0 var(--m1-red);
}

body.portal-modelo1 .portal-app-sidebar .avatar{
  width:42px;
  height:42px;
  border-radius:12px;
}

body.portal-modelo1 .portal-app-sidebar .student-copy b{
  font-size:.76rem;
}

body.portal-modelo1 .portal-app-sidebar .student-copy small{
  font-size:.64rem;
}

body.portal-modelo1 .portal-sidebar-empty{
  display:flex;
  align-items:center;
  gap:9px;
  padding:11px;
  color:var(--m1-muted);
  font-size:.72rem;
  border:1px dashed var(--m1-line-strong);
  border-radius:12px;
}

body.portal-modelo1 .portal-sidebar-add{
  margin-top:2px;
  border-radius:13px;
  background:#fafbfc;
}

body.portal-modelo1 .portal-sidebar-add summary{
  padding:11px 12px;
  font-size:.72rem;
}

body.portal-modelo1 .portal-sidebar-add .add-child-content{
  padding:0 12px 12px;
}

body.portal-modelo1 .portal-sidebar-add .link-form input{
  min-height:43px;
  padding:10px 11px;
  font-size:.73rem;
}

body.portal-modelo1 .portal-sidebar-add .btn{
  min-height:43px;
  padding:9px 11px;
  font-size:.72rem;
}

body.portal-modelo1 .portal-sidebar-footer{
  display:grid;
  gap:7px;
  margin-top:auto;
  padding-top:14px;
  border-top:1px solid var(--m1-line);
}

body.portal-modelo1 .portal-sidebar-footer button,
body.portal-modelo1 .portal-sidebar-footer a{
  width:100%;
  min-height:46px;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  padding:7px 9px;
  border:1px solid transparent;
  border-radius:12px;
  background:transparent;
  color:#526075;
  text-decoration:none;
  text-align:left;
  cursor:pointer;
  font:inherit;
  font-size:.73rem;
}

body.portal-modelo1 .portal-sidebar-footer button{
  border-color:#efd9db;
  background:#fff8f8;
  color:var(--m1-red-dark);
}

body.portal-modelo1 .portal-sidebar-footer button>i:first-child,
body.portal-modelo1 .portal-sidebar-footer a>i:first-child{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#fff;
}

body.portal-modelo1 .portal-sidebar-footer strong,
body.portal-modelo1 .portal-sidebar-footer small{
  display:block;
}

body.portal-modelo1 .portal-sidebar-footer small{
  margin-top:2px;
  color:#8a6670;
  font-size:.61rem;
}

body.portal-modelo1 .portal-sidebar-footer a{
  grid-template-columns:34px minmax(0,1fr);
}

/* Cabeçalho */
body.portal-modelo1 .top{
  position:sticky;
  top:0;
  z-index:110;
  color:var(--m1-ink);
  background:rgba(255,255,255,.95);
  border-bottom:1px solid var(--m1-line);
  box-shadow:none;
  backdrop-filter:blur(16px);
}

body.portal-modelo1 .top-inner{
  width:min(1280px,100%);
  min-height:76px;
  margin:0 auto;
  padding:10px clamp(18px,2.7vw,34px);
}

body.portal-modelo1 .portal-top-heading{
  display:grid;
  gap:3px;
}

body.portal-modelo1 .portal-top-heading h1{
  margin:0;
  color:var(--m1-ink);
  font-size:1.18rem;
  line-height:1.2;
  letter-spacing:-.025em;
}

body.portal-modelo1 .portal-top-date{
  color:var(--m1-muted);
  font-size:.69rem;
  text-transform:capitalize;
}

body.portal-modelo1 .top-actions{
  flex-wrap:nowrap;
}

body.portal-modelo1 .top-actions .btn-light{
  min-height:42px;
  padding:9px 12px;
  border:1px solid var(--m1-line)!important;
  border-radius:12px;
  background:#fff!important;
  color:#3d485a!important;
  box-shadow:none;
  font-size:.73rem;
}

body.portal-modelo1 .top-actions .btn-light:hover{
  border-color:#e8b7bb!important;
  background:#fff8f8!important;
  color:var(--m1-red-dark)!important;
}

body.portal-modelo1 .portal-top-logout{
  width:42px;
  padding:0!important;
}

body.portal-modelo1 .portal-top-logout .label{
  display:none;
}

/* Conteúdo e resumo inteligente */
body.portal-modelo1 .wrap{
  width:min(1280px,100%);
  max-width:1280px;
  margin:0 auto;
  padding:clamp(18px,2.7vw,34px);
  padding-bottom:max(70px,env(safe-area-inset-bottom));
}

body.portal-modelo1 .portal-model-one-layout{
  display:block;
  width:100%;
}

body.portal-modelo1 .content-column{
  display:grid;
  gap:22px;
  width:100%;
}

body.portal-modelo1 .portal-smart-home{
  display:grid;
  gap:16px;
  order:0;
  scroll-margin-top:96px;
}

body.portal-modelo1 .portal-priority-card{
  position:relative;
  display:grid;
  grid-template-columns:70px minmax(0,1fr) auto;
  align-items:center;
  gap:17px;
  padding:22px 22px 22px 25px;
  overflow:hidden;
  border:1px solid var(--m1-line);
  border-radius:20px;
  background:#fff;
  box-shadow:var(--m1-shadow);
}

body.portal-modelo1 .portal-priority-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:linear-gradient(180deg,var(--m1-red),var(--m1-red-dark));
}

body.portal-modelo1 .portal-priority-avatar{
  width:70px;
  height:70px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid #e1e6ed;
  border-radius:19px;
  background:#edf1f5;
  color:#7c8798;
  font-size:1.35rem;
  font-weight:850;
}

body.portal-modelo1 .portal-priority-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}

body.portal-modelo1 .portal-priority-copy{
  display:grid;
  gap:6px;
}

body.portal-modelo1 .portal-eyebrow{
  display:flex;
  align-items:center;
  gap:7px;
  color:var(--m1-red);
  font-size:.67rem;
  font-weight:850;
  letter-spacing:.04em;
  text-transform:uppercase;
}

body.portal-modelo1 .portal-priority-copy h2{
  margin:0;
  color:var(--m1-ink);
  font-size:clamp(1.35rem,2.1vw,1.85rem);
  line-height:1.15;
  letter-spacing:-.035em;
  overflow-wrap:anywhere;
}

body.portal-modelo1 .portal-priority-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 16px;
  color:var(--m1-muted);
  font-size:.76rem;
  line-height:1.45;
}

body.portal-modelo1 .portal-priority-meta span{
  display:inline-flex;
  align-items:center;
  gap:6px;
}

body.portal-modelo1 .portal-priority-meta i{
  color:#8994a5;
}

body.portal-modelo1 .portal-priority-action{
  min-width:145px;
}

body.portal-modelo1 .portal-smart-metrics{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  overflow:hidden;
  border:1px solid var(--m1-line);
  border-radius:18px;
  background:#fff;
  box-shadow:var(--m1-shadow-soft);
}

body.portal-modelo1 .portal-smart-metric{
  position:relative;
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 12px;
  align-items:center;
  gap:11px;
  min-height:92px;
  padding:14px 17px;
  border-right:1px solid var(--m1-line);
  color:var(--m1-ink);
  text-decoration:none;
  transition:background .17s ease;
}

body.portal-modelo1 .portal-smart-metric:last-child{
  border-right:0;
}

body.portal-modelo1 .portal-smart-metric:hover{
  background:#fafbfc;
}

body.portal-modelo1 .portal-smart-metric-icon{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:#f2f4f7;
  color:#5f6b7e;
}

body.portal-modelo1 .portal-smart-metric.is-ok .portal-smart-metric-icon{
  color:var(--m1-green);
  background:var(--m1-green-soft);
}

body.portal-modelo1 .portal-smart-metric.is-danger .portal-smart-metric-icon{
  color:var(--m1-danger);
  background:var(--m1-danger-soft);
}

body.portal-modelo1 .portal-smart-metric-copy{
  display:block;
  overflow:hidden;
}

body.portal-modelo1 .portal-smart-metric-copy small,
body.portal-modelo1 .portal-smart-metric-copy strong,
body.portal-modelo1 .portal-smart-metric-copy span{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
}

body.portal-modelo1 .portal-smart-metric-copy small{
  color:#7b8697;
  font-size:.64rem;
  font-weight:800;
  letter-spacing:.045em;
  text-transform:uppercase;
}

body.portal-modelo1 .portal-smart-metric-copy strong{
  margin-top:4px;
  color:var(--m1-ink);
  font-size:.94rem;
  line-height:1.25;
}

body.portal-modelo1 .portal-smart-metric-copy span{
  margin-top:3px;
  color:var(--m1-muted);
  font-size:.66rem;
  line-height:1.35;
  white-space:nowrap;
}

body.portal-modelo1 .portal-smart-metric-arrow{
  color:#a0a8b5;
  font-size:.65rem;
}

body.portal-modelo1 .portal-home-grid{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(275px,.65fr);
  gap:16px;
  align-items:stretch;
}

body.portal-modelo1 .portal-upcoming-card,
body.portal-modelo1 .portal-quick-actions{
  overflow:hidden;
  border-radius:18px;
  box-shadow:var(--m1-shadow-soft);
}

body.portal-modelo1 .portal-card-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:17px 18px;
  border-bottom:1px solid var(--m1-line);
}

body.portal-modelo1 .portal-card-heading span{
  display:block;
  margin-bottom:3px;
  color:var(--m1-red);
  font-size:.62rem;
  font-weight:850;
  letter-spacing:.07em;
  text-transform:uppercase;
}

body.portal-modelo1 .portal-card-heading h2{
  margin:0;
  color:var(--m1-ink);
  font-size:1rem;
  line-height:1.25;
}

body.portal-modelo1 .portal-card-heading>a{
  color:var(--m1-red-dark);
  font-size:.68rem;
  font-weight:800;
  text-decoration:none;
}

body.portal-modelo1 .portal-upcoming-list{
  display:grid;
  padding:0 18px;
}

body.portal-modelo1 .portal-upcoming-row{
  display:grid;
  grid-template-columns:45px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:14px 0;
  border-bottom:1px solid var(--m1-line);
}

body.portal-modelo1 .portal-upcoming-row:last-child{
  border-bottom:0;
}

body.portal-modelo1 .portal-date-tile{
  width:45px;
  min-height:49px;
  display:grid;
  place-items:center;
  align-content:center;
  border:1px solid #edc9cc;
  border-radius:12px;
  background:#fff8f8;
  color:var(--m1-red-dark);
}

body.portal-modelo1 .portal-date-tile strong,
body.portal-modelo1 .portal-date-tile small{
  display:block;
  line-height:1.05;
}

body.portal-modelo1 .portal-date-tile strong{
  font-size:1rem;
}

body.portal-modelo1 .portal-date-tile small{
  margin-top:3px;
  font-size:.56rem;
  font-weight:850;
}

body.portal-modelo1 .portal-upcoming-copy{
  overflow:hidden;
}

body.portal-modelo1 .portal-upcoming-copy strong,
body.portal-modelo1 .portal-upcoming-copy small{
  display:block;
}

body.portal-modelo1 .portal-upcoming-copy strong{
  color:var(--m1-ink);
  font-size:.8rem;
}

body.portal-modelo1 .portal-upcoming-copy small{
  margin-top:4px;
  color:var(--m1-muted);
  font-size:.67rem;
  line-height:1.45;
  overflow-wrap:anywhere;
}

body.portal-modelo1 .portal-upcoming-empty{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:100px;
  color:var(--m1-muted);
}

body.portal-modelo1 .portal-upcoming-empty>i{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#f1f4f7;
  color:#7c8797;
}

body.portal-modelo1 .portal-upcoming-empty strong,
body.portal-modelo1 .portal-upcoming-empty small{
  display:block;
}

body.portal-modelo1 .portal-upcoming-empty strong{
  color:var(--m1-ink);
  font-size:.8rem;
}

body.portal-modelo1 .portal-upcoming-empty small{
  margin-top:3px;
  font-size:.68rem;
}

body.portal-modelo1 .portal-quick-actions{
  display:grid;
  align-content:start;
}

body.portal-modelo1 .portal-quick-actions>a,
body.portal-modelo1 .portal-quick-actions>button{
  display:grid;
  grid-template-columns:38px minmax(0,1fr) 12px;
  align-items:center;
  gap:10px;
  min-height:61px;
  margin:0 16px;
  padding:11px 0;
  border:0;
  border-bottom:1px solid var(--m1-line);
  background:transparent;
  color:var(--m1-ink);
  text-align:left;
  text-decoration:none;
  cursor:pointer;
  font:inherit;
}

body.portal-modelo1 .portal-quick-actions>a:last-child,
body.portal-modelo1 .portal-quick-actions>button:last-child{
  border-bottom:0;
}

body.portal-modelo1 .portal-quick-actions>a>i:first-child,
body.portal-modelo1 .portal-quick-actions>button>i:first-child{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:var(--m1-red-soft);
  color:var(--m1-red);
}

body.portal-modelo1 .portal-quick-actions>a>i:last-child,
body.portal-modelo1 .portal-quick-actions>button>i:last-child{
  color:#a1a9b6;
  font-size:.63rem;
}

body.portal-modelo1 .portal-quick-actions strong,
body.portal-modelo1 .portal-quick-actions small{
  display:block;
}

body.portal-modelo1 .portal-quick-actions strong{
  color:var(--m1-ink);
  font-size:.75rem;
}

body.portal-modelo1 .portal-quick-actions small{
  margin-top:3px;
  color:var(--m1-muted);
  font-size:.62rem;
}

/* Seções detalhadas em uma sequência mais natural */
body.portal-modelo1 .portal-detail-alerts{order:5}
body.portal-modelo1 #portal-horarios{order:10}
body.portal-modelo1 #portal-mensalidades{order:20}
body.portal-modelo1 #portal-pagamentos-online{order:30}
body.portal-modelo1 #portal-historico-financeiro{order:40}
body.portal-modelo1 #portal-frequencia{order:50}
body.portal-modelo1 #meus-dados{order:60}
body.portal-modelo1 #portal-acessos{order:70}
body.portal-modelo1 .portal-financial-notices{order:80}
body.portal-modelo1 #portal-notificacoes{order:90}

body.portal-modelo1 .section-block,
body.portal-modelo1 .attendance-alerts,
body.portal-modelo1 .notify-box{
  margin-top:0;
  scroll-margin-top:96px;
}

body.portal-modelo1 .section-title{
  margin:0 2px 10px;
}

body.portal-modelo1 .section-title .section-icon{
  width:39px;
  height:39px;
  border-radius:12px;
}

body.portal-modelo1 .section-title-copy h2{
  color:var(--m1-ink)!important;
  font-size:1.02rem;
}

body.portal-modelo1 .section-title-copy p{
  color:var(--m1-muted)!important;
  font-size:.75rem;
  line-height:1.4;
}

body.portal-modelo1 .card,
body.portal-modelo1 .notify-box{
  border-color:var(--m1-line);
  border-radius:18px;
  box-shadow:var(--m1-shadow-soft);
}

body.portal-modelo1 .activity,
body.portal-modelo1 .payment-card{
  border-radius:15px;
}

body.portal-modelo1 .activity::before,
body.portal-modelo1 .payment-card::before{
  width:3px;
}

body.portal-modelo1 .monthly-overview{
  border-radius:15px;
  background:#fafbfc;
}

body.portal-modelo1 .profile-editor-summary{
  background:#fff;
}

body.portal-modelo1 .profile-editor-summary:hover{
  background:#fafbfc;
}

body.portal-modelo1 .notify-box{
  background:#fff;
}

body.portal-modelo1 .portal-mobile-students,
body.portal-modelo1 .portal-mobile-bottom-nav{
  display:none;
}

/* Tablet e celular: seletor horizontal e navegação inferior. */
@media(max-width:1100px){
  body.portal-modelo1 .portal-model-one-shell{
    grid-template-columns:minmax(0,1fr);
  }

  body.portal-modelo1 .portal-app-sidebar{
    display:none;
  }

  body.portal-modelo1 .top-inner,
  body.portal-modelo1 .wrap{
    width:100%;
    max-width:100%;
  }

  body.portal-modelo1 .portal-mobile-students{
    display:grid;
    gap:10px;
    margin-bottom:16px;
    padding:14px;
    border:1px solid var(--m1-line);
    border-radius:17px;
    background:#fff;
    box-shadow:var(--m1-shadow-soft);
  }

  body.portal-modelo1 .portal-mobile-students-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:12px;
  }

  body.portal-modelo1 .portal-mobile-students-head span,
  body.portal-modelo1 .portal-mobile-students-head strong{
    display:block;
  }

  body.portal-modelo1 .portal-mobile-students-head span{
    color:var(--m1-muted);
    font-size:.63rem;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
  }

  body.portal-modelo1 .portal-mobile-students-head strong{
    margin-top:3px;
    color:var(--m1-ink);
    font-size:.84rem;
  }

  body.portal-modelo1 .portal-mobile-students-head small{
    color:var(--m1-muted);
    font-size:.62rem;
  }

  body.portal-modelo1 .portal-mobile-student-list{
    display:flex;
    gap:9px;
    max-width:100%;
    padding-bottom:3px;
    overflow-x:auto;
    scroll-snap-type:x proximity;
    scrollbar-width:thin;
  }

  body.portal-modelo1 .portal-mobile-student-list .student-link{
    flex:0 0 min(290px,80vw);
    min-width:0;
    grid-template-columns:45px minmax(0,1fr) 13px;
    gap:10px;
    padding:9px;
    border-radius:13px;
    box-shadow:none;
    scroll-snap-align:start;
  }

  body.portal-modelo1 .portal-mobile-student-list .avatar{
    width:45px;
    height:45px;
    border-radius:12px;
  }

  body.portal-modelo1 .portal-mobile-add{
    margin-top:0;
    border-radius:13px;
  }

  body.portal-modelo1 .portal-mobile-bottom-nav{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:900;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    min-height:72px;
    padding:7px 8px max(7px,env(safe-area-inset-bottom));
    border-top:1px solid var(--m1-line);
    background:rgba(255,255,255,.97);
    box-shadow:0 -9px 30px rgba(20,30,48,.08);
    backdrop-filter:blur(16px);
  }

  body.portal-modelo1 .portal-mobile-bottom-nav a{
    display:grid;
    justify-items:center;
    align-content:center;
    gap:5px;
    min-width:0;
    min-height:52px;
    border-radius:12px;
    color:#7a8495;
    text-decoration:none;
    font-size:.61rem;
    font-weight:800;
  }

  body.portal-modelo1 .portal-mobile-bottom-nav a i{
    display:grid;
    place-items:center;
    width:29px;
    height:25px;
    font-size:.9rem;
  }

  body.portal-modelo1 .portal-mobile-bottom-nav a.active{
    color:var(--m1-red);
    background:#fff5f5;
  }

  body.portal-modelo1 .wrap{
    padding-bottom:calc(108px + env(safe-area-inset-bottom));
  }

  body.portal-modelo1 .portal-ai-launcher{
    right:13px!important;
    bottom:calc(82px + env(safe-area-inset-bottom))!important;
  }

  body.portal-modelo1 .portal-ai-panel{
    bottom:calc(145px + env(safe-area-inset-bottom));
  }
}

@media(max-width:900px){
  body.portal-modelo1 .portal-smart-metrics{
    grid-template-columns:1fr 1fr;
  }

  body.portal-modelo1 .portal-smart-metric:nth-child(2){
    border-right:0;
  }

  body.portal-modelo1 .portal-smart-metric:last-child{
    grid-column:1/-1;
    border-top:1px solid var(--m1-line);
  }

  body.portal-modelo1 .portal-home-grid{
    grid-template-columns:1fr;
  }

  body.portal-modelo1 .portal-quick-actions{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  body.portal-modelo1 .portal-quick-actions .portal-card-heading{
    grid-column:1/-1;
  }

  body.portal-modelo1 .portal-quick-actions>a,
  body.portal-modelo1 .portal-quick-actions>button{
    grid-template-columns:38px minmax(0,1fr);
    margin:0;
    padding:12px 15px;
    border-right:1px solid var(--m1-line);
    border-bottom:0;
  }

  body.portal-modelo1 .portal-quick-actions>a:last-child,
  body.portal-modelo1 .portal-quick-actions>button:last-child{
    border-right:0;
  }

  body.portal-modelo1 .portal-quick-actions>a>i:last-child,
  body.portal-modelo1 .portal-quick-actions>button>i:last-child{
    display:none;
  }
}

@media(max-width:700px){
  body.portal-modelo1 .top-inner{
    min-height:66px;
    padding:9px 12px;
  }

  body.portal-modelo1 .portal-top-heading h1{
    font-size:1rem;
  }

  body.portal-modelo1 .portal-top-date{
    font-size:.6rem;
  }

  body.portal-modelo1 .top-actions{
    gap:6px;
  }

  body.portal-modelo1 .top-actions .btn-light{
    width:40px;
    min-width:40px;
    min-height:40px;
    padding:0!important;
    border-radius:12px;
  }

  body.portal-modelo1 .top-actions .label{
    display:none;
  }

  body.portal-modelo1 .wrap{
    padding:14px 11px calc(106px + env(safe-area-inset-bottom));
  }

  body.portal-modelo1 .content-column{
    gap:18px;
  }

  body.portal-modelo1 .portal-priority-card{
    grid-template-columns:58px minmax(0,1fr);
    gap:13px;
    padding:17px 15px 17px 19px;
    border-radius:17px;
  }

  body.portal-modelo1 .portal-priority-avatar{
    width:58px;
    height:58px;
    border-radius:16px;
  }

  body.portal-modelo1 .portal-eyebrow{
    font-size:.58rem;
    line-height:1.35;
  }

  body.portal-modelo1 .portal-priority-copy h2{
    font-size:1.18rem;
  }

  body.portal-modelo1 .portal-priority-meta{
    display:grid;
    gap:5px;
    font-size:.68rem;
  }

  body.portal-modelo1 .portal-priority-action{
    grid-column:1/-1;
    width:100%;
    min-height:45px;
  }

  body.portal-modelo1 .portal-smart-metrics{
    grid-template-columns:1fr;
    border-radius:16px;
  }

  body.portal-modelo1 .portal-smart-metric,
  body.portal-modelo1 .portal-smart-metric:nth-child(2),
  body.portal-modelo1 .portal-smart-metric:last-child{
    grid-column:auto;
    min-height:76px;
    padding:11px 13px;
    border-right:0;
    border-top:0;
    border-bottom:1px solid var(--m1-line);
  }

  body.portal-modelo1 .portal-smart-metric:last-child{
    border-bottom:0;
  }

  body.portal-modelo1 .portal-card-heading{
    padding:15px;
  }

  body.portal-modelo1 .portal-card-heading>a{
    font-size:.62rem;
  }

  body.portal-modelo1 .portal-upcoming-list{
    padding:0 15px;
  }

  body.portal-modelo1 .portal-upcoming-row{
    grid-template-columns:42px minmax(0,1fr);
    gap:10px;
  }

  body.portal-modelo1 .portal-upcoming-row>.badge{
    grid-column:2;
    justify-self:start;
  }

  body.portal-modelo1 .portal-date-tile{
    width:42px;
    min-height:46px;
  }

  body.portal-modelo1 .portal-quick-actions{
    grid-template-columns:1fr;
  }

  body.portal-modelo1 .portal-quick-actions .portal-card-heading{
    grid-column:auto;
  }

  body.portal-modelo1 .portal-quick-actions>a,
  body.portal-modelo1 .portal-quick-actions>button,
  body.portal-modelo1 .portal-quick-actions>a:last-child,
  body.portal-modelo1 .portal-quick-actions>button:last-child{
    margin:0 14px;
    padding:11px 0;
    border-right:0;
    border-bottom:1px solid var(--m1-line);
  }

  body.portal-modelo1 .portal-quick-actions>a:last-child,
  body.portal-modelo1 .portal-quick-actions>button:last-child{
    border-bottom:0;
  }

  body.portal-modelo1 .section-title{
    align-items:flex-start;
  }

  body.portal-modelo1 .section-title .section-icon{
    width:37px;
    height:37px;
  }

  body.portal-modelo1 .section-title-copy h2{
    font-size:.95rem;
  }

  body.portal-modelo1 .section-title-copy p{
    font-size:.68rem;
  }

  body.portal-modelo1 .card,
  body.portal-modelo1 .notify-box{
    border-radius:16px;
  }

  body.portal-modelo1 .grid2{
    grid-template-columns:1fr;
  }

  body.portal-modelo1 .portal-ai-panel{
    inset:8px 7px calc(82px + env(safe-area-inset-bottom)) 7px!important;
    width:auto!important;
    height:auto!important;
    max-height:none!important;
  }
}

@media(max-width:420px){
  body.portal-modelo1 .portal-top-date{
    display:none;
  }

  body.portal-modelo1 .portal-top-heading h1{
    max-width:132px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  body.portal-modelo1 .portal-mobile-students{
    padding:12px;
    border-radius:15px;
  }

  body.portal-modelo1 .portal-mobile-students-head small{
    display:none;
  }

  body.portal-modelo1 .portal-mobile-student-list .student-link{
    flex-basis:84vw;
  }

  body.portal-modelo1 .portal-priority-card{
    grid-template-columns:52px minmax(0,1fr);
  }

  body.portal-modelo1 .portal-priority-avatar{
    width:52px;
    height:52px;
    border-radius:14px;
  }

  body.portal-modelo1 .portal-priority-copy h2{
    font-size:1.08rem;
  }

  body.portal-modelo1 .portal-smart-metric{
    grid-template-columns:40px minmax(0,1fr) 10px;
  }

  body.portal-modelo1 .portal-smart-metric-icon{
    width:40px;
    height:40px;
  }

  body.portal-modelo1 .portal-card-heading{
    align-items:flex-start;
  }

  body.portal-modelo1 .portal-card-heading>a{
    max-width:92px;
    text-align:right;
    line-height:1.35;
  }

  body.portal-modelo1 .portal-mobile-bottom-nav{
    min-height:68px;
    padding-inline:5px;
  }

  body.portal-modelo1 .portal-mobile-bottom-nav a{
    font-size:.56rem;
  }

  body.portal-modelo1 .portal-ai-launcher{
    min-width:50px!important;
    width:50px!important;
    height:50px!important;
    padding:6px!important;
  }

  body.portal-modelo1 .portal-ai-launcher>div{
    display:none!important;
  }
}

@media(prefers-reduced-motion:reduce){
  body.portal-modelo1 *,
  body.portal-modelo1 *::before,
  body.portal-modelo1 *::after{
    scroll-behavior:auto!important;
    transition:none!important;
  }
}

/* ACMK V94.6 — checkout móvel sem sobreposição */
@media(max-width:600px){
  body.portal-modelo1{
    scroll-padding-bottom:calc(150px + env(safe-area-inset-bottom));
  }

  body.portal-modelo1 .wrap{
    padding-bottom:calc(150px + env(safe-area-inset-bottom))!important;
  }

  body.portal-modelo1 #portal-pagamentos-online{
    padding-bottom:18px;
    scroll-margin-bottom:calc(150px + env(safe-area-inset-bottom));
  }

  body.portal-modelo1 #portal-pagamentos-online .pay-online-grid{
    padding:12px!important;
    gap:12px!important;
  }

  body.portal-modelo1 #portal-pagamentos-online .pay-choice{
    display:grid!important;
    grid-template-columns:20px 40px minmax(0,1fr)!important;
    grid-template-areas:
      "check icon copy"
      ". . value";
    column-gap:9px!important;
    row-gap:4px!important;
    align-items:center!important;
    padding:12px!important;
  }

  body.portal-modelo1 #portal-pagamentos-online .pay-choice>input{
    grid-area:check;
    align-self:start;
    margin-top:10px;
  }

  body.portal-modelo1 #portal-pagamentos-online .pay-choice-icon{
    grid-area:icon;
    width:40px!important;
    height:40px!important;
    border-radius:12px!important;
  }

  body.portal-modelo1 #portal-pagamentos-online .pay-choice-copy{
    grid-area:copy;
    width:100%;
  }

  body.portal-modelo1 #portal-pagamentos-online .pay-choice-copy b{
    font-size:.82rem;
    line-height:1.3;
  }

  body.portal-modelo1 #portal-pagamentos-online .pay-choice-copy small{
    margin-top:3px;
    font-size:.66rem;
    line-height:1.4;
  }

  body.portal-modelo1 #portal-pagamentos-online .pay-choice-value{
    grid-area:value!important;
    display:flex;
    align-items:baseline;
    gap:5px;
    width:100%;
    margin-top:2px;
    text-align:left!important;
    white-space:normal!important;
  }

  body.portal-modelo1 #portal-pagamentos-online .pay-choice-value small,
  body.portal-modelo1 #portal-pagamentos-online .pay-choice-value strong{
    display:inline!important;
    margin:0!important;
  }

  body.portal-modelo1 #portal-pagamentos-online .pay-controls{
    gap:12px;
    padding:15px 14px calc(18px + env(safe-area-inset-bottom))!important;
    margin-bottom:14px;
  }

  body.portal-modelo1 #portal-pagamentos-online .pay-method span{
    min-height:58px!important;
  }

  body.portal-modelo1 #portal-pagamentos-online .pay-submit{
    min-height:52px;
    margin-top:2px;
  }

  body.portal-modelo1 .portal-ai-launcher{
    right:12px!important;
    bottom:calc(82px + env(safe-area-inset-bottom))!important;
    min-width:50px!important;
    width:50px!important;
    height:50px!important;
    padding:6px!important;
    border-radius:16px!important;
  }

  body.portal-modelo1 .portal-ai-launcher>div{
    display:none!important;
  }
}

@media(max-width:360px){
  body.portal-modelo1 #portal-pagamentos-online .pay-choice{
    grid-template-columns:20px minmax(0,1fr)!important;
    grid-template-areas:
      "check copy"
      ". value";
  }

  body.portal-modelo1 #portal-pagamentos-online .pay-choice-icon{
    display:none!important;
  }
}


/* ACMK V94.9 — cabeçalho protegido pela área segura do iPhone */
:root{
  --portal-safe-top:env(safe-area-inset-top,0px);
  --portal-safe-right:env(safe-area-inset-right,0px);
  --portal-safe-bottom:env(safe-area-inset-bottom,0px);
  --portal-safe-left:env(safe-area-inset-left,0px);
}

html{
  min-height:100%;
  background:#fff;
}

body.portal-modelo1{
  min-height:100dvh;
  scroll-padding-top:calc(92px + var(--portal-safe-top));
}

/* O fundo ocupa a área da bateria/notch, mas o conteúdo começa abaixo dela. */
body.portal-modelo1 .top{
  top:0;
  padding-top:var(--portal-safe-top);
  background:rgba(255,255,255,.98);
  isolation:isolate;
}

body.portal-modelo1 .top-inner{
  padding-left:calc(clamp(18px,2.7vw,34px) + var(--portal-safe-left));
  padding-right:calc(clamp(18px,2.7vw,34px) + var(--portal-safe-right));
}

body.portal-modelo1 .section-block,
body.portal-modelo1 .attendance-alerts,
body.portal-modelo1 .notify-box,
body.portal-modelo1 [id^="portal-"],
body.portal-modelo1 #meus-dados{
  scroll-margin-top:calc(100px + var(--portal-safe-top));
}

/* Também protege a tela de login quando aberta como aplicativo no iPhone. */
body.portal-modelo1-login .auth{
  padding-top:max(clamp(18px,3vw,34px),calc(12px + var(--portal-safe-top)));
  padding-right:max(clamp(18px,3vw,34px),calc(12px + var(--portal-safe-right)));
  padding-bottom:max(clamp(18px,3vw,34px),calc(12px + var(--portal-safe-bottom)));
  padding-left:max(clamp(18px,3vw,34px),calc(12px + var(--portal-safe-left)));
}

@media(max-width:700px){
  body.portal-modelo1{
    scroll-padding-top:calc(82px + var(--portal-safe-top));
  }

  body.portal-modelo1 .top-inner{
    min-height:66px;
    padding-top:9px;
    padding-bottom:9px;
    padding-left:calc(12px + var(--portal-safe-left));
    padding-right:calc(12px + var(--portal-safe-right));
  }

  body.portal-modelo1 .section-block,
  body.portal-modelo1 .attendance-alerts,
  body.portal-modelo1 .notify-box,
  body.portal-modelo1 [id^="portal-"],
  body.portal-modelo1 #meus-dados{
    scroll-margin-top:calc(90px + var(--portal-safe-top));
  }
}

@media(max-width:390px){
  body.portal-modelo1 .top-inner{
    gap:6px;
  }

  body.portal-modelo1 .top-actions{
    gap:5px;
  }

  body.portal-modelo1 .top-actions .btn-light{
    width:38px;
    min-width:38px;
    min-height:38px;
    height:38px;
  }

  body.portal-modelo1 .portal-top-heading h1{
    max-width:124px;
  }
}

@media(max-width:340px){
  body.portal-modelo1 #installApp{
    display:none!important;
  }

  body.portal-modelo1 .portal-top-heading h1{
    max-width:108px;
    font-size:.92rem;
  }
}

/* ACMK V94.11 — chat da Lia protegido no iPhone e ajustado ao teclado */
body.portal-ai-open{
  overflow:hidden!important;
  overscroll-behavior:none;
}

@media(max-width:700px){
  body.portal-modelo1 .portal-ai-panel,
  body.portal-modelo1-login .portal-ai-panel{
    top:calc(var(--portal-ai-vv-top,0px) + var(--portal-safe-top,env(safe-area-inset-top,0px)) + 8px)!important;
    right:calc(var(--portal-safe-right,env(safe-area-inset-right,0px)) + 7px)!important;
    bottom:auto!important;
    left:calc(var(--portal-safe-left,env(safe-area-inset-left,0px)) + 7px)!important;
    width:auto!important;
    height:calc(var(--portal-ai-vv-height,100dvh) - var(--portal-safe-top,env(safe-area-inset-top,0px)) - var(--portal-safe-bottom,env(safe-area-inset-bottom,0px)) - 16px)!important;
    max-height:none!important;
    min-height:280px;
    border-radius:18px!important;
    contain:layout paint;
  }

  body.portal-modelo1 .portal-ai-panel .portal-ai-head,
  body.portal-modelo1-login .portal-ai-panel .portal-ai-head{
    min-height:62px;
    padding-top:12px!important;
    padding-right:13px!important;
    padding-bottom:12px!important;
    padding-left:13px!important;
    flex:0 0 auto;
  }

  body.portal-modelo1 .portal-ai-panel .portal-ai-close,
  body.portal-modelo1-login .portal-ai-panel .portal-ai-close{
    width:40px;
    height:40px;
    flex:0 0 40px;
  }

  body.portal-modelo1 .portal-ai-panel .portal-ai-messages,
  body.portal-modelo1-login .portal-ai-panel .portal-ai-messages{
    min-height:0;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    scroll-padding-bottom:14px;
  }

  body.portal-modelo1 .portal-ai-panel .portal-ai-form,
  body.portal-modelo1-login .portal-ai-panel .portal-ai-form{
    padding-bottom:max(11px,var(--portal-safe-bottom,env(safe-area-inset-bottom,0px)))!important;
  }
}

@media(max-width:380px){
  body.portal-modelo1 .portal-ai-panel,
  body.portal-modelo1-login .portal-ai-panel{
    top:calc(var(--portal-ai-vv-top,0px) + var(--portal-safe-top,env(safe-area-inset-top,0px)) + 5px)!important;
    right:calc(var(--portal-safe-right,env(safe-area-inset-right,0px)) + 4px)!important;
    left:calc(var(--portal-safe-left,env(safe-area-inset-left,0px)) + 4px)!important;
    height:calc(var(--portal-ai-vv-height,100dvh) - var(--portal-safe-top,env(safe-area-inset-top,0px)) - var(--portal-safe-bottom,env(safe-area-inset-bottom,0px)) - 10px)!important;
    border-radius:15px!important;
  }
}


/* Documento assinado na Área do Aluno */
body.portal-modelo1 .portal-term-section{scroll-margin-top:104px}
body.portal-modelo1 .portal-term-card{overflow:hidden;border:1px solid #e3e8ef;box-shadow:0 18px 48px rgba(29,42,68,.08)}
body.portal-modelo1 .portal-term-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;padding:22px 24px;background:linear-gradient(135deg,#fff 0%,#fff8f8 100%);border-bottom:1px solid #e8ebf0}
body.portal-modelo1 .portal-term-main-icon{width:66px;height:66px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(135deg,#d3131b,#8f0910);color:#fff;font-size:1.65rem;box-shadow:0 12px 28px rgba(211,19,27,.24)}
body.portal-modelo1 .portal-term-summary-copy{display:grid;gap:7px}
body.portal-modelo1 .portal-term-kicker{display:inline-flex;align-items:center;gap:7px;width:max-content;max-width:100%;font-size:.75rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:#087a45}
body.portal-modelo1 .portal-term-summary h3{margin:0;font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.2;color:#172033}
body.portal-modelo1 .portal-term-summary p{margin:0;color:#647087;font-size:.9rem;line-height:1.55}
body.portal-modelo1 .portal-term-tags{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:3px}
body.portal-modelo1 .portal-term-tags span{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:6px 10px;border-radius:999px;background:#f0f3f7;color:#465168;font-size:.76rem;font-weight:800}
body.portal-modelo1 .portal-term-tags span.hydro{background:#eaf7ff;color:#16658c}
body.portal-modelo1 .portal-term-actions{display:flex;align-items:stretch;gap:9px;flex-wrap:wrap;justify-content:flex-end}
body.portal-modelo1 .portal-term-actions .btn{min-height:43px;padding:10px 14px;font-size:.84rem}
body.portal-modelo1 .portal-term-detail{display:flex;gap:12px;align-items:center;padding:15px 24px;background:#fbfcfd;border-bottom:1px solid #e8ebf0;color:#4d586d}
body.portal-modelo1 .portal-term-detail>i{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#fff0f1;color:#b20f17}
body.portal-modelo1 .portal-term-detail span{display:grid;gap:2px}
body.portal-modelo1 .portal-term-detail small{color:#7b8496;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
body.portal-modelo1 .portal-term-detail strong{font-size:.86rem;line-height:1.45;color:#2f394c}
body.portal-modelo1 .portal-term-preview{position:relative;min-height:620px;background:#e9edf2;padding:18px}
body.portal-modelo1 .portal-term-preview iframe{display:block;width:100%;height:620px;border:0;border-radius:14px;background:#fff;box-shadow:0 8px 28px rgba(28,39,61,.12)}
body.portal-modelo1 .portal-term-mobile-message{display:none}
body.portal-modelo1 .portal-term-security{display:flex;align-items:flex-start;gap:10px;padding:14px 22px;background:#f8fafc;border-top:1px solid #e4e8ee;color:#667085;font-size:.78rem;line-height:1.5}
body.portal-modelo1 .portal-term-security i{margin-top:2px;color:#087a45}

@media(max-width:980px){
  body.portal-modelo1 .portal-term-summary{grid-template-columns:auto minmax(0,1fr)}
  body.portal-modelo1 .portal-term-actions{grid-column:1/-1;justify-content:flex-start;padding-left:84px}
}
@media(max-width:700px){
  body.portal-modelo1 .portal-term-summary{grid-template-columns:52px minmax(0,1fr);gap:13px;padding:18px}
  body.portal-modelo1 .portal-term-main-icon{width:52px;height:52px;border-radius:16px;font-size:1.25rem}
  body.portal-modelo1 .portal-term-kicker{font-size:.68rem}
  body.portal-modelo1 .portal-term-tags{gap:6px}
  body.portal-modelo1 .portal-term-tags span{font-size:.7rem;padding:5px 8px}
  body.portal-modelo1 .portal-term-actions{padding-left:0;display:grid;grid-template-columns:1fr 1fr;width:100%}
  body.portal-modelo1 .portal-term-actions .btn{white-space:normal;text-align:center;padding:10px 9px}
  body.portal-modelo1 .portal-term-detail{padding:13px 18px}
  body.portal-modelo1 .portal-term-preview{min-height:0;padding:16px;background:#f4f6f9}
  body.portal-modelo1 .portal-term-preview iframe{display:none}
  body.portal-modelo1 .portal-term-mobile-message{display:flex;align-items:center;gap:13px;padding:18px;border:1px dashed #cfd6e0;border-radius:15px;background:#fff;color:#465168}
  body.portal-modelo1 .portal-term-mobile-message>i{font-size:1.8rem;color:#c9141c}
  body.portal-modelo1 .portal-term-mobile-message div{display:grid;gap:4px}
  body.portal-modelo1 .portal-term-mobile-message strong{font-size:.9rem;color:#222c3e}
  body.portal-modelo1 .portal-term-mobile-message span{font-size:.76rem;line-height:1.45;color:#6a7488}
  body.portal-modelo1 .portal-term-security{padding:13px 17px}
}
@media(max-width:390px){
  body.portal-modelo1 .portal-term-actions{grid-template-columns:1fr}
}
