@import "https://fonts.googleapis.com/css2?family=Gowun+Dodum&family=Jua&display=swap";:root{color:#17251e;font-synthesis:none;--ink:#17251e;--muted:#6f7973;--line:#dfe5df;--green:#176b4b;--green-dark:#0d4e37;--mint:#e2f0e8;--cream:#f5f7f3;--yellow:#f1c75b;background:#f5f7f3;font-family:Nanum Gothic,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #b8dcca}.login-page{background:#fff;grid-template-columns:1.06fr .94fr;min-height:100vh;display:grid}.login-intro{background:var(--green-dark);color:#fff;flex-direction:column;padding:46px 7vw;display:flex;position:relative;overflow:hidden}.login-brand,.brand,.mobile-brand{letter-spacing:-.5px;align-items:center;gap:12px;font-size:21px;font-weight:800;display:flex}.logo{color:#173e30;background:#f0c957;border-radius:12px;place-items:center;width:38px;height:38px;display:grid;transform:rotate(-3deg)}.intro-copy{z-index:1;margin:auto 0;position:relative}.intro-copy h1{letter-spacing:-3px;margin:14px 0 28px;font-family:Gowun Dodum,sans-serif;font-size:clamp(48px,5vw,75px);font-weight:400;line-height:1.2}.intro-copy>p:last-child{color:#bed1c8;font-size:16px;line-height:1.85}.eyebrow{text-transform:uppercase;letter-spacing:1.6px;color:var(--green);margin:0 0 10px;font-size:12px;font-weight:800}.copyright{color:#84a396;z-index:2;font-size:11px;position:relative}.shape{border:1px solid #ffffff1f;border-radius:50%;position:absolute}.shape-a{width:450px;height:450px;bottom:-90px;right:-190px}.shape-b{background:#ffffff06;width:270px;height:270px;bottom:0;right:-40px}.dot-grid{background-image:radial-gradient(#7ba391 1.5px,#0000 1.5px);background-size:15px 15px;width:90px;height:90px;position:absolute;top:95px;right:90px}.login-panel{place-items:center;padding:40px;display:grid}.login-card{flex-direction:column;gap:22px;width:min(420px,100%);display:flex}.login-card h2{letter-spacing:-2px;margin:0 0 10px;font-size:38px}.muted,.page-heading>div>p:last-child{color:var(--muted);margin:0;line-height:1.6}.role-tabs{background:#f1f4f1;border-radius:12px;grid-template-columns:repeat(3,1fr);padding:4px;display:grid}.role-tabs button{color:#778079;background:0 0;border:0;border-radius:9px;padding:11px}.role-tabs button.selected{color:var(--green-dark);background:#fff;font-weight:800;box-shadow:0 2px 9px #24453312}.login-card>label,.modal label,.transfer label,.answer-label{flex-direction:column;gap:8px;font-size:13px;font-weight:700;display:flex}.login-card input,.modal input,.modal textarea,.modal select,.transfer select,.answer-label textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #d9dfda;border-radius:10px;padding:13px 14px}.password{position:relative}.password button{color:var(--green);background:0 0;border:0;padding:8px;font-size:12px;font-weight:700;position:absolute;top:6px;right:8px}.login-options{color:var(--muted);justify-content:space-between;font-size:12px;display:flex}.login-options label{align-items:center;gap:7px;display:flex}.login-options input{width:auto;accent-color:var(--green)}.login-options button,.text-button{color:var(--green);background:0 0;border:0;font-weight:700}.primary{background:var(--green);color:#fff;border:0;border-radius:10px;justify-content:center;align-items:center;gap:9px;padding:12px 18px;font-weight:800;display:inline-flex;box-shadow:0 7px 18px #145c4130}.primary:hover{background:var(--green-dark)}.primary.big{height:50px}.demo-note{text-align:center;color:#8b938e;margin:0;font-size:11px}.app-shell{min-height:100vh;display:flex}.sidebar{border-right:1px solid var(--line);z-index:20;background:#fff;flex-direction:column;width:242px;height:100vh;padding:26px 18px;display:flex;position:fixed;top:0;left:0}.brand{padding:0 10px 32px}.sidebar nav{flex-direction:column;gap:6px;display:flex}.sidebar nav button,.logout{color:#6f7973;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;padding:12px 14px;display:flex}.sidebar nav button:hover,.sidebar nav button.active{color:var(--green-dark);background:#eaf2ed;font-weight:800}.sidebar-bottom{border-top:1px solid var(--line);margin-top:auto;padding-top:16px}.user-mini{align-items:center;gap:10px;padding:8px;display:flex}.user-mini>div:nth-child(2){flex-direction:column;flex:1;gap:3px;display:flex}.user-mini b{font-size:13px}.user-mini span{color:var(--muted);font-size:10px}.avatar{width:36px;height:36px;color:var(--green);background:#dcece4;border-radius:50%;place-items:center;font-weight:800;display:grid}.logout{width:100%;margin-top:5px}.main{flex:1;min-width:0;margin-left:242px}.topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);z-index:10;background:#ffffffdb;justify-content:flex-end;align-items:center;height:68px;padding:0 4vw;display:flex;position:sticky;top:0}.role-pill{border:1px solid var(--line);color:var(--green);background:#fff;border-radius:99px;padding:7px 13px;font-size:11px;font-weight:800}.menu-btn,.mobile-brand,.mobile-close{display:none}.page-wrap,.workspace-page{max-width:1500px;margin:auto;padding:45px 4vw 70px}.page-heading{margin-bottom:36px}.page-heading.row{justify-content:space-between;align-items:end;display:flex}.page-heading h1{letter-spacing:-1.5px;margin:0 0 9px;font-family:Gowun Dodum,sans-serif;font-size:36px}.student-summary{grid-template-columns:2fr 1fr 1fr;gap:14px;margin-bottom:42px;display:grid}.summary-main,.stat,.stat-card{background:var(--green-dark);color:#fff;border-radius:14px;align-items:center;gap:16px;padding:22px;display:flex}.summary-icon{background:#ffffff17;border-radius:12px;place-items:center;width:48px;height:48px;display:grid}.summary-main>div:nth-child(2){flex-direction:column;gap:5px;min-width:125px;display:flex}.summary-main span,.stat span{color:#b9cec4;font-size:11px}.summary-main strong{font-size:25px}.summary-main small{color:#b9cec4;font-size:12px;font-weight:400}.progress{background:#ffffff21;border-radius:20px;flex:1;height:7px}.progress i{background:var(--yellow);border-radius:20px;height:100%;display:block}.stat{color:var(--ink);border:1px solid var(--line);background:#fff;justify-content:center}.stat b{font-size:30px}.stat em{color:var(--muted);margin-left:-10px;font-size:11px;font-style:normal}.section-title{justify-content:space-between;align-items:end;margin-bottom:18px;display:flex}.section-title h2{margin:0 0 7px;font-size:20px}.section-title p{color:var(--muted);margin:0;font-size:12px}.text-button{align-items:center;gap:5px;display:flex}.task-grid{grid-template-columns:repeat(3,1fr);gap:17px;display:grid}.task-card{border:1px solid var(--line);text-align:left;min-height:255px;color:var(--ink);background:#fff;border-radius:15px;flex-direction:column;justify-content:space-between;padding:20px;transition:all .2s;display:flex}.task-card:hover{border-color:#b8cfc3;transform:translateY(-3px);box-shadow:0 13px 28px #20392d10}.task-top,.task-footer{justify-content:space-between;align-items:center;display:flex}.badge,.status{border-radius:99px;padding:5px 9px;font-size:10px;font-weight:800}.badge.success,.status.ok{color:#19704e;background:#e2f2e9}.badge.warn,.status.wait{color:#9b6812;background:#fff1cd}.badge.neutral,.status.plain{color:#6b736e;background:#eff1ef}.status.bad{color:#ae4337;background:#fae4e1}.due{color:var(--muted);align-items:center;gap:5px;font-size:11px;display:flex}.subject{color:var(--green);font-size:11px;font-weight:800}.task-card h3,.assignment-row h3{margin:9px 0;font-size:18px}.task-card p{color:var(--muted);margin:0;font-size:12px;line-height:1.7}.task-footer{color:#89918c;border-top:1px solid #edf0ed;padding-top:14px;font-size:10px}.circle-arrow{width:31px;height:31px;color:var(--green);background:#f0f5f2;border-radius:50%;place-items:center;display:grid}.workspace-page{padding-top:30px}.workspace-header{grid-template-columns:160px 1fr auto;align-items:center;margin-bottom:25px;display:grid}.workspace-header .back{color:var(--muted);background:0 0;border:0;align-items:center;gap:8px;display:flex}.workspace-header h1{margin:5px 0;font-size:22px}.workspace-grid{grid-template-columns:minmax(0,1.3fr) minmax(350px,.7fr);align-items:start;gap:18px;display:grid}.panel{border:1px solid var(--line);background:#fff;border-radius:15px}.panel-heading,.chat-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 20px;font-weight:800;display:flex}.step-dots{gap:5px;display:flex}.step-dots i{background:#dfe4e0;border-radius:4px;width:19px;height:4px}.step-dots .on{background:var(--green)}.problem-body{padding:28px}.problem-no{color:var(--green);font-size:11px;font-weight:800}.problem-body h2{margin:8px 0 22px;font-size:19px;line-height:1.65}.scenario{background:#f4f6f3;border-radius:13px;place-items:center;padding:20px;display:grid}.maze{grid-template-rows:repeat(3,45px);grid-template-columns:repeat(5,55px);display:grid;position:relative}.maze i{border-bottom:3px solid #8eaa9c;border-right:3px solid #8eaa9c}.cat,.flag{z-index:2;font-size:24px}.cat{grid-area:3/1}.flag{grid-area:1/5}.hint-box{color:#82631e;background:#fff9e9;border:1px solid #f1dfad;border-radius:11px;gap:12px;margin:18px 0;padding:14px;display:flex}.hint-box p{margin:5px 0 0;font-size:12px}.answer-label textarea{resize:vertical;min-height:100px;font-weight:400}.result{border-radius:10px;gap:10px;margin-top:14px;padding:13px;display:flex}.result.correct{color:#176b4b;background:#e7f4ec}.result.wrong{color:#a84438;background:#fcebe8}.result p{margin:3px 0 0;font-size:11px}.submit{width:100%;margin-top:14px}.chat-panel{position:sticky;top:88px}.chat-heading>div{align-items:center;gap:10px;display:flex}.chat-heading>div>div{flex-direction:column;gap:4px;display:flex}.chat-heading span{color:var(--muted);font-size:10px;font-weight:400}.online{background:#e6f3ec;border-radius:99px;padding:6px 9px;color:var(--green)!important}.messages{background:#fafbf9;flex-direction:column;gap:18px;height:415px;padding:20px;display:flex;overflow:auto}.message{max-width:88%}.message>span{color:var(--muted);margin-bottom:5px;font-size:9px;display:block}.message p{border:1px solid var(--line);background:#fff;border-radius:3px 12px 12px;margin:0;padding:12px 14px;font-size:12px;line-height:1.65}.message.me{align-self:flex-end}.message.me>span{text-align:right}.message.me p{background:var(--green);color:#fff;border:0;border-radius:12px 3px 12px 12px}.quick-prompts{gap:6px;padding:12px 15px 0;display:flex;overflow:auto}.quick-prompts button{white-space:nowrap;color:var(--green);background:#f6faf7;border:1px solid #cbd9d1;border-radius:99px;padding:7px 9px;font-size:9px}.chat-input{gap:8px;padding:12px 15px 15px;display:flex}.chat-input textarea{resize:none;border:1px solid var(--line);border-radius:10px;flex:1;height:48px;padding:12px;font-size:12px}.chat-input button{background:var(--green);color:#fff;border:0;border-radius:10px;width:45px}.history-list{flex-direction:column;gap:10px;display:flex}.history-item{border:1px solid var(--line);background:#fff;border-radius:13px;grid-template-columns:auto 1fr auto;align-items:center;gap:15px;padding:20px;display:grid}.history-icon{width:42px;height:42px;color:var(--green);background:#e8f2ed;border-radius:11px;place-items:center;display:grid}.history-item span,.history-item p{color:var(--muted);font-size:10px}.history-item h3{margin:5px 0;font-size:14px}.dashboard-stats{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.stat-card{color:var(--ink);border:1px solid var(--line);background:#fff;position:relative}.stat-icon{border-radius:11px;place-items:center;width:43px;height:43px;display:grid}.stat-icon.blue{color:#3d6f9c;background:#e6eef7}.stat-icon.green{color:#277456;background:#e5f2ea}.stat-icon.yellow{color:#9a711d;background:#fff2cf}.stat-icon.purple{color:#6a5097;background:#eee9f7}.stat-card>div:nth-child(2){flex-direction:column;gap:5px;display:flex}.stat-card span{color:var(--muted);font-size:10px}.stat-card b{font-size:24px}.stat-card small{margin-left:3px;font-size:11px}.trend{position:absolute;top:15px;right:15px}.teacher-grid{grid-template-columns:minmax(0,2fr) minmax(260px,.7fr);gap:18px;display:grid}.dashboard-panel,.activity{padding:22px}.section-title.compact{align-items:start}.table-wrap{overflow:auto}.table-wrap.panel{padding:5px 22px}table{border-collapse:collapse;width:100%;min-width:610px}th{text-align:left;color:#8a928d;border-bottom:1px solid var(--line);padding:12px;font-size:10px}td{color:#5f6963;border-bottom:1px solid #edf0ed;padding:13px 12px;font-size:11px}.student-name{align-items:center;gap:9px;display:flex}.student-name span{width:28px;height:28px;color:var(--green);background:#edf3ef;border-radius:50%;place-items:center;font-weight:800;display:grid}.student-name b{color:var(--ink)}.activity-row,.teacher-row{border-bottom:1px solid #edf0ed;align-items:center;gap:10px;padding:13px 0;display:flex}.avatar.alt{color:#806c2c;background:#f1eee1}.activity-row>div:nth-child(2),.teacher-row>div:nth-child(2){flex-direction:column;flex:1;gap:4px;display:flex}.activity-row b,.teacher-row b{font-size:12px}.activity-row span,.teacher-row span{color:var(--muted);font-size:10px}.activity-row time{color:#999;font-size:9px}.filter-bar{gap:9px;margin-bottom:15px;display:flex}.search{border:1px solid var(--line);background:#fff;border-radius:10px;flex:1;align-items:center;padding:0 12px;display:flex}.search input{background:0 0;border:0;width:100%;padding:11px}.filter-bar>button{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:12px;padding:0 13px;display:flex}.assignment-list{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden}.assignment-row{border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:18px;display:flex}.assignment-index{width:52px;height:58px;color:var(--green);background:#dfeee6;border-radius:10px;place-items:center;font-family:Gowun Dodum;font-size:21px;display:grid}.assignment-index.i1{color:#8b6b19;background:#f7edce}.assignment-index.i2{color:#626276;background:#e8e8ef}.assignment-info{flex:1}.assignment-info .badge{margin-left:8px}.assignment-info h3{margin:7px 0}.assignment-info p{color:var(--muted);margin:0;font-size:10px}.submission-count{flex-direction:column;align-items:end;display:flex}.submission-count b{font-size:18px}.submission-count small,.submission-count span{color:var(--muted);font-size:10px}.icon-btn{color:#7c8580;background:0 0;border:0;padding:7px}.add-dashed{color:var(--green);background:0 0;border:1px dashed #afc2b7;border-radius:12px;justify-content:center;align-items:center;gap:7px;width:100%;margin-top:13px;padding:15px;font-weight:800;display:flex}.modal-backdrop{z-index:50;background:#10271e99;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:18px;width:min(620px,100%);max-height:92vh;padding:26px;overflow:auto;box-shadow:0 25px 60px #08140e55}.modal-head{justify-content:space-between;align-items:start;margin-bottom:22px;display:flex}.modal-head h2{margin:0;font-size:26px}.modal-head button{background:#f1f3f1;border:0;border-radius:50%;width:35px;height:35px}.modal form{flex-direction:column;gap:16px;display:flex}.modal textarea{resize:vertical;min-height:85px}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.modal-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.modal-actions>button:first-child{border:1px solid var(--line);background:#fff;border-radius:10px;padding:11px 18px}.success-modal{text-align:center;padding:30px}.success-modal>div{width:60px;height:60px;color:var(--green);background:#e3f2ea;border-radius:50%;place-items:center;margin:auto;display:grid}.success-modal p{color:var(--muted);margin:18px}.admin-highlight{background:var(--green-dark);color:#fff;border-radius:15px;align-items:center;gap:17px;margin-bottom:18px;padding:24px;display:flex}.crown{color:#49390e;background:#f1c75b;border-radius:13px;place-items:center;width:53px;height:53px;display:grid}.admin-highlight span,.admin-highlight p{color:#bad0c5;margin:3px 0;font-size:10px}.admin-highlight h2{margin:3px 0}.admin-id{color:#b8ccc2;margin-left:auto;font-size:10px}.admin-grid{grid-template-columns:1.4fr .8fr;gap:18px;display:grid}.teacher-list,.transfer{padding:22px}.avatar.teacher{border-radius:11px}.teacher-row>.status{margin-right:8px}.transfer{text-align:center}.transfer-icon{width:55px;height:55px;color:var(--green);background:#e5f2eb;border-radius:15px;place-items:center;margin:5px auto 15px;display:grid}.transfer h2{font-size:18px}.transfer>p{color:var(--muted);font-size:11px;line-height:1.7}.transfer label{text-align:left;margin:21px 0 12px}.outline-danger{color:#a83d33;background:#fff7f6;border:1px solid #d27066;border-radius:10px;width:100%;padding:12px;font-weight:800}.warning{color:#9a6a20;justify-content:center;align-items:center;gap:5px;margin-top:15px;font-size:10px;display:flex}.toast{color:#fff;background:#173d2e;border-radius:10px;align-items:center;gap:8px;padding:14px 18px;font-size:12px;display:flex;position:fixed;bottom:25px;right:25px;box-shadow:0 10px 25px #0003}@media (width<=1050px){.task-grid,.dashboard-stats{grid-template-columns:repeat(2,1fr)}.teacher-grid,.admin-grid,.workspace-grid{grid-template-columns:1fr}.chat-panel{position:static}.student-summary{grid-template-columns:2fr 1fr}.student-summary .stat:last-child{display:none}}@media (width<=760px){.login-page{grid-template-columns:1fr}.login-intro{min-height:280px;padding:28px}.intro-copy h1{font-size:40px}.intro-copy>p:last-child,.copyright{display:none}.login-panel{padding:38px 24px}.sidebar{transition:all .2s;transform:translate(-100%)}.sidebar.open{transform:none}.nav-overlay{z-index:15;background:#0006;position:fixed;inset:0}.mobile-close{background:0 0;border:0;margin-left:auto;display:block}.main{margin-left:0}.topbar{justify-content:space-between;padding:0 20px}.menu-btn{background:0 0;border:0;place-items:center;display:grid}.mobile-brand{font-size:15px;display:flex}.mobile-brand .logo{width:30px;height:30px}.page-wrap,.workspace-page{padding:30px 20px 55px}.page-heading.row{align-items:start;gap:20px}.page-heading h1{font-size:30px}.student-summary{grid-template-columns:1fr 1fr}.summary-main{grid-column:1/-1}.task-grid{grid-template-columns:1fr}.workspace-header{grid-template-columns:1fr auto}.workspace-header>div{grid-area:2/1/auto/-1}.workspace-header .back{margin-bottom:20px}.dashboard-stats{grid-template-columns:1fr 1fr}.teacher-grid,.form-row{grid-template-columns:1fr}.admin-highlight{align-items:flex-start}.admin-id{display:none}.filter-bar{flex-wrap:wrap}.search{flex-basis:100%}.assignment-index,.submission-count{display:none}.modal{padding:20px}}@media (width<=470px){.student-summary{grid-template-columns:1fr}.student-summary .stat:last-child{display:flex}.dashboard-stats{grid-template-columns:1fr}.role-pill{display:none}.page-heading.row{flex-direction:column;align-items:stretch}.page-heading.row>.primary{width:100%}.problem-body{padding:20px}.maze{grid-template-rows:repeat(3,40px);grid-template-columns:repeat(5,42px)}.assignment-row{gap:8px}.login-card h2{font-size:32px}}.optional,.required{border-radius:99px;margin-left:5px;padding:3px 7px;font-size:9px;font-weight:800;display:inline-block}.optional{color:#748078;background:#edf0ee}.required{color:#a83d33;background:#fae8e5}.file-drop{cursor:pointer;background:#f8fbf9;border:1px dashed #9eb8aa;border-radius:12px;align-items:center;gap:13px;margin-top:15px;padding:16px;display:flex}.file-drop:hover{border-color:var(--green);background:#f1f7f3}.file-drop input{opacity:0;width:1px;height:1px;position:absolute}.file-drop.has-error{background:#fff8f7;border-color:#c96156}.file-icon{width:42px;height:42px;color:var(--green);background:#e3f0e9;border-radius:10px;flex:none;place-items:center;display:grid}.file-drop b{font-size:12px}.file-drop p{color:var(--muted);margin:5px 0 0;font-size:10px}.field-error{color:#ae4337;margin:6px 0 0;font-size:11px}.filter-bar>select{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;padding:0 35px 0 13px}.assignment-list{overflow:visible}.assignment-row{position:relative}.icon-btn:hover{color:var(--green);background:#edf3ef;border-radius:8px}.more-wrap{position:relative}.pop-menu{border:1px solid var(--line);z-index:5;background:#fff;border-radius:10px;width:125px;padding:5px;position:absolute;top:38px;right:0;box-shadow:0 10px 25px #17251e20}.pop-menu button{text-align:left;background:0 0;border:0;border-radius:6px;width:100%;padding:9px;font-size:11px;display:block}.pop-menu button:hover{background:#edf3ef}.empty-state{text-align:center;color:var(--muted);padding:45px;font-size:12px}.modal.small-modal{width:min(430px,100%)}.class-picker{border:0;margin:0;padding:0}.class-picker legend{margin-bottom:9px;font-size:13px;font-weight:700}.class-picker>div{grid-template-columns:repeat(4,1fr);gap:7px;display:grid}.class-picker label{border:1px solid var(--line);cursor:pointer;border-radius:8px;flex-direction:row;justify-content:center;align-items:center;padding:9px 5px;font-size:10px;display:flex}.class-picker label.checked{border-color:var(--green);color:var(--green);background:#eef6f1;font-weight:800}.class-picker input{opacity:0;width:1px;position:absolute}.teacher-file{margin-top:0}@media (width<=600px){.class-picker>div{grid-template-columns:repeat(3,1fr)}.filter-bar>select{flex:1;height:40px}.file-drop{align-items:flex-start}}:root{color:#17324a;--ink:#17324a;--muted:#688096;--line:#d5e8f3;--green:#1686b8;--green-dark:#096b98;--mint:#def3fc;--cream:#eaf7ff;--yellow:#ffd36a;background:#eaf7ff;font-family:Gowun Dodum,sans-serif}body{background:linear-gradient(145deg,#effaff 0%,#e5f5ff 55%,#edfaff 100%)}h1,h2,h3,.brand,.login-brand,.mobile-brand,.primary,.sidebar nav button{font-family:Jua,Gowun Dodum,sans-serif;font-weight:400}.login-intro{background:linear-gradient(145deg,#168fc0,#0871a4)}.login-panel{background:#f2fbff}.intro-copy .eyebrow{color:#ffe18c}.intro-copy>p:last-child{color:#d5effb}.copyright{color:#b8dfef}.dot-grid{background-image:radial-gradient(#a9d9ed 1.5px,#0000 1.5px)}.logo{color:#125e80;background:#ffe286;border-radius:15px}.main{background:linear-gradient(145deg,#f1faff 0%,#e7f6ff 100%)}.sidebar,.topbar{background:#ffffffe8}.sidebar nav button:hover,.sidebar nav button.active{color:#086c99;background:#e2f4fc}.avatar,.history-icon,.file-icon,.transfer-icon{color:#1686b8;background:#dff3fc}.summary-main,.admin-highlight{background:linear-gradient(135deg,#0873a4,#1491bd)}.summary-main span,.summary-main small,.admin-highlight span,.admin-highlight p{color:#d1edf8}.task-card,.panel,.stat,.stat-card,.assignment-list,.history-item{box-shadow:0 8px 28px #2485b012}.task-card:hover{border-color:#a9d8eb;box-shadow:0 15px 32px #2485b029}.role-tabs{background:#e8f5fb}.circle-arrow,.scenario{background:#eaf7fc}.file-drop{background:#f5fbfe;border-color:#98cde2}.file-drop:hover{background:#eaf7fc;border-color:#1686b8}.class-picker label.checked{color:#0871a4;background:#e7f6fc;border-color:#1686b8}.message.me p,.chat-input button{background:#1686b8}.messages{background:#f4fbfe}.online{background:#e2f4fc;color:#0875a4!important}.primary{box-shadow:0 7px 18px #107fae3d}.firebase-banner{color:#096b98;background:#e6f7ff;border:1px solid #9bcfe5;border-radius:10px;margin:14px 4vw 0;padding:11px 15px;font-size:11px}.firebase-banner.error{color:#a84438;background:#fff0ee;border-color:#e0aaa4}.primary:disabled{opacity:.6;cursor:wait}.class-add-form{max-width:560px;margin:20px 0 28px}.class-add-form>label{flex-direction:column;gap:9px;font-size:12px;font-weight:700;display:flex}.class-add-form>label>div{gap:8px;display:flex}.class-add-form input{border:1px solid var(--line);border-radius:10px;flex:1;padding:12px 14px}.class-list{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.class-list>div{border:1px solid var(--line);background:#f7fcff;border-radius:11px;align-items:center;gap:10px;padding:15px;display:flex}.class-list span{color:#1686b8;background:#def3fc;border-radius:8px;place-items:center;width:30px;height:30px;font-size:10px;display:grid}.class-list b{flex:1;font-size:12px}.class-list em{color:#1686b8;background:#e3f5fc;border-radius:99px;padding:4px 7px;font-size:9px;font-style:normal}@media (width<=700px){.class-list{grid-template-columns:1fr 1fr}}@media (width<=450px){.class-list{grid-template-columns:1fr}.class-add-form>label>div{flex-direction:column}}.auth-mode{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;display:grid}.auth-mode button{color:var(--muted);background:0 0;border:0;padding:12px;font-weight:700}.auth-mode button.active{color:var(--green);border-bottom:3px solid var(--green)}.signup-card{gap:18px}.signup-card select{width:100%;color:var(--ink);background:#fff;border:1px solid #d9dfda;border-radius:10px;padding:13px 14px}.teacher-signup-note{color:#0a719f;background:#e8f7fd;border-radius:10px;align-items:center;gap:10px;padding:13px;display:flex}.teacher-signup-note p{margin:0;font-size:11px;line-height:1.5}.terms-check{color:var(--muted);align-items:center;flex-direction:row!important;gap:8px!important;font-size:10px!important;display:flex!important}.terms-check input{accent-color:var(--green);width:auto!important}.auth-error{color:#a84438;background:#fff2f0;border:1px solid #e5aaa4;border-radius:9px;padding:11px 13px;font-size:10px;line-height:1.5}.dashboard-class-filter{align-items:end;gap:14px;margin:-15px 0 20px;display:flex}.dashboard-class-filter label{flex-direction:column;gap:7px;font-size:11px;font-weight:700;display:flex}.dashboard-class-filter select{border:1px solid var(--line);min-width:180px;color:var(--ink);background:#fff;border-radius:10px;padding:11px 34px 11px 12px}.dashboard-class-filter>span{color:var(--muted);padding-bottom:11px;font-size:10px}.admin-login-fields{background:#f7fcff;border:1px solid #cfe5f1;border-radius:14px;flex-direction:column;gap:16px;padding:18px;display:flex}.admin-login-fields label{flex-direction:column;gap:8px;font-size:12px;font-weight:700;display:flex}.admin-login-fields input{width:100%;color:var(--ink);background:#fff;border:1px solid #cbdde7;border-radius:10px;padding:13px 14px}.email-auth-fields{flex-direction:column;gap:14px;display:flex}.email-auth-fields label{flex-direction:column;gap:8px;font-size:12px;font-weight:700;display:flex}.email-auth-fields input{width:100%;color:var(--ink);background:#fff;border:1px solid #cbdde7;border-radius:10px;padding:13px 14px}.auth-divider{color:#91a2ae;align-items:center;gap:10px;font-size:9px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--line);flex:1;height:1px}.google-auth-button{color:#38566a;background:#fff;border:1px solid #ccdce5;border-radius:10px;height:47px;font-weight:700}.google-auth-button:hover{background:#f5fbfe}.google-auth-button:disabled{opacity:.55}.teacher-description{min-height:210px;color:var(--ink);white-space:pre-wrap;word-break:break-word;background:#f5fbfe;border:1px solid #cfe4ef;border-radius:14px;margin:9px 0 20px;padding:24px;font-size:14px;line-height:1.9}.submission-heading{margin:22px 0 10px}.submission-heading b{font-size:14px}.submission-heading p{color:var(--muted);margin:6px 0 0;font-size:10px}.message-image{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:12px;width:min(100%,280px);max-height:220px;margin-bottom:6px;display:block}.image-preview{background:#eff9fd;border:1px solid #b9dbe9;border-radius:10px;align-items:center;gap:9px;margin:10px 15px 0;padding:8px;display:flex}.image-preview img{object-fit:cover;border-radius:7px;width:44px;height:44px}.image-preview span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:10px;overflow:hidden}.image-preview button{width:27px;height:27px;color:var(--muted);background:#fff;border:0;border-radius:50%;place-items:center;display:grid}.image-attach{border:1px solid var(--line);width:45px;height:48px;color:var(--green);cursor:pointer;background:#f3fafe;border-radius:10px;flex:none;place-items:center;display:grid}.image-attach:hover{background:#e4f4fb}.image-attach input{opacity:0;width:1px;height:1px;position:absolute}.chat-file-error{color:#ae4337;margin:8px 15px 0;font-size:10px}.chat-input button:disabled{cursor:not-allowed;opacity:.5}.image-attach:has(input:disabled){cursor:not-allowed;opacity:.5}.chat-input textarea:disabled{background:#f3f5f6}.message.loading p{color:#68808d}.message p{white-space:pre-wrap;overflow-wrap:anywhere}.file-drop.is-dragging{background:#dff3fb;border-color:#1686b8;box-shadow:0 0 0 4px #1686b81a}.chat-panel{overflow:hidden}.chat-drop-overlay{z-index:5;color:#0875a4;pointer-events:none;background:#ebf8fdf0;border:2px dashed #1686b8;border-radius:15px;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}.chat-drop-overlay svg{width:34px;height:34px}.forgot-password{align-self:flex-end;margin-top:-8px;padding:0;font-size:11px}.status-filters{gap:8px;display:flex}.student-avatar.correct{color:#fff;background:#15803d}.student-avatar.wrong{color:#fff;background:#dc2626}.student-avatar.none{color:#fff;background:#9ca3af}.file-drop{position:relative}.file-remove{width:26px;height:26px;color:var(--muted);background:#fff;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:10px;right:10px;box-shadow:0 1px 4px #0000001f}.file-remove:hover{color:#ae4337}.file-drop.is-locked{cursor:default}.secondary{border:1px solid var(--green);color:var(--green);background:#fff;border-radius:10px;justify-content:center;align-items:center;gap:9px;width:100%;margin-top:15px;padding:12px 18px;font-weight:800;display:inline-flex}.secondary:hover{background:var(--mint)}.secondary:disabled{opacity:.6;cursor:not-allowed}.pop-menu button.danger{color:#ae4337}.pop-menu button.danger:hover{background:#fae4e1}
