@import"https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;700;800;900&display=swap";:root{--ws-header-dropdown-min: 11rem;--ws-header-dropdown-max: min(24rem, calc(100vw - 2rem) );--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px}body{font-family:Noto Sans KR,sans-serif;background-color:#f9fafb;margin:0;padding:0;display:flex;flex-direction:column;min-height:100vh;color:#1f2937}header{background-color:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:50;min-height:64px}.header-container{max-width:80rem;margin:0 auto;padding:0 1rem;min-height:64px;display:flex;align-items:center;justify-content:space-between}@media(min-width:1024px){.header-container{padding:0 1.5rem}}.logo-text{font-size:1.62rem;font-weight:800;letter-spacing:-.025em;cursor:pointer;display:flex;align-items:center;height:100%;line-height:1;text-decoration:none}.logo-we{color:#2563eb}.logo-story{color:#f59e0b}.desktop-nav{display:none;height:100%}@media(min-width:1024px){.desktop-nav{display:flex!important}}.nav-link{font-weight:700;color:#6b7280;margin:0 .625rem;text-decoration:none;font-size:.95rem;height:100%;display:inline-flex;align-items:center;border-bottom:3px solid transparent;transition:all .2s;white-space:nowrap}@media(min-width:1024px){.nav-link{margin:0 .85rem}}.nav-link:hover{color:#111827}.nav-link.active{color:#2563eb;border-bottom-color:#2563eb;font-weight:700}.desktop-submenu-shell{width:max-content;min-width:var(--ws-header-dropdown-min);max-width:var(--ws-header-dropdown-max)}.desktop-submenu-shell>div{width:max-content;min-width:inherit;max-width:100%}.desktop-submenu-shell a{max-width:100%;overflow:hidden;text-overflow:ellipsis}@media(min-width:1024px){.student-desktop-nav .student-nav-link{margin:0 1.15rem;padding:0 .25rem}}.header-right{display:flex;align-items:center;gap:1rem;min-width:0}@media(max-width:1023px){.header-container{padding:0 .5rem}.logo-text{font-size:1.3rem}.header-right{gap:.2rem}}.user-greeting{font-size:.78rem;font-weight:600;color:#4b5563;display:inline-flex!important;align-items:center;min-width:0;max-width:none;gap:.375rem}.header-user-link{display:inline-flex!important;align-items:center;min-width:0}.header-user-name{display:inline-block;min-width:0;max-width:min(18vw,220px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}@media(min-width:1024px){.user-greeting{font-size:.875rem;max-width:none}.header-user-name{max-width:180px}}@media(max-width:1023px){.user-greeting{font-size:.73rem;gap:.25rem}.header-user-name{max-width:min(24vw,92px)}}.btn-logout{color:#78716c;font-size:.875rem;font-weight:700;padding:.5rem .75rem;border-radius:.25rem;background:transparent;border:none;cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0;line-height:1}.btn-logout-icon{display:none}.btn-logout:hover{color:#292524;background-color:#f5f5f4}@media(max-width:1023px){.btn-logout{width:2.1rem;height:2.1rem;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;font-size:0}.btn-logout-icon{display:inline-block;font-size:.8rem}.btn-logout-label{display:none}}.mobile-menu-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;font-size:1.5rem;color:#374151;cursor:pointer;padding:.5rem;background:none;border:none;min-width:2.5rem;min-height:2.5rem}.mobile-menu-btn-badge{position:absolute;top:.1rem;right:.05rem;min-width:1.1rem;height:1.1rem;padding:0 .22rem;border:2px solid #ffffff;border-radius:9999px;background:#ef4444;color:#fff;font-size:.62rem;font-weight:900;line-height:calc(1.1rem - 4px);text-align:center;box-shadow:0 4px 10px #ef444438}@media(min-width:1024px){.mobile-menu-btn{display:none}}#mobile-menu{display:none;background-color:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 4px 6px -1px #0000001a;position:fixed;top:64px;left:0;width:100%;height:calc(100dvh - 64px);max-height:calc(100dvh - 64px);overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;z-index:49;flex-direction:column}#mobile-menu.open{display:flex;animation:slideDown .2s ease-out}.mobile-menu-status{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.65rem;padding:.9rem 1rem;border-bottom:1px solid #e5e7eb;background:#f8fafc}.mobile-menu-status-card{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-width:0;min-height:3.5rem;padding:.7rem .8rem;border:1px solid #e2e8f0;border-radius:.95rem;background:#fff;box-shadow:0 8px 18px #0f172a0a}.mobile-menu-status-copy{display:flex;flex-direction:column;min-width:0;gap:.1rem;text-align:left}.mobile-menu-status-label{color:#64748b;font-size:.72rem;font-weight:800;line-height:1.1}.mobile-menu-status-copy strong{color:#0f172a;font-size:.92rem;font-weight:900;line-height:1.2;white-space:nowrap}.mobile-menu-notification{flex:0 0 auto}.mobile-menu-time-card{border-color:#dbeafe;color:#1e3a8a;cursor:pointer;transition:border-color .16s ease,background-color .16s ease}.mobile-menu-time-card:hover{border-color:#93c5fd;background:#eff6ff}.mobile-menu-time-card.is-warning{border-color:#fecaca;background:#fff7ed}.mobile-menu-time-card.is-warning .mobile-menu-status-copy strong,.mobile-menu-time-card.is-warning .mobile-menu-status-icon{color:#dc2626}.mobile-menu-status-icon{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;flex:0 0 auto;border-radius:9999px;background:#eff6ff;color:#2563eb;font-size:.8rem}.mobile-link{display:flex;align-items:center;padding:1rem 1.5rem;color:#374151;font-weight:700;border-bottom:1px solid #f3f4f6;text-decoration:none;transition:background .2s}.mobile-link:hover{background-color:#f9fafb}.mobile-link.active{color:#2563eb;background-color:#eff6ff;font-weight:700}.mobile-icon{width:20px;height:20px;margin-right:12px;fill:currentColor}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.hidden{display:none}#global-loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#ffffffe6;z-index:9999;display:flex;justify-content:center;align-items:center;flex-direction:column;color:#4b5563}.loader-spinner{border:4px solid #f3f3f3;border-top:4px solid #2563eb;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sidebar-right-enter{transform:translate(100%);transition:transform .3s ease-in-out}.sidebar-right-enter-active{transform:translate(0)}.sidebar-right-exit{transform:translate(0);transition:transform .3s ease-in-out}.sidebar-right-exit-active{transform:translate(100%)}.minimal-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-bottom:2px solid #e5e7eb;background:transparent;padding:.25rem 1.5rem .25rem .25rem;font-size:.875rem;font-weight:700;color:#4b5563;outline:none;cursor:pointer;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 0 center;background-repeat:no-repeat;background-size:1.5em 1.5em;transition:border-color .2s}.minimal-select:focus{border-color:#2563eb;color:#2563eb}.fc-view-harness{min-height:400px}@tailwind base;@tailwind components;@tailwind utilities;.teacher-floating-action-above-patch{right:calc(env(safe-area-inset-right,0px) + var(--space-4));bottom:calc(env(safe-area-inset-bottom,0px) + var(--space-16) + var(--space-10))}.think-cloud-desktop-create-action{display:none}@media(min-width:640px){.teacher-floating-action-above-patch{right:calc(env(safe-area-inset-right,0px) + var(--space-6));bottom:calc(env(safe-area-inset-bottom,0px) + var(--space-16) + var(--space-12))}}@media(min-width:1024px){.think-cloud-desktop-create-action{display:flex}}@property --lesson-core-point-angle{syntax: "<angle>"; inherits: false; initial-value: 0deg;}@property --wis-hall-gold-angle{syntax: "<angle>"; inherits: false; initial-value: 0deg;}.dashboard-container{max-width:1280px;margin:0 auto;padding:24px 16px;width:100%}.lesson-core-point-status{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.55rem;width:fit-content;max-width:100%;margin:0 auto;padding:.55rem .85rem;border:1px solid rgba(245,158,11,.28);border-radius:9999px;background:#fffbebf0;box-shadow:0 12px 28px #92400e1a;color:#92400e;font-size:.82rem;font-weight:800;line-height:1.2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.lesson-core-point-status__label,.lesson-core-point-status__meta{display:inline-flex;align-items:center;gap:.35rem;min-width:0}.lesson-core-point-status__label{color:#b45309}.lesson-core-point-status__meta{color:#78350f;font-size:.76rem;opacity:.74}.lesson-core-point-floating-status{position:relative;isolation:isolate;display:grid;grid-template-columns:1fr auto;align-items:center;gap:.12rem .5rem;width:100%;min-height:2.45rem;border:1px solid rgba(245,158,11,.26);border-radius:1.1rem;background:radial-gradient(circle at 16% 18%,rgba(255,255,255,.92),transparent 32%),linear-gradient(135deg,#fffbebf5,#fef3c7c7);box-shadow:inset 0 0 0 1px #ffffff94,0 10px 22px #92400e1a;color:#78350f;font:inherit;padding:.5rem .68rem;text-align:left;line-height:1.15;overflow:visible;transition:background .18s ease,box-shadow .18s ease,transform .18s ease}button.lesson-core-point-floating-status{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}button.lesson-core-point-floating-status:disabled{cursor:wait}.lesson-core-point-floating-status>*{position:relative;z-index:3}.lesson-core-point-floating-status.is-claimable{--lesson-core-point-angle: 0deg;border-color:#f59e0b57;background:radial-gradient(circle at 18% 16%,rgba(255,255,255,.9),transparent 34%),linear-gradient(135deg,#fffbebfa,#fef08ac7 50%,#fbbf244d);box-shadow:inset 0 0 0 1px #ffffff9e,0 10px 24px #92400e24,0 0 18px #facc152e}.lesson-core-point-floating-status.is-claimable:hover,.lesson-core-point-floating-status.is-claimable:focus-visible{background:radial-gradient(circle at 18% 16%,rgba(255,255,255,.96),transparent 36%),linear-gradient(135deg,#fffbeb,#fef08ad6 50%,#fbbf2457);box-shadow:inset 0 0 0 1px #ffffffb8,0 12px 28px #92400e29,0 0 22px #facc153d;outline:none;transform:translateY(-1px)}.lesson-core-point-floating-status.is-claimable:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;z-index:1;border-radius:1.32rem;padding:3px;pointer-events:none;background:conic-gradient(from 18deg,transparent 0deg 26deg,rgba(255,255,255,.62) 40deg,rgba(254,240,138,.88) 58deg,rgba(245,158,11,.72) 80deg,transparent 104deg 144deg,rgba(255,255,255,.52) 162deg,rgba(254,240,138,.76) 184deg,rgba(245,158,11,.64) 208deg,transparent 232deg 360deg);filter:drop-shadow(0 0 7px rgba(245,158,11,.46));opacity:.95;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}.lesson-core-point-floating-status.is-claimable:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;z-index:-1;border-radius:1.45rem;pointer-events:none;background:radial-gradient(closest-side,rgba(254,240,138,.16),transparent 72%),linear-gradient(135deg,#facc1514,#f973160a);filter:blur(2px);opacity:.48;animation:westory-core-point-glow 3.8s ease-in-out infinite}.lesson-core-point-floating-status.is-pending{opacity:.82}.lesson-core-point-floating-status--reward{grid-template-columns:auto minmax(0,1fr);min-height:2.65rem;align-items:center;gap:.45rem;overflow:hidden;padding-inline:.72rem}.lesson-core-point-floating-status__label{display:inline-flex;min-width:0;align-items:center;gap:.32rem;color:#b45309;font-size:.74rem;font-weight:900}.lesson-core-point-floating-status strong{color:#78350f;font-size:.84rem;font-weight:900;text-align:right;white-space:nowrap}.lesson-core-point-floating-status__meta{grid-column:1 / -1;color:#78350fb8;font-size:.68rem;font-weight:800;text-align:center}.lesson-core-point-floating-status.is-claimable .lesson-core-point-floating-status__meta{color:#92400edb}.lesson-core-point-floating-status__reward{position:relative;z-index:3;justify-self:center;color:#92400e;font-size:.86rem;font-weight:900;line-height:1.1;text-align:center;white-space:nowrap}.lesson-core-point-floating-status__reward-icon{position:relative;z-index:3;display:inline-flex;align-items:center;justify-content:center;width:1rem;color:#d97706;font-size:.82rem;line-height:1}.lesson-core-point-floating-status--reward.is-claimable{border:2px solid transparent;background-image:radial-gradient(circle at 18% 16%,rgba(255,255,255,.94),transparent 34%),linear-gradient(135deg,#fffbebfa,#fef3c7fa 50%,#fde68af0),conic-gradient(from var(--lesson-core-point-angle),rgba(245,158,11,.24) 0deg,rgba(245,158,11,.9) 28deg,rgba(255,255,255,.96) 46deg,rgba(245,158,11,.78) 64deg,rgba(245,158,11,.2) 88deg,transparent 116deg,rgba(245,158,11,.18) 148deg,rgba(245,158,11,.78) 184deg,rgba(255,255,255,.86) 202deg,rgba(245,158,11,.68) 222deg,rgba(245,158,11,.16) 248deg,transparent 282deg,rgba(245,158,11,.24) 360deg);background-origin:border-box;background-clip:padding-box,padding-box,border-box;animation:westory-core-point-border-run 4.6s linear infinite}.lesson-core-point-floating-status--reward.is-claimable:before,.lesson-core-point-floating-status--reward.is-claimable:after{content:none}.lesson-core-point{--lesson-core-point-angle: 0deg;--lesson-core-point-border-duration: 5.6s;--lesson-core-point-glow-duration: 3.8s;--lesson-core-point-spark-duration: 3.2s;isolation:isolate;border:0;border-radius:7px;background:transparent;box-shadow:inset 0 0 0 1px #fbbf2414,0 0 11px #f59e0b24;cursor:pointer;overflow:visible;padding:0;transition:background .16s ease,box-shadow .16s ease,transform .16s ease}.lesson-core-point:hover,.lesson-core-point:focus-visible{background:#fef08a0f;box-shadow:inset 0 0 0 1px #fbbf2429,0 0 14px #f59e0b33;outline:none}.lesson-core-point:active{transform:scale(.985)}.lesson-core-point:before{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;z-index:-1;border-radius:11px;background:radial-gradient(closest-side,rgba(254,240,138,.1),transparent 72%),linear-gradient(135deg,#facc1512,#f973160a);filter:blur(2px);opacity:.42;pointer-events:none;animation:westory-core-point-glow var(--lesson-core-point-glow-duration) ease-in-out infinite}.lesson-core-point:after{content:"";position:absolute;top:-7px;right:-7px;bottom:-7px;left:-7px;z-index:-2;border-radius:11px;background:radial-gradient(circle at 18% 22%,rgba(255,255,255,.48) 0 2px,transparent 3px),radial-gradient(circle at 86% 74%,rgba(254,240,138,.5) 0 2px,transparent 3px),radial-gradient(circle at 64% 8%,rgba(251,191,36,.38) 0 1px,transparent 3px);opacity:.2;pointer-events:none;animation:westory-core-point-spark var(--lesson-core-point-spark-duration) steps(2,end) infinite}.lesson-core-point__inner{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;border-radius:inherit;overflow:visible;pointer-events:none}.lesson-core-point__inner:before,.lesson-core-point__inner:after{content:"";position:absolute;pointer-events:none;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}.lesson-core-point__inner:before{top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:10px;padding:2px;background:linear-gradient(135deg,#fef08ac2,#f59e0b94 45%,#fbbf24b8);filter:drop-shadow(0 0 3px rgba(245,158,11,.24));opacity:.42}.lesson-core-point__inner:after{top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:11px;padding:4px;background:conic-gradient(from var(--lesson-core-point-angle),transparent 0deg 30deg,rgba(255,255,255,.38) 42deg,rgba(254,240,138,.66) 56deg,rgba(245,158,11,.46) 72deg,transparent 92deg 152deg,rgba(255,255,255,.32) 168deg,rgba(254,240,138,.56) 184deg,rgba(245,158,11,.42) 202deg,transparent 224deg 360deg);filter:drop-shadow(0 0 5px rgba(250,204,21,.28));opacity:.54;animation:westory-core-point-border-run var(--lesson-core-point-border-duration) linear infinite;will-change:--lesson-core-point-angle}.lesson-core-point__check{position:absolute;right:-.55rem;top:-.55rem;z-index:5;display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border:1px solid rgba(255,255,255,.86);border-radius:9999px;background:#f59e0b;box-shadow:0 6px 14px #92400e2e;color:#fff;font-size:.62rem;line-height:1;pointer-events:none}.lesson-core-point.is-found{background:transparent;box-shadow:inset 0 0 0 1px #fbbf2414,0 0 11px #f59e0b24;cursor:default}.lesson-core-point.is-unfound{cursor:pointer}.lesson-core-point.is-found.is-unfound{background:radial-gradient(circle at 18% 16%,rgba(255,255,255,.26),transparent 34%),linear-gradient(135deg,#fef08a2e,#fbbf241f 46%,#f59e0b14);box-shadow:inset 0 0 0 1px #fbbf241f,0 0 13px #f59e0b29;cursor:pointer}.lesson-core-point.is-found.is-unfound:hover,.lesson-core-point.is-found.is-unfound:focus-visible{background:radial-gradient(circle at 18% 16%,rgba(255,255,255,.3),transparent 36%),linear-gradient(135deg,#fef08a3b,#fbbf2426 48%,#f59e0b1a);box-shadow:inset 0 0 0 1px #fbbf242e,0 0 15px #f59e0b33}.lesson-core-point.is-found:before{animation:westory-core-point-glow var(--lesson-core-point-glow-duration) ease-in-out infinite;background:radial-gradient(closest-side,rgba(254,240,138,.06),transparent 72%),linear-gradient(135deg,#facc1508,#f9731605);filter:blur(2px);opacity:.18}.lesson-core-point.is-found:after{animation:westory-core-point-spark var(--lesson-core-point-spark-duration) steps(2,end) infinite;opacity:.2}.lesson-core-point.is-found .lesson-core-point__inner:before{opacity:.42}.lesson-core-point.is-found .lesson-core-point__inner:after{animation:westory-core-point-border-run var(--lesson-core-point-border-duration) linear infinite;opacity:.54}.lesson-core-burst{--lesson-core-burst-width: clamp(185px, 19vw, 300px);--lesson-core-burst-height: clamp(114px, 12vw, 184px);--lesson-core-burst-duration: .98s;position:absolute;z-index:42;display:block;width:var(--lesson-core-burst-width);height:var(--lesson-core-burst-height);border-radius:45%;pointer-events:none;transform:translate(-50%,-50%) scale(.34);will-change:opacity,transform;animation:westory-core-burst-pop var(--lesson-core-burst-duration) cubic-bezier(.16,1,.3,1) forwards}.lesson-core-burst:before{content:"";position:absolute;top:20%;right:34%;bottom:20%;left:34%;border-radius:9999px;background:radial-gradient(circle,rgba(255,255,255,1) 0 22%,transparent 23%),radial-gradient(circle,rgba(255,250,240,1) 0 24%,rgba(254,243,199,.94) 25% 42%,rgba(251,191,36,.52) 43% 62%,rgba(217,119,6,.18) 63% 78%,transparent 80%);box-shadow:0 0 18px #ffffffeb,0 0 30px #f59e0b80,0 0 58px #92400e33;animation:westory-core-burst-core var(--lesson-core-burst-duration) ease-out forwards}.lesson-core-burst:after{content:"";position:absolute;top:-4%;right:-2%;bottom:-4%;left:-2%;background:url(/assets/core-point-burst-CU9O6wVf.svg) center / contain no-repeat;filter:brightness(1.06) drop-shadow(0 0 15px rgba(245,158,11,.58));transform-origin:center;animation:westory-core-burst-rays var(--lesson-core-burst-duration) ease-out forwards}@media(max-width:767px){.lesson-core-burst{--lesson-core-burst-width: clamp(145px, 44vw, 210px);--lesson-core-burst-height: clamp(90px, 28vw, 130px)}}.lesson-core-burst__ring{display:none;position:absolute;top:24%;right:31%;bottom:24%;left:31%;border:1px solid rgba(255,255,255,.88);border-radius:9999px;box-shadow:0 0 12px #ffffffc2,0 0 22px #facc15b3;animation:westory-core-burst-ring var(--lesson-core-burst-duration) ease-out forwards}.lesson-core-burst__flare{display:none;position:absolute;left:50%;top:50%;--lesson-core-burst-flare-rotation: 0deg;--lesson-core-burst-flare-scale: .16;width:104%;height:6px;border-radius:9999px;background:linear-gradient(90deg,transparent 0%,rgba(180,83,9,.14) 10%,rgba(251,191,36,.58) 35%,rgba(255,250,240,.92) 50%,rgba(251,191,36,.58) 65%,rgba(180,83,9,.14) 90%,transparent 100%);filter:blur(.2px) drop-shadow(0 0 8px rgba(245,158,11,.46));transform:translate(-50%,-50%) rotate(var(--lesson-core-burst-flare-rotation)) scaleX(var(--lesson-core-burst-flare-scale));animation:westory-core-burst-flare var(--lesson-core-burst-duration) ease-out forwards}.lesson-core-burst__flare--a{--lesson-core-burst-flare-rotation: 0deg;height:12px;opacity:1}.lesson-core-burst__flare--b{--lesson-core-burst-flare-rotation: 90deg;width:52%;height:4px;opacity:.76}.lesson-core-burst__flare--c{--lesson-core-burst-flare-rotation: 22deg;width:82%;height:3px;opacity:.74}.lesson-core-burst__flare--d{--lesson-core-burst-flare-rotation: -22deg;width:82%;height:3px;opacity:.74}.lesson-core-burst__spark{position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:9999px;background:#fff;box-shadow:-84px -10px 0 2px #fef3c7eb,-64px -42px #fffaf0f0,-36px 34px 0 1px #fbbf24c2,32px -36px 0 1px #fffaf0f0,58px 28px #d977069e,92px -8px 0 2px #fef3c7db,-112px 26px #d977068f,112px 24px #fffaf0e0;filter:drop-shadow(0 0 8px rgba(245,158,11,.52));transform:translate(-50%,-50%) scale(.18);animation:westory-core-burst-sparks var(--lesson-core-burst-duration) ease-out forwards}.lesson-core-burst__spark--b{width:4px;height:4px;box-shadow:-76px 18px 0 -1px #ffffffe6,-48px -24px #d9770694,-18px -52px 0 -1px #fef3c7db,16px 48px 0 -1px #ffffffdb,48px -22px #fbbf24ad,76px 14px 0 -1px #d977068a;transform:translate(-50%,-50%) rotate(22deg) scale(.16);animation-name:westory-core-burst-sparks-alt}@keyframes westory-core-point-border-spin{to{transform:rotate(1turn)}}@keyframes westory-core-point-border-run{to{--lesson-core-point-angle: 360deg}}@keyframes westory-core-point-glow{0%,to{opacity:.26;transform:scale(.992)}50%{opacity:.48;transform:scale(1.008)}}@keyframes westory-core-point-spark{0%,to{opacity:.18;transform:translateZ(0)}50%{opacity:.36;transform:translate3d(.5px,-.5px,0)}}@keyframes westory-core-burst-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.24)}8%{opacity:1;transform:translate(-50%,-50%) scale(.7)}30%{opacity:.98;transform:translate(-50%,-50%) scale(1)}70%{opacity:.52;transform:translate(-50%,-50%) scale(1.06)}to{opacity:0;transform:translate(-50%,-50%) scale(1.12)}}@keyframes westory-core-burst-core{0%{opacity:0;transform:scale(.45)}10%{opacity:1;transform:scale(.96)}46%{opacity:.88;transform:scale(1.08)}72%{opacity:.44;transform:scale(1.22)}to{opacity:0;transform:scale(1.5)}}@keyframes westory-core-burst-rays{0%{opacity:0;transform:scale(.58)}8%{opacity:1;transform:scale(.88)}34%{opacity:.9;transform:scale(1)}72%{opacity:.46;transform:scale(1.05)}to{opacity:0;transform:scale(1.08)}}@keyframes westory-core-burst-ring{0%{opacity:0;transform:scale(.42)}12%{opacity:.82}to{opacity:0;transform:scale(1.72)}}@keyframes westory-core-burst-flare{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--lesson-core-burst-flare-rotation)) scaleX(.14)}9%{opacity:1}42%{opacity:.86;transform:translate(-50%,-50%) rotate(var(--lesson-core-burst-flare-rotation)) scaleX(1)}to{opacity:0;transform:translate(-50%,-50%) rotate(var(--lesson-core-burst-flare-rotation)) scaleX(1.08)}}@keyframes westory-core-burst-sparks{0%{opacity:0;transform:translate(-50%,-50%) scale(.14)}12%{opacity:1}58%{opacity:.54;transform:translate(-50%,-50%) scale(.92)}to{opacity:0;transform:translate(-50%,-50%) scale(1.08)}}@keyframes westory-core-burst-sparks-alt{0%{opacity:0;transform:translate(-50%,-50%) rotate(22deg) scale(.12)}14%{opacity:.95}58%{opacity:.5;transform:translate(-50%,-50%) rotate(32deg) scale(.96)}to{opacity:0;transform:translate(-50%,-50%) rotate(38deg) scale(1.12)}}.wis-hall-student-preview-shell{--wis-hall-gold-angle: 0deg;border:1px solid transparent;background-image:linear-gradient(135deg,#fffbebe6,#f8fafcfa 34%,#fff),conic-gradient(from var(--wis-hall-gold-angle),rgba(245,158,11,.22),rgba(250,204,21,.88) 14%,rgba(255,255,255,.9) 23%,rgba(245,158,11,.28) 38%,rgba(59,130,246,.24) 52%,rgba(245,158,11,.22) 70%,rgba(250,204,21,.88) 86%,rgba(245,158,11,.22));background-origin:border-box;background-clip:padding-box,border-box;box-shadow:0 18px 42px #0f172a12,0 0 0 1px #fbbf241a,0 0 30px #f59e0b1a;animation:westory-wis-hall-gold-border 7.2s linear infinite;will-change:--wis-hall-gold-angle}@keyframes westory-wis-hall-gold-border{to{--wis-hall-gold-angle: 360deg}}.wis-hall-podium-entry{--wis-hall-podium-glow: 245 158 11;--wis-hall-podium-ring: rgba(251, 191, 36, .4);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;isolation:isolate;transform:translateY(0) scale(1);transform-origin:top center;transition:transform .18s ease,filter .18s ease;will-change:transform;-webkit-tap-highlight-color:transparent}.wis-hall-podium-entry--second{--wis-hall-podium-glow: 148 163 184;--wis-hall-podium-ring: rgba(203, 213, 225, .46)}.wis-hall-podium-entry--third{--wis-hall-podium-glow: 251 146 60;--wis-hall-podium-ring: rgba(251, 146, 60, .42)}.wis-hall-podium-entry.is-static{cursor:default}.wis-hall-podium-entry:before{content:"";position:absolute;top:.15rem;right:-1.15rem;bottom:-.75rem;left:-1.15rem;z-index:-1;border-radius:9999px;background:radial-gradient(closest-side,rgb(var(--wis-hall-podium-glow) / .34),transparent 72%),linear-gradient(135deg,rgb(var(--wis-hall-podium-glow) / .16),#ffffff14);filter:blur(9px);opacity:0;pointer-events:none;transform:scale(.86);transition:opacity .18s ease,transform .18s ease}.wis-hall-podium-entry:after{content:"";position:absolute;top:-1.2rem;right:-1.9rem;bottom:-1.05rem;left:-1.9rem;z-index:1;border-radius:9999px;background:radial-gradient(closest-side,rgb(var(--wis-hall-podium-glow) / .24),transparent 66%),conic-gradient(from 0deg,transparent 0deg 28deg,rgb(var(--wis-hall-podium-glow) / .52) 40deg,rgba(255,255,255,.9) 52deg,rgb(var(--wis-hall-podium-glow) / .36) 68deg,transparent 86deg 150deg,rgb(var(--wis-hall-podium-glow) / .36) 166deg,transparent 186deg 360deg);filter:blur(.3px) drop-shadow(0 0 12px rgb(var(--wis-hall-podium-glow) / .2));opacity:0;pointer-events:none;transform:scale(.42) rotate(-16deg)}.wis-hall-podium-entry__cast-burst{position:absolute;top:-1.7rem;right:-2.15rem;bottom:-1.25rem;left:-2.15rem;z-index:2;border-radius:9999px;opacity:0;pointer-events:none;background:radial-gradient(circle at 16% 42%,rgba(255,255,255,.9) 0 .09rem,transparent .16rem),radial-gradient(circle at 78% 28%,rgb(var(--wis-hall-podium-glow) / .82) 0 .11rem,transparent .19rem),radial-gradient(circle at 64% 82%,rgba(255,255,255,.74) 0 .08rem,transparent .16rem),radial-gradient(circle at 30% 78%,rgb(var(--wis-hall-podium-glow) / .68) 0 .1rem,transparent .18rem),radial-gradient(closest-side,rgb(var(--wis-hall-podium-glow) / .16),transparent 70%);filter:drop-shadow(0 0 12px rgb(var(--wis-hall-podium-glow) / .3));transform:scale(.55)}.wis-hall-podium-entry__icon,.wis-hall-podium-entry__name,.wis-hall-podium-entry__score{transition:transform .18s ease,filter .18s ease,box-shadow .18s ease}.wis-hall-podium-entry:not(.is-static):hover,.wis-hall-podium-entry:not(.is-static):focus-visible,.wis-hall-podium-entry:not(.is-static).is-active{z-index:40;outline:none;animation:westory-wis-podium-float 1.9s ease-in-out infinite;transform:translateY(-.72rem) scale(1.065)}.wis-hall-podium-entry:not(.is-static):hover:before,.wis-hall-podium-entry:not(.is-static):focus-visible:before,.wis-hall-podium-entry:not(.is-static).is-active:before{opacity:1;transform:scale(1)}.wis-hall-podium-entry:not(.is-static):hover .wis-hall-podium-entry__icon,.wis-hall-podium-entry:not(.is-static):focus-visible .wis-hall-podium-entry__icon,.wis-hall-podium-entry:not(.is-static).is-active .wis-hall-podium-entry__icon{filter:drop-shadow(0 18px 22px rgb(var(--wis-hall-podium-glow) / .34));transform:translateY(-.22rem) scale(1.08)}.wis-hall-podium-entry:not(.is-static):hover .wis-hall-podium-entry__name,.wis-hall-podium-entry:not(.is-static):focus-visible .wis-hall-podium-entry__name,.wis-hall-podium-entry:not(.is-static).is-active .wis-hall-podium-entry__name{box-shadow:0 20px 34px #0f172a42,0 0 0 1px var(--wis-hall-podium-ring),0 0 22px rgb(var(--wis-hall-podium-glow) / .18)}.wis-hall-podium-entry:not(.is-static):hover .wis-hall-podium-entry__score,.wis-hall-podium-entry:not(.is-static):focus-visible .wis-hall-podium-entry__score,.wis-hall-podium-entry:not(.is-static).is-active .wis-hall-podium-entry__score{box-shadow:0 16px 26px #0f172a33,0 0 0 1px rgb(var(--wis-hall-podium-glow) / .24);transform:translateY(-.06rem) scale(1.04)}.wis-hall-podium-entry:not(.is-static).is-casting{animation:westory-wis-podium-cast-lift .72s cubic-bezier(.16,1,.3,1)}.wis-hall-podium-entry:not(.is-static).is-casting:after{animation:westory-wis-podium-cast-ring .72s cubic-bezier(.16,1,.3,1)}.wis-hall-podium-entry:not(.is-static).is-casting .wis-hall-podium-entry__cast-burst{animation:westory-wis-podium-cast-spark .82s ease-out}.wis-hall-podium-entry:not(.is-static).is-casting .wis-hall-podium-entry__icon{animation:westory-wis-podium-cast-icon .76s cubic-bezier(.16,1,.3,1)}.wis-hall-podium-entry:not(.is-static).is-casting .wis-hall-podium-entry__score{animation:westory-wis-podium-cast-score .62s ease-out}@keyframes westory-wis-podium-float{0%,to{transform:translateY(-.64rem) scale(1.055)}50%{transform:translateY(-.92rem) scale(1.075)}}@keyframes westory-wis-podium-cast-lift{0%{transform:translateY(-.28rem) scale(1.03)}34%{transform:translateY(-1.22rem) scale(1.1)}72%{transform:translateY(-.58rem) scale(1.045)}to{transform:translateY(-.72rem) scale(1.065)}}@keyframes westory-wis-podium-cast-ring{0%{opacity:0;transform:scale(.28) rotate(-18deg)}20%{opacity:.94}72%{opacity:.32;transform:scale(1.28) rotate(18deg)}to{opacity:0;transform:scale(1.52) rotate(34deg)}}@keyframes westory-wis-podium-cast-spark{0%{opacity:0;transform:scale(.45) rotate(-8deg)}18%{opacity:1}60%{opacity:.64;transform:scale(1.05) rotate(8deg)}to{opacity:0;transform:scale(1.28) rotate(15deg)}}@keyframes westory-wis-podium-cast-icon{0%{transform:translateY(-.12rem) scale(1.05) rotate(0)}26%{transform:translateY(-.48rem) scale(1.22) rotate(-5deg)}58%{transform:translateY(-.2rem) scale(1.1) rotate(4deg)}to{transform:translateY(-.22rem) scale(1.08) rotate(0)}}@keyframes westory-wis-podium-cast-score{0%{filter:brightness(1)}30%{filter:brightness(1.16) drop-shadow(0 0 12px rgb(var(--wis-hall-podium-glow) / .34))}to{filter:brightness(1)}}@media(prefers-reduced-motion:reduce){.lesson-core-point:before,.lesson-core-point:after,.lesson-core-point__inner:before,.lesson-core-point__inner:after,.lesson-core-point-floating-status.is-claimable:before,.lesson-core-point-floating-status.is-claimable:after,.lesson-core-burst,.lesson-core-burst__ring,.lesson-core-burst__flare,.lesson-core-burst__spark,.wis-hall-student-preview-shell,.wis-hall-podium-entry,.wis-hall-podium-entry:after,.wis-hall-podium-entry__cast-burst,.wis-hall-podium-entry__icon,.wis-hall-podium-entry__score{animation:none}.wis-hall-podium-entry,.wis-hall-podium-entry:before,.wis-hall-podium-entry:after,.wis-hall-podium-entry__cast-burst,.wis-hall-podium-entry__icon,.wis-hall-podium-entry__name,.wis-hall-podium-entry__score{transition:none}.wis-hall-podium-entry:not(.is-static):hover,.wis-hall-podium-entry:not(.is-static):focus-visible,.wis-hall-podium-entry:not(.is-static).is-active,.wis-hall-podium-entry:not(.is-static):hover .wis-hall-podium-entry__icon,.wis-hall-podium-entry:not(.is-static):focus-visible .wis-hall-podium-entry__icon,.wis-hall-podium-entry:not(.is-static).is-active .wis-hall-podium-entry__icon,.wis-hall-podium-entry:not(.is-static):hover .wis-hall-podium-entry__score,.wis-hall-podium-entry:not(.is-static):focus-visible .wis-hall-podium-entry__score,.wis-hall-podium-entry:not(.is-static).is-active .wis-hall-podium-entry__score{transform:none}.lesson-core-burst{opacity:.86;transform:translate(-50%,-50%) scale(1)}}.student-dashboard-container{padding-bottom:calc(1.5rem + env(safe-area-inset-bottom,0px))}.student-dashboard-grid,.student-dashboard-notice,.student-dashboard-calendar,.student-dashboard-ranking{min-height:0}.teacher-dashboard-container{padding-bottom:calc(1.5rem + env(safe-area-inset-bottom,0px))}.teacher-dashboard-grid,.teacher-dashboard-notice,.teacher-dashboard-calendar,.teacher-dashboard-ranking{min-width:0;min-height:0}.student-dashboard-ranking,.teacher-dashboard-ranking{overflow:visible}.student-quiz-runner{flex:1 1 auto;width:100%;min-height:0}.student-quiz-intro,.student-quiz-result{min-height:0}.student-quiz-shell{overflow:visible}.student-quiz-body-split{display:grid;gap:1rem;overflow-y:auto;padding-right:.125rem}.student-quiz-question-panel,.student-quiz-answer-panel,.student-quiz-support-panel{min-width:0;overflow:visible}.student-quiz-progress-scroll{scrollbar-width:thin}.student-quiz-progress-scroll::-webkit-scrollbar{height:.375rem}.student-quiz-progress-scroll::-webkit-scrollbar-thumb{border-radius:999px;background:#cbd5e1}.fc .fc-toolbar-title{font-weight:800!important}.student-calendar-section .fc-daygrid-event.holiday-text-event{background-color:#ef4444!important;border-color:#ef4444!important}.student-calendar-section .fc-daygrid-event.holiday-text-event .fc-event-title{color:#fff!important;font-size:.75rem;font-weight:800}.student-calendar-section .fc-day-selected{background-color:#eff6ff!important;outline:2px solid #3b82f6!important;outline-offset:-2px!important}.student-calendar-section .fc-day-sun a,.student-calendar-section .fc-day-holiday a,.student-calendar-section .fc-day-holiday .fc-daygrid-day-number{color:#ef4444!important;text-decoration:none;font-weight:700!important}.student-calendar-section .fc-day-sat a{color:#3b82f6!important;text-decoration:none;font-weight:700}.student-calendar-section{height:100%;min-height:500px}.student-calendar-shell{display:flex;flex-direction:column;gap:1rem;height:100%;min-height:0;border:1px solid #dbe3ef;border-radius:1.4rem;background:#fff;box-shadow:0 18px 40px #0f172a0f,inset 0 1px #ffffffb3;padding:1rem}.student-calendar-shell__header{flex:0 0 auto}.student-calendar-shell__header-main{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:1rem}.student-calendar-shell__heading-group{display:flex;flex-direction:column;gap:.55rem;min-width:0;flex:1 1 auto;align-items:stretch}.student-calendar-shell__month-row{display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap;min-width:0;width:100%}.student-calendar-shell__month-badge{display:grid;grid-template-columns:2.05rem minmax(0,1fr) 2.05rem;align-items:center;justify-content:center;gap:.55rem;width:fit-content;max-width:100%;margin-inline:auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.student-calendar-shell__eyebrow{display:inline-flex;align-self:flex-start;align-items:center;gap:.45rem;color:#0f172a;font-size:clamp(1.14rem,1.3vw,1.34rem);font-weight:900;line-height:1.08;letter-spacing:-.015em;padding:0;width:fit-content;max-width:100%}.student-calendar-shell__eyebrow-icon{display:inline-flex;align-items:center;justify-content:center;width:1.14rem;height:1.14rem;color:#2563eb}.student-calendar-shell__month-label{display:flex;align-items:center;justify-content:center;min-width:0;width:auto;text-align:center}.student-calendar-shell__month-title{margin:0;color:#0f172a;font-size:clamp(1.22rem,2vw,1.62rem);font-weight:900;line-height:1.08;letter-spacing:-.025em;text-align:center;white-space:nowrap}.student-calendar-shell__nav-button,.student-calendar-shell__search-button,.student-calendar-shell__control-button,.student-calendar-shell__attendance-action{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #dbeafe;background:#fff;color:#1e3a8a;border-radius:9999px;font-weight:800;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}.student-calendar-shell__nav-button,.student-calendar-shell__search-button{display:inline-flex;align-items:center;justify-content:center;gap:.42rem}.student-calendar-shell__nav-button{width:2.75rem;height:2.75rem;padding:0;box-shadow:0 10px 18px #94a3b824}.student-calendar-shell__nav-button--month{width:2.05rem;height:2.05rem;flex:0 0 auto;border-radius:.8rem;background:#ffffffe0;box-shadow:none}.student-calendar-shell__control-button,.student-calendar-shell__search-button,.student-calendar-shell__attendance-action,.student-calendar-shell__attendance-indicator{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:0 .95rem;white-space:nowrap;font-size:.88rem;font-weight:800}.student-calendar-shell__nav-button:hover,.student-calendar-shell__search-button:hover,.student-calendar-shell__control-button:hover,.student-calendar-shell__attendance-action:hover{border-color:#93c5fd;background:#eff6ff;box-shadow:0 12px 22px #3b82f624;transform:translateY(-1px)}.student-calendar-shell__nav-button:focus-visible,.student-calendar-shell__search-button:focus-visible,.student-calendar-shell__control-button:focus-visible,.student-calendar-shell__view-button:focus-visible,.student-calendar-shell__attendance-action:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.student-calendar-shell__nav-button:disabled,.student-calendar-shell__search-button:disabled,.student-calendar-shell__control-button:disabled,.student-calendar-shell__attendance-action:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.student-calendar-shell__toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;min-width:0;flex:1 1 auto}.student-calendar-shell__calendar-tools{display:flex;align-items:center;justify-content:flex-start;gap:.6rem;flex-wrap:wrap;min-width:0}.student-calendar-shell__control-cluster,.student-calendar-shell__attendance-tools{display:inline-flex;align-items:center;gap:.38rem;min-width:0;flex:0 0 auto;border:1px solid #dbeafe;border-radius:9999px;background:#f8fbff;padding:.24rem}.student-calendar-shell__control-cluster--nav{background:#fff;flex-shrink:0}.student-calendar-shell__control-cluster--view{gap:.45rem;padding-right:.32rem}.student-calendar-shell__calendar-tools>.student-calendar-shell__control-cluster:first-child{border-color:transparent;background:transparent;padding:0}.student-calendar-shell__attendance-tools{gap:.55rem;padding-inline:.3rem .36rem}.student-calendar-shell__view-toggle{display:inline-flex;align-items:center;gap:.2rem;border-radius:9999px;background:#eaf3ff;padding:.2rem}.student-calendar-shell__view-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:#475569;border-radius:9999px;padding:.62rem .92rem;font-size:.84rem;font-weight:800;line-height:1;transition:background-color .16s ease,color .16s ease,box-shadow .16s ease}.student-calendar-shell__view-button.is-active{background:#fff;color:#1d4ed8;box-shadow:0 8px 18px #3b82f62e}.student-calendar-shell__attendance-action[data-tone=default]{border-color:#2563eb;background:#2563eb;color:#fff;box-shadow:0 10px 20px #2563eb3d}.student-calendar-shell__attendance-label{color:#475569;font-size:.74rem;font-weight:800;letter-spacing:.01em;line-height:1;white-space:nowrap;padding-left:.45rem}.student-calendar-shell__attendance-action[data-tone=error]{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.student-calendar-shell__attendance-action[data-tone=loading]{border-color:#e2e8f0;background:#f8fafc;color:#475569}.student-calendar-shell__attendance-action[data-tone=default]:hover{border-color:#1d4ed8;background:#1d4ed8;color:#fff;box-shadow:0 14px 24px #2563eb47}.student-calendar-shell__search-button{padding:0 .92rem}.student-calendar-shell__search-button span{line-height:1}.student-calendar-shell__attendance-indicator{border:1px solid #bfdbfe;border-radius:9999px;background:#eff6ff;color:#1d4ed8}.student-calendar-shell__error-message{margin:.55rem 0 0;color:#b91c1c;font-size:.82rem;font-weight:700;text-align:left}.calendar-wrapper{min-height:0}.student-calendar-shell__body{position:relative;flex:1 1 auto;min-height:0;overflow:hidden;border:1px solid #dbe3ef;border-radius:1.1rem;background:#fff;box-shadow:inset 0 1px #ffffffa6}.student-calendar-shell__body[data-calendar-view=dayGridMonth],.student-calendar-shell__body[data-calendar-view=listMonth]{min-height:31rem}.student-calendar-shell__body[data-calendar-view=dayGridMonth]{display:flex;flex-direction:column}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc-view-harness{flex:1 1 auto;min-height:0}.student-calendar-shell__body[data-calendar-view=listMonth] .fc-view-harness{display:none!important}.student-calendar-shell .custom-schedule-list{height:100%}.student-calendar-shell__body .fc-list table,.student-calendar-shell__body .fc-list-table{table-layout:fixed!important;width:100%!important}.student-calendar-shell__body .fc-list-event-graphic,.student-calendar-shell__body .fc-list-event-time,.student-calendar-shell__body .fc-list-event-dot{display:none!important;width:0!important;padding:0!important}.student-calendar-shell__body .fc-list-day-cushion{display:flex!important;justify-content:flex-start!important;align-items:center;gap:12px}.student-calendar-shell__body .fc-list-day-text,.student-calendar-shell__body .fc-list-day-side-text{float:none!important}.student-calendar-shell__body .fc-list-event td,.student-calendar-shell__body .fc-list-event-title,.student-calendar-shell__body .fc-list-event-title>a,.student-calendar-shell__body .fc-list-event-title .fc-event-main{width:100%!important;padding:0!important;text-align:left!important}.student-calendar-shell__body .fc-list-row-grid{display:grid!important;grid-template-columns:140px minmax(0,1fr) 92px;align-items:center;gap:12px;width:100%;min-width:0}.student-calendar-shell__body .fc-list-category-cell,.student-calendar-shell__body .fc-list-title-cell,.student-calendar-shell__body .fc-list-target-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-calendar-shell__body .fc-list-category-cell{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:#374151}.student-calendar-shell__body .fc-list-category-dot{display:inline-block;width:14px;height:14px;border-radius:9999px;flex:0 0 auto}.student-calendar-shell__body .fc-list-category-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-calendar-shell__body .fc-list-title-cell{font-weight:700;color:#111827}.student-calendar-shell__body .fc-list-target-cell{font-size:.86rem;font-weight:600;color:#4b5563}.student-calendar-shell__body .fc-daygrid-event .holiday-segment-title{color:#fff!important;font-weight:800!important}.student-calendar-shell__body .fc-list-event .holiday-segment-title{color:#ef4444!important;font-weight:800!important}.student-calendar-section .fc-day-holiday .student-calendar-day-label,.student-calendar-section .fc-day-sun .student-calendar-day-label{color:#ef4444!important}.student-calendar-section .fc-day-sat .student-calendar-day-label{color:#3b82f6!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc-view-harness,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc-view,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc-daygrid,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc-scrollgrid,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc-scrollgrid-section,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc-scrollgrid-section>td,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc-scrollgrid-section>td>div,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc-scroller-harness,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc-scroller,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc-daygrid-body,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc-scrollgrid-sync-table,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc-scrollgrid-sync-table>tbody{height:100%;min-height:0}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-col-header,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-scrollgrid table,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-body,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-scrollgrid-sync-table{width:100%!important;table-layout:fixed!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-col-header-cell,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-day{box-sizing:border-box;width:calc(100% / 7)!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-col-header>thead>tr{display:flex;width:100%}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-col-header-cell{display:block;flex:1 1 0;min-width:0;width:auto!important}.schedule-event-detail-dialog{max-height:calc(100dvh - var(--space-8))}.schedule-event-detail-overlay{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border:0}.schedule-event-detail-overlay:not([open]){display:none}.schedule-event-detail-overlay::backdrop{background:transparent}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-scrollgrid{border-width:0!important;border-collapse:separate!important;border-spacing:0!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc-theme-standard td,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc-theme-standard th{border-color:#dbe3ef!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-scrollgrid-section>td,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-scrollgrid-section>th{border-width:0!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-col-header-cell{border-width:0 0 1px 1px!important;border-style:solid!important;border-color:#dbe3ef!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-col-header-cell:first-child{border-left-width:0!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-day{border-width:0 0 1px 1px!important;border-style:solid!important;border-color:#dbe3ef!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-body tr .fc-daygrid-day:first-child{border-left-width:0!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-body tr:last-child .fc-daygrid-day{border-bottom-width:0!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-day-other{background:#f8fafc}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-day-other .student-calendar-day-head,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-day-other .fc-daygrid-day-frame:before,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-day-other .fc-daygrid-day-frame:after{opacity:.42}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-day-other .fc-daygrid-event{opacity:.48}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc-scroller,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc-scroller-harness{overflow:hidden!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-body tbody{display:flex;flex-direction:column;height:100%}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-body tr{display:flex;flex:1 1 0;min-height:0;height:auto!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-body td{display:block;flex:1 1 0;vertical-align:top;min-width:0;height:100%;width:auto!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-day-frame{display:grid;grid-template-rows:auto minmax(0,1fr) auto;position:relative;min-width:0;min-height:0;height:100%;max-height:100%;overflow:visible}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-day-top{display:flex;align-items:flex-start;justify-content:flex-start;padding:0!important;min-width:0;max-width:100%;min-height:0;overflow:hidden}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-day-number{box-sizing:border-box;padding:0!important;display:block;min-width:0;width:100%;max-width:100%;overflow:hidden;text-align:left;text-decoration:none!important;white-space:nowrap}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .student-calendar-day-head{display:flex;align-items:flex-start;gap:.35rem;min-width:0;width:100%;max-width:100%;min-height:2.1rem;padding:.42rem .46rem 0;overflow:hidden}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .student-calendar-day-label{flex:0 0 auto;font-size:.95rem;font-weight:800;line-height:1.05}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .student-calendar-day-holiday-label{display:block;flex:1 1 auto;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ef4444;font-size:.72rem;font-weight:800;line-height:1.05;padding-top:.18rem}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .student-calendar-attendance-day .fc-daygrid-day-frame:after{content:"";position:absolute;right:10px;bottom:10px;z-index:60;display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:9999px;background:#fff;box-shadow:0 1px 2px #0f172a1f;color:#cbd5e1;font-family:"Font Awesome 6 Free";font-size:14px;font-weight:400;line-height:1;pointer-events:none}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .student-calendar-attendance-day.is-attended .fc-daygrid-day-frame:after{background:transparent;color:#1d4ed8}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .student-calendar-attendance-day.is-attended .fc-daygrid-day-frame:before{content:"";position:absolute;right:10px;bottom:10px;z-index:59;display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:9999px;background:#fff;color:#2563eb;font-family:"Font Awesome 6 Free";font-size:14px;font-weight:900;line-height:1;pointer-events:none}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-day-events{box-sizing:border-box;display:block;min-width:0;width:100%;max-width:100%;min-height:0;flex:1 1 auto;margin-top:.16rem;padding:0;overflow:visible}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event-harness{margin-top:0!important;min-width:0;max-width:100%;overflow:hidden}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event-harness+.fc-daygrid-event-harness{margin-top:.12rem!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event-harness-abs{z-index:6;min-width:0;max-width:100%;overflow:hidden}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event-harness-abs.student-calendar-event-harness--single{left:0!important;right:0!important;inset-inline:0!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event-harness.student-calendar-event-harness--single,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event-harness-abs.student-calendar-event-harness--single{box-sizing:border-box!important;inline-size:100%!important;max-inline-size:100%!important;width:100%!important;max-width:100%!important;min-width:0!important;overflow:hidden!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event-harness.student-calendar-event-harness--range,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event-harness-abs.student-calendar-event-harness--range{min-width:0!important;max-width:none!important;overflow:visible!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event{display:block;box-sizing:border-box;max-width:100%;margin:0!important;border-radius:.45rem;font-size:.72rem;line-height:1.1;overflow:hidden}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-block-event .fc-event-main{min-width:0;max-width:100%;overflow:hidden}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event.student-calendar-single-event,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event.student-calendar-single-event .fc-event-main,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event.student-calendar-single-event .fc-event-main-frame,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event.student-calendar-single-event .fc-event-title-container{box-sizing:border-box;inline-size:100%;max-inline-size:100%;min-width:0;width:100%;max-width:100%;overflow:hidden}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event.student-calendar-range-event,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event.student-calendar-range-event .fc-event-main,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event.student-calendar-range-event .fc-event-main-frame,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event.student-calendar-range-event .fc-event-title-container{min-width:0;width:100%;max-width:100%;overflow:hidden}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event.student-calendar-single-event{box-sizing:border-box!important;inline-size:100%!important;max-inline-size:100%!important;width:100%!important;max-width:100%!important;min-width:0!important;overflow:hidden!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event.student-calendar-range-event{width:100%!important;min-width:0!important;max-width:100%!important;overflow:hidden!important;margin-left:0!important;margin-right:0!important;border-radius:0!important;position:relative;z-index:2}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event.student-calendar-range-event.fc-event-start{margin-left:0!important;border-top-left-radius:.45rem!important;border-bottom-left-radius:.45rem!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event.student-calendar-range-event.fc-event-end{margin-right:0!important;border-top-right-radius:.45rem!important;border-bottom-right-radius:.45rem!important}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event.student-calendar-range-event.fc-event-start.fc-event-end{border-radius:.45rem!important}.student-calendar-section .student-calendar-event-label{display:flex;align-items:center;box-sizing:border-box;min-width:0;width:100%;max-width:100%;min-height:1.12rem;padding:.04rem .2rem;overflow:hidden}.student-calendar-section .student-calendar-event-label__text{display:block;box-sizing:border-box;flex:1 1 auto;min-width:0;width:100%;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;font-weight:800;line-height:1.05}.student-calendar-section .student-calendar-event-label.is-range{padding-left:.08rem;padding-right:.08rem}.student-calendar-section .student-calendar-event-label.is-range.is-start{padding-left:.08rem;padding-right:.12rem}.student-calendar-section .student-calendar-event-label.is-range.is-middle{padding-left:.08rem;padding-right:.08rem}.student-calendar-section .student-calendar-event-label.is-range.is-end{padding-left:.12rem;padding-right:.08rem}.student-calendar-section .student-calendar-event-label.is-single{flex:1 1 auto;justify-content:flex-start;min-width:0;width:100%;max-width:100%;padding-left:.2rem;padding-right:.2rem;overflow:hidden}.student-calendar-section .student-calendar-event-label.is-single .student-calendar-event-label__text{text-overflow:ellipsis}.student-calendar-section .student-calendar-event-label.is-range.is-middle,.student-calendar-section .student-calendar-event-label.is-range.is-end{justify-content:flex-start}.student-calendar-section .student-calendar-event-label.is-holiday .student-calendar-event-label__text{color:#fff!important;font-weight:800}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-day-bottom{margin-top:auto;min-height:.8rem;padding:0 .32rem .24rem}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-more-link{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0;font-size:.68rem;font-weight:700;line-height:1.2}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-popover{display:none!important}.teacher-calendar-shell .student-calendar-shell__toolbar{align-items:center}.teacher-calendar-shell .student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-day-frame{grid-template-rows:minmax(2.15rem,auto) minmax(0,1fr) auto}.teacher-calendar-shell .student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-day-bg{grid-column:1;grid-row:1 / -1;min-width:0;z-index:0}.teacher-calendar-shell .student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-day-top{grid-column:1;grid-row:1;align-self:start;position:relative;z-index:8}.teacher-calendar-shell .student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-day-events{grid-column:1;grid-row:2;align-self:start;margin-top:0;padding:0 .18rem .2rem}.teacher-calendar-shell .student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-day-bottom{grid-column:1;grid-row:3}.student-calendar-shell__filter-select{min-height:2.45rem;max-width:8rem;border:1px solid #dbeafe;border-radius:.78rem;background:#fff;color:#334155;font-size:.84rem;font-weight:700;line-height:1;padding:0 2rem 0 .75rem;outline:none}.student-calendar-shell__filter-select:focus-visible{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb29}.student-calendar-shell__action-button{border-color:#bfdbfe;background:#2563eb;color:#fff;box-shadow:0 10px 18px #2563eb29}.student-calendar-shell__action-button:hover{border-color:#1d4ed8;background:#1d4ed8;color:#fff}.student-calendar-shell__action-button--success{border-color:#86efac;background:#16a34a;color:#fff;box-shadow:0 10px 18px #16a34a24}.student-calendar-shell__action-button--success:hover{border-color:#15803d;background:#15803d;color:#fff}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-day.fc-day-today{background:#eff6ff!important;box-shadow:inset 0 0 0 2px #3b82f6b8}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-day.fc-day-today.fc-day-selected{box-shadow:none}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-day.fc-day-today .student-calendar-day-label{font-weight:900}@media(min-width:768px){.teacher-dashboard-container{max-width:min(96rem,calc(100vw - 2rem));padding-inline:clamp(1.5rem,2.6vw,2.5rem)}.teacher-dashboard-grid{height:auto!important;min-height:clamp(50rem,calc(100dvh - 8.75rem - env(safe-area-inset-bottom,0px)),58rem)!important;grid-template-rows:minmax(23rem,.96fr) minmax(24rem,1.04fr)!important;align-items:stretch}.teacher-dashboard-notice{overflow:hidden}.teacher-dashboard-ranking{overflow:visible}.teacher-dashboard-calendar .student-calendar-section,.teacher-dashboard-calendar .student-calendar-shell{min-height:100%}.teacher-dashboard-calendar .student-calendar-shell__body[data-calendar-view=dayGridMonth]{height:auto;min-height:clamp(37rem,calc(100dvh - 16rem),43rem)}.teacher-dashboard-calendar .student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-body tr{flex-basis:clamp(6.8rem,calc((100dvh - 18rem)/5),8rem);min-height:6.8rem}.teacher-dashboard-calendar .student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-day-frame{grid-template-rows:minmax(2.15rem,auto) minmax(0,1fr) auto}.teacher-dashboard-calendar .student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-day-top{position:relative;z-index:8}.teacher-dashboard-calendar .student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-day-events{margin-top:0;padding:0 .18rem .2rem}.teacher-dashboard-ranking,.teacher-dashboard-ranking>.min-h-\[260px\],.teacher-dashboard-ranking .wis-ranking-panel{min-height:24rem}.teacher-dashboard-ranking .wis-ranking-panel,.teacher-dashboard-ranking .wis-ranking-list{overflow:visible}}.wis-ranking-title-link,.wis-ranking-more-button{transform:translateY(0);transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease}.wis-ranking-title-link:hover,.wis-ranking-title-link:focus-visible,.wis-ranking-more-button:hover,.wis-ranking-more-button:focus-visible{transform:translateY(-1px)}.wis-ranking-more-button:hover,.wis-ranking-more-button:focus-visible{box-shadow:0 10px 20px #2563eb1f}.wis-ranking-panel{overflow:visible}.wis-ranking-list{display:flex;flex-direction:column;gap:.5rem;margin:-.25rem;padding:.25rem;overflow:visible}.wis-ranking-list>:not([hidden])~:not([hidden]){margin-top:0!important}.wis-ranking-row{--wis-ranking-accent-rgb: 37 99 235;--wis-ranking-row-border: rgba(37, 99, 235, .14);--wis-ranking-row-glow: rgba(37, 99, 235, .12);--wis-ranking-medal-bg: linear-gradient(135deg, #0f172a, #111827);--wis-ranking-medal-color: #ffffff;--wis-ranking-medal-ring: rgba(15, 23, 42, .12);position:relative;isolation:isolate;overflow:visible;transform:translateY(0);transition:transform .17s ease,border-color .17s ease,box-shadow .17s ease,background-color .17s ease}.wis-ranking-row:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border-radius:inherit;background:radial-gradient(closest-side at 16% 18%,rgb(var(--wis-ranking-accent-rgb) / .15),transparent 72%),linear-gradient(135deg,rgb(var(--wis-ranking-accent-rgb) / .08),transparent 48%);opacity:0;pointer-events:none;transform:scale(.92);transition:opacity .17s ease,transform .17s ease}.wis-ranking-row>*{position:relative;z-index:1}.wis-ranking-row--rank-1{--wis-ranking-accent-rgb: 245 158 11;--wis-ranking-row-border: rgba(245, 158, 11, .34);--wis-ranking-row-glow: rgba(245, 158, 11, .18);--wis-ranking-medal-bg: linear-gradient(135deg, #fff7ed, #fef3c7);--wis-ranking-medal-color: #92400e;--wis-ranking-medal-ring: rgba(245, 158, 11, .3)}.wis-ranking-row--rank-2{--wis-ranking-accent-rgb: 148 163 184;--wis-ranking-row-border: rgba(148, 163, 184, .38);--wis-ranking-row-glow: rgba(100, 116, 139, .15);--wis-ranking-medal-bg: linear-gradient(135deg, #ffffff, #e2e8f0);--wis-ranking-medal-color: #475569;--wis-ranking-medal-ring: rgba(148, 163, 184, .32)}.wis-ranking-row--rank-3{--wis-ranking-accent-rgb: 249 115 22;--wis-ranking-row-border: rgba(249, 115, 22, .34);--wis-ranking-row-glow: rgba(249, 115, 22, .16);--wis-ranking-medal-bg: linear-gradient(135deg, #fff7ed, #fed7aa);--wis-ranking-medal-color: #9a3412;--wis-ranking-medal-ring: rgba(249, 115, 22, .3)}.wis-ranking-row--rank-4,.wis-ranking-row--rank-5{--wis-ranking-accent-rgb: 14 116 144;--wis-ranking-row-border: rgba(14, 116, 144, .24);--wis-ranking-row-glow: rgba(14, 116, 144, .14);--wis-ranking-medal-bg: linear-gradient( 135deg, #020617, #0f172a 58%, #164e63 );--wis-ranking-medal-color: #ffffff;--wis-ranking-medal-ring: rgba(14, 116, 144, .32)}.wis-ranking-rank-medal{background:var(--wis-ranking-medal-bg)!important;color:var(--wis-ranking-medal-color)!important;box-shadow:0 8px 18px #0f172a1a,0 0 0 1px var(--wis-ranking-medal-ring);transition:transform .17s ease,box-shadow .17s ease,filter .17s ease}.wis-ranking-rank-badge{align-items:center;line-height:1!important}.wis-ranking-crown,.wis-ranking-profile,.wis-ranking-rank-badge,.wis-ranking-score{transition:transform .17s ease,filter .17s ease}.wis-ranking-row:hover,.wis-ranking-row:focus-within{z-index:2;border-color:var(--wis-ranking-row-border);box-shadow:0 14px 28px #0f172a1a,0 0 0 1px var(--wis-ranking-row-border),0 0 22px var(--wis-ranking-row-glow);transform:translateY(-2px)}.wis-ranking-row:hover:before,.wis-ranking-row:focus-within:before{opacity:1;transform:scale(1)}.wis-ranking-row:hover .wis-ranking-rank-medal,.wis-ranking-row:focus-within .wis-ranking-rank-medal{box-shadow:0 12px 22px #0f172a24,0 0 0 2px var(--wis-ranking-medal-ring),0 0 18px rgb(var(--wis-ranking-accent-rgb) / .18);filter:saturate(1.04);transform:translateY(-1px) scale(1.08)}.wis-ranking-row:hover .wis-ranking-crown,.wis-ranking-row:focus-within .wis-ranking-crown{filter:drop-shadow(0 6px 8px rgb(var(--wis-ranking-accent-rgb) / .28));transform:translateY(-1px) scale(1.12)}.wis-ranking-row:hover .wis-ranking-profile,.wis-ranking-row:focus-within .wis-ranking-profile,.wis-ranking-row:hover .wis-ranking-rank-badge,.wis-ranking-row:focus-within .wis-ranking-rank-badge{filter:drop-shadow(0 7px 10px rgba(15,23,42,.12));transform:translateY(-1px)}.wis-ranking-row:hover .wis-ranking-score,.wis-ranking-row:focus-within .wis-ranking-score{filter:drop-shadow(0 5px 9px rgb(var(--wis-ranking-accent-rgb) / .2));transform:translateY(-1px)}@media(prefers-reduced-motion:reduce){.wis-ranking-title-link,.wis-ranking-more-button,.wis-ranking-row,.wis-ranking-row:before,.wis-ranking-rank-medal,.wis-ranking-crown,.wis-ranking-profile,.wis-ranking-rank-badge,.wis-ranking-score{transition:none}.wis-ranking-title-link:hover,.wis-ranking-title-link:focus-visible,.wis-ranking-more-button:hover,.wis-ranking-more-button:focus-visible,.wis-ranking-row:hover,.wis-ranking-row:focus-within,.wis-ranking-row:hover .wis-ranking-rank-medal,.wis-ranking-row:focus-within .wis-ranking-rank-medal,.wis-ranking-row:hover .wis-ranking-crown,.wis-ranking-row:focus-within .wis-ranking-crown,.wis-ranking-row:hover .wis-ranking-profile,.wis-ranking-row:focus-within .wis-ranking-profile,.wis-ranking-row:hover .wis-ranking-rank-badge,.wis-ranking-row:focus-within .wis-ranking-rank-badge,.wis-ranking-row:hover .wis-ranking-score,.wis-ranking-row:focus-within .wis-ranking-score{transform:none}}@media(min-width:640px)and (max-width:1280px){.wis-ranking-panel{padding:clamp(.75rem,1.2vw,1rem)!important}.wis-ranking-panel .mb-3{margin-bottom:clamp(.5rem,.85vw,.75rem)!important}.wis-ranking-title{font-size:clamp(1rem,1.45vw,1.15rem)!important;line-height:1.15}.wis-ranking-title i{margin-right:.42rem!important;font-size:.92em}.wis-ranking-list{display:flex;flex-direction:column;gap:clamp(.5rem,.75vw,.62rem)!important}.wis-ranking-row{grid-template-columns:clamp(3.1rem,5vw,4.25rem) minmax(0,1fr) clamp(4.6rem,7vw,5.75rem) clamp(5.15rem,8vw,6.35rem)!important;grid-template-rows:auto!important;justify-content:stretch;column-gap:clamp(.45rem,.85vw,.75rem)!important;row-gap:0!important;align-items:center;min-width:0;max-width:100%;overflow:visible;white-space:nowrap;padding:clamp(.46rem,.78vw,.62rem) clamp(.5rem,.85vw,.75rem)!important}.wis-ranking-rank{grid-column:1;grid-row:1;grid-template-columns:clamp(1.65rem,2.6vw,2rem) clamp(.82rem,1.35vw,1.12rem)!important;gap:clamp(.18rem,.34vw,.32rem)!important;align-self:center}.wis-ranking-rank>span{width:clamp(1.65rem,2.6vw,2rem)!important;height:clamp(1.65rem,2.6vw,2rem)!important;font-size:clamp(.72rem,1vw,.88rem)!important}.wis-ranking-rank>i{font-size:clamp(.72rem,1vw,.94rem)!important}.wis-ranking-student{grid-column:2;grid-row:1;gap:clamp(.28rem,.48vw,.42rem)!important;align-self:center;min-width:0;overflow:hidden}.wis-ranking-profile{width:clamp(1.18rem,1.65vw,1.5rem)!important;height:clamp(1.18rem,1.65vw,1.5rem)!important;font-size:clamp(.68rem,.9vw,.85rem)!important}.wis-ranking-name{flex:1 1 auto;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.8rem,1.08vw,.95rem)!important;line-height:1.15}.wis-ranking-rank-badge{min-width:clamp(2.55rem,3.8vw,3.35rem)!important;min-height:clamp(1.35rem,1.75vw,1.8rem)!important;padding:0 clamp(.36rem,.55vw,.5rem)!important;font-size:clamp(.6rem,.8vw,.66rem)!important}.wis-ranking-class{grid-column:3;grid-row:1;align-self:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.68rem,.9vw,.82rem)!important;line-height:1.15}.wis-ranking-score{grid-column:4;grid-row:1;align-self:center;white-space:nowrap;text-align:right;font-size:clamp(.74rem,.98vw,.9rem)!important;line-height:1.12}}@media(max-width:639px){.wis-ranking-mobile-row{display:flex!important;align-items:center;gap:clamp(.28rem,1.65vw,.48rem)!important;min-width:0;overflow:visible;white-space:nowrap}.wis-ranking-mobile-rank-cluster{grid-template-columns:clamp(1.72rem,7.1vw,2rem) clamp(.9rem,3.5vw,1.05rem)!important;gap:clamp(.16rem,1vw,.28rem)!important;align-items:center;min-width:clamp(2.9rem,11.8vw,3.32rem)}.wis-ranking-mobile-rank-cluster .wis-ranking-rank-medal{width:clamp(1.72rem,7.1vw,2rem)!important;height:clamp(1.72rem,7.1vw,2rem)!important;font-size:clamp(.78rem,3.25vw,.95rem)!important}.wis-ranking-mobile-rank-cluster .wis-ranking-crown{font-size:clamp(.78rem,3.15vw,.95rem)!important}.wis-ranking-mobile-profile{width:clamp(1.3rem,5.4vw,1.55rem)!important;height:clamp(1.3rem,5.4vw,1.55rem)!important;font-size:clamp(.76rem,3.1vw,.9rem)!important}.wis-ranking-mobile-student{display:flex;flex:1 1 auto;flex-direction:column;justify-content:center;gap:.08rem;min-width:0}.wis-ranking-mobile-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.92rem,3.9vw,1.05rem)!important;line-height:1.12}.wis-ranking-mobile-badge{align-self:center;max-width:clamp(2.9rem,15vw,3.45rem);min-height:clamp(1.34rem,5.5vw,1.55rem)!important;line-height:1!important;padding-inline:clamp(.38rem,1.45vw,.5rem)!important;overflow:hidden;text-overflow:ellipsis;font-size:clamp(.68rem,2.7vw,.78rem)!important}.wis-ranking-mobile-class{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.74rem,3.1vw,.86rem)!important;line-height:1.12}.wis-ranking-mobile-score{align-self:center;margin-left:0!important;white-space:nowrap;font-size:clamp(.9rem,3.75vw,1rem)!important;line-height:1.12}}@media(min-width:640px)and (max-width:900px){.wis-ranking-row{display:block!important;padding:clamp(.48rem,1.3vw,.62rem) clamp(.55rem,1.6vw,.75rem)!important}.wis-ranking-mobile-row{display:flex!important;align-items:center;gap:clamp(.32rem,.95vw,.55rem)!important;min-width:0;overflow:visible;white-space:nowrap}.wis-ranking-row>.wis-ranking-rank,.wis-ranking-row>.wis-ranking-student,.wis-ranking-row>.wis-ranking-class,.wis-ranking-row>.wis-ranking-score{display:none!important}.wis-ranking-mobile-rank-cluster{grid-template-columns:clamp(1.7rem,3.5vw,1.92rem) clamp(.92rem,1.85vw,1.08rem)!important;gap:clamp(.18rem,.55vw,.3rem)!important;align-items:center;min-width:clamp(2.92rem,5.75vw,3.28rem)}.wis-ranking-mobile-rank-cluster .wis-ranking-rank-medal{width:clamp(1.7rem,3.5vw,1.92rem)!important;height:clamp(1.7rem,3.5vw,1.92rem)!important;font-size:clamp(.78rem,1.5vw,.9rem)!important}.wis-ranking-mobile-rank-cluster .wis-ranking-crown{font-size:clamp(.78rem,1.5vw,.92rem)!important}.wis-ranking-mobile-profile{width:clamp(1.25rem,2.55vw,1.45rem)!important;height:clamp(1.25rem,2.55vw,1.45rem)!important;font-size:clamp(.72rem,1.35vw,.86rem)!important}.wis-ranking-mobile-student{display:flex;flex:1 1 auto;flex-direction:column;justify-content:center;gap:.08rem;min-width:0}.wis-ranking-mobile-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.9rem,1.85vw,1rem)!important;line-height:1.12}.wis-ranking-mobile-badge{align-self:center;max-width:clamp(2.95rem,6.6vw,3.5rem);min-height:clamp(1.28rem,2.65vw,1.5rem)!important;line-height:1!important;padding-inline:clamp(.36rem,.8vw,.48rem)!important;overflow:hidden;text-overflow:ellipsis;font-size:clamp(.66rem,1.25vw,.76rem)!important}.wis-ranking-mobile-class{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.72rem,1.45vw,.84rem)!important;line-height:1.12}.wis-ranking-mobile-score{align-self:center;margin-left:0!important;white-space:nowrap;font-size:clamp(.86rem,1.75vw,.98rem)!important;line-height:1.12}}@media(min-width:768px)and (max-width:1280px)and (max-height:900px){.dashboard-container.teacher-dashboard-container{padding-top:1rem;padding-bottom:1.25rem}.teacher-dashboard-container>.mb-6{margin-bottom:.75rem}.teacher-dashboard-grid{height:auto!important;min-height:clamp(48rem,calc(100dvh - 7.75rem - env(safe-area-inset-bottom,0px)),56rem)!important;grid-template-rows:minmax(22.5rem,.96fr) minmax(23.5rem,1.04fr)!important;align-items:stretch}.teacher-dashboard-notice,.teacher-dashboard-calendar,.teacher-dashboard-ranking{min-height:0}.teacher-dashboard-ranking>.min-h-\[260px\]{min-height:0!important}.teacher-dashboard-calendar .student-calendar-shell{min-height:0}.teacher-dashboard-calendar .student-calendar-shell__body[data-calendar-view=dayGridMonth]{min-height:clamp(36rem,calc(100dvh - 14.5rem),41rem);height:auto}}@media(min-width:768px){.dashboard-container{padding:24px 40px}.student-dashboard-container{padding-bottom:calc(1.5rem + env(safe-area-inset-bottom,0px))}}@media(min-width:900px)and (orientation:landscape){.student-quiz-runner{flex:1 1 auto;height:auto;min-height:0;overflow:hidden}.student-quiz-shell{overflow:hidden}.student-quiz-body-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);align-items:stretch;overflow:hidden;padding-right:0}.student-quiz-question-panel,.student-quiz-answer-panel{overflow-y:auto}.student-quiz-support-panel{max-height:100%;overflow-y:auto}.student-quiz-choice-grid{height:100%;min-height:0}}@media(min-width:1024px){.student-dashboard-grid{height:calc(100vh - 15.75rem);height:max(31.25rem,calc(100dvh - 15.75rem - env(safe-area-inset-bottom,0px)));min-height:0!important}.student-dashboard-calendar .student-calendar-shell__body[data-calendar-view=dayGridMonth]{min-height:clamp(20rem,calc(100dvh - 18rem),31rem)}}.policy-rich-text,.developer-log-rich-text{color:#374151;line-height:1.8}.policy-rich-text p,.developer-log-rich-text p{margin:.4rem 0;white-space:pre-wrap}.policy-rich-text h1,.policy-rich-text h2,.policy-rich-text h3,.developer-log-rich-text h1,.developer-log-rich-text h2,.developer-log-rich-text h3{margin:1.25rem 0 .55rem;color:#0f172a;font-weight:900;line-height:1.35}.policy-rich-text h1,.developer-log-rich-text h1{font-size:1.5rem}.policy-rich-text h2,.developer-log-rich-text h2{font-size:1.2rem}.policy-rich-text h3,.developer-log-rich-text h3{font-size:1.05rem}.policy-rich-text ul,.developer-log-rich-text ul{list-style:disc;padding-left:1.4rem;margin:.5rem 0}.policy-rich-text ol,.developer-log-rich-text ol{list-style:decimal;padding-left:1.4rem;margin:.5rem 0}.policy-rich-text li,.developer-log-rich-text li{margin:.25rem 0;white-space:pre-wrap}.policy-rich-text li[data-list=bullet],.developer-log-rich-text li[data-list=bullet]{list-style-type:disc}.policy-rich-text li[data-list=ordered],.developer-log-rich-text li[data-list=ordered]{list-style-type:decimal}.policy-rich-text a,.developer-log-rich-text a{color:#2563eb;font-weight:800;text-decoration:underline}.policy-rich-text .ql-indent-1,.developer-log-rich-text .ql-indent-1{padding-left:2em}.policy-rich-text .ql-indent-2,.developer-log-rich-text .ql-indent-2{padding-left:4em}.policy-rich-text .ql-indent-3,.developer-log-rich-text .ql-indent-3{padding-left:6em}@media(max-width:1023px){.dashboard-container{height:auto!important;overflow:visible!important}.md\:h-\[calc\(100vh-140px\)\]{height:auto!important}.student-calendar-section{min-height:0}.student-calendar-shell{gap:.85rem;padding:.85rem}.student-calendar-shell__header-main{flex-direction:column;align-items:stretch;gap:.85rem}.student-calendar-shell__heading-group{gap:.55rem;flex:none}.student-calendar-shell__month-row{width:100%;align-items:center;flex-direction:row;gap:.6rem}.student-calendar-shell__month-badge{min-width:100%;border-radius:.95rem}.student-calendar-shell__month-title{font-size:1.12rem}.student-calendar-shell__toolbar{width:100%;align-items:stretch;justify-content:flex-start;gap:.6rem;flex:none}.student-calendar-shell__calendar-tools{width:100%;justify-content:flex-start;gap:.5rem}.student-calendar-shell__control-cluster,.student-calendar-shell__attendance-tools{flex-wrap:wrap;max-width:100%}.student-calendar-shell__attendance-tools{justify-content:space-between;align-self:flex-start}.student-calendar-shell__control-button,.student-calendar-shell__search-button,.student-calendar-shell__attendance-action,.student-calendar-shell__attendance-indicator{min-height:2.55rem;padding:0 .82rem;font-size:.8rem}.student-calendar-shell__nav-button{width:2.55rem;height:2.55rem}.student-calendar-shell__nav-button--month{width:2.05rem;height:2.05rem;border-radius:.72rem}.student-calendar-shell__search-button{flex:1 1 auto}.calendar-wrapper,.student-calendar-shell__body[data-calendar-view=listMonth]{min-height:420px}.student-calendar-shell__body[data-calendar-view=dayGridMonth]{min-height:420px;height:420px}.student-calendar-shell__body .fc-list-row-grid{grid-template-columns:112px minmax(0,1fr)}.student-calendar-shell__body .fc-list-target-cell{display:none}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .student-calendar-day-head{gap:.25rem;min-height:1.9rem;padding:.32rem .32rem 0}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .student-calendar-day-label{font-size:.88rem}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .student-calendar-day-holiday-label{font-size:.64rem}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .student-calendar-attendance-day .fc-daygrid-day-frame:after,.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .student-calendar-attendance-day.is-attended .fc-daygrid-day-frame:before{right:7px;bottom:7px;width:13px;height:13px;font-size:13px}.student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-event{font-size:.7rem}.student-calendar-section .student-calendar-event-label{min-height:1.06rem;padding-left:.14rem;padding-right:.14rem}.student-calendar-section .student-calendar-event-label.is-range.is-start{padding-left:.08rem;padding-right:.1rem}.student-calendar-section .student-calendar-event-label.is-range.is-middle{padding-left:.08rem;padding-right:.08rem}.student-calendar-section .student-calendar-event-label.is-range.is-end{padding-left:.1rem;padding-right:.08rem}.student-calendar-section .student-calendar-event-label.is-single{padding-left:.14rem;padding-right:.14rem;font-size:.68rem}.student-calendar-section .student-calendar-event-label__text{font-size:.68rem}}@media(max-width:1023px){.teacher-dashboard-calendar .student-calendar-shell__body[data-calendar-view=dayGridMonth]{min-height:clamp(32rem,112vw,40rem);height:clamp(32rem,112vw,40rem)}.teacher-dashboard-calendar .student-calendar-shell__body[data-calendar-view=dayGridMonth] .fc .fc-daygrid-body tr{min-height:5.8rem}.teacher-dashboard-ranking,.teacher-dashboard-ranking>.min-h-\[260px\],.teacher-dashboard-ranking .wis-ranking-panel{min-height:22rem}.teacher-dashboard-ranking .wis-ranking-panel,.teacher-dashboard-ranking .wis-ranking-list{overflow:visible}}@media(max-width:639px){.student-calendar-shell__month-row{justify-content:center}.student-calendar-shell__month-badge{grid-template-columns:1.9rem max-content 1.9rem;gap:.34rem;min-width:0;width:fit-content;margin-inline:auto}.student-calendar-shell__month-title{font-size:1.28rem}.student-calendar-shell__nav-button--month{width:1.9rem;height:1.9rem;border-radius:.68rem}.teacher-calendar-shell .student-calendar-shell__header-main,.teacher-calendar-shell .student-calendar-shell__heading-group{gap:.68rem}.teacher-calendar-shell .student-calendar-shell__toolbar{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:.28rem;overflow-x:auto;scrollbar-width:none}.teacher-calendar-shell .student-calendar-shell__toolbar::-webkit-scrollbar{display:none}.teacher-calendar-shell .student-calendar-shell__calendar-tools{width:auto;flex:0 0 auto;flex-wrap:nowrap;gap:.28rem}.teacher-calendar-shell .student-calendar-shell__calendar-tools:first-child{flex:1 1 auto;min-width:0}.teacher-calendar-shell .student-calendar-shell__calendar-tools:last-child{flex:0 0 auto}.teacher-calendar-shell .student-calendar-shell__control-cluster{flex-wrap:nowrap;gap:.16rem;padding:.14rem}.teacher-calendar-shell .student-calendar-shell__control-cluster--view{gap:.18rem;padding-right:.16rem}.teacher-calendar-shell .student-calendar-shell__view-toggle{gap:.08rem;padding:.12rem}.teacher-calendar-shell .student-calendar-shell__view-button{padding:.42rem .5rem;font-size:.72rem}.teacher-calendar-shell .student-calendar-shell__control-button,.teacher-calendar-shell .student-calendar-shell__search-button,.teacher-calendar-shell .student-calendar-shell__filter-select{min-height:2rem;height:2rem;font-size:.72rem;line-height:1}.teacher-calendar-shell .student-calendar-shell__control-button{padding:0 .5rem}.teacher-calendar-shell .student-calendar-shell__search-button{flex:0 0 auto;gap:.22rem;padding:0 .46rem}.teacher-calendar-shell .student-calendar-shell__filter-select{flex:0 0 3.75rem;max-width:3.75rem;padding:0 1.22rem 0 .46rem;border-radius:.65rem}.teacher-calendar-shell .student-calendar-shell__action-button{padding:0 .54rem;box-shadow:none}.teacher-calendar-shell .student-calendar-shell__action-button i{margin-right:.18rem!important}}
