@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-vietnamese-400-normal-CRcqvyg1.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-400-normal-BuGn0gnm.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-vietnamese-600-normal-nyU-ZL2p.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-600-normal-DkpCIyan.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-latin-400-normal-PpnXBOrz.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-400-normal-bXgqVju9.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-latin-600-normal-BZDkUTrt.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-600-normal-5IO4e7bK.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/be-vietnam-pro-vietnamese-800-normal-D4LFh2W4.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-800-normal-CA0HL1e4.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/be-vietnam-pro-latin-800-normal-BpHZASpI.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-800-normal-Cwp5p0gU.woff)format("woff")}:root{--color-primary:#1f4fa8;--color-primary-hover:#183f88;--color-primary-text:#fff;--color-primary-soft:#e3eefb;--color-primary-soft-hover:#d2e3f8;--color-accent:#8cc4e8;--color-bg:#f3f8fe;--color-bg-gradient-end:#dcebfa;--color-surface:#fff;--color-text:#1b2b4b;--color-text-muted:#5a6a8a;--color-border:#cfdcef;--color-focus:#5b9be0;--color-error:#c0392b;--color-error-bg:#fdecea;--color-flag:#e8a33d;--color-warn:#96600c;--color-warn-bg:#fdf4e3;--color-success:#1e7b4f;--color-success-bg:#e6f5ec;--brand-blue:#1f58cc;--brand-blue-deep:#143f9e;--brand-navy:#16235f;--brand-sky:#55a3d6;--brand-sea:#34508a;--brand-yellow:#ffc62e;--brand-yellow-hover:#ffb703;--brand-orange:#f2683a;--font-family:"Be Vietnam Pro", "Segoe UI", Roboto, Arial, sans-serif;--font-size-base:18px;--radius:14px;--radius-small:10px;--shadow-card:0 6px 24px #1f4fa814;--button-height:52px}*,:before,:after{box-sizing:border-box}html{font-size:var(--font-size-base)}body{min-height:100vh;font-family:var(--font-family);color:var(--color-text);background:linear-gradient(180deg, var(--color-surface) 0%, var(--color-bg) 45%, var(--color-bg-gradient-end) 100%);-webkit-font-smoothing:antialiased;background-attachment:fixed;margin:0;line-height:1.55}h1,h2,h3{margin:0 0 .5em;line-height:1.3}.btn{min-height:var(--button-height);border-radius:var(--radius-small);cursor:pointer;border:2px solid #0000;justify-content:center;align-items:center;padding:0 1.6rem;font-family:inherit;font-size:1rem;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s,transform .1s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:focus-visible,.input:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.btn-primary{background:var(--color-primary);color:var(--color-primary-text)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-primary-soft);border-color:var(--color-accent)}.btn-link{min-height:auto;color:var(--color-primary);text-underline-offset:3px;background:0 0;border:none;padding:.25rem 0;font-weight:600;text-decoration:underline}.btn-large{min-height:64px;padding:0 2.4rem;font-size:1.2rem}.btn:disabled{opacity:.6;cursor:not-allowed}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:2rem}@media (width<=600px){.card{padding:1.4rem 1.1rem}}.field{margin-bottom:1.2rem}.field label{margin-bottom:.35rem;font-weight:600;display:block}.input{width:100%;min-height:var(--button-height);border:2px solid var(--color-border);border-radius:var(--radius-small);background:var(--color-surface);color:var(--color-text);padding:0 1rem;font-family:inherit;font-size:1rem;transition:border-color .15s,background-color .15s}.input:focus{border-color:var(--color-primary);background:var(--color-surface)}.input.has-error{border-color:var(--color-error);background:var(--color-error-bg)}.field-hint{color:var(--color-text-muted);margin:.3rem 0 0;font-size:.85rem}.field-error{color:var(--color-error);margin:.3rem 0 0;font-size:.9rem;font-weight:600}.alert-error{border-radius:var(--radius-small);background:var(--color-error-bg);color:var(--color-error);padding:1rem 1.2rem;font-weight:600}.muted{color:var(--color-text-muted)}.checkbox-label,.field .checkbox-label{color:var(--color-text-muted);cursor:pointer;align-items:center;gap:.5rem;margin-top:.5rem;font-size:.95rem;font-weight:400;display:inline-flex}.checkbox-label input{width:20px;height:20px;accent-color:var(--color-primary)}.alert-success{border-radius:var(--radius-small);background:var(--color-success-bg);color:var(--color-success);padding:1rem 1.2rem;font-weight:600}.btn-small{min-height:40px;padding:0 1rem;font-size:.9rem}.btn-danger{background:var(--color-surface);color:var(--color-error);border-color:#efc4bf}.btn-danger:hover{background:var(--color-error-bg)}select.input{padding-right:.6rem}.sea-waves,.sea-bubbles,.sea-sparkle,.sea-dots,.sea-stripes,.sea-dolphin,.sea-lifebuoy{pointer-events:none;-webkit-user-select:none;user-select:none}.sea-waves{height:110px;position:absolute;bottom:-1px;left:0;right:0;overflow:hidden}.sea-wave{width:200%;height:100%;animation:22s linear infinite sea-drift;position:absolute;bottom:0;left:0}.sea-wave-1{height:100%;animation-duration:30s;animation-direction:reverse}.sea-wave-2{height:80%;animation-duration:22s}.sea-wave-3{height:58%;animation-duration:16s}@keyframes sea-drift{0%{transform:translate(0)}to{transform:translate(-50%)}}.sea-bubbles{position:absolute;inset:0;overflow:hidden}.sea-bubbles span{opacity:0;background:radial-gradient(circle at 35% 30%,#ffffff8c,#ffffff0d 60%);border:1.5px solid #ffffff8c;border-radius:50%;animation:11s ease-in infinite sea-rise;position:absolute;bottom:-30px}@keyframes sea-rise{0%{opacity:0;transform:translateY(0)translate(0)}10%{opacity:.9}50%{transform:translateY(-45vh)translate(10px)}90%{opacity:.6}to{opacity:0;transform:translateY(-90vh)translate(-6px)}}.sea-sparkle{animation:3.2s ease-in-out infinite sea-twinkle}@keyframes sea-twinkle{0%,to{opacity:1;transform:scale(1)rotate(0)}50%{opacity:.35;transform:scale(.75)rotate(20deg)}}.sea-dolphin{display:block}.sea-float{animation:6s ease-in-out infinite sea-float}@keyframes sea-float{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-14px)rotate(2deg)}}.sea-emblem{max-width:100%;height:auto;display:block}.site-header{z-index:5;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem clamp(16px,4vw,48px);display:flex;position:relative}.site-brand{color:#fff;border-radius:12px;align-items:center;gap:.7rem;text-decoration:none;display:inline-flex}.site-brand:focus-visible{outline:3px solid var(--brand-yellow);outline-offset:4px}.site-brand-logo{object-fit:contain;background:#fff;border-radius:50%;width:52px;height:52px;padding:5px;box-shadow:0 4px 14px #0a1e5a4d}.site-brand-text{white-space:nowrap;flex-direction:column;line-height:1.1;display:flex}.site-brand-name{letter-spacing:.04em;text-transform:uppercase;font-size:1.15rem;font-weight:800}.site-brand-sub{letter-spacing:.22em;text-transform:uppercase;opacity:.85;font-size:.72rem;font-weight:600}.btn-ghost-light{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff1f;border-color:#ffffff8c;gap:.5rem;min-height:44px;padding:0 1.1rem;font-size:.92rem}.btn-ghost-light:hover{background:#ffffff3d;border-color:#fff}.btn-ghost-light:focus-visible{outline-color:var(--brand-yellow)}.btn-sun{background:var(--brand-yellow);color:var(--brand-navy);border-color:var(--brand-yellow);gap:.6rem;box-shadow:0 10px 24px #ffaa0059,inset 0 -3px #00000014}.btn-sun:hover{background:var(--brand-yellow-hover);border-color:var(--brand-yellow-hover)}.btn-sun:focus-visible{outline-color:#fff}.btn-sun svg{transition:transform .2s}.btn-sun:hover svg{transform:translate(4px)}@media (width<=600px){.site-brand-logo{width:42px;height:42px}.site-brand-name{font-size:.95rem}.site-brand-sub{letter-spacing:.15em;font-size:.62rem}}@media (width<=400px){.site-header{gap:.5rem;padding-left:12px;padding-right:12px}.site-brand{gap:.45rem}.site-brand-logo{width:36px;height:36px;padding:3px}.site-brand-name{font-size:.85rem}.site-brand-sub{letter-spacing:.1em;font-size:.55rem}}@media (prefers-reduced-motion:reduce){.sea-wave,.sea-bubbles span,.sea-sparkle,.sea-float{animation:none!important}.sea-bubbles span{opacity:.5;bottom:20%}}.home{background:#f3f8fe;flex-direction:column;min-height:100vh;display:flex;overflow-x:hidden}.home-hero{color:#fff;background:radial-gradient(circle at 78% 42%, #78b4ff73, transparent 42%), linear-gradient(160deg, #2a6be0 0%, var(--brand-blue) 45%, var(--brand-blue-deep) 100%);padding-bottom:120px;position:relative;overflow:hidden}.home-hero-glow{pointer-events:none;background:radial-gradient(circle,#ffffff14,#0000 65%);border:2px solid #ffffff1f;border-radius:50%;width:900px;height:900px;position:absolute;top:50%;left:50%;transform:translate(-42%,-55%)}.home-dots{color:#ffffff73;position:absolute}.home-dots-1{top:110px;left:3%}.home-dots-2{bottom:150px;right:4%}.home-stripes{color:var(--brand-yellow);opacity:.85;position:absolute;bottom:140px;left:44%}.home-spark{color:#fff;position:absolute}.home-spark-1{top:130px;left:44%}.home-spark-2{animation-delay:1.2s;top:200px;left:49%}.home-spark-3{animation-delay:.6s;top:34%;right:3%}.home-hero-inner{z-index:2;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:2rem;max-width:1180px;margin:0 auto;padding:1.5rem clamp(16px,4vw,48px) 0;display:grid;position:relative}.home-badge{background:var(--brand-yellow);color:var(--brand-navy);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;align-items:center;gap:.45rem;margin:0 0 1.1rem;padding:.35rem 1rem;font-size:.85rem;font-weight:800;display:inline-flex;box-shadow:0 6px 18px #ffb40059}.home-badge .sea-sparkle{animation:none}.home-title{letter-spacing:.01em;text-transform:uppercase;text-shadow:0 6px 24px #0a1e6459;margin:0;font-size:clamp(2.6rem,6vw,4.6rem);font-weight:800;line-height:.98}.home-title span{letter-spacing:.12em;color:#dbe9ff;margin-top:.4rem;font-size:.48em;display:block}.home-motto{letter-spacing:.14em;text-transform:uppercase;color:#ffffffd9;margin:1rem 0 1.4rem;font-family:Courier New,Courier,monospace;font-size:.95rem;font-weight:700}.home-points{flex-direction:column;gap:.75rem;margin:0 0 2rem;padding:0;list-style:none;display:flex}.home-points li{align-items:center;gap:.8rem;font-size:1.02rem;font-weight:600;display:flex}.home-point-icon{background:var(--brand-orange);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex;box-shadow:0 4px 12px #f2683a73}.home-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;max-width:600px;display:grid}.home-choice{border-radius:22px;flex-direction:column;gap:.3rem;padding:1.1rem 1.3rem;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex}.home-choice:hover{transform:translateY(-3px)}.home-choice:focus-visible{outline-offset:4px;outline:3px solid #fff}.home-choice-title{white-space:nowrap;align-items:center;gap:.5rem;font-size:clamp(1.05rem,1.7vw,1.3rem);font-weight:800;display:inline-flex}.home-choice-text{font-size:.92rem;line-height:1.4}.home-choice.is-training{background:var(--brand-yellow);color:var(--brand-navy);animation:2.8s ease-in-out infinite home-pulse}.home-choice.is-training .home-choice-text{color:#16235fd9}.home-choice.is-class{color:#5a2fc4;background:#fff;box-shadow:0 10px 24px #141e5a40}.home-choice.is-class .home-choice-text{color:var(--color-text-muted)}@keyframes home-pulse{0%,to{box-shadow:0 10px 24px #ffaa0059,0 0 #ffc62e8c}50%{box-shadow:0 10px 24px #ffaa0059,0 0 0 14px #ffc62e00}}.home-art{aspect-ratio:1;justify-self:center;width:min(460px,100%);position:relative}.home-art-ring{border:3px solid #ffffff59;border-radius:50%;position:absolute;inset:-4%;box-shadow:0 0 0 18px #ffffff0f}.home-art-pill{background:var(--brand-yellow);border-radius:999px;width:62%;height:15%;position:absolute;bottom:14%;right:-12%;transform:rotate(-24deg);box-shadow:0 10px 30px #ffaa0059}.home-art-disc{background:radial-gradient(circle at 40% 35%,#fff 0%,#eef5ff 70%,#dbe9fb 100%);border-radius:50%;position:absolute;inset:6%;box-shadow:0 30px 60px #081e6459,inset 0 -10px 30px #1f58cc1f}.home-art-emblem{filter:drop-shadow(0 10px 18px #14327840);width:80%;position:absolute;top:8%;left:12%}.home-art-dolphin{color:#fff;--dolphin-eye:var(--brand-blue);position:absolute}.home-art-dolphin-1{opacity:.9;width:24%;animation-delay:1s;top:18%;left:-14%}.home-art-dolphin-2{opacity:.55;width:15%;animation-delay:2.5s;bottom:4%;left:-2%;transform:scaleX(-1)}.home-art-buoy{width:13%;height:auto;animation-delay:.5s;position:absolute;top:4%;right:0}.home-art-spark{color:#fff;position:absolute}.home-art-spark-1{color:var(--brand-yellow);top:30%;right:-6%}.home-art-spark-2{animation-delay:1.4s;top:0;left:4%}.home-steps{z-index:1;width:100%;max-width:1100px;margin:0 auto;padding:1.5rem clamp(16px,4vw,48px) 9rem;position:relative}.home-section-title{text-align:center;color:var(--brand-navy);margin-bottom:2rem;font-size:clamp(1.5rem,3vw,2rem);font-weight:800}.home-section-title span{color:var(--brand-blue);background:linear-gradient(#0000 62%,#ffc62e99 62%);padding:0 .2rem}.home-step-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem;margin:0;padding:0;list-style:none;display:grid}.home-step{border:1px solid var(--color-border);background:#fff;border-radius:20px;padding:2rem 1.5rem 1.6rem;transition:transform .2s,box-shadow .2s;position:relative;box-shadow:0 12px 30px #1f4fa814}.home-step:hover{transform:translateY(-4px);box-shadow:0 18px 36px #1f4fa824}.home-step-no{background:var(--brand-yellow);width:38px;height:38px;color:var(--brand-navy);border-radius:50%;justify-content:center;align-items:center;font-weight:800;display:inline-flex;position:absolute;top:-18px;left:1.5rem;box-shadow:0 4px 10px #fa06}.home-step-icon{background:linear-gradient(140deg, var(--brand-sky), var(--brand-blue));color:#fff;border-radius:18px;justify-content:center;align-items:center;width:60px;height:60px;margin-bottom:.9rem;display:inline-flex}.home-step h3{color:var(--brand-navy);margin-bottom:.3rem;font-size:1.15rem}.home-step p{color:var(--color-text-muted);margin:0;font-size:.95rem}.home-steps-dolphin{width:90px;color:var(--brand-sky);opacity:.5;position:absolute;bottom:4.5rem;right:6%}.home-footer{background:var(--brand-navy);color:#ffffffd9;margin-top:auto;position:relative}.home-footer-waves{top:-109px;bottom:auto}.home-footer-inner{z-index:1;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.2rem 2rem;max-width:1100px;margin:0 auto;padding:.5rem clamp(16px,4vw,48px) 2rem;display:flex;position:relative}.home-footer-brand{align-items:center;gap:.9rem;display:flex}.home-footer-brand strong{color:#fff;font-size:1.1rem}.home-footer-brand p{opacity:.75;margin:0;font-size:.85rem}.home-footer-logo{background:#fff;border-radius:50%;width:54px;height:54px;padding:5px}.home-contact{flex-wrap:wrap;gap:.6rem 1.8rem;margin:0;padding:0;list-style:none;display:flex}.home-contact li{align-items:center;gap:.5rem;display:inline-flex}.home-contact svg{color:var(--brand-yellow)}.home-contact a{color:var(--brand-yellow);font-weight:700;text-decoration:none}.home-contact a:hover,.home-contact a:focus-visible{text-decoration:underline}@media (width<=900px){.home-hero-inner{text-align:center;grid-template-columns:1fr;gap:1rem}.home-art{order:-1;width:min(300px,72vw);margin-top:.5rem}.home-points{align-items:center}.home-points li{text-align:left}.home-choices{text-align:left;margin:0 auto}.home-stripes,.home-spark-1,.home-spark-2{display:none}.home-step-list{grid-template-columns:1fr;gap:1.8rem;max-width:480px;margin:0 auto}}@media (width<=600px){.site-header .btn-ghost-light{white-space:nowrap;min-height:38px;padding:0 .75rem;font-size:.8rem}.home-copy{flex-direction:column;display:flex}.home-choices{order:1;grid-template-columns:1fr;width:100%;margin-bottom:1.4rem}.home-points{order:2;align-items:stretch;max-width:340px;margin:0 auto .5rem}.home-art{width:min(210px,56vw)}.home-title{font-size:2.5rem}.home-motto{margin:.7rem 0 1.1rem}.home-badge{align-self:center;margin-bottom:.8rem}.home-hero{padding-bottom:90px}.home-title span{font-size:.52em}.home-motto{letter-spacing:.08em;font-size:.75rem}.home-points li{font-size:.95rem}.home-dots,.home-steps-dolphin{display:none}}@media (prefers-reduced-motion:reduce){.home-choice.is-training{animation:none}}.student-name-row{grid-template-columns:3fr 2fr;gap:0 1rem;display:grid}.student-submit{width:100%;margin-top:.4rem}@media (width<=600px){.student-name-row{grid-template-columns:1fr}}.exam-list{flex-direction:column;gap:.9rem;margin:0;padding:0;list-style:none;display:flex}.exam-item{border:1px solid var(--color-border);background:linear-gradient(120deg, #fff 0%, var(--color-primary-soft) 100%);border-radius:16px;align-items:center;gap:1rem;padding:1rem 1.1rem;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.exam-item:hover{border-color:var(--brand-sky);transform:translateY(-2px);box-shadow:0 10px 24px #1f58cc1f}.exam-icon{background:linear-gradient(140deg, var(--brand-sky), var(--brand-blue));color:#fff;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:54px;height:54px;display:inline-flex;box-shadow:0 6px 14px #1f58cc40}.exam-info{flex:1;min-width:0}.exam-title{color:var(--brand-navy);overflow-wrap:anywhere;margin:0;font-size:1.12rem}.exam-meta{flex-wrap:wrap;gap:.4rem;margin:.35rem 0 0;display:flex}.exam-chip{border:1px solid var(--color-border);color:var(--color-text-muted);background:#fff;border-radius:999px;align-items:center;padding:.1rem .65rem;font-size:.85rem;font-weight:600;display:inline-flex}.exam-item.is-hw{background:linear-gradient(120deg,#fff 0%,#f1ebff 100%)}.exam-item.is-hw .exam-icon{background:linear-gradient(140deg,#a084f0,#6b3fd8);box-shadow:0 6px 14px #6b3fd840}.exam-chip.is-teacher{color:#6b3fd8;border-color:#d6c8fb}.exam-start{border-radius:999px;flex-shrink:0;gap:.4rem}.exam-start-error{margin:0 0 1rem}.exam-empty{text-align:center;background:var(--color-primary-soft);color:var(--color-text-muted);border-radius:16px;padding:1.5rem;font-weight:600}.exam-error{flex-direction:column;align-items:flex-start;gap:.8rem;display:flex}@media (width<=600px){.exam-item{flex-wrap:wrap}.exam-icon{width:46px;height:46px}.exam-start{width:100%}}.shell{background:#f3f8fe;min-height:100vh;overflow-x:hidden}.shell-top{color:#fff;background:radial-gradient(circle at 85% 20%, #78b4ff73, transparent 40%), linear-gradient(160deg, #2a6be0 0%, var(--brand-blue) 50%, var(--brand-blue-deep) 100%);padding-bottom:150px;position:relative;overflow:hidden}.shell-dots{color:#fff6;position:absolute;top:90px;right:6%}.shell-spark{color:#fff;position:absolute}.shell-spark-1{top:110px;left:8%}.shell-spark-2{color:var(--brand-yellow);animation-delay:1s;top:170px;right:22%}.shell-dolphin{color:#ffffffd9;--dolphin-eye:var(--brand-blue);width:110px;position:absolute;bottom:70px;left:6%}.shell-heading{z-index:2;text-align:center;max-width:720px;margin:0 auto;padding:.6rem 16px 0;position:relative}.shell-title{text-shadow:0 4px 18px #0a1e644d;margin:0 0 .3rem;font-size:clamp(1.6rem,4vw,2.3rem);font-weight:800}.shell-subtitle{color:#ffffffe0;margin:0}.shell-steps{justify-content:center;align-items:center;gap:.4rem;margin:1.3rem 0 0;padding:0;list-style:none;display:flex}.shell-steps li{color:#ffffffb3;align-items:center;gap:.45rem;font-size:.9rem;font-weight:600;display:flex}.shell-steps li+li:before{content:"";background:#fff6;border-radius:2px;width:34px;height:2px;margin-right:.4rem}.shell-step-no{border:2px solid #fff9;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:.85rem;font-weight:800;display:inline-flex}.shell-steps li.is-current{color:#fff}.shell-steps li.is-current .shell-step-no{background:var(--brand-yellow);border-color:var(--brand-yellow);color:var(--brand-navy);box-shadow:0 0 0 5px #ffc62e4d}.shell-steps li.is-done{color:#fff}.shell-steps li.is-done .shell-step-no{color:var(--brand-blue);background:#fff;border-color:#fff}.shell-main{z-index:3;max-width:640px;margin:-120px auto 0;padding:0 16px 3rem;position:relative}.shell-main.is-narrow{max-width:480px}.shell-main.is-wide{max-width:920px}.shell-main>.card,.shell-main>*>.card{border:none;border-radius:22px;box-shadow:0 24px 60px #143c9629}@media (width<=600px){.shell-top{padding-bottom:120px}.shell-main{margin-top:-95px}.shell-steps li{flex-direction:column;gap:.25rem;font-size:.75rem}.shell-steps li+li:before{display:none}.shell-steps{gap:1.2rem}.shell-dolphin,.shell-dots{display:none}}.start-card-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.2rem;display:flex}.start-card-title{color:var(--brand-navy);margin:0;font-size:1.25rem;font-weight:800}.ca-pick-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.8rem;display:grid}.ca-pick-class{border-left:8px solid var(--cls);background:var(--cls-soft);color:var(--brand-navy);border-radius:18px;flex-direction:column;gap:.25rem;padding:1.1rem 3rem 1.1rem 1.2rem;text-decoration:none;transition:transform .12s,box-shadow .12s;display:flex;position:relative}.ca-pick-class:hover{transform:translateY(-2px);box-shadow:0 10px 22px #14285a24}.ca-pick-class:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.ca-pick-class svg{color:var(--cls);position:absolute;top:50%;right:1rem;transform:translateY(-50%)}.ca-pick-class-name{font-size:1.25rem;font-weight:800}.ca-pick-class-meta{color:var(--color-text-muted);font-size:.9rem;font-weight:600}.ca-pick-foot{color:var(--color-text-muted);text-align:center;margin:1.2rem 0 0}.ca-pick-foot a{color:var(--color-primary);font-weight:700}.ca-search{margin-bottom:1rem}.ca-names{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.6rem;display:grid}.ca-name{border:2px solid var(--color-border);min-height:60px;color:var(--brand-navy);text-align:left;cursor:pointer;background:#fff;border-radius:16px;align-items:center;gap:.7rem;padding:.5rem .9rem;font-family:inherit;font-size:1.05rem;font-weight:700;transition:border-color .12s,background-color .12s,transform 80ms;display:flex}.ca-name:hover{border-color:var(--brand-sky);background:var(--color-primary-soft)}.ca-name:active{transform:scale(.98)}.ca-name:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.ca-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-weight:800;display:inline-flex}.ca-item{flex-direction:column;align-items:stretch}.ca-item-row{align-items:center;gap:1rem;display:flex}.ca-mine{margin:.4rem 0 0}.ca-status{color:var(--color-text-muted);background:#eef1f6;border-radius:999px;padding:.1rem .7rem;font-size:.85rem;font-weight:700;display:inline-block}.ca-status.is-done{background:var(--color-success-bg);color:var(--color-success)}.ca-status.is-live{color:#a36a00;background:#fff2cf}.ca-pw{border-top:1px dashed #d6c8fb;margin-top:.8rem;padding-top:.8rem}.ca-pw label{margin-bottom:.35rem;font-weight:600;display:block}.ca-pw-row{flex-wrap:wrap;gap:.5rem;display:flex}.ca-pw-row .input{flex:1;min-width:160px}.ca-error{margin:.7rem 0 0}@media (width<=600px){.ca-item-row{flex-wrap:wrap}.ca-names{grid-template-columns:1fr}}.login-card{text-align:left}.login-notice{border-radius:var(--radius-small);background:var(--color-primary-soft);color:var(--color-text);padding:.9rem 1.1rem;font-weight:600}.login-submit{width:100%;margin-top:1rem}.login-help{text-align:center;margin:1.4rem 0 .4rem;font-size:.9rem}.login-card>.btn-link{text-align:center;margin:0 auto;display:block}.login-current p{text-align:center;margin:0 0 .6rem}.login-current .login-submit+.login-submit{margin-top:.6rem}.simple-page{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem 16px;display:flex}.simple-card{text-align:center;width:100%;max-width:460px}.notfound-emblem{width:160px;margin:0 auto .6rem}.admin-page{min-height:100vh}.admin-topbar{color:#fff;background:radial-gradient(circle at 80% -40%, #78b4ff8c, transparent 45%), linear-gradient(120deg, var(--brand-blue-deep) 0%, var(--brand-blue) 55%, #2a6be0 100%);border-bottom:3px solid var(--brand-yellow);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem 1.5rem;padding:.75rem 2rem;display:flex;position:relative;overflow:hidden}.admin-topbar-spark{color:#ffffffb3;position:absolute}.admin-topbar-spark-1{top:10px;left:42%}.admin-topbar-spark-2{color:var(--brand-yellow);animation-delay:1.2s;bottom:10px;left:56%}.admin-brand{color:#fff;border-radius:12px;align-items:center;gap:.75rem;text-decoration:none;display:flex;position:relative}.admin-brand:focus-visible{outline:3px solid var(--brand-yellow);outline-offset:4px}.admin-brand-logo{background:#fff;border-radius:50%;width:48px;height:48px;padding:4px;box-shadow:0 4px 14px #0a1e5a4d}.admin-brand-text{flex-direction:column;line-height:1.15;display:flex}.admin-brand-name{letter-spacing:.04em;text-transform:uppercase;font-size:1.2rem;font-weight:800}.admin-brand-sub{opacity:.85;font-size:.8rem;font-weight:600}.admin-user{flex-wrap:wrap;align-items:center;gap:.6rem 1rem;display:flex;position:relative}.admin-role{background:var(--brand-yellow);color:var(--brand-navy);border-radius:999px;margin-left:.6rem;padding:.15rem .7rem;font-size:.8rem;font-weight:800}.admin-nav{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--color-border);background:#fffffff5;flex-wrap:wrap;align-items:center;gap:.2rem;padding:.5rem 1.5rem;display:flex;box-shadow:0 4px 16px #1f4fa80f}.admin-nav a{color:var(--color-text);border-radius:999px;align-items:center;gap:.4rem;padding:.5rem .85rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:background-color .15s,color .15s;display:inline-flex}.admin-nav a svg{color:var(--brand-sky)}.admin-nav a:hover{background:var(--color-primary-soft)}.admin-nav a.active{background:var(--brand-blue);color:#fff;box-shadow:0 4px 12px #1f58cc4d}.admin-nav a.active svg{color:var(--brand-yellow)}.admin-nav-divider{background:var(--color-border);width:1px;height:28px;margin:0 .3rem}.admin-main{max-width:1280px;margin:0 auto;padding:2rem}.admin-title{color:var(--brand-navy);padding-bottom:.35rem;font-size:1.6rem;font-weight:800;position:relative}.admin-title:after{content:"";background:linear-gradient(90deg, var(--brand-yellow), var(--brand-orange));border-radius:2px;width:56px;height:4px;position:absolute;bottom:0;left:0}.admin-intro{color:var(--color-text-muted);margin:0 0 1.6rem}.admin-section{margin-bottom:1.8rem}.admin-section-title{color:var(--brand-navy);font-size:1.2rem}.admin-welcome{color:#fff;background:radial-gradient(circle at 85% 30%, #78b4ff80, transparent 45%), linear-gradient(150deg, #2a6be0 0%, var(--brand-blue) 50%, var(--brand-blue-deep) 100%);border-radius:24px;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:2rem;padding:2rem 2.4rem 3.2rem;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 40px #1f58cc40}.admin-welcome-text{z-index:2;max-width:640px;position:relative}.admin-welcome-hello{background:var(--brand-yellow);color:var(--brand-navy);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;margin:0 0 .6rem;padding:.2rem .8rem;font-size:.8rem;font-weight:800;display:inline-block}.admin-welcome-title{margin:0 0 .4rem;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800}.admin-welcome-intro{color:#ffffffe6;margin:0 0 1.3rem}.admin-welcome-intro a{color:var(--brand-yellow);font-weight:700}.admin-welcome-actions{flex-wrap:wrap;gap:.8rem;display:flex}.admin-welcome-actions .btn{border-radius:999px;gap:.5rem}.admin-welcome-emblem{z-index:2;background:#fffffff2;border-radius:50%;flex-shrink:0;width:200px;padding:18px;position:relative;box-shadow:0 16px 36px #081e644d}.admin-welcome-dots{color:#fff6;position:absolute;top:22px;right:260px}.admin-welcome-spark{color:var(--brand-yellow);position:absolute;top:18px;right:40px}.admin-welcome-dolphin{color:#ffffffbf;--dolphin-eye:var(--brand-blue);width:80px;position:absolute;bottom:34px;right:250px}.admin-welcome-waves{height:60px}.admin-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.admin-card{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-card);color:var(--color-text);border-radius:20px;flex-direction:column;gap:.5rem;padding:1.4rem;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex;position:relative}.admin-card:hover{border-color:var(--brand-sky);transform:translateY(-3px);box-shadow:0 16px 34px #1f58cc24}.admin-card:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.admin-card-icon{color:#fff;border-radius:16px;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:.3rem;display:inline-flex}.tone-blue{background:linear-gradient(140deg, #3b7bea, var(--brand-blue-deep))}.tone-sky{background:linear-gradient(140deg, #7cc0ea, var(--brand-sky))}.tone-yellow{background:linear-gradient(140deg, #ffd766, var(--brand-yellow-hover));color:var(--brand-navy)}.tone-orange{background:linear-gradient(140deg, #ff9466, var(--brand-orange))}.tone-navy{background:linear-gradient(140deg, var(--brand-sea), var(--brand-navy))}.admin-card h3{color:var(--brand-navy);margin:0;font-size:1.12rem}.admin-card p{color:var(--color-text-muted);flex:1;margin:0}.admin-card-open{background:var(--color-primary-soft);color:var(--color-primary);border-radius:999px;align-self:flex-start;align-items:center;gap:.35rem;margin-top:.6rem;padding:.4rem 1rem;font-weight:700;transition:background-color .15s,color .15s;display:inline-flex}.admin-card:hover .admin-card-open{background:var(--brand-blue);color:#fff}.admin-card .btn{align-self:flex-start;margin-top:.5rem}@media (width<=800px){.admin-welcome{padding:1.6rem 1.3rem 3rem}.admin-welcome-emblem,.admin-welcome-dolphin,.admin-welcome-dots{display:none}}.admin-card-soon{background:var(--color-primary-soft);color:var(--color-text-muted);border-radius:999px;align-self:flex-start;margin-top:.5rem;padding:.3rem .8rem;font-size:.85rem;font-weight:600}.admin-form{max-width:480px}.admin-form-row{grid-template-columns:repeat(3,1fr);gap:0 1rem;display:grid}.admin-form-actions{flex-wrap:wrap;gap:.8rem;margin-top:.4rem;display:flex}.admin-message{margin:0 0 1rem}.table-wrap{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.95rem}.table th,.table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--color-border);padding:.8rem 1rem}.table th{background:var(--color-primary-soft);white-space:nowrap;font-weight:600}.table tbody tr:last-child td{border-bottom:none}.table-empty{text-align:center;color:var(--color-text-muted);padding:2rem}.table-actions{flex-wrap:wrap;gap:.5rem;display:flex}.nowrap{white-space:nowrap}.tag{white-space:nowrap;border-radius:999px;padding:.15rem .7rem;font-size:.85rem;font-weight:600;display:inline-block}.tag-ok{background:var(--color-success-bg);color:var(--color-success)}.tag-off{background:var(--color-error-bg);color:var(--color-error)}.tag-info{background:var(--color-primary-soft);color:var(--color-primary)}.row-panel td{background:var(--color-bg)}.filters{flex-wrap:wrap;align-items:flex-end;gap:.8rem 1rem;margin-bottom:1.2rem;display:flex}.filters .field{min-width:170px;margin-bottom:0}.pagination{justify-content:center;align-items:center;gap:1rem;margin-top:1.2rem;display:flex}@media (width<=700px){.admin-topbar,.admin-nav,.admin-main{padding-left:16px;padding-right:16px}.admin-form-row{grid-template-columns:1fr}.admin-nav-divider{display:none}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.6rem;display:flex}.page-head-actions{flex-wrap:wrap;gap:.6rem;display:flex}.breadcrumb{color:var(--color-text-muted);margin:0 0 .4rem;font-size:.9rem}.breadcrumb a{color:var(--color-primary);font-weight:600}.small-text{font-size:.85rem}.tag-warn{background:var(--color-warn-bg);color:var(--color-warn)}.text-ok{color:var(--color-success);font-weight:600}.text-warn{color:var(--color-warn);font-weight:600}.text-error{color:var(--color-error);font-weight:600}.exam-edit-status{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-bottom:1rem;display:flex}.save-status{color:var(--color-text-muted);font-size:.9rem}.save-status.is-bad{color:var(--color-error);font-weight:600}.lock-banner{border-radius:var(--radius-small);border:2px solid var(--color-warn);background:var(--color-warn-bg);margin-bottom:1.2rem;padding:1rem 1.2rem}.lock-banner p{margin:0 0 .7rem}.lock-banner.is-error{border-color:var(--color-error);background:var(--color-error-bg)}.check-result{border-radius:var(--radius-small);border:2px solid var(--color-warn);background:var(--color-warn-bg);margin-bottom:1.2rem;padding:1rem 1.2rem}.check-result.has-errors{border-color:var(--color-error);background:var(--color-error-bg)}.check-result p{margin:0 0 .4rem}.check-result ul{margin:0 0 .8rem;padding-left:1.4rem}.check-result li{margin-bottom:.2rem}fieldset.exam-settings{min-width:0;margin:0 0 .5rem}fieldset.exam-settings:disabled{background:var(--color-bg)}.exam-settings .admin-form-row{grid-template-columns:1fr 2fr 1fr}.exam-settings-checks{flex-direction:column;gap:.3rem;margin-bottom:1.2rem;display:flex}.exam-settings-checks .checkbox-label{color:var(--color-text);font-size:1rem}.textarea{resize:vertical;min-height:110px;padding:.7rem 1rem;line-height:1.5}.content-hint{margin-top:.9rem}.versions-table{margin:.8rem 0 1rem}.unpublish-btn{margin-top:.4rem}@media (width<=700px){.exam-settings .admin-form-row{grid-template-columns:1fr}}.row-link{color:var(--color-primary);text-decoration:none}.row-link:hover{text-decoration:underline}.results-table td{vertical-align:middle}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem 1.5rem;margin-bottom:1.4rem;display:grid}.detail-value{font-weight:600}.other-attempts{margin-top:1.5rem}.results-table .col-exam{min-width:220px}.result-mistakes{white-space:normal;max-width:280px;margin-top:.3rem}.guide{max-width:900px}.guide-toc ol{columns:2;column-gap:2rem;margin:.5rem 0 0}.guide-toc a,.guide-back a{color:var(--color-primary)}.guide-section{margin-top:1.2rem;scroll-margin-top:1rem;line-height:1.7}.guide-section ol,.guide-section ul{padding-left:1.4rem}.guide-section li{margin-bottom:.35rem}.guide-section code{background:var(--color-primary-soft);border-radius:4px;padding:.05rem .35rem}.guide-btn{color:var(--color-primary)}.guide-tip{border-radius:var(--radius-small);background:var(--color-warn-bg);margin:.8rem 0 0;padding:.8rem 1rem}.guide-faq dt{margin-top:.8rem;font-weight:600}.guide-faq dd{margin:.2rem 0 0}.guide-back{margin-top:1.5rem}@media (width<=700px){.guide-toc ol{columns:1}}.danger-zone{background:var(--color-error-bg);border-color:#efc4bf}.type-list{border:none;flex-direction:column;gap:.4rem;margin:0 0 1rem;padding:0;display:flex}.type-row{border:2px solid var(--color-border);border-radius:var(--radius-small);background:var(--color-surface);cursor:pointer;align-items:center;gap:.7rem;padding:.55rem .9rem;display:flex}.type-row:hover{border-color:var(--color-accent)}.type-row.is-on{border-color:var(--color-primary);background:var(--color-primary-soft)}.type-row input{width:18px;height:18px;accent-color:var(--color-primary);flex-shrink:0}.type-row-text{flex-wrap:wrap;flex:1;align-items:baseline;gap:.1rem .7rem;display:flex}.type-row-desc{color:var(--color-text-muted);font-size:.88rem}.type-row-remove{color:var(--color-error);flex-shrink:0}.type-group-label{color:var(--color-text-muted);margin:.5rem 0 0;font-size:.85rem;font-weight:600}.create-exam-fields .field{margin-bottom:.3rem}.create-exam-hint{margin:0 0 .9rem}.tag-hw{color:#6b3fd8;background:#efe9ff}.hw-sub{color:#6b3fd8;font-weight:600}.purpose-list{border:none;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.6rem;margin:0 0 1.1rem;padding:0;display:grid}.purpose-list legend{margin-bottom:.4rem;font-weight:600}.purpose-card{border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer;align-items:flex-start;gap:.7rem;padding:.85rem 1rem;display:flex}.purpose-card span{flex-direction:column;display:flex}.purpose-card input{width:20px;height:20px;accent-color:var(--color-primary);margin-top:.2rem}.purpose-card:hover{border-color:var(--color-accent)}.purpose-card.is-on{border-color:var(--color-primary);background:var(--color-primary-soft)}.purpose-card.is-hw.is-on{background:#f4efff;border-color:#8358e8}.purpose-card.is-hw input{accent-color:#8358e8}.exam-settings .admin-form-row.hw-fields,.hw-fields{grid-template-columns:2fr 1fr 1fr}.hw-title-input{align-items:stretch;display:flex}.hw-prefix{border-radius:var(--radius-small) 0 0 var(--radius-small);color:#6b3fd8;white-space:nowrap;background:#efe9ff;border:2px solid #c9b6f5;border-right:none;align-items:center;padding:0 .9rem;font-weight:800;display:inline-flex}.hw-title-input .input{border-radius:0 var(--radius-small) var(--radius-small) 0}.exam-view-tabs{background:var(--color-primary-soft);border-radius:999px;flex-wrap:wrap;gap:4px;margin-bottom:1rem;padding:4px;display:inline-flex}.exam-view-tabs button{min-height:40px;color:var(--color-primary);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:0 1.1rem;font-family:inherit;font-size:.95rem;font-weight:700}.exam-view-tabs button.is-on{background:var(--brand-blue);color:#fff}.exam-view-count{min-width:22px;color:var(--color-primary);background:#ffffffb3;border-radius:999px;margin-left:.25rem;padding:0 6px;font-size:.8rem;display:inline-block}@media (width<=700px){.hw-fields{grid-template-columns:1fr}}.template-row{flex-wrap:wrap;align-items:flex-end;gap:.6rem 1rem;display:flex}.template-row .field{flex:1;min-width:260px;margin-bottom:0}.template-row .admin-form-actions{margin-top:0}.ca-create{border-radius:var(--radius);background:#faf7ff;border:2px dashed #c9b6f5;margin:.4rem 0 .8rem;padding:.9rem 1rem .2rem}.ca-classes{flex-wrap:wrap;gap:.5rem;margin:.3rem 0 .4rem;display:flex}.ca-class{border:2px solid var(--color-border);border-left:6px solid var(--cls);background:var(--color-surface);min-height:44px;color:var(--color-text);cursor:pointer;border-radius:12px;align-items:center;gap:.45rem;padding:0 .9rem 0 .6rem;font-family:inherit;font-size:.95rem;font-weight:700;display:inline-flex}.ca-class.is-on{border-color:var(--cls);background:var(--cls-soft)}.ca-class:disabled{cursor:not-allowed;opacity:.7}.ca-class-check{border:2px solid var(--color-border);width:22px;height:22px;color:var(--cls);background:#fff;border-radius:6px;justify-content:center;align-items:center;font-size:.85rem;display:inline-flex}.ca-class.is-on .ca-class-check{border-color:var(--cls);background:var(--cls);color:#fff}.ca-class-count{color:var(--color-text-muted);font-size:.8rem;font-weight:600}.ca-password{max-width:460px;margin-top:.8rem}.ca-card .admin-section-title{margin-bottom:.2rem}.act-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:1rem;display:flex}.act-stats,.act-actions{flex-wrap:wrap;align-items:center;gap:.6rem 1rem;display:flex}.act-actions .checkbox-label{color:var(--color-text);margin:0}.act-stat{background:var(--color-primary-soft);color:var(--brand-navy);border-radius:999px;padding:.35rem .9rem}.act-stat strong{font-size:1.15rem}.act-class{margin-bottom:1.4rem}.act-class-title{border-left:6px solid var(--cls,var(--brand-blue));color:var(--brand-navy);margin:0 0 .5rem;padding-left:.7rem;font-size:1.1rem}.act-table td{vertical-align:middle}.act-table tr.is-missing td{background:#fbfcfe}.act-chips{flex-wrap:wrap;gap:.35rem;display:flex}.act-chip{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);white-space:nowrap;border-radius:999px;padding:.2rem .65rem;font-size:.85rem;text-decoration:none;display:inline-block}.act-chip:hover{border-color:var(--brand-sky);background:var(--color-primary-soft)}.act-chip.is-live{background:#fffbf0;border-color:#f1d48a}.guide-sub{color:var(--color-primary);margin:1.2rem 0 .4rem;font-size:1.05rem}:root{--att-present:#1e8a4f;--att-present-bg:#e3f6ea;--att-late:#a36a00;--att-late-bg:#fff2cf;--att-excused:#2563c9;--att-excused-bg:#e6efff;--att-absent:#c0392b;--att-absent-bg:#fdeaea}.cl-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.cl-btn-icon{gap:.45rem}.cl-icon-btn{width:44px;height:44px;color:var(--color-text);cursor:pointer;background:0 0;border:none;border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.cl-icon-btn:hover{background:var(--color-primary-soft)}.cl-icon-btn.is-boxed{border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-primary)}.cl-icon-btn:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.cl-subtitle{color:var(--brand-navy);margin:1.4rem 0 .6rem;font-size:1.05rem}.cl-required{color:var(--color-error);font-size:.85rem;font-weight:400}.cl-label-like{margin-bottom:.35rem;font-weight:600;display:block}.cl-pill{background:var(--color-primary-soft);color:var(--color-text-muted);white-space:nowrap;border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .7rem;font-size:.82rem;font-weight:700;display:inline-flex}.cl-pill.is-due{background:var(--att-absent-bg);color:var(--att-absent)}.cl-pill.is-soon{background:var(--att-late-bg);color:var(--att-late)}.cl-pill.is-ok{color:var(--color-text-muted);background:#eef3fa}.cl-empty{border:2px dashed var(--color-border);color:var(--color-text-muted);text-align:center;background:#ffffffb3;border-radius:20px;flex-direction:column;align-items:center;gap:.6rem;padding:2.5rem 1rem;display:flex}.cl-empty svg{color:var(--brand-sky)}.cl-empty p{margin:0}.cl-seg{background:var(--color-primary-soft);border-radius:999px;gap:4px;padding:4px;display:inline-flex}.cl-seg button{min-height:40px;color:var(--color-primary);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:0 1.1rem;font-family:inherit;font-size:.95rem;font-weight:700}.cl-seg button.is-on{background:var(--brand-blue);color:#fff;box-shadow:0 4px 12px #1f58cc4d}.cl-seg button:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.cl-info,.cl-alert-fee,.cl-alert-warn,.cl-alert-info{border-radius:var(--radius-small);align-items:flex-start;gap:.6rem;margin:0 0 1rem;padding:.9rem 1.1rem;display:flex}.cl-info svg,.cl-alert-fee svg,.cl-alert-warn svg{flex-shrink:0;margin-top:.15rem}.cl-info{background:var(--color-primary-soft);color:var(--brand-navy)}.cl-alert-info{color:var(--brand-navy);background:#eaf4ff;border:2px solid #b9d7fb;font-weight:600;display:block}.cl-alert-fee{background:var(--att-late-bg);color:#7a4f00;border:2px solid #f3d27a}.cl-alert-fee p{margin:0}.cl-alert-fee p+p{margin-top:.25rem}.cl-alert-warn{background:var(--color-warn-bg);border:2px solid var(--color-warn);color:var(--color-warn);font-weight:600}.cl-chips{flex-wrap:wrap;gap:.4rem;margin-top:.45rem;display:flex}.cl-chip{border:2px solid var(--color-border);background:var(--color-surface);min-height:34px;color:var(--color-primary);cursor:pointer;border-radius:999px;padding:0 .8rem;font-family:inherit;font-size:.85rem;font-weight:700}.cl-chip:hover{border-color:var(--color-accent);background:var(--color-primary-soft)}.cl-modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0e1e4673;justify-content:center;align-items:flex-start;padding:4vh 16px;animation:.15s ease-out cl-fade;display:flex;position:fixed;inset:0;overflow-y:auto}.cl-modal{background:var(--color-surface);border-radius:22px;width:100%;max-width:560px;animation:.18s ease-out cl-pop;box-shadow:0 30px 70px #0a1e5059}.cl-modal.is-wide{max-width:760px}.cl-modal.is-xl{max-width:1060px}.cl-modal-head{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.4rem .8rem;display:flex}.cl-modal-head h2{color:var(--brand-navy);margin:0;font-size:1.25rem}.cl-modal-body{padding:1.2rem 1.4rem}.cl-modal-foot{border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:flex-end;gap:.7rem;padding:.9rem 1.4rem 1.2rem;display:flex}@keyframes cl-fade{0%{opacity:0}}@keyframes cl-pop{0%{opacity:0;transform:translateY(12px)scale(.98)}}.cl-form-grid{grid-template-columns:1.4fr 1fr;gap:0 1rem;display:grid}.cl-input-unit{align-items:center;gap:.6rem;display:flex}.cl-input-unit .input{max-width:110px}.cl-input-unit span{color:var(--color-text-muted);font-weight:600}.cl-colors{border:none;flex-wrap:wrap;gap:.5rem;margin:0 0 1.2rem;padding:0;display:flex}.cl-colors legend{margin-bottom:.4rem;font-weight:600}.cl-color{cursor:pointer;position:relative}.cl-color input{opacity:0;position:absolute}.cl-color-dot{background:var(--swatch);width:40px;height:40px;box-shadow:0 0 0 2px var(--color-border);border:4px solid #fff;border-radius:50%;transition:transform .12s,box-shadow .12s;display:block}.cl-color:hover .cl-color-dot{transform:scale(1.08)}.cl-color.is-on .cl-color-dot{box-shadow:0 0 0 3px var(--swatch);transform:scale(1.1)}.cl-color input:focus-visible+.cl-color-dot{outline:3px solid var(--color-focus);outline-offset:3px}.cl-create-card{margin-bottom:1.6rem}.cl-class-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1.1rem;display:grid}.cl-class-card{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-card);color:var(--color-text);border-radius:22px;flex-direction:column;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex;overflow:hidden}a.cl-class-card:hover{transform:translateY(-3px);box-shadow:0 18px 36px #1f58cc29}a.cl-class-card:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.cl-class-card.is-deleted{opacity:.85}.cl-class-band{background:var(--cls);background:linear-gradient(135deg, var(--cls) 0%, color-mix(in srgb, var(--cls) 65%, #0b1f5c) 100%);color:#fff;flex-direction:column;gap:.2rem;min-height:92px;padding:1.1rem 1.3rem;display:flex;position:relative}.cl-class-band:after{content:"";background:#ffffff24;border-radius:50%;width:110px;height:110px;position:absolute;top:-30px;right:-26px;box-shadow:-40px 60px 0 -22px #ffffff1f}.cl-class-name{font-size:1.2rem;font-weight:800;position:relative}.cl-class-note{opacity:.9;font-size:.85rem;position:relative}.cl-class-body{flex-direction:column;gap:.6rem;padding:1rem 1.3rem 1.2rem;display:flex}.cl-class-stats{flex-wrap:wrap;gap:.4rem 1.2rem;display:flex}.cl-class-stats span,.cl-class-next{align-items:center;gap:.4rem;display:inline-flex}.cl-class-stats svg,.cl-class-next svg{color:var(--cls);flex-shrink:0}.cl-class-next{margin:0;font-size:.92rem}.cl-class-tags{flex-wrap:wrap;gap:.4rem;display:flex}.cl-class-tags:empty{display:none}.cl-class-deleted{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.cl-hero{color:#fff;background:var(--cls);background:radial-gradient(circle at 90% 10%, #ffffff38, transparent 40%), linear-gradient(135deg, var(--cls) 0%, color-mix(in srgb, var(--cls) 60%, #0b1f5c) 100%);box-shadow:0 16px 36px color-mix(in srgb, var(--cls) 30%, transparent);border-radius:24px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.3rem;padding:1.6rem 1.8rem;display:flex;position:relative;overflow:hidden}.cl-hero h1{margin:0 0 .3rem;font-size:clamp(1.5rem,3vw,2rem);font-weight:800}.cl-hero-note{opacity:.92;margin:0 0 .6rem}.cl-hero-stats{flex-wrap:wrap;gap:.5rem;display:flex}.cl-hero-stats span{background:#ffffff2e;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .8rem;font-size:.9rem;font-weight:600;display:inline-flex}.cl-hero-actions{flex-wrap:wrap;gap:.5rem;display:flex}.cl-hero-actions .btn{gap:.35rem}.cl-deleted-banner{border:2px solid var(--color-warn);border-radius:var(--radius);background:var(--color-warn-bg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.2rem 1.4rem;display:flex}.cl-deleted-banner p{margin:0;font-weight:600}.cl-tabs{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:18px;flex-wrap:wrap;gap:.4rem;margin-bottom:1.2rem;padding:6px;display:flex}.cl-tab{min-height:46px;color:var(--color-text);cursor:pointer;background:0 0;border:none;border-radius:13px;align-items:center;gap:.45rem;padding:0 1.1rem;font-family:inherit;font-size:.98rem;font-weight:700;display:inline-flex}.cl-tab svg{color:var(--brand-sky)}.cl-tab:hover{background:var(--color-primary-soft)}.cl-tab.is-on{background:var(--brand-blue);color:#fff;box-shadow:0 6px 16px #1f58cc4d}.cl-tab.is-on svg{color:var(--brand-yellow)}.cl-tab:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.cl-tab-badge{background:var(--att-absent);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:24px;height:24px;padding:0 6px;font-size:.8rem;font-weight:800;display:inline-flex}.cl-tabs-big .cl-tab{flex:1;justify-content:center;min-height:54px;font-size:1.05rem}.cl-add{margin-bottom:1.2rem;padding:1.3rem 1.4rem}.cl-add-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem 1rem;margin-bottom:1rem;display:flex}.cl-add-head h3{color:var(--brand-navy);align-items:center;gap:.4rem;margin:0;display:inline-flex}.cl-add-row{grid-template-columns:repeat(3,1fr);gap:0 1rem;display:grid}.cl-span-2{grid-column:span 2}.cl-add-many{grid-template-columns:1.4fr 1fr;gap:0 1.2rem;display:grid}.cl-add-count{margin:0 0 .4rem;font-weight:600}.cl-preview-list{border-radius:var(--radius-small);background:var(--color-bg);max-height:180px;margin:0 0 1rem;padding:.5rem .5rem .5rem 2rem;font-size:.92rem;overflow-y:auto}.cl-table td{vertical-align:middle}.cl-col-name{min-width:170px}.cl-table th,.cl-table td{padding:.7rem .75rem}.table-actions.cl-row-actions{flex-wrap:nowrap;justify-content:flex-end}.cl-row-actions .btn{white-space:nowrap;padding:0 .8rem}.cl-add-more{margin:-.4rem 0 1rem}.cl-bonus-total{color:#b07a00;align-items:center;gap:.25rem;font-weight:700;display:inline-flex}.cl-removed{margin-top:1rem}.cl-removed-list{margin:.5rem 0 0;padding:0;list-style:none}.cl-removed-list li{border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem .9rem;display:flex}.cl-history-sum{margin:0 0 .6rem}.cl-history-list{flex-wrap:wrap;gap:.4rem;margin:0 0 .8rem;padding:0;list-style:none;display:flex}.cl-history-list li{border-radius:999px;align-items:center;gap:.35rem;padding:.2rem .65rem;font-size:.85rem;font-weight:600;display:inline-flex}.cl-history-list li.is-present{background:var(--att-present-bg);color:var(--att-present)}.cl-history-list li.is-late{background:var(--att-late-bg);color:var(--att-late)}.cl-history-list li.is-excused{background:var(--att-excused-bg);color:var(--att-excused)}.cl-history-list li.is-absent{background:var(--att-absent-bg);color:var(--att-absent)}.cl-history-day{font-weight:800}.cl-history-bonus{background:var(--brand-yellow);color:var(--brand-navy);border-radius:999px;padding:0 .4rem}.cl-pay-list{margin:0;padding-left:1.3rem}.cl-name-btn{color:var(--brand-navy);font-family:inherit;font-size:inherit;text-align:left;text-decoration:underline;-webkit-text-decoration-color:var(--color-border);text-decoration-color:var(--color-border);text-underline-offset:4px;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}.cl-name-btn:hover{color:var(--color-primary);text-decoration-color:currentColor}.cl-attempt-list{flex-direction:column;gap:.35rem;margin:0 0 .9rem;padding:0;list-style:none;display:flex}.cl-attempt{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:12px;flex-wrap:wrap;align-items:center;gap:.3rem .8rem;padding:.45rem .8rem;text-decoration:none;display:flex}.cl-attempt:hover{border-color:var(--brand-sky)}.cl-attempt-title{font-weight:700}.cl-students-tools{flex-wrap:wrap;justify-content:flex-end;gap:.6rem;margin-bottom:.8rem;display:flex}.cl-note{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:320px;display:-webkit-box;overflow:hidden}.cl-drop{border:3px dashed var(--color-accent);color:var(--brand-navy);text-align:center;cursor:pointer;background:#f6faff;border-radius:20px;flex-direction:column;align-items:center;gap:.35rem;padding:2.2rem 1rem;transition:background-color .15s,border-color .15s;display:flex}.cl-drop svg{color:var(--brand-blue)}.cl-drop strong{font-size:1.1rem}.cl-drop span{color:var(--color-text-muted)}.cl-drop:hover,.cl-drop.is-over{border-color:var(--brand-blue);background:var(--color-primary-soft)}.cl-drop:focus-within{outline:3px solid var(--color-focus);outline-offset:2px}.cl-import-tips{color:var(--color-text-muted);margin:1rem 0 0;padding-left:1.3rem}.cl-import-tips li{margin-bottom:.35rem}.cl-import-tips a{color:var(--color-primary);font-weight:700}.cl-import-file{background:var(--color-primary-soft);border-radius:14px;flex-wrap:wrap;align-items:center;gap:.5rem .8rem;padding:.6rem .9rem;display:flex}.cl-import-file svg{color:var(--brand-blue)}.cl-map{flex-direction:column;gap:.4rem;display:flex}.cl-map-row{border:1px solid var(--color-border);background:var(--color-surface);border-radius:14px;grid-template-columns:minmax(0,1fr) minmax(220px,280px);align-items:center;gap:.4rem 1rem;padding:.5rem .7rem;display:grid}.cl-map-row.is-name{border:2px solid var(--brand-blue);background:#f6faff}.cl-map-row.is-skip{opacity:.6}.cl-map-col{align-items:center;gap:.7rem;min-width:0;display:flex}.cl-map-letter{background:var(--color-primary-soft);width:34px;height:34px;color:var(--color-primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.cl-map-head{flex-direction:column;min-width:0;display:flex}.cl-map-head .small-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cl-map-pick{flex-direction:column;gap:.3rem;display:flex}.cl-map-pick .input{min-height:44px}.cl-import-date{max-width:460px;margin-top:1rem}.cl-import-count{color:var(--brand-blue)}.cl-import-table{max-height:360px;overflow-y:auto}.cl-import-table tr.is-error td{background:var(--att-absent-bg)}.cl-import-table tr.is-off td{color:var(--color-text-muted);background:#f6f8fb}.cl-import-note{min-width:240px;max-width:420px;font-size:.85rem}.cl-check{width:22px;height:22px;accent-color:var(--brand-blue);cursor:pointer}.cl-fee-list{flex-direction:column;gap:.6rem;display:flex}.cl-fee-row{border:1px solid var(--color-border);border-left:6px solid var(--color-border);background:var(--color-surface);border-radius:16px;grid-template-columns:minmax(180px,1.3fr) minmax(160px,1fr) auto minmax(150px,auto);align-items:center;gap:.6rem 1.2rem;padding:.9rem 1.2rem;display:grid}.cl-fee-row.is-due{border-left-color:var(--att-absent);background:linear-gradient(90deg, var(--att-absent-bg), var(--color-surface) 45%)}.cl-fee-row.is-soon{border-left-color:#e8a33d}.cl-fee-name{flex-direction:column;display:flex}.cl-fee-progress{align-items:center;gap:.6rem;display:flex}.cl-fee-bar{background:#e8eef8;border-radius:999px;flex:1;height:12px;overflow:hidden}.cl-fee-bar span{background:linear-gradient(90deg, var(--brand-sky), var(--brand-blue));border-radius:999px;height:100%;transition:width .3s;display:block}.is-soon .cl-fee-bar span{background:linear-gradient(90deg,#ffd766,#e8a33d)}.is-due .cl-fee-bar span{background:linear-gradient(90deg, #ff9466, var(--att-absent))}.cl-fee-num{white-space:nowrap;font-size:.9rem;font-weight:700}.cl-fee-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.3rem .8rem;display:flex}.cl-fee-actions .btn-primary{gap:.3rem}.cl-dialog-class{margin:0 0 1rem;font-size:1.05rem}.cl-dialog-row{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0 1rem;display:grid}.cl-radio-group{border:none;flex-direction:column;gap:.4rem;margin:0 0 1.1rem;padding:0;display:flex}.cl-radio-group legend{margin-bottom:.4rem;font-weight:600}.cl-repeat{border:2px dashed var(--color-border);border-radius:16px;margin:.2rem 0 1.2rem;padding:.6rem 1rem .2rem}.cl-repeat.is-on{border-style:solid;border-color:var(--color-accent);background:#f6faff}.cl-repeat-toggle{color:var(--color-text);margin:0 0 .6rem;font-size:1rem;font-weight:700}.cl-repeat-label{margin:0 0 .4rem;font-weight:600}.cl-weekdays{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.cl-weekday{border:2px solid var(--color-border);background:var(--color-surface);width:54px;height:48px;color:var(--color-text);cursor:pointer;border-radius:14px;font-family:inherit;font-size:1rem;font-weight:800}.cl-weekday.is-on{border-color:var(--brand-blue);background:var(--brand-blue);color:#fff}.cl-weekday:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.cl-repeat-preview{background:var(--color-primary-soft);color:var(--brand-navy);border-radius:12px;margin:0 0 .9rem;padding:.6rem .9rem}.cl-weekly-day{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;margin:0 0 .6rem;padding:.6rem .8rem 0}.cl-weekly-name{color:var(--brand-navy);margin-bottom:.3rem;font-weight:800;display:block}.cl-conflict{border:2px solid var(--color-error);border-radius:var(--radius-small);background:var(--color-error-bg);margin-top:.4rem;padding:1rem 1.2rem}.cl-conflict p{margin:0 0 .4rem}.cl-conflict ul{margin:0 0 .6rem;padding-left:1.3rem}.cl-week-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.8rem;display:flex}.cl-week-nav{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.cl-week-title{text-align:center;flex-direction:column;min-width:190px;line-height:1.25;display:flex}.cl-week-title strong{color:var(--brand-navy);font-size:1.12rem}.cl-week-jump{align-items:center;gap:.4rem;display:flex}.cl-week-jump .input{width:auto;min-height:44px}.cl-week-filters{flex-wrap:wrap;align-items:center;gap:.6rem .8rem;margin-bottom:1rem;display:flex}.cl-filter{width:auto;min-width:170px;min-height:46px}.cl-week-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.6rem;display:grid}.cl-day{border:1px solid var(--color-border);background:#ffffffd9;border-radius:18px;flex-direction:column;min-height:220px;display:flex}.cl-day.is-past{background:#f4f7fcd9}.cl-day.is-today{border:2px solid var(--brand-yellow);box-shadow:0 10px 26px #ffc62e40}.cl-day-head{border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:baseline;gap:.1rem .4rem;padding:.6rem .75rem .5rem;display:flex}.cl-day-name{color:var(--brand-navy);font-weight:800}.cl-day-date{color:var(--color-text-muted);font-size:.9rem;font-weight:600}.cl-today{background:var(--brand-yellow);color:var(--brand-navy);border-radius:999px;padding:0 .5rem;font-size:.72rem;font-weight:800}.cl-day-body{flex-direction:column;flex:1;gap:.45rem;padding:.5rem;display:flex}.cl-day-empty{color:#9aa8c2;text-align:center;margin:.4rem 0;font-size:.82rem}.cl-day-add{border:2px dashed var(--color-border);min-height:36px;color:var(--color-primary);cursor:pointer;background:0 0;border-radius:12px;justify-content:center;align-items:center;gap:.25rem;margin-top:auto;font-family:inherit;font-size:.85rem;font-weight:700;display:inline-flex}.cl-day-add:hover{border-color:var(--brand-sky);background:var(--color-primary-soft)}.cl-week-hint{align-items:center;gap:.35rem;margin-top:.8rem;display:flex}.cl-card{border-left:5px solid var(--cls);background:var(--cls-soft);color:var(--color-text);border-radius:12px;flex-direction:column;gap:.15rem;padding:.55rem .6rem .55rem .75rem;font-size:.85rem;line-height:1.35;text-decoration:none;transition:transform .12s,box-shadow .12s;display:flex;position:relative}a.cl-card:hover{box-shadow:0 8px 18px color-mix(in srgb, var(--cls) 25%, transparent);transform:translateY(-2px)}a.cl-card:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.cl-card.is-mine{box-shadow:inset 0 0 0 2px var(--cls)}.cl-card.is-locked{opacity:.78;cursor:default}.cl-card-time{color:var(--cls);white-space:nowrap;font-size:.9rem;font-weight:800}.cl-card-class{color:var(--brand-navy);font-weight:700}.cl-card-line{color:var(--color-text-muted);align-items:flex-start;gap:.25rem;display:inline-flex}.cl-card-line svg{flex-shrink:0;margin-top:.2rem}.cl-card-other{font-size:.78rem}.cl-card .cl-state{white-space:normal;align-self:flex-start;margin-top:.2rem}.cl-state{white-space:nowrap;border-radius:999px;align-items:center;gap:.25rem;padding:.1rem .55rem;font-size:.76rem;font-weight:800;display:inline-flex}.cl-state.is-upcoming{color:var(--color-text-muted);background:#fffc}.cl-state.is-ready{background:var(--brand-yellow);color:var(--brand-navy);animation:1.6s ease-in-out infinite cl-glow}.cl-state.is-live{background:var(--att-present);color:#fff}.cl-state.is-missed{background:var(--att-absent);color:#fff}.cl-state.is-done{background:var(--att-present-bg);color:var(--att-present)}.cl-state.is-hero{margin-bottom:.5rem;padding:.25rem .8rem;font-size:.85rem}.cl-state.is-hero.is-upcoming{color:#fff;background:#ffffff38}@keyframes cl-glow{50%{box-shadow:0 0 0 5px #ffc62e59}}.cl-rows{flex-direction:column;gap:.45rem;display:flex}.cl-row{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:14px;grid-template-columns:70px minmax(170px,1.2fr) 120px minmax(140px,1fr) auto 22px;align-items:center;gap:.4rem 1rem;padding:.75rem 1rem;text-decoration:none;display:grid}a.cl-row:hover{border-color:var(--brand-sky);background:#f7fbff}.cl-row.is-locked{opacity:.8}.cl-row-date{font-weight:700}.cl-row-time{color:var(--color-primary);font-weight:700}.cl-row-teacher{color:var(--color-text-muted);align-items:center;gap:.3rem;display:inline-flex}.cl-session.has-savebar{padding-bottom:90px}.cl-session-when{flex-wrap:wrap;align-items:center;gap:.4rem 1.2rem;margin:0 0 .8rem;font-size:1.15rem;font-weight:700;display:flex}.cl-session-when svg{vertical-align:-4px;margin-right:.3rem}.cl-session-time{background:#fff3;border-radius:999px;padding:.15rem .8rem}.cl-saved-info{margin:-.4rem 0 .8rem}.cl-blocked{background:var(--color-surface);max-width:520px;box-shadow:var(--shadow-card);text-align:center;border-radius:22px;flex-direction:column;align-items:center;gap:.8rem;margin:3rem auto;padding:2rem;display:flex}.cl-blocked svg{color:var(--brand-sky)}.cl-start{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-card);text-align:center;border-radius:24px;flex-direction:column;align-items:center;gap:.5rem;padding:2.4rem 1.5rem;display:flex;position:relative;overflow:hidden}.cl-start h2{color:var(--brand-navy);margin:0;font-size:1.45rem}.cl-start p{max-width:560px;margin:0}.cl-start svg{color:var(--brand-sky)}.cl-start.is-ready{background:radial-gradient(circle at 50% 120%, #ffc62e59, transparent 60%), var(--color-surface);border:2px solid var(--brand-yellow)}.cl-start.is-expired{border:2px solid var(--color-warn);background:var(--color-warn-bg)}.cl-start.is-expired svg{color:var(--color-warn)}.cl-start-count{color:var(--color-primary);font-size:1.3rem;font-weight:800}.cl-start .btn-large{border-radius:999px;gap:.5rem;margin-top:.8rem}.cl-start-btn{min-height:72px;padding:0 2.8rem;font-size:1.3rem;box-shadow:0 12px 28px #ffb70373}.cl-start-btn svg{color:inherit}.cl-start-pulse{pointer-events:none;background:#ffc62e2e;border-radius:50%;width:260px;height:260px;margin-left:-130px;animation:2.4s ease-out infinite cl-ripple;position:absolute;bottom:-120px;left:50%}@keyframes cl-ripple{0%{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(1.8)}}.cl-att-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.9rem;display:flex}.cl-att-counts{flex-wrap:wrap;gap:.4rem;display:flex}.cl-count{border-radius:999px;padding:.25rem .75rem;font-size:.88rem;font-weight:800}.cl-count.is-present{background:var(--att-present-bg);color:var(--att-present)}.cl-count.is-late{background:var(--att-late-bg);color:var(--att-late)}.cl-count.is-excused{background:var(--att-excused-bg);color:var(--att-excused)}.cl-count.is-absent{background:var(--att-absent-bg);color:var(--att-absent)}.cl-count.is-unmarked{color:var(--color-text-muted);background:#eef1f6;border:2px dashed #c6d0e0}.cl-att-list,.cl-bonus-list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.cl-att-row,.cl-bonus-row{border:2px solid var(--color-border);background:var(--color-surface);border-radius:18px;flex-wrap:wrap;align-items:center;gap:.7rem 1rem;padding:.75rem 1rem;transition:border-color .15s,background-color .15s;display:flex}.cl-att-row.is-unmarked{border-style:dashed}.cl-att-row.is-present{background:#f6fcf8;border-color:#a8dcbc}.cl-att-row.is-late{background:#fffbf0;border-color:#f1d48a}.cl-att-row.is-excused{background:#f6f9ff;border-color:#b7cdf5}.cl-att-row.is-absent{background:#fff7f6;border-color:#f1b9b3}.cl-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:1.15rem;font-weight:800;display:inline-flex;box-shadow:0 4px 10px #14285a2e}.cl-att-name{flex-wrap:wrap;flex:1;align-items:center;gap:.2rem .5rem;min-width:160px;display:flex}.cl-att-name strong{font-size:1.05rem}.cl-att-btns{flex-wrap:wrap;gap:.4rem;display:flex}.cl-att-btn{border:2px solid var(--color-border);background:var(--color-surface);min-height:48px;color:var(--color-text-muted);cursor:pointer;border-radius:14px;align-items:center;gap:.25rem;padding:0 .95rem;font-family:inherit;font-size:.95rem;font-weight:700;transition:background-color .12s,border-color .12s,transform 80ms;display:inline-flex}.cl-att-btn:active{transform:scale(.97)}.cl-att-btn:disabled{cursor:not-allowed;opacity:.65}.cl-att-btn:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.cl-att-btn.is-present:hover:not(:disabled):not(.is-on){border-color:var(--att-present);color:var(--att-present)}.cl-att-btn.is-late:hover:not(:disabled):not(.is-on){border-color:var(--att-late);color:var(--att-late)}.cl-att-btn.is-excused:hover:not(:disabled):not(.is-on){border-color:var(--att-excused);color:var(--att-excused)}.cl-att-btn.is-absent:hover:not(:disabled):not(.is-on){border-color:var(--att-absent);color:var(--att-absent)}.cl-att-btn.is-present.is-on{background:var(--att-present);border-color:var(--att-present);color:#fff}.cl-att-btn.is-late.is-on{color:#fff;background:#e6a100;border-color:#e6a100}.cl-att-btn.is-excused.is-on{background:var(--att-excused);border-color:var(--att-excused);color:#fff}.cl-att-btn.is-absent.is-on{background:var(--att-absent);border-color:var(--att-absent);color:#fff}.cl-stepper{align-items:center;gap:.5rem;display:inline-flex}.cl-stepper button{border:2px solid var(--color-border);background:var(--color-surface);width:52px;height:52px;color:var(--color-primary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:transform 80ms,background-color .12s;display:inline-flex}.cl-stepper button:last-child{border-color:var(--brand-yellow);background:var(--brand-yellow);color:var(--brand-navy)}.cl-stepper button:active:not(:disabled){transform:scale(.92)}.cl-stepper button:disabled{opacity:.4;cursor:not-allowed}.cl-stepper-value{color:#9aa8c2;justify-content:center;align-items:center;gap:.25rem;min-width:70px;font-size:1.3rem;font-weight:800;display:inline-flex}.cl-stepper-value.has-value{color:#b07a00}.cl-savebar{z-index:50;background:var(--brand-navy);color:#fff;border-radius:999px;justify-content:space-between;align-items:center;gap:1rem;width:min(900px,100% - 32px);padding:.7rem .8rem .7rem 1.4rem;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 18px 40px #0a194666}.cl-savebar-text{font-weight:700}.cl-savebar-text.is-warn{color:var(--brand-yellow)}.cl-savebar .btn{border-radius:999px}.nb-wrap{position:relative}.nb-btn{color:#fff;cursor:pointer;background:#ffffff1f;border:2px solid #ffffff59;border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;display:inline-flex;position:relative}.nb-btn:hover{background:#ffffff38}.nb-btn:focus-visible{outline:3px solid var(--brand-yellow);outline-offset:2px}.nb-btn.is-urgent svg{transform-origin:50% 10%;animation:1.8s ease-in-out infinite nb-ring}@keyframes nb-ring{0%,60%,to{transform:rotate(0)}10%,30%{transform:rotate(14deg)}20%,40%{transform:rotate(-14deg)}}.nb-badge{border:2px solid var(--brand-blue);background:var(--brand-yellow);min-width:22px;height:22px;color:var(--brand-navy);text-align:center;border-radius:999px;padding:0 5px;font-size:.75rem;font-weight:800;line-height:18px;position:absolute;top:-5px;right:-5px}.nb-panel{z-index:80;background:var(--color-surface);width:min(400px,100vw - 32px);max-height:75vh;color:var(--color-text);border-radius:20px;animation:.15s ease-out cl-pop;position:fixed;overflow-y:auto;box-shadow:0 24px 60px #0a1e504d}.nb-panel section{border-bottom:1px solid var(--color-border);padding:.8rem .9rem .6rem}.nb-panel section.is-warn{background:#fff8f6}.nb-panel h3{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 .4rem;font-size:.82rem}.nb-empty{color:var(--color-text-muted);margin:0 0 .3rem;font-size:.9rem}.nb-item{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:12px;align-items:center;gap:.6rem;margin-bottom:.3rem;padding:.55rem .6rem;font-family:inherit;font-size:.9rem;display:flex}.nb-item:hover:not(:disabled){background:var(--color-primary-soft)}.nb-item:disabled{cursor:default}.nb-session.is-ready{background:#fff7dc}.nb-dot{background:var(--cls);border-radius:50%;flex-shrink:0;width:12px;height:12px}.nb-text{flex-direction:column;flex:1;min-width:0;display:flex}.nb-text span{color:var(--color-text-muted)}.nb-note .nb-text span:first-child{color:var(--color-text)}.nb-note.is-unread{background:#eef5ff}.nb-note.is-unread .nb-text span:first-child{font-weight:700}.nb-time{font-size:.78rem}.nb-when{color:var(--color-primary);flex-shrink:0;font-size:.8rem;font-weight:800}.nb-session.is-ready .nb-when{color:#a36a00}.nb-when.is-warn{color:var(--att-absent)}.nb-foot{color:var(--color-text-muted);padding:.9rem;font-size:.85rem}.nb-foot p{margin:.4rem 0 0}.nb-foot .btn{gap:.35rem}.hs-grid{grid-template-columns:1.25fr 1fr;gap:1.1rem;margin-bottom:2rem;display:grid}.hs-col{flex-direction:column;gap:1.1rem;min-width:0;display:flex}.hs-card{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-card);border-radius:22px;padding:1.2rem 1.3rem}.hs-card.is-warn{background:linear-gradient(180deg, #fff6f4, var(--color-surface) 60%);border:2px solid #f1b9b3}.hs-head{justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.6rem;display:flex}.hs-head h2{color:var(--brand-navy);align-items:center;gap:.45rem;margin:0;font-size:1.15rem;display:inline-flex}.hs-head h2 svg{color:var(--brand-sky)}.is-warn .hs-head h2 svg{color:var(--att-absent)}.hs-day{margin-bottom:.6rem}.hs-day-title{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);margin:.4rem 0 .35rem;font-size:.85rem;font-weight:800}.hs-day-title.is-today{color:var(--brand-blue)}.hs-line{margin-bottom:.45rem}.hs-line-link,.hs-fee{border-left:5px solid var(--cls);background:var(--cls-soft);color:var(--color-text);border-radius:14px;align-items:center;gap:.8rem;padding:.6rem .8rem;text-decoration:none;display:flex}a.hs-line-link:hover,a.hs-fee:hover{box-shadow:0 6px 16px color-mix(in srgb, var(--cls) 22%, transparent)}.hs-time{flex-direction:column;align-items:center;min-width:52px;line-height:1.2;display:flex}.hs-time strong{color:var(--cls);font-size:1.05rem}.hs-time span{color:var(--color-text-muted);font-size:.78rem}.hs-text{flex-direction:column;flex:1;min-width:0;display:flex}.hs-line .btn{flex-shrink:0}.hs-fee-list{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}@media (width<=1100px){.cl-week-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=900px){.hs-grid,.cl-fee-row{grid-template-columns:1fr}.cl-fee-actions{justify-content:flex-start}.cl-row{grid-template-columns:1fr auto}.cl-row>svg{display:none}}@media (width<=700px){.cl-week-grid{grid-template-columns:1fr}.cl-day{min-height:0}.cl-day.is-past:not(:has(.cl-card)){display:none}.cl-form-grid,.cl-add-row,.cl-add-many,.cl-map-row{grid-template-columns:1fr}.cl-students-tools{justify-content:stretch}.cl-students-tools .btn{flex:1}.cl-span-2{grid-column:auto}.cl-hero{padding:1.3rem 1.2rem}.cl-tabs-big .cl-tab{flex:30%;padding:0 .5rem;font-size:.95rem}.cl-att-btns{grid-template-columns:1fr 1fr;width:100%;display:grid}.cl-att-btn{justify-content:center}.cl-bonus-row .cl-stepper{margin-left:auto}.cl-savebar{padding-left:1rem;bottom:10px}.cl-savebar-text{font-size:.88rem}.cl-week-nav{grid-template-columns:44px 1fr 44px;width:100%;display:grid}.cl-week-title{min-width:0}.cl-week-nav>.btn,.cl-week-jump{grid-column:1/-1}.cl-week-jump .input{flex:1}.cl-week-toolbar>.btn,.cl-seg{width:100%}.cl-seg button,.cl-filter{flex:1}}@media (prefers-reduced-motion:reduce){.cl-state.is-ready,.nb-btn.is-urgent svg,.cl-start-pulse{animation:none}}:root{--tu-red:#b42318;--tu-red-bg:#fde2e0;--tu-orange:#b54708;--tu-orange-bg:#ffe9d5;--tu-yellow:#8a6100;--tu-yellow-bg:#fff4c7;--tu-paid:#1e7b4f;--tu-paid-bg:#e3f6ea;--tu-gray:#5a6a8a;--tu-gray-bg:#eef2f8}.tu-alert{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:.35rem;padding:.15rem .65rem;font-size:.82rem;font-weight:700;line-height:1.4;display:inline-flex}.tu-status-alert{margin-top:.3rem}.tu-alert.is-red{background:var(--tu-red-bg);color:var(--tu-red);border-color:#f5b5ae}.tu-alert.is-orange{background:var(--tu-orange-bg);color:var(--tu-orange);border-color:#f7c797}.tu-alert.is-yellow{background:var(--tu-yellow-bg);color:var(--tu-yellow);border-color:#ecd77a}.tu-dot{background:currentColor;border-radius:50%;flex:none;width:.6rem;height:.6rem}.tu-status-wrap{flex-wrap:wrap;gap:.3rem;display:inline-flex}.tu-status{white-space:nowrap;border-radius:8px;padding:.12rem .6rem;font-size:.82rem;font-weight:700;display:inline-block}.tu-status.is-paid{background:var(--tu-paid-bg);color:var(--tu-paid)}.tu-status.is-unpaid{background:var(--tu-yellow-bg);color:var(--tu-yellow)}.tu-status.is-not_due,.tu-status.is-not_started{background:var(--tu-gray-bg);color:var(--tu-gray)}.tu-money{white-space:nowrap}.tu-defs{border-left:4px solid var(--color-accent);background:var(--color-primary-soft);color:var(--color-text-muted);border-radius:0 10px 10px 0;margin:0 0 1rem;padding:.7rem 1rem;font-size:.85rem;line-height:1.55}.tu-gap svg{vertical-align:-3px;margin-right:.3rem}.tu-gap{color:var(--color-warn);margin:.5rem 0;font-size:.9rem;font-weight:600;display:block}.tu-month{flex-wrap:wrap;align-items:center;gap:.6rem;margin:0 0 1rem;display:flex}.tu-month-pick .input{min-width:190px}.tu-totals{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-bottom:1.2rem;display:grid}.tu-totals>div{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;gap:.2rem;padding:.9rem 1.1rem;display:flex}.tu-totals span{color:var(--color-text-muted);font-size:.88rem;font-weight:600}.tu-totals strong{color:var(--color-text);font-size:1.35rem}.tu-totals .is-paid strong{color:var(--tu-paid)}.tu-totals .is-unpaid strong{color:var(--tu-red)}.tu-blocks{flex-direction:column;gap:.8rem;display:flex}.tu-block{border:1px solid var(--color-border);border-left:6px solid var(--cls,var(--color-primary));background:var(--color-surface);border-radius:16px;overflow:hidden}.tu-block>.tu-gap{margin:0;padding:0 1.1rem .7rem}.tu-block-head{width:100%;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(160px,1.3fr) minmax(110px,.7fr) minmax(220px,2fr) 24px;align-items:center;gap:.6rem 1rem;padding:.9rem 1.1rem;display:grid}.tu-block-head:hover{background:#f7fbff}.tu-block-head:focus-visible{outline:3px solid var(--color-focus);outline-offset:-3px}.tu-block-name,.tu-block-stat{flex-direction:column;gap:.1rem;display:flex}.tu-block-name strong{font-size:1.08rem}.tu-block-money{flex-wrap:wrap;justify-content:flex-end;gap:.3rem 1.2rem;display:flex}.tu-block-body{border-top:1px solid var(--color-border);padding:0 1.1rem 1rem}.tu-table td,.tu-table th{vertical-align:top}.tu-table th,.tu-table td{padding:.65rem .7rem}.tu-table .tu-alert{white-space:normal}.tu-row-actions{margin-top:.5rem}.tu-table tr.is-off td{color:var(--color-text-muted);background:#fafbfd}.tu-total-row td{background:var(--color-primary-soft)}.tu-student,.tu-class{flex-direction:column;gap:.6rem;display:flex}.tu-student-head,.tu-class-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.tu-student-head p,.tu-class-head p{margin:0}.tu-log{margin:0;padding-left:1.2rem;font-size:.88rem;line-height:1.6}.tu-form{flex-direction:column;gap:.7rem;display:flex}.tu-form-who{margin:0;font-size:1.02rem}.tu-methods{border:0;flex-wrap:wrap;gap:.6rem;margin:0;padding:0;display:flex}.tu-methods legend{margin-bottom:.35rem;font-weight:600}.tu-method{border:2px solid var(--color-border);cursor:pointer;border-radius:12px;align-items:center;gap:.45rem;min-height:44px;padding:0 1rem;font-weight:700;display:inline-flex}.tu-method.is-on{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary)}.hs-today{align-items:center;gap:.4rem;margin:0 0 .8rem;font-size:1.05rem;display:flex}.tu-groups{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.tu-group{border:1px solid var(--color-border);border-radius:12px;overflow:hidden}.tu-group.is-red{border-color:#f5b5ae}.tu-group.is-orange{border-color:#f7c797}.tu-group.is-yellow{border-color:#ecd77a}.tu-group-head{background:var(--color-surface);width:100%;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;border:0;align-items:center;gap:.6rem;padding:.6rem .8rem;display:flex}.tu-group-head:focus-visible{outline:3px solid var(--color-focus);outline-offset:-3px}.tu-group-title{flex:1;font-weight:700}.tu-group-list{border-top:1px solid var(--color-border);margin:0;padding:.3rem .8rem .6rem;list-style:none}.tu-group-list li{flex-wrap:wrap;align-items:center;gap:.3rem .8rem;padding:.35rem 0;display:flex}.tu-group-list li+li{border-top:1px dashed var(--color-border)}.tu-group-name{border-left:4px solid var(--cls,var(--color-primary));min-width:160px;color:var(--color-text);flex-direction:column;flex:1;padding-left:.6rem;text-decoration:none;display:flex}.tu-group-name:hover strong{text-decoration:underline}.tu-gaps{background:var(--color-warn-bg);color:var(--color-warn);border-radius:12px;margin-top:.8rem;padding:.6rem .8rem;font-size:.9rem}.tu-gaps p,.tu-gaps ul{margin:0}.tu-gaps ul{padding-left:1.2rem}.tu-card-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:.8rem;display:flex}.tu-remind-list{flex-direction:column;gap:.3rem;margin:.3rem 0 0;padding:0;list-style:none;display:flex}.cl-teacher-pick,.cl-fee-box{border:1px solid var(--color-border);border-radius:14px;margin:0;padding:.8rem 1rem}.cl-teacher-pick legend,.cl-fee-box legend{padding:0 .3rem;font-weight:700}.cl-chip-list{flex-wrap:wrap;gap:.45rem;margin:.4rem 0;display:flex}label.cl-chip,span.cl-chip{align-items:center;gap:.4rem;display:inline-flex}label.cl-chip input{width:18px;height:18px;accent-color:var(--color-primary)}.cl-chip.is-on{border-color:var(--color-primary);background:var(--color-primary-soft)}.cl-chip.is-disabled{opacity:.6;cursor:default}.cl-other-teacher{margin:.4rem 0 0}.cl-subtitle-pill{vertical-align:middle;margin-left:.6rem}.cl-col-name .cl-pill{margin:.15rem .3rem 0 0}.cl-missing{margin-left:.4rem}.cl-parent{min-width:160px}.cl-absent-btn{color:var(--att-absent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.cl-absent-btn:focus-visible{outline:3px solid var(--color-focus);border-radius:4px}.cl-absence-list{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.cl-absence-list li{border-radius:8px;padding:.3rem .7rem}.cl-absence-list li.is-absent{background:var(--att-absent-bg);color:var(--att-absent)}.cl-absence-list li.is-excused{background:var(--att-excused-bg);color:var(--att-excused)}.cl-row-no{color:var(--color-primary);font-weight:800}.cl-session-no{vertical-align:middle;background:#ffffff38;border-radius:999px;margin-left:.4rem;padding:.1rem .7rem;font-size:.9rem;display:inline-block}.cl-att-done{color:var(--color-text-muted);font-size:.82rem;font-weight:600}.cl-roster-preview{margin-top:1rem}.cl-roster-list{flex-direction:column;gap:.35rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.cl-roster-list li{border-bottom:1px dashed var(--color-border);flex-wrap:wrap;align-items:center;gap:.3rem .8rem;padding:.45rem .2rem;display:flex}@media (width<=760px){.tu-totals{grid-template-columns:1fr}.tu-block-head{grid-template-columns:1fr 24px}.tu-block-stat,.tu-block-money{grid-column:1;justify-content:flex-start}.tu-block-head>svg{grid-area:1/2}}.cl-add-row.cl-add-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.passage{font-size:1rem;line-height:1.7}.passage-p{margin:0 0 .9em}.passage-blank{border-bottom:2px solid var(--color-primary);background:var(--color-primary-soft);min-width:4.5em;color:var(--color-primary);text-align:center;margin:0 .15em;padding:0 .4em;font-weight:600;display:inline-block}.passage-doc-label,.passage-divider span{background:var(--color-primary-soft);color:var(--color-primary);border-radius:999px;margin:0 0 .8em;padding:.1em .7em;font-size:.85rem;font-weight:600;display:inline-block}.passage-divider{border-top:2px dashed var(--color-border);margin:1.4em 0 .6em;padding-top:1.2em}.passage-table-wrap{margin:0 0 .9em;overflow-x:auto}.passage-table{border-collapse:collapse;min-width:100%;font-size:.92rem}.passage-table th,.passage-table td{border:1px solid var(--color-border);text-align:left;padding:.4em .7em}.passage-table th{background:var(--color-primary-soft)}.simple-center{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem 16px;display:flex}.exam-message-card{max-width:520px}.exam-message-actions{flex-wrap:wrap;gap:.8rem;margin-top:1rem;display:flex}.exam-page{min-height:100vh}.exam-header{z-index:20;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem 1.2rem;padding:.7rem 1.5rem;display:flex;position:sticky;top:0;box-shadow:0 2px 12px #1f4fa80f}.exam-header-info{flex-direction:column;min-width:0;display:flex}.exam-header{border-top:4px solid #0000;border-image:linear-gradient(90deg, var(--brand-blue), var(--brand-sky) 60%, var(--brand-yellow)) 1;border-image-slice:1 0 0}.exam-header-brand{align-items:center;gap:.7rem;min-width:0;display:flex}.exam-header-logo{background:#fff;border-radius:50%;flex-shrink:0;width:42px;height:42px;padding:3px;box-shadow:0 2px 8px #1f4fa82e}@media (width<=600px){.exam-header-logo{width:34px;height:34px}}.exam-header-title{color:var(--color-primary)}.exam-header-student{color:var(--color-text-muted);font-size:.9rem}.exam-header-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.exam-save-status{color:var(--color-text-muted);font-size:.85rem}.exam-save-status.is-offline{color:var(--color-error);font-weight:600}.exam-countdown{border-radius:var(--radius-small);background:var(--color-primary-soft);color:var(--color-primary);flex-direction:column;align-items:center;padding:.25rem 1.2rem;display:flex}.exam-countdown-label{font-size:.75rem;font-weight:600}.exam-countdown-time{font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:600;line-height:1.2}.exam-countdown.is-warning{background:var(--color-error-bg);color:var(--color-error)}.exam-submit-error{margin:1rem 1.5rem 0}.exam-body{grid-template-columns:minmax(0,1fr) 300px;gap:1.5rem;max-width:1500px;margin:0 auto;padding:1.2rem 1.5rem 2rem;display:grid}.exam-part-title{color:var(--color-primary);flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem;margin-bottom:1rem;font-size:1.15rem;font-weight:600;display:flex}.exam-part-title .muted{font-size:.95rem;font-weight:400}.exam-split{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:1.2rem;display:grid}.exam-passage{max-height:calc(100vh - 130px);padding:1.4rem 1.5rem;position:sticky;top:110px;overflow-y:auto}.exam-single{max-width:820px}.exam-questions{flex-direction:column;gap:1rem;display:flex}.question-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);padding:1.2rem 1.3rem;scroll-margin-top:120px}.question-card.is-flagged{border-color:var(--color-flag);box-shadow:inset 4px 0 0 var(--color-flag)}.question-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem 1rem;margin-bottom:.5rem;display:flex}.question-no{color:var(--color-primary);font-weight:600}.question-flag{margin-top:0}.question-text{margin:0 0 .9rem;font-size:1.05rem}.question-options{flex-direction:column;gap:.5rem;display:flex}.option{border:2px solid var(--color-border);border-radius:var(--radius-small);cursor:pointer;align-items:center;gap:.8rem;min-height:52px;padding:.5rem .9rem;transition:border-color .12s,background-color .12s;display:flex}.option:hover{border-color:var(--color-accent);background:var(--color-bg)}.option input{opacity:0;pointer-events:none;position:absolute}.option:has(input:focus-visible){outline:3px solid var(--color-focus);outline-offset:2px}.option-letter{border:2px solid var(--color-border);width:34px;height:34px;color:var(--color-primary);background:var(--color-surface);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.option.is-chosen{border-color:var(--color-primary);background:var(--color-primary-soft)}.option.is-chosen .option-letter{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-primary-text)}.exam-pager{justify-content:space-between;align-items:center;gap:1rem;margin-top:1.5rem;display:flex}.exam-pager .muted{white-space:nowrap}.exam-nav-inner{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);max-height:calc(100vh - 130px);padding:1.1rem;position:sticky;top:110px;overflow-y:auto}.exam-nav-head{justify-content:space-between;align-items:center;margin-bottom:.8rem;display:flex}.exam-nav-toggle,.exam-nav-close{display:none}.qnav-legend{color:var(--color-text-muted);flex-wrap:wrap;gap:.3rem .9rem;margin-bottom:.9rem;font-size:.85rem;display:flex}.qnav-legend span{align-items:center;gap:.35rem;display:inline-flex}.qnav-swatch{border:2px solid var(--color-border);background:var(--color-surface);border-radius:4px;width:16px;height:16px;display:inline-block}.qnav-part-title{color:var(--color-text-muted);margin:.6rem 0 .4rem;font-size:.85rem;font-weight:600}.qnav-grid{grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:.35rem;display:grid}.qnav-btn{border:2px solid var(--color-border);background:var(--color-surface);height:38px;color:var(--color-text);cursor:pointer;border-radius:8px;font-family:inherit;font-size:.85rem;font-weight:600}.qnav-btn:hover{border-color:var(--color-accent)}.qnav-btn.is-answered,.qnav-swatch.is-answered{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-text)}.qnav-btn.is-flagged,.qnav-swatch.is-flagged{border-color:var(--color-flag);box-shadow:inset 0 -5px 0 var(--color-flag)}.qnav-btn.is-current{outline:3px solid var(--color-accent);outline-offset:1px}@media (width<=1100px){.exam-split{grid-template-columns:1fr}.exam-passage{max-height:none;position:static}}@media (width<=860px){.exam-header{padding:.6rem 16px}.exam-body{grid-template-columns:1fr;padding:1rem 16px 2rem}.exam-nav-toggle,.exam-nav-close{display:inline-flex}.exam-nav{display:none}.exam-nav.open{z-index:50;background:#1b2b4b59;padding:16px;display:block;position:fixed;inset:0}.exam-nav.open .exam-nav-inner{max-height:100%;position:static}.exam-submit-error{margin:1rem 16px 0}}@media (width<=600px){.exam-header-info{width:100%}.exam-countdown{flex-direction:row;align-items:baseline;gap:.5rem}.exam-passage{padding:1.1rem}.question-card{padding:1rem}}.result-main{flex-direction:column;gap:1.5rem;display:flex}.result-meta{color:var(--color-text-muted);margin:0 0 1.4rem}.result-meta strong{color:var(--color-text)}.result-scores{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.score-box{background:linear-gradient(140deg, #fff, var(--color-primary-soft));border:1px solid var(--color-border);border-top:5px solid var(--brand-sky);border-radius:18px;flex-direction:column;gap:.3rem;padding:1.2rem 1.4rem;display:flex}.score-label{color:var(--color-text-muted);font-weight:600}.score-big{color:var(--color-primary);font-size:2.4rem;font-weight:800;line-height:1.1}.score-sub{color:var(--color-text-muted);font-size:1rem;font-weight:400}.score-scaled{font-size:1rem}.score-total{background:linear-gradient(150deg, #2a6be0, var(--brand-blue) 55%, var(--brand-blue-deep));border-color:#0000;border-top-color:var(--brand-yellow);position:relative;overflow:hidden;box-shadow:0 14px 30px #1f58cc4d}.score-total:after{content:"";border:14px solid #ffffff1f;border-radius:50%;width:120px;height:120px;position:absolute;bottom:-30px;right:-30px}.score-total .score-label,.score-total .score-big,.score-total .score-sub{color:var(--color-primary-text)}.result-note{color:var(--color-text-muted);margin:1rem 0 0;font-size:.9rem}.result-actions{flex-wrap:wrap;gap:.8rem;margin-top:1.4rem;display:flex}.result-review-title{color:var(--color-primary);font-size:1.3rem}.result-review-hint{margin:0 0 1rem}.result-filter{flex-wrap:wrap;gap:.6rem;margin-bottom:1.2rem;display:flex}.answer-part-title{margin:1.4rem 0 .6rem;font-size:1.1rem}.answer-row{border-bottom:1px solid var(--color-border)}.answer-line{grid-template-columns:3.2rem 7rem 1fr auto auto;align-items:center;gap:.6rem;padding:.55rem .4rem;display:grid}.answer-no{color:var(--color-primary);font-weight:600}.answer-chosen strong{font-weight:600}.answer-row.is-wrong .answer-chosen strong{color:var(--color-error)}.answer-row.is-correct .answer-chosen strong{color:var(--color-success)}.answer-row.is-blank .answer-chosen strong{color:var(--color-text-muted);font-weight:400}.answer-tag{white-space:nowrap;border-radius:999px;padding:.1rem .7rem;font-size:.85rem;font-weight:600}.answer-tag-correct{background:var(--color-success-bg);color:var(--color-success)}.answer-tag-wrong{background:var(--color-error-bg);color:var(--color-error)}.answer-tag-blank{background:var(--color-bg);color:var(--color-text-muted)}.answer-detail{border-radius:var(--radius-small);background:var(--color-bg);border-left:4px solid var(--color-accent);margin:0 0 1rem;padding:1rem 1.2rem}.answer-question{margin:0 0 .8rem;font-weight:600}.answer-options{flex-direction:column;gap:.4rem;margin:0 0 .9rem;padding:0;list-style:none;display:flex}.answer-options li{border-radius:var(--radius-small);border:1px solid var(--color-border);background:var(--color-surface);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.4rem .7rem;display:flex}.answer-options .option-letter{width:30px;height:30px}.answer-option-text{flex:1}.answer-options li.is-key{border-color:var(--color-success);background:var(--color-success-bg)}.answer-options li.is-key .option-letter{border-color:var(--color-success);background:var(--color-success);color:#fff}.answer-options li.is-wrong-choice{border-color:var(--color-error);background:var(--color-error-bg)}.answer-options li.is-wrong-choice .option-letter{border-color:var(--color-error);color:var(--color-error)}.answer-mark{font-size:.8rem;font-weight:600}.answer-options li.is-key .answer-mark{color:var(--color-success)}.answer-options li.is-wrong-choice .answer-mark{color:var(--color-error)}.answer-explanation{border-radius:var(--radius-small);background:var(--color-surface);border:1px solid var(--color-border);padding:.8rem 1rem;line-height:1.6}.answer-passage{margin-top:.6rem}.answer-passage-box{border-radius:var(--radius-small);background:var(--color-surface);border:1px solid var(--color-border);max-height:420px;margin-top:.5rem;padding:1rem 1.2rem;overflow-y:auto}@media (width<=640px){.answer-line{grid-template-columns:2.6rem 1fr auto;grid-template-areas:"no key tag""no chosen toggle";row-gap:.3rem}.answer-no{grid-area:no}.answer-key{grid-area:key}.answer-chosen{grid-area:chosen}.answer-tag{grid-area:tag;justify-self:end}.answer-toggle{grid-area:toggle;justify-self:end}.answer-detail{padding:.9rem}}.preview-banner{background:var(--color-warn-bg);color:var(--color-warn);text-align:center;padding:.6rem 16px;font-size:.95rem}.preview-key-toggle{color:var(--color-text);margin-top:0}.preview-key{border:1px solid var(--color-success);border-radius:0 0 var(--radius) var(--radius);background:var(--color-success-bg);border-top:none;margin-top:-.4rem;padding:.8rem 1.1rem}.preview-key p{margin:0 0 .4rem}.preview-key p:last-child{margin-bottom:0}.question-image,.group-image{border-radius:var(--radius-small);border:1px solid var(--color-border);max-width:100%;height:auto;margin:0 0 .9rem;display:block}.question-image{max-height:420px}.exam-description{white-space:pre-wrap;margin:0 0 1rem;padding:1rem 1.2rem}.question-image-wrap{display:flex}.question-image-wrap.align-center{justify-content:center}.question-image-wrap.align-right{justify-content:flex-end}.question-desc{color:var(--color-text-muted);white-space:pre-wrap;margin:-.5rem 0 .9rem;font-size:.95rem}.question-required{color:var(--color-error)}.option-image{border-radius:var(--radius-small);max-width:min(320px,100%);max-height:240px;margin-top:.4rem;display:block}.group-images{flex-direction:column;gap:.6rem;display:flex}.audio-bar{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin-bottom:1rem;padding:.8rem 1rem;display:flex}.audio-label{color:var(--color-primary);font-weight:600}.audio-native{flex:1;min-width:240px}.audio-progress{background:var(--color-primary-soft);border-radius:999px;flex:1;min-width:120px;height:8px;overflow:hidden}.audio-progress-fill{background:var(--color-primary);height:100%;transition:width .3s linear}.audio-time{font-variant-numeric:tabular-nums;color:var(--color-text-muted)}.question-options.is-compact{flex-flow:wrap}.question-options.is-compact .option{justify-content:center;min-width:84px}.part-intro{border-radius:var(--radius);border-left:5px solid var(--color-primary);background:var(--color-primary-soft);margin-bottom:1rem;padding:.9rem 1.2rem}.part-intro-name{color:var(--color-primary);margin:0;font-size:1.1rem;font-weight:600}.part-intro-directions{margin:.3rem 0 0;line-height:1.6}.result-parts{margin-top:1rem}.question-card .audio-bar{margin-bottom:.8rem}.tour-layer{z-index:1000;position:fixed;inset:0}.tour-blocker{position:fixed;inset:0}.tour-spotlight{outline:3px solid var(--color-accent);pointer-events:none;border-radius:12px;transition:top .2s,left .2s,width .2s,height .2s;position:fixed;box-shadow:0 0 0 9999px #1b2b4b8c}.tour-box{border-radius:var(--radius);background:var(--color-surface);padding:1.1rem 1.2rem 1rem;position:fixed;box-shadow:0 12px 36px #1b2b4b59}.tour-arrow{border-left:12px solid #0000;border-right:12px solid #0000;width:0;height:0;margin-left:-12px;position:absolute}.tour-box.is-below .tour-arrow{border-bottom:14px solid var(--color-surface);top:-14px}.tour-box.is-above .tour-arrow{border-top:14px solid var(--color-surface);bottom:-14px}.tour-step{color:var(--color-text-muted);margin:0 0 .2rem;font-size:.82rem;font-weight:600}.tour-title{color:var(--color-primary);margin:0 0 .4rem;font-size:1.1rem}.tour-text{margin:0 0 1rem;line-height:1.6}.tour-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;display:flex}.tour-nav{gap:.5rem;display:flex}.tour-skip{font-size:.9rem}.fb{--fb-bg:#f0eefa;--fb-card-radius:8px;--fb-active:#2f6fdf;--fb-icon:#5f6368;--fb-line:#dadce0;--fb-soft:#f4f5f7;--fb-correct:#1e8e3e;--fb-correct-bg:#e6f4ea;background:var(--fb-bg);border-radius:var(--radius);margin:0 -4px;padding:20px 16px 96px;font-size:16px}.fb-column{max-width:770px;margin:0 auto;position:relative}.fb-list{flex-direction:column;gap:12px;display:flex;position:relative}.fb-card{background:var(--color-surface);border-radius:var(--fb-card-radius);border:1px solid var(--fb-line);cursor:pointer;padding:22px 24px 18px;transition:box-shadow .15s;position:relative;box-shadow:0 1px 2px #3c404326}.fb-card.is-selected{cursor:default;border-left:6px solid var(--fb-active);padding-left:19px;box-shadow:0 2px 6px #3c404340}.fb-card.is-dragging{opacity:.45}.fb-card.is-checked{outline:2px solid var(--color-error)}.fb-card.is-in-block{margin-left:28px}.fb-card.is-in-block:before{content:"";background:var(--color-accent);border-radius:2px;width:4px;position:absolute;top:-13px;bottom:-13px;left:-18px}.fb-title-card{border-top:10px solid var(--color-primary);padding-top:18px}.fb-title-card.is-selected{border-top-width:10px}.fb-part-tab{background:var(--color-primary);color:var(--color-primary-text);border-radius:8px 8px 0 0;align-self:flex-start;margin:18px 0 -12px;padding:6px 14px;font-size:14px;font-weight:600}.fb-part{border-top:6px solid var(--color-primary)}.fb-part-tab+.fb-part{border-top-left-radius:0}.fb-handle{color:var(--fb-icon);cursor:grab;opacity:0;background:0 0;border:0;border-radius:6px;padding:2px 10px;line-height:0;position:absolute;top:0;left:50%;transform:translate(-50%)}.fb-card:hover .fb-handle,.fb-card.is-selected .fb-handle,.fb-handle:focus-visible{opacity:.7}.fb-handle:focus-visible{outline:2px solid var(--color-focus)}.fb-drop-line{background:var(--fb-active);border-radius:2px;height:4px;margin:-8px 0}.fb-form-title{margin:0 0 6px;font-size:30px;font-weight:500;line-height:1.25}.fb-form-desc{color:var(--color-text-muted);white-space:pre-wrap;margin:0}.fb-form-desc.is-empty{color:#9aa0a6}.fb-q-no{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.02em;margin:0 0 6px;font-size:13px;font-weight:600}.fb-required{color:var(--color-error)}.fb-q-title{white-space:pre-wrap;margin:0 0 10px;line-height:1.5}.fb-q-title.is-empty{color:#9aa0a6;font-style:italic}.fb-q-desc{color:var(--color-text-muted);white-space:pre-wrap;margin:-4px 0 10px;font-size:14px}.fb-part-title,.fb-block-title{margin:0 0 6px;font-size:22px;font-weight:500}.fb-passage{max-height:340px;margin-bottom:10px;overflow:auto}.fb-hint{color:var(--color-text-muted);margin:8px 0 0;font-size:14px}.fb-sub-label{color:var(--color-text-muted);margin-bottom:4px;font-size:14px;display:block}.fb-empty{text-align:center;padding:20px}.fb-text,.fb-form-title-input,.fb-part-title-input,.fb-block-title-input,.fb-opt-input,.fb-line-input{font:inherit;color:inherit;border:0;border-bottom:1px solid var(--fb-line);resize:none;background:0 0;border-radius:0;width:100%;padding:8px 0 6px;overflow:hidden}.fb-text:focus,.fb-form-title-input:focus,.fb-part-title-input:focus,.fb-block-title-input:focus,.fb-opt-input:focus,.fb-line-input:focus{border-bottom:2px solid var(--fb-active);outline:none;padding-bottom:5px}.fb-form-title-input{margin-bottom:8px;font-size:30px}.fb-part-title-input,.fb-block-title-input{margin-bottom:6px;font-size:22px}.fb-form-desc-input,.fb-desc-input{margin-bottom:8px;font-size:15px}.fb-boxed{border:1px solid var(--fb-line);border-radius:6px;padding:8px 10px}.fb-boxed:focus{border:2px solid var(--fb-active);padding:7px 9px}.fb-q-top{align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.fb-q-input{background:var(--fb-soft);border-bottom:1px solid #80868b;border-radius:4px 4px 0 0;flex:1;min-width:0;padding:14px 14px 10px}.fb-q-input:focus{padding-bottom:9px}.fb-type-btn{min-width:210px;height:48px;font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--fb-line);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:0 8px 0 12px;font-size:15px;display:inline-flex}.fb-type-btn span{text-align:left;flex:1}.fb-type-btn svg{color:var(--fb-icon);flex-shrink:0}.fb-type-btn:focus-visible{outline:2px solid var(--color-focus)}.fb-icon-btn{width:44px;height:44px;color:var(--fb-icon);cursor:pointer;background:0 0;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s;display:inline-flex}.fb-icon-btn:hover{background:#5f63681a}.fb-icon-btn:active{background:#5f636833}.fb-icon-btn:focus-visible{outline:2px solid var(--color-focus)}.fb-icon-btn:disabled{opacity:.35;cursor:default;background:0 0}.fb-options{margin:4px 0}.fb-opt{align-items:center;gap:10px;min-height:46px;display:flex}.fb-radio{box-sizing:border-box;border:2px solid #9aa0a6;border-radius:50%;flex-shrink:0;width:20px;height:20px}.fb-radio.is-on{border-color:var(--fb-correct);background:var(--fb-correct);box-shadow:inset 0 0 0 4px #fff}.fb-opt-letter{color:var(--color-text-muted);flex-shrink:0;width:14px;font-size:14px;font-weight:600}.fb-opt-input{border-bottom-color:#0000;flex:1;min-width:0}.fb-opt-input:hover{border-bottom-color:var(--fb-line)}.fb-opt-img-btn{opacity:0}.fb-opt:hover .fb-opt-img-btn,.fb-opt-img-btn:focus-visible{opacity:1}.fb-correct-mark{color:var(--fb-correct);display:inline-flex}.fb-opt-image{align-items:flex-start;gap:4px;margin:2px 0 8px 54px;display:flex}.fb-opt-image img{border-radius:4px;max-width:260px;max-height:200px}.fb-opt-thumb{border-radius:4px;max-width:120px;max-height:64px;margin-left:auto}.fb-add-option{font:inherit;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;border-bottom:1px solid #0000;padding:8px 0}.fb-add-option:hover,.fb-add-option:focus-visible{border-bottom-color:var(--fb-line);outline:none}.fb-preview-options{margin:0 0 4px;padding:0;list-style:none}.fb-preview-options li{border-radius:4px;align-items:center;gap:10px;margin:0 -8px;padding:6px 8px;display:flex}.fb-preview-options li.is-correct{background:var(--fb-correct-bg)}.fb-text-answer{color:#9aa0a6;border-bottom:1px dotted #9aa0a6;width:50%;margin:8px 0;padding-bottom:8px;font-size:14px}.fb-text-answer.is-long{width:85%}.fb-media{margin:4px 0 12px;display:flex}.fb-align-center{justify-content:center}.fb-align-right{justify-content:flex-end}.fb-media-inner{max-width:100%;position:relative}.fb-q-image{border-radius:4px;max-width:100%;max-height:420px;display:block}.fb-media-menu{background:#ffffffeb;border-radius:50%;position:absolute;top:4px;left:4px;box-shadow:0 1px 3px #0000004d}.fb-audio-row{align-items:center;gap:4px;margin:4px 0 12px;display:flex}.fb-audio{width:100%;max-width:460px;height:40px}.fb-footer{border-top:1px solid var(--fb-line);flex-wrap:wrap;align-items:center;gap:4px;margin-top:16px;padding-top:8px;display:flex}.fb-spacer{flex:1}.fb-divider{background:var(--fb-line);width:1px;height:32px;margin:0 10px}.fb-key-link,.fb-link{font:inherit;color:var(--fb-active);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:8px 6px;font-weight:600;display:inline-flex}.fb-key-link:hover,.fb-link:hover{background:var(--color-primary-soft)}.fb-link{margin:6px 0;font-weight:500}.fb-switch{cursor:pointer;align-items:center;gap:10px;padding:0 4px;font-size:15px;display:inline-flex}.fb-switch input{opacity:0;width:1px;height:1px;position:absolute}.fb-switch-track{background:#bdc1c6;border-radius:7px;width:36px;height:14px;transition:background .15s;position:relative}.fb-switch-track:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s,background .15s;position:absolute;top:-3px;left:-2px;box-shadow:0 1px 3px #0006}.fb-switch input:checked+.fb-switch-track{background:#a8c4f5}.fb-switch input:checked+.fb-switch-track:after{background:var(--fb-active);transform:translate(20px)}.fb-switch input:focus-visible+.fb-switch-track{outline:2px solid var(--color-focus);outline-offset:4px}.fb-key-head{border-bottom:1px solid var(--fb-line);justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:10px;display:flex}.fb-key-title{align-items:center;gap:8px;font-weight:600;display:inline-flex}.fb-points{color:var(--color-text-muted);align-items:center;gap:8px;display:inline-flex}.fb-points input{width:64px;font:inherit;border:1px solid var(--fb-line);text-align:center;border-radius:4px;padding:6px 8px}.fb-key-options{flex-direction:column;gap:2px;display:flex}.fb-key-opt{width:100%;min-height:48px;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:10px;padding:8px 12px;display:flex}.fb-key-opt:hover{background:var(--fb-soft)}.fb-key-opt.is-correct{background:var(--fb-correct-bg);color:var(--fb-correct);font-weight:600}.fb-key-opt:focus-visible{outline:2px solid var(--color-focus)}.fb-key-text{flex:1}.fb-accepts{flex-direction:column;align-items:flex-start;display:flex}.fb-accept{align-self:stretch;align-items:center;gap:4px;display:flex}.fb-check{margin-top:8px}.fb-feedback{margin-top:12px}.fb-warning{color:var(--color-error);align-items:center;gap:6px;margin:10px 0 0;font-size:14px;display:flex}.fb-note{color:var(--color-warn);margin:8px 0 0;font-size:14px}.fb-menu-wrap{display:inline-flex;position:relative}.fb-menu{z-index:30;background:var(--color-surface);border-radius:6px;min-width:240px;padding:6px 0;position:absolute;top:calc(100% + 4px);box-shadow:0 4px 16px #3c40434d}.fb-menu-right{right:0}.fb-menu-left{left:0}.fb-menu-item{width:100%;font:inherit;color:var(--color-text);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:10px;padding:10px 16px;font-size:15px;display:flex}.fb-menu-item:hover,.fb-menu-item:focus-visible{background:var(--fb-soft);outline:none}.fb-menu-item:disabled{color:#9aa0a6;cursor:default;background:0 0}.fb-menu-check{width:20px;color:var(--fb-icon);display:inline-flex}.fb-toolbar{background:var(--color-surface);border:1px solid var(--fb-line);z-index:10;border-radius:8px;flex-direction:column;gap:2px;padding:4px;transition:top .2s;display:flex;position:absolute;right:-64px;box-shadow:0 1px 3px #3c40434d}.fb-topbar{z-index:15;background:var(--color-surface);border:1px solid var(--fb-line);border-radius:var(--fb-card-radius);flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:12px;padding:8px 16px;font-size:15px;display:flex;position:sticky;top:0}.fb-add-many{align-items:center;gap:6px;display:inline-flex}.fb-add-many-count{width:64px;font:inherit;border:1px solid var(--fb-line);border-radius:4px;padding:6px 8px}.fb-topbar .btn{font-size:15px}.fb-topbar .btn-small{height:38px;min-height:0;padding:0 12px}.fb-bulk{margin-bottom:12px}.fb-check-row{color:var(--color-error);cursor:pointer;align-items:center;gap:8px;margin-bottom:8px;font-size:14px;display:inline-flex}.fb-check-row input{width:20px;height:20px}.fb-modal-backdrop{z-index:100;background:#20212480;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.fb-modal{background:var(--color-surface);border-radius:8px;flex-direction:column;width:min(760px,100%);max-height:calc(100vh - 32px);font-size:16px;display:flex;box-shadow:0 8px 32px #0000004d}.fb-modal-head{justify-content:space-between;align-items:center;padding:10px 10px 6px 20px;font-size:18px;display:flex}.fb-tabs{border-bottom:1px solid var(--fb-line);padding:0 12px;display:flex}.fb-tab{font:inherit;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;align-items:center;gap:6px;padding:10px 16px;display:inline-flex}.fb-tab.is-active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.fb-modal-body{padding:16px 20px 20px;overflow:auto}.fb-picker-upload{border:2px dashed var(--fb-line);color:var(--fb-icon);text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:6px;padding:18px;display:flex}.fb-picker-upload p{margin:0}.fb-picker-sub{margin:18px 0 8px;font-weight:600}.fb-picker-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;display:grid}.fb-picker-thumb{border:1px solid var(--fb-line);background:var(--color-surface);font:inherit;cursor:pointer;border-radius:6px;flex-direction:column;gap:4px;padding:6px;font-size:12px;display:flex}.fb-picker-thumb:hover,.fb-picker-thumb:focus-visible{border-color:var(--fb-active);outline:none}.fb-picker-thumb img{object-fit:contain;background:var(--fb-soft);width:100%;height:90px}.fb-picker-thumb span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fb-picker-audio{margin:0;padding:0;list-style:none}.fb-picker-audio li{border-bottom:1px solid var(--fb-line);align-items:center;gap:10px;padding:6px 0;display:flex}.fb-picker-audio-name{overflow-wrap:anywhere;flex:1;min-width:0}.fb-picker-audio audio{max-width:260px;height:36px}.fb-snackbar{z-index:90;color:#fff;background:#323232;border-radius:6px;align-items:center;gap:12px;max-width:calc(100vw - 48px);padding:6px 6px 6px 18px;font-size:15px;display:flex;position:fixed;bottom:24px;left:24px;box-shadow:0 3px 10px #0000004d}.fb-snackbar-btn{color:#8ab4f8;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:8px 10px;font-weight:600}.fb-snackbar-btn:hover{background:#ffffff1a}.fb-snackbar .fb-icon-btn{color:#fff}.fb-paste-card{cursor:default}.fb-paste-banner{background:var(--color-primary-soft);border:1px solid var(--color-border);border-radius:var(--fb-card-radius);color:var(--color-primary);align-items:center;gap:14px;margin-bottom:12px;padding:12px 16px;display:flex}.fb-paste-banner svg{flex-shrink:0}.fb-paste-banner-text{color:var(--color-text);flex-direction:column;flex:1;gap:2px;font-size:15px;display:flex}.fb-paste-banner-text strong{color:var(--color-primary);font-size:16px}.fb-paste-banner .btn{white-space:nowrap;font-size:15px}.fb-paste-banner.is-big{padding:24px 20px}.fb-paste-banner.is-big .fb-paste-banner-text strong{font-size:19px}@media (width<=767px){.fb-paste-banner{flex-wrap:wrap}.fb-paste-banner .btn{width:100%}}@media (width<=1000px){.fb-column{margin-right:60px}}@media (width<=767px){.fb{padding:12px 8px 88px}.fb-column{margin-right:0}.fb-card{padding:18px 14px 14px}.fb-card.is-selected{padding-left:9px}.fb-card.is-in-block{margin-left:16px}.fb-card.is-in-block:before{left:-11px}.fb-q-top{flex-wrap:wrap}.fb-q-input{flex-basis:calc(100% - 52px)}.fb-type-btn{width:100%}.fb-toolbar{z-index:50;border-width:1px 0 0;border-radius:0;flex-direction:row;justify-content:space-around;transition:none;position:fixed;bottom:0;left:0;right:0;top:auto!important}.fb-snackbar{bottom:64px;left:8px}.fb-form-title,.fb-form-title-input{font-size:24px}}.fb-hw-title{align-items:center;gap:.6rem;display:flex}.fb-hw-title .hw-prefix{border-right:2px solid #c9b6f5;border-radius:10px;align-self:center;padding:.35rem .8rem}.fb-hw-title .fb-form-title-input{flex:1;min-width:0}.edit-tabs{border-bottom:2px solid var(--color-border);flex-wrap:wrap;gap:.3rem;margin:.4rem 0 1.4rem;display:flex}.edit-tab{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;margin-bottom:-2px;padding:.7rem 1.1rem;font-family:inherit;font-size:1rem;font-weight:600}.edit-tab:hover{color:var(--color-primary);background:var(--color-primary-soft)}.edit-tab.is-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.edit-tab:focus-visible{outline:3px solid var(--color-focus)}.dropzone{border:3px dashed var(--color-accent);border-radius:var(--radius);background:var(--color-bg);min-height:130px;color:var(--color-primary);text-align:center;cursor:pointer;justify-content:center;align-items:center;margin-top:1rem;padding:1.5rem;font-weight:600;transition:background-color .15s,border-color .15s;display:flex}.dropzone:hover,.dropzone.is-over{background:var(--color-primary-soft);border-color:var(--color-primary)}.dropzone.is-disabled{opacity:.6;cursor:wait}.dropzone:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.steps{margin:0 0 .5rem;padding-left:1.4rem;line-height:1.7}.import-summary{margin-bottom:1rem}.import-settings ul{margin:.3rem 0 1rem}.import-parts{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.import-table{max-height:460px;overflow-y:auto}.import-table th{z-index:1;position:sticky;top:0}.paste-fieldset,.answer-grid-wrap,.plain-fieldset{border:none;min-width:0;margin:0;padding:0}.paste-hint code,.field-hint code{background:var(--color-primary-soft);border-radius:4px;padding:.05rem .35rem;font-size:.95em}.paste-area{font-family:Consolas,Courier New,monospace}.paste-start{max-width:320px;margin-top:.8rem}.paste-result{margin-top:1rem}.paste-sample{word-break:break-word;font-family:Consolas,Courier New,monospace}.answer-part-card{margin-bottom:1rem;padding:1.2rem}.answer-part-name{margin:0 0 .8rem;font-size:1.05rem}.answer-grid{grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:.4rem .8rem;display:grid}.answer-cell{border-radius:8px;align-items:center;gap:.25rem;padding:.2rem .3rem;display:flex}.answer-cell.has-answer{background:var(--color-bg)}.answer-cell-no{text-align:right;width:2.4rem;margin-right:.3rem;font-size:.9rem;font-weight:600}.answer-letter{border:2px solid var(--color-border);background:var(--color-surface);width:34px;height:34px;color:var(--color-primary);cursor:pointer;border-radius:50%;font-family:inherit;font-size:.9rem;font-weight:600}.answer-letter:hover{border-color:var(--color-accent)}.answer-letter.is-on{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-primary-text)}.answer-letter-big{width:44px;height:44px;font-size:1rem}.answer-choices{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.segmented{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.qedit-layout{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:1.2rem;display:grid}.qedit-nav{max-height:calc(100vh - 2rem);padding:1rem;position:sticky;top:1rem;overflow-y:auto}.qnav-btn.is-missing{color:var(--color-text-muted);background:var(--color-bg);border-style:dashed}.qnav-btn.is-noanswer{border-color:var(--color-error)}.qedit-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.6rem;display:flex}.qedit-options{grid-template-columns:1fr 1fr;gap:0 1rem;display:grid}.field-label{margin-bottom:.35rem;font-weight:600;display:block}.group-list{margin:0 0 .8rem;padding:0;list-style:none}.group-item{width:100%;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.45rem .6rem;font-family:inherit;font-size:.92rem;display:block}.group-item:hover{background:var(--color-bg)}.group-item.is-current{background:var(--color-primary-soft);box-shadow:inset 3px 0 0 var(--color-primary)}.group-row{grid-template-columns:1.2fr 1.1fr 1.8fr .9fr .9fr}.passage-input{min-height:260px;font-size:.95rem}.check-list{flex-wrap:wrap;gap:.2rem 1.2rem;display:flex}.passage-preview{border:1px solid var(--color-border);border-radius:var(--radius-small);background:var(--color-bg);max-height:420px;padding:1rem 1.2rem;overflow-y:auto}.input-small{min-height:40px;font-size:.9rem}.file-open{margin-left:.6rem}.upload-report{margin-top:1rem}@media (width<=900px){.qedit-layout{grid-template-columns:1fr}.qedit-nav{max-height:320px;position:static}.group-row,.qedit-options{grid-template-columns:1fr}}.file-select-row{align-items:center;gap:.6rem;display:flex}.file-select-row .input{flex:1}.upload-inline{flex-shrink:0;margin-bottom:.5rem}.file-select-row .upload-inline{min-height:var(--button-height);margin-bottom:0}.audio-preview{width:100%;max-width:520px;margin-top:.6rem;display:block}.question-audio-note{border-radius:var(--radius-small);background:var(--color-primary-soft);margin:0 0 1rem;padding:.6rem .9rem}.builder{grid-template-columns:340px minmax(0,1fr);align-items:start;gap:1.2rem;display:grid}.builder-outline{max-height:calc(100vh - 2rem);padding:1rem;position:sticky;top:1rem;overflow-y:auto}.builder-outline-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.6rem;display:flex}.outline-part{border-bottom:1px solid var(--color-border);margin-bottom:1rem;padding-bottom:.8rem}.outline-part-title{background:var(--color-primary-soft);width:100%;color:var(--color-primary);text-align:left;cursor:pointer;border:none;border-radius:8px;padding:.5rem .7rem;font-family:inherit;font-size:1rem;font-weight:600;display:block}.outline-part-title.is-current{box-shadow:inset 4px 0 0 var(--color-primary)}.outline-empty{margin:.5rem .4rem}.outline-list{margin:.3rem 0;padding:0;list-style:none}.outline-sublist{border-left:2px solid var(--color-accent);margin:0 0 .3rem .9rem;padding-left:.5rem}.outline-item{width:100%;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.4rem .6rem;font-family:inherit;font-size:.92rem;display:block}.outline-item:hover{background:var(--color-bg)}.outline-item.is-current{background:var(--color-primary-soft);box-shadow:inset 3px 0 0 var(--color-primary)}.outline-summary{color:var(--color-text-muted)}.outline-group-title{font-weight:600}.outline-actions{flex-wrap:wrap;gap:.4rem;margin-top:.4rem;display:flex}.outline-add-part{width:100%}.builder-editor{min-height:300px}.builder-media-row{grid-template-columns:1fr 1fr}.builder-options{flex-direction:column;gap:.5rem;margin-bottom:.6rem;display:flex}.builder-option{border:2px solid var(--color-border);border-radius:var(--radius-small);align-items:center;gap:.6rem;padding:.4rem .6rem;display:flex}.builder-option.is-answer{border-color:var(--color-success);background:var(--color-success-bg)}.builder-option .input{flex:1;min-height:44px}.builder-answer{white-space:nowrap;margin-top:0}.part-setting{border-bottom:1px dashed var(--color-border);grid-template-columns:1fr 2fr;gap:0 1rem;margin-bottom:.8rem;padding-bottom:.4rem;display:grid}.parts-hint{margin:0 0 1rem}.exam-settings-big-check{color:var(--color-text);font-size:1.05rem;font-weight:600}@media (width<=1000px){.builder{grid-template-columns:1fr}.builder-outline{max-height:none;position:static}.builder-media-row,.part-setting{grid-template-columns:1fr}}.bulk-bar{border-radius:var(--radius-small);background:var(--color-bg);flex-wrap:wrap;align-items:center;gap:.4rem .8rem;margin-bottom:.8rem;padding:.5rem .7rem;display:flex}.bulk-bar.is-active{background:var(--color-error-bg)}.bulk-all{color:var(--color-text);margin-top:0}.outline-row{align-items:flex-start;gap:.3rem;display:flex}.outline-row .outline-item{flex:1}.outline-check{width:18px;height:18px;accent-color:var(--color-error);cursor:pointer;flex-shrink:0;margin:.55rem 0 0 .2rem}.outline-row.is-checked .outline-item{background:var(--color-error-bg)}.add-many{align-items:center;gap:.35rem;display:inline-flex}.add-many-count{text-align:center;width:64px;min-height:40px;padding:0 .5rem}.outline-paste{width:100%;margin:.25rem 0 .75rem}.outline-paste.is-current{background:var(--color-primary-soft-hover);border-color:var(--color-primary)}.review-bar,.review-box{border:1px solid var(--color-flag);border-radius:var(--radius-small);background:var(--color-warn-bg);color:var(--color-warn);margin:0 0 .75rem;padding:.6rem .8rem}.review-bar p,.review-box p{margin:.25rem 0}.review-box{margin-bottom:1rem}.review-badge{color:var(--color-warn);font-size:.85em;font-weight:600}.paste-steps{margin:0 0 .5rem;padding-left:1.4rem;line-height:1.6}.paste kbd{border:1px solid var(--color-border);background:var(--color-surface);border-bottom-width:2px;border-radius:4px;padding:0 .35rem;font-family:inherit;font-size:.85em}.paste-text{font-family:Consolas,Courier New,monospace;font-size:.95rem;line-height:1.5}.paste-summary{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-bottom:.75rem;display:flex}.paste-tag{border-radius:999px;padding:.1rem .6rem;font-size:.85rem;font-weight:600}.tag-image,.tag-warn{background:var(--color-warn-bg);color:var(--color-warn)}.tag-ai{background:var(--color-primary-soft);color:var(--color-primary)}.paste-ai{border-radius:var(--radius-small);background:var(--color-primary-soft);flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:.75rem;padding:.6rem .8rem;display:flex}.paste-ai progress{min-width:120px;height:10px;accent-color:var(--color-primary);flex:1}.paste-ai-usage{margin-left:auto}.text-success{color:var(--color-success);font-weight:600}.paste-filter{margin-bottom:.5rem}.paste-list{flex-direction:column;gap:.6rem;display:flex}.paste-item{border:1px solid var(--color-border);border-radius:var(--radius-small);background:var(--color-surface);padding:.75rem .9rem}.paste-item.needs-review{border-color:var(--color-flag);border-left-width:4px}.paste-item.is-excluded{opacity:.5}.paste-q{white-space:pre-wrap;margin:.4rem 0}.paste-options{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.35rem;margin:.4rem 0;display:grid}.paste-option{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;border-radius:8px;align-items:flex-start;gap:.4rem;padding:.35rem .5rem;font-size:.95rem;display:flex}.paste-option:hover{border-color:var(--color-focus)}.paste-option.is-answer{border-color:var(--color-success);background:var(--color-success-bg)}.paste-option.is-answer.by-ai{border-color:var(--color-primary);background:var(--color-primary-soft);border-style:dashed}.paste-flags{margin:.3rem 0 0;padding:0;font-size:.92rem;list-style:none}.paste-flags li{border-radius:6px;margin-top:.25rem;padding:.25rem .5rem}.flag-error{background:var(--color-error-bg);color:var(--color-error)}.flag-warn,.flag-image{background:var(--color-warn-bg);color:var(--color-warn)}.flag-ai{background:var(--color-primary-soft);color:var(--color-primary)}.paste-passage,.paste-ignored{border:1px dashed var(--color-border);border-radius:var(--radius-small);background:var(--color-bg);padding:.5rem .75rem}.paste-passage summary,.paste-ignored summary{cursor:pointer;font-weight:600}.paste-passage pre,.paste-ignored pre{white-space:pre-wrap;max-height:260px;margin:.5rem 0 0;font-family:inherit;overflow:auto}.paste-ignored{margin-top:.75rem}.paste-apply{background:var(--color-surface);margin-top:.75rem;padding:.75rem 0;position:sticky;bottom:0}.admin-main:has(>.crm-page){max-width:1760px}.crm-page{--crm-grid:#dde6f2;--crm-head:#eef4fc;--crm-sel:#e4edfd;--crm-sel-head:#cddff9;--crm-active:var(--brand-blue);--won:#17744a;--won-bg:#dff5e8;--won-dot:#22a55f;--pending:#8a5a00;--pending-bg:#fff1d1;--pending-dot:#f0a91e;--fail:#b23a2c;--fail-bg:#fde3df;--fail-dot:#e5533f}.crm-hero{isolation:isolate;color:#fff;background:radial-gradient(at 12% -20%,#96e1ff80,#0000 55%),radial-gradient(circle at 88% 15%,#ffffff29,#0000 32%),linear-gradient(165deg,#0a2f7a 0%,#1546b0 38%,#1f6fd1 72%,#2aa7da 100%);border-radius:26px;margin-bottom:1.1rem;padding:1.5rem 1.8rem 4.4rem;position:relative;overflow:hidden;box-shadow:0 18px 44px #1446aa47}.crm-hero-rays{z-index:-1;background:repeating-linear-gradient(100deg,#ffffff12 0 28px,#0000 28px 96px);animation:11s ease-in-out infinite alternate crm-rays;position:absolute;inset:-30% -10% 20%;-webkit-mask-image:linear-gradient(#000 0%,#0000 80%);mask-image:linear-gradient(#000 0%,#0000 80%)}@keyframes crm-rays{0%{opacity:.65;transform:skew(-7deg)translate(-2%)}to{opacity:1;transform:skew(7deg)translate(2%)}}.crm-hero-bubbles{z-index:-1}.crm-hero.is-paused *,.crm-hero.is-paused :before,.crm-hero.is-paused :after{animation-play-state:paused!important}.crm-swim{z-index:-1;pointer-events:none;width:100%;animation:28s linear infinite crm-swim;position:absolute;left:0}.crm-swim .sea-dolphin{width:var(--w);animation:2.6s ease-in-out infinite crm-bob}.crm-swim-1{--w:78px;color:#ffffff8c;--dolphin-eye:#1546b0;top:56%}.crm-swim-2{--w:44px;color:#b9e6ff80;--dolphin-eye:#1f6fd1;animation-duration:36s;animation-delay:-14s;top:24%}.crm-swim-2 .sea-dolphin{animation-duration:2.1s}.crm-swim-3{--w:56px;color:#fff6;--dolphin-eye:#2a8fd8;animation-duration:31s;animation-delay:-24s;top:70%}@keyframes crm-swim{0%{transform:translate(102%)}to{transform:translate(-120px)}}@keyframes crm-bob{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-9px)rotate(4deg)}}.crm-leap{z-index:0;color:#fff;--dolphin-eye:#1f6fd1;pointer-events:none;width:66px;position:absolute;bottom:30px;right:16%}.crm-leap .sea-dolphin{opacity:0;transform-origin:50% 60%;width:100%;animation:7.5s ease-in-out infinite crm-leap}@keyframes crm-leap{0%,55%{opacity:0;transform:translate(64px,52px)rotate(42deg)}60%{opacity:1;transform:translate(50px,24px)rotate(30deg)}72%{opacity:1;transform:translateY(-42px)rotate(-3deg)}84%{opacity:1;transform:translate(-48px,8px)rotate(-36deg)}90%,to{opacity:0;transform:translate(-64px,52px)rotate(-50deg)}}.crm-leap-splash{opacity:0;background:radial-gradient(#ffffffd9,#0000 70%);border-radius:50%;width:90px;height:16px;margin-left:-45px;animation:7.5s ease-out infinite crm-splash;position:absolute;bottom:-8px;left:50%}@keyframes crm-splash{0%,57%{opacity:0;transform:scale(.3)}61%{opacity:1;transform:scale(1)}68%,86%{opacity:0;transform:scale(1.5)}90%{opacity:.9;transform:scale(.9)}97%,to{opacity:0;transform:scale(1.5)}}.crm-hero-spark{z-index:0;color:#ffffffbf;position:absolute}.crm-hero-spark-1{top:16px;right:34%}.crm-hero-spark-2{color:var(--brand-yellow);animation-delay:1.3s;top:54px;right:30%}.crm-hero-top{z-index:1;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.2rem 2rem;display:flex;position:relative}.crm-hero-text{flex:320px;max-width:540px}.crm-hero-badge{background:var(--brand-yellow);color:var(--brand-navy);letter-spacing:.07em;text-transform:uppercase;border-radius:999px;align-items:center;gap:.4rem;margin:0 0 .55rem;padding:.22rem .85rem;font-size:.76rem;font-weight:800;display:inline-flex}.crm-hero h1{text-shadow:0 2px 14px #05144659;margin:0 0 .35rem;font-size:clamp(1.7rem,3vw,2.35rem);font-weight:800}.crm-hero-intro{color:#ffffffe6;margin:0;font-size:.97rem}.crm-hero-intro b{color:var(--brand-yellow)}.crm-stats{flex:2 640px;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem;max-width:980px;display:grid}.crm-stat{color:#fff;min-width:0;font:inherit;text-align:left;background:#10328c52;border:1px solid #ffffff47;border-radius:18px;flex-direction:column;gap:.1rem;padding:.75rem .95rem .8rem;display:flex;box-shadow:inset 0 1px #fff3}button.crm-stat{cursor:pointer;transition:transform .15s,background-color .15s}button.crm-stat:hover{background:#fff3;transform:translateY(-2px)}button.crm-stat:focus-visible{outline:3px solid var(--brand-yellow);outline-offset:2px}.crm-stat-label{opacity:.92;font-size:.8rem;font-weight:700}.crm-stat-value{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:1.55rem;font-weight:800;line-height:1.2;overflow:hidden}.crm-stat-sub{opacity:.85;text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;overflow:hidden}.crm-stat.is-won .crm-stat-value{color:#9af2c0}.crm-stat.is-pending .crm-stat-value{color:#ffe08a}.crm-stat.is-call{border-color:#ffc62e99}.crm-stat.is-call .crm-stat-value{color:var(--brand-yellow)}.crm-stat.is-money .crm-stat-value{font-size:1.3rem}.crm-stat.is-on{color:var(--brand-navy);background:#fff}.crm-stat.is-on .crm-stat-value{color:var(--brand-blue)}.crm-pipe{z-index:1;margin-top:1.1rem;position:relative}.crm-pipe-bar{background:#ffffff2e;border-radius:999px;gap:2px;height:12px;display:flex;overflow:hidden;box-shadow:inset 0 1px 3px #00000026}.crm-pipe-seg{min-width:5px;transition:flex-grow .4s}.crm-pipe-legend{color:#ffffffeb;flex-wrap:wrap;gap:.3rem 1.1rem;margin:.5rem 0 0;padding:0;font-size:.8rem;list-style:none;display:flex}.crm-pipe-legend li{align-items:center;gap:.35rem;display:inline-flex}.crm-pipe-dot{border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 2px #ffffff59}.crm-hero-waves{height:54px}.is-won.crm-pipe-seg,.is-won.crm-pipe-dot,.is-won.crm-dot,.is-won.crm-swatch{background:var(--won-dot)}.is-pending.crm-pipe-seg,.is-pending.crm-pipe-dot,.is-pending.crm-dot{background:var(--pending-dot)}.is-fail.crm-pipe-seg,.is-fail.crm-pipe-dot,.is-fail.crm-dot{background:var(--fail-dot)}.is-blue.crm-pipe-seg,.is-blue.crm-pipe-dot,.is-blue.crm-dot,.is-blue.crm-swatch{background:#3b7bea}.is-purple.crm-pipe-seg,.is-purple.crm-pipe-dot,.is-purple.crm-dot,.is-purple.crm-swatch{background:#8b5cf6}.is-teal.crm-pipe-seg,.is-teal.crm-pipe-dot,.is-teal.crm-dot,.is-teal.crm-swatch{background:#14b8a6}.is-pink.crm-pipe-seg,.is-pink.crm-pipe-dot,.is-pink.crm-dot,.is-pink.crm-swatch{background:#ec4899}.is-orange.crm-pipe-seg,.is-orange.crm-pipe-dot,.is-orange.crm-dot,.is-orange.crm-swatch{background:#f2683a}.is-sky.crm-pipe-seg,.is-sky.crm-pipe-dot,.is-sky.crm-dot,.is-sky.crm-swatch{background:#38bdf8}.is-gray.crm-pipe-seg,.is-gray.crm-pipe-dot,.is-gray.crm-dot,.is-gray.crm-swatch{background:#94a3b8}.is-none.crm-pipe-seg,.is-none.crm-pipe-dot,.is-none.crm-dot{background:#cbd5e1}.crm-chip{vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;gap:.35rem;max-width:100%;padding:0 .6rem;font-size:.8rem;font-weight:700;line-height:22px;display:inline-flex;overflow:hidden}.crm-chip i{background:currentColor;border-radius:50%;flex:none;width:7px;height:7px}.crm-chip.is-dot{padding:0 .45rem}.crm-chip.is-won{background:var(--won-bg);color:var(--won)}.crm-chip.is-won i{background:var(--won-dot)}.crm-chip.is-pending{background:var(--pending-bg);color:var(--pending)}.crm-chip.is-pending i{background:var(--pending-dot)}.crm-chip.is-fail{background:var(--fail-bg);color:var(--fail)}.crm-chip.is-fail i{background:var(--fail-dot)}.crm-chip.is-blue{color:#1f4fa8;background:#e3edff}.crm-chip.is-purple{color:#6a3fb5;background:#efe6fd}.crm-chip.is-teal{color:#136f63;background:#daf4f0}.crm-chip.is-pink{color:#a8326e;background:#fde6f1}.crm-chip.is-orange{color:#b4501d;background:#ffe8db}.crm-chip.is-sky{color:#1f6f99;background:#ddf2fc}.crm-chip.is-gray{color:#4b5567;background:#edf0f4}.crm-toolbar{flex-wrap:wrap;align-items:center;gap:.6rem .9rem;margin-bottom:.7rem;display:flex}.crm-add{border-radius:999px;gap:.45rem;min-height:46px;padding:0 1.3rem;font-size:.98rem}.crm-add:hover svg{transform:rotate(90deg)}.crm-tools{gap:.35rem;display:inline-flex}.crm-tool{border:1px solid var(--color-border);height:42px;color:var(--brand-navy);font:inherit;cursor:pointer;background:#fff;border-radius:12px;align-items:center;gap:.35rem;padding:0 .8rem;font-size:.88rem;font-weight:700;display:inline-flex}.crm-tool svg{color:var(--brand-sky)}.crm-tool:hover:not(:disabled){background:var(--color-primary-soft)}.crm-tool:disabled{opacity:.45;cursor:default}.crm-tool:focus-visible,.crm-fchip:focus-visible,.crm-link-btn:focus-visible,.crm-sortbox button:focus-visible,.crm-mini-btn:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.crm-search{flex:240px;align-items:center;max-width:420px;display:flex;position:relative}.crm-search>svg{color:var(--brand-sky);pointer-events:none;position:absolute;left:.9rem}.crm-search .input{border-radius:999px;min-height:44px;padding-left:2.6rem;font-size:.95rem}.crm-sortbox{border:1px solid var(--color-border);background:#fff;border-radius:999px;align-items:center;gap:.15rem;padding:.22rem;font-size:.86rem;display:inline-flex}.crm-sortbox>span{color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:.3rem;padding:0 .45rem 0 .6rem;font-weight:600;display:inline-flex}.crm-sortbox>span svg{color:var(--brand-sky)}.crm-sortbox button{height:34px;color:var(--color-text);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 .85rem;font-weight:700}.crm-sortbox button:hover{background:var(--color-primary-soft)}.crm-sortbox button.is-on{background:var(--brand-blue);color:#fff;box-shadow:0 4px 10px #1f58cc47}.crm-save{color:var(--color-success);white-space:nowrap;align-items:center;gap:.35rem;margin-left:auto;font-size:.88rem;font-weight:700;display:inline-flex}.crm-save.is-busy{color:var(--brand-blue)}.crm-save-dolphin{width:30px;color:var(--brand-sky);animation:.9s ease-in-out infinite crm-bob}.crm-filters{flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.8rem;display:flex}.crm-fchip{border:1px solid var(--color-border);height:36px;color:var(--color-text);font:inherit;cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:.4rem;padding:0 .6rem 0 .85rem;font-size:.87rem;font-weight:700;transition:background-color .15s,border-color .15s;display:inline-flex}.crm-fchip:hover{border-color:var(--brand-sky);background:#f6faff}.crm-fchip.is-on{border-color:var(--brand-navy);background:var(--brand-navy);color:#fff}.crm-fchip-n{background:var(--color-primary-soft);min-width:1.7em;color:var(--brand-navy);text-align:center;border-radius:999px;padding:0 .45em;font-size:.76rem;line-height:1.6}.crm-fchip.is-on .crm-fchip-n{color:#fff;background:#ffffff38}.crm-fchip.is-call{color:#8a5a00;background:#fff8e6;border-color:#f3d27e}.crm-fchip.is-call.is-on{border-color:var(--brand-yellow);background:var(--brand-yellow);color:var(--brand-navy)}.crm-fchip.is-call.is-on .crm-fchip-n{color:var(--brand-navy);background:#16235f1f}.crm-dot{border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.crm-filters-sep{background:var(--color-border);width:1px;height:24px;margin:0 .2rem}.crm-filters-end{flex-wrap:wrap;align-items:center;gap:.35rem;margin-left:auto;display:flex}.crm-link-btn{height:40px;color:var(--brand-blue);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:.35rem;padding:0 .75rem;font-size:.9rem;font-weight:700;display:inline-flex}.crm-link-btn:hover{background:var(--color-primary-soft)}.crm-stale{color:var(--brand-navy);background:#f1f7ff;border:1px dashed #9fc0ef;border-radius:14px;flex-wrap:wrap;align-items:center;gap:.5rem .8rem;margin-bottom:.7rem;padding:.5rem .6rem .5rem .9rem;font-size:.88rem;display:flex}.crm-stale>svg{color:var(--brand-blue)}.crm-stale span{flex:260px}.crm-tip{background:linear-gradient(90deg,#fff9e8,#fffdf6);border:1px solid #f3d27e;border-radius:14px;align-items:center;gap:.7rem;margin-bottom:.8rem;padding:.55rem .6rem .55rem .95rem;font-size:.88rem;display:flex;position:relative}.crm-tip p{flex:1;margin:0}.crm-tip-spark{color:#f0a91e;flex:none}.crm-page kbd,.guide kbd{text-align:center;background:#fff;border:1px solid #cdd8ea;border-bottom-width:2px;border-radius:6px;min-width:1.6em;padding:0 .35em;font-family:inherit;font-size:.8em;font-weight:700;line-height:1.5;display:inline-block}.crm-empty{border:1px solid var(--color-border);background:linear-gradient(120deg,#f2f8ff,#fff);border-radius:18px;align-items:center;gap:1.2rem;margin-bottom:.8rem;padding:1rem 1.3rem;display:flex}.crm-empty h2{color:var(--brand-navy);margin:0 0 .2rem;font-size:1.15rem}.crm-empty p{color:var(--color-text-muted);margin:0}.crm-empty.is-small{justify-content:space-between;padding:.6rem .9rem}.crm-empty-dolphin{width:96px;color:var(--brand-sky);flex:none}.crm-loading{color:var(--color-text-muted);flex-direction:column;align-items:center;gap:.6rem;padding:3rem 1rem;display:flex}.crm-loading-dolphin{width:110px;color:var(--brand-sky)}.crm-sheet{border:1px solid var(--color-border);box-shadow:var(--shadow-card);background:#fff;border-radius:18px;position:relative;overflow:hidden}.crm-fbar{border-bottom:1px solid var(--crm-grid);background:linear-gradient(#fbfdff,#f3f7fd);align-items:stretch;min-height:44px;display:flex}.crm-fbar-addr{border-right:1px solid var(--crm-grid);min-width:96px;color:var(--brand-navy);font-variant-numeric:tabular-nums;white-space:nowrap;background:#fff;flex:none;justify-content:center;align-items:center;padding:0 .8rem;font-size:.84rem;font-weight:800;display:flex}.crm-fbar-fx{color:var(--brand-sky);align-items:center;padding:0 .7rem;font-family:Georgia,Times New Roman,serif;font-style:italic;font-weight:700;display:flex}.crm-fbar-text{white-space:pre-wrap;word-break:break-word;flex:auto;min-width:0;max-height:4.6em;padding:.55rem .4rem;font-size:.92rem;overflow:auto}.crm-fbar-text.is-empty{color:var(--color-text-muted);font-style:italic}.crm-fbar-actions{flex-wrap:wrap;align-items:center;gap:.35rem;padding:.35rem .6rem;display:flex}.crm-mini-btn,.crm-fbar-class{border:1px solid var(--color-border);height:32px;color:var(--brand-navy);font:inherit;white-space:nowrap;cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:.3rem;padding:0 .75rem;font-size:.82rem;font-weight:700;text-decoration:none;display:inline-flex}.crm-mini-btn svg,.crm-fbar-class svg{color:var(--brand-sky)}.crm-mini-btn:hover{background:var(--color-primary-soft)}.crm-mini-btn.is-danger,.crm-mini-btn.is-danger svg{color:var(--color-error);border-color:#f1c9c3}.crm-mini-btn.is-danger:hover{background:var(--color-error-bg)}.crm-fbar-class{background:var(--won-bg);color:var(--won);border-color:#b9dcc8}.crm-fbar-class svg{color:var(--won)}.crm-fbar-warn{border-bottom:1px solid var(--crm-grid);align-items:center;gap:.45rem;margin:0;padding:.4rem .9rem;font-size:.86rem;font-weight:600;display:flex}.crm-fbar-warn.is-error{color:#b23a2c;background:#fff1ef}.crm-fbar-warn.is-dup{color:#8a5a00;background:#fff6e6}.crm-fbar-warn.is-known{color:#1f4fa8;background:#eaf3ff}.crm-scroll{overscroll-behavior:contain;height:calc(100vh - 150px);min-height:380px;max-height:1500px;position:relative;overflow:auto}.crm-grid{border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:.9rem}.crm-grid th,.crm-grid td{border-right:1px solid var(--crm-grid);border-bottom:1px solid var(--crm-grid);padding:0}.crm-grid thead th{z-index:4;background:var(--crm-head);position:sticky}.crm-letters th{color:#7b8aa8;letter-spacing:.04em;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;height:24px;font-size:.72rem;font-weight:700;top:0}.crm-letters th.is-sel{background:var(--crm-sel-head);color:var(--brand-navy)}.crm-grid .crm-heads th{height:40px;color:var(--brand-navy);text-align:left;background:linear-gradient(#e9f1fd,#dbe7f9);top:24px;box-shadow:inset 0 -2px #c4d6f1}.crm-grid thead th.is-frozen{z-index:5;left:52px}.crm-grid thead .crm-corner{z-index:6;cursor:pointer;left:0}.crm-corner-2{color:#7b8aa8;font-size:.75rem;text-align:center!important}.crm-sort{width:100%;height:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:.3rem;padding:0 .6rem;font-size:.86rem;font-weight:800;display:flex}.crm-sort span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.crm-sort svg{color:var(--brand-blue);flex:none}.crm-sort:hover{background:#ffffff80}.crm-sort:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.crm-heads th.is-money .crm-sort{justify-content:flex-end}.crm-resize{z-index:2;cursor:col-resize;width:8px;height:100%;position:absolute;top:0;right:-4px}.crm-resize:hover,.crm-resize:active{background:linear-gradient(90deg, transparent 3px, var(--brand-blue) 3px 5px, transparent 5px)}.crm-num{z-index:2;background:var(--crm-head);color:#7b8aa8;text-align:center;font-variant-numeric:tabular-nums;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.75rem;font-weight:700;position:sticky;left:0}.crm-num.is-sel{background:var(--crm-sel-head);color:var(--brand-navy)}.crm-td{cursor:cell;background:#fff;position:relative}.crm-cell{text-overflow:ellipsis;white-space:nowrap;height:33px;padding:0 .6rem;line-height:33px;overflow:hidden}.crm-td.is-money .crm-cell{text-align:right}.crm-td.is-money .crm-cell,.crm-td.is-date .crm-cell,.crm-td.is-phone .crm-cell,.crm-td.is-idNumber .crm-cell{font-variant-numeric:tabular-nums}.crm-td.is-note .crm-cell{color:#3d4b66}.crm-td.is-frozen{z-index:1;font-weight:600;position:sticky;left:52px;box-shadow:3px 0 #1f4fa80d}.crm-row:hover .crm-td{background:#f7faff}.crm-grid .crm-td.is-sel{background:var(--crm-sel)}.crm-td.is-active{z-index:3}.crm-grid .crm-td.is-active.is-sel{background:#fff}.crm-td.is-active:after{content:"";z-index:2;border:2px solid var(--crm-active);pointer-events:none;position:absolute;inset:-1px}.crm-td.is-active:before{content:"";z-index:3;background:var(--crm-active);pointer-events:none;border:1.5px solid #fff;width:7px;height:7px;position:absolute;bottom:-4px;right:-4px}.crm-row.is-ghost .crm-td{background:#fffdf2;border-bottom:1px dashed #e7c665}.crm-row.is-ghost:hover .crm-td{background:#fff8dc}.crm-row.is-ghost .crm-num{background:var(--brand-yellow);color:var(--brand-navy);border-bottom:1px dashed #e7c665}.crm-ghost-hint{color:#a07a1a;font-style:italic;font-weight:600}.crm-row.is-saving .crm-td{color:#7686a4}.crm-spacer td{background:0 0;border:0;padding:0}.crm-tri{pointer-events:none;border-top:0 solid #0000;border-bottom:9px solid #0000;border-left:0 solid #0000;border-right:9px solid #e5533f;width:0;height:0;position:absolute;top:0;right:0}.crm-tri.is-dup{border-right-color:#f0a91e}.crm-tri.is-known{border-right-color:#3b7bea}.crm-due{vertical-align:middle;border-radius:999px;align-items:center;gap:.25rem;padding:0 .5rem;font-size:.82rem;font-weight:700;line-height:22px;display:inline-flex}.crm-due.is-late{background:var(--fail-bg);color:var(--fail)}.crm-due.is-today{color:#8a5a00;background:#fff0c7}.crm-cap{color:var(--won-dot);vertical-align:-2px;margin-left:.35rem;display:inline-flex}.crm-editor{z-index:4;position:absolute;inset:-1px}.crm-input{color:#0000;caret-color:#0000;width:100%;height:100%;font:inherit;resize:none;opacity:0;cursor:cell;background:0 0;border:0;border-radius:0;outline:none;margin:0;padding:0 .6rem;position:absolute;inset:0}.crm-editor.is-open .crm-input{border:2px solid var(--crm-active);color:var(--color-text);caret-color:auto;opacity:1;cursor:text;background:#fff;padding:0 calc(.6rem - 1px);box-shadow:0 6px 18px #1f58cc3d}.crm-editor.is-open .crm-input::placeholder{color:#9aa7bf;font-style:italic}.crm-editor.is-open.is-money .crm-input{text-align:right}.crm-editor.is-open.is-note .crm-input{white-space:pre-wrap;width:max(100%,440px);height:auto;min-height:130px;padding:.5rem .65rem;line-height:1.5;inset:0 0 auto auto}.crm-pop{z-index:5;border:1px solid var(--color-border);cursor:default;background:#fff;border-radius:14px;min-width:max(100%,240px);font-size:.88rem;font-weight:400;animation:.14s ease-out cl-pop;position:absolute;top:calc(100% + 4px);left:-1px;box-shadow:0 16px 36px #0f286438}.crm-editor.is-note .crm-pop{top:calc(100% + 100px)}.crm-pop.is-up,.crm-editor.is-note .crm-pop.is-up{top:auto;bottom:calc(100% + 4px)}.crm-pop-error{min-width:300px;color:var(--color-error);white-space:normal;background:#fff6f5;border-color:#f3c1bb;align-items:flex-start;gap:.4rem;padding:.55rem .75rem;font-weight:600;line-height:1.4;display:flex}.crm-pop-error svg{flex:none;margin-top:2px}.crm-listpop ul{max-height:252px;margin:0;padding:.35rem;list-style:none;overflow:auto}.crm-listpop li{cursor:pointer;border-radius:9px;justify-content:space-between;align-items:center;gap:.5rem;padding:.38rem .55rem;display:flex}.crm-listpop li svg{color:var(--brand-blue);flex:none}.crm-listpop li.is-hi{background:var(--color-primary-soft)}.crm-list-new{color:var(--brand-blue);align-items:center;gap:.3rem;font-weight:700;display:inline-flex}.crm-list-muted{color:var(--color-text-muted);font-style:italic}.crm-list-hint{border-top:1px solid var(--crm-grid);color:var(--color-text-muted);white-space:normal;margin:0;padding:.45rem .8rem .6rem;font-size:.78rem;line-height:1.4}.crm-datepop{min-width:290px;padding:.55rem}.crm-datepop-row{flex-wrap:wrap;gap:.35rem;display:flex;position:relative}.crm-datepop-row+.crm-datepop-row{margin-top:.4rem}.crm-datepop button{border:1px solid var(--color-border);height:32px;color:var(--brand-navy);font:inherit;cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:.3rem;padding:0 .7rem;font-size:.82rem;font-weight:700;display:inline-flex}.crm-datepop button svg{color:var(--brand-sky)}.crm-datepop button:hover{background:var(--color-primary-soft)}.crm-datepop button.is-muted{color:var(--color-text-muted)}.crm-datepick{opacity:0;pointer-events:none;border:0;width:1px;height:1px;padding:0;position:absolute;bottom:0;left:0}.crm-statusbar{border-top:1px solid var(--crm-grid);color:var(--color-text-muted);background:#f6f9fe;flex-wrap:wrap;align-items:center;gap:.3rem 1.2rem;padding:.45rem .9rem;font-size:.8rem;display:flex}.crm-statusbar strong{color:var(--brand-navy)}.crm-statusbar-hint{margin-left:auto}.crm-menu{z-index:300;border:1px solid var(--color-border);background:#fff;border-radius:14px;min-width:250px;padding:.35rem;animation:.12s ease-out cl-pop;position:fixed;box-shadow:0 18px 40px #0f286440}.crm-menu button{width:100%;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:.6rem;padding:.5rem .65rem;font-size:.9rem;display:flex}.crm-menu button:hover{background:var(--color-primary-soft)}.crm-menu button svg{color:var(--brand-sky)}.crm-menu button span{flex:1}.crm-menu kbd{color:var(--color-text-muted);background:0 0;border:0;font-weight:600}.crm-menu hr{border:0;border-top:1px solid var(--crm-grid);margin:.3rem .4rem}.crm-menu .is-danger,.crm-menu .is-danger svg{color:var(--color-error)}.crm-menu .is-danger:hover{background:var(--color-error-bg)}.crm-toast{z-index:250;background:var(--brand-navy);color:#fff;border-radius:14px;align-items:center;gap:.55rem;max-width:min(680px,100vw - 32px);padding:.65rem .6rem .65rem 1rem;font-size:.92rem;font-weight:600;animation:.22s ease-out crm-toast-in;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 16px 40px #0a194659}.crm-toast>svg{flex:none}.crm-toast.is-error{background:#b23a2c}.crm-toast.is-success{background:#17744a}.crm-toast.is-warn{background:#8a5a00}.crm-toast-close{color:#fff;cursor:pointer;background:#ffffff1f;border:0;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.crm-toast-close:hover{background:#ffffff3d}@keyframes crm-toast-in{0%{opacity:0;transform:translate(-50%,14px)}}.crm-party{z-index:400;pointer-events:none;position:fixed;inset:0;overflow:hidden}.crm-party-dolphin{width:180px;color:var(--brand-sky);filter:drop-shadow(0 12px 20px #1f58cc59);--dolphin-eye:#fff;animation:2.5s cubic-bezier(.45,.05,.55,.95) forwards crm-party-leap;position:absolute;bottom:6%;right:-190px}.crm-party-dolphin .sea-dolphin{width:100%}@keyframes crm-party-leap{0%{transform:translate(0)rotate(28deg)}50%{transform:translate(calc(-50vw - 90px),-50vh)rotate(-2deg)}to{transform:translate(calc(-100vw - 260px))rotate(-36deg)}}.crm-party .crm-party-spark{color:var(--brand-yellow);opacity:0;animation:1.5s ease-out forwards crm-burst;animation-delay:calc(.55s + var(--i) * 35ms);position:absolute;top:40%;left:50%}.crm-party .crm-party-spark.is-1{color:#fff}.crm-party .crm-party-spark.is-2{color:var(--brand-sky)}.crm-party .crm-party-spark.is-3{color:var(--brand-orange)}@keyframes crm-burst{0%{opacity:0;transform:translate(0)scale(.3)}20%{opacity:1}to{opacity:0;transform:translate(var(--dx), var(--dy)) scale(1.1) rotate(120deg)}}.crm-party-text{border:3px solid var(--brand-yellow);color:var(--brand-navy);white-space:nowrap;background:#fff;border-radius:999px;padding:.8rem 1.5rem;font-size:1.2rem;font-weight:800;animation:2.7s ease-in-out forwards crm-party-pop;position:absolute;top:40%;left:50%;box-shadow:0 18px 44px #0a1e5a4d}@keyframes crm-party-pop{0%{opacity:0;transform:translate(-50%,-30%)scale(.7)}14%,80%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-75%)scale(.95)}}.crm-modal .cl-modal-foot{z-index:2;background:#fff;border-radius:0 0 22px 22px;position:sticky;bottom:0;box-shadow:0 -10px 18px #0f28640f}.crm-map-table th,.crm-map-table td{padding:.45rem .9rem}.crm-dialog-intro{margin-top:0}.crm-status-list{margin:0 0 1rem;padding:0;list-style:none}.crm-status-list li{border-bottom:1px solid var(--crm-grid);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.5rem 0;display:flex}.crm-status-fixed{color:var(--color-text-muted);align-items:center;gap:.25rem;font-size:.82rem;display:inline-flex}.crm-status-count{color:var(--color-text-muted);white-space:nowrap;margin-left:auto;font-size:.85rem;font-weight:600}.crm-status-name{flex:180px;max-width:260px;min-height:40px;font-size:.95rem}.crm-status-add{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.crm-status-add .input{flex:220px;min-height:44px}.crm-status-add .btn{gap:.35rem;min-height:44px}.crm-colors{gap:.3rem;display:inline-flex}.crm-swatch{width:22px;height:22px;box-shadow:0 0 0 1px var(--color-border);cursor:pointer;border:2px solid #fff;border-radius:50%;padding:0}.crm-swatch.is-on{box-shadow:0 0 0 2px var(--brand-navy)}.crm-swatch:disabled{cursor:default;opacity:.6}.crm-enroll-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem;display:grid}.crm-enroll-grid .field{margin-bottom:.9rem}.crm-timeline{margin:0;padding:0;list-style:none}.crm-timeline li{border-bottom:1px solid var(--crm-grid);grid-template-columns:150px 1fr;gap:.8rem;padding:.55rem 0;display:grid}.crm-timeline li.is-status{background:linear-gradient(90deg,#f1f7ff,#0000)}.crm-timeline-at{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:.85rem}.crm-timeline-what{white-space:pre-wrap;word-break:break-word}.crm-timeline-what svg{vertical-align:-2px;color:var(--won-dot)}.crm-map-table select.input{min-height:38px;font-size:.92rem}.crm-map-table td{vertical-align:middle}.crm-fill-today{margin-top:.9rem}.crm-warn-list{background:var(--color-warn-bg);color:var(--color-warn);border-radius:12px;margin-top:.8rem;padding:.6rem .9rem;font-size:.88rem}.crm-warn-list summary{cursor:pointer;font-weight:700}.crm-deleted-wrap{max-height:55vh;overflow:auto}@media (width<=1250px){.crm-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){.crm-hero{border-radius:20px;padding:1.2rem 1rem 3.8rem}.crm-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-stat-value{font-size:1.3rem}.crm-search{max-width:none}.crm-save{margin-left:0}.crm-sortbox-label{display:none}.crm-sortbox button{padding:0 .7rem}.crm-filters-end{margin-left:0}.crm-statusbar-hint{display:none}.crm-enroll-grid{grid-template-columns:1fr}.crm-timeline li{grid-template-columns:1fr;gap:.2rem}.crm-fbar{flex-wrap:wrap}.crm-fbar-actions{border-top:1px solid var(--crm-grid);width:100%}}@media (prefers-reduced-motion:reduce){.crm-hero-rays,.crm-swim,.crm-swim .sea-dolphin,.crm-leap .sea-dolphin,.crm-leap-splash,.crm-save-dolphin,.crm-party-dolphin,.crm-party .crm-party-spark{animation:none!important}.crm-swim-1{transform:translate(62%)}.crm-swim-2{transform:translate(74%)}.crm-swim-3{transform:translate(86%)}.crm-party-dolphin,.crm-party .crm-party-spark{display:none}}
