: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{flex-wrap:wrap;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}.teacher-students-filter-row{flex-wrap:wrap;flex:1;gap:10px;min-width:0;display:flex}.teacher-class-select{border:1px solid var(--line);color:#3730a3;background:#fff;border-radius:10px;min-height:42px;padding:0 12px;font-size:.84rem;font-weight:600}.teacher-students-count{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:.74rem;font-weight:700}.management-search{border:1px solid var(--line);color:#9693a4;background:#fff;border-radius:12px;align-items:center;gap:7px;width:min(420px,100%);min-height:42px;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{-webkit-overflow-scrolling:touch;border-radius:12px;width:100%;overflow-x:auto}.management-table{border-collapse:collapse;width:100%;min-width:620px}.management-table th{border-bottom:1px solid var(--line);color:#9996a7;text-transform:uppercase;letter-spacing:.06em;text-align:left;white-space:nowrap;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}.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)}.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;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}.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-top,.student-assignment-bottom{justify-content:space-between;align-items:center;display: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}.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)}.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}.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.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.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}.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:3px;display:grid}.report-row strong{font-size:.92rem}.report-row span,.report-row small{color:var(--muted);font-size:.84rem;line-height:1.5}.submit-state{background:#f1f0f4;border-radius:8px;padding:5px 7px}.submit-state.done{background:var(--green-soft);color:#18885b}.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}.vocab-group{margin-bottom:24px}.vocab-group-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.vocab-group-head h3{margin:0;font-size:.92rem}.vocab-group-head span{color:var(--muted);font-size:.7rem}.word-grid{grid-template-columns:repeat(4,1fr);gap:9px;display:grid}.word-card{border:1px solid var(--line);background:#fcfcfe;border-radius:13px;padding:15px;display:grid;position:relative}.word-card>strong{font-family:Noto Sans KR,sans-serif;font-size:1.15rem}.word-card em{color:#9a97a7;margin:2px 0 8px;font-size:.68rem;font-style:normal}.word-card p{color:#4f4d5e;margin:0;font-size:.77rem}.word-card small{color:#777485;margin-top:10px;font-family:Noto Sans KR,sans-serif;font-size:.68rem;line-height:1.4}.speak-btn{background:var(--purple-soft);width:30px;height:30px;color:var(--purple);border:0;border-radius:8px;place-items:center;display:grid;position:absolute;top:8px;right:8px}.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.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-ai-summary{background:#eeebff;border-radius:8px;margin-top:5px;padding:7px 10px;display:block;color:#4338ca!important;font-size:.86rem!important;line-height:1.55!important}.attempt-history{margin-top:7px}.attempt-history summary{cursor:pointer;color:var(--purple);padding:4px 0;font-size:.84rem;font-weight:750}.attempt-history>div{gap:8px;margin-top:7px;display:grid}.attempt-history article{background:#faf9fd;border:1px solid #e2dedf;border-radius:11px;padding:11px 13px}.attempt-history article>div{justify-content:space-between;align-items:center;gap:7px;display:flex}.attempt-history article strong{color:#3730a3;font-size:.88rem}.attempt-history article b{color:#17855a;background:var(--green-soft);border-radius:6px;padding:4px 7px;font-size:.72rem}.attempt-history article>span{color:#888496;margin-top:3px;font-size:.75rem;display:block}.attempt-history article p{color:#444054;margin:6px 0 0;font-size:.86rem;line-height:1.55}.attempt-feedback{border-top:1px solid #e5e2f0;gap:8px;margin:9px 0 0;padding:9px 0 0;list-style:none;display:grid}.attempt-feedback li{background:#fff;border:1px solid #e8e5f2;border-radius:8px;gap:4px;padding:9px 11px;display:grid}.attempt-feedback strong{color:#4338ca;font-size:.88rem!important;font-weight:700!important}.attempt-feedback span{color:#2d2b38!important;font-size:.86rem!important;line-height:1.5!important}.attempt-ans-box{gap:4px;margin-top:3px;display:grid}.student-ans-text{font-family:Noto Sans KR,sans-serif;line-height:1.5;color:#1e1b4b!important;font-size:.88rem!important}.student-ans-text b{color:#4f46e5;margin-right:4px;font-size:.8rem}.ai-fb-text{line-height:1.5;color:#4b5563!important;font-size:.84rem!important}.ai-fb-text b{color:#059669;margin-right:4px;font-size:.8rem}.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}.ai-scanning-card{color:#fff;background:linear-gradient(135deg,#2a225e 0%,#1e1945 60%,#151136 100%);border:1.5px solid #8172ff;border-radius:18px;margin-bottom:18px;padding:18px 20px;animation:.35s cubic-bezier(.34,1.56,.64,1) ai-card-in;position:relative;overflow:hidden;box-shadow:0 12px 36px #5a48de59}@keyframes ai-card-in{0%{opacity:0;transform:translateY(-12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.ai-scanner-beam-line{pointer-events:none;background:linear-gradient(90deg,#0000,#9382ff40,#fff6,#9382ff40,#0000);width:60%;height:100%;animation:2.2s ease-in-out infinite ai-beam-sweep;position:absolute;top:0;left:-100%;transform:skew(-25deg)}@keyframes ai-beam-sweep{0%{left:-100%}50%,to{left:180%}}.ai-scanning-header{z-index:2;align-items:center;gap:16px;display:flex;position:relative}.ai-scanner-orb-wrap{flex-shrink:0;place-items:center;width:52px;height:52px;display:grid;position:relative}.ai-scanner-orb{color:#fff;z-index:3;background:radial-gradient(circle at 35% 35%,#a594ff,#624ef5 65%,#4333c8 100%);border-radius:50%;place-items:center;width:48px;height:48px;display:grid;box-shadow:0 0 20px #7863ffcc,inset 0 2px 4px #fff9}.ai-scanner-pulse-ring{border:2px solid #a594ff99;border-radius:50%;animation:1.8s cubic-bezier(.215,.61,.355,1) infinite pulse-ring;position:absolute;inset:-6px}.ai-scanner-pulse-ring.delay{animation-delay:.9s}@keyframes pulse-ring{0%{opacity:1;transform:scale(.7)}to{opacity:0;transform:scale(1.6)}}.ai-scanning-info{flex:1;gap:3px;min-width:0;display:grid}.ai-scanning-badge{letter-spacing:.05em;color:#e5dcff;background:#ffffff26;border:1px solid #ffffff40;border-radius:99px;align-items:center;gap:5px;width:max-content;padding:3px 8px;font-size:.66rem;font-weight:800;display:inline-flex}.ai-scanning-info strong{color:#fff;letter-spacing:-.01em;font-size:.96rem}.ai-scanning-info small{color:#ffffffb8;font-size:.76rem}.ai-scanning-percent{color:#c9c0ff;letter-spacing:-.03em;flex-shrink:0;font-size:1.45rem;font-weight:900}.ai-scanning-progress-track{z-index:2;background:#ffffff1f;border-radius:99px;height:7px;margin:14px 0 12px;position:relative;overflow:hidden}.ai-scanning-progress-bar{background:linear-gradient(90deg,#7c6dfa,#c586ff,#62e5be);border-radius:99px;height:100%;transition:width .3s;box-shadow:0 0 10px #7c6dfacc}.ai-scanning-steps-list{z-index:2;grid-template-columns:repeat(3,1fr);gap:8px;display:grid;position:relative}.ai-scanning-step-item{color:#ffffff8c;background:#ffffff0f;border:1px solid #ffffff14;border-radius:8px;align-items:center;gap:6px;padding:6px 8px;font-size:.68rem;display:flex}.ai-scanning-step-item.done{color:#8ef2c6;background:#8ef2c614;border-color:#8ef2c64d}.ai-scanning-step-item.current{color:#fff;background:#9f8eff2e;border-color:#9f8eff;font-weight:700;box-shadow:0 0 10px #9f8eff40}.ai-step-dot{background:#ffffff26;border-radius:50%;flex-shrink:0;place-items:center;width:16px;height:16px;font-size:.6rem;display:grid}.ai-scanning-step-item.done .ai-step-dot{color:#fff;background:#2ebd85}.ai-scanning-step-item.current .ai-step-dot{color:#fff;background:#7d6cfd;animation:1s infinite alternate pulse-step}@keyframes pulse-step{to{transform:scale(1.15)}}.is-scanning-glow .question-card{border-color:#c9c2ff;box-shadow:0 0 12px #6d5dfc14}.btn-scanning-active{animation:1.2s ease-in-out infinite scanning-pulse;color:#fff!important;background:linear-gradient(135deg,#6d5dfc,#9f7aea)!important}@keyframes scanning-pulse{0%,to{box-shadow:0 0 #6d5dfc66}50%{box-shadow:0 0 0 8px #6d5dfc00}}@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){html,body{max-width:100vw;overflow-x:hidden}body{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px));-webkit-text-size-adjust:100%}input,select,textarea{font-size:16px!important}.login-page{background:#f8f7fc;display:block}.login-visual{display:none}.login-panel{min-height:100vh;padding:24px 16px}.login-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:20px;width:100%;padding:22px 18px}.mobile-login-logo{color:var(--purple);align-items:center;gap:8px;margin-bottom:24px;font-weight:850;display:flex}.sidebar{width:min(290px,85vw);transition:transform .24s cubic-bezier(.4,0,.2,1);transform:translate(-105%);box-shadow:10px 0 32px #211d412e}.sidebar.mobile-open{transform:translate(0)}.close-mobile{width:42px;height:42px;display:grid}.sidebar-overlay{z-index:25;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1e1c2b66;border:0;display:block;position:fixed;inset:0}.main-area{min-width:0;margin-left:0}.global-announcement-bar{padding:6px 12px;font-size:.78rem;position:relative}.global-announcement-badge{padding:3px 8px;font-size:.65rem}.mobile-header{height:56px;padding:max(6px, env(safe-area-inset-top,0px)) 12px 6px;border-bottom:1px solid var(--line);z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.brand-mini{color:#4c466a;align-items:center;gap:7px;font-size:.95rem;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:62px;padding:6px 4px max(6px, env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);z-index:22;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff7;grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -3px 16px #2d285a0d}.bottom-link{color:#9996a5;align-content:center;justify-items:center;gap:2px;padding:4px 2px;display:grid}.bottom-link.active{color:var(--purple);font-weight:750}.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{width:100%;max-width:100vw;padding:18px 12px 28px}.page-head{margin-bottom:18px;display:block}.page-head h1{margin:4px 0 6px;font-size:1.45rem}.page-head p{font-size:.8rem}.page-head>:last-child:not(div:first-child){width:100%;margin-top:12px}.page-head .btn{width:100%}.stats-grid{grid-template-columns:1fr 1fr;gap:8px}.stats-grid.student-stats{grid-template-columns:1fr 1fr 1fr}.stat-card{border-radius:14px;gap:10px;padding:12px}.stat-icon{border-radius:10px;width:36px;height:36px}.stat-card strong{font-size:1.22rem}.stat-card span{font-size:.68rem}.two-col,.vocab-teacher-grid,.result-layout,.teacher-detail-grid{grid-template-columns:1fr}.panel{border-radius:14px;padding:14px 12px}.form-grid,.form-grid.three{grid-template-columns:1fr;gap:10px}.span-2,.span-3{grid-column:auto}.assign-row{grid-template-columns:1fr;gap:8px}.assign-row select,.assign-row button{width:100%}.class-cards{grid-template-columns:1fr;gap:8px}.management-toolbar{flex-direction:column;align-items:stretch;gap:8px}.management-search{width:100%}.management-form-actions{flex-direction:column-reverse;justify-content:stretch;gap:8px}.management-form-actions .btn{width:100%}.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{border-radius:16px;padding:18px 16px}.hero-task h2{font-size:1.25rem}.hero-hangul{opacity:.08;pointer-events:none;font-size:5.5rem;top:-12px;right:-8px}.question-edit{gap:8px;padding:11px 9px}.question-number{width:24px;height:24px;font-size:.72rem}.question-meta-row{grid-template-columns:1fr 1fr;gap:6px}.question-meta-row>select,.question-meta-row>input{grid-column:span 2}.points-input{grid-column:1}.question-meta-row>.icon-button{grid-column:2;justify-self:end}.answer-row{grid-template-columns:1fr}.builder-actions{flex-direction:column;align-items:stretch;gap:10px}.builder-actions .btn{width:100%}.assignment-card{flex-wrap:wrap;align-items:flex-start;padding:12px 0}.assignment-class-filter{flex-direction:column;align-items:stretch;padding:10px 12px}.assignment-class-filter select{width:100%}.assignment-main{min-width:calc(100% - 56px)}.assignment-actions{justify-content:flex-end;width:100%;margin-top:4px}.assignment-meta{flex-wrap:wrap;gap:6px 12px}.student-assignment-grid{grid-template-columns:1fr;gap:10px}.assignment-detail-head{margin-bottom:16px;display:block}.assignment-detail-head h1{font-size:1.4rem}.detail-meta{flex-wrap:wrap;gap:12px 16px;margin-top:12px}.option-list{grid-template-columns:1fr;gap:7px}.option-list label{border-radius:12px;min-height:48px;padding:12px 14px}.submit-bar{bottom:calc(66px + env(safe-area-inset-bottom,0px) + 8px);z-index:21;border-radius:14px;flex-direction:column;align-items:stretch;gap:10px;padding:12px;position:sticky}.submit-bar strong{font-size:.84rem}.submit-bar span{font-size:.72rem}.submit-actions{grid-template-columns:1fr 1fr;gap:8px;width:100%;display:grid}.submit-actions .btn{width:100%;min-height:44px}.result-summary{margin-bottom:14px;position:static}.stats-inline{grid-template-columns:1fr 1fr 1fr;gap:6px}.stats-inline>div{text-align:center;justify-items:center;gap:3px;padding:8px 6px;display:grid}.stats-inline span{font-size:.65rem}.report-row{flex-wrap:wrap;align-items:flex-start}.submit-state{margin-left:44px}.vocab-toolbar{flex-direction:column;align-items:stretch;gap:10px}.vocab-toolbar label{min-width:0}.vocab-teacher-grid{grid-template-columns:1fr}.catalog-controls{grid-template-columns:1fr;gap:8px}.catalog-bulk-actions{flex-wrap:wrap;width:100%}.catalog-bulk-actions .btn{flex:1}.catalog-word{grid-template-columns:24px minmax(88px,.65fr) minmax(0,1.35fr);gap:8px;padding:10px 4px}.catalog-word em{display:none}.catalog-action{text-align:center;flex-direction:column;align-items:stretch;gap:10px}.catalog-action .btn{width:100%}.pagination-bar{flex-direction:column;align-items:stretch;gap:8px}.pagination-bar>div{flex-wrap:wrap;justify-content:flex-end}.word-grid{grid-template-columns:1fr 1fr;gap:8px}.word-card{padding:13px}.word-card>strong{font-size:1.05rem}.speak-btn{width:34px;height:34px}.flash-card{border-radius:18px;min-height:270px;padding:22px 16px}.flash-card>strong{font-size:2.6rem}.flash-actions{grid-template-columns:42px 1fr 1fr 42px;gap:7px;width:100%;display:grid}.flash-actions .btn{padding:10px 8px;font-size:.8rem}.flash-actions .icon-button{width:42px;height:42px}.notification-panel{padding:8px}.learning-page-wrap{padding:6px}.legacy-learning-page{height:calc(100dvh - 132px);min-height:480px}.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;gap:8px}.theme-setting select{grid-column:1/-1}.settings-save-bar{bottom:calc(66px + env(safe-area-inset-bottom,0px) + 8px);flex-direction:column;align-items:stretch;gap:8px}.settings-save-bar .btn{width:100%}.app-toast{top:auto;bottom:calc(74px + env(safe-area-inset-bottom,0px));width:auto;left:12px;right:12px}.ai-scanning-steps-list{grid-template-columns:1fr;gap:5px}.ai-scanning-card{border-radius:15px;padding:14px 12px}.ai-scanning-header{gap:12px}.ai-scanner-orb-wrap{width:44px;height:44px}.ai-scanner-orb{width:40px;height:40px}.ai-scanning-info strong{font-size:.88rem}.ai-scanning-percent{font-size:1.25rem}.student-vocab-head{flex-direction:column;align-items:stretch}.student-vocab-head .vocab-search{width:100%;min-width:0}.student-vocab-head .segmented{grid-template-columns:1fr 1fr 1fr;width:100%;display:grid}.student-vocab-head .segmented button{text-align:center;padding:7px 4px}.student-grammar-cards{grid-template-columns:1fr}.teacher-ai-messages{max-height:220px;padding:10px}.teacher-ai-msg p{max-width:95%;font-size:.82rem}}@media (width<=480px){.stats-grid,.stats-grid.student-stats{grid-template-columns:1fr 1fr}.word-grid{grid-template-columns:1fr}.catalog-word{grid-template-columns:22px minmax(78px,.65fr) minmax(0,1.35fr);gap:6px}.catalog-word p{font-size:.72rem}.pagination-bar>div{flex-wrap:wrap;justify-content:center}.flash-actions{grid-template-columns:1fr 1fr}.flash-actions .icon-button{display:none}.draft-callout{flex-direction:column;align-items:stretch;gap:10px}.draft-callout .btn{width:100%}.stats-inline{gap:4px}.stats-inline>div{padding:6px 4px}.stats-inline span{font-size:.6rem}.stats-inline strong{font-size:.82rem}.settings-card-head{flex-wrap:wrap}.config-ok,.config-off{margin-top:4px;margin-left:0}.submit-actions{grid-template-columns:1fr}.teacher-ai-quick-qs{gap:4px}.teacher-ai-quick-q{padding:4px 9px;font-size:.72rem}}.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(4,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}.spin{animation:.8s linear infinite source-spin}@keyframes source-spin{to{transform:rotate(360deg)}}.ocr-progress{background:#efedff;border-radius:999px;width:min(380px,100%);height:22px;margin-top:8px;position:relative;overflow:hidden}.ocr-progress i{background:linear-gradient(90deg, var(--purple), #8f82ff);transition:width .2s;position:absolute;inset:0 auto 0 0}.ocr-progress span{z-index:1;color:#403c58;place-items:center;height:100%;font-size:.62rem;font-weight:800;display:grid;position:relative}.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<=1000px){.question-source-grid{grid-template-columns:1fr 1fr}}@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}.learning-ai-safe{display:none!important}}.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%,#f0ebff 100%);border:1px solid #e0d7fe;border-radius:14px;gap:8px;margin-bottom:14px;padding:12px 14px;display:grid}.student-grammar-title{color:var(--purple);align-items:center;gap:6px;font-size:.8rem;display:flex}.student-grammar-cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;display:grid}.student-grammar-card{background:#fff;border:1px solid #d8ceff;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex;box-shadow:0 2px 6px #6d5dfc0f}.student-grammar-card svg{color:var(--purple);flex-shrink:0;margin-top:2px}.student-grammar-card strong{color:#312e81;font-size:.88rem;font-weight:800;display:block}.student-grammar-card p{color:var(--muted);margin:2px 0 0;font-size:.7rem;line-height:1.35}.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}
