@import"https://fonts.googleapis.com/css2?family=Fraunces:wght@400;600;700&family=Manrope:wght@400;500;600;700&display=swap";*{box-sizing:border-box}body{margin:0;font-family:Manrope,sans-serif;background:radial-gradient(1200px 600px at 10% -10%,#e9fbff 0%,transparent 55%),radial-gradient(900px 500px at 90% 0%,#fff4e6 0%,transparent 55%),#f6f7fb;color:#0f172a}#root{min-height:100vh}.auth-page{min-height:100vh;display:grid;place-items:center;padding:32px 20px}.auth-card{width:min(420px,92vw);background:#fff;border-radius:36px;padding:36px;box-shadow:0 24px 60px #0f172a1f;border:1px solid #eef2f6}.auth-title{font-size:28px;font-weight:800;text-align:center;margin:0 0 10px;text-transform:uppercase;letter-spacing:-1px}.auth-subtitle{text-align:center;color:#64748b;margin:0 0 20px;font-size:14px}.login-form{display:grid;gap:14px}.login-form label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#334155}.login-form input{padding:14px;border-radius:18px;border:none;background:#f1f5f9;font-size:14px;outline:none}.login-form button{padding:14px;border:none;border-radius:18px;background:#0f172a;color:#fff;font-weight:800;cursor:pointer}.error-text{color:#dc2626;margin:0;font-size:12px}.shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.shell.sidebar-collapsed{grid-template-columns:1fr}.shell.sidebar-collapsed .sidebar{display:none}.sidebar{background:#fff;border-right:1px solid #e2e8f0;padding:28px 20px;display:flex;flex-direction:column;gap:24px;height:100vh;position:sticky;top:0;overflow-y:auto}.menu-toggle{display:none;position:fixed;top:16px;left:16px;width:42px;height:42px;border-radius:12px;border:1px solid #e2e8f0;background:#fff;z-index:60;cursor:pointer;align-items:center;justify-content:center;gap:6px;flex-direction:column}.schedule-mobile-toggle{display:none;background:#f1f5f9;border-radius:999px;padding:6px;gap:6px;align-items:center;justify-content:center;margin-bottom:12px}.schedule-mobile-toggle button{border:none;background:transparent;padding:8px 14px;border-radius:999px;font-weight:800;font-size:12px;color:#475569;cursor:pointer}.schedule-mobile-toggle button.active{background:#0f172a;color:#fff}.menu-toggle span{width:18px;height:2px;background:#0f172a;display:block}.sidebar-backdrop{display:none}.sidebar-show-floating-btn{position:fixed;top:16px;left:14px;width:36px;height:36px;border-radius:10px;border:1px solid #dbe3ee;background:#fff;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;z-index:40}.sidebar-show-floating-btn span{width:15px;height:2px;border-radius:999px;background:#475569;display:block}.sidebar-brand{display:flex;gap:12px;align-items:center;padding:0 8px}.sidebar-collapse-btn{margin-left:auto;width:34px;height:34px;border-radius:10px;border:1px solid #dbe3ee;background:#f8fafc;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer}.sidebar-collapse-btn span{width:14px;height:2px;border-radius:999px;background:#475569;display:block}.brand-mark{width:44px;height:44px;border-radius:16px;background:#e2e8f0;display:grid;place-items:center;color:#fff;font-weight:800;overflow:hidden}.brand-mark img{width:100%;height:100%;object-fit:cover}.brand-title{margin:0;font-weight:800;font-size:18px}.brand-sub{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:1.6px;color:#94a3b8}.side-menu{display:grid;gap:8px}.side-menu button{padding:12px 16px;border:none;background:transparent;text-align:left;border-radius:16px;font-weight:700;color:#94a3b8;cursor:pointer;transition:all .2s ease}.side-menu button.active,.side-menu button:hover{background:#ecfdf3;color:#065f46}.side-footer{margin-top:auto}.logout-btn{width:100%;border:none;background:#f1f5f9;padding:12px 16px;border-radius:16px;font-weight:700;color:#64748b;cursor:pointer}.content{padding:32px 36px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.topbar-title{min-width:0;flex-shrink:0}.topbar h1{margin:6px 0 0;font-size:24px;font-weight:800}.top-kicker{text-transform:uppercase;letter-spacing:.8px;font-size:10px;color:#10b981;font-weight:700;margin:0;white-space:nowrap}.top-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.sidebar-toggle-btn{white-space:nowrap}.display-mode-toggle{display:inline-flex;align-items:center;gap:6px;padding:4px;border-radius:999px;border:1px solid #e2e8f0;background:#fff}.display-mode-toggle button{border:none;background:transparent;color:#475569;font-size:12px;font-weight:800;padding:7px 12px;border-radius:999px;cursor:pointer;white-space:nowrap}.display-mode-toggle button.active{background:#0f172a;color:#fff}.display-mode-toggle button:disabled{cursor:not-allowed;opacity:.55}.date-sim-control{display:inline-flex;align-items:center;gap:8px;padding:4px;border-radius:999px;border:1px solid #e2e8f0;background:#fff}.date-sim-control input[type=date]{border:none;background:#f8fafc;color:#334155;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:700}.date-sim-control .date-reset-btn{border-radius:999px;padding:7px 12px;font-size:12px;white-space:nowrap}.socket-chip,.notice-chip{border:1px solid #e2e8f0;background:#f8fafc;color:#334155;border-radius:12px;padding:8px 10px;font-size:12px;font-weight:800;cursor:pointer}.socket-chip.connected{background:#dcfce7;border-color:#86efac;color:#166534}.socket-chip.connecting{background:#fef3c7;border-color:#fcd34d;color:#92400e}.socket-chip.disconnected{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.ops-ribbon{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:14px;margin-bottom:16px}.ops-tasks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.task-card{border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc;padding:12px;display:grid;gap:6px;text-align:left;cursor:pointer}.task-card strong{font-size:12px;color:#475569}.task-card span{font-size:18px;font-weight:900;color:#0f172a}.ops-quick{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.notice-panel{margin-top:-4px}.notice-list{display:grid;gap:8px}.notice-item{border:1px solid #e2e8f0;background:#f8fafc;border-radius:12px;padding:10px 12px;text-align:left;font-size:13px;font-weight:700;cursor:pointer}.notice-item.warn{border-color:#fcd34d;background:#fffbeb;color:#92400e}.notice-item.info{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}.notice-item.success{border-color:#86efac;background:#ecfdf3;color:#166534}.timetable-actions{display:flex;gap:10px;align-items:center}.timetable-header-bar .timetable-actions{justify-content:flex-end;flex-wrap:nowrap}.timetable-header-bar .students-filters{margin-bottom:0;align-self:center}.timetable-header-bar .edit-toggle,.timetable-header-bar .bulk-open{align-self:center;white-space:nowrap}.timetable-actions select{border:none;background:#f1f5f9;border-radius:12px;padding:8px 10px;font-size:12px}.search{border:none;background:#f1f5f9;border-radius:14px;padding:10px 14px;font-size:12px;min-width:160px}.user-chip{background:#0f172a;color:#fff;padding:10px 14px;border-radius:999px;font-size:12px;font-weight:700;border:none;cursor:pointer}.user-chip:hover{filter:brightness(1.05)}.modal-divider{height:1px;background:#0f172a14;margin:20px 0}.success-text{color:#0f766e;font-size:13px;margin:8px 0 0}.color-picker{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.color-swatch{width:28px;height:28px;border-radius:999px;border:2px solid transparent;cursor:pointer;box-shadow:0 0 0 1px #0f172a14}.color-swatch.active{border-color:#0f172a;box-shadow:0 0 0 2px #0f172a33}.color-swatch.custom{padding:0;overflow:hidden;position:relative;background:conic-gradient(#ef4444,#f59e0b,#facc15,#10b981,#22c55e,#0ea5e9,#3b82f6,#8b5cf6,#db2777,#ef4444)}.color-swatch.custom:after{content:"+";position:absolute;inset:0;display:grid;place-items:center;color:#0f172a;font-size:12px;font-weight:800;background:#ffffff8c;border-radius:999px}.color-swatch.custom input[type=color]{position:absolute;inset:0;border:none;padding:0;background:transparent;cursor:pointer;opacity:0}.color-input{border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px;font-size:12px;width:110px}.panel{background:#fff;border-radius:24px;padding:24px;border:1px solid #eef2f6;margin-bottom:20px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.board-header-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.board-header-title h2{margin:0;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.board-back-inline{width:36px;height:36px;padding:0;border-radius:12px;font-size:18px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.board-primary{background:#0f172a;color:#fff;padding:10px 18px;border-radius:14px;font-weight:700;cursor:pointer;border:none;white-space:nowrap}.ghost{border:none;background:#f1f5f9;color:#475569;padding:10px 16px;border-radius:14px;font-weight:700;cursor:pointer}.list-grid{display:grid;gap:14px}.list-card{display:flex;gap:16px;align-items:center;background:#f8fafc;padding:14px;border-radius:18px}.list-tag{width:8px;height:46px;border-radius:999px}.timetable{display:grid;gap:12px}.timetable-header-bar{background:#fff;padding:28px;border-radius:40px;border:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.timetable-header-bar h2{font-size:22px;font-weight:800;text-transform:uppercase;letter-spacing:-1px;margin:0}.edit-toggle{padding:10px 16px;border-radius:12px;font-weight:800;border:none;background:#e2e8f0;color:#64748b;cursor:pointer}.edit-toggle.active{background:#111827;color:#fff}.edit-toggle:disabled{background:#f1f5f9;color:#cbd5f5;cursor:not-allowed}.bulk-open{background:#10b981;color:#fff;border:none;padding:10px 16px;border-radius:12px;font-weight:800;cursor:pointer}.timetable-table{background:#fff;border-radius:40px;border:1px solid #e2e8f0;overflow-x:auto;box-shadow:0 20px 40px #0f172a0f;background:linear-gradient(180deg,#fff,#f8fafc)}.timetable-mobile{display:none;background:#fff;border-radius:32px;border:1px solid #e2e8f0;overflow-x:auto;box-shadow:0 20px 40px #0f172a0f;background:linear-gradient(180deg,#fff,#f8fafc);margin-top:12px}.timetable-hint{font-size:12px;color:#94a3b8;margin:4px 0 12px;display:none}.timetable-table table{width:100%;border-collapse:collapse;min-width:1100px;table-layout:fixed}.timetable-mobile table{width:100%;border-collapse:collapse;min-width:620px;table-layout:fixed}.timetable-table th,.timetable-mobile th{background:#f8fafc99;padding:18px;font-size:12px;font-weight:800;color:#1f2937;border-bottom:1px solid #e2e8f0}.timetable-table th.weekend,.timetable-mobile th.weekend{color:#f97316}.timetable-table td,.timetable-mobile td{border-right:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9;padding:6px;vertical-align:top;height:auto}.timetable-table td:last-child,.timetable-table th:last-child,.timetable-mobile td:last-child,.timetable-mobile th:last-child{border-right:none}.timetable-table .time-col,.timetable-mobile .time-col{width:120px;text-align:center;background:#f8fafc66;position:sticky;left:0;z-index:2}.timetable-table th.time-col,.timetable-mobile th.time-col{z-index:3}.period-label{display:block;font-size:12px;font-weight:800;color:#334155}.period-time{display:block;font-size:10px;color:#94a3b8;margin-top:4px;line-height:1.3}.period-time em{display:block;font-style:normal}.period-time em.weekday{color:#64748b}.period-time em.weekend{color:#f97316}.cell{min-height:140px;position:relative;background:#f8fafc;border-radius:12px;height:100%}.timetable-table td.weekend,.timetable-table th.weekend,.timetable-mobile td.weekend,.timetable-mobile th.weekend,.cell.weekend{background:#fff7ed}.cell.selected{background:#6366f114;box-shadow:inset 0 0 0 2px #6366f140}.cell-scroll{display:grid;grid-auto-rows:1fr;gap:6px;height:100%;overflow:hidden;min-width:0;padding:4px}.lesson-chip{border-radius:14px;padding:8px;font-size:11px;font-weight:700;box-shadow:none;cursor:pointer}.lesson-chip.all{border:1px solid #e5e7eb}.lesson-chip h4{margin:0 0 6px;font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-summary{width:100%;height:100%;border:1px solid #e2e8f0;background:#fff;color:#0f172a;font-size:12px;font-weight:800;border-radius:16px;cursor:pointer;display:grid;place-items:center;gap:4px;box-shadow:0 8px 20px #0f172a0f}.cell-summary.is-empty{border-color:#93c5fd;background:linear-gradient(180deg,#eff6ff,#dbeafe);color:#1e3a8a}.cell-summary.is-empty .summary-count,.cell-summary.is-empty .summary-label,.cell-summary.is-empty .summary-sub{color:#1e3a8a}.cell-summary.is-busy{border-color:#fca5a5;background:linear-gradient(180deg,#fef2f2,#fee2e2);color:#991b1b}.cell-summary.is-busy .summary-count,.cell-summary.is-busy .summary-label,.cell-summary.is-busy .summary-sub{color:#991b1b}.cell-summary.is-normal{border-color:#a7f3d0;background:linear-gradient(180deg,#ecfdf5,#d1fae5);color:#065f46}.cell-summary.is-normal .summary-count,.cell-summary.is-normal .summary-label,.cell-summary.is-normal .summary-sub{color:#065f46}.summary-count{font-size:20px;font-weight:900;color:#0f172a}.summary-label{font-size:12px;color:#64748b}.summary-sub{font-size:10px;color:#94a3b8}.list-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;border:1px solid #e2e8f0;font-size:12px;background:#f8fafc;cursor:pointer}.list-row strong{font-weight:800}.list-row em{font-style:normal;color:#94a3b8}.list-row:hover{background:#fff;box-shadow:0 6px 18px #0f172a14}.lesson-chip.fill{display:flex;flex-direction:column;justify-content:space-between;height:100%}.lesson-chip.solo{height:100%;width:100%;border-radius:12px;display:flex;flex-direction:column;justify-content:space-between}.lesson-card{border:2px solid #e2e8f0;border-radius:20px;padding:6px;background:#fff;width:100%;min-width:0;height:100%;min-height:116px;display:flex;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.lesson-card:hover{transform:translateY(-2px);box-shadow:0 8px 18px #0f172a1f}.lesson-card-inner{border-radius:16px;padding:10px;width:100%;min-width:0;flex:1;display:flex;flex-direction:column;justify-content:flex-start;gap:2px;font-weight:800;color:inherit;filter:saturate(1.1);overflow:hidden}.lesson-subject{font-size:10px;opacity:1;color:inherit;font-weight:800;line-height:1.2;min-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-title{font-size:11px;line-height:1.2;color:inherit;font-weight:900;display:block;width:100%;min-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-students{display:block;width:100%;font-size:10px;font-weight:700;color:inherit;opacity:.9;margin-top:1px;line-height:1.25;min-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-meta{display:flex;align-items:center;gap:8px;margin-top:auto;min-height:20px}.lesson-count{background:#ffffffb3;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:800;color:inherit}.lesson-room{font-size:10px;color:#0f172a8c;line-height:1.2;min-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-meta{display:flex;justify-content:space-between;font-size:9px;opacity:.8}.lesson-chip.solo{height:100%}.timetable-grid{display:grid;grid-template-columns:80px repeat(7,1fr);gap:8px}.timetable-header{text-align:center;font-weight:700;color:#475569;padding:6px 0}.timetable-header.weekend{color:#f97316}.timetable-row{display:contents}.period-label{background:#f8fafc;border-radius:10px;padding:10px;text-align:center;font-size:12px;font-weight:700}.period-time{font-size:10px;color:#94a3b8;margin-top:4px;line-height:1.2}.timetable-cell{min-height:120px;background:#f8fafc;border-radius:18px;padding:10px;display:grid;gap:8px}.timetable-cell.selected{outline:2px solid #10b981;background:#ecfdf3}.timetable-grid.compact .timetable-cell{min-height:80px;padding:8px}.bulk-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.bulk-bar select,.bulk-bar input{border:none;background:#f1f5f9;border-radius:12px;padding:8px 10px;font-size:12px}.timetable-cell.weekend{background:#fff7ed}.timetable-card{border:2px solid transparent;border-radius:18px;padding:12px;display:grid;gap:6px;cursor:grab;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 6px 18px #0f172a14}.timetable-card:active{cursor:grabbing}.card-subject{font-size:11px;font-weight:800;text-transform:uppercase;opacity:.7}.card-title{font-size:15px;font-weight:800}.card-meta{display:flex;gap:8px;align-items:center;font-size:11px;font-weight:700}.card-count{padding:4px 8px;border-radius:999px;background:#ffffffb3}.card-room{opacity:.7}.timetable-compact{display:grid;gap:6px;align-content:center;text-align:center;font-size:12px;font-weight:800;color:#334155;padding:6px}.compact-count{font-size:13px}.compact-meta{font-size:10px;color:#94a3b8}.compact-dots{display:flex;gap:4px;justify-content:center;align-items:center}.compact-dots span{width:10px;height:10px;border-radius:999px}.compact-dots em{font-style:normal;font-size:10px;color:#94a3b8}.compact-empty{font-size:12px;color:#cbd5f5}.timetable-item{display:grid;grid-template-columns:20px 1fr auto;gap:12px;align-items:center;background:#f8fafc;padding:12px 14px;border-radius:16px}.dot{width:10px;height:10px;border-radius:999px}.study-cards{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.study-card{background:#f8fafc;padding:18px;border-radius:18px}.study-card .big{font-size:26px;font-weight:800;margin:8px 0}.stats-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stats-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:16px;background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:12px 14px;box-shadow:0 10px 18px #0f172a0f}.stats-filter{display:grid;gap:6px}.stats-filter label{font-size:13px;font-weight:800;color:#64748b}.stats-filter input{border:1px solid #e2e8f0;border-radius:12px;padding:10px 12px;font-size:13px;background:#f8fafc}.study-stats-table{margin-top:24px;background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:16px 16px 98px;box-shadow:0 10px 20px #0f172a0f}.study-stats-table .table-header{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:800;margin-bottom:12px;color:#0f172a}.study-stats-table .table-header-range{font-size:12px;font-weight:700;color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;padding:4px 10px;white-space:nowrap}.study-stats-table .table-wrap{overflow:auto}.study-stats-table table{width:100%;border-collapse:collapse;font-size:13px}.study-stats-table th,.study-stats-table td{text-align:left;padding:10px 12px;border-bottom:1px solid #e2e8f0}.study-stats-table th{color:#64748b;font-weight:800;background:#f8fafc}.stat-card{background:#f8fafc;padding:18px;border-radius:18px;border:1px solid #e2e8f0;box-shadow:0 10px 18px #0f172a0f;display:grid;gap:8px}.stat-card.highlight{background:linear-gradient(135deg,#eff6ff,#f8fafc)}.stat-card p{margin:0;font-size:13px;font-weight:700;color:#64748b}.stat-card strong{font-size:20px;color:#0f172a}.stat-card.calendar-card{background:linear-gradient(135deg,#ecfeff,#f8fafc)}.stat-card .calendar-range{font-weight:800;color:#0f172a;font-size:14px}.calendar-inputs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}.calendar-inputs input{border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px;font-size:13px;background:#fff}.student-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.student-card{background:#f8fafc;border-radius:18px;padding:16px;display:grid;gap:10px}.student-meta{display:grid;gap:4px;font-size:12px;color:#475569}.students-header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:16px}.students-title{margin:0;font-size:28px;font-weight:900;letter-spacing:-.5px}.students-bar{width:36px;height:4px;border-radius:999px;background:#10b981;margin-top:8px}.students-filters{display:flex;flex-wrap:wrap;gap:8px;padding:8px;background:#f1f5f9;border-radius:18px;width:fit-content;margin-bottom:12px}.chip{border:none;background:transparent;padding:9px 15px;border-radius:14px;font-size:13px;font-weight:800;color:#94a3b8;cursor:pointer}.chip.active{background:#fff;color:#0f172a;box-shadow:0 6px 18px #0f172a14}.students-search{max-width:340px;margin-bottom:20px}.students-search input{width:100%;border:none;background:#fff;border-radius:18px;padding:13px 16px;font-size:14px;box-shadow:0 6px 16px #0f172a0f}.students-section{display:grid;gap:24px}.grade-group{display:grid;gap:12px}.grade-header{display:flex;align-items:center;gap:10px}.grade-pill{background:#f1f5f9;color:#0f172a;font-size:13px;font-weight:800;padding:8px 12px;border-radius:10px}.grade-line{height:1px;flex:1;background:#e2e8f0}.student-list{display:grid;gap:10px}.student-row{background:#fff;border:1px solid #f1f5f9;border-radius:18px;padding:18px;min-height:96px;display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center}.student-main{display:flex;gap:14px;align-items:center;min-width:0}.student-avatar{width:50px;height:50px;border-radius:16px;background:#f1f5f9;display:grid;place-items:center;font-weight:800;font-size:16px;color:#0f172a}.student-info{min-width:0;display:grid;gap:7px}.student-name{font-weight:800;font-size:17px;line-height:1.2}.student-tags{display:flex;flex-wrap:wrap;gap:6px}.tag{background:#f8fafc;color:#475569;font-size:12px;font-weight:700;padding:5px 10px;border-radius:10px}.tag-lesson{background:#ecfdf3;color:#047857}.student-contacts{font-size:14px;line-height:1.35;color:#64748b;display:grid;gap:6px;text-align:right}.students-archive{margin-top:24px;border-top:1px solid #e2e8f0;padding-top:16px;display:grid;gap:12px}.archive-toggle{border:none;background:transparent;color:#94a3b8;font-size:12px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;display:flex;gap:8px;align-items:center;cursor:pointer}.archive-list{display:grid;gap:8px}.archive-row{background:#f8fafc;border-radius:14px;padding:10px 12px;display:flex;gap:12px;align-items:center;color:#64748b;font-size:11px}.archive-status{background:#fff;border:1px solid #e2e8f0;padding:2px 6px;border-radius:8px;font-size:9px;font-weight:800;text-transform:uppercase}.archive-school{color:#94a3b8}.teacher-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.teacher-card{background:#f8fafc;padding:16px;border-radius:18px;display:flex;gap:12px;align-items:flex-start;min-height:96px}.teacher-avatar{width:42px;height:42px;border-radius:14px;background:#0f172a;color:#fff;display:grid;place-items:center;font-weight:700}.teacher-info{min-width:0;flex:1;display:grid;gap:4px}.teacher-info h3{margin:0;font-size:15px;font-weight:700}.teacher-info .muted{margin:0;font-size:12px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teacher-actions{margin-left:auto;display:flex;gap:8px;flex-shrink:0;align-self:center}@media(max-width:900px){.teacher-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.teacher-card{min-height:90px}}@media(max-width:600px){.teacher-grid{grid-template-columns:1fr}.teacher-card{align-items:center;min-height:88px}.teacher-actions{align-self:center}}.danger{border:none;background:#fee2e2;color:#b91c1c;padding:8px 12px;border-radius:12px;font-weight:700;cursor:pointer}.danger:disabled{opacity:.5;cursor:not-allowed}.danger-zone{margin-top:12px;padding:12px;border-radius:14px;background:#fff7ed;border:1px solid #fed7aa;display:grid;gap:8px}.danger-input{border:1px solid #fed7aa;border-radius:10px;padding:8px 10px;font-size:12px}.empty-state{color:#94a3b8;font-size:12px}.board-list{display:grid;gap:12px}.board-list.list{gap:10px}.board-list-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:12px;align-items:center;width:100%}.board-list-row .board-title{font-size:15px;font-weight:800;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:8px}.board-attach-count{background:#e0f2fe;color:#0f172a;font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px}.board-author,.board-date{font-size:12px;color:#64748b;white-space:nowrap}.board-controls{display:grid;gap:12px;margin-bottom:16px}.board-header-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;min-height:40px}.board-header-actions .board-search{min-width:240px}.board-hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:16px}.board-hero-card{border:1px solid #e2e8f0;background:linear-gradient(135deg,#fff,#f8fafc);border-radius:20px;padding:18px;display:grid;gap:10px;text-align:left;cursor:pointer;box-shadow:0 10px 20px #0f172a14;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.board-hero-card:hover{transform:translateY(-2px);box-shadow:0 16px 28px #0f172a29}.board-hero-card.active{border-color:#0f172a;box-shadow:0 18px 30px #0f172a38}.board-hero-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.board-hero-top-right{display:inline-flex;align-items:center;gap:8px;flex-wrap:nowrap;white-space:nowrap;min-width:0}.board-hero-top-right .muted{white-space:nowrap;font-size:11px;line-height:1.2}.board-new-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid #fde68a;background:#fff7cc;color:#92400e;font-size:11px;font-weight:800;padding:3px 8px;white-space:nowrap}.board-filter-pill{font-size:12px;font-weight:800;color:#0f172a;background:#f1f5f9;border-radius:999px;padding:6px 12px;width:fit-content}.board-category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.board-categories{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.board-cat-card{border:1px solid #e2e8f0;background:#fff;padding:12px 14px;border-radius:16px;font-size:13px;font-weight:800;color:#475569;cursor:pointer;box-shadow:0 8px 16px #0f172a0f;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.board-cat-card.active{border-color:#0f172a;color:#0f172a;box-shadow:0 12px 22px #0f172a29;transform:translateY(-1px)}.board-search{border:1px solid #e2e8f0;border-radius:12px;padding:10px 12px;font-size:13px;min-width:220px;background:#fff}.board-advanced-filters{margin:4px 0 14px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc}.board-advanced-filters select,.board-advanced-filters input[type=date]{border:1px solid #e2e8f0;border-radius:10px;padding:9px 12px;font-size:13px;color:#334155;background:#fff;min-height:38px}.board-advanced-filters select{min-width:88px;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#64748b 50%),linear-gradient(135deg,#64748b 50%,transparent 50%);background-position:calc(100% - 14px) calc(50% - 3px),calc(100% - 9px) calc(50% - 3px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:24px}.attach-filter{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:#475569;padding:6px 2px}.board-card{text-align:left;border:1px solid #e2e8f0;background:#fff;border-radius:18px;padding:26px;display:grid;gap:10px;cursor:pointer;box-shadow:0 10px 18px #0f172a0f;transition:transform .15s ease,box-shadow .15s ease}.board-list.list .board-card{padding:12px 16px;border-radius:14px;box-shadow:none}.board-row-wrap,.board-list-plain{display:grid;gap:8px}.board-list-item{border:1px solid #e2e8f0;background:#fff;border-radius:14px;padding:11px 12px;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:10px;text-align:left;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.board-list-item:hover{border-color:#cbd5e1;box-shadow:0 8px 16px #0f172a14;transform:translateY(-1px)}.board-list-item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#0f172a;font-size:14px;font-weight:800}.board-list-item-author,.board-list-item-date{font-size:12px;color:#64748b;white-space:nowrap}.board-expand{border:1px solid #e2e8f0;border-radius:16px;padding:16px;background:#fff}.board-expand-meta{font-size:12px;color:#64748b;margin-bottom:8px;font-weight:600}.board-expand-content{font-size:14px;color:#0f172a;line-height:1.6;margin-bottom:12px;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.board-card:hover{transform:translateY(-2px);box-shadow:0 16px 26px #0f172a1f}.board-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.board-chip{display:inline-flex;padding:4px 10px;border-radius:999px;background:#e0f2fe;color:#0f172a;font-weight:800;font-size:12px}.board-chip.notice{background:#fee2e2;color:#991b1b}.board-title{font-size:16px;font-weight:800;color:#0f172a}.board-preview{color:#64748b;font-size:13px;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}.board-dropzone{display:grid;gap:8px}.board-drop{border:1px dashed #cbd5f5;background:#f8fafc;border-radius:16px;padding:16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.board-drop.active{border-color:#2563eb;background:#eff6ff}.board-attachments{display:grid;gap:8px;margin-top:10px}.board-attachment{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0;font-size:13px;color:#0f172a}.board-attachment-meta{display:grid;gap:4px}.board-attachment-meta span{font-size:12px;color:#64748b}.board-attachment-actions{display:flex;align-items:center;gap:8px;color:#64748b;font-size:12px}.board-attachment-download{font-weight:700;color:#2563eb;border:none;background:transparent;cursor:pointer}.board-preview{max-width:720px}.board-preview-body{display:grid;gap:12px;padding:16px 0}.board-preview-body img{width:100%;border-radius:12px;border:1px solid #e2e8f0}.board-preview-body iframe{width:100%;height:70vh;border:1px solid #e2e8f0;border-radius:12px}.board-preview-name{font-weight:800;color:#0f172a}.board-preview-file{padding:20px;border-radius:12px;background:#f8fafc;color:#64748b;text-align:center}.board-attachment em{color:#94a3b8;font-style:normal;font-size:12px}.board-meta{display:flex;gap:10px;color:#94a3b8;font-size:12px;font-weight:700;align-items:center}.board-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.board-list.list{grid-template-columns:1fr}.board-view-toggle{display:flex;gap:8px;margin-bottom:8px}.board-view-toggle button{border:1px solid #e2e8f0;background:#f8fafc;border-radius:10px;padding:6px 10px;font-size:12px;font-weight:800;cursor:pointer}.board-view-toggle button.active{background:#0f172a;color:#fff;border-color:#0f172a}.icon-grid,.icon-list{display:inline-block;width:18px;height:18px}.icon-grid{background:linear-gradient(#64748b,#64748b) 0 0/6px 6px no-repeat,linear-gradient(#64748b,#64748b) 12px 0/6px 6px no-repeat,linear-gradient(#64748b,#64748b) 0 12px/6px 6px no-repeat,linear-gradient(#64748b,#64748b) 12px 12px/6px 6px no-repeat}.board-view-toggle button.active .icon-grid{background:linear-gradient(#fff,#fff) 0 0/6px 6px no-repeat,linear-gradient(#fff,#fff) 12px 0/6px 6px no-repeat,linear-gradient(#fff,#fff) 0 12px/6px 6px no-repeat,linear-gradient(#fff,#fff) 12px 12px/6px 6px no-repeat}.icon-list{background:linear-gradient(#64748b,#64748b) 0 2px/18px 3px no-repeat,linear-gradient(#64748b,#64748b) 0 8px/18px 3px no-repeat,linear-gradient(#64748b,#64748b) 0 14px/18px 3px no-repeat}.board-view-toggle button.active .icon-list{background:linear-gradient(#fff,#fff) 0 2px/18px 3px no-repeat,linear-gradient(#fff,#fff) 0 8px/18px 3px no-repeat,linear-gradient(#fff,#fff) 0 14px/18px 3px no-repeat}.board-view-toggle.header{gap:6px;padding:4px;border-radius:12px;align-self:center;display:flex;align-items:center}.board-view-toggle.header button{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center}.board-back{padding:6px 12px;white-space:nowrap}.board-detail-page .ghost{align-self:flex-start}.board-detail-page{background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:24px;display:block}.board-detail-sidebar{border-right:1px solid #e2e8f0;padding-right:14px;display:grid;gap:10px;max-height:70vh;overflow:auto}.board-detail-sidebar-header{font-size:13px;font-weight:800;color:#475569}.board-detail-list{display:grid;gap:8px}.board-detail-item{border:1px solid #e2e8f0;border-radius:12px;padding:10px;background:#f8fafc;text-align:left;display:grid;gap:6px}.board-detail-item.active{border-color:#0f172a;background:#eef2ff}.board-detail-item-title{font-size:13px;font-weight:800;color:#0f172a}.board-detail-item-meta{display:flex;justify-content:space-between;font-size:11px;color:#94a3b8}.board-detail-item-preview{font-size:12px;color:#64748b;overflow-wrap:anywhere;word-break:break-word}.board-detail-main{display:grid;gap:12px}.board-detail-header h3{margin:8px 0 4px;font-size:22px}.board-detail-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.board-detail-content{white-space:pre-wrap;line-height:1.7;color:#334155;overflow-wrap:anywhere;word-break:break-word}.board-calendar{background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:18px;box-shadow:0 16px 30px #0f172a14}.board-calendar-wrap{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(360px,.85fr);gap:16px}.calendar-missing{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:14px;display:grid;gap:10px;align-content:start;box-shadow:0 12px 24px #0f172a0f;max-height:calc(100vh - 230px);overflow:auto}.calendar-missing-header{font-size:13px;font-weight:800;color:#0f172a;display:flex;align-items:center;justify-content:space-between;gap:8px}.calendar-term-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #e2e8f0;border-radius:12px;padding:8px 10px;background:#fff}.calendar-term-nav strong{font-size:13px;color:#0f172a;font-weight:800}.calendar-missing-list{display:grid;gap:8px}.calendar-missing-tree{display:grid;grid-template-columns:1fr;gap:10px}.calendar-missing-school{border:1px solid #e2e8f0;border-radius:12px;padding:10px;background:#f8fafc;display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) minmax(220px,2fr);gap:10px;align-items:start}.calendar-missing-col{display:grid;gap:6px}.calendar-missing-col-title{font-size:11px;color:#64748b;font-weight:800}.calendar-missing-grades,.calendar-missing-grade-block{display:grid;gap:6px}.calendar-missing-grade-spacer{height:36px}.calendar-missing-grade,.calendar-missing-subjects,.calendar-missing-subject-group{display:grid;gap:5px}.calendar-missing-subject-empty{border:1px dashed #cbd5e1;border-radius:10px;padding:8px 10px;color:#94a3b8;font-size:12px;font-weight:700;background:#f8fafc}.calendar-missing-subject-row{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center}.calendar-missing-exclude{padding:6px 8px;border-radius:10px;white-space:nowrap}.calendar-missing-item{border:1px solid #e2e8f0;border-radius:12px;padding:8px 10px;background:#f8fafc;font-size:12px;font-weight:700;text-align:left;cursor:pointer}.calendar-missing-item.school{background:#eef2ff;border-color:#c7d2fe;color:#1e3a8a;font-weight:800}.calendar-missing-item.grade{background:#ecfeff;border-color:#bae6fd;color:#0c4a6e}.calendar-missing-item.subject{background:#fff}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(90px,1fr));gap:10px;min-width:640px}.calendar-grid-scroll{overflow-x:auto;overflow-y:hidden;padding-bottom:6px}.calendar-day{text-align:center;font-weight:800;color:#64748b;font-size:12px}.calendar-day.sat,.calendar-day.sun{color:#ef4444}.calendar-weekday{display:none;font-size:11px;font-weight:800;color:#64748b}.calendar-weekday.sun,.calendar-weekday.sat{color:#ef4444}.calendar-cell{background:#fff;border-radius:16px;padding:10px;min-height:112px;border:1px solid #e2e8f0;box-shadow:0 8px 16px #0f172a0f;display:grid;gap:6px;cursor:pointer;overflow:auto}.calendar-cell.weekend{background:#fff7ed;border-color:#fde68a}.calendar-cell.drag-over{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb40;background:#eff6ff}.calendar-cell.empty{background:transparent;border:none;box-shadow:none;cursor:default}.calendar-date{font-weight:800;color:#0f172a;font-size:12px}.calendar-item{background:#e0f2fe;border:none;border-radius:8px;padding:4px 7px;font-size:9px;font-weight:800;text-align:left;cursor:pointer;width:100%;min-width:0;max-width:100%;box-sizing:border-box;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:clip}.calendar-item.calendar-item-subj-algebra{background:#fee2e2;color:#991b1b}.calendar-item.calendar-item-subj-calc1{background:#dcfce7;color:#166534}.calendar-item.calendar-item-subj-calc2{background:#dbeafe;color:#1d4ed8}.calendar-item.calendar-item-subj-prob{background:#fef3c7;color:#92400e}.calendar-item.calendar-item-subj-geo{background:#ede9fe;color:#6d28d9}.calendar-item.calendar-item-subj-econ{background:#cffafe;color:#155e75}.calendar-item.calendar-item-subj-calc15{background:#fce7f3;color:#9d174d}.calendar-item.calendar-item-subj-none{background:#fff;color:#334155;border:1px solid #cbd5e1}.calendar-items{display:grid;gap:6px;margin-top:2px;min-width:0;align-content:start;grid-auto-rows:min-content}.exam-day-list{margin-top:16px;border-top:1px solid #e2e8f0;padding-top:14px;display:grid;gap:16px}.exam-day-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.exam-day-group{display:grid;gap:10px}.exam-day-title{font-weight:800;color:#0f172a;font-size:14px}.exam-day-items{display:grid;gap:8px}.exam-day-item{display:grid;gap:8px;border:1px solid #e2e8f0;border-radius:12px;padding:10px 12px;background:#f8fafc}.exam-day-item-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.exam-day-item-top strong{font-size:14px;font-weight:800;color:#0f172a}.exam-day-item-content{font-size:13px;color:#334155;line-height:1.45;white-space:pre-wrap}.exam-day-item-actions{display:flex;justify-content:flex-end;gap:8px}.board-material-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;align-items:start}.board-material-card{border:1px solid #dbe3ee;border-radius:16px;background:#fff;overflow:hidden;align-self:start}.board-material-card.open{border-color:#b8c6da;box-shadow:0 10px 20px #0f172a14}.board-material-head{width:100%;border:none;background:#f8fafc;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px 10px;padding:12px 14px;text-align:left;cursor:pointer}.board-material-title{font-size:14px;font-weight:800;color:#0f172a;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-material-author{grid-column:2 / 3;font-size:12px;color:#64748b}.board-material-date{grid-column:3 / 4;font-size:12px;color:#64748b;white-space:nowrap;justify-self:end}.board-material-body{padding:12px 14px;display:grid;gap:10px}.board-material-actions{display:flex;justify-content:flex-end;gap:8px}.exam-day-subject{font-size:12px;color:#2563eb}.exam-day-subject-list{display:flex;flex-wrap:wrap;gap:6px}.exam-day-modal-card{width:min(980px,92vw);max-height:88vh;overflow:hidden;display:grid;grid-template-rows:auto 1fr}.board-exam-post-modal{width:min(760px,94vw)}.exam-day-modal-card .exam-day-list{overflow:auto;padding-right:4px}.exam-day-modal-actions{display:flex;align-items:center;gap:8px}@media(max-width:960px){.board-calendar-wrap{grid-template-columns:1fr}.calendar-missing{order:2}.calendar-cell{min-height:80px;padding:8px}.calendar-item{padding:4px 6px}.calendar-missing-school{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:720px){.section-header{flex-direction:column;align-items:flex-start;gap:12px}.board-header-actions{width:100%;display:grid;grid-template-columns:1fr;gap:10px;justify-content:flex-start;align-items:flex-start}.board-header-actions .board-search{width:100%;min-width:0}.board-primary{width:auto;justify-content:center;min-width:110px}.board-back{width:auto;min-width:96px}.board-list-row{grid-template-columns:auto 1fr;grid-template-areas:"chip title" "author date";row-gap:6px;column-gap:10px}.board-list-row .board-chip{grid-area:chip}.board-list-row .board-title{grid-area:title}.board-list-row .board-author{grid-area:author;justify-self:start}.board-list-row .board-date{grid-area:date;justify-self:end}.board-list-item{grid-template-columns:auto minmax(0,1fr);row-gap:6px;column-gap:10px}.board-list-item-title{grid-column:2 / 3}.board-list-item .board-attach-count,.board-list-item-author,.board-list-item-date{grid-column:1 / -1;justify-self:start}.board-view-toggle.header{order:-1;justify-self:flex-start}.calendar-grid{grid-template-columns:repeat(7,minmax(90px,1fr));min-width:640px;gap:8px}.calendar-day{display:block}.calendar-weekday{display:none}.calendar-cell.empty{display:grid}.calendar-cell{min-height:92px;border-radius:14px}.calendar-date{font-size:12px}.calendar-item{font-size:9px;padding:3px 6px}.calendar-missing-school{grid-template-columns:1fr}.calendar-term-nav{flex-wrap:wrap}.exam-day-modal-card{width:min(640px,94vw)}.calendar-missing-tree,.board-material-grid{grid-template-columns:1fr}.board-material-head{grid-template-columns:auto minmax(0,1fr)}.board-material-date{grid-column:1 / -1;justify-self:start}}.board-attach{margin-left:auto;background:#eef2ff;color:#4338ca;font-weight:800;font-size:11px;padding:4px 8px;border-radius:999px}.board-modal{max-width:720px;width:min(92vw,720px)}.board-library{width:min(92vw,980px);max-height:88vh;overflow:hidden;display:grid;grid-template-rows:auto auto 1fr}.board-library-controls{margin:10px 0 4px}.board-library-controls input{width:100%;border:1px solid #e2e8f0;border-radius:12px;padding:9px 12px;font-size:13px}.board-library-list{margin-top:10px;display:grid;gap:8px;overflow:auto;padding-right:4px}.board-library-row{border:1px solid #e2e8f0;border-radius:12px;padding:10px 12px;display:flex;justify-content:space-between;gap:10px;align-items:center;background:#f8fafc}.board-library-main{display:grid;gap:4px}.board-library-main strong{font-size:13px;color:#0f172a}.board-library-main span{font-size:12px;color:#64748b}.board-library-actions{display:flex;gap:8px}.board-modal-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.board-modal-header h3{margin:6px 0}.board-exam-meta{display:flex;gap:16px;font-size:13px;font-weight:700;color:#64748b;margin:8px 0}.board-content{margin-top:12px;line-height:1.6;white-space:pre-wrap}.board-form{display:grid;gap:12px;margin-top:12px}.board-form label{display:grid;gap:6px;font-weight:800;color:#64748b;font-size:13px}.board-form input,.board-form select,.board-form textarea{border:1px solid #e2e8f0;border-radius:12px;padding:10px 12px;font-size:13px}.board-exam-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.messenger-modal-card{width:min(800px,80vw)!important;max-width:min(800px,80vw)!important;height:min(64vh,520px);max-height:64vh;padding:0!important;overflow:hidden!important;border-radius:20px;display:grid;grid-template-rows:1fr;gap:0!important}.messenger-header{position:relative;min-height:64px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #e2e8f0;background:linear-gradient(90deg,#f8fbff,#fff);padding:0 56px}.messenger-header h3{margin:0;font-size:22px;font-weight:900;color:#0f172a;letter-spacing:-.02em}.messenger-close-btn{position:absolute;top:50%;right:14px;transform:translateY(-50%);width:36px;height:36px;border-radius:10px;border:1px solid #dbe3ee;background:#f8fafc;color:#334155;font-size:22px;line-height:1;cursor:pointer}.messenger-panel{padding:0}.messenger-shell{display:grid;grid-template-columns:minmax(190px,220px) minmax(0,1fr);min-height:0;height:100%;background:#fff;overflow:hidden}.messenger-list{border-right:1px solid #e2e8f0;background:#f8fbff;display:grid;grid-template-rows:auto 1fr;min-width:0}.messenger-list-header{padding:14px 16px;display:flex;align-items:center;border-bottom:1px solid #e2e8f0}.messenger-list-header h3{margin:0;font-size:19px;font-weight:900;color:#0f172a}.messenger-contacts{display:grid;gap:6px;padding:10px 12px 12px;overflow:auto;align-content:start}.messenger-contact{border:1px solid #eef2f7;background:#fff;border-radius:12px;padding:9px 10px;text-align:left;display:grid;gap:6px;cursor:pointer}.messenger-contact.active{border-color:#b8c6da;background:#edf3fb;box-shadow:0 6px 14px #0f172a14}.contact-main{display:flex;align-items:center;justify-content:flex-start;gap:8px}.contact-main strong{font-size:16px;font-weight:800;color:#0f172a}.contact-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:#94a3b8}.contact-meta .badge{background:#0f172a;color:#fff;border-radius:999px;padding:2px 6px;font-size:11px;font-weight:800}.messenger-chat{display:grid;grid-template-rows:auto 1fr auto;background:#f3f7fc;min-width:0;overflow:hidden}.messenger-chat-header{padding:14px 18px;border-bottom:1px solid #dbe3ee;background:#e8eff8;display:flex;justify-content:space-between;align-items:center}.messenger-chat-header strong{font-size:16px;font-weight:800;color:#0f172a}.messenger-messages{padding:14px;display:flex;flex-direction:column;gap:10px;background:#f3f7fc;overflow:auto;min-width:0}.messenger-row{display:flex;align-items:flex-end;gap:6px}.messenger-row.out{justify-content:flex-end}.messenger-row.in{justify-content:flex-start}.message-time{font-size:10px;color:#0f172a99;white-space:nowrap}.messenger-input{border-top:1px solid #dbe3ee;padding:12px;display:grid;grid-template-columns:1fr auto;gap:10px;background:#e8eff8;align-items:end}.messenger-input textarea{border:1px solid #e2e8f0;border-radius:14px;padding:10px 12px;font-size:14px;resize:none;min-height:40px;max-height:100px;line-height:1.4;background:#fff}.messenger-send-btn{min-width:74px;padding:10px 14px;border-radius:12px;font-size:14px;font-weight:800}.messenger-empty-contact,.messenger-empty-chat{color:#64748b;font-size:13px;padding:16px}.messenger-empty-chat{margin:auto;background:#ffffff94;border-radius:12px}.messenger-icon{font-size:22px;line-height:1}.messenger-badge{position:absolute;top:8px;right:8px;background:#ef4444;color:#fff;font-size:11px;font-weight:800;padding:2px 6px;border-radius:999px;min-width:18px;text-align:center}.messenger-fab{position:fixed;right:22px;bottom:22px;width:64px;height:64px;border-radius:50%;background:#2563eb;color:#fff;font-weight:800;border:none;box-shadow:0 16px 30px #2563eb59;cursor:pointer;z-index:60}.backup-box{background:#0f172a;color:#e2e8f0;padding:18px;border-radius:18px;display:grid;gap:10px}.backup-box code{background:#1f2937;padding:8px 10px;border-radius:12px;display:inline-block}.backup-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.backup-list-box,.backup-replace-box{border:1px solid #dbe3ee;border-radius:18px;padding:14px;background:#f8fafc}.backup-list-header{margin-bottom:8px}.backup-list-header h3,.backup-replace-box h3{margin:0;font-size:17px}.backup-empty{color:#64748b;font-size:14px;padding:8px 0}.backup-list{display:grid;gap:8px;max-height:280px;overflow:auto}.backup-row{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;border:1px solid #dbe3ee;border-radius:12px;padding:10px}.backup-meta{display:grid;gap:4px;min-width:0}.backup-meta strong{font-size:14px;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.backup-meta span{color:#64748b;font-size:12px}.backup-message{margin-bottom:10px;border-radius:12px;border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;padding:10px 12px;font-weight:700}.backup-job-box{margin-bottom:10px;border-radius:14px;border:1px solid #dbe3ee;background:#0f172a;color:#e2e8f0;padding:10px}.backup-job-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.backup-job-status{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;text-transform:uppercase;border:1px solid rgba(255,255,255,.25)}.backup-job-status.running{color:#93c5fd}.backup-job-status.done{color:#86efac}.backup-job-status.failed{color:#fca5a5}.backup-job-log{margin:0;border-radius:10px;border:1px solid #1e293b;background:#020617;color:#e2e8f0;font-size:12px;line-height:1.45;max-height:220px;overflow:auto;padding:10px;white-space:pre-wrap;word-break:break-word}.backup-replace-box{margin-top:12px}.backup-replace-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.backup-replace-controls select,.backup-replace-controls input[type=file]{border:1px solid #dbe3ee;border-radius:12px;background:#fff;min-height:42px;padding:8px 10px}.hidden-file-input{display:none}.backup-replace-rows{display:grid;gap:8px;margin-bottom:10px}.backup-replace-row{display:grid;grid-template-columns:minmax(260px,1fr) minmax(180px,1fr) auto;gap:10px;align-items:center}.backup-replace-row select,.backup-replace-row input[type=file]{border:1px solid #dbe3ee;border-radius:12px;background:#fff;min-height:42px;padding:8px 10px}@media(max-width:980px){.backup-grid,.backup-replace-row{grid-template-columns:1fr}}.modal-backdrop{position:fixed;inset:0;background:#0f172a73;display:grid;place-items:center;z-index:50;pointer-events:auto}.modal-backdrop.modal-top{z-index:80}.modal-backdrop.student-top{z-index:90}.modal-backdrop.modal-bottom-right{place-items:end end;padding:16px 16px 98px}.modal-card{background:#fff;width:min(520px,92vw);border-radius:24px;padding:24px;display:grid;gap:16px;position:relative;z-index:1;pointer-events:auto}.student-modal-card{width:min(500px,90vw);max-height:min(72vh,760px);overflow-y:auto;gap:12px;padding:20px}.schedule-empty-modal{width:min(360px,90vw)}.schedule-empty-modal h3{margin:0}.schedule-empty-modal p{margin:0;color:#475569;font-size:14px}.schedule-change-modal{width:min(760px,92vw);display:grid;gap:12px}.schedule-change-target{border:1px solid #dbe3ee;border-radius:12px;background:#f8fafc;padding:10px 12px;display:grid;gap:4px}.schedule-change-target .label{font-size:11px;font-weight:800;color:#64748b}.schedule-change-target strong{font-size:16px;color:#0f172a}.schedule-change-target .meta{font-size:13px;color:#475569}.schedule-change-actions{display:flex;gap:8px}.schedule-change-actions .ghost.active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.schedule-change-form{display:grid;gap:10px}.schedule-change-week-tabs{display:grid;gap:6px}.schedule-change-week-tabs.top{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:4px}.schedule-change-week-tabs .ghost.active{border-color:#2563eb;background:#dbeafe;color:#1d4ed8}.schedule-change-form label{display:grid;gap:6px;font-size:13px;color:#475569;font-weight:700}.schedule-change-form input,.schedule-change-form select{border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;font-size:14px;color:#0f172a;background:#fff}.schedule-change-preview{border:1px solid #dbe3ee;border-radius:12px;background:#f8fafc;padding:10px;display:grid;gap:8px}.schedule-change-preview strong{font-size:13px;color:#334155}.schedule-change-preview-list{display:grid;gap:6px;max-height:220px;overflow:auto}.schedule-change-week-table-wrap{overflow:auto;max-height:420px}.schedule-change-week-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.schedule-change-week-table th,.schedule-change-week-table td{border:1px solid #dbe3ee;padding:6px;font-size:11px;vertical-align:top;background:#fff}.schedule-change-week-table th{background:#eef2ff;color:#334155;font-weight:800;text-align:center;line-height:1.25}.schedule-change-week-table td:first-child,.schedule-change-week-table th:first-child{width:56px;text-align:center;background:#f8fafc;font-weight:800}.schedule-change-week-table td.empty{cursor:pointer;background:#f8fafc}.schedule-change-week-table td.empty:hover{background:#ecfeff;border-color:#67e8f9}.schedule-change-week-table td.filled{background:#f1f5f9}.schedule-change-week-table td.filled.move-in{background:#fee2e2;border-color:#fca5a5}.schedule-change-week-table td.target{box-shadow:inset 0 0 0 2px #2563eb;background:#dbeafe}.schedule-change-week-table .empty-label{font-size:11px;color:#64748b}.schedule-change-week-table .filled-lessons{display:flex;flex-wrap:wrap;gap:4px}.schedule-change-week-table .lesson-chip{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;max-width:100%;padding:3px 6px;border-radius:10px;border:1px solid #cbd5e1;background:#f8fafc;color:#1e293b;font-size:9px;font-weight:700;line-height:1.2;white-space:normal;word-break:keep-all;text-align:left}.schedule-change-week-table .lesson-chip:disabled{opacity:.95;cursor:default}.schedule-change-week-table .lesson-chip.clickable{cursor:pointer}.schedule-change-preview-row{display:grid;grid-template-columns:56px minmax(0,1fr);gap:8px;align-items:start;padding:8px;border-radius:10px;border:1px solid #e2e8f0;background:#fff}.schedule-change-preview-row.target{border-color:#2563eb;background:#eff6ff}.schedule-change-preview-row .period{font-size:12px;color:#64748b;font-weight:700}.schedule-change-preview-row .lessons{font-size:13px;color:#334155;word-break:break-word}.schedule-change-preview-row .lessons.timetable-like{display:flex;flex-wrap:wrap;gap:6px}.schedule-change-preview-row .lesson-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;border:1px solid #cbd5e1;background:#f8fafc;color:#1e293b;font-size:12px;font-weight:700}.schedule-change-preview-row .lesson-chip.move-in{background:#ef4444;border-color:#dc2626;color:#fff}.schedule-change-preview-row .lesson-status-mini{display:inline-flex;align-items:center;justify-content:center;padding:1px 6px;border-radius:999px;font-size:10px;font-weight:800;line-height:1.2;color:#fff;background:#ef4444}.schedule-change-week-table .lesson-status-mini{font-size:8px;padding:1px 5px}.schedule-change-week-table .lesson-title-mini{font-size:9px;font-weight:800;line-height:1.2}.schedule-change-week-table .lesson-date-mini{font-size:8px;line-height:1.2;color:inherit;opacity:.9}.schedule-change-preview-row .lesson-chip.move-in .lesson-status-mini{background:#fff;color:#dc2626}.schedule-change-save{width:auto}@media(max-width:980px){.schedule-change-week-tabs.top{grid-template-columns:repeat(2,minmax(0,1fr))}}.schedule-change-modal .modal-actions .schedule-change-btn{min-width:88px;width:88px;justify-content:center}.schedule-supplement-card{border:1px solid #dbe3ee;border-radius:12px;background:#f8fafc;padding:10px;display:grid;gap:10px}.schedule-supplement-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.schedule-supplement-header strong{font-size:13px;color:#334155}.schedule-supplement-form{display:grid;gap:10px}.schedule-supplement-mode{display:flex;gap:8px}.schedule-supplement-form>label{display:grid;gap:6px;font-size:13px;color:#475569;font-weight:700}.schedule-supplement-students>label{display:grid;gap:6px;font-size:13px;color:#475569;font-weight:700}.schedule-supplement-students{display:grid;gap:8px}.supplement-student-grade-list{display:grid;gap:10px;max-height:220px;overflow:auto;border:1px solid #dbe3ee;border-radius:10px;padding:8px;background:#fff}.supplement-student-grade-group{display:grid;gap:6px}.supplement-student-grade-title{font-size:12px;font-weight:800;color:#475569}.supplement-student-chip-wrap{display:flex;flex-wrap:wrap;gap:6px}.supplement-student-chip{border:1px solid #cbd5e1;border-radius:999px;padding:6px 10px;background:#f8fafc;color:#334155;font-size:12px;font-weight:700}.supplement-student-chip.active{border-color:#2563eb;background:#dbeafe;color:#1d4ed8}.supplement-student-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;font-weight:700;color:#475569}.supplement-student-list{display:grid;gap:6px;max-height:160px;overflow:auto;border:1px solid #dbe3ee;border-radius:10px;padding:8px;background:#fff}.supplement-student-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#1e293b}.supplement-help-text{font-size:12px;color:#dc2626;font-weight:700}.schedule-modal{width:min(1180px,97vw);max-height:96vh;overflow-y:auto}.modal-students{display:grid;gap:10px}.modal-students-header{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:800;color:#334155;gap:12px}.modal-students .students-search{width:100%;border:none;background:#f1f5f9;border-radius:12px;padding:10px 12px;font-size:12px}.students-select{display:flex;flex-wrap:wrap;gap:8px;max-height:220px;overflow-y:auto;padding-right:6px}.students-columns{display:grid;grid-template-columns:1fr 2fr;gap:16px}.students-selected,.students-picker{background:#f8fafc;border-radius:16px;padding:12px;border:1px solid #e2e8f0}.column-title{font-size:11px;font-weight:800;color:#475569;margin-bottom:8px}.selected-list{display:flex;flex-wrap:wrap;gap:8px;max-height:260px;overflow-y:auto}.selected-pill{border:none;background:#0f172a;color:#fff;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:700;display:inline-flex;gap:6px;align-items:center;cursor:pointer}.selected-pill span{opacity:.7;font-size:10px}.empty-muted{font-size:12px;color:#94a3b8}.students-select.grouped{display:block}.student-group{margin-bottom:12px}.group-title{text-align:center;font-size:10px;font-weight:800;letter-spacing:2px;color:#cbd5f5;padding:4px 0;border-top:1px dashed #e2e8f0;border-bottom:1px dashed #e2e8f0;margin-bottom:8px}.group-items{display:flex;flex-wrap:wrap;gap:8px}.detail-block{display:grid;gap:4px;background:#f8fafc;border-radius:14px;padding:12px;border:1px solid #e2e8f0;font-size:12px}.detail-block strong{font-size:15px;font-weight:800}.detail-section{display:grid;gap:6px}.detail-title{font-size:11px;font-weight:800;color:#475569}.detail-list{background:#f8fafc;border-radius:12px;padding:10px;border:1px solid #e2e8f0;font-size:12px}.detail-list .tag{margin-right:6px}.detail-notes-list{max-height:220px;overflow:auto;display:grid;gap:8px}.detail-note-row{display:grid;gap:4px;padding:8px 10px;border-radius:10px;border:1px solid #dbe3ee;background:#fff}.detail-note-row strong{font-size:11px;color:#2563eb}.detail-note-row span{font-size:12px;color:#334155;white-space:pre-wrap;word-break:break-word}.detail-note-row em{font-size:11px;color:#64748b;font-style:normal}.detail-students{display:flex;flex-wrap:wrap;gap:8px}.detail-student{border:none;background:#fff;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700;color:#0f172a;border:1px solid #e2e8f0;cursor:pointer}.modal-tags,.teacher-select{display:flex;flex-wrap:wrap;gap:8px}.teacher-chip{border:1px solid #e2e8f0;background:#f8fafc;color:#64748b;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800;cursor:pointer}.teacher-chip.active{background:#0f172a;color:#fff;border-color:#0f172a}.option-group{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.option-group.single-row{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.option-group.input-error-wrap{border:2px solid #ef4444;background:#fff1f2;border-radius:12px;padding:6px}.option-chip{border:1px solid #e2e8f0;background:#f8fafc;color:#0f172a;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800;cursor:pointer}.option-chip.active{background:#0f172a;color:#fff;border-color:#0f172a}.student-pill{display:flex;gap:6px;align-items:center;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:700;border:1px solid #e2e8f0;background:#fff;color:#64748b;cursor:pointer}.student-pill em{font-style:normal;font-size:10px;opacity:.7}.student-pill.active{background:#0f172a;color:#fff;border-color:#0f172a}.student-pill.other{border-style:dashed}.toggle-chip{border:1px solid #e2e8f0;background:#f1f5f9;color:#64748b;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}.toggle-chip.active{background:#0f172a;color:#fff;border-color:#0f172a}.modal-grid{display:grid;gap:12px}.modal-grid.schedule-modal-split{grid-template-columns:minmax(300px,1.3fr) minmax(560px,2.7fr);align-items:start}.schedule-modal-left{display:grid;gap:12px}.schedule-modal-right{min-width:0}.modal-grid label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#475569}.modal-grid input,.modal-grid select{border:none;background:#f1f5f9;border-radius:12px;padding:10px 12px}.modal-grid .input-error{border:2px solid #ef4444;background:#fff1f2}.modal-schedule-slot-editor{display:grid;gap:8px;padding:10px;border:1px solid #dbe3ee;border-radius:14px;background:#f8fafc}.slot-editor-title{font-size:12px;font-weight:800;color:#334155}.slot-editor-hint{font-size:11px;color:#64748b}.slot-grid-wrap{overflow-x:auto}.slot-grid{width:100%;border-collapse:collapse;min-width:540px}.slot-grid th,.slot-grid td{border:1px solid #dbe3ee;padding:6px;text-align:center}.slot-grid th{font-size:11px;color:#475569;background:#eef2f8;font-weight:800}.slot-grid td:first-child,.slot-grid th:first-child{width:64px;background:#f1f5f9;font-weight:800;color:#334155}.slot-chip{width:100%;border:1px solid #94a3b8;border-radius:9px;background:#dbeafe;color:#1e3a8a;font-size:11px;font-weight:800;padding:5px 0;cursor:pointer}.slot-chip.empty{background:#fff;color:#64748b;border-style:dashed}.slot-chip.empty.other{background:#fee2e2;color:#b91c1c;border-color:#ef4444;border-style:solid;cursor:not-allowed}.slot-chip.empty.pending{background:#dcfce7;border-style:solid;border-color:#22c55e;color:#166534}.slot-chip.active{border-color:#0f172a;color:#0f172a;box-shadow:0 0 0 2px #0f172a1f}.slot-editor-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.slot-editor-selected{font-size:11px;color:#475569;font-weight:700}@media(max-width:1100px){.modal-grid.schedule-modal-split{grid-template-columns:1fr}}.modal-grid input[type=color]{padding:0;height:40px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;position:relative;z-index:2}.pill{padding:4px 10px;border-radius:999px;font-size:11px;color:#fff;background:#0f172a;width:fit-content}.pill.active{background:#16a34a}.pill.inactive{background:#f97316}.muted{color:#94a3b8;font-size:12px}.schedule-panel .section-header{margin-bottom:18px}.schedule-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:24px}.schedule-list{display:flex;flex-direction:column;gap:12px;position:relative;padding-left:0}.empty-card{padding:30px;border:1px dashed #e2e8f0;border-radius:20px;color:#94a3b8;font-weight:800;text-align:center;background:#f8fafc}.schedule-list:before{display:none}.schedule-card{background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid #e5e7eb;border-radius:20px;padding:12px;box-shadow:0 10px 20px #0f172a0f;position:relative;height:auto}.schedule-card:before{content:"";position:absolute;left:20px;right:20px;top:8px;height:6px;border-radius:999px;background:linear-gradient(90deg,#3b82f659,#6366f159)}.schedule-prep-overview{padding:14px 16px;border:1px solid #e2e8f0;border-radius:16px;background:#f8fafc;margin-bottom:12px}.schedule-prep-overview-title{font-size:13px;font-weight:800;color:#475569;margin-bottom:8px}.schedule-prep-overview-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.schedule-prep-overview-header .schedule-prep-overview-title{margin-bottom:0}.prep-manage-btn{white-space:nowrap;font-size:12px;padding:8px 12px}.schedule-prep-overview-list{display:grid;gap:6px}.schedule-prep-overview-item{display:grid;grid-template-columns:72px minmax(130px,220px) minmax(0,1fr);gap:10px;align-items:start;padding:8px 10px;background:#fff;border:1px solid #e2e8f0;border-radius:10px}.prep-overview-period{font-size:12px;font-weight:800;color:#0f172a}.prep-overview-title{font-size:12px;font-weight:700;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prep-overview-content{display:grid;gap:6px}.prep-overview-check{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border-radius:10px;font-size:12px;color:#334155;border:1px solid #dbe3ee;background:#f8fafc}.prep-overview-check input{margin-top:2px}.prep-overview-check.checked{background:#dcfce7;border-color:#86efac;color:#166534}.schedule-card.done:before{background:linear-gradient(90deg,#22c55e8c,#10b9818c)}.schedule-content{margin-top:16px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"history students" "logs logs";gap:16px;align-items:stretch}@media(min-width:981px)and (min-height:961px){.schedule-history,.schedule-students{min-height:286px;height:286px;overflow:auto}}.schedule-card.collapsed{padding:10px 12px;border-radius:14px;min-height:0;height:auto;display:block;overflow:hidden}.schedule-card.collapsed .schedule-period{padding:4px 8px;border-radius:10px;font-size:11px}.schedule-card.collapsed h3{font-size:13px;line-height:1.1}.schedule-card.collapsed .schedule-card-header{width:100%;padding:8px 10px;gap:8px;min-height:48px}.schedule-card.collapsed .schedule-header-actions{gap:4px}.schedule-card.collapsed .schedule-header-actions .ghost{padding:4px 8px;font-size:11px}.schedule-card.collapsed .schedule-students,.schedule-card.collapsed .schedule-logs,.schedule-card.collapsed .schedule-actions{display:none}.schedule-card.saved{border-color:#86efac;box-shadow:0 18px 32px #10b9812e}.schedule-card.sent{border-color:#93c5fd}.schedule-card-header{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:nowrap;cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;padding:10px 12px;border-radius:14px;box-shadow:inset 0 0 0 1px #ffffff80}.schedule-header-actions{display:flex;gap:10px;align-items:center}.schedule-card-header h3{margin:0;font-size:17px;font-weight:800;color:#0f172a}.schedule-period{padding:8px 12px;border-radius:999px;background:#e2e8f0;display:grid;place-items:center;font-weight:800;color:#0f172a;box-shadow:inset 0 0 0 2px #ffffff73;position:relative;font-size:13px}.schedule-period-wrap{display:flex;align-items:center;gap:8px}.schedule-change-tag{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:24px;padding:3px 10px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:800;border:none;cursor:pointer;white-space:nowrap}.schedule-card.done .schedule-period{background:#16a34a;color:#fff}.schedule-period:before{display:none}.schedule-history{grid-area:history;padding:16px;background:#f8fafc;border-radius:20px;border:1px solid #e2e8f0;display:grid;gap:10px;grid-template-rows:auto minmax(0,1fr)}.schedule-history-title{font-size:13px;font-weight:800;color:#64748b}.schedule-history-list{display:grid;gap:10px;overflow:auto;padding-right:6px;min-height:0}.schedule-history-item{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:10px 12px;font-size:13px;display:grid;gap:4px}.schedule-history-item .history-date{font-weight:800;color:#2563eb}.schedule-history-item .history-line{color:#475569;font-size:13px;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:start;gap:8px}.history-label{font-weight:800;color:#0ea5e9}.history-value{white-space:pre-wrap;word-break:break-word}.schedule-students{margin-top:0;padding:16px;background:#f1f5f9;border-radius:20px;border:1px solid #e2e8f0;grid-area:students;display:grid;grid-template-rows:auto minmax(0,1fr)}.schedule-prep{margin-top:0;padding:16px;background:#f1f5f9;border-radius:20px;border:1px solid #e2e8f0;grid-area:prep;display:grid;gap:10px;align-content:start;align-items:start;grid-auto-rows:min-content;align-self:start}.prep-checklist{display:grid;gap:8px;padding:10px 12px;border:1px solid #dbe3ee;border-radius:12px;background:#fff;max-height:150px;overflow:auto}.prep-checklist-title{font-size:12px;font-weight:800;color:#475569}.prep-check-item{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:#334155}.prep-check-item input{margin-top:2px}.schedule-prep-textarea{min-height:240px;border-radius:16px;border:1px solid #e2e8f0;padding:10px;font-size:14px;resize:vertical;background:#fff}.next-prep-editor{display:grid;grid-template-rows:repeat(3,auto);gap:8px;align-content:start;min-height:0;height:auto;width:100%}.next-prep-row{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;align-items:stretch;min-height:52px;width:100%}.next-prep-index{font-size:15px;font-weight:800;color:#475569;display:grid;place-items:center}.next-prep-input{width:100%;box-sizing:border-box;display:block;border:1px solid #dbe3ee;background:#fff;border-radius:12px;padding:12px 14px;font-size:14px;color:#334155;min-height:52px;height:52px}.next-prep-card .next-prep-editor{min-height:120px;height:120px;grid-template-rows:repeat(3,minmax(0,1fr))}.next-prep-card .next-prep-row{min-height:0}.next-prep-card .next-prep-input{min-height:0;height:100%}.next-prep-input:focus{outline:none;border-color:#60a5fa}.next-prep-add,.next-prep-remove{white-space:nowrap}.schedule-students-title{font-size:13px;font-weight:800;color:#64748b;margin-bottom:10px}.schedule-students-list{display:grid;gap:10px;overflow:auto;padding-right:4px;min-height:0;align-content:start;grid-auto-rows:min-content}.shell.mode-desktop .schedule-history,.shell.mode-desktop .schedule-students{height:300px}.student-inline{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,max-content);gap:12px;align-items:center;padding:12px;border-radius:16px;background:#fff;border:1px solid #e2e8f0}.student-inline-right{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;justify-content:flex-end;max-width:100%}.student-name{display:block;min-width:0;background:none;border:none;text-align:left;font-weight:700;color:#0f172a;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.attendance-buttons{display:flex;gap:6px;flex-wrap:nowrap;justify-content:flex-end}.memo-toggle-btn{border-radius:999px;border:1px solid #dbe3ee;background:#f8fafc;color:#475569;padding:6px 10px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;min-width:52px}.memo-toggle-btn.active{background:#dbeafe;color:#1e40af;border-color:#93c5fd}.student-memo-editor{grid-column:1 / -1;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.student-memo-input{border:1px solid #dbe3ee;background:#f8fafc;border-radius:10px;padding:8px 10px;font-size:12px;color:#334155;min-height:64px;resize:vertical}.student-memo-input:focus{outline:none;border-color:#60a5fa;background:#fff}.attend-btn{border-radius:999px;border:1px solid #e2e8f0;padding:6px 10px;font-size:12px;font-weight:700;color:#475569;background:#f8fafc;cursor:pointer;white-space:nowrap;min-width:52px}.attend-btn.active.present{background:#16a34a;border-color:#16a34a;color:#fff}.attend-btn.active.late{background:#f59e0b;border-color:#f59e0b;color:#fff}.attend-btn.active.absent{background:#ef4444;border-color:#ef4444;color:#fff}.schedule-logs{margin-top:0;display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr));max-height:300px;overflow:auto;padding-right:6px;grid-area:logs;align-items:start}.log-card{display:grid;gap:8px;grid-template-rows:auto auto;min-height:0;align-content:start}.log-card label{font-weight:800;font-size:13px;color:#64748b}.log-card textarea{min-height:120px;border-radius:16px;border:1px solid #e2e8f0;padding:10px;font-size:14px;resize:vertical;height:auto}.schedule-actions{margin-top:18px;display:flex;gap:12px}.schedule-actions .primary{background:#0f172a;color:#fff;padding:12px 16px;border-radius:14px;border:none;font-weight:800}.schedule-actions .primary.saved{background:#16a34a}.schedule-actions .ghost.active{background:#38bdf8;color:#0f172a;border-color:#38bdf8}@media(max-width:1280px){.schedule-layout{grid-template-columns:minmax(0,1fr) minmax(260px,320px)}.schedule-sidebar{order:0}}@media(max-width:980px){.schedule-layout{grid-template-columns:1fr}.schedule-sidebar{order:-1}.schedule-content{grid-template-columns:1fr;grid-template-areas:"history" "students" "logs"}.shell.mode-desktop .schedule-history,.shell.mode-desktop .schedule-students,.shell.mode-mobile .schedule-history,.shell.mode-mobile .schedule-students{height:auto}.schedule-logs{grid-template-columns:1fr;max-height:none}.schedule-prep-overview-item{grid-template-columns:64px minmax(110px,180px) minmax(0,1fr)}}@media(max-height:860px){.schedule-content{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"history students" "logs logs"}.schedule-logs{grid-template-columns:repeat(4,minmax(0,1fr));max-height:none}}@media(max-height:960px){.schedule-content{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;grid-template-areas:"history students" "logs logs"!important}}@media(max-width:560px){.schedule-content{grid-template-columns:1fr!important;grid-template-areas:"history" "students" "logs"!important}.schedule-students{max-height:220px;overflow:auto}.schedule-prep-overview-item{grid-template-columns:1fr;gap:4px}}@media(max-width:760px){.schedule-side-card{padding:12px}.study-card{padding:10px;border-radius:14px}.study-card-header{grid-template-columns:1fr;align-items:start;gap:8px}.study-question-count{justify-content:flex-start}.study-card .ghost{justify-self:start}.student-inline{grid-template-columns:1fr;gap:8px}.student-inline-right{justify-content:flex-start;flex-wrap:wrap}.student-memo-editor{grid-template-columns:1fr}.attendance-buttons{justify-content:flex-start;flex-wrap:wrap}.schedule-actions{display:grid;grid-template-columns:1fr}.schedule-actions .primary,.schedule-actions .ghost{width:100%}}.schedule-sidebar{display:flex}.schedule-side-card{background:#fff;border:1px solid #e2e8f0;border-radius:24px;padding:16px;box-shadow:0 16px 30px #0f172a14;display:grid;gap:14px;width:100%;align-content:start;overflow:hidden}.schedule-period-group{display:grid;gap:10px}.schedule-period-title{font-size:13px;font-weight:800;color:#64748b;margin-top:6px}.schedule-side-header{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.schedule-side-header strong{font-size:14px}.schedule-side-tabs{display:flex;gap:6px;background:#f1f5f9;padding:4px;border-radius:999px}.schedule-side-tabs button{border:none;background:transparent;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:800;color:#64748b;cursor:pointer}.schedule-side-tabs button.active{background:#0f172a;color:#fff}.schedule-add{display:grid;gap:8px;max-height:320px;overflow:auto;padding-right:4px}.study-grade-group{display:grid;gap:6px}.study-grade-title{font-size:12px;font-weight:800;color:#475569}.study-period-overview{display:grid;gap:8px;padding:12px;border-radius:16px;background:#f8fafc;border:1px solid #e2e8f0}.study-period-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.study-period-grid.single{grid-template-columns:1fr}.study-message-section{display:grid;gap:12px}.study-col{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:10px;display:grid;gap:8px}.study-col-title{font-size:13px;font-weight:800;color:#64748b}.study-mini{display:grid;gap:4px;padding:8px 10px;border-radius:10px;background:#f1f5f9;border:1px solid #e2e8f0}.study-mini-name{font-weight:800;color:#0f172a;font-size:14px}.study-mini-time{font-size:13px;color:#64748b;font-weight:700}.study-mini-meta{font-size:12px;color:#0f172a;font-weight:700}.study-search{border:1px solid #e2e8f0;border-radius:12px;padding:8px 10px;font-size:13px}.study-student-picker{max-height:140px;overflow:auto;display:grid;gap:6px;padding-right:4px}.study-student-picker.by-grade{max-height:none;overflow:visible;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding-right:0}.study-pick{border:1px solid #e2e8f0;border-radius:10px;padding:6px 8px;font-size:13px;background:#fff;text-align:left;cursor:pointer}.study-pick.active{border-color:#38bdf8;background:#e0f2fe;color:#0f172a;font-weight:700}.study-student-picker.by-grade .study-pick{text-align:center;padding:8px 6px;font-weight:700}.study-pick:hover{border-color:#60a5fa;background:#eff6ff;color:#0f172a}.study-pick.disabled,.study-pick:disabled{cursor:not-allowed;opacity:.45;border-color:#cbd5e1;background:#f8fafc;color:#64748b}.schedule-add input,.schedule-add select{border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px;font-size:13px}.study-panel .section-header{margin-bottom:16px}.study-summary{background:#f1f5f9;padding:8px 14px;border-radius:999px;font-weight:800;font-size:13px;color:#475569}.study-layout{display:grid;grid-template-columns:1fr 260px;gap:20px}.study-list{display:grid;gap:24px}.study-group-title{font-size:13px;font-weight:800;color:#1d4ed8;margin-bottom:8px}.study-group-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));align-items:start}@media(max-width:1500px){.study-group-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1200px){.study-group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.study-group-grid{grid-template-columns:1fr}}.schedule-side-card .study-group-grid{grid-template-columns:1fr}.study-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:14px;box-shadow:0 10px 18px #0f172a0f;min-width:0;overflow:hidden}.study-card.has-chat{border-color:#60a5fa}.study-card.active{border-color:#60a5fa;box-shadow:0 12px 24px #3b82f62e}.study-card.unread{background:#ecfdf3;color:#0f172a}.study-card.unread .study-student-meta,.study-card.unread .ghost{color:#065f46}.study-card.unread.has-chat{border-color:#60a5fa}.study-card.status-exit{border-color:#ef4444;background:#fff5f5}.study-card-header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;cursor:pointer}.study-card-header>div:first-child{min-width:0}.study-question-count{font-size:13px;font-weight:700;color:#0f172a;background:#e0f2fe;border-radius:999px;padding:4px 8px;white-space:normal;display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.study-question-count .study-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:13px;font-weight:700}.study-question-count .study-badge.active{background:#dcfce7;color:#166534}.study-question-count .study-badge.exit{background:#fee2e2;color:#991b1b}.study-question-count .study-badge.time,.study-question-count .study-badge.question{background:#e0f2fe;color:#0f172a}.study-question-count .question-actions{display:inline-flex;gap:4px}.study-question-count .question-actions button{border:none;background:#fff;color:#0f172a;width:18px;height:18px;border-radius:6px;font-weight:800;cursor:pointer;box-shadow:0 0 0 1px #0f172a14;line-height:1}.study-card .ghost{white-space:nowrap}.study-student-name{font-weight:800;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.study-student-meta{font-size:13px;color:#94a3b8}.study-chat{margin-top:12px;border-top:1px solid #e2e8f0;padding-top:12px;display:grid;gap:10px;min-width:0}.study-messages{max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;min-width:0}.message-bubble{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:8px 10px;font-size:14px;color:#0f172a;display:inline-flex;flex-direction:column;gap:4px;max-width:70%;width:fit-content;min-width:64px;white-space:pre-wrap;word-break:break-word}.message-bubble span{font-size:11px;color:#94a3b8}.message-bubble.in{background:#f8fafc;color:#0f172a}.message-bubble.out{background:#e2e8f0;border-color:#e2e8f0;color:#0f172a;align-self:flex-end}.messenger-messages .message-bubble{border-radius:14px;padding:10px 12px;max-width:min(72%,460px);width:auto;min-width:64px;display:inline-block;word-break:break-word}.messenger-messages .message-bubble.in{background:#fff;border:1px solid #dbe3ee;color:#0f172a}.messenger-messages .message-bubble.out{background:#0f172a;border:1px solid #0f172a;color:#fff;align-self:auto}.messenger-modal{width:100%;height:100%;display:grid;grid-template-rows:auto 1fr;min-height:0}@media(max-width:900px){.messenger-modal-card{width:min(720px,94vw)!important;max-width:min(720px,94vw)!important;height:min(84vh,720px)}.messenger-shell{grid-template-columns:1fr;min-height:0}.messenger-list{border-right:none;border-bottom:1px solid #e2e8f0;max-height:36vh}}@media(max-width:640px){.messenger-modal{width:94vw}.messenger-modal-card{width:94vw!important;max-width:94vw!important;height:88vh;border-radius:18px}.messenger-input{grid-template-columns:1fr}.messenger-input .primary{width:100%}.messenger-messages .message-bubble{max-width:82%}}.study-card.unread .message-bubble.in{background:#dcfce7;border-color:#86efac;color:#065f46}.study-reply{display:flex;gap:8px;align-items:flex-end;min-width:0}.study-reply textarea{flex:1;min-width:0;border:1px solid #e2e8f0;border-radius:12px;padding:8px 10px;font-size:12px;resize:none;min-height:40px;background:#fff}.study-reply .primary{padding:10px 16px;border-radius:999px;font-weight:700;background:#0f172a;color:#fff;border:none;flex-shrink:0}.study-card .ghost{color:#0f172a}.study-card.unread .ghost{color:#065f46}.study-exit{background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:16px;height:fit-content}.study-exit-list{margin-top:12px;display:grid;gap:10px}.study-exit-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px;border-radius:12px;background:#f8fafc}.study-exit-meta{margin-top:6px;display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px}.log-history-table-wrap{border:1px solid #dbe3ee;border-radius:14px;overflow:auto;max-height:280px;background:#fff}.log-history-table{display:grid;grid-template-columns:140px minmax(220px,1fr) minmax(220px,1fr) minmax(220px,1fr) 140px;align-items:stretch;min-width:1040px}.log-history-head{position:sticky;top:0;z-index:2;background:#eef3fb;color:#334155;font-size:13px;font-weight:800;padding:10px 12px;border-bottom:1px solid #dbe3ee}.log-history-date{display:flex;align-items:center;justify-content:center;padding:10px 12px;border-bottom:1px solid #edf2f7;background:#f8fbff;font-size:13px;font-weight:700;color:#1d4ed8;text-align:center;white-space:nowrap}.log-history-cell{padding:10px 12px;border-bottom:1px solid #edf2f7;font-size:13px;color:#334155;white-space:pre-wrap;word-break:break-word}.log-inline-input{width:100%;min-height:74px;border:1px solid #cbd5e1;border-radius:10px;padding:8px 10px;font-size:13px;resize:vertical;background:#fff}.log-actions-cell{white-space:normal}.log-row-actions{display:flex;gap:8px;flex-wrap:wrap}.log-row-actions .ghost,.log-row-actions .danger{border-radius:10px;border:1px solid #cbd5e1;background:#f8fafc;color:#334155;font-size:12px;font-weight:700;padding:6px 10px}.log-row-actions .danger{border-color:#fecaca;color:#b91c1c;background:#fef2f2}@media(max-width:900px){.log-history-table-wrap{max-height:240px}.log-history-table{grid-template-columns:120px minmax(180px,1fr) minmax(180px,1fr) minmax(180px,1fr) 130px;min-width:920px}}@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{display:flex;position:fixed;top:0;left:0;height:100vh;width:min(320px,88vw);max-height:100vh;transform:translate(-100%);transition:transform .25s ease;z-index:55;box-shadow:0 20px 40px #0f172a1a;overflow-y:auto;border-radius:0 20px 20px 0}.side-menu{grid-auto-flow:row}.content{padding:20px}.topbar{padding-left:52px;flex-direction:row;align-items:center;gap:12px}.top-actions{width:auto;justify-content:flex-end}.search{display:none}.timetable-hint{display:block}.timetable-table{display:none}.timetable-mobile{display:block}.timetable-grid{grid-template-columns:70px repeat(7,minmax(90px,1fr))}.schedule-logs,.study-layout,.schedule-layout{grid-template-columns:1fr}.schedule-mobile-toggle,.menu-toggle{display:flex}.shell.sidebar-open .sidebar{transform:translate(0)}.sidebar-backdrop{display:block;position:fixed;inset:0;background:#0f172a4d;z-index:50}}@media(max-width:720px){.sidebar-brand{display:flex}.side-footer{display:block}.content{padding:16px}.section-header{flex-direction:column;align-items:flex-start;gap:10px}.board-list{grid-template-columns:1fr}.board-header-actions{flex-direction:column;align-items:stretch}.ops-ribbon,.ops-tasks{grid-template-columns:1fr}.ops-quick{justify-content:flex-start}.socket-chip,.notice-chip{width:100%}.board-header-actions .board-search{min-width:0;width:100%}.board-advanced-filters{display:grid;grid-template-columns:1fr}.board-advanced-filters select,.board-advanced-filters input[type=date]{width:100%}.timetable-actions{width:100%;justify-content:space-between}.timetable-grid{grid-template-columns:56px repeat(7,minmax(72px,1fr));gap:6px}.timetable-cell{min-height:72px;padding:6px}.students-header{flex-direction:column;align-items:flex-start}.students-search{max-width:100%}.student-row{grid-template-columns:1fr;align-items:flex-start}.student-contacts{text-align:left}.board-library-row{flex-direction:column;align-items:flex-start}.board-library-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}}@media(max-width:520px){.side-menu button{padding:10px 12px;font-size:12px}.top-actions{flex-wrap:wrap;gap:8px}.date-sim-control{width:100%;justify-content:space-between}.date-sim-control input[type=date]{flex:1;min-width:0}.search{width:100%}.timetable-grid{grid-template-columns:48px repeat(7,minmax(64px,1fr))}.students-filters{width:100%}.student-avatar{width:44px;height:44px;font-size:14px}.list-card,.board-item,.timetable-item{flex-direction:column;align-items:flex-start;gap:8px}.modal-card{width:min(480px,92vw)}}.timetable-table tbody tr,.timetable-mobile tbody tr{height:150px}.schedule-card-header{position:relative}.shell.mode-desktop{grid-template-columns:270px minmax(0,1fr);justify-content:stretch;min-width:0;zoom:1}.shell.mode-desktop.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.shell.mode-desktop .content{width:100%;max-width:1720px;margin:0 auto;padding:18px 20px}@media(min-width:1200px){.shell.mode-desktop{align-items:start}.shell.mode-desktop .sidebar{position:sticky;top:0;height:100vh;max-height:100vh;overflow-y:auto;align-self:start}}@media(max-width:1600px){.shell.mode-desktop{grid-template-columns:250px minmax(0,1fr)}.shell.mode-desktop.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.shell.mode-desktop .content{max-width:none;padding:14px 16px}.timetable-header-bar{padding:20px 22px;border-radius:28px}.timetable-header-bar .timetable-actions{flex-wrap:wrap;row-gap:8px}.timetable-header-bar .students-filters{width:100%;max-width:100%;overflow-x:auto;flex-wrap:nowrap}.timetable-table table{min-width:980px}}.shell.mode-mobile{grid-template-columns:1fr;zoom:1}.shell.mode-mobile .sidebar{display:flex;position:fixed;top:0;left:0;height:100vh;width:min(320px,88vw);max-height:100vh;transform:translate(-100%);transition:transform .25s ease;z-index:55;box-shadow:0 20px 40px #0f172a1a;overflow-y:auto;border-radius:0 20px 20px 0}.shell.mode-mobile .content{width:100%;margin:0 auto;padding:16px}.shell.mode-mobile .topbar{padding-left:52px;flex-direction:column;align-items:flex-start;gap:12px}.shell.mode-mobile .top-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.shell.mode-mobile .topbar h1{white-space:nowrap}.shell.mode-mobile .search{display:none}.shell.mode-mobile .menu-toggle{display:flex}.shell.mode-mobile .sidebar-show-floating-btn{display:none}.shell.mode-mobile .shell.sidebar-open .sidebar,.shell.mode-mobile.sidebar-open .sidebar{transform:translate(0)}.shell.mode-mobile .sidebar-backdrop{display:block;position:fixed;inset:0;background:#0f172a4d;z-index:50}.shell.mode-mobile .schedule-layout,.shell.mode-mobile .study-layout{grid-template-columns:1fr}.shell.mode-mobile .schedule-mobile-toggle{display:flex}.shell.mode-mobile .section-header{flex-direction:column;align-items:flex-start;gap:10px}.shell.mode-mobile .ops-ribbon,.shell.mode-mobile .ops-tasks{grid-template-columns:1fr}.shell.mode-mobile .ops-quick{justify-content:flex-start}.shell.mode-mobile .board-list{grid-template-columns:1fr}.shell.mode-desktop .topbar h1,.shell.mode-mobile .topbar h1{font-size:28px}.shell.mode-desktop .top-kicker,.shell.mode-mobile .top-kicker{font-size:12px}.shell.mode-desktop .side-menu button,.shell.mode-mobile .side-menu button{font-size:14px;padding:14px 18px}.shell.mode-desktop input,.shell.mode-desktop select,.shell.mode-desktop textarea,.shell.mode-desktop button,.shell.mode-mobile input,.shell.mode-mobile select,.shell.mode-mobile textarea,.shell.mode-mobile button{font-size:14px}.shell.mode-desktop .list-card,.shell.mode-desktop .board-item,.shell.mode-desktop .schedule-card,.shell.mode-mobile .list-card,.shell.mode-mobile .board-item,.shell.mode-mobile .schedule-card{border-radius:18px}.shell.mode-desktop .topbar{margin-bottom:14px}.shell.mode-desktop .ops-ribbon{margin-bottom:10px;gap:10px}.shell.mode-desktop .task-card{padding:10px;gap:4px}.shell.mode-desktop .panel{padding:14px}.shell.mode-desktop .schedule-card{padding:8px 10px}.shell.mode-desktop .schedule-content{margin-top:12px;gap:12px}.shell.mode-desktop .schedule-actions{margin-top:12px}.shell.mode-desktop .study-card{padding:10px}.shell.mode-desktop .timetable-table tbody tr,.shell.mode-desktop .timetable-mobile tbody tr{height:110px}@media(max-width:1366px){.shell.mode-desktop{grid-template-columns:224px minmax(0,1fr)}.shell.mode-desktop .content{padding:10px 12px}.shell.mode-desktop .topbar h1{font-size:24px;line-height:1.15}.shell.mode-desktop .top-actions{gap:8px}.shell.mode-desktop .panel{padding:10px}.shell.mode-desktop .schedule-card{padding:6px 8px}.shell.mode-desktop .schedule-content{margin-top:8px;gap:8px}.shell.mode-desktop .schedule-actions{margin-top:8px}.shell.mode-desktop .timetable-table tbody tr,.shell.mode-desktop .timetable-mobile tbody tr{height:100px}}.lesson-card-inner{position:relative}.lesson-delete-btn{position:absolute;top:8px;right:8px;border:1px solid #fecaca;background:#fff1f2;color:#b91c1c;border-radius:10px;padding:3px 8px;font-size:11px;font-weight:800;cursor:pointer;z-index:2}
