:root{color-scheme:light dark;--gap: 12px;--bg: #f7f9fc;--surface: #ffffff;--text: #0f172a;--muted: #475569;--border: #e2e8f0;--shadow: 0 1px 2px rgba(0,0,0,.06), 0 6px 24px rgba(0,0,0,.06);--radius: 12px;--primary: #2563eb;--primary-600: #1d4ed8;--danger: #dc2626;--danger-bg: rgba(220, 38, 38, .12)}@media (prefers-color-scheme: dark){:root{--bg: #0b1220;--surface: #0f172a;--text: #e5e7eb;--muted: #94a3b8;--border: #1f2a44;--shadow: 0 1px 2px rgba(0,0,0,.4), 0 6px 24px rgba(0,0,0,.35);--primary: #60a5fa;--primary-600: #3b82f6;--danger: #f87171;--danger-bg: rgba(248, 113, 113, .15)}}body{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;margin:0;background:var(--bg);color:var(--text);line-height:1.45}.app{padding:20px;max-width:1100px;margin-inline:auto}header{display:flex;align-items:center;justify-content:space-between;gap:var(--gap);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;box-shadow:var(--shadow);margin-bottom:16px}header h1{font-size:18px;margin:0;letter-spacing:.2px}.brand{display:flex;align-items:center;gap:10px}.brand-icon{width:40px;height:40px;border-radius:12px;object-fit:cover;box-shadow:0 2px 6px #0f172a2e}.auth{display:flex;align-items:center;gap:var(--gap)}section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);margin:14px 0}section h3{margin:0;font-size:16px;color:var(--muted);font-weight:600}button{-webkit-tap-highlight-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;background:var(--primary);color:#fff;padding:8px 12px;font-size:14px;border-radius:10px;cursor:pointer;transition:background-color .12s ease,box-shadow .12s ease,opacity .12s ease,transform 40ms ease;box-shadow:0 1px 1px #00000008}button:hover{background:var(--primary-600)}button:active{transform:translateY(.5px)}button:disabled{opacity:.55;cursor:not-allowed}.actions{margin:12px 0;display:flex;gap:var(--gap)}button.link{background:transparent;color:inherit;border:1px solid transparent;padding:4px 6px;border-radius:8px}button.link:hover{background:#7f7f7f1f}input[type=text],input[type=date],select{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:8px 10px;outline:none;transition:border-color .12s ease,box-shadow .12s ease}input[type=text]:focus,input[type=date]:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 25%,transparent)}.error{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 40%,transparent);padding:10px 12px;border-radius:10px;margin:10px 0}table{width:100%;border-collapse:separate;border-spacing:0}thead th{background:color-mix(in srgb,var(--surface) 70%,var(--bg));color:var(--muted);text-transform:uppercase;font-size:12px;letter-spacing:.04em}th,td{border-bottom:1px solid var(--border);padding:10px 12px;text-align:left}tbody tr:hover{background:color-mix(in srgb,var(--primary) 6%,transparent)}footer{margin-top:24px;display:flex;align-items:center;justify-content:center;gap:12px;color:var(--muted);font-size:13px}footer .link{padding:2px 6px;background:transparent;border:1px solid transparent;color:inherit}footer .link:hover{background:#7f7f7f1f;border-color:transparent}tbody tr{transition:background-color .16s ease,transform .16s ease,opacity .16s ease}tr.drag-over td{outline:2px dashed rgba(128,128,128,.35);outline-offset:-2px}tr.dragging{opacity:.7;transform:scale(.998)}tr.dropped{background-color:#64b4ff1f}tr.over-limit{background-color:var(--danger-bg)}tr.over-limit td{border-color:color-mix(in srgb,var(--danger) 35%,transparent)}.handle-cell{width:32px;text-align:center}.drag-handle{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;cursor:grab;-webkit-user-select:none;user-select:none;border:1px solid transparent}.drag-handle:active{cursor:grabbing}.drag-handle:hover{background:color-mix(in srgb,var(--primary) 8%,transparent);border-color:color-mix(in srgb,var(--primary) 35%,transparent)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--surface);color:inherit;border-radius:var(--radius);padding:16px;width:min(560px,92vw);border:1px solid var(--border);box-shadow:var(--shadow)}.form-row{display:flex;gap:12px;align-items:center;margin:8px 0}.form-row label{width:140px;color:var(--muted)}.form-row input[type=text],.form-row input[type=date]{flex:1;padding:8px 10px}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:16px}.modal-actions .secondary{background:transparent;color:var(--text);border:1px solid var(--border)}.material-symbols-outlined{font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.icon-button{width:38px;height:38px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--muted);box-shadow:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease,transform 40ms ease}.icon-button:hover{background:color-mix(in srgb,var(--primary) 12%,transparent);border-color:color-mix(in srgb,var(--primary) 40%,transparent);color:var(--primary)}.icon-button.primary{background:var(--primary);border-color:var(--primary);color:#fff}.icon-button.primary:hover{background:var(--primary-600);color:#fff}.icon-button.danger{background:var(--danger);border-color:transparent;color:#fff}.icon-button.danger:hover{background:color-mix(in srgb,var(--danger) 85%,black 15%)}.icon-button:disabled{opacity:.45;cursor:not-allowed;color:inherit}.icon-button:disabled:hover{background:var(--surface);border-color:var(--border)}.icon-button .material-symbols-outlined{font-size:22px;line-height:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.welcome-section{display:flex;flex-direction:column;gap:12px}.welcome-section ul{margin:0 0 0 18px;padding:0}.welcome-section li{margin:4px 0}.welcome-section button{align-self:flex-start;margin-top:8px}.lesson-name-input{width:100%;min-height:36px;font:inherit;line-height:1.4;padding:6px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);resize:vertical;overflow:hidden}.lesson-name-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 25%,transparent);outline:none}@media (max-width: 640px){.lesson-name-input{min-height:56px}}
