:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:#17143f;background:#f5f6fa;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}h1,h2,h3,p{margin:0}a{color:inherit}.loading-screen{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:14px;color:#5f5a84;background:radial-gradient(circle at 50% 20%,#eef2ff,#f8f9fc 55%)}.brand-mark,.auth-brand>span{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:linear-gradient(135deg,#4f46e6,#01c7d2);color:#fff;font-weight:900;font-size:20px;box-shadow:0 12px 30px #312e8150}.brand-logo,.auth-brand>img{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 10px 18px #3423ad2c)}.auth-brand>img{width:42px;height:42px}.spinner{width:28px;height:28px;border:3px solid #dcdff5;border-top-color:#4f46e6;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(360px,1fr) minmax(480px,1fr)}.auth-showcase{position:relative;overflow:hidden;min-height:100vh;padding:46px clamp(34px,6vw,88px);display:flex;flex-direction:column;color:#fff;background:radial-gradient(circle at 80% 15%,#19d4de45 0 12%,transparent 34%),linear-gradient(145deg,#17133f,#3020a7 62%,#087e9f)}.auth-showcase:after{content:"";position:absolute;width:420px;height:420px;border:1px solid #ffffff18;border-radius:50%;right:-180px;bottom:-140px;box-shadow:0 0 0 80px #ffffff08,0 0 0 160px #ffffff05}.auth-brand{display:flex;align-items:center;gap:13px;font-size:20px;font-weight:650;z-index:1}.auth-brand>span{width:40px;height:40px;border-radius:12px;font-size:17px}.auth-brand b,.brand b{color:#7ce7f0}.showcase-copy{margin:auto 0;max-width:610px;position:relative;z-index:1}.showcase-copy h1{font-size:clamp(38px,5vw,66px);line-height:1.04;letter-spacing:-.045em;margin:12px 0 22px}.showcase-copy>p:last-child{max-width:540px;color:#d7dcf8;font-size:17px;line-height:1.75}.security-note{display:flex;align-items:center;gap:11px;color:#d5ddfb;font-size:13px;position:relative;z-index:1}.eyebrow{color:#777197;font-weight:800;font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:7px}.eyebrow.light{color:#8cecf4}.auth-form-wrap{min-height:100vh;padding:42px clamp(24px,6vw,90px);display:grid;place-items:center;background:#f8f9fc;overflow-y:auto}.auth-card{width:min(100%,520px)}.mode-tabs{padding:5px;display:grid;grid-template-columns:1fr 1fr;background:#e9eaf3;border-radius:13px;margin-bottom:30px}.mode-tabs button{border:0;background:transparent;color:#696584;padding:10px;border-radius:9px;cursor:pointer;font-weight:700}.mode-tabs button.active{color:#3020a7;background:#fff;box-shadow:0 3px 12px #25205512}.form-heading{display:flex;align-items:center;gap:14px;margin-bottom:28px}.form-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#e8e8ff;color:#4338ca}.form-heading h2{font-size:27px;letter-spacing:-.03em}.form-heading p{color:#77738e;margin-top:5px;line-height:1.45}form{display:grid;gap:17px}label{color:#363255;font-size:13px;font-weight:750;display:grid;gap:7px}label small{color:#8b87a0;font-size:11px;font-weight:500}input{width:100%;border:1px solid #dcddea;color:#181540;background:#fff;padding:12px 13px;border-radius:10px;outline:0;transition:border-color .2s,box-shadow .2s}input:focus{border-color:#655ee8;box-shadow:0 0 0 3px #4f46e61c}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.password-field{position:relative}.password-field input{padding-right:48px}.password-field button{position:absolute;right:5px;top:5px;bottom:5px;width:38px;display:grid;place-items:center;border:0;color:#77738e;background:transparent;cursor:pointer;border-radius:8px}.password-field button:hover{background:#f1f1f8}.form-error{padding:11px 13px;color:#991b1b;background:#fff1f2;border:1px solid #fecdd3;border-radius:10px;font-size:13px;line-height:1.4}.submit-button,.primary{border:0;text-decoration:none;display:inline-flex;justify-content:center;align-items:center;gap:9px;color:#fff;background:#3929bd;padding:13px 18px;border-radius:11px;font-weight:800;cursor:pointer;transition:transform .2s,background .2s}.submit-button{margin-top:2px;width:100%}.submit-button:hover:not(:disabled),.primary:hover{background:#281c9c;transform:translateY(-1px)}.submit-button:disabled{opacity:.7;cursor:wait}.forgot-link,.auth-back,.text-button{color:#3929bd;font-size:13px;font-weight:750;text-align:center}.forgot-link{justify-self:end;margin-top:-9px;text-decoration:none}.text-button{border:0;background:transparent;cursor:pointer;text-decoration:underline}.form-notice{padding:11px 13px;color:#17698a;background:#eaf7ff;border:1px solid #bae6fd;border-radius:10px;font-size:13px;line-height:1.45}.recovery-page{min-height:100vh;display:grid;place-items:center;padding:28px 20px;background:radial-gradient(circle at 15% 10%,#dffbff,transparent 30%),linear-gradient(145deg,#f7f7ff,#ecebff)}.recovery-card{width:min(100%,510px);padding:clamp(26px,5vw,44px);border:1px solid #e1e0f1;border-radius:24px;background:#fffe;box-shadow:0 24px 70px #29235c1c}.auth-brand.compact{color:#25204e;margin-bottom:33px}.auth-brand.compact>span{color:#fff}.recovery-icon{display:grid;place-items:center;width:54px;height:54px;margin-bottom:18px;border-radius:16px;color:#4338ca;background:#e9e8ff}.recovery-card h1{font-size:clamp(28px,5vw,36px);letter-spacing:-.04em}.recovery-card>p{margin-top:9px;color:#716d88;line-height:1.55}.recovery-content{margin-top:28px}.recovery-content>.auth-back{display:block;margin-top:20px}.security-footnote{display:block;margin-top:28px;padding-top:18px;border-top:1px solid #ecebf3;color:#8b87a0;text-align:center}.recovery-status{min-height:150px;display:grid;place-content:center;justify-items:center;gap:14px;color:#696584;text-align:center}.recovery-status svg{width:42px;height:42px}.recovery-status.success svg{color:#13a276}.recovery-status.error svg{color:#c22b3e}.password-policy{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:-4px 0 0;padding:0;list-style:none;color:#8b87a0;font-size:11px}.password-policy li:before{content:"○";margin-right:5px}.password-policy li.met{color:#087a59}.password-policy li.met:before{content:"✓"}.app-shell{min-height:100vh;display:flex}.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:265px;padding:24px 14px;background:#17143f;color:#eef7ff;display:flex;flex-direction:column}.brand{display:flex;gap:10px;align-items:center;padding:4px 10px 31px;font-size:17px;font-weight:650}.brand>span{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,#4f46e6,#01c7d2);color:#fff;font-weight:900}.brand small,.user small{display:block;max-width:165px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#aeb6dc;font-weight:450;margin-top:2px}.sidebar nav{display:grid;gap:4px}.nav{color:#cbd2ef;text-decoration:none;display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:11px;font-size:14px;font-weight:600}.nav:hover,.nav.active{color:#fff;background:#3929bd}.user{margin-top:auto;border-top:1px solid #30345d;padding:18px 7px 4px;display:flex;gap:10px;align-items:center;font-size:13px}.user-copy{min-width:0;flex:1}.user-copy b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user>button,.drawer-close{border:0;color:#cbd2ef;background:transparent;cursor:pointer;border-radius:8px;padding:7px;display:grid;place-items:center}.user>button:hover{color:#fff;background:#ffffff12}.avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;background:#7ce7f0;color:#17143f;display:grid;place-items:center;font-weight:850}.workspace{flex:1;min-width:0;max-width:1500px;margin-left:265px;padding:31px 42px 55px}.topbar{position:relative;display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.topbar h1{font-size:27px;letter-spacing:-.035em}.menu,.notification{border:1px solid #e2e3ec;background:#fff;width:42px;height:42px;border-radius:11px;color:#3929bd;cursor:pointer}.menu{display:none}.notification-wrap{position:relative}.notification-popover{position:absolute;z-index:20;width:260px;right:0;top:50px;padding:15px;border-radius:12px;background:#fff;box-shadow:0 16px 45px #24214c22;border:1px solid #e7e7ef}.notification-popover p{margin-top:7px;color:#77738e;font-size:13px}.hero{background:linear-gradient(115deg,#3929bd,#544be3 64%,#05aeb8);border-radius:20px;padding:30px 32px;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:22px;box-shadow:0 18px 50px #3020a71c}.hero h2{font-size:clamp(24px,3vw,34px);letter-spacing:-.035em;margin-bottom:8px}.hero p:last-child{color:#e1e5ff}.hero .primary{flex:0 0 auto;background:#fff;color:#3020a7}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:19px 0}.card,.panel,.module-page,.empty-state{background:#fff;border:1px solid #e8e8f0;border-radius:16px}.card{padding:20px;position:relative}.card>p{color:#77738e;font-size:13px}.card strong{display:block;margin:8px 0 7px;font-size:29px;letter-spacing:-.04em}.card small{color:#138a65;display:flex;align-items:center;gap:5px}.metric-icon{position:absolute;top:18px;right:18px;display:grid;place-items:center;width:38px;height:38px;background:#ececff;color:#4338ca;border-radius:11px}.grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px}.panel{padding:23px}.panel h2{margin-bottom:18px}.details{margin:0;display:grid;gap:1px;background:#e9e9f1;border:1px solid #e9e9f1;border-radius:11px;overflow:hidden}.details div{background:#fff;padding:11px 13px;display:grid;grid-template-columns:125px 1fr;gap:12px}.details dt{color:#77738e;font-size:12px}.details dd{margin:0;font-size:12px;font-weight:700;overflow-wrap:anywhere}.check-list{list-style:none;padding:0;margin:0;display:grid;gap:13px;color:#514c70;font-size:13px}.check-list li{display:flex;align-items:center;gap:9px}.check-list svg{color:#13a276;width:19px}.check-list span{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;color:#6c6787;background:#ececf3;font-size:10px;font-weight:800}.module-page{padding:27px;min-height:480px}.module-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.module-heading h2{font-size:29px;margin-bottom:8px}.module-heading p:last-child{color:#77738e}.module-heading>span{color:#4338ca;background:#ececff;border-radius:99px;padding:7px 10px;font-size:11px;font-weight:800}.empty-state{min-height:480px;padding:40px;display:grid;place-content:center;justify-items:center;text-align:center;color:#77738e}.empty-state.compact{min-height:300px;margin-top:28px;background:#f9f9fc;border-style:dashed}.empty-state>div{width:55px;height:55px;display:grid;place-items:center;color:#4338ca;background:#ececff;border-radius:16px;margin-bottom:14px}.empty-state h2,.empty-state h3{color:#24204c;margin-bottom:8px}.empty-state>p:not(.eyebrow){max-width:520px;line-height:1.6}.empty-state a{margin-top:18px;display:inline-flex;gap:7px;align-items:center;color:#3929bd;font-weight:800;text-decoration:none}.drawer-overlay,.drawer-close{display:none}.management-page{min-height:520px;padding:26px;background:#fff;border:1px solid #e8e8f0;border-radius:17px}.management-header{display:flex;justify-content:space-between;align-items:flex-start;gap:22px;margin-bottom:23px}.management-header h2{font-size:29px;letter-spacing:-.035em;margin-bottom:7px}.management-header>div>p:last-child{color:#77738e;line-height:1.5}.compact-button{padding:10px 14px;font-size:13px;flex:0 0 auto}.compact-button:disabled{opacity:.45;cursor:not-allowed;transform:none}.resource-tabs{display:flex;gap:4px;padding:5px;background:#f0f0f6;border-radius:12px;margin-bottom:18px;width:fit-content}.resource-tabs button{border:0;color:#696584;background:transparent;padding:9px 13px;border-radius:8px;cursor:pointer;font-weight:750;font-size:13px;white-space:nowrap}.resource-tabs button.active{color:#3020a7;background:#fff;box-shadow:0 3px 10px #25205512}.resource-toolbar{min-height:47px;display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:12px;color:#77738e;font-size:13px}.resource-toolbar b{color:#27234f;font-size:18px}.table-wrap{overflow-x:auto;border:1px solid #e8e8f0;border-radius:12px}table{width:100%;border-collapse:collapse;font-size:13px}th{color:#77738e;background:#f8f8fb;text-align:left;font-size:11px;letter-spacing:.04em;text-transform:uppercase}th,td{padding:12px 14px;border-bottom:1px solid #ececf2;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafaff}td small{display:block;color:#858198;margin-top:3px}code{color:#4338ca;background:#eef;padding:4px 7px;border-radius:6px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.row-actions{width:88px;text-align:right;white-space:nowrap}.row-actions button{width:31px;height:31px;border:0;color:#514c70;background:#f0f0f6;border-radius:8px;margin-left:5px;cursor:pointer}.row-actions button:hover{color:#3020a7;background:#e5e5ff}.row-actions button.danger:hover{color:#b91c1c;background:#fee2e2}.row-actions svg{width:15px;height:15px}.status{display:inline-flex;padding:5px 8px;border-radius:99px;font-size:10px;font-weight:850}.status.active{color:#087a59;background:#dcfce7}.status.invited{color:#8a5b0b;background:#fef3c7}.status.suspended{color:#a51d2d;background:#ffe4e6}.table-state{min-height:270px;display:grid;place-content:center;justify-items:center;gap:10px;color:#858198;text-align:center}.table-state>svg{color:#7c74cf;width:34px;height:34px}.table-state.error{color:#a51d2d}.modal-backdrop{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#1613378c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:min(100%,540px);max-height:calc(100vh - 40px);overflow-y:auto;background:#fff;border-radius:16px;box-shadow:0 25px 80px #16133755}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:19px 21px;border-bottom:1px solid #ececf2}.modal-header h3{font-size:19px}.modal-header button{display:grid;place-items:center;width:34px;height:34px;border:0;color:#77738e;background:#f1f1f6;border-radius:9px;cursor:pointer}.modal-header svg{width:18px}.modal-form{padding:21px}.modal-form select,.attendance-row select{width:100%;border:1px solid #dcddea;color:#181540;background:#fff;padding:11px 12px;border-radius:10px;outline:0}.modal-form select[multiple]{min-height:85px}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:5px}.form-actions>button{border:0;padding:10px 15px;border-radius:9px;cursor:pointer;font-weight:750}.form-actions>button:not(.primary){color:#5f5a78;background:#eeeef4}.check-field{display:flex;grid-template-columns:auto 1fr;flex-direction:row;align-items:center;gap:9px}.check-field input{width:17px;height:17px}.inline-note{margin-top:13px;padding:11px 13px;color:#785c19;background:#fffbeb;border:1px solid #fde68a;border-radius:9px;font-size:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.document-selector{display:grid;grid-template-columns:220px minmax(260px,1fr);gap:13px;margin-bottom:16px;padding:15px;border-radius:13px;background:#f7f8fb}.document-selector select{width:100%;padding:11px;border:1px solid #dcddea;border-radius:10px;color:#181540;background:#fff}.file-drop{display:grid;justify-items:center;gap:9px;padding:28px 20px;border:2px dashed #c9cae4;border-radius:15px;text-align:center;background:#fafaff;transition:border-color .2s,background .2s}.file-drop.dragging{border-color:#4338ca;background:#eef}.file-drop>svg{width:36px;height:36px;color:#4338ca}.file-drop p{color:#77738e;font-size:12px}.file-drop .file-message{color:#363255;font-weight:700}.file-list{display:grid;gap:9px;margin-top:18px}.file-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px;border:1px solid #e5e7ef;border-radius:12px}.file-list b,.file-list small{display:block;overflow-wrap:anywhere}.file-list small{margin-top:4px;color:#7d7992;font-size:11px}.file-kind{display:grid;place-items:center;width:39px;height:39px;border-radius:10px;color:#4338ca;background:#eef}.file-kind svg,.file-actions svg{width:17px}.file-actions{display:flex;gap:5px}.file-actions button,.file-preview header button{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:8px;color:#514c70;background:#f0f0f6;cursor:pointer}.file-actions button.danger{color:#b91c1c;background:#fee2e2}.preview-backdrop{position:fixed;z-index:120;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#151334c7}.file-preview{width:min(100%,920px);height:min(86vh,780px);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border-radius:15px;background:#fff}.file-preview header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 16px;border-bottom:1px solid #e7e7ef}.file-preview iframe{width:100%;height:100%;border:0}.file-preview img{max-width:100%;max-height:100%;margin:auto;object-fit:contain}.file-preview>.spinner{align-self:center;justify-self:center}.file-preview>p{align-self:center;justify-self:center;color:#a51d2d}.linked-record{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;margin-bottom:9px;border:1px solid #e8e8f0;border-radius:10px}.linked-record small{display:block;color:#858198;margin-top:3px}.danger-link{border:0;padding:7px 9px;color:#b91c1c;background:#fee2e2;border-radius:8px;cursor:pointer}.status.transferred{color:#8a5b0b;background:#fef3c7}.status.cancelled,.status.inactive{color:#a51d2d;background:#ffe4e6}.page-error{margin-top:14px}.attendance-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:14px;margin-bottom:16px;background:#f8f8fb;border-radius:11px;color:#77738e;font-size:13px}.attendance-toolbar label{width:190px}.attendance-toolbar b{color:#292552}.attendance-list{display:grid;gap:8px}.attendance-row{display:grid;grid-template-columns:minmax(220px,1fr) 150px minmax(180px,1fr) 110px;gap:10px;align-items:center;padding:11px;border:1px solid #e8e8f0;border-radius:11px}.student-identity{display:flex;gap:10px;align-items:center;min-width:0}.student-identity>span{width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;color:#3020a7;background:#e8e8ff;border-radius:10px;font-weight:850}.student-identity small{display:block;color:#858198;margin-top:2px}.attendance-row>button{height:39px;border:0;color:#4338ca;background:#e8e8ff;border-radius:9px;display:inline-flex;justify-content:center;align-items:center;gap:6px;cursor:pointer;font-size:12px;font-weight:800}.attendance-row>button.saved{color:#087a59;background:#dcfce7}.attendance-row>button:disabled{opacity:.6}.attendance-row>button svg{width:15px}.audit-timeline{position:relative;margin:8px 0 0 8px}.audit-timeline:before{content:"";position:absolute;left:6px;top:10px;bottom:10px;width:2px;background:#e5e5ef}.audit-timeline article{position:relative;display:grid;grid-template-columns:14px 1fr;gap:14px;padding-bottom:16px}.audit-dot{position:relative;z-index:1;width:14px;height:14px;margin-top:3px;border:3px solid white;border-radius:50%;background:#5145d8;box-shadow:0 0 0 2px #c9c6f4}.audit-content{padding:13px 15px;border:1px solid #e8e8f0;border-radius:11px;background:#fcfcfe}.audit-content>div:first-child{display:flex;justify-content:space-between;gap:15px}.audit-content span,.audit-content p{color:#858198;font-size:12px}.audit-content p{margin-top:5px}.audit-content details{margin-top:9px}.audit-content summary{color:#4338ca;font-size:11px;cursor:pointer}.audit-content pre{max-width:100%;overflow-x:auto;padding:10px;color:#34304e;background:#f0f0f6;border-radius:7px;font-size:10px}.student-shell{--student-primary: #5b35d5;--student-accent: #06b6c9;min-height:100vh;color:#20203f;background:#f4f7fb}.student-sidebar{position:fixed;z-index:30;inset:0 auto 0 0;width:252px;padding:24px 14px;display:flex;flex-direction:column;color:#eefcff;background:linear-gradient(170deg,#151634,color-mix(in srgb,var(--student-primary) 60%,#10142e))}.student-brand{display:flex;gap:11px;align-items:center;min-width:0;padding:3px 9px 29px}.student-brand>span{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border-radius:12px;color:#fff;background:linear-gradient(135deg,var(--student-primary),var(--student-accent));font-weight:900}.student-brand b,.student-brand small{display:block}.student-brand small{max-width:165px;margin-top:3px;overflow:hidden;color:#b9c6df;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.student-sidebar nav{display:grid;gap:5px}.student-nav{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:11px;color:#cbd4e9;font-size:14px;font-weight:650;text-decoration:none}.student-nav:hover,.student-nav.active{color:#fff;background:color-mix(in srgb,var(--student-primary) 78%,white 4%)}.student-user{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;margin-top:auto;padding:18px 6px 3px;border-top:1px solid #ffffff1c;font-size:12px}.student-user b,.student-user small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-user small{margin-top:3px;color:#aebbd3}.student-user button{display:grid;place-items:center;padding:7px;border:0;border-radius:8px;color:#cbd4e9;background:transparent;cursor:pointer}.student-user button:hover{color:#fff;background:#ffffff12}.student-avatar{display:grid;place-items:center;width:37px;height:37px;border-radius:12px;color:#111a31;background:#81edf3;font-weight:900}.student-workspace{min-width:0;min-height:100vh;margin-left:252px;padding:27px clamp(22px,4vw,55px) 55px}.student-topbar{display:flex;align-items:center;gap:14px;max-width:1240px;margin:0 auto 25px}.student-topbar>div{min-width:0}.student-topbar p{overflow:hidden;color:#70748e;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap}.student-topbar h1{margin-top:3px;overflow:hidden;font-size:20px;letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap}.child-selector{display:flex;align-items:center;gap:9px;margin-left:auto;color:#70748e;font-size:11px;font-weight:800;text-transform:uppercase}.child-selector select{min-width:180px;max-width:260px;padding:9px 34px 9px 11px;border:1px solid #dfe4ed;border-radius:10px;color:#20203f;background:#fff;font-size:13px;font-weight:700;text-transform:none}.child-selector+.student-status{margin-left:0}.student-menu{display:none;place-items:center;flex:0 0 auto;width:42px;height:42px;border:1px solid #dfe4ed;border-radius:11px;color:var(--student-primary);background:#fff;cursor:pointer}.student-status{margin-left:auto;padding:6px 10px;border-radius:99px;color:#087a59;background:#dff8eb;font-size:10px;font-weight:900;text-transform:uppercase}.student-page{max-width:1240px;margin:auto}.student-hero{position:relative;min-height:190px;padding:34px clamp(25px,4vw,46px);overflow:hidden;display:flex;align-items:center;justify-content:space-between;border-radius:23px;color:#fff;background:linear-gradient(118deg,color-mix(in srgb,var(--student-primary) 86%,#151438),var(--student-primary) 58%,var(--student-accent));box-shadow:0 20px 48px color-mix(in srgb,var(--student-primary) 18%,transparent)}.student-hero:after{content:"";position:absolute;right:-50px;bottom:-100px;width:260px;height:260px;border:1px solid #ffffff20;border-radius:50%;box-shadow:0 0 0 45px #ffffff0a,0 0 0 90px #ffffff08}.student-hero>div:first-child{position:relative;z-index:1}.student-kicker{margin-bottom:7px;color:color-mix(in srgb,var(--student-accent) 55%,white);font-size:10px;font-weight:900;letter-spacing:.12em}.student-hero h2{margin-bottom:9px;font-size:clamp(28px,4vw,41px);letter-spacing:-.04em}.student-hero p:last-child{max-width:610px;color:#eef1ff;line-height:1.55}.hero-orbit{position:relative;z-index:1;display:grid;place-items:center;flex:0 0 auto;width:92px;height:92px;border:1px solid #ffffff30;border-radius:50%;background:#ffffff14;transform:rotate(-7deg)}.hero-orbit svg{width:42px;height:42px}.student-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-top:18px}.student-metric{min-width:0;padding:19px;border:1px solid #e3e8f0;border-radius:17px;color:inherit;background:#fff;text-decoration:none;transition:transform .2s,box-shadow .2s}.student-metric:hover{transform:translateY(-2px);box-shadow:0 14px 30px #252a4c12}.student-metric>div{display:grid;place-items:center;width:38px;height:38px;margin-bottom:18px;border-radius:11px;color:var(--student-primary);background:color-mix(in srgb,var(--student-primary) 10%,white)}.student-metric p{color:#70748e;font-size:12px;font-weight:700}.student-metric strong{display:block;margin:7px 0 4px;overflow:hidden;font-size:29px;letter-spacing:-.04em;text-overflow:ellipsis;white-space:nowrap}.student-metric strong.compact{font-size:18px;line-height:35px}.student-metric span{display:block;overflow:hidden;color:#9296aa;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.student-inline-error{display:flex;align-items:center;gap:8px;margin-top:15px;padding:11px 13px;border:1px solid #fecdd3;border-radius:11px;color:#a51d2d;background:#fff1f2;font-size:12px}.student-inline-error svg{width:17px}.student-module{min-height:520px;padding:27px;border:1px solid #e3e8f0;border-radius:19px;background:#fff}.student-module>header{display:flex;align-items:center;gap:14px;padding-bottom:23px;border-bottom:1px solid #edf0f4}.student-module>header h2{margin-bottom:4px;font-size:28px;letter-spacing:-.035em}.student-module>header p:last-child{color:#757a91;font-size:13px;line-height:1.45}.page-title-icon{display:grid;place-items:center;flex:0 0 auto;width:48px;height:48px;border-radius:14px;color:var(--student-primary);background:color-mix(in srgb,var(--student-primary) 10%,white)}.student-state{min-height:330px;display:grid;place-content:center;justify-items:center;gap:10px;color:#7c8197;text-align:center}.student-state>svg{width:38px;height:38px;color:var(--student-primary)}.student-state h3{color:#292b4d}.student-state.error>svg{color:#c22b3e}.student-state button{padding:9px 14px;border:0;border-radius:9px;color:#fff;background:var(--student-primary);font-weight:800;cursor:pointer}.attendance-summary{display:grid;grid-template-columns:1.35fr repeat(4,1fr);gap:11px;margin:22px 0}.attendance-summary>div{min-width:0;padding:18px;border-radius:14px;background:#f6f8fb}.attendance-summary>div:first-child{color:#fff;background:linear-gradient(130deg,var(--student-primary),color-mix(in srgb,var(--student-primary) 60%,var(--student-accent)))}.attendance-summary strong,.attendance-summary span{display:block}.attendance-summary strong{margin-bottom:5px;font-size:27px}.attendance-summary span{color:#777c91;font-size:11px}.attendance-summary>div:first-child span{color:#eef0ff}.attendance-count{border-left:3px solid #9aa0b5}.attendance-count.success{border-color:#16a878}.attendance-count.warning{border-color:#e3a61d}.attendance-count.danger{border-color:#d74a5b}.attendance-count.info{border-color:#2c9fca}.student-table-wrap{margin-top:22px;overflow-x:auto;border:1px solid #e5e9ef;border-radius:13px}.student-table-wrap th{background:#f7f9fb}.student-table-wrap td{color:#52566d}.grades-table th:not(:first-child),.grades-table td:not(:first-child){text-align:center}.grades-table td:last-child strong{display:inline-grid;place-items:center;min-width:42px;min-height:32px;border-radius:9px;color:var(--student-primary);background:color-mix(in srgb,var(--student-primary) 9%,white)}.student-pill,.priority,.new-label{display:inline-flex;padding:5px 8px;border-radius:99px;color:#5e6478;background:#eef0f4;font-size:10px;font-weight:850;text-transform:capitalize}.student-pill.present,.student-pill.completed,.student-pill.submitted,.student-pill.graded{color:#087a59;background:#dcfce7}.student-pill.late,.student-pill.pending{color:#8a5b0b;background:#fef3c7}.student-pill.absent{color:#a51d2d;background:#ffe4e6}.student-pill.excused{color:#17698a;background:#e0f2fe}.subject-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px}.subject-card{min-width:0;padding:20px;border:1px solid #e5e9ef;border-radius:15px}.subject-card>div,.list-icon{display:grid;place-items:center;width:38px;height:38px;margin-bottom:16px;border-radius:10px;color:var(--student-primary);background:color-mix(in srgb,var(--student-primary) 9%,white)}.subject-card h3{margin-bottom:13px;overflow-wrap:anywhere}.subject-card p{display:flex;align-items:center;gap:7px;margin-top:8px;color:#73788e;font-size:12px}.student-list{display:grid;gap:10px;margin-top:22px}.assignment-with-files{border:1px solid #e5e9ef;border-radius:13px;overflow:hidden}.student-list .assignment-with-files>article{border:0;border-radius:0}.student-assignment-files{padding:0 15px 13px 67px}.student-assignment-files>button{border:0;color:var(--student-primary);background:transparent;font-size:12px;font-weight:800;cursor:pointer}.student-assignment-files .file-list{margin-top:10px}.student-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:15px;border:1px solid #e5e9ef;border-radius:13px}.student-list .list-icon{margin:0}.assignment-actions{display:grid;justify-items:end;gap:8px}.assignment-actions a{color:var(--student-primary);font-size:12px;font-weight:800}.list-copy{min-width:0}.list-copy p{color:var(--student-primary);font-size:10px;font-weight:850;text-transform:uppercase}.list-copy h3{margin:3px 0 6px;overflow-wrap:anywhere;font-size:15px}.list-copy span{display:flex;align-items:center;gap:6px;color:#777c91;font-size:11px}.announcement-list{display:grid;gap:12px;margin-top:22px}.announcement-list article{padding:18px 19px;border:1px solid #e4e8ef;border-radius:14px}.announcement-list article.unread{border-left:4px solid var(--student-primary);background:color-mix(in srgb,var(--student-primary) 3%,white)}.announcement-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:11px}.announcement-top>div{display:flex;gap:6px}.announcement-top time{color:#83879a;font-size:11px}.priority.high,.priority.alta{color:#a51d2d;background:#ffe4e6}.priority.medium,.priority.media{color:#8a5b0b;background:#fef3c7}.new-label{color:var(--student-primary);background:color-mix(in srgb,var(--student-primary) 10%,white)}.announcement-list h3{font-size:16px}.announcement-list p{margin-top:8px;color:#666b80;font-size:13px;line-height:1.6;white-space:pre-line}.portal-toolbar,.portal-inline-form{display:flex;align-items:end;gap:12px;margin:22px 0;padding:15px;border-radius:13px;background:#f6f8fb}.portal-toolbar label,.portal-inline-form label{min-width:150px;flex:1}.portal-toolbar select,.portal-inline-form select{width:100%;padding:11px 12px;border:1px solid #dcdfea;border-radius:10px;color:#20203f;background:#fff}.portal-inline-form .primary{min-height:42px}.portal-choice{display:grid;gap:7px;padding:19px;text-align:left;border:1px solid #e3e8f0;border-radius:15px;color:#292b4d;background:#fff;cursor:pointer}.portal-choice:hover,.portal-choice.active{border-color:var(--student-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--student-primary) 10%,transparent)}.portal-choice span,.portal-choice small{color:#777c91}.portal-save{margin-top:18px}.portal-success{display:flex;align-items:center;gap:8px;margin-top:14px;padding:11px 13px;border-radius:10px;color:#087a59;background:#dcfce7;font-size:13px}.portal-success svg{width:18px}.grade-entry{display:grid;grid-template-columns:1fr 130px;align-items:center;gap:15px;padding:12px 14px;border-bottom:1px solid #eceff4}.grade-entry span,.grade-entry small{display:block}.grade-entry small{margin-top:3px;color:#858198}.child-banner{display:flex;align-items:center;gap:13px;margin-top:18px;padding:16px 18px;border:1px solid #e3e8f0;border-radius:15px;background:#fff}.child-banner>div:nth-child(2){display:grid;gap:3px}.child-banner span{color:#777c91;font-size:12px}.child-banner code{margin-left:auto}.portal-back{display:inline-flex;align-items:center;gap:6px;margin-bottom:16px;color:var(--student-primary);font-size:13px;font-weight:800;text-decoration:none}.assignment-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:22px 0 28px}.assignment-summary>div{display:grid;gap:6px;padding:15px;border-radius:12px;background:#f6f8fb}.assignment-summary span{color:#777c91;font-size:11px}.assignment-summary strong{font-size:14px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:13px;border-bottom:1px solid #edf0f4}.section-heading h3{margin-bottom:4px;font-size:20px}.section-heading p{color:#777c91;font-size:12px}.section-heading>strong{display:grid;place-items:center;min-width:38px;height:38px;border-radius:11px;color:var(--student-primary);background:color-mix(in srgb,var(--student-primary) 10%,white)}.submission-list{display:grid;gap:14px;margin-top:16px}.submission-card{padding:18px;border:1px solid #e3e8f0;border-radius:14px}.submission-student{display:flex;align-items:center;gap:11px}.submission-student>div:nth-child(2){min-width:0}.submission-student h4{overflow-wrap:anywhere;font-size:15px}.submission-student span{color:#777c91;font-size:11px}.submission-student>.student-pill{margin-left:auto}.submission-content{margin:14px 0;padding:11px 13px;border-radius:10px;color:#5d6277;background:#f7f9fb;font-size:13px;line-height:1.5;white-space:pre-line}.grade-fields{display:grid;grid-template-columns:minmax(150px,.35fr) 1fr;gap:12px;margin-top:15px}.grade-fields label{display:grid;align-content:start;gap:7px;color:#454960;font-size:12px;font-weight:750}.grade-fields input,.grade-fields textarea{width:100%;padding:10px 11px;border:1px solid #dcdfea;border-radius:9px;color:#20203f;background:#fff;font:inherit}.grade-fields textarea{resize:vertical}.grade-fields input[aria-invalid=true]{border-color:#d74a5b}.submission-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:13px}.submission-footer>span{color:#85899c;font-size:11px}.fee-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.fee-summary>div{padding:17px;border:1px solid #e5e9ef;border-radius:13px;background:#f8fafc}.fee-summary span,.fee-summary strong{display:block}.fee-summary span{color:#777c91;font-size:11px}.fee-summary strong{margin-top:7px;font-size:20px}.fee-action-card{max-width:700px;padding:22px;border:1px solid #e5e9ef;border-radius:15px;background:#fafbfe}.fee-action-card>svg{color:#4338ca}.fee-action-card h3{margin-bottom:5px}.fee-action-card>div>p{color:#777c91;font-size:13px;line-height:1.5}.fee-action-card select{width:100%;padding:11px 12px;border:1px solid #dcddea;border-radius:10px;background:#fff}.payment-placeholder{display:flex;align-items:center;gap:14px;margin-top:20px;padding:17px;border:1px dashed #b9c5d5;border-radius:14px;background:#f8fafc}.payment-placeholder>svg{color:var(--student-primary)}.payment-placeholder div{flex:1}.payment-placeholder p{margin-top:4px;color:#777c91;font-size:12px}.payment-placeholder button{padding:10px 13px;border:0;border-radius:9px;color:#777c91;background:#e8ebf0}.student-pill.paid{color:#087a59;background:#dcfce7}.student-pill.partial{color:#17698a;background:#e0f2fe}.student-pill.overdue{color:#a51d2d;background:#ffe4e6}.student-pill.waived{color:#5e6478;background:#eef0f4}.landing-page{--ink: #1b1e3f;--muted: #6f7392;--lime: #27d8e8;--cyan: #967af5;--purple: #3423ad;color:var(--ink);overflow:hidden;background:#f5f6fe}.landing-scroll-progress{position:fixed;z-index:100;top:0;left:0;height:3px;background:linear-gradient(90deg,#3423ad,#01d2de);box-shadow:0 0 12px #01d2de66;transition:width .08s linear}.landing-page h1,.landing-page h2,.landing-page h3{text-wrap:balance}.landing-nav{position:sticky;z-index:60;top:0;width:100%;height:78px;margin:auto;padding:0 max(20px,calc((100% - 1220px)/2));display:flex;align-items:center;gap:42px;border-bottom:1px solid #e7e9f8;background:#ffffffdf;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.landing-brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;font-size:17px;font-weight:750;line-height:1}.landing-brand>img{width:43px;height:43px;object-fit:contain;filter:drop-shadow(0 8px 14px #3423ad22)}.landing-brand b{color:var(--purple)}.landing-brand small{display:block;margin-top:5px;color:#7c8496;font-size:9px;font-weight:700;letter-spacing:.045em}.landing-nav nav{display:flex;align-items:center;gap:29px;margin-left:auto}.landing-nav nav a{position:relative;color:#4d566b;text-decoration:none;font-size:13px;font-weight:750}.landing-nav nav a:after{content:"";position:absolute;right:0;bottom:-7px;left:0;height:2px;background:linear-gradient(90deg,#3423ad,#01d2de);transform:scaleX(0);transition:transform .2s}.landing-nav nav a:hover:after{transform:scaleX(1)}.landing-login{display:inline-flex;align-items:center;gap:8px;padding:11px 15px;border:1px solid #d7dcd5;border-radius:11px;color:var(--ink);background:#fff;text-decoration:none;font-size:13px;font-weight:850;box-shadow:0 6px 20px #1d29400b;transition:transform .2s,box-shadow .2s}.landing-login:hover{transform:translateY(-2px);box-shadow:0 12px 28px #1d294015}.landing-hero{position:relative;width:min(100% - 40px,1320px);min-height:675px;margin:20px auto 0;padding:clamp(66px,8vw,108px) clamp(26px,6vw,80px);display:grid;grid-template-columns:minmax(0,.88fr) minmax(500px,1.12fr);align-items:center;gap:clamp(35px,5vw,70px);overflow:hidden;border-radius:34px;color:#f7fbff;background:radial-gradient(circle at 80% 15%,#27d8e82e,transparent 25%),radial-gradient(circle at 12% 100%,#967af52d,transparent 30%),linear-gradient(135deg,#171a3a,#2c207f 54%,#3423ad 78%,#166f8b 120%)}.landing-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.24;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(to right,black,transparent 85%);mask-image:linear-gradient(to right,black,transparent 85%)}.landing-hero-copy{position:relative;z-index:2;min-width:0}.landing-kicker{width:fit-content;max-width:100%;display:flex;align-items:center;gap:8px;margin-bottom:20px;padding:7px 10px;border:1px solid #ffffff28;border-radius:99px;color:#d7d2ff;background:#ffffff10;font-size:10px;font-weight:850;letter-spacing:.06em;line-height:1.35;text-transform:uppercase}.landing-hero h1{max-width:690px;font-size:clamp(45px,6vw,77px);line-height:.99;letter-spacing:-.057em}.landing-hero h1 em{color:var(--lime);font-style:normal}.landing-hero-copy>p{max-width:650px;margin-top:24px;color:#c9d2df;font-size:16px;line-height:1.72}.landing-actions{display:flex;align-items:center;gap:13px;margin-top:31px}.landing-primary,.landing-secondary{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:12px;text-decoration:none;font-size:13px;font-weight:850;transition:transform .2s,background .2s}.landing-primary{padding:14px 18px;color:#3423ad;background:#fff;box-shadow:0 12px 35px #090b2440}.landing-primary:hover{background:#eef7ff;transform:translateY(-2px)}.landing-secondary{padding:13px 4px;color:#eaf1f6}.landing-secondary:hover{color:var(--cyan);transform:translate(2px)}.landing-trust{display:flex;align-items:center;gap:8px;margin-top:30px;color:#919daf;font-size:11px;line-height:1.5}.landing-trust svg{flex:0 0 auto;color:#7ce7de}.access-demo{position:relative;z-index:2;min-width:0;overflow:hidden;border:1px solid #ffffff1f;border-radius:22px;background:#f7fafc;box-shadow:0 36px 85px #050b1c70;transform:perspective(1300px) rotateY(-2deg) rotateX(1deg)}.demo-window-bar{min-height:41px;padding:0 13px;display:flex;align-items:center;gap:6px;color:#7b8495;background:#e9eef2;font-size:9px;font-weight:750}.demo-window-bar>span{width:7px;height:7px;border-radius:50%;background:#ff8a86}.demo-window-bar>span:nth-child(2){background:#f5c65d}.demo-window-bar>span:nth-child(3){background:#67d49b}.demo-window-bar p{margin-left:7px;color:#4f5b6d}.demo-window-bar>div{display:flex;align-items:center;gap:4px;margin-left:auto;color:#16816f}.demo-content{min-width:0;padding:17px;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(170px,.88fr);gap:13px;color:#172036;background:linear-gradient(145deg,#f9fbfc,#eef2f5)}.reader-card,.phone-notification,.live-summary{border:1px solid #e2e7ea;border-radius:14px;background:#fff;box-shadow:0 9px 25px #26384b0b}.reader-card{position:relative;min-width:0;padding:14px;overflow:hidden}.reader-card:after{content:"";position:absolute;z-index:5;right:0;left:0;top:-10%;height:2px;background:var(--cyan);box-shadow:0 0 18px 5px #43d5dc7a;opacity:0}.reader-card.scanning:after{opacity:1;animation:reader-scan .7s ease-in-out}@keyframes reader-scan{0%{top:7%}to{top:83%}}.reader-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;color:#8a93a2;font-size:10px;font-weight:850;letter-spacing:.08em}.reader-top>div{display:flex;align-items:center;gap:6px;color:#087f8a}.reader-top small{font-size:9px}.student-card{width:100%;padding:13px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid #dfe8e7;border-radius:12px;color:#172036;background:linear-gradient(125deg,#f6ffed,#eafafa);text-align:left;cursor:pointer;transition:transform .2s}.student-card:hover:not(:disabled){transform:translateY(-1px)}.student-card:disabled{cursor:wait}.student-photo{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;color:#fff;background:linear-gradient(140deg,#263154,#168e98);font-size:11px;font-weight:900}.student-card small,.student-card b,.student-card em{display:block}.student-card small{color:#13929b;font-size:8px;font-weight:900;letter-spacing:.12em}.student-card b{margin:4px 0;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.student-card em{color:#758090;font-size:10px;font-style:normal}.student-card>svg{color:#37adb5}.reader-status{display:flex;align-items:center;gap:9px;margin-top:13px;padding:11px;border-radius:11px;background:#ecfbf3}.reader-status>span{width:27px;height:27px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;color:#fff;background:#16a877}.reader-status b,.reader-status small{display:block}.reader-status b{color:#107557;font-size:11px}.reader-status small{margin-top:2px;color:#6c897e;font-size:9px}.demo-trigger{width:100%;margin-top:10px;padding:8px;display:flex;align-items:center;justify-content:center;gap:5px;border:1px solid #dce4e5;border-radius:9px;color:#267e86;background:#fff;cursor:pointer;font-size:10px;font-weight:850}.demo-trigger:disabled{opacity:.6}.demo-side{min-width:0;display:grid;align-content:start;gap:11px}.phone-notification{padding:10px;background:#172036}.phone-top{display:flex;justify-content:space-between;color:#d6dfeb;font-size:9px}.notification-bubble{margin-top:9px;padding:10px;display:grid;grid-template-columns:auto 1fr;gap:8px;border-radius:10px;color:#172036;background:#f8fbfc}.notification-bubble>span{width:29px;height:29px;display:grid;place-items:center;border-radius:8px;color:#17343b;background:var(--lime)}.notification-bubble b{font-size:10px}.notification-bubble small{float:right;color:#98a0ad;font-size:8px}.notification-bubble p{margin-top:4px;color:#596474;font-size:10px;line-height:1.4}.live-summary{padding:13px}.live-summary>div:first-child{display:flex;align-items:center;gap:6px;color:#647083;font-size:10px;font-weight:800}.live-summary>div:first-child svg{color:#168e98}.live-summary strong{display:block;margin:13px 0 8px;font-size:22px;letter-spacing:-.04em}.live-summary strong small{color:#8a93a2;font-size:9px;font-weight:650}.summary-track{height:5px;overflow:hidden;border-radius:9px;background:#e7ecef}.summary-track span{display:block;width:94%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#65cd9c,#35c6ce)}.live-summary>p{margin-top:8px;color:#8a93a2;font-size:9px;line-height:1.4}.landing-signal{width:min(100% - 40px,1160px);margin:27px auto 0;padding:25px 0;display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #e2e4f4}.landing-signal>div{padding:0 25px;border-right:1px solid #e2e4f4}.landing-signal>div:last-child{border:0}.landing-signal strong,.landing-signal span{display:block}.landing-signal strong{color:#3423ad;font-size:20px;letter-spacing:-.03em}.landing-signal span{margin-top:5px;color:#727b88;font-size:10px;line-height:1.45}.landing-section{width:min(100% - 40px,1160px);margin:0 auto;padding:clamp(90px,11vw,145px) 0}.section-intro{max-width:760px;margin:0 auto 48px;text-align:center}.section-intro.left{max-width:650px;margin-left:0;text-align:left}.section-intro>p,.landing-cta>div>p{margin-bottom:12px;color:#3423ad;font-size:10px;font-weight:900;letter-spacing:.12em}.section-intro h2{font-size:clamp(34px,5vw,54px);line-height:1.08;letter-spacing:-.048em}.section-intro>span{display:block;max-width:650px;margin:18px auto 0;color:var(--muted);font-size:15px;line-height:1.7}.section-intro.left>span{margin-left:0}.flow-grid{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.flow-grid:before{content:"";position:absolute;top:47px;right:17%;left:17%;border-top:1px dashed #8bc9c5}.flow-grid article{position:relative;padding:25px;border:1px solid #dfe4dc;border-radius:18px;background:#fff;box-shadow:0 15px 45px #21314b0a}.flow-grid article>span{position:absolute;top:20px;right:22px;color:#c1c8c4;font-size:11px;font-weight:900}.flow-grid article>div{position:relative;z-index:1;width:47px;height:47px;display:grid;place-items:center;margin-bottom:35px;border-radius:14px;color:#0c7b84;background:#dff7f3;box-shadow:0 0 0 7px #fff}.flow-grid article:nth-child(2)>div{color:#718f19;background:#eff9d5}.flow-grid article:nth-child(3)>div{color:#4e47b2;background:#ecebff}.flow-grid h3{margin-bottom:10px;font-size:19px;letter-spacing:-.025em}.flow-grid p{color:var(--muted);font-size:12px;line-height:1.65}.platform-section{width:100%;max-width:none;padding-right:max(20px,calc((100% - 1160px)/2));padding-left:max(20px,calc((100% - 1160px)/2));background:#eff1ff}.platform-bento{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:15px}.platform-bento article{padding:25px;border:1px solid #e2e4f4;border-radius:19px;background:#fff}.platform-bento .bento-main{grid-row:span 2;padding:30px;color:#fff;background:linear-gradient(145deg,#171a3a,#3423ad)}.platform-bento .bento-wide{grid-column:2 / 4;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px}.bento-icon{width:43px;height:43px;display:grid;place-items:center;margin-bottom:28px;border-radius:12px;color:#171a3a;background:var(--lime)}.bento-icon.mint{color:#3423ad;background:#ece9ff}.bento-icon.amber{color:#176f78;background:#dcfbff}.bento-icon.blue{margin:0;color:#4e47b2;background:#e8e7ff}.platform-bento article>span,.bento-wide>div>span{color:#3423ad;font-size:9px;font-weight:900;letter-spacing:.12em}.bento-main>span{color:#8feff7!important}.platform-bento h3{margin:9px 0 10px;font-size:20px;line-height:1.25;letter-spacing:-.025em}.bento-main h3{max-width:440px;font-size:29px}.platform-bento p{color:#717a88;font-size:12px;line-height:1.65}.bento-main p{color:#d4d4f3}.mini-dashboard{margin-top:35px;padding:17px;border:1px solid #ffffff17;border-radius:14px;background:#ffffff0c}.mini-dashboard>div:first-child{display:flex;justify-content:space-between;color:#cbd5df;font-size:9px}.mini-dashboard b{color:var(--lime);font-size:17px}.bar-chart{height:80px;display:flex;align-items:end;justify-content:space-around;gap:8px;padding-top:13px;border-bottom:1px solid #ffffff16}.bar-chart i{width:11%;height:66%;border-radius:5px 5px 0 0;background:#35c4cc}.bar-chart i:nth-child(2){height:82%}.bar-chart i:nth-child(3){height:55%}.bar-chart i:nth-child(4){height:90%;background:var(--lime)}.bar-chart i:nth-child(5){height:72%}.mini-dashboard>small{display:block;margin-top:7px;color:#8491a1;font-size:7px;text-align:center;word-spacing:12px}.security-stack{display:grid;gap:7px}.security-stack i{display:flex;align-items:center;gap:5px;padding:7px 9px;border-radius:8px;color:#4c5665;background:#eef1ec;font-size:9px;font-style:normal;font-weight:800}.security-stack svg{color:#168b73}.audience-tabs{width:fit-content;margin:0 auto 24px;padding:5px;display:flex;gap:4px;border:1px solid #e0e4dd;border-radius:13px;background:#eef1ec}.audience-tabs button{display:flex;align-items:center;gap:7px;padding:10px 15px;border:0;border-radius:9px;color:#6f7884;background:transparent;cursor:pointer;font-size:11px;font-weight:850}.audience-tabs button.active{color:#102034;background:#fff;box-shadow:0 5px 16px #20314a12}.audience-panel{min-height:405px;padding:clamp(28px,5vw,54px);display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:clamp(35px,7vw,90px);overflow:hidden;border-radius:25px;color:#fff;background:linear-gradient(140deg,#171a3a,#3423ad 72%,#2563a8)}.audience-panel>div:first-child>p{color:#83edf5;font-size:9px;font-weight:900;letter-spacing:.12em}.audience-panel h3{margin:12px 0 14px;font-size:clamp(27px,4vw,39px);line-height:1.12;letter-spacing:-.04em}.audience-panel>div:first-child>span{color:#d3d3ef;font-size:13px;line-height:1.65}.audience-panel ul{margin:23px 0 0;padding:0;display:grid;gap:10px;list-style:none}.audience-panel li{display:flex;align-items:center;gap:8px;color:#f0efff;font-size:11px}.audience-panel li svg{padding:2px;border-radius:50%;color:#171a3a;background:var(--lime)}.audience-visual{position:relative;min-height:290px;display:grid;place-items:center}.audience-visual:before,.audience-visual:after{content:"";position:absolute;border-radius:50%;background:#43d5dc23}.audience-visual:before{width:260px;height:260px}.audience-visual:after{width:360px;height:360px;border:1px solid #ffffff12;background:transparent}.audience-visual.teachers:before{background:#c9f25d21}.audience-visual.families:before{background:#f5c65d21}.audience-visual.students:before{background:#8b80ff24}.visual-window{position:relative;z-index:1;width:min(100%,440px);min-height:245px;display:grid;grid-template-columns:58px 1fr;overflow:hidden;border:1px solid #ffffff22;border-radius:16px;background:#f7f9fa;box-shadow:0 28px 70px #050a187d;transform:rotate(1deg)}.visual-sidebar{padding:13px;display:flex;flex-direction:column;align-items:center;gap:13px;background:#171a3a}.visual-sidebar img{width:30px;height:30px;object-fit:contain}.visual-sidebar i{width:22px;height:5px;border-radius:7px;background:#ffffff25}.visual-workspace{padding:24px}.visual-workspace small,.visual-workspace b{display:block}.visual-workspace small{color:#3423ad;font-size:7px;font-weight:900;letter-spacing:.1em}.visual-workspace b{margin-top:7px;color:#172036;font-size:18px}.visual-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:18px}.visual-cards i{height:50px;border-radius:8px;background:#e7fbff}.visual-cards i:nth-child(2){background:#ece9ff}.visual-cards i:nth-child(3){background:#f2eaff}.visual-lines{margin-top:15px;padding:12px;display:grid;gap:7px;border-radius:9px;background:#fff}.visual-lines i{height:5px;border-radius:5px;background:#e4e8e9}.visual-lines i:nth-child(2){width:78%}.visual-lines i:nth-child(3){width:89%}.visual-lines i:nth-child(4){width:62%}.landing-cta{width:min(100% - 40px,1160px);margin:20px auto 80px;padding:clamp(35px,6vw,63px);display:flex;align-items:center;justify-content:space-between;gap:35px;overflow:hidden;border-radius:25px;color:#fff;background:radial-gradient(circle at 90% 0%,#27d8e83b,transparent 35%),linear-gradient(130deg,#171a3a,#3423ad)}.landing-cta>div{max-width:730px}.landing-cta h2{font-size:clamp(30px,4vw,45px);line-height:1.1;letter-spacing:-.045em}.landing-cta span{display:block;margin-top:13px;color:#d5d4f0;font-size:13px;line-height:1.6}.landing-cta>a{flex:0 0 auto;padding:14px 18px;display:inline-flex;align-items:center;gap:8px;border-radius:12px;color:#3423ad;background:#fff;text-decoration:none;font-size:12px;font-weight:900}.landing-footer{width:min(100% - 40px,1160px);min-height:105px;margin:auto;display:flex;align-items:center;gap:30px;border-top:1px solid #dfe3da}.landing-footer>p{margin-left:auto;color:#737c88;font-size:11px}.landing-footer>span{color:#92999f;font-size:10px}.auth-home-link{width:fit-content;margin-bottom:24px;display:inline-flex;align-items:center;gap:6px;color:#5f5a78;text-decoration:none;font-size:12px;font-weight:750}.auth-home-link:hover{color:#3929bd}[data-reveal]{opacity:0;transform:translateY(32px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}[data-reveal].revealed{opacity:1;transform:translateY(0)}.connected-story{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(390px,.96fr);align-items:center;gap:clamp(45px,8vw,95px)}.story-visual{position:relative;min-width:0}.story-visual>img{width:100%;display:block;border-radius:30px;filter:drop-shadow(0 26px 50px #3423ad1c)}.story-float{position:absolute;min-width:170px;padding:11px 13px;display:flex;align-items:center;gap:9px;border:1px solid #e4e5f7;border-radius:13px;color:#3423ad;background:#fffffff0;box-shadow:0 15px 38px #25204f1c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:story-float 4s ease-in-out infinite}.story-float.family{right:-18px;top:19%}.story-float.school{left:-18px;bottom:13%;animation-delay:-2s}.story-float svg{flex:0 0 auto}.story-float b,.story-float small{display:block}.story-float b{color:#1b1e3f;font-size:10px}.story-float small{margin-top:3px;color:#7b7f9b;font-size:8px}@keyframes story-float{50%{transform:translateY(-8px)}}.story-eyebrow{margin-bottom:12px;color:#3423ad;font-size:10px;font-weight:900;letter-spacing:.12em}.story-copy h2{font-size:clamp(34px,4.5vw,52px);line-height:1.08;letter-spacing:-.048em}.story-copy>span{display:block;margin-top:18px;color:var(--muted);font-size:14px;line-height:1.7}.comparison-toggle{width:fit-content;margin:27px 0 14px;padding:5px;display:flex;gap:4px;border:1px solid #e2e4f4;border-radius:12px;background:#eef0fb}.comparison-toggle button{padding:9px 13px;border:0;border-radius:8px;color:#777b97;background:transparent;cursor:pointer;font-size:11px;font-weight:850}.comparison-toggle button.active{color:#3423ad;background:#fff;box-shadow:0 5px 15px #3423ad12}.comparison-card{min-height:235px;padding:22px;border:1px solid #e2e4f4;border-radius:17px;background:#fff;box-shadow:0 15px 40px #2c28630b;transition:border-color .25s,box-shadow .25s}.comparison-card.connected{border-color:#b8edf2;box-shadow:0 16px 42px #01d2de14}.comparison-card>div{display:flex;align-items:flex-start;gap:11px}.comparison-card>div>svg{flex:0 0 auto;padding:4px;border-radius:8px;color:#3423ad;background:#ebe9ff}.comparison-card.connected>div>svg{color:#087c88;background:#dcfbff}.comparison-card small,.comparison-card b{display:block}.comparison-card small{margin-bottom:4px;color:#967af5;font-size:8px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.comparison-card b{font-size:15px;line-height:1.35}.comparison-card>p{margin:13px 0 15px;color:#717590;font-size:11px;line-height:1.6}.comparison-card ul{margin:0;padding:0;display:grid;gap:8px;list-style:none}.comparison-card li{display:flex;align-items:center;gap:8px;color:#4d516e;font-size:10px;font-weight:700}.comparison-card li>span{width:20px;height:20px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;color:#a54a58;background:#fff0f2}.comparison-card.connected li>span{color:#087c88;background:#ddfafd}.landing-faq{padding-top:110px}.faq-list{max-width:870px;margin:auto;display:grid;gap:12px}.faq-list details{padding:20px 22px;border:1px solid #e2e4f4;border-radius:15px;background:#fff;box-shadow:0 10px 28px #2a275d08}.faq-list details[open]{border-color:#a89af0;box-shadow:0 15px 36px #3423ad10}.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:20px;color:#25284b;cursor:pointer;list-style:none;font-size:13px;font-weight:850}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:"+";width:28px;height:28px;display:grid;place-items:center;flex:0 0 auto;border-radius:8px;color:#3423ad;background:#eeecff;font-size:18px;transition:transform .2s}.faq-list details[open] summary:after{transform:rotate(45deg)}.faq-list details p{max-width:730px;margin-top:13px;color:#6f7392;font-size:12px;line-height:1.7}@media(prefers-reduced-motion:reduce){.reader-card.scanning:after{animation:none}.landing-page *,.landing-page *:before,.landing-page *:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}@media(max-width:980px){.metrics{grid-template-columns:1fr 1fr}.metrics .card:last-child{grid-column:span 2}.grid{grid-template-columns:1fr}.student-metrics,.subject-grid{grid-template-columns:1fr 1fr}.attendance-summary{grid-template-columns:1.35fr 1fr 1fr}.fee-summary{grid-template-columns:1fr 1fr}.landing-nav nav{display:none}.landing-hero{min-height:0;grid-template-columns:1fr}.landing-hero-copy{max-width:720px}.access-demo{width:min(100%,690px);margin:auto;transform:none}.landing-signal{grid-template-columns:1fr 1fr;row-gap:24px}.landing-signal>div:nth-child(2){border-right:0}.platform-bento{grid-template-columns:1fr 1fr}.platform-bento .bento-main{grid-column:1 / -1;grid-row:auto}.platform-bento .bento-wide{grid-column:1 / -1}.audience-panel{grid-template-columns:1fr}.audience-panel>div:first-child{max-width:650px}.audience-visual{min-height:270px}.connected-story{grid-template-columns:1fr}.story-visual{width:min(100%,720px);margin:auto}.story-copy{max-width:720px}}@media(max-width:800px){.auth-page{grid-template-columns:1fr}.auth-showcase{display:none}.auth-form-wrap{padding:30px 20px}.sidebar{transform:translate(-105%);transition:transform .24s ease;box-shadow:20px 0 55px #14113336}.sidebar.open{transform:translate(0)}.drawer-close{display:grid;position:absolute;right:10px;top:10px}.drawer-overlay{display:block;position:fixed;z-index:25;top:0;right:0;bottom:0;left:0;border:0;background:#16133770}.workspace{margin-left:0;padding:22px 20px 40px}.topbar{justify-content:flex-start;gap:13px}.topbar .notification-wrap{margin-left:auto}.menu{display:grid;place-items:center;flex:0 0 auto}.hero{align-items:flex-start;flex-direction:column;padding:25px}.hero .primary{width:100%}.management-page{padding:19px}.management-header{flex-direction:column}.management-header .compact-button{width:100%}.resource-tabs.scrollable{width:100%;overflow-x:auto}.attendance-row{grid-template-columns:1fr 130px}.attendance-row>input{grid-column:1 / -1}.student-sidebar{transform:translate(-105%);transition:transform .24s ease;box-shadow:20px 0 55px #14113336}.student-sidebar.open{transform:translate(0)}.student-workspace{margin-left:0;padding:20px 18px 38px}.student-menu{display:grid}.child-selector{margin-left:0}.landing-nav{height:72px}.landing-brand small{display:none}.landing-hero{width:calc(100% - 24px);max-width:calc(100vw - 24px);padding:55px 24px;border-radius:24px}.landing-hero h1{font-size:clamp(42px,10vw,66px)}.landing-hero-copy>p{font-size:14px}.flow-grid{grid-template-columns:1fr}.flow-grid:before{display:none}.flow-grid article>div{margin-bottom:23px}.audience-tabs{width:100%;overflow-x:auto;justify-content:flex-start}.audience-tabs button{flex:0 0 auto}.landing-cta{align-items:flex-start;flex-direction:column}.landing-cta>a{width:100%;justify-content:center}.landing-footer{padding:28px 0;align-items:flex-start;flex-direction:column;gap:15px}.landing-footer>p{margin-left:0}.story-float.family{right:10px}.story-float.school{left:10px}}@media(max-width:560px){.field-row,.metrics{grid-template-columns:1fr}.metrics .card:last-child{grid-column:auto}.topbar h1{font-size:20px}.hero h2{font-size:25px}.panel,.module-page{padding:19px}.details div{grid-template-columns:1fr;gap:4px}.module-heading{flex-direction:column}.resource-toolbar{align-items:stretch;flex-direction:column}.resource-toolbar .compact-button{width:100%}.attendance-toolbar{align-items:stretch;flex-direction:column}.attendance-toolbar label{width:100%}.attendance-row{grid-template-columns:1fr}.attendance-row>input{grid-column:auto}.audit-content>div:first-child{flex-direction:column;gap:4px}.student-status{display:none}.child-selector{min-width:0;margin-left:auto}.child-selector span{display:none}.child-selector select{min-width:0;max-width:155px}.student-hero{min-height:215px;padding:27px 22px}.hero-orbit{display:none}.student-metrics,.subject-grid,.attendance-summary{grid-template-columns:1fr}.student-module{padding:18px}.student-module>header{align-items:flex-start}.student-module>header h2{font-size:23px}.page-title-icon{width:42px;height:42px}.student-list article{grid-template-columns:auto minmax(0,1fr)}.student-list article>.student-pill{grid-column:2;justify-self:start}.announcement-top{align-items:flex-start;flex-direction:column;gap:8px}.portal-toolbar,.portal-inline-form{align-items:stretch;flex-direction:column}.portal-inline-form .primary{width:100%}.grade-entry{grid-template-columns:1fr 90px}.assignment-summary,.grade-fields,.fee-summary,.document-selector{grid-template-columns:1fr}.payment-placeholder{align-items:flex-start;flex-direction:column}.assignment-actions{grid-column:2;justify-items:start}.submission-footer{align-items:stretch;flex-direction:column}.submission-footer .primary{width:100%}.landing-nav{width:100%;padding-right:14px;padding-left:14px}.landing-login{padding:10px}.landing-login svg{display:none}.landing-actions{align-items:stretch;flex-direction:column}.landing-primary,.landing-secondary{width:100%}.landing-secondary{padding:10px}.demo-content,.demo-side{grid-template-columns:minmax(0,1fr)}.access-demo{border-radius:17px}.demo-window-bar>p{display:none}.landing-signal{grid-template-columns:1fr}.landing-signal>div{padding:0 8px 18px;border-right:0;border-bottom:1px solid #dfe3da}.landing-signal>div:last-child{border-bottom:0}.landing-section{width:calc(100% - 28px);padding:85px 0}.platform-section{width:100%;padding-right:14px;padding-left:14px}.platform-bento{grid-template-columns:1fr}.platform-bento .bento-main,.platform-bento .bento-wide{grid-column:auto}.platform-bento .bento-wide{grid-template-columns:1fr}.bento-icon.blue{margin-bottom:10px}.audience-tabs button{padding:9px 11px}.audience-panel{padding:27px 20px}.visual-window{min-height:215px;grid-template-columns:48px 1fr}.visual-workspace{padding:19px 15px}.landing-cta{width:calc(100% - 28px);margin-bottom:45px;padding:32px 23px}.landing-footer{width:calc(100% - 28px)}.story-float{position:static;min-width:0;margin-top:9px;animation:none}.connected-story{gap:35px}.comparison-toggle{width:100%}.comparison-toggle button{flex:1}.comparison-card{min-height:0}}
