.login-page-v2{background:#0f0c29;grid-template-columns:minmax(0,1.25fr) minmax(440px,.9fr);min-height:100vh;font-family:inherit;display:grid;position:relative;overflow:hidden}.login-visual-v2{color:#fff;background:radial-gradient(circle at 20% 20%,#7c3aed59,#0000 45%),radial-gradient(circle at 80% 80%,#3b82f647,#0000 45%),radial-gradient(circle,#ec489926,#0000 60%),linear-gradient(135deg,#120e36 0%,#1a164a 50%,#0d0b26 100%);border-right:1px solid #ffffff14;flex-direction:column;justify-content:space-between;min-height:100vh;padding:50px clamp(40px,5vw,90px);display:flex;position:relative;overflow:hidden}.login-visual-v2:before{content:"";filter:blur(50px);pointer-events:none;background:radial-gradient(circle,#a855f740 0%,#0000 70%);border-radius:50%;width:450px;height:450px;animation:10s ease-in-out infinite alternate floatOrb;position:absolute;top:-120px;right:-80px}.login-visual-v2:after{content:"한";color:#ffffff09;-webkit-user-select:none;user-select:none;pointer-events:none;font-family:Apple SD Gothic Neo,Malgun Gothic,sans-serif;font-size:clamp(320px,34vw,540px);font-weight:900;line-height:1;animation:12s ease-in-out infinite alternate pulseWatermark;position:absolute;bottom:-130px;right:-40px}.login-brand-v2{z-index:2;align-items:center;gap:14px;display:flex;position:relative}.brand-badge-v2{color:#fff;background:linear-gradient(135deg,#7c3aed,#4f46e5);border:1px solid #ffffff40;border-radius:14px;place-items:center;width:46px;height:46px;font-size:1.4rem;font-weight:900;animation:4s ease-in-out infinite alternate logoGlow;display:grid;box-shadow:0 8px 24px #7c3aed73}.brand-text-v2{flex-direction:column;display:flex}.brand-text-v2 strong{letter-spacing:-.02em;background:linear-gradient(90deg,#fff 0%,#e0e7ff 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.22rem;font-weight:850}.brand-text-v2 span{color:#a5b4fc;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:600}.hero-content-v2{z-index:2;max-width:620px;margin:40px 0;position:relative}.hero-pill-v2{color:#c4b5fd;letter-spacing:.05em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#7c3aed38;border:1px solid #a855f766;border-radius:99px;align-items:center;gap:7px;margin-bottom:20px;padding:6px 14px;font-size:.76rem;font-weight:750;display:inline-flex}.hero-title-v2{letter-spacing:-.04em;margin:0 0 20px;font-size:clamp(2.6rem,4.4vw,4.2rem);font-weight:900;line-height:1.05}.hero-title-v2 .text-highlight{background:linear-gradient(135deg,#a855f7 0%,#60a5fa 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.hero-desc-v2{color:#e0e7ffd1;max-width:540px;margin:0;font-size:1.05rem;line-height:1.7}.hero-features-v2{z-index:2;grid-template-columns:repeat(3,1fr);gap:14px;display:grid;position:relative}.feature-glass-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:18px;flex-direction:column;gap:10px;padding:18px 16px;transition:transform .25s,background .25s,border-color .25s;display:flex}.feature-glass-card:hover{background:#ffffff14;border-color:#a855f766;transform:translateY(-4px)}.feature-icon-wrap{color:#c4b5fd;background:#7c3aed40;border:1px solid #a855f759;border-radius:11px;place-items:center;width:38px;height:38px;display:grid}.feature-glass-card strong{color:#f8fafc;font-size:.88rem}.feature-glass-card small{color:#94a3b8;font-size:.74rem;line-height:1.45}.login-panel-v2{z-index:2;background:radial-gradient(circle at 50% 10%,#1e1b4b 0%,#0f172a 100%);flex-direction:column;justify-content:center;align-items:center;padding:40px clamp(24px,5vw,64px);display:flex;position:relative}.login-card-v2{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#1e1b4ba6;border:1px solid #ffffff1f;border-radius:26px;flex-direction:column;width:min(100%,430px);padding:42px 38px;transition:box-shadow .35s,border-color .35s,transform .35s;display:flex;position:relative;box-shadow:0 25px 60px -15px #0000008c,0 0 0 1px #7c3aed33}.login-card-v2.success-glow{border-color:#10b98199;transform:scale(1.015);box-shadow:0 25px 80px -10px #10b98166,0 0 40px #10b98140}.login-card-v2.animate-shake{animation:.45s cubic-bezier(.36,.07,.19,.97) both shakeCard}.mobile-brand-v2{align-items:center;gap:10px;margin-bottom:24px;display:none}.login-card-header{margin-bottom:28px}.login-eyebrow{letter-spacing:.08em;color:#a78bfa;text-transform:uppercase;align-items:center;gap:6px;margin-bottom:8px;font-size:.72rem;font-weight:800;display:inline-flex}.login-card-header h2{letter-spacing:-.035em;color:#fff;margin:0 0 8px;font-size:2rem;font-weight:850}.login-card-header p{color:#94a3b8;margin:0;font-size:.88rem;line-height:1.5}.login-form-group{flex-direction:column;gap:7px;margin-bottom:20px;display:flex}.login-form-group label{color:#cbd5e1;justify-content:space-between;align-items:center;font-size:.82rem;font-weight:700;display:flex}.input-with-icon{align-items:center;display:flex;position:relative}.input-icon-left{color:#64748b;pointer-events:none;width:18px;height:18px;transition:color .2s;position:absolute;left:14px}.input-with-icon input{color:#fff;background:#0f172ab3;border:1.5px solid #ffffff1f;border-radius:14px;outline:none;width:100%;height:48px;padding:0 42px 0 44px;font-family:inherit;font-size:.92rem;transition:border-color .2s,background .2s,box-shadow .2s}.input-with-icon input:focus{background:#0f172ae6;border-color:#818cf8;box-shadow:0 0 0 4px #818cf833}.input-with-icon input:focus~.input-icon-left{color:#818cf8}.input-toggle-right{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:6px;transition:color .2s,background .2s;display:grid;position:absolute;right:12px}.input-toggle-right:hover{color:#cbd5e1;background:#ffffff0f}.login-error-alert{color:#fca5a5;background:#ef444426;border:1px solid #ef444459;border-radius:12px;align-items:center;gap:10px;margin-bottom:20px;padding:12px 14px;font-size:.82rem;animation:.3s fadeInDown;display:flex}.login-success-banner{color:#6ee7b7;background:#10b98133;border:1px solid #10b98173;border-radius:14px;align-items:center;gap:10px;margin-bottom:20px;padding:14px 16px;font-size:.88rem;font-weight:700;animation:.4s cubic-bezier(.34,1.56,.64,1) successPop;display:flex}.login-submit-btn{cursor:pointer;color:#fff;background:linear-gradient(135deg,#6366f1 0%,#8b5cf6 50%,#d946ef 100%) 0 0/200% 200%;border:0;border-radius:14px;justify-content:center;align-items:center;gap:10px;width:100%;height:50px;font-family:inherit;font-size:.96rem;font-weight:800;transition:transform .2s,box-shadow .2s,filter .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 25px -5px #7c3aed73}.login-submit-btn:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-2px);box-shadow:0 14px 30px -5px #7c3aed99}.login-submit-btn:active:not(:disabled){transform:translateY(0)}.login-submit-btn:disabled{opacity:.85;cursor:not-allowed}.login-submit-btn.is-loading{background:linear-gradient(135deg,#4f46e5,#7c3aed);animation:2s infinite gradientShift}.login-submit-btn.is-success{background:linear-gradient(135deg,#059669 0%,#10b981 100%);animation:1s ease-in-out infinite successPulse;box-shadow:0 10px 28px #10b98180}.login-footer-note{text-align:center;color:#64748b;justify-content:center;align-items:center;gap:6px;margin-top:24px;font-size:.74rem;display:flex}@keyframes floatOrb{0%{transform:translate(0)scale(1)}to{transform:translate(-40px,30px)scale(1.1)}}@keyframes pulseWatermark{0%{opacity:.035;transform:rotate(0)scale(1)}to{opacity:.055;transform:rotate(-2deg)scale(1.05)}}@keyframes logoGlow{0%{box-shadow:0 8px 24px #7c3aed73}to{box-shadow:0 10px 32px #a855f7a6}}@keyframes shakeCard{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-6px)}40%,60%{transform:translate(6px)}}@keyframes successPop{0%{opacity:0;transform:scale(.85)}60%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes successPulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.spin-icon{animation:.8s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (width<=960px){.login-page-v2{background:#0d0b26;display:block}.login-visual-v2{display:none}.login-panel-v2{min-height:100vh;padding:32px 18px}.login-card-v2{background:#1a1642d9;padding:32px 24px}.mobile-brand-v2{display:flex}}:root{color:#28273a;font-synthesis:none;--purple:#6d5dfc;--purple-dark:#5546dc;--purple-soft:#efedff;--green:#2eb67d;--green-soft:#e9f9f2;--orange:#f59b48;--orange-soft:#fff3e8;--red:#eb5d68;--line:#e9e8f1;--muted:#77758a;--card:#fff;--shadow:0 12px 34px #2d285a12;background:#f7f7fc;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#f7f7fc;min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}input,select,textarea{color:#27263a;background:#fff;border:1px solid #deddea;border-radius:12px;outline:none;width:100%;padding:12px 13px;transition:all .18s}input:focus,select:focus,textarea:focus{border-color:#9c92ff;box-shadow:0 0 0 3px #eeecff}textarea{resize:vertical}label{color:#5f5d70;gap:7px;font-size:.84rem;font-weight:650;display:grid}.btn{white-space:nowrap;border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:11px 16px;font-weight:750;transition:transform .15s,background .15s,opacity .15s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.58;cursor:wait;transform:none}.btn.primary{color:#fff;background:var(--purple);box-shadow:0 7px 16px #6d5dfc38}.btn.primary:hover{background:var(--purple-dark)}.btn.secondary{color:var(--purple-dark);background:var(--purple-soft)}.btn.ghost{color:#5f5d73;background:#f5f4f9}.btn.white{color:var(--purple-dark);background:#fff}.btn.success{background:var(--green);color:#fff}.btn.weak{color:#cb4551;background:#fff0f1}.btn.full{width:100%}.btn.small{border-radius:10px;padding:8px 11px;font-size:.82rem}.icon-button{color:#676579;background:0 0;border:0;border-radius:10px;place-items:center;width:38px;height:38px;display:inline-grid;position:relative}.icon-button:hover{background:#f0eff5}.icon-button.danger{color:var(--red)}.icon-button.big{border:1px solid var(--line);background:#fff;width:48px;height:48px}.grow{flex:1;min-width:0}.muted{color:var(--muted)}.login-page{background:#fff;grid-template-columns:minmax(0,1.2fr) minmax(420px,.8fr);min-height:100vh;display:grid}.login-visual{color:#fff;background:radial-gradient(circle at 80% 15%,#ffffff2e,#0000 30%),linear-gradient(145deg,#5443de 0%,#7d6dff 56%,#8c77f0 100%);flex-direction:column;justify-content:space-between;min-height:100vh;padding:46px clamp(45px,6vw,100px);display:flex;position:relative;overflow:hidden}.login-visual:after{content:"한";color:#ffffff0b;font-size:520px;font-weight:900;line-height:1;position:absolute;bottom:-180px;right:-55px}.login-brand{z-index:1;align-items:center;gap:12px;font-size:1.08rem;display:flex;position:relative}.brand-mark{color:#fff;background:linear-gradient(135deg,#7566ff,#5443d7);border-radius:13px;place-items:center;width:42px;height:42px;font-weight:900;display:grid;box-shadow:0 7px 18px #493abc38}.brand-mark.big{box-shadow:none;background:#ffffff29;border:1px solid #ffffff38}.hero-copy{z-index:1;max-width:650px;position:relative}.hero-pill{letter-spacing:.08em;background:#ffffff1a;border:1px solid #ffffff40;border-radius:99px;padding:7px 11px;font-size:.72rem;font-weight:800;display:inline-flex}.hero-copy h1{letter-spacing:-.055em;margin:19px 0 16px;font-size:clamp(2.7rem,5.1vw,5.5rem);line-height:.98}.hero-copy h1 em{color:#e5dcff;font-style:normal}.hero-copy p{color:#fffc;max-width:610px;margin:0;font-size:1.02rem;line-height:1.75}.login-features{z-index:1;grid-template-columns:repeat(3,1fr);gap:13px;display:grid;position:relative}.login-features>div{background:#ffffff1a;border:1px solid #ffffff1f;border-radius:16px;align-items:center;gap:10px;padding:15px;display:flex}.login-features svg{flex:none;width:20px}.login-features span{gap:3px;display:grid}.login-features strong{font-size:.84rem}.login-features small{color:#ffffffa6;font-size:.72rem}.login-panel{place-items:center;padding:42px;display:grid}.login-card{width:min(100%,430px)}.login-card h2{letter-spacing:-.035em;margin:9px 0 7px;font-size:2.1rem}.login-card>p{color:var(--muted);margin:0 0 27px}.login-card label{margin:14px 0}.login-card .btn{min-height:48px;margin-top:10px}.eyebrow{color:var(--purple);letter-spacing:.1em;font-size:.71rem;font-weight:850}.demo-box{color:#676579;background:#f7f7fb;border-radius:14px;margin-top:24px;padding:15px;font-size:.78rem}.demo-users{flex-wrap:wrap;gap:7px;margin-top:10px;display:flex}.demo-users button{color:#5f5d70;background:#fff;border:1px solid #deddea;border-radius:9px;padding:7px 10px;font-weight:700}.form-error{color:#c74651;background:#fff0f1;border-radius:10px;padding:10px 12px;font-size:.82rem}.mobile-login-logo{display:none}.app-shell{min-height:100vh}.sidebar{border-right:1px solid var(--line);z-index:30;background:#fff;flex-direction:column;width:252px;padding:23px 15px;display:flex;position:fixed;inset:0 auto 0 0}.brand-row{align-items:center;gap:11px;padding:2px 8px 24px;display:flex}.brand-row>div:nth-child(2){display:grid}.brand-row strong{font-size:1rem}.brand-row span{color:var(--muted);margin-top:1px;font-size:.73rem}.close-mobile{margin-left:auto;display:none}.side-nav{gap:5px;display:grid}.nav-link{color:#69677a;text-align:left;background:0 0;border:0;border-radius:11px;align-items:center;gap:11px;width:100%;padding:11px 12px;font-size:.87rem;font-weight:700;display:flex}.nav-link:hover{background:#f7f6fb}.nav-link.active{color:var(--purple-dark);background:var(--purple-soft)}.nav-link.install{color:var(--green)}.nav-badge{color:#fff;background:#ec5d68;border-radius:99px;place-items:center;min-width:19px;height:19px;margin-left:auto;padding:0 5px;font-size:.65rem;display:grid}.sidebar-bottom{gap:10px;margin-top:auto;display:grid}.account-box{border-top:1px solid var(--line);align-items:center;gap:9px;padding:16px 5px 0;display:flex}.avatar{background:var(--purple-soft);width:37px;height:37px;color:var(--purple-dark);border-radius:11px;place-items:center;font-weight:850;display:grid}.avatar.small{flex:none;width:34px;height:34px}.account-text{flex:1;min-width:0;display:grid}.account-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.account-text span{color:var(--muted);margin-top:2px;font-size:.68rem}.main-area{min-height:100vh;margin-left:252px}.page-wrap{width:min(1220px,100%);margin:0 auto;padding:40px clamp(24px,3.5vw,48px) 70px}.mobile-header,.bottom-nav,.sidebar-overlay{display:none}.app-loader{min-height:100vh;color:var(--muted);place-content:center;justify-items:center;gap:12px;display:grid}.loader-logo{background:var(--purple);color:#fff;border-radius:17px;place-items:center;width:58px;height:58px;font-size:1.5rem;font-weight:900;animation:1.2s ease-in-out infinite alternate breathe;display:grid}@keyframes breathe{to{transform:scale(1.06);box-shadow:0 10px 30px #6d5dfc40}}.page-head{justify-content:space-between;align-items:end;gap:24px;margin-bottom:26px;display:flex}.page-head h1{letter-spacing:-.04em;margin:6px 0 7px;font-size:clamp(1.7rem,3vw,2.3rem)}.page-head p{color:var(--muted);margin:0;line-height:1.55}.panel{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 3px 14px #2d285a06}.notice{color:#5449bb;background:#f2f0ff;border:1px solid #dcd8ff;border-radius:12px;margin:-12px 0 20px;padding:11px 14px;font-size:.84rem}.pagination-bar{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding-top:12px;font-size:.7rem;display:flex}.pagination-bar>div{align-items:center;gap:5px;display:flex}.pagination-bar button{border:1px solid var(--line);color:#656274;background:#fff;border-radius:9px;place-items:center;min-width:34px;height:34px;padding:0 8px;font-weight:750;display:inline-grid}.pagination-bar button.active{background:var(--purple);border-color:var(--purple);color:#fff;box-shadow:0 5px 14px #6c5ce733}.pagination-bar button:disabled{opacity:.42;cursor:default}.pagination-number-wrap{align-items:center;gap:5px;display:flex}.pagination-number-wrap i{color:#aaa7b6;font-style:normal}.stats-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px;display:grid}.stat-card{border:1px solid var(--line);background:#fff;border-radius:17px;align-items:center;gap:14px;min-width:0;padding:18px;display:flex}.stat-icon{width:45px;height:45px;color:var(--purple);background:var(--purple-soft);border-radius:13px;flex:none;place-items:center;display:grid}.stat-card.green .stat-icon{color:#198b5d;background:var(--green-soft)}.stat-card.orange .stat-icon{color:#ce7627;background:var(--orange-soft)}.stat-card>div:last-child{min-width:0;display:grid}.stat-card span{color:var(--muted);font-size:.72rem;font-weight:700}.stat-card strong{margin:2px 0;font-size:1.52rem;line-height:1.2}.stat-card small{color:#9a98a8;white-space:nowrap;text-overflow:ellipsis;font-size:.7rem;overflow:hidden}.two-col{grid-template-columns:1fr 1fr;align-items:start;gap:18px;display:grid}.panel-title{justify-content:space-between;align-items:center;gap:15px;margin-bottom:17px;display:flex}.panel-title>div{gap:2px;display:grid}.panel-title span{color:var(--purple);letter-spacing:.07em;font-size:.67rem;font-weight:850}.panel-title h3{margin:0;font-size:1.02rem}.panel-title a{color:var(--purple);font-size:.78rem;font-weight:750}.form-grid{grid-template-columns:1fr 1fr;gap:13px;display:grid}.form-grid.three{grid-template-columns:repeat(3,1fr)}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.form-grid .btn{align-self:end}.admin-grid{margin-bottom:18px}.assign-row{grid-template-columns:1.1fr 1fr auto 1fr auto;align-items:center;gap:9px;display:grid}.class-cards{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px;display:grid}.class-card{border:1px solid var(--line);border-radius:13px;align-items:center;gap:11px;padding:12px;display:flex}.class-code{background:var(--purple-soft);width:42px;height:42px;color:var(--purple);border-radius:11px;place-items:center;font-size:.68rem;font-weight:850;display:grid}.class-card>div:last-child{gap:3px;min-width:0;display:grid}.class-card strong{font-size:.82rem}.class-card span{color:var(--muted);font-size:.7rem}.management-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px;display:flex}.management-toolbar>span{color:var(--muted);white-space:nowrap;font-size:.72rem}.management-search{border:1px solid var(--line);color:#9693a4;background:#fff;border-radius:12px;align-items:center;gap:7px;width:min(420px,100%);padding-left:11px;display:flex}.management-search:focus-within{border-color:#9c92ff;box-shadow:0 0 0 3px #eeecff}.management-search input{box-shadow:none;border:0;padding-left:2px}.management-form-panel{border-color:#dcd8ff;margin-bottom:14px}.management-form-actions{justify-content:flex-end;align-items:end;gap:8px;display:flex}.management-table-panel{padding-top:8px}.management-table-wrap{width:100%;overflow-x:auto}.management-table{border-collapse:collapse;width:100%;min-width:650px}.management-table th{border-bottom:1px solid var(--line);color:#9996a7;text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:10px 9px;font-size:.65rem}.management-table td{border-bottom:1px solid #f0eff5;padding:11px 9px;font-size:.76rem}.management-table tbody tr:last-child td{border-bottom:0}.management-table tbody tr:hover{background:#fbfaff}.management-table .inactive-row{opacity:.62}.user-cell{align-items:center;gap:9px;display:flex}.user-cell>span{gap:2px;display:grid}.user-cell strong{font-size:.78rem}.user-cell small{color:var(--muted);font-size:.65rem}.role-chip,.status-chip{border-radius:99px;align-items:center;width:max-content;padding:5px 7px;font-size:.61rem;font-weight:800;display:inline-flex}.role-chip.admin{color:#5848cd;background:var(--purple-soft)}.role-chip.teacher{color:#177c56;background:var(--green-soft)}.role-chip.student{color:#b66a28;background:var(--orange-soft)}.status-chip.active{color:#168258;background:var(--green-soft)}.status-chip.inactive{color:#8d8998;background:#f0eff4}.row-actions{align-items:center;gap:3px;display:flex}.icon-button.restore{color:var(--green)}.management-class-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;display:grid}.management-class-card{flex-direction:column;gap:8px;display:flex}.management-class-card.inactive-card{opacity:.67}.class-manage-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.management-class-card h3{margin:4px 0 0;font-size:.94rem}.management-class-card>p{color:var(--muted);min-height:31px;margin:0;font-size:.7rem;line-height:1.45}.class-manage-stats{color:#777486;gap:12px;font-size:.68rem;display:flex}.class-manage-stats span{align-items:center;gap:4px;display:flex}.class-manage-actions{align-items:center;gap:5px;margin-top:3px;display:flex}.class-manage-actions .btn{margin-right:auto}.class-member-manager{margin-top:16px}.class-member-manager .panel-title>select{width:min(300px,100%)}.member-columns{grid-template-columns:1fr 1fr;gap:16px;display:grid}.member-columns>div{border:1px solid var(--line);border-radius:13px;padding:13px}.member-columns h4{color:#4d495d;align-items:center;gap:6px;margin:0 0 10px;font-size:.79rem;display:flex}.member-add{grid-template-columns:1fr auto;gap:7px;display:grid}.member-add select{padding:9px 10px;font-size:.72rem}.member-list{margin-top:9px;display:grid}.member-list>div{border-top:1px solid #f0eff5;align-items:center;gap:8px;min-height:46px;display:flex}.member-list>div>span{flex:1;gap:2px;min-width:0;display:grid}.member-list strong{text-overflow:ellipsis;font-size:.71rem;overflow:hidden}.member-list small{color:var(--muted);text-overflow:ellipsis;font-size:.61rem;overflow:hidden}.stack-list{display:grid}.list-row{border-bottom:1px solid #f0eff5;align-items:center;gap:11px;min-height:60px;display:flex}.list-row:last-child{border:0}.list-row.clickable{border-radius:10px;padding:2px 5px}.list-row.clickable:hover{background:#faf9fd}.round-icon{background:var(--purple-soft);width:39px;height:39px;color:var(--purple);border-radius:11px;flex:none;place-items:center;display:grid}.round-icon.green{color:#188b5d;background:var(--green-soft)}.round-icon.orange{color:#cb7426;background:var(--orange-soft)}.list-row .grow{gap:3px;display:grid}.list-row strong{font-size:.83rem}.list-row span{color:var(--muted);font-size:.72rem}.list-row>a{color:var(--purple);font-size:.75rem;font-weight:750}.empty-state{color:#a1a0ad;text-align:center;place-content:center;justify-items:center;min-height:145px;display:grid}.empty-state p{margin:9px 0 0;font-size:.82rem}.hero-task{color:#fff;background:linear-gradient(120deg,#6251e8,#7969ff);border-radius:20px;justify-content:space-between;margin-bottom:17px;padding:26px 28px;display:flex;position:relative;overflow:hidden;box-shadow:0 15px 30px #5e4eda29}.hero-task>div:first-child{z-index:1;position:relative}.hero-task-label{letter-spacing:.07em;color:#dfdcff;align-items:center;gap:7px;font-size:.68rem;font-weight:850;display:flex}.hero-task h2{margin:9px 0 5px;font-size:1.6rem}.hero-task p{color:#ffffffbf;margin:0 0 17px;font-size:.83rem}.hero-hangul{color:#ffffff1a;font-size:9rem;font-weight:900;position:absolute;top:-22px;right:34px}.recommend-list{gap:15px;display:grid}.recommend-item{grid-template-columns:62px 1fr;align-items:center;gap:12px;display:grid}.mastery{background:#ecebf1;border-radius:9px;width:62px;height:7px;overflow:hidden}.mastery span{border-radius:inherit;background:linear-gradient(90deg,#f18b48,#f5b148);height:100%;display:block}.recommend-item>div:last-child{gap:3px;display:grid}.recommend-item strong{font-size:.8rem}.recommend-item span{color:var(--muted);font-size:.7rem}.assignment-builder{box-shadow:var(--shadow);border-color:#dcd8ff;margin-bottom:18px}.assignment-audio-builder{background:linear-gradient(135deg,#fbfaff,#fff);border:1px solid #dcd8ff;border-radius:16px;gap:11px;margin:18px 0 0;padding:15px;display:grid}.assignment-audio-builder.ready{border-color:#bdb5ff;box-shadow:0 8px 24px #5b48cd12}.assignment-audio-head{align-items:flex-start;gap:10px;display:flex}.assignment-audio-head>div{flex:1;min-width:0}.assignment-audio-head>div>span{color:#6d5de5;letter-spacing:.07em;font-size:.61rem;font-weight:900}.assignment-audio-head h3{color:#373249;margin:3px 0;font-size:.91rem}.assignment-audio-head p{color:var(--muted);margin:0;font-size:.68rem;line-height:1.45}.assignment-audio-icon{color:#fff;background:linear-gradient(135deg,#6857ec,#9a6df5);border-radius:12px;flex:0 0 39px;place-items:center;width:39px;height:39px;display:grid;box-shadow:0 7px 16px #6857ec33}.assignment-audio-drop{color:#6a5cdc;cursor:pointer;background:#f8f6ff;border:1px dashed #bfb7f4;border-radius:13px;align-items:center;gap:12px;min-height:86px;padding:14px 16px;display:flex;position:relative;overflow:hidden}.assignment-audio-drop:hover{background:#f3f0ff;border-color:#806ff0}.assignment-audio-drop>span{flex:1;gap:3px;min-width:0;display:grid}.assignment-audio-drop strong{color:#454055;font-size:.78rem}.assignment-audio-drop small{color:var(--muted);font-size:.65rem}.assignment-audio-drop>b{color:#fff;background:var(--purple);border-radius:9px;padding:8px 11px;font-size:.68rem}.assignment-audio-drop input{opacity:0;cursor:pointer;position:absolute;inset:0}.assignment-audio-preview{background:#fff;border:1px solid #e4e0fa;border-radius:13px;grid-template-columns:minmax(190px,.7fr) minmax(260px,1.3fr) auto;align-items:center;gap:11px;padding:11px;display:grid}.assignment-audio-file{color:#6a5cdc;align-items:center;gap:8px;min-width:0;display:flex}.assignment-audio-file>span{gap:3px;min-width:0;display:grid}.assignment-audio-file strong{color:#403b52;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.assignment-audio-file small{color:var(--muted);font-size:.6rem}.assignment-audio-preview audio{width:100%;height:38px}.assignment-audio-note{color:#2b7d5c;align-items:center;gap:6px;font-size:.65rem;line-height:1.45;display:flex}.question-builder-head{justify-content:space-between;align-items:center;margin:24px 0 11px;display:flex}.question-builder-head>div{align-items:center;gap:9px;display:flex}.question-builder-head span{color:var(--muted);font-size:.75rem}.question-builder-list{gap:11px;display:grid}.question-edit{border:1px solid var(--line);background:#fbfbfd;border-radius:14px;gap:12px;padding:15px;display:flex}.question-number{background:var(--purple);color:#fff;border-radius:9px;flex:none;place-items:center;width:29px;height:29px;font-size:.76rem;font-weight:850;display:grid}.question-edit-main{flex:1;gap:9px;min-width:0;display:grid}.question-meta-row{grid-template-columns:150px 1fr 105px 38px;gap:8px;display:grid}.points-input{grid-template-columns:57px 1fr;align-items:center}.points-input input{padding:8px}.question-meta-row select,.question-meta-row input{padding:9px 10px;font-size:.8rem}.answer-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.builder-actions{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:17px;padding-top:16px;display:flex}.check-label{align-items:center;gap:8px;display:flex}.check-label input{width:16px;height:16px;accent-color:var(--purple)}.assignment-cards{gap:10px;display:grid}.assignment-card{border-bottom:1px solid var(--line);align-items:center;gap:13px;padding:14px 6px;display:flex}.assignment-card:last-child{border-bottom:0}.assignment-type{width:45px;height:45px;color:var(--purple);background:var(--purple-soft);border-radius:12px;flex:none;place-items:center;display:grid}.assignment-type.test{color:#c66b20;background:var(--orange-soft)}.assignment-main{flex:1;min-width:0}.assignment-title-row{align-items:center;gap:9px;display:flex}.assignment-title-row strong{font-size:.91rem}.assignment-main>p{color:var(--muted);margin:4px 0 8px;font-size:.74rem}.assignment-class-filter{color:var(--purple);background:linear-gradient(115deg,#f7f5ff,#fff);border:1px solid #dedaff;border-radius:14px;justify-content:space-between;align-items:center;gap:14px;margin-bottom:13px;padding:12px 14px;display:flex}.assignment-class-filter>div{align-items:center;gap:8px;display:flex}.assignment-class-filter>div>span{gap:2px;display:grid}.assignment-class-filter strong{color:#4c4860;font-size:.76rem}.assignment-class-filter small{color:var(--muted);font-size:.63rem}.assignment-class-filter select{width:min(310px,48%);padding:9px 11px}.assignment-class-name{align-items:center;gap:5px;display:flex}.assignment-class-name strong{color:var(--purple-dark)}.class-context-badge{background:var(--purple-soft);border-radius:9px;align-items:center;gap:5px;padding:5px 8px;font-weight:800;display:inline-flex;color:var(--purple-dark)!important;font-size:.65rem!important}.recent-class-name{color:var(--purple-dark);font-weight:800}.status{border-radius:7px;padding:4px 7px;font-size:.61rem;font-weight:800}.status.draft{color:#786f86;background:#f1f0f5}.status.published{color:#18875b;background:var(--green-soft)}.status.closed{color:#9d5b24;background:var(--orange-soft)}.audio-assignment-badge{color:#6657d7;white-space:nowrap;background:#efedff;border-radius:8px;align-items:center;gap:4px;padding:4px 7px;font-size:.6rem;font-weight:850;display:inline-flex}.assignment-meta{color:#898798;gap:14px;font-size:.7rem;display:flex}.assignment-meta span{align-items:center;gap:5px;display:flex}.assignment-actions{gap:7px;display:flex}.segmented{background:#ecebf2;border-radius:12px;gap:4px;margin-bottom:14px;padding:4px;display:inline-flex}.segmented button{color:#777587;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:9px;padding:8px 14px;font-size:.78rem;font-weight:750}.segmented button.active{color:var(--purple-dark);background:#fff;box-shadow:0 2px 7px #26224b14}.segmented.compact{margin:0}.segmented .tab-incomplete{color:#92400e}.segmented .tab-incomplete.active{color:#92400e;background:#fffbeb;box-shadow:0 2px 7px #d9770626}.segmented .tab-done.active{color:#065f46;background:#ecfdf5;box-shadow:0 2px 7px #05966926}.student-assignment-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.student-assignment-card{border:1px solid var(--line);border-radius:15px;padding:16px;transition:all .16s}.student-assignment-card:hover{border-color:#cfcaff;transform:translateY(-1px)}.student-assignment-card.card-done{background:linear-gradient(160deg,#f0fdf4,#fff);border-color:#a7f3d0}.student-assignment-card.card-done:hover{border-color:#34d399}.student-assignment-card.card-incomplete{background:linear-gradient(160deg,#fffbeb,#fff);border-color:#fde68a}.student-assignment-card.card-incomplete:hover{border-color:#fbbf24}.student-assignment-top,.student-assignment-bottom{justify-content:space-between;align-items:center;display:flex}.student-assignment-tags{align-items:center;gap:6px;display:inline-flex}.type-pill{background:var(--purple-soft);color:var(--purple-dark);letter-spacing:.04em;border-radius:8px;padding:5px 8px;font-size:.64rem;font-weight:850}.type-pill.test{background:var(--orange-soft);color:#be6924}.score-pill{color:#17875a;background:var(--green-soft);border-radius:8px;padding:5px 8px;font-size:.7rem;font-weight:800}.score-pill.done{color:#065f46;background:#d1fae5;border:1px solid #a7f3d0}.score-pill.incomplete{color:#92400e;background:#fef3c7;border:1px solid #fde68a}.student-assignment-card h3{margin:14px 0 4px;font-size:1rem}.student-assignment-card>p{color:var(--muted);margin:0 0 18px;font-size:.72rem}.student-assignment-bottom{border-top:1px solid var(--line);color:var(--muted);padding-top:12px;font-size:.72rem}.student-assignment-bottom span{align-items:center;gap:5px;display:flex}.student-assignment-bottom strong{color:var(--purple)}.card-done .student-assignment-bottom strong{color:#059669}.card-incomplete .student-assignment-bottom strong{color:#d97706}.detail-back{margin-bottom:18px}.detail-back a{color:var(--muted);align-items:center;gap:6px;font-size:.78rem;font-weight:700;display:inline-flex}.assignment-detail-head{justify-content:space-between;align-items:end;gap:24px;margin-bottom:20px;display:flex}.assignment-detail-head h1{letter-spacing:-.04em;margin:10px 0 5px;font-size:2rem}.assignment-detail-head p{color:var(--muted);margin:0}.detail-meta{gap:20px;display:flex}.detail-meta>div{color:#777587;align-items:center;gap:8px;display:flex}.detail-meta span{font-size:.67rem;display:grid}.detail-meta strong{color:#393746;margin-top:2px;font-size:.77rem}.assignment-listening-player{background:#fff;border:1px solid #d7d2fb;border-radius:16px;margin-bottom:16px;overflow:hidden;box-shadow:0 9px 26px #483a9112}.assignment-listening-title{background:linear-gradient(105deg,#f4f1ff,#fbfaff);border-bottom:1px solid #e8e5fa;align-items:center;gap:10px;padding:12px 15px;display:flex}.assignment-listening-title>span{color:#fff;background:linear-gradient(135deg,#6251e8,#9470ef);border-radius:12px;flex:0 0 38px;place-items:center;width:38px;height:38px;display:grid}.assignment-listening-title>div{flex:1;gap:2px;display:grid}.assignment-listening-title small{color:#7567df;letter-spacing:.08em;font-size:.58rem;font-weight:900}.assignment-listening-title strong{color:#393449;font-size:.82rem}.assignment-listening-title em{color:#695ad9;background:#fff;border-radius:999px;padding:5px 8px;font-size:.62rem;font-style:normal;font-weight:800}.assignment-listening-body{grid-template-columns:minmax(160px,.5fr) minmax(300px,1.5fr);align-items:center;gap:12px;padding:13px 15px;display:grid}.assignment-listening-file{color:#6c5dde;align-items:center;gap:7px;min-width:0;display:flex}.assignment-listening-file span{color:#666174;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.assignment-listening-body audio{width:100%;height:40px}.assignment-audio-loading,.assignment-audio-error{border-radius:10px;align-items:center;gap:7px;padding:8px 10px;font-size:.7rem;display:flex}.assignment-audio-loading{color:#6758db;background:#f4f2ff}.assignment-audio-error{color:#ad4a51;background:#fff1f2}.instruction-box{background:#f4f2ff;border:1px solid #dedbf9;border-radius:13px;margin-bottom:16px;padding:14px 16px}.instruction-box strong{color:var(--purple);font-size:.75rem}.instruction-box p{color:#605d79;margin:4px 0 0;font-size:.82rem;line-height:1.5}.work-info{background:var(--green-soft);color:#247151;border-radius:11px;align-items:center;gap:8px;margin-bottom:12px;padding:11px 13px;font-size:.78rem;display:flex}.question-list{gap:12px;display:grid}.question-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:19px}.question-card.correct{border-color:#ccebdd}.question-card.partial{background:#fffdf8;border-color:#f0d8a9}.question-card.wrong{border-color:#f2d0d3}.q-head{color:var(--purple);justify-content:space-between;align-items:center;display:flex}.q-head span{text-transform:uppercase;font-size:.69rem;font-weight:850}.q-head b{color:#9a98a8;font-size:.67rem;font-weight:650}.question-card.correct .q-head svg{color:var(--green)}.question-card.partial .q-head svg{color:#c98319}.question-card.wrong .q-head svg{color:var(--red)}.question-card h3{margin:10px 0 15px;font-size:1rem;line-height:1.5}.option-list{grid-template-columns:1fr 1fr;gap:8px;display:grid}.option-list label{border:1px solid var(--line);cursor:pointer;border-radius:11px;align-items:center;gap:8px;padding:11px 12px;display:flex}.option-list label.selected{background:var(--purple-soft);color:var(--purple-dark);border-color:#a99fff}.option-list input{width:15px;height:15px;accent-color:var(--purple)}.student-answer-input{background:#fafafd}.submit-bar{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:15px;justify-content:space-between;align-items:center;margin-top:16px;padding:14px 16px;display:flex;position:sticky;bottom:10px}.submit-bar>div{gap:2px;display:grid}.submit-bar strong{font-size:.8rem}.submit-bar span{color:var(--muted);font-size:.7rem}.ai-checking-float{z-index:70;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff5;border:1px solid #dcd8ff;border-radius:18px;width:min(430px,100vw - 32px);padding:16px;animation:.24s ease-out both aiCheckIn;position:fixed;bottom:92px;right:24px;overflow:hidden;box-shadow:0 18px 55px #3d377733}.ai-checking-float:before{content:"";pointer-events:none;background:linear-gradient(110deg,#0000 25%,#7463ff14 45%,#0000 65%);animation:2.1s linear infinite aiCheckShimmer;position:absolute;inset:0;transform:translate(-100%)}.ai-checking-top{grid-template-columns:auto 1fr auto;align-items:center;gap:11px;display:grid;position:relative}.ai-checking-top>div:nth-child(2){gap:3px;min-width:0;display:grid}.ai-checking-top strong{color:#393451;font-size:.88rem}.ai-checking-top span{color:var(--muted);font-size:.68rem;line-height:1.45}.ai-checking-top>b{color:var(--purple);font-variant-numeric:tabular-nums;font-size:.88rem}.ai-checking-orb{color:#6759f5;background:#f0eeff;border-radius:14px;place-items:center;width:42px;height:42px;animation:1.7s ease-out infinite aiCheckPulse;display:grid;box-shadow:0 0 #6759f547}.ai-checking-track{background:#efedf8;border-radius:999px;height:8px;margin-top:13px;position:relative;overflow:hidden}.ai-checking-track>i{border-radius:inherit;background:linear-gradient(90deg,#7768ff,#9d72ff,#7464f6);min-width:4%;height:100%;transition:width .3s;display:block;position:relative}.ai-checking-track>i:after{content:"";background:linear-gradient(90deg,#0000,#ffffff8c,#0000);animation:1.15s linear infinite aiProgressSweep;position:absolute;inset:0}.ai-checking-steps{grid-template-columns:repeat(4,1fr);gap:5px;margin-top:11px;display:grid;position:relative}.ai-checking-steps span{color:#aaa6b7;white-space:nowrap;align-items:center;gap:5px;font-size:.59rem;display:flex}.ai-checking-steps span>i{background:#d8d5e4;border-radius:50%;flex:none;width:6px;height:6px}.ai-checking-steps span.active{color:#5c5279;font-weight:700}.ai-checking-steps span.active>i{background:#6f61f6;box-shadow:0 0 0 3px #eeecff}.ai-checking-foot{color:#716c80;align-items:center;gap:6px;margin-top:11px;font-size:.64rem;display:flex;position:relative}.ai-checking-foot b{color:#514a68;font-variant-numeric:tabular-nums;margin-left:auto}.ai-live-dot{background:#2cc887;border-radius:50%;width:7px;height:7px;animation:1.25s infinite aiLivePulse;box-shadow:0 0 #2cc88759}.student-answer-input:disabled,.option-list input:disabled+span{opacity:.68;cursor:wait}@keyframes aiCheckIn{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes aiCheckPulse{70%{box-shadow:0 0 0 10px #6759f500}to{box-shadow:0 0 #6759f500}}@keyframes aiLivePulse{70%{box-shadow:0 0 0 6px #2cc88700}to{box-shadow:0 0 #2cc88700}}@keyframes aiCheckShimmer{to{transform:translate(100%)}}@keyframes aiProgressSweep{to{transform:translate(100%)}}.result-layout{grid-template-columns:.38fr .62fr}.result-summary{text-align:center;position:sticky;top:30px}.score-ring{--score:50%;background:conic-gradient(var(--green) var(--score), #eeedf2 0);border-radius:50%;width:144px;height:144px;margin:5px auto 16px;padding:9px}.score-ring>div{background:#fff;border-radius:50%;place-content:center;height:100%;display:grid}.score-ring strong{font-size:2.1rem}.score-ring span{color:var(--muted);font-size:.72rem}.result-summary h2{margin:0 0 5px}.result-summary>p{color:var(--muted);font-size:.78rem;line-height:1.5}.score-line{border-top:1px solid var(--line);justify-content:space-between;margin-top:15px;padding-top:14px;font-size:.8rem;display:flex}.answer-review{background:#fafafd;border-radius:9px;gap:4px;margin-top:7px;padding:9px 11px;display:grid}.answer-review span{color:var(--muted);font-size:.65rem}.answer-review strong{font-size:.8rem}.answer-review.correct-answer{background:var(--green-soft)}.feedback{color:#646174;gap:6px;margin:10px 0 0;font-size:.75rem;line-height:1.5;display:flex}.draft-callout{background:#fff7ed;border:1px solid #f6dfc9;border-radius:13px;justify-content:space-between;align-items:center;margin-bottom:14px;padding:13px 15px;display:flex}.draft-callout>div{color:#bf6d29;align-items:center;gap:10px;display:flex}.draft-callout span{display:grid}.draft-callout strong{color:#6d4a2d;font-size:.82rem}.draft-callout small{font-size:.69rem}.stats-inline{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;display:grid}.stats-inline>div{border:1px solid var(--line);color:var(--purple);background:#fff;border-radius:13px;align-items:center;gap:9px;padding:12px 14px;display:flex}.stats-inline span{color:var(--muted);font-size:.73rem}.stats-inline strong{color:#333142}.teacher-detail-grid{grid-template-columns:.45fr .55fr;transition:grid-template-columns .3s}.teacher-detail-grid.content-hidden{grid-template-columns:64px 1fr}.teacher-content-panel{transition:all .3s;overflow:hidden}.teacher-content-panel.collapsed{min-width:56px;max-width:64px;padding:12px 8px}.teacher-content-panel.collapsed .panel-title{flex-direction:column;align-items:center;gap:4px}.teacher-content-panel.collapsed .panel-title>div{display:none}.collapse-btn{color:var(--purple);flex-shrink:0}.collapsed-hint{cursor:pointer;color:var(--purple);opacity:.7;flex-direction:column;align-items:center;gap:6px;padding:12px 0;transition:opacity .2s;display:flex}.collapsed-hint:hover{opacity:1}.collapsed-hint span{writing-mode:vertical-lr;letter-spacing:.08em;color:var(--muted);font-size:.7rem;font-weight:700}.teacher-questions{gap:12px;display:grid}.teacher-questions>div{border-bottom:1px solid var(--line);gap:5px;padding-bottom:11px;display:grid}.teacher-questions>div:last-child{border:0}.teacher-questions span{color:var(--purple);font-size:.78rem;font-weight:800}.teacher-questions strong{color:#2d2b38;font-size:.95rem;line-height:1.5}.teacher-questions small{color:#646174;font-size:.84rem;line-height:1.45}.ai-ask-toggle-btn{color:var(--purple)}.ai-ask-toggle-btn.active{background:var(--purple-soft);color:var(--purple);border-radius:8px}.teacher-ai-ask-panel{background:linear-gradient(135deg,#faf9ff,#fff);border:1px solid #dcd8ff;border-radius:14px;margin-bottom:14px;overflow:hidden}.teacher-ai-ask-header{background:#f3f0ff;border-bottom:1px solid #ece9ff;align-items:center;gap:8px;padding:10px 14px;display:flex}.teacher-ai-ask-header strong{color:#3730a3;flex:1;font-size:.84rem}.teacher-ai-ask-header svg{color:var(--purple)}.teacher-ai-quick-qs{border-bottom:1px solid #ece9ff;flex-wrap:wrap;gap:6px;padding:10px 14px;display:flex}.teacher-ai-quick-q{color:#4338ca;cursor:pointer;background:#fff;border:1px solid #dcd8ff;border-radius:20px;padding:5px 12px;font-size:.78rem;transition:background .15s}.teacher-ai-quick-q:hover{background:#eeebff}.teacher-ai-messages{gap:8px;max-height:260px;padding:12px 14px;display:grid;overflow-y:auto}.teacher-ai-msg{align-items:flex-start;gap:7px;display:flex}.teacher-ai-msg.user{flex-direction:row-reverse}.teacher-ai-msg.user p{color:#fff;background:#4338ca;border-radius:14px 14px 4px}.teacher-ai-msg.ai p{color:#2d2b38;background:#f3f0ff;border-radius:14px 14px 14px 4px}.teacher-ai-msg svg{color:var(--purple);flex-shrink:0;margin-top:5px}.teacher-ai-msg p{white-space:pre-wrap;max-width:90%;margin:0;padding:8px 12px;font-size:.84rem;line-height:1.55}.ai-typing{opacity:.7;animation:1.2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.teacher-ai-input-row{background:#faf9ff;border-top:1px solid #ece9ff;gap:8px;padding:10px 14px;display:flex}.teacher-ai-input-row input{background:#fff;border:1px solid #dcd8ff;border-radius:10px;flex:1;padding:8px 12px;font-size:.84rem}.teacher-ai-input-row input:focus{border-color:var(--purple);outline:none}.report-list{display:grid}.report-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 0;display:flex}.report-row:last-child{border-bottom:0}.report-row .grow{gap:4px;display:grid}.report-row strong{font-size:.94rem}.report-row span,.report-row small{color:var(--muted);font-size:.82rem;line-height:1.5}.student-name-status-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.submit-state{white-space:nowrap;background:#f1f0f4;border-radius:8px;align-items:center;gap:5px;padding:4px 10px;font-size:.74rem;font-weight:700;display:inline-flex}.submit-state.done{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.submit-state.incomplete{color:#b45309;background:#fffbeb;border:1px solid #fde68a}.submit-state.not-submitted{color:#6b7280;background:#f3f4f6;border:1px solid #e5e7eb}.student-correction-progress{font-weight:700;color:#6366f1!important;font-size:.78rem!important}.student-question-score-pills{flex-wrap:wrap;gap:8px;margin:4px 0 2px;display:flex}.pill-correct{color:#047857;background:#ecfdf5;border:1px solid #bbf7d0;border-radius:6px;align-items:center;gap:4px;padding:3px 9px;font-size:.72rem;font-weight:750;display:inline-flex}.pill-wrong{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;align-items:center;gap:4px;padding:3px 9px;font-size:.72rem;font-weight:750;display:inline-flex}.student-status-badge-wrap{margin:10px 0 14px}.student-status-tag{letter-spacing:.02em;border-radius:12px;align-items:center;gap:7px;padding:8px 14px;font-size:.78rem;font-weight:800;display:inline-flex}.student-status-tag.completed{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;box-shadow:0 2px 8px #0596691a}.student-status-tag.incomplete{color:#92400e;background:#fffbeb;border:1px solid #fde68a;box-shadow:0 2px 8px #d977061a}.homework-ai-check-notice{color:#4338ca;background:linear-gradient(135deg,#f5f3ff 0%,#ede9fe 100%);border:1px solid #ddd6fe;border-radius:14px;align-items:flex-start;gap:12px;margin-bottom:16px;padding:14px 16px;display:flex}.homework-ai-check-notice svg{flex-shrink:0;margin-top:2px}.homework-ai-check-notice strong{color:#312e81;font-size:.88rem;font-weight:800;display:block}.homework-ai-check-notice p{color:#4b4868;margin:3px 0 0;font-size:.78rem;line-height:1.45}.question-correction-box{background:#faf9fd;border:1px solid #e5e2f8;border-radius:12px;margin:12px 0 6px;padding:10px 12px}.correction-label{color:#4338ca;margin-bottom:8px;font-size:.78rem;display:block}.status-label-correct{color:#059669;align-items:center;gap:4px;font-size:.78rem;font-weight:800;display:inline-flex}.status-label-wrong{color:#dc2626;align-items:center;gap:4px;font-size:.78rem;font-weight:800;display:inline-flex}.student-post-submit-bar{background:linear-gradient(135deg,#fbfaff 0%,#f5f3ff 100%);border:1px solid #ddd6fe;border-radius:16px;margin-top:20px}.vocab-toolbar{justify-content:space-between;align-items:end;gap:15px;margin-bottom:14px;display:flex}.vocab-toolbar label{min-width:260px}.vocab-teacher-grid{grid-template-columns:minmax(0,1.6fr) minmax(300px,.7fr);align-items:start}.catalog-panel{padding-bottom:12px}.catalog-controls{grid-template-columns:1fr auto;align-items:end;gap:10px;display:grid}.catalog-bulk-actions{align-items:center;gap:7px;display:flex}.lesson-info{background:linear-gradient(120deg,#f0edff,#f8f7ff);border-radius:13px;margin:15px 0 10px;padding:14px}.lesson-info>span{color:var(--purple);font-size:.65rem;font-weight:900}.lesson-info h3{margin:4px 0 9px;font-size:.94rem}.grammar-chips b{color:#655ba7;background:#fff;border:1px solid #e1ddff;border-radius:7px;padding:5px 7px;font-size:.63rem}.catalog-list{overflow:visible}.catalog-word{border-bottom:1px solid var(--line);cursor:pointer;grid-template-columns:26px minmax(120px,.65fr) minmax(180px,1.35fr) auto;align-items:center;gap:12px;min-height:54px;padding:11px 7px;display:grid}.catalog-word>input{width:16px;height:16px;accent-color:var(--purple);opacity:0;position:absolute}.fake-check{border:1px solid #d6d4df;border-radius:6px;place-items:center;width:20px;height:20px;display:grid}.catalog-word.imported .fake-check{background:var(--purple);border-color:var(--purple);color:#fff}.catalog-word:has(input:checked) .fake-check{background:var(--purple);border-color:var(--purple);color:#fff}.catalog-word>div{min-width:0;display:grid}.catalog-word strong{white-space:nowrap;word-break:keep-all;font-family:Noto Sans KR,sans-serif;font-size:1.02rem;line-height:1.45}.catalog-word small{color:#aaa8b3;font-size:.61rem}.catalog-word p{color:#555264;overflow-wrap:anywhere;margin:0;font-size:.78rem;line-height:1.45}.catalog-word em{color:#18875b;background:var(--green-soft);border-radius:7px;padding:4px 6px;font-size:.6rem;font-style:normal;font-weight:750}.catalog-word.imported{background:#fbfffd}.catalog-action{border-top:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;margin:10px -8px -2px;padding:11px 8px 0;font-size:.75rem;display:flex}.mini-vocab-list{display:grid}.mini-vocab-list>div{border-bottom:1px solid var(--line);grid-template-columns:minmax(82px,.55fr) minmax(120px,1fr) auto;align-items:center;gap:10px;padding:10px 0;display:grid}.mini-vocab-list strong{white-space:nowrap;word-break:keep-all;font-family:Noto Sans KR,sans-serif;font-size:.9rem}.mini-vocab-list span{color:#666476;font-size:.72rem}.mini-vocab-list small{color:var(--purple);font-size:.62rem}.vocab-search{border:1px solid var(--line);color:#9c9aa8;border-radius:12px;align-items:center;gap:7px;max-width:390px;margin-bottom:18px;padding:0 10px;display:flex}.vocab-search input{box-shadow:none;border:0;padding-left:2px}.student-vocab-panel{gap:18px;display:grid}.student-filter-toolbar{background:#faf9ff;border:1px solid #e3e0f8;border-radius:16px;gap:12px;padding:14px 16px;display:grid}.student-lesson-selector{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.student-lesson-selector label{color:#4338ca;white-space:nowrap;align-items:center;gap:7px;margin:0;font-size:.84rem;font-weight:750;display:flex}.student-lesson-selector select{color:#1e1b4b;cursor:pointer;background:#fff;border:1px solid #d4ceff;border-radius:10px;flex:1;min-width:240px;padding:9px 12px;font-size:.86rem;font-weight:600;box-shadow:0 1px 3px #4338ca0d}.student-lesson-selector select:focus{border-color:var(--purple);outline:none}.student-search-segmented-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.student-search-segmented-row .vocab-search{background:#fff;flex:1;min-width:220px;margin-bottom:0}.student-search-segmented-row .segmented{flex-shrink:0}.vocab-group{margin-bottom:30px;animation:.35s ease-out vocabCardFadeIn}.vocab-group-head{background:linear-gradient(135deg,#f3f0ff 0%,#ece8ff 100%);border:1px solid #d8d0fd;border-radius:15px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:14px 18px;display:flex}.vocab-group-head-main{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.vocab-badge-lesson{color:#fff;letter-spacing:.04em;background:#4338ca;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;padding:6px 12px;font-size:.75rem;font-weight:850;display:inline-flex}.vocab-group-head h3{color:#1e1b4b;margin:0;font-size:1.05rem;font-weight:800}.vocab-group-topic{color:#636080;margin:2px 0 0;font-size:.78rem;font-weight:500}.vocab-group-count{color:#4338ca;white-space:nowrap;background:#fff;border:1px solid #d4ceff;border-radius:99px;flex-shrink:0;padding:5px 12px;font-size:.74rem;font-weight:750;box-shadow:0 1px 4px #4338ca14}.word-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.word-card{background:#fff;border:1px solid #e2def5;border-radius:16px;gap:4px;padding:16px 16px 14px;transition:box-shadow .15s,transform .15s,border-color .15s;animation:.3s ease-out vocabCardFadeIn;display:grid;position:relative;box-shadow:0 2px 8px #5a50b40d}.word-card:hover{border-color:#c4bbf5;transform:translateY(-2px);box-shadow:0 6px 18px #5a50b41f}.word-card .korean-text{color:#1e1b4b;letter-spacing:-.02em;padding-right:36px;font-family:Noto Sans KR,sans-serif;font-size:1.32rem;font-weight:800}.word-card .romanization-text{color:#8e8aa8;margin:1px 0 4px;font-size:.74rem;font-style:normal;font-weight:500;display:block}.word-card .meaning-text{color:#2d2b38;border-top:1px solid #f0eeff;margin:4px 0 0;padding-top:8px;font-size:.88rem;font-weight:700;line-height:1.45}.word-card .example-text{color:#6b6782;background:#f9f8fe;border:1px solid #eeeaff;border-radius:8px;margin-top:8px;padding:6px 9px;font-family:Noto Sans KR,sans-serif;font-size:.74rem;line-height:1.5}.speak-btn{color:#4338ca;cursor:pointer;background:#eeebff;border:0;border-radius:10px;place-items:center;width:34px;height:34px;transition:background .15s,transform .15s;display:grid;position:absolute;top:10px;right:10px}.speak-btn:hover{color:#fff;background:#4338ca;transform:scale(1.08)}.vocab-funny-loader{gap:16px;width:100%;display:grid}.vocab-funny-loader.compact{align-items:center;gap:12px;padding:12px;display:flex}.vocab-loader-banner{background:linear-gradient(135deg,#f7f5ff 0%,#edf0ff 100%);border:1px solid #dcd5fd;border-radius:14px;align-items:center;gap:14px;padding:12px 16px;display:flex}.vocab-loader-orb{background:#4338ca;border-radius:12px;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid;box-shadow:0 4px 12px #4338ca40}.vocab-loader-bubbles{gap:2px;display:flex}.vocab-loader-bubbles .bubble{color:#fff;font-family:Noto Sans KR,sans-serif;font-size:.85rem;font-weight:900;animation:1.2s ease-in-out infinite alternate hangulBounce}.vocab-loader-bubbles .b1{animation-delay:0s}.vocab-loader-bubbles .b2{animation-delay:.2s}.vocab-loader-bubbles .b3{animation-delay:.4s}.vocab-loader-info{gap:3px;display:grid}.vocab-loader-info strong{color:#1e1b4b;font-size:.88rem}.vocab-loader-info small{color:#6b6780;font-size:.75rem}.vocab-skeleton-wrap{gap:14px;width:100%;display:grid}.vocab-skeleton-banner{background:#f3f0ff;border:1px solid #e3ddff;border-radius:14px;align-items:center;gap:14px;height:60px;padding:12px 18px;display:flex}.skeleton-badge{background:#e3ddff;border-radius:8px;flex-shrink:0;width:68px;height:28px}.vocab-skeleton-lines{flex:1;gap:6px;display:grid}.skeleton-line{background:#e5e0fa;border-radius:6px;height:12px}.skeleton-line.title{width:140px;height:16px}.skeleton-line.subtitle{width:90px;height:10px}.skeleton-pill{background:#e3ddff;border-radius:99px;flex-shrink:0;width:110px;height:24px}.vocab-skeleton-grammar{grid-template-columns:1fr 1fr;gap:10px;display:grid}.skeleton-grammar-card{background:#f6f4ff;border:1px solid #e5e0fa;border-radius:12px;height:54px}.skeleton-word-card{background:#faf9fd;border-color:#e8e4f8;min-height:120px}.skeleton-circle{background:#ece8fa;border-radius:8px;width:30px;height:30px;position:absolute;top:10px;right:10px}.skeleton-line.korean{background:#ded8f7;width:100px;height:22px;margin-bottom:6px}.skeleton-line.roman{background:#ebe6fa;width:60px;height:10px;margin-bottom:8px}.skeleton-line.meaning{background:#e3ddf7;width:130px;height:14px}.shimmer{position:relative;overflow:hidden}.shimmer:after{content:"";background:linear-gradient(90deg,#0000,#fff9,#0000);animation:1.4s infinite shimmerMove;position:absolute;inset:0;transform:translate(-100%)}@keyframes shimmerMove{to{transform:translate(100%)}}@keyframes hangulBounce{0%{opacity:.75;transform:translateY(2px)scale(.95)}to{opacity:1;transform:translateY(-3px)scale(1.1)}}@keyframes vocabCardFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.flash-study{max-width:650px;margin:0 auto}.flash-progress{color:var(--muted);margin-bottom:10px;font-size:.75rem}.flash-progress>div{background:#e7e5ef;border-radius:9px;height:5px;margin-top:7px;overflow:hidden}.flash-progress i{background:var(--purple);height:100%;display:block}.flash-card{width:100%;min-height:330px;box-shadow:var(--shadow);color:#302d44;background:linear-gradient(145deg,#fff,#f6f4ff);border:1px solid #dedaff;border-radius:25px;flex-direction:column;justify-content:center;align-items:center;padding:30px;display:flex}.flash-card.flipped{background:linear-gradient(145deg,#f0edff,#fff)}.flash-label{color:var(--purple);letter-spacing:.08em;margin-bottom:18px;font-size:.68rem;font-weight:900}.flash-card>strong{letter-spacing:-.05em;font-family:Noto Sans KR,sans-serif;font-size:3.5rem}.flash-card>em{color:#9a97aa;margin-top:5px;font-style:normal}.flash-card>h2{margin:0 0 15px;font-size:1.8rem}.flash-card>p{color:var(--muted)}.flash-card>small{color:#888596}.flash-actions{justify-content:center;align-items:center;gap:9px;margin-top:14px;display:flex}.flash-message{text-align:center;color:var(--green);margin:8px 0 -5px;font-size:.75rem}.settings-admin-grid{grid-template-columns:1.1fr .9fr;align-items:start;gap:16px;display:grid}.settings-card{gap:17px;display:grid}.settings-card-head{align-items:center;gap:11px;min-width:0;display:flex}.settings-card-head>div:nth-child(2){flex:1;gap:2px;min-width:0;display:grid}.settings-card-head span{color:var(--purple);letter-spacing:.08em;font-size:.64rem;font-weight:900}.settings-card-head h3{margin:0;font-size:1rem}.settings-card-icon{border-radius:12px;flex:none;place-items:center;width:42px;height:42px;display:grid}.settings-card-icon.purple{color:var(--purple);background:var(--purple-soft)}.settings-card-icon.green{color:#198b5d;background:var(--green-soft)}.settings-card-icon.orange{color:#ca762b;background:var(--orange-soft)}.config-ok,.config-off{white-space:nowrap;border-radius:99px;padding:5px 8px;font-size:.62rem}.config-ok{color:#17855a;background:var(--green-soft)}.config-off{color:#b0672b;background:var(--orange-soft)}.secret-input{color:#9693a7;background:#fff;border:1px solid #deddea;border-radius:12px;align-items:center;gap:8px;padding-left:12px;display:flex}.secret-input:focus-within{border-color:#9c92ff;box-shadow:0 0 0 3px #eeecff}.secret-input input{box-shadow:none;border:0;padding-left:0}.settings-card label>small{color:#9b98a7;font-size:.67rem;font-weight:500;line-height:1.5}.settings-actions{flex-wrap:wrap;gap:8px;display:flex}.danger-text{color:#c74753!important;background:#fff0f1!important}.range-setting>span{justify-content:space-between;align-items:center;display:flex}.range-setting input{accent-color:var(--purple);box-shadow:none;border:0;padding:0}.span-settings{grid-column:1/-1}.personality-admin-grid{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.personality-admin{border:1px solid var(--line);color:#4f4d5f;text-align:left;background:#faf9fd;border-radius:13px;grid-template-rows:auto auto;grid-template-columns:33px 1fr;column-gap:8px;padding:13px;display:grid}.personality-admin>span{grid-row:span 2;align-self:center;font-size:1.5rem}.personality-admin strong{font-size:.78rem}.personality-admin small{color:var(--muted);font-size:.65rem}.personality-admin.active{background:var(--purple-soft);color:var(--purple-dark);border-color:#aea5ff;box-shadow:inset 0 0 0 1px #c7c1ff}.theme-setting{color:var(--purple);background:#f8f7fb;border-radius:13px;grid-template-columns:28px 1fr minmax(160px,210px);align-items:center;gap:10px;padding:12px;display:grid}.theme-setting>div{gap:2px;display:grid}.theme-setting strong{color:#464354;font-size:.79rem}.theme-setting span{color:var(--muted);font-size:.66rem}.theme-setting select{padding:9px 11px}.settings-save-bar{z-index:8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;border:1px solid #dcd8ff;border-radius:15px;grid-column:1/-1;justify-content:space-between;align-items:center;gap:15px;padding:13px 15px;display:flex;position:sticky;bottom:14px;box-shadow:0 10px 32px #2d285a1f}.settings-save-bar>div{gap:2px;display:grid}.settings-save-bar strong{font-size:.78rem}.settings-save-bar span{color:var(--muted);font-size:.66rem}.ai-preview{background:linear-gradient(135deg,#fff,#faf9ff);border-color:#dcd8ff;margin-top:14px}.ai-preview-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.ai-preview-head>div{color:var(--purple);align-items:center;gap:9px;display:flex}.ai-preview-head span{gap:2px;display:grid}.ai-preview-head strong{color:#3f3b52;font-size:.84rem}.ai-preview-head small{color:var(--muted);font-size:.65rem}.ai-preview-head>b{color:var(--purple);font-size:1.35rem}.ai-preview>p{color:#666276;font-size:.77rem;line-height:1.55}.preview-results{gap:8px;margin-top:12px;display:grid}.preview-result{border:1px solid var(--line);background:#fff;border-radius:11px;grid-template-columns:1fr auto;gap:5px 10px;padding:10px 11px;display:grid}.preview-result>span{color:var(--muted);align-items:center;gap:6px;font-size:.7rem;font-weight:750;display:flex}.preview-result.correct>span{color:#19875d}.preview-result.partial{background:#fffdf8;border-color:#f0d8a9}.preview-result.partial>span{color:#b87512}.preview-result.wrong>span{color:#c84c57}.preview-result>strong{font-size:.7rem}.preview-result p,.preview-result small{color:#686576;grid-column:1/-1;margin:0;font-size:.69rem;line-height:1.45}.preview-result small{color:#8d899b}.submit-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.report-row-attempts{align-items:flex-start}.student-check-count{margin-top:4px;display:block;color:#6b6780!important;font-size:.74rem!important}.student-ai-overview{color:var(--purple);background:#f7f5ff;border:1px solid #ddd8ff;border-radius:10px;align-items:flex-start;gap:9px;margin-top:8px;padding:10px 11px;display:flex}.student-ai-overview>svg{flex:none;margin-top:2px}.student-ai-overview>div{gap:3px;display:grid}.student-ai-overview strong{color:#4338ca;font-size:.78rem}.student-ai-overview p{color:#4b475f;margin:0;font-size:.78rem;line-height:1.55}.teacher-feedback-editor{background:linear-gradient(135deg,#fff,#faf9ff);border:1px solid #dcd8ff;border-radius:11px;gap:8px;margin-top:9px;padding:11px;display:grid}.teacher-feedback-editor-head,.teacher-feedback-editor-head>span,.teacher-feedback-editor-actions{justify-content:space-between;align-items:center;gap:7px;display:flex}.teacher-feedback-editor-head>span{color:var(--purple);justify-content:flex-start}.teacher-feedback-editor-head strong{color:#403c50;font-size:.76rem}.teacher-feedback-editor-head small,.teacher-feedback-editor-actions span{color:var(--muted);font-size:.64rem}.teacher-feedback-send-note{color:#6d6780;font-size:.66rem;line-height:1.45}.teacher-feedback-editor textarea{resize:vertical;min-height:76px;padding:9px 10px;font-size:.76rem;line-height:1.5}.student-total-score{background:linear-gradient(135deg,#f3f1ff,#fff);border:1px solid #cfc9ff;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-top:9px;padding:11px 13px;display:flex}.student-total-score>div{gap:2px;display:grid}.student-total-score>div>span{color:#6b5ce0;letter-spacing:.06em;font-size:.58rem;font-weight:900}.student-total-score strong{color:#312b54;font-size:1.2rem;line-height:1}.student-total-score strong small{color:#777188;margin-left:3px;font-size:.7rem;font-weight:700}.student-total-score>b{color:#fff;background:linear-gradient(135deg,#6757f5,#8b5cf6);border-radius:10px;padding:7px 10px;font-size:.85rem}.student-teacher-feedback{text-align:left;background:#f8f6ff;border:1px solid #dcd8ff;border-radius:12px;gap:7px;margin-top:15px;padding:12px;display:grid}.student-teacher-feedback>div{color:var(--purple);align-items:center;gap:7px;display:flex}.student-teacher-feedback strong{color:#403c50;font-size:.78rem}.student-teacher-feedback p{color:#545064;white-space:pre-wrap;margin:0;font-size:.75rem;line-height:1.55}.student-teacher-feedback small{color:var(--muted);font-size:.64rem}.teacher-feedback-error{color:#b53c48!important}.latest-attempt-detail{border:1px solid var(--line);background:#fff;border-radius:11px;margin-top:9px;overflow:hidden}.latest-attempt-detail>summary{cursor:pointer;color:#4b475f;background:#faf9fc;justify-content:space-between;align-items:center;gap:10px;padding:10px 11px;font-size:.76rem;font-weight:750;list-style:none;display:flex}.latest-attempt-detail>summary::-webkit-details-marker{display:none}.latest-attempt-detail>summary b{color:var(--purple)}.latest-attempt-detail>article{border-top:1px solid var(--line);gap:9px;padding:10px 11px 12px;display:grid}.latest-attempt-detail>article>small{color:var(--muted);font-size:.68rem}.latest-attempt-results{gap:8px;display:grid}.latest-attempt-question{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 10px}.latest-attempt-question.correct{border-left:3px solid #2ca879}.latest-attempt-question.wrong{border-left:3px solid #d6606b}.latest-attempt-question-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.latest-attempt-question-head strong{font-size:.76rem}.latest-attempt-question-head span{color:var(--muted);font-size:.7rem;font-weight:700}.latest-question-prompt{color:#484557;margin:6px 0 0;font-size:.75rem;font-weight:650;line-height:1.5}.latest-answer-box{background:#f8f8fb;border-radius:8px;gap:4px;margin-top:7px;padding:8px 9px;display:grid}.latest-answer-box p{color:#5f5b6d;margin:0;font-size:.72rem;line-height:1.5}.latest-answer-box b{color:#403c50}.app-toast{z-index:200;color:#236c50;background:#f2fff9fa;border:1px solid #ced;border-radius:13px;align-items:center;gap:9px;width:min(390px,100vw - 32px);min-height:50px;padding:11px 12px;animation:.2s ease-out toast-in;display:flex;position:fixed;top:20px;right:20px;box-shadow:0 14px 38px #20463726}.app-toast.error{color:#9d3741;background:#fff6f7fa;border-color:#f1ccd0}.app-toast span{flex:1;font-size:.78rem;font-weight:650;line-height:1.4}.app-toast button{width:28px;height:28px;color:inherit;background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.app-toast button:hover{background:#0000000d}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.notification-panel{max-width:850px}.notification-list{display:grid}.notification-row{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;align-items:center;gap:12px;width:100%;padding:13px 7px;display:flex}.notification-row:last-child{border-bottom:0}.notification-row.unread{background:linear-gradient(90deg,#f8f6ff,#0000)}.notification-icon{color:#888596;background:#f1f0f5;border-radius:11px;flex:none;place-items:center;width:40px;height:40px;display:grid}.notification-icon.unread{color:var(--purple);background:var(--purple-soft)}.notification-row .grow{gap:3px;display:grid}.notification-title{align-items:center;gap:7px;display:flex}.notification-title strong{font-size:.82rem}.notification-title i{color:#fff;background:var(--purple);border-radius:99px;padding:2px 6px;font-size:.56rem;font-style:normal}.notification-row p{color:#656375;margin:0;font-size:.75rem}.notification-row .grow>span{color:#aaa8b4;font-size:.65rem}.notification-row>svg{color:var(--green)}.learning-page-wrap{width:100%;max-width:none;padding:12px}.legacy-learning-page{flex-direction:column;gap:8px;height:calc(100vh - 24px);min-height:640px;display:flex}.learning-toolbar{border:1px solid var(--line);min-height:54px;box-shadow:var(--shadow);background:#fff;border-radius:14px;justify-content:space-between;align-items:center;gap:15px;padding:8px 12px;display:flex}.learning-title{color:var(--purple);align-items:center;gap:9px;min-width:0;display:flex}.learning-title>div{gap:2px;min-width:0;display:grid}.learning-title strong{color:#383548;font-size:.82rem}.learning-title span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.65rem;overflow:hidden}.learning-sync{flex:none;align-items:center;gap:8px;display:flex}.learning-sync select{width:auto;max-width:200px;padding:7px 28px 7px 9px;font-size:.7rem}.learning-sync b,.learning-sync>span{color:var(--muted);white-space:nowrap;font-size:.65rem}.learning-message{color:#a84b30;background:#fff1ec;border-radius:9px;padding:7px 10px;font-size:.7rem}.legacy-learning-frame{border:1px solid var(--line);width:100%;min-height:0;box-shadow:var(--shadow);background:#f8f7fc;border-radius:16px;flex:1}@media (width<=1100px){.word-grid{grid-template-columns:repeat(3,1fr)}.class-cards,.management-class-grid{grid-template-columns:1fr 1fr}.assign-row{grid-template-columns:1fr 1fr auto}.assign-row select:nth-of-type(3){grid-column:1}.login-features{grid-template-columns:1fr;max-width:360px}}@media (width<=800px){body{padding-bottom:69px}.login-page{background:#f8f7fc;display:block}.login-visual{display:none}.login-panel{min-height:100vh;padding:28px 20px}.login-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:20px;padding:24px}.mobile-login-logo{color:var(--purple);align-items:center;gap:8px;margin-bottom:28px;font-weight:850;display:flex}.sidebar{transition:transform .2s;transform:translate(-105%);box-shadow:10px 0 30px #211d411f}.sidebar.mobile-open{transform:translate(0)}.close-mobile{display:grid}.sidebar-overlay{z-index:25;background:#1e1c2b52;border:0;display:block;position:fixed;inset:0}.main-area{margin-left:0}.mobile-header{height:58px;padding:max(8px, env(safe-area-inset-top)) 14px 8px;border-bottom:1px solid var(--line);z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.brand-mini{color:#4c466a;align-items:center;gap:7px;font-weight:850;display:flex}.bell-mobile i{background:var(--red);color:#fff;border-radius:99px;place-items:center;min-width:16px;height:16px;font-size:.55rem;font-style:normal;display:grid;position:absolute;top:1px;right:1px}.bottom-nav{min-height:65px;padding:6px 5px max(6px, env(safe-area-inset-bottom));border-top:1px solid var(--line);z-index:22;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff5;grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-link{color:#9996a5;align-content:center;justify-items:center;gap:2px;display:grid}.bottom-link.active{color:var(--purple)}.bottom-link>span{place-items:center;display:grid;position:relative}.bottom-link i{background:var(--red);color:#fff;border-radius:99px;place-items:center;min-width:16px;height:16px;font-size:.5rem;font-style:normal;display:grid;position:absolute;top:-6px;right:-10px}.bottom-link small{white-space:nowrap;text-overflow:ellipsis;max-width:72px;font-size:.58rem;font-weight:750;overflow:hidden}.page-wrap{padding:22px 14px 30px}.page-head{margin-bottom:20px;display:block}.page-head h1{margin-top:5px}.page-head p{font-size:.8rem}.page-head>:last-child:not(div:first-child){margin-top:12px}.stats-grid{grid-template-columns:1fr;gap:9px}.stat-card{padding:13px 14px}.stat-icon{width:40px;height:40px}.stat-card strong{font-size:1.25rem}.two-col,.vocab-teacher-grid,.result-layout,.teacher-detail-grid{grid-template-columns:1fr}.panel{border-radius:15px;padding:15px}.form-grid,.form-grid.three{grid-template-columns:1fr}.span-2,.span-3{grid-column:auto}.assign-row,.class-cards{grid-template-columns:1fr}.management-toolbar{flex-direction:column;align-items:stretch}.management-search{width:100%}.management-form-actions{justify-content:stretch}.management-form-actions .btn{flex:1}.management-class-grid,.member-columns{grid-template-columns:1fr}.class-member-manager .panel-title{flex-direction:column;align-items:stretch}.class-member-manager .panel-title>select{width:100%}.hero-task{padding:20px}.hero-task h2{font-size:1.3rem}.hero-hangul{font-size:7rem;right:0}.question-edit{gap:8px;padding:11px}.question-number{width:25px;height:25px}.question-meta-row{grid-template-columns:1fr 80px 36px}.question-meta-row>select{grid-column:span 2}.question-meta-row>input{grid-column:span 3}.points-input{grid-column:span 2}.answer-row{grid-template-columns:1fr}.builder-actions{flex-direction:column;align-items:stretch;gap:12px}.assignment-card{flex-wrap:wrap;align-items:flex-start}.assignment-class-filter{flex-direction:column;align-items:stretch}.assignment-class-filter select{width:100%}.assignment-main{min-width:calc(100% - 62px)}.assignment-actions{justify-content:flex-end;width:100%}.assignment-meta{flex-wrap:wrap;gap:7px 12px}.student-assignment-grid{grid-template-columns:1fr}.assignment-detail-head{display:block}.assignment-detail-head h1{font-size:1.55rem}.detail-meta{flex-wrap:wrap;margin-top:14px}.option-list{grid-template-columns:1fr}.submit-bar{flex-direction:column;align-items:stretch;gap:10px;bottom:73px}.result-summary{position:static}.stats-inline{grid-template-columns:1fr 1fr 1fr}.stats-inline>div{text-align:center;justify-items:center;gap:4px;padding:9px;display:grid}.report-row{flex-wrap:wrap;align-items:flex-start}.submit-state{margin-left:44px}.vocab-toolbar{flex-direction:column;align-items:stretch}.vocab-toolbar label{min-width:0}.vocab-teacher-grid,.catalog-controls{grid-template-columns:1fr}.catalog-bulk-actions{flex-wrap:wrap}.catalog-word{grid-template-columns:24px minmax(96px,.7fr) minmax(0,1.3fr);gap:8px}.catalog-word em{display:none}.pagination-bar{flex-direction:column;align-items:stretch}.pagination-bar>div{justify-content:flex-end}.word-grid{grid-template-columns:1fr 1fr}.flash-card{border-radius:20px;min-height:280px}.flash-card>strong{font-size:2.8rem}.flash-actions{grid-template-columns:42px 1fr 1fr 42px;display:grid}.flash-actions .icon-button{width:42px}.notification-panel{padding:7px}.learning-page-wrap{padding:8px}.legacy-learning-page{height:calc(100dvh - 139px);min-height:500px}.learning-toolbar{flex-direction:column;align-items:stretch;gap:7px;padding:8px 10px}.learning-title span{max-width:calc(100vw - 60px)}.learning-sync{grid-template-columns:minmax(0,1fr) auto 36px;display:grid}.learning-sync select{width:100%;max-width:none}.legacy-learning-frame{border-radius:12px}.settings-admin-grid{grid-template-columns:1fr}.span-settings,.settings-save-bar{grid-column:auto}.personality-admin-grid{grid-template-columns:1fr}.theme-setting{grid-template-columns:28px 1fr}.theme-setting select{grid-column:1/-1}.settings-save-bar{flex-direction:column;align-items:stretch;bottom:76px}.settings-save-bar .btn{width:100%}.submit-actions{grid-template-columns:1fr 1fr;width:100%;display:grid}.app-toast{top:auto;bottom:calc(76px + env(safe-area-inset-bottom));right:16px}}@media (width<=480px){.word-grid{grid-template-columns:1fr}.catalog-word{grid-template-columns:24px minmax(82px,.7fr) minmax(0,1.3fr);gap:7px}.catalog-word p{font-size:.68rem}.pagination-bar>div{flex-wrap:wrap;justify-content:flex-start}.flash-actions{grid-template-columns:1fr 1fr}.flash-actions .icon-button{display:none}.draft-callout{flex-direction:column;align-items:stretch;gap:10px}.stats-inline{gap:5px}.stats-inline span{font-size:.62rem}.settings-card-head{flex-wrap:wrap}.config-ok,.config-off{margin-left:53px}.submit-actions{grid-template-columns:1fr}}.sidebar,.main-area{transition:width .2s,margin-left .2s}.sidebar-desktop-toggle{z-index:5;border:1px solid var(--line);width:28px;height:28px;color:var(--purple);cursor:pointer;background:#fff;border-radius:999px;place-items:center;display:grid;position:absolute;top:72px;right:-14px;box-shadow:0 6px 16px #2d285a1f}.sidebar-desktop-toggle:hover{background:var(--purple);color:#fff}@media (width>=801px){.app-shell.sidebar-collapsed .sidebar{width:76px;padding-left:10px;padding-right:10px}.app-shell.sidebar-collapsed .main-area{margin-left:76px}.app-shell.sidebar-collapsed .brand-copy,.app-shell.sidebar-collapsed .nav-link>span,.app-shell.sidebar-collapsed .account-text,.app-shell.sidebar-collapsed .sidebar-bottom .install>span{display:none}.app-shell.sidebar-collapsed .brand-row{justify-content:center}.app-shell.sidebar-collapsed .side-nav .nav-link,.app-shell.sidebar-collapsed .sidebar-bottom .nav-link{justify-content:center;padding-left:0;padding-right:0}.app-shell.sidebar-collapsed .nav-badge{position:absolute;top:5px;right:2px}.app-shell.sidebar-collapsed .account-box{flex-wrap:wrap;justify-content:center}.app-shell.sidebar-collapsed .account-box>.icon-button{width:100%}.app-shell.sidebar-collapsed .learning-page-wrap{padding-left:8px;padding-right:8px}}@media (width<=800px){.sidebar-desktop-toggle{display:none}}.question-source-block{border:1px solid var(--line);background:#faf9ff;border-radius:16px;gap:12px;margin:18px 0 16px;padding:15px;display:grid}.question-source-title{justify-content:space-between;align-items:center;gap:12px;display:flex}.question-source-title>div{color:var(--purple);align-items:center;gap:8px;display:flex}.question-source-title>span{color:var(--muted);font-size:.72rem}.question-source-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;display:grid}.question-source-card{border:1px solid var(--line);text-align:left;color:#4e4a61;cursor:pointer;background:#fff;border-radius:14px;align-items:flex-start;gap:9px;padding:12px;transition:all .18s;display:flex}.question-source-card svg{color:var(--purple);flex:none;margin-top:2px}.question-source-card span{gap:3px;display:grid}.question-source-card strong{font-size:.8rem;font-weight:700}.question-source-card small{color:var(--muted);font-size:.66rem;line-height:1.45}.question-source-card:hover,.question-source-card.active{background:var(--purple-soft);border-color:#a79fff;transform:translateY(-1px)}.question-source-card.active{box-shadow:0 0 0 2px #6d5dfc14}.question-source-action{background:#fff;border:1px dashed #c9c4f7;border-radius:13px;justify-content:space-between;align-items:center;gap:14px;padding:12px;display:flex}.question-source-action>div:first-child{min-width:0}.question-source-action strong{color:#403c58;font-size:.8rem}.question-source-action p,.question-source-action>span{color:var(--muted);margin:4px 0 0;font-size:.7rem;line-height:1.55}.question-source-action.bulk{grid-template-columns:1fr auto;align-items:end;display:grid}.question-source-action.bulk>div{grid-column:1/-1}.question-source-action.bulk textarea{grid-column:1}.question-source-action.bulk .btn{grid-column:2}.source-buttons{flex:none;gap:8px;display:flex}.file-button{cursor:pointer;position:relative;overflow:hidden}.file-button input[type=file]{opacity:0;cursor:pointer;position:absolute;inset:0}.file-button.disabled{opacity:.6;pointer-events:none}@keyframes source-spin{to{transform:rotate(360deg)}}.question-source-action.ocr-running{background:linear-gradient(135deg,#fff 0%,#faf9ff 100%);border-style:solid;border-color:#beb6ff;align-items:flex-start;box-shadow:0 10px 30px #6d5dfc14}.ocr-processing-card{background:#ffffffe0;border:1px solid #dedaff;border-radius:14px;width:min(620px,100%);margin-top:11px;padding:12px;box-shadow:inset 0 0 0 1px #ffffffb3}.ocr-processing-head{grid-template-columns:38px 1fr auto;align-items:center;gap:10px;display:grid}.ocr-orb{width:38px;height:38px;color:var(--purple);background:#efedff;border-radius:12px;place-items:center;display:grid;position:relative;overflow:hidden}.ocr-orb:after{content:"";border:2px solid #6d5dfc2e;border-radius:50%;animation:1.45s ease-out infinite ocr-radar;position:absolute;inset:-35%}.ocr-orb.ai{color:#7c3aed;background:#f3e8ff}.ocr-orb.done{color:#16855b;background:#e7f8f0}.ocr-status-copy{gap:3px;min-width:0;display:grid}.ocr-status-copy strong{color:#332f49;font-size:.76rem}.ocr-status-copy small{color:var(--muted);font-size:.66rem;line-height:1.45}.ocr-time{text-align:right;min-width:48px;line-height:1.05;display:grid}.ocr-time b{color:var(--purple);font-size:.82rem}.ocr-time span{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:4px;font-size:.61rem}.ocr-progress{background:#efedff;border-radius:999px;width:100%;height:8px;margin-top:10px;position:relative;overflow:hidden}.ocr-progress>i{border-radius:inherit;background:linear-gradient(90deg, var(--purple), #8f82ff, #a78bfa);transition:width .35s;position:absolute;inset:0 auto 0 0}.ocr-progress>em{background:linear-gradient(90deg,#0000,#ffffffa6,#0000);width:42%;animation:1.25s linear infinite ocr-shimmer;position:absolute;inset:0;transform:translate(-130%)}.ocr-stepper{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:9px;display:grid}.ocr-stepper.five{grid-template-columns:repeat(5,minmax(0,1fr))}.excel-processing-card{width:min(720px,100%)}.excel-progress>i{background:linear-gradient(90deg,#6757f5,#8b5cf6,#c084fc)}.doc-processing-card{width:min(720px,100%)}.doc-progress>i{background:linear-gradient(90deg,#0284c7,#2563eb,#6366f1)}.excel-import-summary{flex-wrap:wrap;align-items:center;gap:7px;margin-top:10px;display:flex}.excel-import-summary>span{color:#5c5675;background:#f7f6ff;border:1px solid #d9d5ff;border-radius:999px;align-items:center;gap:4px;padding:5px 8px;font-size:.63rem;display:inline-flex}.excel-import-summary>span:first-child{color:#21845d;background:#edfbf4;border-color:#cdeede;font-weight:800}.excel-import-summary.fallback>span:first-child{color:#9a641d;background:#fff8e8;border-color:#f2dfb7}.excel-import-summary b{color:#3d3658}.doc-import-summary>span:first-child{color:#1e40af;background:#eff6ff;border-color:#bfdbfe;font-weight:800}.doc-review-card{border-color:#bfdbfe}.doc-review-card .excel-review-icon{color:#1e40af;background:#eff6ff}@media (width<=1100px){.question-source-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=1000px){.question-source-grid{grid-template-columns:1fr 1fr}}.ocr-stepper>span{color:#a19caf;white-space:nowrap;align-items:center;gap:4px;min-width:0;font-size:.59rem;display:flex}.ocr-stepper>span>i{color:#aaa5b7;background:#f0eef8;border-radius:50%;flex:0 0 17px;place-items:center;width:17px;height:17px;font-style:normal;font-weight:900;display:grid}.ocr-stepper>span.active{color:var(--purple);font-weight:800}.ocr-stepper>span.active>i{color:#fff;background:var(--purple);animation:.95s ease-in-out infinite alternate ocr-pulse}.ocr-stepper>span.done{color:#2b8a66}.ocr-stepper>span.done>i{color:#fff;background:#42b883}.ocr-wait-note{color:#797389;align-items:center;gap:6px;margin-top:9px;font-size:.61rem;display:flex}.ocr-live-dot{background:#42b883;border-radius:50%;width:7px;height:7px;animation:1.25s infinite ocr-live;box-shadow:0 0 #42b88366}@keyframes ocr-shimmer{to{transform:translate(280%)}}@keyframes ocr-radar{0%{opacity:.85;transform:scale(.35)}to{opacity:0;transform:scale(1.15)}}@keyframes ocr-pulse{0%{transform:scale(.92)}to{transform:scale(1.08)}}@keyframes ocr-live{0%{box-shadow:0 0 #42b88366}70%{box-shadow:0 0 0 7px #42b88300}to{box-shadow:0 0 #42b88300}}.learning-ai-safe{background:var(--green-soft);border-radius:99px;align-items:center;gap:4px;padding:5px 8px;font-weight:800;color:#27865f!important;display:inline-flex!important}@media (width<=700px){.question-source-grid{grid-template-columns:1fr}.question-source-action,.question-source-action.single{flex-direction:column;align-items:stretch}.question-source-action.bulk{grid-template-columns:1fr}.question-source-action.bulk textarea,.question-source-action.bulk .btn{grid-column:1}.source-buttons{flex-wrap:wrap}.ocr-stepper.five{grid-template-columns:repeat(2,minmax(0,1fr))}.excel-import-summary{gap:5px}.learning-ai-safe{display:none!important}.assignment-audio-preview{grid-template-columns:1fr}.assignment-audio-drop{flex-wrap:wrap;align-items:flex-start}.assignment-audio-drop>b{margin-left:36px}.assignment-listening-body{grid-template-columns:1fr}}.lesson-grammar-box-preview{background:#f5f3ff;border:1px dashed #d0c7fc;border-radius:10px;gap:6px;margin-top:10px;padding:10px 12px;display:grid}.grammar-head-label{color:var(--purple);align-items:center;gap:6px;font-size:.78rem;display:flex}.grammar-chips{flex-wrap:wrap;gap:6px;display:flex}.grammar-chip{color:#4338ca;background:#fff;border:1px solid #c8c0f9;border-radius:8px;align-items:center;gap:4px;padding:4px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.class-grammar-summary{background:#fdfcff;border:1px solid #e7e3fc;border-radius:12px;gap:8px;margin-bottom:14px;padding:12px;display:grid}.class-grammar-title{color:var(--purple);align-items:center;gap:6px;font-size:.8rem;display:flex}.grammar-chips-list{flex-wrap:wrap;gap:6px;display:flex}.grammar-badge{color:#3730a3;background:#eeebff;border-radius:6px;align-items:center;gap:5px;padding:4px 9px;font-size:.74rem;display:inline-flex}.grammar-badge small{opacity:.75;font-size:.68rem}.student-vocab-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;display:flex}.student-vocab-head .vocab-search{flex:1;min-width:240px;margin-bottom:0}.student-grammar-block{background:linear-gradient(135deg,#f8f6ff 0%,#f1ecff 100%);border:1px solid #ddd5fd;border-radius:16px;gap:10px;margin-bottom:16px;padding:14px 16px;display:grid}.student-grammar-title{color:#4338ca;align-items:center;gap:7px;font-size:.84rem;font-weight:750;display:flex}.student-grammar-cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.student-grammar-card{background:#fff;border:1px solid #dcd4fd;border-radius:12px;align-items:flex-start;gap:11px;padding:12px 14px;transition:transform .15s,box-shadow .15s;display:flex;box-shadow:0 2px 8px #4338ca0f}.student-grammar-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #4338ca1f}.student-grammar-card svg{color:#4338ca;flex-shrink:0;margin-top:2px}.student-grammar-card strong{color:#1e1b4b;font-size:.95rem;font-weight:800;display:block}.student-grammar-card p{color:#5a5770;margin:3px 0 0;font-size:.74rem;line-height:1.4}.global-announcement-bar{color:#9a3412;z-index:40;background:linear-gradient(90deg,#fff7ed 0%,#ffedd5 50%,#fef3c7 100%);border-bottom:1px solid #fed7aa;align-items:center;gap:12px;padding:8px 16px;font-size:.84rem;display:flex;position:sticky;top:0;overflow:hidden;box-shadow:0 2px 8px #ea580c14}.global-announcement-badge{color:#fff;letter-spacing:.04em;background:#ea580c;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:4px 10px;font-size:.72rem;font-weight:800;animation:2s ease-in-out infinite announcement-pulse;display:inline-flex;box-shadow:0 2px 6px #ea580c40}@keyframes announcement-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.global-announcement-track{white-space:nowrap;flex:1;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 20px calc(100% - 20px),#0000);mask-image:linear-gradient(90deg,#0000,#000 20px calc(100% - 20px),#0000)}.global-announcement-marquee{white-space:nowrap;align-items:center;gap:24px;animation:25s linear infinite marquee-scroll;display:inline-flex}.global-announcement-marquee:hover{animation-play-state:paused}.global-announcement-marquee span{color:#7c2d12;font-weight:700}.marquee-separator{color:#ea580c;opacity:.8;font-size:.75rem}@keyframes marquee-scroll{0%{transform:translate(0%)}to{transform:translate(-50%)}}.announcement-marquee-preview{color:#9a3412;background:linear-gradient(90deg,#fff7ed,#ffedd5);border:1px solid #fed7aa;border-radius:10px;padding:8px 12px;overflow:hidden}.announcement-marquee-content{color:#7c2d12;align-items:center;font-size:.84rem;display:flex}@media (width<=700px){.ai-checking-float{width:calc(100vw - 28px);padding:14px;bottom:150px;right:14px}.ai-checking-steps span{font-size:.54rem}}.presence-toolbar-stats{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:.72rem;display:inline-flex}.presence-toolbar-stats strong{color:#168258}.presence-live-dot,.presence-dot{background:#b8b4c4;border-radius:999px;flex:none;width:8px;height:8px;display:inline-block}.presence-live-dot{background:#22c55e;animation:1.8s ease-in-out infinite presencePulse;box-shadow:0 0 0 4px #22c55e1a}.presence-table{min-width:980px}.presence-state{align-items:center;gap:8px;min-width:132px;display:flex}.presence-state>span:last-child{gap:2px;display:grid}.presence-state strong{font-size:.7rem}.presence-state small{color:var(--muted);white-space:nowrap;font-size:.59rem}.presence-state.online .presence-dot{background:#22c55e;box-shadow:0 0 0 4px #22c55e1a}.presence-state.online strong{color:#168258}.presence-state.offline .presence-dot{background:#b8b4c4}.presence-date{color:#565267;white-space:nowrap;font-size:.68rem}.login-count-badge{color:#6556e8;white-space:nowrap;background:#f3f0ff;border-radius:999px;align-items:center;padding:5px 8px;font-size:.64rem;font-weight:800;display:inline-flex}@keyframes presencePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.62;transform:scale(.82)}}@media (width<=720px){.presence-toolbar-stats{font-size:.64rem}}.presence-toolbar-right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.presence-refresh-button{min-height:34px;padding:7px 10px;font-size:.68rem}.spin{animation:.8s linear infinite adminRefreshSpin}@keyframes adminRefreshSpin{to{transform:rotate(360deg)}}@media (width<=720px){.presence-toolbar-right{justify-content:space-between;width:100%}.presence-toolbar-stats{white-space:normal}}.shared-context-editor{background:#faf9ff;border:1px solid #d9d4ff;border-radius:14px;margin:10px 0;padding:12px}.shared-context-label{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.shared-context-label strong{color:#5f4df6;font-size:.82rem}.shared-context-label span{color:#8c879e;font-size:.72rem}.shared-context-editor textarea{white-space:pre-wrap;background:#fff;width:100%}.shared-question-context{background:linear-gradient(#faf9ff 0%,#f6f4ff 100%);border:1px solid #d9d4ff;border-radius:14px;margin:0 0 14px;padding:14px 16px}.shared-question-context-head{color:#6554f5;letter-spacing:.08em;margin-bottom:8px;font-size:.72rem;font-weight:850}.shared-question-context p{color:#2f2c3d;white-space:pre-wrap;margin:0;font-size:.92rem;line-height:1.7}.teacher-questions .shared-question-context{margin:0 0 10px}.teacher-questions .shared-question-context p{font-size:.78rem}.excel-review-card{background:linear-gradient(#fff 0%,#faf9ff 100%);border:1px solid #cbc5ff;border-radius:18px;margin:14px 0 20px;overflow:hidden;box-shadow:0 14px 34px #5044b017}.excel-review-head{background:linear-gradient(135deg,#f7f5ff 0%,#fff 72%);border-bottom:1px solid #ebe8ff;justify-content:space-between;align-items:flex-start;gap:14px;padding:15px 16px;display:flex}.excel-review-title{align-items:flex-start;gap:11px;min-width:0;display:flex}.excel-review-icon{color:#fff;background:linear-gradient(135deg,#6757f5,#8b5cf6);border-radius:12px;flex:0 0 39px;place-items:center;width:39px;height:39px;display:grid;box-shadow:0 7px 16px #6757f538}.excel-review-title>div{min-width:0}.excel-review-title>div>span{color:#6e60df;letter-spacing:.07em;font-size:.62rem;font-weight:900}.excel-review-title h4{color:#322d46;text-overflow:ellipsis;white-space:nowrap;margin:3px 0;font-size:.92rem;overflow:hidden}.excel-review-title p{color:var(--muted);margin:0;font-size:.66rem}.excel-review-stats{flex-wrap:wrap;gap:7px;padding:11px 16px 4px;display:flex}.excel-review-stats>span{color:#777188;background:#fff;border:1px solid #e3dfff;border-radius:999px;align-items:baseline;gap:4px;padding:6px 9px;font-size:.62rem;display:inline-flex}.excel-review-stats b{color:#5042d1;font-size:.72rem}.excel-review-stats .ready{background:#f2fbf7;border-color:#cdebdc}.excel-review-stats .ready b{color:#19805a}.excel-review-stats .needs-review{background:#fff9ec;border-color:#f1d9b0}.excel-review-stats .needs-review b{color:#a56b19}.excel-review-warnings{color:#76501d;background:#fffaf0;border:1px solid #f0d8ad;border-radius:12px;margin:8px 16px 11px;padding:10px 12px}.excel-review-warnings>strong{align-items:center;gap:6px;font-size:.7rem;display:flex}.excel-review-warnings ul{margin:6px 0 0;padding-left:18px}.excel-review-warnings li{color:#85683e;margin:3px 0;font-size:.66rem;line-height:1.4}.excel-review-ok{color:#207c59;background:#edf9f3;border-radius:11px;align-items:center;gap:7px;margin:8px 16px 11px;padding:9px 11px;font-size:.68rem;font-weight:750;display:flex}.excel-review-list{gap:8px;padding:0 16px 12px;display:grid}.excel-review-question{background:#fff;border:1px solid #e7e4f4;border-radius:13px;grid-template-columns:88px minmax(0,1fr);gap:11px;padding:11px;display:grid}.excel-review-question-number{border-right:1px solid #eeecf7;align-content:start;gap:4px;padding-right:10px;display:grid}.excel-review-question-number b{color:#5849dc;font-size:.72rem}.excel-review-question-number span{color:#9993a8;font-size:.57rem;line-height:1.35}.excel-review-question-body{min-width:0}.excel-review-question-meta{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.excel-review-question-meta span{color:#817b90;text-overflow:ellipsis;white-space:nowrap;max-width:360px;font-size:.58rem;overflow:hidden}.excel-review-question-meta em,.excel-review-question-meta i{border-radius:99px;padding:3px 6px;font-size:.54rem;font-style:normal;font-weight:800}.excel-review-question-meta em{color:#6757e7;background:#f0eeff}.excel-review-question-meta i{margin-left:auto}.excel-review-question-meta i.has-answer{color:#1d805c;background:#eaf8f1}.excel-review-question-meta i.ai-answer{color:#5f4df6;background:#f0edff}.excel-review-question-body>p{color:#302c3e;white-space:pre-wrap;margin:6px 0 0;font-size:.78rem;line-height:1.55}.excel-review-question-body>p strong{color:#4f3fd3;text-underline-offset:2px;font-weight:900;text-decoration:underline;text-decoration-thickness:2px}.excel-review-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:8px;display:grid}.excel-review-options>span{color:#575165;background:#f8f7fc;border-radius:8px;align-items:flex-start;gap:6px;min-width:0;padding:6px 8px;font-size:.64rem;line-height:1.4;display:flex}.excel-review-options b{color:#6153df;background:#ebe8ff;border-radius:50%;flex:0 0 17px;place-items:center;width:17px;height:17px;font-size:.55rem;display:grid}.excel-review-toggle{color:#685be0;cursor:pointer;background:#faf9ff;border:1px dashed #d8d3fa;border-radius:10px;justify-content:center;align-items:center;gap:6px;width:calc(100% - 32px);margin:0 16px 12px;padding:8px;font-size:.66rem;font-weight:800;display:flex}.excel-review-toggle svg{transition:transform .2s}.excel-review-toggle svg.up{transform:rotate(180deg)}.excel-review-actions{background:#f8f7ff;border-top:1px solid #e9e6fa;align-items:center;gap:8px;padding:12px 16px;display:flex}.excel-review-actions>div{min-width:0;margin-right:auto}.excel-review-actions>div strong{color:#403a55;font-size:.7rem;display:block}.excel-review-actions>div span{color:var(--muted);margin-top:2px;font-size:.6rem;display:block}.question-format-preview{background:#f8f6ff;border:1px dashed #cfc7ff;border-radius:12px;padding:10px 12px}.question-format-preview>span{color:#7568e9;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px;font-size:.65rem;font-weight:850;display:block}.question-format-preview p{color:#302c42;white-space:pre-wrap;margin:0;font-size:.84rem;line-height:1.55}.question-format-preview strong,.answer-key-question strong{color:#4f3fd3;text-underline-offset:2px;font-weight:900;text-decoration:underline;text-decoration-thickness:2px}.answer-key-panel{background:linear-gradient(#fbfaff 0%,#f8f7ff 100%);border:1px solid #d7d1ff;border-radius:16px;margin-top:22px;padding:17px;scroll-margin-top:90px}.answer-key-head{border-bottom:1px solid #e4e0ff;justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:14px;display:flex}.answer-key-head>div:first-child{min-width:0}.answer-key-head>div:first-child>span{color:#6656e8;letter-spacing:.08em;font-size:.66rem;font-weight:900}.answer-key-head h3{margin:3px 0 4px;font-size:.95rem}.answer-key-head p{color:var(--muted);margin:0;font-size:.72rem;line-height:1.5}.answer-key-stats{text-align:center;background:#fff;border-radius:12px;min-width:132px;padding:10px 12px;box-shadow:0 4px 14px #4b41a012}.answer-key-stats b{color:#5f4df6;font-size:1.05rem;display:block}.answer-key-stats span{color:var(--muted);font-size:.62rem}.answer-key-list{gap:8px;margin-top:12px;display:grid}.answer-key-item{background:#fff;border:1px solid #e6e3f3;border-radius:12px;grid-template-columns:62px minmax(180px,.85fr) minmax(320px,1.5fr) 96px;align-items:center;gap:10px;padding:10px;display:grid}.answer-key-number{color:#5c4ee2;font-size:.72rem;font-weight:900}.answer-key-question{min-width:0}.answer-key-question>span{color:#8b8799;font-size:.59rem;font-weight:800}.answer-key-question p{color:#373344;white-space:pre-wrap;margin:3px 0 0;font-size:.71rem;line-height:1.35;overflow:hidden}.answer-key-inputs{grid-template-columns:1fr 1fr;gap:7px;display:grid}.answer-key-inputs input{min-width:0;padding:9px 10px;font-size:.73rem}.answer-key-state{white-space:nowrap;border-radius:999px;justify-self:end;padding:5px 7px;font-size:.58rem;font-weight:850}.answer-key-state.ok{color:#157754;background:#eaf9f2}.answer-key-state.ai{color:#5f4df6;background:#f0edff}@media (width<=1000px){.answer-key-item{grid-template-columns:58px 1fr 92px}.answer-key-inputs{grid-column:2/4}}@media (width<=720px){.excel-review-question{grid-template-columns:1fr}.excel-review-question-number{border-bottom:1px solid #eeecf7;border-right:0;justify-content:space-between;align-items:center;padding:0 0 7px;display:flex}.excel-review-options{grid-template-columns:1fr}.excel-review-actions{flex-direction:column;align-items:stretch}.excel-review-actions>div{margin:0 0 4px}.excel-review-actions .btn{justify-content:center;width:100%}.answer-key-head{flex-direction:column}.answer-key-stats{width:100%}.answer-key-item{grid-template-columns:1fr auto}.answer-key-number{grid-column:1}.answer-key-state{grid-area:1/2}.answer-key-question,.answer-key-inputs{grid-column:1/-1}.answer-key-inputs{grid-template-columns:1fr}}
