
/* ================================================================
   EduCantina 4.0.4 — Portal do Responsável e PWA Oficial
   Experiência nativa para navegador, tablet e aplicativo instalado.
   ================================================================ */
body.role-parent.action-portal{
 --rp-navy:#0A2E4D;
 --rp-navy-dark:#061E33;
 --rp-blue:#1E6CFB;
 --rp-green:#16B84E;
 --rp-sky:#58B7FF;
 --rp-purple:#7454D8;
 --rp-orange:#F59E0B;
 --rp-red:#EF4444;
 --rp-bg:#F4F7FA;
 --rp-card:#FFFFFF;
 --rp-border:#E2E9EF;
 --rp-text:#10233A;
 --rp-muted:#718196;
 background:var(--rp-bg)!important;
}
body.role-parent.action-portal .layout,
body.role-parent.action-portal .main,
body.role-parent.action-portal .content{
 background:var(--rp-bg)!important;
 min-height:100vh!important;
}
body.role-parent.action-portal .parent-app{
 min-height:100vh!important;
 background:
  radial-gradient(circle at 12% 0%,rgba(30,108,251,.09),transparent 25%),
  radial-gradient(circle at 88% 3%,rgba(22,184,78,.08),transparent 25%),
  linear-gradient(180deg,#F8FBFD,#F4F7FA 320px)!important;
 padding-bottom:94px!important;
}
body.role-parent.action-portal .parent-shell{
 width:min(100%,1180px)!important;
 max-width:1180px!important;
 margin:0 auto!important;
 padding:20px 22px 44px!important;
}

/* Cabeçalho web */
body.role-parent.action-portal .parent-top{
 min-height:66px!important;
 display:flex!important;
 align-items:center!important;
 justify-content:space-between!important;
 gap:16px!important;
 margin-bottom:16px!important;
}
body.role-parent.action-portal .parent-brand{
 display:flex!important;
 align-items:center!important;
 gap:10px!important;
}
body.role-parent.action-portal .parent-brand-logo{
 width:43px!important;
 height:43px!important;
 border-radius:13px!important;
 object-fit:contain!important;
 background:#fff!important;
 border:1px solid var(--rp-border)!important;
 padding:5px!important;
 box-shadow:0 6px 18px rgba(10,46,77,.06)!important;
}
body.role-parent.action-portal .parent-brand strong{
 display:block!important;
 font-size:13px!important;
 color:var(--rp-text)!important;
 letter-spacing:-.02em!important;
}
body.role-parent.action-portal .parent-brand small{
 display:block!important;
 font-size:7.5px!important;
 color:var(--rp-muted)!important;
 margin-top:3px!important;
}
body.role-parent.action-portal .parent-user{
 display:flex!important;
 align-items:center!important;
 gap:9px!important;
}
body.role-parent.action-portal .parent-user-copy{
 text-align:right!important;
}
body.role-parent.action-portal .parent-user-copy strong{
 display:block!important;
 font-size:9px!important;
 color:var(--rp-text)!important;
}
body.role-parent.action-portal .parent-user-copy a{
 font-size:7px!important;
 color:var(--rp-muted)!important;
}
body.role-parent.action-portal .parent-user-avatar{
 width:37px!important;
 height:37px!important;
 border-radius:50%!important;
 background:linear-gradient(135deg,#EAF2FF,#E9F9EE)!important;
 color:var(--rp-navy)!important;
 border:1px solid #DCE6ED!important;
}

/* Hero */
body.role-parent.action-portal .parent-hero{
 position:relative!important;
 overflow:hidden!important;
 border-radius:21px!important;
 padding:23px 24px!important;
 margin-bottom:13px!important;
 background:
  radial-gradient(circle at 88% 18%,rgba(255,255,255,.13),transparent 24%),
  linear-gradient(135deg,var(--rp-navy-dark),var(--rp-navy) 58%,var(--rp-blue))!important;
 border:0!important;
 box-shadow:0 16px 38px rgba(10,46,77,.18)!important;
 color:#fff!important;
}
body.role-parent.action-portal .parent-hero:after{
 content:"";
 position:absolute;
 width:190px;height:190px;
 border-radius:50%;
 right:-70px;bottom:-120px;
 border:1px solid rgba(255,255,255,.10);
}
body.role-parent.action-portal .parent-greeting{
 font-size:8px!important;
 color:#B8CAD8!important;
 letter-spacing:.025em!important;
}
body.role-parent.action-portal .parent-hero h1{
 font-size:23px!important;
 color:#fff!important;
 letter-spacing:-.035em!important;
 margin:5px 0 17px!important;
}
body.role-parent.action-portal .child-switcher{
 display:flex!important;
 gap:8px!important;
 flex-wrap:wrap!important;
}
body.role-parent.action-portal .child-pill{
 min-width:178px!important;
 padding:9px 11px!important;
 border-radius:12px!important;
 background:rgba(255,255,255,.08)!important;
 border:1px solid rgba(255,255,255,.16)!important;
 color:#fff!important;
}
body.role-parent.action-portal .child-pill.active{
 background:#fff!important;
 color:var(--rp-text)!important;
 border-color:#fff!important;
 box-shadow:0 7px 18px rgba(0,0,0,.11)!important;
}
body.role-parent.action-portal .child-avatar{
 background:rgba(255,255,255,.13)!important;
}
body.role-parent.action-portal .child-pill.active .child-avatar{
 background:#EAF2FF!important;
 color:var(--rp-blue)!important;
}

/* Resumo */
body.role-parent.action-portal .parent-summary{
 display:grid!important;
 grid-template-columns:1.3fr repeat(3,1fr)!important;
 gap:10px!important;
 margin:0 0 12px!important;
}
body.role-parent.action-portal .parent-balance,
body.role-parent.action-portal .parent-stat{
 min-height:108px!important;
 padding:15px!important;
 border-radius:14px!important;
 border:1px solid var(--rp-border)!important;
 box-shadow:0 4px 15px rgba(10,46,77,.045)!important;
}
body.role-parent.action-portal .parent-balance{
 background:linear-gradient(145deg,var(--rp-navy),var(--rp-blue))!important;
 color:#fff!important;
}
body.role-parent.action-portal .parent-balance small{
 color:#C6D6E2!important;
 font-size:7.5px!important;
}
body.role-parent.action-portal .parent-balance strong{
 display:block!important;
 font-size:25px!important;
 margin:7px 0!important;
 color:#fff!important;
}
body.role-parent.action-portal .parent-balance button{
 background:rgba(255,255,255,.13)!important;
 border:1px solid rgba(255,255,255,.22)!important;
 color:#fff!important;
 border-radius:9px!important;
 padding:6px 10px!important;
 font-size:7px!important;
}
body.role-parent.action-portal .parent-stat{
 background:#fff!important;
}
body.role-parent.action-portal .parent-stat small{
 font-size:7.5px!important;
 color:#8191A2!important;
}
body.role-parent.action-portal .parent-stat strong{
 display:block!important;
 font-size:17px!important;
 color:var(--rp-text)!important;
 margin:7px 0 3px!important;
}
body.role-parent.action-portal .parent-stat span{
 font-size:6.7px!important;
 color:#8392A2!important;
}

/* Conteúdo */
body.role-parent.action-portal .parent-grid{
 gap:11px!important;
}
body.role-parent.action-portal .parent-card{
 border:1px solid var(--rp-border)!important;
 border-radius:14px!important;
 background:#fff!important;
 box-shadow:0 4px 15px rgba(10,46,77,.045)!important;
 overflow:hidden!important;
}
body.role-parent.action-portal .parent-card-head{
 padding:13px 15px!important;
 border-bottom:1px solid #EDF2F6!important;
 background:#fff!important;
}
body.role-parent.action-portal .parent-card-head h2{
 font-size:10.5px!important;
 color:var(--rp-text)!important;
 letter-spacing:-.015em!important;
}
body.role-parent.action-portal .parent-card-body{
 padding:14px!important;
}
body.role-parent.action-portal .control-note,
body.role-parent.action-portal .hint{
 font-size:7.5px!important;
 color:#8291A2!important;
}
body.role-parent.action-portal .recharge-value{
 min-height:39px!important;
 border-radius:9px!important;
 background:#F8FAFC!important;
 border:1px solid #DCE6ED!important;
 color:var(--rp-navy)!important;
}
body.role-parent.action-portal .recharge-value:hover{
 border-color:var(--rp-blue)!important;
 background:#EAF2FF!important;
 color:var(--rp-blue)!important;
}
body.role-parent.action-portal .purchase-item,
body.role-parent.action-portal .charge-item,
body.role-parent.action-portal .block-row,
body.role-parent.action-portal .parent-order-row{
 border:1px solid #E6EDF2!important;
 border-radius:11px!important;
 background:#fff!important;
 padding:10px!important;
}
body.role-parent.action-portal .tx-icon{
 background:#E9F9EE!important;
 color:#10803A!important;
 border-radius:9px!important;
}
body.role-parent.action-portal .tx-icon.debit{
 background:#FDECEC!important;
 color:#B42318!important;
}

/* PWA mobile */
@media(max-width:900px){
 body.role-parent.action-portal .parent-shell{
  max-width:440px!important;
  padding:11px 11px 88px!important;
 }
 body.role-parent.action-portal .parent-top,
 body.role-parent.action-portal .parent-hero,
 body.role-parent.action-portal .parent-summary{
  display:none!important;
 }
 body.role-parent.action-portal .mobile-app-dashboard{
  display:block!important;
  background:transparent!important;
  padding:0!important;
 }
 body.role-parent.action-portal .mobile-app-dashboard.mobile-active{
  display:block!important;
 }
 body.role-parent.action-portal .app-view{
  display:none!important;
 }
 body.role-parent.action-portal .app-view.mobile-active{
  display:block!important;
 }
 body.role-parent.action-portal .mobile-app-brand{
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
  padding:3px 1px 12px!important;
 }
 body.role-parent.action-portal .mobile-app-brand:before{
  width:0!important;height:0!important;flex:0 0 0!important;background:none!important;
 }
 body.role-parent.action-portal .mobile-app-brand>div{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  margin-right:auto!important;
 }
 body.role-parent.action-portal .mobile-app-brand>div:before{
  content:"";
  width:31px;height:31px;flex:0 0 31px;
  background:url("brand/educantina-symbol.svg") center/contain no-repeat;
 }
 body.role-parent.action-portal .mobile-app-brand b{
  font-size:12px!important;
  color:var(--rp-text)!important;
  font-weight:850!important;
 }
 body.role-parent.action-portal .mobile-app-brand small{
  font-size:6.8px!important;
  color:#8493A3!important;
 }
 body.role-parent.action-portal .mobile-app-brand>span{
  width:34px!important;height:34px!important;
  border-radius:50%!important;
  background:#fff!important;
  border:1px solid var(--rp-border)!important;
  box-shadow:0 4px 13px rgba(10,46,77,.05)!important;
 }
 body.role-parent.action-portal .mobile-welcome{
  padding:3px 1px 10px!important;
 }
 body.role-parent.action-portal .mobile-welcome strong{
  display:block!important;
  font-size:16px!important;
  color:var(--rp-text)!important;
  letter-spacing:-.025em!important;
 }
 body.role-parent.action-portal .mobile-welcome small{
  display:block!important;
  font-size:7px!important;
  color:#8191A2!important;
  margin-top:3px!important;
 }
 body.role-parent.action-portal .mobile-student{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  margin-bottom:10px!important;
  padding:9px 10px!important;
  border-radius:12px!important;
  background:#fff!important;
  border:1px solid var(--rp-border)!important;
  box-shadow:0 4px 13px rgba(10,46,77,.04)!important;
 }
 body.role-parent.action-portal .mobile-avatar{
  width:30px!important;height:30px!important;
  border-radius:50%!important;
  background:linear-gradient(145deg,#EAF2FF,#E9F9EE)!important;
  color:var(--rp-navy)!important;
 }
 body.role-parent.action-portal .mobile-student strong{
  font-size:9px!important;
 }
 body.role-parent.action-portal .mobile-student small{
  font-size:6.6px!important;
 }
 body.role-parent.action-portal .mobile-balance{
  min-height:111px!important;
  padding:16px!important;
  margin-bottom:11px!important;
  border-radius:16px!important;
  background:
   radial-gradient(circle at 87% 15%,rgba(22,184,78,.24),transparent 26%),
   linear-gradient(140deg,var(--rp-navy-dark),var(--rp-navy) 62%,var(--rp-blue))!important;
  color:#fff!important;
  box-shadow:0 14px 30px rgba(10,46,77,.18)!important;
 }
 body.role-parent.action-portal .mobile-balance small{
  color:#BFD0DC!important;
  font-size:7.3px!important;
 }
 body.role-parent.action-portal .mobile-balance strong{
  display:block!important;
  font-size:25px!important;
  color:#fff!important;
  margin:6px 0!important;
 }
 body.role-parent.action-portal .mobile-balance button{
  background:rgba(255,255,255,.13)!important;
  border:1px solid rgba(255,255,255,.22)!important;
  border-radius:9px!important;
  color:#fff!important;
  font-size:6.8px!important;
  padding:6px 9px!important;
 }
 body.role-parent.action-portal .mobile-title{
  margin:12px 1px 8px!important;
 }
 body.role-parent.action-portal .mobile-title strong{
  font-size:10.5px!important;
  color:var(--rp-text)!important;
 }
 body.role-parent.action-portal .mobile-title small{
  font-size:6.7px!important;
  color:#8493A3!important;
 }
 body.role-parent.action-portal .mobile-actions{
  display:grid!important;
  grid-template-columns:repeat(3,1fr)!important;
  gap:8px!important;
  margin-bottom:12px!important;
 }
 body.role-parent.action-portal .mobile-actions button{
  min-height:87px!important;
  padding:11px 6px!important;
  border-radius:13px!important;
  border:1px solid var(--rp-border)!important;
  background:#fff!important;
  box-shadow:0 4px 14px rgba(10,46,77,.045)!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
 }
 body.role-parent.action-portal .mobile-actions button i{
  width:35px!important;height:35px!important;
  border-radius:10px!important;
  display:grid!important;
  place-items:center!important;
  font-style:normal!important;
  font-size:15px!important;
 }
 body.role-parent.action-portal .mobile-actions button b{
  font-size:8px!important;
  color:var(--rp-text)!important;
 }
 body.role-parent.action-portal .mobile-actions button span{
  font-size:6px!important;
  color:#8A98A7!important;
 }
 body.role-parent.action-portal .mobile-actions button:nth-child(1){
  background:linear-gradient(145deg,#23C55A,#14A846)!important;
  border-color:transparent!important;
 }
 body.role-parent.action-portal .mobile-actions button:nth-child(1) i{
  background:rgba(255,255,255,.18)!important;color:#fff!important;
 }
 body.role-parent.action-portal .mobile-actions button:nth-child(1) b,
 body.role-parent.action-portal .mobile-actions button:nth-child(1) span{
  color:#fff!important;
 }
 body.role-parent.action-portal .mobile-actions button:nth-child(2) i{
  background:#EAF2FF!important;color:var(--rp-blue)!important;
 }
 body.role-parent.action-portal .mobile-actions button:nth-child(3) i{
  background:#F1EEFF!important;color:var(--rp-purple)!important;
 }
 body.role-parent.action-portal .mobile-actions button:nth-child(4) i{
  background:#E9F9EE!important;color:var(--rp-green)!important;
 }
 body.role-parent.action-portal .mobile-actions button:nth-child(5) i{
  background:#EAF2FF!important;color:var(--rp-blue)!important;
 }
 body.role-parent.action-portal .mobile-actions button:nth-child(6) i{
  background:#FFF4DF!important;color:var(--rp-orange)!important;
 }
 body.role-parent.action-portal .mobile-last-order{
  padding:11px!important;
  border-radius:13px!important;
  background:#fff!important;
  border:1px solid var(--rp-border)!important;
  box-shadow:0 4px 14px rgba(10,46,77,.04)!important;
 }
 body.role-parent.action-portal .mobile-last-order strong{
  font-size:8.5px!important;
 }
 body.role-parent.action-portal .mobile-last-order small{
  font-size:6.5px!important;
 }
 body.role-parent.action-portal .mobile-app-nav{
  position:fixed!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  bottom:0!important;
  z-index:3000!important;
  width:min(100%,440px)!important;
  min-height:68px!important;
  display:grid!important;
  grid-template-columns:repeat(4,1fr)!important;
  padding:7px 9px calc(7px + env(safe-area-inset-bottom))!important;
  background:rgba(255,255,255,.97)!important;
  border-top:1px solid var(--rp-border)!important;
  box-shadow:0 -8px 22px rgba(10,46,77,.06)!important;
  backdrop-filter:blur(16px)!important;
 }
 body.role-parent.action-portal .mobile-app-nav button{
  border:0!important;
  background:transparent!important;
  color:#728296!important;
  border-radius:9px!important;
  font-size:6.5px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:2px!important;
 }
 body.role-parent.action-portal .mobile-app-nav button i{
  font-size:15px!important;
  font-style:normal!important;
 }
 body.role-parent.action-portal .mobile-app-nav button.active{
  background:#EAF2FF!important;
  color:var(--rp-blue)!important;
 }
 body.role-parent.action-portal .mobile-screen-header{
  position:sticky!important;
  top:0!important;
  z-index:25!important;
  min-height:54px!important;
  padding:8px 1px!important;
  background:rgba(244,247,250,.96)!important;
  backdrop-filter:blur(15px)!important;
  border:0!important;
 }
 body.role-parent.action-portal .mobile-screen-header button{
  width:33px!important;height:33px!important;
  border-radius:9px!important;
  background:#fff!important;
  border:1px solid var(--rp-border)!important;
 }
 body.role-parent.action-portal .mobile-screen-header h2{
  font-size:14px!important;
  color:var(--rp-text)!important;
  letter-spacing:-.025em!important;
 }
 body.role-parent.action-portal .mobile-screen-header small{
  font-size:6.7px!important;
  color:#8191A2!important;
 }
 body.role-parent.action-portal .parent-card{
  border-radius:13px!important;
 }
 body.role-parent.action-portal .parent-card-head{
  padding:12px 13px!important;
 }
 body.role-parent.action-portal .parent-card-body{
  padding:13px!important;
 }
 body.role-parent.action-portal .parent-order-row,
 body.role-parent.action-portal .purchase-item,
 body.role-parent.action-portal .charge-item{
  border-radius:11px!important;
  padding:10px!important;
  margin-bottom:7px!important;
 }
}

/* Cardápio e loja */
@media(max-width:900px){
 body.role-parent.action-portal .menu-day-tabs,
 body.role-parent.action-portal .store-filter-tabs{
  display:flex!important;
  gap:6px!important;
  overflow:auto!important;
  padding-bottom:7px!important;
  scrollbar-width:none!important;
 }
 body.role-parent.action-portal .menu-day-tabs::-webkit-scrollbar,
 body.role-parent.action-portal .store-filter-tabs::-webkit-scrollbar{
  display:none!important;
 }
 body.role-parent.action-portal .menu-day-tabs button,
 body.role-parent.action-portal .store-filter-tabs button{
  flex:0 0 auto!important;
  border-radius:8px!important;
  background:#fff!important;
  border:1px solid #DCE5EC!important;
  color:#66778A!important;
  padding:7px 9px!important;
  font-size:7px!important;
 }
 body.role-parent.action-portal .menu-day-tabs button.active,
 body.role-parent.action-portal .store-filter-tabs button.active{
  background:#EAF2FF!important;
  border-color:var(--rp-blue)!important;
  color:var(--rp-blue)!important;
 }
 body.role-parent.action-portal .menu-product-card,
 body.role-parent.action-portal .store-product-card,
 body.role-parent.action-portal .parent-menu-item,
 body.role-parent.action-portal .parent-store-item{
  display:grid!important;
  grid-template-columns:50px 1fr auto!important;
  gap:9px!important;
  align-items:center!important;
  padding:10px 0!important;
  border:0!important;
  border-bottom:1px solid #EDF2F6!important;
  border-radius:0!important;
  background:#fff!important;
  box-shadow:none!important;
 }
 body.role-parent.action-portal .menu-product-card:last-child,
 body.role-parent.action-portal .store-product-card:last-child,
 body.role-parent.action-portal .parent-menu-item:last-child,
 body.role-parent.action-portal .parent-store-item:last-child{
  border-bottom:0!important;
 }
 body.role-parent.action-portal .menu-product-card img,
 body.role-parent.action-portal .store-product-card img{
  width:47px!important;height:47px!important;
  border-radius:11px!important;
  object-fit:cover!important;
 }
 body.role-parent.action-portal .menu-product-card h3,
 body.role-parent.action-portal .store-product-card h3,
 body.role-parent.action-portal .parent-menu-item h3,
 body.role-parent.action-portal .parent-store-item h3{
  font-size:9px!important;
  margin:0 0 3px!important;
 }
 body.role-parent.action-portal .menu-product-card p,
 body.role-parent.action-portal .store-product-card p,
 body.role-parent.action-portal .parent-menu-item p,
 body.role-parent.action-portal .parent-store-item p{
  font-size:6.5px!important;
  color:#7E8D9D!important;
  line-height:1.35!important;
  margin:0!important;
 }
 body.role-parent.action-portal .menu-product-card .price,
 body.role-parent.action-portal .store-product-card .price{
  font-size:8.5px!important;
  color:var(--rp-text)!important;
  font-weight:800!important;
 }
}

/* Tablet e desktop */
@media(min-width:901px) and (max-width:1100px){
 body.role-parent.action-portal .parent-summary{
  grid-template-columns:1.2fr 1fr 1fr!important;
 }
 body.role-parent.action-portal .parent-summary .parent-stat:last-child{
  grid-column:1/-1!important;
 }
}
