@import"https://fonts.googleapis.com/css2?family=Mali:wght@400;500;600;700&display=swap";.auth-page{position:fixed;inset:0;z-index:1000;display:grid;grid-template-columns:minmax(360px,.9fr) minmax(420px,.72fr);gap:clamp(28px,5vw,78px);align-items:center;overflow:auto;padding:126px clamp(24px,6vw,96px) 42px;color:#07164a;background-color:#eaf6ff;background-image:url(/landing-sky-bg.png);background-position:center;background-size:cover;isolation:isolate}.auth-register-page{grid-template-columns:minmax(320px,.72fr) minmax(460px,.82fr);background-image:url(/register-sky-bg.png);align-items:start}.auth-page:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#f8fcffd1,#f8fcff80,#f8fcff2e),linear-gradient(180deg,#ffffff1a,#d2eaff29)}.auth-register-page:before{background:linear-gradient(90deg,#f8fcffa8,#f8fcff6b 44%,#f8fcff2e),linear-gradient(180deg,#ffffff29,#d2eaff1f)}.auth-page:after{content:"";position:fixed;inset:-18% -12%;z-index:-1;pointer-events:none;background:radial-gradient(circle at 20% 24%,rgba(34,132,255,.22),transparent 28%),radial-gradient(circle at 82% 18%,rgba(124,97,255,.15),transparent 25%),radial-gradient(circle at 54% 86%,rgba(57,210,189,.14),transparent 30%);filter:blur(12px);animation:authAuroraDrift 18s ease-in-out infinite alternate}.auth-stars,.auth-click-sparkles{position:fixed;inset:0;pointer-events:none;overflow:hidden}.auth-stars{z-index:0}.auth-stars span{position:absolute;left:var(--star-x);top:var(--star-y);width:5px;height:5px;border-radius:999px;background:#fffffff0;box-shadow:0 0 18px #428aff94,0 0 34px #ffffff80;opacity:.48;animation:authStarFloat 7.5s ease-in-out infinite;animation-delay:var(--star-delay)}.auth-stars span:nth-child(3n){width:3px;height:3px}.auth-stars span:nth-child(4n){width:8px;height:8px;opacity:.34}.auth-click-sparkles{z-index:6}.auth-click-sparkles span{position:absolute;left:var(--spark-x);top:var(--spark-y);width:10px;height:10px;border-radius:999px;background:#fff;box-shadow:0 0 0 6px #ffffff57,0 0 24px #2d6fffb3,17px -13px 0 -3px #ffffffdb,-15px 12px 0 -4px #509bff99;transform:translate(-50%,-50%) scale(.2);animation:authClickSpark .85s ease-out forwards}@keyframes authStarFloat{0%,to{transform:translateZ(0) scale(1);opacity:.26}50%{transform:translate3d(14px,-18px,0) scale(1.35);opacity:.78}}@keyframes authClickSpark{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}28%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(2.35)}}@keyframes authAuroraDrift{0%{transform:translate3d(-1.5%,-1%,0) scale(1);opacity:.8}to{transform:translate3d(1.5%,1%,0) scale(1.04);opacity:1}}.auth-topbar{position:fixed;top:18px;left:clamp(18px,4vw,48px);right:clamp(18px,4vw,48px);z-index:5;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:76px;padding:12px 14px;color:#061143;background:linear-gradient(135deg,#ffffffb3,#f1f8ff7a);border:1px solid rgba(85,144,224,.18);border-radius:24px;box-shadow:0 22px 60px #12346e1f,inset 0 1px #ffffffc7;-webkit-backdrop-filter:blur(24px) saturate(1.2);backdrop-filter:blur(24px) saturate(1.2)}.auth-brand,.auth-secure,.auth-field,.auth-row,.auth-check,.auth-submit,.auth-outline,.auth-switch,.auth-icon,.auth-close{display:flex;align-items:center}.auth-brand{gap:12px;min-width:0}.auth-brand>span{display:grid;place-items:center;width:48px;height:48px;color:#fff;border-radius:16px;background:linear-gradient(135deg,#1e72ff,#60c8ff);box-shadow:0 14px 28px #2563eb2e}.auth-brand strong{display:block;font-size:clamp(18px,1.8vw,23px);line-height:1.08;letter-spacing:0}.auth-brand small,.auth-secure{color:#4f6588;font-weight:800}.auth-secure{gap:10px}.auth-close{position:fixed;top:104px;left:clamp(18px,4vw,48px);z-index:6;justify-content:center;min-height:42px;padding:0 18px;border:1px solid rgba(37,99,235,.16);border-radius:8px;color:#1748b8;background:#ffffff94;box-shadow:0 10px 26px #12346e14;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer;font-weight:900;transition:transform .16s ease,box-shadow .16s ease}.auth-close:hover{transform:translateY(-2px);box-shadow:0 16px 34px #2563eb24}.auth-topbar-actions{display:flex;align-items:center;gap:12px;min-width:0}.auth-language-toggle{display:inline-flex;align-items:center;gap:4px;min-height:42px;padding:4px;border:1px solid rgba(50,105,205,.16);border-radius:999px;color:#2d4776;background:#ffffffa3;box-shadow:inset 0 1px #fffc}.auth-language-toggle svg{margin-left:8px;color:#4d70aa}.auth-language-toggle button{min-width:44px;min-height:32px;border:0;border-radius:999px;color:#4f6588;background:transparent;cursor:pointer;font:inherit;font-size:13px;font-weight:950;transition:color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}.auth-language-toggle button:hover{transform:translateY(-1px);color:#1748b8}.auth-language-toggle button.active{color:#fff;background:linear-gradient(135deg,#1f72ff,#5661f2);box-shadow:0 8px 18px #2563eb38}.auth-visual{position:relative;z-index:1;min-width:0;max-width:640px}.auth-visual h1{margin:0 0 20px;color:#071f5b;font-size:clamp(50px,6vw,90px);line-height:1;letter-spacing:0;text-shadow:0 12px 42px rgba(255,255,255,.72)}.auth-visual h1 span{background:linear-gradient(90deg,#1d72ff,#28a9ff 50%,#7477ff);-webkit-background-clip:text;background-clip:text;color:transparent}.auth-visual p{max-width:590px;margin:0 0 24px;color:#405779;font-size:clamp(18px,2vw,25px);line-height:1.46;font-weight:800}.auth-constellation{position:relative;width:min(560px,100%);min-height:260px;border:1px solid rgba(83,143,224,.14);border-radius:26px;background:linear-gradient(145deg,#ffffff7a,#eef8ff47),#ffffff47;box-shadow:0 24px 70px #12346e14,inset 0 1px #ffffffc7;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.auth-constellation:before,.auth-constellation:after{content:"";position:absolute;inset:46px;border-radius:999px;border:1px dashed rgba(37,99,235,.14);animation:authOrbit 24s linear infinite}.auth-constellation:after{inset:76px;animation-direction:reverse;animation-duration:18s}.auth-core{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:96px;height:96px;border-radius:999px;color:#fff;background:linear-gradient(135deg,#1f72ff,#5fc7ff);box-shadow:0 22px 54px #2563eb3b;transform:translate(-50%,-50%);animation:authCore 4.6s ease-in-out infinite}.auth-core:after{content:"";position:absolute;inset:-12px;border-radius:inherit;border:1px solid rgba(79,164,255,.28);animation:authPulseRing 2.8s ease-in-out infinite}.auth-node{position:absolute;display:grid;place-items:center;min-width:112px;min-height:42px;padding:0 12px;border:1px solid rgba(37,99,235,.12);border-radius:16px;color:#17356f;background:#ffffffa3;box-shadow:0 14px 36px #12346e14;font-style:normal;font-weight:900;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:authNode 5.5s ease-in-out infinite}.node-1{top:16%;left:10%;animation-delay:-1s}.node-2{top:16%;right:9%;animation-delay:-2s}.node-3{bottom:16%;left:10%;animation-delay:-3s}.node-4{bottom:16%;right:9%;animation-delay:-4s}@keyframes authOrbit{to{transform:rotate(360deg)}}@keyframes authCore{0%,to{transform:translate(-50%,-50%) translateY(0)}50%{transform:translate(-50%,-50%) translateY(-10px)}}@keyframes authNode{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes authPulseRing{0%,to{transform:scale(.92);opacity:.4}50%{transform:scale(1.08);opacity:.9}}.auth-card{position:relative;z-index:2;width:min(100%,560px);justify-self:end;padding:clamp(24px,3vw,36px);border:1px solid rgba(82,143,225,.18);border-radius:28px;background:linear-gradient(160deg,#ffffffd1,#f5faff9e),#ffffffa8;box-shadow:0 32px 95px #12346e29,inset 0 1px #ffffffe6;-webkit-backdrop-filter:blur(26px) saturate(1.16);backdrop-filter:blur(26px) saturate(1.16);overflow:hidden}.auth-card:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,#1f72ff,#62d0ff,#7a77ff)}.auth-card:after{content:"";position:absolute;right:-70px;top:-80px;width:190px;height:190px;border-radius:999px;background:radial-gradient(circle,rgba(45,129,255,.16),transparent 68%);pointer-events:none}.register-card{align-self:start;margin-top:0;width:min(100%,620px)}.auth-icon{width:62px;height:62px;margin:0 auto 14px;justify-content:center;color:#fff;border-radius:999px;background:linear-gradient(135deg,#1f72ff,#5fc7ff);box-shadow:0 14px 30px #2563eb2e;animation:authIconFloat 4.8s ease-in-out infinite}.auth-card h2{margin:0;color:#071446;text-align:center;font-size:clamp(30px,2.6vw,38px);line-height:1.12}.auth-muted{margin:7px 0 20px;color:#5b6b8d;text-align:center;font-size:17px;font-weight:750}.register-mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:18px;padding:5px;border:1px solid rgba(102,136,188,.22);border-radius:18px;background:#eff6ffb8}.register-mode-switch button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 10px;border:0;border-radius:14px;color:#526585;background:transparent;font:inherit;font-weight:900;cursor:pointer;transition:color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}.register-mode-switch button:hover{transform:translateY(-1px);color:#1d4ed8}.register-mode-switch button.active{color:#1748b8;background:#fff;box-shadow:0 8px 20px #1e40af1a}.auth-form{display:grid;gap:12px}.auth-form-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.school-request-callout{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid rgba(37,99,235,.18);border-radius:18px;color:#1748b8;background:#eff6ffd1;font-weight:850;line-height:1.45}.school-request-callout svg{flex:0 0 auto}.auth-form label{display:grid;gap:7px;color:#0d1b4c;font-weight:900}.auth-field{gap:11px;min-height:54px;padding:0 14px;border:1px solid rgba(102,136,188,.36);border-radius:16px;background:#ffffffb8;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,background .16s ease}.auth-field:hover{transform:translateY(-1px);border-color:#3a71d170;background:#ffffffd6}.auth-field:focus-within{transform:translateY(-2px);border-color:#2b73ff;background:#ffffffeb;box-shadow:0 0 0 4px #2b73ff1c,0 14px 28px #2563eb14}.auth-field svg{color:#7182a5;flex:0 0 auto}.auth-field input,.auth-field select,.auth-field textarea{width:100%;min-width:0;border:0;outline:0;color:#0f1b44;background:transparent;font:inherit;font-weight:800}.auth-textarea-field{align-items:flex-start;padding-block:10px}.auth-textarea-field textarea{resize:vertical}.auth-field button{display:grid;place-items:center;width:34px;height:34px;border:0;color:#667aa7;background:transparent;cursor:pointer}.auth-row{justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:2px}.auth-check{grid-template-columns:auto 1fr;gap:10px!important;color:#233661!important;font-weight:800!important}.auth-check input{width:20px;height:20px;accent-color:#2469ff}.terms{margin-top:4px}.auth-text-button,.auth-switch button{border:0;color:#185cf0;background:transparent;cursor:pointer;font:inherit;font-weight:900}.auth-text-button:hover,.auth-switch button:hover{text-decoration:underline}.auth-reset-panel{display:grid;gap:12px;padding:16px;border:1px solid rgba(37,99,235,.18);border-radius:18px;background:radial-gradient(circle at top right,rgba(99,102,241,.12),transparent 36%),#f8fbffe0;box-shadow:0 16px 36px #1e40af14}.auth-reset-panel>div:first-child{display:grid;gap:4px}.auth-reset-panel strong{color:#153e9f;font-size:17px}.auth-reset-panel span{color:#52617e;font-size:13px;font-weight:800;line-height:1.45}.auth-reset-panel label{gap:7px}.auth-reset-panel input{min-height:46px;width:100%;border:1px solid rgba(104,137,190,.24);border-radius:14px;padding:0 13px;color:#172554;background:#ffffffe6;font:inherit;font-size:15px;font-weight:800;outline:0}.auth-reset-panel input:focus{border-color:#2563ebb8;box-shadow:0 0 0 4px #3b82f624}.auth-reset-actions{display:flex;flex-wrap:wrap;gap:10px}.auth-reset-actions button{justify-content:center;min-height:44px;border-radius:14px;padding:0 15px;font-weight:900}.auth-reset-actions button:first-child{color:#fff;border:0;background:linear-gradient(135deg,#2563eb,#6366f1)}.auth-reset-actions button:last-child{color:#1d4ed8;border:1px solid rgba(147,197,253,.5);background:#eff6ff}.auth-reset-actions button:disabled{cursor:wait;opacity:.7}.auth-submit,.auth-outline{position:relative;justify-content:center;gap:12px;width:100%;min-height:58px;border-radius:18px;cursor:pointer;font-size:19px;font-weight:900;overflow:hidden;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.auth-submit:after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.42) 44%,transparent 58%);transform:translate(-130%);transition:transform .52s ease}.auth-submit:hover:after{transform:translate(130%)}.auth-submit{margin-top:6px;border:0;color:#fff;background:linear-gradient(135deg,#176aff,#153ee4 68%,#6366f1);box-shadow:0 16px 32px #1858eb38}.auth-submit:hover,.auth-outline:hover{transform:translateY(-3px)}.auth-submit:active,.auth-outline:active{transform:translateY(-1px) scale(.99)}.auth-submit:disabled{opacity:.7;cursor:wait}.auth-outline{margin-top:16px;border:1px solid rgba(82,132,211,.26);color:#1455e4;background:#ffffffa8}.auth-google-block{display:grid;justify-items:center;gap:10px;width:100%;margin-top:16px;padding:14px;color:#334155;background:#ffffffad;border:1px solid rgba(82,132,211,.22);border-radius:18px;box-shadow:inset 0 1px #ffffffb8}.auth-google-block>span,.auth-google-block>strong{color:#1e293b;font-size:14px;font-weight:900;text-align:center}.auth-google-block>strong{font-size:16px}.register-google-block{margin-top:0}.google-identity-wrap{display:flex;justify-content:center;min-height:44px;width:100%}.google-identity-wrap.disabled{opacity:.66;pointer-events:none}.google-identity-button{min-height:44px}.google-identity-status{width:100%;padding:12px 14px;color:#92400e;background:#fde68a61;border:1px solid rgba(245,158,11,.24);border-radius:14px;font-size:13px;font-weight:900;text-align:center}.auth-google-block:has(.google-identity-unavailable){display:none}.auth-divider{height:1px;margin:24px 0 16px;background:#5d7cae38}.auth-switch{justify-content:center;gap:8px;margin:0;color:#657392;font-size:17px;font-weight:800}.auth-alert,.auth-note{margin:0 0 16px;padding:12px 14px;border:1px solid rgba(220,58,79,.24);border-radius:18px;color:#9b1730;background:#fff0f2db;font-weight:800;line-height:1.45}.auth-alert.success{color:#0e6548;border-color:#15946838;background:#edfdf7db}.auth-note{margin:14px 0 0;color:#415172;border-color:#5b7fb938;background:#f6f9ffad}@keyframes authIconFloat{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(-2deg)}}@media(prefers-reduced-motion:reduce){.auth-stars span,.auth-page:after,.auth-constellation:before,.auth-constellation:after,.auth-core,.auth-core:after,.auth-node,.auth-icon{animation:none}}@media(max-width:1120px){.auth-page,.auth-register-page{grid-template-columns:1fr;padding-top:128px}.auth-card{justify-self:stretch;width:100%}.auth-visual{max-width:760px}.auth-constellation{min-height:230px}}@media(max-width:720px){.auth-form-two{grid-template-columns:1fr}.register-mode-switch button{font-size:13px}.auth-page,.auth-register-page{padding:152px 14px 24px;background-position:62% center}.auth-page:before,.auth-register-page:before{background:linear-gradient(180deg,#f8fcffdb,#f8fcffad 55%,#f8fcff57)}.auth-topbar{top:12px;left:14px;right:14px;min-height:66px;padding:10px 12px;border-radius:20px}.auth-brand>span{width:44px;height:44px}.auth-brand strong{font-size:17px}.auth-brand small,.auth-secure{display:none}.auth-topbar-actions{gap:8px}.auth-language-toggle{min-height:38px}.auth-language-toggle svg{display:none}.auth-language-toggle button{min-width:40px;min-height:30px;font-size:12px}.auth-close{top:92px;left:14px}.auth-visual h1{font-size:46px}.auth-visual p{font-size:17px}.auth-constellation{min-height:210px}.auth-core{width:78px;height:78px}.auth-node{min-width:92px;min-height:36px;font-size:12px}.auth-card{padding:22px 16px;border-radius:24px}.auth-submit,.auth-outline{min-height:54px;font-size:17px}}.auth-page{grid-template-columns:minmax(360px,.82fr) minmax(420px,.76fr);gap:clamp(28px,5vw,86px)}.auth-page:before{background:linear-gradient(90deg,#f8fcffe6,#f8fcff94,#f8fcff33),linear-gradient(180deg,#ffffff1a,#d2eaff29)}.auth-card{width:min(100%,540px);padding:clamp(24px,3vw,38px);border-color:#528fe133;border-radius:8px;background:radial-gradient(circle at 96% 4%,rgba(56,189,248,.18),transparent 28%),linear-gradient(160deg,#ffffffeb,#f5faffb8),#ffffffc7;box-shadow:0 36px 110px #12346e33,inset 0 1px #fffffff2}.register-card{width:min(100%,650px)}.auth-icon{width:64px;height:64px;border-radius:8px;background:linear-gradient(135deg,#126bff,#153ee4 68%,#6366f1);box-shadow:0 18px 38px #2563eb3d}.auth-card h2{font-size:clamp(32px,2.8vw,42px)}.auth-field,.auth-reset-panel,.auth-reset-panel input,.auth-reset-actions button,.auth-submit,.auth-outline,.auth-google-block,.google-identity-status,.auth-alert,.auth-note,.register-mode-switch,.register-mode-switch button,.school-request-callout{border-radius:8px}.auth-field{min-height:56px;background:#ffffffd1}.auth-submit,.auth-outline{min-height:64px;font-size:20px}.auth-submit{background:linear-gradient(135deg,#126bff,#153ee4 66%,#6d5dfc);box-shadow:0 24px 52px #1858eb52}.auth-session-note{display:inline-flex;align-items:center;gap:8px;min-height:34px;color:#075985;font-size:13px;font-weight:900;line-height:1.35}.auth-session-note svg{flex:0 0 auto;color:#059669}@media(max-width:1120px){.auth-page,.auth-register-page{grid-template-columns:1fr}}@media(max-width:720px){.auth-card{border-radius:8px}.auth-submit,.auth-outline{min-height:56px;font-size:18px}}.landing-page{position:relative;min-height:100vh;overflow:hidden;padding:22px clamp(18px,5vw,72px) 26px;color:#071b4f;background:#eaf6ff url(/landing-sky-bg.png) center / cover no-repeat;isolation:isolate}.landing-page:before,.landing-page:after{position:absolute;pointer-events:none;content:""}.landing-page:before{inset:0;z-index:-1;background:linear-gradient(90deg,#f8fcffeb,#f8fcffb8 46%,#f8fcff2e),linear-gradient(180deg,#ffffff38,#dcefff1f)}.landing-page:after{right:4%;bottom:-18%;z-index:-1;width:min(58vw,760px);aspect-ratio:1.55;border-radius:999px;background:radial-gradient(circle,rgba(45,129,255,.2),transparent 64%);filter:blur(18px)}.landing-motion,.landing-click-sparkles{position:absolute;inset:0;pointer-events:none;overflow:hidden}.landing-motion{z-index:0}.motion-star{position:absolute;left:var(--x);top:var(--y);width:5px;height:5px;border-radius:999px;background:#fffffff5;box-shadow:0 0 16px #458eff94,0 0 28px #ffffff85;opacity:.48;animation:starDrift 7.4s ease-in-out infinite;animation-delay:var(--delay)}.star-1,.star-4{width:3px;height:3px}.star-2,.star-5{width:8px;height:8px;opacity:.34}.motion-line{position:absolute;width:320px;height:1px;transform:rotate(-16deg);background:linear-gradient(90deg,transparent,rgba(70,132,255,.22),transparent);animation:lineFloat 12s ease-in-out infinite}.line-one{top:22%;left:8%}.line-two{top:36%;right:15%;animation-delay:-3s}.line-three{bottom:16%;left:34%;animation-delay:-6s}.landing-click-sparkles{z-index:4}.landing-click-sparkles span{position:absolute;left:var(--spark-x);top:var(--spark-y);width:10px;height:10px;border-radius:999px;background:#fff;box-shadow:0 0 0 6px #ffffff61,0 0 24px #2d6fffb8,18px -14px 0 -3px #ffffffe0,-16px 12px 0 -4px #4597ff9e,4px 22px 0 -5px #ffffffc7;transform:translate(-50%,-50%) scale(.2);animation:clickSpark .85s ease-out forwards}@keyframes starDrift{0%,to{transform:translateZ(0) scale(1);opacity:.28}50%{transform:translate3d(14px,-18px,0) scale(1.35);opacity:.82}}@keyframes lineFloat{0%,to{transform:translate(-22px) rotate(-16deg);opacity:.08}50%{transform:translate(34px) rotate(-16deg);opacity:.34}}@keyframes clickSpark{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}28%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(2.4)}}.landing-nav{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:24px;max-width:1220px;margin:0 auto;padding:13px 14px;border:1px solid rgba(97,151,229,.2);border-radius:8px;background:#ffffff9e;box-shadow:0 18px 48px #274c891a;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.landing-brand,.landing-brand-icon,.landing-nav-actions,.landing-actions,.landing-primary,.landing-secondary,.landing-nav-login,.landing-nav-register,.landing-minimal-status,.landing-login-hint,.landing-assurance,.install-mini{display:flex;align-items:center}.landing-brand{gap:12px;min-width:0}.landing-brand-icon{width:48px;height:48px;justify-content:center;color:#fff;border-radius:8px;background:linear-gradient(135deg,#1d72ff,#62c7ff);box-shadow:0 15px 34px #2b77eb38}.landing-brand strong{display:block;color:#09225d;font-size:clamp(19px,1.7vw,25px);line-height:1.06;letter-spacing:0}.landing-brand small{color:#5f7596;font-weight:800}.landing-nav-actions{display:none;flex:0 0 auto;gap:10px}.landing-nav-login,.landing-nav-register{justify-content:center;min-height:44px;border-radius:8px;cursor:pointer;font:inherit;font-weight:950;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.landing-nav-login{gap:8px;padding:0 18px;border:0;color:#fff;background:linear-gradient(135deg,#155dfc,#4f46e5);box-shadow:0 14px 28px #2563eb38}.landing-nav-register{padding:0 16px;border:1px solid rgba(37,99,235,.2);color:#164fb8;background:#ffffffb8}.landing-nav-login:hover,.landing-nav-register:hover{transform:translateY(-2px)}.landing-hero{position:relative;z-index:1;display:grid;grid-template-columns:minmax(320px,.88fr) minmax(310px,.58fr);align-items:center;gap:clamp(24px,6vw,80px);width:min(1220px,100%);min-height:calc(100vh - 190px);margin:0 auto;padding:clamp(44px,8vw,108px) 0 28px}.landing-copy{max-width:680px}.landing-copy h1{margin:0;color:#071e59;font-size:clamp(50px,7.2vw,102px);line-height:.98;letter-spacing:0;text-shadow:0 12px 42px rgba(255,255,255,.75)}.landing-copy h1 span{background:linear-gradient(90deg,#1a72ff,#25a7ff 52%,#7478ff);-webkit-background-clip:text;background-clip:text;color:transparent}.landing-lead{max-width:610px;margin:24px 0 28px;color:#3f5577;font-size:clamp(18px,2.1vw,26px);line-height:1.48;font-weight:800}.landing-actions{gap:13px;flex-wrap:wrap}.landing-primary,.landing-secondary,.install-mini{position:relative;justify-content:center;gap:10px;min-height:54px;border-radius:8px;cursor:pointer;font-size:17px;font-weight:900;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.landing-primary:after{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.42) 44%,transparent 58%);transform:translate(-130%);transition:transform .52s ease;content:""}.landing-primary:hover:after{transform:translate(130%)}.landing-primary{overflow:hidden;min-height:64px;min-width:250px;padding:0 34px;border:0;color:#fff;background:linear-gradient(135deg,#126bff,#153ee4 64%,#6d5dfc);box-shadow:0 24px 52px #2563eb4d;font-size:20px}.landing-secondary{min-width:210px;padding:0 26px;border:0;color:#fff;background:linear-gradient(135deg,#22c55e,#0ea85a);box-shadow:0 18px 42px #10b98138;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.landing-primary:hover,.landing-secondary:hover,.install-mini:hover{transform:translateY(-4px)}.landing-primary:active,.landing-secondary:active,.install-mini:active{transform:translateY(-1px) scale(.99)}.landing-login-hint{width:fit-content;max-width:560px;margin-top:18px;gap:9px;padding:10px 13px;border:1px solid rgba(16,185,129,.22);border-radius:8px;color:#075985;background:#ecfdf5b8;box-shadow:0 12px 30px #0ea5e914;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-size:14px;font-weight:900;line-height:1.45}.landing-login-hint svg{flex:0 0 auto;color:#059669}.landing-minimal-status{width:fit-content;max-width:100%;margin-top:28px;gap:8px;flex-wrap:wrap;padding:11px 14px;border:1px solid rgba(79,137,219,.18);border-radius:8px;color:#28456f;background:#ffffff80;box-shadow:0 14px 36px #3a67a014;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);font-weight:850}.landing-minimal-status svg,.landing-hub-pill svg{color:#1f74eb}.landing-hub-pill,.landing-dept-pill{display:inline-flex;align-items:center;justify-content:center;min-height:34px;border-radius:8px;white-space:nowrap}.landing-hub-pill{gap:7px;padding:0 12px;color:#164fb8;background:#dbeafeb8}.landing-dept-pill{padding:0 11px;color:#285074;background:#ffffffb8;border:1px solid rgba(79,137,219,.14)}.landing-orb-panel{position:relative;min-height:360px}.landing-orb{position:absolute;right:clamp(10px,4vw,46px);top:50%;display:grid;place-items:center;width:clamp(170px,18vw,228px);aspect-ratio:1;border:1px solid rgba(255,255,255,.72);border-radius:999px;color:#164071;background:#ffffff80;box-shadow:0 24px 70px #3d78c629,inset 0 1px #ffffffe6;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transform:translateY(-50%);animation:orbBreathe 5s ease-in-out infinite}.landing-orb:before,.landing-orb:after{position:absolute;inset:-44px;border:1px solid rgba(82,146,228,.18);border-radius:inherit;content:""}.landing-orb:after{inset:-84px;border-style:dashed;animation:orbRotate 24s linear infinite}.landing-orb svg{color:#1f74eb}.landing-orb strong,.landing-orb small{display:block;text-align:center}.landing-orb strong{margin-top:4px;font-size:20px}.landing-orb small{color:#5d7192;font-weight:800}.orb-tag{position:absolute;z-index:1;display:grid;place-items:center;min-width:118px;min-height:42px;padding:0 14px;border:1px solid rgba(69,132,219,.15);border-radius:8px;color:#244168;background:#ffffff94;box-shadow:0 14px 34px #2d5d9d14;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);font-weight:900;animation:tagFloat 5.6s ease-in-out infinite}.orb-tag-1{top:16%;right:46%;animation-delay:-1s}.orb-tag-2{top:27%;right:0;animation-delay:-2s}.orb-tag-3{bottom:24%;right:52%;animation-delay:-3s}.orb-tag-4{bottom:14%;right:4%;animation-delay:-4s}@keyframes orbBreathe{0%,to{transform:translateY(-50%) scale(1)}50%{transform:translateY(-52%) scale(1.035)}}@keyframes orbRotate{to{transform:rotate(360deg)}}@keyframes tagFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.landing-assurance{position:relative;z-index:2;justify-content:space-between;gap:18px;width:min(1220px,100%);margin:0 auto;padding:14px 16px;border:1px solid rgba(79,137,219,.16);border-radius:8px;background:#ffffff85;box-shadow:0 16px 44px #3a67a014;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.landing-assurance strong,.landing-assurance small{display:block}.landing-assurance strong{color:#0f2a60;font-size:17px}.landing-assurance small{color:#596f91;font-weight:780}.install-mini{flex:0 0 auto;min-height:46px;padding:0 18px;border:1px solid rgba(37,99,235,.18);color:#1855c7;background:#ffffffad;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.install-panel{position:fixed;right:24px;bottom:24px;z-index:10;width:min(420px,calc(100vw - 48px));padding:18px;border:1px solid rgba(37,99,235,.14);border-radius:8px;color:#19325f;background:#ffffffeb;box-shadow:0 24px 80px #12346e29;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.install-panel p,.install-panel ol{margin:8px 0}@media(prefers-reduced-motion:reduce){.motion-star,.motion-line,.landing-orb,.landing-orb:after,.orb-tag{animation:none}}@media(min-width:721px){.landing-nav{padding:15px 18px}.landing-brand{justify-content:center}.landing-brand-icon{width:54px;height:54px}.landing-brand strong{font-size:clamp(23px,2vw,30px)}.landing-brand small{font-size:14px}.landing-actions{gap:16px}.landing-primary,.landing-secondary{min-height:72px;border-radius:8px;font-size:22px}.landing-primary{min-width:310px;padding-inline:44px}.landing-secondary{min-width:270px;padding-inline:38px}}@media(max-width:1040px){.landing-page{overflow:auto}.landing-hero{grid-template-columns:1fr;min-height:auto}.landing-orb-panel{min-height:280px}.landing-orb{right:50%;transform:translate(50%,-50%)}.landing-orb:before{inset:-32px}.landing-orb:after{inset:-62px}.orb-tag-1{top:6%;right:auto;left:8%}.orb-tag-2{top:13%;right:4%}.orb-tag-3{bottom:8%;right:auto;left:4%}.orb-tag-4{bottom:1%;right:8%}}@media(max-width:720px){.landing-page{padding:12px;background-position:64% center}.landing-page:before{background:linear-gradient(180deg,#f8fcffeb,#f8fcffc2 54%,#f8fcff47)}.landing-nav{align-items:center;width:min(100%,430px);padding:14px;border-color:#468fe72e;background:#ffffffb8;box-shadow:0 18px 44px #2a65a71f}.landing-nav-actions{display:none}.landing-nav-login,.landing-nav-register{min-width:0;padding-inline:10px}.landing-brand-icon{width:52px;height:52px}.landing-brand strong{font-size:clamp(21px,6.2vw,28px)}.landing-brand small{font-size:clamp(12px,3.5vw,15px)}.landing-hero{width:min(100%,430px);padding-top:18px;gap:16px}.landing-copy{position:relative;overflow:hidden;display:flex;flex-direction:column;width:100%;min-height:640px;padding:28px 18px 22px;border:1px solid rgba(97,151,229,.2);border-radius:8px;background:linear-gradient(180deg,#ffffff85,#eff9ff73 46%,#ebf7ffad),url(/landing-sky-bg.png) 66% bottom / auto 100% no-repeat;box-shadow:0 24px 70px #24589624;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.landing-copy h1{display:block;max-width:310px;margin-top:8px;font-size:clamp(44px,13vw,56px);line-height:.98}.landing-lead{max-width:100%;margin:18px 0 20px;color:#355276;text-align:left;font-size:clamp(16px,4.4vw,19px);line-height:1.5;text-shadow:0 1px 18px rgba(255,255,255,.76)}.landing-primary,.landing-secondary,.landing-login-hint,.landing-minimal-status{width:100%;min-width:0}.landing-actions{flex-direction:column;gap:12px;width:100%}.landing-primary,.landing-secondary{min-height:64px;font-size:clamp(19px,5vw,22px);box-shadow:0 20px 48px #2563eb38}.landing-secondary{box-shadow:0 18px 42px #10b9813d}.landing-login-hint{order:2;margin-top:14px;text-align:left}.landing-minimal-status{order:3;justify-content:center;margin-top:14px;padding:12px;text-align:center;background:#ffffffb8}.landing-hub-pill{width:100%;min-height:40px;font-size:16px;background:#dbeafedb}.landing-dept-pill{flex:1 1 calc(50% - 8px);min-height:36px;font-size:12px}.landing-orb-panel{display:none;min-height:260px;padding:18px 12px;border:1px solid rgba(97,151,229,.18);border-radius:8px;background:linear-gradient(180deg,#ffffffe6,#ebf7ffc2),url(/landing-sky-bg.png) 70% bottom / cover no-repeat;box-shadow:0 18px 52px #295c971c}.landing-orb{width:142px;right:50%;top:50%;transform:translate(50%,-50%)}.landing-orb:before{inset:-22px}.landing-orb:after{inset:-42px}.orb-tag{min-width:96px;min-height:36px;padding:0 10px;font-size:12px}.landing-assurance{align-items:stretch;flex-direction:column}.install-mini{width:100%}}.media-manager,.learning-media-view{gap:20px}.media-manager-hero,.learning-media-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 28px;overflow:hidden;border:1px solid rgba(129,140,248,.26);border-radius:22px;background:radial-gradient(circle at 88% 8%,rgba(244,114,182,.26),transparent 29%),radial-gradient(circle at 10% 100%,rgba(56,189,248,.22),transparent 35%),linear-gradient(118deg,#142a5c,#33257a 56%,#6d2e86);box-shadow:0 18px 44px #0f172a2e;color:#fff}.media-manager-hero h2,.learning-media-hero h2{margin:4px 0 6px;font-size:clamp(24px,3vw,32px);line-height:1.25}.media-manager-hero p,.learning-media-hero p{max-width:660px;margin:0;color:#eff6ffcc;font-weight:600;line-height:1.55}.media-eyebrow,.learning-media-eyebrow{color:#a5f3fc;font-size:11px;font-weight:900;letter-spacing:.16em}.media-hero-count{display:grid;min-width:116px;padding:15px 18px;border:1px solid rgba(255,255,255,.24);border-radius:18px;background:#ffffff21;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.media-hero-count strong{font-size:29px;line-height:1}.media-hero-count span{margin-top:6px;color:#dbeafe;font-size:12px;font-weight:800}.media-manager-layout{display:grid;grid-template-columns:minmax(290px,.84fr) minmax(0,1.5fr);gap:20px;align-items:start}.media-editor-card,.media-library-card{border:1px solid #dbe6f5;border-radius:20px;background:#fffffff0;box-shadow:0 12px 35px #0f172a14}.media-editor-card{display:grid;gap:14px;padding:21px}.media-editor-card label{display:grid;gap:7px;color:#475569;font-size:13px;font-weight:850}.media-editor-card label span{color:#94a3b8;font-weight:700}.media-editor-card input,.media-editor-card select,.media-pill-select{width:100%;min-height:44px;border:1px solid #d8e1ef;border-radius:15px;outline:0;background:#f8fbff;color:#172554;font:inherit;font-size:14px;font-weight:700}.media-editor-card textarea{width:100%;min-height:78px;padding:11px 13px;resize:vertical;border:1px solid #d8e1ef;border-radius:15px;outline:0;background:#f8fbff;color:#172554;font:inherit;font-size:14px;font-weight:700}.media-editor-card input,.media-editor-card select{padding:0 13px}.media-editor-card input:focus,.media-editor-card select:focus,.media-editor-card textarea:focus,.media-pill-select:focus{border-color:#818cf8;box-shadow:0 0 0 4px #818cf824}.media-editor-heading{display:flex;justify-content:space-between;gap:12px;align-items:start;padding-bottom:5px}.media-editor-heading span{color:#7c3aed;font-size:12px;font-weight:900}.media-editor-heading h3{margin:3px 0 0;color:#172554;font-size:19px}.media-icon-button{display:grid;width:34px;height:34px;place-items:center;border:0;border-radius:50%;color:#64748b;background:#eef2ff}.media-emoji-picker{margin:0;padding:12px;border:1px solid #dbe6f5;border-radius:16px;background:linear-gradient(135deg,#f8fbff,#f7f3ff)}.media-emoji-picker legend{padding:0 4px;color:#475569;font-size:13px;font-weight:850}.media-emoji-picker legend span{display:inline-grid;width:25px;height:25px;margin-left:5px;place-items:center;border-radius:8px;background:#ede9fe;font-size:16px}.media-emoji-picker>div{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:6px}.media-emoji-picker button{display:grid;aspect-ratio:1;min-width:0;place-items:center;border:1px solid transparent;border-radius:10px;background:#ffffffb8;font-size:19px;transition:transform .14s ease,background .14s ease,border-color .14s ease}.media-emoji-picker button:hover{transform:translateY(-2px);background:#fff;border-color:#c4b5fd}.media-emoji-picker button.selected{border-color:#7c3aed;background:#ede9fe;box-shadow:0 0 0 2px #7c3aed1f}.media-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.media-editor-actions{display:flex;gap:9px;margin-top:4px}.media-save-button,.media-cancel-button,.learning-manage-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:45px;padding:0 17px;border:0;border-radius:999px;font:inherit;font-size:14px;font-weight:900;cursor:pointer}.media-save-button{flex:1;color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed);box-shadow:0 10px 20px #4f46e538}.media-save-button:disabled{cursor:wait;opacity:.68}.media-cancel-button{color:#475569;background:#edf2f7}.media-library-card{min-width:0;overflow:hidden}.media-library-toolbar{display:flex;gap:10px;padding:16px;border-bottom:1px solid #e8eef7;background:#fbfdff}.media-search{display:flex;flex:1;align-items:center;gap:8px;min-width:0;padding:0 13px;border:1px solid #d8e1ef;border-radius:999px;background:#fff;color:#64748b}.media-search input{min-width:0;width:100%;height:40px;border:0;outline:0;color:#172554;background:transparent;font:inherit;font-weight:700}.media-pill-select{width:160px;padding:0 14px;border-radius:999px}.media-resource-list{padding:8px}.media-resource-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border-radius:15px}.media-resource-row:hover{background:#f5f7ff}.media-resource-icon{display:grid;width:44px;height:44px;place-items:center;border-radius:14px;color:#5b21b6;background:linear-gradient(135deg,#e0e7ff,#fae8ff)}.media-resource-copy{min-width:0}.media-resource-copy h3{overflow:hidden;margin:0;color:#172554;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.media-resource-copy p{overflow:hidden;margin:4px 0 0;color:#64748b;font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.media-resource-actions{display:flex;gap:5px}.media-resource-actions a,.media-resource-actions button{display:grid;width:34px;height:34px;place-items:center;border:1px solid #dbe4f1;border-radius:50%;color:#516176;background:#fff}.media-resource-actions a:hover,.media-resource-actions button:hover{color:#4338ca;border-color:#a5b4fc;background:#eef2ff}.media-resource-actions .delete:hover{color:#be123c;border-color:#fecdd3;background:#fff1f2}.media-loading,.media-empty{display:flex;justify-content:center;align-items:center;gap:9px;min-height:210px;color:#64748b;font-weight:800;text-align:center}.media-notice{display:flex;align-items:center;gap:8px;padding:12px 15px;border-radius:15px;font-weight:800}.media-notice.success{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.media-notice.error{color:#be123c;background:#fff1f2;border:1px solid #fecdd3}.spin{animation:media-spin 1s linear infinite}@keyframes media-spin{to{transform:rotate(360deg)}}.learning-manage-button{flex:none;color:#312e81;background:#fff;box-shadow:0 10px 24px #0f172a2b}.learning-manage-button:hover{transform:translateY(-1px)}.learning-choice-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.media-card.media-choice-card{display:grid;grid-template-rows:168px minmax(174px,1fr);gap:0;min-height:342px;padding:0;overflow:hidden;border:1px solid rgba(148,163,184,.25);border-radius:24px;color:#f8fafc;background:#111827;box-shadow:0 16px 34px #0f172a29;text-align:left;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.media-choice-card:not(:disabled):hover{transform:translateY(-7px);border-color:#818cf8ad;box-shadow:0 25px 46px #312e8147}.media-choice-card:disabled{opacity:.72}.media-choice-star{position:absolute;z-index:2;top:17px;right:17px;display:grid;width:49px;height:49px;place-items:center;border:1px solid rgba(255,255,255,.08);border-radius:50%;color:#94a3b8;background:#0206179e;font-size:27px;line-height:1;box-shadow:inset 0 0 0 1px #ffffff0d;transition:transform .16s ease,color .16s ease,background .16s ease}.media-choice-star:hover:not(:disabled){transform:scale(1.09);color:#e2e8f0;background:#0f172ae6}.media-choice-star:disabled{cursor:default}.media-choice-card.is-favorite .media-choice-star{color:#fcd34d;background:#0f172ae0;text-shadow:0 0 12px rgba(250,204,21,.5)}.media-choice-visual{display:grid;min-height:168px;place-items:center;border-bottom:1px solid rgba(255,255,255,.07);background:radial-gradient(circle at 50% 35%,rgba(96,165,250,.2),transparent 48%),linear-gradient(145deg,#263247,#20293a);font-size:68px;line-height:1;text-shadow:0 12px 21px rgba(0,0,0,.25)}.media-choice-content{display:flex;min-height:174px;flex-direction:column;padding:20px 20px 19px;background:linear-gradient(145deg,#162033,#101827)}.media-choice-content strong{color:#fff;font-size:19px;line-height:1.35}.media-choice-content .media-meta{margin-top:12px}.media-choice-tag{display:inline-flex;align-items:center;min-height:25px;padding:0 10px;border:1px solid rgba(96,165,250,.31);border-radius:8px;color:#bfdbfe;background:#2563eb21;font-size:10px;font-weight:850}.media-choice-tag.muted{border-color:#f472b64d;color:#f9a8d4;background:#db27771f}.media-choice-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:45px;margin-top:auto;border:0;border-radius:15px;color:#10213c;background:linear-gradient(100deg,#60a5fa,#818cf8);font:inherit;font-size:14px;font-weight:900;cursor:pointer}.media-choice-action:hover:not(:disabled){filter:brightness(1.06)}.media-choice-action:disabled{cursor:default;color:#aab7ca;background:#94a3b826}@media(max-width:1180px){.learning-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:980px){.media-manager-layout{grid-template-columns:1fr}.learning-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.media-manager-hero,.learning-media-hero{align-items:flex-start;flex-direction:column;padding:21px}.media-hero-count{min-width:0;grid-template-columns:auto auto;align-items:center;gap:8px;text-align:left}.media-hero-count span{margin:0}.learning-manage-button{width:100%}.media-field-grid{grid-template-columns:1fr}.media-emoji-picker>div{grid-template-columns:repeat(7,minmax(0,1fr))}.media-library-toolbar{flex-direction:column}.media-pill-select{width:100%}.learning-choice-grid{grid-template-columns:1fr}.media-resource-row{grid-template-columns:42px minmax(0,1fr)}.media-resource-actions{grid-column:2}.media-resource-copy p{white-space:normal}.media-choice-card{min-height:320px}}.profile-modal-backdrop{align-items:center;background:radial-gradient(circle at 16% 18%,rgba(56,189,248,.2),transparent 26%),radial-gradient(circle at 82% 22%,rgba(139,92,246,.18),transparent 28%),linear-gradient(135deg,#e2f0ffdb,#f4f7ffe6);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);display:flex;inset:0;justify-content:center;padding:22px;position:fixed;z-index:1200}.profile-modal{--profile-accent: #2563eb;--profile-glow: rgba(37, 99, 235, .22);background:linear-gradient(180deg,#fffffffa,#f8fbfff7),radial-gradient(circle at 90% 8%,var(--profile-glow),transparent 34%);border:1px solid rgba(148,163,184,.24);border-radius:18px;box-shadow:0 30px 110px #0f172a33;color:#0f172a;max-height:min(900px,calc(100dvh - 44px));overflow:auto;padding:clamp(18px,3vw,30px);position:relative;scrollbar-color:#cbd5e1 transparent;width:min(1080px,100%)}.profile-modal-close{align-items:center;background:#ffffffd6;border:1px solid rgba(148,163,184,.26);border-radius:14px;box-shadow:0 12px 28px #0f172a1a;color:#334155;cursor:pointer;display:inline-flex;height:46px;justify-content:center;position:absolute;right:22px;top:22px;transition:transform .2s ease,box-shadow .2s ease;width:46px;z-index:3}.profile-modal-close:hover{box-shadow:0 16px 36px #0f172a29;transform:translateY(-1px)}.profile-hero{background:linear-gradient(135deg,#ffffffeb,#eff6ffeb),radial-gradient(circle at 14% 24%,var(--profile-glow),transparent 34%);border:1px solid rgba(148,163,184,.22);border-radius:18px;display:grid;gap:20px;grid-template-columns:auto minmax(0,1fr);min-height:196px;overflow:hidden;padding:26px 76px 26px 26px;position:relative}.profile-orbit{inset:0;pointer-events:none;position:absolute}.profile-orbit span{background:var(--profile-accent);border-radius:999px;opacity:.16;position:absolute}.profile-orbit span:nth-child(1){height:140px;right:-42px;top:-50px;width:140px}.profile-orbit span:nth-child(2){bottom:18px;height:12px;left:34%;width:12px}.profile-orbit span:nth-child(3){bottom:-54px;height:120px;right:22%;width:120px}.profile-avatar-shell{align-self:center;display:grid;gap:10px;justify-items:center;position:relative;z-index:1}.profile-avatar{align-items:center;background:linear-gradient(135deg,#fffffff5,#eff6fff5),var(--profile-glow);border:1px solid rgba(148,163,184,.22);border-radius:50%;box-shadow:0 20px 44px var(--profile-glow);color:var(--profile-accent);display:flex;height:104px;justify-content:center;overflow:hidden;width:104px}.profile-avatar img{height:100%;object-fit:cover;width:100%}.profile-avatar-shell>span{background:#0f172a;border-radius:999px;color:#fff;font-size:13px;font-weight:900;padding:5px 10px}.profile-avatar-upload{align-items:center;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;color:#1d4ed8;cursor:pointer;display:inline-flex;font-size:12px;font-weight:900;gap:6px;min-height:32px;padding:6px 10px}.profile-avatar-upload input{display:none}.profile-crop-card{background:#fffffff0;border:1px solid rgba(191,219,254,.82);border-radius:18px;box-shadow:0 18px 42px #0f172a14;display:grid;gap:16px;margin-top:16px;padding:16px}.profile-crop-workspace{align-items:center;display:grid;gap:18px;grid-template-columns:250px minmax(0,1fr)}.profile-crop-preview{background:linear-gradient(135deg,#eff6fff0,#fffffff0);border:1px solid rgba(148,163,184,.22);border-radius:50%;box-shadow:0 18px 44px var(--profile-glow);height:220px;justify-self:center;overflow:hidden;position:relative;width:220px}.profile-crop-preview:after{border:2px solid rgba(255,255,255,.9);border-radius:50%;box-shadow:inset 0 0 0 1px #0f172a1a;content:"";inset:0;pointer-events:none;position:absolute}.profile-crop-preview img{height:100%;left:0;object-fit:cover;position:absolute;top:0;transform-origin:center;width:100%}.profile-crop-controls{display:grid;gap:12px}.profile-crop-controls label{display:grid;gap:7px}.profile-crop-controls label span{color:#334155;font-size:12px;font-weight:900}.profile-crop-controls input[type=range]{accent-color:var(--profile-accent);width:100%}.profile-crop-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:2px}.profile-crop-actions button{align-items:center;border:0;border-radius:999px;cursor:pointer;display:inline-flex;font-weight:900;gap:8px;justify-content:center;min-height:38px;padding:8px 14px}.profile-crop-actions button:not(.secondary){background:linear-gradient(135deg,var(--profile-accent),#7c3aed);color:#fff}.profile-crop-actions button.secondary{background:#f1f5f9;color:#334155}.profile-crop-actions button:disabled{cursor:not-allowed;opacity:.58}.profile-hero-copy{min-width:0;position:relative;z-index:1}.profile-kicker,.profile-role-badge,.profile-status-badge{align-items:center;display:inline-flex;gap:7px}.profile-kicker{color:var(--profile-accent);font-size:13px;font-weight:900}.profile-hero h2{color:#0f172a;font-size:clamp(26px,3.2vw,42px);letter-spacing:0;line-height:1.08;margin:10px 0;overflow-wrap:anywhere}.profile-hero p{color:#475569;font-weight:750;line-height:1.65;margin:0;max-width:760px}.profile-badge-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.profile-role-badge{background:color-mix(in srgb,var(--profile-accent) 12%,white);border:1px solid color-mix(in srgb,var(--profile-accent) 24%,white);border-radius:999px;color:var(--profile-accent);font-weight:900;padding:9px 12px}.profile-status-badge{background:#ecfdf5;border:1px solid #bbf7d0;border-radius:999px;color:#047857;font-weight:900;padding:9px 12px}.profile-message{background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;color:#c2410c;font-weight:850;margin:16px 0 0;padding:12px 14px}.profile-message.success{background:#ecfdf5;border-color:#bbf7d0;color:#047857}.profile-layout{display:grid;gap:16px;grid-template-columns:minmax(0,1.12fr) minmax(300px,.88fr);margin-top:16px}.profile-section{background:#ffffffeb;border:1px solid rgba(148,163,184,.2);border-radius:18px;box-shadow:0 18px 42px #0f172a12;padding:18px}.profile-main-card{grid-column:1;grid-row:span 2}.profile-specific-card{grid-column:1}.profile-school-card,.profile-connect-card{grid-column:2}.profile-section-title{align-items:flex-start;display:flex;gap:12px;margin-bottom:14px}.profile-section-title>span{align-items:center;background:color-mix(in srgb,var(--profile-accent) 12%,white);border-radius:12px;color:var(--profile-accent);display:inline-flex;height:38px;justify-content:center;min-width:38px}.profile-section-title h3{color:#0f172a;font-size:18px;letter-spacing:0;margin:0}.profile-section-title p{color:#64748b;font-size:13px;font-weight:750;line-height:1.45;margin:4px 0 0}.profile-fact-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.profile-info-box{background:linear-gradient(180deg,#fff,#f8fbff);border:1px solid #e2e8f0;border-radius:16px;display:grid;gap:7px;min-height:118px;padding:14px}.profile-info-box svg{color:var(--profile-accent)}.profile-info-box span{color:#64748b;font-size:13px;font-weight:900}.profile-info-box strong{color:#0f172a;font-size:17px;line-height:1.35;overflow-wrap:anywhere}.profile-school-plate{align-items:center;background:linear-gradient(135deg,color-mix(in srgb,var(--profile-accent) 10%,white),#fff);border:1px solid color-mix(in srgb,var(--profile-accent) 18%,white);border-radius:16px;display:flex;gap:12px;padding:16px}.profile-school-plate svg{color:var(--profile-accent);flex:0 0 auto}.profile-school-plate strong,.profile-school-plate span{display:block}.profile-school-plate strong{color:#0f172a;font-size:18px}.profile-school-plate span{color:#475569;font-weight:900;margin-top:4px}.profile-connect-state{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:16px;padding:16px}.profile-connect-state strong,.profile-connect-state span,.profile-connect-state small{display:block}.profile-connect-state strong{color:#047857;font-size:18px}.profile-connect-state span,.profile-connect-state small{color:#475569;font-weight:800;margin-top:7px}.profile-google-state{display:grid;grid-template-columns:1fr;align-items:start;gap:14px;margin-top:14px;padding:16px;border:1px solid color-mix(in srgb,var(--profile-accent) 18%,white);border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--profile-accent) 8%,white),#fff)}.profile-google-state strong,.profile-google-state span,.profile-google-state small{display:block;overflow-wrap:anywhere}.profile-google-state strong{color:#0f172a;font-size:17px}.profile-google-state span,.profile-google-state small{color:#475569;font-weight:800;margin-top:5px}.profile-google-state button{border:1px solid rgba(239,68,68,.22);border-radius:12px;color:#b91c1c;background:#fff;cursor:pointer;font-weight:900;min-height:42px;padding:0 14px}.profile-google-state button:disabled{cursor:wait;opacity:.65}.profile-google-state .google-identity-wrap{justify-content:flex-start;max-width:100%;min-width:0}.profile-google-state .google-identity-button{max-width:100%}.profile-signature-card{background:linear-gradient(135deg,#fffffff0,#eff6ffeb),radial-gradient(circle at 96% 8%,rgba(14,165,233,.16),transparent 34%)}.signature-consent-box{align-items:center;display:grid;gap:16px;grid-template-columns:190px minmax(0,1fr)}.signature-preview{align-items:center;aspect-ratio:3 / 1.35;background:linear-gradient(135deg,#fffffff5,#f8fafcf5);border:1px dashed rgba(37,99,235,.34);border-radius:16px;color:#2563eb;display:flex;justify-content:center;overflow:hidden;padding:12px}.signature-preview img{max-height:100%;max-width:100%;object-fit:contain}.signature-consent-box strong,.signature-consent-box span{display:block}.signature-consent-box strong{color:#0f172a;font-size:16px;font-weight:950}.signature-consent-box span{color:#64748b;font-size:13px;font-weight:750;line-height:1.55;margin-top:4px}.signature-upload-button,.signature-consent-actions button{align-items:center;background:#2563eb;border:0;border-radius:12px;color:#fff;cursor:pointer;display:inline-flex;font-weight:900;gap:8px;margin-top:12px;padding:10px 13px}.signature-upload-button input{display:none}.signature-consent-actions{display:flex;flex-wrap:wrap;gap:8px}.signature-consent-actions button{background:#0f766e}.signature-consent-actions button.danger{background:#fff1f2;border:1px solid #fecdd3;color:#be123c}.profile-edit-form{background:#ffffffeb;border:1px solid rgba(148,163,184,.2);border-radius:18px;box-shadow:0 18px 42px #0f172a12;display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px;padding:18px}.profile-edit-heading,.profile-wide-field{grid-column:1 / -1}.profile-edit-form label{color:#334155;display:grid;font-weight:900;gap:8px}.profile-edit-form label>span{font-size:13px}.profile-edit-form input{background:#fff;border:1px solid #cbd5e1;border-radius:14px;color:#0f172a;font:inherit;font-weight:800;min-height:48px;padding:0 14px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.profile-edit-form input:focus{border-color:var(--profile-accent);box-shadow:0 0 0 4px var(--profile-glow);outline:0}.profile-input-with-icon{position:relative}.profile-input-with-icon svg{color:#94a3b8;left:13px;position:absolute;top:50%;transform:translateY(-50%)}.profile-input-with-icon input{padding-left:43px}.profile-edit-form button{align-items:center;background:linear-gradient(135deg,#2563eb,#7c3aed);border:0;border-radius:14px;color:#fff;cursor:pointer;display:inline-flex;font:inherit;font-weight:900;gap:10px;justify-content:center;justify-self:end;min-height:50px;padding:0 20px;transition:transform .2s ease,filter .2s ease}.profile-edit-form button:hover{transform:translateY(-1px)}.profile-edit-form button:disabled{cursor:wait;filter:grayscale(.2);opacity:.68;transform:none}.profile-student{--profile-accent: #0ea5e9}.profile-teacher{--profile-accent: #4f46e5}.profile-leader{--profile-accent: #a855f7}.profile-admin{--profile-accent: #2563eb}.profile-staff{--profile-accent: #10b981}.profile-parent{--profile-accent: #f59e0b}@media(max-width:920px){.profile-modal{max-height:calc(100dvh - 28px)}.profile-layout{grid-template-columns:1fr}.profile-main-card,.profile-specific-card,.profile-school-card,.profile-connect-card,.profile-signature-card{grid-column:auto}.signature-consent-box{grid-template-columns:1fr}}@media(max-width:640px){.profile-modal-backdrop{align-items:stretch;padding:12px}.profile-modal{border-radius:16px;max-height:calc(100dvh - 24px);padding:14px}.profile-modal-close{height:42px;right:16px;top:16px;width:42px}.profile-hero{grid-template-columns:1fr;padding:20px}.profile-avatar-shell{justify-items:start}.profile-avatar{height:84px;width:84px}.profile-crop-workspace{grid-template-columns:1fr}.profile-crop-preview{height:190px;width:190px}.profile-hero h2{font-size:28px}.profile-fact-grid,.profile-edit-form,.profile-google-state{grid-template-columns:1fr}.profile-google-state .google-identity-wrap{min-width:0}.profile-edit-form button{justify-self:stretch;width:100%}}@font-face{font-display:swap;font-family:TH SarabunPSK;font-style:normal;font-weight:400;src:url(/fonts/THSarabun-Regular.ttf) format("truetype")}@font-face{font-display:swap;font-family:TH SarabunPSK;font-style:normal;font-weight:700;src:url(/fonts/THSarabun-Bold.ttf) format("truetype")}:root{color-scheme:light;font-family:Mali,Noto Sans Thai,Sarabun,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--bg: #eef5ff;--ink: #0f172a;--muted: #64748b;--line: rgba(148, 163, 184, .28);--navy: #071832;--navy-2: #102a6b;--violet: #28135f;--blue: #2563eb;--sky: #38bdf8;--green: #10b981;--amber: #f59e0b;--surface: rgba(255, 255, 255, .9);--surface-strong: #ffffff;--shadow: 0 18px 45px rgba(15, 23, 42, .1);--press-shadow: 0 16px 42px rgba(37, 99, 235, .16);--motion-fast: .18s;--motion-soft: .52s;--motion-curve: cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;color:var(--ink);background:radial-gradient(circle at 18% 0%,rgba(37,99,235,.16),transparent 34%),radial-gradient(circle at 88% 8%,rgba(124,58,237,.16),transparent 32%),linear-gradient(135deg,#f7fbff,#eef5ff 52%,#f7f3ff)}button,input,textarea,select{font:inherit;line-height:1.55}select{min-height:52px;padding:10px 42px 10px 14px;border:1px solid rgba(148,163,184,.34);border-radius:8px;color:#0f172a;background:linear-gradient(45deg,transparent 50%,#2563eb 50%) calc(100% - 18px) 52% / 6px 6px no-repeat,linear-gradient(135deg,#fff,#f8fbff);box-shadow:inset 0 1px #ffffffe6,0 10px 24px #0f172a0f;appearance:none;outline:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}select:hover{border-color:#2563eb6b;box-shadow:inset 0 1px #fffffff2,0 14px 30px #2563eb1a}select:focus{border-color:#2563ebb3;box-shadow:0 0 0 4px #2563eb1f,0 16px 32px #2563eb1f}button{position:relative;border:0;cursor:pointer;touch-action:manipulation}button,a,.module-card,.metric-card,.learning-card,.media-card,.teacher-subject-card,.announcement-card,.student-row,.slot-row,.embedded-shell{-webkit-tap-highlight-color:transparent}button:not(:disabled),a,.module-card,.metric-card,.learning-card,.media-card,.teacher-subject-card,.announcement-card,.student-row,.slot-row,.embedded-shell{transition:transform .18s cubic-bezier(.16,1,.3,1),border-color .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease,filter .18s ease}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:0;box-shadow:0 0 0 4px #2563eb21,0 14px 34px #2563eb1f}button.hub-pressing,a.hub-pressing,.module-card.hub-pressing,.metric-card.hub-pressing,.learning-card.hub-pressing,.media-card.hub-pressing,.teacher-subject-card.hub-pressing,.announcement-card.hub-pressing,.student-row.hub-pressing,.slot-row.hub-pressing,.embedded-shell.hub-pressing{transform:translateY(1px) scale(.985);filter:saturate(1.08)}.hub-click-spark{position:fixed;left:var(--spark-x);top:var(--spark-y);z-index:9999;width:18px;height:18px;pointer-events:none;border-radius:999px;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,255,255,.96) 0 12%,rgba(125,211,252,.88) 13% 26%,transparent 27%),conic-gradient(from 0deg,#38bdf800,#38bdf8eb,#7c3aedc7,#38bdf800);box-shadow:0 0 #3b82f642,0 0 26px #38bdf89e;animation:hubClickSpark .62s var(--motion-curve) forwards}.hub-click-spark:before,.hub-click-spark:after{position:absolute;inset:-14px;content:"";border-radius:inherit;border:1px solid rgba(96,165,250,.44);transform:scale(.25);animation:hubClickRing .62s ease-out forwards}.hub-click-spark:after{inset:-26px;border-color:#7c3aed3d;animation-delay:70ms}@keyframes hubClickSpark{0%{opacity:0;transform:translate(-50%,-50%) scale(.55) rotate(0)}18%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scale(2.8) rotate(145deg)}}@keyframes hubClickRing{0%{opacity:.85;transform:scale(.2)}to{opacity:0;transform:scale(1.45)}}.app-shell{position:relative;display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100dvh;overflow:hidden;transition:grid-template-columns .32s var(--motion-curve)}.app-shell.sidebar-collapsed{grid-template-columns:78px minmax(0,1fr);overflow:visible}.stars{position:fixed;inset:0;pointer-events:none;z-index:0}.stars span{position:absolute;left:var(--x);top:var(--y);width:3px;height:3px;border-radius:50%;background:#38bdf8b8;box-shadow:0 0 18px #38bdf8cc;animation:twinkle 4s ease-in-out infinite;animation-delay:var(--delay)}@keyframes twinkle{0%,to{opacity:.18;transform:scale(.8)}50%{opacity:.9;transform:scale(1.35)}}.sidebar{position:sticky;top:0;z-index:3;display:flex;flex-direction:column;gap:22px;min-height:100dvh;height:100dvh;padding:22px 16px;color:#eaf2ff;background:linear-gradient(145deg,#0e1630fa,#0d254ef7 48%,#241253f5),linear-gradient(180deg,rgba(56,189,248,.14),transparent 42%);box-shadow:16px 0 35px #0718322e;overflow:hidden;isolation:isolate;transition:padding .32s cubic-bezier(.16,1,.3,1),width .32s cubic-bezier(.16,1,.3,1),left .22s cubic-bezier(.16,1,.3,1)}.sidebar-collapsed .sidebar{z-index:12;gap:14px;padding:18px 10px;overflow:visible}.sidebar:before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(120deg,transparent 0 42%,rgba(255,255,255,.08) 42.4% 42.9%,transparent 43.4%),radial-gradient(circle,rgba(255,255,255,.38) 0 1px,transparent 1.6px),radial-gradient(circle,rgba(125,211,252,.48) 0 1px,transparent 1.6px);background-position:0 0,18px 38px,108px 84px;background-size:360px 240px,130px 130px,190px 170px;opacity:.42;pointer-events:none}.brand{position:relative;display:flex;align-items:center;gap:12px;min-height:66px;padding:12px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#ffffff14;box-shadow:inset 0 1px #ffffff14;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.sidebar-inline-toggle{display:none}.sidebar-collapsed .brand{justify-content:center;min-height:58px;padding:8px}.app-shell:not(.sidebar-collapsed) .brand>div:not(.brand-mark),.app-shell:not(.sidebar-collapsed) .nav-item .nav-label,.app-shell:not(.sidebar-collapsed) .nav-item .chevron,.app-shell:not(.sidebar-collapsed) .db-card div{animation:sidebarTextReveal .26s cubic-bezier(.16,1,.3,1) both}.sidebar-collapsed .brand>div:not(.brand-mark),.sidebar-collapsed .nav-item .nav-label,.sidebar-collapsed .nav-item .chevron,.sidebar-collapsed .sub-nav-list,.sidebar-collapsed .db-card div{display:none}.sidebar-collapsed .brand-mark{width:42px;height:42px}.sidebar-collapsed .nav-section-group{align-items:center}@keyframes sidebarTextReveal{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.brand.large{align-items:flex-start}.brand-mark{display:grid;width:46px;height:46px;place-items:center;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:linear-gradient(135deg,#2563ebf2,#7c3aedf2),#ffffff1a;box-shadow:0 12px 28px #2563eb57;flex:none}.brand strong{display:block;font-size:14px;line-height:1.35}.brand span{display:block;margin-top:2px;color:#eaf2ffb3;font-size:11px;line-height:1.4}.nav-list{display:grid;gap:7px;align-content:start;padding-right:4px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(125,211,252,.45) transparent}.nav-list::-webkit-scrollbar{width:6px}.nav-list::-webkit-scrollbar-thumb{border-radius:999px;background:#7dd3fc59}.sidebar-collapsed .nav-list{overflow:visible}.nav-item{position:relative;overflow:hidden;display:grid;grid-template-columns:22px 1fr 16px;align-items:center;gap:8px;min-height:46px;padding:0 12px;color:#eaf2ffc7;border:1px solid transparent;border-radius:8px;background:transparent;text-align:left;transition:transform .18s cubic-bezier(.16,1,.3,1),color .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease}.nav-tooltip{display:none}.sidebar-collapsed .nav-item{grid-template-columns:1fr;justify-items:center;width:46px;min-height:46px;overflow:visible;padding:0}.sidebar-collapsed .nav-tooltip{position:absolute;left:calc(100% + 14px);top:50%;z-index:20;display:inline-flex;align-items:center;min-height:34px;width:max-content;max-width:230px;padding:0 12px;border:1px solid rgba(125,211,252,.28);border-radius:8px;color:#eaf2ff;background:radial-gradient(circle at 0% 50%,rgba(56,189,248,.24),transparent 44%),#0f172af0;box-shadow:0 16px 34px #0f172a52,inset 0 1px #ffffff1a;font-size:12px;font-weight:950;letter-spacing:0;line-height:1.25;opacity:0;pointer-events:none;transform:translate(-8px,-50%) scale(.96);transition:opacity .16s ease,transform .18s cubic-bezier(.16,1,.3,1);white-space:nowrap}.sidebar-collapsed .nav-tooltip:before{content:"";position:absolute;left:-6px;top:50%;width:10px;height:10px;border-left:1px solid rgba(125,211,252,.24);border-bottom:1px solid rgba(125,211,252,.24);background:#0f172af0;transform:translateY(-50%) rotate(45deg)}.sidebar-collapsed .nav-item:hover .nav-tooltip,.sidebar-collapsed .nav-item:focus-visible .nav-tooltip{opacity:1;transform:translateY(-50%) scale(1)}.sidebar-collapsed .nav-item:hover{background:radial-gradient(circle at 50% 48%,rgba(56,189,248,.28),transparent 58%),#ffffff1a;box-shadow:0 12px 26px #38bdf829,inset 0 0 0 1px #7dd3fc29;transform:translateY(-2px) scale(1.04)}.sidebar-collapsed .nav-item.active:before{inset:auto auto 6px 50%;width:22px;height:3px;transform:translate(-50%)}.nav-item:after{content:"";position:absolute;inset:10% auto 10% -36%;width:32%;transform:skew(-18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);opacity:0;transition:left .32s cubic-bezier(.16,1,.3,1),opacity .18s ease}.nav-item:hover{color:#fff;border-color:#ffffff1f;background:radial-gradient(circle at 12% 50%,rgba(56,189,248,.22),transparent 34%),#ffffff14;box-shadow:0 12px 30px #0f172a2e;transform:translate(3px) translateY(-1px)}.nav-item:hover:after{left:102%;opacity:1}.nav-item svg:first-child{color:var(--item-color)}.nav-item svg:last-child{opacity:.38}.nav-item.active{color:#fff;border-color:#fff3;background:linear-gradient(135deg,#2563ebf2,#7c3aedc7),#ffffff1f;box-shadow:0 12px 28px #2563eb57,inset 0 1px #ffffff3d}.nav-item.active:before{position:absolute;inset:9px auto 9px 7px;width:3px;content:"";border-radius:999px;background:#fff;box-shadow:0 0 18px #ffffffbd}.chevron{transition:transform .2s ease}.chevron.expanded{transform:rotate(90deg)}.nav-section-group{display:flex;flex-direction:column;gap:4px}.sub-nav-list{display:flex;flex-direction:column;gap:2px;padding-left:22px;margin-top:2px;transform-origin:top left;animation:subNavReveal .26s cubic-bezier(.16,1,.3,1) both}@keyframes subNavReveal{0%{opacity:0;transform:translateY(-8px) scaleY(.94)}to{opacity:1;transform:translateY(0) scaleY(1)}}.sub-nav-item{position:relative;overflow:hidden;display:flex;align-items:center;gap:8px;min-height:36px;padding:0 10px;color:#eaf2ff99;background:transparent;border-radius:6px;font-size:13px;text-align:left;transition:transform .18s cubic-bezier(.16,1,.3,1),color .18s ease,background .18s ease,box-shadow .18s ease}.sub-nav-item:nth-child(1){animation-delay:20ms}.sub-nav-item:nth-child(2){animation-delay:38ms}.sub-nav-item:nth-child(3){animation-delay:56ms}.sub-nav-item:nth-child(4){animation-delay:74ms}.sub-nav-item:nth-child(n+5){animation-delay:92ms}.app-shell:not(.sidebar-collapsed) .sub-nav-item{animation:subNavItemReveal .22s cubic-bezier(.16,1,.3,1) both}@keyframes subNavItemReveal{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.sub-nav-item:hover{color:#eaf2ffe6;background:#ffffff12;box-shadow:inset 0 0 0 1px #ffffff14;transform:translate(3px) translateY(-1px)}.sub-nav-item.active{color:#38bdf8;background:linear-gradient(90deg,#38bdf82e,#7c3aed14),#38bdf81a;box-shadow:inset 0 0 0 1px #38bdf829}.sub-nav-dot{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.5}.sub-nav-item.active .sub-nav-dot{opacity:1;box-shadow:0 0 6px currentColor}.sub-nav-label{flex:1}.sub-nav-badge{font-size:9px;padding:2px 6px;border-radius:9px;background:#ffffff1a;color:#ffffff80}.db-card{position:relative;display:flex;gap:10px;margin-top:auto;padding:14px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:linear-gradient(135deg,#ffffff1a,#7dd3fc14),#ffffff14;box-shadow:inset 0 1px #ffffff14}.sidebar-collapsed .db-card{justify-content:center;padding:12px 8px}.db-card strong,.db-card span{display:block;line-height:1.35}.db-card strong{font-size:12px}.db-card span{margin-top:4px;color:#eaf2ffad;font-size:11px}.main{position:relative;z-index:1;min-width:0;height:100dvh;padding:18px 22px 34px;overflow-x:hidden;overflow-y:auto;scroll-behavior:smooth;perspective:1200px;scrollbar-width:thin;scrollbar-color:rgba(37,99,235,.3) transparent}.main::-webkit-scrollbar{width:10px}.main::-webkit-scrollbar-track{background:transparent}.main::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background-clip:padding-box;background-color:#2563eb47}.main::-webkit-scrollbar-thumb:hover{background-color:#2563eb6b}.main:before{position:fixed;inset:0;z-index:-1;pointer-events:none;content:"";background:linear-gradient(115deg,transparent 0 28%,rgba(255,255,255,.32) 42%,transparent 58% 100%),repeating-linear-gradient(90deg,rgba(37,99,235,.035) 0 1px,transparent 1px 120px);opacity:.45;transform:translate(-16%);animation:hubAmbientSweep 14s ease-in-out infinite alternate}.main.hub-page-enter>:not(.topbar){animation:none}.hub-reveal{opacity:1!important;transform:none!important;filter:none!important;transition:opacity var(--motion-soft) var(--motion-curve),transform var(--motion-soft) var(--motion-curve),filter var(--motion-soft) ease,box-shadow var(--motion-fast) ease,border-color var(--motion-fast) ease,background var(--motion-fast) ease;transition-delay:calc(var(--reveal-index, 0) * 42ms);will-change:opacity,transform}.hub-reveal.hub-reveal-visible{opacity:1!important;transform:none!important;filter:none!important;animation:none!important}.topbar{animation:hubTopbarDrop .52s var(--motion-curve) both}@keyframes hubAmbientSweep{0%{opacity:.28;transform:translate(-18%) translateY(-1%)}to{opacity:.58;transform:translate(14%) translateY(1%)}}@keyframes hubPageEnter{0%{opacity:0;transform:translateY(12px) scale(.992);filter:blur(2px) saturate(.95)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0) saturate(1)}}@keyframes hubRevealSettle{0%{opacity:.72;transform:translate3d(0,8px,0) scale(.995);filter:saturate(.98)}to{opacity:1;transform:translateZ(0) scale(1);filter:saturate(1)}}@keyframes hubTopbarDrop{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.topbar{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:42px minmax(220px,1fr) auto auto auto;gap:12px;align-items:center;margin-bottom:18px;padding:14px;border:1px solid rgba(147,197,253,.36);border-radius:18px;background:radial-gradient(circle at 10% 20%,rgba(56,189,248,.16),transparent 28%),radial-gradient(circle at 92% 10%,rgba(139,92,246,.13),transparent 30%),linear-gradient(135deg,#fffffff0,#eff6ffd6);box-shadow:0 18px 46px #0f172a1a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.searchbox,.filters label{display:flex;align-items:center;gap:8px;min-height:42px;padding:0 14px;border:1px solid var(--line);border-radius:14px;background:#ffffffeb;color:var(--muted)}.searchbox input,.filters input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink)}.top-action,.profile-button,.icon-button{min-height:42px;border-radius:8px;background:#ffffffeb;color:#1e293b}.top-action:hover,.profile-button:hover,.icon-button:hover,.panel-header button:hover,.header-actions button:hover,.filters button:hover,.learning-card button:hover,.embedded-actions button:hover,.embedded-actions a:hover{transform:translateY(-2px);border-color:#3b82f661;box-shadow:var(--press-shadow)}.top-action:active,.profile-button:active,.icon-button:active,.panel-header button:active,.header-actions button:active,.filters button:active,.learning-card button:active,.embedded-actions button:active,.embedded-actions a:active{transform:translateY(0) scale(.985)}.top-action{display:inline-flex;align-items:center;gap:8px;padding:0 14px;border:1px solid var(--line)}.icon-button{position:relative;display:grid;width:42px;place-items:center;border:1px solid var(--line)}.icon-button i{position:absolute;right:9px;top:9px;width:8px;height:8px;border:2px solid white;border-radius:50%;background:#ef4444}.sidebar-toggle{display:grid}.profile-button{display:grid;grid-template-columns:36px auto 18px;align-items:center;gap:9px;padding:4px 8px 4px 4px;border:1px solid var(--line);text-align:left}.profile-button>span{overflow:hidden;display:grid;width:36px;height:36px;place-items:center;color:#fff;border-radius:50%;background:linear-gradient(135deg,#38bdf8,#2563eb)}.profile-button>span img{width:100%;height:100%;object-fit:cover}.profile-button strong,.profile-button small{display:block;line-height:1.25}.profile-button strong{font-size:12px}.profile-button small{color:var(--muted);font-size:10px}.page-stack{display:grid;gap:18px;max-width:100%;min-width:0}.page-stack>*,.main>*{max-width:100%;min-width:0}.section-title{position:relative;display:flex;align-items:center;min-height:78px;padding:18px 22px;border:1px solid rgba(147,197,253,.26);border-radius:8px;background:linear-gradient(135deg,#ffffffd1,#eff6ff99),radial-gradient(circle at 96% 12%,rgba(56,189,248,.14),transparent 32%);box-shadow:0 18px 48px #2563eb14;overflow:hidden}.section-title:before{flex:0 0 auto;width:6px;height:38px;margin-right:14px;border-radius:999px;background:linear-gradient(180deg,#2563eb,#38bdf8);content:"";box-shadow:0 10px 24px #2563eb2e}.section-title h1{margin:0;color:#0f172a;font-size:clamp(30px,3.2vw,46px);line-height:1.08;letter-spacing:0}.section-title p,.approval-hero p,.permission-hero p,.audit-hero p,.timetable-hub-hero p,.staff-hero-panel p,.report-center-hero p,.internal-hero p{display:none}.hero-panel,.panel,.module-board,.quick-actions{border:1px solid rgba(255,255,255,.78);border-radius:8px;background:var(--surface);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);max-width:100%;min-width:0}.hero-panel{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 220px;align-items:center;min-height:190px;padding:26px;overflow:hidden;background:radial-gradient(circle at 90% 10%,rgba(124,58,237,.22),transparent 38%),linear-gradient(135deg,#071832f5,#102a6be0);color:#fff}.timetable-hub-hero,.embedded-hero,.staff-hero-panel,.internal-hero,.report-center-hero,.permission-hero,.audit-hero,.approval-hero{position:relative;overflow:hidden}.hero-panel:before,.timetable-hub-hero:before,.embedded-hero:before,.staff-hero-panel:before,.internal-hero:before,.report-center-hero:before,.permission-hero:before,.audit-hero:before,.approval-hero:before{position:absolute;inset:-1px;pointer-events:none;content:"";background:linear-gradient(112deg,transparent 0 34%,rgba(255,255,255,.18) 45%,transparent 58% 100%);opacity:0;transform:translate(-34%);transition:opacity .32s ease,transform .9s var(--motion-curve)}.hero-panel:hover:before,.timetable-hub-hero:hover:before,.embedded-hero:hover:before,.staff-hero-panel:hover:before,.internal-hero:hover:before,.report-center-hero:hover:before,.permission-hero:hover:before,.audit-hero:hover:before,.approval-hero:hover:before{opacity:1;transform:translate(34%)}.system-status{display:inline-flex;align-items:center;gap:8px;margin-bottom:14px;color:#dbeafe;font-size:13px;line-height:1.45}.hero-copy h1,.section-title h1{margin:0;font-size:clamp(28px,4vw,46px);line-height:1.15;letter-spacing:0}.hero-copy p,.section-title p{margin:8px 0 0;color:#ffffffbd;line-height:1.55}.section-title{align-items:center;min-height:78px;padding:18px 22px}.section-title h1{color:#0f172a;font-size:clamp(30px,3.2vw,46px)}.section-title p{display:none}.hero-orbit{position:relative;width:180px;height:180px;justify-self:end;animation:hubFloat 5.5s ease-in-out infinite}.orbit-core{position:absolute;inset:42px;z-index:1;display:grid;place-items:center;color:#fff;border:1px solid rgba(255,255,255,.24);border-radius:50%;background:radial-gradient(circle,#38bdf8e0,#2563ebb8);box-shadow:0 18px 42px #38bdf82e,inset 0 1px #ffffff38}.orbit-core span{font-size:12px;font-weight:700}.hero-orbit i{position:absolute;inset:10px;border:1px solid rgba(125,211,252,.32);border-radius:50%;animation:hubOrbitSpin 14s linear infinite}.hero-orbit i:nth-child(3){inset:25px;transform:rotate(24deg) scaleX(.68);animation-duration:18s;animation-direction:reverse}.hero-orbit i:nth-child(4){inset:0;transform:rotate(-28deg) scaleY(.52);animation-duration:22s}@keyframes hubFloat{0%,to{transform:translateZ(0)}50%{transform:translate3d(0,-8px,0)}}@keyframes hubOrbitSpin{to{rotate:360deg}}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric-card{position:relative;overflow:hidden;transition:transform .18s cubic-bezier(.16,1,.3,1),box-shadow .18s ease,border-color .18s ease}.metric-card:hover,.module-card:hover,.media-card:hover,.quick-action:hover,.panel:hover,.module-board:hover{transform:translateY(-4px);border-color:#2563eb3d;box-shadow:0 22px 46px #0f172a1f,0 0 0 1px #93c5fd14}.metric-card:before,.module-card:before,.learning-card:before,.media-card:before,.teacher-subject-card:before,.announcement-card:before{position:absolute;inset:0;pointer-events:none;content:"";background:radial-gradient(circle at 20% 0%,rgba(56,189,248,.16),transparent 28%),linear-gradient(110deg,transparent 0 42%,rgba(255,255,255,.44) 50%,transparent 58% 100%);opacity:0;transform:translate(-28%);transition:opacity .22s ease,transform .42s cubic-bezier(.16,1,.3,1)}.metric-card:hover:before,.module-card:hover:before,.learning-card:hover:before,.media-card:hover:before,.teacher-subject-card:hover:before,.announcement-card:hover:before{opacity:1;transform:translate(28%)}.metric-card{min-height:128px;padding:18px;border:1px solid rgba(255,255,255,.82);border-radius:8px;background:var(--surface-strong);box-shadow:0 12px 32px #0f172a12}.metric-icon{display:grid;width:36px;height:36px;margin-bottom:10px;place-items:center;border-radius:8px}.metric-card.blue .metric-icon{color:#2563eb;background:#dbeafe}.metric-card.green .metric-icon{color:#059669;background:#d1fae5}.metric-card.violet .metric-icon{color:#7c3aed;background:#ede9fe}.metric-card.amber .metric-icon{color:#d97706;background:#fef3c7}.metric-card span,.metric-card small{display:block;color:var(--muted);line-height:1.45}.metric-card strong{display:block;margin:5px 0 3px;font-size:28px;line-height:1.1}.dashboard-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}.chart-panel{grid-column:span 2}.panel,.module-board,.quick-actions{padding:18px}.quick-actions-featured{position:relative;overflow:hidden;border-color:#60a5fa6b;background:radial-gradient(circle at 8% 0%,rgba(56,189,248,.2),transparent 32%),radial-gradient(circle at 92% 20%,rgba(124,58,237,.18),transparent 34%),#fffffff2}.quick-actions-featured:before{position:absolute;inset:0;pointer-events:none;content:"";background-image:radial-gradient(circle,rgba(37,99,235,.22) 0 1px,transparent 1.7px),radial-gradient(circle,rgba(168,85,247,.18) 0 1px,transparent 1.6px);background-position:22px 28px,130px 80px;background-size:160px 140px,210px 180px}.quick-actions-featured>*{position:relative;z-index:1}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;max-width:100%;min-width:0}.panel-header h2{margin:0;font-size:18px;line-height:1.3;min-width:0;overflow-wrap:anywhere}.panel-header button,.header-actions button,.filters button,.learning-card button{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;color:#1d4ed8;border:1px solid #dbeafe;border-radius:8px;background:#eff6ff;font-size:13px;line-height:1.3;max-width:100%;min-width:0}.operations-board{display:grid;grid-template-columns:.9fr 1.05fr 1.05fr;gap:16px}.operations-panel{min-width:0;padding:16px;border:1px solid rgba(203,213,225,.76);border-radius:12px;background:#fffffff0;box-shadow:0 14px 32px #0f172a0f}.operations-summary{background:linear-gradient(135deg,#eff6fffa,#fffffff0),radial-gradient(circle at 100% 0%,rgba(16,185,129,.12),transparent 34%)}.operations-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.operations-kpis span{display:grid;gap:4px;min-height:72px;padding:12px;border:1px solid rgba(219,234,254,.9);border-radius:8px;background:#fff}.operations-kpis strong{color:#0f172a;font-size:24px;font-weight:950;line-height:1}.operations-kpis small{color:#64748b;font-size:12px;font-weight:850;line-height:1.3}.operations-list{display:grid;gap:8px}.operations-row{--row-tone: #2563eb;display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;align-items:center;width:100%;min-height:54px;padding:9px 10px;border:1px solid color-mix(in srgb,var(--row-tone) 18%,#e2e8f0);border-left:4px solid var(--row-tone);border-radius:8px;color:#0f172a;background:#f8fafc;text-align:left}button.operations-row{cursor:pointer}.operations-row svg{color:var(--row-tone)}.operations-row span{display:grid;gap:3px;min-width:0}.operations-row strong{overflow:hidden;color:#0f172a;font-size:13px;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.operations-row small{color:#64748b;font-size:12px;font-weight:820}.operations-row.red{--row-tone: #ef4444}.operations-row.amber{--row-tone: #f59e0b}.operations-row.violet{--row-tone: #7c3aed}.operations-row.green{--row-tone: #10b981}.operations-row.slate{--row-tone: #64748b}.operations-row.announcement.blue{--row-tone: #2563eb}.operations-row.announcement.green{--row-tone: #10b981}.operations-row.announcement.amber{--row-tone: #f59e0b}.operations-row.announcement.rose{--row-tone: #f43f5e}.operations-row.announcement.violet{--row-tone: #8b5cf6}.operations-row.announcement.cyan{--row-tone: #06b6d4}.operations-empty{min-height:54px;padding:14px;border:1px dashed #cbd5e1;border-radius:8px;color:#64748b;background:#f8fafc;font-size:13px;font-weight:850}.calendar-layout,.split-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:16px}.calendar-panel{overflow:hidden}.calendar-month-controls{display:inline-flex;align-items:center;gap:8px}.calendar-month-controls strong{min-width:150px;color:#0f172a;text-align:center;font-size:14px}.calendar-month-controls button{width:34px;min-height:34px;padding:0;justify-content:center}.calendar-message,.calendar-loading,.calendar-empty{border:1px solid #dbeafe;border-radius:8px;background:#eff6ff;color:#1e3a8a;font-size:13px;font-weight:800}.calendar-message{margin-bottom:12px;padding:10px 12px}.calendar-board{display:grid;gap:8px}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-weekdays span{color:#64748b;text-align:center;font-size:12px;font-weight:900}.mini-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.mini-calendar button{position:relative;display:grid;aspect-ratio:1;place-items:center;min-width:0;border:1px solid transparent;border-radius:8px;color:#334155;background:#f8fafc;font-size:12px;font-weight:850;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}.mini-calendar button:before{position:absolute;inset:4px;pointer-events:none;content:"";border-radius:8px;opacity:0;background:radial-gradient(circle at 35% 20%,rgba(255,255,255,.78),transparent 34%);transition:opacity .16s ease}.mini-calendar button:hover{transform:translateY(-2px);border-color:#bfdbfe;background:#eff6ff}.mini-calendar button span{position:relative;z-index:1;line-height:1}.mini-calendar .today{color:#fff;background:#2563eb}.mini-calendar .selected{z-index:3;transform:scale(1.08);border-color:#1d4ed8;background:linear-gradient(145deg,#eff6ff,#dbeafe);box-shadow:0 0 0 4px #2563eb33,0 16px 30px #2563eb2e}.mini-calendar .has-events:not(.today){color:#0f172a;border-color:#2563eb57;background:linear-gradient(145deg,#eff6fffa,#dbeafef0),#eef6ff;box-shadow:0 9px 18px #2563eb1f,inset 0 0 0 1px #ffffffb8}.mini-calendar .has-events:before{opacity:1}.mini-calendar .has-events:after{position:absolute;left:7px;right:7px;bottom:5px;height:3px;content:"";border-radius:999px;background:linear-gradient(90deg,#38bdf8,#2563eb);box-shadow:0 0 10px #2563eb6b}.mini-calendar .has-events.event-tone-red:not(.today){border-color:#ef444461;background:linear-gradient(145deg,#fff7f7,#fee2e2)}.mini-calendar .has-events.event-tone-red:after{background:linear-gradient(90deg,#fb7185,#ef4444);box-shadow:0 0 10px #ef444461}.mini-calendar .has-events.event-tone-amber:not(.today){border-color:#f59e0b6b;background:linear-gradient(145deg,#fffbeb,#fde68a)}.mini-calendar .has-events.event-tone-amber:after{background:linear-gradient(90deg,#fbbf24,#f59e0b);box-shadow:0 0 10px #f59e0b66}.mini-calendar .has-events.event-tone-violet:not(.today){border-color:#7c3aed66;background:linear-gradient(145deg,#f5f3ff,#ddd6fe)}.mini-calendar .has-events.event-tone-violet:after{background:linear-gradient(90deg,#a78bfa,#7c3aed);box-shadow:0 0 10px #7c3aed61}.mini-calendar .has-events.event-tone-green:not(.today){border-color:#10b98166;background:linear-gradient(145deg,#ecfdf5,#bbf7d0)}.mini-calendar .has-events.event-tone-green:after{background:linear-gradient(90deg,#34d399,#10b981);box-shadow:0 0 10px #10b9815c}.mini-calendar .has-events.event-tone-slate:not(.today){border-color:#64748b57;background:linear-gradient(145deg,#f8fafc,#e2e8f0)}.mini-calendar .has-events.event-tone-admin{color:#7f1d1d;border-color:#f87171b8;background:radial-gradient(circle at 32% 18%,rgba(255,255,255,.94),transparent 33%),linear-gradient(145deg,#fff7f7,#ffe4e6 52%,#fecaca);box-shadow:0 12px 26px #ef44442e,inset 0 0 0 1px #ffffffc2}.mini-calendar .has-events.event-tone-admin:after{height:4px;background:linear-gradient(90deg,#fb7185,#ef4444,#dc2626);box-shadow:0 0 12px #ef444480}.mini-calendar .selected.has-events{color:#7f1d1d;border-color:#ef4444;background:radial-gradient(circle at 32% 18%,rgba(255,255,255,.98),transparent 33%),linear-gradient(145deg,#fff1f2,#fecaca);transform:scale(1.13);box-shadow:0 0 0 5px #ef444433,0 18px 34px #ef444447,0 0 0 12px #f8717114}.mini-calendar button i{position:absolute;right:5px;bottom:4px;display:grid;min-width:16px;height:16px;place-items:center;border-radius:999px;color:#fff;background:linear-gradient(135deg,#ef4444,#dc2626);font-size:10px;font-style:normal;line-height:1;z-index:2;box-shadow:0 5px 12px #dc262657}.mini-calendar .muted{color:#94a3b8;background:#f8fafc;opacity:.58}.event-list{display:grid;gap:10px;align-content:start}.selected-day-summary,.calendar-loading,.calendar-empty{display:flex;align-items:center;gap:10px;padding:12px}.selected-day-summary{border:1px solid #e0e7ff;border-radius:8px;background:linear-gradient(135deg,#f8fbff,#eef6ff)}.selected-day-summary svg{color:#2563eb}.selected-day-summary strong,.selected-day-summary small,.calendar-empty strong,.calendar-empty small{display:block;line-height:1.35}.selected-day-summary small,.calendar-empty small{color:#64748b}.event-row{display:grid;grid-template-columns:72px 1fr auto;gap:10px;align-items:start;min-height:62px;padding:12px;border-left:4px solid #2563eb;border-radius:8px;background:#f8fafc}.event-row strong{display:inline-flex;align-items:center;gap:5px;font-size:13px}.event-row span{display:grid;gap:3px;line-height:1.4}.event-row b{color:#111827}.event-row small{color:#64748b;font-weight:760}.event-row em{color:#92400e;font-size:12px;font-style:normal;font-weight:850}.event-row.completed{opacity:.72}.event-row.completed b{text-decoration:line-through}.event-row.blue{border-left-color:#2563eb}.event-row.red{border-left-color:#ef4444}.event-row.amber{border-left-color:#f59e0b}.event-row.violet{border-left-color:#7c3aed}.event-row.green{border-left-color:#10b981}.event-row.slate{border-left-color:#64748b}.event-actions{display:inline-flex;gap:5px}.event-actions button{display:grid;width:30px;height:30px;place-items:center;border:1px solid #dbeafe;border-radius:8px;color:#1d4ed8;background:#eff6ff;cursor:pointer}.event-actions button.danger{color:#dc2626;border-color:#fee2e2;background:#fff1f2}.calendar-admin-form{margin-top:16px;padding:14px;border:1px solid #dbeafe;border-radius:8px;background:radial-gradient(circle at 100% 0%,rgba(37,99,235,.09),transparent 32%),#f8fbff}.calendar-form-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.calendar-form-header button{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border:1px solid #e2e8f0;border-radius:8px;color:#475569;background:#fff}.calendar-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.calendar-form-grid label{display:grid;gap:6px;color:#334155;font-size:13px;font-weight:900}.calendar-form-grid label.wide{grid-column:span 3}.calendar-quick-tools{display:grid;grid-column:span 3;grid-template-columns:minmax(260px,.88fr) minmax(320px,1.12fr);gap:12px;padding:12px;border:1px solid rgba(147,197,253,.28);border-radius:14px;background:radial-gradient(circle at 8% 0%,rgba(56,189,248,.12),transparent 28%),linear-gradient(135deg,#fffffff0,#eff6ffcc)}.calendar-quick-tools>div{display:grid;gap:8px;min-width:0}.calendar-quick-tools>div>span{color:#475569;font-size:12px;font-weight:950}.calendar-chip-row,.calendar-emoji-row{display:flex;flex-wrap:wrap;gap:7px}.calendar-chip-row button,.calendar-emoji-row button{display:inline-flex;align-items:center;justify-content:center;min-height:34px;border:1px solid rgba(191,219,254,.86);border-radius:999px;color:#1e3a8a;background:#ffffffe6;font:inherit;font-size:12px;font-weight:900;cursor:pointer}.calendar-chip-row button{gap:6px;padding:0 11px}.calendar-chip-row button small{color:#64748b;font-size:10px}.calendar-chip-row button:hover,.calendar-chip-row button.active,.calendar-emoji-row button:hover{color:#fff;border-color:transparent;background:linear-gradient(135deg,#2563eb,#7c3aed);box-shadow:0 10px 22px #2563eb2e;transform:translateY(-1px)}.calendar-chip-row button:hover small,.calendar-chip-row button.active small{color:#ffffffc2}.calendar-emoji-row button{gap:5px;padding:0 9px 0 7px}.calendar-emoji-row button>span{font-size:16px;line-height:1}.calendar-emoji-row button small{color:inherit;font-size:10px}.calendar-form-grid input,.calendar-form-grid select,.calendar-form-grid textarea{width:100%;min-width:0;border:1px solid #cbd5e1;border-radius:8px;padding:10px 11px;color:#0f172a;background:#ffffffeb;font:inherit;font-weight:760}.calendar-form-grid textarea{resize:vertical}.calendar-save{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;margin-top:12px;padding:0 16px;border:0;border-radius:8px;color:#fff;background:linear-gradient(135deg,#2563eb,#4f46e5);font-weight:900;cursor:pointer}.event-row.blue{border-left:4px solid #2563eb}.event-row.red{border-left:4px solid #ef4444}.event-row.amber{border-left:4px solid #f59e0b}.event-row.violet{border-left:4px solid #7c3aed}.notice-row{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #eef2f7}.notice-row:last-child{border-bottom:0}.notice-row>div{display:grid;width:42px;height:42px;place-items:center;color:#2563eb;border-radius:8px;background:#eff6ff}.notice-row strong,.notice-row small{display:block;line-height:1.42}.notice-row small{color:var(--muted)}.line-chart{display:grid;grid-template-columns:repeat(7,1fr);align-items:end;gap:16px;height:180px;padding:16px;border-radius:8px;background:linear-gradient(#e2e8f0 1px,transparent 1px) 0 0 / 100% 25%,#f8fafc}.line-chart i{position:relative;display:block;height:var(--height);min-height:34px;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,#38bdf8,#2563eb)}.line-chart span{position:absolute;left:50%;top:-22px;transform:translate(-50%);color:#475569;font-size:11px;font-style:normal}.action-grid{display:grid;grid-template-columns:repeat(9,minmax(104px,1fr));gap:12px}.quick-action{position:relative;display:grid;min-height:112px;align-content:center;justify-items:center;gap:10px;overflow:hidden;padding:14px 10px;color:#0f172a;border:1px solid rgba(148,163,184,.22);border-radius:8px;background:linear-gradient(180deg,#fffffffa,#f8fafcf5),radial-gradient(circle at top,rgba(96,165,250,.22),transparent 42%);box-shadow:0 12px 26px #0f172a14}.quick-action:before{position:absolute;inset:0;pointer-events:none;content:"";background:radial-gradient(circle at 50% 18%,rgba(56,189,248,.2),transparent 36%),linear-gradient(120deg,transparent 0 38%,rgba(255,255,255,.6) 48%,transparent 58% 100%);opacity:0;transform:translate(-22%);transition:opacity .18s ease,transform .38s cubic-bezier(.16,1,.3,1)}.quick-action:after{position:absolute;inset:auto 12px 10px;height:3px;border-radius:999px;content:"";background:linear-gradient(90deg,#38bdf8,#7c3aed);opacity:0;transition:opacity .16s ease,transform .16s ease;transform:translateY(6px)}.quick-action svg{width:30px;height:30px;padding:5px;color:#2563eb;border-radius:8px;background:#eff6ff;box-shadow:inset 0 0 0 1px #3b82f61f;transition:transform .18s cubic-bezier(.16,1,.3,1),box-shadow .18s ease}.quick-action span{font-size:13px;font-weight:700;line-height:1.35;text-align:center}.quick-action.quick-action-favorite{border-color:#facc156b;background:linear-gradient(180deg,#fffffffa,#fffbebf5),radial-gradient(circle at top,rgba(250,204,21,.24),transparent 44%)}.quick-action .quick-favorite-emoji{display:grid;width:40px;height:40px;place-items:center;border:1px solid rgba(250,204,21,.32);border-radius:12px;background:#fff7d6;box-shadow:0 7px 16px #b453091f;font-size:24px}.quick-action:hover:after,.quick-action:focus-visible:after{opacity:1;transform:translateY(0)}.quick-action:hover:before,.quick-action:focus-visible:before{opacity:1;transform:translate(26%)}.quick-action:hover svg,.quick-action:focus-visible svg{transform:translateY(-2px) scale(1.04);box-shadow:inset 0 0 0 1px #3b82f62e,0 12px 24px #2563eb29}.school-settings-panel{padding:30px;overflow:hidden;background:linear-gradient(135deg,#fffffff5,#f0f7ffeb),#fffffff0}.school-settings-form{display:grid;gap:22px;max-width:860px}.logo-upload-card{display:grid;grid-template-columns:116px minmax(0,1fr);gap:20px;align-items:center;padding:18px;border:1px solid rgba(148,163,184,.28);border-radius:8px;background:linear-gradient(135deg,#eff6fff2,#f5f3ffd1);box-shadow:inset 0 1px #ffffffb8}.logo-preview{display:grid;width:108px;height:108px;place-items:center;color:#64748b;border:1px dashed rgba(37,99,235,.36);border-radius:8px;background:#ffffffc7;overflow:hidden}.logo-preview img{width:100%;height:100%;object-fit:contain;padding:8px}.logo-upload-copy{display:grid;gap:8px}.logo-upload-copy label,.school-settings-panel label{color:#1e293b!important;font-weight:800}.logo-upload-copy p,.school-settings-panel p{margin:0;color:#64748b!important;line-height:1.55}.logo-upload-button,.primary-save-button{display:inline-flex;width:fit-content;align-items:center;gap:8px;min-height:42px;padding:0 16px;color:#fff;border-radius:8px;background:linear-gradient(135deg,#2563eb,#7c3aed);box-shadow:0 12px 28px #2563eb38;font-weight:800}.logo-upload-button:disabled,.primary-save-button:disabled{cursor:wait;opacity:.72}.logo-message{color:#64748b;font-size:12px;line-height:1.45}.logo-message.success{color:#047857;font-weight:800}.input-group{display:grid;gap:8px}.settings-grid{display:grid;gap:16px}.settings-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-grid.compact{gap:8px}.school-settings-panel input,.school-settings-panel textarea{width:100%;min-height:46px;padding:10px 14px;color:#0f172a!important;background:#fff!important;border-color:#cbd5e1!important;border-style:solid;border-width:1px;border-radius:8px;outline:0;box-shadow:inset 0 1px 2px #0f172a0d}.school-settings-panel textarea{resize:vertical}.school-settings-panel input:focus,.school-settings-panel textarea:focus{border-color:#2563eb!important;box-shadow:0 0 0 4px #2563eb1f}.school-settings-panel input::placeholder,.school-settings-panel textarea::placeholder{color:#94a3b8}.settings-actions{padding-top:6px}.embedded-module-view{min-height:calc(100dvh - 120px)}.embedded-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:18px;align-items:stretch;padding:22px;color:#fff;border:1px solid rgba(255,255,255,.68);border-radius:12px;background:linear-gradient(135deg,#071832f5,#261c56e6),radial-gradient(circle at 84% 12%,color-mix(in srgb,var(--module-accent) 42%,transparent),transparent 38%);box-shadow:0 18px 46px #0f172a24;overflow:hidden}.embedded-title{display:grid;grid-template-columns:56px minmax(0,1fr);gap:14px;align-items:start}.embedded-icon{display:grid;width:54px;height:54px;place-items:center;border:1px solid rgba(255,255,255,.22);border-radius:12px;background:color-mix(in srgb,var(--module-accent) 68%,rgba(255,255,255,.16));box-shadow:0 16px 34px color-mix(in srgb,var(--module-accent) 30%,transparent)}.embedded-title p,.embedded-title h1,.embedded-title small{display:block;margin:0}.embedded-title p{color:#dbeafec7;font-weight:800}.embedded-title h1{margin-top:4px;font-size:clamp(28px,3.2vw,42px);line-height:1.15}.embedded-title small{max-width:760px;margin-top:8px;color:#ffffffc2;font-size:14px;line-height:1.62}.embedded-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.embedded-status-grid div{min-height:86px;padding:14px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:#ffffff17;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.embedded-status-grid span,.embedded-status-grid strong{display:block;line-height:1.4}.embedded-status-grid span{color:#dbeafeb8;font-size:12px}.embedded-status-grid strong{margin-top:8px;color:#fff;font-size:13px}.embedded-shell{display:grid;gap:14px;padding:14px;border:1px solid rgba(255,255,255,.78);border-radius:12px;background:linear-gradient(135deg,#fffffff5,#f0f7ffe6),#fffffff0;box-shadow:var(--shadow)}.embedded-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px;border:1px solid rgba(148,163,184,.24);border-radius:10px;background:#f8fafce0}.embedded-toolbar strong,.embedded-toolbar span{display:block;line-height:1.45}.embedded-toolbar strong{color:#0f172a}.embedded-toolbar span{margin-top:3px;color:#64748b;font-size:12px}.embedded-actions{display:inline-flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.embedded-actions button,.embedded-actions a{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 13px;color:#1d4ed8;border:1px solid #dbeafe;border-radius:8px;background:#eff6ff;font-size:13px;font-weight:800;text-decoration:none}.embedded-actions a{color:#fff;border-color:transparent;background:linear-gradient(135deg,#2563eb,#7c3aed)}.sso-bridge-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid #dbeafe;border-radius:10px;background:#eff6ff}.sso-bridge-card.waiting{border-color:#fde68a;background:#fffbeb}.sso-bridge-icon{display:grid;width:40px;height:40px;place-items:center;color:#1d4ed8;border-radius:10px;background:#fff}.sso-bridge-card.waiting .sso-bridge-icon{color:#b45309}.sso-bridge-card strong,.sso-bridge-card span{display:block;line-height:1.45}.sso-bridge-card strong{color:#0f172a}.sso-bridge-card span{color:#475569;font-size:12px}.sso-bridge-chip{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;color:#92400e;border-radius:999px;background:#fef3c7;font-size:12px;font-weight:900;white-space:nowrap}.sso-bridge-chip.ready{color:#047857;background:#d1fae5}.embedded-frame-wrap{position:relative;min-height:68dvh;overflow:hidden;border:1px solid #dbe3ef;border-radius:12px;background:linear-gradient(135deg,#f8fbff,#f4f0ff)}.embedded-frame-wrap iframe{display:block;width:100%;height:68dvh;min-height:620px;border:0;background:#fff}.embedded-frame-wrap.is-loading iframe{opacity:.24}.embedded-frame-loading{position:absolute;inset:18px;z-index:3;display:grid;place-items:center;align-content:center;gap:10px;padding:24px;color:#0f172a;border:1px dashed rgba(96,165,250,.44);border-radius:14px;background:radial-gradient(circle at 50% 0%,rgba(14,165,233,.13),transparent 34%),linear-gradient(135deg,#fffffff0,#eff6ffe6);text-align:center}.embedded-frame-loading strong{font-size:18px;font-weight:950}.embedded-frame-loading small{max-width:560px;color:#475569;font-size:13px;font-weight:800;line-height:1.55}.embedded-frame-spinner{width:34px;height:34px;border:4px solid rgba(96,165,250,.24);border-top-color:#2563eb;border-radius:999px;animation:hubSpin .9s linear infinite}.embedded-frame-wrap.is-link-first{display:grid;min-height:280px}.embedded-link-card{display:grid;place-items:center;align-content:center;gap:10px;min-height:240px;padding:28px;text-align:center}.embedded-link-card strong,.embedded-link-card span{display:block;line-height:1.45}.embedded-link-card strong{color:#0f172a;font-size:22px}.embedded-link-card span{color:#64748b;font-size:13px}.embedded-frame-note{display:grid;gap:3px;padding:10px 12px;color:#475569;border-top:1px solid #e2e8f0;background:#f8fafcf2;font-size:12px}.embedded-frame-note strong{color:#0f172a}.embedded-data-plan{padding:12px 14px;border:1px solid rgba(37,99,235,.12);border-radius:10px;background:linear-gradient(135deg,#eff6fff5,#f5f3ffeb)}.embedded-data-plan strong,.embedded-data-plan p{display:block;margin:0;line-height:1.5}.embedded-data-plan strong{color:#1d4ed8}.embedded-data-plan p{margin-top:4px;color:#475569}.module-grid,.learning-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.module-board.compact .module-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.module-card,.learning-card{position:relative;display:grid;gap:12px;overflow:hidden;padding:16px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.module-card-top,.module-card footer,.learning-card footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.module-card h3,.learning-card h3{margin:0;font-size:17px;line-height:1.3}.module-card p,.learning-card p{margin:0;color:var(--muted);line-height:1.5}.module-card footer span,.learning-card small{color:#64748b;font-size:12px;line-height:1.4}.ready,.waiting,.external,.designing{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.2}.ready{color:#047857;background:#d1fae5}.waiting{color:#b45309;background:#fef3c7}.external{color:#4338ca;background:#e0e7ff}.designing{color:#be185d;background:#fce7f3}.filters{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:10px;margin-bottom:12px;max-width:100%;min-width:0}.header-actions{display:flex;flex-wrap:wrap;gap:8px;max-width:100%;min-width:0}.table-wrap{max-width:100%;min-width:0;overflow-x:auto}.student-table-card,.staff-directory-panel,.approval-panel,.report-preview-shell,.internal-panel,.permission-panel,.audit-log-list,.timetable-cell-list,.hub-timetable-board,.timetable-room-board,.schedule-board-shell{max-width:100%;min-width:0}table{width:100%;min-width:640px;border-collapse:collapse}th,td{padding:13px 12px;border-bottom:1px solid #eef2f7;text-align:left;line-height:1.45}th{color:#64748b;background:#f8fafc;font-size:12px}td{font-size:13px}.link-status{display:inline-flex;align-items:center;gap:5px;color:#b45309;font-weight:700}.link-status.linked{color:#047857}.schedule-grid{display:grid;grid-template-columns:repeat(5,minmax(92px,1fr));gap:6px;overflow-x:auto}.schedule-grid strong,.schedule-grid span{display:grid;min-height:52px;place-items:center;padding:8px;border-radius:8px;line-height:1.35;text-align:center}.schedule-grid strong{color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed)}.schedule-grid span{background:#eef6ff}.schedule-grid .break{color:#92400e;background:#fef3c7}.learning-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.media-card{position:relative;display:grid;min-height:190px;grid-template-rows:auto 1fr;gap:16px;padding:18px;border:1px solid rgba(148,163,184,.24);border-radius:8px;color:#0f172a;background:radial-gradient(circle at 88% 8%,rgba(236,72,153,.14),transparent 34%),linear-gradient(145deg,#fffffffa,#f8fafcfa);box-shadow:0 16px 36px #0f172a14;text-align:left}.media-card:disabled{cursor:default}.media-card:not(:disabled):focus-visible{outline:0;box-shadow:0 0 0 4px #ec489924,0 20px 42px #0f172a1c}.media-icon{display:grid;width:54px;height:54px;place-items:center;color:#be185d;border-radius:8px;background:#fce7f3}.media-info{display:grid;align-content:end;gap:8px}.media-info strong{font-size:18px;line-height:1.25}.media-info small{color:#64748b;font-weight:800}.media-meta{display:flex;flex-wrap:wrap;gap:7px}.media-meta span{max-width:100%;overflow-wrap:anywhere}.media-open-icon{position:absolute;right:16px;top:16px;color:#94a3b8}.learning-card{min-height:230px;background:radial-gradient(circle at 90% 0%,rgba(236,72,153,.14),transparent 34%),#fff}.learning-icon{display:grid;width:54px;height:54px;place-items:center;color:#be185d;border-radius:8px;background:#fce7f3}.learning-card>span{color:#7c3aed;font-size:13px;font-weight:800}.integration-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.integration-strip article{display:grid;gap:8px;padding:16px;border:1px solid rgba(255,255,255,.84);border-radius:8px;background:#fff;box-shadow:0 12px 28px #0f172a0f}.integration-strip i{display:block;width:34px;height:5px;border-radius:999px}.integration-strip span{color:var(--muted);font-size:12px}.integration-strip strong{font-size:18px}.system-health-panel{display:grid;gap:16px;margin-bottom:20px;padding:22px;border:1px solid #ccfbf1;border-radius:18px;background:radial-gradient(circle at 8% 12%,rgba(20,184,166,.16),transparent 34%),radial-gradient(circle at 92% 10%,rgba(59,130,246,.14),transparent 34%),#fff;box-shadow:0 22px 60px #0f172a14}.system-health-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.system-health-head span,.system-health-head p{display:flex;align-items:center;gap:8px;margin:0;color:#475569}.system-health-head h2{margin:8px 0;color:#0f172a;font-size:22px;letter-spacing:0}.system-health-head button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:8px;padding:10px 14px;color:#0f766e;border:1px solid #99f6e4;border-radius:12px;background:#f0fdfa;font-weight:900;cursor:pointer}.system-health-head button:disabled{cursor:wait;opacity:.7}.health-summary-grid,.health-core-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.health-summary-grid article,.health-core-card{padding:13px;border:1px solid #e2e8f0;border-radius:12px;background:#ffffffdb}.health-summary-grid article.attention{border-color:#fde68a;background:#fffbeb}.health-summary-grid span,.health-core-card span{display:block;color:#64748b;font-size:12px;font-weight:850}.health-summary-grid strong,.health-core-card strong{display:block;margin-top:5px;color:#0f172a;font-size:24px}.health-core-card strong{font-size:16px}.health-core-card small{display:block;margin-top:6px;color:#475569;font-weight:750;line-height:1.45}.health-core-card.ready{border-color:#bbf7d0}.health-core-card.attention,.health-core-card.missing{border-color:#fde68a;background:#fffbeb}.health-module-list{display:grid;gap:10px}.health-module-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.health-module-card strong,.health-module-card span,.health-module-card small{display:block;line-height:1.45}.health-module-card strong{color:#0f172a}.health-module-card span,.health-module-card small{color:#64748b;font-size:12px;font-weight:800}.health-module-card small{margin-top:4px;color:#475569}.health-module-chips{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}.health-chip{display:inline-flex;min-height:28px;align-items:center;padding:0 9px;color:#0f766e;border-radius:999px;background:#ccfbf1;font-size:12px;font-weight:900;white-space:nowrap}.health-chip.needs_review,.health-chip.pending_subdomain,.health-chip.summary_pending,.health-chip.not_started{color:#92400e;background:#fef3c7}.health-chip.hub_calendar_exists{color:#1d4ed8;background:#dbeafe}.linked-subdomain-panel{display:grid;gap:16px;margin-bottom:20px;padding:22px;border:1px solid #dbeafe;border-radius:18px;background:radial-gradient(circle at 10% 12%,rgba(20,184,166,.14),transparent 34%),radial-gradient(circle at 92% 8%,rgba(37,99,235,.12),transparent 34%),#fff;box-shadow:0 22px 60px #0f172a14}.linked-subdomain-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.linked-subdomain-head span,.linked-subdomain-head p{display:flex;align-items:center;gap:8px;margin:0;color:#475569}.linked-subdomain-head h2{margin:8px 0;color:#0f172a;font-size:22px;letter-spacing:0}.linked-subdomain-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.linked-subdomain-card{display:grid;gap:12px;min-height:100%;padding:16px;border:1px solid color-mix(in srgb,var(--module-accent) 24%,#e2e8f0);border-radius:14px;background:linear-gradient(180deg,color-mix(in srgb,var(--module-accent) 8%,#ffffff),#fff 44%);box-shadow:0 14px 30px #0f172a0f}.linked-subdomain-title{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:center}.linked-subdomain-title>span{display:grid;width:42px;height:42px;place-items:center;color:#fff;border-radius:12px;background:var(--module-accent);box-shadow:0 12px 22px color-mix(in srgb,var(--module-accent) 28%,transparent)}.linked-subdomain-title strong,.linked-subdomain-title small,.linked-subdomain-card p,.linked-subdomain-plan strong,.linked-subdomain-plan span{display:block;line-height:1.45}.linked-subdomain-title strong{color:#0f172a;font-size:16px}.linked-subdomain-title small,.linked-subdomain-card p,.linked-subdomain-plan span{color:#64748b;font-size:12px;font-weight:800}.linked-subdomain-card p{margin:0;min-height:52px;color:#475569;line-height:1.55}.linked-subdomain-chips{display:flex;flex-wrap:wrap;gap:7px}.linked-subdomain-chips span{display:inline-flex;min-height:28px;align-items:center;padding:0 9px;border-radius:999px;font-size:12px;font-weight:900}.linked-subdomain-chips .ready{color:#047857;background:#d1fae5}.linked-subdomain-chips .pending{color:#92400e;background:#fef3c7}.linked-subdomain-chips .neutral{color:#1d4ed8;background:#dbeafe}.linked-subdomain-plan{padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}.linked-subdomain-plan strong{color:#0f172a;font-size:13px}.linked-subdomain-plan span{margin-top:3px}.linked-subdomain-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.linked-subdomain-actions button,.linked-subdomain-actions a{display:inline-flex;min-height:38px;align-items:center;justify-content:center;gap:7px;padding:0 12px;border:1px solid #dbeafe;border-radius:10px;background:#eff6ff;color:#1d4ed8;font-size:13px;font-weight:900;text-decoration:none}.linked-subdomain-actions a{border-color:transparent;background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff}.core-sync-panel{background:radial-gradient(circle at 10% 15%,rgba(56,189,248,.18),transparent 34%),radial-gradient(circle at 88% 10%,rgba(124,58,237,.16),transparent 34%),#fff;border:1px solid #dbeafe;border-radius:18px;box-shadow:0 22px 60px #0f172a14;display:grid;gap:16px;margin-bottom:20px;padding:22px}.core-sync-panel>div:first-child span,.core-sync-panel>div:first-child p{align-items:center;color:#475569;display:flex;gap:8px;margin:0}.core-sync-panel h2{color:#0f172a;font-size:22px;letter-spacing:0;margin:8px 0}.core-sync-panel .primary{align-items:center;background:linear-gradient(135deg,#2563eb,#7c3aed);border:0;border-radius:12px;color:#fff;cursor:pointer;display:inline-flex;font-weight:900;gap:8px;justify-content:center;min-height:44px;padding:11px 16px;width:fit-content}.core-sync-panel .primary:disabled{cursor:wait;opacity:.7}.core-sync-message{background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;color:#1d4ed8;font-weight:850;padding:11px 13px}.core-sync-metrics{display:grid;gap:10px;grid-template-columns:repeat(6,minmax(0,1fr))}.core-sync-metrics article{background:#fffc;border:1px solid #e2e8f0;border-radius:12px;padding:12px}.core-sync-metrics span{color:#64748b;display:block;font-size:12px;font-weight:850}.core-sync-metrics strong{color:#0f172a;display:block;font-size:24px;margin-top:5px}.core-sync-detail{color:#475569;display:grid;gap:6px;font-weight:800}.module-list{display:grid;gap:8px}.module-row{display:grid;grid-template-columns:42px minmax(0,1fr) 110px 130px;gap:12px;align-items:center;min-height:62px;padding:10px;border:1px solid #eef2f7;border-radius:8px;background:#fbfdff}.row-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:8px;background:#fff}.module-row strong,.module-row small{display:block;line-height:1.4}.module-row small{color:var(--muted)}.modal-layer{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:20px;background:#0718328a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.login-preview{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);width:min(920px,100%);min-height:480px;overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#fff;box-shadow:0 30px 90px #0000003d}.close-button{position:absolute;right:14px;top:14px;z-index:2;display:grid;width:44px;height:44px;place-items:center;color:#334155;border-radius:8px;background:#ffffffe0}.login-visual{display:grid;align-content:space-between;min-height:480px;padding:34px;color:#fff;background:radial-gradient(circle at 28% 24%,rgba(56,189,248,.24),transparent 20%),linear-gradient(145deg,#071832,#102a6b 64%,#28135f)}.school-scene{position:relative;min-height:230px}.school-scene>span{position:absolute;width:4px;height:4px;border-radius:50%;background:#dbeafe;box-shadow:0 0 18px #38bdf8}.school-scene>span:nth-child(1){left:14%;top:20%}.school-scene>span:nth-child(2){left:52%;top:8%}.school-scene>span:nth-child(3){right:14%;top:30%}.building{position:absolute;left:50%;bottom:12px;width:220px;height:118px;transform:translate(-50%);border:1px solid rgba(191,219,254,.5);background:linear-gradient(180deg,#1d4ed8,#0f2f6f);clip-path:polygon(0 38%,50% 0,100% 38%,100% 100%,0 100%)}.building i{position:absolute;left:50%;top:44px;width:48px;height:74px;transform:translate(-50%);background:#ffffff2e}.building b{position:absolute;top:62px;width:30px;height:28px;background:#dbeafed1}.building b:nth-child(2){left:28px}.building b:nth-child(3){right:28px}.building b:nth-child(4){left:95px;top:18px;border-radius:50%}.login-form{display:grid;align-content:center;gap:16px;padding:54px}.login-form h2{margin:0;font-size:26px}.login-form label{display:grid;gap:7px;color:#475569;font-size:13px;font-weight:700}.login-form input{min-height:44px;padding:0 12px;border:1px solid #dbe3ef;border-radius:8px;outline:0}.primary-button{min-height:46px;color:#fff;border-radius:8px;background:linear-gradient(135deg,#2563eb,#1d4ed8);font-weight:800}.backdrop{display:none}@media(max-width:1180px){.metrics-grid,.module-grid,.linked-subdomain-grid,.module-board.compact .module-grid,.learning-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.core-sync-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.health-summary-grid,.health-core-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.action-grid{grid-template-columns:repeat(5,minmax(90px,1fr))}.split-grid,.operations-board,.calendar-layout,.calendar-form-grid{grid-template-columns:1fr}.calendar-form-grid label.wide,.calendar-quick-tools{grid-column:span 1}.calendar-quick-tools,.event-row{grid-template-columns:1fr}.event-actions{justify-content:flex-end}}@media(max-width:860px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-320px;top:0;width:min(300px,86vw);transform:none;transition:left .18s ease}.sidebar.open{left:0}.sidebar-inline-toggle{display:grid;place-items:center;width:36px;height:36px;margin-left:auto;border:1px solid rgba(255,255,255,.18);border-radius:8px;color:#eaf2ff;background:#ffffff14}.backdrop{position:fixed;inset:0;z-index:2;display:block;background:#0f172a5c}.main{padding:12px}.manual-plan-backdrop{left:0}.manual-plan-modal{width:min(900px,calc(100vw - 32px))}.topbar{grid-template-columns:42px minmax(0,1fr) 42px 42px}.app-shell.sidebar-collapsed{grid-template-columns:1fr}.top-action,.profile-button,.profile-menu-main{display:none}.hero-panel{grid-template-columns:1fr}.hero-orbit{display:none}.dashboard-grid,.chart-panel{grid-template-columns:1fr;grid-column:auto}.integration-strip,.embedded-hero,.embedded-status-grid,.linked-subdomain-grid,.core-sync-metrics,.health-summary-grid,.health-core-grid,.metrics-grid,.module-grid,.module-board.compact .module-grid,.learning-grid,.settings-grid.two,.logo-upload-card{grid-template-columns:1fr}.school-settings-panel{padding:20px}.logo-preview{width:96px;height:96px}.embedded-toolbar{align-items:flex-start;flex-direction:column}.system-health-head,.health-module-card{align-items:flex-start;grid-template-columns:1fr}.system-health-head{flex-direction:column}.timetable-overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.timetable-overview-toolbar{align-items:stretch}.hub-timetable-grid{min-width:900px}.health-module-chips{justify-content:flex-start}.sso-bridge-card{grid-template-columns:40px minmax(0,1fr)}.sso-bridge-chip{grid-column:1 / -1;justify-content:center;width:100%}.embedded-actions{width:100%}.embedded-actions button,.embedded-actions a{flex:1 1 150px;justify-content:center}.embedded-frame-wrap,.embedded-frame-wrap iframe{min-height:560px;height:62dvh}.action-grid{grid-template-columns:repeat(3,minmax(86px,1fr))}.filters{grid-template-columns:1fr}.module-row{grid-template-columns:42px 1fr}.module-row>span,.module-row>small{grid-column:2}.login-preview{grid-template-columns:1fr;max-height:92vh;overflow:auto}.login-visual{min-height:260px}}@media(max-width:520px){.hero-panel,.panel,.module-board,.quick-actions{padding:14px}.action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-header{align-items:flex-start;flex-direction:column}.system-health-panel,.core-sync-panel{padding:16px}.health-module-chips{display:grid;grid-template-columns:1fr;width:100%}.health-chip{justify-content:center}.header-actions{width:100%}.header-actions button{flex:1 1 auto;justify-content:center}.login-form{padding:28px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.hub-click-spark{display:none}.hub-reveal{opacity:1!important;transform:none!important;filter:none!important}.main:before{animation:none!important}}.page-stack:not(:has(.hero-interactive-img)){--pastel-sky: #eaf8ff;--pastel-pink: #fff0f7;--pastel-yellow: #fff9d9;--pastel-lilac: #f4efff}.page-stack:not(:has(.hero-interactive-img)) .panel,.page-stack:not(:has(.hero-interactive-img)) .module-board,.page-stack:not(:has(.hero-interactive-img)) .metric-card,.page-stack:not(:has(.hero-interactive-img)) .student-summary-card,.page-stack:not(:has(.hero-interactive-img)) .student-tool-card,.page-stack:not(:has(.hero-interactive-img)) .student-form-card,.page-stack:not(:has(.hero-interactive-img)) .student-table-card{border-color:#ccecff;background:linear-gradient(135deg,rgba(255,255,255,.96),var(--pastel-sky) 58%,var(--pastel-pink));box-shadow:0 14px 32px #78afd224}.page-stack:not(:has(.hero-interactive-img)) .panel:nth-of-type(3n){background:linear-gradient(135deg,#fff,var(--pastel-yellow),var(--pastel-pink))}.page-stack:not(:has(.hero-interactive-img)) input,.page-stack:not(:has(.hero-interactive-img)) select,.page-stack:not(:has(.hero-interactive-img)) textarea{border-color:#c9e5fa;background:#fffdfd}.page-stack:not(:has(.hero-interactive-img)) .student-filters,.page-stack:not(:has(.hero-interactive-img)) .student-school-counts,.page-stack:not(:has(.hero-interactive-img)) .student-table tr{background:linear-gradient(135deg,#fff,var(--pastel-sky) 72%,var(--pastel-pink))}.page-stack:not(:has(.hero-interactive-img)) .student-table th{background:linear-gradient(135deg,#72c8ef,#9ca8f5 52%,#f3a8c6)}.page-stack:not(:has(.hero-interactive-img)) .panel-header button,.page-stack:not(:has(.hero-interactive-img)) .header-actions button,.page-stack:not(:has(.hero-interactive-img)) .student-form-actions button,.page-stack:not(:has(.hero-interactive-img)) .timetable-sync-card button{background:linear-gradient(135deg,#7cd4f1,#9eb9f7 55%,#f0a9c8);box-shadow:0 8px 18px #8ba9e838}.page-stack:not(:has(.hero-interactive-img)) .header-actions .promote-tool{background:linear-gradient(135deg,#526fbe,#677fca 54%,#a66bab)}.page-stack:not(:has(.hero-interactive-img)) .timetable-tabs button.active,.page-stack:not(:has(.hero-interactive-img)) .student-school-strip button.active{background:linear-gradient(135deg,#bfeeff,#d7c5ff 54%,#ffc9df);color:#294168}.profile-menu-container{position:relative}.profile-dropdown{position:absolute;top:100%;right:0;margin-top:.5rem;width:14.5rem;overflow:hidden;background:linear-gradient(145deg,#0f172af5,#1e293bf0),radial-gradient(circle at 20% 0%,rgba(56,189,248,.25),transparent 38%);backdrop-filter:blur(18px) saturate(1.18);-webkit-backdrop-filter:blur(18px) saturate(1.18);border:1px solid rgba(186,230,253,.2);border-radius:8px;box-shadow:0 24px 60px #0f172a61;display:flex;flex-direction:column;padding:.45rem;z-index:50;animation:slideDownFade .2s cubic-bezier(.16,1,.3,1)}.notification-menu{position:absolute;top:calc(100% + 8px);right:-82px;z-index:70;width:min(390px,calc(100vw - 28px));overflow:hidden;border:1px solid rgba(148,163,184,.24);border-radius:8px;background:#fffffffa;box-shadow:0 24px 64px #0f172a33;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:slideDownFade .18s ease}.notification-menu-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px 12px;color:#0f172a}.notification-menu-header div{display:inline-flex;align-items:center;gap:8px}.notification-menu-header div svg{color:#2563eb}.notification-menu-header span{color:#64748b;font-size:12px;font-weight:850}.notification-summary-strip{display:flex;align-items:center;gap:8px;padding:0 12px 12px}.notification-summary-strip span{display:inline-flex;min-height:28px;align-items:center;border-radius:999px;padding:0 10px;color:#1e3a8a;background:#eff6ff;font-size:11px;font-weight:900;white-space:nowrap}.notification-summary-strip button{margin-left:auto;min-height:30px;border:0;border-radius:999px;padding:0 12px;color:#0f766e;background:#ccfbf1;font:inherit;font-size:12px;font-weight:900;cursor:pointer}.notification-summary-strip button:disabled{color:#94a3b8;background:#f1f5f9;cursor:default}.message-menu{position:absolute;top:calc(100% + 8px);right:-82px;z-index:75;width:min(430px,calc(100vw - 28px));max-height:min(680px,calc(100dvh - 110px));overflow:hidden;border:1px solid rgba(148,163,184,.22);border-radius:8px;background:radial-gradient(circle at 86% 0%,rgba(124,58,237,.14),transparent 34%),linear-gradient(180deg,#fffffffc,#f8fafcfa);box-shadow:0 26px 70px #0f172a3d;color:#0f172a;animation:slideDownFade .18s ease}.message-menu-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 16px 12px}.message-menu-header>div{display:flex;align-items:center;gap:11px;min-width:0}.message-menu-header strong,.message-menu-header small{display:block}.message-menu-header strong{font-size:15px;font-weight:950}.message-menu-header small{color:#64748b;font-size:12px;font-weight:750}.message-menu-header button,.message-compose-title button{display:grid;width:32px;height:32px;place-items:center;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#334155}.message-menu-icon{display:grid;width:38px;height:38px;place-items:center;border-radius:8px;background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;box-shadow:0 14px 28px #2563eb38}.message-tabs{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;padding:0 16px 12px}.message-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;border:1px solid #dbeafe;border-radius:8px;background:#fff;color:#475569;font-size:12px;font-weight:900}.message-tabs button.active,.message-compose-trigger{border-color:#2563eb47!important;background:linear-gradient(135deg,#eff6ff,#f5f3ff)!important;color:#1d4ed8!important}.message-notice{display:flex;align-items:center;gap:7px;margin:0 16px 12px;padding:9px 11px;border:1px solid rgba(16,185,129,.22);border-radius:8px;background:#ecfdf5;color:#047857;font-size:12px;font-weight:850}.message-compose{display:grid;gap:11px;margin:0 16px 14px;padding:14px;border:1px solid #dbeafe;border-radius:8px;background:#ffffffe6;box-shadow:0 12px 30px #0f172a0f}.message-compose-title{display:flex;align-items:center;justify-content:space-between}.message-compose-title strong{font-size:14px;font-weight:950}.message-compose label{display:grid;gap:6px}.message-compose label span{color:#475569;font-size:12px;font-weight:900}.message-compose input,.message-compose select,.message-compose textarea{width:100%;border:1px solid #dbe3ef;border-radius:8px;background:#fff;color:#0f172a;font:inherit;font-size:13px;outline:0;padding:10px 11px}.message-compose textarea{resize:vertical;min-height:108px}.message-compose input:focus,.message-compose select:focus,.message-compose textarea:focus{border-color:#60a5fa;box-shadow:0 0 0 4px #60a5fa2e}.message-send-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:0;border-radius:8px;background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;font-weight:950}.message-send-button:disabled{cursor:not-allowed;opacity:.55}.message-list{max-height:390px;overflow:auto;padding:0 10px 10px}.message-empty{display:grid;justify-items:center;gap:7px;padding:34px 18px 38px;text-align:center;color:#64748b}.message-empty svg{color:#94a3b8}.message-empty strong{color:#0f172a;font-size:14px}.message-empty span{max-width:260px;font-size:12px;line-height:1.6}.message-row{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:12px 10px;border-bottom:1px solid #eef2f7;border-radius:8px;cursor:default}.message-row.unread{background:linear-gradient(135deg,#dbeafec7,#f5f3ffd1)}.message-avatar{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:#eff6ff;color:#2563eb}.message-body{display:grid;gap:5px;min-width:0}.message-row-top{display:flex;justify-content:space-between;gap:10px}.message-row-top strong{min-width:0;overflow:hidden;color:#0f172a;font-size:13px;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.message-row-top time,.message-body span{color:#64748b;font-size:11px;font-weight:800}.message-body p{margin:0;color:#334155;font-size:12px;line-height:1.6;white-space:pre-wrap}.message-body button{justify-self:start;display:inline-flex;align-items:center;gap:5px;min-height:28px;margin-top:2px;border:1px solid #dbeafe;border-radius:999px;background:#fff;color:#2563eb;font-size:11px;font-weight:900;padding:4px 9px}.notification-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:0 12px 12px}@media(max-width:520px){.notification-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}}.notification-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;border:1px solid #e2e8f0;border-radius:7px;color:#64748b;background:#f8fafc;font:inherit;font-size:13px;font-weight:900;cursor:pointer}.notification-tabs button.active{color:#1d4ed8;border-color:#bfdbfe;background:#eff6ff}.notification-tabs button.active.important{color:#b45309;border-color:#fde68a;background:#fffbeb}.notification-tabs b{display:grid;min-width:20px;height:20px;place-items:center;padding:0 5px;border-radius:999px;color:#fff;background:#2563eb;font-size:11px}.notification-tabs .important b{background:#f59e0b}.notification-list{max-height:430px;overflow-y:auto;border-top:1px solid #edf2f7}.notification-item{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;width:100%;padding:13px 14px;border:0;border-bottom:1px solid #edf2f7;color:#0f172a;background:#fff;text-align:left;cursor:pointer;transition:background .15s ease}.notification-item:hover{background:#f8fbff}.notification-item.unread{background:#eff6ff}.notification-item.important{background:#fffaf0;box-shadow:inset 3px 0 #f59e0b}.notification-item.important.unread{background:#fff7df}.notification-item-icon{display:grid;width:32px;height:32px;place-items:center;border-radius:7px;color:#2563eb;background:#dbeafe}.notification-item.important .notification-item-icon{color:#b45309;background:#fef3c7}.notification-item-copy{display:grid;gap:3px}.notification-item-copy strong{font-size:14px;line-height:1.4}.notification-item.read .notification-item-copy strong{color:#475569;font-weight:800}.notification-item-copy small{color:#64748b;font-size:12px;font-weight:700;line-height:1.48}.notification-item-copy time{color:#94a3b8;font-size:10px;font-weight:800}.notification-item-arrow{align-self:center;color:#94a3b8}.notification-empty{display:grid;min-height:170px;place-items:center;align-content:center;gap:9px;padding:24px;color:#94a3b8;text-align:center}.notification-empty strong{color:#64748b;font-size:13px}@keyframes slideDownFade{0%{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.dropdown-item{width:100%;display:flex;align-items:center;gap:.5rem;min-height:42px;padding:.625rem .8rem;font-size:.875rem;font-weight:850;color:#e2e8f0;background:transparent;border:none;border-radius:7px;cursor:pointer;transition:background .16s ease,color .16s ease,transform .16s ease;text-align:left}.dropdown-item:hover{background:#ffffff1f;color:#fff;transform:translate(2px)}.dropdown-divider{height:1px;background:#ffffff1a;margin:.25rem 0}.dropdown-item.logout{color:#fca5a5}.dropdown-item.logout:hover{background:#ef444433;color:#fecaca}.hero-interactive-img{width:100%;height:auto;display:block;border-radius:12px;transition:transform .4s cubic-bezier(.175,.885,.32,1.275),box-shadow .4s ease,filter .4s ease;animation:heroGlowPulse 3s infinite alternate;cursor:pointer}.hero-interactive-img:hover{transform:scale(1.015) translateY(-5px) rotateX(2deg);box-shadow:0 25px 50px #00c3ff59,0 0 30px #7c3aed80;filter:brightness(1.1) contrast(1.05)}.timetable-hub-view{gap:20px}.timetable-hub-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,380px);gap:18px;max-width:100%;min-width:0;overflow:hidden;padding:28px;border:1px solid rgba(125,211,252,.32);border-radius:8px;background:radial-gradient(circle at 14% 20%,rgba(56,189,248,.26),transparent 30%),radial-gradient(circle at 88% 12%,rgba(168,85,247,.28),transparent 34%),linear-gradient(135deg,#0f172af5,#1e293beb);box-shadow:0 24px 70px #0f172a38;color:#f8fafc}.timetable-hub-hero:after{position:absolute;inset:0;pointer-events:none;content:"";background-image:radial-gradient(circle,rgba(255,255,255,.75) 0 1px,transparent 1.8px),radial-gradient(circle,rgba(125,211,252,.72) 0 1px,transparent 1.7px);background-position:24px 38px,180px 110px;background-size:180px 160px,230px 210px;opacity:.34}.timetable-hub-hero>*{position:relative;z-index:1;min-width:0}.timetable-hub-hero h1{margin:10px 0 8px;font-size:clamp(30px,4vw,52px);line-height:1.08;letter-spacing:0}.timetable-hub-hero p{max-width:780px;margin:0;color:#e2e8f0e0;font-size:16px;overflow-wrap:anywhere}.timetable-sync-card{display:flex;flex-direction:column;justify-content:center;gap:10px;max-width:100%;min-width:0;padding:18px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#0f172a8a;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.timetable-sync-card small{color:#bae6fd;font-weight:800}.timetable-sync-card strong{color:#fff;font-size:20px;overflow-wrap:anywhere}.timetable-sync-card span{color:#e2e8f0d1;overflow-wrap:anywhere}.timetable-sync-card button{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:4px;padding:12px 14px;border:0;border-radius:8px;background:linear-gradient(135deg,#38bdf8,#7c3aed);color:#fff;cursor:pointer;font-weight:900;max-width:100%;min-width:0;white-space:normal;box-shadow:0 14px 28px #3b82f647;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}.timetable-sync-card button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 18px 36px #7c3aed57;filter:brightness(1.05)}.timetable-sync-card button:disabled{cursor:wait;opacity:.72}.timetable-message{padding:12px 16px;border:1px solid rgba(14,165,233,.2);border-radius:8px;background:#e0f2feeb;color:#075985;font-weight:800}.timetable-metrics .metric-card{min-height:148px}.timetable-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.timetable-tabs button{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:58px;padding:12px 14px;border:1px solid rgba(148,163,184,.22);border-radius:8px;background:#ffffffd1;color:#334155;cursor:pointer;font-weight:900;box-shadow:0 10px 30px #0f172a0f;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}.timetable-tabs button:hover,.timetable-tabs button.active{transform:translateY(-2px);border-color:#3b82f675;background:linear-gradient(135deg,#eff6fff5,#faf5fff5);box-shadow:0 16px 34px #2563eb21}.timetable-tabs button.active strong{background:#2563eb;color:#fff}.timetable-tabs strong{min-width:36px;padding:4px 8px;border-radius:999px;background:#e0f2fe;color:#0369a1;font-size:13px;text-align:center}.timetable-data-panel{min-height:360px}.timetable-print-actions{display:inline-flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.timetable-view-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px;padding:12px;border:1px solid #dbeafe;border-radius:8px;background:#eff6ff}.timetable-overview-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.timetable-overview-stats article{min-height:84px;padding:14px;border:1px solid rgba(191,219,254,.86);border-radius:10px;background:radial-gradient(circle at 100% 0%,rgba(56,189,248,.12),transparent 38%),linear-gradient(135deg,#fff,#f8fbff);box-shadow:0 14px 28px #0f172a0f}.timetable-overview-stats span,.timetable-overview-stats strong{display:block}.timetable-overview-stats span{color:#64748b;font-size:12px;font-weight:900}.timetable-overview-stats strong{margin-top:7px;color:#0f172a;font-size:26px;line-height:1}.timetable-overview-toolbar{border-color:#bfdbfee6;border-radius:10px;background:radial-gradient(circle at 0% 0%,rgba(56,189,248,.1),transparent 34%),#f8fbff;box-shadow:inset 0 0 0 1px #dbeafea8}.timetable-view-mode{display:inline-grid;grid-template-columns:repeat(2,minmax(110px,1fr));gap:4px;min-height:42px;padding:4px;border:1px solid #bfdbfe;border-radius:8px;background:#fff}.timetable-view-mode button{padding:0 12px;border:0;border-radius:6px;color:#475569;background:transparent;font-weight:900}.timetable-view-mode button.active{color:#fff;background:linear-gradient(135deg,#2563eb,#06b6d4);box-shadow:0 8px 18px #2563eb38}.timetable-view-toolbar label{display:grid;gap:6px;min-width:220px;color:#1e3a8a;font-size:13px;font-weight:900}.timetable-view-toolbar select{min-height:42px;padding:0 12px;color:#0f172a;border:1px solid #bfdbfe;border-radius:8px;background:#fff;font-weight:800}.timetable-view-toolbar select:disabled{color:#94a3b8;background:#f8fafc;cursor:not-allowed}.timetable-view-toolbar small{color:#475569;font-weight:800;line-height:1.45}.timetable-print-area{display:grid;gap:12px;margin-bottom:18px}.timetable-print-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #dbeafe;background:radial-gradient(circle at 0% 0%,rgba(56,189,248,.1),transparent 35%),#fff}.timetable-print-title strong{display:block;color:#0f172a;font-size:18px}.timetable-print-title span{display:block;margin-top:3px;color:#64748b;font-size:12px;font-weight:900}.hub-timetable-shell{overflow-x:auto;border-radius:12px}.schedule-board-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:14px;padding:12px;border:1px solid rgba(191,219,254,.9);border-radius:10px;background:#f8fbff;box-shadow:inset 0 0 0 1px #dbeafea6}.schedule-board-toolbar label{display:grid;gap:6px;min-width:190px;color:#1e3a8a;font-size:13px;font-weight:900}.schedule-board-toolbar input,.schedule-board-toolbar select{min-height:42px;border:1px solid #bfdbfe;border-radius:8px;padding:0 12px;color:#0f172a;background:#fff;font:inherit;font-weight:850}.schedule-board-toolbar input{min-height:38px;background:#f8fbff}.schedule-board-toolbar input::placeholder{color:#94a3b8}.schedule-board-toolbar input:focus,.schedule-board-toolbar select:focus{border-color:#60a5fa;box-shadow:0 0 0 4px #60a5fa24;outline:none}.schedule-board-toolbar input:disabled,.schedule-board-toolbar select:disabled{color:#94a3b8;background:#f8fafc}.schedule-board-shell{overflow:hidden;border:1px solid #cbdcf1;border-radius:12px;background:#fff;box-shadow:0 18px 38px #0f172a14}.schedule-board-title{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid #dbeafe;background:#fff}.schedule-board-title div:first-child{display:grid;gap:4px}.schedule-board-title strong{color:#0f172a;font-size:18px}.schedule-board-title span{color:#64748b;font-size:13px;font-weight:850}.schedule-board-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.schedule-board-legend span{display:inline-flex;min-height:28px;align-items:center;border-radius:999px;padding:0 10px;font-size:12px;font-weight:900}.schedule-board-legend .has-class{color:#1d4ed8;background:#dbeafe}.schedule-board-legend .lunch{color:#475569;background:#eef3f8}.schedule-board-legend .editable{color:#0f766e;background:#ccfbf1}.schedule-conflict-summary{display:grid;gap:10px;padding:12px 14px;border-bottom:1px solid #fed7aa;background:#fff7ed}.schedule-conflict-summary>div{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px}.schedule-conflict-summary>div strong{color:#9a3412;font-size:14px}.schedule-conflict-summary>div span{color:#c2410c;font-size:12px;font-weight:900}.schedule-conflict-summary ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;margin:0;padding:0;list-style:none}.schedule-conflict-summary li{display:grid;gap:3px;padding:9px 10px;border:1px solid #fed7aa;border-radius:8px;background:#fff}.schedule-conflict-summary li.danger{border-color:#fecaca;background:#fff1f2}.schedule-conflict-summary li strong{color:#7f1d1d;font-size:13px}.schedule-conflict-summary li span{color:#64748b;font-size:12px;font-weight:850;line-height:1.35}.schedule-period-board{display:grid;grid-template-columns:minmax(86px,.52fr) repeat(4,minmax(136px,1fr)) minmax(94px,.48fr) repeat(4,minmax(136px,1fr));overflow-x:auto;background:#d7e0eb}.schedule-board-corner,.schedule-board-head,.schedule-board-lunch-head,.schedule-board-row-title,.schedule-lunch-cell,.schedule-board-cell{min-height:86px;border-right:1px solid #d6e0ec;border-bottom:1px solid #d6e0ec}.schedule-board-corner,.schedule-board-head,.schedule-board-lunch-head,.schedule-board-row-title{display:grid;place-items:center;text-align:center;font-weight:950}.schedule-board-corner{color:#fff;background:#1559c7}.schedule-board-head{align-content:center;gap:3px;color:#fff;background:#1d63d7}.schedule-board-lunch-head{color:#0f172a;background:linear-gradient(180deg,#f8fafc,#e9eef5);font-size:13px;line-height:1.25}.schedule-board-lunch-head span{display:none}.schedule-board-head strong{font-size:15px}.schedule-board-head span{font-size:11px;font-weight:900;opacity:.92}.schedule-board-row{display:contents}.schedule-board-row-title{color:#1e40af;background:#f4f7fb;font-size:16px}.schedule-board-cell{display:grid;place-items:center;align-content:center;gap:6px;width:100%;padding:10px;border-top:0;border-left:0;color:#0f172a;background:#fff;text-align:center;cursor:default;transition:background .16s ease,box-shadow .16s ease,transform .16s ease}.schedule-lunch-cell{display:grid;place-items:center;background:linear-gradient(90deg,transparent,rgba(148,163,184,.14),transparent),#f8fafc;text-align:center;font-size:12px;font-weight:950;line-height:1.25}.schedule-lunch-cell span{display:inline-grid;place-items:center;min-width:64px;max-width:78px;min-height:42px;padding:7px 8px;border:1px solid rgba(148,163,184,.22);border-radius:999px;color:#334155;background:#ffffffd1;box-shadow:0 8px 20px #0f172a0f}.schedule-course-card{display:grid;place-items:center;align-content:center;gap:3px;width:100%;min-height:66px;border:1px solid rgba(30,99,215,.14);border-radius:8px;padding:7px;color:#111827;background:#eef6ff;box-shadow:0 8px 18px #0f172a0f}.schedule-course-card.compact{gap:2px;padding:6px}.schedule-course-card.tone-1{background:#f8f0e7}.schedule-course-card.tone-2{background:#eaf4ff}.schedule-course-card.tone-3{background:#f7eaf4}.schedule-course-card.tone-4{background:#ecf8f1}.schedule-course-card.tone-5{background:#fff3d8}.schedule-course-card.tone-6{background:#eef2ff}.schedule-board-cell strong,.schedule-board-cell small{display:block;max-width:100%;line-height:1.24;overflow-wrap:anywhere}.schedule-board-cell strong{color:#111827;font-size:13.5px;font-weight:950}.schedule-course-card.compact strong{font-size:12.5px;line-height:1.18}.schedule-board-cell.filled strong{color:#111827}.schedule-board-cell small{color:#334155;font-size:11.5px;font-weight:900}.schedule-course-card.compact small{font-size:10.8px;line-height:1.16}.schedule-board-cell.filled small{color:#334155}.schedule-board-cell span{display:block}.schedule-board-cell em{color:#0f766e;font-size:12px;font-style:normal;font-weight:950}.schedule-board-cell:hover{background:#fff;box-shadow:inset 0 0 0 2px #2563eb2e}.schedule-board-cell.conflict{background:#fff7ed;box-shadow:inset 0 0 0 2px #f9731647}.schedule-board-cell.conflict:hover{box-shadow:inset 0 0 0 2px #ea580c70,0 12px 24px #ea580c1f}.schedule-conflict-badge{justify-self:center;width:max-content;margin-bottom:2px;padding:2px 7px;border-radius:999px;color:#9a3412;background:#ffedd5;font-size:10px;font-style:normal;font-weight:950}.hub-timetable-grid{display:grid;overflow-x:auto;min-width:1180px;background:#fff}.hub-timetable-corner,.hub-timetable-head,.hub-timetable-day,.hub-timetable-lunch-head,.hub-timetable-lunch-cell,.hub-timetable-cell{min-height:76px;padding:10px;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}.hub-timetable-corner,.hub-timetable-head,.hub-timetable-day,.hub-timetable-lunch-head{display:grid;place-items:center;color:#fff;background:#1d63d7;font-weight:900;text-align:center}.hub-timetable-head{align-content:center;gap:3px;background:#1d63d7}.hub-timetable-head strong,.hub-timetable-head span{display:block;line-height:1.35}.hub-timetable-head span{color:#ffffffe6;font-size:11px}.hub-timetable-row{display:contents}.hub-timetable-day{background:#f4f7fb;color:#1d4ed8;font-size:16px}.hub-timetable-lunch-head{color:#0f172a;background:linear-gradient(180deg,#f8fafc,#e9eef5)}.hub-timetable-lunch-cell{display:grid;place-items:center;background:linear-gradient(90deg,transparent,rgba(148,163,184,.14),transparent),#f8fafc;text-align:center;font-size:12px;font-weight:950;line-height:1.25}.hub-timetable-lunch-cell span{display:inline-grid;place-items:center;min-width:64px;max-width:78px;min-height:42px;padding:7px 8px;border:1px solid rgba(148,163,184,.22);border-radius:999px;color:#334155;background:#ffffffd1;box-shadow:0 8px 20px #0f172a0f}.hub-timetable-cell{display:grid;justify-items:center;align-content:center;width:100%;color:#64748b;background:#fff;text-align:center;cursor:pointer;transition:background .16s ease,box-shadow .16s ease,transform .16s ease}.hub-timetable-course-card{display:grid;place-items:center;align-content:center;gap:3px;width:100%;max-width:116px;min-height:66px;padding:7px;border:1px solid rgba(30,99,215,.14);border-radius:8px;background:#f8fafc;box-shadow:0 8px 18px #0f172a0d}.hub-timetable-cell.filled .hub-timetable-course-card{background:#eef6ff}.hub-timetable-cell-primary,.hub-timetable-cell-secondary{display:block;min-width:0;max-width:100%;overflow-wrap:normal;word-break:normal;line-height:1.35}.hub-timetable-cell-primary{color:#94a3b8;font-size:13px;font-weight:950}.hub-timetable-cell-secondary{color:#94a3b8;font-size:11px;font-weight:900}.hub-timetable-cell-primary span,.hub-timetable-cell-secondary span{display:block;max-width:100%;white-space:nowrap;overflow-wrap:normal;line-height:1.32}.hub-timetable-cell-primary span{white-space:normal}.hub-timetable-cell.filled{background:#fff}.hub-timetable-cell.filled .hub-timetable-cell-primary{color:#111827}.hub-timetable-cell.filled .hub-timetable-cell-secondary{color:#334155}.hub-timetable-cell.filled.tone-1 .hub-timetable-course-card{background:#f8f0e7}.hub-timetable-cell.filled.tone-2 .hub-timetable-course-card{background:#eaf4ff}.hub-timetable-cell.filled.tone-3 .hub-timetable-course-card{background:#f7eaf4}.hub-timetable-cell.filled.tone-4 .hub-timetable-course-card{background:#ecf8f1}.hub-timetable-cell.filled.tone-5 .hub-timetable-course-card{background:#fff3d8}.hub-timetable-cell.filled.tone-6 .hub-timetable-course-card{background:#eef2ff}.hub-timetable-cell:hover{background:#f8fbff;box-shadow:inset 0 0 0 2px #2563eb2e}.substitution-conflict{display:grid;gap:4px;margin-bottom:14px;padding:12px 14px;border:1px solid #fecaca;border-radius:8px;background:#fff1f2}.substitution-conflict strong{color:#be123c}.substitution-conflict span{color:#7f1d1d;font-size:13px;font-weight:800;line-height:1.45}.substitution-toolbar-actions{display:inline-flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.substitution-toolbar-actions label{display:grid;gap:4px;color:#334155;font-size:12px;font-weight:900}.substitution-toolbar-actions input{min-height:36px;padding:0 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a;font-weight:800}.substitution-grid-shell{display:grid;gap:12px;margin-bottom:16px}.substitution-grid-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;color:#0f172a;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.substitution-grid-title strong{font-size:18px}.substitution-grid-title span{color:#64748b;font-size:12px;font-weight:900}.substitution-period-grid{display:grid;grid-template-columns:minmax(74px,.45fr) repeat(var(--slot-count),minmax(150px,1fr));overflow-x:auto;border:1px solid #dbeafe;border-radius:8px;background:#f8fbff;box-shadow:0 18px 38px #0f172a12}.substitution-grid-corner,.substitution-grid-head,.substitution-room-cell,.substitution-grid-cell{min-height:86px;padding:10px;border-right:1px solid rgba(148,163,184,.22);border-bottom:1px solid rgba(148,163,184,.22)}.substitution-grid-corner,.substitution-grid-head{display:grid;place-items:center;background:linear-gradient(135deg,#2563eb,#06b6d4);color:#fff;text-align:center;text-shadow:none}.substitution-grid-head{align-content:center;gap:2px}.substitution-grid-head strong,.substitution-grid-head span{display:block;line-height:1.3}.substitution-grid-head span{font-size:11px;font-weight:900}.substitution-grid-row{display:contents}.substitution-room-cell{display:grid;place-items:center;background:#eff6ff;color:#1d4ed8;font-weight:950;text-align:center}.substitution-grid-cell{display:grid;align-content:center;gap:4px;width:100%;min-width:0;background:#fff;color:#334155;text-align:center;cursor:pointer;transition:background .16s ease,box-shadow .16s ease}.substitution-grid-cell strong,.substitution-grid-cell span,.substitution-grid-cell b,.substitution-grid-cell em,.substitution-grid-cell small{display:block;min-width:0;overflow-wrap:anywhere;line-height:1.3}.substitution-grid-cell strong{color:#334155;font-size:13px}.substitution-grid-cell span{color:#64748b;font-size:12px;font-weight:800}.substitution-grid-cell b{color:#047857;font-size:12px}.substitution-grid-cell em{color:#c2410c;font-size:12px;font-style:normal;font-weight:950}.substitution-grid-cell small{color:#be123c;font-size:11px;font-weight:950}.substitution-grid-cell.empty{background:#f8fafc}.substitution-grid-cell.normal{background:#f8fbff}.substitution-grid-cell.planned,.substitution-grid-cell.confirmed{background:linear-gradient(135deg,#e0f2fe,#ecfeff)}.substitution-grid-cell.done{background:linear-gradient(135deg,#dcfce7,#ecfdf5)}.substitution-grid-cell.conflict{background:linear-gradient(135deg,#ffe4e6,#fff1f2);box-shadow:inset 0 0 0 2px #fb7185}.substitution-grid-cell:hover{box-shadow:inset 0 0 0 2px #2563eb52}.substitution-legend{display:flex;flex-wrap:wrap;gap:10px;color:#64748b;font-size:12px;font-weight:900}.substitution-legend span{display:inline-flex;align-items:center;gap:6px}.substitution-legend span:before{content:"";width:12px;height:12px;border-radius:999px;background:#f8fbff;border:1px solid #dbeafe}.substitution-legend .planned:before{background:#e0f2fe}.substitution-legend .done:before{background:#dcfce7}.substitution-legend .conflict:before{background:#ffe4e6;border-color:#fb7185}.substitution-board{display:grid;gap:12px}.substitution-card,.substitution-empty{padding:14px;border:1px solid #dbe3ef;border-radius:8px;background:#fff}.substitution-card{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(220px,.9fr) auto;gap:12px;align-items:center;border-left:5px solid #3b82f6}.substitution-card.confirmed{border-left-color:#10b981}.substitution-card.done{border-left-color:#6366f1}.substitution-card.cancelled{border-left-color:#94a3b8;opacity:.78}.substitution-card strong,.substitution-card span,.substitution-card p{display:block;min-width:0;margin:0;line-height:1.45}.substitution-card strong{color:#0f172a;font-size:16px}.substitution-card span,.substitution-card p{color:#64748b;font-size:13px;font-weight:800}.substitution-teachers{display:grid;gap:4px}.substitution-teachers b{color:#1d4ed8}.substitution-empty{color:#64748b;font-weight:900;text-align:center}.timetable-crud-form{display:grid;gap:14px;margin-bottom:18px;padding:16px;border:1px solid rgba(59,130,246,.2);border-radius:8px;background:radial-gradient(circle at top left,rgba(56,189,248,.14),transparent 34%),linear-gradient(180deg,#f8fafcfa,#fffffffa);box-shadow:0 14px 32px #0f172a12}.hub-edit-modal.timetable-crud-form{border:1px solid rgba(219,234,254,.88);border-radius:26px;box-shadow:0 36px 90px #0f172a47,inset 0 1px #ffffffeb;margin-bottom:0;padding:clamp(22px,3vw,30px);position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(920px,calc(100vw - 48px))}.timetable-crud-form>strong{color:#0f172a;font-size:17px}.hub-edit-modal.timetable-crud-form>strong{display:none}.timetable-quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.timetable-quick-actions button{display:flex;align-items:center;gap:10px;min-height:62px;padding:10px 12px;border:1px solid rgba(191,219,254,.95);border-radius:14px;color:#0f172a;background:linear-gradient(135deg,#fff,#f0f9ff);box-shadow:0 12px 24px #2563eb12}.timetable-quick-actions button:hover:not(:disabled){border-color:#60a5fa;transform:translateY(-1px);box-shadow:0 16px 28px #2563eb1f}.timetable-quick-actions button>svg{flex:0 0 auto;color:#2563eb}.timetable-quick-actions button span{display:grid;gap:2px;min-width:0;text-align:left}.timetable-quick-actions button strong{font-size:13px;font-weight:950;line-height:1.2}.timetable-quick-actions button small{color:#64748b;font-size:11.5px;font-weight:850;line-height:1.25}.timetable-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.hub-edit-modal .timetable-form-grid{align-items:start;background:radial-gradient(circle at 0% 0%,rgba(56,189,248,.08),transparent 34%),linear-gradient(135deg,#f8fafce0,#ffffffeb);border-color:#bfdbfeeb;gap:14px}.timetable-form-grid label{display:grid;gap:6px;color:#334155;font-size:13px;font-weight:800}.timetable-form-grid label.picker-field{grid-column:span 3}.timetable-form-grid label>small{color:#64748b;font-size:12px;font-weight:800;line-height:1.35}.timetable-form-grid label>small.field-notice{width:fit-content;padding:7px 10px;border:1px solid rgba(14,165,233,.22);border-radius:999px;color:#0369a1;background:#f0f9ff;font-weight:950}.timetable-form-grid input,.timetable-form-grid select{width:100%;min-height:42px;padding:0 12px;color:#0f172a;border:1px solid #cbd5e1;border-radius:8px;background:#fff;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.timetable-form-grid input:focus,.timetable-form-grid select:focus{border-color:#60a5fa;background:#f8fbff;box-shadow:0 0 0 4px #60a5fa29}.timetable-search-picker{display:grid;gap:10px}.picker-group-row,.picker-suggestion-list{display:flex;flex-wrap:wrap;gap:8px}.picker-group-row button{min-height:32px;padding:0 11px;border:1px solid #dbeafe;border-radius:999px;color:#1e40af;background:#eff6ff;font-size:12px;font-weight:950}.picker-group-row button.active{color:#fff;background:linear-gradient(135deg,#2563eb,#06b6d4);border-color:transparent}.picker-suggestion-list{align-items:stretch}.picker-suggestion-list button{display:grid;min-width:min(220px,100%);flex:1 1 210px;gap:3px;padding:10px 12px;border:1px solid #dbeafe;border-radius:14px;color:#0f172a;background:#fff;text-align:left;box-shadow:0 10px 20px #0f172a0a}.picker-suggestion-list button:hover,.picker-suggestion-list button.selected{border-color:#60a5fa;background:#eff6ff;box-shadow:0 12px 24px #2563eb1a;transform:translateY(-1px)}.picker-suggestion-list button.selected{border-color:#38bdf8;background:linear-gradient(135deg,#eff6ff,#ecfeff)}.picker-suggestion-list button span{font-weight:950}.picker-suggestion-list button small{width:fit-content;padding:2px 7px;border-radius:999px;color:#64748b;background:#f8fafc;font-size:12px;font-weight:850}.picker-suggestion-list button.selected small{color:#075985;background:#cffafe}.picker-empty{width:100%;padding:12px;border:1px dashed #cbd5e1;border-radius:14px;color:#64748b;background:#f8fafc;font-size:13px;font-weight:850;text-align:center}.timetable-form-actions,.row-actions,.card-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.timetable-form-actions{justify-content:flex-end}.primary-action,.secondary-action,.row-actions button,.card-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 11px;border-radius:8px;font-size:13px;font-weight:900}.primary-action{color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed);box-shadow:0 10px 22px #2563eb33}.secondary-action,.row-actions button,.card-actions button{color:#1d4ed8;border:1px solid #bfdbfe;background:#eff6ff}.row-actions .danger,.card-actions .danger{color:#b91c1c;border-color:#fecaca;background:#fef2f2}.primary-action:disabled,.secondary-action:disabled{cursor:wait;opacity:.68}.card-actions{justify-content:flex-end}.muted-line{margin:0;color:#64748b;font-weight:800}.teacher-subject-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.teacher-subject-card{display:flex;flex-direction:column;gap:8px;min-height:170px;padding:16px;border:1px solid rgba(148,163,184,.2);border-radius:8px;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at top right,rgba(56,189,248,.16),transparent 36%);box-shadow:0 12px 26px #0f172a0f;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.teacher-subject-card:hover{transform:translateY(-3px);border-color:#0ea5e957;box-shadow:0 18px 34px #0f172a1a}.teacher-subject-card strong{color:#0f172a;font-size:17px}.teacher-subject-card>span{color:#64748b;font-weight:800}.teacher-subject-card div{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.teacher-subject-card small{padding:5px 8px;border-radius:999px;background:#eef2ff;color:#3730a3;font-weight:800}.timetable-room-grid .module-card{min-height:140px}.slot-list{display:grid;gap:10px}.slot-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(160px,auto) auto;gap:14px;align-items:center;padding:14px 16px;border:1px solid rgba(148,163,184,.2);border-radius:8px;background:#f8fafceb;transition:transform .16s ease,border-color .16s ease,background .16s ease}.slot-row:hover{transform:translate(4px);border-color:#38bdf85c;background:#eff6fffa}.slot-row strong{color:#0f172a}.slot-row span{color:#475569;font-weight:800;text-align:right}.approval-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px;border:1px solid rgba(96,165,250,.22);border-radius:8px;background:radial-gradient(circle at 18% 10%,rgba(56,189,248,.22),transparent 34%),linear-gradient(135deg,#fffffffa,#eff6fff5);box-shadow:0 16px 40px #0f172a14}.approval-hero span,.approval-hero button,.approval-actions button{display:inline-flex;align-items:center}.approval-hero span{gap:8px;color:#2563eb;font-weight:900}.approval-hero h2{margin:8px 0 4px;color:#0f172a;font-size:clamp(24px,3vw,34px)}.approval-hero p{margin:0;color:#64748b;font-weight:800}.approval-hero button{justify-content:center;gap:8px;min-height:42px;padding:0 15px;border:1px solid #bfdbfe;border-radius:8px;color:#1d4ed8;background:#fff;font-weight:900;transition:transform .16s ease,box-shadow .16s ease}.approval-hero button:hover{transform:translateY(-2px);box-shadow:0 12px 24px #2563eb24}.approval-message{padding:12px 14px;border:1px solid rgba(37,99,235,.16);border-radius:8px;color:#1748b8;background:#eff6ff;font-weight:900}.approval-metrics{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.approval-metrics article{background:#ffffffe6;border:1px solid rgba(191,219,254,.78);border-radius:8px;box-shadow:0 16px 38px #0f172a0f;padding:16px}.approval-metrics article.important{border-color:#fde68a;background:linear-gradient(135deg,#fffdf4,#fff7df);box-shadow:inset 3px 0 #f59e0b,0 16px 38px #b4530914}.approval-metrics article.important strong{color:#b45309}.approval-metrics span{color:#64748b;display:block;font-size:13px;font-weight:900}.approval-metrics strong{color:#0f172a;display:block;font-size:30px;margin-top:4px}.approval-panel{padding:16px;border:1px solid rgba(148,163,184,.18);border-radius:8px;background:#ffffffdb;box-shadow:0 18px 44px #0f172a12}.approval-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.approval-panel-heading h3{display:inline-flex;align-items:center;gap:8px;margin:0 0 4px;color:#0f172a;font-size:20px}.approval-panel-heading h3 svg{color:#d97706}.approval-panel-heading p{margin:0;color:#64748b;font-weight:800}.important-count{flex:0 0 auto;padding:7px 10px;border-radius:999px;color:#b45309;background:#fef3c7;font-size:12px;font-weight:900}.school-request-panel{border-color:#f59e0b47;background:linear-gradient(180deg,#fffdf4f0,#ffffffe6)}.school-request-list{display:grid;gap:12px}.school-request-card{display:grid;gap:14px;padding:16px;border:1px solid #fde68a;border-radius:8px;background:#fff;box-shadow:inset 3px 0 #f59e0b}.school-request-summary{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px}.school-request-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:8px;color:#b45309;background:#fef3c7}.school-request-summary div{display:grid;gap:3px}.school-request-summary strong{color:#0f172a;font-size:18px}.school-request-summary span,.school-request-summary small,.school-request-summary p{margin:0;color:#64748b;font-weight:750;line-height:1.45}.school-request-summary p{margin-top:5px;padding:8px 10px;border-radius:7px;color:#475569;background:#f8fafc}.school-request-fields{display:grid;grid-template-columns:150px minmax(220px,1.2fr) minmax(150px,.8fr) minmax(210px,1fr);gap:10px}.school-request-fields label{display:grid;gap:5px;color:#475569;font-size:12px;font-weight:900}.school-request-fields input{width:100%;min-height:42px;padding:9px 11px;border:1px solid rgba(148,163,184,.34);border-radius:8px;color:#0f172a;background:#fff;font:inherit;font-weight:800}.school-request-fields input:focus{outline:0;border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b1f}.school-request-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.school-request-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 13px;border-radius:8px;font:inherit;font-weight:900;cursor:pointer}.school-request-actions .approve{border:1px solid #bbf7d0;color:#047857;background:#ecfdf5}.school-request-actions .reject{border:1px solid #fecaca;color:#b91c1c;background:#fef2f2}.school-request-actions button:disabled{cursor:wait;opacity:.55}.approval-empty.compact{min-height:130px}.password-reset-panel{border-color:#6366f12e}.password-reset-list{display:grid;gap:12px}.password-reset-card{display:grid;grid-template-columns:minmax(260px,1fr) minmax(280px,.8fr);gap:14px;align-items:center;padding:16px;border:1px solid rgba(99,102,241,.18);border-radius:16px;background:radial-gradient(circle at 96% 4%,rgba(99,102,241,.14),transparent 30%),linear-gradient(135deg,#fff,#f8faff)}.password-reset-main{display:flex;gap:12px;align-items:flex-start}.password-reset-icon{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;border-radius:14px;color:#3730a3;background:#eef2ff}.password-reset-main div{display:grid;gap:4px}.password-reset-main strong{color:#0f172a;font-size:17px}.password-reset-main span,.password-reset-main small,.password-reset-main p{margin:0;color:#64748b;font-weight:800;line-height:1.5}.password-reset-main p{color:#475569}.password-reset-review{display:grid;gap:10px}.password-reset-review input{min-height:44px;width:100%;border:1px solid rgba(148,163,184,.26);border-radius:12px;padding:0 12px;color:#172554;background:#ffffffe6;font:inherit;font-size:14px;font-weight:800}.password-reset-review input:focus{border-color:#6366f19e;box-shadow:0 0 0 4px #6366f124;outline:0}.audit-hero{border-color:#14b8a638;background:radial-gradient(circle at 94% 10%,rgba(20,184,166,.16),transparent 30%),linear-gradient(135deg,#fffffff5,#f0fdfaeb)}.audit-hero-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.audit-filters{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end}.audit-quick-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.audit-quick-filters button{min-height:36px;padding:8px 12px;border:1px solid #ccfbf1;border-radius:999px;color:#0f766e;background:#f0fdfa;font:inherit;font-size:13px;font-weight:900;cursor:pointer}.audit-quick-filters button.active{color:#fff;border-color:#0f766e;background:#0f766e}.audit-quick-filters button.danger,.audit-quick-filters button.active.danger{color:#fff;border-color:#dc2626;background:#dc2626}.audit-filter-actions{display:flex;align-items:end;min-height:100%}.audit-filter-actions button{width:100%;min-height:44px;border:0;border-radius:12px;color:#0f766e;background:#ccfbf1;font:inherit;font-weight:900;cursor:pointer}.audit-filter-actions button:hover{background:#99f6e4}.audit-log-list{display:grid;gap:10px}.audit-log-card{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;padding:14px;border:1px solid #e2e8f0;border-radius:10px;background:#fff}.audit-log-card.failed,.audit-log-card.blocked{border-color:#fecaca;background:linear-gradient(135deg,#fff,#fff7f7)}.audit-log-icon{display:grid;width:42px;height:42px;place-items:center;color:#047857;border-radius:10px;background:#d1fae5}.audit-log-card.failed .audit-log-icon,.audit-log-card.blocked .audit-log-icon{color:#b91c1c;background:#fee2e2}.audit-log-main{display:grid;gap:8px;min-width:0}.audit-log-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.audit-log-title strong{color:#0f172a}.audit-status-chip{display:inline-flex;min-height:28px;align-items:center;padding:0 10px;color:#047857;border-radius:999px;background:#d1fae5;font-size:12px;font-weight:900;white-space:nowrap}.audit-status-chip.failed,.audit-status-chip.blocked{color:#b91c1c;background:#fee2e2}.audit-log-meta{display:flex;flex-wrap:wrap;gap:8px 12px;color:#64748b;font-size:12px;font-weight:800}.audit-log-meta span{display:inline-flex;align-items:center;gap:4px}.audit-log-card pre{max-height:150px;margin:0;overflow:auto;padding:10px;color:#334155;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;white-space:pre-wrap;word-break:break-word}.report-center-view{color:#0f172a}.report-center-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px;border:1px solid rgba(14,165,233,.22);border-radius:18px;background:linear-gradient(135deg,#fffffff5,#f0f9ffeb),radial-gradient(circle at 96% 12%,rgba(14,165,233,.16),transparent 30%);box-shadow:0 22px 60px #0f172a14}.report-center-hero span{display:inline-flex;align-items:center;gap:8px;color:#0369a1;font-weight:900}.report-center-hero h1{margin:8px 0;font-size:30px;letter-spacing:0}.report-center-hero p{max-width:740px;margin:0;color:#475569;line-height:1.65;font-weight:760}.report-center-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.report-center-actions select,.report-center-actions button{min-height:42px;padding:0 14px;border:1px solid #bae6fd;border-radius:10px;color:#0369a1;background:#fff;font:inherit;font-weight:900}.report-center-actions button{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.report-center-actions button.primary{color:#fff;border-color:#0ea5e9;background:#0ea5e9}.report-message{padding:12px 14px;border:1px solid #bae6fd;border-radius:12px;color:#075985;background:#f0f9ff;font-weight:850}.report-preview-shell{overflow-x:auto;padding:18px;border:1px solid rgba(203,213,225,.75);border-radius:16px;background:#e2e8f0}.report-preview-page{box-sizing:border-box;width:794px;min-height:1123px;margin:0 auto;padding:42px;color:#0f172a;background:#fff;box-shadow:0 24px 60px #0f172a2e;font-family:TH SarabunPSK,Sarabun,Noto Sans Thai,Arial,sans-serif}.report-preview-header{display:flex;justify-content:space-between;gap:24px;padding-bottom:18px;border-bottom:3px solid #0ea5e9}.report-preview-header span,.report-preview-header small{color:#64748b;font-weight:850}.report-preview-header h2{margin:4px 0;font-size:30px;line-height:1.1}.report-preview-header p,.report-preview-header strong{margin:0;font-size:18px}.report-preview-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}.report-preview-metrics article{min-height:92px;padding:12px;border:1px solid #dbeafe;border-radius:8px;background:#f8fbff}.report-preview-metrics span,.report-preview-metrics small{display:block;color:#64748b;font-size:13px;font-weight:850}.report-preview-metrics strong{display:block;margin:7px 0;color:#0f172a;font-size:28px;line-height:1}.report-preview-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:14px;margin-top:14px}.report-preview-grid.compact{grid-template-columns:1fr 1fr}.report-preview-grid section{min-width:0;padding:14px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.report-preview-grid h3{margin:0 0 10px;color:#0369a1;font-size:19px}.report-preview-grid table{width:100%;min-width:0;table-layout:fixed;border-collapse:collapse;font-size:14px}.report-preview-grid th,.report-preview-grid td{padding:7px 8px;border-bottom:1px solid #e2e8f0;text-align:left;overflow-wrap:anywhere}.report-preview-grid th{color:#475569;background:#f8fafc;font-weight:950}.report-workflow-bars{display:grid;gap:10px}.report-workflow-bars div{position:relative;overflow:hidden;min-height:48px;padding:9px 10px;border:1px solid #dbeafe;border-radius:8px;background:#f8fafc}.report-workflow-bars span,.report-workflow-bars strong{position:relative;z-index:1;display:block}.report-workflow-bars span{color:#475569;font-weight:850}.report-workflow-bars strong{margin-top:3px;color:#0f172a;font-size:18px}.report-workflow-bars i{position:absolute;left:0;bottom:0;height:5px;max-width:100%;background:#0ea5e9}.report-key-values{display:grid;gap:8px;margin:0}.report-key-values div{display:flex;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}.report-key-values dt{color:#475569;font-weight:850}.report-key-values dd{margin:0;color:#0f172a;font-weight:950}.report-preview-footer{display:flex;justify-content:space-between;gap:18px;margin-top:18px;padding-top:12px;border-top:1px solid #cbd5e1;color:#64748b;font-size:12px;font-weight:820}.report-preview-footer div{display:inline-flex;align-items:center;gap:6px}.permission-hero{border-color:#4f46e533;background:radial-gradient(circle at 92% 8%,rgba(56,189,248,.16),transparent 30%),linear-gradient(135deg,#fffffff5,#eff6ffeb)}.permission-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.permission-pill,.permission-cell{display:inline-flex;min-height:28px;align-items:center;justify-content:center;gap:5px;border-radius:999px;padding:0 10px;font-size:12px;font-weight:900;white-space:nowrap}.permission-pill.manage,.permission-cell.manage{color:#3730a3;background:#e0e7ff}.permission-pill.view,.permission-cell.view{color:#0f766e;background:#ccfbf1}.permission-pill.none,.permission-cell.none{color:#64748b;background:#f1f5f9}.permission-role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.permission-role-grid article{display:grid;gap:6px;min-height:120px;padding:14px;border:1px solid rgba(148,163,184,.22);border-radius:14px;background:#ffffffe6;box-shadow:0 12px 30px #0f172a0f}.permission-role-grid article.active{border-color:#6366f173;background:linear-gradient(135deg,#eef2fffa,#fffffff0)}.permission-role-grid strong{color:#0f172a;font-size:15px}.permission-role-grid span{color:#64748b;font-size:13px;font-weight:800;line-height:1.35}.permission-role-grid small{align-self:end;color:#2563eb;font-size:12px;font-weight:900}.permission-table-wrap{overflow-x:auto}.permission-table{width:100%;min-width:1180px;border-collapse:collapse}.permission-table th,.permission-table td{padding:10px;border-bottom:1px solid #e2e8f0;text-align:center;vertical-align:middle}.permission-table th:first-child,.permission-table th:nth-child(2),.permission-table td:first-child,.permission-table td:nth-child(2){text-align:left}.permission-table thead th{position:sticky;top:0;z-index:1;color:#1e3a8a;background:#eff6ff;font-size:12px;font-weight:900}.permission-table tbody tr:hover{background:#eff6ffb3}.permission-table td:first-child{color:#64748b;font-size:12px;font-weight:900}.permission-table td:nth-child(2) strong{color:#0f172a;font-size:13px}.school-create-panel{display:grid;gap:16px}.school-create-panel h3{color:#0f172a;font-size:20px;letter-spacing:0;margin:0 0 4px}.school-create-panel p{color:#64748b;font-weight:800;margin:0}.school-create-grid,.approval-filters{display:grid;gap:10px;grid-template-columns:repeat(5,minmax(0,1fr))}.school-create-grid input,.school-create-grid select,.approval-editors select{background:#ffffffeb;border:1px solid rgba(148,163,184,.34);border-radius:8px;color:#0f172a;font:inherit;font-weight:800;line-height:1.55;min-height:54px;padding:11px 14px;width:100%}.school-create-grid button{align-items:center;background:linear-gradient(135deg,#2563eb,#7c3aed);border:0;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-weight:900;gap:8px;justify-content:center;min-height:42px;padding:9px 12px}.approval-filters{align-items:end;background:linear-gradient(135deg,#f0f9fffa,#f5f3ffe6 48%,#f0fdf4e6);border:1px solid rgba(147,197,253,.34);border-radius:18px;box-shadow:0 16px 36px #2563eb14;gap:14px;grid-template-columns:minmax(170px,.8fr) minmax(320px,1.35fr) minmax(300px,1.25fr);margin-bottom:18px;padding:16px}.account-role-tabs{display:grid;gap:10px;grid-template-columns:repeat(8,minmax(112px,1fr));margin-bottom:14px}.account-role-tabs button{align-items:start;background:linear-gradient(180deg,#fffffff5,#f8fafcf0);border:1px solid rgba(147,197,253,.42);border-radius:14px;box-shadow:0 12px 24px #0f172a0d;color:#1e3a8a;cursor:pointer;display:grid;gap:2px;min-height:78px;overflow:hidden;padding:12px;position:relative;text-align:left;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.account-role-tabs button:after{background:linear-gradient(135deg,#0ea5e92e,#7c3aed29);border-radius:999px;content:"";height:54px;position:absolute;right:-22px;top:-24px;width:54px;transition:transform .18s ease,opacity .18s ease}.account-role-tabs button:hover{border-color:#2563eb7a;box-shadow:0 18px 34px #2563eb1f;transform:translateY(-2px)}.account-role-tabs button.active{background:radial-gradient(circle at 92% 10%,rgba(125,211,252,.26),transparent 32%),linear-gradient(135deg,#2563eb,#7c3aed);border-color:transparent;box-shadow:0 18px 34px #2563eb38;color:#fff}.account-role-tabs button.active:after{opacity:.5;transform:scale(1.16)}.account-role-tabs span,.account-role-tabs strong,.account-role-tabs small{position:relative;z-index:1}.account-role-tabs span{font-size:12px;font-weight:950;line-height:1.25}.account-role-tabs strong{font-size:24px;font-weight:950;letter-spacing:0}.account-role-tabs small{color:#0f766e;font-size:11px;font-weight:950}.account-role-tabs button.active small{color:#ffffffc7}.approval-filters label,.approval-editors label{color:#475569;display:grid;font-size:12px;font-weight:900;gap:5px}.approval-filters label{color:#334155;font-size:13px;gap:8px}.approval-filters input,.approval-filters select{appearance:none;background:linear-gradient(180deg,#fffffffa,#f8fafcfa);border:1px solid rgba(148,163,184,.38);border-radius:14px;box-shadow:inset 0 1px #ffffffb8,0 10px 22px #0f172a0d;color:#0f172a;font:inherit;font-size:17px;font-weight:900;line-height:1.6;min-height:66px;padding:15px 16px;width:100%}.approval-filters select{background-image:linear-gradient(180deg,#fffffffa,#f8fafcfa),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:left top,right 16px center;background-repeat:no-repeat;background-size:auto,18px;padding-right:44px}.approval-filters input:focus,.approval-filters select:focus{border-color:#2563ebb8;box-shadow:0 0 0 4px #3b82f629,0 12px 28px #2563eb1a;outline:0}.approval-list{display:grid;gap:12px}.approval-card{display:grid;grid-template-columns:auto minmax(220px,1fr) minmax(330px,.9fr) auto;gap:14px;align-items:center;padding:18px;border:1px solid rgba(147,197,253,.28);border-radius:16px;background:linear-gradient(135deg,#fff,#f8fbff 58%,#eff6ff);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.approval-card:nth-child(3n+2){border-color:#2dd4bf4d;background:linear-gradient(135deg,#fff,#f8fffd 56%,#ecfeff)}.approval-card:nth-child(3n+3){border-color:#c4b5fd57;background:linear-gradient(135deg,#fff,#fbfaff 56%,#f5f3ff)}.approval-card:hover{transform:translateY(-3px);border-color:#2563eb38;box-shadow:0 18px 34px #0f172a1a}.approval-card.super-admin-card{border-color:#6366f173;background:radial-gradient(circle at 96% 12%,rgba(99,102,241,.16),transparent 28%),linear-gradient(180deg,#fff,#eef2ff)}.approval-avatar{display:grid;place-items:center;width:54px;height:54px;border-radius:15px;color:#fff;background:linear-gradient(135deg,#2563eb,#38bdf8);font-weight:900;box-shadow:0 14px 30px #2563eb38}.approval-info{display:grid;gap:4px}.approval-info strong{color:#0f172a;font-size:18px}.approval-info span,.approval-info small{color:#64748b;font-weight:800}.approval-info span{align-items:center;display:flex;flex-wrap:wrap;gap:7px}.approval-role-badge{border-radius:999px;display:inline-flex;font-size:11px;font-weight:950;line-height:1;padding:7px 10px;white-space:nowrap}.approval-role-badge.admin{background:#eef2ff;color:#4338ca}.approval-role-badge.director,.approval-role-badge.deputy{background:#ecfeff;color:#0e7490}.approval-role-badge.head{background:#fef3c7;color:#92400e}.approval-role-badge.teacher{background:#dcfce7;color:#047857}.approval-role-badge.student{background:#f1f5f9;color:#475569}.approval-editors{align-items:end;display:grid;gap:8px;grid-template-columns:minmax(120px,.7fr) minmax(190px,1fr) auto}.approval-status-chip{border-radius:999px;font-size:12px;font-weight:900;justify-self:end;padding:9px 12px}.approval-status-chip.pending{background:#fef3c7;color:#92400e}.approval-status-chip.active{background:#dcfce7;color:#047857}.approval-status-chip.disabled{background:#fee2e2;color:#b91c1c}.approval-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.approval-actions button{justify-content:center;gap:7px;min-height:38px;padding:0 12px;border-radius:12px;font-weight:900;transition:transform .16s ease,box-shadow .16s ease}.approval-actions button:hover{transform:translateY(-2px)}.approval-actions .approve{border:1px solid #bbf7d0;color:#047857;background:#ecfdf5}.approval-actions .reject{border:1px solid #fecaca;color:#b91c1c;background:#fef2f2}.approval-actions .delete{border:1px solid #fecdd3;color:#be123c;background:linear-gradient(135deg,#fff1f2,#fff)}.approval-actions .password-reset{border:1px solid #bfdbfe;color:#1d4ed8;background:linear-gradient(135deg,#eff6ff,#fff)}.direct-password-reset-modal{max-width:620px}.direct-reset-account-summary{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid rgba(147,197,253,.38);border-radius:18px;background:linear-gradient(135deg,#eff6ff,#f8faff)}.direct-reset-account-summary .approval-avatar{flex:0 0 auto}.direct-reset-account-summary div:last-child{display:grid;gap:3px}.direct-reset-account-summary strong{color:#0f172a}.direct-reset-account-summary span{color:#64748b;font-size:13px;font-weight:800}.direct-reset-form{display:grid;gap:12px}.direct-reset-form label{display:grid;gap:7px;color:#334155;font-size:13px;font-weight:900}.direct-reset-form input{min-height:48px;width:100%;padding:11px 13px;border:1px solid rgba(148,163,184,.36);border-radius:13px;color:#0f172a;background:#fff;font:inherit;font-weight:800}.direct-reset-form input:focus{outline:0;border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1f}.direct-reset-confirmation{margin-top:2px;padding:14px;border:1px solid rgba(196,181,253,.52);border-radius:15px;color:#5b21b6!important;background:linear-gradient(135deg,#faf5ff,#eff6ff)}.direct-reset-confirmation small{color:#64748b;font-weight:750}.approval-actions button:disabled{cursor:wait;opacity:.65}.approval-empty{display:grid;place-items:center;gap:8px;min-height:220px;color:#64748b;text-align:center;font-weight:850}.approval-empty svg{color:#2563eb}.approval-empty strong{color:#0f172a;font-size:20px}.news-refresh{align-items:center;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;color:#1d4ed8;display:inline-flex;font-weight:900;gap:6px;min-height:34px;padding:0 11px}.announcement-list,.announcement-form{display:grid;gap:12px}.announcement-card{--announce: #2563eb;align-items:start;background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--announce) 12%,transparent),transparent 34%),linear-gradient(135deg,#fff,#f8fbff);border:1px solid color-mix(in srgb,var(--announce) 24%,#e2e8f0);border-radius:16px;box-shadow:inset 4px 0 var(--announce),0 12px 26px #0f172a0f;display:grid;gap:10px;grid-template-columns:42px minmax(0,1fr) auto;padding:14px}.announcement-card.green{--announce: #10b981}.announcement-card.amber{--announce: #f59e0b}.announcement-card.rose{--announce: #f43f5e}.announcement-card.violet{--announce: #8b5cf6}.announcement-card.cyan{--announce: #06b6d4}.announcement-card.important{background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--announce) 22%,transparent),transparent 38%),linear-gradient(135deg,#fff7ed,#fff 58%,#eff6ff);border-width:2px;box-shadow:inset 5px 0 var(--announce),0 18px 34px #0f172a1a}.announcement-icon{align-items:center;background:color-mix(in srgb,var(--announce) 12%,#ffffff);border-radius:13px;color:var(--announce);display:flex;height:42px;justify-content:center;width:42px}.announcement-title-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.announcement-title-row strong{color:#0f172a;font-size:16px;font-weight:950}.announcement-title-row span{background:#7c2d12;border-radius:999px;color:#fff;font-size:11px;font-weight:950;padding:4px 8px}.announcement-card p{color:#475569;font-weight:760;line-height:1.55;margin:5px 0}.announcement-card small{color:#94a3b8;font-size:12px;font-weight:850}.announcement-delete{align-items:center;background:#fff1f2;border:1px solid #fecdd3;border-radius:12px;color:#be123c;display:inline-flex;height:36px;justify-content:center;width:36px}.announcement-form{background:#f8fafcdb;border:1px dashed rgba(37,99,235,.24);border-radius:16px;margin-top:12px;padding:14px}.announcement-form strong{color:#0f172a;font-size:15px;font-weight:950}.announcement-form input,.announcement-form textarea,.announcement-form select{background:#fff;border:1px solid #dbe4f0;border-radius:12px;color:#0f172a;font:inherit;font-weight:760;min-height:42px;padding:10px 12px;width:100%}.announcement-form-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.announcement-form-grid label{color:#475569;display:grid;font-size:12px;font-weight:900;gap:5px}.announcement-form button{align-items:center;background:linear-gradient(135deg,#2563eb,#7c3aed);border-radius:12px;color:#fff;display:inline-flex;font-weight:900;gap:8px;justify-content:center;min-height:42px}.staff-hero-panel{align-items:center;background:linear-gradient(135deg,#fffffff5,#ecfdf5e6),radial-gradient(circle at 94% 18%,rgba(16,185,129,.18),transparent 34%);border:1px solid rgba(16,185,129,.18);border-radius:18px;box-shadow:0 18px 42px #0f172a12;display:flex;gap:18px;justify-content:space-between;padding:22px}.staff-hero-panel span,.staff-hero-panel button{align-items:center;display:inline-flex;gap:8px}.staff-hero-panel span{color:#059669;font-weight:950}.staff-hero-panel h2{color:#0f172a;font-size:28px;letter-spacing:0;margin:8px 0 4px}.staff-hero-panel p{color:#64748b;font-weight:800;margin:0}.staff-hero-panel button,.staff-table button,.staff-edit-panel button{align-items:center;background:#fff;border:1px solid rgba(148,163,184,.24);border-radius:12px;color:#0f172a;cursor:pointer;display:inline-flex;font-weight:900;gap:8px;min-height:40px;padding:0 13px}.staff-stat-grid{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.staff-stat-grid article{background:#fffffff0;border:1px solid rgba(148,163,184,.18);border-radius:16px;box-shadow:0 14px 34px #0f172a0f;padding:18px}.staff-stat-grid span{color:#64748b;display:block;font-weight:850}.staff-stat-grid strong{color:#0f172a;display:block;font-size:34px;line-height:1;margin-top:9px}.staff-stat-grid .warning{background:linear-gradient(135deg,#fff7ed,#fff);border-color:#fed7aa}.staff-stat-grid .signature{background:linear-gradient(135deg,#eff6ff,#fff);border-color:#bfdbfe}.staff-table-wrap{overflow-x:auto}.staff-table{border-collapse:collapse;min-width:980px;width:100%}.staff-table th{color:#64748b;font-size:13px;font-weight:950;padding:0 12px 12px;text-align:left}.staff-table td{border-top:1px solid rgba(226,232,240,.9);color:#334155;font-weight:750;padding:14px 12px;vertical-align:top}.staff-table td strong,.staff-table td span{display:block}.staff-table td strong{color:#0f172a;font-weight:950}.staff-table td span{color:#64748b;font-size:13px;margin-top:4px}.signature-chip{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;color:#475569;display:inline-flex;font-size:12px;font-weight:950;padding:6px 10px}.signature-chip.owner_approved{background:#ecfdf5;border-color:#bbf7d0;color:#047857}.signature-chip.pending_owner_approval{background:#fff7ed;border-color:#fed7aa;color:#c2410c}.signature-chip.revoked{background:#fff1f2;border-color:#fecdd3;color:#be123c}.staff-edit-panel{background:#fffffff5;border:1px solid rgba(148,163,184,.2);border-radius:18px;box-shadow:0 18px 42px #0f172a12;padding:20px}.hub-edit-modal.staff-edit-panel{border:1px solid rgba(219,234,254,.88);border-radius:24px;box-shadow:0 36px 90px #0f172a47,inset 0 1px #ffffffeb;padding:clamp(22px,3vw,30px);width:min(900px,calc(100vw - 360px))}.staff-edit-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.staff-edit-grid label{color:#334155;display:grid;font-weight:900;gap:7px}.staff-edit-grid input{background:#fff;border:1px solid #dbe4f0;border-radius:12px;color:#0f172a;font:inherit;min-height:44px;padding:0 12px}.internal-supervision-view{color:#0f172a}.internal-hero{align-items:center;background:radial-gradient(circle at 20% 20%,rgba(56,189,248,.22),transparent 32%),radial-gradient(circle at 85% 10%,rgba(139,92,246,.18),transparent 34%),linear-gradient(135deg,#fff,#eef6ff 52%,#f5f3ff);border:1px solid rgba(148,163,184,.22);border-radius:18px;box-shadow:0 24px 70px #0f172a14;display:flex;gap:20px;justify-content:space-between;padding:28px}.internal-hero span,.internal-panel-header p{align-items:center;color:#475569;display:flex;gap:8px;margin:0}.internal-hero h1{color:#0f172a;font-size:30px;letter-spacing:0;margin:10px 0}.internal-hero p{color:#475569;line-height:1.7;margin:0;max-width:760px}.internal-hero-actions,.internal-row-actions,.internal-card-meta,.internal-submit-form>div{display:flex;flex-wrap:wrap;gap:10px}.internal-hero-actions button,.internal-card-action,.internal-submit-form button,.internal-row-actions button,.internal-link-form button,.internal-panel-header button{align-items:center;background:#fff;border:1px solid #dbeafe;border-radius:12px;color:#1d4ed8;cursor:pointer;display:inline-flex;font-weight:850;gap:8px;justify-content:center;min-height:42px;padding:10px 14px}.internal-hero-actions .primary,.internal-submit-form .primary,.internal-link-form .primary{background:linear-gradient(135deg,#2563eb,#7c3aed);border:0;color:#fff}.internal-hero-actions button:disabled,.internal-submit-form button:disabled,.internal-row-actions button:disabled,.internal-link-form button:disabled{cursor:wait;opacity:.65}.internal-message,.internal-inline-message{background:#eff6ff;border:1px solid #bfdbfe;border-radius:14px;color:#1d4ed8;font-weight:800;padding:12px 14px}.internal-tabs{background:#ffffffbd;border:1px solid #e2e8f0;border-radius:16px;display:flex;gap:8px;padding:8px}.internal-tabs button{background:transparent;border:0;border-radius:12px;color:#64748b;cursor:pointer;flex:1;font-weight:900;min-height:42px;padding:10px}.internal-tabs button.active{background:#fff;box-shadow:0 12px 30px #2563eb1f;color:#1d4ed8}.internal-panel{background:linear-gradient(145deg,#ffffffd1,#eff6ffa3);-webkit-backdrop-filter:blur(18px) saturate(1.18);backdrop-filter:blur(18px) saturate(1.18);border:1px solid rgba(255,255,255,.72);border-radius:18px;box-shadow:0 20px 55px #0f172a12,inset 0 1px #ffffffd1;padding:22px}.internal-panel-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:18px}.internal-panel-header h2{font-size:22px;letter-spacing:0;margin:0 0 6px}.internal-panel-header>span,.internal-panel-tools>span{background:#eef2ff;border-radius:999px;color:#3730a3;font-weight:900;padding:8px 12px}.internal-panel-tools{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.school-filter-control{align-items:center;background:#ffffffb8;border:1px solid rgba(191,219,254,.9);border-radius:14px;box-shadow:0 12px 30px #2563eb14;display:flex;gap:8px;padding:7px 10px}.school-filter-control span{color:#475569;font-size:12px;font-weight:900}.school-filter-control select{background:transparent;border:0;color:#1d4ed8;font:inherit;font-weight:900;max-width:min(340px,42vw);outline:0}.internal-export-button{align-items:center;background:#fff;border:1px solid #dbeafe;border-radius:12px;color:#1d4ed8;display:inline-flex;font-weight:900;gap:8px;min-height:42px;padding:10px 14px;text-decoration:none}.internal-empty{align-items:center;color:#64748b;display:grid;gap:8px;justify-items:center;min-height:220px;text-align:center}.internal-empty strong{color:#0f172a;font-size:18px}.internal-guidance{align-items:center;background:#f0f9ff;border:1px solid #bae6fd;border-radius:14px;color:#075985;display:flex;font-weight:850;gap:10px;line-height:1.6;margin-bottom:16px;padding:12px 14px}.manual-plan-card{align-items:center;background:linear-gradient(180deg,#fff,#f8fbff);border:1px solid #e2e8f0;border-radius:16px;display:flex;gap:18px;justify-content:space-between;padding:18px}.manual-plan-card span{color:#4f46e5;font-size:13px;font-weight:900}.manual-plan-card h3{color:#0f172a;font-size:21px;letter-spacing:0;margin:6px 0}.manual-plan-card p{color:#64748b;margin:0}.manual-plan-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.manual-plan-actions a,.manual-plan-actions button,.manual-plan-footer button,.manual-plan-link{align-items:center;background:#fff;border:1px solid #dbeafe;border-radius:12px;color:#1d4ed8;cursor:pointer;display:inline-flex;font-weight:900;gap:8px;justify-content:center;min-height:42px;padding:10px 14px;text-decoration:none}.manual-plan-actions .primary,.manual-plan-footer .primary{background:linear-gradient(135deg,#2563eb,#7c3aed);border:0;color:#fff}.manual-plan-backdrop{align-items:center;background:linear-gradient(135deg,#0f172a7a,#2563eb38),#0f172a52;-webkit-backdrop-filter:blur(18px) saturate(1.25);backdrop-filter:blur(18px) saturate(1.25);display:grid;inset:0 0 0 280px;justify-items:center;overflow:auto;padding:clamp(18px,4dvh,40px) clamp(14px,3vw,34px);position:fixed;z-index:200}.manual-plan-modal{background:linear-gradient(145deg,#ffffffe6,#f0f9ffc2);border:1px solid rgba(255,255,255,.72);border-radius:18px;box-shadow:0 36px 100px #0f172a57,inset 0 1px #ffffffd1;display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-height:min(88dvh,820px);overflow:hidden;position:relative;width:min(900px,calc(100vw - 312px))}.manual-plan-modal header,.manual-plan-footer{align-items:center;-webkit-backdrop-filter:blur(18px) saturate(1.2);backdrop-filter:blur(18px) saturate(1.2);background:#ffffffa8;border-bottom:1px solid rgba(226,232,240,.78);display:flex;gap:14px;justify-content:space-between;padding:18px 20px}.manual-plan-modal header span{color:#64748b;font-size:13px;font-weight:900}.manual-plan-modal header h3{color:#0f172a;font-size:clamp(19px,2.1vw,24px);letter-spacing:0;margin:4px 0 0}.manual-plan-modal header button{align-items:center;background:#f8fafcd1;border:1px solid rgba(203,213,225,.82);border-radius:12px;color:#0f172a;cursor:pointer;display:inline-flex;flex:0 0 auto;height:38px;justify-content:center;width:38px}.manual-plan-form{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));overflow:auto;overscroll-behavior:contain;padding:18px 20px 20px;scrollbar-width:thin}.manual-plan-form label{display:grid;gap:6px}.manual-plan-form .wide{grid-column:1 / -1}.manual-plan-form span{color:#475569;font-size:13px;font-weight:900}.manual-plan-form input,.manual-plan-form textarea{background:#ffffffc7;border:1px solid rgba(148,163,184,.58);border-radius:12px;color:#0f172a;font:inherit;padding:11px 12px;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;width:100%}.manual-plan-form input:focus,.manual-plan-form textarea:focus{background:#fffffff0;border-color:#2563ebc7;box-shadow:0 0 0 4px #3b82f629;outline:0}.manual-plan-footer{border-bottom:0;border-top:1px solid rgba(226,232,240,.78);justify-content:flex-end}.internal-requirement-list{display:grid;gap:14px}.internal-requirement-card{background:#f8fbff;border:1px solid #e2e8f0;border-radius:16px;display:grid;gap:14px;grid-template-columns:minmax(0,1fr) auto;padding:18px}.internal-requirement-card h3{font-size:19px;letter-spacing:0;margin:8px 0 6px}.internal-requirement-card p{color:#64748b;margin:0}.internal-type{color:#4f46e5;font-size:13px;font-weight:900}.internal-status{border-radius:999px;display:inline-flex;font-size:13px;font-weight:900;padding:7px 10px}.status-draft{background:#f1f5f9;color:#475569}.status-not_submitted{background:#fee2e2;color:#b91c1c}.status-submitted,.status-resubmitted{background:#dbeafe;color:#1d4ed8}.status-under_review{background:#fef3c7;color:#b45309}.status-revision_requested{background:#fee2e2;color:#b91c1c}.status-approved,.status-checked{background:#dcfce7;color:#047857}.internal-card-meta{align-content:flex-start;justify-content:flex-end;min-width:180px}.internal-card-meta a,.internal-table a{align-items:center;color:#2563eb;display:inline-flex;font-weight:850;gap:6px;text-decoration:none}.danger-text{color:#dc2626;font-weight:900}.internal-card-action{grid-column:1 / -1;width:fit-content}.internal-submit-form{border-top:1px solid #e2e8f0;display:grid;gap:12px;grid-column:1 / -1;padding-top:12px}.internal-submit-form label,.internal-link-form label{display:grid;gap:6px}.internal-submit-form span,.internal-link-form span{color:#475569;font-size:13px;font-weight:900}.internal-submit-form input,.internal-submit-form textarea,.internal-link-form select{background:#fff;border:1px solid #cbd5e1;border-radius:12px;color:#0f172a;font:inherit;padding:11px 12px}.internal-metrics{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.internal-metrics.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.internal-metrics article{background:#ffffffa8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(226,232,240,.82);border-radius:14px;padding:16px}.metric-color-grid .metric-tone{border:1px solid rgba(255,255,255,.78);box-shadow:0 16px 34px #0f172a0f,inset 0 1px #ffffffd9;overflow:hidden;position:relative}.metric-color-grid .metric-tone:after{border-radius:999px;content:"";height:72px;opacity:.34;position:absolute;right:-22px;top:-28px;width:72px}.metric-tone-blue{background:linear-gradient(145deg,#dbeafef0,#ffffffc2)!important}.metric-tone-blue:after{background:#2563eb}.metric-tone-cyan{background:linear-gradient(145deg,#cffafef0,#ffffffc2)!important}.metric-tone-cyan:after{background:#0891b2}.metric-tone-amber{background:linear-gradient(145deg,#fef3c7fa,#ffffffc2)!important}.metric-tone-amber:after{background:#f59e0b}.metric-tone-green{background:linear-gradient(145deg,#dcfce7fa,#ffffffc2)!important}.metric-tone-green:after{background:#10b981}.metric-tone-red{background:linear-gradient(145deg,#fee2e2fa,#ffffffc2)!important}.metric-tone-red:after{background:#ef4444}.period-settings-card{align-items:stretch;background:linear-gradient(135deg,#faf5ffe6,#e0f2febd),#ffffffbd;-webkit-backdrop-filter:blur(18px) saturate(1.18);backdrop-filter:blur(18px) saturate(1.18);border:1px solid rgba(216,180,254,.72);border-radius:18px;box-shadow:0 18px 46px #4f46e51a,inset 0 1px #ffffffe0;display:flex;gap:18px;justify-content:space-between;margin:4px 0 18px;padding:16px}.period-settings-card span{color:#7c3aed;display:block;font-size:13px;font-weight:950}.period-settings-card strong{color:#0f172a;display:block;font-size:18px;margin-top:4px}.period-settings-card small{color:#64748b;display:block;font-weight:750;margin-top:4px}.period-settings-controls{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.period-settings-controls input{background:#ffffffdb;border:1px solid rgba(191,219,254,.9);border-radius:12px;color:#0f172a;font:inherit;font-weight:850;min-height:42px;padding:9px 12px;width:128px}.period-settings-controls button{background:linear-gradient(135deg,#2563eb,#7c3aed);border:0;border-radius:12px;color:#fff;cursor:pointer;font:inherit;font-weight:950;min-height:42px;padding:9px 14px}.cycle-settings-list{display:grid;gap:8px;min-width:min(100%,360px)}.cycle-settings-list label{align-items:center;background:#ffffffad;border:1px solid rgba(191,219,254,.78);border-radius:12px;display:grid;gap:8px;grid-template-columns:18px minmax(96px,1fr) auto 150px;padding:8px 10px}.cycle-settings-list .cycle-open-toggle{border:0;display:inline-flex;gap:6px;grid-template-columns:none;padding:0;white-space:nowrap}.cycle-settings-list .cycle-open-toggle input{accent-color:#2563eb}.cycle-settings-list input[type=date]{background:#ffffffe0;border:1px solid rgba(191,219,254,.9);border-radius:10px;color:#0f172a;font:inherit;font-weight:800;min-height:36px;min-width:0;padding:6px 8px}.committee-panel{align-items:start;background:linear-gradient(145deg,#ffffffb8,#e0f2fe80);border:1px solid rgba(191,219,254,.82);border-radius:16px;box-shadow:inset 0 1px #ffffffc7;display:grid;gap:14px;margin-bottom:18px;padding:16px}.longitudinal-panel{background:#ffffffb3;border:1px solid rgba(191,219,254,.82);border-radius:16px;box-shadow:inset 0 1px #ffffffc7;margin-bottom:18px;padding:16px}.longitudinal-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.longitudinal-grid article{background:#f8fafce6;border:1px solid rgba(226,232,240,.9);border-radius:14px;padding:12px}.longitudinal-grid h4{color:#0f172a;font-size:14px;margin:0 0 10px}.mini-table{display:grid;gap:8px}.mini-table div{display:grid;gap:2px}.mini-table span{color:#475569;font-size:12px;font-weight:800}.mini-table strong{color:#0f172a;font-size:13px}.committee-panel h3{align-items:center;color:#0f172a;display:flex;font-size:18px;gap:8px;letter-spacing:0;margin:0 0 4px}.committee-panel p{color:#64748b;margin:0}.committee-list{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.committee-list label{align-items:start;background:#ffffffa8;border:1px solid rgba(226,232,240,.82);border-radius:14px;cursor:pointer;display:grid;gap:4px 10px;grid-template-columns:auto minmax(0,1fr);padding:12px}.committee-list input{margin-top:4px}.committee-list span,.committee-list small{display:block}.committee-list span{color:#0f172a;font-weight:900}.committee-list small{color:#64748b;grid-column:2}.committee-panel>button{align-items:center;background:linear-gradient(135deg,#2563eb,#7c3aed);border:0;border-radius:12px;color:#fff;display:inline-flex;font-weight:900;gap:8px;justify-content:center;justify-self:end;min-height:42px;padding:10px 14px}.internal-metrics span{color:#64748b;display:block;font-size:13px;font-weight:850}.internal-metrics strong{color:#0f172a;display:block;font-size:28px;margin-top:6px}.supervision-workflow-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0 12px}.supervision-workflow-board button{align-items:center;background:#fff;border:1px solid #dbeafe;border-radius:12px;color:#1d4ed8;cursor:pointer;display:grid;gap:9px;grid-template-columns:34px minmax(0,1fr);min-height:84px;padding:12px;text-align:left}.supervision-workflow-board button.active{border-color:#2563eb;box-shadow:0 14px 32px #2563eb29}.supervision-workflow-board button.danger{border-color:#fed7aa;color:#c2410c}.supervision-workflow-board button.warning{border-color:#fde68a;color:#a16207}.supervision-workflow-board svg{align-self:start;margin-top:2px}.supervision-workflow-board span{display:grid;gap:5px;min-width:0}.supervision-workflow-board strong{color:#0f172a;font-size:24px;font-weight:950;line-height:1}.supervision-workflow-board small{color:#64748b;font-size:12px;font-weight:850;line-height:1.35}.supervision-workflow-list{display:grid;gap:8px;margin:0 0 18px;padding:12px;border:1px solid rgba(191,219,254,.78);border-radius:12px;background:#f8fafcdb}.supervision-workflow-list>div{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.supervision-workflow-list>div strong,.supervision-workflow-list>div span{display:block}.supervision-workflow-list>div span,.supervision-workflow-list p{color:#64748b;font-size:13px;font-weight:820;margin:0}.supervision-workflow-list button{align-items:center;display:flex;gap:12px;justify-content:space-between;min-height:54px;padding:10px 12px;border:1px solid #e2e8f0;border-left:4px solid #f97316;border-radius:8px;color:#0f172a;background:#fff;cursor:pointer;text-align:left}.supervision-workflow-list button>span{min-width:0}.supervision-workflow-list button strong{display:block;overflow:hidden;color:#0f172a;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.supervision-workflow-list button small{display:block;color:#64748b;font-size:12px;font-weight:820;margin-top:3px}.internal-subsection-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin:22px 0 12px}.internal-subsection-header.compact{border-top:1px solid #e2e8f0;padding-top:18px}.internal-subsection-header h3{color:#0f172a;font-size:18px;letter-spacing:0;margin:0 0 4px}.internal-subsection-header p{color:#64748b;margin:0}.internal-filter-pills{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.internal-filter-pills button{background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;color:#475569;cursor:pointer;font-weight:900;min-height:36px;padding:8px 12px}.internal-filter-pills button.active{background:#1d4ed8;border-color:#1d4ed8;color:#fff}.internal-table table thead th{position:sticky;top:0;z-index:1}.internal-table td strong,.internal-table td small{display:block}.internal-table td small{color:#64748b;font-size:12px;margin-top:4px}.internal-row-overdue{background:#fff7ed}.muted-cell{color:#94a3b8;font-weight:800}.internal-row-actions button{min-height:34px;padding:7px 10px}.internal-row-actions .supervise-button{background:linear-gradient(135deg,#2563ebf5,#0ea5e9e0);border:0;color:#fff}.internal-link-form{align-items:end;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;margin-bottom:18px}.internal-link-list{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.internal-link-list article{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;display:grid;gap:5px;padding:14px}.internal-link-list span,.internal-link-list small{color:#64748b}.internal-link-list .linked{align-items:center;color:#047857;display:inline-flex;font-weight:900;gap:6px}.internal-drawer-backdrop{background:#0f172a5c;inset:0;position:fixed;z-index:60}.supervision-modal-backdrop{align-items:center;background:radial-gradient(circle at 50% 18%,rgba(216,180,254,.28),transparent 34%),linear-gradient(135deg,#1e1b4b80,#581c873d),#0f172a61;-webkit-backdrop-filter:blur(18px) saturate(1.18);backdrop-filter:blur(18px) saturate(1.18);display:flex;justify-content:center;padding:clamp(14px,4dvh,34px) clamp(12px,3vw,32px)}.internal-review-drawer{background:linear-gradient(145deg,#f8fbffeb,#eff6ffc7);-webkit-backdrop-filter:blur(18px) saturate(1.14);backdrop-filter:blur(18px) saturate(1.14);box-shadow:-30px 0 80px #0f172a47;display:grid;grid-template-rows:auto minmax(0,1fr);height:100dvh;margin-left:auto;max-width:min(720px,100vw);width:720px}.internal-review-drawer header{align-items:flex-start;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;gap:14px;justify-content:space-between;padding:20px}.internal-review-drawer header span{color:#6366f1;font-size:13px;font-weight:900}.internal-review-drawer header h3{font-size:22px;letter-spacing:0;margin:5px 0 0}.internal-review-drawer header button{align-items:center;background:#f1f5f9;border:0;border-radius:12px;color:#334155;cursor:pointer;display:inline-flex;height:38px;justify-content:center;width:38px}.internal-drawer-body{display:grid;gap:14px;overflow:auto;padding:18px}.internal-drawer-body section{background:#ffffffb8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(226,232,240,.82);border-radius:16px;display:grid;gap:12px;padding:16px}.internal-drawer-body h4{font-size:17px;letter-spacing:0;margin:0}.internal-detail-grid,.internal-result-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.internal-detail-grid div{background:#f8fafc;border-radius:12px;padding:10px}.internal-detail-grid dt{color:#64748b;font-size:12px;font-weight:900}.internal-detail-grid dd{color:#0f172a;font-weight:900;margin:4px 0 0}.internal-version-list,.internal-review-history{display:grid;gap:8px}.internal-version-list a{align-items:center;background:#eff6ff;border-radius:12px;color:#1d4ed8;display:inline-flex;font-weight:850;gap:8px;padding:10px;text-decoration:none}.internal-review-history article{background:#f8fafc;border-radius:12px;display:grid;gap:4px;padding:10px}.internal-review-history span,.internal-review-history p{color:#64748b;margin:0}.internal-drawer-body label{display:grid;gap:6px}.internal-drawer-body label span{color:#475569;font-size:13px;font-weight:900}.internal-drawer-body textarea,.internal-drawer-body input,.internal-drawer-body select{background:#fff;border:1px solid #cbd5e1;border-radius:12px;color:#0f172a;font:inherit;padding:10px 12px}.internal-drawer-actions{display:flex;flex-wrap:wrap;gap:10px}.internal-drawer-actions button,.internal-drawer-body section>button{align-items:center;background:#fff;border:1px solid #dbeafe;border-radius:12px;color:#1d4ed8;cursor:pointer;display:inline-flex;font-weight:900;gap:8px;justify-content:center;min-height:40px;padding:9px 12px}.internal-drawer-actions .primary,.internal-drawer-body section>button.primary{background:linear-gradient(135deg,#2563eb,#7c3aed);border:0;color:#fff}.internal-drawer-body section>button:disabled{cursor:not-allowed;filter:grayscale(1);opacity:.55}.supervision-drawer{background:linear-gradient(145deg,#ffffffdb,#f5f3ffc7),radial-gradient(circle at 20% 12%,rgba(216,180,254,.32),transparent 38%);border:1px solid rgba(255,255,255,.74);border-radius:24px;box-shadow:0 34px 110px #312e8157,inset 0 1px #ffffffdb;height:min(94dvh,980px);margin-left:0;max-width:min(1180px,calc(100vw - 28px));overflow:hidden;width:min(1180px,calc(100vw - 28px))}.plan-detail-modal-backdrop{align-items:center;background:radial-gradient(circle at 50% 18%,rgba(216,180,254,.2),transparent 36%),#0f172a6b;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:flex;justify-content:center;padding:clamp(14px,4dvh,34px)}.plan-detail-modal{border:1px solid rgba(255,255,255,.72);border-radius:22px;height:min(82dvh,760px);margin-left:0;max-width:min(860px,calc(100vw - 28px));overflow:hidden;width:min(860px,calc(100vw - 28px))}.supervision-drawer header{background:linear-gradient(135deg,#ffffffdb,#ede9fec7);border-bottom:1px solid rgba(221,214,254,.9)}.supervision-drawer header span{color:#6d28d9}.supervision-score-summary{align-items:center;grid-template-columns:auto minmax(0,1fr)}.supervision-score-summary div{background:linear-gradient(135deg,#2563eb1f,#14b8a61f);border:1px solid rgba(125,211,252,.55);border-radius:14px;padding:14px}.supervision-score-summary span{color:#64748b;display:block;font-size:13px;font-weight:900}.supervision-score-summary strong{color:#0f172a;display:block;font-size:28px;margin-top:4px}.supervision-score-summary p{color:#64748b;line-height:1.6;margin:0}.supervision-modal-tabs{background:#ffffff94;border:1px solid rgba(221,214,254,.84);border-radius:16px;display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));padding:8px}.supervision-modal-tabs button{background:transparent;border:0;border-radius:12px;color:#64748b;font-weight:950;min-height:42px;padding:10px 12px}.supervision-modal-tabs button.active{background:linear-gradient(135deg,#7c3aedf2,#3b82f6e6);color:#fff;box-shadow:0 12px 28px #7c3aed38}.visit-note-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.visit-note-boxes{display:grid;gap:12px}.visit-note-grid input,.visit-note-boxes textarea{background:#ffffffd1;border:1px solid rgba(196,181,253,.8)}.rubric-list{display:grid;gap:10px}.rubric-section-list{display:grid;gap:14px}.rubric-section{display:grid;gap:10px}.rubric-section h5{background:linear-gradient(135deg,#7c3aed1f,#d8b4fe2e);border:1px solid rgba(196,181,253,.72);border-radius:14px;color:#4c1d95;font-size:15px;letter-spacing:0;margin:0;padding:10px 12px}.rubric-list article{align-items:center;background:#f8fafcb8;border:1px solid rgba(226,232,240,.82);border-radius:14px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto;padding:12px}.rubric-list strong{color:#0f172a;display:block;font-weight:950}.rubric-list p{color:#64748b;line-height:1.5;margin:4px 0 0}.score-pills{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.score-pills button{align-items:center;background:#fff;border:1px solid #dbeafe;border-radius:999px;color:#2563eb;display:inline-flex;font-weight:900;gap:4px;min-height:34px;padding:7px 10px}.score-pills button.active{background:linear-gradient(135deg,#2563eb,#7c3aed);border-color:transparent;color:#fff}.supervision-pdf-render-root{background:#fff;left:-10000px;pointer-events:none;position:fixed;top:0;width:210mm;z-index:0}.supervision-pdf-page{background:#fff;box-sizing:border-box;color:#111827;font-family:TH SarabunPSK,TH Sarabun New,Sarabun,Noto Sans Thai,Arial,sans-serif;font-size:16px;line-height:1.32;height:297mm;overflow:hidden;padding:10mm 11mm;width:210mm}.supervision-pdf-page h1,.supervision-pdf-page h2,.supervision-pdf-page h3{letter-spacing:0;margin:0;text-align:center}.supervision-pdf-page h1{font-size:25px}.supervision-pdf-page h2{font-size:18px;font-weight:800;margin-top:3px}.supervision-pdf-page h3{font-size:17px;margin:10px 0 5px;text-align:left}.supervision-pdf-page.rubric-page{padding:9mm 10mm}.supervision-pdf-page .hint{margin:0 0 6px}.supervision-pdf-page .meta-grid{display:grid;gap:6px;grid-template-columns:repeat(2,1fr);margin:12px 0 8px}.supervision-pdf-page .meta-grid div,.supervision-pdf-page .visit-box,.supervision-pdf-page .comment-box{border:1px solid #111827;padding:6px 8px}.supervision-pdf-page .meta-grid b{display:block;font-size:14px}.supervision-pdf-page .meta-grid span{display:block;font-weight:700;margin-top:2px}.supervision-pdf-page .visit-box p{margin:3px 0}.supervision-pdf-page table{border-collapse:collapse;table-layout:fixed;width:100%}.supervision-pdf-page .rubric-pdf-table{border:1.4px solid #111827;font-size:15.5px;line-height:1.22}.supervision-pdf-page .rubric-pdf-table .topic-col{width:auto}.supervision-pdf-page .rubric-pdf-table .score-col{width:8mm}.supervision-pdf-page .rubric-pdf-table .note-col{width:20mm}.supervision-pdf-page th,.supervision-pdf-page td{border:1px solid #111827;padding:4px 5px;vertical-align:top}.supervision-pdf-page th{font-weight:800;text-align:center}.supervision-pdf-page .rubric-pdf-table th,.supervision-pdf-page .rubric-pdf-table td{border-color:#111827;padding:3px 5px}.supervision-pdf-page .rubric-pdf-table thead th{background:#fff;font-size:16px;line-height:1.05;padding:2px 3px;vertical-align:middle}.supervision-pdf-page .section-row td{background:#f3f4f6;font-weight:900;padding:4px 6px}.supervision-pdf-page .rubric-pdf-table tbody tr:not(.section-row) td{height:7.6mm}.supervision-pdf-page .topic-cell{font-weight:700;line-height:1.22;width:auto}.supervision-pdf-page .topic-cell div{color:#4b5563;font-size:13px;margin-top:1px}.supervision-pdf-page .score-cell{font-size:16px;font-weight:900;line-height:1;padding:0;text-align:center;vertical-align:middle}.supervision-pdf-page .note-cell{font-weight:800;padding:1px 3px;text-align:center;vertical-align:middle}.supervision-pdf-page tfoot td{font-weight:900}.supervision-pdf-page .rubric-pdf-table .summary-value{font-size:14.5px;white-space:nowrap}.supervision-pdf-page .comment-box{margin-top:6px}.supervision-pdf-page .comment-box strong,.supervision-pdf-page .comment-box span{display:block}.supervision-pdf-page .comment-box span{color:#4b5563;font-size:13px}.supervision-pdf-page .comment-box p{margin:3px 0}.supervision-pdf-page .signature-grid{display:grid;gap:18px 32px;grid-template-columns:repeat(2,1fr);margin-top:18px;text-align:center}.supervision-pdf-page .signature-grid-compact{margin-top:14px}.supervision-pdf-page .signature-grid span{display:inline-block;margin-top:8px}.supervision-pdf-page .pdf-signature-card{color:#111827;font-size:20px;font-weight:800;line-height:1.05;text-align:center}.supervision-pdf-page .pdf-signature-line{align-items:flex-end;display:flex;gap:5px;justify-content:center;white-space:nowrap}.supervision-pdf-page .pdf-signature-line span{display:inline;margin:0}.supervision-pdf-page .pdf-signature-line i{border-bottom:1.2px dotted #111827;display:inline-block;flex:0 1 62mm;height:16px}.supervision-pdf-page .pdf-signature-name{margin-top:4px;white-space:nowrap}.supervision-pdf-page .pdf-signature-role{margin-top:2px}.supervision-pdf-page .pdf-signature-row{display:grid;gap:11mm;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:10mm}.supervision-pdf-page .signature-row-center{display:flex;justify-content:center}.supervision-pdf-page .signature-row-center .pdf-signature-card{width:92mm}.supervision-pdf-page .approval-signatures{margin-top:10mm}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes heroGlowPulse{0%{box-shadow:0 0 10px #00c3ff1a,0 0 5px #7c3aed33;filter:brightness(1)}to{box-shadow:0 0 30px #00c3ff4d,0 0 15px #7c3aed66;filter:brightness(1.08)}}.student-console{gap:14px;max-width:100%;min-width:0;overflow:hidden}.hub-modal-backdrop{align-items:center;background:radial-gradient(circle at 20% 12%,rgba(56,189,248,.22),transparent 28%),linear-gradient(135deg,#0f172a75,#2563eb3d),#0f172a47;-webkit-backdrop-filter:blur(18px) saturate(1.18);backdrop-filter:blur(18px) saturate(1.18);display:grid;justify-items:center;inset:0;overflow:auto;padding:clamp(18px,4dvh,42px) clamp(14px,3vw,36px);position:fixed;z-index:240}.hub-edit-modal{background:radial-gradient(circle at top right,rgba(124,58,237,.1),transparent 34%),radial-gradient(circle at bottom left,rgba(6,182,212,.12),transparent 34%),linear-gradient(145deg,#fffffffa,#f8fbfff2);border:1px solid rgba(219,234,254,.88);border-radius:24px;box-shadow:0 36px 90px #0f172a47,inset 0 1px #ffffffeb;display:grid;gap:18px;max-height:min(88dvh,820px);overflow:auto;padding:clamp(22px,3vw,30px);position:relative;width:min(940px,calc(100vw - 48px))}.hub-edit-modal.timetable-crud-form{left:50%;position:fixed;top:50%;transform:translate(-50%,-50%);width:min(920px,calc(100vw - 48px))}.hub-edit-modal-header{display:grid;gap:6px;padding-right:48px}.hub-edit-modal-header span{align-items:center;color:#2563eb;display:inline-flex;font-size:13px;font-weight:950;gap:8px}.hub-edit-modal-header h3{color:#0f172a;font-size:clamp(24px,2.7vw,34px);letter-spacing:0;line-height:1.15;margin:0}.hub-edit-modal-header p{color:#64748b;font-weight:850;line-height:1.5;margin:0}.modal-close{align-items:center;background:#eff6ff;border:1px solid rgba(147,197,253,.68);border-radius:14px;color:#1d4ed8;display:inline-flex;height:42px;justify-content:center;position:absolute;right:18px;top:18px;width:42px}.modal-close:hover{background:#dbeafe;transform:translateY(-1px)}.modal-form-grid{background:#f8fafcb8;border:1px solid rgba(226,232,240,.78);border-radius:18px;padding:16px}.hub-edit-modal-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}.hub-edit-modal-actions button,.timetable-form-actions button{align-items:center;border-radius:14px;display:inline-flex;font-weight:950;gap:8px;justify-content:center;min-height:46px;padding:11px 16px}.hub-edit-modal-actions .primary-action,.timetable-form-actions .primary-action{background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff}.hub-edit-modal-actions .secondary-action,.timetable-form-actions .secondary-action{background:#e2e8f0;color:#334155}.hub-edit-modal-actions .danger-action{margin-right:auto;border:1px solid #fecaca;background:#fff1f2;color:#b91c1c}.hub-edit-modal-actions .danger-action:hover:not(:disabled){background:#fee2e2;transform:translateY(-1px)}.student-dashboard-grid{display:grid;gap:12px;grid-template-columns:minmax(0,1fr);max-width:100%;min-width:0}.student-summary-card,.student-tool-card,.student-form-card,.student-table-card{background:linear-gradient(135deg,#fffffffa,#f0f9fff0 58%,#ecfeffe6);border:1px solid rgba(147,197,253,.34);border-radius:18px;box-shadow:0 18px 38px #2563eb14;padding:16px}.student-tool-card{background:linear-gradient(135deg,#fff,#f8fbff 48%,#f5f3ff);border-color:#c4b5fd5c;min-width:0;overflow:hidden}.student-form-card{background:linear-gradient(135deg,#fff,#f7fee7 48%,#ecfeff);border-color:#86efac57}.student-table-card{background:linear-gradient(135deg,#fff,#f8fafc 48%,#eff6ff);min-width:0;overflow:hidden}.student-summary-card small{color:#64748b;display:block;font-weight:900;margin-bottom:6px}.student-summary-card{align-items:start;column-gap:16px;display:grid;grid-template-columns:minmax(140px,.18fr) minmax(0,1fr);row-gap:4px}.student-summary-card>strong{color:#0f172a;display:block;font-size:clamp(32px,4vw,52px);font-weight:900;line-height:1}.student-grade-list{display:grid;gap:8px;grid-column:2;grid-row:1 / span 2;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));margin-top:0;min-width:0}.student-grade-list button,.student-school-counts button{align-items:center;background:#eff6ffe6;border:1px solid rgba(147,197,253,.34);border-radius:14px;color:#0f172a;display:flex;font-weight:900;justify-content:space-between;min-height:42px;min-width:0;padding:9px 12px}.student-school-counts{border-bottom:1px solid rgba(147,197,253,.26);display:grid;gap:8px;grid-column:1 / -1;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-bottom:4px;padding-bottom:12px}.student-school-counts button{background:linear-gradient(135deg,#eef2ff,#ecfeff)}.student-school-counts button span{color:#2563eb}.student-filters,.student-form-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.student-filters{background:linear-gradient(135deg,#f0f9fff0,#fff7ed94,#f5f3ffb8);border:1px solid rgba(147,197,253,.3);border-radius:18px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));padding:14px}.student-tool-card .panel-header{align-items:flex-start;flex-wrap:wrap;margin-bottom:10px}.student-tool-card .header-actions{flex:1 1 440px;justify-content:flex-end;min-width:280px}.student-tool-card .header-actions button{flex:0 1 auto;min-width:max-content}.student-school-strip{display:flex;gap:10px;margin:2px 0 12px;overflow-x:auto;padding-bottom:4px}.student-school-strip button{align-items:center;background:#eff6ffe6;border:1px solid rgba(147,197,253,.42);border-radius:14px;color:#1e3a8a;display:inline-flex;flex:0 0 auto;font-size:14px;font-weight:900;gap:8px;min-height:40px;padding:8px 12px}.student-school-strip button span{background:#fff;border-radius:999px;color:#2563eb;font-size:12px;padding:4px 8px}.student-school-strip button.active{background:linear-gradient(135deg,#2563eb,#7c3aed);border-color:transparent;color:#fff;box-shadow:0 14px 28px #2563eb2e}.student-filters label,.student-form-grid label{color:#334155;display:grid;font-size:13px;font-weight:900;gap:7px}.student-filters .wide{grid-column:span 2}.student-filters input,.student-filters select,.student-form-grid input,.student-form-grid select,.student-import-modal textarea{appearance:none;background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid rgba(148,163,184,.38);border-radius:14px;color:#0f172a;font:inherit;font-size:16px;font-weight:800;line-height:1.45;min-height:50px;padding:10px 14px;width:100%}.student-filters select,.student-form-grid select{background-image:linear-gradient(180deg,#fff,#f8fafc),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:left top,right 14px center;background-repeat:no-repeat;background-size:auto,18px;padding-right:42px}.student-work-grid{display:grid;gap:16px;grid-template-columns:minmax(320px,.38fr) minmax(0,1fr);max-width:100%;min-width:0}.student-work-grid.readonly{display:block;grid-template-columns:minmax(0,1fr)}.student-form-card h3{color:#0f172a;font-size:22px;margin:0 0 14px}.student-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-code-row{display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto}.student-code-row button,.student-form-actions button,.student-row-actions button,.student-import-actions button{align-items:center;background:linear-gradient(135deg,#2563eb,#7c3aed);border-radius:12px;color:#fff;display:inline-flex;font-weight:900;gap:7px;justify-content:center;min-height:44px;padding:10px 14px}.header-actions .promote-tool{background:linear-gradient(135deg,#f0abfc,#99f6e4);color:#111827}.student-form-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.student-form-actions .muted,.student-import-actions .muted{background:#e2e8f0;color:#334155}.student-table-wrap{border:1px solid rgba(147,197,253,.28);border-radius:16px;max-width:100%;overflow:auto}.student-table{border-collapse:collapse;min-width:860px;width:100%}.student-table th{background:#eff6ff;color:#1e3a8a;font-size:14px;padding:14px;text-align:left}.student-table td{border-top:1px solid rgba(148,163,184,.22);color:#0f172a;font-weight:800;padding:14px;vertical-align:middle}.student-table td small{color:#64748b;display:block;font-size:12px;margin-top:3px}.student-account-pill,.student-account-box span{align-items:center;background:#f1f5f9;border-radius:999px;color:#64748b;display:inline-flex;font-size:13px;font-weight:900;gap:6px;padding:8px 11px}.student-account-pill.linked,.student-account-box.linked span{background:#dcfce7;color:#047857}.student-account-box{display:grid;gap:5px;justify-items:start}.student-account-box small{background:#fff7ed;border:1px solid rgba(251,146,60,.22);border-radius:999px;color:#9a3412;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;font-weight:900;padding:5px 9px}.student-row-actions{display:flex;gap:8px}.student-row-actions .danger{background:#fee2e2;color:#b91c1c}.student-import-modal{background:radial-gradient(circle at 0% 100%,rgba(56,189,248,.14),transparent 30%),linear-gradient(180deg,#fff,#f8fbff);border:1px solid rgba(147,197,253,.45);border-radius:24px;box-shadow:0 30px 80px #0f172a3d;max-width:min(880px,calc(100vw - 32px));padding:28px;position:relative;width:100%}.student-editor-modal{width:min(820px,calc(100vw - 360px))}.student-import-modal h3{align-items:center;color:#0f172a;display:flex;font-size:28px;gap:10px;margin:0 0 6px}.student-import-modal p{color:#64748b;font-weight:800;margin:0 0 18px}.student-import-modal textarea{min-height:260px;resize:vertical}.student-import-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:16px}@media(max-width:960px){.hub-modal-backdrop{left:0;padding:16px}.hub-edit-modal,.student-editor-modal,.hub-edit-modal.staff-edit-panel{width:min(900px,calc(100vw - 32px))}.modal-form-grid,.school-request-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.manual-plan-backdrop{left:0}.manual-plan-modal{width:min(900px,calc(100vw - 32px))}.timetable-hub-hero{grid-template-columns:1fr;padding:22px}.timetable-tabs,.timetable-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.timetable-quick-actions{grid-template-columns:1fr}.timetable-view-toolbar{align-items:stretch;flex-direction:column}.substitution-card{grid-template-columns:1fr}.substitution-grid-title,.substitution-toolbar-actions{align-items:stretch;flex-direction:column}.approval-hero,.staff-hero-panel,.report-center-hero{align-items:flex-start;flex-direction:column}.report-center-actions{justify-content:flex-start}.approval-metrics,.staff-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.school-create-grid,.approval-filters,.staff-edit-grid{grid-template-columns:1fr 1fr}.account-role-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.student-summary-card{grid-template-columns:1fr}.student-grade-list{grid-column:1;grid-row:auto;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));margin-top:12px}.student-tool-card .header-actions{flex-basis:100%;justify-content:flex-start;min-width:0}.student-tool-card .header-actions button{flex:1 1 170px;min-width:0}.approval-card{grid-template-columns:auto minmax(0,1fr)}.approval-editors{grid-column:1 / -1;grid-template-columns:1fr 1fr auto}.approval-actions{grid-column:1 / -1;justify-content:stretch}.approval-actions button{flex:1}.internal-hero{align-items:flex-start;flex-direction:column}.internal-metrics,.supervision-workflow-board,.internal-link-list,.longitudinal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.internal-subsection-header{flex-direction:column}.internal-filter-pills{justify-content:flex-start}.internal-link-form,.internal-requirement-card{grid-template-columns:1fr}.internal-card-meta{justify-content:flex-start}.manual-plan-card{align-items:flex-start;flex-direction:column}.manual-plan-actions{justify-content:flex-start;width:100%}.manual-plan-actions a,.manual-plan-actions button{flex:1 1 180px}}@media(max-width:560px){.hub-edit-modal,.student-editor-modal,.hub-edit-modal.staff-edit-panel{border-radius:18px;max-height:calc(100dvh - 20px);padding:20px 14px 14px;width:calc(100vw - 20px)}.hub-edit-modal-header{padding-right:44px}.hub-edit-modal-actions{display:grid;grid-template-columns:1fr 1fr}.modal-form-grid,.staff-edit-grid,.student-form-grid,.timetable-form-grid,.timetable-quick-actions{grid-template-columns:1fr}.notification-menu{position:fixed;top:78px;right:14px;left:14px;width:auto}.approval-panel-heading{display:grid}.report-preview-shell{padding:10px}.report-center-actions,.report-center-actions button,.report-center-actions select{width:100%}.important-count{justify-self:start}.school-request-fields{grid-template-columns:1fr}.school-request-actions{display:grid;grid-template-columns:1fr}.timetable-tabs{grid-template-columns:1fr}.timetable-tabs button{min-height:52px}.timetable-overview-stats{grid-template-columns:1fr 1fr;gap:8px}.timetable-overview-stats article{min-height:72px;padding:12px}.timetable-overview-stats strong{font-size:22px}.timetable-overview-toolbar{flex-direction:column}.timetable-view-mode,.timetable-view-toolbar label,.timetable-view-toolbar select{width:100%;min-width:0}.hub-timetable-shell{margin-inline:-4px}.hub-timetable-grid{min-width:1040px}.hub-timetable-corner,.hub-timetable-head,.hub-timetable-day,.hub-timetable-lunch-head,.hub-timetable-lunch-cell,.hub-timetable-cell{min-height:72px;padding:8px}.hub-timetable-course-card{max-width:100px}.timetable-cell-list{overflow:visible}.timetable-cell-list table,.timetable-cell-list thead,.timetable-cell-list tbody,.timetable-cell-list tr,.timetable-cell-list td{display:block;width:100%;min-width:0}.timetable-cell-list thead{display:none}.timetable-cell-list tr{margin-bottom:10px;padding:10px 12px;border:1px solid #dbeafe;border-radius:10px;background:#fff;box-shadow:0 12px 24px #0f172a0f}.timetable-cell-list td{display:grid;grid-template-columns:78px minmax(0,1fr);gap:8px;padding:6px 0;border:0;font-size:12px}.timetable-cell-list td:before{content:attr(data-label);color:#64748b;font-size:11px;font-weight:950}.timetable-cell-list .row-actions{justify-content:flex-start}.timetable-cell-list td[colspan]{display:block;text-align:center}.timetable-cell-list td[colspan]:before{content:none}.teacher-subject-grid,.timetable-room-grid,.slot-row{grid-template-columns:1fr}.slot-row span{text-align:left}.timetable-form-grid{grid-template-columns:1fr}.timetable-print-title,.timetable-print-actions{align-items:stretch;flex-direction:column}.timetable-print-actions button{justify-content:center;width:100%}.timetable-form-actions{justify-content:stretch}.timetable-form-actions button{flex:1 1 auto}.internal-tabs,.internal-row-actions,.internal-drawer-actions{flex-direction:column}.internal-metrics,.supervision-workflow-board,.internal-link-list,.internal-detail-grid,.internal-result-grid{grid-template-columns:1fr}.supervision-workflow-list button{align-items:flex-start;display:grid}.longitudinal-grid{grid-template-columns:1fr}.cycle-settings-list label{grid-template-columns:18px minmax(0,1fr)}.cycle-settings-list .cycle-open-toggle,.cycle-settings-list input[type=date]{grid-column:1 / -1}.manual-plan-form,.approval-metrics,.school-create-grid,.approval-filters,.approval-editors{grid-template-columns:1fr}.student-filters .wide{grid-column:1 / -1}.student-summary-card{grid-template-columns:92px minmax(0,1fr);padding:12px}.student-summary-card small,.student-summary-card>strong{grid-column:1}.student-summary-card>strong{font-size:32px}.student-grade-list{display:flex;gap:8px;grid-column:2;grid-row:1 / span 2;margin-top:0;overflow-x:auto;padding-bottom:3px}.student-grade-list button{flex:0 0 112px}.student-school-counts{border-bottom:0;display:flex;flex:0 0 auto;margin:0;padding:0}.student-school-counts button{flex:0 0 148px}.student-tool-card{padding:12px}.student-tool-card .panel-header{gap:8px}.student-tool-card .header-actions{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding-bottom:3px}.student-tool-card .header-actions button{flex:0 0 auto;min-height:38px}.student-school-strip{margin-bottom:8px}.student-school-strip button{font-size:12px;min-height:36px;padding:7px 10px}.student-filters{gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));padding:10px}.student-filters input,.student-filters select{font-size:14px;min-height:44px;padding:8px 10px}.student-table-wrap{overflow:visible}.student-table{min-width:0}.student-table,.student-table thead,.student-table tbody,.student-table tr,.student-table td{display:block;width:100%}.student-table thead{display:none}.student-table tr{margin-bottom:12px;border:1px solid rgba(147,197,253,.28);border-radius:14px;background:#fff;box-shadow:0 12px 26px #0f172a0f;overflow:hidden}.student-table td{align-items:start;border-top:0;display:grid;gap:8px;grid-template-columns:96px minmax(0,1fr);padding:10px 12px}.student-table td:before{color:#64748b;content:attr(data-label);font-size:12px;font-weight:950}.student-table td[colspan]{display:block;text-align:center}.student-table td[colspan]:before{content:none}.student-row-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.account-role-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.account-role-tabs button{min-height:68px;padding:10px}.approval-card{grid-template-columns:1fr}.approval-avatar{display:none}.approval-status-chip{justify-self:start}.manual-plan-backdrop{align-items:end;padding:10px}.manual-plan-modal{border-radius:16px;max-height:calc(100dvh - 20px);width:100%}.manual-plan-modal header,.manual-plan-footer{padding:14px}.manual-plan-footer{display:grid;grid-template-columns:1fr 1fr}.manual-plan-footer button{min-width:0}.internal-review-drawer{width:100vw}.supervision-modal-backdrop{align-items:center;padding:10px}.supervision-drawer{border-radius:18px;height:min(94dvh,820px);max-width:calc(100vw - 20px);width:calc(100vw - 20px)}.plan-detail-modal{border-radius:18px;height:min(90dvh,720px);max-width:calc(100vw - 20px);width:calc(100vw - 20px)}.supervision-score-summary,.supervision-modal-tabs,.visit-note-grid{grid-template-columns:1fr}.rubric-list article{align-items:stretch;grid-template-columns:1fr}.score-pills{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));justify-content:stretch}.score-pills button{min-width:0;padding:7px 6px}}@media print{body *{visibility:hidden}.timetable-print-area,.timetable-print-area *{visibility:visible}.timetable-print-area{position:absolute;top:0;left:0;width:100%;padding:18px;background:#fff}.hub-timetable-grid{overflow:visible;break-inside:avoid;box-shadow:none}.hub-timetable-cell{color:#0f172a}}:root{--hub-aurora-rose: #ec5b86;--hub-aurora-cyan: #22d3ee;--hub-aurora-indigo: #4f46e5;--hub-glass: rgba(255, 255, 255, .78);--hub-glass-strong: rgba(255, 255, 255, .92);--hub-depth-shadow: 0 22px 54px rgba(30, 41, 94, .12);--hub-depth-shadow-hot: 0 18px 42px rgba(79, 70, 229, .18)}body{background:radial-gradient(circle at 12% 4%,rgba(34,211,238,.24),transparent 30%),radial-gradient(circle at 86% 0%,rgba(236,91,134,.2),transparent 33%),radial-gradient(circle at 72% 82%,rgba(79,70,229,.17),transparent 34%),linear-gradient(135deg,#f8fbff,#eef6ff 44%,#fff5fb)}.main:before{position:fixed;inset:0;z-index:0;pointer-events:none;content:"";background:linear-gradient(115deg,transparent 0 18%,rgba(255,255,255,.34) 30%,transparent 42%),radial-gradient(circle at 50% 0%,rgba(255,255,255,.58),transparent 42%);mix-blend-mode:soft-light;opacity:.72}.main>*{position:relative;z-index:1}.sidebar{background:radial-gradient(circle at 20% 0%,rgba(34,211,238,.24),transparent 32%),linear-gradient(178deg,#071832,#14236b,#4b1d63);border-right-color:#ffffff29;box-shadow:18px 0 48px #0f172a33}.topbar{overflow:hidden;border:1px solid rgba(255,255,255,.32);background:linear-gradient(112deg,#071832f5,#2563ebe6 48%,#ec5b86db);box-shadow:var(--hub-depth-shadow-hot)}.topbar:after{position:absolute;right:-90px;bottom:-120px;width:290px;height:290px;border:1px solid rgba(255,255,255,.18);border-radius:50%;content:"";pointer-events:none}.topbar h1,.topbar .eyeless{color:#fff;text-shadow:0 1px 0 rgba(15,23,42,.16)}.topbar .eyeless{opacity:.84}.topbar .school-scope,.topbar .icon-button,.topbar .user-chip{border-color:#ffffff47;background:#ffffffeb;box-shadow:0 12px 28px #0f172a29}.hero-panel,.panel,.metric-card,.module-card,.learning-card,.media-card,.student-summary-card,.student-tool-card,.student-form-card,.student-table-card,.embedded-shell{border-color:#ffffffa3;background:linear-gradient(145deg,var(--hub-glass-strong),var(--hub-glass)),radial-gradient(circle at 100% 0%,rgba(34,211,238,.16),transparent 36%);box-shadow:var(--hub-depth-shadow);backdrop-filter:blur(18px) saturate(138%);-webkit-backdrop-filter:blur(18px) saturate(138%)}.hero-panel:before,.metric-card:before,.module-card:before,.student-summary-card:before,.student-tool-card:before{background:linear-gradient(100deg,transparent 0%,rgba(255,255,255,.62) 48%,transparent 100%)}.metric-card:hover,.module-card:hover,.student-summary-card:hover,.student-tool-card:hover,.student-table-card:hover{border-color:#7dd3fcad;box-shadow:0 22px 52px #2563eb26,0 10px 28px #ec5b8617}.student-school-strip button.active,.student-grade-list button.active,.panel-header button,.student-code-row button,.student-form-actions button,.student-row-actions button,.student-import-actions button{background:linear-gradient(135deg,var(--hub-aurora-cyan) 0%,var(--blue) 46%,var(--hub-aurora-rose) 100%);box-shadow:0 13px 28px #2563eb38}.student-filters,.student-school-counts,.student-table tr{background:linear-gradient(135deg,#ffffffeb,#f8fbffcc),radial-gradient(circle at 100% 0%,rgba(236,91,134,.08),transparent 34%)}.student-table th{background:linear-gradient(135deg,#071832f0,#2563ebdb);color:#eff6ff}.student-table td strong,.student-summary-card>strong,.metric-card strong{font-variant-numeric:tabular-nums}@media(max-width:760px){.topbar{overflow:visible}.topbar:after{display:none}}:root{--text: #0f172a;--muted: #475569}.sidebar{background:radial-gradient(circle at 18% 4%,rgba(34,211,238,.3),transparent 30%),radial-gradient(circle at 98% 92%,rgba(236,91,134,.18),transparent 34%),linear-gradient(178deg,#07152f,#122162 54%,#2d1257)}.brand{border-color:#ffffff38;background:#ffffff1f}.brand-mark{border-color:#ffffff57;background:radial-gradient(circle at 32% 24%,rgba(255,255,255,.38),transparent 34%),linear-gradient(135deg,#0ea5e9,#2563eb 44%,#7c3aed)}.brand strong,.db-card strong{color:#fff;font-weight:950}.brand span,.db-card span{color:#e2e8f0e6}.nav-item{color:#f1f5f9eb;font-weight:850}.nav-item svg:first-child{color:var(--item-color);filter:drop-shadow(0 0 8px color-mix(in srgb,var(--item-color) 64%,transparent)) drop-shadow(0 1px 0 rgba(0,0,0,.22));stroke-width:2.35}.nav-item svg:last-child{color:#e2e8f0b8;opacity:1}.nav-item:hover{color:#fff;border-color:#fff3;background:radial-gradient(circle at 10% 50%,color-mix(in srgb,var(--item-color) 30%,transparent),transparent 42%),#ffffff1a}.nav-item.active{color:#fff;border-color:#ffffff5c;background:linear-gradient(135deg,#0ea5e9f5,#2563ebf5 45%,#7c3aedf0),#ffffff1f;box-shadow:0 16px 34px #2563eb61,inset 0 1px #ffffff4d}.nav-item.active svg:first-child,.nav-item.active svg:last-child{color:#fff;filter:drop-shadow(0 0 10px rgba(255,255,255,.4))}.sub-nav-item{color:#e2e8f0db;font-weight:750}.sub-nav-item:hover,.sub-nav-item.active{color:#fff}.sub-nav-item.active{background:linear-gradient(90deg,#22d3ee38,#7c3aed29),#ffffff1f;box-shadow:inset 0 0 0 1px #7dd3fc47}.sub-nav-badge{color:#fff;background:#0f172a61}.topbar .school-scope,.topbar .icon-button,.topbar .user-chip{color:#0f172a}.panel-header button,.header-actions button,.student-school-strip button.active,.student-grade-list button.active,.student-code-row button,.student-form-actions button,.student-row-actions button,.student-import-actions button{color:#fff;border-color:#ffffff57;font-weight:850;text-shadow:0 1px 0 rgba(15,23,42,.2)}.panel-header button svg,.header-actions button svg,.student-school-strip button.active svg,.student-grade-list button.active svg,.student-code-row button svg,.student-form-actions button svg,.student-row-actions button svg,.student-import-actions button svg{color:currentColor}.filters button,.learning-card button{color:#1e40af}.filters button.active,.learning-card button.primary,.learning-card button[aria-pressed=true]{color:#fff}.metric-card span,.module-card p,.learning-card p,.media-card p,.student-summary-card small,.student-tool-card p,.student-form-card p,.panel p,.panel small,.operations-panel p,.operations-panel small{color:#475569}.metric-card strong,.module-card h3,.learning-card h3,.media-card h3,.student-summary-card strong,.panel h2,.operations-panel h2,.operations-panel strong,.calendar-event-card,.notice-card,.operation-empty,.student-timeline-card{color:#0f172a}.calendar-event-card small,.notice-card small,.operation-empty,.student-timeline-card small{color:#475569}.topbar{z-index:120;overflow:visible!important;border-color:#93c5fd47;background:radial-gradient(circle at 12% 18%,rgba(56,189,248,.1),transparent 30%),radial-gradient(circle at 94% 14%,rgba(236,91,134,.1),transparent 32%),linear-gradient(112deg,#0a1c3eeb,#2a68ddc7,#da5c91ad);box-shadow:0 14px 34px #0f172a24,inset 0 1px #ffffff2e}.topbar:after{z-index:0;opacity:.46}.topbar>*{position:relative;z-index:2}.searchbox{border-color:#cbd5e1c7;background:#ffffffe6}.topbar .icon-button,.profile-button{border-color:#cbd5e1cc;background:#ffffffe6}.profile-menu-container{z-index:160}.profile-dropdown,.notification-menu,.message-menu{z-index:2000}.profile-dropdown{top:calc(100% + 10px);background:radial-gradient(circle at 0% 0%,rgba(56,189,248,.16),transparent 36%),linear-gradient(160deg,#fffffffa,#f1f5f9f5);border-color:#94a3b83d;box-shadow:0 24px 64px #0f172a38}.profile-dropdown .dropdown-item{color:#0f172a}.profile-dropdown .dropdown-item.logout{color:#b91c1c}.notification-menu,.message-menu{top:calc(100% + 12px);box-shadow:0 28px 72px #0f172a3d,0 0 0 1px #ffffffb3}.notification-menu{background:radial-gradient(circle at 90% 0%,rgba(34,211,238,.12),transparent 34%),linear-gradient(180deg,#fffffffc,#f8fafcfa)}.message-menu{background:radial-gradient(circle at 86% 0%,rgba(124,58,237,.1),transparent 34%),linear-gradient(180deg,#fffffffc,#f8fafcfa)}.hero-panel,.panel,.metric-card,.module-card,.learning-card,.media-card,.student-summary-card,.student-tool-card,.student-form-card,.student-table-card,.embedded-shell{background:linear-gradient(145deg,#fffffff5,#f8fbffdb),radial-gradient(circle at 100% 0%,rgba(34,211,238,.1),transparent 34%)}.student-table th,.staff-table th,.approval-table th,.permission-table th,.audit-table th,.timetable-cell-list th,.report-table th,.hub-table th,table th,th{text-align:center;vertical-align:middle}.student-table th{background:linear-gradient(135deg,#2563ebeb,#1d4ed8d1);color:#f8fafc}.hub-alert-ticker{position:sticky;top:82px;z-index:60;display:grid;grid-template-columns:auto 36px minmax(0,1fr) 36px auto;align-items:center;gap:10px;min-height:84px;margin:-6px 10px 18px;padding:9px 11px;overflow:visible;border:1px solid rgba(125,211,252,.38);border-radius:16px;background:linear-gradient(135deg,#fffffff0,#eff6ffd1),radial-gradient(circle at 100% 0%,rgba(236,91,134,.08),transparent 34%);box-shadow:0 18px 46px #2563eb1f,inset 0 1px #ffffffd1;backdrop-filter:blur(18px) saturate(130%);-webkit-backdrop-filter:blur(18px) saturate(130%)}.hub-alert-ticker-label{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 12px;border-radius:999px;color:#0f172a;background:#ffffffe0;box-shadow:inset 0 0 0 1px #cbd5e1b8;font-size:12px;font-weight:950;white-space:nowrap}.hub-alert-ticker-label svg{color:#2563eb}.hub-alert-nav{display:grid;width:34px;height:34px;place-items:center;border:1px solid rgba(203,213,225,.76);border-radius:999px;color:#1d4ed8;background:#ffffffeb;box-shadow:0 10px 22px #2563eb1a;cursor:pointer}.hub-alert-nav:disabled{color:#94a3b8;cursor:default;opacity:.64}.hub-alert-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;min-height:64px;width:100%;padding:10px 15px;overflow:hidden;border:1px solid rgba(96,165,250,.32);border-radius:14px;color:#0f172a;background:radial-gradient(circle at 0% 100%,rgba(34,211,238,.18),transparent 34%),linear-gradient(135deg,#fffffffa,#eff6fff0);box-shadow:0 14px 30px #2563eb1f,inset 0 1px #ffffffdb;font:inherit;text-align:left;cursor:pointer;animation:hubAlertCardIn .46s cubic-bezier(.16,1,.3,1) both}.hub-alert-deck{position:relative;min-width:0;min-height:72px;perspective:900px}.hub-alert-deck:before,.hub-alert-deck:after{position:absolute;inset:8px 14px -5px 28px;z-index:0;content:"";border:1px solid rgba(147,197,253,.28);border-radius:14px;background:linear-gradient(135deg,#ffffff85,#dbeafe57);box-shadow:0 10px 20px #2563eb12;transform:translate(12px) translateY(7px) scale(.985)}.hub-alert-deck:after{inset:14px 28px -10px 44px;opacity:.58;transform:translate(20px) translateY(9px) scale(.965)}.hub-alert-card-deck{position:absolute;inset:0;animation:none;transition:transform .52s cubic-bezier(.16,1,.3,1),opacity .42s ease,filter .42s ease,box-shadow .42s ease;transform:translate(calc(var(--deck-slot) * 18px)) translateY(calc(var(--deck-slot) * 7px)) rotateY(calc(var(--deck-slot) * -3deg)) scale(calc(1 - (var(--deck-slot) * .035)))}.hub-alert-card-deck.deck-0{z-index:4;opacity:1}.hub-alert-card-deck.deck-1{z-index:3;opacity:.68;filter:saturate(.92);box-shadow:0 10px 22px #2563eb14,inset 0 1px #ffffffb8}.hub-alert-card-deck.deck-2{z-index:2;opacity:.42;filter:saturate(.82)}.hub-alert-card-deck.deck-1 .hub-alert-copy small,.hub-alert-card-deck.deck-2 .hub-alert-copy small{opacity:.72}.hub-alert-card-deck:not(.active){cursor:pointer}.hub-alert-card-deck:not(.active) .hub-alert-count{opacity:0}.hub-alert-card-deck.active{animation:hubAlertDeckRise .56s cubic-bezier(.16,1,.3,1) both}.hub-alert-card-deck:hover{transform:translate(calc(var(--deck-slot) * 14px)) translateY(calc(var(--deck-slot) * 5px - 1px)) rotateY(calc(var(--deck-slot) * -2deg)) scale(calc(1 - (var(--deck-slot) * .026)))}.hub-alert-copy{display:grid;gap:2px;min-width:0}.hub-alert-copy strong,.hub-alert-copy small{min-width:0;overflow:hidden;text-overflow:ellipsis}.hub-alert-copy strong{color:#0f172a;font-size:15px;font-weight:950;line-height:1.28;white-space:nowrap}.hub-alert-copy small{color:#334155;display:-webkit-box;font-size:12.5px;font-weight:800;line-height:1.34;-webkit-line-clamp:2;-webkit-box-orient:vertical}.hub-alert-dot{width:9px;height:9px;border-radius:999px;background:#38bdf8;box-shadow:0 0 0 4px #38bdf824}.hub-alert-card.tone-important .hub-alert-dot,.hub-alert-card.tone-global .hub-alert-dot{background:#f59e0b;box-shadow:0 0 0 4px #f59e0b26}.hub-alert-card.tone-deadline .hub-alert-dot{background:#ef4444;box-shadow:0 0 0 4px #ef444421}.hub-alert-card.tone-calendar .hub-alert-dot{background:#10b981;box-shadow:0 0 0 4px #10b98121}.hub-alert-card.tone-global{border-color:#f59e0b57;background:radial-gradient(circle at 100% 0%,rgba(251,191,36,.22),transparent 36%),radial-gradient(circle at 0% 100%,rgba(34,211,238,.12),transparent 34%),linear-gradient(135deg,#fffbebfa,#fffffff0)}.hub-alert-card.tone-deadline{border-color:#f8717152;background:radial-gradient(circle at 100% 0%,rgba(248,113,113,.18),transparent 36%),radial-gradient(circle at 0% 100%,rgba(251,191,36,.1),transparent 34%),linear-gradient(135deg,#fef2f2fa,#fffffff0)}.hub-alert-card.tone-calendar{border-color:#10b98147;background:radial-gradient(circle at 100% 0%,rgba(16,185,129,.16),transparent 36%),linear-gradient(135deg,#ecfdf5fa,#fffffff0)}.hub-alert-card.tone-info{border-color:#3b82f647;background:radial-gradient(circle at 100% 0%,rgba(59,130,246,.14),transparent 36%),linear-gradient(135deg,#eff6fffa,#fffffff0)}.hub-alert-count{color:#2563eb;display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:28px;border-radius:999px;background:#ffffffd6;box-shadow:inset 0 0 0 1px #bfdbfeb8;font-size:11px;font-weight:950}.hub-alert-dots{display:inline-flex;align-items:center;gap:5px;min-width:46px;justify-content:flex-end}.hub-alert-dots span{width:6px;height:6px;border-radius:999px;background:#94a3b89e}.hub-alert-dots span.active{width:16px;background:#2563eb}@keyframes hubAlertCardIn{0%{opacity:.92;transform:translate(10px) scale(.992)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes hubAlertDeckRise{0%{opacity:.72;transform:translate(24px) translateY(8px) rotateY(-6deg) scale(.965)}to{opacity:1;transform:translate(0) translateY(0) rotateY(0) scale(1)}}@keyframes hubSpin{to{transform:rotate(360deg)}}@media(max-width:860px){.hub-alert-ticker{top:76px;grid-template-columns:1fr auto auto;gap:7px;margin-inline:0}.hub-alert-ticker-label{grid-column:1 / -1;justify-self:start}.hub-alert-deck{grid-column:1 / -1;grid-row:2;min-height:82px;overflow:visible}.hub-alert-card{min-height:74px;padding-right:12px}.hub-alert-card-deck{transform:translate(calc(var(--deck-slot) * 10px)) translateY(calc(var(--deck-slot) * 7px)) scale(calc(1 - (var(--deck-slot) * .03)))}.hub-alert-nav.prev{grid-column:2;grid-row:1}.hub-alert-nav.next{grid-column:3;grid-row:1}.hub-alert-dots{display:none}.hub-alert-count{min-width:36px}}.hub-alert-ticker{position:static!important;top:auto!important;z-index:1;display:flex;align-items:center;gap:10px;min-height:58px;margin:0 10px 18px;padding:9px 11px;overflow:hidden}.hub-alert-marquee{min-width:0;flex:1;overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent)}.hub-alert-marquee-track{display:flex;width:max-content;align-items:center;animation:hubAlertMarquee 16s linear infinite;will-change:transform}.hub-alert-ticker:hover .hub-alert-marquee-track,.hub-alert-ticker:focus-within .hub-alert-marquee-track{animation-play-state:paused}.hub-alert-ticker.is-static .hub-alert-marquee-track{animation:none}.hub-alert-marquee-item{display:inline-flex;flex:0 0 auto;align-items:center;gap:8px;min-height:38px;margin-right:34px;padding:6px 2px;border:0;color:#0f172a;background:transparent;font:inherit;text-align:left;cursor:pointer}.hub-alert-marquee-item:hover strong,.hub-alert-marquee-item:focus-visible strong{color:#1d4ed8;text-decoration:underline;text-underline-offset:3px}.hub-alert-marquee-item:focus-visible{outline:2px solid #2563eb;outline-offset:3px;border-radius:8px}.hub-alert-marquee-item strong{font-size:14px;font-weight:950;white-space:nowrap}.hub-alert-marquee-item small{color:#475569;font-size:12.5px;font-weight:750;white-space:nowrap}.hub-alert-marquee-item small:before{content:"—";margin-right:8px;color:#94a3b8}@keyframes hubAlertMarquee{to{transform:translate(-50%)}}@media(max-width:860px){.hub-alert-ticker{display:flex;min-height:54px;margin:0 0 14px;padding:8px 10px}.hub-alert-ticker-label{grid-column:auto;flex:0 0 auto;justify-self:auto;padding-inline:9px}.hub-alert-marquee-track{animation-duration:13s}}@media(prefers-reduced-motion:reduce){.hub-alert-marquee-track{animation:none}}.student-tool-card .header-actions button{border-color:#94a3b857;background:linear-gradient(135deg,#456b9c,#5f75a8);box-shadow:0 8px 18px #334e7829;color:#fff}.student-tool-card .header-actions button:hover:not(:disabled){background:linear-gradient(135deg,#385d8d,#50699b);box-shadow:0 11px 22px #334e7838}.student-tool-card .header-actions .promote-tool{border-color:#1e295947;background:linear-gradient(135deg,#172554,#243b79 54%,#36519a);box-shadow:0 12px 24px #1725544d;color:#fff}.student-tool-card .header-actions .promote-tool:hover:not(:disabled){background:linear-gradient(135deg,#0f1d45,#1e3471 54%,#2e478a);box-shadow:0 15px 28px #17255461}.student-tool-card .header-actions .promote-tool:focus-visible{outline:3px solid rgba(45,212,191,.7);outline-offset:3px}
