:root{font-family:Inter,Pretendard,"Noto Sans KR",system-ui,sans-serif;color:#201d1a;background:#f5f3ef;line-height:1.55}*{box-sizing:border-box}body{margin:0}.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:#211b17;color:white;padding:28px 20px;display:flex;flex-direction:column;gap:32px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;border-radius:14px;background:#e7742d;display:grid;place-items:center;font-size:22px;font-weight:800}.brand span{display:block;color:#bdb5ae;font-size:12px}.sidebar nav{display:grid;gap:8px}.nav-button{border:0;background:transparent;color:#cfc8c1;text-align:left;padding:12px 14px;border-radius:10px;font-size:15px;cursor:pointer}.nav-button.active,.nav-button:hover{background:#3a302a;color:white}.sidebar-note{margin-top:auto;color:#a99f97;font-size:12px;border-top:1px solid #413731;padding-top:18px}main{padding:34px;max-width:1500px;width:100%;margin:auto}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.topbar h1{margin:2px 0;font-size:28px}.eyebrow{font-size:11px;letter-spacing:.14em;color:#9a6a4b;font-weight:800;margin:0}.status{font-size:12px;padding:8px 12px;border-radius:999px;background:#e8e3dc}.status.ok{background:#dceede;color:#276333}.view{display:none}.view.active{display:block}.card{background:white;border:1px solid #e8e2dc;border-radius:18px;padding:22px;box-shadow:0 9px 30px rgba(51,39,30,.04)}.hero{display:flex;justify-content:space-between;align-items:end;gap:30px;padding:34px}.hero h2{font-size:34px;max-width:720px;margin:14px 0 10px;line-height:1.25}.hero p{color:#6b635d;max-width:760px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.pill{display:inline-block;background:#fff0e5;color:#a74b13;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800}.grid{display:grid;gap:18px;margin-top:18px}.three{grid-template-columns:repeat(3,1fr)}.four{grid-template-columns:repeat(4,1fr)}.step{font-weight:900;color:#e7742d}.card h2,.card h3{margin:8px 0}.card p{color:#706861}.primary,.secondary{border:0;border-radius:11px;padding:11px 16px;font-weight:800;cursor:pointer}.primary{background:#e7742d;color:white}.secondary{background:#eee9e3;color:#3e342e}.small{padding:8px 11px}.full{width:100%;margin-top:12px}.metric strong{display:block;font-size:30px;margin:6px 0}.metric span,.metric small{color:#716961}.teacher-grid{grid-template-columns:2fr 1fr}.section-head{display:flex;justify-content:space-between;align-items:center}.student-list{display:grid;margin-top:12px}.student-row{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:12px;align-items:center;padding:13px 4px;border-bottom:1px solid #eee8e2}.student-row:last-child{border-bottom:0}.tag{font-size:11px;background:#f1eee9;border-radius:999px;padding:4px 8px;width:max-content}label{display:grid;gap:7px;font-size:13px;font-weight:700;margin-top:16px}select{width:100%;padding:11px;border:1px solid #ddd4cd;border-radius:10px;background:white}.form-message{font-size:13px;color:#347044}.student-header{display:flex;justify-content:space-between;align-items:center}.progress-ring{width:100px;height:100px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#e7742d 40%,#eee9e3 0);position:relative}.progress-ring:after{content:"";position:absolute;inset:10px;border-radius:50%;background:white}.progress-ring strong,.progress-ring span{z-index:1;position:absolute}.progress-ring strong{margin-top:-16px}.progress-ring span{margin-top:20px;font-size:11px;color:#756c65}.student-grid{grid-template-columns:1.3fr .8fr}.video-placeholder{height:270px;border-radius:14px;background:linear-gradient(135deg,#2f2823,#675247);color:white;display:grid;place-items:center;margin-top:18px}.todo-item{display:flex;gap:10px;padding:12px 0;border-bottom:1px solid #eee8e2}.todo-item input{accent-color:#e7742d}.timer{margin-top:22px;padding:18px;background:#f7f4f0;border-radius:14px;text-align:center}.timer strong{display:block;font-size:34px;margin:6px} @media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;padding:16px}.sidebar nav{grid-template-columns:repeat(3,1fr)}.sidebar-note{display:none}main{padding:18px}.three,.four,.teacher-grid,.student-grid{grid-template-columns:1fr}.hero{align-items:start;flex-direction:column}.hero h2{font-size:27px}.student-header{align-items:flex-start}.progress-ring{width:82px;height:82px}}
.status-group{display:flex;gap:8px}.dashboard-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.dashboard-toolbar h2{margin:4px 0 0}.date-control{display:flex;align-items:center;gap:10px;margin:0}.date-control input{padding:10px 12px;border:1px solid #ddd4cd;border-radius:10px;background:#fff;font:inherit}.five{grid-template-columns:repeat(5,1fr)}.schedule-card{margin-top:18px}.schedule-list{display:grid;gap:10px;margin-top:16px}.student-card{width:100%;border:1px solid #ebe3dc;background:#fff;border-radius:15px;padding:14px;display:grid;grid-template-columns:90px 1fr 180px;gap:18px;align-items:center;text-align:left;cursor:pointer;color:inherit}.student-card:hover{border-color:#e7742d;box-shadow:0 8px 22px rgba(70,48,32,.08);transform:translateY(-1px)}.student-time{display:grid;padding-right:15px;border-right:1px solid #eee7e0}.student-time strong{font-size:21px}.student-time span{color:#81776f;font-size:13px}.student-title{display:flex;gap:10px;align-items:baseline}.student-title strong{font-size:18px}.student-title span{color:#746a63;font-size:13px}.student-main p{margin:3px 0 8px}.mini-progress{height:7px;background:#eee9e3;border-radius:99px;overflow:hidden;margin:7px 0}.mini-progress span{display:block;height:100%;background:#e7742d;border-radius:99px}.student-status{display:grid;justify-items:end;gap:5px}.student-status strong{font-size:14px}.student-status small{color:#7b7169}.attendance{font-size:11px;border-radius:99px;padding:4px 9px;background:#ece8e3}.attendance.present,.attendance.late{background:#dceede;color:#276333}.attendance.checked_out{background:#e5e8ef;color:#44506a}.empty-state{padding:35px;text-align:center;color:#756c65;background:#faf8f5;border-radius:14px}.empty-state.error{color:#9c352d;background:#fff0ed}.detail-panel{margin-top:18px}.hidden{display:none!important}.student-profile{display:grid;grid-template-columns:70px 1fr;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid #eee7e0}.profile-avatar{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:#fff0e5;color:#b85012;font-size:24px;font-weight:900}.student-profile h3{margin:0}.student-profile p{margin:3px 0}.schedule-chips{display:flex;gap:6px;flex-wrap:wrap}.schedule-chip{font-size:11px;padding:4px 8px;background:#f1ede8;border-radius:99px}.detail-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:22px;margin-top:20px}.detail-items{display:grid;gap:10px}.detail-item{border:1px solid #eee7e0;padding:13px;border-radius:12px;display:grid;gap:3px}.detail-item span,.detail-item small{color:#756c65}.question-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}.question-list li{padding:12px;background:#f8f5f1;border-radius:11px;display:grid}.question-list span{font-size:12px;color:#786e67}.detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.demo-note{font-size:12px}.book-grid{margin-top:18px}.book-card{min-height:250px}.book-cover{width:120px;height:150px;border-radius:5px 13px 13px 5px;background:linear-gradient(135deg,#e7742d,#9c471d);color:#fff;display:grid;place-items:center;font-size:28px;font-weight:900;box-shadow:8px 8px 18px rgba(42,29,21,.14)}.book-card.muted{opacity:.65}.progress-bar{height:9px;border-radius:99px;background:#eee8e1;overflow:hidden;margin:16px 0 7px}.progress-bar span{display:block;height:100%;background:#e7742d}
@media(max-width:1100px){.five{grid-template-columns:repeat(2,1fr)}.student-card{grid-template-columns:75px 1fr}.student-status{grid-column:2;justify-items:start;grid-template-columns:repeat(3,max-content);align-items:center}.detail-grid{grid-template-columns:1fr}}
@media(max-width:700px){.dashboard-toolbar{align-items:flex-start;gap:14px;flex-direction:column}.five{grid-template-columns:1fr}.student-card{grid-template-columns:1fr}.student-time{border-right:0;border-bottom:1px solid #eee7e0;padding:0 0 8px;display:flex;gap:10px;align-items:baseline}.student-status{grid-column:auto;grid-template-columns:1fr;justify-items:start}.status-group{flex-direction:column}.detail-actions{display:grid}.detail-actions button{width:100%}}
.management-section{margin-top:22px;padding-top:18px;border-top:1px solid #eee7e0}.management-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:22px}.action-list{display:grid;gap:10px}.action-card{border:1px solid #eadfd6;border-radius:13px;padding:13px;display:flex;justify-content:space-between;gap:16px;align-items:center}.action-card p{margin:3px 0}.action-buttons{display:flex;gap:7px;flex-shrink:0}input,textarea{width:100%;padding:11px;border:1px solid #ddd4cd;border-radius:10px;background:#fff;font:inherit}textarea{resize:vertical}.compact{padding:18px}.toast{position:fixed;right:24px;bottom:24px;background:#276333;color:white;padding:12px 17px;border-radius:11px;box-shadow:0 10px 30px rgba(0,0,0,.18);opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s;z-index:50}.toast.show{opacity:1;transform:none}.toast.error{background:#9c352d}button:disabled{opacity:.5;cursor:not-allowed}.question-list a{color:#b85012}@media(max-width:900px){.management-grid{grid-template-columns:1fr}.action-card{align-items:flex-start;flex-direction:column}}


.textbook-management-layout{display:grid;grid-template-columns:360px 1fr;gap:18px}.textbook-library-panel{align-self:start;position:sticky;top:18px}.textbook-list{display:grid;gap:10px;margin-top:15px}.textbook-list-item{border:1px solid #e9e1da;background:#fff;border-radius:14px;padding:14px;text-align:left;cursor:pointer;color:inherit}.textbook-list-item:hover,.textbook-list-item.active{border-color:#e7742d;background:#fffaf6}.textbook-list-item h3{margin:2px 0 5px}.textbook-list-meta{display:flex;gap:7px;flex-wrap:wrap;color:#776d65;font-size:12px}.textbook-status{font-size:10px;border-radius:99px;padding:3px 7px;background:#eee9e3}.textbook-status.published{background:#dceede;color:#276333}.textbook-status.archived{background:#e7e7e7;color:#666}.form-grid{display:grid;gap:14px;margin-top:16px}.two-column{grid-template-columns:1fr 1fr}.span-2{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end}.curriculum-toolbar{display:flex;justify-content:space-between;align-items:center;margin-top:28px;padding-top:20px;border-top:1px solid #eee7e0}.curriculum-tree{display:grid;gap:14px;margin-top:14px}.chapter-block{border:1px solid #eadfd6;border-radius:15px;overflow:hidden}.chapter-header{padding:14px 16px;background:#faf7f3;display:flex;justify-content:space-between;gap:12px;align-items:center}.chapter-title-group{display:flex;align-items:center;gap:10px}.order-badge{width:27px;height:27px;border-radius:8px;background:#e7742d;color:white;display:grid;place-items:center;font-size:12px;font-weight:900}.lesson-list{padding:12px;display:grid;gap:10px}.lesson-block{border:1px solid #eee7e0;border-radius:13px;padding:13px}.lesson-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.lesson-header h4{margin:0}.lesson-meta{font-size:12px;color:#776d65}.inline-actions{display:flex;gap:6px;flex-wrap:wrap}.content-list,.quiz-list{display:grid;gap:7px;margin-top:10px}.content-row,.quiz-box{background:#f8f5f1;border-radius:10px;padding:10px 12px}.content-row{display:flex;justify-content:space-between;gap:12px}.content-type{font-size:10px;border-radius:99px;background:#fff0e5;color:#a74b13;padding:3px 7px;height:max-content}.question-row{display:grid;grid-template-columns:1fr auto;gap:10px;padding:8px 0;border-top:1px solid #ebe4dd}.question-row:first-child{border-top:0}.empty-inline{font-size:12px;color:#897e75;padding:8px}.modal-backdrop{position:fixed;inset:0;background:rgba(25,20,17,.48);display:grid;place-items:center;padding:20px;z-index:80}.modal-card{width:min(620px,100%);max-height:90vh;overflow:auto;background:white;border-radius:18px;padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.24)}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h3{margin:0}.icon-button{border:0;background:#eee9e3;width:34px;height:34px;border-radius:10px;cursor:pointer}.helper-text{font-size:12px;color:#7d736b}.danger-text{color:#a03b32}.url-preview{font-size:11px;color:#a74b13;word-break:break-all}
@media(max-width:1050px){.textbook-management-layout{grid-template-columns:1fr}.textbook-library-panel{position:static}.two-column{grid-template-columns:1fr}.span-2{grid-column:auto}}
.toolbar-actions{display:flex;gap:10px;flex-wrap:wrap}.preview-student-select{margin:0;min-width:220px}.student-course-panel{margin-top:18px}.book-card{cursor:pointer;text-align:left;border:1px solid #e8e2dc}.book-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(51,39,30,.08)}.book-card button{margin-top:14px}.book-cover{height:150px;border-radius:13px;background:linear-gradient(145deg,#e7742d,#a94d19);color:#fff;display:grid;place-items:center;font-size:28px;font-weight:900;margin-bottom:16px}.book-status{display:flex;justify-content:space-between;gap:10px;margin-top:10px;font-size:12px;color:#716961}.course-layout{display:grid;grid-template-columns:minmax(260px,360px) 1fr;gap:18px;margin-top:18px}.course-outline{border:1px solid #e8e2dc;border-radius:14px;padding:14px;max-height:680px;overflow:auto}.outline-chapter{margin-bottom:18px}.outline-chapter h4{margin:4px 0 8px}.lesson-nav{width:100%;border:0;background:#f5f2ee;border-radius:10px;padding:11px;text-align:left;margin:5px 0;cursor:pointer;display:flex;justify-content:space-between;gap:8px}.lesson-nav.active{outline:2px solid #e7742d;background:#fff4ec}.lesson-nav.locked{opacity:.55;cursor:not-allowed}.lesson-workspace{border:1px solid #e8e2dc;border-radius:14px;padding:22px;min-height:420px}.content-tile{border:1px solid #eee7e1;border-radius:12px;padding:14px;margin:10px 0}.content-tile a{color:#bd5518;font-weight:800}.video-embed{position:relative;padding-top:56.25%;border-radius:12px;overflow:hidden;background:#171717;margin-top:10px}.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.quiz-form{margin-top:18px;border-top:1px solid #eee7e1;padding-top:16px}.quiz-question{padding:14px 0;border-bottom:1px solid #eee7e1}.quiz-question input{width:100%;padding:11px;border:1px solid #ddd4cd;border-radius:10px;margin-top:8px}.lesson-state-banner{padding:11px 14px;border-radius:10px;background:#f1eee9;margin:12px 0}.lesson-state-banner.pending{background:#fff1ca;color:#765500}.lesson-state-banner.completed{background:#dceede;color:#276333}.score-result{padding:14px;border-radius:12px;background:#f6f2ee;margin-top:12px}.score-result.pass{background:#e3f2e5;color:#255f30}.score-result.fail{background:#fde7e2;color:#8b2e1e}@media(max-width:900px){.course-layout{grid-template-columns:1fr}.preview-student-select{width:100%}}

.workspace-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;padding:14px 18px}.workspace-toolbar-actions{display:flex;gap:8px}.student-workspace-shell{padding:0;overflow:hidden}.workspace-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:28px;background:linear-gradient(135deg,#fff8f2,#ffffff);border-bottom:1px solid #eee4dc}.workspace-profile{display:flex;align-items:center;gap:18px}.profile-avatar.large{width:72px;height:72px;border-radius:22px;font-size:30px}.workspace-profile h2{font-size:28px;margin:3px 0}.workspace-profile h2 small{font-size:15px;color:#776d65}.workspace-attendance{min-width:190px;display:grid;justify-items:end;gap:6px}.workspace-attendance strong{font-size:24px}.workspace-attendance small{color:#776d65}.workspace-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#eee7e0;border-bottom:1px solid #eee7e0}.workspace-metrics article{background:#fff;padding:18px 22px;display:grid;gap:3px}.workspace-metrics span{font-size:12px;color:#746a63}.workspace-metrics strong{font-size:23px}.workspace-section{padding:22px 26px;border-bottom:1px solid #eee7e0}.workspace-section:last-child{border-bottom:0}.workspace-columns{display:grid;grid-template-columns:1fr 1fr}.workspace-columns>.workspace-section{border-right:1px solid #eee7e0}.workspace-columns>.workspace-section:last-child{border-right:0}.workspace-books{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}.workspace-book{border:1px solid #e8dfd7;background:#fff;border-radius:14px;padding:13px;display:grid;grid-template-columns:46px 1fr;gap:12px;text-align:left;cursor:pointer;color:inherit}.workspace-book:hover{border-color:#e7742d;background:#fffaf6}.workspace-book-spine{height:78px;border-radius:5px 10px 10px 5px;background:linear-gradient(145deg,#e7742d,#9e471a);color:#fff;display:grid;place-items:center;font-weight:900}.workspace-book strong,.workspace-book span,.workspace-book small{display:block}.workspace-book span{font-size:12px;color:#756c65;margin:3px 0}.workspace-section label{display:grid;gap:6px;margin:10px 0}.full{width:100%}@media(max-width:1000px){.workspace-books{grid-template-columns:1fr 1fr}.workspace-columns{grid-template-columns:1fr}.workspace-columns>.workspace-section{border-right:0}.workspace-metrics{grid-template-columns:1fr 1fr}}@media(max-width:700px){.workspace-hero{align-items:flex-start;flex-direction:column}.workspace-attendance{justify-items:start}.workspace-books,.workspace-metrics{grid-template-columns:1fr}.workspace-toolbar{align-items:stretch;flex-direction:column;gap:10px}.workspace-toolbar-actions button{width:100%}}
/* Kairos Workspace v0.8 */
.today-class-panel{padding:22px 26px;border-bottom:1px solid #eee7e0;background:#fffdf9}.today-class-head{display:flex;justify-content:space-between;align-items:center}.today-class-head h3{margin:2px 0}.today-class-head>strong{font-size:22px}.today-progress{height:8px;border-radius:99px;background:#eee9e3;overflow:hidden;margin:12px 0 16px}.today-progress span{display:block;height:100%;background:#e7742d}.today-task-list{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.today-task{border:1px solid #e8dfd7;border-radius:12px;padding:12px;display:grid;grid-template-columns:auto 1fr;gap:7px 9px;align-items:center;cursor:pointer}.today-task input{width:auto}.today-task .task-type{grid-column:2;font-size:10px;color:#a84d15;font-weight:900}.today-task strong{grid-column:2;font-size:13px}.today-task.done{background:#edf7ef;border-color:#cce5d0}.today-task.done strong{text-decoration:line-through;color:#68816c}.bookshelf-section{background:#fff}.workspace-operating-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;min-height:560px}.workspace-main{min-width:0;border-right:1px solid #eee7e0}.workspace-tabs{display:flex;gap:3px;padding:12px 18px;border-bottom:1px solid #eee7e0;overflow:auto}.workspace-tabs button{border:0;background:transparent;padding:10px 14px;border-radius:9px;white-space:nowrap;font-weight:800;color:#776d65;cursor:pointer}.workspace-tabs button.active{background:#fff0e5;color:#a64b16}.workspace-tab-panel{display:none;padding:22px 26px}.workspace-tab-panel.active{display:block}.workspace-tab-panel h3{margin-top:0}.workspace-columns.inside{gap:22px;margin-top:18px}.workspace-columns.inside>section{border:1px solid #eee7e0;border-radius:13px;padding:16px}.feedback-form-grid{display:grid;gap:12px;margin-bottom:24px}.workspace-timeline{background:#faf8f5;padding:20px;max-height:760px;overflow:auto}.timeline-head{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:15px;border-bottom:1px solid #e7ded6}.timeline-head h3{margin:2px 0}.timeline-head span{font-size:11px;color:#776d65}.timeline-list{display:grid;padding-top:12px}.timeline-event{display:grid;grid-template-columns:30px 1fr;gap:10px;position:relative;padding:8px 0 14px}.timeline-event:after{content:"";position:absolute;left:14px;top:38px;bottom:-4px;width:1px;background:#ddd4cd}.timeline-event:last-child:after{display:none}.timeline-dot{width:28px;height:28px;border-radius:50%;background:#fff;border:1px solid #dfd5cd;display:grid;place-items:center;font-size:12px;font-weight:900;z-index:1}.timeline-event time{display:block;font-size:11px;color:#a74b13;font-weight:800}.timeline-event strong{display:block;margin:2px 0;font-size:13px}.timeline-event p{font-size:12px;margin:2px 0;color:#756c65}.student-workspace-shell{border:1px solid #e7ded6}@media(max-width:1100px){.today-task-list{grid-template-columns:1fr 1fr}.workspace-operating-layout{grid-template-columns:1fr}.workspace-main{border-right:0}.workspace-timeline{border-top:1px solid #eee7e0;max-height:none}}@media(max-width:700px){.today-task-list{grid-template-columns:1fr}.workspace-tabs{padding:9px}.workspace-tab-panel{padding:18px}.workspace-timeline{padding:16px}}

/* v0.9 communication */
.chat-thread-list{display:grid;gap:16px}.chat-thread{border:1px solid var(--line);border-radius:18px;padding:16px;background:#fff}.chat-thread>header,.note-card header,.homework-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.chat-thread header small,.note-card small{display:block;color:var(--muted);margin-top:4px}.chat-messages{display:grid;gap:10px;padding:16px 0}.chat-bubble{max-width:78%;padding:12px 14px;border-radius:16px;background:#f1ece7}.chat-bubble.student{justify-self:start}.chat-bubble.teacher{justify-self:end;background:#fff0e6}.chat-bubble span{font-size:12px;font-weight:700}.chat-bubble p{margin:5px 0}.chat-bubble small{color:var(--muted)}.chat-reply{display:flex;gap:8px}.chat-reply input{flex:1}.homework-row,.note-card{border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:10px}.homework-row p,.note-card p{margin:8px 0}.next-action{background:#fff4ea;border-radius:12px;padding:10px;margin-top:10px}.next-action strong{margin-right:8px}@media(max-width:760px){.chat-bubble{max-width:92%}.homework-row{flex-direction:column}}
/* v1.0 authentication */
.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,#fff5ec,#f4f1ed 55%,#ece7e1)}
.login-card{width:min(440px,100%);background:#fff;border:1px solid #e5ddd6;border-radius:24px;padding:34px;box-shadow:0 28px 80px rgba(47,35,27,.14)}
.login-brand{color:#201d1a;margin-bottom:30px}.login-card h1{margin:8px 0;font-size:30px}.login-card>p{color:#746b64}.login-form{display:grid;gap:14px;margin-top:24px}.login-form label{display:grid;gap:7px;font-weight:800}.login-form input{width:100%;padding:13px;border:1px solid #dcd2ca;border-radius:12px;font-size:15px}.login-form .primary{margin-top:4px}.login-error{min-height:22px;color:#a13224;font-size:13px}.demo-credentials{margin-top:18px;border-top:1px solid #eee7e1;padding-top:14px;color:#6e655f;font-size:13px}.demo-credentials p{margin:7px 0}.user-chip{font-size:12px;padding:8px 12px;border-radius:999px;background:#fff0e5;color:#9b4717;font-weight:800}.status-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hidden{display:none!important}
@media(max-width:760px){.login-card{padding:25px}.status-group .status{display:none}.topbar{align-items:flex-start;gap:14px}.user-chip{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* Step 11 curriculum engine */
.course-overview{padding:18px;border-radius:16px;background:#2b221d;color:#fff;margin-bottom:18px}.course-overview span,.course-overview small{display:block;opacity:.72}.course-overview strong{display:block;font-size:1.05rem;margin:5px 0}.lesson-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.lesson-progress-ring{min-width:88px;padding:14px;border:1px solid #eadfd6;border-radius:18px;text-align:center;background:#fff}.lesson-progress-ring strong{display:block;font-size:1.35rem}.lesson-progress-ring span{font-size:.78rem;color:#766b63}.curriculum-progress{height:7px;background:#eee7e1;border-radius:999px;overflow:hidden;margin:14px 0 22px}.curriculum-progress span{display:block;height:100%;background:#ed7428;border-radius:inherit}.content-tile{border:1px solid #e7ddd5;border-radius:18px;padding:18px;margin:14px 0;background:#fff}.content-tile.content-done{border-color:#b9dfbf;background:#fbfffb}.content-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.content-header strong{display:block;margin-top:4px}.content-kind{font-size:.76rem;font-weight:700;color:#ad5a2f}.content-required{font-size:.74rem;padding:5px 9px;border-radius:999px;background:#f2ece7;color:#695e57}.content-actions{display:flex;justify-content:flex-end;margin-top:14px}.completed-badge{color:#2e7640;font-weight:700}.secondary.small{padding:8px 12px;font-size:.84rem}.content-text{white-space:pre-wrap;line-height:1.7;padding:14px;background:#f8f5f2;border-radius:12px}.resource-link{display:inline-flex;margin-top:8px;font-weight:700;color:#c65e20}.primary:disabled{opacity:.55;cursor:not-allowed}


/* Step 12: student account management */
.account-management-card{padding:24px}.account-toolbar{display:flex;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:20px}.account-toolbar label{min-width:160px}.account-toolbar .account-search{flex:1;min-width:260px}.account-toolbar .tag{margin-left:auto}.account-list{display:grid;gap:12px}.account-row{display:grid;grid-template-columns:minmax(300px,1fr) minmax(180px,.45fr) auto;align-items:center;gap:20px;padding:18px;border:1px solid var(--line,#e8ded4);border-radius:18px;background:#fff}.account-identity{display:flex;align-items:center;gap:14px}.account-name-line{display:flex;align-items:center;gap:9px}.account-identity p,.account-identity small{display:block;margin:4px 0 0;color:#756b64}.account-meta{display:grid;gap:5px}.account-meta span{font-size:12px;color:#8b817a}.account-meta strong{font-size:14px}.account-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.account-badge{font-size:11px;font-weight:800;padding:5px 8px;border-radius:999px;background:#edf6ea;color:#35743b}.account-badge.paused{background:#fff4db;color:#8a6514}.account-badge.withdrawn,.account-badge.disabled{background:#f9e6e3;color:#9a382e}.account-badge.graduated{background:#e8effb;color:#325c96}.danger{background:#a63d31;color:white;border:0}.danger:hover{filter:brightness(.94)}
@media(max-width:900px){.account-row{grid-template-columns:1fr}.account-actions{justify-content:flex-start}.account-meta{border-top:1px solid #eee3da;padding-top:10px}}

/* Step 13 · learning engine */
.learning-pipeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0}.learning-pipeline span{padding:9px 10px;border-radius:12px;background:#f2eee9;color:#796f67;font-size:12px;font-weight:700;text-align:center}.learning-pipeline span.done{background:#e1f4e5;color:#21653a}.learning-pipeline span.pending{background:#fff0d7;color:#9b5d00}.progress-bar.compact{height:7px;margin:10px 0 6px}@media(max-width:760px){.learning-pipeline{grid-template-columns:repeat(2,minmax(0,1fr))}}
.quiz-history{margin-top:16px;padding-top:12px;border-top:1px solid var(--line,#e5e7eb)}
.quiz-history>div{display:flex;justify-content:space-between;padding:7px 0;font-size:.9rem}
.pass-text{color:#15803d}.fail-text{color:#b91c1c}
.review-attempts{display:grid;gap:18px;max-height:65vh;overflow:auto}
.review-attempt{padding:14px;border:1px solid #e5e7eb;border-radius:14px;background:#fafafa}
.review-answer{margin-top:10px;padding:12px;border-radius:10px;background:white;border-left:4px solid #94a3b8}
.review-answer.correct{border-left-color:#16a34a}.review-answer.wrong{border-left-color:#dc2626}

/* Compact weekly timetable */
body{overflow-x:hidden}.app-shell{grid-template-columns:250px minmax(0,1fr);max-width:100vw}main{min-width:0}.view#schedule-board{min-width:0;max-width:100%;overflow:hidden}.schedule-week-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;padding:7px;margin-bottom:14px}.schedule-week-tabs button{border:0;border-radius:10px;background:#f3f6fb;color:#5b6980;padding:8px;cursor:pointer}.schedule-week-tabs button strong,.schedule-week-tabs button span{display:block}.schedule-week-tabs button span{font-size:10px}.schedule-week-tabs button.active{background:#2563eb;color:#fff}.timetable-card{min-width:0;max-width:100%;overflow:hidden}.timetable-shell{width:100%;max-width:100%;overflow:auto;margin-top:10px;border-radius:10px}.timetable-ruler{width:46px;flex:0 0 46px}.timetable-ruler header,.timetable-column header{height:46px;padding:4px 2px}.timetable-ruler header{font-size:10px}.timetable-ruler span{right:4px;font-size:8px}.timetable-ruler span:after{left:32px}.timetable-columns{min-width:0}.timetable-column{width:31px;flex:0 0 31px}.timetable-column header{gap:0;text-align:center;overflow:hidden}.timetable-column header strong{font-size:8px;line-height:1.05;word-break:keep-all;letter-spacing:-1px}.timetable-column header span,.timetable-column header small{font-size:7px;line-height:1}.timetable-block{left:1px;right:1px;padding:2px 1px;border-radius:4px;align-items:center;justify-content:center;gap:1px}.timetable-block strong{font-size:8px;line-height:1}.timetable-block span,.timetable-block small{font-size:7px;line-height:1}@media(max-width:900px){.app-shell{grid-template-columns:minmax(0,1fr)}.schedule-week-tabs{gap:3px}.schedule-week-tabs button{padding:7px 2px}}
.review-answer p{margin:5px 0}


/* Step 15 attendance engine */
.attendance-control-card,.schedule-management,.attendance-history{border:1px solid var(--line,#e8dfd7);border-radius:18px;padding:18px;margin:14px 0;background:#fff}
.attendance-control-card{display:flex;align-items:center;justify-content:space-between;gap:16px}
.attendance-control-card h4,.schedule-management h4,.attendance-history h4{margin:0 0 6px}.attendance-control-card p{margin:0;color:var(--muted,#796f68)}
.attendance-action-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.schedule-manage-row{display:grid;grid-template-columns:72px 120px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line,#eee)}
.schedule-manage-row:last-of-type{border-bottom:0}.schedule-manage-row small{color:var(--muted,#796f68)}.empty-state.compact{padding:16px}
@media(max-width:760px){.attendance-control-card{align-items:flex-start;flex-direction:column}.schedule-manage-row{grid-template-columns:60px 1fr auto}.schedule-manage-row small{grid-column:1/-1}}
.today-task-actions{display:flex;align-items:center;gap:8px}.today-task-actions strong{margin-left:8px}.today-task{position:relative}.task-delete{margin-left:auto;border:0;background:transparent;font-size:20px;line-height:1;color:#9a8174;cursor:pointer;padding:0 4px}.task-delete:hover{color:#b43b2e}


/* Step 17: shared today tasks */
.student-today-panel{margin-bottom:22px;padding:24px}
.student-today-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
.student-today-head h2{margin:3px 0 6px}.student-today-head p{margin:0;color:var(--muted)}
.student-today-head>strong{font-size:22px;background:#fff3e9;color:#a64a14;border-radius:999px;padding:8px 14px;white-space:nowrap}
.student-today-list{display:grid;gap:10px;margin-top:16px}
.student-today-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;border:1px solid var(--line);border-radius:16px;padding:14px 16px;background:#fff}
.student-today-row.done{opacity:.65;background:#f6faf5}.student-today-row.done strong{text-decoration:line-through}
.student-today-row small{display:block;color:var(--muted);margin-top:3px}.student-task-actions{display:flex;align-items:center;gap:9px}
.student-task-check{display:flex;align-items:center;gap:6px;font-weight:700;white-space:nowrap}.student-task-check input{width:18px;height:18px}
@media(max-width:760px){.student-today-row{grid-template-columns:auto 1fr}.student-task-actions{grid-column:1/-1;justify-content:flex-end}.student-today-head{align-items:center}}


/* Step 18: 학생 질문·피드백 커뮤니케이션 */
.student-communication-panel{margin-top:18px;padding:24px}
.student-communication-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px}
.student-communication-head h2{margin:4px 0 6px}
.student-communication-head p{margin:0;color:var(--muted,#746b64)}
.student-communication-actions{display:grid;justify-items:end;gap:12px}
.communication-summary{display:flex;gap:8px;flex-wrap:wrap}
.student-communication-tabs{display:flex;gap:8px;border-bottom:1px solid #ece5de;margin-bottom:16px}
.student-communication-tabs button{border:0;background:transparent;padding:12px 16px;font-weight:700;color:#746b64;cursor:pointer;border-bottom:3px solid transparent}
.student-communication-tabs button.active{color:#e96f25;border-bottom-color:#e96f25}
.student-communication-list{display:grid;gap:12px}
.communication-card{border:1px solid #e7ddd4;border-radius:16px;background:#fff;overflow:hidden}
.communication-card.unread{border-color:#ef9a63;box-shadow:0 0 0 2px rgba(239,126,55,.08)}
.communication-card summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;cursor:pointer}
.communication-card summary::-webkit-details-marker{display:none}
.communication-card summary>div{display:grid;gap:4px}
.communication-card summary strong{font-size:16px}
.communication-card summary small{color:#837970}
.communication-kind{font-size:12px;font-weight:800;color:#a85c2d;letter-spacing:.02em}
.unread-badge,.read-badge{white-space:nowrap;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}
.unread-badge{background:#fff0e6;color:#b94e17}
.read-badge{background:#f0f1ef;color:#6f746e}
.communication-body{border-top:1px solid #eee6df;padding:18px;background:#fdfbf9}
.communication-body>p{line-height:1.7;margin:0 0 12px}
.attachment-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.attachment-link,.attachment-chip{display:inline-flex;align-items:center;border-radius:10px;padding:8px 10px;background:#f2ece7;color:#6c3b1e;font-size:13px;text-decoration:none}
.student-message-list{display:grid;gap:10px;margin-bottom:14px}
.student-message{max-width:82%;padding:10px 12px;border-radius:14px;background:#f0ece8}
.student-message.mine{justify-self:end;background:#fff0e5}
.student-message.teacher{justify-self:start;background:#edf4ee}
.student-message small{color:#847970}
.student-message p{margin:5px 0 0;line-height:1.55}
.student-answer-attachments{display:grid;gap:9px;margin-top:10px}.student-answer-image{display:grid;width:min(100%,560px);padding:0;border:1px solid #cdd9ea;border-radius:12px;overflow:hidden;background:#fff;color:#28579f;cursor:zoom-in;text-align:center}.student-answer-image img{display:block;width:100%;height:auto;max-height:520px;object-fit:contain;background:#eef3f9}.student-answer-image span{padding:8px;font-size:12px;font-weight:800}.student-message.teacher:has(.student-answer-image){max-width:min(94%,620px)}
.student-question-reply{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}
.student-question-reply textarea{min-height:64px}
.feedback-lecture-panel{margin-bottom:18px}.feedback-library-tools{display:flex;align-items:center;gap:10px}.feedback-lecture-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:12px;margin-top:16px}.feedback-lecture-list.feedback-category-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.feedback-category-card{appearance:none;width:100%;min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border:1px solid var(--line,#dfe6f0);border-radius:15px;background:#fbfdff;color:var(--ink,#172033);text-align:left;cursor:pointer}.feedback-category-card:hover{border-color:#8fb2f8;background:#f4f8ff;transform:translateY(-1px)}.feedback-category-card strong{font-size:18px;line-height:1.35}.feedback-category-card span{flex-shrink:0;color:var(--muted,#68758a);font-weight:700}.feedback-lecture-list.feedback-title-list{display:block}.feedback-category-heading{display:flex;align-items:center;gap:12px;margin-bottom:12px}.feedback-category-heading h3{margin:0;font-size:20px}.feedback-title-row{border-bottom:1px solid var(--line,#dfe6f0)}.feedback-title-row:first-of-type{border-top:1px solid var(--line,#dfe6f0)}.feedback-title-row summary{padding:15px 6px;cursor:pointer;font-weight:700;list-style-position:inside}.feedback-title-row[open] summary{color:var(--primary,#2864dc)}.feedback-title-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:0 6px 14px 25px}.feedback-title-actions a{text-decoration:none}.feedback-lecture-card{display:flex;justify-content:space-between;gap:18px;border:1px solid var(--line,#dfe6f0);border-radius:15px;padding:16px;background:#fbfdff}.feedback-lecture-card h3{margin:4px 0}.feedback-lecture-card p{margin:4px 0 8px}.feedback-lecture-card small{color:var(--muted,#68758a)}.feedback-lecture-actions{display:flex;align-items:flex-start;gap:7px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.feedback-lecture-actions a{text-decoration:none}.attachment-chip.expired{background:#f1f3f6;color:#697386;border:1px solid #dfe3e8}.student-check-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;max-height:340px;overflow:auto}.student-check-list label{display:flex;align-items:center;gap:9px;margin:0;padding:10px;border:1px solid var(--line,#dfe6f0);border-radius:10px}.student-check-list input{width:auto}.question-image-picker{border:2px dashed #9bbcf5;border-radius:14px;padding:18px;background:#f5f8ff;transition:.15s}.question-image-picker.dragging{border-color:#2865de;background:#eaf1ff}.question-image-picker small{color:#65748b;font-weight:500}
.enhanced-chat-reply{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}.chat-answer-row{display:grid;grid-template-columns:1fr auto;gap:10px}.inline-image-drop{display:flex;align-items:center;gap:10px;margin:0;padding:12px 14px;border:2px dashed #a8c1eb;border-radius:12px;background:#f7faff;color:#28579f;cursor:pointer}.inline-image-drop.dragging{border-color:#2865de;background:#e9f1ff}.inline-image-drop input{width:auto}.inline-image-drop small{margin-left:auto;color:#68758a}.inline-lecture-assign{display:grid;grid-template-columns:1fr 1.2fr auto;gap:9px;margin-top:12px;padding:13px;border-radius:13px;background:#f5f8fd}.inline-lecture-assign input,.inline-lecture-assign select{margin:0}.chat-bubble .external-link-list{margin:8px 0}.chat-bubble .external-link-list a{display:inline-flex;padding:7px 10px;border-radius:9px;background:#eaf1ff;color:#245ab2;text-decoration:none}
.feedback-lecture-list.feedback-category-list{grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}.feedback-category-card{appearance:none;min-height:118px;display:grid;grid-template-rows:1fr auto;padding:0;overflow:hidden;text-align:initial;cursor:default}.feedback-category-card:hover{transform:none}.feedback-category-open{appearance:none;width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border:0;background:transparent;color:var(--ink,#172033);text-align:left;cursor:pointer}.feedback-category-open strong{font-size:18px;line-height:1.35}.feedback-category-open span{flex-shrink:0;color:var(--muted,#68758a);font-weight:700}.feedback-category-actions{display:flex;justify-content:flex-end;gap:6px;padding:0 12px 12px}.feedback-category-heading{flex-wrap:wrap}.feedback-category-heading .primary{margin-left:auto}
.danger-soft{background:#fff1ef!important;color:#a5483e!important;border:1px solid #f1cbc6!important}.danger-soft:hover{background:#fde6e2!important;filter:none!important}

/* v4.4 Kairos Clear Workspace — visual refresh only */
:root{--line:#e4e9f1;--muted:#6b778c;--blue:#2563eb;--blue-soft:#edf3ff;color:#172033;background:#f4f6fa;font-feature-settings:"cv01","ss03"}html{background:#f4f6fa}body{background:#f4f6fa;color:#172033;letter-spacing:-.012em}.app-shell{grid-template-columns:208px minmax(0,1fr);background:#f4f6fa}.sidebar{position:sticky;top:0;height:100vh;align-self:start;background:#fff;border-right:1px solid #e5e9f0;padding:22px 14px;gap:25px}.brand{padding:0 8px}.brand-mark{width:38px;height:38px;border-radius:12px;background:#2563eb;box-shadow:0 7px 18px rgba(37,99,235,.18)}.brand strong{font-size:15px}.brand span{font-size:11px;color:#8590a2}.sidebar nav{gap:4px}.nav-button{padding:10px 12px;border-radius:10px;color:#657188;font-size:14px;font-weight:700;transition:background .15s,color .15s}.nav-button.active,.nav-button:hover{background:#edf3ff;color:#1f5fd3}.sidebar-note{color:#8994a5;border-top:1px solid #e7ebf1;font-size:11px;line-height:1.6;padding:16px 8px 0}main{max-width:1600px;padding:24px 28px 36px}.topbar{margin-bottom:22px}.topbar h1{font-size:25px;font-weight:800;letter-spacing:-.035em}.topbar .eyebrow{margin-bottom:4px}.status-group{gap:7px}.status,.user-chip{padding:7px 10px;border-radius:999px;font-size:11px}.status{background:#eef2f7;color:#59677c}.status.ok{background:#e7f5eb;color:#2a6a3c}.user-chip{background:#fff1e8;color:#9b4a1a}.eyebrow{color:#3e70c8;font-size:10px;letter-spacing:.17em}.card{background:#fff;border:1px solid #e2e7ef;border-radius:16px;padding:20px;box-shadow:0 2px 8px rgba(28,45,75,.025)}.card h2,.card h3{letter-spacing:-.035em}.dashboard-toolbar{padding:23px 25px;margin-bottom:14px}.dashboard-toolbar h2{font-size:25px}.dashboard-toolbar p{margin:5px 0 0;color:#6b778c}.hub-tabs{position:sticky;top:10px;z-index:20;padding:7px 9px;margin-bottom:14px;border-radius:14px;box-shadow:0 6px 24px rgba(26,46,80,.07);display:flex;gap:3px;overflow-x:auto}.hub-tabs button{border:0;background:transparent;color:#69768a;padding:9px 13px;border-radius:9px;font-weight:800;white-space:nowrap;cursor:pointer}.hub-tabs button.active{background:#edf3ff;color:#1d5dd0}.grid{gap:12px;margin-top:14px}.metric.card,.metric-button{min-height:112px;padding:16px 17px}.metric strong{font-size:27px;line-height:1.2;margin:7px 0 3px}.metric span{font-size:12px}.metric small{font-size:11px}.metric-button.active-scope{border-color:#9bbcf6;background:#f5f8ff;box-shadow:0 0 0 2px rgba(37,99,235,.06)}.section-head{gap:18px}.section-head h2{font-size:21px}.primary,.secondary{border-radius:10px;padding:10px 14px;transition:background .15s,box-shadow .15s,transform .15s}.primary{background:#2563eb;color:#fff}.primary:hover{background:#1f59d1;box-shadow:0 6px 15px rgba(37,99,235,.16)}.secondary{background:#eef2f7;color:#34445c;border:1px solid transparent}.secondary:hover{background:#e5ebf3}.small,.secondary.small{padding:7px 10px;font-size:12px}.tag,.pill{background:#edf3ff;color:#285cae;padding:5px 9px}.schedule-card,.detail-panel,.question-inbox,.student-solution-panel{margin-top:14px}.student-gallery-toolbar{gap:7px}.student-gallery-toolbar input,.student-gallery-toolbar select,input,textarea,select,.date-control input{border-color:#d8e0eb;border-radius:10px;background:#fff;color:#172033;box-shadow:none}.student-gallery-toolbar input:focus,.student-gallery-toolbar select:focus,input:focus,textarea:focus,select:focus{outline:2px solid rgba(37,99,235,.16);border-color:#77a1ed}.empty-state{background:#f6f8fb;color:#718096;border-radius:12px}.v4-student-card{border-color:#e2e7ef;border-radius:12px;background:#fff;box-shadow:none}.v4-student-card:hover{border-color:#8cb0f1;box-shadow:0 7px 18px rgba(37,99,235,.08)}.gallery-card-stats span{background:#f3f6fb}.gallery-card-foot{border-color:#e9edf3}.attendance-board-grid{gap:8px}.attendance-student-card{border-radius:12px;box-shadow:none}.attendance-student-card:hover{box-shadow:0 6px 16px rgba(36,57,91,.07)}.attendance-student-card.present,.attendance-student-card.late{background:#edf4ff;border-color:#c6d9fa}.attendance-student-card.missing{background:#fff1f1;border-color:#f2cccc}.attendance-student-card.waiting{background:#fff8e9;border-color:#efdda9}.timetable-card{border-radius:16px}.schedule-week-tabs{padding:7px}.feedback-category-card,.textbook-list-item,.chapter-block,.lesson-block,.content-row,.quiz-box,.account-row,.enterprise-thread,.enterprise-attention-row,.enterprise-student-row,.homework-manager-row,.assignment-row{border-color:#e3e8f0;background:#fff;border-radius:12px}.feedback-category-card:hover,.textbook-list-item:hover,.textbook-list-item.active{border-color:#91b2ef;background:#f7faff}.feedback-category-open{padding:16px 18px}.feedback-category-open strong{font-size:16px}.feedback-category-actions{padding:0 10px 10px}.textbook-management-layout{gap:14px}.textbook-library-panel{top:82px}.chapter-header{background:#f7f9fc}.order-badge{background:#2563eb}.content-row,.quiz-box{background:#f7f9fc}.modal-backdrop{background:rgba(15,24,39,.48);backdrop-filter:blur(3px)}.modal-card{border:1px solid #e1e6ee;border-radius:18px;box-shadow:0 24px 80px rgba(14,27,48,.24)}.icon-button{background:#eef2f7;color:#34445c}.login-screen{background:radial-gradient(circle at 15% 10%,#eef4ff,#f5f7fb 48%,#edf1f7)}.login-card{border-color:#e2e7ef;border-radius:22px;box-shadow:0 26px 70px rgba(35,57,91,.12)}.workspace-hero{background:linear-gradient(135deg,#f1f6ff,#fff)}.workspace-tabs button.active{background:#edf3ff;color:#1d5dd0}.workspace-timeline{background:#f6f8fb}.book-cover,.workspace-book-spine{background:linear-gradient(145deg,#2563eb,#63a0f5)}.danger{border-radius:10px}.danger-soft{border-radius:10px!important}
.attendance-board-card.attendance-present-card{background:#edf4ff;border-color:#c6d9fa}.attendance-board-card.attendance-missing-card{background:#fff1f1;border-color:#f2cccc}.attendance-board-card.attendance-waiting-card{background:#fff8e9;border-color:#efdda9}
@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:14px 16px;gap:12px}.sidebar .brand{padding:0}.sidebar nav{display:flex;gap:5px;overflow-x:auto;padding-bottom:2px}.nav-button{flex:0 0 auto;text-align:center;padding:9px 12px}.sidebar-note{display:none}main{padding:16px}.topbar{align-items:flex-start}.hub-tabs{top:6px}.dashboard-toolbar{padding:19px}.five,.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){main{padding:12px}.topbar{margin-bottom:14px}.topbar h1{font-size:22px}.status-group{justify-content:flex-end}.dashboard-toolbar{padding:17px}.dashboard-toolbar h2{font-size:22px}.card{padding:16px}.metric.card,.metric-button{min-height:98px;padding:14px}.five,.four{grid-template-columns:1fr 1fr}.metric strong{font-size:23px}.section-head{align-items:flex-start}.feedback-lecture-list.feedback-category-list{grid-template-columns:1fr}.toolbar-actions{gap:6px}}
@media(max-width:760px){.student-communication-head{display:block}.student-communication-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}.communication-summary{margin-top:0}.communication-card summary{align-items:flex-start}.student-question-reply{grid-template-columns:1fr}.student-message{max-width:94%}#student-new-question{padding:10px 13px;white-space:nowrap}.student-header>div p{font-size:14px}.student-header h2{font-size:25px}.feedback-lecture-card{display:grid}.feedback-lecture-actions{justify-content:flex-end}.student-check-list{grid-template-columns:1fr}.chat-answer-row,.inline-lecture-assign{grid-template-columns:1fr}.inline-image-drop{align-items:flex-start;flex-wrap:wrap}.inline-image-drop small{margin-left:0;width:100%}}

.metric-button{font:inherit;color:inherit;text-align:left;cursor:pointer;width:100%;border:1px solid transparent}.metric-button:hover{border-color:#e7742d;transform:translateY(-1px)}
.question-inbox{margin-top:18px}.question-inbox-list{display:grid;gap:10px}.question-inbox-item{width:100%;display:grid;grid-template-columns:210px 1fr;gap:18px;padding:15px;border:1px solid #ebe3dc;border-radius:14px;background:#fff;text-align:left;color:inherit;cursor:pointer}.question-inbox-item:hover{border-color:#e7742d;background:#fffaf6}.question-inbox-item div{display:grid;gap:4px}.question-inbox-item span,.question-inbox-item small{color:#776e67;font-size:12px}.question-inbox-item p{margin:3px 0;color:#554c46}
@media(max-width:700px){.question-inbox-item{grid-template-columns:1fr}}
.student-notification-panel{margin-bottom:18px}.notification-list{display:grid;gap:10px;margin-top:16px}.notification-row{width:100%;display:grid;grid-template-columns:auto 1fr;gap:14px;text-align:left;border:1px solid #eadfd7;background:#fff;border-radius:16px;padding:14px;cursor:pointer}.notification-row.unread{border-color:#ed7a2c;background:#fff8f2;box-shadow:0 6px 18px rgba(237,122,44,.08)}.notification-row.read{opacity:.72}.notification-row p{margin:4px 0;color:#6f645d}.notification-row small{color:#95877f}

.curriculum-health{margin-top:12px;padding:10px;border-radius:12px;background:#f6f1eb;display:grid;gap:3px}.curriculum-health span{font-weight:800;color:#9a4e24}.curriculum-health small{font-size:12px}.outline-chapter h4 small{float:right;font-weight:700;color:#9a6a4d}


/* Step 21 weekly report */
.report-controls{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.report-controls label{display:grid;gap:6px;font-weight:700}.report-controls select,.report-controls input{min-width:170px}.report-hero{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.report-hero h2{margin:4px 0}.report-hero h2 small{font-size:.55em;color:var(--muted)}.report-metrics{margin-bottom:20px}.report-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr);gap:20px;margin-bottom:20px}.report-days{display:grid;gap:14px}.report-day{display:grid;grid-template-columns:110px minmax(120px,1fr) 90px 150px;gap:12px;align-items:center}.report-day>span,.report-day>small{color:var(--muted)}.report-bar{height:10px;background:#eee9e3;border-radius:999px;overflow:hidden}.report-bar i{display:block;height:100%;background:var(--accent);border-radius:999px}.report-summary-list{display:grid;gap:12px}.report-summary-list>div{display:flex;justify-content:space-between;padding:14px;border:1px solid var(--line);border-radius:14px}.report-books{display:grid;gap:12px}.report-book{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,2fr) 60px;gap:16px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:16px}.report-book div:first-child{display:grid;gap:4px}.report-book small{color:var(--muted)}.report-recent-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.report-recent-list li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.report-recent-list li span{color:var(--muted);text-align:right}.pass-text{color:#207a3c}.fail-text{color:#b34335}@media(max-width:900px){.report-grid{grid-template-columns:1fr}.report-day{grid-template-columns:85px 1fr 70px}.report-day small{grid-column:2/4}.report-book{grid-template-columns:1fr 70px}.report-book .mini-progress{grid-column:1/3;grid-row:2}.report-controls{width:100%}}


/* Step 22 curriculum package */
.textbook-readiness{margin:16px 0;padding:18px}.readiness-summary{display:grid;grid-template-columns:minmax(180px,1fr) 2fr auto;align-items:center;gap:18px}.readiness-summary>div:first-child{display:grid;gap:4px}.readiness-summary strong{font-size:28px}.readiness-lessons{display:grid;gap:8px;margin-top:14px}.readiness-row{display:flex;align-items:center;justify-content:space-between;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:#fff}.readiness-row small{display:block;margin-top:4px;color:var(--muted)}.readiness-row.ready{border-color:#b9dfc0;background:#f4fbf5}.ready-tag{background:#dff3e2!important;color:#236b35!important}@media(max-width:800px){.readiness-summary{grid-template-columns:1fr}.readiness-summary .tag{justify-self:start}}


/* Step 23 real-time operations center */
.operations-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.operations-toolbar h2{margin:4px 0}.operations-toolbar p{margin:0;color:var(--muted)}
.operations-metrics{margin-bottom:20px}.operations-shell{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(340px,.75fr);gap:20px;align-items:start}.operations-board,.operations-drawer{min-height:620px}.operations-drawer{position:sticky;top:20px;max-height:calc(100vh - 40px);overflow:auto}
.operations-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:18px}.operations-search{display:grid;gap:6px;min-width:240px;font-weight:700}.operations-filters{display:flex;gap:7px;flex:1;flex-wrap:wrap}.operations-filters button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;cursor:pointer;font-weight:700;color:var(--muted)}.operations-filters button.active{background:#2b211b;color:#fff;border-color:#2b211b}
.operations-list{display:grid;gap:12px}.operation-student-card{display:grid;grid-template-columns:110px minmax(0,1fr) 210px;gap:16px;align-items:center;width:100%;padding:16px;border:1px solid var(--line);border-left:6px solid #b7b0aa;border-radius:18px;background:#fff;text-align:left;color:inherit;cursor:pointer;transition:.15s}.operation-student-card:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(52,39,31,.08)}.operation-student-card.tone-active{border-left-color:#3b82f6}.operation-student-card.tone-success{border-left-color:#22a447}.operation-student-card.tone-warning{border-left-color:#ed8a25}.operation-student-card.tone-danger{border-left-color:#d84b3e}.operation-time{display:grid;gap:2px}.operation-time strong{font-size:22px}.operation-time span,.operation-time small{color:var(--muted)}.operation-profile p{margin:5px 0 10px;color:#625851}.operation-progress-row{display:grid;grid-template-columns:72px 1fr;gap:8px;align-items:center;margin-top:6px;font-size:12px;color:var(--muted)}.mini-progress.task span{background:#2d9c50}.operation-signals{display:grid;gap:7px;justify-items:end;text-align:right}.operation-state{font-weight:800;border-radius:999px;padding:7px 11px;background:#f1ede9}.operation-signals small{color:var(--muted)}
.drawer-head{display:flex;justify-content:space-between;gap:14px}.drawer-head h2{margin:4px 0}.drawer-head h2 small{font-size:.55em;color:var(--muted)}.drawer-head p{margin:0;color:var(--muted)}.drawer-status-row{display:flex;justify-content:space-between;align-items:center;margin:18px 0;padding:14px;border-radius:14px;background:#f7f3ef}.drawer-section{padding:16px 0;border-top:1px solid var(--line)}.drawer-section h3{margin:0 0 12px}.drawer-task-list{display:grid;gap:8px}.drawer-task{display:flex;gap:10px;padding:10px;border-radius:12px;background:#faf8f6}.drawer-task.done{opacity:.6}.drawer-task small{display:block;color:var(--muted);margin-top:2px}.drawer-alerts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.drawer-alerts button{display:grid;gap:5px;border:1px solid var(--line);background:#fff;border-radius:13px;padding:12px;cursor:pointer}.drawer-alerts strong{font-size:21px}.drawer-book{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line)}.drawer-book div{display:grid;gap:3px}.drawer-book small{color:var(--muted)}.drawer-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}
@media(max-width:1100px){.operations-shell{grid-template-columns:1fr}.operations-drawer{position:static;max-height:none;min-height:0}.operation-student-card{grid-template-columns:95px 1fr 170px}}
@media(max-width:720px){.operations-toolbar{align-items:flex-start;flex-direction:column}.operations-toolbar .date-control{width:100%}.operation-student-card{grid-template-columns:80px 1fr}.operation-signals{grid-column:1/-1;justify-items:start;text-align:left}.operations-controls{align-items:stretch}.operations-search{width:100%}.drawer-alerts{grid-template-columns:1fr}.drawer-actions{grid-template-columns:1fr}}

/* Step 24 attendance timer */
.drawer-attendance-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}.drawer-attendance-actions .ghost{background:transparent;border:1px solid var(--border);color:var(--muted)}
.operation-student-card.tone-danger .operation-time small{color:#b42318;font-weight:800}.operation-student-card.tone-warning .operation-time small{color:#b54708;font-weight:800}

/* Step 28: bulk curriculum assignment */
.assignment-modal{width:min(1040px,94vw);max-height:92vh;overflow:auto}
.assignment-modal .modal-head p{margin:.35rem 0 0;color:var(--muted)}
.assignment-selection-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.assignment-selection-grid>section{min-width:0;border:1px solid var(--line);border-radius:18px;padding:1rem;background:var(--surface-soft,#faf8f5)}
.selection-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.65rem}
.text-button{border:0;background:transparent;color:var(--accent);font-weight:700;cursor:pointer}
.selection-search{width:100%;margin-bottom:.65rem}
.selection-list{display:grid;gap:.5rem;max-height:330px;overflow:auto;padding-right:.25rem}
.selection-card{display:flex!important;align-items:flex-start;gap:.7rem;padding:.75rem;border:1px solid var(--line);border-radius:13px;background:#fff;cursor:pointer}
.selection-card:hover{border-color:var(--accent)}
.selection-card input{width:auto;margin-top:.2rem}
.selection-card span{display:grid;gap:.18rem}
.selection-card small{color:var(--muted);font-weight:500;line-height:1.35}
.selection-card.hidden{display:none!important}
.assignment-summary{display:grid;gap:.25rem;padding:1rem;border-radius:14px;background:#fff3e9;border:1px solid #f2c9a7}
.assignment-summary small{color:var(--muted)}
@media (max-width:760px){.assignment-selection-grid{grid-template-columns:1fr}.selection-list{max-height:230px}}
.youtube-connection-status{display:inline-flex;margin-top:8px;padding:6px 10px;border-radius:999px;background:#eef3fb;color:#54647b}.youtube-connection-status.connected{background:#e5f4ea;color:#23683b}.youtube-import-card{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;padding:12px;border:1px solid var(--line,#dfe6f0);border-radius:12px}.youtube-import-card img{width:120px;aspect-ratio:16/9;object-fit:cover;border-radius:8px}.youtube-import-card label{display:flex;gap:10px;align-items:flex-start}.youtube-import-card input{width:auto;margin-top:3px}.youtube-import-card small{display:block;color:var(--muted,#68758a);margin-top:4px}.youtube-video-list{display:grid;gap:9px;max-height:50vh;overflow:auto}.youtube-import-card.imported{opacity:.58}
/* Step 29: assignment lifecycle manager */
.assignment-manager-modal{width:min(1050px,94vw)}
.assignment-manager-controls{display:grid;grid-template-columns:1fr 180px;gap:12px;margin-bottom:14px}
.assignment-manager-list{display:grid;gap:10px;max-height:62vh;overflow:auto}
.assignment-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.3fr) 120px 150px auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.assignment-row small{display:block;color:var(--muted);margin-top:4px}.assignment-row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.assignment-status{font-weight:700}.assignment-status.paused{color:#a35b00}.assignment-status.cancelled{color:#b13228}.assignment-status.completed{color:#28733b}
@media(max-width:800px){.assignment-row{grid-template-columns:1fr}.assignment-row-actions{justify-content:flex-start}.assignment-manager-controls{grid-template-columns:1fr}}

.homework-bulk-modal{max-width:1080px}.homework-bulk-grid{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(380px,1.1fr);gap:24px}.homework-form-fields{display:grid;gap:14px}.homework-manager-modal{max-width:1180px}.homework-manager-list{display:grid;gap:10px;max-height:62vh;overflow:auto;margin-top:16px}.homework-manager-row{display:grid;grid-template-columns:1fr 1.4fr .7fr auto;gap:16px;align-items:center;padding:16px;border:1px solid var(--line,#e7ded5);border-radius:16px;background:#fff}.homework-manager-row>div{min-width:0}.homework-manager-row strong,.homework-manager-row small{display:block}.homework-manager-row small{margin-top:5px;color:var(--muted,#756b63)}
@media(max-width:900px){.homework-bulk-grid{grid-template-columns:1fr}.homework-manager-row{grid-template-columns:1fr}.homework-manager-modal,.homework-bulk-modal{max-width:calc(100vw - 24px)}}

/* v3.5 Enterprise Core */
.toolbar-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.enterprise-metrics{margin:18px 0}.enterprise-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:18px;margin-bottom:18px}.enterprise-attention-list,.enterprise-student-list,.student-homework-list,.submission-list,.review-list,.system-list{display:grid;gap:10px}.enterprise-attention-row,.enterprise-student-row{width:100%;border:1px solid var(--line);border-radius:15px;background:#fff;color:inherit;text-align:left;cursor:pointer;padding:14px;display:grid;align-items:center;gap:12px}.enterprise-attention-row{grid-template-columns:105px minmax(0,1fr) auto;border-left:5px solid #b7b0aa}.enterprise-attention-row.priority-urgent{border-left-color:#d14436;background:#fff8f7}.enterprise-attention-row.priority-high{border-left-color:#ed8a25}.enterprise-attention-row.priority-normal{border-left-color:#3b82f6}.enterprise-attention-row:hover,.enterprise-student-row:hover{box-shadow:0 8px 20px rgba(55,40,30,.08);transform:translateY(-1px)}.enterprise-attention-row p,.enterprise-feedback-row p,.thread-message p{margin:4px 0}.enterprise-attention-row small,.enterprise-student-row small,.enterprise-feedback-row small,.thread-message small{color:var(--muted)}.attention-type{font-weight:800;font-size:12px;text-align:center;border-radius:999px;padding:7px 8px;background:#f2ede8}.enterprise-student-row{grid-template-columns:minmax(130px,1fr) auto}.student-signal-chips{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.student-signal-chips span{font-size:11px;padding:6px 8px;border-radius:999px;background:#f4f0ec}.enterprise-communication-card{margin-bottom:20px}.enterprise-communication-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.enterprise-thread{border:1px solid var(--line);border-radius:15px;background:#fff;margin-bottom:9px;overflow:hidden}.enterprise-thread>summary{cursor:pointer;padding:14px;list-style:none}.enterprise-thread>summary>div{display:grid;gap:4px}.enterprise-thread-body{border-top:1px solid var(--line);padding:14px;background:#fbf9f7}.thread-message-list{display:grid;gap:8px;margin:12px 0}.thread-message{padding:11px;border-radius:12px;background:#fff;border:1px solid var(--line)}.thread-message.teacher{border-left:4px solid #2f7d4a}.thread-message.student{border-left:4px solid #3b82f6}.enterprise-feedback-row{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:13px;border:1px solid var(--line);border-radius:14px;margin-bottom:9px}.external-link-list{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.external-link-list a{display:inline-flex;padding:6px 9px;border-radius:9px;background:#eef4ff;color:#245b9b;font-size:12px;text-decoration:none}.workflow-badge{display:inline-flex;width:max-content;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;background:#eee9e4}.workflow-badge.submitted,.workflow-badge.answered{background:#fff0d9;color:#8b4c00}.workflow-badge.revision_required,.workflow-badge.open{background:#ffe4df;color:#9c2e24}.workflow-badge.approved,.workflow-badge.resolved{background:#dff3e2;color:#236b35}.student-homework-workflow-panel{margin-bottom:18px}.student-homework-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid var(--line);border-left:5px solid #b7b0aa;border-radius:15px}.student-homework-row>div:first-child{display:grid;gap:5px}.student-homework-row.tone-warning{border-left-color:#ed8a25}.student-homework-row.tone-danger{border-left-color:#d14436}.student-homework-row.tone-success{border-left-color:#2f974b}.workflow-feedback{margin:2px 0;color:#8a392f;font-size:13px}.homework-review-modal{width:min(1120px,95vw);max-height:92vh;overflow:auto}.workflow-detail-summary{padding:14px;border-radius:14px;background:#f7f3ef;margin-bottom:14px}.workflow-detail-summary p{margin:8px 0 0}.workflow-detail-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.submission-card,.review-record{border:1px solid var(--line);border-radius:14px;padding:14px}.submission-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.submission-card p,.review-record p{line-height:1.55}.submission-card.approved,.review-record.approved{border-color:#b9dfc0;background:#f4fbf5}.submission-card.revision_requested,.review-record.revision_required{border-color:#f1c2bb;background:#fff8f7}.workflow-manager-row{grid-template-columns:minmax(140px,.75fr) minmax(220px,1.25fr) minmax(150px,.75fr) auto}.curriculum-governance-bar{display:flex;justify-content:space-between;gap:15px;align-items:center;border:1px solid var(--line);border-radius:15px;padding:13px 15px;background:#faf8f5;margin:12px 0 18px}.curriculum-governance-bar>div:first-child{display:grid;gap:4px}.curriculum-governance-bar small{color:var(--muted)}.validation-results{max-height:50vh;overflow:auto}.validation-results h4{margin:14px 0 7px}.validation-results p{margin:5px 0}.system-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px}.system-status-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 0;border-left:6px solid #9a9189}.system-status-banner.status-passed{border-left-color:#2f974b;background:#f4fbf5}.system-status-banner.status-warning{border-left-color:#ed8a25;background:#fffaf2}.system-status-banner.status-failed{border-left-color:#d14436;background:#fff8f7}.system-count-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.system-count-grid article{display:grid;gap:4px;padding:12px;border-radius:12px;background:#f7f3ef}.system-count-grid span{font-size:11px;color:var(--muted)}.system-count-grid strong{font-size:22px}.system-list-row{display:grid;grid-template-columns:minmax(90px,.4fr) minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.system-list-row span{overflow-wrap:anywhere}.system-list-row small{color:var(--muted);text-align:right}.system-list-row.status-warning,.system-list-row.severity-warning{color:#8b4c00}.system-list-row.status-failed,.system-list-row.severity-error,.system-list-row.severity-critical{color:#9c2e24}
.enterprise-students-card .enterprise-communication-grid{grid-template-columns:1fr}.enterprise-conversation-head{align-items:flex-start}.enterprise-conversation-head .eyebrow{margin-top:14px}.enterprise-students-card #enterprise-communication-content{max-height:900px;overflow:auto;padding-right:3px}.bulk-student-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bulk-student-tools input{flex:1 1 220px}.bulk-student-tools span{color:var(--muted);font-size:13px;font-weight:700}
@media(max-width:980px){.enterprise-layout,.enterprise-communication-grid,.workflow-detail-grid,.system-layout{grid-template-columns:1fr}.enterprise-student-row,.student-homework-row{grid-template-columns:1fr}.student-signal-chips{justify-content:flex-start}.workflow-manager-row{grid-template-columns:1fr}.system-count-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.enterprise-attention-row{grid-template-columns:1fr}.attention-type{justify-self:start}.curriculum-governance-bar,.system-status-banner{align-items:flex-start;flex-direction:column}.system-count-grid{grid-template-columns:1fr}.system-list-row{grid-template-columns:1fr}.system-list-row small{text-align:left}.submission-head{flex-direction:column}}

/* v4 Field Studio student cards */
.v4-student-card{grid-template-columns:112px minmax(0,1fr) 170px;align-items:stretch;padding:0;overflow:hidden;background:linear-gradient(135deg,#fff 0%,#fff 70%,#fbf7f2 100%)}
.v4-student-card .student-time{padding:22px 18px;background:#26211e;color:#fff;display:flex;flex-direction:column;justify-content:center;gap:4px}.v4-student-card .student-time strong{font-size:22px}.v4-student-card .student-time span,.v4-student-card .student-time small{color:#d8d0c9}.v4-student-card .student-main{padding:20px 24px}.v4-student-card .student-status{padding:20px 18px;justify-content:center}
.v4-progress-grid{display:grid;grid-template-columns:repeat(3,minmax(100px,1fr));gap:12px;margin-top:15px}.v4-progress-grid>div{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center}.v4-progress-grid span{font-size:12px;color:var(--muted)}.v4-progress-grid b{font-size:13px}.v4-progress-grid i{grid-column:1/-1;height:7px;background:#eee8e2;border-radius:999px;overflow:hidden}.v4-progress-grid em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#b95c2d,#e6a05d)}
@media(max-width:850px){.v4-student-card{grid-template-columns:92px minmax(0,1fr)}.v4-student-card .student-status{grid-column:1/-1;flex-direction:row;justify-content:space-between;border-top:1px solid var(--line)}.v4-progress-grid{grid-template-columns:1fr}}

/* v4.1 Blue Canvas — compact Notion-like gallery and solution archive */
:root{color:#172033;background:#f5f7fb;--line:#dfe5ef;--muted:#68758a;--blue:#2563eb;--blue-soft:#eef4ff}body{background:#f5f7fb}.app-shell{grid-template-columns:220px 1fr}.sidebar{background:#fff;color:#172033;border-right:1px solid #e3e8f0;padding:22px 16px;gap:24px}.brand-mark{background:#2563eb;color:#fff;border-radius:11px}.brand span,.sidebar-note{color:#7b879a}.sidebar-note{border-top-color:#e3e8f0}.nav-button{color:#526079;padding:10px 12px}.nav-button.active,.nav-button:hover{background:#edf3ff;color:#1d4ed8}.card{border-color:#e2e7ef;border-radius:14px;box-shadow:0 2px 10px rgba(28,45,75,.035)}.eyebrow{color:#3970ce}.primary{background:#2563eb}.secondary{background:#eef2f7;color:#314057}.pill,.tag{background:#edf3ff;color:#2557ad}.step,.question-list a{color:#2563eb}.profile-avatar{background:#eaf1ff;color:#245bb8}.workspace-hero{background:linear-gradient(135deg,#eef5ff,#fff);border-color:#e1e8f2}.workspace-tabs button.active{background:#eaf1ff;color:#1d4ed8}.workspace-timeline,.empty-state{background:#f6f8fb}.mini-progress span,.progress-bar span,.today-progress span{background:#3b82f6}.book-cover,.workspace-book-spine{background:linear-gradient(145deg,#2563eb,#60a5fa)}input,textarea,select,.date-control input{border-color:#d8e0eb}.student-solution-panel{margin-bottom:18px}
.schedule-list{grid-template-columns:repeat(5,minmax(170px,1fr));gap:10px}.v4-student-card{display:flex;flex-direction:column;min-width:0;min-height:148px;padding:12px;background:#fff;border:1px solid #e1e6ee;border-radius:12px;gap:9px}.v4-student-card:hover{border-color:#79a6f5;box-shadow:0 8px 20px rgba(37,99,235,.1);transform:translateY(-2px)}.gallery-card-head{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center}.gallery-card-head .profile-avatar{width:34px;height:34px;border-radius:9px;font-size:14px}.gallery-card-head>div{min-width:0}.gallery-card-head strong,.gallery-card-head small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery-card-head strong{font-size:14px}.gallery-card-head small{font-size:10px;color:#778399}.gallery-card-head .attendance{padding:3px 6px;font-size:9px}.gallery-card-course{font-size:12px!important;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0!important;color:#5c687a!important}.gallery-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.gallery-card-stats span{background:#f5f8fd;border-radius:7px;padding:6px 3px;text-align:center;font-size:9px;color:#748095}.gallery-card-stats b{display:block;color:#244b88;font-size:12px}.gallery-card-foot{display:flex;justify-content:space-between;gap:5px;margin-top:auto;border-top:1px solid #edf0f5;padding-top:7px;font-size:10px}.gallery-card-foot small{color:#7b8798;white-space:nowrap}
.solution-dropzone{border:1.5px dashed #91b5f5;background:#f6f9ff;border-radius:14px;padding:24px;text-align:center;cursor:pointer;transition:.18s;outline:none}.solution-dropzone:hover,.solution-dropzone:focus,.solution-dropzone.dragging{border-color:#2563eb;background:#edf4ff;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.solution-dropzone.uploading{opacity:.6;pointer-events:none}.solution-drop-icon{width:40px;height:40px;border-radius:12px;background:#2563eb;color:#fff;display:grid;place-items:center;margin:0 auto 9px;font-size:23px}.solution-dropzone p{margin:4px 0 0;font-size:12px}.solution-quick-fields{display:grid;grid-template-columns:.8fr 1.2fr;gap:9px;margin:10px 0}.solution-quick-fields textarea{resize:none}.solution-upload-preview{display:flex;align-items:center;justify-content:center;gap:8px;min-height:0;color:#315a9b}.upload-spinner{width:16px;height:16px;border:2px solid #bad0f8;border-top-color:#2563eb;border-radius:50%;animation:solution-spin .7s linear infinite}@keyframes solution-spin{to{transform:rotate(360deg)}}.solution-calendar{margin-top:16px}.solution-calendar-head{display:flex;justify-content:space-between;align-items:center;gap:9px;margin-bottom:10px;font-size:12px}.solution-calendar-head>div{display:flex;gap:5px}.solution-days{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.solution-day{min-height:104px;border:1px solid #e1e7f0;border-radius:10px;padding:7px;background:#fff;min-width:0}.solution-day.today{border:2px solid #3b82f6}.solution-day.has-media{background:#f8fbff}.solution-day header{display:flex;gap:5px;align-items:center;margin-bottom:6px}.solution-day header b{font-size:13px}.solution-day header span{font-size:9px;color:#8290a3}.solution-day>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.solution-day>div>small{color:#b1bac7}.solution-thumb{border:0;background:transparent;padding:0;cursor:pointer;min-width:0;text-align:left}.solution-thumb img{display:block;width:100%;aspect-ratio:1.15;object-fit:cover;border-radius:6px;background:#eaf0f8}.solution-thumb span{display:block;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.solution-days.compact .solution-day{min-height:88px}.legacy-feedback{margin-top:18px;border-top:1px solid #e1e7f0;padding-top:14px}.legacy-feedback summary{cursor:pointer;color:#53627a;font-weight:700}
@media(max-width:1250px){.schedule-list{grid-template-columns:repeat(4,minmax(165px,1fr))}}@media(max-width:1000px){.schedule-list{grid-template-columns:repeat(3,minmax(165px,1fr))}.solution-days{grid-template-columns:repeat(4,1fr)}}@media(max-width:700px){.schedule-list{grid-template-columns:repeat(2,minmax(140px,1fr))}.solution-quick-fields{grid-template-columns:1fr}.solution-days{grid-template-columns:repeat(2,1fr)}.solution-calendar-head{align-items:stretch;flex-direction:column}.app-shell{grid-template-columns:1fr}}

/* v4.2 Interactive student gallery and inline profile editing */
.metric-button{cursor:pointer;text-align:left;transition:border-color .16s,box-shadow .16s,transform .16s}.metric-button:hover{border-color:#8eb1ee;transform:translateY(-1px)}.metric-button.active-scope{border-color:#3978e8;background:linear-gradient(145deg,#f0f6ff,#fff);box-shadow:0 0 0 2px rgba(37,99,235,.1)}
.student-gallery-toolbar{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(130px,.7fr)) auto;gap:8px;margin:0 0 14px}.student-gallery-toolbar input,.student-gallery-toolbar select{min-height:40px;padding:8px 10px}.student-gallery-toolbar button{white-space:nowrap}
.workspace-profile-edit{margin-top:10px;width:max-content}.schedule-row-actions{display:flex;gap:5px;justify-content:flex-end}.attendance-history{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#f8faff}.attendance-history .section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.attendance-history h4,.attendance-history p{margin:0 0 7px}
@media(max-width:1000px){.student-gallery-toolbar{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.student-gallery-toolbar{grid-template-columns:1fr}.schedule-row-actions{grid-column:1/-1;justify-content:flex-start}.attendance-history .section-heading{flex-direction:column}}

/* v4.3 Notion-style solution day pages and touch zoom */
.solution-day[data-solution-date]{cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}.solution-day[data-solution-date]:hover,.solution-day[data-solution-date]:focus{outline:none;border-color:#6f9ff2;box-shadow:0 7px 18px rgba(37,99,235,.12);transform:translateY(-1px)}.solution-thumb{display:block}.solution-day-page,.solution-image-viewer{position:fixed;inset:0;z-index:2000;background:#f6f8fc;overflow:auto}.solution-day-page>header{position:sticky;top:0;z-index:2;display:flex;gap:22px;align-items:flex-start;padding:20px max(24px,calc((100vw - 900px)/2));background:rgba(255,255,255,.96);border-bottom:1px solid #dfe6f0;backdrop-filter:blur(12px)}.solution-back{border:1px solid #cbd7e8;border-radius:10px;background:#fff;color:#234575;padding:10px 14px;font-weight:800;cursor:pointer}.solution-day-page h2{margin:2px 0}.solution-day-page header span{color:var(--muted)}.solution-day-page>main{width:min(900px,calc(100% - 32px));margin:24px auto 80px;display:grid;gap:26px}.solution-day-page article{background:#fff;border:1px solid #e0e6ef;border-radius:14px;padding:18px;box-shadow:0 4px 18px rgba(25,48,82,.05)}.solution-day-page article button{display:block;width:100%;padding:0;border:0;background:#eef2f8;border-radius:10px;overflow:hidden;cursor:zoom-in}.solution-day-page article img{display:block;width:100%;height:auto;max-height:none}.solution-day-page article h3{margin:15px 2px 4px}.solution-day-page article p{margin:0 2px;white-space:pre-wrap}.solution-image-viewer{z-index:2100;background:#07101f;color:#fff;overflow:hidden}.solution-image-viewer>header{height:70px;display:flex;align-items:center;gap:15px;padding:12px 18px;background:rgba(7,16,31,.94);border-bottom:1px solid rgba(255,255,255,.13)}.solution-image-viewer>header strong{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.solution-image-viewer>header small{color:#b6c1d2}.solution-image-viewer .solution-back{background:#142239;border-color:#33445e;color:#fff}.solution-zoom-stage{height:calc(100vh - 70px);display:grid;place-items:center;overflow:hidden;touch-action:none;cursor:zoom-in}.solution-zoom-stage img{max-width:100%;max-height:100%;object-fit:contain;transform-origin:center;will-change:transform;user-select:none;-webkit-user-drag:none}
@media(max-width:650px){.solution-day-page>header{padding:14px;gap:10px}.solution-day-page>header .solution-back{padding:8px 10px}.solution-day-page>main{width:100%;margin:0;padding:10px}.solution-day-page article{padding:8px;border-radius:10px}.solution-image-viewer>header{height:auto;min-height:62px;flex-wrap:wrap}.solution-image-viewer>header small{display:none}.solution-zoom-stage{height:calc(100vh - 62px)}}

#teacher-account-panel{margin-top:18px}.account-badge.active{background:#e3f4e6;color:#26703a}

.hub-tabs{display:flex;gap:6px;padding:7px;margin-bottom:14px;position:sticky;top:8px;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(12px)}.hub-tabs button{border:0;background:transparent;color:#66758c;border-radius:9px;padding:10px 16px;font-weight:800;cursor:pointer}.hub-tabs button:hover{background:#f1f5fb;color:#285baa}.hub-tabs button.active{background:#2563eb;color:#fff}.workspace-toolbar{margin-bottom:14px}
@media(max-width:600px){.hub-tabs{position:static;display:grid;grid-template-columns:repeat(3,1fr)}.hub-tabs button{padding:9px 5px;font-size:12px}}

/* v4.6 Curriculum editing and drag ordering */
.textbook-list-item{display:block}.textbook-list-item>button{display:block;width:100%;padding:0;border:0;background:transparent;text-align:left;color:inherit;cursor:pointer}.sortable-head{display:flex;align-items:center;gap:7px}.drag-handle{display:inline-grid;place-items:center;min-width:24px;height:24px;color:#8190a6;cursor:grab;user-select:none;font-weight:900}.drag-handle:active{cursor:grabbing}[draggable="true"].dragging{opacity:.42;outline:2px dashed #3b82f6;outline-offset:2px}.entity-actions{display:flex;align-items:center;gap:4px}.entity-actions .small{padding:5px 8px;font-size:10px}.content-row>.inline-actions,.question-row>.inline-actions{align-items:flex-start}.form-actions{gap:8px}

/* v4.7 Softer curriculum cards and neutral actions */
.chapter-header{background:#fdfdfd}.lesson-block{border-color:#edf1f6;background:#fff}.content-row,.quiz-box{background:#fbfcfe}.delete-neutral{color:#526079}.delete-neutral:hover{background:#eef2f7;color:#314057}

/* v4.8 Daily attendance board */
.student-card-open{display:contents;color:inherit}.gallery-checkin{width:100%;margin-top:auto}.attendance-secret{display:grid;gap:3px;min-width:220px;padding:15px 20px;border:1px solid #cfe0fb;border-radius:14px;background:#f5f9ff}.attendance-secret span,.attendance-secret small{font-size:11px;color:#68758a}.attendance-secret strong{font-size:23px;color:#1d4ed8}.attendance-board-grid{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;margin-top:16px}.attendance-board-card{display:grid;gap:14px;padding:17px;border:1px solid #e0e7f1;border-radius:14px;background:#fbfdff}.attendance-board-card h3{margin:8px 0 2px}.attendance-board-card small{color:#718096}.attendance-remaining{display:grid;gap:4px;padding:11px;border-radius:10px;background:#f2f6fc}.attendance-remaining span{font-size:10px;color:#718096}.attendance-remaining strong{font-size:20px;color:#214f92}.attendance-board-actions{display:flex;gap:6px;margin-top:auto}.student-attendance-panel{border-color:#cfe0fb;background:linear-gradient(135deg,#f1f7ff,#fff)}.student-attendance-preview{display:flex;align-items:center;justify-content:space-between;gap:20px}.student-attendance-preview h3,.student-attendance-preview p{margin:4px 0}.student-attendance-preview p{color:#68758a}
@media(max-width:1100px){.attendance-board-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:800px){.attendance-board-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.hub-tabs{grid-template-columns:repeat(2,1fr)}.attendance-board-grid{grid-template-columns:1fr}.student-attendance-preview{align-items:stretch;flex-direction:column}.attendance-secret{min-width:0}}

/* v4.9 Late-arrival monitoring */
@keyframes late-arrival-pulse{0%,100%{background:#fff8f8;box-shadow:0 0 0 0 rgba(220,65,65,.08)}50%{background:#ffe8e8;box-shadow:0 0 0 5px rgba(220,65,65,.12)}}
.student-card.late-arrival-alert,.attendance-board-card.late-arrival-alert{border-color:#efaaaa;animation:late-arrival-pulse 1.8s ease-in-out infinite}
.late-arrival-message{margin:8px 0 0;padding:7px 9px;border-radius:8px;background:#fff0f0;color:#b43a3a;font-size:11px;font-weight:800}
.student-card.attendance-present-card,.attendance-board-card.attendance-present-card{border-color:#b9d5fb;background:#eef6ff}
.student-card.attendance-missing-card,.attendance-board-card.attendance-missing-card{border-color:#efc3c3;background:#fff4f4}
@media(prefers-reduced-motion:reduce){.student-card.late-arrival-alert,.attendance-board-card.late-arrival-alert{animation:none;background:#fff0f0}}

/* v5.1 Compact attendance cards and acknowledged waiting state */
.attendance-board-grid{grid-template-columns:repeat(8,minmax(108px,1fr));gap:7px}
.attendance-board-card{gap:6px;padding:9px;border-radius:10px;min-width:0}
.attendance-board-card-open{cursor:pointer}.attendance-board-card-open:hover{border-color:#8fb8ef;box-shadow:0 5px 14px rgba(37,99,235,.1)}.attendance-board-card-open:focus-visible{outline:3px solid rgba(37,99,235,.28);outline-offset:2px}
.attendance-board-card h3{margin:3px 0 1px;font-size:14px;line-height:1.15}
.attendance-board-card small{font-size:9px}
.attendance-board-card .attendance{font-size:8px;padding:3px 5px}
.attendance-board-card .late-arrival-message{margin-top:4px;padding:4px 5px;font-size:8px}
.attendance-remaining{gap:1px;padding:5px;border-radius:7px}
.attendance-remaining span{font-size:8px}.attendance-remaining strong{font-size:14px}
.attendance-board-actions{gap:3px}.attendance-board-actions button{padding:5px 6px;font-size:9px}
.attendance-board-actions [data-board-checkout]{border-color:#0f766e;background:#0f766e;color:#fff;font-weight:800;opacity:1}.attendance-board-actions [data-board-checkout]:hover{background:#115e59}.attendance-board-actions button:disabled{border-color:#e5e7eb;background:#f3f4f6;color:#9ca3af;opacity:1}
.attendance-board-card.attendance-waiting-card{border-color:#f2d483;background:#fffbeb;animation:none}
.attendance.waiting{background:#fef3c7;color:#92400e}
.timetable-column.status-waiting header{background:#fffbeb}.timetable-column.status-waiting header span{color:#a16207}
.timetable-column.status-absent header{background:#fff1f2}.timetable-column.status-absent header span{color:#be123c}
@media(max-width:1400px){.attendance-board-grid{grid-template-columns:repeat(6,minmax(108px,1fr))}}
@media(max-width:1100px){.attendance-board-grid{grid-template-columns:repeat(4,minmax(108px,1fr))}}
@media(max-width:800px){.attendance-board-grid{grid-template-columns:repeat(2,minmax(108px,1fr))}}
@media(max-width:420px){.attendance-board-grid{grid-template-columns:1fr 1fr}}

/* Keep compact timetable attendance labels on one line. */
.timetable-column header span{white-space:nowrap;word-break:keep-all}
.subject-legend{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.subject-chip{padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}.subject-수학{background:#dbeafe!important;color:#1e40af}.subject-국어{background:#fce7f3!important;color:#9d174d}.subject-영어{background:#dcfce7!important;color:#166534}.subject-과학{background:#fef3c7!important;color:#92400e}.subject-사회{background:#ede9fe!important;color:#5b21b6}.subject-역사{background:#ffedd5!important;color:#9a3412}.occupancy-summary{display:grid;gap:2px;text-align:right}.occupancy-summary span,.occupancy-summary small{font-size:11px;color:#718096}.occupancy-summary strong{font-size:24px;color:#1d4ed8}.timetable-shell{overflow:auto;margin-top:16px;border:1px solid #dbe4f0;border-radius:14px;background:#fbfdff}.timetable-grid{display:flex;min-width:max-content}.timetable-ruler{position:sticky;left:0;z-index:8;width:74px;background:#f7faff;border-right:1px solid #dbe4f0}.timetable-ruler header,.timetable-column header{height:68px;box-sizing:border-box;padding:10px;border-bottom:1px solid #dbe4f0;background:#fff}.timetable-ruler header{font-weight:800;text-align:center}.timetable-ruler>div{position:relative}.timetable-ruler span{position:absolute;right:9px;transform:translateY(-50%);font-size:10px;color:#718096}.timetable-ruler span:after{content:'';position:absolute;left:48px;top:50%;width:1600px;border-top:1px solid #edf1f7}.timetable-columns{display:flex;position:relative}.timetable-column{width:124px;border-right:1px solid #e5ebf3}.timetable-column header{display:grid;gap:1px;position:sticky;top:0;z-index:5}.timetable-column header strong{font-size:13px}.timetable-column header span{font-size:10px;font-weight:800;color:#b91c1c}.timetable-column.status-present header,.timetable-column.status-late header{background:#eff6ff}.timetable-column.status-present header span,.timetable-column.status-late header span{color:#1d4ed8}.timetable-column.status-checked_out header span{color:#64748b}.timetable-column header small{font-size:9px;color:#718096}.timetable-track{position:relative}.timetable-block{position:absolute;left:5px;right:5px;z-index:2;box-sizing:border-box;padding:7px;border:1px solid rgba(15,23,42,.08);border-radius:9px;overflow:hidden;display:flex;flex-direction:column;gap:1px}.timetable-block strong{font-size:12px}.timetable-block span,.timetable-block small{font-size:9px}.current-time-line{position:absolute;left:0;right:0;z-index:7;border-top:2px solid #ef4444;pointer-events:none}.current-time-line b{position:sticky;left:4px;display:inline-block;transform:translateY(-50%);padding:3px 6px;border-radius:6px;background:#ef4444;color:#fff;font-size:10px}.timetable-card{padding-bottom:20px}

/* v4.5 Date-first solution pages */
.solution-quick-fields.note-only{grid-template-columns:1fr}.solution-day header em{margin-left:auto;border-radius:999px;background:#e8f1ff;color:#245bb8;padding:2px 5px;font-size:8px;font-style:normal;font-weight:800}.solution-day>div{position:relative}.solution-thumb{pointer-events:none;cursor:default}.solution-more{position:absolute;right:4px;bottom:4px;display:grid;place-items:center;min-width:24px;height:20px;padding:0 5px;border-radius:999px;background:rgba(18,42,79,.88);color:#fff;font-size:9px}

/* Staff student-login preview controls */
.student-preview-controls,.workspace-profile-actions{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
@media(max-width:700px){.student-preview-controls,.workspace-profile-actions{width:100%;align-items:stretch;flex-direction:column}.student-preview-controls button,.workspace-profile-actions button{width:100%}}

/* Student curriculum overview */
.student-curriculum-overview{margin-top:18px;padding:24px}.student-curriculum-head,.curriculum-overview-book-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.student-curriculum-head h2{margin:4px 0 6px}.student-curriculum-head p{margin:0;color:var(--muted)}.curriculum-overview-list{display:grid;gap:14px;margin-top:20px}.curriculum-overview-book{padding:18px;border:1px solid #dfe7f2;border-radius:16px;background:#fbfdff}.curriculum-overview-book-head>div:first-child{display:grid;gap:3px}.curriculum-overview-book-head span,.curriculum-overview-book-head small{font-size:12px;color:#718096}.curriculum-overview-book-head strong{font-size:18px}.curriculum-overview-rate{display:grid;text-align:right}.curriculum-overview-rate strong{font-size:21px;color:#245bb8}.curriculum-overview-rate small{color:#718096}.curriculum-chapter-list{display:grid;gap:10px;margin-top:15px}.curriculum-chapter{display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:12px;align-items:start;padding-top:10px;border-top:1px solid #e8edf5}.curriculum-chapter>strong{font-size:13px}.curriculum-chapter>div{display:flex;gap:7px;flex-wrap:wrap}.curriculum-lesson{padding:7px 9px;border:1px solid #dae3ef;border-radius:9px;background:#fff;color:#526079;font-size:11px}.curriculum-lesson b{color:#1f4f96}.curriculum-lesson em{margin-left:4px;color:#718096;font-style:normal}.curriculum-lesson.completed{border-color:#cce7d3;background:#f0faf2;color:#27633a}.curriculum-lesson.completed b,.curriculum-lesson.completed em{color:#27633a}.curriculum-lesson.in_progress,.curriculum-lesson.available{border-color:#bfd5fb;background:#f2f7ff}.curriculum-lesson.locked{opacity:.62}.student-bookshelf-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:26px 2px 0}.student-bookshelf-heading h2{margin:3px 0}.student-bookshelf-heading p{margin:0;color:var(--muted);text-align:right}
@media(max-width:700px){.student-curriculum-overview{padding:18px}.student-curriculum-head,.student-bookshelf-heading{align-items:flex-start;flex-direction:column}.student-bookshelf-heading p{text-align:left}.curriculum-chapter{grid-template-columns:1fr}.curriculum-overview-book-head{gap:10px}}
/* The operation counters also select the work queue below. */
.enterprise-metrics.grid { grid-template-columns: repeat(auto-fit,minmax(140px,1fr)); }
.enterprise-metrics button.metric { text-align:left; cursor:pointer; color:inherit; font:inherit; }
.enterprise-metrics button[aria-pressed="true"] { outline:2px solid #2563eb; background:#eff6ff; }
.timetable-ruler header,.timetable-column header { height:130px; }
.timetable-actions,.attendance-board-actions {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:4px; align-items:center; min-width:0; width:100%;
}
.timetable-actions button,.attendance-board-actions button {
  display:flex; align-items:center; justify-content:center; box-sizing:border-box;
  width:100%; min-width:0; height:32px; margin:0; padding:0;
  border:1px solid transparent; border-radius:7px;
  font-family:inherit; font-size:11px; font-weight:700; line-height:1;
  letter-spacing:0; text-align:center; white-space:nowrap;
}
.timetable-actions { gap:3px; }
.timetable-actions button { height:26px; font-size:9px; border-radius:5px; }
.timetable-actions button[data-study-pause] span,
.attendance-board-actions button[data-study-pause] span { display:none; }
button[data-study-pause]::before {
  content:""; display:block; box-sizing:border-box; width:9px; height:11px;
  border-left:3px solid currentColor; border-right:3px solid currentColor;
}
button[data-study-pause][data-pause-action="resume"]::before {
  width:0; height:0; border:5px solid transparent; border-right:0;
  border-left:9px solid currentColor;
}
.attendance.paused { background:#fff2cc; color:#885b00; }
.timetable-column header { padding:8px 4px; grid-template-rows:20px 18px 1fr; justify-items:center; align-items:start; gap:4px; }
.timetable-column header>span { white-space:nowrap; line-height:18px; }
.timetable-column.status-paused header>span,.timetable-column.status-waiting header>span { color:#a16207; }
.timetable-column.status-absent header>span { color:#b91c1c; }
.timetable-column.status-checked_out header>span,.timetable-column.status-cancelled header>span { color:#64748b; }
.timetable-column .timetable-actions { display:grid; grid-template-columns:repeat(2,minmax(0,28px)); justify-content:center; align-content:center; gap:4px; width:100%; height:64px; }
.timetable-column .timetable-actions button { height:28px; width:100%; padding:0; border:1px solid #d5dfed; border-radius:7px; background:#fff; color:#475569; box-shadow:0 1px 2px #0f172a08; }
.timetable-column .timetable-actions button:last-child { grid-column:1 / -1; width:28px; justify-self:center; }
.timetable-column .timetable-actions button svg { width:16px; height:16px; flex-shrink:0; }
.timetable-column .timetable-actions button[data-study-pause]::before { display:none; }
.timetable-column .timetable-actions button[data-timetable-action="checkin"] { background:#eaf1ff; color:#2563eb; border-color:#bfd3ff; }
.timetable-column .timetable-actions button[data-timetable-action="checkout"] { background:#e7f6f2; color:#0f766e; border-color:#b7ddd4; }
.timetable-column .timetable-actions button[data-study-pause] { background:#fff8e8; color:#a16207; border-color:#ead6a5; }
.timetable-column .timetable-actions button:disabled { opacity:.45; }
.timetable-column .timetable-actions button:hover:not(:disabled) { filter:brightness(.96); }
.timetable-column .timetable-actions button:focus-visible { outline:2px solid #2563eb; outline-offset:2px; }
.schedule-mode-tabs{display:flex;gap:8px;margin:16px 0;flex-wrap:wrap}
.schedule-mode-tabs button{border:1px solid #dbe3ef;border-radius:10px;padding:10px 18px;background:#fff;color:#52627a;font:inherit;font-weight:650}
.schedule-mode-tabs button.active{background:#2563eb;color:#fff;border-color:#2563eb}
#schedule-week-tabs[hidden]{display:none}
.timetable-reference-block{opacity:.65;border-style:dashed!important;z-index:1}
.timetable-column.status-reference{background:#fafcfb}
.timetable-column.status-reference header span{color:#648471}
.regular-week-grid{display:grid;grid-template-columns:repeat(var(--week-days),minmax(0,1fr));gap:8px;width:100%;align-items:start}
.regular-week-day{min-width:0;background:#fafbfe;border:1px solid #e1e7f0;border-radius:10px;overflow:hidden}
.regular-week-day>header{display:flex;justify-content:space-between;padding:10px;background:#edf3ff;color:#294b82;align-items:center}
.regular-week-day>header small{font-size:11px}
.regular-week-group{padding:4px 5px;border-top:1px solid #e3e9f3}
.regular-week-group>time{display:block;font-size:10px;font-weight:700;color:#667b97;margin-bottom:3px}
.regular-week-students{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}
.regular-week-student{background:#fff;border:1px solid #e3e9f3;border-radius:5px;padding:3px 2px;min-width:0;text-align:center}
.regular-week-student>strong{display:block;font-size:clamp(9px,.7vw,12px);white-space:nowrap}
.regular-week-student>span{display:flex;flex-wrap:wrap;justify-content:center;gap:2px}
.regular-week-student i{font-size:9px;font-style:normal;border-radius:3px;padding:1px 2px}
.regular-week-student:focus{outline:2px solid #2563eb}
.week-reference-note{font-size:12px;color:#6b7d95}
.schedule-mode-tabs button[hidden]{display:none}
#schedule-board.week-fit-view{position:fixed;inset:0;z-index:1500;background:#f5f7fb;padding:12px;overflow:auto}
#schedule-board.week-fit-view>.hub-tabs,#schedule-board.week-fit-view>.dashboard-toolbar{display:none}
#schedule-board.week-fit-view>.schedule-mode-tabs{margin:0 0 8px}
#schedule-board.week-fit-view>.timetable-card{padding:12px}
#schedule-board.week-fit-view .regular-week-students{grid-template-columns:repeat(3,minmax(0,1fr))}
#schedule-board.week-fit-view .timetable-shell{margin-top:6px}
@media(max-width:1000px){.regular-week-students{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.regular-week-grid{grid-template-columns:repeat(var(--week-days),minmax(160px,1fr));min-width:800px}.regular-week-student>strong{font-size:11px}}
.regular-week-grid.regular-sheet-stack{display:block;min-width:100%;padding:0}
.regular-sheet-day{margin:0 0 12px}
.regular-sheet-day:last-child{margin-bottom:0}
.regular-sheet-day h3{margin:0;background:#dfe7f5;border:1px solid #a9bfe7;text-align:center;padding:4px;color:#273b59;font-size:12px;line-height:16px}
.regular-sheet-day h3 small{font-size:10px;margin-left:8px;font-weight:500}
.regular-sheet-day table{table-layout:fixed;border-collapse:collapse;width:100%;margin:0;font-size:clamp(7px,.64vw,11px);line-height:14px}
.regular-sheet-time{width:54px}
.regular-sheet-day th,.regular-sheet-day td{border:1px solid #b9cbed;height:16px;padding:0 1px;text-align:center;white-space:nowrap;overflow:hidden}
.regular-sheet-day th{background:#f4f7fc;font-size:9px;font-weight:600;color:#46566e}
.regular-sheet-name strong{font-size:inherit;font-weight:700}
.regular-sheet-duration{background:#fff;color:#374151}
#schedule-board.week-fit-view .regular-sheet-day{margin-bottom:5px}
@media(max-width:850px){.regular-sheet-stack{width:1300px}.regular-sheet-day table{font-size:10px}}
/* Packed live week: a lane is reused after the preceding visit ends. */
.compact-live-week{display:grid;gap:12px;min-width:1280px;padding:8px;background:#f7f9fc}
.compact-live-day{min-width:0;background:white;border:1px solid #dce4ee;border-radius:10px;overflow:hidden}
.compact-live-day h3{display:flex;align-items:center;gap:12px;margin:0;padding:8px 12px;font-size:15px;background:#edf2fa;color:#263a59}
.compact-live-day h3 small{font-size:11px;font-weight:500;color:#73829a}
.compact-live-day h3 b{font-size:10px;background:#2563eb;color:white;padding:2px 6px;border-radius:5px}
.compact-live-track{position:relative;margin:9px 5px 12px 0}
.compact-grid-line{position:absolute;left:0;right:0;border-top:1px solid #edf1f6;pointer-events:none}
.compact-grid-line>span{position:absolute;left:3px;top:-6px;background:white;color:#8491a4;font-size:9px;font-variant-numeric:tabular-nums}
.compact-lesson{position:absolute;box-sizing:border-box;min-height:0!important;padding:3px 2px!important;border:1px dashed #aab9d0!important;border-radius:5px!important;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:1px;box-shadow:none!important;line-height:1.15!important;color:#23344e;font-family:inherit;cursor:pointer}
.compact-lesson strong{font-size:11px;white-space:nowrap;font-weight:750}
.compact-lesson span{font-size:9px;white-space:nowrap}
.compact-lesson small{font-size:9px;font-variant-numeric:tabular-nums;line-height:1.1}
.compact-lesson i{font-size:8px;font-style:normal;margin-top:2px;white-space:nowrap}
.compact-lesson.is-attending{border:1px solid transparent!important}
.compact-lesson.is-finished{border:1px dashed currentColor!important;opacity:1}
.compact-lesson.is-paused{border:2px solid #d19a32!important}
.compact-lesson.is-waiting{border:2px dashed #d19a32!important}
.compact-lesson.is-absent{opacity:.5;border-color:#c47b7b!important}
.compact-lesson.is-reference{opacity:.65}
.compact-lesson:hover,.compact-lesson:focus-visible{z-index:4;outline:2px solid #255fbd;outline-offset:1px;filter:brightness(.97)}
.compact-now{position:absolute;left:0;right:0;height:2px;background:#ef5350;pointer-events:none;z-index:3}
.compact-now b{position:absolute;left:0;top:-7px;background:#ef5350;color:white;padding:2px 3px;border-radius:3px;font-size:9px}
.compact-visit-detail .timetable-actions{display:flex!important;gap:8px;margin:16px 0}
.compact-visit-detail .timetable-actions button{width:46px!important;height:42px!important;flex:none!important}
.compact-visit-detail .timetable-actions button{padding:0!important;border:1px solid #d5dfed;border-radius:8px;background:#f5f8fc;color:#475569;display:grid;place-items:center}
.compact-visit-detail .timetable-actions button svg{width:20px;height:20px}
.compact-visit-detail .timetable-actions button[data-study-pause]::before{display:none}
.compact-visit-detail .timetable-actions button[data-study-pause]{background:#fff8e8;color:#a16207}
.compact-visit-detail .timetable-actions button[data-timetable-action="checkout"]{background:#e7f6f2;color:#0f766e}
.week-fit-view .compact-live-week{min-width:1280px}
body:has(#schedule-board.week-fit-view)>.modal-backdrop{z-index:1600}
.compact-day-legend{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:11px;font-weight:600}
.compact-legend-item{display:inline-flex;align-items:center;gap:4px}
.compact-legend-item i{width:12px;height:12px;border-radius:3px;border:1px solid #0002}
.compact-live-week .subject-국어{background:#f6c9df!important;color:#8b2253}
.compact-live-week .subject-사회{background:#cfc4f2!important;color:#50318e}
.compact-live-week .subject-과학{background:#ffe7a3!important;color:#875909}
.compact-live-week .subject-역사{background:#f7b99b!important;color:#913d1b}
.compact-live-week .compact-lesson.subject-수학:is(.is-attending,.is-paused,.is-finished){background:#b9d7fa!important}
.compact-live-week .compact-lesson.subject-영어:is(.is-attending,.is-paused,.is-finished){background:#b8ebcb!important}
.compact-live-week .compact-lesson.subject-국어:is(.is-attending,.is-paused,.is-finished){background:#eca6c7!important}
.compact-live-week .compact-lesson.subject-사회:is(.is-attending,.is-paused,.is-finished){background:#b6a5e6!important}
.compact-live-week .compact-lesson.subject-과학:is(.is-attending,.is-paused,.is-finished){background:#f7d373!important}
.compact-live-week .compact-lesson.subject-역사:is(.is-attending,.is-paused,.is-finished){background:#eda17c!important}
.compact-live-week .compact-lesson.is-scheduled{border:1px solid #4f82dc!important}
.compact-live-week .compact-lesson.is-absent{border:2px solid #dc6555!important;box-shadow:inset 0 0 0 1px #efc24d!important;opacity:1}
.compact-live-week .compact-lesson.is-reference{border:1px dashed #8ab49a!important;cursor:default;opacity:.6}
.compact-live-week .compact-lesson small{white-space:nowrap;font-size:9px;font-weight:500;letter-spacing:-.25px}
.compact-live-week .compact-lesson strong{font-family:inherit;font-size:11px;font-weight:750}
.compact-live-week .compact-lesson i{font-family:inherit;font-size:8px;font-weight:500}
.compact-live-week .compact-grid-line>span{font-size:9px}
.unified-attendance-actions{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:4px!important;width:100%;min-width:0;align-items:center}
.unified-attendance-actions button,.compact-visit-detail .unified-attendance-actions button{width:100%!important;min-width:0!important;height:30px!important;max-width:none;padding:0!important;border:1px solid #dce5ef;border-radius:7px;display:flex!important;justify-content:center;align-items:center;background:#f1f5fa;color:#465772;box-sizing:border-box;grid-column:auto!important}
.unified-attendance-actions button svg{width:16px!important;height:16px!important;flex:none}
.unified-attendance-actions button::before{display:none!important}
.unified-attendance-actions button:disabled{opacity:.28;cursor:default}
.unified-attendance-actions button[data-timetable-action="checkin"]{background:#e7efff;color:#2563eb}
.unified-attendance-actions button[data-timetable-action="checkout"]{background:#e4f3ef;color:#0f766e}
.unified-attendance-actions button[data-timetable-action="absent"]{background:#fff0ec;color:#b75b47}
.unified-attendance-actions button[data-study-pause]{background:#fff6df;color:#a57924}
.unified-attendance-actions button:hover:not(:disabled){filter:brightness(.96)}
.unified-attendance-actions button:focus-visible{outline:2px solid #2563eb;outline-offset:1px}
.compact-live-week .compact-lesson.is-absent{border-width:1px!important;box-shadow:none!important}
.late-arrival-alert{animation:none!important}
body .compact-visit-detail .timetable-actions.unified-attendance-actions{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:6px!important}
body .compact-visit-detail .timetable-actions.unified-attendance-actions button{width:100%!important;height:34px!important;min-width:0!important;padding:0!important}
#schedule-board .compact-live-week .compact-lesson.is-absent{border-width:1px!important;box-shadow:none!important}
.feedback-category-list .feedback-category-card{justify-content:stretch;align-items:stretch;grid-template-columns:minmax(0,1fr)}
.feedback-category-list .feedback-category-actions{width:100%;box-sizing:border-box;display:flex;justify-content:flex-end;align-items:center;gap:6px;padding:0 12px 12px}
.feedback-category-list .feedback-category-actions button{height:34px;min-width:48px;margin:0;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center}
[data-solution-student][hidden]{display:none!important}
#student-today-panel .student-today-list{gap:0}
#student-today-panel .student-today-row{grid-template-columns:64px minmax(0,1fr) auto;gap:8px;padding:7px 8px;min-height:0;border:0;border-bottom:1px solid #e7edf4;border-radius:0;box-shadow:none}
#student-today-panel .student-today-row strong{font-size:13px;line-height:1.4;overflow-wrap:anywhere}
#student-today-panel .student-today-row small{display:inline;font-size:10px;margin-left:8px;color:#8491a5}
#student-today-panel .student-today-row .task-type{font-size:10px;padding:3px 4px}
#student-today-panel .student-today-row.manual-task{background:#f0f6ff;border-left:3px solid #729eef}
#student-today-panel .student-today-row.done{background:#f7faf8;color:#728579}
#student-today-panel .student-task-actions button{font-size:11px;padding:5px 7px}
.today-class-panel .today-task-list{grid-template-columns:1fr;gap:0}
.today-class-panel .today-task{display:flex;gap:8px;padding:7px 9px;border:0;border-bottom:1px solid #e7edf4;border-radius:0}
.today-class-panel .today-task strong{font-size:13px;line-height:1.4}
.student-check-list label[hidden]{display:none!important}
[data-rule-row]{display:grid;grid-template-columns:minmax(0,1fr) 110px auto;gap:8px;align-items:end;margin:10px 0}[data-rule-row] label{min-width:0}[data-rule-row] input,[data-rule-row] select{width:100%;box-sizing:border-box}
.regular-day-row{display:grid;grid-template-columns:68px minmax(0,1fr);gap:16px;align-items:start;padding:17px 0;border-bottom:1px solid #e1e7f0}.regular-day-name{white-space:nowrap;padding-top:7px}.regular-day-visits{display:grid;gap:12px;min-width:0}.regular-day-visit{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;align-items:center}.regular-subject-chain{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-width:0}.regular-subject-slot{display:inline-flex;gap:8px;align-items:baseline;white-space:nowrap;font-size:14px}.regular-subject-slot>span{font-variant-numeric:tabular-nums;color:#42516b}.regular-subject-arrow{color:#8a98ac}.regular-effective{grid-column:1;color:#7c899d;font-size:11px}.regular-day-visit>button{grid-column:2;grid-row:1/3;align-self:center}@media(max-width:480px){.regular-day-row{grid-template-columns:52px minmax(0,1fr);gap:8px}.regular-subject-slot{font-size:12px;gap:6px}.regular-day-visit{gap:6px}.regular-subject-chain{gap:6px}}
.regular-week-editor{width:min(780px,100%)}.regular-week-rules{display:grid;gap:14px}.regular-week-rule{border:1px solid #dce4ef;border-radius:14px;padding:16px;background:#f9fbff}.regular-week-rule.selected-rule{border-color:#8babec}.regular-week-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.regular-week-dates{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.regular-week-rule label{min-width:0}.regular-week-rule input,.regular-week-rule select{width:100%;box-sizing:border-box;min-width:0}.regular-week-editor .form-actions{position:sticky;bottom:-22px;background:white;padding:14px 0;border-top:1px solid #e4e9f1;gap:8px;z-index:1}@media(max-width:480px){.regular-week-rule{padding:10px}.regular-week-fields{grid-template-columns:1fr 1fr}.regular-week-fields>label:first-child{grid-column:1/-1}.regular-week-editor [data-rule-row]{grid-template-columns:minmax(0,1fr) 85px auto}}

/* Student overview and teacher workspace: consistent headings and stable navigation. */
#student > article h2,#student > article .student-status-head h3,#student > .student-bookshelf-heading h2{font-size:24px;font-weight:800;line-height:1.35;letter-spacing:-.035em;margin:0}
#student > article{margin:0 0 20px}
#student .student-bookshelf-heading{margin-top:24px}
#student-workspace-content .workspace-main{padding:0;max-width:none;overflow-anchor:none}
#student-workspace-content .workspace-tabs{margin:0;align-items:center;min-height:62px;box-sizing:border-box}
#student-workspace-content .workspace-tabs button{flex-shrink:0;line-height:1.4;margin:0;transform:none}
#student-workspace-content .workspace-tab-panel{overflow-anchor:none}
.workspace-homework-summary,.workspace-note-summary{padding:22px 26px;border-bottom:1px solid #e3e8f0}
.schedule-chip-detailed{display:inline-flex;gap:6px;flex-wrap:wrap;line-height:1.7;white-space:normal}
.schedule-chip-detailed>span{white-space:nowrap}
@media(max-width:700px){#student > article h2,#student > article .student-status-head h3,#student > .student-bookshelf-heading h2{font-size:22px}.workspace-homework-summary,.workspace-note-summary{padding:18px}}
.youtube-import-modal select[name="destination"],
.youtube-import-modal select[name="textbook_id"] {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 44px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%2354647b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 16px 16px;
}
.youtube-category-picker{position:relative;display:block;min-width:0}
.youtube-category-picker input[name="category"]{width:100%;padding-right:48px}
.youtube-category-picker .youtube-category-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:32px;height:32px;padding:0;border:0;border-radius:7px;background-color:transparent;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%2354647b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:16px 16px;color:#54647b;font-size:0;cursor:pointer}
.youtube-category-picker .youtube-category-toggle:hover{background-color:#edf2fa}
.youtube-category-options{position:absolute;z-index:20;top:calc(100% + 5px);left:0;right:0;max-height:240px;overflow:auto;padding:5px;background:white;border:1px solid #d5dfed;border-radius:10px;box-shadow:0 8px 24px #17203320}
.youtube-category-options[hidden]{display:none}
.youtube-category-options button{display:block;width:100%;padding:10px 12px;border:0;border-radius:6px;background:white;text-align:left;font:inherit;color:#172033;cursor:pointer;white-space:normal}
.youtube-category-options button:hover,.youtube-category-options button:focus-visible{background:#edf3ff;color:#2563eb}
