/* SENOA v1.0.4 — mobile navigation, portal proof lock, local icons, landing SEO/animation */

/* ---------- App mobile navigation ---------- */
.mobile-top-brand{display:none;align-items:center;gap:.7rem;min-width:0}.mobile-top-brand img{height:31px;width:auto}.mobile-menu-trigger,.mobile-drawer-close{border:0;background:transparent;color:var(--text);display:grid;place-items:center;padding:0}.mobile-menu-trigger{width:42px;height:42px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.mobile-menu-trigger .senoa-icon{width:21px;height:21px}.mobile-drawer-backdrop{position:fixed;inset:0;background:rgba(3,16,35,.44);backdrop-filter:blur(3px);z-index:1450;opacity:0;transition:opacity .2s ease}.mobile-drawer-backdrop.show{opacity:1}.mobile-drawer{position:fixed;left:0;top:0;bottom:0;width:min(88vw,360px);background:linear-gradient(180deg,var(--sidebar),color-mix(in srgb,var(--sidebar) 82%,#020912));color:#fff;z-index:1500;transform:translateX(-105%);transition:transform .22s cubic-bezier(.2,.75,.2,1);box-shadow:18px 0 48px rgba(0,0,0,.25);display:flex;flex-direction:column;padding:calc(1rem + env(safe-area-inset-top)) 1rem calc(1rem + env(safe-area-inset-bottom))}.mobile-drawer.open{transform:translateX(0)}.mobile-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.2rem .15rem .9rem}.mobile-drawer-head img{width:150px;filter:brightness(0) invert(1)}.mobile-drawer-close{width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.08);color:#fff}.mobile-drawer-close .senoa-icon{width:19px;height:19px}.mobile-drawer-institution{display:grid;gap:.15rem;padding:.9rem 1rem;border:1px solid rgba(255,255,255,.1);border-radius:16px;background:linear-gradient(135deg,rgba(255,255,255,.11),rgba(255,255,255,.055));margin-bottom:.7rem}.mobile-drawer-institution strong{font-size:.88rem}.mobile-drawer-institution span{font-size:.7rem;color:rgba(255,255,255,.62)}.mobile-drawer-scroll{overflow:auto;padding-right:.15rem;overscroll-behavior:contain}.mobile-drawer-section{font-size:.62rem;font-weight:900;letter-spacing:.12em;color:rgba(255,255,255,.46);padding:1rem .65rem .3rem}.mobile-drawer-link{display:flex;align-items:center;gap:.75rem;color:rgba(238,246,255,.84);padding:.72rem .75rem;border-radius:13px;font-size:.86rem;font-weight:700;margin:.06rem 0}.mobile-drawer-link:hover,.mobile-drawer-link.active{color:#fff;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 75%,transparent),color-mix(in srgb,var(--primary-2) 45%,transparent));box-shadow:inset 0 1px rgba(255,255,255,.1)}.mobile-drawer-link .senoa-icon{width:19px;height:19px}.mobile-drawer-user{margin-top:auto;display:grid;grid-template-columns:40px minmax(0,1fr) 38px;align-items:center;gap:.7rem;padding:.85rem;border:1px solid rgba(255,255,255,.1);border-radius:15px;background:rgba(255,255,255,.07)}.mobile-drawer-user>div:nth-child(2){display:grid;min-width:0}.mobile-drawer-user strong{font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-drawer-user span{font-size:.68rem;color:rgba(255,255,255,.58)}.mobile-drawer-user>a{color:#fff;display:grid;place-items:center}.mobile-drawer-user>a .senoa-icon{width:18px;height:18px}body.mobile-menu-open{overflow:hidden}
.mobile-nav button{appearance:none;border:0;background:transparent;display:grid;place-items:center;color:var(--muted);font-size:.67rem;font-weight:700;gap:.15rem;padding:.35rem}.mobile-nav button .senoa-icon,.mobile-nav a .senoa-icon{width:1.12rem;height:1.12rem}.mobile-nav-primary{position:relative}.mobile-nav-primary .senoa-icon{width:1.42rem!important;height:1.42rem!important;color:var(--primary)}

@media(max-width:991px){
  .mobile-top-brand{display:flex}.topbar{height:68px;padding:0 .8rem;gap:.8rem}.topbar-search{display:none!important}.topbar-actions{margin-left:auto}.content{padding:1rem 1rem 6.5rem}.app-footer{padding-bottom:5.8rem}.mobile-nav{bottom:calc(.55rem + env(safe-area-inset-bottom));left:.55rem;right:.55rem;border-radius:19px;padding:.38rem .4rem;box-shadow:0 16px 42px rgba(20,43,76,.20);background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(14px)}.mobile-nav a,.mobile-nav button{min-height:52px;border-radius:13px}.mobile-nav .active{background:var(--primary-soft)}
}
@media(max-width:575px){.content{padding:.8rem .65rem 6.3rem}.page-header{gap:.65rem;margin-bottom:1rem}.page-title{font-size:1.42rem}.page-subtitle{font-size:.78rem}.card-pad{padding:1rem}.data-table th,.data-table td{padding:.7rem .65rem}.kpi-grid{gap:.7rem}.kpi{padding:1rem}.topbar-actions .icon-btn{width:40px;height:40px}.mobile-top-brand img{height:28px}.mobile-menu-trigger{width:40px;height:40px}.mobile-nav{font-size:.62rem}}

/* ---------- Parent portal icon safety + mobile UX ---------- */
.portal-v104 .senoa-icon{width:1.05em;height:1.05em}.portal-v104 .portal-student-meta .senoa-icon,.portal-v104 .portal-due .senoa-icon{margin-right:.1rem}.portal-v104 .portal-head-icon{width:38px;height:38px;border-radius:12px;background:var(--primary-soft);display:grid;place-items:center}.portal-v104 .portal-head-icon .senoa-icon{width:18px;height:18px}.portal-v104 .portal-payment-status a{display:inline-flex;align-items:center;gap:.25rem}.portal-v104 .portal-payment-status a .senoa-icon{width:.8rem;height:.8rem}.portal-v104 .portal-upload-icon .senoa-icon{width:23px;height:23px}.portal-v104 .portal-file-drop>.senoa-icon{width:22px;height:22px}.portal-v104 .portal-submit .senoa-icon{width:17px;height:17px}.portal-mobile-nav{display:none}.portal-pending-proof{display:grid}.pending-proof-icon{width:52px;height:52px;border-radius:16px;background:#fff4dc;color:#9c6507;display:grid;place-items:center;margin-bottom:.8rem;border:1px solid #f2dfae}.pending-proof-icon .senoa-icon{width:24px;height:24px}.pending-proof-preview{display:grid;grid-template-columns:92px minmax(0,1fr);gap:.9rem;align-items:center;margin-top:1rem;padding:.8rem;border:1px solid var(--border);border-radius:16px;background:var(--surface-2)}.pending-proof-preview img{width:92px;height:92px;border-radius:12px;background:#fff;object-fit:contain;border:1px solid var(--border)}.pending-proof-preview>div{display:grid;min-width:0}.pending-proof-preview span{font-size:.65rem;color:var(--muted)}.pending-proof-preview strong{font-size:1.15rem;color:var(--text);margin:.08rem 0 .32rem}.pending-proof-preview small{font-size:.68rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pending-proof-status{display:grid;gap:.55rem;margin-top:1rem;padding:.85rem;border-radius:15px;background:#fffaf0;border:1px solid #f2e2bb}.pending-proof-status .status-pill{justify-self:start}.pending-proof-status small{font-size:.68rem;color:#7d6b48;line-height:1.45}.portal-section-card,.portal-hero-v103{scroll-margin-top:84px}
@media(max-width:767px){
  .portal-v104{padding-bottom:78px}.portal-wrap{padding-top:.7rem!important;padding-bottom:1rem!important}.portal-top-brand{position:sticky;top:0;z-index:30;margin:0 -.65rem .7rem;padding:.55rem .8rem;background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.portal-institution-name{font-size:.9rem}.portal-institution-meta{font-size:.62rem;max-width:180px}.portal-security-chip{padding:.45rem}.portal-hero-v103{margin-bottom:.75rem}.portal-hero-main{padding:1.15rem}.portal-hero-main h1{font-size:1.45rem}.portal-balance-label{margin-top:1.25rem}.portal-balance{font-size:2.15rem}.portal-progress-meta{font-size:.61rem}.portal-grid{gap:.8rem}.portal-section-card{padding:.9rem;border-radius:18px}.portal-section-head{margin-bottom:.75rem}.portal-section-head h2,.portal-upload-card h2{font-size:1.02rem}.portal-charge{padding:.85rem}.portal-charge h3{font-size:.86rem}.portal-charge-top{align-items:flex-start}.portal-charge .status-pill{font-size:.64rem;min-height:25px;padding:.3rem .5rem}.portal-charge-money{margin-top:.7rem}.portal-payment-row{padding:.68rem}.portal-payment-icon{width:38px;height:38px}.portal-payment-main strong{font-size:.8rem}.portal-payment-main span{font-size:.61rem}.portal-powered{padding-bottom:.8rem;display:grid!important;justify-items:center;gap:.25rem;text-align:center}.portal-powered img{height:17px}.pending-proof-preview{grid-template-columns:76px minmax(0,1fr)}.pending-proof-preview img{width:76px;height:76px}.portal-mobile-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:.55rem;right:.55rem;bottom:calc(.5rem + env(safe-area-inset-bottom));z-index:1000;background:color-mix(in srgb,var(--surface) 94%,transparent);border:1px solid var(--border);border-radius:19px;padding:.38rem;box-shadow:0 16px 42px rgba(21,46,79,.2);backdrop-filter:blur(14px)}.portal-mobile-nav a{display:grid;justify-items:center;gap:.18rem;padding:.45rem .2rem;border-radius:13px;color:var(--muted);font-size:.62rem;font-weight:800}.portal-mobile-nav a:active,.portal-mobile-nav a:hover{background:var(--primary-soft);color:var(--primary)}.portal-mobile-nav .senoa-icon{width:18px;height:18px}.portal-file-drop{min-height:66px}.portal-upload-card .row>.col-5,.portal-upload-card .row>.col-7{width:100%}.portal-upload-card .row .form-label{margin-top:.8rem!important}}

/* ---------- Landing page 1.0.4 ---------- */
.landing-v104{overflow-x:hidden;background:linear-gradient(180deg,#fff 0%,#f4f8ff 38%,#fff 100%)}.landing-v104 .landing-nav{background:rgba(3,20,48,.82);border-color:rgba(130,190,255,.14);backdrop-filter:blur(18px)}.landing-v104 .landing-nav .brand-logo{height:46px;filter:none}.landing-v104 .landing-nav a:not(.btn){color:#dfeeff!important}.landing-v104 .landing-nav .btn-outline-primary{border-color:rgba(255,255,255,.34);color:#fff}.landing-v104 .landing-nav .btn-outline-primary:hover{background:#fff;color:#0b4ca5}.landing-mobile-trigger{display:none;width:42px;height:42px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.08);color:#fff}.landing-mobile-panel{display:none;position:absolute;top:calc(100% + 8px);left:12px;right:12px;padding:.8rem;border-radius:18px;background:#071d42;border:1px solid rgba(127,189,255,.18);box-shadow:0 18px 45px rgba(0,0,0,.25)}.landing-mobile-panel.open{display:grid}.landing-mobile-panel a{padding:.68rem .75rem;border-radius:11px;color:#eaf4ff!important;font-weight:700}.landing-mobile-panel a:hover{background:rgba(255,255,255,.08)}
.landing-v104 .hero{min-height:86vh;background:radial-gradient(circle at 84% 18%,rgba(43,198,255,.22),transparent 25rem),radial-gradient(circle at 14% 15%,rgba(13,121,247,.28),transparent 28rem),linear-gradient(135deg,#03142f 0%,#06265b 52%,#0753b7 100%);color:#fff;padding-top:7rem}.landing-v104 .hero:before{width:620px;height:620px;background:radial-gradient(circle,rgba(49,200,255,.16),transparent 68%);right:-100px;top:-80px;animation:senoaOrb 8s ease-in-out infinite alternate}.landing-v104 .hero:after{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,#000,transparent 80%)}.landing-v104 .hero h1,.landing-v104 .hero p{color:#fff}.landing-v104 .hero p{color:#c8dcf7}.landing-v104 .hero-badge{background:rgba(12,104,226,.22);border-color:rgba(100,196,255,.28);color:#dff5ff;box-shadow:inset 0 1px rgba(255,255,255,.08)}.landing-v104 .hero-accent{background:linear-gradient(90deg,#57d4ff,#248cff);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-sector-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.15rem}.hero-sector-list span{font-size:.68rem;font-weight:800;padding:.38rem .58rem;border-radius:999px;background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.1);color:#d8eaff}.landing-v104 .trust-chip{color:#c3d8f3}.landing-v104 .trust-chip .senoa-icon{color:#5dd7ff}.landing-v104 .hero-product-stage{animation:stageFloat 5.8s ease-in-out infinite}.landing-v104 .hero-stage-mascot{animation:mascotFloat 4.3s ease-in-out infinite}.landing-v104 .hero-float{animation:chipFloat 4s ease-in-out infinite 1s}.hero-glow-dot{position:absolute;border-radius:50%;pointer-events:none}.hero-glow-dot.one{width:10px;height:10px;background:#67deff;right:6%;top:18%;box-shadow:0 0 24px #67deff}.hero-glow-dot.two{width:7px;height:7px;background:#4b8dff;left:53%;top:20%;box-shadow:0 0 20px #4b8dff}.hero-glow-dot.three{width:6px;height:6px;background:#fff;right:26%;bottom:18%;box-shadow:0 0 18px rgba(255,255,255,.8)}
.landing-v104 .landing-strip{position:relative;z-index:3;margin-top:-1px;box-shadow:0 -14px 40px rgba(3,31,72,.08)}.landing-audience{padding:3.4rem 0;background:#fff}.audience-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:.65rem}.audience-chip{min-height:82px;border:1px solid #dfebf8;border-radius:17px;background:linear-gradient(180deg,#fff,#f7fbff);display:grid;place-items:center;text-align:center;padding:.8rem;color:#163253;box-shadow:0 8px 22px rgba(22,61,105,.04);font-size:.78rem;font-weight:800;transition:.18s}.audience-chip:hover{transform:translateY(-3px);border-color:#b8d9ff;box-shadow:0 14px 30px rgba(14,89,180,.09)}.audience-chip .senoa-icon{width:23px;height:23px;color:#0b79f7;margin-bottom:.25rem}.problem-solution{padding:5rem 0;background:linear-gradient(180deg,#f5f9ff,#fff)}.problem-panel,.solution-panel{height:100%;border-radius:26px;padding:1.5rem;border:1px solid #dfe9f5;box-shadow:0 16px 42px rgba(20,55,100,.06)}.problem-panel{background:#fff}.solution-panel{background:linear-gradient(145deg,#071d42,#0a62d3);color:#fff;border-color:transparent}.problem-panel h3,.solution-panel h3{font-size:1.35rem}.pain-list,.gain-list{display:grid;gap:.78rem;margin-top:1.25rem}.pain-item,.gain-item{display:flex;gap:.7rem;align-items:flex-start;font-size:.84rem}.pain-item .senoa-icon,.gain-item .senoa-icon{width:18px;height:18px;flex:0 0 auto;margin-top:.1rem}.pain-item .senoa-icon{color:#d85656}.gain-item .senoa-icon{color:#6de1ff}.solution-panel p{color:#cfe1fb}.landing-v104 .feature-card{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.landing-v104 .feature-card:hover{transform:translateY(-5px);box-shadow:0 24px 55px rgba(15,63,122,.11);border-color:#c9dff8}.landing-v104 .feature-icon{background:linear-gradient(145deg,#eaf4ff,#dff5ff)}.landing-v104 .sales-band{background:radial-gradient(circle at 90% 0%,rgba(67,207,255,.35),transparent 18rem),linear-gradient(135deg,#061a3b,#0a58bd);box-shadow:0 24px 55px rgba(8,61,133,.20)}.landing-faq{padding:5rem 0;background:#f7faff}.landing-faq .accordion-item{border:1px solid #dfebf8!important;border-radius:17px!important;overflow:hidden;margin-bottom:.7rem;box-shadow:0 7px 22px rgba(22,58,101,.035)}.landing-faq .accordion-button{font-weight:800;color:#142b4b}.landing-faq .accordion-button:not(.collapsed){background:#edf6ff;color:#075fc4;box-shadow:none}.landing-faq .accordion-body{font-size:.86rem;color:#63738a;line-height:1.7}.landing-footer{background:#04142f!important;color:#dbe9fb;border-top:0!important}.landing-footer .brand-logo{height:40px}.landing-footer .text-secondary{color:#9fb3ce!important}.landing-footer a{color:#8edcff}
[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}[data-reveal].is-visible{opacity:1;transform:none}[data-reveal-delay="1"]{transition-delay:.08s}[data-reveal-delay="2"]{transition-delay:.16s}[data-reveal-delay="3"]{transition-delay:.24s}
@keyframes mascotFloat{from{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-12px) rotate(1deg)}to{transform:translateY(0) rotate(-1deg)}}@keyframes stageFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes chipFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes senoaOrb{from{transform:translate(0,0) scale(.95)}to{transform:translate(-30px,25px) scale(1.08)}}
@media(max-width:1199px){.audience-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:991px){.landing-v104 .landing-nav{position:sticky}.landing-v104 .landing-nav .brand-logo{height:40px}.landing-mobile-trigger{display:grid;place-items:center}.landing-nav-links{display:none!important}.landing-v104 .hero{padding-top:4.6rem;min-height:auto}.audience-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:575px){.landing-v104 .landing-nav .container{position:relative}.landing-v104 .landing-nav .brand-logo{height:34px}.landing-v104 .landing-nav .btn{padding:.48rem .65rem;font-size:.76rem}.landing-mobile-trigger{width:38px;height:38px}.landing-v104 .hero{text-align:left;padding-top:3.6rem;padding-bottom:3rem}.landing-v104 .hero h1{font-size:2.3rem}.landing-v104 .hero p{font-size:.98rem}.landing-v104 .hero .justify-content-center{justify-content:flex-start!important}.landing-v104 .trust-chips{justify-content:flex-start}.hero-sector-list{gap:.38rem}.hero-sector-list span{font-size:.61rem}.landing-v104 .hero-product-stage{min-height:315px}.audience-grid{grid-template-columns:repeat(2,1fr)}.audience-chip{min-height:72px}.problem-solution{padding:3.5rem 0}.landing-faq{padding:3.5rem 0}.section-title{font-size:2rem}.landing-v104 .feature-section{padding:3.8rem 0}}
@media(prefers-reduced-motion:reduce){.landing-v104 .hero-product-stage,.landing-v104 .hero-stage-mascot,.landing-v104 .hero-float,.landing-v104 .hero:before{animation:none!important}[data-reveal]{opacity:1;transform:none;transition:none}}
