body,html{height:100%}body{background:#fff;font-family:Plus Jakarta Sans,sans-serif;font-size:18px;line-height:1.6;overflow-x:hidden;overflow-y:auto}#root{min-height:100%}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--brand-blue:#1800ad;--brand-blue-deep:#0d004f;--ink:#171412;--muted-brown:#8a7561;--muted-light:#ada59e;--surface-soft:#fafaf9}.landing-container{animation:skyShift 14s ease-in-out infinite alternate;background:linear-gradient(180deg,#f7f9ff,#fff 42%,#f8fcff);background-size:180% 180%;height:100dvh;isolation:isolate;min-height:100dvh;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;position:relative;scroll-behavior:smooth;scroll-snap-type:y mandatory}.landing-container:after,.landing-container:before{border-radius:50%;content:"";filter:blur(2px);pointer-events:none;position:absolute;z-index:0}.landing-container:before{animation:floatBlobA 9s ease-in-out infinite;background:radial-gradient(circle,#ffaedd61 0,#ffaedd14 48%,#ffaedd00 72%);height:560px;left:-120px;top:-220px;width:560px}.landing-container:after{animation:floatBlobB 11s ease-in-out infinite;background:radial-gradient(circle,#8ad1ff59 0,#8ad1ff12 50%,#8ad1ff00 74%);height:620px;right:-160px;top:220px;width:620px}.landing-container>*{position:relative;z-index:1}.page-section{display:flex;flex-direction:column;min-height:100dvh;scroll-snap-align:start;scroll-snap-stop:always;width:100%}.landing-container .hero-page{justify-content:stretch}.navbar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff0;box-shadow:0 2px 10px #1714120f;padding:16px 30px;position:-webkit-sticky;position:sticky;width:100%}.navbar-content{justify-content:space-between;margin:0 auto;max-width:1400px;position:relative}.navbar-logo{color:#1800ad;color:var(--brand-blue);font-size:24px;font-weight:700;text-decoration:none;z-index:2}.navbar-links{align-items:center;display:flex;gap:30px}.navbar-links a{color:#8a7561;color:var(--muted-brown);font-size:18px;font-weight:500;position:relative;text-decoration:none;transition:all .3s ease}.navbar-links a:hover{color:#1800ad;color:var(--brand-blue)}.navbar-links a:after{background:#1800ad;background:var(--brand-blue);bottom:-4px;content:"";height:2px;left:0;position:absolute;transition:width .3s ease;width:0}.navbar-links a:hover:after{width:100%}.navbar-links button{background:none;border:none;cursor:pointer;font-family:Plus Jakarta Sans,sans-serif;padding:0}.login-btn{background:#1800ad!important;background:var(--brand-blue)!important;border:2px solid #1800ad!important;border:2px solid var(--brand-blue)!important;border-radius:10px;color:#fff!important;font-size:16px;font-weight:600;padding:12px 28px!important;transition:all .3s ease}.login-btn:hover{background:#0d004f!important;background:var(--brand-blue-deep)!important;border-color:#0d004f!important;border-color:var(--brand-blue-deep)!important;box-shadow:0 10px 20px #1800ad40;transform:translateY(-2px)}.landing-container .hero-section{align-items:center;background:radial-gradient(circle at 50% 10%,#eaf1ff 0,#fff 58%);border-radius:0;display:flex;flex-direction:column;justify-content:center;min-height:100dvh;overflow:hidden;padding:clamp(48px,10vh,86px) clamp(18px,4vw,30px);position:relative;text-align:center;width:100%}.landing-container .hero-section:before{animation:heroGlowPulse 7s ease-in-out infinite;background:radial-gradient(circle,#1800ad1f 0,#1800ad00 70%);content:"";height:520px;left:50%;pointer-events:none;position:absolute;top:-120px;transform:translateX(-50%);width:520px}.landing-container .hero-section:after{animation:driftBubbles 9s ease-in-out infinite;background-image:radial-gradient(circle at 12% 22%,#ffce8673 0 16px,#0000 17px),radial-gradient(circle at 82% 18%,#9385ff4d 0 14px,#0000 15px),radial-gradient(circle at 88% 68%,#7dddb65c 0 18px,#0000 19px),radial-gradient(circle at 18% 74%,#ffb5c759 0 14px,#0000 15px),radial-gradient(circle at 38% 30%,#ffa0d152 0 11px,#0000 12px),radial-gradient(circle at 62% 77%,#7cdeff4d 0 12px,#0000 13px),radial-gradient(circle at 47% 13%,#baff984d 0 10px,#0000 11px);content:"";opacity:.72}.craft-motion-layer,.landing-container .hero-section:after{inset:0;pointer-events:none;position:absolute;z-index:0}.craft-online{display:block;filter:drop-shadow(0 14px 18px rgba(23,20,18,.16));height:124px;position:absolute;width:124px}.craft-online-icon{height:100%;opacity:1;width:100%}.craft-online-palette{animation:onlineFloatA 8.2s ease-in-out infinite;left:7%;top:14%}.craft-online-brush{animation:onlineFloatB 7.7s ease-in-out -1.1s infinite;right:7%;top:18%}.craft-online-crayon{animation:onlineFloatC 8.7s ease-in-out -.9s infinite;bottom:16%;height:104px;left:12%;width:104px}.craft-online-pencil{animation:onlineFloatC 9.1s ease-in-out -.7s infinite;height:108px;left:24%;top:22%;width:108px}.craft-online-scissors{animation:onlineFloatA 7.3s ease-in-out -2.4s infinite;bottom:12%;height:112px;right:18%;width:112px}.craft-online-ruler{animation:onlineFloatB 8.9s ease-in-out -2s infinite;height:132px;right:6%;top:44%;width:132px}.craft-online-ruler-triangle{animation:onlineFloatA 9.3s ease-in-out -2.2s infinite;height:102px;right:22%;top:16%;width:102px}.craft-online-sparkles{animation:onlinePulse 4s ease-in-out infinite;height:92px;right:30%;top:30%;width:92px}.craft-online-memo{animation:onlineFloatC 8.5s ease-in-out -1.6s infinite;bottom:12%;height:98px;left:32%;width:98px}.craft-online-book{animation:onlineFloatA 8.8s ease-in-out -.4s infinite;bottom:10%;height:110px;right:34%;width:110px}.craft-item{display:block;filter:drop-shadow(0 8px 14px rgba(23,20,18,.12));position:absolute}.craft-palette{animation:paletteDance 6.2s ease-in-out infinite;background:radial-gradient(circle at 23% 31%,#ff6a8a 0 6px,#0000 7px),radial-gradient(circle at 39% 53%,#ffd95c 0 6px,#0000 7px),radial-gradient(circle at 60% 30%,#69d1ff 0 6px,#0000 7px),radial-gradient(circle at 66% 54%,#9a7dff 0 6px,#0000 7px),radial-gradient(circle at 81% 39%,#7be39d 0 6px,#0000 7px),linear-gradient(145deg,#ffe4bc,#ffcfa3);border-radius:47% 53% 45% 55%/56% 43% 57% 44%;height:78px;left:8%;top:14%;width:102px}.craft-palette:after{background:#ffffffd9;border-radius:50%;bottom:12px;content:"";height:14px;position:absolute;right:11px;width:20px}.craft-paper{animation:paperFlutter 7.5s ease-in-out infinite;background:linear-gradient(180deg,#a3bfff38 0 2px,#0000 2px 12px),linear-gradient(145deg,#fff,#f2f6ff);border:2px solid #a3bfff73;border-radius:14px;height:92px;right:9%;top:17%;transform:rotate(-10deg);width:92px}.craft-paper:before{background:#788fd07a;box-shadow:0 14px 0 #788fd073,0 28px 0 #788fd073,0 42px 0 #788fd073;content:"";height:2px;left:12px;position:absolute;top:14px;width:58px}.craft-button{animation:buttonBounce 5.5s ease-in-out infinite;background:radial-gradient(circle at 30% 30%,#ffe87d 0,#ffcd32 70%);border:4px solid #f4b400;border-radius:50%;bottom:19%;height:58px;left:16%;width:58px}.craft-button:before{background:radial-gradient(circle at 30% 33%,#ad7f00 0 3px,#0000 3px),radial-gradient(circle at 70% 33%,#ad7f00 0 3px,#0000 3px),radial-gradient(circle at 30% 69%,#ad7f00 0 3px,#0000 3px),radial-gradient(circle at 70% 69%,#ad7f00 0 3px,#0000 3px);border-radius:50%;content:"";inset:14px;position:absolute}.craft-thread{animation:threadLoop 8.3s ease-in-out infinite;border-color:#7c94de9e #7c94de9e #0000 #0000;border-radius:50%;border-style:dashed;border-width:3px;bottom:17%;height:88px;right:12%;transform:rotate(-14deg);width:210px}.craft-thread-alt{animation-delay:-2.1s;border-color:#0000 #0000 #ff95cca3 #ff95cca3;height:64px;left:24%;top:22%;transform:rotate(22deg);width:160px}.craft-star{animation:sparkleSpin 4.8s ease-in-out infinite;background:linear-gradient(135deg,#97f4c8,#47dca1);-webkit-clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 93%,50% 72%,21% 93%,32% 57%,2% 35%,39% 35%);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 93%,50% 72%,21% 93%,32% 57%,2% 35%,39% 35%);height:46px;right:24%;top:27%;width:46px}.craft-brush{animation:brushSweep 6.8s ease-in-out infinite;background:linear-gradient(90deg,#d39c5f,#b9783f 70%,#8f5831);border-radius:20px;height:18px;right:7%;top:42%;transform:rotate(-30deg);width:130px}.craft-brush:before{background:linear-gradient(180deg,#4a69ff,#2f3dd6);border-radius:13px 13px 8px 8px;content:"";height:34px;left:-18px;position:absolute;top:-8px;width:24px}.craft-brush:after{background:linear-gradient(180deg,#8df5ff,#5fc9ff);border-radius:9px;content:"";height:26px;left:-30px;position:absolute;top:-4px;transform:rotate(-8deg);width:14px}.craft-crayon{animation:crayonWiggle 7.1s ease-in-out infinite;background:linear-gradient(90deg,#ff6f61,#ff4b57 62%,#d53144);border-radius:16px;height:16px;left:10%;top:48%;transform:rotate(-20deg);width:116px}.craft-crayon:before{border-bottom:8px solid #0000;border-left:14px solid #ffd8a4;border-top:8px solid #0000;content:"";height:0;position:absolute;right:-14px;top:0;width:0}.craft-crayon:after{background:#ffffff38;border-radius:6px;content:"";height:8px;left:14px;position:absolute;top:4px;width:28px}.craft-tape{animation:tapeRoll 8s ease-in-out infinite;background:radial-gradient(circle at 50% 50%,#fff 0 14px,#ffdb7f 14px 28px,#f4b533 28px 100%);border-radius:50%;bottom:16%;height:62px;left:23%;width:62px}.craft-tape:before{background:linear-gradient(180deg,#fff1c4f2,#ffe6a3e0);border-radius:3px;content:"";height:10px;position:absolute;right:-10px;top:26px;width:16px}.craft-origami{animation:origamiGlide 8.8s ease-in-out infinite;background:linear-gradient(145deg,#8ae7ff,#45c8f2);-webkit-clip-path:polygon(0 65%,44% 32%,58% 0,100% 42%,58% 58%,46% 100%);clip-path:polygon(0 65%,44% 32%,58% 0,100% 42%,58% 58%,46% 100%);height:56px;left:74%;top:22%;width:74px}.craft-paint-drop{border-radius:50% 50% 55% 55%;height:28px;transform-origin:center bottom;width:18px}.craft-paint-drop-a{animation:dripBounceA 4.4s ease-in-out infinite;background:linear-gradient(180deg,#ff8ec8,#ff5aa5);bottom:20%;left:30%}.craft-paint-drop-b{animation:dripBounceB 5.1s ease-in-out infinite;background:linear-gradient(180deg,#7de3ff,#41b8ff);right:31%;top:36%}.craft-spark{background:#ffe16a;-webkit-clip-path:polygon(50% 0,60% 37%,100% 50%,60% 63%,50% 100%,40% 63%,0 50%,40% 37%);clip-path:polygon(50% 0,60% 37%,100% 50%,60% 63%,50% 100%,40% 63%,0 50%,40% 37%);height:28px;width:28px}.craft-spark-a{animation:sparkleFlash 3.6s ease-in-out infinite;left:44%;top:18%}.craft-spark-b{animation:sparkleFlash 3.9s ease-in-out -1.4s infinite;bottom:22%;right:20%}.hero-title{animation:fadeInUp .8s ease-out;color:#1800ad;color:var(--brand-blue);font-size:clamp(44px,5vw,64px);font-weight:800;letter-spacing:-.02em;margin-bottom:12px}.hero-subtitle,.hero-title{position:relative;z-index:1}.hero-subtitle{animation:fadeInUp .8s ease-out .2s both;color:#8a7561;color:var(--muted-brown);font-size:clamp(22px,2.4vw,30px);font-weight:700;margin-bottom:20px}.hero-description{animation:fadeInUp .8s ease-out .4s both;color:#ada59e;color:var(--muted-light);font-size:20px;line-height:1.55;margin:0 auto 40px;max-width:700px;position:relative;z-index:1}.cta-button{animation:fadeInUp .8s ease-out .6s both;background:#1800ad;background:var(--brand-blue);border:none;border-radius:14px;color:#fff;cursor:pointer;font-family:Plus Jakarta Sans,sans-serif;font-size:22px;font-weight:700;padding:16px 48px;position:relative;transition:all .3s ease;z-index:1}.cta-button:hover{background:#0d004f;background:var(--brand-blue-deep);box-shadow:0 12px 24px #1800ad4d;transform:translateY(-3px)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes skyShift{0%{background-position:0 0}to{background-position:100% 100%}}@keyframes floatBlobA{0%{transform:translate(0) scale(1) rotate(0deg)}35%{transform:translate(78px,48px) scale(1.1) rotate(7deg)}70%{transform:translate(20px,88px) scale(.95) rotate(-5deg)}to{transform:translate(0) scale(1) rotate(0deg)}}@keyframes floatBlobB{0%{transform:translate(0) scale(1) rotate(0deg)}40%{transform:translate(-68px,-52px) scale(1.08) rotate(-8deg)}75%{transform:translate(-20px,40px) scale(.96) rotate(5deg)}to{transform:translate(0) scale(1) rotate(0deg)}}@keyframes heroGlowPulse{0%{opacity:.55;transform:translateX(-50%) scale(.92)}50%{opacity:.9;transform:translateX(-50%) scale(1.1)}to{opacity:.55;transform:translateX(-50%) scale(.92)}}@keyframes driftBubbles{0%{transform:translateZ(0) scale(1)}25%{transform:translate3d(-42px,24px,0) scale(1.02)}50%{transform:translate3d(38px,-22px,0) scale(1.05)}75%{transform:translate3d(-30px,-36px,0) scale(.98)}to{transform:translateZ(0) scale(1)}}@keyframes paletteDance{0%{transform:translateZ(0) rotate(-8deg) scale(1)}50%{transform:translate3d(18px,-14px,0) rotate(10deg) scale(1.08)}to{transform:translateZ(0) rotate(-8deg) scale(1)}}@keyframes paperFlutter{0%{transform:translateZ(0) rotate(-10deg)}40%{transform:translate3d(-20px,16px,0) rotate(4deg)}to{transform:translateZ(0) rotate(-10deg)}}@keyframes buttonBounce{0%{transform:translateZ(0) scale(1)}45%{transform:translate3d(0,-18px,0) scale(1.09)}to{transform:translateZ(0) scale(1)}}@keyframes threadLoop{0%{transform:translateZ(0) rotate(-14deg) scale(1)}50%{transform:translate3d(20px,-10px,0) rotate(-2deg) scale(1.04)}to{transform:translateZ(0) rotate(-14deg) scale(1)}}@keyframes sparkleSpin{0%{transform:rotate(0deg) scale(.95)}50%{transform:rotate(24deg) scale(1.15)}to{transform:rotate(0deg) scale(.95)}}@keyframes brushSweep{0%{transform:translateZ(0) rotate(-30deg)}50%{transform:translate3d(-32px,16px,0) rotate(-18deg)}to{transform:translateZ(0) rotate(-30deg)}}@keyframes onlineFloatA{0%{transform:translateZ(0) rotate(-5deg) scale(1)}50%{transform:translate3d(14px,-16px,0) rotate(8deg) scale(1.06)}to{transform:translateZ(0) rotate(-5deg) scale(1)}}@keyframes onlineFloatB{0%{transform:translateZ(0) rotate(6deg) scale(1)}50%{transform:translate3d(-16px,10px,0) rotate(-8deg) scale(1.08)}to{transform:translateZ(0) rotate(6deg) scale(1)}}@keyframes onlineFloatC{0%{transform:translateZ(0) rotate(-3deg) scale(1)}50%{transform:translate3d(12px,12px,0) rotate(8deg) scale(1.06)}to{transform:translateZ(0) rotate(-3deg) scale(1)}}@keyframes onlinePulse{0%{opacity:.82;transform:scale(.9) rotate(0deg)}50%{opacity:1;transform:scale(1.12) rotate(7deg)}to{opacity:.82;transform:scale(.9) rotate(0deg)}}@keyframes crayonWiggle{0%{transform:translateZ(0) rotate(-20deg)}50%{transform:translate3d(10px,-12px,0) rotate(-8deg)}to{transform:translateZ(0) rotate(-20deg)}}@keyframes tapeRoll{0%{transform:translateZ(0) rotate(0deg) scale(1)}50%{transform:translate3d(16px,-14px,0) rotate(120deg) scale(1.05)}to{transform:translateZ(0) rotate(240deg) scale(1)}}@keyframes origamiGlide{0%{transform:translateZ(0) rotate(-4deg) scale(1)}50%{transform:translate3d(24px,-18px,0) rotate(9deg) scale(1.08)}to{transform:translateZ(0) rotate(-4deg) scale(1)}}@keyframes dripBounceA{0%{transform:translateZ(0) scaleY(1)}50%{transform:translate3d(0,16px,0) scaleY(.88)}to{transform:translateZ(0) scaleY(1)}}@keyframes dripBounceB{0%{transform:translateZ(0) scaleY(1)}50%{transform:translate3d(-2px,14px,0) scaleY(.86)}to{transform:translateZ(0) scaleY(1)}}@keyframes sparkleFlash{0%{opacity:.68;transform:scale(.75) rotate(0deg)}45%{opacity:1;transform:scale(1.2) rotate(18deg)}to{opacity:.68;transform:scale(.75) rotate(0deg)}}@media (prefers-reduced-motion:reduce){.craft-item,.hero-section:after,.hero-section:before,.landing-container,.landing-container:after,.landing-container:before{animation:none}}.features-section{align-items:center;background:#fff;justify-content:center;padding:clamp(54px,8vh,86px) clamp(18px,4vw,30px)}.container{margin:0 auto;max-width:1200px;width:100%}.section-title{background:linear-gradient(#e8e5e1,#e8e5e1) 0 /34% 1px no-repeat,linear-gradient(#e8e5e1,#e8e5e1) 100% /34% 1px no-repeat;color:#171412;color:var(--ink);display:block;font-size:clamp(34px,3vw,42px);font-weight:800;letter-spacing:-.01em;margin-bottom:68px;padding:0 20px;text-align:center}.features-grid{grid-gap:26px;align-items:start;display:grid;gap:26px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.feature-card{align-items:center;align-self:start;background:linear-gradient(180deg,#fff,#f7f8ff);border:1px solid #ebecf8;border-radius:20px;box-shadow:0 10px 28px #1714120d;display:flex;flex-direction:column;min-height:220px;padding:24px 22px;text-align:center;transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease,min-height .35s ease,padding .35s ease}.feature-card:hover{border-color:#d7dbff;box-shadow:0 22px 38px #1800ad26;min-height:560px;padding:34px 28px;transform:translateY(-10px) scale(1.015)}.feature-icon{background:linear-gradient(135deg,#ece9ff,#dcecff);border-radius:18px;box-shadow:inset 0 1px 0 #ffffffe6,0 8px 18px #1800ad29;color:#1800ad;color:var(--brand-blue);display:grid;height:72px;margin:0 auto 18px;place-items:center;width:72px}.feature-icon svg{stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;height:36px;width:36px}.feature-card h3{color:#171412;color:var(--ink);font-size:22px;font-weight:800;line-height:1.2;margin-bottom:12px}.feature-card p{color:#8a7561;color:var(--muted-brown);font-size:16px;line-height:1.6}.feature-hover-details{max-height:0;opacity:0;overflow:hidden;transform:translateY(8px);transition:max-height .45s ease,opacity .3s ease,transform .3s ease;width:100%}.feature-card:focus-within .feature-hover-details,.feature-card:hover .feature-hover-details{max-height:470px;opacity:1;transform:translateY(0)}.feature-hover-image{border-radius:10px;display:block;margin:8px auto 14px;max-height:190px;object-fit:contain;width:min(300px,95%)}.feature-extra{margin-top:8px}.feature-extra-item{color:#6f6255;font-size:14px;line-height:1.45;margin-top:8px}.about-section{align-items:center;background:#0000;display:flex;flex:1 1;padding:clamp(54px,8vh,86px) clamp(18px,4vw,30px) clamp(24px,4vh,40px);width:100%}.about-section .container{display:flex;flex-direction:column;justify-content:center}.about-page{background:linear-gradient(135deg,#f5fbff,#fff);justify-content:stretch}.about-text{color:#8a7561;color:var(--muted-brown);font-size:20px;line-height:1.8;margin:0 auto;max-width:860px;text-align:center}.footer{background:#121011;color:#fff;margin-top:0;padding:clamp(38px,6vh,60px) clamp(18px,4vw,30px) clamp(24px,4vh,30px);width:100%}.footer-content{grid-gap:40px;display:grid;gap:40px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:0 auto;max-width:1200px}.footer-section h3{color:#fff;font-size:24px;margin-bottom:15px}.footer-section h4{color:#fff;font-size:16px;margin-bottom:15px}.footer-section p{color:#bfb6af;font-size:16px;margin-bottom:8px}.footer-section a,.footer-section button{background:none;border:none;color:#c9c1bb;cursor:pointer;display:block;font-family:Plus Jakarta Sans,sans-serif;font-size:16px;margin-bottom:8px;padding:0;text-align:left;text-decoration:none;transition:color .2s}.footer-section a:hover,.footer-section button:hover{color:#fff}@media (max-width:768px){.navbar{padding:12px 20px}.navbar-logo{font-size:20px}.navbar-links{gap:15px}.login-btn,.navbar-links a{font-size:14px}.login-btn{padding:10px 20px!important}.landing-container .hero-section{min-height:100dvh;padding:42px 20px}.hero-title{font-size:42px}.hero-subtitle{font-size:22px}.section-title{background:linear-gradient(#e8e5e1,#e8e5e1) 0 /22% 1px no-repeat,linear-gradient(#e8e5e1,#e8e5e1) 100% /22% 1px no-repeat;margin-bottom:44px;padding:0 10px}.hero-description{font-size:18px;padding:0 8px}.craft-brush,.craft-button,.craft-palette,.craft-paper{opacity:.65;transform:scale(.84)}.craft-crayon,.craft-origami,.craft-paint-drop,.craft-spark,.craft-tape{opacity:.64;transform:scale(.84)}.craft-thread,.craft-thread-alt{opacity:.38}.craft-online{height:76px;opacity:.92;width:76px}.craft-online-icon{height:100%;width:100%}.cta-button{font-size:20px;padding:14px 34px}.features-grid{gap:20px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.feature-card h3{font-size:21px}.feature-card{min-height:220px;padding:26px 22px}.about-text{font-size:18px}.footer-content{gap:30px;grid-template-columns:1fr}}.login-container{align-items:center;background:linear-gradient(135deg,#f5f7fa,#fff);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-wrapper{grid-gap:60px;align-items:center;animation:fadeIn .6s ease-in-out;display:grid;gap:60px;grid-template-columns:1fr 1fr;max-width:1000px;width:100%}.login-left{justify-content:center;padding:20px}.login-branding,.login-left{align-items:center;display:flex;flex-direction:column}.login-branding{color:#2f3036;text-align:center}.brand-home-link{align-items:center;background:#0000;border:none;cursor:pointer;display:flex;flex-direction:column;font-family:Plus Jakarta Sans,sans-serif;padding:0}.brand-home-link:focus-visible{border-radius:12px;outline:2px solid #1800ad;outline-offset:6px}.brand-logo{align-items:center;background:#fff;border-radius:20px;box-shadow:0 8px 20px #1800ad1a;display:flex;height:120px;justify-content:center;margin:0 0 20px;padding:15px;width:120px}.brand-logo img{height:100%;object-fit:contain;width:100%}.brand-title{color:#1800ad;font-size:48px;font-weight:700;margin-bottom:10px}.brand-subtitle{color:#8a7561;font-size:22px;font-weight:600;margin-bottom:20px}.brand-description{color:#6b7280;font-size:18px;line-height:1.6}.login-right{display:flex;justify-content:center}.login-card{background:#fff;border-radius:20px;box-shadow:0 10px 40px #0000001a;max-width:400px;padding:40px;width:100%}.login-title{color:#171412;font-size:28px;font-weight:700;margin-bottom:8px}.login-subtitle{color:#8a7561;font-size:16px;margin-bottom:30px}.login-form{display:flex;flex-direction:column;gap:20px}.form-group input{padding:12px 16px;transition:border-color .3s}.password-field{position:relative}.password-field input{padding-right:72px;width:100%}.toggle-password{background:none;border:none;border-radius:8px;color:#1800ad;cursor:pointer;font-family:Plus Jakarta Sans,sans-serif;font-size:14px;font-weight:600;padding:6px 8px;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.toggle-password:hover{background:#f5f7ff}.login-button{background:#1800ad;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:10px;padding:14px;transition:all .3s}.login-button:hover{background:#0d004f;box-shadow:0 8px 20px #1800ad4d;transform:translateY(-2px)}.login-button:active{transform:translateY(0)}.login-footer{margin-top:20px;text-align:center}.forgot-link{background:none;border:none;color:#1800ad;cursor:pointer;font-family:Plus Jakarta Sans,sans-serif;font-size:16px;font-weight:500;text-decoration:none;transition:color .2s}.forgot-link:hover{color:#0d004f;text-decoration:underline}@media (max-width:768px){.login-wrapper{gap:30px;grid-template-columns:1fr}.login-left{text-align:center}.brand-title{font-size:36px}.login-card{padding:30px 20px}}.forgot-container{align-items:center;background:linear-gradient(135deg,#f5f7fa,#fff);display:flex;justify-content:center;min-height:100vh;padding:20px}.forgot-wrapper{grid-gap:60px;align-items:center;animation:fadeIn .6s ease-in-out;display:grid;gap:60px;grid-template-columns:1fr 1fr;max-width:1000px;width:100%}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.forgot-header,.forgot-left{text-align:center}.logo-container{align-items:center;background:#fff;border-radius:20px;box-shadow:0 10px 30px #0000001a;display:flex;height:150px;justify-content:center;margin:0 auto 40px;padding:20px;width:150px}.logo-container img{height:100%;object-fit:contain;width:100%}.forgot-header h1{color:#1800ad;font-family:Plus Jakarta Sans,sans-serif;font-size:42px;font-weight:700;margin-bottom:15px}.forgot-header p{color:#8a7561;font-size:20px;font-weight:500}.forgot-form-container{background:#fff;border-radius:16px;box-shadow:0 20px 60px #1800ad14;padding:50px}.form-title{color:#171412;font-size:28px;font-weight:700;margin-bottom:12px}.form-subtitle{color:#8a7561;font-size:16px;line-height:1.6;margin-bottom:30px}.forgot-form{display:flex;flex-direction:column;gap:20px}.form-group label{font-size:16px;font-weight:600}.form-group input{border:2px solid #e5e7eb;border-radius:10px;font-family:Plus Jakarta Sans,sans-serif;font-size:16px;padding:14px 16px;transition:all .3s}.form-group input:focus{background:#fafaf9;border-color:#1800ad;outline:none}.form-group.error input{border-color:#ef4444}.error-message{color:#ef4444;font-size:14px}.submit-button{background:#1800ad;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:10px;padding:14px;transition:all .3s}.submit-button:hover{background:#0d004f;box-shadow:0 8px 20px #1800ad4d;transform:translateY(-2px)}.submit-button:active{transform:translateY(0)}.back-to-login{margin-top:20px;text-align:center}.back-link{background:none;border:none;color:#1800ad;cursor:pointer;font-family:Plus Jakarta Sans,sans-serif;font-size:16px;font-weight:500;transition:color .2s}.back-link:hover{color:#0d004f}.success-message{padding:20px;text-align:center}.success-icon{align-items:center;animation:scaleIn .5s ease-in-out;background:#10b981;border-radius:50%;color:#fff;display:flex;font-size:48px;height:80px;justify-content:center;margin:0 auto 30px;width:80px}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.success-message h2{color:#171412;font-size:24px;margin-bottom:15px}.success-message p{color:#8a7561;font-size:16px;margin-bottom:10px}.redirect-text{color:#ada59e;font-size:14px;font-style:italic;margin-top:20px}@media (max-width:768px){.forgot-wrapper{gap:30px;grid-template-columns:1fr}.forgot-header h1{font-size:32px}.forgot-form-container{padding:30px 20px}}.navbar{border-right:1px solid #e8ebf7;bottom:0;left:0;padding:18px 14px;position:fixed;top:0;width:120px;z-index:1000}.navbar,.navbar-logo{display:flex;flex-direction:column}.navbar-logo{align-items:center;gap:8px;justify-content:center;margin-bottom:20px;min-height:82px;padding-bottom:16px;width:100%}.logo-image{display:block;height:auto;max-height:62px;object-fit:contain;width:74px}.navbar-content{align-items:center;display:flex;flex-direction:column;gap:4px;height:100%;overflow-y:auto;scrollbar-width:none}.navbar-content::-webkit-scrollbar{display:none}.nav-item{align-items:center;background:#0000;border:1px solid #0000;border-radius:14px;cursor:pointer;display:flex;flex-direction:column;gap:6px;justify-content:center;min-height:76px;padding:11px 8px;transition:transform .16s ease,background .2s ease,box-shadow .2s ease,border-color .2s ease;width:100%}.nav-icon{height:26px;width:26px}.nav-icon svg{fill:none;height:100%;transition:stroke .2s ease,transform .2s ease;width:100%}.nav-label{font-size:13px;line-height:1.1;text-align:center;transition:color .2s ease}.logout-item{margin-top:auto}.teacher-nav{background:linear-gradient(180deg,#fffffffa,#f4f7fffa),#fff;box-shadow:8px 0 24px #273c8c14}.teacher-nav .navbar-logo{background:#fff;border:1px solid #dce3ff;border-radius:14px;box-shadow:0 6px 14px #2a42881a;padding:10px 8px}.teacher-nav .nav-item:hover{background:#eff4ff;border-color:#d4ddff;transform:translateY(-2px)}.teacher-nav .nav-item.active{background:linear-gradient(135deg,#3f6bff,#2e54dd);border-color:#0000;box-shadow:0 12px 22px #3056da4d}.teacher-nav .nav-icon svg{stroke:#43608d}.teacher-nav .nav-item.active .nav-icon svg,.teacher-nav .nav-item:hover .nav-icon svg{stroke:#2b53dd}.teacher-nav .nav-item.active .nav-icon svg{stroke:#fff}.teacher-nav .nav-label{color:#3f587f;font-weight:700}.teacher-nav .nav-item.active .nav-label,.teacher-nav .nav-item:hover .nav-label{color:#274fcf}.teacher-nav .nav-item.active .nav-label{color:#fff}.student-nav{background:linear-gradient(180deg,#fffffffa,#f4f7fffa),#fff;box-shadow:8px 0 24px #273c8c14}.student-nav .navbar-logo{background:#fff;border:1px solid #dce3ff;border-radius:14px;box-shadow:0 6px 14px #2a42881a;padding:10px 8px}.student-nav .logo-image{max-height:66px;width:84px}.student-nav .nav-item{position:relative}.student-nav .nav-item:hover{background:#eff4ff;border-color:#d4ddff;transform:translateY(-2px)}.student-nav .nav-item.active{background:linear-gradient(135deg,#3f6bff,#2e54dd);border-color:#0000;box-shadow:0 12px 22px #3056da4d}.student-nav .nav-icon svg{stroke:#43608d}.student-nav .nav-item:hover .nav-icon svg{stroke:#2b53dd}.student-nav .nav-item.active .nav-icon svg{stroke:#fff}.student-nav .nav-label{color:#3f587f;font-weight:700}.student-nav .nav-item:hover .nav-label{color:#274fcf}.student-nav .nav-item.active .nav-label{color:#fff}@media (max-width:768px){.navbar{border-right:none;border-top:1px solid #dce3ff;bottom:0;flex-direction:row;height:84px;left:0;padding:8px 10px max(8px,env(safe-area-inset-bottom));right:0;top:auto;width:auto}.navbar-logo,.navbar:before{display:none}.navbar-content{flex-direction:row;gap:8px;justify-content:space-around;width:100%}.teacher-nav .navbar-content{-webkit-overflow-scrolling:touch;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;padding:0 4px;scrollbar-width:none}.teacher-nav .navbar-content::-webkit-scrollbar{display:none}.nav-item{border-radius:12px;flex:1 1;gap:4px;max-width:88px;min-height:58px;padding:8px 4px}.nav-icon{height:22px;width:22px}.nav-label{font-size:11px}.logout-item{margin-top:0}.teacher-nav .nav-item{flex:0 0 auto;max-width:74px;min-width:74px}.teacher-nav .nav-label{font-size:10px}}.settings-page-container{background:radial-gradient(circle at 8% 10%,#ffbc6e38 0,#ffbc6e00 230px),radial-gradient(circle at 90% 8%,#6a92ff38 0,#6a92ff00 230px),#f2f6ff;min-height:100vh;overflow-x:hidden;overflow-y:auto;padding-left:90px}.settings-page{display:flex;flex-direction:column;gap:16px;margin:0 auto;max-width:1020px;padding:24px clamp(14px,3.4vw,30px) 110px}.settings-page-title{color:#13213f;font-size:clamp(30px,3.6vw,42px);font-weight:900;margin:0 0 12px}.settings-panel{display:flex;flex-direction:column;gap:14px}.settings-card{background:#fff;border:1px solid #d8e4ff;border-radius:18px;box-shadow:0 12px 24px #2c448c1a;padding:16px}.settings-status{border:1px solid #d8e4ff;border-radius:12px;font-weight:700;padding:12px 14px}.settings-status.success{background:#e8f9ee;border-color:#bbe7cc;color:#16774e}.settings-status.warning{background:#fff7dd;border-color:#ffe2a3;color:#8a5a00}.settings-status.error{background:#fff0f0;border-color:#ffd0d0;color:#a31919}.card-title{color:#13213f;font-weight:900;margin:0 0 10px}.settings-row{align-items:center;border-bottom:1px solid #edf1ff;display:flex;gap:12px;justify-content:space-between;padding:10px 0}.settings-row:last-child{border-bottom:none}.settings-label{color:#13213f;font-weight:800;margin:0}.settings-help{color:#5f739b;font-size:14px;font-weight:600;margin:2px 0 0}.settings-meta{color:#3156e0;font-size:13px;font-weight:800;margin:6px 0 0}.toggle{background:#eef3ff;border:1px solid #cad9ff;border-radius:20px;cursor:pointer;height:30px;padding:3px;position:relative;transition:all .2s ease;width:54px}.toggle:disabled{cursor:not-allowed;opacity:.55}.toggle-handle{background:#fff;border-radius:50%;box-shadow:0 2px 6px #0000001f;display:block;height:22px;transition:transform .2s ease;width:22px}.toggle.active{background:#3156e0;border-color:#3156e0}.toggle.active .toggle-handle{transform:translateX(24px)}.settings-select{background:#fff;border:1px solid #cad9ff;border-radius:10px;color:#13213f;font-family:Nunito,Plus Jakarta Sans,sans-serif;font-weight:700;min-width:150px;padding:10px 12px}.select-row{align-items:center}.settings-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-start}.settings-button{background:linear-gradient(135deg,#3f6bff,#2e54dd);border:none;border-radius:12px;color:#fff;cursor:pointer;font-family:Nunito,Plus Jakarta Sans,sans-serif;font-size:16px;font-weight:800;padding:12px 24px;transition:all .25s ease}.settings-button:hover{box-shadow:0 10px 20px #2d4ec94d;transform:translateY(-1px)}.settings-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.55;transform:none}.settings-button.secondary{background:#edf2ff;border:1px solid #cad9ff;color:#3156e0}.settings-button.secondary:hover:not(:disabled){background:linear-gradient(135deg,#3f6bff,#2e54dd);color:#fff}.settings-button.danger{background:linear-gradient(135deg,#b53737,#902424)}.settings-button.danger:hover:not(:disabled){background:linear-gradient(135deg,#9f2929,#7e1f1f)}.settings-button:active{transform:translateY(0)}@media (max-width:768px){.settings-page-container{padding-bottom:94px;padding-left:0}.settings-page{padding:16px 14px 84px}.settings-row{align-items:flex-start;flex-direction:column}.settings-select{width:100%}}.header{align-items:center;border-bottom:1px solid #f3f5ff;display:flex;justify-content:flex-end;min-height:78px;padding:14px 28px;position:relative;width:100%}.student-header{background:radial-gradient(circle at 8% 25%,#ffb86c38 0,#ffb86c00 180px),radial-gradient(circle at 90% 18%,#608aff33 0,#608aff00 200px),#fff}.teacher-header{background:radial-gradient(circle at 8% 25%,#ffb86c33 0,#ffb86c00 170px),radial-gradient(circle at 90% 18%,#608aff2e 0,#608aff00 190px),#fff}.notification-icon{align-items:center;border:none;border-radius:14px;cursor:pointer;display:flex;height:42px;justify-content:center;padding:0;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;width:42px}.student-header .notification-icon{background:#eef2ff;box-shadow:0 8px 16px #4660b624}.student-header .notification-icon:hover{background:#dde6ff;box-shadow:0 12px 20px #365adc38;transform:translateY(-1px)}.teacher-header .notification-icon{background:#eef2ff;box-shadow:0 8px 16px #4660b624}.teacher-header .notification-icon:hover{background:#dde6ff;box-shadow:0 12px 20px #365adc38;transform:translateY(-1px)}.notification-icon.is-disabled{cursor:not-allowed;opacity:.4}.notification-icon.is-disabled:hover{box-shadow:none;transform:none}.notification-icon:active{transform:scale(.97)}.notification-icon svg{height:24px;width:24px}.student-header .notification-icon svg,.teacher-header .notification-icon svg{fill:#2546ca}@media (max-width:768px){.header{min-height:74px;padding:12px 16px}}.profile-section{align-items:center;background:#fff;border:1px solid #d9e4ff;border-radius:22px;box-shadow:0 14px 34px #334ea51f;display:flex;flex-direction:column;gap:10px;padding:24px 20px}.profile-image{border-radius:50%;box-shadow:0 10px 20px #3056d842;height:92px;margin-bottom:8px;overflow:hidden;width:92px}.profile-image img{height:100%;object-fit:cover;width:100%}.profile-placeholder{align-items:center;background:linear-gradient(135deg,#3a64f2,#6f86ff);color:#fff;display:flex;font-size:40px;font-weight:900;height:100%;justify-content:center;text-transform:uppercase;width:100%}.profile-info{text-align:center}.profile-greeting{color:#122244;font-size:34px;font-weight:900;line-height:1.1;margin-bottom:4px}.profile-grade{color:#61749e;font-size:16px;line-height:1.4}.profile-stats{gap:10px;margin-top:4px}.profile-stat{align-items:center;border:1px solid #0000;border-radius:14px;display:flex;flex-direction:column;gap:2px;min-width:102px;padding:11px 22px}.profile-stat--completed{background:#ebfdf4;border-color:#9fe7c3}.profile-stat--pending{background:#fff8ea;border-color:#ffd89e}.profile-stat__count{font-size:27px;font-weight:900;line-height:1.1}.profile-stat--completed .profile-stat__count{color:#15945f}.profile-stat--pending .profile-stat__count{color:#d17a12}.profile-stat__label{color:#6f6080;font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase}@media (min-width:769px){.profile-section{align-items:center;flex-direction:row;gap:22px;padding:28px 24px;text-align:left}.profile-image{flex-shrink:0;height:102px;margin-bottom:0;width:102px}.profile-info{flex:1 1;text-align:left}.profile-greeting{font-size:clamp(28px,2.8vw,44px)}.profile-stats{flex-shrink:0;margin-top:0}}@media (max-width:768px){.profile-greeting{font-size:clamp(28px,7vw,36px)}}.artworks-section{background:#fff;border:1px solid #dbe6ff;border-radius:22px;box-shadow:0 14px 34px #334ea51c;overflow:hidden;padding:20px 0 24px;width:100%}.artworks-section__title{border-bottom:2px dashed #e2e9ff;color:#13213f;font-size:28px;font-weight:900;line-height:1.2;margin-bottom:22px;padding:0 24px 18px}.carousel-wrapper{width:100%}.carousel-track{gap:12px;overflow:hidden;padding:4px 0 8px;position:relative;width:100%}.carousel-arrow,.carousel-track{align-items:center;display:flex;justify-content:center}.carousel-arrow{background:#fff;border:1px solid #cfe0ff;border-radius:50%;box-shadow:0 8px 16px #293f8829;cursor:pointer;height:38px;position:absolute;top:50%;transform:translateY(-50%);transition:background .2s ease,box-shadow .2s ease,transform .15s ease;width:38px;z-index:10}.carousel-arrow:hover{background:#3156e0;box-shadow:0 10px 20px #2c4ecb5c;transform:translateY(-50%) scale(1.07)}.carousel-arrow:hover svg{fill:#fff}.carousel-arrow svg{fill:#2a4178;display:block;height:18px;width:18px}.carousel-arrow--left{left:12px}.carousel-arrow--right{right:12px}.carousel-card{-webkit-appearance:none;appearance:none;background:#f8fbff;border:1px solid #d6e2ff;border-radius:16px;cursor:pointer;flex-shrink:0;overflow:hidden;padding:0;position:relative;transition:opacity .3s ease,box-shadow .3s ease,transform .3s ease}.carousel-card--center{box-shadow:0 14px 30px #233a8438;height:230px;width:56%;z-index:2}.carousel-card--center:hover{box-shadow:0 18px 36px #233a8442;transform:translateY(-2px)}.carousel-card--left,.carousel-card--right{height:172px;opacity:.52;width:19%;z-index:1}.carousel-card--left:hover,.carousel-card--right:hover{opacity:.84}.carousel-card__media{background:#edf2ff;height:100%;width:100%}.carousel-card__img{display:block;height:100%;object-fit:cover;width:100%}.carousel-card__img--snapshot{filter:saturate(1.06);object-fit:contain;padding:10px}.carousel-card__placeholder{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.carousel-card__placeholder.color-1{background:linear-gradient(135deg,#ffcde1,#ffaecf)}.carousel-card__placeholder.color-2{background:linear-gradient(135deg,#c8e7ff,#9fcdff)}.carousel-card__placeholder.color-3{background:linear-gradient(135deg,#d8f7df,#a9edbf)}.carousel-card__placeholder.color-4{background:linear-gradient(135deg,#ffe9b9,#ffd282)}.carousel-card__placeholder svg{fill:#ffffffad;height:36px;width:36px}.carousel-card__overlay{background:linear-gradient(0deg,#0d1838db 0,#0d183859 66%,#0000);bottom:0;left:0;padding:34px 14px 14px;position:absolute;right:0}.carousel-card__title{color:#fff;display:block;font-size:16px;font-weight:800;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.carousel-dots{align-items:center;display:flex;gap:8px;justify-content:center;margin-top:18px;padding:0 20px}.carousel-dot{-webkit-appearance:none;appearance:none;background:#c9d3ef;border:none;border-radius:50%;cursor:pointer;height:9px;padding:0;transition:width .3s ease,border-radius .3s ease,background .3s ease;width:9px}.carousel-dot--active{background:#3156e0;border-radius:5px;width:24px}@media (max-width:768px){.artworks-section{border-radius:18px;padding-bottom:18px}.artworks-section__title{font-size:22px;margin-bottom:16px;padding:0 16px 14px}.carousel-card--center{height:188px;width:62%}.carousel-card--left,.carousel-card--right{height:144px;width:16%}.carousel-card__title{font-size:13px}.carousel-arrow{height:30px;width:30px}.carousel-arrow svg{height:15px;width:15px}}.activity-card{background:linear-gradient(135deg,#f7f9ff,#fefeff);border:1px solid #d6e3ff;border-radius:16px;cursor:pointer;display:flex;gap:16px;justify-content:space-between;padding:16px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.activity-card:hover{border-color:#8ea7f5;box-shadow:0 12px 24px #3957ae2b;transform:translateY(-2px)}.activity-card.urgent{background:linear-gradient(135deg,#fff8e7,#fff3d5);border-color:#ffd488;box-shadow:0 8px 20px #e39a0d33}.activity-card.urgent:hover{border-color:#f1ab2e;box-shadow:0 12px 24px #d28c084d}.activity-info{display:flex;flex:1 1;flex-direction:column;gap:7px}.activity-label{align-self:flex-start;background:#e9efff;border-radius:999px;color:#3357cb;display:inline-flex;font-size:12px;font-weight:800;letter-spacing:.4px;padding:4px 10px;text-transform:uppercase}.activity-title{font-size:20px;line-height:1.2}.activity-description{font-size:15px;line-height:1.45}.activity-date{background:#edf2ff;border-radius:999px;color:#2a428f;display:inline-block;font-size:13px;font-weight:700;margin-top:6px;padding:5px 10px}.activity-card.urgent .activity-date{background:#ffdba6;color:#7f4f09}.activity-thumbnail{background:#f6f8ff;border:1px solid #dbe6ff;flex:0 0 124px;height:92px}.activity-thumbnail img{height:100%;object-fit:cover;width:100%}.activity-placeholder{align-items:center;border-radius:10px;display:flex;height:100%;justify-content:center;width:100%}.activity-model-preview{color:#1d2a44;flex-direction:column;gap:4px;padding:8px;text-align:center}.activity-model-preview.mask{background:linear-gradient(135deg,#ffe6f0,#f3ebff)}.activity-model-preview.drink{background:linear-gradient(135deg,#e2f6ff,#ebf9ef)}.activity-model-preview.creature{background:linear-gradient(135deg,#fff2de,#ffe6f1)}.activity-model-preview.default{background:linear-gradient(135deg,#ecf1ff,#f8ecff)}.activity-model-emoji{filter:drop-shadow(0 4px 8px rgba(0,0,0,.12));font-size:30px;line-height:1}.activity-model-label{color:#4e5d84;font-size:10px;font-weight:800;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-object-icons{align-items:center;display:flex;font-size:11px;gap:3px;justify-content:center}@media (max-width:768px){.activity-card{align-items:flex-start;flex-direction:column-reverse;padding:14px}.activity-thumbnail{flex:none;height:132px;width:100%}.activity-title{font-size:18px}}.student-shell{--student-bg:#f2f6ff;--student-surface:#fff;--student-surface-soft:#f8faff;--student-border:#dbe5ff;--student-primary:#3156e0;--student-primary-strong:#223fb6;--student-text:#13213f;--student-muted:#60739b;--student-shadow:0 14px 34px #3049a31f;font-family:Nunito,Plus Jakarta Sans,sans-serif}.homepage-container{background:radial-gradient(circle at 2% 15%,#ffb35c3d 0,#ffb35c00 220px),radial-gradient(circle at 92% 8%,#628bff33 0,#628bff00 230px),radial-gradient(circle at 70% 92%,#79d7c233 0,#79d7c200 260px),var(--student-bg);min-height:100vh;padding-left:90px}.homepage-wrapper{display:flex;flex-direction:column;margin:0 auto;max-width:1400px;min-height:100vh}.main-content{flex:1 1;overflow-y:auto;padding:22px 22px 30px}.content-area{display:flex;flex-direction:column;gap:18px;margin:0 auto;max-width:1120px;width:100%}.activities-section{background:var(--student-surface);border:1px solid var(--student-border);border-radius:22px;box-shadow:var(--student-shadow);padding:22px;width:100%}.activities-section .section-title{border-bottom:2px dashed #e2e9ff;color:var(--student-text);font-size:26px;font-weight:900;letter-spacing:.2px;line-height:1.1;margin-bottom:16px;padding:0 0 16px}.activities-container{display:flex;flex-direction:column;gap:12px}.activities-toggle-button{background:linear-gradient(135deg,#eff4ff,#f7f9ff);border:1px solid #bfd0ff;border-radius:14px;color:var(--student-primary);cursor:pointer;font-family:inherit;font-size:15px;font-weight:800;margin-top:14px;padding:12px 16px;transition:all .2s ease;width:100%}.activities-toggle-button:hover{background:linear-gradient(135deg,#3156e0,#2a47be);box-shadow:0 10px 20px #2d50ca42;color:#fff;transform:translateY(-1px)}.activities-empty{align-items:center;display:flex;flex-direction:column;gap:6px;padding:44px 24px;text-align:center}.activities-empty__icon{font-size:52px;line-height:1;margin-bottom:8px}.activities-empty__title{color:var(--student-text);font-size:21px;font-weight:900;margin:0}.activities-empty__sub{color:var(--student-muted);font-size:15px;margin:0}@media (max-width:768px){.homepage-container{padding-left:0}.main-content{padding:14px 14px 96px}.content-area{gap:14px;max-width:100%}.activities-section{border-radius:18px;padding:16px}.activities-section .section-title{font-size:22px;padding-bottom:14px}}.activities-page-container{background:radial-gradient(circle at 8% 8%,#ffbe753d 0,#ffbe7500 230px),radial-gradient(circle at 90% 6%,#5d8fff38 0,#5d8fff00 240px),#f2f6ff;min-height:100vh;padding-left:90px}.activities-page{display:flex;flex-direction:column;gap:16px;margin:0 auto;max-width:1120px;padding:24px clamp(14px,3vw,28px) 36px;width:100%}.page-title{color:#13213f;font-size:clamp(30px,3.5vw,42px);font-weight:900;margin:0}.filter-section{background:#fff;border:1px solid #d8e4ff;border-radius:18px;box-shadow:0 12px 26px #2f49991f;padding:10px;width:100%}.filter-tabs{gap:10px;width:100%}.filter-tab{background:#f4f8ff;border:1px solid #d6e2ff;border-radius:12px;color:#4f6491;flex:1 1;font-size:15px;font-weight:800;padding:12px 14px}.filter-tab:hover{background:#e8efff;color:#2f4ebf}.filter-tab.active{background:linear-gradient(135deg,#3f6bff,#2e54dd);border-color:#0000;box-shadow:0 10px 20px #2a4ed047}.activities-list{display:flex;flex-direction:column;gap:14px;width:100%}.activities-list .activity-item{align-items:center;background:#fff;border:1px solid #d8e4ff;border-radius:16px;box-shadow:0 10px 24px #2c448c1c;cursor:pointer;display:flex;gap:16px;padding:16px;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;width:100%}.activities-list .activity-item:hover{border-color:#a9bdf4;box-shadow:0 14px 28px #2c448c2e;transform:translateY(-2px)}.activities-list .activity-item.urgent{border-left:4px solid #f0ad3c}.activities-list .activity-item.past-due{border-left:4px solid #f04e4e}.activities-list .activity-item.completed{opacity:.9}.activity-thumbnail{align-items:center;border-radius:12px;box-shadow:inset 0 0 0 1px #ffffff59;display:flex;flex:0 0 120px;height:90px;justify-content:center;overflow:hidden}.activity-thumbnail svg{fill:#fff;height:48px;opacity:.9;width:48px}.activity-details{display:flex;flex:1 1;flex-direction:column;gap:6px}.activity-title{color:#142142;font-size:21px;font-weight:900;margin:0}.activity-description{color:#60739b;font-size:16px;margin:0}.activities-list .activity-completed,.activities-list .activity-due-date,.activity-completed-badge{align-self:flex-start;border:1px solid #0000;border-radius:999px;font-size:13px;font-weight:800;padding:7px 12px}.activities-list .activity-due-date{background:#fff7e9;border-color:#ffdca2;color:#95601f}.activities-list .activity-due-date.overdue,.activities-list .activity-item.past-due .activity-due-date{background:#ffe8e8;border-color:#ffc6c6;color:#9f2a2a}.activities-list .activity-completed,.activity-completed-badge{background:#e9faef;border-color:#b2e8cb;color:#1b8856}.activity-subject{color:#4560a3;font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase}.no-activities{align-items:center;background:#fff;border:1px solid #d8e4ff;border-radius:16px;box-shadow:0 10px 24px #2c448c1a;color:#5e739e;display:flex;flex-direction:column;font-weight:800;gap:8px;padding:48px 24px;text-align:center}.no-activities .empty-icon{font-size:46px}.no-activities .empty-subtext{color:#7c90b7;font-size:14px;font-weight:700}.loading-state{color:#5b709b;gap:14px}.loading-spinner{height:38px;width:38px}.error-banner{background:#ffe9e9;border:1px solid #ffc5c5;border-radius:12px;color:#9f2a2a;font-weight:700;padding:12px 16px}@media (max-width:768px){.activities-page-container{padding-left:0}.activities-page{gap:14px;padding:16px 14px 98px}.filter-tabs{flex-direction:column}.activities-list .activity-item{align-items:flex-start;flex-direction:column}.activity-thumbnail{flex:none;height:128px;width:100%}.activities-header{align-items:flex-start;flex-direction:column;gap:8px}}.activity-details-container{background:#fff;display:flex;flex-direction:column;min-height:100vh;padding-left:90px}.student-activity-details{background:radial-gradient(circle at 8% 11%,#ffbf7a38 0,#ffbf7a00 220px),radial-gradient(circle at 90% 9%,#6c94ff33 0,#6c94ff00 230px),#f2f6ff}.activity-details-page{display:flex;flex:1 1;flex-direction:column;gap:14px;margin:0 auto;max-width:980px;padding:24px clamp(14px,3.4vw,30px) 40px;width:100%}.activity-not-found{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:16px;justify-content:center}.activity-not-found button{background:#3156e0;border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:700;padding:12px 24px}.activity-details-header{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:4px 2px 0}.back-button{background:#eef3ff;border:1px solid #d1defd;border-radius:12px;cursor:pointer;display:grid;height:48px;place-items:center;transition:transform .15s ease,box-shadow .15s ease;width:48px}.back-button:hover{box-shadow:0 8px 16px #2b489f2e;transform:translateY(-1px)}.back-icon{border-bottom:3px solid #1d2f5e;border-left:3px solid #1d2f5e;height:22px;margin-left:2px;transform:rotate(45deg);width:22px}.activity-meta{display:flex;flex:1 1;flex-direction:column;gap:4px}.activity-name{color:#13213f;font-size:clamp(24px,3vw,34px);font-weight:900;margin:0}.activity-due{color:#5f739b;font-size:14px;font-weight:700;margin:0}.pill-button{background:#edf2ff;border:none;border-radius:999px;color:#2448c7;cursor:pointer;font-size:14px;font-weight:800;height:40px;min-width:92px;padding:0 16px}.hero-section{border:1px solid #d5e3ff;border-radius:18px;box-shadow:0 12px 26px #2c448c24;min-height:226px;overflow:hidden;position:relative;width:100%}.hero-image{align-items:center;background:linear-gradient(135deg,#ffcde0,#a7d6ff);display:flex;inset:0;justify-content:center;overflow:hidden;position:absolute}.hero-image:before{background:linear-gradient(0deg,#0f21488a,#0f21481f 52%,#0f214814);content:"";inset:0;position:absolute}.hero-image:after{content:"🎨";font-size:84px;position:relative;z-index:1}.hero-text{bottom:16px;color:#fff;left:16px;position:absolute}.hero-text h2{font-size:30px;font-weight:900;margin:0}.section{background:#fff;border:1px solid #d8e4ff;border-radius:16px;box-shadow:0 10px 24px #2c448c1a;display:flex;flex-direction:column;gap:8px}.section.description{color:#5f739b;font-size:16px;font-weight:600;line-height:1.5;padding:14px 16px}.section-title{color:#13213f;font-size:18px;font-weight:900;margin:0;padding:14px 16px 0}.material-list{display:flex;flex-direction:column;gap:8px;padding:0 16px 12px}.material-item{align-items:center;border-bottom:1px solid #eef2ff;gap:14px;padding:8px 0}.material-item:last-child{border-bottom:none}.material-name{color:#253c6d;font-size:15px;font-weight:700}.material-icon{align-items:center;background:linear-gradient(135deg,#e6efff,#d7e4ff);border-radius:10px;display:flex;flex-shrink:0;font-size:20px;height:40px;justify-content:center;width:40px}.material-item:first-child .material-icon{background:linear-gradient(135deg,#ffe8b9,#ffd899)}.material-item:first-child .material-icon:after{content:"📄"}.material-item:nth-child(2) .material-icon{background:linear-gradient(135deg,#d7efff,#b9ddf6)}.material-item:nth-child(2) .material-icon:after{content:"✂️"}.material-item:nth-child(3) .material-icon{background:linear-gradient(135deg,#ffd8e8,#ffc3dc)}.material-item:nth-child(3) .material-icon:after{content:"🖍️"}.material-item:nth-child(4) .material-icon{background:linear-gradient(135deg,#eadbff,#ddc5ff)}.material-item:nth-child(4) .material-icon:after{content:"🛠️"}.already-submitted{background:#f0f9f3;border:1px solid #bde6cb;border-radius:16px;padding:18px;text-align:center}.already-submitted h3{color:#21552a;margin:0 0 6px}.already-submitted p{color:#2e5d36;margin:4px 0}.review-result{background:#fff;border:1px solid #cfe2d1;border-radius:12px;margin-top:12px;padding:12px;text-align:left}.review-score{align-items:center;color:#174a22!important;display:flex;flex-wrap:wrap;font-weight:800;gap:8px}.activity-stars{align-items:center;display:inline-flex;gap:2px}.activity-star{color:#d9d2c7;font-size:18px}.activity-star.filled{color:#ffc43d;text-shadow:0 1px 0 #784b0033}.activity-star-count{color:#174a22;font-size:13px;font-weight:800;margin-left:6px}.review-feedback{color:#315a37!important;line-height:1.45}.progress-section{gap:8px;padding:12px 16px 14px}.progress-head{align-items:center;display:flex;justify-content:space-between}.progress-label{color:#13213f;font-size:16px;font-weight:800}.progress-bar{background:#e3eaff;border-radius:999px;height:9px;overflow:hidden;width:100%}.progress-fill{background:linear-gradient(90deg,#3156e0,#5a7dff);border-radius:999px;height:100%}.progress-foot{color:#61739a;font-size:13px;font-weight:700}.primary-button{align-self:center;background:linear-gradient(135deg,#3f6bff,#2f53d8);border:none;border-radius:999px;color:#fff;cursor:pointer;font-size:16px;font-weight:900;height:50px;margin:6px 0 14px;max-width:520px;transition:transform .15s ease,box-shadow .15s ease;width:100%}.primary-button:hover{box-shadow:0 10px 20px #2d4ec94d;transform:translateY(-1px)}@media (max-width:768px){.activity-details-container{padding-left:0}.activity-details-page{padding:16px 14px 96px}}@media (max-width:480px){.activity-name,.hero-text h2{font-size:24px}}.activity-hero .hero-block{grid-gap:20px;align-items:center;display:grid;gap:20px;grid-template-columns:120px 1fr}.activity-hero .hero-image{align-items:center;background:linear-gradient(135deg,#ffb6c1,#ff69b4);border-radius:16px;display:flex;font-size:48px;height:120px;justify-content:center;width:120px}.activity-hero .hero-content h2{color:#141217;font-size:24px;margin:0 0 8px}.activity-hero .hero-content p{color:#4b5563;line-height:1.6;margin:0}.overview-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,minmax(160px,1fr));margin-top:16px}.overview-card{background:#fdfcfb;border:1px solid #e6e0db;border-radius:12px;display:flex;flex-direction:column;gap:6px;padding:16px}.overview-label{color:#6b7280;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.overview-value{color:#111827;font-size:18px;font-weight:700}@media (max-width:960px){.overview-grid{grid-template-columns:repeat(2,minmax(160px,1fr))}.activity-hero .hero-block{grid-template-columns:1fr;text-align:center}.activity-hero .hero-image{margin:0 auto}}@media (max-width:640px){.overview-grid{grid-template-columns:1fr}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.gesture-hover{box-shadow:0 0 0 2px #60a5fae6,0 0 12px #3b82f699;transition:box-shadow .12s ease}.control-panel button.gesture-hover,.control-panel input.gesture-hover{outline:2px solid #60a5fae6;outline-offset:2px}.control-card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff14;border:1px solid #ffffff24;border-radius:14px;color:#fff;padding:12px}.control-button{appearance:none;-webkit-appearance:none;cursor:pointer;min-height:64px;text-align:left;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;width:100%}.control-button.active{background:#60a5fa2e;border-color:#60a5fa8c}.color-swatch{height:36px;width:36px}.color-swatch,.tool-button{border-radius:10px;cursor:pointer}.tool-button{align-items:center;background:#ffffffdb;border:1px solid #00000026;color:#111;display:inline-flex;font-size:12px;font-weight:600;gap:6px;padding:8px 10px}.tool-button.active{background:#dbeafef2;border-color:#0052ccd9}.tool-icon{display:block;height:16px;width:16px}.brush-size-button{align-items:center;background:#ffffffe6;border:1px solid #0003;border-radius:8px;color:#111;cursor:pointer;display:inline-flex;font-size:22px;font-weight:700;height:34px;justify-content:center;line-height:1;width:34px}.brush-size-value{background:#ffffffe0;border-radius:8px;color:#111;font-size:12px;font-weight:700;min-width:56px;padding:7px 10px;text-align:center}.gesture-slider{-webkit-appearance:none;appearance:none;background:#0000;height:24px;width:100%}.gesture-slider::-webkit-slider-runnable-track{background:#fff3;border-radius:999px;height:10px}.gesture-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#fffffff2;border:2px solid #0003;border-radius:50%;height:26px;margin-top:-8px;width:26px}.gesture-slider::-moz-range-track{background:#fff3;border-radius:999px;height:10px}.gesture-slider::-moz-range-thumb{background:#fffffff2;border:2px solid #0003;border-radius:50%;height:26px;width:26px}.ar-app-root.vr-ar:before{background:linear-gradient(90deg,#0000 0 49.85%,#ffffff80 49.85% 50.15%,#0000 50.15% 100%),radial-gradient(circle at 25% 50%,#0000 0 56%,#00000029 88%,#00000047 100%),radial-gradient(circle at 75% 50%,#0000 0 56%,#00000029 88%,#00000047 100%);content:"";inset:0;pointer-events:none;position:absolute;z-index:5}.vr-composite-canvas{height:100%;inset:0;pointer-events:none;position:absolute;width:100%;z-index:4}.ar-app-root.vr-ar>canvas:not(.vr-composite-canvas),.ar-app-root.vr-ar>video{opacity:0}.vr-lens-guide{border-left:1px solid #ffffff38;border-right:1px solid #ffffff38;inset:0;pointer-events:none;position:absolute;z-index:6}.control-panel.compact{scrollbar-width:none}.control-panel.compact::-webkit-scrollbar{display:none}.control-panel.compact .control-card{padding:6px!important}.control-panel.compact .control-label{font-size:10px!important;margin:4px 0 5px!important}.control-panel.compact .control-row{gap:5px!important;margin-bottom:6px!important}.control-panel.compact .tool-button{border-radius:9px;font-size:10px;gap:4px;min-height:30px;padding:6px 7px}.control-panel.compact .tool-icon{height:13px;width:13px}.control-panel.compact .color-swatch{border-radius:8px;height:28px;width:28px}.control-panel.compact .brush-control{gap:4px!important}.control-panel.compact .gesture-slider{height:18px}.control-panel.compact .gesture-slider::-webkit-slider-runnable-track{height:7px}.control-panel.compact .gesture-slider::-webkit-slider-thumb{height:20px;margin-top:-6px;width:20px}.control-panel.compact .brush-size-value{font-size:10px;padding:5px 7px}.control-panel.vr .control-card{align-items:center;background:#ffffffb8!important;border-radius:12px;display:flex;flex-wrap:wrap;gap:4px 5px;padding:5px 6px!important}.control-panel.vr .tool-button{border-radius:8px;font-size:10px;min-height:30px;padding:6px 7px}.control-panel.vr .tool-icon{height:12px;width:12px}.control-panel.vr .color-swatch{border-radius:7px;height:27px;width:27px}.control-panel.vr .control-label{margin:0 4px 0 0!important;white-space:nowrap;width:auto}.control-panel.vr .control-row{display:flex!important;flex-wrap:nowrap!important;margin:0 5px 0 0!important;max-width:100%;overflow-x:auto;scrollbar-width:none}.control-panel.vr .control-row::-webkit-scrollbar{display:none}.control-panel.vr .color-row{max-width:140px;overflow-x:auto;scrollbar-width:none}.control-panel.vr .color-row::-webkit-scrollbar{display:none}.control-panel.vr .brush-control{align-items:center;grid-template-columns:1fr auto;width:112px!important}.control-panel.vr .brush-size-value{white-space:nowrap}@media (max-width:700px){.control-panel.compact .tool-button span:last-child{max-width:52px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.ar-safety-page{align-items:center;background:radial-gradient(circle at 18% 18%,#ffe7bee6,#0000 34%),radial-gradient(circle at 82% 18%,#d8eefff2,#0000 32%),linear-gradient(135deg,#fff8ef,#f6fbff 48%,#f7f3ff);box-sizing:border-box;color:#111827;display:flex;justify-content:center;min-height:100vh;padding:24px}.ar-safety-card{background:#ffffffeb;border:1px solid #1800ad1f;border-radius:28px;box-shadow:0 28px 80px #1800ad24;padding:34px;text-align:left;width:min(680px,100%)}.ar-safety-icon{align-items:center;background:#fff3cd;border-radius:18px;box-shadow:inset 0 0 0 1px #85640424;color:#856404;display:flex;font-size:32px;font-weight:900;height:58px;justify-content:center;width:58px}.ar-safety-eyebrow{color:#1800ad;font-size:14px;font-weight:800;letter-spacing:.08em;margin:20px 0 6px;text-transform:uppercase}.ar-safety-title{color:#101014;font-size:clamp(32px,5vw,48px);font-weight:900;line-height:1.05;margin:0}.ar-safety-copy{color:#55483e;font-size:18px;line-height:1.6;margin:18px 0 0}.ar-safety-list{grid-gap:12px;display:grid;gap:12px;list-style:none;margin:22px 0 0;padding:0}.ar-safety-list li{background:#f7fafc;border:1px solid #e6edf5;border-radius:16px;color:#253041;font-size:16px;line-height:1.45;padding:14px 16px 14px 46px;position:relative}.ar-safety-list li:before{background:#e8f8ef;border-radius:999px;box-shadow:inset 0 0 0 3px #138a45;content:"";height:10px;left:22px;position:absolute;top:22px;width:10px}.ar-safety-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:28px}.ar-safety-button{border:1px solid #0000;border-radius:15px;cursor:pointer;font:inherit;font-size:15px;font-weight:800;min-height:48px;padding:0 18px}.ar-safety-button--ghost{background:#fff;border-color:#d9e5f2;color:#253041}.ar-safety-button--primary{background:#1800ad;box-shadow:0 16px 34px #1800ad38;color:#fff}.ar-safety-button:hover{filter:brightness(.98)}.ar-safety-button:focus-visible{box-shadow:0 0 0 4px #97d9ffa6;outline:none}@media (max-width:640px){.ar-safety-page{align-items:stretch;padding:16px}.ar-safety-card{border-radius:24px;padding:24px}.ar-safety-actions{flex-direction:column-reverse}.ar-safety-button{width:100%}}.student-profile-page-container{background:radial-gradient(circle at 14% 10%,#ffb77033 0,#ffb77000 250px),radial-gradient(circle at 86% 8%,#6a92ff33 0,#6a92ff00 240px),#f2f6ff;min-height:100vh;padding-left:90px}.student-profile-page{display:flex;flex-direction:column;gap:16px;margin:0 auto;max-width:1020px;padding:24px clamp(14px,3.4vw,30px) 38px}.profile-header{grid-gap:20px;align-items:center;background:#fff;border:1px solid #d8e4ff;border-radius:20px;box-shadow:0 14px 32px #2c448c1f;display:grid;gap:20px;grid-template-columns:auto 1fr;padding:20px}.profile-avatar{background:linear-gradient(135deg,#496fff,#2a46c0);border-radius:50%;box-shadow:0 12px 22px #3152cc47;color:#fff;display:grid;font-size:44px;font-weight:900;height:116px;place-items:center;width:116px}.profile-header-body{display:flex;flex-direction:column;gap:12px}.profile-name-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.profile-username{color:#13213f;font-size:clamp(28px,3.4vw,40px);font-weight:900;margin:0}.profile-actions{display:flex;flex-wrap:wrap;gap:8px}.btn{background:#f4f8ff;border:1px solid #d8e4ff;padding:8px 14px}.btn.solid{background:#3156e0;border-color:#3156e0;color:#fff}.btn.outline{background:#fff}.profile-stats{display:flex;flex-wrap:wrap;gap:16px}.stat{align-items:baseline;background:#f5f8ff;border:1px solid #d8e4ff;border-radius:999px;color:#13213f;display:inline-flex;gap:7px;padding:6px 12px}.stat-number{font-size:18px;font-weight:900}.stat-label{color:#5e739e;font-size:13px;font-weight:800}.profile-bio{color:#13213f;display:flex;flex-direction:column;gap:4px}.bio-text,.full-name{font-weight:700;margin:0}.bio-text{color:#5f749d;font-size:15px}.profile-tabs{grid-gap:10px;background:#fff;border:1px solid #d8e4ff;border-radius:16px;box-shadow:0 10px 22px #2c448c1a;display:grid;gap:10px;grid-template-columns:repeat(2,1fr);padding:10px}.tab{background:#f4f8ff;border:1px solid #d4e1ff;border-radius:12px;color:#5670a1;cursor:pointer;font-weight:800;padding:11px 8px;transition:all .2s ease}.tab:hover{background:#e9f0ff}.tab.active{background:linear-gradient(135deg,#426aff,#2f50d6);border-color:#0000;color:#fff}.profile-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.post-card{background:#fff;border:1px solid #d8e4ff;border-radius:16px;box-shadow:0 10px 22px #2c448c1f;cursor:pointer;display:flex;flex-direction:column;overflow:hidden;position:relative;transition:transform .18s ease,box-shadow .18s ease}.post-card:hover{box-shadow:0 16px 28px #2c448c2e;transform:translateY(-2px)}.post-card:focus-visible{outline:3px solid #3256e05c;outline-offset:2px}.post-thumb{color:#304579;display:grid;font-size:44px;height:190px;place-items:center}.post-thumb-icon{text-shadow:0 4px 10px #ffffff73}.favorite-badge{background:#0e1b40b8;border:0;border-radius:12px;color:#ffd86f;cursor:pointer;font-size:14px;font-weight:800;padding:5px 8px;position:absolute;right:10px;top:10px}.favorite-badge.is-off{background:#0e1b4073;color:#ffffffc7}.post-meta{display:flex;flex-direction:column;gap:6px;padding:12px 14px 14px}.post-title{color:#142142;font-weight:800;margin:0}.gradient-1{background:linear-gradient(135deg,#ffbed5,#ff95c0)}.gradient-2{background:linear-gradient(135deg,#c9e9ff,#99ceff)}.gradient-3{background:linear-gradient(135deg,#d9fae2,#adefc4)}.gradient-4{background:linear-gradient(135deg,#ffe9ba,#ffd07e)}.gradient-5{background:linear-gradient(135deg,#d4ddff,#adbfff)}.gradient-6{background:linear-gradient(135deg,#ffd9bf,#ffbd95)}.post-thumb-img{height:100%;object-fit:cover;width:100%}.post-thumb-img--snapshot{filter:saturate(1.06);object-fit:contain;padding:14px}.post-grade{color:#16764d;font-size:13px;font-weight:700;margin:0}.post-feedback{color:#5f739b;font-size:12px;line-height:1.35;margin:2px 0 0}.loading-state{align-items:center;color:#5f739b;display:flex;flex-direction:column;font-weight:700;gap:16px;justify-content:center;padding:64px 24px}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #dce6ff;border-radius:50%;border-top-color:#3156e0;height:40px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.no-activities-profile{background:#fff;border:1px solid #d8e4ff;border-radius:16px;color:#5f739b;font-weight:800;grid-column:1/-1;padding:44px 24px;text-align:center}.no-activities-profile .empty-subtext{color:#7b90b7;font-size:14px;font-weight:700;margin-top:8px}@media (max-width:768px){.student-profile-page-container{padding-left:0}.student-profile-page{padding:16px 14px 98px}.profile-header{grid-template-columns:1fr;justify-items:start;padding:16px}.profile-avatar{font-size:34px;height:92px;width:92px}.profile-username{font-size:30px}.profile-actions{width:100%}.btn{flex:1 1;text-align:center}}.teacher-homepage{background:radial-gradient(circle at 8% 10%,#ffb86c33 0,#ffb86c00 230px),radial-gradient(circle at 90% 8%,#608aff33 0,#608aff00 240px),#f2f6ff;margin-left:120px;min-height:100vh;padding:22px 22px 40px}.page-shell{margin:0 auto;max-width:1180px}.f-layout,.page-shell{display:flex;flex-direction:column;gap:18px}.f-layout{align-items:stretch}.f-sidebar{height:auto}.f-main,.f-sidebar{display:flex;flex-direction:column;gap:18px}@media (max-width:1000px){.f-layout{grid-template-columns:1fr}.f-sidebar{order:2}.f-main{order:1}}.page-header__titles h1{color:#13213f;font-size:clamp(34px,4vw,54px);font-weight:900;line-height:1.08}.page-header__titles .lede{color:#5f739b;margin:0}.eyebrow{background:#e9efff;color:#3156e0;padding:5px 12px}.btn,.eyebrow{font-weight:800}.btn{padding:11px 16px}.btn.primary{background:linear-gradient(135deg,#3f6bff,#2e54dd);box-shadow:0 10px 22px #3056da42}.btn.primary:hover{transform:translateY(-1px)}.btn.ghost{border-color:#d2deff;color:#2f4fb8}.btn.ghost:hover{border-color:#3156e0;color:#3156e0}.panel{border:1px solid #d8e4ff;border-radius:22px;box-shadow:0 14px 34px #3049a31f;display:flex;flex-direction:column;padding:20px}.f-sidebar .panel:last-child{flex:1 1}.panel__header{margin-bottom:14px}.panel__header h2{color:#13213f;font-size:42px;font-weight:900;line-height:1.08}.link-btn{background:#edf2ff;border:none;border-radius:10px;color:#2d4db4;cursor:pointer;font-weight:800;padding:8px 12px}.classes-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr)}.class-card{align-items:center;background:linear-gradient(135deg,#f8fbff,#fefeff);border:1px solid #d8e4ff;border-radius:14px;display:flex;gap:12px;min-height:80px;padding:16px 14px;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.class-card:hover{border-color:#a9bdf4;box-shadow:0 10px 20px #3049a329;transform:translateY(-2px)}.class-avatar{align-items:center;border-radius:12px;color:#fff;display:flex;font-size:18px;font-weight:800;height:46px;justify-content:center;width:46px}.class-meta{flex:1 1;min-width:0}.class-name{color:#13213f;font-size:18px;font-weight:800;line-height:1.3;word-break:break-word}.class-sub{color:#60739b;font-size:15px;font-weight:700}.summary-grid{grid-gap:16px;display:grid;gap:16px}.summary-grid,.summary-grid.four-up{grid-template-columns:repeat(4,1fr)}.status-pill{font-weight:800;padding:7px 10px}.status-pill.ok{background:#e9faef;border-color:#b2e8cb;color:#1b8856}.status-pill.warn{background:#fff7e9;border-color:#ffdca2;color:#95601f}.status-pill.neutral{background:#edf2ff;border-color:#cfdcff;color:#2a428f}.summary-card{align-items:flex-start;background:#fff;border:1px solid #d8e4ff;border-radius:16px;cursor:pointer;display:flex;flex-direction:column;font-family:inherit;justify-content:center;min-height:120px;padding:26px 20px;text-align:left;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.summary-card:hover{border-color:#a9bdf4;box-shadow:0 10px 22px #3049a324;transform:translateY(-2px)}.summary-card:focus-visible{outline:3px solid #3156e040;outline-offset:2px}.summary-label{color:#5f739b;font-size:15px;font-weight:700;margin-bottom:12px}.summary-value{color:#13213f;font-size:clamp(38px,4vw,54px);font-weight:900;line-height:1}.activity-list{display:flex;flex-direction:column;gap:10px}.activity-row{grid-gap:12px;align-items:center;background:linear-gradient(135deg,#f8fbff,#fefeff);border:1px solid #d8e4ff;border-radius:12px;display:grid;gap:12px;grid-template-columns:auto 1fr auto;padding:12px 14px}.activity-icon{align-items:center;background:#edf2ff;border-radius:10px;color:#2a428f;display:flex;font-size:11px;font-weight:800;height:40px;justify-content:center;letter-spacing:.2px;width:40px}.activity-title{color:#13213f;font-size:16px;font-weight:800}.activity-sub{color:#60739b;font-size:14px;font-weight:700}@media (max-width:900px){.page-header{align-items:flex-start;flex-direction:column}.page-header__actions{flex-wrap:wrap;justify-content:flex-start;width:100%}}@media (max-width:640px){.teacher-homepage{margin-left:0;padding:16px 14px 98px}.panel{border-radius:18px;padding:16px}.panel__header h2{font-size:32px}.classes-grid,.summary-grid,.summary-grid.four-up{grid-template-columns:1fr}.activity-row{grid-template-columns:auto 1fr;grid-template-rows:auto auto}.activity-row .status-pill{grid-column:2;justify-self:start}}.teacher-page{background:linear-gradient(180deg,#f7f5f3,#fff 60%,#f8f7f5);margin-left:120px;min-height:100vh;padding:32px 24px 64px}.teacher-content{display:flex;flex-direction:column;gap:32px;margin:0 auto;max-width:1200px}.page-header{align-items:flex-start;display:flex;gap:20px;justify-content:space-between}.page-header__titles h1{color:#141217;font-size:32px;line-height:40px;margin:4px 0}.page-header__titles .eyebrow{background:#f0eefc;border-radius:999px;color:#1800ad;display:inline-block;font-size:13px;font-weight:600;padding:4px 10px}.page-header__titles .lede{color:#4b5563;font-size:16px;line-height:24px;margin:8px 0 0}.page-header__actions{align-items:center;display:flex;gap:12px}.btn.ghost{background:#fff;border-color:#d1d5db;color:#111827}.btn.ghost:hover{border-color:#1800ad;color:#1800ad}.panel{border:1px solid #e6e0db;box-shadow:0 10px 40px #1412170f}.panel__header{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px}.panel__header h2{color:#171412;font-size:20px;font-weight:700;margin:0}.filter-tabs{display:flex;flex-wrap:wrap;gap:12px}.filter-tab{background:#fdfcfb;border:1px solid #e6e0db;border-radius:8px;color:#4b5563;padding:10px 16px;transition:all .2s ease}.filter-tab:hover{border-color:#1800ad;color:#1800ad}.filter-tab.active{box-shadow:0 4px 12px #1800ad33}.assignments-list{display:flex;flex-direction:column;gap:16px}.assignment-card{grid-gap:20px;align-items:center;background:#fdfcfb;border:1px solid #e6e0db;border-radius:12px;cursor:pointer;display:grid;gap:20px;grid-template-columns:1fr 1.2fr;padding:18px 20px;transition:all .2s ease}.assignment-card:hover{box-shadow:0 10px 22px #00000014;transform:translateY(-1px)}.assignment-left{display:flex;flex-direction:column;gap:6px}.assignment-chip{align-items:center;background:#eef2ff;border-radius:999px;color:#1800ad;display:inline-flex;font-size:12px;font-weight:700;padding:6px 10px;width:-webkit-fit-content;width:fit-content}.assignment-title{color:#0d121c;font-size:18px;font-weight:800}.assignment-sub{color:#6b7280;font-size:14px}.assignment-meta{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:repeat(4,minmax(90px,1fr));justify-items:end}.meta-block{align-items:flex-end;display:flex;flex-direction:column;gap:2px}.meta-label{color:#6b7280;font-size:12px}.meta-value{color:#0d121c}.status-pill{border:1px solid #0000;border-radius:999px;font-size:12px;font-weight:700;padding:8px 10px;white-space:nowrap}.status-pill.ok{background:#ecfdf3;border-color:#bbf7d0;color:#0f6b2d}.status-pill.warn{background:#fff7ed;border-color:#ffedd5;color:#b45309}.status-pill.neutral{background:#eef2ff;border-color:#e0e7ff;color:#4338ca}@media (max-width:900px){.teacher-page{margin-left:0;padding:100px 16px 48px}.assignment-card{grid-template-columns:1fr}.assignment-meta{grid-template-columns:repeat(2,1fr)}}.modal-overlay{padding:20px}.modal-content{animation:slideIn .3s ease-out;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:600px;overflow-y:auto;width:100%}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid #e6e0db}.modal-header h2{color:#141217;font-size:24px}.modal-close{align-items:center;background:none;border:none;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.modal-close:hover{background:#f3f0ed;color:#141217}.modal-body{display:flex;flex-direction:column;gap:20px}.form-label{color:#141217;font-size:14px;font-weight:600}.form-input,.form-select,.form-textarea{background:#fdfcfb;border:1px solid #e6e0db;border-radius:10px;color:#141217;font-family:inherit;font-size:14px;padding:12px 14px;transition:all .2s ease}.form-input:focus,.form-select:focus,.form-textarea:focus{background:#fff;border-color:#1800ad;box-shadow:0 0 0 3px #1800ad1a;outline:none}.form-textarea{min-height:100px}.form-select{cursor:pointer}.activity-object-picker{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.activity-object-chip{align-items:center;background:#fff;border:1px solid #ddd5f7;border-radius:10px;color:#2e2742;cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:6px;justify-content:center;padding:8px;transition:all .18s ease}.activity-object-chip:hover{border-color:#1800ad}.activity-object-chip.active{background:#f1edff;border-color:#1800ad;color:#1800ad}.object-kit-help{font-size:12px}.model-quantity-row{border:1px solid #ddd5f7}.model-quantity-row.active{background:#f1edff}.model-quantity-name{color:#2e2742;font-size:13px}.model-quantity-count{color:#2e2742}.modal-footer{background:#f9f8f8;border-radius:0 0 16px 16px;border-top:1px solid #e6e0db}.modal-footer .btn{padding:10px 18px}.form-section{display:flex;flex-direction:column;gap:12px}.form-section-title{color:#141217;font-size:16px;font-weight:700;margin:0}.materials-list{display:flex;flex-direction:column;gap:12px}.material-item{align-items:flex-start;background:#f9f8f8;border:1px solid #e6e0db;border-radius:8px;display:flex;gap:12px;padding:12px}.material-number{align-items:center;color:#1800ad;display:flex;flex-shrink:0;font-size:18px;font-weight:700;height:24px;justify-content:center;width:24px}.material-inputs{display:flex;flex:1 1;flex-direction:column;gap:8px}.material-description,.material-name{background:#fff;border:none;border-radius:6px;color:#141217;font-family:inherit;font-size:13px;padding:8px 10px}.material-name{font-weight:600}.material-description{color:#6b7280;font-size:12px}.btn-remove-material{align-items:center;background:none;border:none;color:#d1d5db;cursor:pointer;display:flex;flex-shrink:0;font-size:20px;height:24px;justify-content:center;padding:0;transition:color .2s ease;width:24px}.btn-remove-material:hover{color:#ef4444}.btn-add-material{align-self:flex-start;background:#f5ede8;border:none;border-radius:20px;color:#1c170d;cursor:pointer;font-size:13px;font-weight:700;padding:10px 12px;transition:all .2s ease;width:-webkit-fit-content;width:fit-content}.btn-add-material:hover{background:#e8dcc8}.upload-area{background:#fdfcfb;border:2px dashed #e6e0db;border-radius:12px;padding:40px 24px;text-align:center}.upload-area.has-preview{grid-gap:16px;align-items:center;display:grid;gap:16px;grid-template-columns:180px 1fr;padding:20px;text-align:left}.thumbnail-preview{aspect-ratio:16/9;background:#f7f5f3;border:1px solid #e6e0db;border-radius:10px;object-fit:cover;width:100%}.upload-content{align-items:center;display:flex;flex-direction:column;gap:12px}.upload-title{color:#141217;font-size:15px;font-weight:700;margin:0}.upload-description{color:#6b7280;font-size:13px;line-height:1.5;margin:0}.btn-upload{background:#f5ede8;border:none;border-radius:20px;color:#1c170d;cursor:pointer;font-size:13px;font-weight:700;padding:8px 14px;transition:all .2s ease}.btn-upload:hover{background:#e8dcc8}.btn-upload input{display:none}.thumbnail-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.upload-area.has-preview .thumbnail-actions{justify-content:flex-start}.btn-clear-thumbnail{border-radius:20px;font-size:13px;padding:8px 14px}.thumbnail-error,.thumbnail-file-name{margin:0}.assign-options{display:flex;flex-direction:column;gap:10px}.assign-option{background:#fdfcfb;border:1px solid #e6e0db;border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:12px;transition:all .2s ease}.assign-option:hover{background:#f9f8f8;border-color:#1800ad}.assign-option input[type=radio]{accent-color:#1800ad;cursor:pointer;flex-shrink:0;height:20px;margin-top:2px;width:20px}.option-content{display:flex;flex-direction:column;gap:2px}.option-title{color:#141217;font-size:14px;font-weight:600}.option-subtitle{color:#6b7280;font-size:12px}.teacher-classes{background:linear-gradient(180deg,#f7f5f3,#fff 60%,#f8f7f5);margin-left:120px;min-height:100vh;padding:32px 24px 64px}.classes-shell{display:flex;flex-direction:column;gap:32px;margin:0 auto;max-width:1200px}.classes-header{align-items:flex-start;display:flex;gap:20px;justify-content:space-between}.classes-header__titles h1{color:#141217;font-size:32px;line-height:40px;margin:4px 0}.classes-header__titles .lede{color:#4b5563;font-size:16px;line-height:24px;margin:0}.eyebrow{background:#f0eefc;border-radius:999px;color:#1800ad;display:inline-block;font-size:13px;font-weight:600;padding:4px 10px}.classes-header__actions{display:flex;gap:12px}.btn{border-radius:10px;font-weight:600;padding:10px 16px;transition:all .2s ease}.btn.primary{box-shadow:0 10px 30px #1800ad33}.btn.primary:hover{background:#13008c;box-shadow:0 10px 30px #1800ad4d}.classes-container{background:#fff;border:1px solid #e6e0db;border-radius:14px;box-shadow:0 10px 40px #1412170f;padding:24px}.classes-list{display:flex;flex-direction:column;gap:12px}.class-list-item{align-items:center;background:#fdfcfb;border:1px solid #e6e0db;border-radius:10px;cursor:pointer;display:flex;gap:16px;padding:20px 18px;transition:all .2s ease}.class-list-item:hover{background:#f9f8f8;border-color:#1800ad;box-shadow:0 4px 12px #1800ad1a;transform:translateX(4px)}.class-list-avatar{align-items:center;border-radius:12px;color:#fff;display:flex;flex-shrink:0;font-size:24px;font-weight:700;height:56px;justify-content:center;width:56px}.class-list-content{flex:1 1;min-width:0}.class-list-name{color:#171412;font-size:16px;font-weight:700;margin-bottom:4px}.class-list-meta{color:#6b7280;font-size:14px}.class-list-action{align-items:center;color:#1800ad;display:flex;flex-shrink:0;font-size:20px}.arrow-icon{align-items:center;display:inline-flex;justify-content:center}@media (max-width:768px){.teacher-classes{margin-left:0;padding:16px}.classes-shell{gap:20px}.classes-header{flex-direction:column}.classes-header__titles h1{font-size:24px}.class-list-item{padding:16px}.class-list-avatar{font-size:20px;height:48px;width:48px}}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:16px;box-shadow:0 8px 32px #0000001f;max-width:500px;min-width:400px;padding:32px}.modal-content h2{color:#1c170d;font-size:24px;margin:0 0 8px}.teacher-class-details{background:linear-gradient(180deg,#f7f5f3,#fff 60%,#f8f7f5);margin-left:120px;min-height:100vh;padding:32px 24px 64px}.class-details-shell{display:flex;flex-direction:column;gap:24px;margin:0 auto;max-width:1200px}.class-details-header{align-items:flex-start;display:flex;gap:20px}.back-btn{background:none;border:none;color:#1800ad;font-size:16px;margin-top:8px;padding:8px 12px}.back-btn:hover{background:#f0eefc;color:#13008c}.class-details-title{align-items:flex-start;display:flex;flex:1 1;gap:16px}.class-badge{align-items:center;border-radius:12px;color:#fff;display:flex;flex-shrink:0;font-size:28px;font-weight:700;height:60px;justify-content:center;width:60px}.class-details-title h1{color:#141217;font-size:32px;line-height:40px;margin:0}.class-subtitle{color:#4b5563;font-size:16px;margin:4px 0 0}.class-details-layout{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 1fr}.class-section{background:#fff;border:1px solid #e6e0db;border-radius:14px;box-shadow:0 10px 40px #1412170f;padding:24px}.class-section h2{color:#171412;font-size:20px;font-weight:700;margin:0 0 20px}.students-list{display:flex;flex-direction:column;gap:12px}.enroll-box{background:#f9f8f8;border:1px solid #e6e0db;border-radius:10px;margin-bottom:14px;padding:12px}.enroll-title{color:#2a233b;font-size:13px;font-weight:700;margin:0 0 8px}.enroll-row{align-items:flex-start;display:flex;gap:10px}.enroll-input{flex:1 1;margin-bottom:0}.enroll-btn{height:44px;min-width:110px}.enroll-btn:disabled{cursor:not-allowed;opacity:.7}.enroll-msg{font-size:12px;font-weight:600;margin:8px 0 0}.enroll-msg.error{color:#b42318}.enroll-msg.success{color:#027a48}.student-item{align-items:center;background:#fdfcfb;border:1px solid #e6e0db;border-radius:10px;display:flex;gap:12px;padding:12px 14px;transition:all .2s ease}.student-item:hover{background:#f9f8f8;border-color:#1800ad}.student-avatar{align-items:center;background:#1800ad;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:16px;font-weight:700;height:40px;justify-content:center;width:40px}.student-info{min-width:0}.student-name{color:#171412;font-size:14px;font-weight:600}.student-email{color:#6b7280;font-size:12px;margin-top:2px}.student-status{border-radius:4px;display:inline-block;font-size:12px;margin-top:4px;padding:2px 8px;width:-webkit-fit-content;width:fit-content}.student-status.completed{background:#ecfdf3;color:#0f6b2d}.student-status.pending{background:#fff7ed;color:#b45309}.student-actions{flex-shrink:0}.btn-remove-student{background:#fff;border:1px solid #ef4444;border-radius:8px;color:#b91c1c;cursor:pointer;font-size:12px;font-weight:700;height:32px;padding:0 10px}.btn-remove-student:hover{background:#fff1f2}.btn-remove-student:disabled{cursor:not-allowed;opacity:.7}.activities-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.activities-header h2{color:#171412;font-size:20px;font-weight:700;margin:0}.btn-add-activity{background:#1800ad;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 16px;transition:all .2s ease}.btn-add-activity:hover{background:#13008c;box-shadow:0 4px 12px #1800ad33}.activity-form{background:#f9f8f8;border:1px solid #e6e0db;border-radius:10px;margin-bottom:20px;padding:16px}.activity-edit-form{margin-bottom:0;width:100%}.object-kit-selector{margin-bottom:14px}.object-kit-title{color:#3e3758;font-size:13px;font-weight:600;margin:0 0 8px}.object-kit-help{color:#7a7288;font-size:11px;margin:8px 0 0}.object-kit-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.object-kit-chip{align-items:center;background:#fff;border:1px solid #d8d2e7;border-radius:10px;color:#2f2841;cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:6px;justify-content:flex-start;padding:8px 10px;transition:all .18s ease}.object-kit-chip:hover{border-color:#1800ad}.object-kit-chip.active{background:#f0edff;border-color:#1800ad;color:#1800ad}.model-quantity-grid{grid-gap:8px;display:grid;gap:8px}.model-quantity-row{grid-gap:10px;align-items:center;background:#fff;border:1px solid #d8d2e7;border-radius:10px;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto;padding:8px 10px}.model-quantity-row.active{background:#f0edff;border-color:#1800ad}.model-quantity-name{color:#2f2841;font-size:12px;font-weight:700}.model-quantity-controls{grid-gap:6px;align-items:center;display:grid;gap:6px;grid-template-columns:32px 48px 32px}.model-quantity-controls button{background:#fff;border:1px solid #cfc6ef;border-radius:8px;color:#1800ad;cursor:pointer;font-size:18px;font-weight:800;height:32px}.model-quantity-controls button:disabled{cursor:not-allowed;opacity:.45}.model-quantity-count{background:#fff;border:1px solid #d8d2e7;border-radius:8px;color:#2f2841;display:grid;font-size:14px;font-weight:800;height:32px;place-items:center;width:48px}.form-input,.form-textarea{border:1px solid #e6e0db;border-radius:8px;color:#171412;font-family:inherit;font-size:14px;margin-bottom:12px;padding:12px;transition:border-color .2s ease;width:100%}.form-input:focus,.form-textarea:focus{border-color:#1800ad;box-shadow:0 0 0 3px #1800ad1a;outline:none}.form-textarea{resize:vertical}.form-actions{display:flex;gap:12px;justify-content:flex-end}.btn-cancel{background:#fff;border:1px solid #e6e0db;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:10px 16px;transition:all .2s ease}.btn-cancel:hover{background:#fdfcfb;border-color:#171412}.btn-submit{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:10px 16px;transition:all .2s ease}.btn-submit:hover{background:#13008c;box-shadow:0 4px 12px #1800ad33}.class-details-container .activities-list{display:flex;flex-direction:column;gap:12px}.class-details-container .activity-item{align-items:flex-start;background:#fdfcfb;border:1px solid #e6e0db;border-radius:10px;display:flex;gap:12px;justify-content:space-between;padding:16px;transition:all .2s ease}.class-details-container .activity-item:hover{background:#f9f8f8;border-color:#1800ad}.class-details-container .activity-content{flex:1 1;min-width:0}.class-details-container .activity-name{color:#171412;font-size:15px;font-weight:700;margin-bottom:6px}.class-details-container .activity-description{color:#6b7280;font-size:14px;margin-bottom:6px}.class-details-container .activity-due-date{color:#8b7a73;font-size:12px;font-weight:500}.class-details-container .activity-object-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}.class-details-container .activity-object-tag{background:#f1edff;border:1px solid #ded6ff;border-radius:999px;color:#4a3f75;font-size:11px;padding:3px 8px}.activity-thumbnail-upload{background:#fffdfb;border:1px dashed #ded6ce;border-radius:10px;margin-bottom:14px;padding:12px}.activity-list-thumbnail,.activity-thumbnail-preview{aspect-ratio:16/9;background:#f7f5f3;border:1px solid #e6e0db;border-radius:10px;object-fit:cover;width:100%}.activity-thumbnail-preview{margin:8px 0 10px}.activity-list-thumbnail{margin:4px 0 8px;max-width:220px}.activity-thumbnail-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.btn-upload-thumbnail{align-items:center;background:#fff;border:1px solid #d8d2e7;border-radius:999px;color:#1800ad;cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;justify-content:center;padding:8px 12px}.btn-upload-thumbnail input{display:none}.btn-clear-thumbnail{background:#fff7f7;border:1px solid #f0c8c8;border-radius:999px;color:#9f1d1d;cursor:pointer;font-size:12px;font-weight:700;padding:8px 12px}.thumbnail-error,.thumbnail-file-name{font-size:12px;margin:8px 0 0}.thumbnail-file-name{color:#6b7280}.thumbnail-error{color:#b42318;font-weight:700}.class-details-container .activity-action{flex-shrink:0}.class-details-container .btn-edit{background:#f0eefc;border:none;border-radius:8px;color:#1800ad;cursor:pointer;font-size:12px;font-weight:600;padding:8px 14px;transition:all .2s ease}.class-details-container .btn-edit:hover{background:#e0ddf8;color:#13008c}.class-details-container .no-activities{color:#6b7280;font-size:14px;padding:32px 16px;text-align:center}@media (max-width:1024px){.class-details-layout{grid-template-columns:1fr}}@media (max-width:768px){.teacher-class-details{margin-left:0;padding:16px}.class-details-header{flex-direction:column}.class-badge{font-size:20px;height:48px;width:48px}.class-details-title h1{font-size:24px}.class-section{padding:16px}.enroll-row{flex-direction:column}.enroll-btn{width:100%}}.page-container{background:#f7f5f3;min-height:100vh;padding:24px 24px 64px}.page-content{display:flex;flex-direction:column;gap:24px;margin:0 auto;max-width:1200px}.reviews-header{margin-bottom:8px}.page-title{color:#171412;font-size:32px;font-weight:700;margin:0 0 4px}.reviews-subtitle{color:#6b5a4d;font-size:15px;margin:0}.search-filter-section{align-items:stretch;border:1px solid #f0ece8;border-radius:14px;flex-wrap:wrap;gap:16px;margin-bottom:24px;padding:20px}.search-container{align-items:center;display:flex;flex:1 1;min-width:200px;position:relative}.search-icon{color:#6b5a4d;left:16px;pointer-events:none;position:absolute}.search-input{background:#fff;border:2px solid #e5e1da;border-radius:10px;color:#171412;font-size:15px;padding:12px 16px 12px 48px;transition:all .2s;width:100%}.search-input::placeholder{color:#94867d}.search-input:focus{background:#f7f4ff;border-color:#1800ad;box-shadow:0 0 0 3px #1800ad1a;outline:none}.clear-search-btn{border-radius:6px;color:#6b5a4d;font-size:18px;padding:8px;position:absolute;right:12px;transition:all .2s}.clear-search-btn:hover{background:#f8f6f6;color:#171412}.filter-activity{display:flex;flex-direction:column;gap:8px;width:180px}.filter-activity label{color:#171412;font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.activity-select{background:#fff;border:2px solid #e5e1da;border-radius:10px;color:#171412;cursor:pointer;font-size:15px;font-weight:600;padding:12px 16px;transition:all .2s;width:100%}.activity-select:hover{background:#f8f6f6;border-color:#d7ccff}.activity-select:focus{background:#f7f4ff;border-color:#1800ad;box-shadow:0 0 0 3px #1800ad1a;outline:none}.review-filters{display:flex;flex-wrap:wrap;gap:12px}.filter-tab{background:#fff;border:2px solid #e5e1da;border-radius:10px;color:#171412;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .2s;white-space:nowrap}.filter-tab:hover{background:#f8f6f6;border-color:#d7ccff}.filter-tab.active{background:#1800ad;border-color:#1800ad;color:#fff}.submissions-list{display:flex;flex-direction:column;gap:16px}.no-submissions{color:#6b5a4d;font-size:14px;padding:48px 16px;text-align:center}.no-submissions,.submission-card{background:#fff;border:1px solid #f0ece8;border-radius:14px}.submission-card{box-shadow:0 8px 18px #0000000a;display:flex;gap:24px;padding:24px;transition:transform .2s,box-shadow .2s}.submission-card:hover{box-shadow:0 12px 24px #00000014;transform:translateY(-2px)}.submission-artwork{flex-shrink:0}.artwork-preview{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 12px #667eea4d;display:flex;font-size:72px;justify-content:center}.artwork-preview,.artwork-preview-img{border-radius:12px;height:140px;width:140px}.artwork-preview-img{background:#fff;border:1px solid #e5e1da;object-fit:cover}.artwork-placeholder{align-items:center;background:#f8f6f6;border:2px dashed #e5e1da;border-radius:12px;color:#6b5a4d;display:flex;font-size:13px;font-weight:600;height:140px;justify-content:center;padding:8px;text-align:center;width:140px}.submission-details{display:flex;flex:1 1;flex-direction:column;gap:12px}.submission-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.submission-student{color:#171412;font-size:20px;font-weight:700;margin:0}.submission-id{color:#6b5a4d;font-size:14px;margin:4px 0 0}.status-badge{border-radius:8px;font-size:13px;font-weight:700;padding:6px 14px;white-space:nowrap}.status-completed,.status-on-time{background:#d1fae5;color:#065f46}.status-late{background:#fee2e2;color:#991b1b}.status-pending{background:#fef3c7;color:#92400e}.submission-activity{color:#171412;font-size:17px;font-weight:700;margin:0}.submission-description{color:#6b5a4d;font-size:15px;line-height:1.5;margin:0}.submission-meta{display:flex;flex-wrap:wrap;gap:20px;margin-top:4px}.meta-item{display:flex;font-size:14px;gap:6px}.meta-label{color:#6b5a4d;font-weight:600}.meta-value{color:#171412;font-weight:700}.score-display{color:#1800ad;font-size:15px;font-weight:700}.stars-display{align-items:center;color:#a87500;display:inline-flex;gap:2px;line-height:1}.stars-display .star{color:#d9d2c7;font-size:17px}.stars-display .star.filled{color:#ffc43d;text-shadow:0 1px 0 #784b0033}.stars-display.compact .star{font-size:15px}.star-count{color:#171412;font-size:13px;font-weight:800;margin-left:6px}.review-btn{align-self:flex-start;background:#1800ad;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:14px;font-weight:700;margin-top:8px;padding:10px 24px;transition:all .2s}.review-btn:hover{background:#1400a0;box-shadow:0 4px 12px #1800ad4d;transform:translateY(-1px)}.review-btn:active{transform:translateY(0)}.submission-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.view-ar-btn{align-self:flex-start;background:#fff;border:1px solid #1800ad;border-radius:10px;color:#1800ad;cursor:pointer;font-size:14px;font-weight:700;padding:10px 20px;transition:all .2s}.view-ar-btn:hover{background:#f5f3ff;transform:translateY(-1px)}.view-ar-btn:disabled{cursor:not-allowed;opacity:.55;transform:none}.review-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#17141299;bottom:0;display:flex;justify-content:center;left:0;padding:16px;position:fixed;right:0;top:0;z-index:1000}.review-modal{background:#fff;border:1px solid #f0ece8;border-radius:16px;box-shadow:0 20px 40px #0003;max-height:90vh;max-width:600px;overflow-y:auto;width:100%}.modal-header{align-items:center;border-bottom:2px solid #f0ece8;display:flex;justify-content:space-between;padding:24px}.modal-header h2{color:#171412;font-size:22px;font-weight:700;margin:0}.close-btn{align-items:center;background:none;border:none;border-radius:8px;color:#6b5a4d;cursor:pointer;display:flex;font-size:24px;height:36px;justify-content:center;padding:0;transition:all .2s;width:36px}.close-btn:hover{background:#f8f6f6;color:#171412}.modal-body{padding:24px}.modal-student-info{margin-bottom:20px}.modal-student-info h3{color:#171412;font-size:20px;font-weight:700;margin:0}.modal-activity{color:#6b5a4d;font-size:15px;font-weight:600;margin:4px 0 0}.modal-artwork-display{background:#f8f6f6;border:1px solid #f0ece8;border-radius:12px;margin-bottom:24px;padding:32px;text-align:center}.modal-artwork{filter:drop-shadow(0 4px 8px rgba(0,0,0,.1));font-size:96px;margin-bottom:16px}.modal-artwork-image{background:#fff;border:1px solid #e5e1da;border-radius:12px;margin-bottom:16px;max-height:320px;max-width:320px;object-fit:contain;width:100%}.modal-description{color:#171412;font-size:15px;line-height:1.5;margin:0}.modal-form{gap:20px}.form-group,.modal-form{display:flex;flex-direction:column}.form-group{gap:8px}.form-group label{color:#171412;font-size:14px;font-weight:700}.form-group input,.form-group textarea{background:#fff;border:2px solid #e5e1da;border-radius:10px;font-family:inherit;font-size:15px;padding:12px 16px;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{background:#f7f4ff;border-color:#1800ad;outline:none}.form-group textarea{min-height:120px;resize:vertical}.star-rating{align-items:center;background:#fff;border:2px solid #e5e1da;border-radius:10px;display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px}.star-button{background:#0000;border:none;color:#d4ccc1;cursor:pointer;font-size:34px;line-height:1;padding:2px;transition:transform .15s ease,color .15s ease}.star-button.active,.star-button:hover{color:#ffc43d;text-shadow:0 2px 0 #784b002e;transform:translateY(-1px) scale(1.04)}.star-button:focus-visible{border-radius:8px;outline:3px solid #1800ad40}.rating-hint{color:#6b5a4d;font-size:14px;font-weight:700;margin-left:8px}.modal-footer{border-top:2px solid #f0ece8;display:flex;gap:12px;justify-content:flex-end;padding:20px 24px}.btn-cancel,.btn-submit{border-radius:10px;cursor:pointer;font-size:14px;font-weight:700;padding:12px 24px;transition:all .2s}.btn-cancel{background:#f8f6f6;border:2px solid #e5e1da;color:#171412}.btn-cancel:hover{background:#ece8e2;transform:translateY(-1px)}.btn-submit{background:#1800ad;border:2px solid #1800ad;color:#fff}.btn-submit:hover{background:#1400a0;box-shadow:0 4px 12px #1800ad4d;transform:translateY(-1px)}.btn-submit:disabled{background:#d7ccff;border-color:#d7ccff;cursor:not-allowed;opacity:.6}.btn-submit:disabled:hover{box-shadow:none;transform:none}@media (max-width:768px){.page-container{padding:100px 16px 48px}.search-filter-section{flex-direction:column;gap:12px}.search-container{min-width:auto;width:100%}.search-input{font-size:16px}.activity-select,.filter-activity{width:100%}.submission-card{flex-direction:column;gap:20px;padding:20px}.artwork-placeholder,.artwork-preview{font-size:96px;height:200px;width:100%}.submission-header{align-items:flex-start;flex-direction:column}.submission-meta{flex-direction:column;gap:12px}.review-modal{max-width:100%}.modal-artwork{font-size:80px}.review-filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}}@media (max-width:480px){.page-title{font-size:26px}.filter-tab{font-size:13px;padding:8px 16px}.submission-card{padding:16px}.submission-student{font-size:18px}.modal-body,.modal-header{padding:20px 16px}.modal-footer{flex-direction:column;padding:16px}.btn-cancel,.btn-submit{width:100%}.modal-artwork{font-size:64px}}.student-page-container{background-color:#f7fafc;min-height:100vh;width:100%}.student-page{margin:0 auto;max-width:1200px;padding:24px 24px 32px}.students-header{margin-bottom:32px}.students-title{color:#0d141c;font-family:Lexend,sans-serif;font-size:32px;font-weight:700;margin:0 0 8px}.students-subtitle{color:#4d7399;font-size:16px;margin:0}.search-filter-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000a;display:flex;flex-direction:column;gap:20px;margin-bottom:32px;padding:24px}.search-container{width:100%}.search-input-wrapper{align-items:center;background:#fff;border:1px solid #d8d2c9;border-radius:12px;box-shadow:0 4px 10px #0000000a;display:flex;gap:10px;padding:10px 14px;transition:all .2s ease}.search-input-wrapper:focus-within{border-color:#9aa3b5;box-shadow:0 0 0 3px #9aa3b526}.search-icon{align-items:center;color:#4d7399;display:flex;flex-shrink:0;font-size:18px;justify-content:center;padding-left:12px}.search-input{background:#0000;border:none;color:#0d141c;flex:1 1;font-family:Lexend,sans-serif;font-size:14px;outline:none}.search-input::placeholder{color:#4d7399}.clear-search-btn{background:none;border:none;color:#4d7399;cursor:pointer;font-size:16px;padding:4px 8px;transition:color .2s ease}.clear-search-btn:hover{color:#0d141c}.filters-container{align-items:flex-end;display:flex;flex-wrap:wrap;gap:16px}.filter-group{display:flex;flex:1 1;flex-direction:column;gap:8px;min-width:150px}.filter-label{font-size:13px;font-weight:600}.filter-label,.filter-select{color:#0d141c;font-family:Lexend,sans-serif}.filter-select{background:#f7fafc;border:1px solid #cfdbe8;border-radius:8px;cursor:pointer;font-size:14px;padding:10px 12px;transition:all .2s ease}.filter-select:hover{background:#fff;border-color:#667eea}.filter-select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.reset-filters-btn{align-self:flex-end;background:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#721c24;cursor:pointer;font-family:Lexend,sans-serif;font-size:13px;font-weight:600;padding:10px 16px;transition:all .2s ease}.reset-filters-btn:hover{background:#f5c6cb;color:#721c24}.no-results{background:#fff;border:1px dashed #cfdbe8;border-radius:12px;grid-column:1/-1;padding:60px 20px;text-align:center}.no-results-text{color:#4d7399;font-family:Lexend,sans-serif;font-size:16px;margin:0}.students-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.student-card{background:#fff;border:1px solid #e8edf2;border-radius:12px;box-shadow:0 2px 8px #0000000a;cursor:pointer;display:flex;flex-direction:column;gap:16px;padding:24px;transition:all .3s ease}.student-card:hover{border-color:#667eea;box-shadow:0 8px 16px #0000001f;transform:translateY(-4px)}.student-card-avatar{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;display:flex;font-size:36px;font-weight:700;height:80px;justify-content:center;margin:0 auto;width:80px}.student-card:nth-child(2) .student-card-avatar{background:linear-gradient(135deg,#f093fb,#f5576c)}.student-card:nth-child(3) .student-card-avatar{background:linear-gradient(135deg,#4facfe,#00f2fe)}.student-card:nth-child(4) .student-card-avatar{background:linear-gradient(135deg,#43e97b,#38f9d7)}.student-card:nth-child(5) .student-card-avatar{background:linear-gradient(135deg,#fa709a,#fee140)}.student-card:nth-child(6) .student-card-avatar{background:linear-gradient(135deg,#30cfd0,#330867)}.student-card-header{text-align:center}.student-card-name{color:#0d141c;font-family:Lexend,sans-serif;font-size:20px;font-weight:700;margin:0 0 4px}.student-card-grade{color:#4d7399;font-size:14px;font-weight:500;margin:0 0 2px}.student-card-section{color:#667eea;font-size:12px;font-weight:500;margin:2px 0 0}.student-card-id{color:#4d7399;font-size:12px;font-weight:400;margin:0}.student-card-stats{grid-gap:12px;background:#f7fafc;border-radius:8px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(60px,1fr));padding:16px}.card-stat{align-items:center;display:flex;flex-direction:column;gap:4px}.card-stat-value{color:#0d141c;font-family:Lexend,sans-serif;font-size:18px;font-weight:700}.card-stat-label{color:#4d7399;font-size:11px;line-height:1.2;text-align:center}.card-stat.status-alert,.card-stat.status-alert .card-stat-value{color:#ff6b6b}.view-btn{background:#667eea;border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:Lexend,sans-serif;font-size:14px;font-weight:600;padding:12px 16px;transition:all .2s ease}.view-btn:hover{background:#5568d3;transform:scale(1.02)}.back-btn{background:#fff;border:1px solid #cfdbe8;border-radius:8px;color:#667eea;cursor:pointer;font-family:Lexend,sans-serif;font-size:14px;font-weight:600;margin-bottom:24px;padding:10px 16px;transition:all .2s ease}.back-btn:hover{background:#f7fafc;border-color:#667eea}.student-header-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000a;margin-bottom:32px;padding:32px}.student-header-content{align-items:center;display:flex;gap:24px}.student-avatar-large{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:48px;font-weight:700;height:120px;justify-content:center;width:120px}.student-info{flex:1 1}.student-name{color:#0d141c;font-family:Lexend,sans-serif;font-size:28px;font-weight:700;margin:0 0 8px}.student-grade{font-weight:500;margin:0 0 4px}.student-grade,.student-id{color:#4d7399;font-size:16px}.student-id{font-weight:400;margin:0}.student-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:32px}.stat-card{background:#fff;border:1px solid #cfdbe8;border-radius:12px;display:flex;flex-direction:column;gap:8px;padding:20px;text-align:center}.stat-card.status-overdue{background:#fff5f5;border-color:#ff6b6b}.stat-value{color:#0d141c;font-family:Lexend,sans-serif;font-size:32px}.stat-label{color:#4d7399;font-size:14px;font-weight:400}.projects-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000a;padding:32px}.section-title{color:#0d141c;font-family:Lexend,sans-serif;font-size:22px;font-weight:700;margin:0 0 24px}.project-tabs{border-bottom:1px solid #e8edf2;display:flex;gap:12px;margin-bottom:24px;padding-bottom:12px}.tab-btn{background:none;border:none;border-bottom:2px solid #0000;color:#4d7399;cursor:pointer;font-family:Lexend,sans-serif;font-size:14px;font-weight:500;margin-bottom:-14px;padding:12px 16px;transition:all .3s ease}.tab-btn:hover{color:#0d141c}.tab-btn.active{border-bottom-color:#667eea;color:#667eea}.projects-list{display:flex;flex-direction:column;gap:12px}.projects-gallery{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.gallery-card{background:#fff;border:1px solid #e8edf2;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;flex-direction:column;overflow:hidden;transition:all .3s ease}.gallery-card:hover{border-color:#cfdbe8;box-shadow:0 8px 16px #0000001f;transform:translateY(-4px)}.gallery-image{align-items:center;aspect-ratio:1/1;display:flex;font-size:64px;justify-content:center;position:relative;width:100%}.gallery-image,.gallery-image:first-child{background:linear-gradient(135deg,#667eea,#764ba2)}.gallery-card:nth-child(2) .gallery-image{background:linear-gradient(135deg,#f093fb,#f5576c)}.gallery-card:nth-child(3) .gallery-image{background:linear-gradient(135deg,#4facfe,#00f2fe)}.gallery-card:nth-child(4) .gallery-image{background:linear-gradient(135deg,#43e97b,#38f9d7)}.gallery-card:nth-child(5) .gallery-image{background:linear-gradient(135deg,#fa709a,#fee140)}.gallery-card:nth-child(6) .gallery-image{background:linear-gradient(135deg,#30cfd0,#330867)}.gallery-info{background:#fff;display:flex;flex-direction:column;flex-grow:1;gap:12px;padding:20px}.gallery-title{color:#0d141c;font-family:Lexend,sans-serif;font-size:16px;font-weight:700;margin:0}.gallery-description{color:#4d7399;flex-grow:1;font-size:13px;line-height:1.4;margin:0}.gallery-meta{border-top:1px solid #e8edf2;display:flex;flex-direction:column;gap:8px;padding-top:8px}.gallery-due{color:#4d7399;font-size:12px;font-weight:500}.no-projects{color:#4d7399;font-size:14px;padding:40px 20px;text-align:center}.project-card{align-items:center;background:#f7fafc;border:1px solid #0000;border-radius:8px;display:flex;gap:16px;padding:16px;transition:all .2s ease}.project-card:hover{background:#eef2f8;border-color:#cfdbe8}.project-icon{flex-shrink:0;font-size:28px}.project-content{flex:1 1;min-width:0}.project-title{color:#0d141c;font-family:Lexend,sans-serif;font-size:16px;font-weight:500;margin:0 0 8px}.project-meta{color:#4d7399;display:flex;font-size:12px;gap:16px}.project-due,.project-status,.project-submitted{white-space:nowrap}.project-status{border-radius:6px;font-family:Lexend,sans-serif;font-size:12px;font-weight:500;padding:6px 12px}.status-completed{background:#d4edda;color:#155724}.status-review{background:#fff3cd;color:#856404}.status-progress{background:#cce5ff;color:#004085}.status-notstarted{background:#e2e3e5;color:#383d41}.status-overdue{background:#f8d7da;color:#721c24}.status-assigned{background:#d1ecf1;color:#0c5460}.status-default{background:#f1f3f5;color:#495057}@media (max-width:768px){.student-page{padding:100px 16px 20px}.student-header-content{flex-direction:column;text-align:center}.student-avatar-large{font-size:40px;height:100px;width:100px}.student-name{font-size:24px}.student-stats{gap:12px;grid-template-columns:repeat(2,1fr)}.stat-card{padding:16px}.stat-value{font-size:28px}.project-tabs{flex-wrap:wrap}.tab-btn{font-size:12px;padding:10px 12px}.project-card{flex-wrap:wrap}.project-meta{flex-direction:column;gap:4px;width:100%}.projects-gallery{gap:16px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.gallery-image{font-size:48px}.gallery-info{padding:16px}.gallery-title{font-size:14px}.gallery-description{font-size:12px}}@media (max-width:480px){.student-page{padding:80px 12px 16px}.student-header-section{padding:20px}.student-stats{grid-template-columns:1fr}.projects-section{padding:20px}.project-tabs{gap:8px;padding-bottom:8px}.tab-btn{font-size:11px;margin-bottom:-11px;padding:8px 10px}.projects-gallery{gap:12px;grid-template-columns:repeat(2,1fr)}.gallery-image{font-size:36px}.gallery-info{padding:12px}.gallery-title{font-size:13px}.gallery-description{font-size:11px}}@media (max-width:768px){.search-filter-section{flex-direction:column;gap:16px}.filters-container{flex-direction:column}.filter-group{width:100%}.reset-filters-btn{align-self:stretch;width:100%}}@media (max-width:480px){.search-filter-section{padding:16px}.filter-group,.filter-select{width:100%}}.gesture-alerts-page{background:#f7f5f3;min-height:100vh;padding:24px 24px 64px}.gesture-alerts-content{display:flex;flex-direction:column;gap:18px;margin:0 auto;max-width:1180px}.gesture-alerts-header h1{color:#171412;font-size:34px;line-height:1.1;margin:0}.gesture-alerts-header p{color:#6b5a4d;font-size:15px;margin:8px 0 0}.gesture-alerts-empty{background:#fff;border:1px solid #f0ece8;border-radius:14px;color:#6b5a4d;padding:28px;text-align:center}.gesture-alerts-error{background:#fff2f2;border:1px solid #ffc9c9;border-radius:12px;color:#761919;font-size:14px;padding:14px 16px}.gesture-alerts-error-help{color:#8a4747;font-size:13px;margin-top:8px}.gesture-alerts-list{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.gesture-alert-card{background:#fff;border:1px solid #f0ece8;border-radius:14px;box-shadow:0 8px 18px #0000000a;padding:16px}.gesture-alert-top{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:8px}.gesture-alert-top time{color:#7a6d63;font-size:12px}.gesture-pill{align-items:center;background:#ffe8d9;border-radius:999px;color:#8b3f07;display:inline-flex;font-size:12px;font-weight:700;padding:4px 10px}.gesture-alert-card h3{color:#171412;font-size:20px;margin:0}.gesture-alert-email{color:#66574b;font-size:13px;margin:4px 0 12px}.gesture-alert-grid{grid-gap:8px;color:#2f2722;display:grid;font-size:14px;gap:8px;grid-template-columns:1fr}.gesture-alert-grid>div{grid-gap:2px;display:grid;gap:2px}.gesture-alert-label{color:#8a7768;font-size:11px;letter-spacing:.04em;text-transform:uppercase}.gesture-alert-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.gesture-alert-actions button{background:#1800ad;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 12px}.gesture-alert-actions button:hover{background:#2615c6}:root{--dash-ink:#0d1c12;--dash-muted:#4d7399;--dash-panel:#fff;--dash-border:#e6e8eb;--dash-accent:#97d9ff;--dash-accent-strong:#6cc8ff;--dash-blue:#1800ad;--dash-good:#1ae65c;--dash-warn:#e6b31a;--dash-bad:#ff2601;--dash-bg:#f7fafc;--dash-shadow:0 10px 30px #021e080f;--dash-shadow-sm:0 6px 16px #021e080d;--dash-radius:14px}.page-homepage .dash-main{background:#f7fafc;background:var(--dash-bg)}.dash-actions,.dash-analytics,.dash-h2,.dash-header,.dash-stats,.dash-tablewrap{box-sizing:border-box;max-width:calc(100% - 23px);width:960px}.dash-header{padding:16px 16px 0}.dash-title{color:#0d1c12;color:var(--dash-ink);font-size:32px;font-weight:700;line-height:40px;margin:0}.dash-subtitle{color:#4d7399;color:var(--dash-muted);font-size:14px;font-weight:400;line-height:21px;margin:10px 0 0}.dash-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr));padding:16px}.stat{background:#fff;background:var(--dash-panel);border:1px solid #e6e8eb;border:1px solid var(--dash-border);border-radius:14px;border-radius:var(--dash-radius);box-shadow:0 6px 16px #021e080d;box-shadow:var(--dash-shadow-sm);min-height:142px;overflow:hidden;padding:24px;position:relative}.stat:before{background:linear-gradient(90deg,#97d9ff,#97d9ff00);background:linear-gradient(90deg,var(--dash-accent),#97d9ff00);content:"";height:4px;left:0;position:absolute;right:0;top:0}.stat-label{font-size:16px;font-weight:500;line-height:24px}.stat-label,.stat-value{color:#0d1c12;color:var(--dash-ink)}.stat-value{font-size:24px;font-weight:700;line-height:30px;margin-top:10px}.stat-meta{color:#4d7399;color:var(--dash-muted);font-size:16px;font-weight:500;line-height:24px;margin-top:10px}.dash-h2{color:#0d1c12;color:var(--dash-ink);font-size:22px;font-weight:700;line-height:28px;margin:0;padding:20px 16px 12px}.dash-analytics{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));padding:24px 16px}.panel{background:#fff;border:1px solid #e6e8eb;border:1px solid var(--dash-border);border-radius:14px;border-radius:var(--dash-radius);box-shadow:0 6px 16px #021e080d;box-shadow:var(--dash-shadow-sm);min-height:394px;padding:24px}.panel-title{font-size:16px;font-weight:500;line-height:24px}.panel-big,.panel-title{color:#0d1c12;color:var(--dash-ink)}.panel-big{font-size:32px;font-weight:700;line-height:40px;margin-top:8px}.panel-sub{color:#4d7399;color:var(--dash-muted);font-size:16px;font-weight:400;line-height:24px;margin-top:10px}.chart-area{background:linear-gradient(180deg,#fff,#f7fafccc);border:1px solid #e6e8eb;border:1px solid var(--dash-border);border-radius:12px;height:148px;margin-top:16px;overflow:hidden;position:relative}.chart-area:before{background-image:repeating-linear-gradient(90deg,#d9e5f299 0,#d9e5f299 1px,#0000 0,#0000 38px),repeating-linear-gradient(0deg,#d9e5f299 0,#d9e5f299 1px,#0000 0,#0000 32px);content:"";inset:0;opacity:.55;position:absolute}.fake-fill{background:linear-gradient(180deg,color-mix(in srgb,#97d9ff 60%,#fff),#97d9ff1f 55%,#97d9ff00);background:linear-gradient(180deg,color-mix(in srgb,var(--dash-accent) 60%,#fff) 0,#97d9ff1f 55%,#97d9ff00 100%);-webkit-clip-path:polygon(0 78%,12% 56%,28% 52%,42% 64%,55% 58%,70% 70%,82% 82%,92% 60%,100% 70%,100% 100%,0 100%);clip-path:polygon(0 78%,12% 56%,28% 52%,42% 64%,55% 58%,70% 70%,82% 82%,92% 60%,100% 70%,100% 100%,0 100%)}.fake-fill,.fake-line{inset:0;position:absolute}.fake-line{background:#0000;border:2px solid #1800ad;border:2px solid var(--dash-blue);-webkit-clip-path:polygon(0 78%,12% 56%,28% 52%,42% 64%,55% 58%,70% 70%,82% 82%,92% 60%,100% 70%);clip-path:polygon(0 78%,12% 56%,28% 52%,42% 64%,55% 58%,70% 70%,82% 82%,92% 60%,100% 70%)}.months{color:color-mix(in srgb,#0d1c12 80%,#4d7399);color:color-mix(in srgb,var(--dash-ink) 80%,var(--dash-muted));font-size:13px;font-weight:700;gap:10px;justify-content:space-between;line-height:20px;margin-top:12px;padding-bottom:6px}.bars,.months{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden}.bars{align-items:flex-end;gap:24px;height:181px;justify-content:center;margin-top:16px;padding:0 12px 6px;scroll-snap-type:x mandatory}.barcol{align-items:center;display:flex;flex:0 0 auto;flex-direction:column;gap:24px;scroll-snap-align:start}.bar{background:#97d9ff;background:var(--dash-accent);border-radius:10px;border-top:2px solid #0d1c1233;box-shadow:0 10px 20px #97d9ff2e;box-sizing:border-box;width:48px}.bar.h1,.bar.h2{height:137px}.bar.h2{width:56px}.bar.h3{height:137px;width:28px}.bars .barcol:first-child .bar{background:linear-gradient(180deg,#97d9ff,#6cc8ff)}.bars .barcol:nth-child(2) .bar{background:linear-gradient(180deg,#b3e7ff,#80d3ff)}.bars .barcol:nth-child(3) .bar{background:linear-gradient(180deg,#d2f2ff,#97d9ff)}.barcol span{color:#000;font-size:13px;font-weight:700;line-height:20px;word-break:break-word}.bars::-webkit-scrollbar,.months::-webkit-scrollbar{height:10px}.bars::-webkit-scrollbar-thumb,.months::-webkit-scrollbar-thumb{background:color-mix(in srgb,#e6e8eb 70%,#fff);background:color-mix(in srgb,var(--dash-border) 70%,#fff);border-radius:999px}.bars::-webkit-scrollbar-track,.months::-webkit-scrollbar-track{background:#0000}.dash-tablewrap{padding:12px 16px}.dash-table{background:#fff;border:1px solid #e6e8eb;border:1px solid var(--dash-border);border-collapse:initial;border-radius:14px;border-radius:var(--dash-radius);border-spacing:0;box-shadow:0 6px 16px #021e080d;box-shadow:var(--dash-shadow-sm);overflow:hidden;width:100%}.dash-table thead th{background:#f7fafc;border-bottom:1px solid #e6e8eb;border-bottom:1px solid var(--dash-border);font-weight:600;height:46px;padding:12px 16px;text-align:left}.dash-table tbody td,.dash-table thead th{color:#0d1c12;color:var(--dash-ink);font-size:14px;line-height:21px}.dash-table tbody td{border-top:1px solid #e6e8eb;border-top:1px solid var(--dash-border);font-weight:400;height:72px;padding:8px 16px;vertical-align:middle}.dash-table tbody tr:hover td{background:#f7fafcb3}.pill{align-items:center;background:#fff;border:1px solid #e6e8eb;border:1px solid var(--dash-border);border-radius:999px;color:#0d1c12;color:var(--dash-ink);display:inline-flex;font-size:14px;font-weight:500;gap:8px;height:32px;justify-content:center;line-height:21px;padding:0 14px;white-space:nowrap}.pill:before{background:#4d7399;background:var(--dash-muted);border-radius:999px;content:"";height:8px;width:8px}.pill.approved{background:color-mix(in srgb,#1ae65c 22%,#fff);background:color-mix(in srgb,var(--dash-good) 22%,#fff);border:1px solid color-mix(in srgb,#1ae65c 55%,#fff);border:1px solid color-mix(in srgb,var(--dash-good) 55%,#fff);color:#0a4a1d}.pill.approved:before{background:#1ae65c;background:var(--dash-good)}.pill.pending{background:color-mix(in srgb,#e6b31a 22%,#fff);background:color-mix(in srgb,var(--dash-warn) 22%,#fff);border:1px solid color-mix(in srgb,#e6b31a 55%,#fff);border:1px solid color-mix(in srgb,var(--dash-warn) 55%,#fff);color:#5b4300}.pill.pending:before{background:#e6b31a;background:var(--dash-warn)}.pill.rejected{background:color-mix(in srgb,#ff2601 14%,#fff);background:color-mix(in srgb,var(--dash-bad) 14%,#fff);border:1px solid color-mix(in srgb,#ff2601 40%,#fff);border:1px solid color-mix(in srgb,var(--dash-bad) 40%,#fff);color:#7a1406}.pill.rejected:before{background:#ff2601;background:var(--dash-bad)}.dash-actions{display:flex;gap:12px;justify-content:flex-end;padding:12px 16px 24px}.btn{background:#0000;border:1px solid #0000;border-radius:12px;color:#0d1c12;color:var(--dash-ink);cursor:pointer;font-size:14px;font-weight:700;height:40px;line-height:21px;padding:0 16px;transition:transform .14s ease,box-shadow .14s ease,background-color .14s ease,border-color .14s ease,filter .14s ease}.btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.6}.btn:disabled:hover{filter:none}.btn.secondary{background:#fff;border-color:#e6e8eb;border-color:var(--dash-border)}.btn.primary{background:#1800ad;background:var(--dash-blue);box-shadow:0 10px 24px #1800ad2e;color:#fff}.btn:hover{box-shadow:0 12px 28px #021e080f;filter:brightness(.98)}.btn:active{transform:translateY(1px)}.dash-modal-backdrop{align-items:center;background:#021e0838;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:60}.dash-modal{background:#fff;border:1px solid #e6e8eb;border:1px solid var(--dash-border);border-radius:16px;box-shadow:0 30px 80px #021e0838;display:flex;flex-direction:column;max-height:90vh;max-width:100%;overflow:hidden;width:920px}.dash-modal-head{align-items:center;background:#f7fafc;border-bottom:1px solid #e6e8eb;border-bottom:1px solid var(--dash-border);display:flex;justify-content:space-between;padding:14px 16px}.dash-modal-title{font-weight:700;line-height:24px}.dash-modal-title,.dash-modal-x{color:#0d1c12;color:var(--dash-ink);font-size:16px}.dash-modal-x{background:#fff;border:1px solid #e6e8eb;border:1px solid var(--dash-border);border-radius:10px;cursor:pointer;height:34px;line-height:1;width:34px}.dash-modal-body{overflow:auto;padding:16px}.dash-modal-actions{background:#fff;border-top:1px solid #e6e8eb;border-top:1px solid var(--dash-border);display:flex;gap:10px;justify-content:flex-end;padding:14px 16px}.dash-form{gap:12px}.dash-create,.dash-form{display:flex;flex-direction:column}.dash-create{gap:18px}.dash-modal-error{background:#ff260114;border:1px solid #ff260147;border-radius:10px;color:#7a1406;font-size:13px;font-weight:600;line-height:19px;padding:10px 12px}.dash-section{display:flex;flex-direction:column;gap:12px}.dash-section-title{color:#0d1c12;color:var(--dash-ink);font-size:16px;font-weight:800;line-height:24px;margin-top:2px}.dash-row2{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.dash-field{color:#0d1c12;color:var(--dash-ink);display:flex;flex-direction:column;font-size:14px;font-weight:600;gap:8px;line-height:21px}.dash-input{height:44px;padding:0 12px}.dash-input,.dash-textarea{background:#fff;border:1px solid #e6e8eb;border:1px solid var(--dash-border);border-radius:12px;color:#0d1c12;color:var(--dash-ink);font-family:inherit;font-size:14px;line-height:21px}.dash-textarea{min-height:110px;padding:12px;resize:vertical}.dash-materials{display:flex;flex-direction:column;gap:10px}.dash-material{grid-gap:10px;align-items:start;display:grid;gap:10px;grid-template-columns:28px 1fr}.dash-material-plus{align-items:center;background:#fff;border:1px solid #e6e8eb;border:1px solid var(--dash-border);border-radius:10px;box-shadow:0 6px 14px #021e080f;color:#1800ad;color:var(--dash-blue);display:flex;font-weight:900;height:28px;justify-content:center;line-height:1;margin-top:6px;width:28px}.dash-material-fields{display:flex;flex-direction:column;gap:8px}.dash-input-sub{height:40px;opacity:.95}.dash-add-material{background:#fff;border:1px solid #e6e8eb;border:1px solid var(--dash-border);border-radius:12px;color:#0d1c12;color:var(--dash-ink);cursor:pointer;font-family:inherit;font-size:14px;font-weight:700;line-height:21px;padding:10px 14px;width:-webkit-fit-content;width:fit-content}.dash-add-material:hover{background:#f7fafce6}.dash-upload{align-items:center;background:#f7fafccc;border:2px dashed #d9e5f2e6;border-radius:16px;display:flex;flex-direction:column;gap:10px;padding:18px 16px;text-align:center}.dash-upload-title{color:#0d1c12;color:var(--dash-ink);font-size:14px;font-weight:800;line-height:21px}.dash-upload-sub{color:#4d7399;color:var(--dash-muted);font-size:14px;line-height:21px}.dash-upload-btn{align-items:center;background:#fff;border:1px solid #e6e8eb;border:1px solid var(--dash-border);border-radius:999px;color:#0d1c12;color:var(--dash-ink);cursor:pointer;display:inline-flex;font-size:13px;font-weight:800;height:34px;justify-content:center;line-height:20px;padding:0 14px}.dash-upload-input{display:none}.dash-upload-meta{color:#4d7399;color:var(--dash-muted);font-size:13px;font-weight:600;line-height:20px}.dash-assign{display:flex;flex-direction:column;gap:10px}.dash-assign-card{grid-gap:12px;align-items:center;background:#fff;border:1px solid #e6e8eb;border:1px solid var(--dash-border);border-radius:14px;cursor:pointer;display:grid;gap:12px;grid-template-columns:22px 1fr;padding:14px}.dash-assign-card input{height:18px;width:18px}.dash-assign-card.active{background:color-mix(in srgb,#1800ad 4%,#fff);background:color-mix(in srgb,var(--dash-blue) 4%,#fff);border-color:color-mix(in srgb,#1800ad 20%,#e6e8eb);border-color:color-mix(in srgb,var(--dash-blue) 20%,var(--dash-border))}.dash-assign-title{color:#0d1c12;color:var(--dash-ink);font-size:14px;font-weight:800;line-height:21px}.dash-assign-sub{color:#4d7399;color:var(--dash-muted);font-size:13px;line-height:20px}.dash-input:focus,.dash-textarea:focus{box-shadow:0 0 0 3px #97d9ff73;outline:none}@media (max-width:980px){.dash-row2{grid-template-columns:1fr}}@media (max-width:1100px){.dash-analytics,.dash-stats{grid-template-columns:1fr}}@media (max-width:980px){.dash-actions,.dash-analytics,.dash-h2,.dash-header,.dash-stats,.dash-tablewrap{max-width:960px;width:100%}}:root{--adm-bg:#fff;--adm-ink:#0d1c12;--adm-accent:#97d9ff;--adm-accent-strong:#6cc8ff;--adm-border:#e6e8eb;--adm-shadow-xs:0 2px 8px #021e080d;--adm-focus-ring:0 0 0 3px #97d9ff73}.dash{background:#fff;background:var(--adm-bg);color:#0d1c12;color:var(--adm-ink);display:grid;grid-template-columns:403px 1fr;min-height:100vh}.dash-sidebar{background:#fff;border-right:1px solid #e6e8eb;border-right:1px solid var(--adm-border);display:flex;flex-direction:column;gap:16px;padding:19px 42px 24px}.dash-brand{align-items:center;display:flex;gap:16px;justify-content:space-between;min-height:40px}.dash-brand-left{align-items:center;display:inline-flex;gap:10px;min-width:0}.dash-brand-home{background:#0000;border:0;border-radius:12px;cursor:pointer;padding:0}.dash-brand-home:focus-visible{box-shadow:0 0 0 3px #97d9ff73;box-shadow:var(--adm-focus-ring);outline:none}.dash-logo{background:#0000;border:0;border-radius:12px;height:44px;object-fit:contain;width:44px}.dash-avatar{background:#f2c7b8;border-radius:20px;box-shadow:0 2px 8px #021e080d;box-shadow:var(--adm-shadow-xs);height:40px;width:40px}.dash-profile{align-items:center;background:#0000;border:1px solid #0000;border-radius:999px;color:#0d1c12;color:var(--adm-ink);cursor:pointer;display:inline-flex;gap:10px;padding:4px;text-align:left}.dash-avatarimg{background:#fff;border:1px solid #e6e8eb;border:1px solid var(--adm-border);border-radius:999px;box-shadow:0 2px 8px #021e080d;box-shadow:var(--adm-shadow-xs);height:40px;object-fit:cover;width:40px}.dash-profile:hover{background:color-mix(in srgb,#97d9ff 20%,#fff);background:color-mix(in srgb,var(--adm-accent) 20%,#fff);border-color:color-mix(in srgb,#97d9ff 55%,#cfeeff);border-color:color-mix(in srgb,var(--adm-accent) 55%,#cfeeff)}.dash-profile:focus-visible{box-shadow:0 0 0 3px #97d9ff73;box-shadow:var(--adm-focus-ring);outline:none}.dash-nav{display:flex;flex-direction:column;gap:8px;margin-top:8px}.dash-link{background:#0000;border:1px solid #0000;border-radius:12px;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:12px;line-height:21px;padding:9px 12px;text-align:left;transition:background-color .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease;width:100%}.dash-ico,.dash-link{align-items:center;color:#0d1c12;color:var(--adm-ink)}.dash-ico{display:inline-flex;height:24px;justify-content:center;width:24px}.dash-link:hover{background:color-mix(in srgb,#97d9ff 35%,#fff);background:color-mix(in srgb,var(--adm-accent) 35%,#fff);border-color:color-mix(in srgb,#97d9ff 65%,#cfeeff);border-color:color-mix(in srgb,var(--adm-accent) 65%,#cfeeff)}.dash-link:active{transform:translateY(1px)}.dash-link:focus-visible{box-shadow:0 0 0 3px #97d9ff73;box-shadow:var(--adm-focus-ring);outline:none}.dash-link.active{background:#97d9ff;background:var(--adm-accent);border-color:color-mix(in srgb,#6cc8ff 70%,#bfe9ff);border-color:color-mix(in srgb,var(--adm-accent-strong) 70%,#bfe9ff);box-shadow:0 2px 8px #021e080d;box-shadow:var(--adm-shadow-xs)}.dash-main{background:#fff;background:var(--adm-bg);height:100vh;overflow-y:auto;padding:20px 0 36px 23px}@media (max-width:1280px){.dash{grid-template-columns:320px 1fr}.dash-sidebar{padding:16px 24px 20px}}@media (max-width:980px){.dash{grid-template-columns:1fr}.dash-sidebar{align-items:center;border-bottom:1px solid #e6e8eb;border-bottom:1px solid var(--adm-border);border-right:0;flex-direction:row;gap:12px;justify-content:space-between}.dash-nav{flex-direction:row;flex-wrap:wrap}.dash-main{height:auto;overflow:visible;padding-left:16px;padding-right:16px}}:root{--um-ink:#0d1c12;--um-muted:#4d7399;--um-bg:#f7fafc;--um-panel:#fff;--um-soft:#e8edf2;--um-border:#d9e5f2;--um-row-border:#e2ebf5;--um-blue:#1800ad;--um-focus-ring:0 0 0 3px #97d9ff73;--um-shadow-sm:0 6px 16px #021e080d;--um-radius:14px}.page-users .dash-main{background:#f7fafc;background:var(--um-bg)}.um-filters,.um-header,.um-searchwrap,.um-tablewrap{box-sizing:border-box;max-width:calc(100% - 23px);width:960px}.um-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;padding:16px}.um-header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.um-title{color:#0d1c12;color:var(--um-ink);font-size:32px;font-weight:700;line-height:40px;margin:0}.um-subtitle{color:#4d7399;color:var(--um-muted);font-size:14px;font-weight:400;line-height:21px;margin:12px 0 0}.um-add-btn{background:#1800ad;background:var(--um-blue);border:1px solid #0000;border-radius:12px;box-shadow:0 10px 24px #1800ad2e;color:#fff}.um-add-btn,.um-secondary-btn{cursor:pointer;font-family:inherit;font-size:14px;font-weight:700;height:40px;line-height:21px;padding:0 14px}.um-secondary-btn{background:#fff;border:1px solid #d9e5f2;border:1px solid var(--um-border);border-radius:12px;box-shadow:0 6px 16px #021e080d;box-shadow:var(--um-shadow-sm);color:#0d1c12;color:var(--um-ink)}.um-add-btn:hover{filter:brightness(.98)}.um-secondary-btn:hover{background:#f7fafce6}.um-searchwrap{padding:12px 16px}.um-search{align-items:stretch;background:#fff;background:var(--um-panel);border:1px solid #d9e5f2;border:1px solid var(--um-border);border-radius:14px;border-radius:var(--um-radius);box-shadow:0 6px 16px #021e080d;box-shadow:var(--um-shadow-sm);display:flex;overflow:hidden}.um-search-ico{align-items:center;color:#4d7399;color:var(--um-muted);display:flex;height:48px;justify-content:center;width:40px}.um-search-input{background:#0000;border:0;color:#0d1c12;color:var(--um-ink);flex:1 1;font-family:inherit;font-size:16px;height:48px;line-height:24px;padding:8px 16px 8px 8px}.um-search-input:focus{outline:none}.um-search:focus-within{box-shadow:0 0 0 3px #97d9ff73;box-shadow:var(--um-focus-ring)}.um-filters{align-items:center;display:flex;gap:12px;padding:12px 16px 12px 12px}.um-filterwrap{position:relative}.um-filter{background:#fff;background:var(--um-panel);border:1px solid #d9e5f2;border:1px solid var(--um-border);border-radius:12px;box-shadow:0 6px 16px #021e080d;box-shadow:var(--um-shadow-sm);color:#0d1c12;color:var(--um-ink);cursor:pointer;font-family:inherit;font-size:14px;font-weight:600;gap:8px;height:36px;line-height:21px;padding:0 10px 0 12px}.um-filter,.um-filter-value{align-items:center;display:inline-flex}.um-filter-value{background:color-mix(in srgb,#e8edf2 65%,#fff);background:color-mix(in srgb,var(--um-soft) 65%,#fff);border-radius:999px;color:#4d7399;color:var(--um-muted);font-size:12px;font-weight:700;height:22px;line-height:18px;padding:0 8px}.um-filter:focus-visible{box-shadow:0 0 0 3px #97d9ff73;box-shadow:var(--um-focus-ring);outline:none}.um-filter-caret{align-items:center;color:#4d7399;color:var(--um-muted);display:inline-flex;height:20px;justify-content:center;width:20px}.um-menu{background:#fff;border:1px solid #d9e5f2;border:1px solid var(--um-border);border-radius:12px;box-shadow:0 16px 40px #021e081f;left:0;min-width:220px;padding:6px;position:absolute;top:calc(100% + 8px);z-index:5}.um-menuitem{background:#0000;border:1px solid #0000;border-radius:10px;color:#0d1c12;color:var(--um-ink);cursor:pointer;font-size:14px;font-weight:600;line-height:18px;padding:10px;text-align:left;width:100%}.um-menuitem:hover{background:#f7fafce6}.um-menuitem.active{background:color-mix(in srgb,#1800ad 8%,#fff);background:color-mix(in srgb,var(--um-blue) 8%,#fff);border-color:color-mix(in srgb,#1800ad 20%,#fff);border-color:color-mix(in srgb,var(--um-blue) 20%,#fff)}.um-clear{background:#fff;border:1px solid #d9e5f2;border:1px solid var(--um-border);border-radius:12px;box-shadow:0 6px 16px #021e080d;box-shadow:var(--um-shadow-sm);color:#0d1c12;color:var(--um-ink);cursor:pointer;font-family:inherit;font-size:14px;font-weight:700;height:36px;line-height:21px;padding:0 12px}.um-clear:hover{background:#f7fafce6}.um-tablewrap{padding:12px 16px 24px}.um-table{background:#fff;border:1px solid #d9e5f2;border:1px solid var(--um-border);border-collapse:initial;border-radius:14px;border-radius:var(--um-radius);border-spacing:0;box-shadow:0 6px 16px #021e080d;box-shadow:var(--um-shadow-sm);overflow:hidden;width:100%}.um-table thead th{background:#f7fafc;border-bottom:1px solid #d9e5f2;border-bottom:1px solid var(--um-border);font-weight:600;height:46px;padding:12px 16px;text-align:left}.um-table tbody td,.um-table thead th{color:#0d1c12;color:var(--um-ink);font-size:14px;line-height:21px}.um-table tbody td{border-top:1px solid #e2ebf5;border-top:1px solid var(--um-row-border);font-weight:400;height:72px;padding:8px 16px;vertical-align:middle}.um-table tbody tr:hover td{background:#f7fafcb3}.um-empty,.um-muted{color:#4d7399;color:var(--um-muted)}.um-empty{padding:18px 16px;text-align:center}.um-status{align-items:center;border:1px solid #d9e5f2;border:1px solid var(--um-border);border-radius:999px;color:#0d1c12;color:var(--um-ink);display:inline-flex;font-size:14px;font-weight:600;gap:8px;height:32px;justify-content:center;line-height:21px;padding:0 16px}.um-status:before{background:#4d7399;background:var(--um-muted);border-radius:999px;content:"";height:8px;width:8px}.um-status.active{background:color-mix(in srgb,#1ae65c 20%,#fff);border-color:color-mix(in srgb,#1ae65c 40%,#fff)}.um-status.active:before{background:#1ae65c}.um-status.inactive{background:color-mix(in srgb,#e6b31a 20%,#fff);border-color:color-mix(in srgb,#e6b31a 40%,#fff)}.um-status.inactive:before{background:#e6b31a}.um-action{background:#0000;border:1px solid #0000;border-radius:10px;color:#1800ad;color:var(--um-blue);cursor:pointer;font-family:inherit;font-size:14px;font-weight:700;height:32px;line-height:21px;padding:0 12px}.um-action:hover{background:color-mix(in srgb,#1800ad 8%,#fff);background:color-mix(in srgb,var(--um-blue) 8%,#fff);border-color:color-mix(in srgb,#1800ad 22%,#fff);border-color:color-mix(in srgb,var(--um-blue) 22%,#fff)}.um-action.danger{color:#b42318}.um-action.danger:hover{background:#b4231814;border-color:#b4231833}.um-action:focus-visible{box-shadow:0 0 0 3px #97d9ff73;box-shadow:var(--um-focus-ring);outline:none}.um-modal-backdrop{align-items:center;background:#021e0838;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:50}.um-modal{background:#fff;border:1px solid #d9e5f2;border:1px solid var(--um-border);border-radius:16px;box-shadow:0 30px 80px #021e0838;max-width:100%;overflow:hidden;width:640px}.um-modal-wide{width:760px}.um-modal-head{align-items:center;background:#f7fafc;border-bottom:1px solid #d9e5f2;border-bottom:1px solid var(--um-border);display:flex;justify-content:space-between;padding:14px 16px}.um-modal-title{color:#0d1c12;color:var(--um-ink);font-size:16px;font-weight:700;line-height:24px}.um-modal-subtitle{color:#4d7399;color:var(--um-muted);font-size:13px;font-weight:500;line-height:18px;margin:2px 0 0}.um-modal-x{background:#fff;border:1px solid #d9e5f2;border:1px solid var(--um-border);border-radius:10px;color:#0d1c12;color:var(--um-ink);cursor:pointer;font-size:18px;height:34px;line-height:1;width:34px}.um-modal-body{gap:12px;padding:16px}.um-field,.um-modal-body{display:flex;flex-direction:column}.um-field{color:#0d1c12;color:var(--um-ink);font-size:14px;font-weight:600;gap:8px;line-height:21px}.um-fieldrow{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.um-link-form{grid-gap:12px;align-items:end;background:#f7fafc;border:1px solid #d9e5f2;border:1px solid var(--um-border);border-radius:14px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;padding:12px}.um-link-summary{color:#0d1c12;color:var(--um-ink);font-size:14px;line-height:21px}.um-link-list{display:flex;flex-direction:column;gap:10px;max-height:min(360px,45vh);overflow:auto;padding-right:4px}.um-link-row{align-items:center;background:#fff;border:1px solid #e2ebf5;border:1px solid var(--um-row-border);border-radius:14px;display:flex;gap:12px;justify-content:space-between;padding:12px}.um-link-title{color:#0d1c12;color:var(--um-ink);font-size:14px;font-weight:700;line-height:21px}.um-link-meta{color:#4d7399;color:var(--um-muted);font-size:12px;line-height:18px;margin-top:2px}.um-input{background:#fff;border:1px solid #d9e5f2;border:1px solid var(--um-border);border-radius:12px;color:#0d1c12;color:var(--um-ink);font-family:inherit;font-size:14px;height:44px;line-height:21px;padding:0 12px}.um-input:focus{box-shadow:0 0 0 3px #97d9ff73;box-shadow:var(--um-focus-ring);outline:none}.um-field-error,.um-field-hint{font-size:12px;font-weight:500;line-height:18px}.um-field-hint{color:#4d7399;color:var(--um-muted)}.um-field-error{color:#b42318}.um-modal-actions{background:#fff;border-top:1px solid #d9e5f2;border-top:1px solid var(--um-border);display:flex;gap:10px;justify-content:flex-end;padding:14px 16px}.um-btn{border:1px solid #0000;border-radius:12px;cursor:pointer;font-family:inherit;font-size:14px;font-weight:700;height:40px;line-height:21px;padding:0 14px}.um-btn.ghost{background:#fff;border-color:#d9e5f2;border-color:var(--um-border);color:#0d1c12;color:var(--um-ink)}.um-btn.primary{background:#1800ad;background:var(--um-blue);box-shadow:0 10px 24px #1800ad2e;color:#fff}.um-btn:hover{filter:brightness(.98)}@media (max-width:980px){.um-filters,.um-header,.um-searchwrap,.um-tablewrap{max-width:960px;width:100%}.um-fieldrow,.um-link-form{grid-template-columns:1fr}.um-link-row{align-items:flex-start;flex-direction:column}}:root{--ac-ink:#0d1c12;--ac-muted:#4d7399;--ac-bg:#f7fafc;--ac-card:#fff;--ac-border:#d9e5f2;--ac-soft:#eef6ff;--ac-blue:#1800ad;--ac-danger:#b42318}.page-admin-classes .dash-main{background:#f7fafc;background:var(--ac-bg)}.ac-header,.ac-summary,.ac-table-card{box-sizing:border-box;max-width:calc(100% - 32px);width:1040px}.ac-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;padding:24px 16px 12px}.ac-title{color:#0d1c12;color:var(--ac-ink);font-size:36px;font-weight:900;line-height:1.1;margin:0}.ac-subtitle{color:#4d7399;color:var(--ac-muted);font-size:15px;line-height:1.5;margin:12px 0 0}.ac-primary,.ac-secondary{border:1px solid #0000;border-radius:14px;cursor:pointer;font:inherit;font-size:15px;font-weight:800;min-height:44px;padding:0 18px}.ac-primary{background:#1800ad;background:var(--ac-blue);box-shadow:0 14px 28px #1800ad2e;color:#fff}.ac-primary:disabled{box-shadow:none}.ac-primary:disabled,.ac-secondary:disabled{cursor:not-allowed;opacity:.65}.ac-secondary{background:#fff;border-color:#d9e5f2;border-color:var(--ac-border);color:#0d1c12;color:var(--ac-ink)}.ac-alert{background:#fff5f4;border:1px solid #f4b8b2;border-radius:14px;color:#b42318;color:var(--ac-danger);font-weight:700;margin:8px 16px;max-width:calc(100% - 32px);padding:14px 16px;width:1040px}.ac-summary{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr));padding:12px 16px}.ac-stat{background:#fff;background:var(--ac-card);border:1px solid #d9e5f2;border:1px solid var(--ac-border);border-radius:18px;box-shadow:0 10px 24px #021e080d;min-height:92px;padding:18px}.ac-stat span{color:#4d7399;color:var(--ac-muted);display:block;font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.ac-stat strong{color:#0d1c12;color:var(--ac-ink);display:block;font-size:34px;line-height:1;margin-top:12px}.ac-table-card{padding:12px 16px 28px}.ac-table{background:#fff;border:1px solid #d9e5f2;border:1px solid var(--ac-border);border-collapse:initial;border-radius:18px;border-spacing:0;box-shadow:0 12px 28px #021e080f;overflow:hidden;width:100%}.ac-table td,.ac-table th{border-bottom:1px solid #e7eef7;color:#0d1c12;color:var(--ac-ink);padding:16px;text-align:left;vertical-align:middle}.ac-table th{background:#f7fafc;color:#344966;font-size:13px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.ac-table tr:last-child td{border-bottom:0}.ac-class-cell{align-items:center;display:flex;gap:12px}.ac-class-cell strong,.ac-table td>strong{display:block;font-size:16px;font-weight:900}.ac-class-cell span:last-child,.ac-muted{color:#4d7399;color:var(--ac-muted);display:block;font-size:13px;margin-top:3px}.ac-color{border-radius:14px;box-shadow:inset 0 0 0 1px #fff9;flex:0 0 auto;height:42px;width:42px}.ac-empty{color:#4d7399!important;color:var(--ac-muted)!important;font-weight:700;padding:40px 18px!important;text-align:center!important}.ac-actions{display:flex;gap:8px}.ac-actions button{background:#0000;border:1px solid #0000;border-radius:10px;color:#1800ad;color:var(--ac-blue);cursor:pointer;font:inherit;font-weight:800;min-height:34px;padding:0 10px}.ac-actions button:hover{background:color-mix(in srgb,#1800ad 8%,#fff);background:color-mix(in srgb,var(--ac-blue) 8%,#fff)}.ac-actions button.danger{color:#b42318;color:var(--ac-danger)}.ac-actions button.danger:hover{background:#fff1f0}.ac-modal-backdrop{align-items:center;background:#021e0838;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:60}.ac-modal{background:#fff;border:1px solid #d9e5f2;border:1px solid var(--ac-border);border-radius:20px;box-shadow:0 30px 80px #021e083d;max-height:calc(100vh - 40px);overflow:auto;width:min(720px,100%)}.ac-modal-actions,.ac-modal-head{align-items:center;background:#f7fafc;border-bottom:1px solid #d9e5f2;border-bottom:1px solid var(--ac-border);display:flex;gap:12px;justify-content:space-between;padding:18px 20px}.ac-modal-actions{background:#fff;border-bottom:0;border-top:1px solid #d9e5f2;border-top:1px solid var(--ac-border);justify-content:flex-end}.ac-modal-eyebrow{color:#4d7399;color:var(--ac-muted);font-size:12px;font-weight:900;letter-spacing:.06em;margin:0 0 4px;text-transform:uppercase}.ac-modal h2{font-size:24px;font-weight:900;margin:0}.ac-close,.ac-modal h2{color:#0d1c12;color:var(--ac-ink)}.ac-close{background:#fff;border:1px solid #d9e5f2;border:1px solid var(--ac-border);border-radius:12px;cursor:pointer;font-size:22px;height:38px;line-height:1;width:38px}.ac-modal-body{grid-gap:14px;display:grid;gap:14px;grid-template-columns:1fr 1fr;padding:20px}.ac-field:nth-of-type(3),.ac-field:nth-of-type(4),.ac-modal-body .ac-alert,.ac-preview,.ac-students-panel{grid-column:1/-1}.ac-modal-body .ac-alert{margin:0;max-width:none;width:auto}.ac-field{color:#0d1c12;color:var(--ac-ink);display:flex;flex-direction:column;font-size:14px;font-weight:800;gap:8px}.ac-field input,.ac-field select{background:#fff;border:1px solid #d9e5f2;border:1px solid var(--ac-border);border-radius:13px;color:#0d1c12;color:var(--ac-ink);font:inherit;font-weight:600;height:46px;padding:0 12px}.ac-actions button:focus-visible,.ac-close:focus-visible,.ac-field input:focus,.ac-field select:focus,.ac-primary:focus-visible,.ac-secondary:focus-visible{box-shadow:0 0 0 4px #97d9ff8c;outline:none}.ac-colors{display:flex;flex-wrap:wrap;gap:10px}.ac-colors button{border:3px solid #0000;border-radius:14px;cursor:pointer;height:40px;width:40px}.ac-colors button.active{border-color:#111827}.ac-preview{background:#eef6ff;background:var(--ac-soft);border:1px solid #dbeafe;border-radius:16px;padding:16px}.ac-preview small,.ac-preview span{color:#4d7399;color:var(--ac-muted);display:block;font-weight:700}.ac-preview strong{color:#0d1c12;color:var(--ac-ink);display:block;font-size:20px;font-weight:900;margin:6px 0}.ac-students-panel{background:#fff;border:1px solid #d9e5f2;border:1px solid var(--ac-border);border-radius:18px;padding:16px}.ac-students-head{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.ac-students-head span{color:#4d7399;color:var(--ac-muted);display:block;font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.ac-students-head strong{color:#0d1c12;color:var(--ac-ink);display:block;font-size:18px;font-weight:900;margin-top:4px}.ac-students-head .ac-secondary{border-radius:12px;font-size:13px;min-height:36px;padding:0 12px}.ac-inline-error{background:#fff5f4;border-radius:12px;color:#b42318;color:var(--ac-danger);font-weight:800;margin-bottom:12px;padding:10px 12px}.ac-students-empty{background:#f7fafc;border-radius:14px;color:#4d7399;color:var(--ac-muted);font-weight:800;padding:18px;text-align:center}.ac-students-list{grid-gap:10px;display:grid;gap:10px;max-height:260px;overflow:auto;padding-right:4px}.ac-student-row{grid-gap:12px;align-items:center;background:#fbfdff;border:1px solid #e7eef7;border-radius:14px;display:grid;gap:12px;grid-template-columns:44px minmax(0,1fr) auto;padding:12px}.ac-student-avatar{background:#1800ad;background:var(--ac-blue);border-radius:50%;color:#fff;display:grid;font-weight:900;height:44px;place-items:center;width:44px}.ac-student-info{min-width:0}.ac-student-info small,.ac-student-info span,.ac-student-info strong{display:block}.ac-student-info strong{color:#0d1c12;color:var(--ac-ink);font-weight:900}.ac-student-info small,.ac-student-info span{color:#4d7399;color:var(--ac-muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ac-remove-student{background:#fff5f4;border:1px solid #ffd4d0;border-radius:12px;color:#b42318;color:var(--ac-danger);cursor:pointer;font:inherit;font-size:13px;font-weight:900;min-height:36px;padding:0 12px}.ac-remove-student:disabled{cursor:not-allowed;opacity:.65}@media (max-width:860px){.ac-header{flex-direction:column}.ac-summary{grid-template-columns:1fr}.ac-table-card{overflow-x:auto}.ac-table{min-width:840px}.ac-modal-body{grid-template-columns:1fr}.ac-field:nth-of-type(3),.ac-field:nth-of-type(4),.ac-students-panel{grid-column:auto}.ac-student-row{grid-template-columns:40px minmax(0,1fr)}.ac-remove-student{grid-column:1/-1}}:root{--m3d-ink:#0d141c;--m3d-muted:#4d7399;--m3d-bg:#f7fafc;--m3d-panel:#fff;--m3d-soft:#e8edf2;--m3d-border:#cfdbe8;--m3d-blue:#1800ad;--m3d-danger:#ff2601;--m3d-focus-ring:0 0 0 3px #97d9ff73;--m3d-shadow-sm:0 6px 16px #021e080d;--m3d-radius:14px}.page-models .dash-main{background:#f7fafc;background:var(--m3d-bg);padding:35px 0 36px 24px}.m3d-header,.m3d-searchwrap,.m3d-sourcewrap,.m3d-tablewrap{box-sizing:border-box;max-width:calc(100% - 24px);width:958px}.m3d-header{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:16px}.m3d-title{color:#0d141c;color:var(--m3d-ink);font-size:32px;font-weight:700;line-height:40px;margin:0}.m3d-add{background:#1800ad;background:var(--m3d-blue);border:1px solid #0000;border-radius:12px;box-shadow:0 10px 24px #1800ad2e;color:#fff;cursor:pointer;font-family:inherit;font-size:14px;font-weight:700;height:36px;line-height:21px;padding:0 14px;transition:transform .14s ease,filter .14s ease,box-shadow .14s ease}.m3d-add:hover{box-shadow:0 12px 28px #1800ad33;filter:brightness(.98)}.m3d-add:active{transform:translateY(1px)}.m3d-add:disabled{box-shadow:none;cursor:not-allowed;opacity:.6}.m3d-searchwrap{padding:12px 16px}.m3d-sourcewrap{gap:12px;padding:4px 16px 8px}.m3d-source-head,.m3d-sourcewrap{display:flex;flex-direction:column}.m3d-source-head{gap:2px}.m3d-source-title{color:#0d141c;color:var(--m3d-ink);font-size:18px;font-weight:700;line-height:27px;margin:0}.m3d-source-sub{color:#4d7399;color:var(--m3d-muted);font-size:13px;line-height:20px;margin:0}.m3d-source-search{display:flex;gap:10px}.m3d-source-search .m3d-input{flex:1 1}.m3d-source-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.m3d-source-card{grid-gap:10px;align-items:center;background:#fff;border:1px solid #cfdbe8;border:1px solid var(--m3d-border);border-radius:14px;box-shadow:0 6px 16px #021e080d;box-shadow:var(--m3d-shadow-sm);display:grid;gap:10px;grid-template-columns:86px 1fr auto;padding:10px}.m3d-source-thumb{align-items:center;background:#eef3f8;border-radius:10px;box-sizing:border-box;color:#4d7399;color:var(--m3d-muted);display:flex;font-size:11px;height:64px;justify-content:center;overflow:hidden;padding:6px;text-align:center;width:86px}.m3d-source-thumb img{height:100%;object-fit:cover;width:100%}.m3d-source-body{display:flex;flex-direction:column;gap:3px;min-width:0}.m3d-source-name{color:#0d141c;color:var(--m3d-ink);font-size:14px;font-weight:700;line-height:20px}.m3d-source-desc,.m3d-source-meta{color:#4d7399;color:var(--m3d-muted);font-size:12px;line-height:18px}.m3d-source-desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.m3d-search{align-items:stretch;background:#fff;background:var(--m3d-panel);border:1px solid #cfdbe8;border:1px solid var(--m3d-border);border-radius:14px;border-radius:var(--m3d-radius);box-shadow:0 6px 16px #021e080d;box-shadow:var(--m3d-shadow-sm);display:flex;overflow:hidden}.m3d-search-ico{align-items:center;color:#4d7399;color:var(--m3d-muted);display:flex;height:48px;justify-content:center;width:40px}.m3d-search-input{background:#0000;border:0;color:#0d141c;color:var(--m3d-ink);flex:1 1;font-family:inherit;font-size:16px;height:48px;line-height:24px;padding:8px 16px 8px 8px}.m3d-search-input::placeholder{color:#4d7399;color:var(--m3d-muted)}.m3d-search-input:focus{outline:none}.m3d-search:focus-within{box-shadow:0 0 0 3px #97d9ff73;box-shadow:var(--m3d-focus-ring)}.m3d-tablewrap{padding:12px 16px 24px}.m3d-table{background:#fff;border:1px solid #cfdbe8;border:1px solid var(--m3d-border);border-collapse:initial;border-radius:14px;border-radius:var(--m3d-radius);border-spacing:0;box-shadow:0 6px 16px #021e080d;box-shadow:var(--m3d-shadow-sm);overflow:hidden;width:100%}.m3d-table thead th{background:#f7fafc;border-bottom:1px solid #cfdbe8;border-bottom:1px solid var(--m3d-border);font-weight:600;height:46px;padding:12px 16px;text-align:left}.m3d-table tbody td,.m3d-table thead th{color:#0d141c;color:var(--m3d-ink);font-size:14px;line-height:21px}.m3d-table tbody td{background:#fff;border-top:1px solid #e6e8eb;font-weight:400;height:72px;padding:8px 16px;vertical-align:middle}.m3d-table tbody tr:hover td{background:#f7fafcb3}.m3d-empty,.m3d-muted{color:#4d7399;color:var(--m3d-muted)}.m3d-empty{padding:18px 16px;text-align:center}.m3d-actions{align-items:center;display:flex;gap:10px}.m3d-action{background:#0000;border:1px solid #0000;border-radius:10px;color:#1800ad;color:var(--m3d-blue);cursor:pointer;font-family:inherit;font-size:14px;font-weight:700;height:32px;line-height:21px;padding:0 12px}.m3d-action:hover{background:color-mix(in srgb,#1800ad 8%,#fff);background:color-mix(in srgb,var(--m3d-blue) 8%,#fff);border-color:color-mix(in srgb,#1800ad 22%,#fff);border-color:color-mix(in srgb,var(--m3d-blue) 22%,#fff)}.m3d-action.danger{color:#ff2601;color:var(--m3d-danger)}.m3d-action.danger:hover{background:color-mix(in srgb,#ff2601 8%,#fff);background:color-mix(in srgb,var(--m3d-danger) 8%,#fff);border-color:color-mix(in srgb,#ff2601 18%,#fff);border-color:color-mix(in srgb,var(--m3d-danger) 18%,#fff)}.m3d-action:disabled{background:#0000;border-color:#0000;cursor:not-allowed;opacity:.45}.m3d-modal-backdrop{align-items:center;background:#021e0838;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:60}.m3d-modal{background:#fff;border:1px solid #cfdbe8;border:1px solid var(--m3d-border);border-radius:16px;box-shadow:0 30px 80px #021e0838;display:flex;flex-direction:column;max-height:90vh;max-width:100%;overflow:hidden;width:720px}.m3d-modal.m3d-modal-sm{width:560px}.m3d-modal-head{align-items:center;background:#f7fafc;border-bottom:1px solid #cfdbe8;border-bottom:1px solid var(--m3d-border);display:flex;justify-content:space-between;padding:14px 16px}.m3d-modal-title{font-weight:700;line-height:24px}.m3d-modal-title,.m3d-modal-x{color:#0d141c;color:var(--m3d-ink);font-size:16px}.m3d-modal-x{background:#fff;border:1px solid #cfdbe8;border:1px solid var(--m3d-border);border-radius:10px;cursor:pointer;height:34px;line-height:1;width:34px}.m3d-modal-body{display:flex;flex-direction:column;gap:12px;overflow:auto;padding:16px}.m3d-field{display:flex;flex-direction:column;font-weight:600;gap:8px}.m3d-field,.m3d-input{color:#0d141c;color:var(--m3d-ink);font-size:14px;line-height:21px}.m3d-input{height:44px;padding:0 12px}.m3d-input,.m3d-textarea{background:#fff;border:1px solid #cfdbe8;border:1px solid var(--m3d-border);border-radius:12px;font-family:inherit}.m3d-textarea{color:#0d141c;color:var(--m3d-ink);font-size:14px;line-height:21px;min-height:110px;padding:12px;resize:vertical}.m3d-input:focus,.m3d-textarea:focus{box-shadow:0 0 0 3px #97d9ff73;box-shadow:var(--m3d-focus-ring);outline:none}.m3d-file{color:#0d141c;color:var(--m3d-ink);display:flex;flex-direction:column;font-size:14px;font-weight:600;gap:8px;line-height:21px}.m3d-file-input{background:#f7fafccc;border:1px dashed #cfdbe8;border:1px dashed var(--m3d-border);border-radius:12px;padding:12px}.m3d-file-meta{color:#0d141c;color:var(--m3d-ink);font-size:13px;font-weight:600;line-height:20px}.m3d-file-meta.muted{color:#4d7399;color:var(--m3d-muted)}.m3d-modal-actions{background:#fff;border-top:1px solid #cfdbe8;border-top:1px solid var(--m3d-border);display:flex;gap:10px;justify-content:flex-end;padding:14px 16px}.m3d-btn{border:1px solid #0000;border-radius:12px;cursor:pointer;font-family:inherit;font-size:14px;font-weight:700;height:40px;line-height:21px;padding:0 14px}.m3d-btn.ghost{background:#fff;border-color:#cfdbe8;border-color:var(--m3d-border);color:#0d141c;color:var(--m3d-ink)}.m3d-btn.primary{background:#1800ad;background:var(--m3d-blue);box-shadow:0 10px 24px #1800ad2e;color:#fff}.m3d-btn.danger{background:#ff2601;background:var(--m3d-danger);box-shadow:0 10px 24px #ff260129;color:#fff}.m3d-btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.6}.m3d-btn:hover{filter:brightness(.98)}.m3d-danger-note{background:color-mix(in srgb,#ff2601 8%,#fff);background:color-mix(in srgb,var(--m3d-danger) 8%,#fff);border:1px solid color-mix(in srgb,#ff2601 25%,#cfdbe8);border:1px solid color-mix(in srgb,var(--m3d-danger) 25%,var(--m3d-border));border-radius:14px;padding:14px}.m3d-danger-title{color:#7a1406;font-size:14px;font-weight:800;line-height:21px;margin-bottom:6px}.m3d-danger-sub{color:#0d141c;color:var(--m3d-ink);font-size:14px;font-weight:600;line-height:21px}@media (max-width:980px){.page-models .dash-main{padding-left:16px;padding-right:16px}.m3d-header,.m3d-searchwrap,.m3d-sourcewrap,.m3d-tablewrap{max-width:960px;width:100%}.m3d-source-card{grid-template-columns:72px 1fr}.m3d-source-card .m3d-btn{grid-column:1/-1;width:100%}}:root{--rpt-ink:#0d1c12;--rpt-muted:#4d7399;--rpt-bg:#f7fafc;--rpt-panel:#fff;--rpt-border:#d9e5f2;--rpt-soft:#e8f2eb;--rpt-blue:#1800ad;--rpt-bad:#ff2601;--rpt-good:#1ae65c;--rpt-focus-ring:0 0 0 3px #97d9ff73;--rpt-shadow-sm:0 6px 16px #021e080d;--rpt-radius:14px}.page-reports{color:#0d1c12;color:var(--rpt-ink)}.page-reports .dash-main{background:#f7fafc;background:var(--rpt-bg);height:100vh;overflow-y:auto;padding:20px 0 36px 23px}.rpt-grid2,.rpt-h2,.rpt-header,.rpt-tablewrap{box-sizing:border-box;margin:0;max-width:calc(100% - 23px);padding-left:0;padding-right:0;width:960px}.rpt-header{padding:16px 16px 0}.rpt-headrow{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.rpt-title{color:#0d1c12;color:var(--rpt-ink);font-size:32px;font-weight:700;line-height:40px;margin:0}.rpt-actions{align-items:center;display:flex;gap:10px}.rpt-range{position:relative}.rpt-rangebtn{align-items:center;background:#fff;background:var(--rpt-panel);border:1px solid #d9e5f2;border:1px solid var(--rpt-border);border-radius:12px;box-shadow:0 6px 16px #021e080d;box-shadow:var(--rpt-shadow-sm);color:#0d1c12;color:var(--rpt-ink);cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;font-weight:700;gap:10px;height:36px;line-height:21px;padding:0 12px}.rpt-rangebtn:focus-visible{box-shadow:0 0 0 3px #97d9ff73;box-shadow:var(--rpt-focus-ring);outline:none}.rpt-range-label{color:#0d1c12;color:var(--rpt-ink)}.rpt-range-caret{align-items:center;color:#4d7399;color:var(--rpt-muted);display:inline-flex;justify-content:center}.rpt-menu{background:#fff;background:var(--rpt-panel);border:1px solid #d9e5f2;border:1px solid var(--rpt-border);border-radius:12px;box-shadow:0 16px 40px #021e081f;min-width:220px;padding:6px;position:absolute;right:0;top:calc(100% + 8px);z-index:5}.rpt-menuitem{background:#0000;border:1px solid #0000;border-radius:10px;color:#0d1c12;color:var(--rpt-ink);cursor:pointer;font-size:14px;font-weight:700;line-height:18px;padding:10px;text-align:left;width:100%}.rpt-menuitem:hover{background:#f7fafce6}.rpt-menuitem.active{background:color-mix(in srgb,#1800ad 8%,#fff);background:color-mix(in srgb,var(--rpt-blue) 8%,#fff);border-color:color-mix(in srgb,#1800ad 20%,#fff);border-color:color-mix(in srgb,var(--rpt-blue) 20%,#fff)}.rpt-export{background:#1800ad;background:var(--rpt-blue);border:1px solid #0000;border-radius:12px;box-shadow:0 10px 24px #1800ad2e;color:#fff;cursor:pointer;font-family:inherit;font-size:14px;font-weight:700;height:36px;line-height:21px;padding:0 12px}.rpt-export:hover{filter:brightness(.98)}.rpt-export:active{transform:translateY(1px)}.rpt-h2{color:#0d1c12;color:var(--rpt-ink);font-size:22px;font-weight:800;line-height:28px;margin-top:0;padding:20px 16px 12px}.rpt-grid2{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));padding:24px 16px}.rpt-card{background:#fff;background:var(--rpt-panel);border:1px solid #d9e5f2;border:1px solid var(--rpt-border);border-radius:14px;border-radius:var(--rpt-radius);box-shadow:0 6px 16px #021e080d;box-shadow:var(--rpt-shadow-sm);box-sizing:border-box;min-height:342px;padding:24px}.rpt-card-title{font-size:16px;font-weight:700;line-height:24px;margin-bottom:8px}.rpt-card-big,.rpt-card-title{color:#0d1c12;color:var(--rpt-ink)}.rpt-card-big{font-size:32px;font-weight:800;line-height:40px;margin-bottom:6px}.rpt-card-sub{display:flex;font-size:16px;font-weight:500;gap:6px;line-height:24px;margin-bottom:16px}.rpt-card-sub,.rpt-muted{color:#4d7399;color:var(--rpt-muted)}.rpt-pos{color:color-mix(in srgb,#1ae65c 70%,#0d1c12);color:color-mix(in srgb,var(--rpt-good) 70%,var(--rpt-ink));font-weight:800}.rpt-bad{color:#ff2601;color:var(--rpt-bad);font-weight:800}.rpt-area{background:linear-gradient(180deg,#fff,#f7fafccc);border:1px solid #d9e5f2;border:1px solid var(--rpt-border);border-radius:12px;height:148px;overflow:hidden;position:relative;width:100%}.rpt-area:before{background-image:repeating-linear-gradient(90deg,#d9e5f299 0,#d9e5f299 1px,#0000 0,#0000 38px),repeating-linear-gradient(0deg,#d9e5f299 0,#d9e5f299 1px,#0000 0,#0000 32px);content:"";inset:0;opacity:.55;pointer-events:none;position:absolute;z-index:0}.rpt-area-fill{background:linear-gradient(180deg,#97d9ff8c,#97d9ff1f 55%,#97d9ff00);-webkit-clip-path:polygon(0 78%,15% 56%,32% 52%,48% 64%,65% 58%,80% 72%,92% 54%,100% 62%,100% 100%,0 100%);clip-path:polygon(0 78%,15% 56%,32% 52%,48% 64%,65% 58%,80% 72%,92% 54%,100% 62%,100% 100%,0 100%);inset:0;position:absolute;z-index:1}.rpt-area-line{background:#0000;border:2px solid #1800ad;border:2px solid var(--rpt-blue);-webkit-clip-path:polygon(0 78%,15% 56%,32% 52%,48% 64%,65% 58%,80% 72%,92% 54%,100% 62%);clip-path:polygon(0 78%,15% 56%,32% 52%,48% 64%,65% 58%,80% 72%,92% 54%,100% 62%);inset:0;position:absolute;z-index:2}.rpt-axis{color:color-mix(in srgb,#0d1c12 80%,#4d7399);color:color-mix(in srgb,var(--rpt-ink) 80%,var(--rpt-muted));display:flex;font-size:13px;font-weight:800;justify-content:space-between;line-height:20px;margin-top:12px}.rpt-bars{align-items:flex-end;display:flex;flex-wrap:nowrap;gap:24px;height:181px;overflow-x:auto;overflow-y:hidden;padding:0 12px 6px;scroll-snap-type:x mandatory}.rpt-barcol{align-items:center;display:flex;flex:0 0 auto;flex-direction:column;gap:24px;scroll-snap-align:start}.rpt-bar{background:linear-gradient(180deg,#97d9fff2,#6cc8ff8c);border-radius:10px;border-top:2px solid #0d1c1233;box-shadow:0 10px 20px #97d9ff24;box-sizing:border-box;width:48px}.rpt-bar.h1{height:100px}.rpt-bar.h2{height:120px}.rpt-bar.h3{height:90px}.rpt-bar.h4{height:110px}.rpt-bar.hS{height:117px;width:57px}.rpt-bar.hR{height:98px;width:56px}.rpt-bar.hT{height:137px;width:66px}.rpt-bar.hT2{height:120px;width:66px}.rpt-bars.ratings .rpt-barcol span,.rpt-bars.student .rpt-barcol span,.rpt-bars.teacher .rpt-barcol span{text-align:center;width:90px}.rpt-barcol span{color:color-mix(in srgb,#0d1c12 80%,#4d7399);color:color-mix(in srgb,var(--rpt-ink) 80%,var(--rpt-muted));font-size:13px;font-weight:800;line-height:20px;word-break:break-word}.rpt-bars.ratings{gap:28px;height:auto;justify-content:flex-start;padding:0 12px 6px}.rpt-bars.ratings .rpt-barcol{gap:18px}.rpt-bars.ratings .rpt-bar{background:#97d9ffbf;border-radius:14px;border-top:0;box-shadow:0 10px 18px #97d9ff29;height:112px;width:64px}.rpt-bars.ratings .rpt-barcol span{width:110px}.rpt-bars::-webkit-scrollbar{height:10px}.rpt-bars::-webkit-scrollbar-thumb{background:color-mix(in srgb,#d9e5f2 70%,#fff);background:color-mix(in srgb,var(--rpt-border) 70%,#fff);border-radius:999px}.rpt-bars::-webkit-scrollbar-track{background:#0000}.rpt-tablewrap{padding:12px 16px}.rpt-table{background:#fff;background:var(--rpt-panel);border:1px solid #d9e5f2;border:1px solid var(--rpt-border);border-collapse:initial;border-radius:14px;border-radius:var(--rpt-radius);border-spacing:0;box-shadow:0 6px 16px #021e080d;box-shadow:var(--rpt-shadow-sm);overflow:hidden;width:100%}.rpt-table thead th{background:#f7fafc;border-bottom:1px solid #d9e5f2;border-bottom:1px solid var(--rpt-border);color:#0d1c12;color:var(--rpt-ink);font-size:14px;font-weight:800;height:46px;line-height:21px;padding:12px 16px;text-align:left}.rpt-th-actions{text-align:right}.rpt-table tbody td{border-top:1px solid #cfdbe8;color:#0d1c12;color:var(--rpt-ink);font-size:14px;font-weight:500;height:72px;line-height:21px;padding:8px 16px;vertical-align:middle}.rpt-table tbody tr:hover td{background:#f7fafcb3}.rpt-progress{align-items:center;display:inline-flex;gap:12px}.rpt-meter{flex:none;height:6px;position:relative;width:88px}.rpt-track{background:color-mix(in srgb,#d9e5f2 75%,#fff);background:color-mix(in srgb,var(--rpt-border) 75%,#fff);width:88px}.rpt-fill,.rpt-track{border-radius:999px;height:6px}.rpt-fill{background:linear-gradient(90deg,#1800ad,#6cc8ff);background:linear-gradient(90deg,var(--rpt-blue) 0,#6cc8ff 100%);left:0;position:absolute;top:0;transition:width .16s ease}.rpt-pct{color:#0d1c12;color:var(--rpt-ink);font-size:14px;font-weight:800;line-height:21px;min-width:28px}.rpt-actions-cell{text-align:right}.rpt-view{background:#0000;border:1px solid #0000;border-radius:10px;color:#1800ad;color:var(--rpt-blue);cursor:pointer;font-family:inherit;font-size:14px;font-weight:800;height:32px;line-height:21px;padding:0 12px}.rpt-view:hover{background:color-mix(in srgb,#1800ad 8%,#fff);background:color-mix(in srgb,var(--rpt-blue) 8%,#fff);border-color:color-mix(in srgb,#1800ad 22%,#fff);border-color:color-mix(in srgb,var(--rpt-blue) 22%,#fff)}.rpt-modal-backdrop{align-items:center;background:#021e0838;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:60}.rpt-modal{background:#fff;background:var(--rpt-panel);border:1px solid #d9e5f2;border:1px solid var(--rpt-border);border-radius:16px;box-shadow:0 30px 80px #021e0838;display:flex;flex-direction:column;max-height:90vh;max-width:100%;overflow:hidden;width:720px}.rpt-modal-head{align-items:center;background:#f7fafc;border-bottom:1px solid #d9e5f2;border-bottom:1px solid var(--rpt-border);display:flex;justify-content:space-between;padding:14px 16px}.rpt-modal-title{font-weight:800;line-height:24px}.rpt-modal-title,.rpt-modal-x{color:#0d1c12;color:var(--rpt-ink);font-size:16px}.rpt-modal-x{background:#fff;border:1px solid #d9e5f2;border:1px solid var(--rpt-border);border-radius:10px;cursor:pointer;height:34px;line-height:1;width:34px}.rpt-modal-body{overflow:auto;padding:16px}.rpt-kpis{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.rpt-kpi{background:#fff;border:1px solid #d9e5f2;border:1px solid var(--rpt-border);border-radius:14px;box-shadow:0 6px 16px #021e080d;box-shadow:var(--rpt-shadow-sm);padding:14px}.rpt-kpi-label{color:#4d7399;color:var(--rpt-muted);font-size:13px;font-weight:800;line-height:20px}.rpt-kpi-value{color:#0d1c12;color:var(--rpt-ink);font-size:22px;font-weight:800;line-height:28px;margin-top:6px}.rpt-detail-note{background:#f7fafcd9;border:1px solid #d9e5f2;border:1px solid var(--rpt-border);border-radius:14px;color:#4d7399;color:var(--rpt-muted);font-weight:600;margin-top:14px;padding:14px}.rpt-modal-actions{background:#fff;border-top:1px solid #d9e5f2;border-top:1px solid var(--rpt-border);display:flex;gap:10px;justify-content:flex-end;padding:14px 16px}.rpt-btn{border:1px solid #0000;border-radius:12px;cursor:pointer;font-family:inherit;font-size:14px;font-weight:800;height:40px;line-height:21px;padding:0 14px}.rpt-btn.ghost{background:#fff;border-color:#d9e5f2;border-color:var(--rpt-border);color:#0d1c12;color:var(--rpt-ink)}.rpt-btn:hover{filter:brightness(.98)}@media (max-width:1100px){.rpt-grid2{grid-template-columns:1fr}}@media (max-width:980px){.page-reports .dash-main{height:auto;overflow:visible;padding-left:16px;padding-right:16px}.rpt-grid2,.rpt-h2,.rpt-header,.rpt-tablewrap{max-width:960px;width:100%}.rpt-headrow{align-items:flex-start;flex-direction:column}.rpt-actions{flex-wrap:wrap;justify-content:flex-start;width:100%}.rpt-kpis{grid-template-columns:1fr}}:root{--set-ink:#0d1c12;--set-muted:#4d7399;--set-bg:#f7fafc;--set-border:#d9e5f2;--set-blue:#1800ad;--set-soft:#e8f2eb;--set-shadow-sm:0 6px 16px #021e080d;--set-radius:14px;--set-good:#1ae65c;--set-bad:#ff2601;--set-danger:#b42318;--set-danger-bg:#b4231814}.page-settings .dash-main{background:#f7fafc;background:var(--set-bg);padding:20px 0 36px 23px}.set-container{max-width:calc(100% - 23px);position:relative;width:960px}.set-header{box-sizing:border-box;padding:16px}.set-title{color:#0d1c12;color:var(--set-ink);font-size:32px;font-weight:700;line-height:40px;margin:0}.set-block{box-sizing:border-box;margin:12px 0;max-width:none;width:100%}.set-field{display:flex;flex-direction:column;gap:8px}.set-actions,.set-block,.set-toggle-row{background:#fff;border:1px solid #d9e5f2;border:1px solid var(--set-border);border-radius:14px;border-radius:var(--set-radius);box-shadow:0 6px 16px #021e080d;box-shadow:var(--set-shadow-sm)}.set-block{padding:16px}.set-actions{display:flex;height:auto;justify-content:flex-end;margin:12px 0;max-width:none;padding:12px 16px;width:100%}.set-label{font-weight:500}.set-input,.set-label,.set-static{color:#0d1c12;color:var(--set-ink);font-size:16px;line-height:24px}.set-input,.set-static{background:#fff;border:1px solid #d9e5f2;border:1px solid var(--set-border);border-radius:12px;box-sizing:border-box;font-family:inherit;padding:12px;width:100%}.set-static{align-items:center;display:flex;height:32px}.set-input{height:56px}.set-input:focus{box-shadow:0 0 0 3px #97d9ff73;outline:none}.set-input::placeholder{color:#4d7399;color:var(--set-muted)}.set-btn{background:#1800ad;background:var(--set-blue);border:0;border-radius:12px;box-shadow:0 10px 24px #1800ad2e;color:#fff;cursor:pointer;font-family:inherit;font-size:14px;font-weight:700;height:40px;line-height:21px;padding:0 16px;transition:transform .14s ease,filter .14s ease,box-shadow .14s ease}.set-btn:hover{box-shadow:0 12px 28px #1800ad33;filter:brightness(.98)}.set-btn:active{transform:translateY(1px)}.set-btn:focus-visible{box-shadow:0 0 0 3px #97d9ff73;outline:none}.set-btn:disabled{box-shadow:none;cursor:not-allowed;filter:grayscale(.15);opacity:.62}.set-page-actions{display:flex;justify-content:flex-end;padding:8px 6px 0}.set-logout{align-items:center;background:linear-gradient(180deg,#fffffff5,#f7fafcf5);border:1px solid #d9e5f2;border:1px solid var(--set-border);border-radius:14px;box-shadow:0 14px 35px #0000001a;color:#b42318;color:var(--set-danger);cursor:pointer;display:inline-flex;font-weight:800;gap:10px;height:44px;padding:0 14px;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease,filter .14s ease}.set-logout:hover{border-color:#b4231859;box-shadow:0 18px 38px #0000001f;filter:brightness(1.02);transform:translateY(-1px)}.set-logout:focus-visible{box-shadow:0 0 0 3px #ff26012e,0 14px 35px #0000001f;outline:none}.set-logout-ico{align-items:center;display:inline-flex;flex:none;height:18px;justify-content:center;width:18px}.set-logout-text{font-size:14px;letter-spacing:.01em}.set-section-title{color:#0d1c12;color:var(--set-ink);font-size:22px;font-weight:700;line-height:28px;margin:8px 0 0;padding:20px 16px 12px}.set-toggle-row{align-items:center;box-sizing:border-box;display:flex;gap:16px;height:56px;justify-content:space-between;margin:12px 0;max-width:none;min-height:56px;padding:0 16px;width:100%}.set-toggle-label{color:#0d1c12;color:var(--set-ink);font-size:16px;font-weight:400;line-height:24px}.set-switch{background:#e8f2eb;background:var(--set-soft);border:0;border-radius:15.5px;cursor:pointer;height:31px;padding:2px;position:relative;width:51px}.set-switch:after{background:#fff;border-radius:13.5px;box-shadow:0 3px 8px #00000026;content:"";height:27px;left:2px;position:absolute;top:2px;transition:transform .16s ease;width:27px}.set-switch.on{background:color-mix(in srgb,#1800ad 25%,#e8f2eb);background:color-mix(in srgb,var(--set-blue) 25%,var(--set-soft))}.set-switch.on:after{transform:translateX(20px)}.set-toast{background:#fff;border:1px solid #d9e5f2;border:1px solid var(--set-border);border-radius:14px;box-shadow:0 6px 16px #021e080d;box-shadow:var(--set-shadow-sm);color:#0d1c12;color:var(--set-ink);font-weight:700;margin:0 0 12px;padding:12px 14px;position:-webkit-sticky;position:sticky;top:12px;z-index:2}.set-toast.success{background:color-mix(in srgb,#1ae65c 10%,#fff);background:color-mix(in srgb,var(--set-good) 10%,#fff);border-color:color-mix(in srgb,#1ae65c 35%,#d9e5f2);border-color:color-mix(in srgb,var(--set-good) 35%,var(--set-border))}.set-toast.error{background:color-mix(in srgb,#ff2601 10%,#fff);background:color-mix(in srgb,var(--set-bad) 10%,#fff);border-color:color-mix(in srgb,#ff2601 35%,#d9e5f2);border-color:color-mix(in srgb,var(--set-bad) 35%,var(--set-border))}.set-toast.warning{background:#fff7de;border-color:#ffd37a;color:#7a4b00}@media (max-width:1280px){.page-settings .dash-main{padding-left:16px;padding-right:16px}}@media (max-width:980px){.page-settings .dash-main{padding:16px}.set-actions,.set-block,.set-container,.set-toggle-row{max-width:960px;width:100%}.set-input,.set-static{width:100%}}.page-superadmin-audit .dash-main{background:linear-gradient(180deg,#f7fafc,#fff 55%);padding:28px 28px 44px}.page-superadmin-audit{--saud-ink:#121217;--saud-muted:#61708a;--saud-border:#dbdee6;--saud-surface:#fff;--saud-soft:#f0f2f5;--saud-primary:#1800ad;--saud-success:#08873b;--saud-success-bg:#e8f2eb;--saud-warning:#a16207;--saud-warning-bg:#fef3c7;--saud-danger:#b91c1c;--saud-danger-bg:#fee2e2;--saud-info:#1d4ed8;--saud-info-bg:#dbeafe;--saud-neutral:#475569;--saud-neutral-bg:#e8edf5}.page-superadmin-audit .saud-filters,.page-superadmin-audit .saud-header,.page-superadmin-audit .saud-searchwrap,.page-superadmin-audit .saud-tablewrap{margin-left:auto;margin-right:auto;max-width:960px}.saud-header{margin-bottom:14px}.saud-stats{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:10px}.saud-stat{background:#fff;border:1px solid #dbdee6d9;border-radius:14px;box-shadow:0 10px 26px #1212170f;padding:14px 14px 12px}.saud-stat-k{color:var(--saud-muted);font-size:13px;font-weight:900;letter-spacing:.02em;text-transform:uppercase}.saud-stat-v{color:var(--saud-ink);font-size:28px;font-weight:900;line-height:34px;margin-top:8px}.saud-stat-v.saud-stat-small{color:var(--saud-ink);font-size:14px;font-weight:900;line-height:20px;margin-top:10px}.saud-stat-hint{color:var(--saud-muted);font-size:13px;font-weight:700;margin-top:6px}.saud-title{color:var(--saud-ink);font-size:32px;font-weight:800;letter-spacing:-.02em;line-height:40px;margin:0}.saud-subtitle{color:var(--saud-muted);font-size:14px;line-height:21px;margin:10px 0 0}.saud-searchwrap{margin-top:12px}.saud-search{align-items:center;background:var(--saud-soft);border:1px solid #61708a24;border-radius:12px;box-shadow:0 10px 26px #1212170d;display:flex;gap:10px;height:48px;padding:0 14px;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.saud-search-ico{color:var(--saud-muted);display:grid;place-items:center}.saud-search-input{background:#0000;border:0;color:var(--saud-ink);font-size:16px;height:100%;line-height:24px;outline:none;width:100%}.saud-search-input::placeholder{color:var(--saud-muted)}.saud-search:focus-within{background:#fff;border-color:#1800ad59;box-shadow:0 0 0 4px #1800ad1f;transform:translateY(-1px)}.saud-filters{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;z-index:3}.saud-filters,.saud-filterwrap{position:relative}.saud-chip{align-items:center;background:var(--saud-soft);border:1px solid #61708a2e;border-radius:10px;color:var(--saud-ink);cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:10px;height:36px;padding:0 12px 0 14px;transition:transform .14s ease,box-shadow .14s ease,background .14s ease,border-color .14s ease}.saud-chip:hover{background:#e9edf3;border-color:#61708a47;box-shadow:0 10px 22px #1212170f;transform:translateY(-1px)}.saud-chip:focus-visible{border-color:#1800ad59;box-shadow:0 0 0 4px #1800ad1f;outline:none}.saud-chip-caret{color:var(--saud-muted);display:grid;place-items:center}.saud-menu{background:var(--saud-surface);border:1px solid var(--saud-border);border-radius:12px;box-shadow:0 16px 40px #12121724;left:0;max-height:280px;min-width:240px;overflow:auto;padding:6px;position:absolute;top:calc(100% + 8px);z-index:5}.saud-menuitem{background:#0000;border:0;border-radius:10px;color:var(--saud-ink);cursor:pointer;font-size:14px;padding:10px;text-align:left;width:100%}.saud-menuitem:hover{background:#97d9ff47}.saud-menuitem.active{background:#97d9ff73;font-weight:800}.saud-clear{background:#fff;border:1px solid #61708a2e;border-radius:10px;color:var(--saud-muted);cursor:pointer;font-weight:700;height:36px;padding:0 14px;transition:transform .14s ease,box-shadow .14s ease,background .14s ease,border-color .14s ease}.saud-clear:hover{background:#f7fafc;border-color:#1800ad40;box-shadow:0 10px 22px #1212170f;color:var(--saud-ink);transform:translateY(-1px)}.saud-tablewrap{background:var(--saud-surface);border:1px solid var(--saud-border);border-radius:14px;box-shadow:0 10px 30px #1212170f;margin-top:14px;overflow:auto}.saud-table{border-collapse:collapse;min-width:860px;width:100%}.saud-table td,.saud-table th{border-bottom:1px solid #dbdee6b3;color:var(--saud-ink);font-size:14px;line-height:21px;padding:14px 16px;text-align:left;vertical-align:middle}.saud-table th{background:#fff;font-weight:800;position:-webkit-sticky;position:sticky;top:0;z-index:2}.saud-row{cursor:pointer;transition:background .14s ease}.saud-table tbody tr:hover td{background:#97d9ff24}.saud-empty,.saud-muted{color:var(--saud-muted)}.saud-empty{padding:24px 16px}.saud-view{background:#0000;border:0;border-radius:10px;color:var(--saud-muted);cursor:pointer;font-weight:800;padding:8px 10px}.saud-view:hover{background:#1800ad14;color:var(--saud-primary)}.saud-view:focus-visible{box-shadow:0 0 0 4px #1800ad1f;outline:none}.saud-actionpill{align-items:center;background:var(--saud-neutral-bg);border:1px solid #61708a2e;border-radius:999px;color:var(--saud-neutral);display:inline-flex;font-size:12px;font-weight:800;justify-content:center;line-height:18px;padding:6px 10px;white-space:nowrap}.saud-actionpill.success{background:var(--saud-success-bg);border-color:#08873b40;color:var(--saud-success)}.saud-actionpill.warning{background:var(--saud-warning-bg);border-color:#a1620740;color:var(--saud-warning)}.saud-actionpill.danger{background:var(--saud-danger-bg);border-color:#b91c1c40;color:var(--saud-danger)}.saud-actionpill.info{background:var(--saud-info-bg);border-color:#1d4ed840;color:var(--saud-info)}.saud-modal-backdrop{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a8c;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:50}.saud-modal{background:#fff;border:1px solid #dbdee6e6;border-radius:16px;box-shadow:0 22px 60px #00000038;overflow:hidden;width:min(680px,92vw)}.saud-modal-head{align-items:center;background:linear-gradient(180deg,#fff,#f7fafc);border-bottom:1px solid #dbdee6cc;display:flex;justify-content:space-between;padding:14px 16px}.saud-modal-title{color:var(--saud-ink);font-size:18px;font-weight:900}.saud-modal-x{background:#fff;border:1px solid #61708a2e;border-radius:10px;color:var(--saud-muted);cursor:pointer;font-weight:900;height:36px;width:36px}.saud-modal-x:hover{background:#1800ad14;border-color:#1800ad40;color:var(--saud-primary)}.saud-modal-x:focus-visible{border-color:#1800ad59;box-shadow:0 0 0 4px #1800ad1f;outline:none}.saud-modal-body{grid-gap:12px;display:grid;gap:12px;padding:16px}.saud-detailrow{grid-gap:12px;align-items:start;background:#fff;border:1px solid #dbdee6d9;border-radius:14px;display:grid;gap:12px;grid-template-columns:160px 1fr;padding:12px}.saud-detailk{color:var(--saud-muted);font-size:13px;font-weight:900}.saud-detailv{color:var(--saud-ink);font-size:14px}.saud-modal-actions{background:linear-gradient(180deg,#fff,#f7fafc);border-top:1px solid #dbdee6cc;display:flex;justify-content:flex-end;padding:14px 16px}.saud-btn{background:var(--saud-primary);border:1px solid #61708a2e;border-radius:12px;box-shadow:0 10px 22px #1800ad33;color:#fff;cursor:pointer;font-weight:900;height:40px;padding:0 16px;transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}.saud-btn:hover{filter:brightness(1.06);transform:translateY(-1px)}@media (max-width:720px){.page-superadmin-audit .dash-main{padding:20px 18px 34px}.saud-detailrow,.saud-stats{grid-template-columns:1fr}.saud-table{min-width:640px}}.page-password-resets .dash-main{background:#f7fafc}.pr-alert,.pr-header,.pr-stats,.pr-tablewrap{box-sizing:border-box;max-width:calc(100% - 24px);width:1040px}.pr-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;padding:18px 16px}.pr-title{color:#0d1c12;font-size:32px;font-weight:800;line-height:1.2;margin:0}.pr-subtitle{color:#4d7399;font-size:15px;margin:10px 0 0}.pr-action,.pr-refresh{border:0;border-radius:12px;cursor:pointer;font-family:inherit;font-weight:800}.pr-refresh{background:#1800ad;box-shadow:0 10px 24px #1800ad29;color:#fff;min-height:42px;padding:0 18px}.pr-action:disabled,.pr-refresh:disabled{cursor:not-allowed;opacity:.55}.pr-stats{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));padding:0 16px 14px}.pr-stat{background:#fff;border:1px solid #d9e5f2;border-radius:16px;box-shadow:0 6px 16px #021e080d;padding:16px}.pr-stat span{color:#4d7399;display:block;font-size:13px;font-weight:700}.pr-stat strong{color:#0d1c12;display:block;font-size:30px;margin-top:6px}.pr-alert{border-radius:12px;font-weight:700;margin:0 16px 14px;padding:12px 14px}.pr-alert.error{background:#fee2e2;border:1px solid #fecaca;color:#991b1b}.pr-alert.success{background:#dcfce7;border:1px solid #bbf7d0;color:#166534}.pr-tablewrap{background:#fff;border:1px solid #d9e5f2;border-radius:16px;box-shadow:0 8px 20px #021e080d;margin:0 16px 32px;overflow:auto}.pr-table{border-collapse:collapse;min-width:860px;width:100%}.pr-table td,.pr-table th{border-bottom:1px solid #e2ebf5;color:#0d1c12;padding:16px;text-align:left;vertical-align:middle}.pr-table th{background:#f8fbff;color:#405f80;font-size:13px;letter-spacing:.03em;text-transform:uppercase}.pr-account{display:flex;flex-direction:column;gap:4px}.pr-account span,.pr-muted{color:#64748b;font-size:13px}.pr-account .warning{color:#b45309}.pr-status{align-items:center;border-radius:999px;display:inline-flex;font-size:13px;font-weight:800;min-height:30px;padding:0 11px}.pr-status.pending{background:#fef3c7;color:#92400e}.pr-status.approved{background:#dcfce7;color:#166534}.pr-status.rejected{background:#fee2e2;color:#991b1b}.pr-actions{display:flex;flex-wrap:wrap;gap:8px}.pr-action{min-height:34px;padding:0 12px}.pr-action.approve{background:#1800ad;color:#fff}.pr-action.reject{background:#fee2e2;color:#991b1b}.pr-empty{color:#4d7399;font-weight:700;padding:40px 16px;text-align:center}@media (max-width:760px){.pr-header,.pr-stats{flex-direction:column;grid-template-columns:1fr}}.notifications-layout{display:flex;min-height:100vh}.notifications-main{display:flex;flex:1 1;flex-direction:column}.notifications-content{flex:1 1;padding:24px clamp(14px,3.4vw,28px) 36px}.notifications-title{color:#13213f;font-size:clamp(30px,3.5vw,40px);font-weight:900;margin:0 0 20px}.notifications-list{display:flex;flex-direction:column;gap:12px}.notification-item{align-items:flex-start;background:#fff;border:1px solid #d9e4ff;border-radius:14px;cursor:pointer;display:flex;gap:14px;padding:14px;position:relative;transition:background-color .2s ease,box-shadow .2s ease,transform .2s ease}.notification-item:hover{box-shadow:0 10px 20px #2c448c24;transform:translateY(-1px)}.notification-item.unread{background:#f4f8ff;border-color:#bfd1ff}.notification-icon-wrapper{align-items:center;border-radius:10px;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.notification-icon-wrapper svg{height:20px;width:20px}.notification-icon-wrapper.activity{background:#e3f2fd;color:#1976d2}.notification-icon-wrapper.feedback{background:#e8f5e9;color:#388e3c}.notification-icon-wrapper.reminder{background:#fff3e0;color:#f57c00}.notification-icon-wrapper.achievement{background:#fce4ec;color:#c2185b}.notification-content{flex:1 1;min-width:0}.notification-title{color:#13213f;font-size:15px;font-weight:800;margin:0 0 4px}.notification-message{color:#5e739b;font-size:13px;line-height:1.45;margin:0 0 8px}.notification-time{color:#879ac0;font-size:12px;font-weight:700}.unread-dot{background:#496fff;border-radius:50%;flex-shrink:0;height:8px;margin-top:6px;width:8px}.notifications-placeholder{align-items:center;background:#fff;border:1px solid #d8e4ff;border-radius:14px;display:flex;flex-direction:column;justify-content:center;padding:80px 20px}.placeholder-icon{color:#c4cde2;height:80px;margin-bottom:24px;width:80px}.placeholder-icon svg{fill:currentColor;height:100%;width:100%}.notifications-placeholder h2{color:#13213f;font-size:20px;font-weight:800;margin:0 0 8px}.notifications-placeholder p{color:#5e739b;font-size:14px;margin:0}.student-notifications{background:radial-gradient(circle at 8% 10%,#ffbf7a38 0,#ffbf7a00 230px),radial-gradient(circle at 90% 8%,#6c94ff33 0,#6c94ff00 240px),#f2f6ff;padding-left:90px}.teacher-notifications{background:#fafafa;padding-left:90px}@media (max-width:768px){.student-notifications,.teacher-notifications{padding-left:0}.notifications-content{padding:16px 14px 96px}}.app{background:#fff;min-height:100vh}
/*# sourceMappingURL=main.b892a284.css.map*/