@import "https://fonts.googleapis.com/css2?family=Dancing+Script:wght@600&family=Montserrat:ital,wght@0,400;0,600;0,800;1,500&family=Noto+Nastaliq+Urdu:wght@400;600;700&family=Noto+Sans+Arabic:wght@400;600;700&family=Nunito:wght@600;700;800&display=swap";:root{--navy:#0a274d;--navy-deep:#06152c;--navy-muted:#1c4a7a;--teal:#178f8f;--teal-bright:#24b3b0;--teal-soft:#e7f6f5;--gold:#d4a017;--gold-bright:#f0c14b;--gold-soft:#fbf4e3;--white:#fff;--paper:#fff;--bg:#f4f5f7;--text:#111827;--text-muted:#6b7280;--border:#e5e7eb;--danger:#b23a32;--success:#1f7a52;--shadow:0 10px 28px #1c19170f;--shadow-hover:0 14px 32px #1c19171a;--radius:16px;--radius-sm:10px;--sidebar-width:240px;--overlay-z:1000;--overlay-z-confirm:1001;--modal-inset:1%;--header-height:76px;--page-pad:clamp(16px, 2.6vw, 32px);--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--font-serif:"Fraunces", Georgia, "Times New Roman", serif;--font-sans:"Plus Jakarta Sans", "Outfit", "Segoe UI", system-ui, sans-serif}@media (width<=767px){:root{--modal-inset:0.5%}}.eco-dash{gap:16px;display:grid}.eco-period-bar{flex-wrap:wrap;align-items:center;gap:12px 16px;display:flex}.eco-period-pills{background:#fff;border-radius:14px;flex-wrap:wrap;gap:6px;padding:6px;display:flex;box-shadow:0 8px 24px #12263a0d}.eco-period-pills button{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:10px;min-height:36px;padding:0 12px;font-weight:650}.eco-period-pills button.is-on{color:#fff;background:#12263a}.eco-period-dates{flex-wrap:wrap;gap:10px;display:flex}.eco-period-dates label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;gap:4px;font-size:.72rem;font-weight:700;display:grid}.eco-period-dates input{min-height:38px;color:var(--navy);background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:0 10px;font-weight:600}.eco-period-range{color:var(--text-muted);margin:0 0 0 auto;font-size:.86rem;font-weight:600}.eco-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0 0 6px;font-size:.72rem;font-weight:700}.eco-top{grid-template-columns:minmax(0,1.7fr) minmax(240px,.75fr) minmax(240px,.75fr);align-items:stretch;gap:16px;display:grid}.eco-health{gap:10px;display:grid}.eco-health-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.eco-health-head h3{font-family:var(--font-sans);font-size:1rem;font-weight:700}.eco-legend-inline{color:var(--text-muted);flex-wrap:wrap;gap:12px;font-size:.75rem;font-weight:650;display:flex}.eco-legend-inline i{border-radius:99px;width:8px;height:8px;margin-right:6px;display:inline-block}.eco-health-hero strong{color:var(--navy);letter-spacing:-.045em;font-size:clamp(1.85rem,2vw + 1.25rem,2.5rem);line-height:1.05;font-family:var(--font-sans);font-weight:700;display:block}.eco-health-hero span,.eco-stat span{color:var(--text-muted);font-size:.85rem}.eco-delta{border-radius:8px;align-items:center;margin:8px 0 0;padding:4px 8px;font-size:.8rem;font-weight:700;display:inline-flex}.eco-delta.up{color:#15803d;background:#ecfdf3}.eco-delta.down{color:#b91c1c;background:#fef2f2}.eco-health-foot{border-top:1px solid #eef1f4;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:2px;padding-top:12px;display:grid}.eco-health-foot span{color:var(--text-muted);font-size:.72rem;display:block}.eco-health-foot b{color:var(--navy);font-size:.98rem;font-family:var(--font-sans)}.eco-stat-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.eco-stat{justify-content:space-between;align-items:center;gap:10px;display:flex}.eco-stat strong{color:var(--navy);font-size:1.35rem;font-family:var(--font-sans);display:block}.eco-tag{color:#92400e;white-space:nowrap;background:#fef3c7;border-radius:99px;align-self:flex-start;padding:4px 8px;font-size:.72rem;font-weight:700}.eco-mid{grid-template-columns:minmax(0,1.45fr) minmax(280px,.9fr);gap:16px;display:grid}.eco-bottom{grid-template-columns:minmax(0,1fr) minmax(220px,.9fr) minmax(220px,.9fr) minmax(240px,.95fr);gap:16px;display:grid}.eco-card-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px;display:flex}.eco-big{color:var(--navy);font-size:1.8rem;font-family:var(--font-sans);display:block}.eco-seg{background:#f1f5f9;border-radius:10px;padding:3px;display:flex}.eco-seg button{color:var(--text-muted);background:0 0;border:0;border-radius:8px;padding:6px 10px;font-size:.78rem;font-weight:650}.eco-seg button.is-on{background:var(--white);color:var(--navy);box-shadow:0 1px 3px #0f172a14}.eco-donut-card{justify-items:center;gap:10px;display:grid}.eco-donut-card h3,.eco-donut-card .text-link{justify-self:start}.eco-legend{gap:6px;width:100%;margin:0;padding:0;font-size:.82rem;list-style:none;display:grid}.eco-legend i{border-radius:99px;width:8px;height:8px;margin-right:8px;display:inline-block}.eco-dist{grid-template-columns:minmax(0,1fr) 132px;align-items:start;gap:16px;display:grid}.eco-dist-side{gap:14px;display:grid}.eco-dist-side span{color:var(--text-muted);font-size:.72rem;display:block}.eco-dist-side b{color:var(--navy);font-size:1.2rem;font-family:var(--font-sans)}.eco-mini-stats{grid-template-columns:1fr 1fr;gap:10px 16px;display:grid}.eco-mini-stats-3{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px}.eco-mini-stats span{color:var(--text-muted);font-size:.72rem;display:block}.eco-mini-stats b{color:var(--navy)}.eco-side{gap:14px;display:grid}.eco-attention{gap:14px;margin:0;padding-left:18px;display:grid}.eco-attention li div{gap:2px;display:grid}.eco-attention li span{color:var(--text-muted);font-size:.82rem}.eco-activity{gap:10px;margin:0;padding:0;list-style:none;display:grid}.eco-activity li{justify-content:space-between;gap:8px;font-size:.88rem;display:flex}.eco-actions{gap:8px;display:grid}.eco-actions button{background:var(--white);min-height:40px;color:var(--navy);border:1px solid #e2e8f0;border-radius:10px;font-weight:650}.eco-actions .eco-primary{color:#fff;background:#12263a;border-color:#12263a}.hbar{gap:8px;display:grid}.hbar-row{grid-template-columns:88px minmax(0,1fr) 40px;align-items:center;gap:8px;display:grid}.hbar-label{color:var(--text-muted);font-size:.8rem}.hbar-track{background:#e2e8f0;border-radius:99px;height:8px;overflow:hidden}.hbar-track span{border-radius:99px;height:100%;display:block}.hbar-n{text-align:right;font-size:.8rem}.month-stepper{align-items:center;gap:6px;display:none}.month-stepper span{text-align:center;min-width:168px;color:var(--navy);font-weight:700}.month-stepper button{width:32px;height:32px;color:var(--navy);cursor:pointer;background:0 0;border:0;font-size:1.4rem;line-height:1}.icon-btn{border:1px solid var(--border);background:var(--white);width:42px;height:42px;color:var(--navy);cursor:pointer;border-radius:12px;place-items:center;display:grid;position:relative}.app-shell.eco-shell{--bg:#f9f7f2;background:#f9f7f2}.app-shell.eco-shell .sidebar{color:#334155;background:#fff;border-right:1px solid #eeeae3}.app-shell.eco-shell .sidebar-brand{color:#12263a;border-bottom:0}.app-shell.eco-shell .sidebar-brand strong{font-family:var(--font-sans);letter-spacing:.04em}.app-shell.eco-shell .sidebar-brand span{opacity:.65;color:#64748b}.app-shell.eco-shell .nav-icon{color:currentColor;opacity:.9}.app-shell.eco-shell .nav a,.app-shell.eco-shell .nav-group-toggle{color:#475569}.app-shell.eco-shell .nav a:hover,.app-shell.eco-shell .nav-group-toggle:hover{color:#12263a;background:#f8fafc}.app-shell.eco-shell .nav a.active,.app-shell.eco-shell .nav-group-toggle.is-active{color:#12263a;box-shadow:none;background:#f1f5f9}.app-shell.eco-shell .sidebar-user{color:#12263a;background:#f8fafc}.app-shell.eco-shell .sidebar-user span{color:#64748b;opacity:1}.app-shell.eco-shell .sidebar-foot{color:#94a3b8;opacity:1}.app-shell.eco-shell .main{background:#f9f7f2}.app-shell.eco-shell .topbar{background:0 0;border-bottom:0;justify-content:space-between;align-items:center;display:flex}.app-shell.eco-shell .topbar-copy .greet-lg{font-family:var(--font-sans)}.app-shell.eco-shell .card{background:#fff;border:0;border-radius:16px;box-shadow:0 10px 28px #12263a0f}.app-shell.eco-shell .eco-dash h3{font-family:var(--font-sans);font-size:.98rem;font-weight:700}.app-shell.eco-shell .page{padding-top:4px}.app-shell.eco-shell .sidebar-close{color:#12263a;border-color:#cbd5e1}.app-shell.eco-shell .icon-btn{display:grid}@media (width<=1280px){.eco-top,.eco-mid,.eco-bottom,.eco-stat-row,.eco-health-foot,.eco-dist,.app-shell.eco-shell .topbar{grid-template-columns:1fr}}*,:before,:after{box-sizing:border-box}html{overflow-x:clip}html,body,#root{min-height:100dvh}body{color:var(--text);background:radial-gradient(circle at top right, #178f8f14, transparent 28%), var(--bg);font-family:var(--font-sans);letter-spacing:.01em;margin:0;font-size:clamp(14px,.35vw + 13.5px,16px);line-height:1.5}body.nav-locked{overflow:hidden}h1,h2,h3{font-family:var(--font-serif);color:var(--navy);letter-spacing:-.02em;overflow-wrap:anywhere;margin:0;font-weight:600}h1{font-size:clamp(1.25rem,1.5vw + 1rem,1.75rem)}button,input{font-family:inherit}input,button,.alert-chip{font-size:16px}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}.login-page{--tilt-x:0deg;--tilt-y:0deg;--shine-x:50%;--shine-y:38%;isolation:isolate;perspective:1400px;min-height:100dvh;padding:max(20px, var(--safe-top)) max(20px, var(--safe-right)) max(20px, var(--safe-bottom)) max(20px, var(--safe-left));background:radial-gradient(70% 50% at 8% 12%,#24b3b038,#0000 52%),radial-gradient(46% 38% at 92% 88%,#f0c14b29,#0000 48%),linear-gradient(165deg,#040d1c 0%,#06152c 42%,#0a274d 72%,#0c3d4a 100%);place-items:center;display:grid;position:relative;overflow:hidden}.login-scene{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.login-orb{filter:blur(2px);border-radius:50%;animation:18s ease-in-out infinite login-orb-drift;position:absolute}.login-orb-a{background:radial-gradient(circle at 35% 35%,#24b3b08c,#178f8f14 62%,#0000 74%);width:min(42vw,420px);height:min(42vw,420px);top:-12%;left:-8%}.login-orb-b{background:radial-gradient(circle at 40% 40%,#f0c14b6b,#d4a0170f 58%,#0000 72%);width:min(34vw,340px);height:min(34vw,340px);animation-duration:22s;animation-delay:-4s;bottom:-10%;right:-6%}.login-orb-c{background:radial-gradient(circle,#ffffff29,#0a274d1f 55%,#0000 70%);width:min(22vw,220px);height:min(22vw,220px);animation-duration:16s;animation-delay:-8s;top:10%;right:18%}.login-orb-d{background:radial-gradient(circle,#24b3b047,#0000 68%);width:min(18vw,180px);height:min(18vw,180px);animation-duration:20s;animation-delay:-2s;bottom:8%;left:28%}.login-grid{opacity:.55;background-image:linear-gradient(#ffffff0b 1px,#0000 1px),linear-gradient(90deg,#ffffff0b 1px,#0000 1px);background-size:56px 56px;position:absolute;inset:-20%;transform:perspective(900px)rotateX(62deg)scale(1.35);-webkit-mask-image:radial-gradient(70% 60%,#000 20%,#0000 72%);mask-image:radial-gradient(70% 60%,#000 20%,#0000 72%)}.login-ring{border:1px solid #f0c14b24;border-radius:50%;width:min(72vw,720px);height:min(72vw,720px);animation:12s ease-in-out infinite login-ring-pulse;position:absolute;top:48%;left:50%;translate:-50% -50%;box-shadow:inset 0 0 80px #24b3b01f,0 0 120px #f0c14b14}.login-stage{--tilt-x:0deg;--tilt-y:0deg;--shine-x:50%;--shine-y:38%;z-index:1;width:min(980px,100%);transform-style:preserve-3d;transform-origin:50%;transform:rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateZ(0);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#ffffff12;border:1px solid #f0c14b47;border-radius:24px;grid-template-columns:1.05fr .95fr;transition:transform .45s cubic-bezier(.22,1,.36,1);animation:.7s both login-fade;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff14,inset 0 1px #ffffff38,0 28px 80px #0000006b,0 0 80px #f0c14b1f}.login-shine{z-index:0;pointer-events:none;background:radial-gradient(420px circle at var(--shine-x) var(--shine-y), #ffffff38, transparent 42%);mix-blend-mode:screen;opacity:.7;position:absolute;inset:0}.login-brand{z-index:1;color:#f7f4ee;background:linear-gradient(#ffffff0f,#0000),linear-gradient(135deg,#178f8f38,#0000 50%);padding:clamp(28px,5vw,48px);animation:.8s 80ms both rise;position:relative}.login-brand img{object-fit:contain;background:var(--white);border-radius:16px;width:72px;height:72px;margin-bottom:28px;padding:6px;box-shadow:0 12px 28px #00000038}.login-eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--gold-bright);margin:0 0 10px;font-size:.72rem;font-weight:600}.login-brand h1{color:var(--white);margin-bottom:14px;font-size:clamp(1.8rem,3vw,2.4rem);font-weight:500;line-height:1.15}.login-brand p{color:#f7f4eec7;max-width:34ch;margin:0;line-height:1.6}.login-panel{z-index:1;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(#f6f3eee0,#ffffffc7);border-left:1px solid #d4a01747;padding:clamp(28px,5vw,44px);animation:.8s .16s both rise;position:relative}.login-crest{object-fit:contain;width:56px;height:56px;margin-bottom:12px;animation:5.5s ease-in-out infinite login-crest-float}.login-panel h2{font-size:1.55rem;font-weight:600}.login-kicker{color:var(--teal);margin:6px 0 22px;font-size:.9rem;font-weight:600}.login-sub{letter-spacing:.04em;font-size:.82rem;margin-top:28px!important}.login-form{text-align:left;gap:14px;display:grid}.login-form label{letter-spacing:.04em;text-transform:uppercase;color:var(--navy);gap:6px;font-size:.8rem;font-weight:600;animation:.7s both login-fade;display:grid}.login-form label:first-of-type{animation-delay:.22s}.login-form label:nth-of-type(2){animation-delay:.3s}.login-form input{background:#ffffffdb;border:1px solid #0a274d1f;border-radius:12px;width:100%;min-height:46px;padding:0 14px;box-shadow:inset 0 1px 2px #0a274d0f}.login-form input:focus{border-color:var(--teal);outline:none;box-shadow:inset 0 1px 2px #0a274d0a,0 0 0 4px #178f8f2e}.login-password-wrap{display:block;position:relative}.login-password-wrap input{padding-right:46px}.login-password-toggle{width:36px;height:36px;color:var(--navy);opacity:.55;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.login-password-toggle:hover,.login-password-toggle:focus-visible{opacity:1;outline:none}.login-form .btn-gold{animation:.7s .38s both login-fade}.btn-gold{background:linear-gradient(180deg, var(--gold-bright), var(--gold));width:100%;min-height:48px;color:var(--navy-deep);letter-spacing:.02em;cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;margin-top:8px;font-weight:700;text-decoration:none;display:inline-flex;box-shadow:0 8px 20px #d4a01747}.btn-gold:hover{filter:brightness(1.04)}.login-page .btn-gold{transition:transform .2s,box-shadow .2s,filter .2s}.login-page .btn-gold:hover{transform:translateY(-2px);box-shadow:0 12px 28px #d4a01761}.login-page .btn-gold:active{transform:scale(.98)}.app-shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);min-height:100dvh;display:grid}.nav-backdrop{display:none}.sidebar{background:linear-gradient(180deg, #24b3b01f, transparent 28%), linear-gradient(180deg, var(--navy-deep), var(--navy) 40%, #0a3058);color:var(--white);z-index:90;min-height:100dvh;padding-left:var(--safe-left);border-right:1px solid #ffffff0f;flex-direction:column;display:flex;position:sticky;top:0}.sidebar-brand{padding:calc(18px + var(--safe-top)) 16px 18px;border-bottom:1px solid #ffffff14;align-items:center;gap:12px;display:flex}.sidebar-brand img{object-fit:contain;background:var(--white);border-radius:14px;flex-shrink:0;width:48px;height:48px;padding:4px;box-shadow:0 8px 20px #0000002e}.sidebar-brand strong{font-family:var(--font-serif);font-size:.95rem;display:block}.sidebar-brand span{opacity:.75;font-size:.72rem;display:block}.sidebar-close{width:36px;height:36px;min-height:36px;color:var(--white);cursor:pointer;background:0 0;border:1px solid #ffffff40;border-radius:10px;flex-shrink:0;margin-left:auto;padding:0;display:none}.sidebar-close svg{display:block}.nav{flex-direction:column;flex:1;gap:2px;padding:12px 10px;display:flex;overflow-y:auto}.nav a{color:#ffffffc7;border-radius:12px;align-items:center;gap:12px;min-height:42px;padding:8px 12px;font-size:.92rem;font-weight:500;display:flex}.nav-icon{opacity:.85;flex-shrink:0;width:18px;height:18px}.nav-group-toggle .nav-icon{width:18px;height:18px}.nav a:hover{color:var(--white);background:#ffffff14}.nav a.active{color:var(--white);background:linear-gradient(90deg,#178f8ff2,#178f8fb3);font-weight:600;box-shadow:0 8px 18px #00000029}.nav a.active .nav-icon{opacity:1}.nav-group{gap:2px;display:grid}.nav-group-toggle{appearance:none;color:#ffffffc7;width:100%;min-height:42px;font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;padding:8px 12px;font-size:.92rem;font-weight:500;display:flex}.nav-group-toggle:hover,.nav-group-toggle.is-active{color:var(--white);background:#ffffff14}.nav-caret{opacity:.8;margin-left:auto;font-size:.75rem}.nav-sub{gap:2px;padding:0 0 6px 12px;display:grid}.nav-sub a{min-height:36px;padding:6px 12px 6px 18px;font-size:.84rem}.sidebar-user{background:#ffffff14;border-radius:14px;align-items:center;gap:10px;margin:8px 12px;padding:10px 12px;display:flex}.sidebar-user strong,.sidebar-user>div span{display:block}.sidebar-user strong{font-size:.86rem}.sidebar-user>div span{opacity:.7;font-size:.72rem}.avatar{background:linear-gradient(180deg, var(--gold-bright), var(--gold));width:36px;height:36px;color:var(--navy-deep);letter-spacing:.02em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;line-height:1;display:inline-flex}.sidebar-foot{padding:10px 16px calc(16px + var(--safe-bottom));letter-spacing:.06em;text-transform:uppercase;opacity:.55;font-size:.72rem}.main{flex-direction:column;min-width:0;display:flex}.topbar{min-height:var(--header-height);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:12px var(--page-pad);padding-right:max(var(--page-pad), var(--safe-right));z-index:5;background:#ffffffd1;border-bottom:1px solid #e2e8efe6;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;display:flex;position:sticky;top:0}.topbar-copy .greet{color:var(--text-muted);margin:0;font-size:.78rem}.topbar-copy .greet-lg{font-family:var(--font-serif);color:var(--navy);letter-spacing:-.03em;margin:0;font-size:clamp(1.35rem,1.8vw + 1rem,1.85rem);font-weight:600}.topbar-copy .topbar-sub{font-family:var(--font-sans);color:var(--text-muted);margin:4px 0 0;font-size:.88rem;font-weight:500}.topbar-copy h2{font-size:clamp(.95rem,1.2vw + .75rem,1.15rem);font-weight:600}.user-pill{background:var(--paper);border:1px solid var(--border);border-radius:999px;align-items:center;gap:8px;padding:4px 8px 4px 4px;display:flex}.search{border:1px solid var(--border);background:var(--paper);border-radius:999px;flex:180px;min-width:0;max-width:280px;height:42px;padding:0 16px}.campus-switch{align-items:center;display:flex}.campus-switch select{border:1px solid var(--border);background:var(--paper);min-width:180px;max-width:240px;height:42px;color:var(--navy);text-transform:none;letter-spacing:0;border-radius:999px;padding:0 14px;font-size:.88rem;font-weight:600}.campus-chip{border:1px solid var(--border);background:var(--paper);height:42px;color:var(--navy);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;align-items:center;max-width:240px;padding:0 14px;font-size:.88rem;font-weight:600;display:inline-flex;overflow:hidden}.role-chip{background:var(--teal-soft);color:var(--navy);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:600}.sign-out{border:1px solid var(--border);background:var(--white);cursor:pointer;min-height:40px;color:var(--navy);white-space:nowrap;box-sizing:border-box;border-radius:999px;justify-content:center;align-items:center;padding:0 14px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.topbar-start{align-items:center;gap:10px;min-width:0;display:flex}.topbar-copy h2{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.menu-btn{border:1px solid var(--border);background:var(--white);width:44px;height:44px;color:var(--navy);cursor:pointer;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:none}.menu-btn svg{flex-shrink:0;display:block}.topbar-meta{color:var(--text-muted);flex-wrap:wrap;flex:220px;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.page{padding:var(--page-pad);padding-bottom:max(var(--page-pad), var(--safe-bottom));flex-direction:column;gap:18px;width:100%;max-width:1440px;display:flex}.page-head{margin-bottom:4px}.page-head h1{padding-bottom:10px;position:relative}.page-head h1:after{content:"";background:linear-gradient(90deg, var(--gold), var(--teal));border-radius:99px;width:48px;height:3px;margin-top:10px;display:block}.page-intro{color:var(--text-muted);max-width:640px;margin:8px 0 0}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,2vw,18px);display:grid}.kpi-grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}.card{border-radius:var(--radius);box-shadow:var(--shadow);background:#ffffffe6;border:1px solid #ffffffb3;min-width:0;padding:clamp(16px,2vw,20px)}.card:hover{box-shadow:var(--shadow-hover)}.kpi{padding:18px 48px 16px 18px;position:relative;overflow:hidden}.kpi:before{content:"";opacity:.22;border-radius:50%;width:120px;height:120px;position:absolute;inset:auto -20% -40% auto}.kpi.navy:before{background:var(--navy)}.kpi.teal:before{background:var(--teal)}.kpi.gold:before{background:var(--gold)}.kpi.muted:before{background:var(--text-muted)}.kpi.navy{background:linear-gradient(#fff,#f3f6fb)}.kpi.teal{background:linear-gradient(180deg, #fff, var(--teal-soft))}.kpi.gold{background:linear-gradient(180deg, #fff, var(--gold-soft))}.kpi-icon{opacity:.88;width:28px;height:28px;position:absolute;top:14px;right:14px}.kpi-blue:before,.kpi-green:before,.kpi-yellow:before,.kpi-purple:before,.kpi-red:before{display:none}.kpi-blue{color:#1d4f91;background:linear-gradient(#eef6ff,#d7e9fb)}.kpi-green{color:#1b7a45;background:linear-gradient(#eafaf1,#c8f0d6)}.kpi-yellow{color:#9a6b00;background:linear-gradient(#fff8e6,#ffe8a3)}.kpi-purple{color:#6b3fa0;background:linear-gradient(#f4eefe,#e3d4fb)}.kpi-red{color:#b23a32;background:linear-gradient(#fdeeee,#f8cfcf)}.kpi-blue .value,.kpi-green .value,.kpi-yellow .value,.kpi-purple .value,.kpi-red .value{color:inherit}.kpi-blue .label,.kpi-green .label,.kpi-yellow .label,.kpi-purple .label,.kpi-red .label,.kpi-blue .hint,.kpi-green .hint,.kpi-yellow .hint,.kpi-purple .hint,.kpi-red .hint{color:inherit;opacity:.78}.kpi .label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-size:.7rem;font-weight:600}.kpi .value{color:var(--navy);font-size:clamp(1.45rem,1.6vw + 1rem,1.9rem);font-weight:600;font-family:var(--font-serif);margin:10px 0 4px}.card h3,.card-title{margin-bottom:14px;font-size:1.12rem;font-weight:600}.section-grid{z-index:0;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(12px,2vw,18px);margin-top:0;display:grid;position:relative}.finance-card{align-content:start;gap:4px;display:grid}.finance-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.finance-head .card-title{margin-bottom:0}.finance-head .mix-sub{margin:4px 0 0}.finance-net{white-space:nowrap;border-radius:999px;align-items:center;padding:6px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.finance-net.up{color:var(--success);background:#e5f6ee}.finance-net.down{color:var(--danger);background:#fde8e6}.finance-visual{grid-template-columns:1fr;justify-items:stretch;gap:16px;margin-top:8px;display:grid}.finance-visual .finance-donut{justify-self:center}.finance-visual .finance-trend{gap:10px;width:100%;display:grid}.finance-visual .finance-legend{grid-template-columns:1fr;gap:6px;margin-top:4px;display:grid}.chart-frame{min-width:0;position:relative}.chart-tip{z-index:6;color:#fff;pointer-events:none;background:#0a274d;border-radius:10px;min-width:148px;max-width:220px;padding:8px 10px;position:absolute;transform:translate(10px,10px);box-shadow:0 12px 28px #0a274d47}.chart-tip.is-flip{transform:translate(calc(-100% - 10px),10px)}.chart-tip strong{letter-spacing:.02em;margin-bottom:6px;font-size:.78rem;display:block}.chart-tip-row{justify-content:space-between;gap:12px;font-size:.75rem;line-height:1.45;display:flex}.chart-tip-row span{color:#ffffffd1;align-items:center;gap:6px;display:inline-flex}.chart-tip-row b{white-space:nowrap;font-weight:700}.chart-tip-swatch{border-radius:99px;width:8px;height:8px;display:inline-block}.chart-hit{fill:#0000;cursor:pointer}.chart-bar{pointer-events:none;transform-box:fill-box;transform-origin:bottom;animation:.55s cubic-bezier(.22,1,.36,1) both chart-bar-in}.chart-col.is-dim{opacity:.42}.chart-col.is-on .chart-bar{filter:brightness(1.08)}.chart-line{filter:drop-shadow(0 2px 4px #0a274d2e)}.chart-guide{stroke:var(--navy);stroke-width:1.25px;stroke-dasharray:3 4;pointer-events:none}.chart-dot{pointer-events:none;transition:r .15s}.chart-donut-slice{cursor:pointer;transform-origin:50%;transition:opacity .15s,filter .15s}.chart-donut-slice.is-dim{opacity:.38}.chart-donut-slice.is-on{filter:brightness(1.08)drop-shadow(0 2px 6px #0a274d40)}.dash-svg-label.is-strong{fill:var(--navy);font-weight:700}@keyframes chart-bar-in{0%{opacity:.4;transform:scaleY(.12)}to{opacity:1;transform:scaleY(1)}}.finance-trend{min-width:0}.dash-svg{width:100%;height:auto;display:block}.dash-svg-grid{stroke:#e8edf2;stroke-width:1px}.dash-svg-grid.is-zero{stroke:#cbd5e1}.dash-svg-label{fill:var(--text-muted);font-size:11px;font-family:var(--font-sans)}.finance-donut{width:148px;height:148px;position:relative}.finance-donut svg{width:100%;height:100%;transform:none}.finance-donut circle{fill:none}.finance-donut-track{stroke:#0a274d14}.finance-donut-collected{stroke:var(--teal)}.finance-donut-outstanding{stroke:var(--gold)}.finance-donut-label{text-align:center;pointer-events:none;place-content:center;display:grid;position:absolute;inset:0}.finance-donut-label strong{color:var(--navy);font-size:1.45rem;font-family:var(--font-serif);line-height:1}.finance-donut-label span{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:650}.finance-bars{gap:10px;display:grid}.finance-bar-meta{color:var(--text-muted);justify-content:space-between;gap:8px;margin-bottom:4px;font-size:.78rem;display:flex}.finance-bar-meta strong{color:var(--navy);font-variant-numeric:tabular-nums}.finance-bar-track{background:#0b2c5a14;border-radius:99px;height:8px;overflow:hidden}.finance-bar-fill{border-radius:99px;height:100%;animation:.8s both bar-fill;display:block}.finance-bar-fill.navy{background:var(--navy)}.finance-bar-fill.teal{background:var(--teal)}.finance-bar-fill.gold{background:var(--gold)}.finance-bar-fill.green{background:#27ae60}.finance-bar-fill.red{background:#e74c3c}.finance-legend{color:var(--text-muted);flex-wrap:wrap;gap:8px 14px;margin-top:14px;font-size:.78rem;display:flex}.finance-legend span{align-items:center;gap:6px;display:inline-flex}.kpi .hint{color:var(--text-muted);font-size:.8rem}.card-subhead{margin-top:20px}.alerts-card{margin-top:0}.metric-row{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 12px;padding:8px 0;font-size:.92rem;display:flex}.metric-row:last-child{border-bottom:0}.metric-row span{color:var(--text-muted)}.metric-row strong{color:var(--navy);overflow-wrap:anywhere}.alerts{gap:10px;display:grid}.alert-chip{background:var(--gold-soft);color:var(--navy);cursor:pointer;text-align:left;border:1px solid #d4a01747;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:12px 14px;transition:transform .15s;display:flex}.alert-chip:hover{transform:translateY(-1px)}.alert-chip strong{display:block}.alert-chip small{color:var(--text-muted);display:block}.alert-count{background:var(--navy);color:var(--white);border-radius:999px;flex-shrink:0;place-items:center;min-width:28px;height:28px;font-size:.8rem;font-weight:700;display:grid}.crumbs{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;font-size:.82rem;display:flex}.crumbs a{color:var(--teal);font-weight:600}.page-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.dash-period{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.dash-period label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);gap:4px;font-size:.7rem;font-weight:650;display:grid}.dash-period select,.dash-period input[type=date]{letter-spacing:0;text-transform:none;border:1px solid var(--border);background:var(--white);min-height:40px;color:var(--text);border-radius:10px;padding:0 12px;font-family:inherit;font-size:.9rem}.dash-period-range{align-self:center;margin:0}.finance-strip{color:var(--text-muted);flex-wrap:wrap;gap:10px 16px;margin:8px 0 14px;font-size:.85rem;display:flex}.emp-tabs{background:var(--white);border:1px solid var(--border);border-radius:14px;flex-wrap:wrap;gap:6px;margin-bottom:16px;padding:6px;display:flex}.emp-tabs button{color:var(--navy);cursor:pointer;background:0 0;border:0;border-radius:10px;min-height:40px;padding:0 14px;font-size:.85rem;font-weight:600}.emp-tabs button.on{background:var(--navy);color:var(--white)}.emp-form{padding:22px}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 18px;display:grid}.float-field{color:var(--text-muted);gap:6px;font-size:.78rem;font-weight:600;display:grid}.float-field.is-required span:after{content:" *";color:var(--danger)}.float-field input,.float-field select,.float-field textarea{border:1px solid var(--border);background:var(--white);width:100%;min-height:44px;font:inherit;color:var(--text);border-radius:10px;padding:0 12px}.float-field textarea{resize:vertical;min-height:120px;padding:10px 12px}.span-3{grid-column:1/-1}.field-legend{color:var(--text-muted);margin:0 0 8px;font-size:.78rem;font-weight:600}.emp-actions{border-top:1px solid var(--border);margin-top:22px;padding-top:16px}.salary-summary{background:var(--gold-soft);border:1px solid #d4a01747;border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 16px;display:grid}.doc-list{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.doc-item{gap:8px;display:grid}.doc-preview{border:1px solid var(--border);background:var(--white);border-radius:12px;place-items:center;height:140px;display:grid;overflow:hidden}.doc-preview img{object-fit:cover;width:100%;height:100%}.doc-pdf{width:100%;text-decoration:none}.doc-pdf-icon{width:56px;height:66px;display:block}.doc-file{color:var(--navy);font-weight:700;text-decoration:none}.doc-meta{gap:4px;display:grid}.doc-meta a{color:var(--navy);overflow-wrap:anywhere;font-size:.85rem;font-weight:600}.emp-actions a.sign-out{align-items:center;display:inline-flex}@media (width<=960px){.form-grid{grid-template-columns:1fr 1fr}}@media (width<=900px){.salary-months{grid-template-columns:repeat(3,minmax(0,1fr))}}.coming-soon p{color:var(--text-muted)}.form-error{color:var(--danger);margin:0;font-size:.88rem;font-weight:600}.form-note{color:var(--success);margin:8px 0 0;font-size:.88rem}.fee-filters{align-items:stretch}.fee-add-form{border-top:0;margin-top:0;padding-top:0}.fee-add-form h3{margin-bottom:6px}.fee-add-form .check-row{margin:10px 0 12px}.fee-challan-preview{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--gold-soft);margin-top:14px;padding:14px 16px}.fee-challan-preview .field-legend{margin-bottom:4px}.fee-challan-preview-grid{margin-top:10px}.fee-challan-preview-totals{gap:2px;margin-top:12px;display:grid}.fee-challan-preview-total{border-top:1px solid var(--border);margin-top:6px;padding-top:8px;font-weight:700}.fee-challan-preview-late{color:var(--danger)}.sibling-fee-list{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--paper);margin:4px 0 12px;padding:12px 14px}.sibling-fee-list .check-row{margin-bottom:0}.sibling-fee-block{border-top:1px solid var(--border);margin-top:22px;padding-top:16px}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:12px 16px;margin-bottom:16px;display:flex}.toolbar label,.user-form label{color:var(--navy);gap:6px;font-size:.85rem;font-weight:600;display:grid}.toolbar select,.toolbar input,.user-form input,.user-form select,.marks-input{border:1px solid var(--border);background:var(--white);min-height:40px;font:inherit;border-radius:8px;padding:0 10px}.btn-inline{width:auto;margin-top:0;padding:0 18px}.table-wrap{overflow-x:auto}.pager{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.pager-controls{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.pager-controls label{color:var(--navy);align-items:center;gap:8px;font-size:.85rem;font-weight:600;display:flex}.pager-controls select{border:1px solid var(--border);background:var(--white);min-height:36px;font:inherit;border-radius:8px;padding:0 8px}.pager-controls button:disabled{opacity:.4;pointer-events:none}.data-table,.users-table{border-collapse:collapse;width:100%;font-size:.92rem}.data-table th,.data-table td,.users-table th,.users-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:12px 10px}.data-table th,.users-table th{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:600}.data-table tbody tr:hover,.users-table tbody tr:hover{background:#178f8f0a}.data-table tbody tr.is-link{background:var(--teal-soft);cursor:pointer}.btn-navy{background:var(--navy);min-height:42px;color:var(--white);cursor:pointer;border:0;border-radius:10px;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.btn-navy:hover{background:var(--navy-muted)}.gb-actions{justify-content:flex-end}.gb-panel-head{justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 0;display:flex}.gb-panel-head h3,.gb-subhead{color:var(--navy);margin:0;font-size:1rem}.gb-panel-foot{justify-content:flex-end;padding:12px 16px 16px;display:flex}.ia-panel-actions{justify-content:flex-start;padding:12px 0 8px}.ia-paper-modal{gap:14px;width:min(440px,100%);padding:18px 18px 16px;display:grid}.ia-paper-modal h3{margin:0}.ia-grid-wrap{overflow:auto}.ia-mark-grid thead th small{opacity:.72;margin-top:2px;font-size:.75em;font-weight:600;display:block}.ia-mark-grid tbody th{text-align:left;white-space:nowrap;z-index:1;background:#fff;position:sticky;left:0}.ia-other-modal .form-grid{padding:4px 6px 12px}.ia-date{min-height:44px;padding:8px 12px}.ia-ptm{min-height:44px;padding-top:18px}.ia-ptm input{width:18px;height:18px;accent-color:var(--navy)}.gb-table-meta{color:var(--text-muted);margin:0;padding:10px 16px 14px;font-size:.82rem}.muted-cell{color:var(--text-muted);text-align:center!important}.linkish{color:var(--teal);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.linkish.danger{color:var(--danger)}.gb-panel .data-table select,.gb-panel .data-table input{border:1px solid var(--border);width:100%;max-width:220px;min-height:38px;font:inherit;border-radius:8px;padding:0 10px}.teacher-tt th,.teacher-tt td{vertical-align:top;min-width:132px}.teacher-tt td:first-child,.teacher-tt th:first-child{min-width:72px}.teacher-tt-cell{border:1px solid var(--border);background:var(--gold-soft);text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;border-radius:8px;gap:2px;margin:0;padding:8px;display:grid}.teacher-tt-cell:hover{border-color:var(--teal,#178f8f)}.teacher-tt-time{color:var(--text-muted);font-size:.78rem}.teacher-tt-capture{background:#fff;padding:16px}.teacher-tt-title{margin:0 0 12px}.text-link{color:var(--teal);font-weight:600}.muted{color:var(--text-muted);font-size:.8rem;font-weight:400}.search-select{position:relative}.search-select input{padding-right:32px}.search-select-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:1.1rem;line-height:1;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.search-select-menu{z-index:70;background:var(--white);border:1px solid var(--border);border-radius:10px;max-height:220px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 10px 24px #0f172a1f}.search-select-menu button{text-align:left;width:100%;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;padding:8px 12px;display:block}.search-select-menu button.on,.search-select-menu button:hover{background:var(--gold-soft)}.search-select-empty{color:var(--text-muted);padding:10px 12px;font-size:.82rem}.search-select.compact input{min-height:32px;font-size:.8rem}.tt-table .search-select{margin:2px 0}.assign-row{margin-bottom:12px}.assign-remove{align-items:end;padding-bottom:8px;display:flex}.tt-table select{width:100%;min-height:32px;margin:2px 0;font-size:.8rem}.tt-time{color:var(--text-muted);gap:2px;margin-top:6px;font-size:.72rem;display:grid}.tt-time input{width:100%;min-height:32px}.user-form{gap:12px;display:grid}.module-checks{border:1px solid var(--border);border-radius:8px;gap:6px;padding:10px 12px;display:grid}.check-row{align-items:center;gap:8px;font-weight:500;display:flex}.form-actions{flex-wrap:wrap;gap:8px;display:flex}.mark-group{flex-wrap:wrap;gap:6px;display:flex}.mark-opt{border:1px solid var(--border);border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.mark-opt.on{background:var(--teal-soft);border-color:var(--teal);color:var(--navy)}.mark-opt.mark-a.on{background:#b93a3a1f;border-color:#b93a3a}.mark-opt.mark-l.on{background:var(--gold-soft,#c49a3a2e);border-color:var(--gold)}.att-mark-cell{white-space:nowrap;min-width:240px}.att-status{background:var(--paper);min-height:26px;color:var(--text-muted);border-radius:999px;align-items:center;padding:2px 10px;font-size:.8rem;font-weight:700;display:inline-flex}.att-status.att-P{background:var(--teal-soft);color:var(--navy)}.att-status.att-A{color:#8a2424;background:#b93a3a1f}.att-status.att-L{background:var(--gold-soft,#c49a3a2e);color:var(--navy)}.att-status.att-OFF,.att-status.att-none{background:var(--paper);color:var(--text-muted)}.mark-opt input{margin:0}.marks-input{width:88px}.topbar-logo{object-fit:contain;border:1px solid var(--border);background:var(--white);border-radius:8px;flex-shrink:0;width:40px;height:40px;padding:2px}@media (width<=1200px){.kpi-grid,.kpi-grid-5{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=1100px){.dash-layout{grid-template-columns:1fr}.mix-card{position:static}}@media (width<=1024px){.section-grid{grid-template-columns:1fr}.aw-stats,.aw-chart-plot{grid-template-columns:1fr 1fr}.aw-chart-plot{grid-template-columns:repeat(6,minmax(0,1fr));height:auto;min-height:160px}.finance-bars{width:100%}}@media (width<=900px){.login-stage{grid-template-columns:1fr;transform:none!important}.login-brand{display:none}.login-panel{border-left:0}.login-orb,.login-ring,.login-grid{opacity:.35}.login-orb-c,.login-orb-d{display:none}.login-shine,.login-crest{animation:none}}@media (width<=960px){.app-shell{grid-template-columns:minmax(0,1fr)}.nav-backdrop{z-index:20;background:#071c3a73;display:block;position:fixed;inset:0}.nav-backdrop[hidden]{display:none}.sidebar{width:min(var(--sidebar-width), calc(100vw - 48px));z-index:90;transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-105%);box-shadow:8px 0 24px #0003}.challan-root,.ba-root,.ba-modal-back{left:0}.app-shell.menu-open .sidebar{transform:translate(0)}.sidebar-close,.menu-btn{justify-content:center;align-items:center;display:inline-flex}}@media (width<=640px){.kpi-grid,.kpi-grid-5,.aw-stats,.aw-chart-plot{grid-template-columns:1fr}.topbar-copy h2{max-width:46vw}.search{flex-basis:100%;order:3;max-width:none}.topbar-meta{justify-content:flex-start}.alert-chip{align-items:flex-start}}@media (width<=420px){.role-chip{display:none}.login-panel h2{font-size:1.05rem}}@media (width>=1600px){.kpi-grid:not(.kpi-grid-5){grid-template-columns:repeat(4,minmax(0,1fr))}}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes login-orb-drift{0%,to{transform:translate(0,0)scale(1)}50%{transform:translate(24px,-18px)scale(1.06)}}@keyframes login-fade{0%{opacity:0}to{opacity:1}}@keyframes login-ring-pulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:.9;transform:scale(1.04)}}@keyframes login-crest-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@media (pointer:coarse){.login-stage{transition:none;transform:none!important}}@media (prefers-reduced-motion:reduce){.login-orb,.login-ring,.login-crest,.login-stage,.login-brand,.login-panel,.login-form label,.login-form .btn-gold{animation:none!important}.login-stage{transition:none;transform:none!important}.login-page .btn-gold{transition:none}.login-page .btn-gold:hover,.login-page .btn-gold:active{transform:none}.chart-bar,.chart-donut-slice{transition:none!important;animation:none!important}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@keyframes bar-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.page-motion{animation:.45s cubic-bezier(.22,1,.36,1) both login-fade}.stagger>*{animation:.5s cubic-bezier(.22,1,.36,1) both login-fade}.stagger>:first-child{animation-delay:40ms}.stagger>:nth-child(2){animation-delay:80ms}.stagger>:nth-child(3){animation-delay:.12s}.stagger>:nth-child(4){animation-delay:.16s}.stagger>:nth-child(5){animation-delay:.2s}.stagger>:nth-child(6){animation-delay:.24s}.card,.alert-chip,.kanban-card,.report-card{transition:transform .2s,box-shadow .2s}.kanban-card:hover,.report-card:hover{transform:translateY(-4px)}.bar{background:#0b2c5a14;border-radius:99px;height:8px;margin-top:10px;overflow:hidden}.bar span{background:linear-gradient(90deg, var(--teal), var(--gold));transform-origin:0;border-radius:99px;height:100%;animation:.8s both bar-fill;display:block}.dash-layout{grid-template-columns:minmax(0,1.7fr) minmax(280px,.9fr);align-items:start;gap:clamp(12px,2vw,18px);display:grid}.dash-main{gap:18px;min-width:0;display:grid}.dash-main>.section-grid{grid-template-columns:1fr}.dash-finance-pair{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}@media (width<=1100px){.dash-finance-pair{grid-template-columns:1fr}}.aw-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.aw-head h3{margin-bottom:4px}.aw-year{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);gap:4px;font-size:.7rem;font-weight:650;display:grid}.aw-year select{letter-spacing:0;text-transform:none;border:1px solid var(--border);background:var(--white);min-width:140px;min-height:40px;color:var(--text);border-radius:10px;padding:0 12px;font-family:inherit;font-size:.9rem}.aw-stats{grid-template-columns:1fr 1fr;gap:12px;display:grid}.aw-stat{border-radius:var(--radius-sm);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px;display:flex;position:relative;overflow:hidden}.aw-stat .kpi-icon{flex-shrink:0;width:36px;height:36px;position:static}.aw-stat .label{letter-spacing:0;text-transform:none;margin-bottom:4px;font-size:.95rem;font-weight:650}.aw-stat .value{font-size:2rem;font-weight:700;font-family:var(--font-sans);line-height:1.1}.aw-stat .hint{opacity:.85;margin-top:4px;font-size:.8rem}.aw-stat-in{color:#fff;background:#27ae60}.aw-stat-out{color:#fff;background:#e74c3c}.aw-chart{margin-top:18px}.aw-chart .dash-svg{min-height:190px}.aw-chart-plot{border-top:1px solid var(--border);grid-template-columns:repeat(11,minmax(0,1fr));align-items:end;gap:8px;height:180px;padding:12px 4px 0;display:grid}.aw-col{flex-direction:column;align-items:center;min-width:0;height:100%;display:flex}.aw-col-bars{flex:1;justify-content:center;align-items:flex-end;gap:3px;width:100%;display:flex}.aw-bar{border-radius:99px 99px 2px 2px;width:8px;display:block}.aw-bar.onroll{background:#27ae60}.aw-bar.left{background:#e74c3c}.aw-col small{color:var(--text-muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin-top:6px;font-size:.65rem;overflow:hidden}.mix-card{top:calc(var(--header-height) + 12px);margin-top:0;position:sticky}.mix-sub{color:var(--text-muted);margin:-8px 0 12px;font-size:.85rem}.mix-legend{color:var(--text-muted);flex-wrap:wrap;gap:10px 14px;margin-bottom:14px;font-size:.78rem;display:flex}.mix-legend span{align-items:center;gap:6px;display:inline-flex}.dot{border-radius:3px;width:10px;height:10px;display:inline-block}.dot.onroll{background:#27ae60}.dot.registered{background:#8e44ad}.dot.processing{background:#f1c40f}.dot.present{background:#178f8f}.dot.left{background:#e74c3c}.mix-list{gap:10px;display:grid}.mix-card .bar{cursor:pointer;position:relative;overflow:visible}.mix-card .bar:after{content:attr(data-tip);color:#fff;letter-spacing:.01em;white-space:nowrap;opacity:0;pointer-events:none;z-index:5;background:#0a274d;border-radius:8px;padding:6px 10px;font-size:.72rem;font-weight:700;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px);box-shadow:0 8px 20px #0a274d47}.mix-card .bar:hover:after,.mix-card .bar:focus-visible:after{opacity:1;transform:translate(-50%)translateY(0)}.mix-card .bar span{background:#27ae60}.mix-row-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.mix-row em{color:var(--text-muted);font-size:.8rem;font-style:normal}.mix-pa{font-variant-numeric:tabular-nums;color:var(--text-muted);white-space:nowrap;font-size:.78rem;font-weight:650}.mix-pa strong{color:#178f8f;font-weight:700}.mix-pa b{color:#e74c3c;font-weight:700}.pill{background:var(--teal-soft);color:var(--navy);border-radius:999px;align-items:center;padding:3px 9px;font-size:.75rem;font-weight:650;display:inline-flex}.year-tabs{flex-wrap:wrap;gap:8px;margin:4px 0 12px;display:flex}.year-tab{border:1px solid var(--border);background:var(--paper);color:var(--navy);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:.8rem;font-weight:650}.year-tab.is-on{background:var(--navy);border-color:var(--navy);color:#fff}.page-head-actions{flex-wrap:wrap;align-items:center;gap:12px 16px;display:flex}.salary-period{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);gap:6px;font-size:.78rem;font-weight:650;display:grid}.salary-period input{border:1px solid var(--border);background:var(--white);min-width:180px;min-height:40px;color:var(--text);font:inherit;letter-spacing:0;text-transform:none;border-radius:10px;padding:0 12px}.salary-months{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:8px 0 12px;display:grid}.salary-month{text-align:left;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--white);color:var(--text);cursor:pointer;gap:2px;padding:10px 12px;display:grid}.salary-month strong{color:var(--navy)}.salary-month span,.salary-month em{color:var(--text-muted);font-size:.72rem;font-style:normal}.salary-month.is-on{border-color:var(--navy);box-shadow:0 0 0 2px #0a274d1f}.pill-upcoming,.pill-new{color:var(--text-muted);background:#0a274d14}.pill-overdue,.pill-late,.pill-flagged,.pill-unmatched,.pill-withdrawn,.pill-rejected{color:var(--danger);background:#fde8e6}.pill-paid,.pill-approved,.pill-reconciled,.pill-admitted,.pill-active{color:var(--success);background:#e5f6ee}.pill-partial,.pill-pending,.pill-due,.pill-offer,.pill-generated{background:var(--gold-soft);color:#8a6a10}.kanban{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.kanban-col{min-height:240px}.kanban-card{border:1px solid var(--border);background:var(--paper);text-align:left;cursor:pointer;width:100%;color:inherit;border-radius:12px;gap:6px;margin-top:10px;padding:12px;display:grid}.kanban-card span{color:var(--text-muted);font-size:.8rem}.toast{z-index:50;background:var(--navy);color:var(--white);box-shadow:var(--shadow-hover);border-radius:999px;padding:12px 18px;animation:.35s both toast-in;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.table-search{max-width:280px}.report-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.report-card{text-align:left;cursor:pointer;color:inherit}.report-card p{color:var(--text-muted);min-height:2.6em}.row-actions{white-space:nowrap;vertical-align:middle;align-items:center;gap:2px;display:flex}.row-actions>*+*{margin-left:0}.action-icon{width:32px;height:32px;color:var(--navy);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:0;text-decoration:none;display:inline-grid}.action-icon svg{width:18px;height:18px}.action-icon:hover{background:var(--teal-soft);color:var(--navy)}.action-icon.danger:hover{background:#fde8e6}.danger{color:var(--danger)!important}.btn-danger{background:var(--danger);min-height:44px;color:var(--white);cursor:pointer;border:0;border-radius:12px;margin-top:0;padding:0 18px;font-weight:700}.confirm-overlay{z-index:var(--overlay-z-confirm);background:#06152c80;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-dialog{background:var(--white);border-radius:var(--radius);width:min(420px,100%);box-shadow:var(--shadow-hover);padding:22px 22px 18px}.confirm-dialog h2{margin-bottom:8px;font-size:1.2rem}.confirm-dialog p{color:var(--text-muted);margin:0 0 20px}.confirm-actions{justify-content:flex-end;gap:10px;display:flex}.confirm-cancel{border:1px solid var(--border);background:var(--white);min-height:44px;color:var(--navy);cursor:pointer;border-radius:12px;padding:0 16px;font-weight:600}.confirm-dialog .btn-gold,.confirm-dialog .btn-danger{width:auto;min-height:44px;margin-top:0;padding:0 18px}.app-toast{font-family:var(--font-sans)!important}button.text-link{cursor:pointer;background:0 0;border:0;padding:0}@media (width<=1100px){.kanban,.report-grid{grid-template-columns:1fr 1fr}}@media (width<=700px){.kanban,.report-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.page-motion,.stagger>*,.bar span,.toast{animation:none}}.modal-back{z-index:var(--overlay-z);padding:var(--modal-inset);box-sizing:border-box;background:#06152c73;flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.modal-back>.card,.modal-back>form,.modal-back>article,.modal-back>.ba-editor,.modal-back>.ba-modal{border-radius:var(--radius);width:100%;max-width:100%;height:100%;max-height:100%;box-shadow:var(--shadow-hover);flex:1;margin:0;overflow:auto}.modal-card{width:min(860px,100%);max-height:90vh;overflow:auto}.modal-back .modal-card,.modal-back .import-modal,.modal-back .user-modal,.modal-back .ia-paper-modal{border-radius:var(--radius);width:100%;max-width:100%;height:100%;max-height:100%;box-shadow:var(--shadow-hover)}.import-modal{gap:14px;width:min(96vw,1400px);display:grid}.import-table-wrap{max-height:58vh;overflow:auto}.import-all-table{min-width:2200px}.import-modal td input,.import-modal td select{border:1px solid var(--border);width:100%;min-width:88px;min-height:36px;font:inherit;border-radius:8px;padding:0 8px}.import-row-error td{background:#b91c1c14}.import-edit{border-top:1px solid var(--border);gap:10px;padding-top:12px;display:grid}.password-plain{letter-spacing:.02em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.user-modal{gap:8px;width:min(560px,100%);max-height:78vh;padding:14px 16px;display:grid}.user-modal h3{margin:0;font-size:1.1rem}.user-modal .mix-sub,.user-modal .page-intro{margin:0;font-size:.8rem}.user-modal .float-field input,.user-modal .float-field select{min-height:36px}.user-preview{border:1px solid var(--border);background:var(--gold-soft);border-radius:10px;grid-template-columns:1fr 1fr;column-gap:16px;padding:4px 12px;display:grid}.user-modal .metric-row{padding:5px 0;font-size:.84rem}.user-modal .module-checks{grid-template-columns:1fr 1fr;gap:4px 10px;padding:6px 10px;display:grid}.user-modal .module-checks legend{padding:0 4px;font-size:.78rem}.user-modal .check-row{font-size:.86rem}.user-modal .form-actions{margin-top:2px}.user-modal .search-select-menu{z-index:60}.data-table tr.is-clickable{cursor:pointer}.data-table tr.is-selected td{background:#e8f2ff}body.ba-modal-open{overflow:hidden}.ba-modal-back{z-index:var(--overlay-z);padding:var(--modal-inset);box-sizing:border-box;flex-direction:column;display:flex;inset:0;overflow:hidden}.modal-back .ba-modal,.ba-modal-back .ba-modal{border-radius:var(--radius);width:100%;max-width:100%;height:100%;max-height:100%;box-shadow:var(--shadow-hover);flex-direction:column;min-height:0;padding:0;display:flex;overflow:hidden}.modal-back .ba-editor-bar,.ba-modal-back .ba-editor-bar{border-top:0;border-left:0;border-right:0;border-radius:0;flex-shrink:0}.modal-back .ba-modal-stage,.ba-modal-back .ba-modal-stage{background:#cfd8e3;flex:1;min-height:0;padding:12px;overflow:auto}.modal-back .ba-modal.ia-preview-modal,.modal-back .ba-modal.ia-other-modal,.ba-modal-back .ba-modal.ia-preview-modal,.ba-modal-back .ba-modal.ia-other-modal{width:100%;max-width:100%;height:100%;max-height:100%}.modal-back .ia-preview-stage,.ba-modal-back .ia-preview-stage{background:#cfd8e3;flex:1;min-height:0}.ba-editor{gap:12px;display:grid}.ba-modal{box-sizing:border-box;background:#fff;border-radius:16px;width:80%;max-width:80%;height:85vh;max-height:85vh;margin:0;padding:12px;overflow:auto;box-shadow:0 18px 50px #06152c47}.ba-editor-bar{z-index:6;border:1px solid var(--border);background:#fff;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex;position:sticky;top:0}.ba-editor-bar h3{color:var(--navy);margin:0;font-size:1rem}.ba-root{z-index:var(--overlay-z);box-sizing:border-box;background:#cfd8e3;padding:10px 10px 16px;position:fixed;inset:0;overflow:auto}.ba-toolbar{z-index:2;border:1px solid var(--border);background:#fff;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding:10px 14px;display:flex;position:sticky;top:0}.ba-toolbar p{margin:0;font-weight:700}.ba-sheet{box-sizing:border-box;background:#fff;width:210mm;max-width:100%;margin:0 auto;padding:7mm;font-family:Nunito,Segoe UI,sans-serif;box-shadow:0 10px 30px #0f28502e}.ba-frame{box-sizing:border-box;background:#fff;border:3.5px solid #1a4a8c;border-bottom:0;border-radius:22px;flex-direction:column;min-height:0;padding:4mm 5mm 0;display:flex;position:relative;overflow:visible}.ba-frame img{image-rendering:auto;-ms-interpolation-mode:bicubic;-webkit-print-color-adjust:exact;print-color-adjust:exact}.ba-head{min-height:28mm;margin:0 0 2mm;padding:0 24mm;position:relative}.ba-brand{text-align:center;justify-content:center;align-items:center;gap:8px;display:flex}.ba-crest{object-fit:contain;flex:none;width:18mm;height:20mm}.ba-brand h1{color:#163f8c;letter-spacing:.2px;margin:0;font-family:Montserrat,Nunito,sans-serif;font-size:23px;font-weight:800;line-height:1.05}.ba-sub{color:#163f8c;margin:1px 0 0;font-size:11px;font-weight:800}.ba-tag{color:#3e88c2;margin:0;font-family:Dancing Script,Segoe Script,cursive;font-size:16px;font-weight:600;line-height:1.1}.ba-deco{pointer-events:none;position:absolute}.ba-plane{width:22mm;top:0;left:-1mm}.ba-rocket{width:22mm;top:-1mm;right:-2mm}.ba-meta{text-align:center;color:#3e5f88;margin:2px 0 0;font-size:10px;font-weight:700}.ba-key-row{grid-template-columns:1fr 38mm;align-items:center;gap:2mm;margin:1mm 0 3.5mm;display:grid}.ba-key{background:#fff;border:2px solid #1a4a8c;border-radius:16px;padding:6mm 5mm 3mm;position:relative}.ba-key h2{color:#fff;letter-spacing:.4px;background:#1a4a8c;border-radius:8px;margin:0;padding:1px 8px;font-size:10px;font-weight:800;position:absolute;top:-3.2mm;left:5mm}.ba-key-grid{grid-template-columns:1fr 1fr;gap:1.2mm 6mm;display:grid}.ba-key-grid p{color:#1a2a44;margin:0;font-size:10.5px;font-weight:700}.ba-key-grid b{font-weight:800}.ba-books{justify-self:end;width:38mm;height:auto}.ba-block{background:#fff;border:1.6px solid #1a4a8c;border-radius:10px;margin-bottom:2mm;overflow:hidden}.ba-block:last-of-type{margin-bottom:0}.ba-block-head{color:#fff;letter-spacing:.55px;background:#1a4a8c;grid-template-columns:1fr 58px;font-size:11px;font-weight:800;display:grid}.ba-sky .ba-block-head{background:#1f63b5}.ba-green .ba-block-head{background:#3d8c47}.ba-block-head span{padding:3.5px 10px}.ba-block-head span:last-child{text-align:center}.ba-block ul{margin:0;padding:0;list-style:none}.ba-block li{color:#24344c;border-top:1px solid #1a4a8c;grid-template-columns:1fr 58px;align-items:center;min-height:7.6mm;font-size:11.5px;font-weight:700;display:grid}.ba-block li span:first-child{padding:1px 10px}.ba-grade{color:#1a2a44;background:#fff;border:1.6px solid #1a4a8c;border-radius:4px;justify-content:center;align-items:center;width:13mm;height:6.6mm;margin:0 auto;font-family:Times New Roman,Georgia,serif;font-size:12px;font-weight:700;display:flex}select.ba-grade{appearance:none;cursor:pointer;text-align:center;text-align-last:center;padding:0}.ba-foot{grid-template-columns:42mm 22mm minmax(52mm,1fr) 20mm 24mm;align-items:end;gap:2.5mm;min-height:0;margin-top:5mm;margin-bottom:0;padding-top:5mm;padding-bottom:0;display:grid}.ba-kids{align-items:flex-end;gap:1mm;display:flex}.ba-kids img,.ba-pencils,.ba-apple,.ba-pack{object-fit:contain;object-position:bottom;width:100%;height:auto;max-height:28mm;display:block}.ba-kids img{width:50%}.ba-promise{background:#fff;border:2px dashed #1a4a8c;border-radius:12px;min-height:0;padding:6mm 3mm 2mm 3.5mm;position:relative;overflow:visible}.ba-promise-badge{z-index:2;white-space:nowrap;pointer-events:none;justify-content:center;align-items:center;gap:1.6mm;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%,-50%)}.ba-promise-badge h3{color:#fff;letter-spacing:.7px;white-space:nowrap;overflow-wrap:normal;clip-path:polygon(7px 0,calc(100% - 7px) 0,100% 50%,calc(100% - 7px) 100%,7px 100%,0 50%);-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#163a7a;margin:0;padding:2.4mm 7mm;font-family:Montserrat,Nunito,sans-serif;font-size:9px;font-weight:800;line-height:1}.ba-promise-badge ion-icon{color:#f4c430;filter:drop-shadow(0 .4px #d4a000);font-size:17px}.ba-promise ul{gap:1.2mm;margin:0;padding:0;list-style:none;display:grid}.ba-promise li{color:#163a7a;grid-template-columns:4.2mm 1fr;align-items:center;gap:2.2mm;font-size:9.5px;font-weight:800;line-height:1.2;display:grid}.ba-promise li ion-icon{width:4.2mm;height:4.2mm;font-size:14px}.ba-promise li[data-icon=education] ion-icon{color:#1e6fd9}.ba-promise li[data-icon=heart] ion-icon{color:#e32636}.ba-promise li[data-icon=bulb] ion-icon{color:#efc000}.ba-promise li[data-icon=lock-closed] ion-icon{color:#163a7a}.ba-modal.ia-preview-modal{flex-direction:column;width:min(230mm,94%);max-width:94%;height:90vh;max-height:90vh;display:flex}.ia-preview-stage{background:#fff;flex:1;padding:12px 12px 24px;overflow:auto}.ia-preview-stage .ia-sheet{flex:none;margin:0 auto;box-shadow:0 0 0 1px #c8c8c8}.ia-sheet{box-sizing:border-box;color:#111;background:#fff;width:210mm;min-width:210mm;max-width:210mm;height:297mm;min-height:297mm;max-height:297mm;margin:0;padding:16mm 18mm;font-family:Calibri,Segoe UI,Arial,Helvetica,sans-serif;overflow:hidden}.ia-head{justify-content:center;align-items:center;min-height:28mm;margin:0 0 7mm;display:flex;position:relative}.ia-crest{object-fit:contain;width:25mm;height:auto;position:absolute;top:50%;left:2mm;transform:translateY(-50%)}.ia-brand{text-align:center;padding:0 28mm}.ia-school{color:#111;letter-spacing:.2px;white-space:normal;margin:0;font-size:16pt;font-weight:700;line-height:1.15}.ia-sub{color:#111;letter-spacing:.3px;text-transform:uppercase;margin:1.2mm 0 0;font-size:13.5pt;font-weight:700}.ia-title{text-align:center;letter-spacing:.4px;color:#111;margin:0 0 5mm;font-size:12pt;font-weight:700}.ia-card{border:1.5px solid #111}.ia-meta{padding:3.5mm 5mm 3mm}.ia-meta p{align-items:baseline;gap:2.5mm;max-width:72mm;margin:0 0 2.2mm;font-size:11pt;display:flex}.ia-name{justify-content:center;max-width:none!important;margin-bottom:3mm!important}.ia-meta b{white-space:nowrap;font-weight:700}.ia-meta span{text-align:center;border-bottom:1px solid #111;min-width:38mm;padding:0 2mm .4mm;font-weight:400}.ia-name span{min-width:78mm;font-size:12pt}.ia-table{border-collapse:collapse;table-layout:fixed;width:100%}.ia-col-subject{width:24mm}.ia-col-total{width:18mm}.ia-col-pct,.ia-col-grade{width:14mm}.ia-table th,.ia-table td{text-align:center;vertical-align:middle;border:1px solid #111;height:8.2mm;padding:1.6mm 1mm;font-size:10pt}.ia-table thead th{background:#b5c6ea;height:18mm;padding:1.2mm .6mm;font-size:10pt;font-weight:700;line-height:1.2}.ia-table thead th small{margin-top:.4mm;font-size:10pt;font-weight:700;display:block}.ia-table tbody th{text-align:center;background:#fff;width:auto;padding:1.2mm 1mm;font-weight:700}.ia-info{border-top:1.5px solid #111;grid-template-columns:1.1fr 1.15fr 1.15fr;display:grid}.ia-info p{border-right:1px solid #111;min-height:12mm;margin:0;padding:2mm 3mm 2.4mm;font-size:11pt}.ia-info p:last-child{border-right:0}.ia-info b{font-weight:700}.ia-info p:first-child span{text-align:center;border:0;min-width:0;margin-top:.6mm;padding:0;display:block}.ia-remarks{border-top:1px solid #111;grid-template-columns:26mm 1fr;min-height:18mm;display:grid}.ia-remarks b{text-align:center;border-right:1px solid #111;justify-content:center;align-items:center;padding:2mm 1mm;font-size:11pt;font-weight:700;line-height:1.2;display:flex}.ia-remarks p{text-align:left;white-space:pre-wrap;margin:0;padding:1.6mm 3mm 1.8mm;font-size:10.5pt;line-height:1.35}.ia-remarks .ia-promoted{text-align:center;font-weight:400;display:block}.ia-attend-title{text-align:center;color:#111;border-top:1px solid #111;margin:0;padding:1.8mm 2mm;font-size:12pt;font-weight:700}.ia-attend{border-top:1px solid #111;grid-template-columns:1.4fr .95fr .9fr 1.05fr 1.15fr;display:grid}.ia-attend p{text-align:center;border-right:1px solid #111;min-height:12mm;margin:0;padding:2mm 2.5mm 2.4mm;font-size:10pt}.ia-attend p:last-child{text-align:left;border-right:0}.ia-attend b{font-weight:700}.ia-attend span{margin-top:.4mm;font-weight:400;display:block}.ia-ptm-cell{line-height:1.35;text-align:left!important}.ia-signs{text-align:center;grid-template-columns:1fr 1fr;gap:28mm;margin-top:11mm;padding:0 10mm;display:grid}.ia-signs p{margin:0}.ia-sign-name{border-bottom:1.15px solid #111;min-height:7mm;padding-bottom:1mm;font-size:11pt;font-weight:400;display:block}.ia-signs span:last-child{margin-top:1.4mm;font-size:11pt;font-weight:700;display:block}.gb-sheet-stage{background:#d8d8d8;padding:16px 12px 24px;overflow:auto}.gb-sheet-stage .ia-sheet{margin:0 auto;box-shadow:0 0 0 1px #c8c8c8}.ia-sheet.is-fillable .ia-fill-input{width:100%;max-width:100%;box-shadow:none;font:inherit;color:inherit;text-align:inherit;appearance:none;background:0 0;border:0;border-radius:0;outline:none;margin:0;padding:0}.ia-sheet.is-fillable textarea.ia-fill-input{resize:none;text-align:center;min-height:12mm}.ia-sheet.is-fillable input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ia-sheet.is-fillable input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ia-sheet.is-fillable input[type=number]{-moz-appearance:textfield}.ia-sheet.is-fillable .ia-info p{align-items:center;gap:2mm;display:flex}.ia-sheet.is-fillable .ia-info .ia-fill-input{text-align:center;border-bottom:1px solid #111;flex:1;min-width:0}.ia-remarks-fill{flex-direction:column;gap:1mm;display:flex}.ia-promoted-fill{justify-content:center;align-items:center;gap:2mm;font-size:10pt;display:flex}.ia-promoted-fill .ia-fill-input{text-align:center;border-bottom:1px solid #111;width:18mm}.ia-attend-pct{justify-content:center;align-items:center;gap:1mm;display:inline-flex}.ia-sheet.is-fillable .ia-attend .ia-fill-input,.ia-sheet.is-fillable .ia-sign-name .ia-fill-input{text-align:center}.gb-panel .data-table tr.is-selected td{background:#e8eef8}.kg-sheet-stage{background:#c5d0dc;padding:16px 10px 24px;overflow:auto}.kg-report-modal-back{z-index:var(--overlay-z)}.kg-report-modal{border-radius:var(--radius);width:100%;max-width:100%;height:100%;max-height:100%;box-shadow:var(--shadow-hover);flex-direction:column;min-height:0;margin:0;display:flex;overflow:hidden}.kg-report-modal-head{z-index:2;border-bottom:1px solid var(--border);background:#fff;flex-shrink:0;padding-bottom:12px;position:sticky;top:0}.kg-report-modal-stage{flex:1;min-height:0;overflow:auto}.kg-sheet-stage.is-exporting{overflow:visible}.kg-sheet-stage.is-exporting .kg-page.is-capturing{margin:0 auto}.kg-report{--kg-card:#ecf4f8;--kg-row:#deeef4;--kg-field:#deeef4;--kg-navy:#003b93;--kg-ink:#000;color:#000;flex-direction:column;align-items:center;gap:16px;width:297mm;min-width:297mm;margin:0 auto;font-family:Montserrat,Segoe UI,sans-serif;font-weight:400;display:flex}.kg-report :is(.kg-title,.kg-school,.kg-sub,.kg-section h3,.kg-comment h3,.kg-line b,.kg-signs b,.kg-nested-title,.kg-key-grid b,.kg-info h2,.kg-key h2){font-family:Montserrat,Segoe UI,sans-serif;font-weight:600}.kg-page{box-sizing:border-box;background:#fff;grid-template-columns:1fr 1fr;gap:5mm;width:297mm;min-width:297mm;height:210mm;min-height:210mm;padding:4.2mm 5.5mm;display:grid;position:relative;overflow:hidden;box-shadow:0 0 0 1px #c5cdd8}.kg-page[data-page="1"]>.kg-col-cover{gap:.9mm;height:100%;min-height:0;padding-bottom:17mm;overflow:hidden}.kg-page[data-page="1"]>.kg-col-cover>.kg-section:not(.kg-comment),.kg-page[data-page="1"]>.kg-col-cover>.kg-signs{flex-shrink:0}.kg-page[data-page="1"]>.kg-col-cover .kg-section{padding:1.1mm 1.8mm 1.2mm}.kg-page[data-page="1"]>.kg-col-cover .kg-row{margin-bottom:.3mm;padding:.35mm 1.2mm}.kg-page[data-page="1"]>.kg-col-cover .kg-skill{min-height:3.4mm;font-size:8.3pt}.kg-page[data-page="1"]>.kg-col-cover .kg-comment{flex-direction:column;flex:auto;margin-top:0;margin-bottom:20px;display:flex}.kg-page[data-page="1"]>.kg-col-cover .kg-comment h3{flex-shrink:0}.kg-page[data-page="1"]>.kg-col-cover .kg-comment-text{flex:auto;height:auto;min-height:8mm;max-height:100%;font-size:8.5pt;line-height:1.3;overflow-y:auto}.kg-page[data-page="1"]>.kg-col-cover .kg-signs p{margin-bottom:.8mm;font-size:9pt}.kg-page[data-page="1"]>.kg-col:last-child{gap:1mm}.kg-page[data-page="1"]>.kg-col:last-child .kg-head img,.kg-page.is-capturing[data-page="1"]>.kg-col:last-child .kg-head img{object-fit:contain;width:20mm}.kg-page[data-page="1"]>.kg-col:last-child .kg-school{font-size:17pt}.kg-page[data-page="1"]>.kg-col:last-child .kg-sub{font-size:12pt}.kg-page[data-page="1"]>.kg-col:last-child .kg-title{font-size:14pt}.kg-page[data-page="1"]>.kg-col:last-child .kg-line{margin-bottom:1.1mm;font-size:10pt}.kg-page[data-page="1"]>.kg-col:last-child .kg-info,.kg-page[data-page="1"]>.kg-col:last-child .kg-key,.kg-page.is-capturing[data-page="1"]>.kg-col:last-child .kg-info,.kg-page.is-capturing[data-page="1"]>.kg-col:last-child .kg-key{padding-top:1mm}.kg-page[data-page="1"]>.kg-col:last-child .kg-info h2,.kg-page[data-page="1"]>.kg-col:last-child .kg-key h2{margin-top:auto;padding:.7mm 10mm;font-size:9.5pt}.kg-page[data-page="1"]>.kg-col:last-child .kg-key-grid p{font-size:7pt}.kg-page[data-page="1"] .kg-section.is-rtl .kg-row{padding:.3mm 1.2mm}.kg-page[data-page="1"]>.kg-col:last-child .kg-section.is-rtl{margin-top:auto}.kg-page[data-page="1"] .kg-section.is-rtl .kg-skill-urdu{min-height:5.6mm;font-size:7.5pt;line-height:1.45}.kg-col{flex-direction:column;gap:1.8mm;min-width:0;display:flex}.kg-head{align-items:center;gap:4mm;display:flex}.kg-head-copy{text-align:center;flex:1;min-width:0}.kg-logo,.kg-head img{flex:none;width:20mm;height:auto}.kg-folder-icon{flex:none;width:5.2mm;height:auto;display:block}.kg-school{color:#000;text-align:center;margin:0;font-size:16pt;line-height:1.1}.kg-sub{color:#000;text-align:center;margin:1mm 0 0;font-size:11pt}.kg-title{text-align:center;color:#000;margin:0;font-size:15pt}.kg-identity{border:2px solid #111;border-radius:8px;padding:2.2mm 4mm 1.6mm}.kg-line{align-items:baseline;gap:2mm;margin:0 0 1.5mm;font-size:11pt;display:flex}.kg-line b{white-space:nowrap}.kg-underline-field{vertical-align:baseline;border-bottom:2px solid #111;max-width:100%;padding:0 15px;line-height:1.2;display:inline-block}.kg-line .kg-underline-field,.kg-signs .kg-underline-field{flex:0 auto}.kg-line input,.kg-signs input{font:inherit;color:#000;text-align:left;field-sizing:content;background:0 0;border:0;outline:none;width:auto;min-width:1ch;padding:0;font-weight:400}.kg-section{background:var(--kg-card);border-radius:12px;padding:1.6mm 2.2mm 1.8mm}.kg-section-head{justify-content:space-between;align-items:center;gap:2mm;margin:0 0 1.1mm;display:flex}.kg-section h3{color:#000;flex:1;align-items:center;gap:2mm;min-width:0;margin:0;font-size:9.6pt;display:flex}.kg-section-title,.kg-section-title-text{min-width:0;font:inherit;color:#000;background:0 0;border:0;outline:none;flex:1;padding:0;font-weight:600}.kg-section-actions{flex-shrink:0;align-items:center;gap:1mm;display:flex}.kg-folder-rtl{color:#003b93;font:inherit;cursor:pointer;background:#fff;border:1px solid #c5d0dc;border-radius:4px;padding:1mm 1.2mm;font-size:6pt;font-weight:700;line-height:1}.kg-folder-rtl.is-active{color:#fff;background:#003b93;border-color:#003b93}.kg-folder-add{color:#003b93;font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;margin-top:.5mm;padding:.5mm 0;font-size:7.5pt;font-weight:600;line-height:1.2}.kg-section.is-rtl{direction:ltr}.kg-info,.kg-key{padding-top:4mm}.kg-info h2,.kg-key h2{background:var(--kg-navy);color:#fff;border-radius:999px;width:fit-content;margin:-5.2mm auto 2.2mm;padding:1.1mm 6mm;font-size:10.5pt}.kg-info-grid{grid-template-columns:1fr 1fr;gap:2.2mm 5mm;display:grid}.kg-info-grid label{color:#000;justify-content:space-between;align-items:center;gap:2mm;font-size:9pt;font-weight:400;display:flex}.kg-info-grid input,.kg-grade{text-align:center;text-align-last:center;width:11.5mm;height:5mm;font:inherit;color:#000;appearance:none;box-sizing:border-box;background:#fff;border:0;border-radius:3px;outline:none;padding:0;font-size:8.5pt;font-weight:600;line-height:5mm}select.kg-grade{background-image:none;padding-right:0}.kg-grade.is-compact{width:8mm;height:5.4mm;font-size:8pt;line-height:5.4mm}select.kg-grade.is-compact{background-image:none;padding-right:0}.kg-key-grid{grid-template-columns:1fr 1fr;gap:1.8mm 4mm;display:grid}.kg-key-grid p{margin:0;font-size:7.6pt;line-height:1.25}.kg-key-grid b{color:#000;display:block}.kg-row{background:var(--kg-row);direction:ltr;border-radius:7px;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:1.4mm;margin-bottom:.45mm;padding:.45mm 1.4mm;display:grid}.kg-row-end{align-items:start;gap:.8mm;padding-top:.2mm;display:flex}.kg-row-remove,.kg-row-add{color:#003b93;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;line-height:1}.kg-row-remove{width:4mm;height:4mm;font-size:11pt;font-weight:600}.kg-row-add{text-align:left;margin-top:1mm;font-size:7pt;font-weight:600}.kg-page.is-capturing .kg-row-remove,.kg-page.is-capturing .kg-row-add,.kg-page.is-capturing .kg-folder-add,.kg-page.is-capturing .kg-section-actions{display:none}.kg-page.is-capturing .kg-section-head{margin-bottom:1.1mm}.kg-skill-wrap{direction:ltr;width:100%;min-width:0}.kg-section.is-rtl .kg-skill-wrap{text-align:left;direction:rtl}.kg-row:last-child{margin-bottom:0}.kg-row.is-nested{display:block}.kg-skill{resize:none;background:var(--kg-field);color:#000;width:100%;height:auto;min-height:3.8mm;font:inherit;white-space:pre-wrap;word-break:break-word;box-sizing:border-box;border:0;outline:none;font-size:7.3pt;font-weight:400;line-height:1.22;overflow:hidden}p.kg-skill-urdu,textarea.kg-skill-urdu,.kg-skill-urdu,.kg-skill-urdu-img{direction:rtl;unicode-bidi:plaintext;min-height:5.6mm;margin:0;font-family:Segoe UI,Tahoma,Arial Unicode MS,sans-serif;font-size:7.5pt;line-height:1.45;text-align:left!important}textarea.kg-skill-urdu{resize:none;background:var(--kg-field);color:#000;white-space:pre-wrap;word-break:break-word;box-sizing:border-box;border:0;outline:none;width:100%;height:auto;overflow:hidden}div.kg-skill{resize:none;padding:.2mm 0}.kg-nested-title{color:#000;margin:0 0 1.2mm;font-size:8pt}.kg-nested-grid{grid-template-columns:1fr 1fr;gap:1.2mm 4mm;display:grid}.kg-nested-item{grid-template-columns:auto 1fr;align-items:start;gap:1.6mm;display:grid}.kg-skill.is-nested{height:auto;min-height:5.4mm;font-size:8pt;font-weight:400}.kg-comment h3{color:#000}.kg-comment-text,.kg-comment div.kg-comment-text{background:var(--kg-field);resize:none;width:100%;min-height:16mm;font:inherit;color:#000;white-space:pre-wrap;word-break:break-word;border:0;outline:none;font-size:9.5pt;font-weight:400;line-height:1.35}.kg-capture-value{min-width:0;font:inherit;color:#000;white-space:pre-wrap;word-break:break-word;flex:1;font-weight:400}.kg-line .kg-capture-value,.kg-signs .kg-capture-value{text-align:left;flex:none;width:fit-content;max-width:100%;display:inline-block}.kg-info-grid .kg-capture-value{text-align:center;background:#fff;border-radius:3px;justify-content:center;align-items:center;width:11.5mm;min-height:5mm;display:inline-flex}.kg-signs p{color:#000;align-items:baseline;gap:2mm;margin:0 0 2mm;font-size:10.5pt;font-weight:400;display:flex}.kg-kids,.kg-skill-urdu-img{pointer-events:none;object-position:left center;margin-right:auto;display:block}.kg-kids{object-fit:contain;object-position:center bottom;width:60.85mm;height:16.4mm}.kg-page[data-page="1"] .kg-kids{z-index:2;width:64mm;height:16.4mm;position:absolute;bottom:4.6mm;left:82mm}.kg-page.is-capturing .kg-grade{appearance:none;background:#fff}.kg-page.is-capturing{-webkit-font-smoothing:antialiased;text-rendering:geometricprecision;box-shadow:none!important;filter:none!important;transform:none!important}.kg-page.is-capturing img,.kg-page.is-capturing .kg-skill-urdu-img,.kg-page.is-capturing .kg-logo,.kg-page.is-capturing .kg-kids{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}.kg-page.is-capturing[data-page="1"]>.kg-col-cover{gap:.9mm;height:100%;min-height:0;padding-bottom:17mm;overflow:visible}.kg-page.is-capturing[data-page="1"]>.kg-col-cover>.kg-section:not(.kg-comment),.kg-page.is-capturing[data-page="1"]>.kg-col-cover>.kg-signs{flex-shrink:0}.kg-page.is-capturing[data-page="1"]>.kg-col-cover .kg-comment{flex-direction:column;flex:auto;margin-top:0;margin-bottom:20px;display:flex}.kg-page.is-capturing[data-page="1"]>.kg-col-cover .kg-comment-text,.kg-page.is-capturing[data-page="1"]>.kg-col-cover div.kg-comment-text{flex:auto;min-height:8mm;font-size:8.5pt;line-height:1.3;max-height:none!important;overflow:visible!important}.kg-page.is-capturing[data-page="1"]>.kg-col:last-child .kg-head img{object-fit:contain;width:20mm}.kg-page.is-capturing[data-page="1"]>.kg-col:last-child .kg-info,.kg-page.is-capturing[data-page="1"]>.kg-col:last-child .kg-key{padding-top:1mm}.kg-page.is-capturing[data-page="1"]>.kg-col:last-child .kg-info h2,.kg-page.is-capturing[data-page="1"]>.kg-col:last-child .kg-key h2{margin-top:auto;padding:.7mm 10mm;font-size:9.5pt}.kg-page.is-capturing[data-page="1"]>.kg-col:last-child .kg-section.is-rtl{margin-top:auto}.kg-page.is-capturing[data-page="1"] .kg-kids{z-index:2;width:64mm;height:16.4mm;position:absolute;bottom:4.6mm;left:82mm}.kg-page.is-capturing .kg-underline-field{border-bottom:2px solid #111;padding:0 15px}.kg-page.is-capturing .kg-info-grid input,.kg-page.is-capturing .kg-grade,.kg-page.is-capturing .kg-info-grid .kg-capture-value{width:11.5mm;height:5mm;min-height:5mm;line-height:5mm}.kg-page.is-capturing .kg-section.is-rtl .kg-skill-wrap{text-align:left;direction:rtl}.kg-page.is-capturing textarea.kg-skill-urdu,.kg-page.is-capturing .kg-skill-urdu,.kg-page.is-capturing .kg-skill-urdu-img{direction:rtl;unicode-bidi:plaintext;text-align:left!important}.challan-root{z-index:var(--overlay-z);padding:var(--modal-inset);box-sizing:border-box;background:#06152c73;flex-direction:column;gap:10px;display:flex;position:fixed;inset:0;overflow:auto}.challan-root .challan-toolbar,.challan-root .challan-sheet{border-radius:var(--radius);box-shadow:var(--shadow-hover)}.challan-root .challan-sheet{flex:1;min-height:0;overflow:auto}.challan-toolbar{z-index:2;border:1px solid var(--border);background:#fff;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:10px 14px;display:flex;position:sticky;top:0}.challan-sheet{color:#111;box-sizing:border-box;background:#fff;flex-direction:column;width:210mm;max-width:100%;height:297mm;margin:0 auto;padding:2mm;display:flex}.challan-copy{box-sizing:border-box;background:#fff;border:1px solid #cbd5e1;flex-direction:column;flex:1 1 0;min-height:0;margin:0;display:flex;position:relative;overflow:hidden}.challan-copy+.challan-copy{margin-top:1.5mm}.challan-header{background:#fff;border-bottom:1px solid #e2e8f0;flex:none;padding:4px 8px 3px}.challan-header-row{align-items:center;gap:10px;display:flex}.challan-header-logo{object-fit:contain;flex-shrink:0;width:50px;height:50px}.challan-header-text{flex:1;min-width:0}.challan-header-text h1{text-align:center;font-family:var(--font-serif);color:#0f172a;letter-spacing:.01em;margin:0;font-size:1.2rem;font-weight:700;line-height:1.15}.challan-header-text p{text-align:center;color:#64748b;margin:1px 0 0;font-size:.62rem;font-weight:500;line-height:1.2}.challan-header-copy{color:#334155;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;background:#f8fafc;border:1px solid #cbd5e1;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:.48rem;font-weight:700}.challan-header-sub{text-align:center;color:#475569;letter-spacing:.02em;border-top:1px solid #f1f5f9;margin:3px 0 0;padding-top:3px;font-size:.52rem;font-weight:600;line-height:1.3}.challan-body{flex:auto;grid-template-columns:1.15fr 1fr auto;align-content:start;gap:4px 8px;padding:2px 6px;font-size:.62rem;display:grid}.challan-body h2{margin:0 0 2px;font-size:.72rem;text-decoration:underline}.challan-body dl{margin:0 0 4px}.challan-body dl>div{grid-template-columns:92px 1fr;gap:4px;display:grid}.challan-body dt{font-weight:700}.challan-body dd{margin:0}.challan-charge{border-bottom:1px dotted #ccc;justify-content:space-between;gap:12px;padding:1px 0;display:flex}.challan-charge.is-total{border-bottom:1px solid #111;margin-top:4px;font-weight:800}.challan-qr{align-content:center;justify-items:center;gap:2px;padding:2px;font-size:.55rem;font-weight:700;display:grid}.challan-qr img{background:#fff;width:28mm;min-width:28mm;height:28mm;min-height:28mm}.challan-qr span{text-align:center;word-break:break-word;max-width:32mm;line-height:1.15}.challan-cut{border-top:1px dashed #333;flex:none;margin:0 6px 2px;padding-top:2px;font-size:.5rem}.challan-ur{direction:rtl;font-family:Noto Nastaliq Urdu,Segoe UI,serif}@media print{@page{size:A4 portrait;margin:0}html.printing-challan,html.printing-challan body,html.printing-challan #root{background:#fff!important;width:210mm!important;height:297mm!important;min-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important}html.printing-challan *{-webkit-print-color-adjust:exact;print-color-adjust:exact}html.printing-challan body>:not(.challan-root){display:none!important}html.printing-challan .challan-root{z-index:auto;background:#fff;width:210mm;height:297mm;margin:0;padding:0;position:static;inset:auto;overflow:hidden}html.printing-challan .no-print{display:none!important}html.printing-challan .challan-sheet{page-break-after:avoid;page-break-inside:avoid;break-after:avoid;break-inside:avoid;width:210mm;max-width:none;height:297mm;max-height:297mm;margin:0;padding:2mm;overflow:hidden}html.printing-challan .challan-copy{page-break-inside:avoid;page-break-after:avoid;break-inside:avoid;break-after:avoid}html.printing-challan .challan-header{-webkit-print-color-adjust:exact;print-color-adjust:exact}html.printing-challan .challan-qr img{width:28mm;height:28mm}html.printing-behaviour,html.printing-behaviour body,html.printing-behaviour #root{background:#fff!important;width:210mm!important;height:297mm!important;min-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important}html.printing-behaviour *{-webkit-print-color-adjust:exact;print-color-adjust:exact}html.printing-behaviour body>:not(.ba-modal-back){display:none!important}html.printing-behaviour .ba-modal-back{z-index:auto;background:#fff;margin:0;padding:0;position:static;inset:auto;overflow:visible;display:block!important}html.printing-behaviour .ba-editor-bar,html.printing-behaviour .ba-meta,html.printing-behaviour .no-print{display:none!important}html.printing-behaviour .ba-modal{width:210mm;max-width:none;height:auto;max-height:none;box-shadow:none;background:#fff;border-radius:0;margin:0;padding:0;overflow:visible}html.printing-behaviour .ba-root{z-index:auto;background:#fff;width:210mm;height:297mm;margin:0;padding:0;position:static;inset:auto;overflow:hidden}html.printing-behaviour .ba-sheet{box-sizing:border-box;width:210mm;max-width:none;height:297mm;box-shadow:none;margin:0;padding:8mm;overflow:hidden}html.printing-behaviour .ba-frame{box-sizing:border-box;page-break-after:avoid;page-break-inside:avoid;border:3.5px solid #1a4a8c;border-bottom:0;border-radius:16px;width:100%;height:100%;min-height:0;max-height:none;margin:0;padding:3mm 4mm 0;overflow:visible}html.printing-behaviour .ba-foot{margin-top:auto;margin-bottom:0;padding-bottom:0}html.printing-behaviour .ba-block li{min-height:7.2mm}html.printing-behaviour img,html.printing-behaviour .ba-promise-badge h3,html.printing-behaviour .ba-promise-badge ion-icon,html.printing-behaviour .ba-promise li ion-icon{-webkit-print-color-adjust:exact;print-color-adjust:exact}html.printing-behaviour .ba-promise{overflow:visible}html.printing-individual,html.printing-individual body,html.printing-individual #root{background:#fff!important;width:210mm!important;height:297mm!important;min-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important}html.printing-individual *{-webkit-print-color-adjust:exact;print-color-adjust:exact}html.printing-individual body>:not(.ba-modal-back){display:none!important}html.printing-individual .ba-modal-back{z-index:auto;background:#fff;margin:0;padding:0;position:static;inset:auto;overflow:visible;display:block!important}html.printing-individual .ba-editor-bar,html.printing-individual .no-print{display:none!important}html.printing-individual .ba-modal{width:210mm;max-width:none;height:auto;max-height:none;box-shadow:none;background:#fff;border-radius:0;margin:0;padding:0;overflow:visible}html.printing-individual .ia-preview-modal{width:210mm;max-width:none;height:297mm;max-height:none;box-shadow:none;background:#fff;border-radius:0;margin:0;padding:0;overflow:hidden}html.printing-individual .ia-preview-stage{padding:0;overflow:hidden}html.printing-individual .ia-sheet{width:210mm;min-width:210mm;max-width:210mm;height:297mm;min-height:297mm;max-height:297mm;box-shadow:none;margin:0;padding:14mm 16mm 18mm}}
