@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2?dpl=dpl_683ZDLdCJfvMTvcgRPwx6imF3ozw)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2?dpl=dpl_683ZDLdCJfvMTvcgRPwx6imF3ozw)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2?dpl=dpl_683ZDLdCJfvMTvcgRPwx6imF3ozw)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2?dpl=dpl_683ZDLdCJfvMTvcgRPwx6imF3ozw)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2?dpl=dpl_683ZDLdCJfvMTvcgRPwx6imF3ozw)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.woff2?dpl=dpl_683ZDLdCJfvMTvcgRPwx6imF3ozw)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2?dpl=dpl_683ZDLdCJfvMTvcgRPwx6imF3ozw)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2?dpl=dpl_683ZDLdCJfvMTvcgRPwx6imF3ozw)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2?dpl=dpl_683ZDLdCJfvMTvcgRPwx6imF3ozw)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2?dpl=dpl_683ZDLdCJfvMTvcgRPwx6imF3ozw)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.woff2?dpl=dpl_683ZDLdCJfvMTvcgRPwx6imF3ozw)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--background:#eef5fb;--foreground:#172237;--muted:#617087;--line:#d7e4f0;--panel:#fff;--panel-soft:#f9fbfd;--card-bg:#ffffffeb;--card-border:#ceddebe6;--input-bg:#fffffff5;--table-bg:#fff;--table-head:linear-gradient(180deg, #f8fbff, #f1f6fb);--td-color:#29364a;--primary:#1c4481;--primary-strong:#123060;--accent:#43b649;--accent-soft:#e8f8eb;--danger:#c2413a;--warning:#d89000;--ink:#0e1726;--shadow:0 24px 70px #12306021;--shadow-soft:0 14px 34px #12306017;--radius-lg:24px;--radius-md:16px}:root[data-theme=dark]{--background:#0b1220;--foreground:#e6edf6;--muted:#9fb0c7;--line:#24344d;--panel:#111c30;--panel-soft:#0f1a2c;--card-bg:#131e32eb;--card-border:#344866b3;--input-bg:#0d1626e6;--table-bg:#101b2e;--table-head:linear-gradient(180deg, #16233a, #121d31);--td-color:#cdd8e8;--primary:#3f74c4;--primary-strong:#2b5aa0;--accent:#4cc55a;--accent-soft:#4cc55a29;--danger:#e5695f;--warning:#e0a52a;--ink:#f2f6fb;--shadow:0 24px 70px #00000080;--shadow-soft:0 14px 34px #0006}html{height:100%}html,body{max-width:100vw;overflow-x:hidden}body{min-height:100%;color:var(--foreground);background:radial-gradient(circle at top left, #43b64921, transparent 30rem), radial-gradient(circle at top right, #1c448124, transparent 32rem), linear-gradient(180deg, #f8fbfe 0%, var(--background) 56%, #f7fafc 100%);font-family:var(--font-geist-sans), Arial, Helvetica, sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;display:flex}:root[data-theme=dark] body{background:radial-gradient(circle at top left, #43b6491a, transparent 30rem), radial-gradient(circle at top right, #3f74c424, transparent 32rem), linear-gradient(180deg, #0c1526 0%, var(--background) 56%, #0a111f 100%)}*{box-sizing:border-box;margin:0;padding:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;min-width:0}button{border:0}.auth-page{background:linear-gradient(120deg,#0d254ef0,#1c4481d6 48%,#43b64980),url(/aec-campus.jpg) 50%/cover;grid-template-columns:minmax(320px,.95fr) minmax(420px,1.05fr);min-height:100vh;display:grid}.auth-brand{color:#fff;flex-direction:column;justify-content:space-between;padding:clamp(28px,4vw,56px);display:flex;position:relative;overflow:hidden}.auth-brand:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff29,#0000 64%);border-radius:999px;width:36rem;height:36rem;position:absolute;bottom:-22%;right:-20%}.brand-mark{letter-spacing:.01em;align-items:center;gap:12px;font-weight:800;display:inline-flex}.brand-logo{width:44px;height:44px;color:var(--primary);background:#fff;border-radius:8px;place-items:center;font-weight:900;display:grid}.image-logo{width:auto;min-width:156px;height:52px;padding:6px 8px}.image-logo img{width:auto;max-width:100%;height:auto;display:block}.auth-logo{background:#fffffff5}.auth-brand-top{z-index:1;flex-wrap:wrap;align-items:center;gap:14px;width:fit-content;display:inline-flex;position:relative}.auth-logo-shell,.brand-logo-shell{background:#fffffff5;border-radius:18px;place-items:center;width:fit-content;display:inline-grid;box-shadow:0 16px 38px #07162b2e,inset 0 1px #ffffffc7}.auth-logo-shell{padding:10px 14px}.auth-logo-shell img,.brand-logo-shell img{object-fit:contain;width:auto;max-width:100%;height:auto;display:block}.portal-badge{color:#fff;background:#ffffff24;border-radius:999px;align-items:center;min-height:34px;padding:0 13px;font-size:.86rem;font-weight:900;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff2e}.brand-text{color:var(--primary);font-size:.9rem}.auth-copy{z-index:1;max-width:560px;position:relative}.auth-copy h1{color:#fff;letter-spacing:-.06em;text-shadow:0 16px 42px #07162b57;margin-bottom:24px;font-size:clamp(2.65rem,5.4vw,5.15rem);line-height:.95}.auth-copy p{color:#ffffffd6;font-size:1.05rem;line-height:1.65}.auth-points{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.auth-points span{color:#fff;background:#ffffff26;border:1px solid #ffffff3d;border-radius:999px;align-items:center;min-height:34px;padding:0 12px;font-weight:800;display:inline-flex;box-shadow:inset 0 1px #ffffff2e}.auth-switch{color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff24;border:1px solid #ffffff52;border-radius:999px;justify-content:center;align-items:center;width:fit-content;min-height:40px;padding:0 14px;font-weight:900;display:inline-flex}.auth-switch:hover{background:#ffffff38}.auth-bottom{z-index:1;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;display:flex;position:relative}.auth-powered{background:#fffffff5;border-color:#ffffff6b;box-shadow:0 18px 44px #07162b29}.auth-powered span{color:var(--primary-strong)}.auth-panel{background:radial-gradient(circle at 30% 20%,#1c448117,#0000 24rem),radial-gradient(circle at 80% 88%,#43b6491a,#0000 24rem),#f7fbff;place-items:center;padding:32px;display:grid}.auth-panel-stack{justify-items:center;gap:14px;width:min(100%,460px);display:grid}.login-card{background:var(--card-bg);border:1px solid var(--line);width:min(100%,460px);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:28px;padding:clamp(26px,3vw,38px)}.login-powered{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffd6;border:1px solid #d7e4f0db;border-radius:999px;justify-content:center;align-items:center;gap:8px;width:fit-content;max-width:100%;min-height:36px;padding:5px 9px 5px 11px;display:inline-flex;box-shadow:0 12px 28px #12306014}.login-powered span{color:#526071;white-space:nowrap;font-size:.7rem;font-weight:900}.login-powered img{border-radius:7px;width:96px;height:auto;display:block}.login-card h2{letter-spacing:-.03em;margin-bottom:10px;font-size:1.8rem}.login-card-brand{margin-bottom:18px}.card-logo-shell{box-shadow:none;background:0 0;border-radius:0;justify-items:center;width:100%;padding:8px 0}.login-card-brand img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:52px}.login-card p{color:var(--muted);line-height:1.55}.field{gap:8px;min-width:0;margin-top:18px;display:grid}form{min-width:0}.field label{color:var(--ink);font-size:.9rem;font-weight:700}.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--input-bg);width:100%;color:var(--foreground);border-radius:14px;outline:none;padding:13px 14px;transition:border-color .18s,box-shadow .18s,background .18s}.field select option{color:#172237}.password-input-wrap{position:relative}.password-input-wrap input{padding-inline-end:48px}[dir=rtl] .password-input-wrap input{padding-inline:48px 14px}.password-toggle{width:36px;color:var(--primary);cursor:pointer;background:#1c448114;border-radius:999px;place-items:center;transition:background .15s,color .15s,transform .15s;display:inline-grid;position:absolute;inset-block:7px;inset-inline-end:8px}[dir=rtl] .password-toggle{inset-inline:8px auto}.password-toggle:hover,.password-toggle:focus-visible{color:#fff;background:var(--primary);transform:translateY(-1px)}.field textarea{resize:vertical;min-height:110px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0b5cab24}.button-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:22px;display:flex}.form-hint,.button-row+.hint{margin-top:12px;line-height:1.5;display:block}.stacked-form{border-top:1px solid var(--line);margin-top:26px;padding-top:22px}.btn{color:#fff;background:linear-gradient(135deg, var(--primary), #235ba4);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 16px;font-weight:800;transition:transform .15s,background .15s,box-shadow .15s;display:inline-flex;box-shadow:0 12px 22px #1c44812e}.btn:hover{background:var(--primary-strong);transform:translateY(-1px);box-shadow:0 16px 28px #1c44813d}.btn.secondary{color:var(--primary);box-shadow:none;background:#1c44811a}.btn.ghost{color:var(--foreground);box-shadow:none;background:0 0}.btn.danger{background:var(--danger)}.hint{color:var(--muted);font-size:.88rem}.error{color:var(--danger);font-weight:700}.app-frame{background:linear-gradient(90deg,#0d1f40 0 304px,#0000 304px);grid-template-columns:304px minmax(0,1fr);min-height:100vh;display:grid}[dir=rtl] .app-frame{background:linear-gradient(270deg,#0d1f40 0 304px,#0000 304px)}.sidebar{color:#fff;isolation:isolate;background:linear-gradient(#123060f5,#0c1f40fc),radial-gradient(circle at 20% 0,#43b6493d,#0000 20rem);border-right:1px solid #ffffff24;flex-direction:column;height:100vh;padding:22px;display:flex;position:sticky;top:0;box-shadow:18px 0 50px #0e172624}.sidebar-scroll{scrollbar-width:thin;scrollbar-color:#ffffff47 transparent;flex-direction:column;flex:auto;gap:0;min-height:0;margin:-4px -8px 0;padding:4px 8px;display:flex;overflow-y:auto}.sidebar-scroll::-webkit-scrollbar{width:6px}.sidebar-scroll::-webkit-scrollbar-thumb{background:#ffffff3d;border-radius:999px}[dir=rtl] .sidebar{border-left:1px solid #ffffff24;border-right:0}.sidebar .brand-mark{background:#ffffff14;border:1px solid #ffffff24;border-radius:22px;place-items:center;gap:8px;width:100%;padding:10px;display:grid;box-shadow:inset 0 1px #ffffff1f}.app-brand{background:linear-gradient(#ffffff24,#ffffff12),#ffffff0a;border:1px solid #ffffff24;border-radius:24px;gap:10px;padding:13px;display:grid;box-shadow:inset 0 1px #ffffff29,0 16px 30px #0612261f}.app-brand:hover{background:linear-gradient(#ffffff2e,#ffffff14),#ffffff0a}.brand-logo-shell{place-items:center;width:100%;min-height:68px;padding:12px;display:grid}.brand-title{color:#fff;text-align:center;gap:2px;display:grid}.brand-title strong{letter-spacing:-.01em;font-size:.98rem}.brand-title small{color:#ffffffb8;letter-spacing:.08em;text-transform:uppercase;font-size:.76rem;font-weight:800}.sidebar .brand-logo{width:100%}.sidebar .image-logo{border-radius:16px;min-width:0;height:56px}.sidebar .brand-text{color:#fff;text-transform:uppercase;letter-spacing:.12em;text-align:center;font-size:.78rem;line-height:1.15}.nav{gap:6px;margin-top:26px;display:grid}.mobile-nav{display:none}.nav a{color:#ffffffc2;border:1px solid #0000;border-radius:16px;align-items:center;gap:10px;min-height:46px;padding:11px 13px;font-weight:700;transition:background .16s,color .16s,transform .16s,border-color .16s;display:flex}.nav a:hover,.nav a.active{color:#fff;background:#ffffff24;border-color:#ffffff29;transform:translate(2px)}[dir=rtl] .nav a:hover,[dir=rtl] .nav a.active{transform:translate(-2px)}.nav a.active{box-shadow:inset 4px 0 0 var(--accent)}[dir=rtl] .nav a.active{box-shadow:inset -4px 0 0 var(--accent)}.side-footer{border-top:1px solid #ffffff24;flex:none;margin-top:14px;padding-top:16px}.language-pill{color:#fff;background:#ffffff1c;border:1px solid #ffffff24;border-radius:999px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:40px;margin-bottom:12px;font-weight:900;display:inline-flex}.language-pill:hover{background:#ffffff2e}.user-chip{background:#ffffff1a;border-radius:18px;gap:3px;margin-bottom:14px;padding:14px;display:grid}.user-chip strong{color:#fff}.user-chip span{color:#ffffffb8;overflow-wrap:anywhere;font-size:.85rem}.sidebar .kpi-strip span{color:#ffffffd1;background:#ffffff1a;border-color:#ffffff29}.sidebar .btn.ghost{color:#fff;background:#ffffff1a;justify-content:flex-start;width:100%;margin-top:10px}[dir=rtl] .sidebar .btn.ghost{justify-content:flex-start}.content{min-width:0;padding:clamp(20px,2.8vw,38px)}.powered-by{background:#fff;border:1px solid #fff6;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:12px;padding:8px 10px;display:flex}.powered-by span{color:#0e1726a8;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;font-size:.68rem;font-weight:900}.powered-by img{border-radius:6px;width:108px;max-width:60%;height:auto;display:block}.topbar{box-shadow:var(--shadow);background:linear-gradient(135deg,#123060fa,#1c4481e6 58%,#43b649c7),url(/school-pattern.svg) 50%/260px;border:1px solid #fff9;border-radius:30px;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;padding:clamp(22px,3vw,34px);display:flex;position:relative;overflow:hidden}.topbar:after{content:"";pointer-events:none;background:#ffffff24;border-radius:999px;width:20rem;height:20rem;position:absolute;inset:auto -5rem -9rem auto}.topbar>*{z-index:1;position:relative}.eyebrow{color:#ffffffe6;text-transform:uppercase;letter-spacing:.08em;background:#ffffff1f;border:1px solid #ffffff38;border-radius:999px;align-items:center;width:fit-content;min-height:28px;margin-bottom:12px;padding:0 11px;font-size:.72rem;font-weight:900;display:inline-flex}h1{color:var(--ink);letter-spacing:-.045em;overflow-wrap:anywhere;font-size:clamp(1.8rem,2.5vw,2.55rem);line-height:1.1}.topbar h1{color:#fff;overflow-wrap:anywhere;max-width:980px;font-size:clamp(2rem,3.1vw,3.25rem)}.subhead{color:#ffffffd1;max-width:820px;margin-top:12px;font-size:1.02rem;line-height:1.6}.grid{gap:18px;display:grid}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:clamp(18px,2vw,24px)}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.card-head h2{margin-bottom:0}.wide-card{grid-column:1/-1}.launch-card{margin-top:18px}.action-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.action-grid a{background:linear-gradient(#fffffffa,#f7fbfffa),radial-gradient(circle at 100% 0,#43b64924,#0000 8rem);border:1px solid #1c448121;border-radius:18px;gap:7px;min-height:118px;padding:16px;transition:transform .15s,box-shadow .15s,border-color .15s;display:grid}.action-grid a:hover{border-color:#1c448142;transform:translateY(-2px);box-shadow:0 16px 30px #1230601a}.action-grid strong{color:var(--ink);letter-spacing:-.02em}.action-grid span{color:var(--muted);font-size:.92rem;line-height:1.45}.card h2,.card h3{color:var(--ink);letter-spacing:-.035em;margin-bottom:14px}.stat-card{gap:12px;min-height:160px;display:grid;position:relative;overflow:hidden}.stat-card:after{content:"";pointer-events:none;background:#43b64921;border-radius:999px;width:10rem;height:10rem;position:absolute;top:-5rem;right:-4rem}.stat-head{color:var(--muted);z-index:1;justify-content:space-between;align-items:center;font-size:.88rem;font-weight:800;display:flex;position:relative}.stat-head svg{color:var(--primary);background:#1c448117;border-radius:12px;width:34px;height:34px;padding:7px}.stat-value{color:var(--ink);letter-spacing:-.07em;z-index:1;font-size:clamp(2rem,3.2vw,2.75rem);font-weight:900;position:relative}.stat-note{color:var(--muted);z-index:1;font-size:.88rem;line-height:1.45;position:relative}.badge{width:fit-content;min-height:26px;color:var(--primary);background:#0b5cab1a;border-radius:999px;align-items:center;padding:0 10px;font-size:.76rem;font-weight:900;display:inline-flex}.badge.green{color:#13784b;background:var(--accent-soft)}.badge.gold{color:#855900;background:#d8900029}.badge.red{color:var(--danger);background:#c2413a1f}.status-banner{border:1px solid var(--line);background:var(--card-bg);box-shadow:var(--shadow-soft);border-radius:18px;align-items:center;gap:10px;margin:6px 0 20px;padding:14px 16px;display:flex}.status-detail{color:var(--muted);font-size:.86rem;font-style:normal}.status-banner strong{color:#fff;border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:.82rem;display:inline-flex}.status-banner.success strong{background:var(--accent)}.status-banner.error strong{background:var(--danger)}.status-banner.success{border-color:#43b64966}.status-banner.error{border-color:#c2413a66}.status-banner span{color:var(--foreground);line-height:1.4}.table-wrap{border:1px solid var(--line);background:var(--table-bg);-webkit-overflow-scrolling:touch;border-radius:18px;min-width:0;max-width:100%;overflow-x:auto}table{border-collapse:collapse;background:var(--table-bg);width:100%;min-width:max-content}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;white-space:nowrap;padding:14px 16px}[dir=rtl] th,[dir=rtl] td{text-align:right}th{color:var(--muted);background:var(--table-head);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}td{color:var(--td-color);font-size:.92rem}tbody tr:hover td{background:var(--panel-soft)}.table-empty{text-align:center;color:var(--muted);padding:26px}tr:last-child td{border-bottom:0}.split{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:18px;display:grid}.list{gap:10px;display:grid}.list-item{border:1px solid var(--line);background:var(--table-bg);border-radius:18px;justify-content:space-between;align-items:flex-start;gap:16px;padding:15px;display:flex}.list-item.unread{box-shadow:inset 3px 0 0 var(--warning);border-color:#d8900066}.list-item>div{min-width:0}.list-item p{color:var(--muted);margin-top:3px;line-height:1.45}.notification-link{background:color-mix(in srgb, var(--primary) 12%, transparent);color:var(--primary);border-radius:999px;align-items:center;margin-top:6px;padding:4px 12px;font-size:.82rem;font-weight:700;text-decoration:none;display:inline-flex}.notification-link:hover{background:color-mix(in srgb, var(--primary) 20%, transparent)}.callout{border:1px solid #1c448138;border-left:5px solid var(--primary);background:#1c448112;border-radius:18px;padding:18px}[dir=rtl] .callout{border-left:1px solid #0b5cab38;border-right:5px solid var(--primary)}.callout p{color:#334155;line-height:1.55}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-width:0;display:grid}.form-grid .wide{grid-column:1/-1}.link-child-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:14px;display:grid}.link-child-form .button-row{grid-column:1/-1}@media (max-width:640px){.link-child-form{grid-template-columns:1fr}}.kpi-strip{flex-wrap:wrap;gap:10px;display:flex}.kpi-strip span{border:1px solid var(--line);min-height:34px;color:var(--muted);background:#fff;border-radius:999px;align-items:center;padding:0 12px;font-weight:800;display:inline-flex}.empty{min-height:126px;color:var(--muted);text-align:center;background:radial-gradient(circle at top, #1c44810f, transparent 12rem), var(--panel-soft);border:1px dashed #1c448133;border-radius:18px;place-items:center;gap:8px;padding:26px;display:grid}.empty span{color:var(--accent);font-size:1.1rem}.empty strong{color:var(--ink);font-size:1rem}.empty p{max-width:360px;color:var(--muted);font-size:.9rem;line-height:1.45}.stat-action{z-index:1;margin-top:4px;position:relative}.user-chip-role{text-transform:capitalize;font-weight:800;color:#ffffffe6!important}.danger-text{color:var(--danger)}.table-actions{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.stacked-actions{gap:8px;display:grid}.tab-nav{border:1px solid var(--card-border);background:var(--card-bg);border-radius:16px;flex-wrap:wrap;gap:6px;margin-top:4px;padding:6px;display:flex}.tab-nav a{color:var(--muted);border-radius:11px;padding:8px 14px;font-size:.9rem;font-weight:800;transition:background .15s,color .15s}.tab-nav a:hover{color:var(--foreground);background:var(--panel-soft)}.tab-nav a.active{color:#fff;background:linear-gradient(135deg, var(--primary), #235ba4)}.control-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:.82rem;font-weight:800}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--card-border);background:var(--panel-soft);min-height:34px;color:var(--foreground);border-radius:999px;align-items:center;padding:0 14px;font-size:.88rem;font-weight:800;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.chip:hover{border-color:var(--primary)}.chip.active{color:#fff;background:linear-gradient(135deg, var(--primary), #235ba4);border-color:#0000}.export-row{flex-wrap:wrap;gap:8px;display:inline-flex}.field-label{color:var(--ink);font-size:.9rem;font-weight:700}.checkbox-grid{flex-wrap:wrap;gap:8px;display:flex}.checkbox-pill{border:1px solid var(--card-border);background:var(--panel-soft);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:7px 12px;font-size:.85rem;font-weight:700;display:inline-flex}.checkbox-pill input{width:16px;height:16px;accent-color:var(--primary)}.checkbox-pill:has(input:checked){border-color:var(--primary);background:#1c44811a}.schedule-grid{gap:8px;display:grid}.schedule-row{grid-template-columns:120px minmax(0,1fr);align-items:center;gap:10px;display:grid}.schedule-row span{font-size:.9rem;font-weight:700}.schedule-row input{border:1px solid var(--line);background:var(--input-bg);width:100%;color:var(--foreground);border-radius:12px;outline:none;padding:10px 12px}.schedule-row input:focus{border-color:var(--primary)}.credentials-manager{gap:12px;display:grid}.search-input{border:1px solid var(--line);background:var(--input-bg);width:100%;max-width:420px;color:var(--foreground);border-radius:14px;outline:none;padding:12px 14px}.search-input:focus{border-color:var(--primary)}.mono{font-family:var(--font-geist-mono), ui-monospace, monospace;font-size:.86rem}.password-cell{align-items:center;gap:8px;display:inline-flex}.icon-button{width:30px;height:30px;color:var(--primary);cursor:pointer;background:#1c44811a;border-radius:8px;place-items:center;display:inline-grid}.icon-button:hover{color:#fff;background:var(--primary)}.inline-credentials-form{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.inline-credentials-form input,.inline-credentials-form select{border:1px solid var(--line);background:var(--input-bg);color:var(--foreground);border-radius:10px;max-width:140px;padding:8px 10px;font-size:.85rem}.inline-pay-form{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.inline-pay-form select,.inline-pay-form input{border:1px solid var(--line);background:var(--input-bg);color:var(--foreground);border-radius:10px;padding:8px 10px;font-size:.85rem}.context-card{margin-bottom:16px}.context-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.gradebook-controls{margin-bottom:12px}.gradebook-table th{white-space:normal;vertical-align:bottom;min-width:92px}.grade-head{text-transform:none;letter-spacing:0;flex-direction:column;gap:2px;font-size:.72rem;line-height:1.25;display:flex}.grade-head small{color:var(--primary);font-weight:900}.grade-student{white-space:nowrap;font-weight:700}.grade-input{border:1px solid var(--line);background:var(--input-bg);width:72px;color:var(--foreground);text-align:center;border-radius:10px;outline:none;padding:8px 10px}.grade-input:focus{border-color:var(--primary)}.grade-computed{color:var(--muted);font-weight:800}.grade-total{color:var(--primary);font-weight:900}.publish-form .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.report-card-page{gap:16px;display:grid}.report-actions{flex-wrap:wrap;gap:10px;display:flex}.report-sheet{color:#172237;max-width:900px;box-shadow:var(--shadow-soft);background:#fff;border:1px solid #d7e4f0;border-radius:20px;padding:clamp(24px,4vw,44px)}.report-header{border-bottom:2px solid #1c4481;align-items:center;gap:18px;margin-bottom:20px;padding-bottom:18px;display:flex}.report-header h1{color:#123060;letter-spacing:-.02em;font-size:1.7rem}.report-header p{color:#526071;margin-top:4px}.report-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:22px;display:grid}.report-meta div{gap:2px;display:grid}.report-meta span{color:#617087;text-transform:uppercase;letter-spacing:.05em;font-size:.76rem;font-weight:800}.report-meta strong{color:#172237;font-size:.98rem}.report-term{margin-bottom:20px}.report-term h2{color:#1c4481;margin-bottom:10px;font-size:1.1rem}.report-table{border-collapse:collapse;border:1px solid #d7e4f0;border-radius:12px;width:100%;overflow:hidden}.report-table th,.report-table td{text-align:left;white-space:normal;color:#172237;background:#fff;border-bottom:1px solid #e6eef6;padding:10px 14px}.report-table th{color:#526071;text-transform:uppercase;background:#f1f6fb;font-size:.78rem}[dir=rtl] .report-table th,[dir=rtl] .report-table td{text-align:right}.report-subtotal td{background:#f8fbff;font-weight:800}.report-total td{color:#123060;background:#eaf4ff;font-weight:900}.report-year-average{color:#fff;background:linear-gradient(135deg,#1c4481,#235ba4);border-radius:14px;justify-content:space-between;align-items:center;gap:14px;margin-top:8px;padding:16px 18px;display:flex}.report-year-average strong{font-size:1.3rem}.report-footer{color:#526071;border-top:1px dashed #cdd8e8;margin-top:24px;padding-top:16px;font-weight:800}.invoice-thanks{color:#526071;margin-top:18px}.invoice-footer{justify-content:space-between;align-items:center;gap:24px;display:flex}.invoice-stamp-box{justify-content:center;align-items:center;min-width:140px;min-height:70px;display:flex}:root[data-theme=dark] .report-sheet{box-shadow:0 24px 70px #0000008c}@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.sidebar,.topbar,.no-print,.report-actions{display:none!important}.app-frame{background:#fff;display:block}.content{padding:0}body{background:#fff}.report-card-page{gap:0;margin:0;padding:0;display:block}html,body,.app-frame,.content,.report-card-page{height:auto!important;min-height:0!important}.report-card-page>:last-child,.aec-report:last-child{margin-bottom:0!important}.report-sheet{box-shadow:none;border:0;border-radius:0;width:100%;max-width:100%;margin:0;padding:0}.aec-report,.aec-report-portrait,.aec-report-landscape,.directory-report{box-sizing:border-box;width:100%;max-width:none}.aec-report{padding-bottom:10mm;position:relative}.aec-report-landscape{height:184mm}.aec-report-portrait{height:271mm}.directory-report .report-header{margin-bottom:5mm;padding-bottom:3mm}.directory-records{gap:3mm}.directory-record{break-inside:avoid-page;page-break-inside:avoid;border-radius:0}.directory-record h2{padding:2mm 3mm;font-size:10pt}.directory-record dt,.directory-record dd{padding:1.2mm 2mm;font-size:7.5pt;line-height:1.25}.page-break{break-before:page;page-break-before:always}.aec-report,.invoice-sheet,.aec-report-summary,.aec-report-signatures,.aec-report-bands,.report-footer,.invoice-footer,.invoice-thanks{break-inside:avoid}.aec-report-header{margin-bottom:10px;padding-bottom:8px}.aec-report-header h1{font-size:1.15rem}.aec-report-meta{gap:6px;margin-bottom:10px}.aec-report-meta strong{font-size:.82rem}.aec-report-meta span{font-size:.62rem}.aec-report-summary{gap:10px;margin-top:8px}.aec-summary-right,.aec-summary-left{gap:5px}.aec-summary-line span,.aec-summary-line strong{padding:2px 8px;font-size:.68rem}.aec-report-signatures{margin-top:8px}.aec-report-bands{margin-top:10px;padding-top:6px;font-size:.6rem}.aec-report{font-size:.9rem}.aec-stamp-img{max-height:70px}.aec-stamp-box{min-height:42px}.aec-report-header img{max-height:40px;width:auto!important}.aec-report-bands{inset-inline:0;margin:0;position:absolute;bottom:0}.print-report-scroll,.aec-grade-scroll{max-width:100%;overflow:visible!important}.print-report .report-table{table-layout:fixed;word-break:break-word;width:100%;min-width:0;font-size:.62rem}.aec-grade-detailed{table-layout:fixed;width:100%;min-width:0}.print-report .report-table th,.print-report .report-table td{white-space:normal;overflow-wrap:anywhere;padding:4px 5px}.report-table thead{display:table-header-group}.report-table tr,.aec-grade-detailed tr{break-inside:avoid}.aec-grade-detailed th,.aec-grade-detailed td{padding:3px 4px;font-size:.64rem}.aec-grade-detailed .aec-sub-head{font-size:.58rem}.report-sheet a{color:inherit;text-decoration:none}}.phone-row{grid-template-columns:120px minmax(0,1fr);gap:8px;display:grid}.phone-row select,.phone-row input{border:1px solid var(--line);background:var(--input-bg);color:var(--foreground);border-radius:14px;outline:none;padding:13px 12px}.phone-row select:focus,.phone-row input:focus{border-color:var(--primary)}.grade-select{border:1px solid var(--line);background:var(--input-bg);min-width:118px;color:var(--foreground);border-radius:10px;outline:none;padding:8px 10px}.grade-select:focus{border-color:var(--primary)}.attendance-toggle{cursor:pointer;border:1px solid var(--line);border-radius:999px;display:inline-flex;overflow:hidden}.attendance-toggle input{opacity:0;pointer-events:none;position:absolute}.attendance-pill{color:var(--muted);background:var(--panel-soft);padding:7px 16px;font-size:.85rem;font-weight:800}.attendance-toggle.present .attendance-pill.green{color:#fff;background:var(--accent)}.attendance-toggle.absent .attendance-pill.red{color:#fff;background:var(--danger)}.attendance-date-form{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.connect-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1.5fr) minmax(0,.95fr);align-items:start;gap:18px;display:grid}.connect-threads{gap:8px;max-height:560px;display:grid;overflow-y:auto}.connect-members{background:var(--panel-soft);border-radius:10px;margin-bottom:12px;padding:8px 12px;font-size:.82rem}.connect-avatar{background:linear-gradient(135deg, var(--primary), #3f7bd1);color:#fff;letter-spacing:.02em;border-radius:50%;justify-content:center;align-items:center;width:38px;min-width:38px;height:38px;font-size:.85rem;font-weight:800;display:inline-flex}.connect-avatar.group{background:linear-gradient(135deg,#8a5cf6,#b784f7)}.connect-avatar.sm{width:26px;min-width:26px;height:26px;font-size:.68rem}.group-composer{gap:14px;display:grid}.composer-controls{flex-wrap:wrap;gap:8px;display:flex}.composer-controls select,.composer-controls input{flex:1;min-width:120px}.composer-people{border:1px solid var(--line);border-radius:12px;gap:2px;max-height:220px;padding:8px;display:grid;overflow-y:auto}.composer-person{cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:5px 6px;display:flex}.composer-person:hover{background:var(--table-bg)}.composer-person input{width:auto}.composer-selected{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.connect-thread{border:1px solid var(--line);background:var(--table-bg);color:var(--foreground);border-radius:14px;align-items:center;gap:12px;padding:11px 13px;transition:background .12s,border-color .12s;display:flex}.connect-thread:hover{border-color:var(--primary);background:var(--panel-soft)}.connect-thread.active{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, transparent)}.connect-thread-body{flex:1;min-width:0}.connect-thread-name{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-weight:700;display:flex;overflow:hidden}.connect-thread-preview{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.connect-messages{gap:12px;max-height:460px;margin-bottom:12px;padding:8px 4px;display:grid;overflow-y:auto}.connect-row{align-items:flex-end;gap:8px;max-width:88%;display:flex}.connect-row.mine{flex-direction:row-reverse;align-self:flex-end}.connect-row.theirs{align-self:flex-start}.connect-bubble{border:1px solid var(--line);border-radius:16px;min-width:0;padding:10px 14px}.connect-row.mine .connect-bubble{background:linear-gradient(135deg, var(--primary), #3f7bd1);color:#fff;border-color:#0000;border-bottom-right-radius:4px}.connect-row.theirs .connect-bubble{background:var(--panel-soft);border-bottom-left-radius:4px}.connect-row.mine .connect-bubble time,.connect-row.mine .connect-sender{color:#ffffffd1}.connect-sender{color:var(--primary);margin-bottom:2px;font-size:.72rem;font-weight:800;display:block}.connect-bubble p{margin:4px 0;line-height:1.5}.connect-bubble time{color:var(--muted);font-size:.72rem}.connect-reply{border:1px solid var(--line);background:var(--input-bg);border-radius:16px;gap:8px;padding:8px;display:grid}.connect-reply:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 14%, transparent)}.connect-reply textarea{width:100%;min-height:64px;color:var(--foreground);resize:vertical;font:inherit;background:0 0;border:none;outline:none;padding:6px 8px}.connect-reply-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.connect-thread-foot{justify-content:flex-end;margin-top:8px;display:flex}.assignment-item{border:1px solid var(--line);background:var(--table-bg);border-radius:18px;gap:10px;padding:16px;display:grid}.assignment-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.assignment-meta{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.74rem;font-weight:900;display:block}.assignment-head strong{font-size:1.05rem}.assignment-body{color:var(--muted);line-height:1.55}.assignment-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.assignment-files{border-top:1px dashed var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding-top:8px;display:flex}.file-chip{background:var(--panel-soft);border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:.85rem;display:inline-flex}.file-name{color:var(--primary);font-weight:700}.assignment-manage{border-top:1px dashed var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding-top:8px;display:flex}.upload-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.upload-form input[type=file]{max-width:240px;font-size:.82rem}.calendar-grid{gap:8px;display:grid}.calendar-row{grid-template-columns:120px minmax(0,1fr);align-items:center;gap:10px;display:grid}.calendar-day{font-size:.9rem;font-weight:800}.calendar-row input{border:1px solid var(--line);background:var(--input-bg);width:100%;color:var(--foreground);border-radius:12px;outline:none;padding:10px 12px}.calendar-row input:focus{border-color:var(--primary)}.schedule-day-list{gap:8px;display:grid}.schedule-day-item{border:1px solid var(--line);background:var(--table-bg);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.subject-card-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.subject-card-head strong{font-size:1.1rem;display:block}.subject-card-actions,.print-actions{flex-wrap:wrap;gap:8px;display:flex}.print-class-block{margin-top:14px}.print-class-rows{gap:8px;margin-top:8px;display:grid}.print-class-row{border:1px solid var(--line);background:var(--table-bg);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.print-report .report-table{margin-bottom:16px}.invoice-custom{white-space:pre-wrap;color:#172237;padding:12px 0;line-height:1.6}.subject-add-row{flex-wrap:wrap;gap:8px;display:flex}.subject-add-row input{border:1px solid var(--line);background:var(--input-bg);color:var(--foreground);border-radius:12px;outline:none;flex:200px;padding:11px 12px}.subject-add-row input:focus{border-color:var(--primary)}.subject-chips{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.subject-chip{color:var(--primary);background:#1c44811a;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;font-weight:800;display:inline-flex}.subject-chip button{width:18px;height:18px;color:var(--primary);cursor:pointer;background:#1c448133;border-radius:999px;place-items:center;display:inline-grid}.af-type-hint{border-inline-start:5px solid var(--line);background:var(--panel-soft);border-radius:12px;margin-top:4px;padding:10px 14px;font-weight:800}.af-type-hint.af-assignment{border-inline-start-color:var(--primary);color:var(--primary)}.af-type-hint.af-exam{border-inline-start-color:var(--danger);color:var(--danger)}.af-type-hint.af-announcement{border-inline-start-color:var(--warning);color:var(--warning)}.print-report-scroll{max-width:100%}.print-report .report-table{table-layout:fixed;width:100%;min-width:0}.print-report .report-table th,.print-report .report-table td{white-space:normal;overflow-wrap:anywhere;word-break:break-word;padding:7px 8px;font-size:.8rem}.print-report .report-table th:first-child,.print-report .report-table td:first-child{width:12%}.connect-file{max-width:200px}.form-section{border-top:1px solid var(--line);color:var(--ink);letter-spacing:-.02em;margin:22px 0 4px;padding-top:14px;font-size:1rem}.credentials-controls{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:12px;display:flex}.control-inline{color:var(--muted);gap:4px;font-size:.82rem;font-weight:700;display:grid}.control-inline select{border:1px solid var(--line);background:var(--input-bg);color:var(--foreground);border-radius:12px;outline:none;padding:9px 12px}.control-inline select:focus{border-color:var(--primary)}.timetable-table th,.timetable-table td{white-space:nowrap;vertical-align:top;text-align:center}.timetable-period{color:var(--primary);font-weight:900}.timetable-time{flex-direction:column;gap:4px;display:flex}.timetable-time input,.timetable-cell select{border:1px solid var(--line);background:var(--input-bg);color:var(--foreground);border-radius:9px;outline:none;min-width:110px;padding:6px 8px}.timetable-cell{display:table-cell}.timetable-cell select{width:100%;margin-bottom:4px;display:block}.timetable-break td{color:var(--warning);background:#d890001f;font-weight:800}.timetable-table.view td,.timetable-table.view th{text-align:start}.timetable-time-view{color:var(--muted);white-space:nowrap;font-weight:800}.timetable-slot-view{gap:2px;display:grid}.timetable-slot-view strong{color:var(--ink)}.session-log-table input,.session-log-table select{border:1px solid var(--line);background:var(--input-bg);color:var(--foreground);border-radius:9px;outline:none;width:100%;min-width:120px;padding:8px 10px}.session-log-foot{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-top:12px;display:flex}.session-log-total{text-align:end;gap:2px;display:grid}.session-log-total span{color:var(--muted);font-size:.85rem;font-weight:800}.session-log-total strong{color:var(--primary);font-size:1.6rem}.promotion-table select{min-width:96px}.promotion-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:16px;display:flex}.statement-summary{flex-wrap:wrap;gap:20px;margin-bottom:14px;display:flex}.statement-summary div{gap:2px;display:grid}.statement-summary span{color:var(--muted);font-size:.78rem}.statement-form{gap:10px;display:grid}.portal-class-block+.portal-class-block{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.portal-reports{gap:8px;margin-top:12px;display:grid}.agenda-buckets{gap:16px;display:grid}.agenda-class-group+.agenda-class-group{margin-top:16px}.agenda-class-group .control-label{margin-bottom:8px}.agenda-item{border:1px solid var(--line);background:var(--table-bg);border-inline-start:5px solid var(--line);border-radius:16px;gap:8px;padding:15px;display:grid}.agenda-item.agenda-assignment{border-inline-start-color:var(--primary)}.agenda-item.agenda-exam{border-inline-start-color:var(--danger)}.agenda-item.agenda-announcement{border-inline-start-color:var(--warning)}.agenda-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.agenda-head strong{font-size:1.02rem;display:block}.connect-attachment{margin-top:4px}.connect-reply-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;display:flex}.connect-file{max-width:220px;font-size:.82rem}.aec-report{color:#101828;box-sizing:border-box;border:0;max-width:920px}.aec-report-portrait{width:min(100%,210mm)}.aec-report-landscape{width:min(100%,297mm);max-width:1120px}.aec-report-header{justify-content:space-between;align-items:center;gap:18px;margin-bottom:16px;padding-bottom:14px;display:flex}.aec-report-title h1{color:#123060;font-size:1.5rem}.aec-report-title p{color:#526071;margin-top:2px;font-weight:800}.aec-report-meta{border:1px solid #d7e4f0;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 24px;margin-bottom:16px;padding:10px 14px;display:grid}.aec-report-meta div{justify-content:space-between;gap:12px;display:flex}.aec-report-meta span{color:#526071;font-weight:800}.aec-report-meta strong{color:#101828}.aec-grade-table{border-collapse:collapse;border:1.5px solid #2f5f97;width:100%}.aec-grade-table th,.aec-grade-table td{text-align:center;color:#101828;white-space:nowrap;background:#fff;border:1px solid #bcd0e6;padding:8px 10px}.aec-grade-table thead th{color:#23400f;background:#cfe0b7;font-weight:900}.aec-subject-col{text-align:start;min-width:180px}.aec-grade-scroll{max-width:100%}.aec-grade-detailed{table-layout:fixed;width:100%;min-width:0}.aec-grade-detailed th,.aec-grade-detailed td{white-space:normal;overflow-wrap:anywhere;padding:6px;font-size:.78rem}.aec-grade-detailed .aec-subject-col{width:15%;min-width:0}.aec-grade-detailed .aec-term-group{color:#23400f;background:#b7d59a;border-bottom:2px solid #2f5f97}.aec-grade-detailed .aec-sub-head{padding:4px 6px;font-size:.72rem;font-weight:800}.aec-cell-blue{font-weight:800;background:#cfe0f4!important}.aec-cell-green{font-weight:800;background:#d8ecc4!important}.aec-total-row td{color:#23400f;font-weight:900;background:#b7d59a!important}.aec-average-row td{color:#1b3a66;font-weight:800;background:#e7f0fb!important}.aec-report-summary{flex-wrap:wrap;justify-content:space-between;gap:24px;margin-top:18px;display:flex}.aec-summary-right,.aec-summary-left{gap:8px;min-width:240px;display:grid}.aec-summary-line{align-items:center;gap:10px;display:flex}.aec-summary-line span{color:#23400f;background:#f1f6fb;border:1px solid #bcd0e6;min-width:120px;padding:6px 10px;font-weight:800}.aec-summary-line strong{border:1px solid #bcd0e6;flex:1;padding:6px 10px}.aec-report-signatures{color:#101828;justify-content:space-around;gap:24px;margin-top:42px;display:flex}.aec-stamp-box{justify-content:center;align-items:center;min-width:160px;min-height:90px;display:flex}.stamp-manager{flex-wrap:wrap;align-items:flex-start;gap:24px;display:flex}.stamp-preview{gap:8px;min-width:180px;display:grid}.stamp-actions{gap:12px;display:grid}.aec-stamp-img{object-fit:contain;max-width:160px;max-height:120px}.aec-report-bands{color:#526071;text-align:center;border-top:1px solid #bcd0e6;margin-top:28px;padding-top:10px;font-size:.74rem}.directory-records{gap:14px;display:grid}.directory-record{break-inside:avoid;border:1px solid #c8d6e5;border-radius:12px;overflow:hidden}.directory-record h2{color:#123060;background:#eaf2fa;margin:0;padding:9px 12px;font-size:1rem}.directory-record dl{grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.directory-record dl>div{border-top:1px solid #e4ebf2;grid-template-columns:minmax(90px,.8fr) minmax(0,1.2fr);display:grid}.directory-record dt,.directory-record dd{overflow-wrap:anywhere;margin:0;padding:5px 8px;font-size:.72rem}.directory-record dt{color:#526071;background:#f7f9fc;font-weight:800}.directory-record dd{color:#172237;font-weight:650}:root[data-theme=dark] .aec-report{color:#101828}@media (max-width:980px){.connect-layout{grid-template-columns:1fr}}@media (max-width:1024px){.app-frame{background:#0d1f40;grid-template-columns:1fr}[dir=rtl] .app-frame{background:#0d1f40}.sidebar{z-index:60;border-bottom:1px solid #ffffff24;border-right:0;height:auto;padding:12px 16px;position:sticky;top:0;box-shadow:0 10px 30px #0e17262e}[dir=rtl] .sidebar{border-left:0;border-right:0}.sidebar-scroll{margin:0;padding:0;overflow:visible}.nav,.side-footer>.language-pill,.powered-by{display:none}.mobile-nav{margin-top:10px;display:block;position:relative}.mobile-nav summary{cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff1f;border:1px solid #ffffff26;border-radius:18px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:4px 12px;min-height:54px;padding:10px 14px;list-style:none;display:grid}.mobile-nav summary::-webkit-details-marker{content:"";display:none}.mobile-nav summary::marker{content:"";display:none}.mobile-nav summary:focus-visible{outline-offset:2px;outline:2px solid #fff}.mobile-nav-burger{color:#fff;grid-area:1/1/3}.mobile-nav summary span{color:#ffffffa8;text-transform:uppercase;letter-spacing:.08em;grid-column:2;font-size:.72rem;font-weight:900}.mobile-nav summary strong{color:#fff;text-overflow:ellipsis;white-space:nowrap;grid-column:2;font-size:1rem;overflow:hidden}.mobile-nav-chevron{color:#fff;grid-area:1/3/3;transition:transform .16s}.mobile-nav[open] .mobile-nav-chevron{transform:rotate(180deg)}.mobile-nav-panel{-webkit-overflow-scrolling:touch;background:#05122770;border:1px solid #ffffff1f;border-radius:20px;gap:6px;max-height:min(66vh,520px);margin-top:8px;padding:8px;display:grid;overflow-y:auto}.mobile-nav-panel a{color:#ffffffd1;border-radius:14px;align-items:center;gap:10px;min-height:46px;padding:10px 12px;font-weight:800;display:flex}.mobile-nav-panel a.active,.mobile-nav-panel a:hover{color:#fff;background:#ffffff24}.mobile-language-pill{justify-content:flex-start;margin:2px 0 0}.app-brand{border-radius:18px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:10px 12px}.brand-logo-shell{width:auto;min-height:0;padding:4px}.brand-logo-shell img{max-width:min(38vw,150px);height:auto}.brand-title{text-align:start}.side-footer{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:10px;padding-top:10px;display:grid}.user-chip{margin-bottom:0}.content{padding:18px}.table-wrap,.data-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}}@media (max-width:980px){.auth-page,.app-frame,.split,.grid.cols-2,.grid.cols-3,.grid.cols-4,.grid.cols-5{grid-template-columns:1fr}.auth-brand{min-height:360px}.action-grid,.report-meta,.publish-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{border-radius:24px;flex-direction:column}.content{padding:18px}}@media (max-width:620px){.auth-page{flex-direction:column;min-height:100dvh;display:flex}.auth-brand{justify-content:flex-start;gap:18px;min-height:auto;padding:20px 20px 18px}.auth-panel{align-items:start;padding:18px 18px 26px}.auth-panel-stack,.auth-brand-top{gap:10px}.auth-logo-shell{padding:8px 10px}.auth-logo-shell img{max-width:min(74vw,190px);height:auto}.portal-badge{min-height:30px;font-size:.78rem}.auth-bottom{align-items:flex-start;margin-top:-2px}.auth-switch{width:fit-content;min-height:34px;padding:0 13px;font-size:.88rem}.auth-powered{justify-content:space-between}.auth-copy{max-width:100%}.auth-copy h1{letter-spacing:-.055em;margin-bottom:14px;font-size:clamp(2.05rem,10.6vw,2.75rem);line-height:.98}.auth-copy p{font-size:.96rem;line-height:1.48}.auth-points{display:none}.login-card{border-radius:24px;padding:20px}.login-card-brand{margin-bottom:14px}.login-powered{gap:6px;min-height:32px;padding:4px 8px 4px 10px;box-shadow:0 10px 22px #12306012}.login-powered span{font-size:.66rem}.login-powered img{width:82px}.form-grid,.action-grid{grid-template-columns:1fr}.sidebar{padding:14px}.app-brand{border-radius:18px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px}.brand-logo-shell{min-height:52px;padding:8px 10px}.brand-logo-shell img{max-width:min(56vw,180px);height:auto}.brand-title{text-align:end}.brand-title small{display:none}.mobile-nav summary{cursor:pointer;background:#ffffff1f;border:1px solid #ffffff26;border-radius:18px;grid-template-columns:1fr auto;align-items:center;gap:4px 10px;min-height:54px;padding:10px 12px;list-style:none;display:grid}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav summary span{color:#ffffffa8;text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;font-weight:900}.mobile-nav summary strong{color:#fff;grid-column:1;font-size:1rem}.mobile-nav-panel{background:#05122757;border:1px solid #ffffff1f;border-radius:20px;gap:7px;margin-top:8px;padding:8px;display:grid}.mobile-nav-panel a{color:#ffffffd1;border-radius:14px;align-items:center;gap:9px;min-height:42px;padding:9px 10px;font-weight:800;display:flex}.mobile-nav-panel a.active,.mobile-nav-panel a:hover{color:#fff;background:#ffffff24}.mobile-language-pill{justify-content:flex-start;margin:2px 0 0}.side-footer{grid-template-columns:1fr;gap:10px;padding-top:12px;display:grid}.side-footer>.language-pill{display:none}.user-chip{margin-bottom:0;padding:11px}.kpi-strip span{min-height:30px;padding:0 10px;font-size:.86rem}.content,.card{padding:14px}.list-item{flex-direction:column}.report-meta,.publish-form .form-grid{grid-template-columns:1fr}.schedule-row,.calendar-row{grid-template-columns:88px minmax(0,1fr)}.phone-row{grid-template-columns:96px minmax(0,1fr)}.connect-bubble{max-width:100%}.aec-report-meta{grid-template-columns:1fr}.credentials-controls{flex-direction:column;align-items:stretch}.context-row{flex-direction:column;align-items:flex-start}.inline-credentials-form input,.inline-credentials-form select{flex:120px;max-width:100%}}.toast-viewport{z-index:120;pointer-events:none;flex-direction:column;gap:10px;width:min(92vw,380px);display:flex;position:fixed;inset-block-end:20px;inset-inline-end:20px}.toast{pointer-events:auto;border:1px solid var(--line);background:var(--card-bg);border-radius:18px;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px;padding:14px 14px 14px 16px;animation:.22s cubic-bezier(.22,1,.36,1) toast-in;display:grid;box-shadow:0 18px 44px #0e172638}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.toast-success{border-inline-start:4px solid var(--accent)}.toast-error{border-inline-start:4px solid var(--danger)}.toast-icon{margin-top:1px;display:inline-flex}.toast-success .toast-icon{color:var(--accent)}.toast-error .toast-icon{color:var(--danger)}.toast-body{gap:3px;min-width:0;display:grid}.toast-body strong{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-size:.78rem;font-weight:900}.toast-body span{overflow-wrap:anywhere;font-size:.94rem;line-height:1.45}.toast-detail{color:var(--muted);overflow-wrap:anywhere;font-size:.82rem;font-style:normal}.toast-close{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.toast-close:hover{background:var(--surface-2,#7f7f7f1f);color:inherit}@media (max-width:620px){.toast-viewport{width:auto;inset-block-end:12px;inset-inline:12px}}.modal-backdrop{z-index:140;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0811218c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{border:1px solid var(--line);background:var(--card-bg);border-radius:22px;grid-template-columns:auto minmax(0,1fr);gap:14px;width:min(94vw,440px);padding:20px;display:grid;box-shadow:0 26px 60px #08112157}.modal-icon{width:42px;height:42px;color:var(--danger);background:#dc26261f;border-radius:14px;justify-content:center;align-items:center;display:inline-flex}.modal-body{gap:6px;min-width:0;display:grid}.modal-body strong{font-size:1.02rem}.modal-body p{color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:.92rem;line-height:1.5}.modal-actions{flex-wrap:wrap;grid-column:1/-1;justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.row-actions{flex-wrap:wrap;gap:6px;display:inline-flex}.timetable-row-actions{white-space:nowrap;text-align:center}.timetable-row-actions .btn{padding:6px 10px;font-size:.82rem}.timetable-break .timetable-time{gap:6px;display:flex}.notification-card{color:inherit;text-decoration:none;transition:border-color .16s,transform .16s,box-shadow .16s;display:flex}.notification-card:hover{border-color:var(--brand,#1d4ed8);box-shadow:var(--shadow-soft)}.notification-card:focus-visible{outline:2px solid var(--brand,#1d4ed8);outline-offset:2px}
