@import"https://fonts.googleapis.com/css2?family=Questrial&display=swap";@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@100..800&display=swap";@import"https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap";:root,[data-theme=dark]{--ink: #0E0F11;--ink-2: #16181B;--ink-3: #1C1E21;--ink-4: #24272B;--line: rgba(255, 255, 255, .08);--line-2: rgba(255, 255, 255, .14);--line-3: rgba(255, 255, 255, .22);--steel: #9CA1A8;--silver: #C9CDD2;--mist: #F2F3F5;--white: #fff;--card: rgba(255, 255, 255, .015);--card-hover: rgba(255, 255, 255, .03);--accent: #037b86;--accent-dark: #025f6f;--ok: #43c08a;--bad: #e5656a;--mono: "JetBrains Mono", monospace;--ease: cubic-bezier(.2, .8, .2, 1);--dot: rgba(255, 255, 255, .09);color-scheme:dark}[data-theme=light]{--ink: #F5F6F3;--ink-2: #FFFFFF;--ink-3: #ECEEEA;--ink-4: #E1E4DE;--line: rgba(14, 15, 17, .09);--line-2: rgba(14, 15, 17, .15);--line-3: rgba(14, 15, 17, .26);--steel: #5D636A;--silver: #2E3236;--mist: #1C1E21;--white: #0E0F11;--card: #fff;--card-hover: #fff;--accent: #037b86;--accent-dark: #025f6f;--ok: #12935e;--bad: #c8393f;--dot: rgba(20, 20, 22, .14);color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--ink);color:var(--silver);font:400 14.5px/1.6 Questrial,system-ui,sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,b,strong{color:var(--white);font-weight:500}:root,[data-theme=dark]{--dot-c: rgba(255, 255, 255, .11)}[data-theme=light]{--dot-c: rgba(14, 15, 17, .16)}.bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;pointer-events:none}.bg .glow{position:absolute;width:1000px;height:1000px;left:50%;top:-420px;transform:translate(-50%);background:radial-gradient(closest-side,rgba(201,205,210,.12),transparent 70%);filter:blur(10px)}.bg .grid{position:absolute;left:-50%;right:-50%;bottom:-10%;height:60vh;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:64px 64px;transform:perspective(600px) rotateX(62deg);transform-origin:bottom;mask-image:linear-gradient(to top,#000 10%,transparent 85%);-webkit-mask-image:linear-gradient(to top,#000 10%,transparent 85%);opacity:.55;animation:gridmove 3.5s linear infinite}.bg .noise{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}@keyframes gridmove{to{background-position:0 64px}}[data-theme=light] .bg .glow{background:radial-gradient(closest-side,rgba(14,90,74,.08),transparent 70%)}[data-theme=light] .bg .noise{opacity:.035}.bg .grid{display:none}.bg:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(var(--dot-c) 1px,transparent 1.2px);background-size:22px 22px;-webkit-mask-image:radial-gradient(120% 90% at 50% 20%,#000 30%,rgba(0,0,0,.35) 75%,transparent 100%);mask-image:radial-gradient(120% 90% at 50% 20%,#000 30%,rgba(0,0,0,.35) 75%,transparent 100%)}@media(prefers-reduced-motion:reduce){.bg .grid{animation:none}}.auth{position:relative;height:100vh;display:grid;grid-template-columns:1.1fr 1fr;grid-template-rows:1fr auto;-webkit-user-select:text;user-select:text;overflow:hidden}.auth-art{position:relative;z-index:1;padding:48px 56px 44px;display:flex;flex-direction:column;justify-content:space-between;gap:28px;border-right:1px solid var(--line)}.auth-art-header,.auth-art-brand{display:flex;align-items:center;gap:10px}.auth-art-logo{width:38px;height:38px;flex:none;display:grid;place-items:center;overflow:hidden;border-radius:10px;border:1px solid var(--line-2);font-size:14px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}.auth-art-logo .applogo{width:100%;height:100%;object-fit:contain;padding:3px}.auth-art-wordmark{display:flex;flex-direction:column;line-height:1.1}.auth-art-company{font-size:12.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--white)}.auth-art-tagline{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--steel)}.auth-art-content{display:flex;flex-direction:column;gap:20px}.type-h1{font-size:clamp(34px,3.6vw,56px);font-weight:400;letter-spacing:-.035em;line-height:1.08;max-width:620px;margin:16px 0 18px}.type-h1 em{font-family:Playfair Display,Georgia,serif;font-style:italic;font-weight:500;letter-spacing:-.015em;padding-right:.04em;color:var(--white)}.type-h1 em:last-of-type{color:var(--accent)}.auth-art .type-h1{max-width:640px}.type-h1 .wd{display:inline-block;white-space:nowrap}.type-h1 .ch{display:inline-block;white-space:pre}.type-h1.typing .ch{opacity:0}.type-h1.typing .ch.on{opacity:1;animation:ch-in .35s cubic-bezier(.2,.7,.2,1) both}@keyframes ch-in{0%{opacity:0;transform:translateY(.18em);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}.type-h1 .caret{display:inline-block;width:.05em;height:.82em;margin:0 .03em 0 .02em;vertical-align:-.04em;background:var(--accent);border-radius:2px;animation:caret 1s steps(1) infinite}@keyframes caret{50%{opacity:0}}.eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-weight:600}.auth-intro{color:var(--steel);font-size:14px;line-height:1.65;max-width:480px}.auth-form{position:relative;z-index:1;display:grid;place-items:center;padding:40px}.auth-tools{position:absolute;top:28px;right:28px;display:flex;gap:10px;z-index:2}.auth-box{width:min(380px,100%);display:grid;gap:16px}.auth-box form{display:grid;gap:16px}.auth-form-header{text-align:center;width:100%}.auth-form-header .eyebrow{display:block;margin-bottom:10px}.auth-form-title{font-size:30px;font-weight:400;letter-spacing:-.03em;line-height:1.1;margin:0}.auth-form-subtitle{font-size:14px;color:var(--steel);line-height:1.5;margin:8px 0 0}.auth-form-back{display:inline-flex;align-items:center;gap:8px;justify-self:start;padding:6px 0;background:transparent;border:none;color:var(--accent);font-size:13px;cursor:pointer;transition:color .2s;font-family:inherit}.auth-form-back:hover:not(:disabled){color:var(--accent-dark)}.auth-form-back:disabled{opacity:.5;cursor:default}.field{display:flex;flex-direction:column;gap:8px}.lbl{font-family:var(--mono);font-size:11px;letter-spacing:1.8px;text-transform:uppercase;color:var(--steel)}.in{width:100%;height:46px;padding:0 16px;border-radius:14px;border:1px solid var(--line-2);background:var(--card);outline:none;color:var(--white);transition:border-color .2s,box-shadow .2s;font-size:14px}.in::placeholder{color:var(--steel);opacity:.8}.in:focus{border-color:var(--line-3);box-shadow:0 0 0 2px #037b8626}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;width:100%;height:44px;padding:0 22px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:var(--white);font-size:14px;white-space:nowrap;transition:all .3s var(--ease);cursor:pointer}.btn:hover:not(:disabled){border-color:var(--steel);transform:translateY(-1px)}.btn:disabled{opacity:.4;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark);box-shadow:0 10px 30px #037b864d}.btn.ghost{border-color:transparent;color:var(--steel)}.btn.ghost:hover:not(:disabled){color:var(--white);border-color:var(--line-2)}.btn.sm{width:auto;height:34px;padding:0 14px;font-size:13px}.btn.primary.auth-go{height:40px}.profile-section{display:flex;flex-direction:column;align-items:center;width:100%}.avatar{width:64px;height:64px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:24px;font-weight:600;margin-bottom:16px}.profile-name{font-size:18px;font-weight:600;margin-bottom:4px}.profile-class{font-size:13px;color:var(--steel)}.profile-link{font-size:12px;color:var(--accent);text-decoration:underline;margin-top:12px;cursor:pointer;transition:color .2s;background:none;border:none;font-family:inherit}.profile-link:hover{color:var(--accent-dark)}.pin-dots{display:flex;gap:12px;justify-content:center;margin:0}.pin-dots i{width:14px;height:14px;border-radius:50%;border:2px solid var(--line-2);background:transparent;transition:all .2s}.pin-dots i.on{background:var(--accent);border-color:var(--accent)}.pin-dots.shake{animation:shake .4s}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%;max-width:280px;justify-self:center;margin:0}.keypad button{height:56px;border-radius:12px;border:1px solid var(--line-2);background:var(--card);color:var(--white);font-size:20px;font-weight:500;cursor:pointer;transition:all .2s;font-family:var(--mono)}.keypad button:hover{border-color:var(--line-3);background:var(--card-hover)}.keypad button:active{transform:scale(.95)}.keypad-clear,.keypad-back{font-size:14px;color:var(--steel)}.pin-step{width:min(300px,100%);justify-self:center;display:grid;gap:14px}.pin-step .who{display:grid;justify-items:center;gap:7px;text-align:center;animation:who-in .45s ease both}.pin-step .who b{font-size:15px;font-weight:600;margin-top:3px}.uav{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:18px;font-weight:600;font-family:var(--mono)}.uav.ring{box-shadow:0 0 0 2px var(--ink),0 0 0 3.5px var(--accent),0 10px 30px #037b8638}.uav{width:56px;height:56px;min-width:56px;min-height:56px;aspect-ratio:1 / 1;overflow:hidden;border-radius:50%;padding:0}.pin-step .who .uav{box-sizing:border-box;display:block;width:56px;height:56px;min-width:56px;min-height:56px;max-width:56px;max-height:56px;flex:none;aspect-ratio:1 / 1;overflow:hidden;border-radius:50%;padding:0}.pin-step .who .uav img{display:block;width:56px;height:56px;min-width:56px;min-height:56px;max-width:56px;max-height:56px;aspect-ratio:1 / 1;object-fit:cover;object-position:center 25%;border-radius:50%}.role-chip{display:inline-flex;align-items:center;height:20px;padding:0 9px;border-radius:99px;font-size:10.5px;font-weight:600;letter-spacing:.04em;color:var(--accent);background:#037b861f;border:1px solid rgba(3,123,134,.35);width:max-content}.pin-step .pin-h{text-align:center;font-size:12px;color:var(--steel);letter-spacing:.02em}.pin-step .pin-dots{align-items:center;height:14px}.pin-step .pin-dots i{width:11px;height:11px}.pin-step .keypad{max-width:none;gap:7px}.pin-step .keypad button{height:46px;border-radius:13px;font-size:17px}.not-you{justify-self:center}@keyframes who-in{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}.auth-hint{font-size:12px;color:var(--steel);text-align:center;margin:0}.error-msg{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;font-size:13px;line-height:1.5;border:1px solid rgba(229,101,106,.45);color:var(--bad);background:#e5656a1a}.auth-footer{font-size:12px;color:var(--steel);text-align:center}.auth-footer a{color:var(--accent);text-decoration:none;transition:color .2s}.auth-footer a:hover{color:var(--accent-dark)}.auth-foot{grid-column:1 / -1;position:relative;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:6px 22px;padding:14px 56px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);font-size:11.5px;color:var(--steel);background:color-mix(in srgb,var(--ink) 80%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.auth-foot nav{display:flex;gap:14px;align-items:center}.auth-foot nav.apps{margin-left:auto}.auth-foot nav.apps>span{font-family:var(--mono);font-size:10px;letter-spacing:1.6px;text-transform:uppercase}.auth-foot a{cursor:pointer;color:var(--steel);text-decoration:none;transition:color .15s}.auth-foot a:hover{color:var(--white)}.auth-foot .site{font-family:var(--mono);color:var(--silver)}.auth-foot .foot-brand{display:inline-flex;align-items:center;gap:7px;color:var(--silver)}.auth-foot .foot-brand .bx{width:18px;height:18px;border-radius:6px;display:grid;place-items:center;font-size:10px;font-weight:700;color:var(--accent);border:1px solid var(--line-2)}.auth-foot .foot-brand b{letter-spacing:.2em;font-size:10.5px;color:var(--white);font-weight:600}.auth-foot .school-contact{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px 12px;color:var(--steel)}.auth-foot .school-contact b{color:var(--silver);font-weight:600}.auth-foot .school-contact span{white-space:nowrap}@media(max-width:860px){.auth-foot{padding:14px 22px}.auth-foot nav.apps{margin-left:0}}.checkbox{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--silver);cursor:pointer;margin-bottom:16px;transition:color .2s}.checkbox input{width:18px;height:18px;cursor:pointer;accent-color:var(--accent)}.checkbox:hover{color:var(--white)}.checkbox input:disabled{opacity:.5;cursor:default}.pin-counter{font-size:12px;color:var(--steel);text-align:right;margin-top:4px}.pin-input{letter-spacing:8px;font-size:18px;text-align:center;font-family:var(--mono)}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--line-2);border-radius:50%;border-top-color:var(--accent);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.theme-switch{width:40px;height:40px;border-radius:999px;border:1px solid var(--line-2);background:transparent;display:grid;place-items:center;color:var(--white);transition:border-color .2s,transform .3s var(--ease)}.theme-switch:hover{border-color:var(--line-3);transform:rotate(-14deg)}@media(max-width:1180px){.auth{grid-template-columns:1fr}.auth-art{display:none}.auth-form{grid-column:1;grid-row:1}}@media(max-width:680px){.auth-form-title{font-size:24px}.auth-form-subtitle{font-size:13px}.in,.btn{height:48px;font-size:16px}.avatar{width:56px;height:56px;font-size:22px}.profile-name{font-size:16px}}.edu{display:grid;grid-template-columns:52px 1fr 292px;grid-template-rows:46px 1fr 26px;height:100vh}.edu.no-right{grid-template-columns:52px 1fr}.edu button{border:0;background:none;color:inherit;font:inherit;cursor:pointer}.edu .top{grid-column:1 / -1;display:flex;align-items:center;gap:10px;padding:0 12px 0 10px;border-bottom:1px solid var(--line)}.edu .mark{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;border:1px solid var(--line-2);overflow:hidden}.edu .mark .applogo{width:100%;height:100%;object-fit:contain;padding:2px}.brand-credit{display:inline-flex;align-items:center;gap:7px}.brand-credit .bx{width:16px;height:16px;border-radius:5px;display:grid;place-items:center;font-size:9px;font-weight:700;color:var(--accent);border:1px solid var(--line-2)}.brand-credit b{letter-spacing:.18em;font-size:10.5px;color:var(--silver);font-weight:600}.edu .mark-x{font-size:15px;font-weight:600;letter-spacing:.04em;color:var(--accent)}.edu .wordmark{display:flex;flex-direction:column;line-height:1.1;margin-right:10px}.edu .wordmark b{font-size:12.5px;font-weight:600;letter-spacing:.22em;color:var(--white)}.edu .wordmark span{font-size:9px;letter-spacing:.2em;color:var(--steel);text-transform:uppercase}.edu .cmdk{display:flex;align-items:center;gap:8px;width:380px;margin:0 auto;padding:6px 10px;border-radius:9px;border:1px solid var(--line-2);color:var(--steel)}.edu .cmdk:focus-within{border-color:var(--line-3)}.edu .cmdk input{flex:1;border:0;outline:0;background:none;color:var(--white);font-size:13px}.edu .cmdk input::placeholder{color:var(--steel)}.edu kbd{font:inherit;font-size:10.5px;color:var(--steel);border:1px solid var(--line-2);border-radius:5px;padding:0 5px}.edu .av{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:10.5px;font-weight:700;font-family:var(--mono);background:var(--card);border:1px solid var(--line-2);color:var(--accent)}.edu .av img{width:100%;height:100%;object-fit:cover;object-position:center 25%;border-radius:50%}.edu .btn{display:inline-flex;gap:6px;align-items:center;justify-content:center;width:auto;height:28px;padding:0 11px;border-radius:8px;border:1px solid var(--line-2);background:transparent;color:var(--white);font-weight:500;white-space:nowrap;transition:border-color .15s,color .15s}.edu .btn:hover:not(:disabled){border-color:var(--steel)}.edu .btn.p{border-color:var(--accent);color:var(--accent)}.edu .btn.p:hover:not(:disabled){background:var(--accent);color:#fff}.edu .btn.ghost{border-color:transparent;color:var(--steel)}.edu .btn.ghost:hover:not(:disabled){color:var(--white)}.edu .btn.sm{height:24px;padding:0 8px;font-size:11px;border-radius:7px}.edu .iconbtn{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;color:var(--steel);position:relative;border:0;background:none;transition:color .15s,background .15s}.edu .iconbtn:hover{background:var(--card-hover);color:var(--white)}.edu .iconbtn .dot{position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--accent)}.edu .rail{grid-row:2;border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 0}@media(max-height:820px){.edu .rail{gap:1px;padding:6px 0}.edu .rail button{width:30px;height:30px}.edu .rail hr{margin:3px 0}}.edu .rail button{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:var(--steel);position:relative;border:0;background:none;transition:color .15s,background .15s}.edu .rail button:hover{background:var(--card-hover);color:var(--white)}.edu .rail .on{color:var(--accent)}.edu .rail .on:before{content:"";position:absolute;left:-9px;top:9px;bottom:9px;width:2px;border-radius:2px;background:var(--accent)}.edu .rail hr{width:22px;border:0;border-top:1px solid var(--line);margin:6px 0}.edu .rail .badge{position:absolute;top:4px;right:4px;min-width:13px;height:13px;border-radius:7px;background:var(--accent);color:#fff;font-size:8.5px;font-weight:700;display:grid;place-items:center;padding:0 3px}.edu .tip{position:relative}.edu .tip[data-tip]:hover:after{content:attr(data-tip);position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);background:var(--ink-3);border:1px solid var(--line-3);color:var(--white);padding:5px 10px;border-radius:7px;white-space:nowrap;font-size:11.5px;z-index:60;pointer-events:none;box-shadow:0 8px 24px #00000080}.edu .tip[data-tip]:hover:before{content:"";position:absolute;left:calc(100% + 6px);top:50%;transform:translateY(-50%);border:6px solid transparent;border-right-color:var(--line-3);z-index:60;pointer-events:none}.edu .center{grid-row:2;overflow:auto;min-width:0;min-height:0}.edu .wrap{padding:18px 22px 40px;max-width:1360px;margin:0 auto;animation:fade .25s ease}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.edu .ph{display:flex;align-items:center;gap:10px;margin-bottom:16px}.edu .ph h1{font-size:22px;font-weight:500;letter-spacing:-.02em;color:var(--white);margin:4px 0 2px}.edu .ph p{color:var(--steel);font-size:12px}.edu .crumb{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:600;font-family:var(--mono)}.edu .card{background:transparent;border:1px solid var(--line);border-radius:12px;min-width:0}.edu .card-h{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line)}.edu .card-h h3{font-size:12.5px;font-weight:600;color:var(--white)}.edu .card-h small{color:var(--steel)}.edu .card-b{padding:14px}.edu .grid{display:grid;gap:12px}.edu .c4{grid-template-columns:repeat(4,minmax(0,1fr))}.edu .c-main{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}.edu .scroll-x{overflow-x:auto}.edu .sp{flex:1}.edu .metric{padding:14px;display:flex;flex-direction:column;gap:6px}.edu .metric-h{display:flex;align-items:center;gap:8px;color:var(--steel);font-size:12px}.edu .metric-h .ico{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;border:1px solid var(--line-2);color:var(--accent)}.edu .metric-v{font-size:21px;font-weight:600;letter-spacing:-.02em;color:var(--white)}.edu .metric-f{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--steel)}.edu .metric-f .up{color:var(--ok);font-weight:600}.edu .metric-f .dn{color:#f59e0b;font-weight:600}.edu .st{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:6px;border:1px solid var(--line-2);color:var(--steel);white-space:nowrap}.edu .st:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.edu .st.ok{color:var(--ok)}.edu .st.warn{color:#f59e0b}.edu .st.bad{color:var(--bad)}.edu .tbl{width:100%;border-collapse:collapse}.edu .tbl th{text-align:left;font-family:var(--mono);font-size:10.5px;font-weight:400;color:var(--steel);letter-spacing:1.6px;text-transform:uppercase;padding:8px 14px;border-bottom:1px solid var(--line);white-space:nowrap}.edu .tbl td{padding:9px 14px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}.edu .tbl tbody tr:hover{background:var(--card-hover)}.edu .tbl tbody tr.click-row{cursor:pointer}.edu .tbl tbody tr.click-row:hover{background:color-mix(in srgb,var(--accent) 8%,var(--card-hover))}.edu .tbl tr:last-child td{border-bottom:0}.edu .tbl .r{text-align:right}.edu .tbl b{font-weight:600;color:var(--white)}.edu .chart{display:flex;align-items:flex-end;gap:8px;height:170px;padding-top:10px}.edu .chart>div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;height:100%}.edu .chart em{font-style:normal;font-family:var(--mono);font-size:10px;color:var(--steel)}.edu .chart i{width:100%;max-width:18px;border-radius:4px;background:var(--accent);opacity:.85;min-height:3px}.edu .chart-axis{display:flex;justify-content:space-between;margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-family:var(--mono);font-size:10.5px;letter-spacing:.5px;color:var(--steel)}.edu .att{display:flex;flex-direction:column;gap:10px}.edu .att-r{display:grid;grid-template-columns:64px 1fr 40px;align-items:center;gap:10px;font-size:11.5px}.edu .att-r .lab{color:var(--steel)}.edu .att-r .num{text-align:right;color:var(--white);font-family:var(--mono)}.edu .bar{height:8px;border-radius:4px;background:var(--line);overflow:hidden}.edu .bar>i{display:block;height:100%;border-radius:4px;background:var(--accent);opacity:.85}.edu .feed-i{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.edu .feed-i:last-child{border-bottom:0}.edu .feed-ic{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;border:1px solid var(--line-2);color:var(--steel);flex:none}.edu .row-2{display:flex;flex-direction:column;min-width:0}.edu .row-2 b{font-weight:600;color:var(--white);font-size:12px}.edu .row-2 span{font-size:11px;color:var(--steel)}.edu .panel{grid-row:2;border-left:1px solid var(--line);overflow:auto;min-height:0}.edu .sec{padding:14px;border-bottom:1px solid var(--line)}.edu .sec h4{font-weight:600;color:var(--white);font-size:12px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.edu .sec h4 small{font-weight:500;color:var(--steel)}.edu .status{grid-column:1 / -1;display:flex;align-items:center;gap:14px;padding:0 12px;border-top:1px solid var(--line);color:var(--steel);font-size:11px}.edu .status b{color:var(--silver);font-weight:500}.edu .online{display:inline-flex;align-items:center;gap:6px}.edu .online:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok)}.edu .soon{display:grid;place-items:center;text-align:center;color:var(--steel);gap:8px;padding:46px 14px}.edu .soon b{color:var(--white);font-size:15px}.edu .action-count{min-width:20px;height:20px;padding:0 5px;display:inline-grid;place-items:center;border-radius:7px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);font-family:var(--mono);font-size:10px}.edu .quick-actions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:-3px 0 14px}.edu .quick-action{min-width:0;min-height:48px;padding:7px 9px;display:flex;align-items:center;gap:8px;text-align:left;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--ink-2) 65%,transparent);color:var(--silver);font-size:11px;transition:border-color .15s,background .15s,transform .15s}.edu .quick-action:hover{border-color:var(--line-3);background:var(--card-hover);transform:translateY(-1px)}.edu .quick-action>span:nth-child(2){min-width:0;flex:1;line-height:1.25}.edu .quick-action-icon{width:29px;height:29px;flex:none;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:8px;color:var(--accent)}.edu .quick-action-arrow{flex:none;color:var(--steel)}.edu .activity-list{display:grid;gap:0}.edu .school-activity{min-width:0;display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--line)}.edu .school-activity:last-child{border-bottom:0}.edu .activity-icon{width:30px;height:30px;flex:none;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:9px;color:var(--accent);background:var(--card)}.edu .activity-icon.payment,.edu .activity-icon.reminder{color:var(--ok)}.edu .activity-icon.attendance{color:#55a7de}.edu .activity-icon.id{color:#ba93e8}.edu .activity-icon.grades{color:#efb75c}.edu .activity-copy{min-width:0;flex:1;display:grid;line-height:1.35}.edu .activity-copy b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--white);font-size:11.5px;font-weight:600}.edu .activity-copy span,.edu .activity-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--steel);font-size:10px}.edu .activity-copy small{color:color-mix(in srgb,var(--steel) 78%,transparent);font-size:9px}.edu .activity-amount{flex:none;color:var(--silver);font-family:var(--mono);font-size:10px;text-align:right}.edu .activity-photo{width:30px;height:30px;flex:none;object-fit:cover;object-position:center 25%;border-radius:50%;border:1px solid var(--line-2)}.edu .admissions-row{grid-template-columns:minmax(0,1.5fr) minmax(260px,.9fr)}.edu .admissions-card{min-width:0}.edu .admissions-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:12px}.edu .admission-card{min-width:0;display:flex;align-items:center;gap:9px;padding:9px;border:1px solid var(--line);border-radius:10px;text-align:left;background:color-mix(in srgb,var(--ink-2) 55%,transparent)}.edu .admission-card:hover{border-color:var(--line-3);background:var(--card-hover)}.edu .admission-photo{width:42px;height:42px;flex:0 0 42px;aspect-ratio:1;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line-2);border-radius:50%;background:var(--card);color:var(--accent);font:11px var(--mono)}.edu .admission-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 25%;border-radius:50%}.edu .admission-copy{min-width:0;display:grid;gap:2px}.edu .admission-copy b{overflow:hidden;color:var(--white);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.edu .admission-copy small,.edu .admission-copy time{overflow:hidden;color:var(--steel);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.edu .admission-detail-head{display:flex;align-items:center;gap:14px;padding:4px 0 14px;border-bottom:1px solid var(--line)}.edu .admission-detail-photo{width:68px;height:68px;flex:0 0 68px;aspect-ratio:1;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line-2);border-radius:50%;background:var(--card);color:var(--accent);font:16px var(--mono)}.edu .admission-detail-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 25%;border-radius:50%}.edu .admission-detail-head .row-2{min-width:0}.edu .admission-detail-head .row-2 b{color:var(--white);font-size:16px}.edu .admission-detail-head .row-2 span,.edu .admission-detail-head .row-2 small{color:var(--steel);font-size:11px}.edu .admission-detail-kv{grid-template-columns:minmax(100px,.7fr) minmax(0,1.3fr)}.edu .admission-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,340px);align-items:center;gap:22px}.edu .admission-detail-info{min-width:0;display:grid;gap:16px}.edu .admission-id-preview{min-width:0;display:grid;justify-items:center;gap:8px;padding:12px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--ink-2) 60%,transparent)}.edu .admission-id-caption{justify-self:start;color:var(--steel);font:9px var(--mono);letter-spacing:.1em;text-transform:uppercase}.edu .admission-id-preview .idcard{width:100%;max-width:340px}.edu .admission-detail-actions{padding-top:4px}.edu .staff-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,320px);gap:18px;align-items:start}.edu .staff-profile-modal{width:min(860px,calc(100vw - 40px))}.edu .staff-detail-info{min-width:0;display:grid;gap:16px}.edu .staff-detail-head{min-width:0;display:flex;align-items:center;gap:13px;padding-bottom:14px;border-bottom:1px solid var(--line)}.edu .staff-detail-head .row-2{min-width:0}.edu .staff-detail-head .row-2 b{color:var(--white);font-size:16px}.edu .staff-detail-head .row-2 span{color:var(--steel);font-size:11px}.edu .staff-detail-head .row-2 small{margin-top:4px}.edu .staff-detail-photo{width:60px;height:60px;flex:0 0 60px;aspect-ratio:1;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line-2);border-radius:50%;background:var(--card);color:var(--accent);font:15px var(--mono)}.edu .staff-detail-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 25%;border-radius:50%}.edu .staff-id-preview{min-width:0;display:grid;justify-items:center;gap:8px;padding:12px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--ink-2) 60%,transparent)}.edu .staff-id-preview .idcard{width:100%;max-width:320px}.edu .staff-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(156px,1fr));gap:8px;padding-top:15px;border-top:1px solid var(--line)}.edu .staff-actions .btn{width:100%;height:34px;justify-content:center}.edu .invoice-validity{display:block;color:var(--steel);font-size:9px;font-weight:400}.edu .arrears-card{min-width:0}.edu .arrears-list{display:grid}.edu .arrears-row{width:100%;min-width:0;display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--line);text-align:left}.edu .arrears-row:last-child{border-bottom:0}.edu .arrears-row:hover{background:var(--card-hover)}.edu .arrears-avatar{width:32px;height:32px;flex:0 0 32px;aspect-ratio:1;overflow:hidden;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:50%;color:var(--accent);font-family:var(--mono);font-size:10px;background:var(--card)}.edu .arrears-avatar img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 25%;border-radius:50%}.edu .arrears-avatar.large{width:46px;height:46px;flex-basis:46px;font-size:13px}.edu .arrears-student{min-width:0;flex:1;display:grid;gap:2px}.edu .arrears-student b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--white);font-size:11.5px}.edu .arrears-student small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--steel);font-size:9.5px}.edu .arrears-balance{flex:none;display:grid;gap:2px;color:var(--bad);font-family:var(--mono);font-size:10.5px;text-align:right}.edu .arrears-balance small{color:var(--steel);font-family:var(--sans);font-size:9px}.edu .invoice-preview-student{min-width:0;display:flex;align-items:center;gap:12px}.edu .invoice-preview-lines{display:grid;gap:0;border-top:1px solid var(--line)}.edu .invoice-preview-lines>div{display:flex;justify-content:space-between;gap:16px;padding:11px 2px;border-bottom:1px solid var(--line);font-size:12px}.edu .invoice-preview-lines span{color:var(--steel)}.edu .invoice-preview-lines b{color:var(--white);font-family:var(--mono);font-weight:500;text-align:right}.edu .invoice-preview-lines .balance b{color:var(--bad);font-weight:700}.edu .student-enrol-section{display:grid;gap:13px;padding-top:15px;border-top:1px solid var(--line)}.edu .student-enrol-section-title{display:grid;gap:3px}.edu .student-enrol-section-title b{color:var(--white);font-size:12.5px}.edu .student-enrol-section-title span{color:var(--steel);font-size:10.5px}.edu .student-enrol-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.edu .guardian-block{min-width:0;display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--ink-2) 55%,transparent)}.edu .guardian-block-title{display:flex;align-items:center;gap:8px;color:var(--silver);font-size:11px;font-weight:600}.edu .guardian-block-title span{color:var(--steel);font-size:9px;font-weight:400;text-transform:uppercase;letter-spacing:.08em}.edu .student-mark-type{max-width:300px}.edu .signature-field{min-width:0;display:grid;gap:6px}.edu .signature-label{display:flex;justify-content:space-between;align-items:center;gap:8px}.edu .signature-label>label{font-family:var(--mono);color:var(--steel);font-size:10px;letter-spacing:1px;text-transform:uppercase}.edu .signature-pad{display:block;width:100%;height:100px;touch-action:none;cursor:crosshair;border:1px dashed var(--line-3);border-radius:9px;background-color:var(--card);background-image:linear-gradient(to bottom,transparent calc(100% - 24px),var(--line) calc(100% - 23px),transparent calc(100% - 22px))}.edu .signature-hint{font-size:9.5px}.edu .student-documents{min-width:0;display:grid;gap:12px;padding-top:15px;border-top:1px solid var(--line)}.edu .student-documents-head{display:flex;align-items:flex-start;gap:12px}.edu .student-documents-head h4{color:var(--white);font-size:13px;font-weight:600}.edu .student-documents-head p{margin-top:3px;color:var(--steel);font-size:11px;line-height:1.5}.edu .doc-count{flex:none;border:1px solid var(--line-2);border-radius:7px;padding:3px 7px;color:var(--silver);font:10px var(--mono)}.edu .student-document-upload{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(170px,1.2fr) auto;align-items:end;gap:10px}.edu .doc-upload-control{display:grid;gap:6px}.edu .doc-upload-control .field-label-spacer{height:11px}.edu .doc-upload-button{min-height:30px;cursor:pointer}.edu .doc-error{color:var(--bad);font-size:11px}.edu .student-document-list{display:grid;gap:5px;max-height:220px;overflow:auto}.edu .student-document-row{min-width:0;display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--line);border-radius:9px;background:color-mix(in srgb,var(--ink-2) 60%,transparent)}.edu .student-document-icon{width:29px;height:29px;flex:none;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:8px;color:var(--accent)}.edu .doc-preview-meta{display:flex;align-items:center;gap:8px;min-width:0;color:var(--steel);font-size:11px}.edu .doc-preview-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edu .document-frame{display:block;width:100%;height:min(68vh,760px);min-height:360px;border:1px solid var(--line-2);border-radius:10px;background:#fff}.edu .document-image-preview{display:block;max-width:100%;max-height:min(68vh,760px);margin:auto;object-fit:contain;border:1px solid var(--line-2);border-radius:10px;background:var(--ink-3)}.edu .reminder-portal-note{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--accent) 36%,var(--line));border-radius:10px;color:var(--silver);background:color-mix(in srgb,var(--accent) 8%,transparent);font-size:11.5px;line-height:1.5}.edu .reminder-portal-note svg{flex:none;margin-top:1px;color:var(--accent)}.edu .reminder-portal-note b{color:var(--white)}.edu .reminder-channel-list{display:grid;gap:8px}.edu .reminder-channel{display:flex;align-items:center;gap:11px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.edu .reminder-channel>span{display:grid;gap:3px}.edu .reminder-channel b{color:var(--white);font-size:12px}.edu .reminder-channel small{color:var(--steel);font-size:10.5px}.edu .reminder-channel.unavailable{opacity:.55;cursor:not-allowed}.edu .student-document-info{min-width:0;flex:1;display:grid;gap:2px}.edu .student-document-info b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--white);font-size:11px}.edu .student-document-info span,.edu .student-document-row time{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--steel);font-size:9px}.edu .student-document-row time{flex:none}.edu .quick-modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.edu .quick-modal-action{min-width:0;display:flex;align-items:center;gap:10px;padding:11px;text-align:left;border:1px solid var(--line);border-radius:11px;color:var(--silver);background:var(--card)}.edu .quick-modal-action:hover{border-color:var(--line-3);background:var(--card-hover)}.edu .quick-modal-action>span:nth-child(2){flex:1}.edu .quick-modal-action>svg{color:var(--steel)}.edu .modal .quick-modal-grid{position:relative;z-index:1}.edu .modal .quick-modal-action{min-height:58px}.edu .modal .quick-modal-action .quick-action-icon{width:34px;height:34px}.edu .wrap{display:flex;flex-direction:column}.edu .bar2{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.edu .bar2 .sp{flex:1}.edu .in{height:30px;padding:0 10px;border-radius:8px;border:1px solid var(--line-2);background:var(--card);color:var(--white);font-size:12.5px;outline:none;transition:border-color .15s;box-sizing:border-box}.edu label.in{display:flex;align-items:center;gap:7px;padding:0 9px}.edu label.in input{border:0;outline:0;background:none;color:inherit;width:100%;font:inherit}.edu .in:focus,.edu .in:focus-within{border-color:var(--line-3)}.edu .in::placeholder{color:var(--steel)}.edu input.in,.edu select.in{width:100%}.edu select.in{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:30px;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--steel) 50%),linear-gradient(135deg,var(--steel) 50%,transparent 50%);background-position:calc(100% - 16px) 13px,calc(100% - 11px) 13px;background-size:5px 5px;background-repeat:no-repeat}.edu select.in option{background:var(--ink-2);color:var(--white)}.edu textarea.in{height:auto;padding:9px 10px;resize:vertical;line-height:1.55}.edu .row{display:flex;align-items:center;gap:10px}.edu .field{display:grid;gap:6px}.edu .field>label,.edu .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--steel)}.edu .seg{display:inline-flex;background:var(--card);border:1px solid var(--line-2);border-radius:9px;padding:2px}.edu .seg button{padding:3px 11px;border-radius:7px;color:var(--steel);font-weight:500;font-size:12px}.edu .seg button:hover{color:var(--white)}.edu .seg button.on{background:var(--card-hover);color:var(--white);box-shadow:inset 0 0 0 1px var(--line-2)}.edu .tabs2{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:16px}.edu .tabs2 button{padding:9px 14px;border-radius:9px 9px 0 0;color:var(--steel);font-weight:500;font-size:12.5px;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.edu .tabs2 button:hover{color:var(--white)}.edu .tabs2 button.on{color:var(--white);border-bottom-color:var(--accent)}.edu .strip{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:14px}.edu .strip>div{padding:16px 18px;border-left:1px solid var(--line)}.edu .strip>div:first-child{border-left:0;padding-left:0}.edu .strip .k{font-family:var(--mono);font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:var(--steel)}.edu .strip .v{font-family:var(--mono);font-size:24px;color:var(--white);margin-top:8px;letter-spacing:-.03em}.edu .strip .v.ok{color:var(--ok)}.edu .strip .v.bad{color:var(--bad)}.edu .strip .v.warn{color:#f59e0b}.edu .g2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.edu .g3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.edu .cards3{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.edu .split{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;align-items:start}.edu .split>*{min-width:0}.edu .id-preview-column{min-width:0;width:100%;max-width:380px;justify-self:center}.edu .id-preview-column .info-cards{display:block;width:100%}.edu .id-preview-column .idcard{width:100%;max-width:100%}.edu .who-row{display:flex;align-items:center;gap:10px}.edu .ava{width:30px;height:30px;aspect-ratio:1 / 1;border-radius:50%;padding:0;overflow:hidden;display:inline-grid;place-items:center;flex:0 0 30px;font-family:var(--mono);font-size:11px;font-weight:600;border:1px solid var(--line-2);color:var(--accent);line-height:1}.edu .who-row .ava{width:30px;height:30px;flex-basis:30px}.edu .who-row .ava[style*="52px"]{width:52px;height:52px;flex-basis:52px}.edu .who-row b{font-weight:600;color:var(--white)}.edu .mut{color:var(--steel)}.edu .tile{text-align:left;border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px;color:var(--inherit)}.edu .class-tile{position:relative;overflow:hidden;padding-left:22px}.edu .class-ribbon{position:absolute;left:0;top:14px;min-width:15px;max-width:22px;padding:5px 3px;display:grid;place-items:center;overflow:hidden;border-radius:0 5px 5px 0;background:color-mix(in srgb,var(--accent) 17%,var(--ink-2));border:1px solid color-mix(in srgb,var(--accent) 38%,var(--line));border-left:0;color:var(--accent);font:8px/1.1 var(--mono);letter-spacing:.04em;writing-mode:vertical-rl;text-orientation:mixed;text-transform:uppercase}.edu .class-tile .t-h{padding-left:3px}.edu .btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,var(--line))}.edu .btn.danger:hover:not(:disabled){background:color-mix(in srgb,var(--bad) 12%,transparent);border-color:var(--bad)}.edu .class-roll-table{max-height:min(48vh,420px);overflow:auto}.edu .tile:hover{border-color:var(--line-2)}.edu .tile.on{border-color:var(--accent)}.edu .tile .t-h{display:flex;align-items:center;justify-content:space-between;gap:8px}.edu .tile .t-h b{color:var(--white);font-size:14px}.edu .tile .t-sub{font-size:11.5px;color:var(--steel)}.edu .tile .t-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-top:10px;border-top:1px solid var(--line)}.edu .tile .t-stats .v{font-family:var(--mono);font-size:18px;color:var(--white)}.edu .tile .t-stats .k{font-size:10.5px;color:var(--steel)}.edu .class-name-preview{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--line-2);border-radius:9px;background:var(--card)}.edu .class-name-preview span{color:var(--steel);font-size:11px}.edu .class-name-preview b{color:var(--accent);font-family:var(--mono);font-size:13px}.edu .kv{display:grid;grid-template-columns:110px 1fr;gap:8px 12px;font-size:12px}.edu .kv dt{color:var(--steel)}.edu .kv dd{color:var(--white);min-width:0}.edu .ab-btns{display:inline-flex;gap:5px}.edu .ab{width:32px;height:28px;border-radius:7px;border:1px solid var(--line-2);background:transparent;color:var(--steel);font-family:var(--mono);font-size:11px;font-weight:600}.edu .ab:hover{border-color:var(--steel);color:var(--white)}.edu .ab.on.present{background:var(--ok);border-color:var(--ok);color:#06231a}.edu .ab.on.absent{background:var(--bad);border-color:var(--bad);color:#2a0b0d}.edu .ab.on.late{background:#f59e0b;border-color:#f59e0b;color:#2a1c02}.edu .ab.on.excused{background:#6366f1;border-color:#6366f1;color:#fff}.edu .tt{width:100%;border-collapse:collapse;min-width:760px}.edu .tt th{background:var(--card);font-family:var(--mono);font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:var(--steel);text-align:left;padding:10px 12px;border:1px solid var(--line)}.edu .tt td{border:1px solid var(--line);padding:8px;vertical-align:top;min-width:120px}.edu .tt .period{font-family:var(--mono);font-size:11px;color:var(--steel);background:var(--card);white-space:nowrap}.edu .slot{border-radius:7px;padding:8px 9px;background:var(--card);border:1px solid var(--line);font-size:11.5px}.edu .slot b{display:block;color:var(--white);font-weight:600}.edu .slot span{color:var(--steel);font-size:10.5px}.edu .slot.empty{color:var(--steel);text-align:center;background:transparent;border-style:dashed}.edu .msg{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);cursor:pointer}.edu .msg:hover{background:var(--card-hover)}.edu .msg.unread b{color:var(--white)}.edu .msg.on{box-shadow:inset 2px 0 0 var(--accent);padding-left:10px}.edu .msg-body{flex:1;min-width:0}.edu .msg-body b{display:block;font-size:12.5px;color:var(--silver);font-weight:600}.edu .msg-body span{font-size:11.5px;color:var(--steel);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edu .msg time{font-family:var(--mono);font-size:10.5px;color:var(--steel);white-space:nowrap}.edu .grade-in{width:70px;height:30px;text-align:center;font-family:var(--mono)}.edu .ltr{font-family:var(--mono);font-weight:700}.edu .ltr.A{color:var(--ok)}.edu .ltr.B{color:#4ea3d9}.edu .ltr.C{color:#f59e0b}.edu .ltr.D{color:#e8894f}.edu .ltr.F{color:var(--bad)}.edu .switch{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:none;width:36px;height:20px;border-radius:99px;background:var(--line-2);position:relative;cursor:pointer;transition:background .2s;margin:0;border:0}.edu .switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s}.edu .switch:checked{background:var(--accent)}.edu .switch:checked:after{transform:translate(16px)}.edu .overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#060708a8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:24px;animation:fade .15s ease}.edu .modal{position:relative;width:min(600px,100%);max-height:calc(100vh - 48px);overflow:auto;background:linear-gradient(180deg,color-mix(in srgb,var(--ink-3) 94%,transparent),var(--ink-2));border:1px solid var(--line-3);border-radius:20px;padding:22px 24px 24px;display:grid;gap:18px;box-shadow:0 50px 100px -45px #000000f2}.edu .modal:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:20px;pointer-events:none;z-index:0;background-image:radial-gradient(var(--dot-c) 1px,transparent 1.2px);background-size:18px 18px;-webkit-mask-image:radial-gradient(130% 90% at 50% 0%,#000 20%,transparent 92%);mask-image:radial-gradient(130% 90% at 50% 0%,#000 20%,transparent 92%);opacity:.75}.edu .modal>*{position:relative;z-index:1}.edu .m-head{display:flex;align-items:center;gap:10px;padding-bottom:15px;border-bottom:1px solid var(--line)}.edu .m-head h3{font-size:17px;letter-spacing:-.01em;color:var(--white)}.edu .m-body{display:grid;gap:16px;align-content:start}.edu .m-foot{display:flex;align-items:center;gap:10px;padding-top:15px;border-top:1px solid var(--line)}.edu .modal .row{display:flex;align-items:center;gap:10px}.edu .toast{position:fixed;bottom:46px;left:50%;transform:translate(-50%);background:var(--white);color:var(--ink);padding:10px 18px;border-radius:999px;font-size:12.5px;z-index:90;animation:fade .2s ease}.edu .empty{padding:30px 14px;text-align:center;color:var(--steel);font-size:12.5px}.applogo{display:block;object-fit:contain}.applogo.on-light,[data-theme=light] .applogo.on-dark{display:none}[data-theme=light] .applogo.on-light{display:block}.edu .ava img,.scan-ava img{width:100%;height:100%;object-fit:cover;object-position:center 25%;border-radius:50%}.edu .photo-big{display:grid;place-items:center;gap:12px}.edu .photo-big img{display:block;width:auto;height:auto;max-width:min(420px,74vw);max-height:min(62vh,520px);object-fit:contain;border-radius:14px;border:1px solid var(--line-3);background:var(--ink-3);box-shadow:0 24px 60px -24px #000c}.edu .photo-big .who{text-align:center}.edu .chip-code{font-family:var(--mono);font-size:11px;padding:1px 7px;border-radius:6px;border:1px solid var(--line-2);color:var(--silver)}.qr-tile{display:inline-grid;place-items:center;background:#fff;border-radius:14px;padding:14px;box-shadow:0 14px 34px -14px #0009}.qr-tile .qr,.qr-tile svg{display:block;color:#0b0b0c}.edu .photo{width:92px;height:92px;border-radius:14px;border:1.5px dashed var(--line-3);display:grid;place-items:center;cursor:pointer;overflow:hidden;color:var(--steel);flex:none;background:var(--card)}.edu .photo:hover{border-color:var(--accent);color:var(--white)}.edu .photo img{width:100%;height:100%;object-fit:contain;background:var(--ink-3);padding:3px}.edu .logo-slot{width:110px;height:110px;border-radius:16px;display:grid;place-items:center;overflow:hidden;border:1.5px dashed var(--line-3)}.edu .logo-slot.has{border-style:solid;border-color:var(--line-2);background:repeating-conic-gradient(var(--card) 0% 25%,transparent 0% 50%) 50% / 18px 18px}.edu .logo-slot img{width:100%;height:100%;object-fit:contain;padding:8px}.edu .logo-slot:hover{border-color:var(--accent)}.edu .info-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.edu .idcard{position:relative;width:100%;max-width:380px;aspect-ratio:1.5 / 1;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;background:linear-gradient(150deg,var(--ink-3),var(--ink-2) 65%);border:1px solid var(--line-2);box-shadow:0 22px 50px -22px #000000bf;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}.edu .idcard:hover{transform:translateY(-3px);box-shadow:0 28px 60px -22px #000000d9}.edu .idcard:after{content:"";position:absolute;right:-50px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--accent) 25%,transparent),transparent);pointer-events:none}.edu .idcard .ic-band{display:flex;align-items:center;gap:9px;padding:10px 15px;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 55%,var(--ink-3)));color:#fff;position:relative;z-index:1}.edu .idcard .ic-mark{width:21px;height:21px;border-radius:6px;background:#fff3;display:grid;place-items:center;font-weight:700;font-size:11px;overflow:hidden}.edu .idcard .ic-mark img{width:100%;height:100%;object-fit:contain;padding:2px}.edu .idcard .ic-band b{font-size:10.5px;letter-spacing:.2em}.edu .idcard .ic-band span{margin-left:auto;font-family:var(--mono);font-size:9px;letter-spacing:.14em;opacity:.92}.edu .idcard .ic-body{position:relative;z-index:1;display:flex;gap:14px;padding:16px 16px 12px;flex:1;min-height:0}.edu .idcard .ic-photo{width:74px;height:90px;border-radius:11px;overflow:hidden;flex:none;display:grid;place-items:center;background:var(--ink-4);border:2px solid color-mix(in srgb,var(--accent) 55%,transparent);font-family:var(--mono);font-size:19px;font-weight:600;color:var(--accent)}.edu .idcard .ic-photo img{width:100%;height:100%;object-fit:cover;object-position:center 25%}.edu .idcard .ic-info{flex:1;min-width:0}.edu .idcard .ic-name{font-size:17px;font-weight:700;color:var(--white);letter-spacing:-.01em;line-height:1.15}.edu .idcard .ic-role{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;color:var(--accent);margin:3px 0 9px}.edu .idcard .ic-row{display:flex;justify-content:space-between;gap:10px;font-size:11px;padding:3.5px 0;border-bottom:1px dashed var(--line)}.edu .idcard .ic-row:last-child{border-bottom:0}.edu .idcard .ic-row span:first-child{color:var(--steel)}.edu .idcard .ic-row span:last-child{color:var(--silver);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edu .idcard .ic-foot{position:relative;z-index:1;display:flex;align-items:center;gap:12px;padding:11px 15px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--ink-2) 70%,transparent)}.edu .idcard .ic-qr{flex:none;display:grid;place-items:center;background:#fff;border-radius:9px;padding:5px;box-shadow:0 2px 8px #00000059}.edu .idcard .ic-qr .qr{display:block;color:#0b0b0c}.edu .idcard .ic-valid{display:grid;gap:3px;font-family:var(--mono);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--steel)}.edu .idcard .ic-valid b{font-size:9.5px;letter-spacing:.04em;text-transform:none;color:var(--silver)}.edu .idcard .ic-sign{min-width:65px;margin-left:auto;display:grid;justify-items:end;gap:2px;text-align:right;font-size:8px;color:var(--steel)}.edu .idcard .ic-sign i{display:block;width:65px;height:1px;background:var(--line-3);margin:0 0 2px auto}.edu .idcard .ic-sign img{display:block;max-width:76px;width:auto;height:24px;object-fit:contain;object-position:right center}.edu .idcard .ic-sign .student-mark-img{max-width:48px;height:19px;margin-bottom:1px}.edu .idcard .ic-sign .guardian-sign-img{max-width:56px;height:19px;margin-bottom:1px}.edu .idcard .ic-sign .school-sign-img{max-width:64px;height:21px}.edu .certificate-signature{min-width:92px;display:grid;justify-items:end;gap:2px;text-align:right;color:var(--steel);font-size:9px}.edu .certificate-signature img{display:block;max-width:110px;width:auto;height:28px;object-fit:contain}.edu .certificate-signature i{display:block;width:78px;height:1px;background:var(--line-3)}.edu .certificate-signature b{color:var(--silver);font-size:9px}.edu .certificate-signature small{color:var(--steel);font-size:8px}.edu .school-signature-setting{display:flex;align-items:center;gap:16px;margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}.edu .invoice-signature-preview{display:grid;justify-items:end;gap:3px;color:var(--steel);font-size:10px}.edu .invoice-signature-preview img{width:auto;max-width:190px;height:42px;object-fit:contain;object-position:right center}.edu .teacher-portal-profile{display:flex;align-items:center;gap:14px;padding:15px;margin-bottom:12px}.edu.teacher-shell{grid-template-columns:52px minmax(0,1fr);grid-template-rows:46px minmax(0,1fr) 26px}.edu.teacher-shell .top{grid-column:1 / -1;grid-row:1}.edu.teacher-shell .teacher-rail{grid-column:1;grid-row:2}.edu.teacher-shell .teacher-center{grid-column:2;grid-row:2;min-width:0;overflow:auto}.edu.teacher-shell .status{grid-column:1 / -1;grid-row:3}.edu .teacher-top-context{min-width:0;max-width:36vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--steel);font-size:10px}.edu .teacher-page-heading{display:flex;align-items:center;justify-content:space-between;padding:17px 22px 4px}.edu .teacher-page-heading h1{margin-top:4px;color:var(--white);font-size:21px;font-weight:500}.edu .teacher-page-heading p{margin-top:3px;color:var(--steel);font-size:11px}.edu .teacher-page-content{display:grid;gap:12px;max-width:1260px;margin:0 auto;padding:12px 22px 28px}.edu .teacher-welcome{display:flex;align-items:center;gap:16px;padding:18px}.edu .teacher-welcome h2{margin-top:4px;color:var(--white);font-size:19px}.edu .teacher-welcome p{margin-top:4px;color:var(--steel);font-size:11px}.edu .teacher-stats{margin:0}.edu .teacher-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.edu .teacher-shortcut-arrow{margin-left:auto;transform:rotate(180deg);color:var(--steel)}.edu .teacher-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.edu .teacher-overview-grid>*{min-width:0}.edu .teacher-portal-topbar{display:flex;align-items:center;gap:10px;margin:-4px 0 14px;padding-bottom:11px;border-bottom:1px solid var(--line)}.edu .teacher-portal-brand{display:flex;align-items:center;gap:9px;flex:1;min-width:0}.edu .teacher-portal-brand-mark{width:30px;height:30px;flex:none;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:8px;color:var(--accent);font-weight:700}.edu .teacher-portal-brand>span:last-child{min-width:0;display:grid}.edu .teacher-portal-brand b{color:var(--white);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.edu .teacher-portal-brand small{color:var(--steel);font-size:9px}.edu .teacher-portal-avatar{width:54px;height:54px;flex:0 0 54px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line-2);border-radius:50%;background:var(--card);color:var(--accent);font:14px var(--mono)}.edu .teacher-portal-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.edu .teacher-portal-profile .row-2{min-width:0}.edu .teacher-portal-profile .row-2 b{color:var(--white);font-size:15px}.edu .teacher-portal-profile .row-2 span,.edu .teacher-portal-profile .row-2 small{color:var(--steel);font-size:10.5px}.edu .teacher-assignment{max-width:200px;display:grid;gap:3px}.edu .teacher-assignment span{color:var(--steel);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.edu .teacher-assignment b{color:var(--silver);font-size:10.5px}.edu .teacher-portal-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:12px;align-items:start}.edu .teacher-portal-section{min-width:0}.edu .teacher-documents-section{grid-column:1 / -1}.edu .teacher-log-row{min-width:0;display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--line);color:var(--steel);font-size:10.5px}.edu .teacher-log-row:last-child{border-bottom:0}.edu .teacher-log-row b{color:var(--silver);font-size:11px}.edu .teacher-log-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edu .teacher-log-row time{margin-left:auto;color:var(--steel);white-space:nowrap;font-size:9px}.edu .teacher-log-dot{width:8px;height:8px;flex:none;border-radius:50%;background:var(--ok)}.edu .teacher-log-dot.out{background:var(--accent)}.edu .teacher-note-form{display:grid;gap:10px}.edu .teacher-note{display:grid;gap:6px;padding:10px;border:1px solid var(--line);border-radius:9px}.edu .teacher-note time,.edu .teacher-note small{color:var(--steel);font-size:9px}.edu .teacher-note p{color:var(--silver);font-size:11px;line-height:1.5;white-space:pre-wrap}.edu .teacher-upload-row{display:flex;align-items:center;gap:10px}.edu .teacher-upload-icon{width:34px;height:34px;flex:none;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:9px;color:var(--accent)}.edu .teacher-selected-file{padding:8px;border:1px solid var(--line);border-radius:8px;color:var(--silver);font-size:10px}.edu .cert{position:relative;width:100%;max-width:400px;aspect-ratio:1.4 / 1;border-radius:16px;overflow:hidden;border:1px solid var(--line-2);background:linear-gradient(160deg,var(--ink-3),var(--ink-2) 70%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding:26px 22px;box-shadow:0 22px 50px -22px #000000bf}.edu .cert:before{content:"";position:absolute;top:12px;right:12px;bottom:12px;left:12px;border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:10px;pointer-events:none}.edu .cert .seal{width:46px;height:46px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 18%,transparent);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent)}.edu .cert .c-brand{font-family:var(--mono);font-size:10px;letter-spacing:.24em;color:var(--steel)}.edu .cert .c-title{font-family:Playfair Display,Georgia,serif;font-style:italic;font-size:22px;color:var(--white);line-height:1.15;margin-top:2px}.edu .cert .c-sub{font-size:11px;color:var(--steel)}.edu .cert .c-name{font-size:18px;font-weight:600;color:var(--white);border-bottom:1px solid var(--line-3);padding:0 22px 4px}.edu .cert .c-note{font-size:11px;color:var(--silver);max-width:280px;line-height:1.5}.edu .cert .c-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;margin-top:8px;font-size:9px;color:var(--steel)}.edu .cert .c-foot i{display:block;width:70px;height:1px;background:var(--line-3);margin-bottom:4px}.edu .id-document-layout{display:grid;grid-template-columns:minmax(280px,1fr) minmax(280px,1fr);gap:16px;align-items:start}.edu .id-document-controls,.edu .id-document-preview{min-width:0}.edu .id-document-preview .idcard{width:min(100%,420px);margin:0 auto}.edu .id-document-controls .row{flex-wrap:wrap}@media(max-width:800px){.edu .id-document-layout{grid-template-columns:minmax(0,1fr)}}.scan{min-height:100vh;display:grid;place-items:center;padding:24px}.scan-card{position:relative;width:min(440px,100%);background:var(--ink-2);border:1px solid var(--line-2);border-radius:20px;overflow:hidden;box-shadow:0 30px 70px -30px #000c}.scan-band{display:flex;align-items:center;gap:10px;padding:12px 18px;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 55%,var(--ink-3)));color:#fff}.scan-band b{font-size:12px;letter-spacing:.2em}.scan-band span:last-child{margin-left:auto;font-family:var(--mono);font-size:9px;letter-spacing:.14em;opacity:.92}.scan-head{display:flex;align-items:center;gap:14px;padding:18px 18px 14px}.scan-ava{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;font-family:var(--mono);font-size:18px;font-weight:600;color:var(--accent);border:2px solid color-mix(in srgb,var(--accent) 55%,transparent);flex:none}.scan-head h1{font-size:20px;color:var(--white);letter-spacing:-.01em}.scan-head p{font-size:12px;color:var(--steel);margin-top:3px}.scan-kv{display:grid;gap:1px;padding:0 18px}.scan-kv>div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);font-size:12.5px}.scan-kv dt{color:var(--steel)}.scan-kv dd{color:var(--white);text-align:right}.scan-code{display:flex;align-items:center;gap:10px;padding:14px 18px;font-size:11.5px;color:var(--steel)}.scan-code b{margin-left:auto;color:var(--silver)}.scan-actions{display:flex;gap:10px;padding:0 18px 18px}.scan-foot{padding:12px 18px;border-top:1px solid var(--line);font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--steel);text-align:center}@media(max-width:1100px){.edu{grid-template-columns:52px 1fr}.edu .panel{display:none}.edu .c4{grid-template-columns:1fr 1fr}.edu .c-main{grid-template-columns:1fr}.edu .quick-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.edu .admissions-row{grid-template-columns:minmax(0,1fr)}.edu .admissions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.edu .cmdk{width:auto;flex:1}}.dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--line);gap:24px}.dashboard-brand{display:flex;align-items:center;gap:12px}.dashboard-logo{font-size:16px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}.dashboard-meta h1{font-size:14px;font-weight:500;letter-spacing:.1em;margin:0;text-transform:uppercase}.dashboard-subtitle{font-size:11px;color:var(--steel);letter-spacing:.08em;text-transform:capitalize;margin:2px 0 0}.dashboard-tools{display:flex;align-items:center;gap:16px;margin-left:auto}.dashboard .theme-switch{width:36px;height:36px}.dashboard-user{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:10px;background:var(--card);border:1px solid var(--line)}.user-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:600;font-family:var(--mono)}.user-name{font-size:13px;font-weight:500;color:var(--white)}.user-role{font-size:11px;color:var(--steel);text-transform:capitalize}.dashboard-content{display:grid;grid-template-columns:240px 1fr;gap:0;min-height:0}.dashboard-sidebar{border-right:1px solid var(--line);padding:20px 16px;overflow-y:auto;display:flex;flex-direction:column;gap:24px}.dashboard-nav{display:flex;flex-direction:column;gap:2px}.nav-section{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--steel);padding:12px 12px 8px}.nav-item{width:100%;padding:10px 12px;border-radius:8px;border:none;background:transparent;color:var(--steel);font-size:13px;text-align:left;cursor:pointer;transition:color .2s,background .2s}.nav-item:hover{color:var(--white);background:var(--card)}.nav-item.on{color:var(--white);background:var(--accent);font-weight:500}.dashboard-user-card{margin-top:auto;padding:16px;border-radius:12px;border:1px solid var(--line);background:var(--card);text-align:center;display:flex;flex-direction:column;gap:10px}.card-avatar{width:48px;height:48px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;font-weight:600;margin:0 auto;font-family:var(--mono)}.card-name{font-size:14px;font-weight:600;color:var(--white);margin:0}.card-email{font-size:11px;color:var(--steel);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-logout{padding:8px 12px;border-radius:6px;border:1px solid var(--line);background:transparent;color:var(--steel);font-size:12px;cursor:pointer;transition:color .2s,border-color .2s}.btn-logout:hover{color:var(--bad);border-color:var(--bad)}.dashboard-main{padding:32px;overflow-y:auto}.page-head{margin-bottom:32px}.page-crumb{font-family:var(--mono);font-size:10px;letter-spacing:1.8px;text-transform:uppercase;color:var(--accent);margin-bottom:10px}.page-title{font-size:26px;font-weight:500;letter-spacing:-.02em;margin:0 0 8px}.page-subtitle{font-size:14px;color:var(--steel);margin:0}.dashboard-overview{display:flex;flex-direction:column;gap:32px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.stat-card{padding:20px;border-radius:12px;border:1px solid var(--line);background:var(--card)}.stat-label{font-size:12px;color:var(--steel);margin-bottom:12px}.stat-value{font-size:32px;font-weight:600;color:var(--white);letter-spacing:-.02em}.dashboard-section{display:flex;flex-direction:column;gap:16px}.section-title{font-size:18px;font-weight:500;letter-spacing:-.01em;margin:0}.activity-list{display:flex;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}.activity-item{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;background:var(--card);border-bottom:1px solid var(--line);transition:background .2s}.activity-item:last-child{border-bottom:none}.activity-item:hover{background:var(--card-hover)}.activity-main{flex:1;min-width:0}.activity-title{font-size:14px;font-weight:500;color:var(--white);margin-bottom:4px}.activity-detail{font-size:12px;color:var(--steel)}.activity-time{font-size:12px;color:var(--steel);white-space:nowrap;margin-left:16px}.dashboard-placeholder{padding:40px;text-align:center;color:var(--steel)}.dashboard-placeholder h3{font-size:20px;margin-bottom:8px}.dashboard-placeholder p{font-size:14px}@media(max-width:900px){.dashboard-content{grid-template-columns:1fr}.dashboard-sidebar{display:none}.dashboard-main{padding:24px 20px}}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.toolbar-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.toolbar-right{display:flex;align-items:center;gap:12px}.search-in{min-width:280px;flex:1}.filter-select{min-width:160px}.data-table-container{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card)}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;font-family:var(--mono);font-size:10.5px;font-weight:400;color:var(--steel);text-transform:uppercase;letter-spacing:1.8px;padding:14px 16px;background:var(--ink-2);border-bottom:1px solid var(--line)}.data-table td{padding:14px 16px;border-top:1px solid var(--line);vertical-align:middle;color:var(--silver);font-size:14px}.data-table tr.click{cursor:pointer;transition:background .2s}.data-table tr.click:hover td{background:var(--card-hover)}.table-name{display:flex;align-items:center;gap:10px}.table-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:600;font-family:var(--mono);flex-shrink:0}.table-actions{display:flex;align-items:center;gap:6px}.btn-icon{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--steel);display:grid;place-items:center;cursor:pointer;transition:all .2s}.btn-icon:hover{background:var(--card-hover);border-color:var(--line-2);color:var(--white)}.table-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 0;margin-top:16px}.table-count{font-size:13px;color:var(--steel)}.table-pagination{display:flex;gap:8px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.btn-text{background:none;border:none;color:var(--accent);font-size:13px;cursor:pointer;padding:4px 8px;transition:color .2s}.btn-text:hover{color:var(--accent-dark)}.screen-students,.screen-classes{display:flex;flex-direction:column;gap:24px}.classes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.class-card{border:1px solid var(--line);border-radius:16px;background:var(--card);padding:20px;cursor:pointer;transition:all .3s var(--ease);display:flex;flex-direction:column;gap:16px}.class-card:hover{border-color:var(--line-2);transform:translateY(-2px);box-shadow:0 8px 24px #00000014}.class-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.class-name{font-size:18px;font-weight:600;color:var(--white);letter-spacing:-.01em}.class-card-body{display:flex;flex-direction:column;gap:16px}.class-teacher{display:flex;align-items:center;gap:12px}.class-teacher-avatar{width:40px;height:40px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:600;font-family:var(--mono);flex-shrink:0}.class-teacher-label{font-size:11px;color:var(--steel);text-transform:uppercase;letter-spacing:1px;font-family:var(--mono)}.class-teacher-name{font-size:14px;color:var(--white);font-weight:500}.class-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;padding-top:12px;border-top:1px solid var(--line)}.class-stat{text-align:center}.class-stat-value{font-size:24px;font-weight:600;color:var(--white);letter-spacing:-.02em;margin-bottom:4px}.class-stat-label{font-size:12px;color:var(--steel)}.class-card-footer{display:flex;gap:12px;padding-top:12px;border-top:1px solid var(--line)}.screen-grades{display:flex;flex-direction:column;gap:24px}.grades-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grades-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:20px;background:var(--card);border:1px solid var(--line);border-radius:16px}.stat-mini{text-align:center}.stat-mini-label{font-size:11px;color:var(--steel);text-transform:uppercase;letter-spacing:1.2px;font-family:var(--mono);margin-bottom:8px}.stat-mini-value{font-size:28px;font-weight:600;color:var(--white);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.grades-table .grade-input{width:100px;height:38px;font-family:var(--mono);text-align:center;font-size:14px}.grades-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:16px}.screen-attendance{display:flex;flex-direction:column;gap:24px}.attendance-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:16px;align-items:end}.attendance-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;padding:20px;background:var(--card);border:1px solid var(--line);border-radius:16px}.summary-item{text-align:center}.summary-label{font-size:11px;color:var(--steel);text-transform:uppercase;letter-spacing:1.2px;font-family:var(--mono);margin-bottom:8px}.summary-value{font-size:32px;font-weight:600;color:var(--white);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.summary-value.ok{color:var(--ok)}.summary-value.bad{color:var(--bad)}.summary-value.warn{color:#f59e0b}.attendance-buttons{display:flex;gap:6px}.attendance-btn{width:36px;height:36px;border-radius:8px;border:1px solid var(--line-2);background:transparent;color:var(--steel);font-size:13px;font-weight:600;font-family:var(--mono);cursor:pointer;transition:all .2s}.attendance-btn:hover{border-color:var(--line-3);background:var(--card-hover)}.attendance-btn.on{color:#fff;border-color:currentColor}.attendance-btn.on.present{background:var(--ok);border-color:var(--ok)}.attendance-btn.on.absent{background:var(--bad);border-color:var(--bad)}.attendance-btn.on.late{background:#f59e0b;border-color:#f59e0b}.attendance-btn.on.excused{background:#6366f1;border-color:#6366f1}.attendance-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:16px}@media(max-width:1024px){.grades-controls,.attendance-controls{grid-template-columns:1fr}.grades-stats,.attendance-summary{grid-template-columns:repeat(2,1fr)}.classes-grid{grid-template-columns:1fr}}@media(max-width:768px){.toolbar{flex-direction:column;align-items:stretch}.toolbar-left,.toolbar-right{width:100%}.search-in{min-width:100%}}.screen-reports{display:flex;flex-direction:column;gap:24px}.reports-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);padding-bottom:0}.tab-btn{padding:12px 20px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--steel);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.tab-btn:hover{color:var(--white)}.tab-btn.on{color:var(--white);border-bottom-color:var(--accent)}.reports-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.reports-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.report-card{border:1px solid var(--line);border-radius:16px;background:var(--card);padding:20px;display:flex;flex-direction:column;gap:12px;transition:all .3s var(--ease)}.report-card:hover{border-color:var(--line-2);transform:translateY(-2px)}.report-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.report-card-name{font-size:16px;font-weight:600;color:var(--white)}.report-card-description{font-size:13px;color:var(--steel);line-height:1.6;flex:1}.report-card-actions{display:flex;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.screen-messages{display:flex;flex-direction:column;gap:24px}.messages-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.messages-folders{display:flex;gap:4px}.folder-btn{padding:10px 16px;background:transparent;border:1px solid var(--line);border-radius:10px;color:var(--steel);font-size:14px;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:8px}.folder-btn:hover{background:var(--card-hover);color:var(--white)}.folder-btn.on{background:var(--accent);border-color:var(--accent);color:#fff}.unread-badge{background:var(--bad);color:#fff;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:600;font-family:var(--mono)}.messages-list{display:flex;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:16px;overflow:hidden}.message-item{padding:18px 20px;background:var(--card);border-bottom:1px solid var(--line);cursor:pointer;transition:background .2s;display:flex;flex-direction:column;gap:8px}.message-item:last-child{border-bottom:none}.message-item:hover{background:var(--card-hover)}.message-item.unread{background:#037b860d}.message-item.unread .message-subject{font-weight:600;color:var(--white)}.message-item-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.message-from{display:flex;align-items:center;gap:10px}.message-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:600;font-family:var(--mono);flex-shrink:0}.message-from-name{font-size:14px;font-weight:500;color:var(--white)}.message-timestamp{font-size:12px;color:var(--steel);font-family:var(--mono)}.message-subject{font-size:14px;color:var(--silver)}.message-preview{font-size:13px;color:var(--steel);line-height:1.5}.message-view{border:1px solid var(--line);border-radius:16px;background:var(--card);padding:24px;display:flex;flex-direction:column;gap:20px}.message-view-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--line)}.message-view-actions{display:flex;gap:8px}.message-view-content{display:flex;flex-direction:column;gap:16px}.message-view-subject{font-size:22px;font-weight:500;color:var(--white);letter-spacing:-.01em;margin:0}.message-view-meta{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--steel);padding-bottom:16px;border-bottom:1px solid var(--line)}.message-view-meta strong{color:var(--white);font-weight:500}.message-view-body{font-size:14px;color:var(--silver);line-height:1.7;white-space:pre-wrap}.compose-view{border:1px solid var(--line);border-radius:16px;background:var(--card);padding:24px}.compose-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--line)}.compose-header h3{font-size:20px;font-weight:500;margin:0}.compose-form{display:flex;flex-direction:column;gap:16px}.compose-actions{display:flex;gap:12px;padding-top:8px}.screen-timetable{display:flex;flex-direction:column;gap:24px}.timetable-controls{display:flex;align-items:end;gap:16px}.timetable-controls .field{flex:1;max-width:300px}.timetable-actions{display:flex;gap:12px;margin-left:auto}.timetable-grid-container{border:1px solid var(--line);border-radius:16px;overflow-x:auto;background:var(--card)}.timetable-grid{width:100%;border-collapse:collapse;min-width:800px}.timetable-grid th{background:var(--ink-2);color:var(--white);font-size:14px;font-weight:500;padding:14px 12px;text-align:center;border-bottom:1px solid var(--line)}.period-header{text-align:left!important;font-family:var(--mono);font-size:11px;color:var(--steel);text-transform:uppercase;letter-spacing:1.2px}.period-cell{background:var(--ink-2);font-family:var(--mono);font-size:12px;color:var(--steel);padding:12px;border-right:1px solid var(--line);vertical-align:middle}.period-time{white-space:nowrap}.timetable-cell{padding:8px;border:1px solid var(--line);vertical-align:middle;min-width:140px}.subject-slot{padding:12px;border-radius:8px;background:var(--ink-2);text-align:center;min-height:60px;display:flex;align-items:center;justify-content:center;color:var(--steel);font-size:13px}.subject-slot.filled{background:var(--accent);color:#fff;font-weight:500}.timetable-select{width:100%;height:60px;border:1px solid var(--line-2);border-radius:8px;background:var(--ink-2);color:var(--white);padding:8px;font-size:13px;text-align:center;cursor:pointer}.timetable-legend{display:flex;gap:24px;padding:16px 20px;background:var(--card);border:1px solid var(--line);border-radius:12px;font-size:13px;color:var(--steel)}.legend-item{display:flex;gap:8px}.legend-label{font-weight:600;color:var(--white)}.screen-fees{display:flex;flex-direction:column;gap:24px}.fees-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.summary-card{padding:20px;background:var(--card);border:1px solid var(--line);border-radius:16px;text-align:center}.summary-card-label{font-size:11px;color:var(--steel);text-transform:uppercase;letter-spacing:1.2px;font-family:var(--mono);margin-bottom:12px}.summary-card-value{font-size:32px;font-weight:600;color:var(--white);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.summary-card-value.ok{color:var(--ok)}.summary-card-value.bad{color:var(--bad)}.summary-card-value.warn{color:#f59e0b}.fees-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line)}.payment-form{border:1px solid var(--line);border-radius:16px;background:var(--card);padding:32px;display:grid;place-items:center}.payment-form-inner{width:100%;max-width:500px;display:flex;flex-direction:column;gap:20px}.payment-form-inner h3{font-size:20px;font-weight:500;margin-bottom:8px}.payment-details{padding:16px;background:var(--ink-2);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:10px}.payment-detail-row{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--silver)}.fees-actions{display:flex;gap:12px;justify-content:flex-end}.pill.wait{color:#f59e0b;border-color:#f59e0b4d;background:#f59e0b1a}.pill.wait:before{background:#f59e0b}.btn.danger{color:var(--bad)}.btn.danger:hover:not(:disabled){border-color:var(--bad)}@media(max-width:1024px){.reports-grid{grid-template-columns:1fr}.fees-summary{grid-template-columns:repeat(2,1fr)}.timetable-controls{flex-direction:column;align-items:stretch}.timetable-controls .field{max-width:none}.timetable-actions{margin-left:0;width:100%}}@media(max-width:768px){.reports-filters{grid-template-columns:1fr}.messages-toolbar{flex-direction:column;align-items:stretch}.messages-folders{overflow-x:auto}.fees-summary{grid-template-columns:1fr}}.screen-settings{display:flex;flex-direction:column;gap:24px}.settings-layout{display:grid;grid-template-columns:240px 1fr;gap:24px;align-items:start}.settings-sidebar{position:sticky;top:24px;display:flex;flex-direction:column;gap:2px;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:16px}.settings-nav-item{width:100%;padding:10px 12px;border-radius:8px;border:none;background:transparent;color:var(--steel);font-size:13px;text-align:left;cursor:pointer;transition:color .2s,background .2s}.settings-nav-item:hover{color:var(--white);background:var(--card-hover)}.settings-nav-item.on{color:var(--white);background:var(--accent);font-weight:500}.settings-content{min-width:0}.settings-section{display:flex;flex-direction:column;gap:24px}.settings-section-header{padding-bottom:16px;border-bottom:1px solid var(--line)}.settings-section-header h3{font-size:22px;font-weight:500;letter-spacing:-.01em;margin:0 0 8px}.settings-section-header p{font-size:14px;color:var(--steel);margin:0}.settings-form{max-width:600px;display:flex;flex-direction:column;gap:20px;padding:24px;background:var(--card);border:1px solid var(--line);border-radius:16px}.settings-content-placeholder,.backup-section{display:flex;flex-direction:column;gap:20px}.backup-card{padding:24px;background:var(--card);border:1px solid var(--line);border-radius:16px;display:flex;flex-direction:column;gap:16px}.backup-card h4{font-size:16px;font-weight:500;margin:0;color:var(--white)}.backup-card p{font-size:14px;color:var(--steel);line-height:1.6;margin:0}.backup-info{display:flex;flex-direction:column;gap:10px;padding:16px;background:var(--ink-2);border:1px solid var(--line);border-radius:12px}.backup-info-item{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--silver)}.backup-info-label{color:var(--steel);font-weight:500}.about-section{max-width:600px;padding:32px;background:var(--card);border:1px solid var(--line);border-radius:16px;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.about-logo{font-size:24px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}.about-section h4{font-size:20px;font-weight:500;margin:0;color:var(--white)}.about-version{font-family:var(--mono);font-size:13px;color:var(--steel);margin:0}.about-description{font-size:14px;color:var(--silver);line-height:1.7;max-width:400px;margin:8px 0 16px}.about-info{width:100%;display:flex;flex-direction:column;gap:10px;padding:16px;background:var(--ink-2);border:1px solid var(--line);border-radius:12px}.about-info-item{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--silver)}.about-info-label{color:var(--steel);font-weight:500}.about-links{display:flex;gap:12px;margin-top:8px}.about-footer{font-size:12px;color:var(--steel);margin-top:16px;padding-top:16px;border-top:1px solid var(--line);width:100%}@media(max-width:1024px){.settings-layout{grid-template-columns:1fr}.settings-sidebar{position:static;flex-direction:row;overflow-x:auto;gap:8px}.settings-nav-item{white-space:nowrap}}@media(max-width:768px){.backup-section,.about-section{padding:20px}.about-section{max-width:none}}html{-webkit-text-size-adjust:100%}body{min-width:320px;overflow-x:hidden}img{max-width:100%}.edu{min-height:100vh;min-height:100dvh}.edu .center,.edu .panel,.edu .wrap,.edu .card{min-width:0}.edu .tbl{min-width:680px}.edu .scroll-x{max-width:100%;overscroll-behavior-x:contain}.edu .status,.edu .ph{min-width:0}.edu .ph>div:first-child{min-width:0}.edu .ph h1,.edu .ph p{overflow-wrap:anywhere}.edu .split{grid-template-columns:minmax(0,1fr) minmax(260px,320px)}@media(max-width:1100px){.edu,.edu.no-right{grid-template-columns:52px minmax(0,1fr)}.edu .panel{display:none}.edu .split{grid-template-columns:minmax(0,1fr) minmax(250px,320px)}.edu .status{gap:9px}}@media(max-width:900px){.edu .top{gap:8px;padding-inline:8px}.edu .wordmark{margin-right:0}.edu .wordmark span{display:none}.edu .cmdk{width:auto;min-width:120px}.edu .top>.btn.p{padding-inline:8px}.edu .status>span:nth-of-type(2),.edu .status>span:nth-of-type(5){display:none}.edu .split{grid-template-columns:minmax(0,1fr)}.edu .staff-detail-grid{grid-template-columns:minmax(0,1fr) minmax(230px,300px)}.edu .staff-profile-modal{width:min(820px,calc(100vw - 32px))}.edu .teacher-portal-grid{grid-template-columns:minmax(0,1fr)}.edu .teacher-documents-section{grid-column:auto}.edu .id-preview-column{max-width:380px;width:100%;justify-self:center}.edu .info-cards{grid-template-columns:minmax(0,1fr)}}@media(max-width:700px){.auth{height:100vh;height:100dvh;min-height:100dvh;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;overflow-y:auto}.auth-form{grid-column:1;grid-row:1;padding:76px 20px 28px;min-height:0}.auth-tools{top:16px;right:16px}.auth-box{width:min(380px,100%)}.auth-form-title{font-size:clamp(23px,7vw,30px)}.auth-foot{grid-column:1;padding:12px 16px calc(12px + env(safe-area-inset-bottom));gap:8px 16px}.auth-foot nav.apps{margin-left:0}.edu,.edu.no-right{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto;height:100vh;height:100dvh;min-height:100vh;min-height:100dvh}.edu.teacher-shell,.edu.teacher-shell.no-right{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) 58px auto}.edu.teacher-shell .top{grid-column:1;grid-row:1}.edu.teacher-shell .teacher-center{grid-column:1;grid-row:2}.edu.teacher-shell .teacher-rail{grid-column:1;grid-row:3}.edu.teacher-shell .status{grid-column:1;grid-row:4}.edu .teacher-page-heading{padding:14px 14px 2px}.edu .teacher-page-content{padding:12px 14px 24px}.edu .teacher-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.edu .teacher-overview-grid{grid-template-columns:minmax(0,1fr)}.edu .teacher-welcome{align-items:flex-start;flex-wrap:wrap}.edu .teacher-welcome>.sp{display:none}.edu .top{grid-column:1;grid-row:1;min-height:54px;padding:8px 12px;flex-wrap:wrap}.edu .mark{width:30px;height:30px;flex:none}.edu .wordmark b{max-width:34vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;letter-spacing:.14em}.edu .cmdk{order:5;flex:1 0 100%;width:100%;max-width:none;margin:0}.edu .cmdk kbd{display:none}.edu .top>.btn.p{height:32px;font-size:11px}.edu .top>.iconbtn{width:30px;height:30px}.edu .top>.av{width:28px;height:28px}.edu .center{grid-column:1;grid-row:2;width:100%;overflow-x:hidden;overflow-y:auto;min-height:0}.edu .wrap{padding:16px 14px 24px;width:100%}.edu .wrap>*{max-width:100%}.edu .scroll-x{width:100%}.edu .ph{align-items:flex-start;flex-wrap:wrap;gap:10px}.edu .ph>.sp{display:none}.edu .ph>button{flex:1 1 auto}.edu .ph h1{font-size:20px}.edu .rail{grid-column:1;grid-row:3;position:sticky;bottom:0;z-index:40;height:58px;flex-direction:row;justify-content:flex-start;align-items:center;gap:5px;padding:7px 10px calc(7px + env(safe-area-inset-bottom));overflow-x:auto;overflow-y:hidden;border-right:0;border-top:1px solid var(--line-2);background:color-mix(in srgb,var(--ink-2) 92%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);scrollbar-width:none}.edu .rail::-webkit-scrollbar{display:none}.edu .rail button{width:38px;height:38px;flex:0 0 38px}.edu .rail hr,.edu .rail .sp{display:none}.edu .rail .on:before{left:9px;right:9px;top:auto;bottom:-5px;width:auto;height:2px}.edu .rail .tip[data-tip]:hover:after{left:50%;top:auto;bottom:calc(100% + 9px);transform:translate(-50%)}.edu .rail .tip[data-tip]:hover:before{left:50%;top:auto;bottom:calc(100% + 3px);transform:translate(-50%);border-right-color:transparent;border-top-color:var(--line-3)}.edu .rail .tip[data-tip]:focus-visible:after{content:attr(data-tip);position:absolute;left:50%;top:auto;bottom:calc(100% + 9px);transform:translate(-50%);padding:5px 10px;border-radius:7px;border:1px solid var(--line-3);background:var(--ink-3);color:var(--white);white-space:nowrap;font-size:11px;z-index:60;pointer-events:none}.edu .status{grid-column:1;grid-row:4;min-height:27px;padding:4px 10px;gap:8px;flex-wrap:wrap;font-size:9px;line-height:1.3}.edu .status>span:nth-of-type(2),.edu .status>span:nth-of-type(4),.edu .status>span:nth-of-type(5){display:none}.edu .status .sp{display:block}.edu .brand-credit b{font-size:9px}.edu .strip{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}.edu .strip>div{min-width:0;padding:11px 10px;border-left:1px solid var(--line);border-top:1px solid var(--line)}.edu .strip>div:nth-child(odd){border-left:0}.edu .strip>div:nth-child(-n+2){border-top:0}.edu .strip .v{font-size:clamp(17px,5vw,22px);overflow-wrap:anywhere}.edu .c4,.edu .c-main,.edu .g2,.edu .g3,.edu .split{grid-template-columns:minmax(0,1fr)}.edu .quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.edu .admissions-grid,.edu .cards3{grid-template-columns:minmax(0,1fr)}.edu .bar2{align-items:stretch}.edu .bar2>*,.edu .bar2 .in{max-width:100%!important}.edu .bar2>.sp{display:none}.edu .seg{max-width:100%;overflow-x:auto}.edu .seg button{white-space:nowrap}.edu .tabs2{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin}.edu .tabs2 button{flex:0 0 auto;white-space:nowrap}.edu .tbl{min-width:650px}.edu .tt{min-width:760px}.edu .metric{min-width:0}.edu .chart{gap:4px;height:145px}.edu .chart em{font-size:8px}.edu .chart-axis{font-size:9px}.edu .overlay{align-items:end;padding:8px 0 0}.edu .modal{width:100%;max-height:calc(94dvh - env(safe-area-inset-bottom));padding:17px 16px calc(18px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;gap:15px}.edu .m-head{padding-bottom:12px}.edu .m-body{gap:14px}.edu .modal .g2,.edu .modal .g3,.edu .student-enrol-grid,.edu .quick-modal-grid{grid-template-columns:minmax(0,1fr)}.edu .modal .row{flex-wrap:wrap}.edu .modal .row>.sp{display:none}.edu .modal .row>.btn{flex:1 1 auto}.edu .admission-detail-actions{flex-wrap:wrap}.edu .admission-detail-layout{grid-template-columns:minmax(0,1fr)}.edu .admission-id-preview{width:100%}.edu .admission-id-preview .idcard{max-width:380px}.edu .staff-detail-grid{grid-template-columns:minmax(0,1fr)}.edu .staff-profile-modal,.edu .staff-id-preview{width:100%}.edu .staff-id-preview .idcard{max-width:380px}.edu .teacher-portal-profile{align-items:flex-start;flex-wrap:wrap}.edu .teacher-portal-profile>.sp{display:none}.edu .teacher-assignment{flex:1 1 40%}.edu .teacher-log-row{flex-wrap:wrap}.edu .student-document-upload{grid-template-columns:minmax(0,1fr);align-items:stretch}.edu .student-document-row{flex-wrap:wrap}.edu .student-document-info{flex-basis:calc(100% - 42px)}.edu .student-document-row time{margin-left:37px}.edu .student-document-row .btn{flex:1 1 auto}.edu .document-frame{height:58dvh;min-height:260px}.edu .photo-big img{max-width:88vw;max-height:58dvh}.edu .idcard{max-width:100%}.edu .idcard .ic-body{gap:10px;padding:12px}.edu .idcard .ic-photo{width:68px;height:84px}.edu .idcard .ic-name{font-size:15px}.edu .idcard .ic-foot{gap:8px;padding:8px 10px}.edu .idcard .ic-qr{padding:4px}.edu .cert{min-height:300px;aspect-ratio:auto;padding:28px 18px}.scan{padding:14px}.scan-card{border-radius:16px}.scan-actions{flex-wrap:wrap}.scan-actions .btn{flex:1 1 auto}}@media(max-width:390px){.edu .top{gap:6px}.edu .wordmark b{max-width:29vw;font-size:10px}.edu .top>.btn.p{padding-inline:6px;font-size:10px}.edu .top>.btn.p svg{display:none}.edu .wrap{padding-inline:10px}.edu .strip .k{font-size:8.5px;letter-spacing:.08em}.edu .idcard .ic-sign{display:none}.auth-foot{padding:12px 14px;gap:8px 14px}.auth-foot nav.apps,.auth-foot>span:nth-of-type(3){display:none}.auth-foot .school-contact{flex:1 1 100%;order:2}.auth-foot .school-contact span{white-space:normal}.auth-foot .foot-brand{order:1}.auth-foot>span:nth-of-type(2){order:3}.auth-foot nav{gap:10px}}.edu .attendance-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:12px;margin-top:4px}.edu .attendance-class-card{min-width:0;display:grid;gap:10px;align-content:start;text-align:left;padding:14px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--ink-2) 62%,transparent);color:inherit;transition:border-color .15s,background .15s,transform .15s}.edu .attendance-class-card:not(:disabled):hover{border-color:var(--line-3);background:var(--card-hover);transform:translateY(-1px)}.edu .attendance-class-card:disabled{cursor:default;opacity:.82}.edu .attendance-class-head{display:flex;align-items:center;gap:9px;min-width:0}.edu .attendance-class-head b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--white);font-size:13.5px;font-weight:600}.edu .attendance-class-head .st{margin-left:auto;flex:none}.edu .attendance-class-icon{width:30px;height:30px;flex:none;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:8px;color:var(--accent)}.edu .attendance-class-rate{display:flex;align-items:baseline;gap:7px}.edu .attendance-class-rate b{font-family:var(--mono);font-size:25px;font-weight:600;letter-spacing:-.03em;color:var(--white)}.edu .attendance-class-rate span{color:var(--steel);font-size:10.5px}.edu .attendance-count-tags{display:flex;flex-wrap:wrap;gap:5px}.edu .attendance-count-tags span{font-family:var(--mono);font-size:10px;font-weight:600;padding:3px 9px;border-radius:999px;border:1px solid var(--line-2);background:var(--card)}.edu .attendance-count-tags .present{color:var(--ok)}.edu .attendance-count-tags .absent{color:var(--bad)}.edu .attendance-count-tags .late{color:#f59e0b}.edu .attendance-count-tags .excused{color:#8b8ef0}.edu .attendance-class-card>small{color:var(--steel);font-size:9.5px;line-height:1.5}.edu .attendance-pending-note{padding:6px 0 2px;color:var(--steel);font-size:11px;line-height:1.5}.edu .attendance-status{margin-left:auto;flex:none;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.03em;padding:3px 9px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent) 42%,var(--line));color:var(--accent);background:color-mix(in srgb,var(--accent) 11%,transparent);white-space:nowrap}.edu .attendance-status.awaiting{color:var(--steel);border-color:var(--line-2);background:var(--card)}.edu .timetable-status{display:flex;align-items:center;gap:12px;padding:12px 14px;margin-bottom:12px}.edu .timetable-status-icon{width:32px;height:32px;flex:none;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:9px;color:var(--accent)}.edu .timetable-status .row-2 b{color:var(--white);font-size:12.5px}.edu .timetable-status .row-2 span{color:var(--steel);font-size:10.5px}.edu .timetable-card{min-width:0}.edu .tt .slot{display:block;width:100%;min-height:46px;text-align:left;cursor:default}.edu .tt .slot b{color:var(--white)}.edu .tt .slot.editable{cursor:pointer}.edu .tt .slot.editable:hover{border-color:var(--accent);background:var(--card-hover)}.edu .tt .slot:disabled{opacity:1;color:inherit}.edu .tt .slot.empty{text-align:center}.edu .tt .slot.empty:not(:disabled){color:var(--steel)}.edu .tt .slot.subject-slot{position:relative;border-left:3px solid var(--subj, var(--line-3));background:color-mix(in srgb,var(--subj, var(--card)) 14%,var(--card))}.edu .tt .slot.subject-slot b{color:color-mix(in srgb,var(--subj, var(--white)) 62%,var(--white))}.edu .tt .slot.subject-slot:after{content:"";position:absolute;top:7px;right:7px;width:7px;height:7px;border-radius:50%;background:var(--subj);box-shadow:0 0 0 3px color-mix(in srgb,var(--subj) 18%,transparent)}.edu .tt .slot.subject-slot.editable:hover{border-left-width:3px}.edu .tt .slot.subject-slot.mine{border-left-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--card))}.edu .tt .slot.subject-slot.mine b{color:var(--accent)}.edu .tt .slot.subject-slot.mine:after{background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.edu .subject-legend{display:flex;flex-wrap:wrap;gap:6px;padding:2px 0 12px}.edu .subject-legend span{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;border:1px solid var(--line-2);background:var(--card);color:var(--silver);font-size:10.5px}.edu .subject-legend i{width:8px;height:8px;border-radius:50%;background:var(--subj);flex:none}.edu .grade-setup{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}.edu .grade-setup-list{display:grid;gap:8px}.edu .grade-scale-row{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}.edu .grade-item-dot{width:10px;height:10px;flex:none;border-radius:50%;background:var(--accent)}.edu .grade-entry-list{display:grid;gap:6px}.edu .grade-entry-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:color-mix(in srgb,var(--ink-2) 45%,transparent)}.edu .grade-entry-row:hover{border-color:var(--line-2);background:var(--card-hover)}.edu .grade-entry-row .grade-in{width:74px;flex:none}.edu .grade-entry-row .ltr{min-width:20px;text-align:center}.edu .grade-entry-remark{min-width:74px;text-align:right;font-size:10.5px}.edu .report-overall{display:flex;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--line)}.edu .report-overall>span:first-child{color:var(--steel);font-size:11px}.edu .report-overall b{font-family:var(--mono);font-size:20px;color:var(--white)}.edu .report-overall .sp{flex:1}.edu .student-report-summary{display:grid;gap:8px}.edu .exam-paper-card{min-width:0}.edu .exam-review-modal{width:min(880px,calc(100vw - 40px))}.edu .exam-questions-admin{display:grid;gap:10px;max-height:min(52vh,520px);overflow:auto;padding-right:2px}.edu .exam-question-admin{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--ink-2) 55%,transparent)}.edu .exam-question-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.edu .exam-question-top .q-no{width:24px;height:24px;flex:none;display:grid;place-items:center;border-radius:7px;border:1px solid var(--line-2);color:var(--accent);font:11px var(--mono)}.edu .exam-question-top .in{height:30px}.edu .exam-question-tools{flex-wrap:wrap;align-items:center;gap:8px}.edu .exam-diagram,.edu .exam-diagram-sm{display:block;border:1px solid var(--line-2);border-radius:9px;background:var(--ink-3)}.edu .exam-diagram{max-width:320px}.edu .exam-diagram-sm{max-width:96px;max-height:60px;object-fit:contain}.edu .exam-attachments{display:grid;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.edu .doc-upload-button.disabled{opacity:.65;pointer-events:none}.edu .quiz-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.edu .quiz-option{display:flex;align-items:center;gap:8px}.edu .quiz-option>span{width:22px;height:22px;flex:none;display:grid;place-items:center;border-radius:6px;border:1px solid var(--line-2);color:var(--steel);font:10px var(--mono)}.edu .quiz-option .in{height:30px}.edu .teacher-attendance-page{display:grid;gap:12px}.edu .teacher-attendance-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.edu .teacher-attendance-toolbar .field{min-width:150px}.edu .teacher-attendance-stats{margin:0}.edu .teacher-roster{display:grid;gap:6px}.edu .teacher-roster-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:color-mix(in srgb,var(--ink-2) 45%,transparent)}.edu .teacher-roster-row:hover{border-color:var(--line-2);background:var(--card-hover)}.edu .teacher-roster-avatar{width:32px;height:32px;flex:0 0 32px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line-2);border-radius:50%;background:var(--card);color:var(--accent);font-family:var(--mono);font-size:10px;font-weight:600}.edu .teacher-roster-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.edu .teacher-roster-name{min-width:0;flex:1;display:grid;gap:1px}.edu .teacher-roster-name b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--white);font-size:12px}.edu .teacher-roster-name small{color:var(--steel);font-size:9.5px;font-family:var(--mono)}.edu .teacher-roster-row .ab-btns{flex:none}.edu .teacher-qr-preview{display:grid;justify-items:center;gap:12px;text-align:center}.edu .teacher-qr-preview .qr-tile{margin-top:4px}@media(max-width:900px){.edu .teacher-attendance-toolbar .field{min-width:0;flex:1 1 44%}.edu .grade-setup{grid-template-columns:minmax(0,1fr)}}@media(max-width:700px){.edu .attendance-admin-grid{grid-template-columns:minmax(0,1fr)}.edu .teacher-attendance-toolbar{align-items:stretch}.edu .teacher-attendance-toolbar .field{flex:1 1 100%}.edu .teacher-attendance-toolbar .sp{display:none}.edu .teacher-attendance-toolbar .btn{flex:1 1 auto}.edu .teacher-roster-row{flex-wrap:wrap}.edu .teacher-roster-row .ab-btns{width:100%;justify-content:flex-end}}
