@import "https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Nunito:wght@300;400;500;600;700&family=Oswald:wght@600;700&family=Playfair+Display:wght@400;600;700;800&display=swap";.animated-splash{z-index:99999;background:linear-gradient(145deg,#051a1a 0%,#073535 50%,#051a1a 100%);justify-content:center;align-items:center;animation:.5s ease-out splashFadeIn;display:flex;position:fixed;inset:0;overflow:hidden}.animated-splash.fade-out{animation:.5s ease-in forwards splashFadeOut}.splash-bg{position:absolute;inset:0;overflow:hidden}.splash-grid{transform-origin:bottom;background-image:linear-gradient(#c8960c14 1px,#0000 1px),linear-gradient(90deg,#c8960c14 1px,#0000 1px);background-size:60px 60px;animation:4s ease-in-out infinite gridPulse;position:absolute;inset:-20%;transform:perspective(800px)rotateX(60deg)translateY(-10%);-webkit-mask-image:linear-gradient(#0000 0%,#0000004d 50%,#000c 100%);mask-image:linear-gradient(#0000 0%,#0000004d 50%,#000c 100%)}.splash-gradient{filter:blur(100px);opacity:.6;border-radius:50%;animation:8s ease-in-out infinite gradientFloat;position:absolute}.splash-gradient-1{background:radial-gradient(circle,#c8960c 0%,#0000 70%);width:500px;height:500px;animation-delay:0s;top:-150px;left:-150px}.splash-gradient-2{background:radial-gradient(circle,#0e6b6b 0%,#0000 70%);width:600px;height:600px;animation-delay:1s;bottom:-200px;right:-200px}.splash-gradient-3{background:radial-gradient(circle,#c8960c 0%,#0000 70%);width:400px;height:400px;animation-delay:2s;top:50%;left:50%;transform:translate(-50%,-50%)}.splash-particle{opacity:0;background:#c8960c;border-radius:50%;width:4px;height:4px;animation:linear infinite particleFloat;position:absolute;bottom:-10px;box-shadow:0 0 12px #c8960c}.splash-content{z-index:1;flex-direction:column;align-items:center;gap:32px;animation:.8s cubic-bezier(.34,1.56,.64,1) .2s both contentZoomIn;display:flex;position:relative}.splash-ring-wrapper{justify-content:center;align-items:center;width:180px;height:180px;display:flex;position:relative}.splash-ring{opacity:.3;border:2px solid;border-radius:50%;position:absolute}.splash-ring-1{border-color:#c8960c;width:180px;height:180px;animation:4s linear infinite ringRotate}.splash-ring-2{border-color:#0e6b6b;width:140px;height:140px;animation:3s linear infinite reverse ringRotate}.splash-ring-3{border-color:#c8960c;width:100px;height:100px;animation:2s linear infinite ringRotate}.splash-logo-container{background:radial-gradient(circle at 30% 30%,#ffffff26,#ffffff0d);border:3px solid #c8960c66;border-radius:50%;justify-content:center;align-items:center;width:120px;height:120px;animation:2s ease-in-out infinite logoPulse;display:flex;position:relative;box-shadow:0 0 0 8px #c8960c1a,0 0 30px #c8960c4d,inset 0 0 20px #c8960c1a}.splash-logo{object-fit:contain;filter:drop-shadow(0 0 15px #c8960c80);width:90px;height:90px;animation:3s ease-in-out infinite logoFloat}.splash-text{text-align:center}.splash-title{font-family:var(--font-heading);color:#fff;letter-spacing:-.02em;text-shadow:0 0 20px #c8960c66,0 2px 4px #0000004d;margin:0 0 8px;font-size:2.5rem;font-weight:800;animation:2s ease-in-out infinite textGlow}.splash-subtitle{color:#c8960c;text-transform:uppercase;letter-spacing:.2em;opacity:.9;margin:0;font-size:.9rem;font-weight:700}.splash-loader{background:#ffffff1a;border-radius:2px;width:200px;height:4px;overflow:hidden;box-shadow:0 0 10px #c8960c33}.splash-loader-bar{background:linear-gradient(90deg,#0000,#c8960c 50%,#f5c842,#c8960c 50%,#0000) 0 0/200% 100%;border-radius:2px;width:40%;height:100%;animation:1.5s ease-in-out infinite loaderSlide;box-shadow:0 0 15px #c8960ccc}@keyframes splashFadeIn{0%{opacity:0}to{opacity:1}}@keyframes splashFadeOut{0%{opacity:1}to{opacity:0}}@keyframes contentZoomIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes gridPulse{0%,to{opacity:.3;transform:perspective(800px)rotateX(60deg)translateY(-10%)}50%{opacity:.5;transform:perspective(800px)rotateX(60deg)translateY(-12%)}}@keyframes gradientFloat{0%,to{transform:translate(0)scale(1)}33%{transform:translate(30px,-30px)scale(1.1)}66%{transform:translate(-30px,30px)scale(.9)}}@keyframes particleFloat{0%{opacity:0;transform:translateY(0)scale(0)}10%{opacity:1}90%{opacity:.5}to{opacity:0;transform:translateY(-100vh)scale(1)}}@keyframes ringRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes logoPulse{0%{filter:drop-shadow(0 0 10px #c8960c73);transform:scale(1)}50%{filter:drop-shadow(0 0 16px #c8960ca6);transform:scale(1.04)}to{filter:drop-shadow(0 0 10px #c8960c73);transform:scale(1)}}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes textGlow{0%,to{text-shadow:0 0 20px #c8960c66,0 2px 4px #0000004d}50%{text-shadow:0 0 30px #c8960c99,0 0 50px #c8960c4d,0 2px 4px #0000004d}}@keyframes loaderSlide{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media (width<=768px){.splash-title{font-size:2rem}.splash-subtitle{font-size:.75rem}.splash-ring-wrapper,.splash-ring-1{width:150px;height:150px}.splash-ring-2{width:115px;height:115px}.splash-ring-3{width:80px;height:80px}.splash-logo-container{width:100px;height:100px}.splash-logo{width:75px;height:75px}.splash-loader{width:160px}}.portal-page,.portal-page *{box-sizing:border-box}.portal-page{min-height:100vh;color:var(--white);background:var(--navy-dark);isolation:isolate;flex-direction:column;font-family:DM Sans,sans-serif;display:flex;position:relative;overflow:hidden}.portal-bg{z-index:0;pointer-events:none;background:radial-gradient(70% 60% at 10%,#0e6b6b73 0%,#0000 65%),radial-gradient(50% 70% at 90% 20%,#c8960c14 0%,#0000 60%),linear-gradient(145deg,#051a1a 0%,#073535 50%,#051a1a 100%);position:absolute;inset:0}.portal-overlay{z-index:1;pointer-events:none;background:linear-gradient(160deg,#042323f7 0%,#063232f2 50%,#042323f7 100%);position:absolute;inset:0}.portal-content{z-index:2;flex-direction:column;flex:1;width:min(1100px,100% - 3rem);margin:0 auto;display:flex;position:relative}.portal-top-bar{border-bottom:1px solid #ffffff1f;justify-content:space-between;align-items:center;gap:16px;padding:1.1rem 0 .6rem;display:flex}.portal-school-brand{align-items:center;gap:.8rem;display:flex}.portal-logo{object-fit:contain;background:#ffffff0a;border:1px solid #ffffff24;border-radius:50%;flex-shrink:0;width:46px;height:46px;padding:4px;box-shadow:0 4px 14px #00000040}.portal-school-name{font-family:var(--font-heading);color:var(--white);font-size:clamp(.95rem,2vw,1.2rem);font-weight:700;line-height:1.2}.portal-school-name small{font-family:var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-light);font-size:.65rem;font-weight:400;display:block}.portal-top-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.portal-tag{letter-spacing:.14em;text-transform:uppercase;color:#ffffff80;font-size:.7rem}.portal-hero-centre{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:1.5rem 0 1rem;display:flex}.portal-hero-eyebrow{letter-spacing:.26em;text-transform:uppercase;color:var(--gold-light);margin-bottom:.7rem;font-size:.68rem}.portal-hero-title{font-family:var(--font-heading);color:var(--white);text-shadow:0 2px 24px #0000004d;font-size:clamp(2rem,4.5vw,3.6rem);font-weight:900;line-height:1.05}.portal-hero-title span{color:var(--gold-light)}.portal-gold-bar{background:var(--gold);border-radius:2px;width:50px;height:3px;margin:1rem auto}.portal-hero-desc{color:#ffffffb8;max-width:540px;font-size:clamp(.82rem,1.4vw,.98rem);line-height:1.7}.portal-hero-cta{background:var(--gold);color:var(--navy-dark);border-radius:50px;align-items:center;gap:.5rem;margin-top:1.2rem;padding:.65rem 1.7rem;font-size:.88rem;font-weight:600;text-decoration:none;transition:background .25s,transform .2s;animation:.8s .5s both portalFadeUp;display:inline-flex;box-shadow:0 5px 20px #c8960c66}.portal-hero-cta:hover{background:var(--gold-light);transform:translateY(-2px)}.portal-info-row{grid-template-columns:repeat(3,1fr);gap:.9rem;padding:0 0 1rem;display:grid}.portal-info-card{background:#ffffff12;border:1px solid #ffffff21;border-radius:12px;align-items:flex-start;gap:.75rem;padding:1rem 1rem .9rem;transition:background .22s,transform .22s;display:flex}.portal-info-card:hover{background:#ffffff1f;transform:translateY(-3px)}.portal-info-icon{width:42px;height:42px;color:var(--gold-light);letter-spacing:.08em;background:#c8960c1a;border:1px solid #c8960c38;border-radius:12px;flex-shrink:0;place-items:center;font-size:.85rem;font-weight:800;display:grid}.portal-info-icon i,.portal-ql-icon i{font-size:1rem;line-height:1}.portal-info-text h4{font-family:var(--font-heading);color:var(--white);margin-bottom:.25rem;font-size:.92rem;font-weight:700}.portal-info-text p{color:#ffffff8c;font-size:.75rem;line-height:1.55}.portal-quick-links{padding-bottom:1rem}.portal-ql-label{letter-spacing:.2em;text-transform:uppercase;color:var(--gold-light);margin-bottom:.55rem;font-size:.62rem;font-weight:600}.portal-ql-row{grid-template-columns:repeat(4,1fr);gap:.75rem;display:grid}.portal-ql-card{appearance:none;text-align:center;color:var(--white);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:11px;padding:.85rem .6rem;text-decoration:none;display:block;position:relative;overflow:hidden}.portal-ql-card:after{content:"";opacity:0;background:linear-gradient(135deg,#c8960c26,#0000);transition:opacity .22s;position:absolute;inset:0}.portal-ql-card:hover{border-color:var(--gold);background:#ffffff1a;transform:translateY(-3px)}.portal-ql-card:hover:after{opacity:1}.portal-ql-icon{width:34px;height:34px;color:var(--gold-light);letter-spacing:.08em;background:#c8960c1f;border:1px solid #c8960c38;border-radius:10px;place-items:center;margin:0 auto .4rem;font-size:.72rem;font-weight:800;display:grid}.portal-ql-name{font-family:var(--font-heading);margin-bottom:.15rem;font-size:.85rem;font-weight:700;display:block}.portal-ql-arrow{letter-spacing:.08em;color:var(--gold-light);font-size:.62rem;font-weight:500}.portal-footer{z-index:2;text-align:center;color:#ffffff61;background:#094f4f59;border-top:1px solid #ffffff1a;padding:.8rem 1.5rem;font-size:.72rem;position:relative}.portal-footer span{margin:0 .3rem;display:inline-block}.portal-footer a{color:var(--gold-light);font-weight:600;text-decoration:none;transition:color .2s}.portal-footer a:hover{color:var(--gold);text-decoration:underline}.portal-foot-divider{vertical-align:middle;background:#fff3;width:1px;height:.75em;margin:0 .5rem;display:inline-block}.portal-footer-note{color:#ffffff40;font-size:.65rem}@media (width<=700px){.portal-bg{background:radial-gradient(75% 55% at 10% 20%,#0e6b6b61 0%,#0000 60%),radial-gradient(60% 60% at 90% 10%,#c8960c14 0%,#0000 55%),linear-gradient(145deg,#051a1a 0%,#073535 50%,#051a1a 100%)}.portal-overlay,.portal-content,.portal-top-bar,.portal-hero-eyebrow,.portal-hero-title,.portal-gold-bar,.portal-hero-desc,.portal-login-options,.portal-admin-note,.portal-footer,.portal-hero-brand,.portal-info-row,.portal-ql-row{animation:none!important}.portal-content{width:min(100% - 1.5rem,1100px)}.portal-tag{display:none}.portal-top-bar{padding-top:.9rem}.portal-hero-title{font-size:clamp(1.8rem,8vw,2.6rem)}.portal-hero-desc br{display:none}.portal-hero-centre{padding:1rem 0 .6rem}.portal-info-row{grid-template-columns:1fr;gap:.65rem}.portal-ql-row{grid-template-columns:repeat(2,1fr);gap:.65rem}.portal-info-card{padding:.8rem .9rem}.portal-ql-card{padding:.8rem .5rem}.portal-ql-icon{width:30px;height:30px}.portal-ql-name{font-size:.8rem}}@media (width<=420px){.portal-crest{width:38px;height:38px;font-size:.95rem}.portal-school-name{font-size:.85rem}.portal-hero-cta{padding:.6rem 1.4rem;font-size:.82rem}.portal-head-link{padding:.58rem .9rem;font-size:.72rem}}.portal-login-options{flex-direction:column;gap:24px;width:100%;max-width:520px;margin:32px auto 0;display:flex}.portal-login-card{appearance:none;color:var(--white);cursor:pointer;font:inherit;text-align:left;cursor:pointer;background:linear-gradient(135deg,#ffffff1a,#ffffff0d);border:2px solid #c8960c40;border-radius:24px;align-items:center;gap:24px;width:100%;padding:28px 32px;text-decoration:none;transition:all .4s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative;overflow:hidden;box-shadow:0 12px 48px #0000004d}.portal-login-card:before{content:"";opacity:0;background:linear-gradient(135deg,#c8960c26,#0000 70%);transition:opacity .4s;position:absolute;inset:0}.portal-login-card:hover{border-color:var(--gold);transform:translateY(-8px)scale(1.02);box-shadow:0 20px 64px #c8960c59,0 0 40px #c8960c33}.portal-login-card:hover:before{opacity:1}.portal-login-card:active{transform:translateY(-4px)scale(1.01)}.portal-login-icon{width:72px;height:72px;color:var(--gold-light);z-index:1;background:linear-gradient(135deg,#c8960c40,#c8960c26);border:2px solid #c8960c66;border-radius:20px;flex-shrink:0;justify-content:center;align-items:center;font-size:2rem;transition:all .4s;display:flex;position:relative;box-shadow:0 8px 24px #c8960c33}.portal-login-card:hover .portal-login-icon{background:linear-gradient(135deg, var(--gold), var(--gold-light));color:var(--navy-dark);transform:rotate(5deg)scale(1.1);box-shadow:0 12px 32px #c8960c66}.portal-login-content{z-index:1;flex:1;position:relative}.portal-login-title{font-family:var(--font-heading);color:var(--white);letter-spacing:-.01em;margin:0 0 8px;font-size:1.6rem;font-weight:700}.portal-login-desc{color:#ffffffbf;margin:0 0 16px;font-size:.95rem;font-weight:500;line-height:1.5}.portal-login-cta{color:var(--gold-light);align-items:center;gap:12px;font-size:.95rem;font-weight:700;transition:all .3s;display:inline-flex}.portal-login-cta i{transition:transform .3s}.portal-login-card:hover .portal-login-cta{color:var(--gold);gap:16px}.portal-login-card:hover .portal-login-cta i{transform:translate(4px)}.portal-teacher-card{background:#ffffff14;border:1.5px solid #c8960c40;border-radius:50px;flex-direction:row;justify-content:center;align-items:center;gap:12px;max-width:320px;margin:0 auto;padding:14px 28px}.portal-teacher-card .portal-login-icon{background:#c8960c26;border:1px solid #c8960c4d;border-radius:8px;width:32px;height:32px;font-size:1rem}.portal-teacher-card .portal-login-content{align-items:center;gap:8px;display:flex}.portal-teacher-card .portal-login-title{margin:0;font-size:1rem;font-weight:700}.portal-teacher-card .portal-login-desc,.portal-teacher-card .portal-login-cta{display:none}.portal-teacher-card:hover{transform:translateY(-4px)scale(1.05);box-shadow:0 12px 36px #c8960c4d}.portal-admin-note{color:#fff9;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:50px;align-items:center;gap:8px;margin-top:32px;padding:12px 24px;font-size:.85rem;display:inline-flex}.portal-admin-note i{color:var(--gold-light);font-size:.9rem}.portal-dev-link{font-weight:700;transition:all .3s;color:var(--gold-light)!important}.portal-dev-link:hover{transform:translateY(-1px);color:var(--gold)!important;text-decoration:underline!important}.portal-hero-brand{margin-bottom:24px}.portal-hero-brand .portal-logo{border:2px solid #c8960c4d;width:80px;height:80px;padding:8px;box-shadow:0 12px 48px #c8960c4d}.portal-hero-brand .portal-school-name{margin-top:16px;font-size:clamp(1.1rem,2.5vw,1.4rem)}.portal-hero-brand .portal-school-name small{letter-spacing:.2em;margin-bottom:4px;font-size:.75rem}@media (width<=700px){.portal-login-options{gap:20px;max-width:100%;margin-top:24px}.portal-login-card{text-align:center;flex-direction:column;gap:20px;padding:24px 20px}.portal-login-icon{width:64px;height:64px;font-size:1.75rem}.portal-login-title{font-size:1.4rem}.portal-login-desc{font-size:.88rem}.portal-teacher-card{text-align:left;flex-direction:row;max-width:280px;padding:12px 24px}.portal-teacher-card .portal-login-icon{width:28px;height:28px;font-size:.9rem}.portal-teacher-card .portal-login-title{font-size:.95rem}.portal-admin-note{margin-top:24px;padding:10px 20px;font-size:.8rem}.portal-hero-brand .portal-logo{width:70px;height:70px}}@media (width<=420px){.portal-login-card{border-radius:20px;padding:20px 16px}.portal-login-icon{border-radius:16px;width:56px;height:56px;font-size:1.5rem}.portal-teacher-card{border-radius:40px;max-width:260px;padding:10px 20px}.portal-teacher-card .portal-login-icon{border-radius:6px;width:26px;height:26px;font-size:.85rem}.portal-teacher-card .portal-login-title{font-size:.9rem}.portal-hero-brand .portal-logo{width:60px;height:60px}}:root{--navy:#0e6b6b;--navy-dark:#094f4f;--gold:#c8960c;--gold-light:#e8b020;--gold-pale:#f5e6c0;--white:#fff;--light-bg:#f9f6ef;--text:#1a2e2e;--text-muted:#5a6e6e;--border:#e2d5b0;--success-bg:#e6f4ea;--success-text:#137333;--danger-bg:#fce8e6;--danger-text:#c5221f;--warning-bg:#fef7e0;--warning-text:#b06000;--info-bg:#e8f0fe;--info-text:#1a73e8;--font-heading:"Playfair Display", serif;--font-body:"Nunito", sans-serif;--font-stats:"Oswald", sans-serif;--font-counter:"Bebas Neue", sans-serif;--sidebar-width:240px;--header-height:64px;--safe-area-inset-top:env(safe-area-inset-top);--safe-area-inset-right:env(safe-area-inset-right);--safe-area-inset-bottom:env(safe-area-inset-bottom);--safe-area-inset-left:env(safe-area-inset-left);--shadow-sm:0 2px 8px #0e6b6b0f;--shadow-md:0 4px 20px #0e6b6b14;--shadow-lg:0 12px 40px #0e6b6b29;--transition:all .3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;max-width:100%;overflow-x:hidden}body{font-family:var(--font-body);color:var(--text);background:#051a1a;line-height:1.6;overflow-x:hidden}#root{width:100%;min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--navy);font-weight:700}a{color:inherit;transition:var(--transition);text-decoration:none}button{font-family:var(--font-body);cursor:pointer;transition:var(--transition);background:0 0;border:none}input,select,textarea{font-family:var(--font-body);outline:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--gold-pale);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--navy);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--navy-dark)}@keyframes shimmer{0%{background-position:200%}to{background-position:-200%}}@keyframes heroFadeUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes badgePop{0%{transform:scale(.5)}70%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes ringPulse{0%{opacity:.8;transform:scale(1)}50%{opacity:0;transform:scale(1.15)}to{opacity:0;transform:scale(1)}}@keyframes particleRise{0%{opacity:0;transform:translateY(0)}20%{opacity:1}80%{opacity:1}to{opacity:0;transform:translateY(-120px)}}@keyframes lineGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes twinkle{0%{opacity:.2;transform:scale(.6)}50%{opacity:1;transform:scale(1)}to{opacity:.2;transform:scale(.6)}}@keyframes ticker{0%{transform:translate(100%)}to{transform:translate(-100%)}}@keyframes morphBlob{0%{border-radius:60% 40% 30% 70%/60% 30% 70% 40%}50%{border-radius:30% 60% 70% 40%/50% 60% 30%}to{border-radius:60% 40% 30% 70%/60% 30% 70% 40%}}@keyframes spinSlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spinReverse{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes floatOrbA{0%{transform:translateY(0)}50%{transform:translateY(-20px)}to{transform:translateY(0)}}@keyframes glitchTitle{0%{transform:skew(0)}2%{transform:skew(-3deg)}4%{transform:skew(3deg)}6%{transform:skew(0)}to{transform:skew(0)}}@keyframes miniCardFloat{0%{transform:translateY(0)}50%{transform:translateY(-8px)}to{transform:translateY(0)}}@keyframes heroImgZoom{0%{transform:scale(1)}50%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes gridFloat{0%{transform:perspective(1000px)rotateX(60deg)translateY(0)}to{transform:perspective(1000px)rotateX(60deg)translateY(100px)}}@keyframes aboutImgFloat{0%{transform:translateY(0)rotate(.4deg)}50%{transform:translateY(-14px)rotate(-.4deg)}to{transform:translateY(0)rotate(.4deg)}}@keyframes badgeCardBounce{0%{opacity:0;transform:scale(0)rotate(-10deg)}70%{opacity:1;transform:scale(1.12)rotate(5deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes lineExpandA{0%{width:0}to{width:60px}}@keyframes pulseBorderA{0%{box-shadow:0 0 #c8960c66}70%{box-shadow:0 0 0 10px #c8960c00}to{box-shadow:0 0 #c8960c00}}@keyframes pulse{0%{opacity:.88;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}to{opacity:.88;transform:scale(1)}}.text-navy{color:var(--navy)}.text-gold{color:var(--gold)}.bg-navy{background-color:var(--navy)}.bg-gold{background-color:var(--gold)}.btn-primary{background:linear-gradient(135deg, var(--navy), var(--navy-dark));color:var(--white);border-radius:50px;padding:10px 24px;font-weight:600;position:relative;overflow:hidden}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 15px #0e6b6b4d}.btn-gold{background:linear-gradient(135deg, var(--gold), var(--gold-light), #f5c842);color:var(--navy-dark);background-size:200%;border-radius:50px;padding:10px 24px;font-weight:800;animation:3s linear infinite shimmer;position:relative;overflow:hidden}.btn-gold:hover{transform:translateY(-2px);box-shadow:0 6px 20px #c8960c4d}.btn-outline{border:1.5px solid var(--navy);color:var(--navy);border-radius:8px;padding:8px 16px;font-weight:600}.btn-outline:hover{background:var(--navy);color:var(--white)}.input-field{border:1.5px solid var(--border);font-family:var(--font-body);width:100%;transition:var(--transition);background:var(--white);border-radius:11px;padding:12px 14px;font-size:.88rem}.input-field:focus{border-color:var(--navy);background:#0e6b6b05;transform:translateY(-2px);box-shadow:0 0 0 3px #0e6b6b26}.empty-state{border:2px dashed var(--border);text-align:center;color:var(--text-muted);background:#0e6b6b05;border-radius:16px;padding:40px}.student-dashboard-grid,.student-quick-grid,.student-news-grid,.student-fee-options,.student-attendance-stats,.student-profile-grid,.student-report-info-grid,.student-card,.student-polaroid-card,.student-fee-main-card,.student-fee-option-card,.student-profile-card,.student-table-card,.student-report-card{min-width:0}.student-table-wrap{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.student-table-wrap table{min-width:640px}.student-week-attendance-table{min-width:0!important}.mobile-bottom-bar.force-visible{display:flex!important}.teacher-table-wrap{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.teacher-table-wrap table{min-width:640px}@media (width<=1180px){.student-dashboard-grid{grid-template-columns:1fr!important}.student-fee-options,.student-attendance-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}.student-profile-grid{grid-template-columns:1fr!important}.student-header-right{gap:12px!important}.student-search-input{width:140px!important}.teacher-dashboard-grid,.teacher-quick-grid{grid-template-columns:1fr!important}}@media (width<=760px){button,.btn-primary,.btn-gold,.btn-outline{min-height:48px!important}input,select,textarea{min-height:48px}.admin-content table,.teacher-content table,.student-content table{-webkit-overflow-scrolling:touch;width:100%;display:block;overflow-x:auto}.teacher-shell{display:block!important}.teacher-sidebar,.teacher-mobile-topbar{display:none!important}.teacher-mobile-nav{border-bottom:3px solid var(--gold);background:linear-gradient(135deg,#051a1a 0%,#0a5d5d 100%);grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 16px 12px;display:grid!important}.teacher-mobile-nav a{justify-content:center;min-width:0;gap:6px!important;padding:8px 6px!important;font-size:.68rem!important}.teacher-mobile-nav a span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.teacher-main{margin-left:0!important}.teacher-header{flex-direction:row!important;align-items:center!important;gap:6px!important;height:auto!important;min-height:40px!important;padding:6px 10px!important;position:sticky!important;top:0!important}.teacher-header-right{flex-wrap:nowrap!important;justify-content:flex-end!important;gap:4px!important;margin-left:auto!important;overflow:hidden!important}.teacher-header-right button,.teacher-header-right .teacher-header-year-pill,.teacher-header-right .teacher-header-avatar{height:30px!important;min-height:30px!important}.teacher-content{padding:16px 14px 24px!important}.teacher-logout-btn{display:none!important}.teacher-hero-banner{border-radius:14px!important;padding:20px 18px!important}.teacher-dashboard-grid,.teacher-quick-grid,.teacher-class-list,.marks-overview-stats,.marks-overview-panels,.marks-overview-bottom-grid,.marks-overview-filters{grid-template-columns:1fr!important}.marks-overview-hero{flex-direction:column!important}.marks-overview-hero button{width:100%}.marks-overview-panel{border-radius:14px!important;padding:16px!important}.marks-overview-class-shelf{padding:16px!important}.marks-overview-class-grid{flex-direction:column!important}.marks-overview-class-grid>button{width:100%}.marks-overview-table-wrap,.marks-overview-result-wrap{margin-top:12px}.marks-overview-class-overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}.marks-overview-student-header{grid-template-columns:1fr!important}.marks-overview-teacher-list,.marks-overview-student-list{max-height:none!important}.marks-overview-page table{min-width:640px}.teacher-class-card,.teacher-attendance-card{border-radius:14px!important;padding:18px!important}.teacher-attendance-header,.teacher-attendance-footer,.teacher-attendance-actions{flex-direction:column!important;align-items:stretch!important;gap:12px!important}.teacher-attendance-header select,.teacher-attendance-actions button{width:100%}.teacher-attendance-date-picker{width:100%!important}.teacher-attendance-date-picker-row{grid-template-columns:1fr!important;gap:8px!important}.teacher-attendance-list{max-height:none!important;padding-right:0!important}.student-shell{display:block!important}.student-sidebar{display:none!important}.student-mobile-topbar{border-bottom:2px solid var(--gold);padding:12px 14px calc(12px + env(safe-area-inset-top,0px));z-index:95;background:linear-gradient(135deg,#051a1a 0%,#094f4f 100%);justify-content:space-between;align-items:center;gap:10px;position:sticky;top:0;display:flex!important}.student-mobile-brand-copy{display:none}.student-mobile-install{display:none!important}.student-mobile-subtitle{display:-webkit-box}.student-mobile-nav{border-bottom:3px solid var(--gold);background:linear-gradient(135deg,#051a1a 0%,#0a5d5d 100%);grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 16px 12px;display:grid!important}.student-mobile-nav a{justify-content:center;min-width:0;gap:6px!important;padding:8px 6px!important;font-size:.68rem!important}.student-mobile-nav a span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.student-main{margin-left:0!important;padding-top:0!important}.student-header{display:none!important}.student-header-right{flex-wrap:nowrap!important;justify-content:flex-end!important;gap:8px!important;margin-left:auto!important;overflow-x:auto!important}.student-header-right button,.student-header-right .headerYearPill,.student-header-right .headerAvatar{min-height:48px}.student-search,.student-breadcrumb{display:none!important}.student-content{padding:16px 14px 120px!important}.mobile-bottom-bar{padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));border-radius:18px;justify-content:flex-start;width:auto;bottom:8px;left:8px;right:8px;overflow:hidden}.mobile-bottom-bar>button{border-radius:12px!important;flex:0 0 40px!important;width:40px!important;min-width:40px!important;min-height:38px!important;padding:0!important;font-size:.5rem!important}.mobile-bottom-bar>div{-webkit-overflow-scrolling:touch;scrollbar-width:none;justify-content:flex-start;align-items:center;gap:6px;min-width:0;display:flex;overflow-x:auto;flex:1 1 0!important}.mobile-bottom-bar>div::-webkit-scrollbar{display:none}.mobile-bottom-bar>div>a{border-radius:12px!important;flex:0 0 40px!important;width:40px!important;min-width:40px!important;min-height:38px!important;padding:0!important;font-size:.5rem!important}.mobile-bottom-bar>button span,.mobile-bottom-bar>div>a span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.student-logout-btn{display:none!important}.student-dashboard-grid,.student-quick-grid,.student-news-grid,.student-fee-options,.student-attendance-stats,.student-profile-grid,.student-report-info-grid{grid-template-columns:1fr!important}.student-card,.student-polaroid-card,.student-fee-main-card,.student-fee-option-card,.student-profile-card,.student-report-card{border-radius:14px!important;padding:20px!important}.student-badge-row,.student-fee-card-top,.student-fee-stats,.student-fee-progress,.student-profile-header,.student-attendance-card-header,.student-report-header,.student-report-summary,.student-report-signatures{flex-direction:column!important;align-items:stretch!important;gap:14px!important}.student-fee-main-card{margin-bottom:28px!important}.student-fees-page,.student-fee-main-card,.student-balance-pay-card,.student-term-card,.student-table-card{width:100%!important}.student-fee-main-card{padding:18px!important}.student-fee-stats{gap:12px!important}.student-fee-stats>div{width:100%}.student-fee-progress{gap:12px!important}.student-balance-pay-card{padding:16px!important}.student-balance-pay-card button{width:100%}.student-term-grid{grid-template-columns:1fr!important;gap:14px!important}.student-term-card{padding:16px!important}.student-term-header{flex-direction:column!important;align-items:stretch!important}.student-term-badge{align-self:flex-start}.student-term-actions{width:100%}.student-term-actions button{width:100%;min-width:0!important}.student-table-card{padding:16px!important;overflow:hidden!important}.student-fee-option-card{text-align:left!important;align-items:flex-start!important}.student-print-actions{justify-content:stretch!important}.student-print-actions button{width:100%}.student-report-card{overflow:visible!important}.student-marks-page{max-width:100%!important}.student-marks-selector-shell,.student-marks-page .student-report-summary,.student-marks-page .student-print-actions,.student-marks-page .student-marks-exam-type-select{width:100%!important}.student-marks-selector-shell{padding:16px!important}.student-marks-selector-shell .student-marks-exam-type-select{min-height:44px!important;font-size:.92rem!important}.student-marks-page .student-print-actions{gap:10px!important}.student-marks-page .student-print-actions button{flex:1 1 0!important}.student-report-card h1{font-size:1.45rem!important;line-height:1.15!important}.student-report-signatures>div{width:100%!important}.student-table-card{padding:18px!important}.student-payment-history-table,.student-payment-history-table thead,.student-payment-history-table tbody,.student-payment-history-table tr,.student-payment-history-table td{width:100%!important;display:block!important}.student-payment-history-table thead{display:none!important}.student-payment-history-table tr{background:var(--light-bg);border:1px solid var(--border);border-radius:16px;margin-bottom:12px;padding:12px 14px}.student-payment-history-table td{text-align:right;justify-content:space-between;align-items:flex-start;gap:14px;display:flex;border:none!important;padding:7px 0!important}.student-payment-history-table td:before{content:attr(data-label);text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);flex:0 0 40%;font-size:.74rem;font-weight:800}.student-payment-history-table td:last-child{justify-content:flex-end;padding-top:10px!important}.student-payment-history-table td:last-child:before{display:none}.student-payment-history-table td:last-child button{width:100%}.student-upi-modal .student-upi-info-grid{grid-template-columns:1fr!important}.student-upi-modal .student-upi-amount-buttons{grid-template-columns:1fr!important;gap:10px!important;display:grid!important}.student-upi-modal .student-upi-amount-buttons button{white-space:normal;text-align:left;width:100%;line-height:1.35}.student-upi-modal button{width:100%}.student-claim-box{gap:12px!important}.student-marks-page .student-marks-panel{padding:16px!important}.student-marks-page .student-marks-header{flex-direction:column!important;align-items:stretch!important}.student-marks-page .student-marks-badge{width:fit-content}.student-attendance-week-controls{grid-template-columns:36px minmax(0,1fr) 36px;width:100%;display:grid!important}.student-attendance-week-controls input{width:100%;min-width:0}.mobile-bottom-bar,.mobile-bottom-bar.force-visible{display:flex!important}}@media (width<=420px){.student-marks-page .student-report-summary{gap:10px!important;padding:12px!important}.student-marks-page .student-report-summary>div{flex:1 1 0!important;min-width:0!important}.student-marks-page .student-report-summary .summaryVal{font-size:1.25rem!important}.mobile-bottom-bar{padding:5px 6px calc(5px + env(safe-area-inset-bottom,0px));gap:6px;bottom:6px;left:6px;right:6px}.mobile-bottom-bar>button{width:36px!important;min-width:36px!important;min-height:36px!important}.mobile-bottom-bar>div{gap:4px}.mobile-bottom-bar>div>a{width:36px!important;min-width:36px!important;min-height:36px!important}.mobile-bottom-bar>button span,.mobile-bottom-bar>div>a span{display:none!important}.mobile-bottom-bar>button i,.mobile-bottom-bar>div>a i{font-size:.86rem!important}.student-content{padding:14px 14px 120px!important}.student-card,.student-polaroid-card,.student-fee-main-card,.student-fee-option-card,.student-profile-card,.student-report-card{padding:16px!important}.student-fee-main-card,.student-balance-pay-card,.student-term-card,.student-table-card{padding:14px!important}.student-payment-history-table tr{padding:10px 12px!important}.student-payment-history-table td{gap:10px!important}.student-payment-history-table td:before{flex-basis:44%}}html{-webkit-text-size-adjust:100%}img,video,canvas,svg{max-width:100%;height:auto}button,input,select,textarea{font:inherit}button,.btn-primary,.btn-gold,.btn-outline{min-height:44px}input,select,textarea{max-width:100%}.responsive-table-shell,.app-shell,.admin-shell,.teacher-shell,.student-shell,.portal-page,.portal-content,.admin-main,.teacher-main,.student-main{min-width:0}table{max-width:100%}@media (width<=1180px){.admin-dashboard-grid,.admin-dashboard-split,.teacher-dashboard-grid,.teacher-quick-grid,.marks-overview-stats,.marks-overview-panels,.marks-overview-bottom-grid,.student-dashboard-grid,.student-quick-grid,.student-news-grid,.student-fee-options,.student-attendance-stats,.student-profile-grid,.student-report-info-grid{grid-template-columns:1fr!important}.admin-hero-banner,.teacher-hero-banner,.marks-overview-hero{align-items:stretch!important}.admin-hero-actions,.teacher-class-actions,.marks-overview-filters,.student-fee-stats,.student-fee-progress{flex-wrap:wrap!important}.marks-overview-filters{grid-template-columns:1fr 1fr!important}.marks-overview-filters>:last-child{grid-column:1/-1}}@media (width<=760px){.admin-shell{display:block!important}.admin-sidebar,.admin-mobile-topbar{display:none!important}.admin-mobile-nav{border-bottom:3px solid var(--gold);-webkit-overflow-scrolling:touch;background:linear-gradient(135deg,#051a1a 0%,#0a5d5d 100%);grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 16px 12px;overflow-x:auto;display:grid!important}.admin-mobile-nav a{justify-content:center;min-width:0;gap:6px!important;padding:8px 6px!important;font-size:.68rem!important}.admin-mobile-nav a span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-main{margin-left:0!important;padding-top:10px!important}.admin-header{flex-direction:row!important;align-items:center!important;gap:10px!important;height:auto!important;padding:12px 14px!important;position:sticky!important;top:0!important}.admin-header-right{flex-wrap:nowrap!important;justify-content:flex-end!important;gap:8px!important;margin-left:auto!important;overflow-x:auto!important}.admin-header-right button,.admin-header-right .badge,.admin-header-right .adminAvatar{min-height:48px}.admin-content{padding:16px 14px 104px!important}.admin-logout-btn{display:block!important}.admin-content [style*=grid-template-columns]{grid-template-columns:1fr!important}.admin-content .responsive-table-shell{border-radius:14px}.admin-content table{min-width:640px}.admin-content button{min-height:44px}.teacher-shell{display:block!important}.teacher-sidebar,.teacher-mobile-topbar{display:none!important}.teacher-mobile-nav{border-bottom:3px solid var(--gold);-webkit-overflow-scrolling:touch;background:linear-gradient(135deg,#051a1a 0%,#0a5d5d 100%);grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 16px 12px;overflow-x:auto;display:grid!important}.teacher-mobile-nav a{justify-content:center;min-width:0;gap:6px!important;padding:8px 6px!important;font-size:.68rem!important}.teacher-main{margin-left:0!important;padding-top:10px!important}.teacher-header{flex-direction:row!important;align-items:center!important;gap:4px!important;height:auto!important;min-height:36px!important;padding:4px 8px!important;position:sticky!important;top:0!important}.teacher-headerBrand,.teacher-header-brand{min-width:0;gap:6px!important}.teacher-header-brand>div,.teacher-headerBrand>div{min-width:0}.teacher-header .teacher-header-brand,.teacher-header .teacher-headerBrand{flex:1}.teacher-header-right{flex-wrap:nowrap;justify-content:flex-end;width:auto;gap:4px!important}.teacher-mobile-bottom-bar{padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px))!important;border-radius:18px!important;gap:6px!important;bottom:8px!important;left:8px!important;right:8px!important}.teacher-mobile-bottom-bar>button,.teacher-mobile-bottom-bar a{border-radius:12px!important;min-width:0!important;min-height:38px!important;padding:4px 8px!important;font-size:.52rem!important}.teacher-mobile-bottom-bar>div{gap:6px!important}.teacher-content{padding:16px 14px 104px!important}.teacher-fees-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;padding:16px!important}.teacher-fees-stats .statBox{border-right:none!important}.teacher-fees-filter-row{flex-direction:column!important;gap:10px!important}.teacher-fees-context{flex-direction:column!important;align-items:flex-start!important}.teacher-fees-grid{grid-template-columns:1fr!important;gap:16px!important;height:auto!important}.teacher-fees-list,.teacher-fees-detail{min-height:0!important;max-height:none!important;padding:14px!important}.teacher-fees-detail{display:none!important}.teacher-fees-mobile-sheet .teacher-fees-detail-header{margin-bottom:18px!important;padding-bottom:16px!important}.teacher-fees-mobile-sheet .teacher-fees-metrics{margin-bottom:20px!important}.teacher-fees-card{flex-direction:column!important;align-items:flex-start!important;gap:10px!important}.teacher-fees-card-meta{justify-content:space-between;align-items:center;width:100%;display:flex}.teacher-fees-detail-header{flex-direction:column!important;align-items:flex-start!important;gap:14px!important}.teacher-fees-detail-header button{justify-content:center;width:100%}.teacher-fees-metrics{grid-template-columns:1fr!important;gap:12px!important}.teacher-fees-table-shell{-webkit-overflow-scrolling:touch;overflow-x:auto}.teacher-fees-table-shell table{min-width:520px}.teacher-hero-banner{border-radius:14px!important;padding:20px 18px!important}.teacher-dashboard-grid,.teacher-quick-grid,.teacher-class-list{grid-template-columns:1fr!important}.teacher-class-card,.teacher-attendance-card{border-radius:14px!important;padding:18px!important}.teacher-attendance-header,.teacher-attendance-footer,.teacher-attendance-actions{flex-direction:column!important;align-items:stretch!important;gap:12px!important}.teacher-attendance-header select,.teacher-attendance-actions button{width:100%}.teacher-attendance-date-picker{margin-top:4px;width:100%!important}.teacher-attendance-date-picker-row{grid-template-columns:1fr!important;gap:8px!important}.teacher-attendance-list{max-height:none!important;padding-right:0!important}}@media (pointer:coarse){button,input,select,textarea{touch-action:manipulation}}@media (width<=420px){.teacher-header{gap:4px!important;min-height:36px!important;padding:4px 8px!important}.teacher-headerBrand,.teacher-header-brand{gap:8px!important}.teacher-header-logo{width:24px!important;height:24px!important}.teacher-header .pageTitle,.teacher-page-title{font-size:.82rem!important;line-height:1.1!important}.teacher-header .breadcrumb,.teacher-breadcrumb{display:none!important}.teacher-header-right{gap:3px!important}.teacher-header-right .teacher-logout-btn,.teacher-header-right button{min-width:0!important}.teacher-header-right .teacher-logout-btn{display:none!important}.teacher-header-right .teacher-header-year-pill{padding:1px 6px!important;font-size:.56rem!important}.teacher-header-right .teacher-header-avatar{width:24px!important;height:24px!important;font-size:.68rem!important}.teacher-fees-stats{grid-template-columns:1fr!important}.teacher-fees-stats .statBox:last-child{border-right:none!important}.teacher-fees-card,.teacher-fees-detail{padding:12px!important}.teacher-fees-detail-header .teacher-fees-action,.teacher-fees-detail-header button{width:100%}.teacher-fees-modal-actions{flex-direction:column!important}.teacher-fees-modal-actions button{width:100%}.teacher-header .teacher-breadcrumb,.teacher-breadcrumb{display:none!important}.student-mobile-topbar{padding:10px 10px calc(10px + var(--safe-area-inset-top));min-height:60px}.student-mobile-brand-copy{display:none!important}.student-mobile-logo{width:36px;height:36px}.student-mobile-school-name{font-size:.82rem}.student-mobile-year-pill{padding:5px 9px;font-size:.62rem}.student-mobile-logout{width:34px;height:34px}.mobile-bottom-bar,.mobile-bottom-bar.force-visible{display:flex!important}}
