.brand-logo-component[data-v-08d0b8bd]{-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:inline-flex}.brand-vector-svg[data-v-08d0b8bd]{flex-shrink:0;transition:transform .2s cubic-bezier(.16,1,.3,1);display:block}.brand-logo-component:hover .brand-vector-svg[data-v-08d0b8bd]{transform:scale(1.05)}.brand-text-block[data-v-08d0b8bd]{flex-direction:column;display:flex}.brand-title-main[data-v-08d0b8bd]{letter-spacing:-.5px;color:var(--text-main);font-size:19px;font-weight:800;line-height:1.1}.brand-title-main span[data-v-08d0b8bd]{color:var(--primary)}.student-profile-switcher-wrap[data-v-c4803458]{cursor:pointer;position:relative}.student-profile-pill[data-v-c4803458]{background:var(--bg-card-subtle);border:1px solid var(--border);border-radius:999px;align-items:center;gap:8px;padding:4px 10px 4px 6px;transition:all .15s;display:flex}.student-profile-pill[data-v-c4803458]:hover{background:#fff;border-color:#4f46e5}.dark-theme .student-profile-pill[data-v-c4803458]:hover{background:#1e293b}.student-header-avatar[data-v-c4803458]{object-fit:cover;border-radius:50%;width:26px;height:26px}.student-header-avatar-fallback[data-v-c4803458]{color:#fff;background:#4f46e5;border-radius:50%;place-items:center;width:26px;height:26px;font-size:12px;font-weight:800;display:grid}.student-pill-info[data-v-c4803458]{flex-direction:column;line-height:1.15;display:flex}.student-pill-name[data-v-c4803458]{color:var(--text-main);font-size:12px;font-weight:800}.student-pill-tag[data-v-c4803458]{color:var(--text-muted);font-size:10px}.student-dropdown-menu[data-v-c4803458]{border:1px solid var(--border);z-index:1000;background:#fff;border-radius:14px;width:280px;padding:8px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 30px #00000026}.dark-theme .student-dropdown-menu[data-v-c4803458]{background:#1e293b;border-color:#334155}.student-dropdown-title[data-v-c4803458]{color:var(--text-muted);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:6px 8px 10px;font-size:12px;font-weight:800;display:flex}.student-dropdown-item[data-v-c4803458]{cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;transition:background .15s;display:flex}.student-dropdown-item[data-v-c4803458]:hover{background:#f1f5f9}.dark-theme .student-dropdown-item[data-v-c4803458]:hover{background:#334155}.student-dropdown-item.active[data-v-c4803458]{background:#6366f11a}.student-item-avatar[data-v-c4803458]{object-fit:cover;border-radius:50%;width:34px;height:34px}.global-toast-container[data-v-2200355d]{z-index:99999;pointer-events:none;position:fixed;top:28px;left:50%;transform:translate(-50%)}.global-toast-bubble[data-v-2200355d]{color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto;background:#1e1b4b;border-radius:9999px;align-items:center;gap:8px;padding:10px 22px;font-size:13.5px;font-weight:700;display:flex;box-shadow:0 14px 35px #0f172a59,0 0 0 1px #ffffff26}.dark-theme .global-toast-bubble[data-v-2200355d]{color:#fff;background:#312e81;box-shadow:0 14px 40px #0009,0 0 0 1px #6366f166}.toast-sparkle-icon[data-v-2200355d]{color:#38bdf8;animation:4s linear infinite spinSlow-2200355d}@keyframes spinSlow-2200355d{0%{transform:rotate(0)scale(1)}50%{transform:rotate(180deg)scale(1.15)}to{transform:rotate(360deg)scale(1)}}.toast-pop-enter-active[data-v-2200355d],.toast-pop-leave-active[data-v-2200355d]{transition:all .22s cubic-bezier(.16,1,.3,1)}.toast-pop-enter-from[data-v-2200355d]{opacity:0;transform:translate(-50%,-18px)scale(.92)}.toast-pop-leave-to[data-v-2200355d]{opacity:0;transform:translate(-50%,-14px)scale(.94)}.auth-page-container[data-v-d4e8edba]{background-color:#0b0f19;background-image:url(/LessonHub-login.png);background-position:50%;background-repeat:no-repeat;background-size:cover;justify-content:flex-start;align-items:center;width:100vw;min-height:100vh;padding:40px 40px 40px 8%;display:flex;position:relative;overflow-x:hidden}.auth-bg-overlay[data-v-d4e8edba]{pointer-events:none;z-index:1;background:linear-gradient(90deg,#0f172a6b 0%,#0f172a26 35%,#0f172a00 55%);position:absolute;inset:0}.dark-theme .auth-bg-overlay[data-v-d4e8edba]{background:linear-gradient(90deg,#0b0f19a6 0%,#0b0f1940 35%,#0b0f1900 55%)}.auth-top-actions[data-v-d4e8edba]{z-index:20;align-items:center;gap:10px;display:flex;position:absolute;top:24px;right:28px}.btn-glass[data-v-d4e8edba]{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#0f172a;background:#ffffffe6;border:1px solid #fff9;transition:all .2s;box-shadow:0 4px 12px #00000026}.btn-glass[data-v-d4e8edba]:hover{background:#fff;transform:translateY(-1px)}.dark-theme .btn-glass[data-v-d4e8edba]{color:#f8fafc;background:#111827d9;border-color:#ffffff26}.auth-card-left-wrapper[data-v-d4e8edba]{z-index:10;width:100%;max-width:440px;position:relative}.auth-card[data-v-d4e8edba]{border:1px solid var(--border-subtle);border-radius:var(--radius-xl);background:#fff;width:100%;padding:38px 32px;animation:.25s ease-out modalPop;box-shadow:0 25px 60px -10px #00000059,0 4px 12px #00000014}.dark-theme .auth-card[data-v-d4e8edba]{background:#111827;border-color:#ffffff1f;box-shadow:0 25px 60px -10px #000000b3}.auth-brand-header[data-v-d4e8edba]{text-align:center;margin-bottom:22px}.auth-title[data-v-d4e8edba]{color:var(--text-main);letter-spacing:-.6px;font-size:26px;font-weight:800}.auth-title span[data-v-d4e8edba]{color:var(--primary)}.auth-subtitle[data-v-d4e8edba]{color:var(--text-muted);margin-top:3px;font-size:12px}.demo-account-box[data-v-d4e8edba]{background:var(--bg-card-subtle);border:1px dashed var(--border);border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:9px 12px;display:flex}@media (width<=768px){.auth-page-container[data-v-d4e8edba]{justify-content:center;padding:60px 20px 30px}.auth-card-left-wrapper[data-v-d4e8edba]{max-width:100%}.auth-top-actions[data-v-d4e8edba]{top:16px;right:16px}}.fixed-schedules-view[data-v-a5485518]{flex-direction:column;gap:16px;display:flex}.my-fixed-plans-grid[data-v-a5485518]{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px;display:grid}.my-fixed-plan-card[data-v-a5485518]{border-left:3px solid #4f46e5;flex-direction:column;justify-content:space-between;padding:18px 20px;transition:all .2s;display:flex}.my-fixed-plan-card[data-v-a5485518]:hover{box-shadow:var(--shadow-hover);border-color:#818cf8;transform:translateY(-2px)}.fixed-card-head[data-v-a5485518]{align-items:center;gap:12px;display:flex}.fixed-avatar[data-v-a5485518]{object-fit:cover;border-radius:50%;flex-shrink:0;width:48px;height:48px}.fixed-slots-preview[data-v-a5485518]{background:var(--bg-card-subtle);border:1px solid var(--border-subtle);border-radius:10px;margin-top:10px;padding:10px 12px}.fixed-chips-wrap[data-v-a5485518]{flex-wrap:wrap;gap:6px;display:flex}.fixed-time-chip[data-v-a5485518]{color:#4f46e5;background:#eef2ff;border:1px solid #c7d2fe;border-radius:6px;align-items:center;gap:4px;padding:2px 7px;font-size:11px;font-weight:700;display:inline-flex}.dark-theme .fixed-time-chip[data-v-a5485518]{color:#c7d2fe;background:#312e81;border-color:#4338ca}.fixed-card-footer[data-v-a5485518]{border-top:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:12px;padding-top:10px;display:flex}.fixed-teachers-grid[data-v-a5485518]{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.fixed-teacher-item-card[data-v-a5485518]{cursor:pointer;padding:14px 16px;transition:all .2s}.fixed-teacher-item-card[data-v-a5485518]:hover{box-shadow:var(--shadow-hover);border-color:#818cf8;transform:translateY(-2px)}.fixed-teacher-3d-row[data-v-a5485518]{grid-template-columns:repeat(3,1fr);gap:4px;margin-top:10px;display:grid}.d-chip[data-v-a5485518]{text-align:center;background:var(--bg-card-subtle);border:1px solid var(--border-subtle);color:#94a3b8;border-radius:6px;padding:3px 2px;font-size:10.5px;font-weight:600}.d-chip.avail[data-v-a5485518]{color:#047857;background:#ecfdf5;border-color:#bbf7d0;font-weight:700}.dark-theme .d-chip.avail[data-v-a5485518]{color:#34d399;background:#064e3b44;border-color:#065f46}.teacher-badges-row[data-v-a9dab989]{flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 8px;display:flex}.fixed-schedule-badge[data-v-a9dab989]{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.fixed-schedule-badge.active[data-v-a9dab989]{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.fixed-schedule-badge.regular[data-v-a9dab989]{color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0}.dark-theme .fixed-schedule-badge.active[data-v-a9dab989]{color:#34d399;background:#064e3b44;border-color:#065f46}.dark-theme .fixed-schedule-badge.regular[data-v-a9dab989]{color:#94a3b8;background:#1e293b;border-color:#334155}.teacher-3d-schedule[data-v-a9dab989]{background:var(--bg-card-subtle);border:1px solid var(--border-subtle);border-radius:10px;grid-template-columns:repeat(3,1fr);gap:6px;margin:4px 0 6px;padding:6px;display:grid}.avail-col[data-v-a9dab989]{background:0 0;border-radius:6px;flex-direction:row;justify-content:center;align-items:center;gap:5px;min-width:0;padding:4px;transition:all .15s;display:flex}.avail-col .day-label[data-v-a9dab989]{color:var(--text-subtle);white-space:nowrap;font-size:11px}.avail-col .slot-val[data-v-a9dab989]{color:#94a3b8;white-space:nowrap;font-size:11px;font-weight:700}.avail-col.has-slots[data-v-a9dab989]{background:#ecfdf5;border:1px solid #bbf7d0}.avail-col.has-slots .day-label[data-v-a9dab989]{color:#047857;font-weight:600}.avail-col.has-slots .slot-val[data-v-a9dab989]{color:#047857;font-weight:800}.dark-theme .avail-col.has-slots[data-v-a9dab989]{background:#064e3b44;border-color:#065f46}.dark-theme .avail-col.has-slots .day-label[data-v-a9dab989],.dark-theme .avail-col.has-slots .slot-val[data-v-a9dab989]{color:#34d399}.teacher-row-item[data-v-cecd6bc3]{border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:var(--bg-card);grid-template-columns:46px minmax(130px,1fr) 95px 110px 245px minmax(80px,.8fr) 90px;align-items:center;gap:12px;padding:12px 18px;transition:all .15s cubic-bezier(.4,0,.2,1);display:grid}.teacher-row-item[data-v-cecd6bc3]:hover{box-shadow:var(--shadow-sm);border-color:#818cf8;transform:translateY(-1px)}.row-avatar[data-v-cecd6bc3]{object-fit:cover;border:1px solid var(--border-subtle);border-radius:50%;width:44px;height:44px}.row-avatar-fallback[data-v-cecd6bc3]{border-radius:50%;width:44px;height:44px;font-size:16px}.row-col-name[data-v-cecd6bc3]{min-width:0}.row-name-text[data-v-cecd6bc3]{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:800;overflow:hidden}.row-sub-text[data-v-cecd6bc3]{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:11.5px;overflow:hidden}.fixed-badge-pill[data-v-cecd6bc3]{white-space:nowrap;border-radius:999px;align-items:center;gap:3px;padding:2px 7px;font-size:11px;font-weight:700;display:inline-flex}.fixed-badge-pill.active[data-v-cecd6bc3]{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.fixed-badge-pill.regular[data-v-cecd6bc3]{color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0}.row-col-3d[data-v-cecd6bc3]{flex-wrap:nowrap;align-items:center;gap:6px;min-width:0;display:flex}.day-slot-badge[data-v-cecd6bc3]{background:var(--bg-card-subtle);border:1px solid var(--border-subtle);color:#94a3b8;white-space:nowrap;border-radius:6px;align-items:center;padding:2px 6px;font-size:11px;font-weight:600;display:inline-flex}.day-slot-badge.has-slots[data-v-cecd6bc3]{color:#047857;background:#ecfdf5;border-color:#bbf7d0;font-weight:700}.dark-theme .day-slot-badge.has-slots[data-v-cecd6bc3]{color:#34d399;background:#064e3b44;border-color:#065f46}.row-col-tags[data-v-cecd6bc3]{align-items:center;gap:4px;display:flex;overflow:hidden}@media (width<=1080px){.teacher-row-item[data-v-cecd6bc3]{grid-template-columns:46px 1fr 90px 100px 170px 80px}.row-col-tags[data-v-cecd6bc3]{display:none}}@media (width<=768px){.teacher-row-item[data-v-cecd6bc3]{grid-template-columns:46px 1fr 80px}.row-col-fixed[data-v-cecd6bc3],.row-col-3d[data-v-cecd6bc3],.row-col-tags[data-v-cecd6bc3]{display:none}}.multi-select-container[data-v-a444ca95]{-webkit-user-select:none;user-select:none;min-width:170px;display:inline-block;position:relative}.multi-select-trigger[data-v-a444ca95]{border-radius:var(--radius-full);border:1px solid var(--border);cursor:pointer;background:#fff;justify-content:space-between;align-items:center;gap:8px;min-height:34px;padding:3px 10px 3px 12px;transition:all .2s;display:flex}.dark-theme .multi-select-trigger[data-v-a444ca95]{background:#1f2937;border-color:#374151}.multi-select-trigger[data-v-a444ca95]:hover{border-color:#cbd5e1}.multi-select-trigger.is-open[data-v-a444ca95]{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51f}.tags-wrapper[data-v-a444ca95]{flex:1;align-items:center;min-width:0;display:flex}.placeholder-text[data-v-a444ca95]{color:var(--text-main);white-space:nowrap;font-size:13px}.dark-theme .placeholder-text[data-v-a444ca95]{color:#94a3b8}.chips-container[data-v-a444ca95]{flex-wrap:wrap;gap:4px;max-width:320px;padding:2px 0;display:flex}.multi-tag-chip[data-v-a444ca95]{background:var(--primary-subtle);color:var(--primary);border:1px solid var(--primary-border);border-radius:999px;align-items:center;gap:3px;padding:2px 7px;font-size:11.5px;font-weight:700;line-height:1.2;transition:all .15s;display:inline-flex}.chip-label[data-v-a444ca95]{text-overflow:ellipsis;white-space:nowrap;max-width:110px;overflow:hidden}.chip-close-btn[data-v-a444ca95]{cursor:pointer;width:14px;height:14px;color:var(--primary);opacity:.7;border-radius:50%;place-items:center;transition:all .15s;display:grid}.chip-close-btn[data-v-a444ca95]:hover{opacity:1;background:#4f46e533;transform:scale(1.1)}.trigger-icons-right[data-v-a444ca95]{color:var(--text-muted);align-items:center;gap:4px;display:flex}.clear-all-icon[data-v-a444ca95]{cursor:pointer;border-radius:50%;place-items:center;width:16px;height:16px;transition:all .15s;display:grid}.clear-all-icon[data-v-a444ca95]:hover{background:var(--border-subtle);color:var(--text-main)}.chevron-icon[data-v-a444ca95]{transition:transform .2s}.chevron-icon.rotate[data-v-a444ca95]{transform:rotate(180deg)}.multi-select-menu[data-v-a444ca95]{border:1px solid var(--border);border-radius:var(--radius-md);width:max-content;min-width:220px;max-width:280px;box-shadow:var(--shadow-lg);z-index:100;background:#fff;padding:8px;animation:.15s cubic-bezier(.16,1,.3,1) popIn-a444ca95;position:absolute;top:calc(100% + 6px);left:0}.dark-theme .multi-select-menu[data-v-a444ca95]{background:#111827;border-color:#374151;box-shadow:0 10px 35px #0009}@keyframes popIn-a444ca95{0%{opacity:0;transform:translateY(-4px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.menu-search-wrap[data-v-a444ca95]{background:var(--bg-card-subtle);border:1px solid var(--border-subtle);color:var(--text-muted);border-radius:8px;align-items:center;gap:6px;margin-bottom:6px;padding:6px 10px;display:flex}.menu-search-input[data-v-a444ca95]{width:100%;color:var(--text-main);background:0 0;border:0;outline:none;font-size:12px}.dark-theme .menu-search-input[data-v-a444ca95]{color:#f8fafc}.menu-actions-row[data-v-a444ca95]{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:4px;padding:4px 6px 6px;display:flex}.menu-action-btn[data-v-a444ca95]{color:var(--primary);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:2px 4px;font-size:11.5px;font-weight:700;transition:background .15s}.menu-action-btn[data-v-a444ca95]:hover{background:var(--primary-subtle)}.menu-action-btn.clear[data-v-a444ca95]{color:var(--text-muted)}.menu-action-btn.clear[data-v-a444ca95]:hover{color:#e11d48;background:#fff1f2}.menu-options-list[data-v-a444ca95]{flex-direction:column;gap:2px;max-height:220px;display:flex;overflow-y:auto}.menu-empty-text[data-v-a444ca95]{color:var(--text-subtle);text-align:center;padding:12px 0;font-size:12px}.menu-option-item[data-v-a444ca95]{cursor:pointer;color:var(--text-main);border-radius:8px;align-items:center;gap:8px;padding:7px 10px;font-size:12.5px;transition:background .15s;display:flex}.menu-option-item[data-v-a444ca95]:hover{background:var(--bg-card-subtle)}.menu-option-item.is-selected[data-v-a444ca95]{background:var(--primary-subtle);color:var(--primary);font-weight:700}.custom-checkbox[data-v-a444ca95]{border:1px solid var(--border);color:#fff;background:#fff;border-radius:4px;flex-shrink:0;place-items:center;width:16px;height:16px;transition:all .15s;display:grid}.custom-checkbox.checked[data-v-a444ca95]{background:var(--primary);border-color:var(--primary)}.dark-theme .custom-checkbox[data-v-a444ca95]{background:#1e293b;border-color:#475569}.option-label[data-v-a444ca95]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.option-count-badge[data-v-a444ca95]{background:var(--border-subtle);color:var(--text-muted);border-radius:999px;padding:1px 6px;font-size:10.5px}.forecast-platforms-grid[data-v-9dd820b0]{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-top:10px;display:grid}.forecast-card-item[data-v-9dd820b0]{background:var(--bg-card-subtle);border:1px solid var(--border-subtle);border-radius:12px;flex-direction:column;justify-content:space-between;padding:14px 16px;display:flex}.forecast-card-item.healthy[data-v-9dd820b0]{border-left:3px solid #10b981}.forecast-card-item.warning[data-v-9dd820b0]{border-left:3px solid #f59e0b}.forecast-card-item.critical[data-v-9dd820b0],.forecast-card-item.empty[data-v-9dd820b0]{border-left:3px solid #ef4444}.forecast-status-pill[data-v-9dd820b0]{border-radius:999px;padding:2px 7px;font-size:10.5px;font-weight:700}.forecast-status-pill.healthy[data-v-9dd820b0]{color:#047857;background:#ecfdf5}.forecast-status-pill.warning[data-v-9dd820b0]{color:#b45309;background:#fffbeb}.forecast-status-pill.critical[data-v-9dd820b0],.forecast-status-pill.empty[data-v-9dd820b0]{color:#b91c1c;background:#fef2f2}@media (width<=1200px){.charts-multi-grid[data-v-9dd820b0]{grid-template-columns:repeat(2,1fr)!important}}@media (width<=768px){.charts-multi-grid[data-v-9dd820b0]{grid-template-columns:1fr!important}}.drawer-backdrop[data-v-1420629f]{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;background:#0f172a80;justify-content:flex-end;animation:.2s ease-out fadeIn-1420629f;display:flex;position:fixed;inset:0}@keyframes fadeIn-1420629f{0%{opacity:0}to{opacity:1}}@keyframes slideInRight-1420629f{0%{transform:translate(100%)}to{transform:translate(0)}}.platform-drawer[data-v-1420629f]{background:var(--bg-app);border-radius:20px 0 0 20px;flex-direction:column;width:860px;max-width:94vw;height:100vh;animation:.28s cubic-bezier(.16,1,.3,1) slideInRight-1420629f;display:flex;overflow:hidden;box-shadow:-10px 0 40px #00000040}.dark-theme .platform-drawer[data-v-1420629f]{background:#0f172a;box-shadow:-10px 0 40px #0009}.drawer-header[data-v-1420629f]{background:var(--bg-card);border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.drawer-platform-profile[data-v-1420629f]{align-items:center;gap:16px;min-width:0;display:flex}.drawer-store-logo[data-v-1420629f]{object-fit:cover;border:1px solid var(--border-subtle);border-radius:12px;flex-shrink:0;width:52px;height:52px}.drawer-store-logo-fallback[data-v-1420629f]{color:#fff;background:linear-gradient(135deg,#4f46e5 0%,#06b6d4 100%);border-radius:12px;flex-shrink:0;place-items:center;width:52px;height:52px;display:grid}.drawer-store-info[data-v-1420629f]{flex-direction:column;gap:4px;min-width:0;display:flex}.drawer-store-title-row[data-v-1420629f]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.drawer-store-name[data-v-1420629f]{color:var(--text-main);font-size:18px;font-weight:800}.drawer-meta-row[data-v-1420629f]{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:12.5px;display:flex}.drawer-close-btn[data-v-1420629f]{border:1px solid var(--border-subtle);background:var(--bg-card-subtle);width:36px;height:36px;color:var(--text-muted);cursor:pointer;border-radius:50%;flex-shrink:0;place-items:center;transition:all .15s;display:grid}.drawer-close-btn[data-v-1420629f]:hover{background:var(--border-subtle);color:var(--text-main);transform:scale(1.05)}.drawer-nav-tabs[data-v-1420629f]{background:var(--bg-card);border-bottom:1px solid var(--border-subtle);flex-shrink:0;align-items:center;gap:8px;padding:8px 24px;display:flex;overflow-x:auto}.drawer-tab-btn[data-v-1420629f]{border-radius:var(--radius-full);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .2s;display:inline-flex}.drawer-tab-btn[data-v-1420629f]:hover{background:var(--bg-card-subtle);color:var(--text-main)}.drawer-tab-btn.active[data-v-1420629f]{background:var(--primary-subtle);color:var(--primary);font-weight:700}.drawer-body[data-v-1420629f]{flex:1;padding:20px 24px 60px;overflow-y:auto}.drawer-section[data-v-1420629f]{flex-direction:column;gap:16px;display:flex}.drawer-loading-state[data-v-1420629f],.drawer-empty-state[data-v-1420629f]{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:50px 20px;display:flex}.category-chips-flow[data-v-1420629f]{border-top:1px solid var(--border-subtle);flex-wrap:wrap;align-items:center;gap:8px;padding-top:10px;display:flex}.book-toolbar-header-row[data-v-1420629f]{justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.book-toolbar-controls-right[data-v-1420629f]{flex-shrink:0;align-items:center;gap:10px;display:flex}.series-quick-actions-bar[data-v-1420629f]{align-items:center;gap:5px;display:inline-flex}.series-expand-btn[data-v-1420629f]{height:28px;padding:4px 9px;font-size:11.5px}.chips-divider[data-v-1420629f]{background:var(--border);width:1px;height:18px;margin:0 4px}.category-chip-btn[data-v-1420629f]{border-radius:var(--radius-full);border:1px solid var(--border-subtle);background:var(--bg-card-subtle);color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;padding:5px 12px;font-size:12px;font-weight:600;line-height:1.2;transition:all .15s;display:inline-flex}.category-chip-btn[data-v-1420629f]:hover{background:var(--border-subtle);color:var(--text-main);border-color:#cbd5e1}.category-chip-btn.active[data-v-1420629f]{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700;box-shadow:0 2px 8px #4f46e540}.cat-chip-count[data-v-1420629f]{background:#00000014;border-radius:999px;padding:1px 5px;font-size:10px;font-weight:700}.category-chip-btn.active .cat-chip-count[data-v-1420629f]{color:#fff;background:#ffffff40}.dark-theme .category-chip-btn[data-v-1420629f]{color:#cbd5e1;background:#1e293b;border-color:#374151}.dark-theme .category-chip-btn[data-v-1420629f]:hover{color:#f8fafc;background:#334155}.dark-theme .category-chip-btn.active[data-v-1420629f]{color:#fff;background:#6366f1;border-color:#6366f1}.sync-engine-metrics-grid[data-v-1420629f]{grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px;display:grid}.sync-engine-metric-card[data-v-1420629f]{background:var(--bg-card-subtle);border:1px solid var(--border-subtle);border-radius:12px;align-items:center;gap:14px;padding:14px 16px;transition:all .15s;display:flex}.sync-engine-metric-card[data-v-1420629f]:hover{border-color:#cbd5e1;transform:translateY(-1px)}.metric-icon-box[data-v-1420629f]{border-radius:10px;flex-shrink:0;place-items:center;width:42px;height:42px;display:grid}.metric-icon-box.sky[data-v-1420629f]{color:#0284c7;background:#f0f9ff}.metric-icon-box.indigo[data-v-1420629f]{color:#4f46e5;background:#eef2ff}.metric-icon-box.emerald[data-v-1420629f]{color:#059669;background:#ecfdf5}.dark-theme .metric-icon-box.sky[data-v-1420629f]{color:#38bdf8;background:#082f49}.dark-theme .metric-icon-box.indigo[data-v-1420629f]{color:#818cf8;background:#1e1b4b}.dark-theme .metric-icon-box.emerald[data-v-1420629f]{color:#34d399;background:#064e3b}.metric-info-block[data-v-1420629f]{flex-direction:column;min-width:0;display:flex}.metric-label[data-v-1420629f]{color:var(--text-subtle);font-size:11.5px}.metric-val[data-v-1420629f]{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:13.5px;font-weight:800;overflow:hidden}.series-accordion-container[data-v-1420629f]{flex-direction:column;gap:12px;display:flex}.series-group-card[data-v-1420629f]{border:1px solid var(--border-subtle);padding:0;transition:border-color .15s;overflow:hidden}.series-group-card[data-v-1420629f]:hover{border-color:#cbd5e1}.series-header[data-v-1420629f]{cursor:pointer;background:var(--bg-card);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:14px 18px;transition:background .15s;display:flex}.series-header[data-v-1420629f]:hover{background:var(--bg-card-subtle)}.series-header-left[data-v-1420629f]{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.folder-icon-wrap[data-v-1420629f]{background:var(--bg-card-subtle);border-radius:8px;flex-shrink:0;place-items:center;width:32px;height:32px;transition:all .2s;display:grid}.folder-icon-wrap.expanded[data-v-1420629f]{background:var(--primary-subtle)}.series-title[data-v-1420629f]{color:var(--text-main);margin-right:8px;font-size:14.5px;font-weight:800}.series-count-badge[data-v-1420629f]{color:#4f46e5;white-space:nowrap;background:#eef2ff;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:700}.dark-theme .series-count-badge[data-v-1420629f]{color:#c7d2fe;background:#312e81}.series-header-right[data-v-1420629f]{flex-shrink:0;align-items:center;gap:6px;display:flex}.series-toggle-text[data-v-1420629f]{color:var(--text-muted);font-size:12px}.series-books-grid[data-v-1420629f]{border-top:1px solid var(--border-subtle);background:var(--bg-card-subtle);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;padding:12px 16px 16px;display:grid}.series-book-row-item[data-v-1420629f]{border:1px solid var(--border-subtle);cursor:pointer;background:#fff;border-radius:10px;gap:12px;padding:10px 12px;transition:all .15s;display:flex}.dark-theme .series-book-row-item[data-v-1420629f]{background:#111827}.series-book-row-item[data-v-1420629f]:hover{box-shadow:var(--shadow-sm);border-color:#818cf8;transform:translateY(-1px)}.series-book-cover[data-v-1420629f]{object-fit:cover;border:1px solid var(--border-subtle);border-radius:6px;flex-shrink:0;width:58px;height:74px}.series-book-cover-fallback[data-v-1420629f]{color:#94a3b8;background:#f1f5f9;border-radius:6px;flex-shrink:0;place-items:center;width:58px;height:74px;display:grid}.series-book-content[data-v-1420629f]{flex-direction:column;flex:1;justify-content:space-between;min-width:0;display:flex}.series-book-name[data-v-1420629f]{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.series-cat-pill[data-v-1420629f]{background:var(--bg-card-subtle);color:var(--text-muted);border-radius:999px;flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:700}.series-book-desc[data-v-1420629f]{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:3px 0 4px;font-size:11px;line-height:1.4;display:-webkit-box;overflow:hidden}.books-materials-grid[data-v-1420629f]{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;display:grid}.book-card-item[data-v-1420629f]{cursor:pointer;flex-direction:column;padding:14px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.book-card-item[data-v-1420629f]:hover{box-shadow:var(--shadow-hover);border-color:#818cf8;transform:translateY(-2px)}.book-cover-wrap[data-v-1420629f]{background:#f1f5f9;border-radius:10px;width:100%;height:130px;position:relative;overflow:hidden}.book-cover-img[data-v-1420629f]{object-fit:cover;width:100%;height:100%}.book-cover-fallback[data-v-1420629f]{color:#94a3b8;background:linear-gradient(135deg,#e0e7ff 0%,#dbeafe 100%);place-items:center;width:100%;height:100%;display:grid}.book-category-tag[data-v-1420629f]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;background:#0f172abf;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:700;position:absolute;top:8px;right:8px}.book-info-body[data-v-1420629f]{flex-direction:column;flex:1;gap:4px;margin-top:10px;display:flex}.book-title[data-v-1420629f]{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:700;overflow:hidden}.book-series-text[data-v-1420629f]{color:#4f46e5;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.book-desc-snippet[data-v-1420629f]{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;margin:4px 0;font-size:11.5px;line-height:1.4;display:-webkit-box;overflow:hidden}.book-footer-row[data-v-1420629f]{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-top:6px;padding-top:6px;display:flex}.qr-code-box[data-v-1420629f]{border:1px solid var(--border-subtle);width:130px;box-shadow:var(--shadow-sm);background:#fff;border-radius:10px;padding:8px}.qr-img[data-v-1420629f]{object-fit:contain;width:100%;height:114px}@media (width<=768px){.platform-drawer[data-v-1420629f]{border-radius:0;width:100vw;max-width:100vw}.sync-engine-metrics-grid[data-v-1420629f]{grid-template-columns:1fr}}.platform-unified-card[data-v-0322f3b1]{cursor:pointer;padding:16px 20px;transition:all .2s cubic-bezier(.4,0,.2,1)}.platform-unified-card[data-v-0322f3b1]:hover{box-shadow:var(--shadow-hover);border-color:#818cf8;transform:translateY(-2px)}.platform-card-body[data-v-0322f3b1]{align-items:center;gap:16px;width:100%;display:flex}.platform-logo-box[data-v-0322f3b1]{flex-shrink:0;width:52px;height:52px}.platform-logo-img[data-v-0322f3b1]{object-fit:cover;border:1px solid var(--border-subtle);border-radius:12px;width:52px;height:52px;box-shadow:0 2px 6px #0000000f}.platform-logo-fallback[data-v-0322f3b1]{color:#fff;background:linear-gradient(135deg,#4f46e5 0%,#06b6d4 100%);border-radius:12px;place-items:center;width:52px;height:52px;display:grid;box-shadow:0 2px 6px #4f46e540}.platform-main-block[data-v-0322f3b1]{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.platform-title-row[data-v-0322f3b1]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.platform-name[data-v-0322f3b1]{color:var(--text-main);font-size:16px;font-weight:800;transition:color .15s}.platform-unified-card:hover .platform-name[data-v-0322f3b1]{color:var(--primary)}.platform-notice-pill[data-v-0322f3b1]{color:#92400e;background:#fffbeb;border:1px solid #fef3c7;border-radius:8px;align-items:center;gap:6px;max-width:820px;padding:4px 10px;font-size:12px;display:flex;overflow:hidden}.dark-theme .platform-notice-pill[data-v-0322f3b1]{color:#fcd34d;background:#451a0333;border-color:#78350f}.notice-icon-tag[data-v-0322f3b1]{flex-shrink:0;font-size:11px;font-weight:800}.notice-content-text[data-v-0322f3b1]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.platform-meta-row[data-v-0322f3b1]{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:14px;font-size:12px;display:flex}.inline-sync-chip[data-v-0322f3b1]{background:var(--bg-card-subtle);border:1px solid var(--border-subtle);color:var(--text-muted);border-radius:999px;align-items:center;gap:3px;padding:1px 7px;font-size:11px;display:inline-flex}.platform-actions-cluster[data-v-0322f3b1]{flex-shrink:0;align-items:center;gap:8px;display:flex}@media (width<=900px){.platform-card-body[data-v-0322f3b1]{flex-direction:column;align-items:flex-start}.platform-actions-cluster[data-v-0322f3b1]{justify-content:flex-end;width:100%;margin-top:8px}}.platform-card-disabled[data-v-0322f3b1]{opacity:.68;filter:grayscale(.25)}.platform-disabled-badge[data-v-0322f3b1]{color:#64748b;background:#f1f5f9}.platform-toggle-btn[data-v-0322f3b1]{align-items:center;gap:4px;display:inline-flex}.disabled-platforms-section[data-v-0322f3b1]{margin-top:14px}.disabled-platforms-toggle[data-v-0322f3b1]{border:1px dashed var(--border);background:var(--bg-card-subtle);color:var(--text-muted);cursor:pointer;border-radius:9px;align-items:center;gap:6px;padding:8px 10px;font-size:12px;display:inline-flex}.disabled-platforms-toggle .rotated[data-v-0322f3b1]{transform:rotate(90deg)}.disabled-platforms-list[data-v-0322f3b1]{flex-direction:column;gap:8px;margin-top:8px;display:flex}.disabled-platform-row[data-v-0322f3b1]{border:1px solid var(--border-subtle);color:var(--text-muted);border-radius:9px;justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;font-size:12px;display:flex}.settings-view-wrapper[data-v-00de6a81]{width:100%}.settings-grid-layout[data-v-00de6a81]{grid-template-columns:280px 1fr;align-items:start;gap:20px;display:grid}.settings-sidebar-nav[data-v-00de6a81]{flex-direction:column;gap:6px;padding:14px;display:flex}.setting-nav-btn[data-v-00de6a81]{border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:12px;padding:12px 14px;transition:all .2s;display:flex}.setting-nav-btn[data-v-00de6a81]:hover{background:var(--bg-card-subtle);color:var(--text-main)}.setting-nav-btn.active[data-v-00de6a81]{background:var(--primary-subtle);color:var(--primary)}.nav-text[data-v-00de6a81]{flex-direction:column;min-width:0;display:flex}.nav-text b[data-v-00de6a81]{font-size:13.5px;font-weight:700}.nav-text small[data-v-00de6a81]{color:var(--text-muted);margin-top:2px;font-size:12px}.settings-content-panel[data-v-00de6a81]{padding:28px 32px}.panel-section-header[data-v-00de6a81]{border-bottom:1px solid var(--border-subtle);margin-bottom:22px;padding-bottom:16px}.panel-section-header h3[data-v-00de6a81]{color:var(--text-main);font-size:15px;font-weight:700}.panel-section-header p[data-v-00de6a81]{color:var(--text-muted);margin-top:3px;font-size:12.5px}@media (width<=900px){.settings-grid-layout[data-v-00de6a81]{grid-template-columns:1fr}}.booking-dialog-wrapper[data-v-04d3dcd1]{width:100%;max-width:620px}.booking-dialog-loading[data-v-04d3dcd1]{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px 20px;display:flex}.booking-teacher-banner[data-v-04d3dcd1]{background:var(--bg-card-subtle);border:1px solid var(--border-subtle);border-radius:14px;padding:14px 18px}.booking-teacher-top-row[data-v-04d3dcd1]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.booking-teacher-profile[data-v-04d3dcd1]{align-items:center;gap:12px;display:flex}.booking-teacher-avatar[data-v-04d3dcd1]{object-fit:cover;border:2px solid #fff;border-radius:50%;flex-shrink:0;width:48px;height:48px;box-shadow:0 2px 8px #00000014}.booking-teacher-avatar-fallback[data-v-04d3dcd1]{color:#fff;background:linear-gradient(135deg,#4f46e5 0%,#3b82f6 100%);border-radius:50%;flex-shrink:0;place-items:center;width:48px;height:48px;font-size:18px;font-weight:800;display:grid}.booking-teacher-text[data-v-04d3dcd1]{flex-direction:column;gap:2px;display:flex}.booking-teacher-title-row[data-v-04d3dcd1]{align-items:center;gap:8px;display:flex}.booking-teacher-name[data-v-04d3dcd1]{color:var(--text-main);font-size:16px;font-weight:800}.booking-teacher-sub-row[data-v-04d3dcd1]{color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:flex}.booking-rating-pill[data-v-04d3dcd1]{color:#f59e0b;align-items:center;gap:2px;font-weight:700;display:inline-flex}.booking-price-badge[data-v-04d3dcd1]{text-align:right}.booking-balance-bar[data-v-04d3dcd1]{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding-top:8px;font-size:12px;display:flex}.balance-tag-ok[data-v-04d3dcd1]{color:#065f46;background:#ecfdf5;font-weight:700}.balance-tag-warn[data-v-04d3dcd1]{color:#92400e;background:#fef3c7;font-weight:700}.booking-slot-grid[data-v-04d3dcd1]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;grid-template-columns:repeat(4,1fr);gap:8px;padding:10px 14px;font-size:12px;display:grid}.slot-stat-col[data-v-04d3dcd1]{flex-direction:column;gap:2px;display:flex}.slot-stat-label[data-v-04d3dcd1]{color:var(--text-muted);font-size:11px}.slot-stat-val[data-v-04d3dcd1]{font-size:12.5px;font-weight:700}.text-main[data-v-04d3dcd1]{color:var(--text-main)}.text-emerald[data-v-04d3dcd1]{color:#059669}.text-primary[data-v-04d3dcd1]{color:#4f46e5}.no-card-alert[data-v-04d3dcd1]{color:#991b1b;background:#fef2f2;border:1px solid #fee2e2;border-radius:8px;padding:9px 12px;font-size:11.5px}.cascading-booking-container[data-v-04d3dcd1]{flex-direction:column;display:flex}.units-loading-skeleton[data-v-04d3dcd1]{text-align:center;background:var(--bg-card-subtle);color:var(--text-muted);border-radius:10px;padding:18px;font-size:12px}.units-scroll-box[data-v-04d3dcd1]{border:1px solid var(--border);background:var(--bg-card-subtle);border-radius:10px;flex-direction:column;gap:10px;max-height:190px;padding:10px;display:flex;overflow-y:auto}.unit-folder-section[data-v-04d3dcd1]{flex-direction:column;gap:6px;display:flex}.unit-folder-title[data-v-04d3dcd1]{color:var(--text-main);align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.unit-folder-count[data-v-04d3dcd1]{color:var(--text-muted);font-size:11px;font-weight:400}.units-list-grid[data-v-04d3dcd1]{flex-direction:column;gap:5px;display:flex}.unit-item-row[data-v-04d3dcd1]{border:1px solid var(--border-subtle);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border-radius:8px;align-items:center;gap:8px;padding:6px 10px;transition:all .15s;display:flex}.dark-theme .unit-item-row[data-v-04d3dcd1]{background:#1e293b;border-color:#374151}.unit-item-row[data-v-04d3dcd1]:hover{background:#f8fafc;border-color:#cbd5e1}.dark-theme .unit-item-row[data-v-04d3dcd1]:hover{background:#334155}.unit-item-row.is-selected[data-v-04d3dcd1]{box-shadow:0 0 0 2px #4f46e533;background:var(--primary-subtle)!important;border-color:var(--primary)!important}.custom-radio[data-v-04d3dcd1]{border:1.5px solid var(--border);border-radius:50%;flex-shrink:0;place-items:center;width:14px;height:14px;transition:all .15s;display:grid}.custom-radio.checked[data-v-04d3dcd1]{border-color:var(--primary)}.radio-inner-dot[data-v-04d3dcd1]{background:var(--primary);border-radius:50%;width:6px;height:6px}.unit-name-text[data-v-04d3dcd1]{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:600;overflow:hidden}.unit-status-tag[data-v-04d3dcd1]{white-space:nowrap;border-radius:999px;align-items:center;gap:3px;padding:1px 6px;font-size:10px;font-weight:700;display:inline-flex}.unit-status-tag.learned[data-v-04d3dcd1]{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.unit-status-tag.booked[data-v-04d3dcd1]{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.unit-status-tag.unlearned[data-v-04d3dcd1]{color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0}.dark-theme .unit-status-tag.learned[data-v-04d3dcd1]{color:#34d399;background:#064e3b44;border-color:#065f46}.dark-theme .unit-status-tag.booked[data-v-04d3dcd1]{color:#93c5fd;background:#1e3a8a44;border-color:#1e40af}.dark-theme .unit-status-tag.unlearned[data-v-04d3dcd1]{color:#94a3b8;background:#1e293b;border-color:#334155}.units-empty-fallback[data-v-04d3dcd1]{background:var(--bg-card-subtle);color:var(--text-muted);border:1px solid var(--border-subtle);border-radius:10px;padding:12px 14px;font-size:12px}.booking-courseware-notice[data-v-04d3dcd1]{color:#1e40af;background:#eff6ff;border:1px solid #dbeafe;border-radius:10px;align-items:flex-start;gap:8px;padding:10px 12px;font-size:11.5px;line-height:1.5;display:flex}.dark-theme .booking-courseware-notice[data-v-04d3dcd1]{color:#c7d2fe;background:#1e1b4b33;border-color:#3730a3}.booking-error-alert[data-v-04d3dcd1]{color:#be123c;background:#fef2f2;border:1px solid #fecdd3;border-radius:10px;align-items:center;gap:8px;padding:10px 12px;font-size:12px;font-weight:600;display:flex}.dark-theme .booking-error-alert[data-v-04d3dcd1]{color:#fca5a5;background:#88133722;border-color:#9f1239}.booking-dialog-footer[data-v-04d3dcd1]{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-top:6px;padding-top:14px;display:flex}@media (width<=640px){.booking-slot-grid[data-v-04d3dcd1]{grid-template-columns:repeat(2,1fr)}}.vocab-toolbar[data-v-04bc960d]{background:var(--bg-card);border:1px solid var(--border-subtle);box-shadow:0 4px 14px #0f172a0b}.vocab-toolbar>div[data-v-04bc960d]:first-child{flex:1;min-width:0}.vocab-toolbar .search-input-wrap[data-v-04bc960d]{border-radius:10px;width:min(300px,100%)!important}.vocab-toolbar .select-input[data-v-04bc960d]{border-radius:10px;min-width:130px}.vocab-table-card[data-v-04bc960d]{border:1px solid var(--border-subtle);box-shadow:0 5px 18px #0f172a0e}.vocab-table[data-v-04bc960d]{border-collapse:separate;border-spacing:0}.vocab-table thead th[data-v-04bc960d]{background:var(--bg-card-subtle);border-bottom:1px solid var(--border-subtle);height:46px;color:var(--text-muted);letter-spacing:.02em;white-space:nowrap;padding:0 16px;font-size:11px;font-weight:800}.vocab-table tbody tr[data-v-04bc960d]{transition:background .16s}.vocab-table tbody tr[data-v-04bc960d]:hover{background:#6366f10b}.vocab-table tbody td[data-v-04bc960d]{border-bottom:1px solid var(--border-subtle);vertical-align:middle;min-height:64px;padding:12px 16px}.vocab-table tbody tr:last-child td[data-v-04bc960d]{border-bottom:0}.vocab-table tbody td:first-child b[data-v-04bc960d]{color:#3730a3;letter-spacing:.01em;background:#eef2ff;border-radius:8px;align-items:center;min-height:30px;padding:0 9px;display:inline-flex}.dark-theme .vocab-table tbody td:first-child b[data-v-04bc960d]{color:#c7d2fe;background:#6366f12e}.vocab-table tbody td:nth-child(2) span[data-v-04bc960d]{background:var(--bg-card-subtle);border-radius:7px;align-items:center;min-height:28px;padding:0 8px;display:inline-flex}.vocab-table .tag-pill[data-v-04bc960d]{border:1px solid #94a3b840}@media (width<=900px){.vocab-toolbar[data-v-04bc960d]{align-items:stretch!important}.vocab-toolbar>div[data-v-04bc960d]:first-child,.vocab-toolbar>div[data-v-04bc960d]:last-child{width:100%}.vocab-toolbar>div[data-v-04bc960d]:first-child{grid-template-columns:1fr;display:grid!important}.vocab-toolbar .search-input-wrap[data-v-04bc960d],.vocab-toolbar .select-input[data-v-04bc960d]{width:100%!important}.vocab-table-card[data-v-04bc960d]{overflow-x:auto!important}.vocab-table[data-v-04bc960d]{min-width:760px}}.pack-card-item[data-v-04bc960d]:hover,.task-list-row-item[data-v-04bc960d]:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);border-color:#6366f1!important}.task-status-indicator[data-v-04bc960d]{border-radius:10px;flex-shrink:0;place-items:center;width:38px;height:38px;display:grid}.option-choice-btn[data-v-04bc960d]{text-align:left;border:1.5px solid var(--border);background:var(--bg-card-subtle);color:var(--text-main);cursor:pointer;border-radius:10px;align-items:center;padding:10px 14px;font-size:13.5px;font-weight:600;transition:all .15s;display:flex}.option-choice-btn[data-v-04bc960d]:hover{background:var(--bg-card);border-color:#6366f1}.option-choice-btn.selected[data-v-04bc960d]{color:#4338ca;background:#eef2ff;border-color:#4f46e5}.option-choice-btn.correct[data-v-04bc960d]{color:#065f46!important;background:#ecfdf5!important;border-color:#10b981!important}.option-choice-btn.wrong[data-v-04bc960d]{color:#9f1239!important;background:#fff1f2!important;border-color:#f43f5e!important}.option-check-circle[data-v-04bc960d]{border:1.5px solid;border-radius:50%;flex-shrink:0;place-items:center;width:18px;height:18px;display:grid}.child-spelling-card[data-v-04bc960d]{background:var(--bg-card);border:1.5px solid var(--border);border-radius:16px;flex-direction:column;justify-content:space-between;gap:14px;padding:18px;transition:all .2s;display:flex;position:relative}.spelling-bookmark-btn[data-v-04bc960d]{z-index:5;background:var(--bg-card-subtle);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex;position:absolute;top:14px;right:14px}.spelling-bookmark-btn[data-v-04bc960d]:hover{background:var(--bg-hover);transform:scale(1.08)}.child-spelling-card.is-correct[data-v-04bc960d]{background:#f0fdf4!important;border-color:#10b981!important}.child-spelling-card.is-wrong[data-v-04bc960d]{background:#fff1f2!important;border-color:#f43f5e!important}.spelling-exercise-panel[data-v-04bc960d]{background:var(--bg-card-subtle);border:1.5px solid var(--border-subtle);border-radius:16px;flex-direction:column;gap:11px;padding:16px;transition:border-color .18s,background .18s;display:flex}.spelling-exercise-panel.is-shaking[data-v-04bc960d]{background:#fff1f2;border-color:#f43f5e;animation:.52s ease-in-out spellingShake-04bc960d}.spelling-exercise-panel.is-complete[data-v-04bc960d]{background:#f0fdf4;border-color:#a7f3d0;padding-top:10px}.spelling-blank-word[data-v-04bc960d]{color:#4f46e5;letter-spacing:2px;justify-content:center;gap:8px;min-height:40px;padding:8px 12px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:27px;font-weight:900;display:flex;position:relative}.spelling-blank-word span[data-v-04bc960d]{border-bottom:0;justify-content:center;width:36px;line-height:1;display:inline-flex}.spelling-blank-word.is-correct[data-v-04bc960d]{color:#059669}.spelling-blank-word.is-correct .spelling-slot input[data-v-04bc960d]{color:#047857;border-bottom-color:#10b981}.spelling-slot[data-v-04bc960d]{min-height:34px;color:var(--text-main);justify-content:center;align-items:flex-end;display:inline-flex;border-bottom-width:3px!important;width:36px!important}.spelling-slot.is-active[data-v-04bc960d]{border-bottom-color:#4f46e5}.spelling-slot input[data-v-04bc960d]{width:36px;height:38px;color:var(--text-main);font:inherit;text-align:center;caret-color:#4f46e5;text-transform:lowercase;background:0 0;border:0;border-bottom:3px solid #94a3b8;outline:0;padding:0;font-size:27px;font-weight:900;line-height:1}.spelling-slot.is-active input[data-v-04bc960d]{border-bottom-color:#4f46e5}.spelling-slot.is-hinted input[data-v-04bc960d]{color:#d97706;border-bottom-color:#f59e0b}.spelling-slot input[data-v-04bc960d]:focus{border-bottom-color:#4f46e5}.spelling-translation-row[data-v-04bc960d]{text-align:center;justify-content:center;align-items:center;width:100%;padding:4px 36px 0;display:flex}.spelling-translation-text[data-v-04bc960d]{color:var(--text-main);text-align:center;word-break:break-word;font-size:24px;font-weight:900;line-height:1.35}.translation-speaker-btn[data-v-04bc960d]{color:#7c3aed;cursor:pointer;background:#faf5ff;border:1px solid #ddd6fe;border-radius:50%;flex:none;justify-content:center;align-items:center;width:28px;height:28px;margin-left:8px;display:inline-flex}.translation-speaker-btn[data-v-04bc960d]:hover{background:#ede9fe;transform:scale(1.06)}.spelling-meta-row[data-v-04bc960d]{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;width:100%;padding:4px 0 6px;display:flex}.spelling-phonetic-badge[data-v-04bc960d]{background:var(--bg-card-subtle);border:1px solid var(--border-subtle);color:var(--text-muted);letter-spacing:.5px;border-radius:8px;padding:3px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:700}.spelling-audio-actions[data-v-04bc960d]{align-items:center;gap:6px;display:inline-flex}.spelling-audio-btn[data-v-04bc960d]{border:1px solid var(--border-subtle);background:var(--bg-card-subtle);width:30px;height:30px;color:var(--text-main);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.spelling-audio-btn[data-v-04bc960d]:hover{color:#6366f1;background:#ede9fe;border-color:#c7d2fe;transform:scale(1.08)}.spelling-audio-btn.is-recording[data-v-04bc960d]{animation:1.2s ease-in-out infinite pulseRecording;color:#ef4444!important;background:#fee2e2!important;border-color:#fca5a5!important}.spelling-audio-btn.action-playback[data-v-04bc960d]{color:#059669}.spelling-audio-btn.action-playback[data-v-04bc960d]:hover{background:#ecfdf5;border-color:#a7f3d0}.spelling-extra-details[data-v-04bc960d]{flex-direction:column;gap:6px;display:flex}.spelling-example-box[data-v-04bc960d]{color:var(--text-muted);background:var(--bg-card-subtle);border-radius:10px;justify-content:space-between;align-items:center;gap:6px;padding:8px 12px;font-size:12.5px;line-height:1.5;display:flex}.spelling-tip-box[data-v-04bc960d]{color:#d97706;align-items:center;gap:4px;font-size:11.5px;font-weight:600;display:flex}.spelling-helper-row[data-v-04bc960d]{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.spelling-hint-btn[data-v-04bc960d]{color:#a16207;cursor:pointer;background:#fffbeb;border:1px solid #fde68a;border-radius:999px;align-items:center;gap:5px;min-height:30px;padding:4px 10px;font-size:11.5px;font-weight:800;display:inline-flex}.spelling-hint-btn[data-v-04bc960d]:hover{background:#fef3c7;border-color:#f59e0b}.spelling-helper-note[data-v-04bc960d]{color:var(--text-subtle);font-size:10.5px}@keyframes spellingShake-04bc960d{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(7px)}60%{transform:translate(-5px)}80%{transform:translate(3px)}}.child-spelling-input[data-v-04bc960d]{border:2px solid var(--border);background:var(--bg-card);width:100%;height:44px;color:var(--text-main);text-align:center;letter-spacing:1px;border-radius:10px;padding:0 12px;font-size:16px;font-weight:800;transition:border-color .2s}.child-spelling-input[data-v-04bc960d]:focus{border-color:#4f46e5;outline:none}.inline-cloze-input[data-v-04bc960d]{text-align:center;background:var(--bg-card);border-bottom:2.5px solid #4f46e5;border-radius:6px;width:130px;height:32px;margin:0 6px;padding:0 6px;font-size:14px;font-weight:800;display:inline-block}.letter-bubble-flow[data-v-04bc960d]{flex-wrap:wrap;gap:6px;display:flex}.letter-bubble-chip[data-v-04bc960d]{background:var(--bg-card);border:1.5px solid var(--border);width:32px;height:32px;color:var(--text-main);cursor:pointer;border-radius:8px;place-items:center;font-size:14px;font-weight:800;transition:all .1s;display:grid}.letter-bubble-chip[data-v-04bc960d]:hover{color:#fff;background:#4f46e5;border-color:#4f46e5;transform:scale(1.08)}.studio-modal-backdrop[data-v-04bc960d]{z-index:1200}.studio-modal-dialog[data-v-04bc960d]{border-radius:18px;flex-direction:column;width:95vw;max-width:1100px;height:88vh;padding:0;display:flex;overflow:hidden}.studio-fullscreen-active[data-v-04bc960d]{border-radius:0!important;width:100vw!important;max-width:100vw!important;height:100vh!important}.studio-header-bar[data-v-04bc960d]{border-bottom:1px solid var(--border-subtle);background:var(--bg-card);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.studio-body-layout[data-v-04bc960d]{flex:1;grid-template-columns:280px 1fr;display:grid;overflow:hidden}.studio-sidebar-nav[data-v-04bc960d]{border-right:1px solid var(--border-subtle);background:var(--bg-card-subtle);flex-direction:column;padding:16px 14px;display:flex;overflow-y:auto}.studio-content-viewport[data-v-04bc960d]{background:var(--bg-main);padding:20px 24px;overflow-y:auto}.studio-footer-bar[data-v-04bc960d]{border-top:1px solid var(--border-subtle);background:var(--bg-card);justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.studio-tree-roadmap[data-v-04bc960d]{flex-direction:column;margin-top:10px;display:flex}.studio-tree-step[data-v-04bc960d]{grid-template-columns:24px 1fr;gap:10px;display:grid;position:relative}.studio-step-spine[data-v-04bc960d]{flex-direction:column;align-items:center;display:flex}.studio-step-node-dot[data-v-04bc960d]{border:1.5px solid var(--border);background:var(--bg-card);width:22px;height:22px;color:var(--text-muted);z-index:2;border-radius:50%;place-items:center;font-size:11px;font-weight:800;transition:all .2s;display:grid}.studio-tree-step.active .studio-step-node-dot[data-v-04bc960d]{color:#fff;background:#4f46e5;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e533}.studio-tree-step.completed .studio-step-node-dot[data-v-04bc960d]{color:#fff;background:#10b981;border-color:#10b981}.studio-step-dashed-line[data-v-04bc960d]{border-left:2px dashed var(--border);flex:1;width:2px;min-height:28px;margin:3px 0}.studio-step-content-card[data-v-04bc960d]{cursor:pointer;border:1px solid #0000;border-radius:10px;margin-bottom:8px;padding:8px 10px;transition:all .15s}.studio-step-content-card[data-v-04bc960d]:hover{background:var(--bg-card);border-color:var(--border-subtle)}.studio-step-content-card.active[data-v-04bc960d]{background:var(--bg-card);border-color:#4f46e5;box-shadow:0 1px 3px #0000000d}.studio-step-card-title[data-v-04bc960d]{color:var(--text-main);font-size:12px;font-weight:800}.studio-step-card-desc[data-v-04bc960d]{color:var(--text-muted);margin-top:2px;font-size:11px;line-height:1.3}.studio-tree-step.locked .studio-step-content-card[data-v-04bc960d]{opacity:.6;cursor:not-allowed}.interactive-flip-card[data-v-04bc960d]{perspective:1000px;cursor:pointer;height:220px}.flip-face[data-v-04bc960d]{background:var(--bg-card);border:1.5px solid var(--border);text-align:center;backface-visibility:hidden;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:24px;transition:transform .4s;display:flex}.flip-back[data-v-04bc960d]{background:var(--bg-card-subtle);position:absolute;top:0;left:0;transform:rotateY(180deg)}.interactive-flip-card.flipped .flip-front[data-v-04bc960d]{transform:rotateY(-180deg)}.interactive-flip-card.flipped .flip-back[data-v-04bc960d]{transform:rotateY(0)}.job-drawer-panel[data-v-04bc960d]{z-index:1300;background:var(--bg-card);border-radius:0;width:480px;max-width:90vw;height:100vh;padding:24px;position:fixed;top:0;right:0;box-shadow:-4px 0 24px #00000026}@media (width<=768px){.studio-body-layout[data-v-04bc960d]{grid-template-columns:1fr}.studio-sidebar-nav[data-v-04bc960d]{display:none}}.sentence-prompt-card[data-v-04bc960d]{background:var(--bg-card-subtle);border:1px solid var(--border-subtle);border-radius:14px;margin-bottom:12px;padding:12px 14px 14px}.sentence-translation-row[data-v-04bc960d]{color:#4f46e5;text-align:center;justify-content:center;align-items:center;gap:8px;min-height:46px;font-size:20px;font-weight:900;line-height:1.45;display:flex}.sentence-answer-reveal[data-v-04bc960d]{border-top:1px dashed var(--border);color:var(--text-main);text-align:center;justify-content:center;align-items:center;gap:8px;margin-top:9px;padding-top:9px;font-size:15px;font-weight:800;display:flex}.sentence-cloze-line[data-v-04bc960d]{color:var(--text-main);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:4px;margin:10px 0 12px;font-size:15px;font-weight:700;line-height:1.9;display:flex}.sentence-word-blank-input[data-v-04bc960d]{width:112px;height:34px;color:var(--text-main);text-align:center;letter-spacing:.6px;background:0 0;border:0;border-bottom:3px solid #6366f1;border-radius:0;outline:0;font-size:18px;font-weight:800}.sentence-cloze-line .sentence-word-blank-input[data-v-04bc960d]{flex:none}.sentence-word-blank-input[data-v-04bc960d]:focus{border-bottom-color:#4338ca;box-shadow:0 4px 0 -2px #6366f133}.sentence-retell-row[data-v-04bc960d]{align-items:center;gap:8px;display:flex}.sentence-retell-input[data-v-04bc960d]{flex:1;min-width:0;height:42px;font-size:14px;font-weight:650}@media (width<=600px){.sentence-retell-row[data-v-04bc960d]{flex-direction:column;align-items:stretch}}.sentence-cloze-panel[data-v-04bc960d],.sentence-retell-panel[data-v-04bc960d]{border:1px solid var(--border-subtle);background:var(--bg-card-subtle);border-radius:14px;padding:14px;transition:border-color .18s,background .18s}.sentence-cloze-panel.is-shaking[data-v-04bc960d],.sentence-retell-panel.is-shaking[data-v-04bc960d]{background:#fff1f2;border-color:#f43f5e;animation:.55s ease-in-out sentenceInputShake-04bc960d}.sentence-cloze-panel.is-complete[data-v-04bc960d],.sentence-retell-panel.is-complete[data-v-04bc960d]{background:#f0fdf4;border-color:#a7f3d0}@keyframes sentenceInputShake-04bc960d{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(2px)}}.cal-mini-legend[data-v-ba2f3d89]{color:var(--text-muted);align-items:center;gap:8px;font-size:11px;display:flex}.legend-dot-item[data-v-ba2f3d89]{align-items:center;gap:3px;display:inline-flex}.cal-cell-inner[data-v-ba2f3d89]{flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.cal-day-num[data-v-ba2f3d89]{font-size:11.5px;line-height:1}.cal-dot-wrap[data-v-ba2f3d89]{justify-content:center;align-items:center;gap:2px;height:4px;margin-top:2px;display:flex}.cal-status-dot[data-v-ba2f3d89]{border-radius:50%;flex-shrink:0;width:4px;height:4px}.cal-status-dot.green[data-v-ba2f3d89]{background:#10b981;box-shadow:0 0 4px #10b98180}.cal-status-dot.yellow[data-v-ba2f3d89]{background:#f59e0b;box-shadow:0 0 4px #f59e0b80}.cal-status-dot.red[data-v-ba2f3d89]{background:#ef4444;box-shadow:0 0 4px #ef444466}.drawer-backdrop[data-v-609335dd]{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;background:#0f172a80;justify-content:flex-end;animation:.2s ease-out fadeIn-609335dd;display:flex;position:fixed;inset:0}@keyframes fadeIn-609335dd{0%{opacity:0}to{opacity:1}}@keyframes slideInRight-609335dd{0%{transform:translate(100%)}to{transform:translate(0)}}.teacher-drawer[data-v-609335dd]{background:var(--bg-app);border-radius:20px 0 0 20px;flex-direction:column;width:860px;max-width:94vw;height:100vh;animation:.28s cubic-bezier(.16,1,.3,1) slideInRight-609335dd;display:flex;overflow:hidden;box-shadow:-10px 0 40px #00000040}.dark-theme .teacher-drawer[data-v-609335dd]{background:#0f172a;box-shadow:-10px 0 40px #0009}.drawer-header[data-v-609335dd]{background:var(--bg-card);border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.drawer-teacher-profile[data-v-609335dd]{align-items:center;gap:16px;min-width:0;display:flex}.drawer-avatar[data-v-609335dd]{object-fit:cover;border:2px solid #fff;border-radius:50%;flex-shrink:0;width:54px;height:54px;box-shadow:0 2px 8px #00000014}.drawer-avatar-fallback[data-v-609335dd]{color:#fff;background:linear-gradient(135deg,#4f46e5 0%,#3b82f6 100%);border-radius:50%;flex-shrink:0;place-items:center;width:54px;height:54px;font-size:20px;font-weight:800;display:grid}.drawer-teacher-info[data-v-609335dd]{flex-direction:column;gap:4px;min-width:0;display:flex}.drawer-name-row[data-v-609335dd]{align-items:center;gap:10px;display:flex}.drawer-teacher-name[data-v-609335dd]{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;font-size:18px;font-weight:800;overflow:hidden}.drawer-meta-row[data-v-609335dd]{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:12.5px;display:flex}.drawer-price-pill[data-v-609335dd]{color:#4f46e5;font-size:13px;font-weight:800}.saved-pref-badge[data-v-609335dd]{color:#4f46e5;background:#eef2ff;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:11.5px;font-weight:700;display:inline-flex}.drawer-close-btn[data-v-609335dd]{border:1px solid var(--border-subtle);background:var(--bg-card-subtle);width:36px;height:36px;color:var(--text-muted);cursor:pointer;border-radius:50%;flex-shrink:0;place-items:center;transition:all .15s;display:grid}.drawer-close-btn[data-v-609335dd]:hover{background:var(--border-subtle);color:var(--text-main);transform:scale(1.05)}.drawer-nav-tabs[data-v-609335dd]{background:var(--bg-card);border-bottom:1px solid var(--border-subtle);flex-shrink:0;align-items:center;gap:8px;padding:8px 24px;display:flex;overflow-x:auto}.drawer-tab-btn[data-v-609335dd]{border-radius:var(--radius-full);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .2s;display:inline-flex}.drawer-tab-btn[data-v-609335dd]:hover{background:var(--bg-card-subtle);color:var(--text-main)}.drawer-tab-btn.active[data-v-609335dd]{background:var(--primary-subtle);color:var(--primary);font-weight:700}.drawer-tab-badge[data-v-609335dd]{color:#fff;background:#059669;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:700}.drawer-body[data-v-609335dd]{flex:1;padding:20px 24px 80px;overflow-y:auto}.drawer-section[data-v-609335dd]{flex-direction:column;gap:16px;display:flex}.teacher-video-container[data-v-609335dd]{aspect-ratio:16/9;border:1px solid var(--border-subtle);background:#000;border-radius:12px;width:100%;max-height:440px;overflow:hidden;box-shadow:0 4px 16px #0000001f}.teacher-video-iframe[data-v-609335dd]{border:0;width:100%;height:100%;display:block}.weekly-controls-row[data-v-609335dd]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.weekly-nav-group[data-v-609335dd]{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.weekly-arrows[data-v-609335dd]{align-items:center;gap:6px;display:flex}.week-range-text[data-v-609335dd]{color:var(--text-main);padding:0 4px;font-size:12.5px;font-weight:700}.weekly-actions-group[data-v-609335dd]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.weekly-legend-bar[data-v-609335dd]{border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);color:var(--text-muted);flex-wrap:wrap;gap:16px;margin-bottom:16px;padding:10px 0;font-size:11.5px;display:flex}.legend-item[data-v-609335dd]{align-items:center;gap:6px;display:flex}.legend-box[data-v-609335dd]{border:1px solid #0000;border-radius:3px;width:12px;height:12px}.legend-box.slot-available[data-v-609335dd]{background:#ecfdf5;border-color:#a7f3d0}.legend-box.slot-selected[data-v-609335dd]{background:#4f46e5}.legend-box.slot-booked[data-v-609335dd]{background:#f1f5f9;border-color:#cbd5e1}.legend-box.slot-mine[data-v-609335dd]{background:#eff6ff;border-color:#bfdbfe}.weekly-matrix-container[data-v-609335dd]{padding-bottom:8px;overflow-x:auto}.weekly-columns-grid[data-v-609335dd]{grid-template-columns:repeat(7,minmax(95px,1fr));gap:8px;min-width:680px;display:grid}.weekly-day-col[data-v-609335dd]{background:var(--bg-card-subtle);border:1px solid var(--border-subtle);border-radius:12px;flex-direction:column;gap:8px;padding:10px 6px;transition:all .15s;display:flex}.weekly-day-col.is-today[data-v-609335dd]{background:#f5f7ff;border-color:#818cf8}.dark-theme .weekly-day-col.is-today[data-v-609335dd]{background:#1e1b4b33;border-color:#6366f1}.weekly-col-head[data-v-609335dd]{text-align:center;border-bottom:1px solid var(--border-subtle);padding-bottom:6px}.day-title[data-v-609335dd]{color:var(--text-main);font-size:12.5px;font-weight:800}.day-date[data-v-609335dd]{color:var(--text-muted);margin-top:1px;font-size:11px}.col-avail-pill[data-v-609335dd]{border-radius:999px;margin-top:3px;padding:1px 5px;font-size:10px;font-weight:700;display:inline-block}.col-avail-pill.has-avail[data-v-609335dd]{color:#047857;background:#ecfdf5}.col-avail-pill.none[data-v-609335dd]{color:#94a3b8;background:#f1f5f9}.weekly-col-slots[data-v-609335dd]{flex-direction:column;gap:6px;min-height:120px;display:flex}.day-no-slots[data-v-609335dd]{color:#cbd5e1;text-align:center;margin-top:30px;font-size:11px}.weekly-slot-btn[data-v-609335dd]{cursor:pointer;text-align:center;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:7px 4px;transition:all .15s cubic-bezier(.4,0,.2,1);display:flex}.weekly-slot-btn .slot-time-text[data-v-609335dd]{font-size:12px;font-weight:800}.weekly-slot-btn .slot-sub-status[data-v-609335dd]{margin-top:2px;font-size:9.5px;font-weight:600;line-height:1}.weekly-slot-btn.slot-available[data-v-609335dd]{color:#047857;background:#fff;border-color:#a7f3d0}.weekly-slot-btn.slot-available[data-v-609335dd]:hover{background:#d1fae5;border-color:#6ee7b7;transform:translateY(-1px);box-shadow:0 2px 6px #10b98133}.weekly-slot-btn.slot-selected[data-v-609335dd]{transform:scale(1.03);box-shadow:0 3px 10px #4f46e559;color:#fff!important;background:#4f46e5!important;border-color:#4338ca!important}.weekly-slot-btn.slot-selected .slot-sub-status[data-v-609335dd]{color:#e0e7ff}.weekly-slot-btn.slot-booked[data-v-609335dd]{color:#94a3b8;cursor:not-allowed;opacity:.65;pointer-events:none;background:#f1f5f9;border-color:#e2e8f0}.weekly-slot-btn.slot-booked .slot-time-text[data-v-609335dd]{text-decoration:line-through}.weekly-slot-btn.slot-mine[data-v-609335dd]{color:#1d4ed8;cursor:default;background:#eff6ff;border-color:#bfdbfe}.dark-theme .weekly-slot-btn.slot-available[data-v-609335dd]{color:#34d399;background:#064e3b33;border-color:#065f46}.dark-theme .weekly-slot-btn.slot-booked[data-v-609335dd]{color:#64748b;background:#1e293b;border-color:#334155}.fixed-action-bar[data-v-609335dd]{border:1px solid var(--border);box-shadow:var(--shadow-hover);background:#fff;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:18px;padding:14px 18px;transition:all .2s;display:flex}.dark-theme .fixed-action-bar[data-v-609335dd]{background:#1e293b;border-color:#334155}.fixed-action-left[data-v-609335dd]{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.selected-pills-flow[data-v-609335dd]{flex-wrap:wrap;gap:6px;max-height:56px;display:flex;overflow-y:auto}.selected-chip[data-v-609335dd]{color:#4f46e5;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11.5px;font-weight:700;display:inline-flex}.dark-theme .selected-chip[data-v-609335dd]{color:#c7d2fe;background:#312e81;border-color:#4338ca}.chip-remove[data-v-609335dd]{cursor:pointer;border-radius:50%}.chip-remove[data-v-609335dd]:hover{background:#c7d2fe}.fixed-action-right[data-v-609335dd]{align-items:center;gap:8px;display:flex}.timetable-card-wrap[data-v-609335dd]{padding:20px 22px}.timetable-card-head[data-v-609335dd]{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.drawer-date-bar[data-v-609335dd]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:14px 0 10px;display:flex}.drawer-legend-bar[data-v-609335dd]{border-top:1px solid var(--border-subtle);flex-wrap:wrap;gap:10px;padding-top:10px;display:flex}.legend-pill[data-v-609335dd]{border-radius:var(--radius-full);background:var(--bg-card-subtle);border:1px solid var(--border-subtle);color:var(--text-muted);align-items:center;gap:6px;padding:4px 10px;font-size:11.5px;display:inline-flex}.legend-pill .dot[data-v-609335dd]{border-radius:50%;width:6px;height:6px}.legend-pill b[data-v-609335dd]{color:var(--text-main);font-weight:800}.bg-emerald[data-v-609335dd]{background:#10b981}.bg-blue[data-v-609335dd]{background:#3b82f6}.bg-purple[data-v-609335dd]{background:#8b5cf6}.bg-gray[data-v-609335dd]{background:#94a3b8}.drawer-loading-box[data-v-609335dd],.drawer-empty-box[data-v-609335dd]{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px 20px;display:flex}.drawer-slots-container[data-v-609335dd]{flex-direction:column;gap:14px;display:flex}.slot-group-card[data-v-609335dd]{padding:18px 20px}.slot-group-head[data-v-609335dd]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.slot-group-empty[data-v-609335dd]{color:var(--text-subtle);padding:10px 0;font-size:12px}.slot-pills-grid[data-v-609335dd]{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;display:grid}.slot-capsule-btn[data-v-609335dd]{border:1px solid var(--border-subtle);background:#fff;border-radius:10px;justify-content:space-between;align-items:center;padding:8px 12px;font-size:12px;transition:all .15s;display:flex}.dark-theme .slot-capsule-btn[data-v-609335dd]{background:#1e293b}.slot-capsule-btn.is-clickable-slot[data-v-609335dd]{cursor:pointer}.slot-capsule-btn.is-clickable-slot[data-v-609335dd]:hover{border-color:#10b981;transform:translateY(-2px);box-shadow:0 4px 12px #10b98147}.slot-capsule-btn .slot-dot[data-v-609335dd]{border-radius:50%;flex-shrink:0;width:6px;height:6px}.slot-capsule-btn .slot-time[data-v-609335dd]{font-size:12.5px;font-weight:700}.slot-capsule-btn .slot-badge[data-v-609335dd]{border-radius:999px;padding:1px 6px;font-size:10.5px;font-weight:600}.slot-available[data-v-609335dd]{color:#047857;background:#ecfdf5!important;border-color:#a7f3d0!important}.slot-available .slot-dot[data-v-609335dd]{background:#10b981}.slot-available .slot-badge[data-v-609335dd]{color:#065f46;background:#d1fae5}.slot-mine[data-v-609335dd]{color:#1d4ed8;cursor:default;background:#eff6ff!important;border-color:#bfdbfe!important}.slot-mine .slot-dot[data-v-609335dd]{background:#3b82f6}.slot-mine .slot-badge[data-v-609335dd]{color:#1e40af;background:#dbeafe}.slot-started[data-v-609335dd]{color:#6d28d9;background:#f5f3ff!important;border-color:#ddd6fe!important}.slot-started .slot-dot[data-v-609335dd]{background:#8b5cf6}.slot-started .slot-badge[data-v-609335dd]{color:#5b21b6;background:#ede9fe}.slot-booked[data-v-609335dd]{color:#94a3b8;opacity:.85;background:var(--bg-card-subtle)!important;border-color:var(--border-subtle)!important}.slot-booked .slot-dot[data-v-609335dd]{background:#cbd5e1}.slot-booked .slot-badge[data-v-609335dd]{color:#64748b;background:#f1f5f9}.teacher-rich-notes[data-v-609335dd]{color:var(--text-main);word-break:break-word;font-size:13px;line-height:1.7}.teacher-rich-notes[data-v-609335dd] p{margin-bottom:10px}.teacher-rich-notes[data-v-609335dd] p:last-child{margin-bottom:0}.teacher-rich-notes[data-v-609335dd] strong{color:var(--text-main);font-weight:700}.drawer-history-list[data-v-609335dd]{flex-direction:column;gap:12px;display:flex}.drawer-history-card[data-v-609335dd]{background:var(--bg-card-subtle);border:1px solid var(--border-subtle);border-radius:12px;padding:14px 16px}@media (width<=768px){.teacher-drawer[data-v-609335dd]{border-radius:0;width:100vw;max-width:100vw}}.slot-sibling[data-v-609335dd]{color:#6d28d9;cursor:default;background:#f5f3ff!important;border-color:#ddd6fe!important}.slot-sibling .slot-dot[data-v-609335dd]{background:#8b5cf6}.slot-sibling .slot-badge[data-v-609335dd]{color:#5b21b6;background:#ede9fe}.dark-theme .slot-sibling[data-v-609335dd]{color:#c4b5fd;background:#8b5cf626!important;border-color:#6d28d9!important}.dark-theme .slot-sibling .slot-dot[data-v-609335dd]{background:#a78bfa}.dark-theme .slot-sibling .slot-badge[data-v-609335dd]{color:#ddd6fe;background:#4c1d95}.avatar-category-tabs[data-v-24280b1a]{background:var(--bg-card-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-full);align-items:center;gap:4px;padding:2px 4px;display:flex}.avatar-tab-btn[data-v-24280b1a]{color:var(--text-muted);border-radius:var(--radius-full);cursor:pointer;background:0 0;border:none;padding:3px 8px;font-size:11px;font-weight:600;transition:all .15s}.avatar-tab-btn[data-v-24280b1a]:hover{color:var(--text-main)}.avatar-tab-btn.active[data-v-24280b1a]{color:#fff;background:#4f46e5}.avatar-selection-wrapper[data-v-24280b1a]{background:var(--bg-card-subtle);border:1px solid var(--border-subtle);border-radius:12px;align-items:center;gap:14px;margin-top:4px;padding:10px 12px;display:flex}.avatar-preview-box[data-v-24280b1a]{border-right:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;align-items:center;gap:4px;padding-right:12px;display:flex}.avatar-preview-img[data-v-24280b1a]{object-fit:cover;border:2px solid #fff;border-radius:50%;width:54px;height:54px;box-shadow:0 2px 8px #0000001f}.dark-theme .avatar-preview-img[data-v-24280b1a]{border-color:#334155}.avatar-preview-label[data-v-24280b1a]{color:var(--text-muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:64px;font-size:10.5px;font-weight:700;overflow:hidden}.avatar-grid-list[data-v-24280b1a]{flex-wrap:wrap;flex:1;gap:8px;max-height:108px;padding:2px;display:flex;overflow-y:auto}.student-avatar-btn[data-v-24280b1a]{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:50%;place-items:center;width:44px;height:44px;padding:0;transition:all .18s cubic-bezier(.4,0,.2,1);display:grid;position:relative}.student-avatar-img[data-v-24280b1a]{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.student-avatar-btn[data-v-24280b1a]:hover{transform:scale(1.12)}.student-avatar-btn.selected[data-v-24280b1a]{border-color:#4f46e5;transform:scale(1.06);box-shadow:0 0 0 2.5px #4f46e566}.avatar-check-badge[data-v-24280b1a]{color:#fff;background:#4f46e5;border:1.5px solid #fff;border-radius:50%;place-items:center;width:15px;height:15px;display:grid;position:absolute;bottom:-2px;right:-2px}:root{--bg-app:#f8fafc;--bg-card:#fff;--bg-card-subtle:#f8fafc;--border:#e2e8f0;--border-subtle:#edf2f7;--text-main:#0f172a;--text-muted:#64748b;--text-subtle:#94a3b8;--primary:#4f46e5;--primary-hover:#4338ca;--primary-subtle:#eef2ff;--primary-border:#c7d2fe;--primary-text:#4338ca;--sky:#0284c7;--sky-hover:#0369a1;--sky-subtle:#f0f9ff;--sky-border:#bae6fd;--emerald:#059669;--emerald-hover:#047857;--emerald-subtle:#ecfdf5;--emerald-border:#a7f3d0;--amber:#d97706;--amber-hover:#b45309;--amber-subtle:#fffbeb;--amber-border:#fde68a;--rose:#e11d48;--rose-hover:#be123c;--rose-subtle:#fff1f2;--rose-border:#fecdd3;--purple:#7c3aed;--purple-hover:#6d28d9;--purple-subtle:#f5f3ff;--purple-border:#ddd6fe;--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:26px;--radius-full:9999px;--shadow-sm:0 1px 3px 0 #0f172a0a;--shadow-card:0 4px 20px -2px #0f172a0a, 0 2px 6px -1px #0f172a05;--shadow-hover:0 10px 28px -4px #0f172a14, 0 4px 10px -2px #0f172a08;--shadow-lg:0 20px 40px -6px #0f172a1f, 0 8px 16px -4px #0f172a0f;--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}.app-shell{background-color:var(--bg-app);width:100vw;height:100vh;display:flex;position:relative;overflow:hidden}.top-nav-header{border-bottom:1px solid var(--border);z-index:50;background:#fff;justify-content:space-between;align-items:center;height:60px;padding:0 24px 0 0;transition:background .2s;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 2px 10px #0f172a0d}.dark-theme .top-nav-header{background:#111827;border-bottom-color:#1f2937;box-shadow:0 4px 16px #00000080}.top-header-brand{border-right:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;width:260px;height:100%;padding:0 16px;transition:width .28s cubic-bezier(.4,0,.2,1);display:flex}.dark-theme .top-header-brand{border-right-color:#1f2937}.top-header-brand.collapsed{justify-content:center;gap:8px;width:76px;padding:0 10px}.brand-inner{align-items:center;gap:10px;display:flex}.sidebar-collapse-toggle-btn{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-card-subtle);width:28px;height:28px;color:var(--text-muted);cursor:pointer;flex-shrink:0;place-items:center;transition:all .2s;display:grid}.sidebar-collapse-toggle-btn:hover{background:var(--border-subtle);color:var(--text-main)}.dark-theme .sidebar-collapse-toggle-btn{color:#94a3b8;background:#1f2937;border-color:#374151}.top-header-center{flex:1;justify-content:center;align-items:center;display:flex}.top-header-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.sidebar{border-right:1px solid var(--border);z-index:40;background:#fff;flex-direction:column;width:260px;padding:16px 12px;transition:width .28s cubic-bezier(.4,0,.2,1),padding .28s;display:flex;position:fixed;top:60px;bottom:0;left:0}.sidebar-brand{align-items:center;gap:12px;padding:6px 12px 24px;display:flex}.brand-logo-icon{border-radius:var(--radius-md);color:#fff;background:linear-gradient(135deg,#4f46e5 0%,#3b82f6 100%);place-items:center;width:42px;height:42px;display:grid;box-shadow:0 4px 14px #4f46e552}.brand-title{letter-spacing:-.5px;color:var(--text-main);font-size:20px;font-weight:800}.brand-title span{color:var(--primary)}.brand-sub{color:var(--text-muted);margin-top:1px;font-size:11px}.nav-group{flex-direction:column;flex:1;gap:6px;display:flex}.nav-item{border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:12px;padding:11px 14px;font-size:13.5px;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.nav-item:hover{background:var(--border-subtle);color:var(--text-main)}.nav-item.active{background:var(--primary-subtle);color:var(--primary);font-weight:700;box-shadow:0 1px 3px #4f46e514}.nav-badge{background:var(--rose);color:#fff;border-radius:var(--radius-full);margin-left:auto;padding:2px 8px;font-size:11px;font-weight:700}.sidebar-footer{background:var(--bg-card-subtle);border-radius:var(--radius-md);border:1px solid var(--border-subtle);padding:14px 12px}.sidebar-footer p{color:var(--text-muted);font-size:12px}.sidebar-footer .sync-meta{justify-content:space-between;align-items:center;margin-top:6px;font-size:11px;font-weight:600;display:flex}.main-content{box-sizing:border-box;width:calc(100% - 260px);height:calc(100vh - 60px);margin-top:60px;margin-left:260px;padding:24px 32px 60px;transition:margin-left .28s cubic-bezier(.4,0,.2,1),width .28s cubic-bezier(.4,0,.2,1),padding .28s;overflow:hidden auto}.main-content>section,.main-content>div{width:100%;margin:0}.top-bar{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.page-heading h1{letter-spacing:-.6px;color:var(--text-main);font-size:26px;font-weight:800}.page-heading p{color:var(--text-muted);margin-top:3px;font-size:13px}.top-actions{align-items:center;gap:12px;display:flex}.btn{border-radius:var(--radius-full);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:9px 18px;font-size:13.5px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.btn-sm{padding:6px 13px;font-size:12px}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 4px 14px #4f46e547}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 6px 18px #4f46e559}.btn-white{color:var(--text-main);border:1px solid var(--border);box-shadow:var(--shadow-sm);background:#fff}.btn-white:hover{background:var(--bg-card-subtle);border-color:#cbd5e1}.btn-subtle{background:var(--primary-subtle);color:var(--primary)}.btn-subtle:hover{background:#e0e7ff}.btn-danger{background:var(--rose-subtle);color:var(--rose)}.btn-danger:hover{background:#ffe4e6}.btn-icon{border-radius:var(--radius-full);width:38px;height:38px;padding:0}.btn-icon-ghost{border:1px solid var(--border-subtle);cursor:pointer;width:32px;height:32px;color:var(--text-muted);background:#fff;border-radius:50%;place-items:center;transition:all .15s;display:grid}.btn-icon-ghost:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-subtle);transform:scale(1.08)}.card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);box-shadow:var(--shadow-card);padding:24px}.hero-banner{border-radius:var(--radius-xl);background:linear-gradient(135deg,#eef2ff 0%,#e0f2fe 100%);border:1px solid #dbeafe;justify-content:space-between;align-items:center;margin-bottom:24px;padding:28px 34px;display:flex;position:relative;overflow:hidden}.hero-content h2{color:#1e1b4b;letter-spacing:-.4px;margin-bottom:6px;font-size:23px;font-weight:800}.hero-content p{color:#4338ca;max-width:620px;font-size:13.5px}.hero-badges{align-items:center;gap:10px;margin-top:14px;display:flex}.hero-pill{border-radius:var(--radius-full);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#3730a3;background:#ffffffe0;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:600;display:inline-flex;box-shadow:0 2px 6px #0000000a}.stats-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}.stat-card{border-radius:var(--radius-lg);border:1px solid var(--border-subtle);box-shadow:var(--shadow-card);background:#fff;align-items:center;gap:16px;padding:20px 22px;transition:transform .2s,box-shadow .2s;display:flex}.stat-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.stat-icon{border-radius:var(--radius-md);flex-shrink:0;place-items:center;width:48px;height:48px;display:grid}.stat-icon.indigo{color:#4f46e5;background:#eef2ff}.stat-icon.sky{color:#0284c7;background:#f0f9ff}.stat-icon.emerald{color:#059669;background:#ecfdf5}.stat-icon.amber{color:#d97706;background:#fffbeb}.stat-info span{color:var(--text-muted);font-size:12.5px;font-weight:500;display:block}.stat-info b{color:var(--text-main);margin-top:2px;font-size:24px;font-weight:800;line-height:1.2;display:block}.dashboard-grid{grid-template-columns:1.55fr 1fr;gap:20px;display:grid}.panel-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.panel-header h3{color:var(--text-main);font-size:17px;font-weight:800}.panel-header a,.panel-header button{color:var(--primary);cursor:pointer;background:0 0;border:0;font-size:13px;font-weight:600}.filter-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.pill-tabs{border-radius:var(--radius-full);background:#edf2f7;gap:4px;padding:4px;display:inline-flex}.pill-tab{border-radius:var(--radius-full);color:var(--text-muted);cursor:pointer;background:0 0;border:0;padding:7px 16px;font-size:13px;font-weight:600;transition:all .2s}.pill-tab.active{color:var(--text-main);background:#fff;font-weight:700;box-shadow:0 2px 6px #0000000f}.search-input-wrap{align-items:center;min-width:240px;display:flex;position:relative}.search-input-wrap svg{color:var(--text-subtle);pointer-events:none;position:absolute;left:14px}.search-input{border-radius:var(--radius-full);border:1px solid var(--border);width:100%;color:var(--text-main);background:#fff;outline:none;padding:8px 14px 8px 38px;font-size:13px;transition:border-color .2s,box-shadow .2s}.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.select-input{border-radius:var(--radius-full);border:1px solid var(--border);color:var(--text-main);cursor:pointer;background:#fff;outline:none;padding:8px 14px;font-size:13px;transition:border-color .2s}.select-input:focus{border-color:var(--primary)}.courses-stream{flex-direction:column;gap:12px;display:flex}.course-card-item{border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:#fff;align-items:center;gap:18px;padding:18px 22px;transition:all .2s;display:flex}.course-card-item:hover{box-shadow:var(--shadow-sm);border-color:#cbd5e1}.course-date-badge{background:var(--primary-subtle);border-radius:var(--radius-md);text-align:center;flex-shrink:0;min-width:68px;padding:10px 8px}.course-date-badge .month-day{color:var(--primary);font-size:13px;font-weight:700}.course-date-badge .time{color:var(--text-muted);margin-top:2px;font-size:11px}.course-main-info{flex:1;min-width:0}.course-title-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;display:flex}.course-title{color:var(--text-main);font-size:15px;font-weight:700}.platform-tag{border-radius:var(--radius-full);color:#475569;background:#f1f5f9;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.platform-tag.haoyueke{color:#065f46;background:#ecfdf5}.course-meta-row{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:14px;font-size:12.5px;display:flex}.course-feedback-box{background:var(--bg-card-subtle);border-radius:var(--radius-sm);color:#475569;border-left:3px solid #6366f1;margin-top:8px;padding:8px 12px;font-size:12px;line-height:1.5}.course-detail-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.course-detail-grid>div{border:1px solid var(--border-subtle);background:#f8fafc;border-radius:10px;min-width:0;padding:7px 9px}.course-detail-grid span{color:var(--text-subtle);margin-bottom:2px;font-size:10.5px;display:block}.course-detail-grid b{color:#334155;text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.course-hover-card{align-items:flex-start;position:relative}.status-badge{border-radius:var(--radius-full);white-space:nowrap;padding:4px 12px;font-size:12px;font-weight:600}.status-badge.booked{color:#1d4ed8;background:#eff6ff}.status-badge.completed{color:#047857;background:#ecfdf5}.status-badge.cancelled{color:#64748b;background:#f1f5f9}.teachers-grid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:18px;display:grid}.teacher-box{border-radius:var(--radius-lg);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;padding:20px;transition:all .2s;display:flex;position:relative}.teacher-box:hover{box-shadow:var(--shadow-hover);border-color:#cbd5e1;transform:translateY(-2px)}.teacher-box-actions{z-index:2;align-items:center;gap:6px;display:flex;position:absolute;top:16px;right:16px}.fav-btn{cursor:pointer;color:#cbd5e1;background:0 0;border:0;place-items:center;padding:4px;transition:color .2s,transform .15s;display:grid}.fav-btn:hover{transform:scale(1.15)}.fav-btn.active{color:#f59e0b}.teacher-head{align-items:center;gap:14px;padding-right:64px;display:flex}.teacher-avatar{border-radius:var(--radius-full);object-fit:cover;background:#e2e8f0;border:2px solid #fff;flex-shrink:0;width:52px;height:52px;box-shadow:0 2px 8px #00000014}.teacher-avatar-fallback{border-radius:var(--radius-full);color:#fff;background:linear-gradient(135deg,#4f46e5 0%,#3b82f6 100%);flex-shrink:0;place-items:center;width:52px;height:52px;font-size:20px;font-weight:800;display:grid}.teacher-tags{flex-wrap:wrap;gap:6px;margin:12px 0;display:flex}.tag-pill{border-radius:var(--radius-full);color:#475569;white-space:nowrap;background:#f1f5f9;padding:3px 8px;font-size:11px}.teacher-list-view{flex-direction:column;gap:10px;display:flex}.teacher-row{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:#fff;grid-template-columns:50px minmax(160px,1.2fr) 90px 90px 110px 1fr 120px;align-items:center;gap:14px;padding:14px 18px;transition:all .15s;display:grid}.teacher-row:hover{box-shadow:var(--shadow-sm);background:#fafcff;border-color:#cbd5e1}.teacher-row-text{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.pagination-bar{justify-content:center;align-items:center;gap:8px;margin-top:24px;display:flex}.calendar-card{overflow:hidden}.calendar-head,.calendar-row{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-head>div{text-align:center;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);background:#f8fafc;padding:10px 0;font-size:12px;font-weight:700}.calendar-cell{border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);background:#fff;min-height:108px;padding:8px}.calendar-cell:nth-child(7n){border-right:0}.calendar-cell.empty{background:#fafafa}.calendar-cell.today .calendar-day{background:var(--primary);color:#fff}.calendar-day{width:24px;height:24px;color:var(--text-main);border-radius:999px;place-items:center;margin-bottom:5px;font-size:12px;font-weight:700;display:grid}.calendar-event{cursor:pointer;border-radius:8px;margin-bottom:4px;padding:4px 6px;font-size:11px;line-height:1.35;transition:transform .15s;overflow:hidden}.calendar-event:hover{transform:translateY(-1px)}.calendar-event.booked{color:#1d4ed8;background:#eff6ff}.calendar-event.completed{color:#047857;background:#ecfdf5}.calendar-event.cancelled{color:#64748b;background:#f1f5f9;text-decoration:line-through}.teacher-detail-layout{grid-template-columns:minmax(0,1.25fr) minmax(360px,390px);align-items:start;gap:22px;display:grid}.teacher-profile-card{flex-direction:column;gap:16px;display:flex}.teacher-avatar-lg{object-fit:cover;border:3px solid #fff;border-radius:50%;flex-shrink:0;width:68px;height:68px;box-shadow:0 4px 14px #0000001a}.teacher-avatar-fallback-lg{color:#fff;background:linear-gradient(135deg,#4f46e5 0%,#3b82f6 100%);border:3px solid #fff;border-radius:50%;flex-shrink:0;place-items:center;width:68px;height:68px;font-size:26px;font-weight:800;display:grid;box-shadow:0 4px 14px #4f46e540}.teacher-video-container{aspect-ratio:16/9;border:1px solid var(--border-subtle);background:#000;border-radius:14px;width:100%;max-height:440px;overflow:hidden;box-shadow:0 4px 16px #0000001f}.teacher-video-iframe{border:0;width:100%;height:100%;display:block}.teacher-history-box{border-top:1px solid var(--border-subtle);padding-top:16px}.teacher-history-item{background:#f8fafc;border:1px solid #edf2f7;border-radius:12px;margin-bottom:8px;padding:10px 14px}.feedback-quote-bubble{color:#3730a3;background:#eef2ff;border-left:3px solid #4f46e5;border-radius:10px;margin-top:6px;padding:8px 12px;font-size:12px;line-height:1.5}.timetable-panel{border:1px solid var(--border);border-radius:var(--radius-xl);max-height:calc(88vh - 60px);box-shadow:var(--shadow-card);background:#fff;flex-direction:column;gap:14px;padding:18px;display:flex;position:sticky;top:0;overflow-y:auto}.timetable-panel::-webkit-scrollbar{width:5px}.timetable-panel::-webkit-scrollbar-track{background:0 0}.timetable-panel::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}.timetable-header{justify-content:space-between;align-items:center;display:flex}.timetable-title-wrap h4{color:var(--text-main);letter-spacing:-.3px;font-size:15px;font-weight:800}.timetable-title-wrap .sub-hint{color:var(--text-muted);margin-top:2px;font-size:11.5px}.timetable-date-nav{border:1px solid var(--border-subtle);background:#f8fafc;border-radius:16px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.timetable-quick-pills{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.quick-pill-btn{border-radius:var(--radius-full);color:#64748b;cursor:pointer;text-align:center;background:0 0;border:0;padding:5px 8px;font-size:12px;font-weight:600;transition:all .15s}.quick-pill-btn:hover{color:var(--text-main);background:#e2e8f0}.quick-pill-btn.active{color:var(--primary);background:#fff;font-weight:700;box-shadow:0 2px 6px #0000000f}.timetable-date-switcher{justify-content:space-between;align-items:center;gap:6px;display:flex}.date-nav-arrow{border:1px solid var(--border);cursor:pointer;color:#475569;background:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:28px;height:28px;transition:all .15s;display:grid}.date-nav-arrow:hover{color:var(--text-main);background:#f1f5f9;border-color:#cbd5e1;transform:scale(1.06)}.date-display-badge{border:1px solid var(--border);border-radius:var(--radius-full);cursor:pointer;box-shadow:var(--shadow-sm);background:#fff;flex:1;justify-content:center;align-items:center;gap:6px;min-width:0;padding:6px 12px;transition:all .2s;display:flex;position:relative}.date-display-badge:hover{border-color:var(--primary);background:#f8fafc}.date-display-badge .date-icon{color:var(--primary);flex-shrink:0}.date-display-badge .date-text{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:700;overflow:hidden}.hidden-native-date-input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.timetable-legend{grid-template-columns:repeat(4,1fr);gap:5px;display:grid}.legend-chip{border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:4px;padding:5px 4px;font-size:11px;font-weight:600;display:flex}.legend-chip .count-num{margin-left:2px;font-size:11px;font-weight:800}.legend-available{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.legend-mine{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.legend-started{color:#6d28d9;background:#f5f3ff;border-color:#ddd6fe}.legend-booked{color:#64748b;background:#f8fafc;border-color:#e2e8f0}.status-pulse-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.status-pulse-dot.bg-emerald{background:#10b981;box-shadow:0 0 0 2px #10b98140}.status-pulse-dot.bg-blue{background:#3b82f6;box-shadow:0 0 0 2px #3b82f640}.status-pulse-dot.bg-purple{background:#8b5cf6;box-shadow:0 0 0 2px #8b5cf640}.status-pulse-dot.bg-gray{background:#94a3b8}.timetable-groups-wrapper{flex-direction:column;gap:12px;display:flex}.timetable-period-group{background:#f8fafc;border:1px solid #eef2f6;border-radius:16px;padding:12px;transition:border-color .2s}.timetable-period-group:hover{border-color:#cbd5e1}.timetable-period-header{border-bottom:1px solid #edf2f7;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:6px;display:flex}.period-title-wrap{align-items:center;gap:6px;display:flex}.period-icon{color:var(--primary);flex-shrink:0}.period-title{color:var(--text-main);font-size:13px;font-weight:800}.period-range{color:var(--text-subtle);margin-left:2px;font-size:10.5px}.period-badge{border-radius:var(--radius-full);color:#64748b;background:#edf2f7;padding:2px 7px;font-size:10.5px;font-weight:700}.period-badge.has-available{color:#047857;background:#d1fae5}.period-empty-hint{color:#94a3b8;text-align:center;padding:8px 0;font-size:11.5px;font-style:italic}.timetable-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.timetable-slot-capsule{-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:12px;align-items:center;gap:6px;min-width:0;padding:7px 10px;transition:all .15s;display:flex}.slot-dot-wrap{flex-shrink:0;justify-content:center;align-items:center;display:flex}.slot-status-dot{border-radius:50%;width:6px;height:6px;display:inline-block}.slot-time{letter-spacing:-.2px;white-space:nowrap;font-size:12.5px;font-weight:800}.slot-status-pill{border-radius:var(--radius-full);white-space:nowrap;text-overflow:ellipsis;margin-left:auto;padding:1px 5px;font-size:10px;font-weight:700;overflow:hidden}.slot-available{color:#047857;cursor:pointer;background:#ecfdf5;border-color:#a7f3d0}.slot-available .slot-status-dot{background:#10b981;box-shadow:0 0 0 2px #10b98140}.slot-available .slot-status-pill{color:#065f46;background:#d1fae5}.slot-available:hover{background:#d1fae5;border-color:#6ee7b7;transform:translateY(-1px);box-shadow:0 2px 6px #10b9812e}.slot-mine{color:#1d4ed8;cursor:pointer;background:#eff6ff;border-color:#bfdbfe}.slot-mine .slot-status-dot{background:#3b82f6;box-shadow:0 0 0 2px #3b82f640}.slot-mine .slot-status-pill{color:#1e40af;background:#dbeafe}.slot-mine:hover{transform:translateY(-1px);box-shadow:0 2px 6px #3b82f62e}.slot-started{color:#6d28d9;cursor:default;background:#f5f3ff;border-color:#ddd6fe}.slot-started .slot-status-dot{background:#8b5cf6}.slot-started .slot-status-pill{color:#5b21b6;background:#ede9fe}.slot-booked{color:#64748b;cursor:not-allowed;opacity:.88;background:#f8fafc;border-color:#e2e8f0}.slot-booked .slot-status-dot{background:#94a3b8}.slot-booked .slot-status-pill{color:#64748b;background:#f1f5f9}.timetable-empty-box{text-align:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;display:flex}.timetable-empty-box .empty-title{color:#334155;font-size:13.5px;font-weight:700}.timetable-empty-box .empty-desc{color:#94a3b8;margin-bottom:6px;font-size:11.5px}.timetable-loading-state{text-align:center;color:#64748b;flex-direction:column;align-items:center;gap:10px;padding:42px 16px;font-size:12.5px;display:flex}.analysis-grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;display:grid}.analysis-grid-4 h4{margin-bottom:8px;font-size:13px;font-weight:800}.analysis-row{background:#f8fafc;border-radius:10px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;margin-bottom:6px;padding:7px 9px;font-size:12px;display:grid}.analysis-row span{text-overflow:ellipsis;white-space:nowrap;color:#475569;overflow:hidden}.analysis-row b{color:#4f46e5;font-weight:800}.analysis-row small{color:#94a3b8;font-size:11px}.card-balances-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.balance-card{border-radius:var(--radius-lg);border:1px solid var(--border-subtle);box-shadow:var(--shadow-card);background:#fff;flex-direction:column;justify-content:space-between;padding:24px;display:flex}.progress-bar-wrap{border-radius:var(--radius-full);background:#edf2f7;height:8px;margin:12px 0 6px;overflow:hidden}.progress-bar-fill{border-radius:var(--radius-full);background:linear-gradient(90deg,#4f46e5 0%,#06b6d4 100%);height:100%}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;background:#0f172a73;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-dialog{border-radius:var(--radius-xl);width:100%;max-width:580px;max-height:90vh;box-shadow:var(--shadow-lg);background:#fff;padding:28px;animation:.2s cubic-bezier(.16,1,.3,1) modalPop;position:relative;overflow-y:auto}@keyframes modalPop{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h2{letter-spacing:-.4px;font-size:20px;font-weight:800}.close-btn{background:var(--bg-card-subtle);border-radius:var(--radius-full);cursor:pointer;width:32px;height:32px;color:var(--text-muted);border:0;place-items:center;transition:all .15s;display:grid}.close-btn:hover{color:var(--text-main);background:#e2e8f0}.form-group{margin-bottom:16px}.form-group label{color:var(--text-main);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.form-input,.form-textarea,.form-select{border-radius:var(--radius-md);border:1px solid var(--border);width:100%;color:var(--text-main);background:#fff;outline:none;padding:10px 14px;font-size:13.5px;transition:border-color .2s,box-shadow .2s}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.form-hint{color:var(--text-muted);margin-top:5px;font-size:12px;line-height:1.4}.empty-state{text-align:center;color:var(--text-subtle);padding:50px 20px}.empty-state svg{opacity:.6;margin-bottom:10px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}@media (width<=1080px){.stats-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.teacher-detail-layout{grid-template-columns:1fr}.timetable-panel{max-height:none;position:static}}@media (width<=768px){.sidebar{width:72px;padding:20px 8px}.sidebar-brand .brand-title,.sidebar-brand .brand-sub,.sidebar-footer,.nav-item span{display:none}.nav-item{justify-content:center;padding:12px 0}.main-content{width:calc(100% - 72px);margin-left:72px;padding:20px 16px}.stats-grid,.teachers-grid,.card-balances-grid{grid-template-columns:1fr}.hero-banner{flex-direction:column;align-items:flex-start;gap:16px}.teacher-row{grid-template-columns:50px 1fr}.teacher-row-text:nth-child(n+4){display:none}.calendar-cell{min-height:72px;padding:4px}.calendar-event{font-size:9px}.course-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analysis-grid-4{grid-template-columns:1fr}}.course-card-rich{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:#fff;flex-direction:column;gap:12px;padding:18px 22px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.course-card-rich:hover{box-shadow:var(--shadow-hover);border-color:#cbd5e1;transform:translateY(-1px)}.course-header-row{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.course-teacher-cell{cursor:pointer;align-items:center;gap:12px;display:flex}.course-teacher-cell:hover .teacher-name-link{color:var(--primary)}.teacher-name-link{color:var(--text-main);font-size:15px;font-weight:800;transition:color .2s}.course-meta-tags{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.course-info-grid{background:#f8fafc;border:1px solid #edf2f7;border-radius:14px;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px 14px;display:grid}.info-cell{min-width:0}.info-cell .label{color:var(--text-muted);align-items:center;gap:4px;margin-bottom:2px;font-size:11px;display:flex}.info-cell .value{color:#1e293b;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.info-cell .value.highlight{color:#4f46e5}.course-lesson-box{background:#f0fdf4;border:1px solid #dcfce7;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.course-classroom-box{background:#eff6ff;border:1px solid #dbeafe;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.course-notes-box{color:#92400e;background:#fffbeb;border:1px solid #fef3c7;border-radius:10px;justify-content:space-between;align-items:center;padding:8px 12px;font-size:12px;display:flex}.teacher-mini-calendar{border:1px solid var(--border-subtle);background:#fff;border-radius:14px;margin-bottom:12px;padding:12px}.mini-calendar-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.mini-calendar-title{color:#0f172a;font-size:12.5px;font-weight:800}.mini-calendar-grid{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.mini-cal-head{text-align:center;color:var(--text-muted);padding:3px 0;font-size:10px;font-weight:700}.mini-cal-cell{cursor:pointer;color:#334155;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;height:28px;font-size:11.5px;font-weight:600;transition:all .15s;display:flex}.mini-cal-cell.other-month{color:#cbd5e1;opacity:.6}.mini-cal-cell.today{color:var(--primary);background:#eef2ff;font-weight:800}.mini-cal-cell.selected{box-shadow:0 2px 6px #4f46e559;background:var(--primary)!important;color:#fff!important}.mini-cal-cell:hover:not(.selected){background:#f1f5f9}.pagination-container{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:24px;padding:12px 16px;display:flex}.pagination-pages-group{align-items:center;gap:5px;display:flex}.page-btn{border:1px solid var(--border);color:#475569;cursor:pointer;background:#fff;border-radius:10px;justify-content:center;align-items:center;min-width:34px;height:34px;padding:0 8px;font-size:12.5px;font-weight:700;transition:all .15s;display:inline-flex}.page-btn:hover:not(:disabled){color:var(--text-main);background:#f8fafc;border-color:#cbd5e1}.page-btn.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 2px 6px #4f46e540}.page-ellipsis{color:#94a3b8;cursor:pointer;justify-content:center;align-items:center;min-width:28px;height:34px;font-size:13px;display:flex}.analytics-sub-tabs{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.analytics-table{border-collapse:collapse;width:100%;font-size:13px}.analytics-table th{text-align:left;color:var(--text-muted);background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:10px 12px;font-weight:700}.analytics-table td{color:#334155;border-bottom:1px solid #f1f5f9;padding:12px}.analytics-table tr:last-child td{border-bottom:0}.analytics-table tr.clickable{cursor:pointer;transition:background .15s}.analytics-table tr.clickable:hover{background:#f8fafc}:root.dark-theme{--bg-app:#0b0f19;--bg-card:#111827;--bg-card-subtle:#1e293b;--border:#334155;--border-subtle:#1f293d;--text-main:#f8fafc;--text-muted:#94a3b8;--text-subtle:#64748b;--primary:#6366f1;--primary-hover:#4f46e5;--primary-subtle:#1e1b4b;--primary-text:#818cf8;--sky-subtle:#082f49;--emerald-subtle:#064e3b;--amber-subtle:#451a03;--rose-subtle:#4c0519;--purple-subtle:#2e1065;--shadow-card:0 4px 20px -2px #0006;--shadow-hover:0 10px 25px -4px #00000080}.dark-theme .sidebar{background:#111827;border-right-color:#1f2937}.dark-theme .top-bar-sticky{background:#111827d9;border-bottom-color:#1f2937}.dark-theme .form-input,.dark-theme .form-textarea,.dark-theme .form-select,.dark-theme .select-input,.dark-theme .search-input,.dark-theme .btn-white{color:#f8fafc;background:#1f2937;border-color:#374151}.dark-theme .btn-white:hover{background:#374151}.dark-theme .course-card-rich,.dark-theme .teacher-box,.dark-theme .teacher-row,.dark-theme .balance-card,.dark-theme .modal-dialog,.dark-theme .card,.dark-theme .stat-card,.dark-theme .course-card-item,.dark-theme .user-menu-dropdown{background:#111827;border-color:#1f2937}.dark-theme .course-info-grid,.dark-theme .teacher-mini-calendar,.dark-theme .timetable-panel,.dark-theme .analysis-row{background:#1a2234;border-color:#1f2937}.dark-theme .pill-tabs{background:#1e293b}.dark-theme .pill-tab.active{color:#f8fafc;background:#334155}.dark-theme .analytics-table th{color:#94a3b8;background:#1e293b;border-bottom:1px solid #334155}.dark-theme .analytics-table td{color:#f8fafc;border-bottom:1px solid #1f293d}.dark-theme .analytics-table tr.clickable:hover{background:#1e293b}.dark-theme .calendar-card{background:#111827;border-color:#1f2937}.dark-theme .calendar-head>div{color:#94a3b8;background:#1e293b;border-color:#334155}.dark-theme .calendar-cell{background:#111827;border-color:#1f2937}.dark-theme .calendar-cell.empty{background:#0f172a}.dark-theme .calendar-day{color:#f8fafc}.dark-theme .calendar-event.booked{color:#93c5fd;background:#1e3a8a}.dark-theme .calendar-event.completed{color:#6ee7b7;background:#064e3b}.dark-theme .calendar-event.cancelled{color:#94a3b8;background:#1e293b}.dark-theme .mini-calendar-title{color:#f8fafc}.dark-theme .mini-cal-head{color:#94a3b8}.dark-theme .mini-cal-cell{color:#cbd5e1}.dark-theme .mini-cal-cell:hover:not(.selected){background:#334155}.dark-theme .hero-banner{background:linear-gradient(135deg,#1e1b4b 0%,#0f172a 100%);border-color:#312e81}.dark-theme .hero-content h2{color:#fff}.dark-theme .hero-content p{color:#a5b4fc}.dark-theme .hero-pill{color:#c7d2fe;background:#1e1b4bd9;border:1px solid #4338ca}.dark-theme .tag-pill,.dark-theme .platform-tag{color:#cbd5e1;background:#1e293b;border:1px solid #334155}.dark-theme .platform-tag.haoyueke{color:#6ee7b7;background:#064e3b55;border-color:#065f46}.dark-theme .status-badge.booked{color:#93c5fd;background:#1e3a8a55}.dark-theme .status-badge.completed{color:#6ee7b7;background:#064e3b55}.dark-theme .status-badge.cancelled{color:#94a3b8;background:#1e293b}.dark-theme .pagination-container{background:#111827;border-color:#1f2937}.dark-theme .page-btn{color:#cbd5e1;background:#1e293b;border-color:#374151}.dark-theme .page-btn:hover:not(:disabled){color:#f8fafc;background:#374151}.dark-theme .course-detail-grid>div{background:#1e293b;border-color:#334155}.dark-theme .course-detail-grid b,.dark-theme .info-cell .value{color:#f8fafc}.dark-theme .progress-bar-wrap{background:#334155}.dark-theme .course-feedback-box{color:#cbd5e1;background:#1e293b}.dark-theme .feedback-quote-bubble{color:#cbd5e1;background:#1e293b;border-color:#334155}.dark-theme .sidebar-footer{background:#1e293b;border-color:#334155}.dark-theme .close-btn{color:#94a3b8;background:#1e293b}.dark-theme .close-btn:hover{color:#f8fafc;background:#334155}.dark-theme div[style*="background: #f0fdf4"],.dark-theme div[style*="background:#f0fdf4"]{color:#34d399!important;background:#064e3b33!important;border-color:#065f46!important}.dark-theme div[style*="background: #fffbeb"],.dark-theme div[style*="background:#fffbeb"]{color:#fcd34d!important;background:#451a0344!important;border-color:#78350f!important}.dark-theme div[style*="background: #eff6ff"],.dark-theme div[style*="background:#eff6ff"]{color:#93c5fd!important;background:#1e3a8a33!important;border-color:#1e40af!important}.dark-theme div[style*="background: #fff1f2"],.dark-theme div[style*="background:#fff1f2"]{color:#fda4af!important;background:#4c051944!important;border-color:#9f1239!important}.dark-theme div[style*="background: var(--bg-card-subtle)"],.dark-theme div[style*="background:var(--bg-card-subtle)"]{background:#1e293b!important}.sidebar.collapsed{width:76px;padding:24px 10px}.sidebar.collapsed .brand-title,.sidebar.collapsed .brand-sub,.sidebar.collapsed .nav-item span,.sidebar.collapsed .nav-badge,.sidebar.collapsed .sidebar-footer{display:none!important}.sidebar.collapsed .nav-item{justify-content:center;padding:12px 0}.main-content.sidebar-collapsed{width:calc(100% - 76px);margin-left:76px}.top-bar-sticky{z-index:30;border-bottom:1px solid var(--border);background:#fff;justify-content:space-between;align-items:center;margin:-20px -28px 22px;padding:14px 28px;transition:background .2s;display:flex;position:sticky;top:0;box-shadow:0 4px 16px -2px #0f172a0d}.dark-theme .top-bar-sticky{background:#111827;border-bottom-color:#1f2937;box-shadow:0 4px 20px -2px #00000080}.top-left-actions{align-items:center;gap:14px;display:flex}.top-right-actions{align-items:center;gap:10px;display:flex}.user-avatar-wrap{cursor:pointer;position:relative}.user-avatar-btn{border-radius:var(--radius-full);background:var(--bg-card);border:1px solid var(--border);cursor:pointer;align-items:center;gap:8px;padding:4px 10px 4px 4px;transition:all .2s;display:flex}.user-avatar-btn:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.user-menu-dropdown{border:1px solid var(--border);border-radius:var(--radius-lg);width:240px;box-shadow:var(--shadow-hover);z-index:100;background:#fff;margin-top:8px;padding:8px;animation:.15s ease-out modalPop;position:absolute;top:100%;right:0}.user-menu-header{border-bottom:1px solid var(--border-subtle);padding:10px 12px}.user-menu-item{width:100%;color:var(--text-main);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:9px 12px;font-size:13px;font-weight:600;transition:background .15s;display:flex}.user-menu-item:hover{background:var(--bg-card-subtle);color:var(--primary)}.calendar-event-wrap{position:relative}.calendar-event-wrap:hover{z-index:60}.calendar-popover{border:1px solid var(--border);z-index:50;pointer-events:auto;background:#fff;border-radius:14px;width:320px;padding:14px;animation:.15s ease-out modalPop;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 14px 35px #00000026}.dark-theme .calendar-popover{background:#1e293b;border-color:#334155;box-shadow:0 14px 35px #00000080}.event-dot{border-radius:50%;width:6px;height:6px;display:inline-block}.event-dot.booked{background:#3b82f6}.event-dot.completed{background:#10b981}.event-dot.cancelled{background:#94a3b8}.chart-container{width:100%;height:220px;position:relative}.chart-svg{width:100%;height:100%;overflow:visible}.chart-grid-line{stroke:var(--border-subtle);stroke-dasharray:4 4}.chart-area-path{fill:url(#areaGradient);opacity:.3}.chart-line-path{fill:none;stroke:var(--primary);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.chart-dot{fill:#fff;stroke:var(--primary);stroke-width:2.5px;cursor:pointer;transition:r .2s,stroke-width .2s}.chart-dot:hover{r:6;stroke-width:3.5px;fill:var(--primary)}.chart-label{fill:var(--text-muted);text-anchor:middle;font-size:11px}.top-center-nav{justify-content:center;align-items:center;display:flex}.top-nav-pill-tabs{background:var(--bg-card-subtle);border:1px solid var(--border-subtle);padding:3px 4px}.top-nav-pill-tabs .pill-tab{align-items:center;gap:5px;padding:6px 12px;font-size:12.5px;display:inline-flex}.top-brand-icon-mobile,.mobile-bottom-dock{display:none}@media (width<=1200px){.top-center-nav{display:none}}@media (width<=768px){.top-bar-sticky{margin:-20px -16px 20px;padding:12px 16px}.top-breadcrumb-sub,.top-sync-btn span,.top-add-btn span,.user-display-name-text{display:none}.top-sync-btn,.top-add-btn{min-width:34px;padding:7px}.sidebar-toggle-btn{display:none}.top-brand-icon-mobile{display:block}.mobile-bottom-dock{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--border);z-index:100;background:#fffffff2;grid-template-columns:repeat(5,1fr);align-items:center;height:58px;padding:0 4px;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 15px #0000000f}.dark-theme .mobile-bottom-dock{background:#111827f2;border-top-color:#1f2937;box-shadow:0 -4px 15px #0006}.mobile-dock-item{color:var(--text-muted);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px 0;font-size:10px;font-weight:700;display:flex}.mobile-dock-item.active{color:var(--primary)}.main-content{padding-bottom:75px!important}}.calendar-event-capsule{cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:8px;align-items:center;gap:5px;margin-bottom:4px;padding:3px 6px;font-size:11px;line-height:1.3;transition:all .15s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden}.calendar-event-capsule:hover{transform:translateY(-1px);box-shadow:0 4px 10px #00000014}.event-capsule-left{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.event-capsule-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.event-capsule-dot.booked{background:#3b82f6}.event-capsule-dot.completed{background:#10b981}.event-capsule-dot.cancelled{background:#94a3b8}.event-time-text{letter-spacing:-.2px;font-size:11px;font-weight:800}.event-capsule-teacher{flex:1;align-items:center;gap:4px;min-width:0;display:inline-flex;overflow:hidden}.event-mini-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:15px;height:15px}.event-mini-avatar-fallback{background:#00000014;border-radius:50%;flex-shrink:0;place-items:center;width:15px;height:15px;font-size:9px;font-weight:700;display:grid}.event-name-text{text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.event-cost-tag{background:#fff9;border-radius:4px;flex-shrink:0;margin-left:auto;padding:1px 4px;font-size:9.5px;font-weight:700}.dark-theme .event-cost-tag{background:#0000004d}.calendar-full-container{border-radius:var(--radius-lg);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);background:#fff;padding:0;overflow:visible}.dark-theme .calendar-full-container{background:#111827;border-color:#1f2937}.calendar-navbar-row{border-bottom:1px solid var(--border-subtle);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:#fff;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;padding:16px 22px;display:grid}.dark-theme .calendar-navbar-row{background:#111827;border-color:#1f2937}.cal-nav-left{justify-content:flex-start;align-items:center;gap:12px;display:flex}.cal-count-badge{color:var(--text-muted);background:var(--bg-card-subtle);border:1px solid var(--border-subtle);border-radius:999px;padding:4px 10px;font-size:12px}.cal-count-badge b{color:var(--primary);font-weight:800}.cal-nav-center{justify-content:center;align-items:center;gap:14px;display:flex}.cal-main-title{color:var(--text-main);letter-spacing:-.3px;white-space:nowrap;margin:0;font-size:19px;font-weight:800}.cal-arrow-btn{border:1px solid var(--border);width:32px;height:32px;color:var(--text-main);cursor:pointer;background:#fff;border-radius:50%;place-items:center;transition:all .15s;display:grid}.cal-arrow-btn:hover{background:var(--bg-card-subtle);border-color:var(--primary);color:var(--primary);transform:scale(1.05)}.dark-theme .cal-arrow-btn{color:#f1f5f9;background:#1e293b;border-color:#334155}.dark-theme .cal-arrow-btn:hover{color:#818cf8;background:#334155}.cal-nav-right{justify-content:flex-end;align-items:center;gap:14px;display:flex}.cal-legend-pills{align-items:center;gap:8px;display:flex}.cal-legend-pills .legend-pill{color:var(--text-muted);align-items:center;gap:5px;font-size:11px;font-weight:600;display:inline-flex}.cal-legend-pills .legend-pill .dot{border-radius:50%;width:7px;height:7px}.cal-legend-pills .legend-pill.booked .dot{background:#3b82f6}.cal-legend-pills .legend-pill.completed .dot{background:#10b981}.calendar-weekday-grid{border-bottom:1px solid var(--border-subtle);background:#f8fafc;grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.dark-theme .calendar-weekday-grid{background:#1e293b;border-color:#334155}.weekday-cell{text-align:center;color:var(--text-muted);padding:10px 0;font-size:12.5px;font-weight:700}.weekday-cell.weekend{color:#6366f1}.calendar-days-grid{background:var(--border-subtle);grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;display:grid}.dark-theme .calendar-days-grid{background:#1f2937}.cal-day-cell{background:#fff;flex-direction:column;min-height:120px;padding:8px 7px;transition:background .15s;display:flex;position:relative}.dark-theme .cal-day-cell{background:#111827}.cal-day-cell.is-empty{opacity:.6;background:#fafafc}.dark-theme .cal-day-cell.is-empty{background:#0f172a}.cal-day-cell.is-today{background:#6366f108}.dark-theme .cal-day-cell.is-today{background:#6366f114}.cal-day-header{justify-content:space-between;align-items:center;margin-bottom:6px;padding:0 2px;display:flex}.cal-day-number{color:var(--text-main);border-radius:50%;place-items:center;width:24px;height:24px;font-size:13px;font-weight:700;display:grid}.cal-day-number.today-circle{background:#4f46e5;font-weight:800;box-shadow:0 2px 6px #4f46e566;color:#fff!important}.cal-day-course-count{color:#4f46e5;background:#6366f11a;border-radius:4px;padding:1px 5px;font-size:10px;font-weight:700}.dark-theme .cal-day-course-count{color:#a5b4fc;background:#6366f140}.cal-events-list{flex-direction:column;flex:1;gap:4px;display:flex}.calendar-event-capsule{cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:8px;align-items:center;gap:5px;padding:3px 6px;font-size:11px;line-height:1.25;transition:all .18s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.calendar-event-capsule:hover{z-index:10;transform:translateY(-1px);box-shadow:0 3px 10px #0000001a}.calendar-event-capsule.booked{color:#1e40af;background:#eff6ff;border-color:#bfdbfe}.calendar-event-capsule.completed{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.calendar-event-capsule.cancelled{color:#94a3b8;opacity:.75;background:#f1f5f9;border-color:#e2e8f0;text-decoration:line-through}.dark-theme .calendar-event-capsule.booked{color:#93c5fd;background:#1e3a8a33;border-color:#1e40af}.dark-theme .calendar-event-capsule.completed{color:#6ee7b7;background:#064e3b33;border-color:#065f46}.dark-theme .calendar-event-capsule.cancelled{color:#64748b;background:#1e293b;border-color:#334155}.event-teacher-avatar{object-fit:cover;border:1px solid #ffffffe6;border-radius:50%;flex-shrink:0;width:17px;height:17px;box-shadow:0 1px 3px #0000001a}.event-teacher-avatar-fallback{color:#4f46e5;background:#6366f133;border-radius:50%;flex-shrink:0;place-items:center;width:17px;height:17px;font-size:9px;font-weight:800;display:grid}.dark-theme .event-teacher-avatar-fallback{color:#c7d2fe;background:#6366f166}.event-time-badge{letter-spacing:-.2px;flex-shrink:0;font-size:11px;font-weight:800}.event-teacher-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:11px;font-weight:600;overflow:hidden}.event-cost-pill{color:inherit;background:#ffffffb3;border-radius:4px;flex-shrink:0;margin-left:auto;padding:0 4px;font-size:9.5px;font-weight:800}.dark-theme .event-cost-pill{background:#00000059}@media (width<=900px){.calendar-navbar-row{text-align:center;grid-template-columns:1fr;gap:10px}.cal-nav-left,.cal-nav-right,.cal-nav-center{justify-content:center}.cal-day-cell{min-height:80px;padding:4px 3px}.event-teacher-name{display:none}}.cal-mac-sync-btn{background:#fff;border-color:#cbd5e1;align-items:center;gap:5px;font-weight:700;display:inline-flex}.cal-mac-sync-btn:hover{color:#4f46e5;background:#eef2ff;border-color:#4f46e5}.dark-theme .cal-mac-sync-btn{color:#f1f5f9;background:#1e293b;border-color:#334155}.dark-theme .cal-mac-sync-btn:hover{color:#818cf8;background:#312e8133;border-color:#818cf8}.sync-method-card{border:1px solid var(--border);background:#fff;border-radius:12px;padding:14px 16px;transition:all .15s}.dark-theme .sync-method-card{background:#1e293b;border-color:#334155}.sync-method-card.active-featured{background:linear-gradient(#6366f10a 0%,#fff0 100%);border-color:#818cf8;box-shadow:0 4px 14px #6366f114}.dark-theme .sync-method-card.active-featured{background:linear-gradient(#6366f11f 0%,#1e293b 100%);border-color:#6366f1}.sync-method-header{justify-content:space-between;align-items:center;display:flex}.step-tag{color:#4f46e5;background:#eef2ff;border-radius:6px;padding:2px 7px;font-size:10.5px;font-weight:800}.dark-theme .step-tag{color:#c7d2fe;background:#312e81}.badge-tag{color:#3730a3;background:#e0e7ff;border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:700}.dark-theme .badge-tag{color:#93c5fd;background:#1e3a8a}.sniper-layout-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start;gap:20px;width:100%;display:grid}@media (width<=1024px){.sniper-layout-grid{grid-template-columns:1fr}}.sniper-rules-col,.sniper-alerts-col{flex-direction:column;width:100%;min-width:0;display:flex}.sniper-alerts-container{flex-direction:column;width:100%;display:flex}.sniper-logs-stream{flex-direction:column;gap:12px;min-height:0;max-height:none;padding:4px 0 14px;display:flex;overflow:visible}.sniper-log-item-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-left:4px solid var(--primary);box-shadow:var(--shadow-sm);cursor:pointer;-webkit-user-select:none;user-select:none;box-sizing:border-box;border-radius:14px;flex-direction:column;gap:10px;width:100%;padding:16px 18px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.sniper-log-item-card:hover{border-color:var(--primary);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.sniper-log-item-card.is-auto-booked{border-left-color:var(--emerald)}.dark-theme .sniper-log-item-card{background:#111827;border-color:#1f2937}.dark-theme .sniper-log-item-card:hover{border-color:#6366f1;box-shadow:0 8px 24px #00000073}.sniper-log-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.sniper-log-teacher-info{align-items:center;gap:10px;min-width:0;display:flex}.sniper-log-avatar{object-fit:cover;border:1.5px solid #fff;border-radius:50%;flex-shrink:0;width:38px;height:38px;box-shadow:0 2px 6px #00000014}.sniper-log-avatar-fallback{color:#fff;background:linear-gradient(135deg,#4f46e5 0%,#3b82f6 100%);border-radius:50%;flex-shrink:0;place-items:center;width:38px;height:38px;font-size:14px;font-weight:800;display:grid}.sniper-log-teacher-name{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:800;overflow:hidden}.sniper-log-slot-banner{background:var(--bg-card-subtle);border:1px solid var(--border-subtle);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font-size:12px;display:flex}.dark-theme .sniper-log-slot-banner{background:#1e293b;border-color:#334155}.sniper-log-slot-datetime{color:var(--text-main);align-items:center;gap:8px;font-weight:700;display:flex}.sniper-log-message{color:var(--text-muted);word-break:break-word;font-size:12.5px;line-height:1.5}.sniper-log-footer{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:10px;padding-top:10px;display:flex}.sniper-log-time{color:var(--text-muted);align-items:center;gap:5px;font-size:11.5px;display:flex}.sniper-courseware-notice-box{background:var(--primary-subtle);border:1px solid var(--primary-border);color:var(--primary-text);border-radius:12px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:12px;line-height:1.6;display:flex}.dark-theme .sniper-courseware-notice-box{color:#c7d2fe;background:#4f46e526;border-color:#4338ca}.sniper-modal-error-alert{color:#991b1b;background:#fef2f2;border:1px solid #fee2e2;border-radius:10px;align-items:center;gap:8px;padding:10px 14px;font-size:12.5px;display:flex}.dark-theme .sniper-modal-error-alert{color:#fca5a5;background:#991b1b33;border-color:#991b1b}.drawer-backdrop{-webkit-backdrop-filter:blur(8px);z-index:1200;background:#0f172a8c;justify-content:flex-end;animation:.22s cubic-bezier(.16,1,.3,1) drawerFadeIn;display:flex;position:fixed;inset:0}@keyframes drawerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes drawerSlideRight{0%{transform:translate(100%)}to{transform:translate(0)}}.task-side-drawer{background:var(--bg-card);border-left:1px solid var(--border);border-radius:20px 0 0 20px;flex-direction:column;width:680px;max-width:95vw;height:100vh;animation:.28s cubic-bezier(.16,1,.3,1) drawerSlideRight;display:flex;overflow:hidden;box-shadow:-12px 0 48px #00000038}.dark-theme .task-side-drawer{background:#0f172a;border-left-color:#ffffff1a;box-shadow:-12px 0 48px #0009}.drawer-top-header{background:var(--bg-card);border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.dark-theme .drawer-top-header{background:#1e293b;border-bottom-color:#ffffff14}.drawer-scroll-body{flex-direction:column;flex:1;gap:20px;padding:24px;display:flex;overflow-y:auto}.drawer-bottom-actions{background:var(--bg-card);border-top:1px solid var(--border-subtle);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;display:flex}.dark-theme .drawer-bottom-actions{background:#1e293b;border-top-color:#ffffff14}.studio-modal-backdrop{-webkit-backdrop-filter:blur(10px);z-index:1300;background:#0f172aa6;justify-content:center;align-items:center;padding:16px;animation:.22s ease-out drawerFadeIn;display:flex;position:fixed;inset:0}.studio-modal-container{background:var(--bg-card);border:1px solid var(--border);border-radius:24px;flex-direction:column;width:1180px;max-width:96vw;height:90vh;max-height:880px;animation:.25s cubic-bezier(.16,1,.3,1) modalPop;display:flex;overflow:hidden;box-shadow:0 24px 60px #00000059}.dark-theme .studio-modal-container{background:#0f172a;border-color:#ffffff1a;box-shadow:0 24px 60px #000000b3}.studio-header{background:var(--bg-card);border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.dark-theme .studio-header{background:#1e293b;border-bottom-color:#ffffff14}.studio-body-layout{flex:1;grid-template-columns:280px 1fr;min-height:0;display:grid;overflow:hidden}@media (width<=860px){.studio-body-layout{grid-template-rows:auto 1fr;grid-template-columns:1fr}}.studio-sidebar-nav{background:var(--bg-card-subtle);border-right:1px solid var(--border-subtle);flex-direction:column;gap:10px;padding:20px 16px;display:flex;overflow-y:auto}.dark-theme .studio-sidebar-nav{background:#131d31;border-right-color:#ffffff14}.studio-content-viewport{background:var(--bg-app);flex-direction:column;flex:1;padding:24px 28px;display:flex;overflow-y:auto}.dark-theme .studio-content-viewport{background:#0b1120}.studio-footer-bar{background:var(--bg-card);border-top:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 24px;display:flex}.dark-theme .studio-footer-bar{background:#1e293b;border-top-color:#ffffff14}.task-pipeline-tree{flex-direction:column;margin-top:6px;display:flex;position:relative}.tree-stage-item{gap:16px;display:flex;position:relative}.tree-spine-col{flex-direction:column;flex-shrink:0;align-items:center;width:32px;display:flex;position:relative}.tree-node-circle{border:2px solid var(--border);background:var(--bg-card);width:30px;height:30px;color:var(--text-muted);z-index:2;border-radius:50%;place-items:center;font-size:11.5px;font-weight:800;transition:all .25s cubic-bezier(.16,1,.3,1);display:grid}.tree-dashed-connector{border-left:2px dashed var(--border);flex:1;width:0;min-height:28px;margin:6px 0;transition:border-color .25s}.tree-stage-item.completed .tree-node-circle{color:#059669;background:#ecfdf5;border-color:#059669;font-weight:900;box-shadow:0 0 0 3px #05966926}.tree-stage-item.completed .tree-dashed-connector{border-left-color:#10b981}.tree-stage-item.active .tree-node-circle{color:#4f46e5;background:#eef2ff;border-color:#4f46e5;font-weight:900;box-shadow:0 0 0 4px #4f46e538}.tree-stage-item.active .tree-dashed-connector{border-left-color:#818cf8}.tree-stage-item.failed .tree-node-circle{color:#e11d48;background:#fff1f2;border-color:#e11d48;font-weight:900;box-shadow:0 0 0 3px #e11d482e}.tree-stage-item.failed .tree-dashed-connector{border-left-color:#fca5a5}.tree-stage-item.pending .tree-node-circle{border:1.5px dashed var(--border);background:var(--bg-card-subtle);color:var(--text-subtle)}.tree-stage-item.pending .tree-dashed-connector{border-left-color:var(--border-subtle)}.tree-substep-branches{border-left:2px dashed var(--border-subtle);flex-direction:column;gap:6px;margin:8px 0;padding-left:14px;display:flex;position:relative}.dark-theme .tree-substep-branches{border-left-color:#ffffff1f}.tree-substep-item{color:var(--text-main);align-items:center;gap:8px;padding:4px 0 4px 10px;font-size:11.5px;display:flex;position:relative}.tree-substep-item:before{content:"";border-top:2px dashed var(--border-subtle);width:10px;height:0;position:absolute;top:50%;left:-14px}.dark-theme .tree-substep-item:before{border-top-color:#ffffff1f}.studio-modal-backdrop.is-fullscreen{padding:0!important}:is(.studio-modal-container.is-fullscreen,.studio-modal-container:fullscreen){border:none!important;border-radius:0!important;width:100vw!important;max-width:100vw!important;height:100vh!important;max-height:100vh!important}.studio-tree-roadmap{flex-direction:column;gap:0;display:flex;position:relative}.studio-tree-step{gap:12px;display:flex;position:relative}.studio-step-spine{flex-direction:column;flex-shrink:0;align-items:center;width:28px;margin-top:4px;display:flex}.studio-step-node-dot{border:2px solid var(--border);background:var(--bg-card);width:26px;height:26px;color:var(--text-muted);z-index:2;border-radius:50%;place-items:center;font-size:11px;font-weight:800;transition:all .2s;display:grid}.studio-step-dashed-line{border-left:2px dashed var(--border);flex:1;width:0;min-height:22px;margin:3px 0}.studio-tree-step.completed .studio-step-node-dot{color:#059669;background:#ecfdf5;border-color:#059669;box-shadow:0 0 0 2px #05966933}.studio-tree-step.completed .studio-step-dashed-line{border-left-color:#10b981}.studio-tree-step.active .studio-step-node-dot{color:#fff;background:#4f46e5;border-color:#4f46e5;box-shadow:0 0 0 4px #4f46e540}.studio-tree-step.locked .studio-step-node-dot{border:1.5px dashed var(--border);background:var(--bg-card-subtle);color:var(--text-subtle);opacity:.6}.studio-step-content-card{cursor:pointer;background:0 0;border:1.5px solid #0000;border-radius:12px;flex:1;margin-bottom:8px;padding:10px 14px;transition:all .2s}.studio-step-content-card:hover:not(.locked){background:var(--bg-card);border-color:var(--border-subtle)}.studio-tree-step.active .studio-step-content-card{background:var(--bg-card);border-color:#4f46e5;box-shadow:0 4px 12px #4f46e517}.studio-step-content-card.locked{cursor:not-allowed;opacity:.5}.studio-step-card-title{color:var(--text-main);font-size:13px;font-weight:800;line-height:1.3}.studio-step-card-desc{color:var(--text-muted);margin-top:3px;font-size:11px}.child-spelling-card{background:var(--bg-card);border:2px solid var(--border);border-radius:20px;flex-direction:column;gap:16px;padding:24px;transition:all .25s;display:flex;box-shadow:0 4px 16px #0000000a}.child-spelling-card.is-correct{background:#0596690a;box-shadow:0 0 0 4px #05966926,0 8px 24px #0596691a;border-color:#059669!important}.child-spelling-card.is-wrong{background:#e11d480a;box-shadow:0 0 0 4px #e11d4826,0 8px 24px #e11d481a;border-color:#e11d48!important}.child-spelling-input{text-align:center;letter-spacing:2.5px;border:2.5px solid var(--border);background:var(--bg-card-subtle);height:52px;color:var(--text-main);border-radius:14px;font-size:22px;font-weight:800;transition:all .2s}.child-spelling-input:focus{background:var(--bg-card);border-color:#4f46e5;outline:none;box-shadow:0 0 0 4px #4f46e526}.letter-bubble-flow{flex-wrap:wrap;justify-content:center;gap:8px;margin:6px 0;display:flex}.letter-bubble-chip{border:2px solid var(--border);background:var(--bg-card-subtle);width:42px;height:42px;color:var(--text-main);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:12px;place-items:center;font-size:19px;font-weight:800;transition:all .18s cubic-bezier(.16,1,.3,1);display:grid}.letter-bubble-chip:hover{color:#4338ca;background:#eef2ff;border-color:#4f46e5;transform:translateY(-2px);box-shadow:0 4px 10px #4f46e52e}.letter-bubble-chip:active{transform:scale(.95)}.dark-theme .tree-node-circle{background:#1e293b;border-color:#ffffff26}.dark-theme .tree-dashed-connector{border-left-color:#ffffff24}.dark-theme .tree-stage-item.completed .tree-node-circle{color:#34d399;background:#064e3b;border-color:#059669}.dark-theme .tree-stage-item.active .tree-node-circle{color:#a5b4fc;background:#1e1b4b;border-color:#6366f1}.dark-theme .tree-stage-item.failed .tree-node-circle{color:#fb7185;background:#4c0519;border-color:#e11d48}.dark-theme .studio-step-node-dot{background:#1e293b;border-color:#ffffff26}.dark-theme .studio-step-dashed-line{border-left-color:#ffffff1f}.dark-theme .studio-tree-step.completed .studio-step-node-dot{color:#34d399;background:#064e3b;border-color:#059669}.dark-theme .child-spelling-card{background:#131d31;border-color:#ffffff1a}.dark-theme .child-spelling-input{color:#f8fafc;background:#0b1120;border-color:#ffffff26}.dark-theme .letter-bubble-chip{color:#e2e8f0;background:#1e293b;border-color:#ffffff1f}.dark-theme .letter-bubble-chip:hover{color:#e0e7ff;background:#4f46e54d;border-color:#818cf8}.time-range-filter{border:1px solid var(--border);border-radius:var(--radius-full);background:var(--bg-card);min-height:34px;color:var(--text-muted);align-items:center;gap:5px;padding:3px 8px;font-size:12px;display:inline-flex}.time-range-filter input{width:82px;color:var(--text-main);font:inherit;background:0 0;border:0;outline:0}.teacher-primary-filters{flex-wrap:wrap;flex:1;justify-content:flex-end;align-items:center;gap:10px;display:flex}.teacher-search-compact{min-width:220px}.advanced-filter-trigger{align-items:center;gap:6px;display:inline-flex}.advanced-filter-trigger.has-active{border-color:var(--primary);color:var(--primary)}.filter-count-badge{background:var(--primary);color:#fff;border-radius:99px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:800;display:inline-grid}.active-filter-bar{border:1px solid var(--border-subtle);background:var(--bg-card-subtle);border-radius:10px;flex-wrap:wrap;align-items:center;gap:7px;margin:-8px 0 14px;padding:9px 12px;display:flex}.active-filter-caption{color:var(--text-muted);font-size:12px;font-weight:700}.active-filter-chip{border:1px solid var(--border);background:var(--bg-card);color:var(--text-main);cursor:pointer;border-radius:99px;align-items:center;gap:4px;padding:4px 8px;font-size:11.5px;display:inline-flex}.active-filter-chip:hover{border-color:var(--primary);color:var(--primary)}.clear-filter-link{color:var(--primary);cursor:pointer;background:0 0;border:0;font-size:11.5px;font-weight:700}.teacher-filter-backdrop{z-index:1250;justify-content:flex-end;display:flex}.teacher-filter-drawer{background:var(--bg-card);flex-direction:column;width:min(430px,100vw);height:100%;display:flex;box-shadow:-12px 0 36px #0f172a29}.teacher-filter-drawer-head{border-bottom:1px solid var(--border-subtle);justify-content:space-between;gap:14px;padding:22px 22px 16px;display:flex}.teacher-filter-drawer-head h3{color:var(--text-main);margin:0;font-size:18px}.teacher-filter-drawer-head p{color:var(--text-muted);margin:5px 0 0;font-size:12px}.teacher-filter-drawer-body{flex:1;padding:16px 22px 28px;overflow-y:auto}.advanced-filter-section{border-bottom:1px solid var(--border-subtle);padding:16px 0}.advanced-section-title{color:var(--text-main);margin-bottom:9px;font-size:12.5px;font-weight:800}.preset-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.preset-card{border:1px solid var(--border);background:var(--bg-card);color:var(--text-main);cursor:pointer;text-align:left;border-radius:10px;flex-direction:column;gap:3px;padding:10px;display:flex}.preset-card:hover,.preset-card.active{border-color:var(--primary);background:#4f46e50f}.preset-card span{font-size:12px;font-weight:800}.preset-card small{color:var(--text-muted);font-size:10.5px}.drawer-inline-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.custom-time-row{color:var(--text-muted);align-items:center;gap:7px;margin-top:10px;font-size:12px;display:flex}.custom-time-row input{border:1px solid var(--border);background:var(--bg-card);min-height:32px;color:var(--text-main);border-radius:8px;padding:4px 7px}.filter-note{color:var(--text-muted);margin:8px 0 0;font-size:11px;line-height:1.5}.teacher-filter-drawer-foot{border-top:1px solid var(--border-subtle);justify-content:space-between;gap:10px;padding:14px 22px;display:flex}.teacher-filter-drawer-foot .btn{align-items:center;gap:6px;display:inline-flex}@media (width<=760px){.teacher-primary-filters{justify-content:stretch}.teacher-search-compact{min-width:100%}.teacher-primary-filters>*{flex:auto}.teacher-filter-drawer{width:100%}}.teachers-directory-view{position:relative}.teacher-filter-backdrop{pointer-events:none;z-index:1250;width:min(430px,100vw - 24px);padding:0;background:0 0!important;height:auto!important;display:block!important;position:absolute!important;inset:56px 0 auto auto!important}.teacher-filter-drawer{pointer-events:auto;border:1px solid var(--border-subtle);border-radius:16px;width:100%;height:auto;max-height:min(720px,100vh - 110px);overflow:hidden}.teacher-filter-drawer-body{max-height:min(590px,100vh - 240px)}.teacher-query-wrap{flex:360px;min-width:340px;position:relative}.teacher-query-input{border:1px solid var(--border);background:var(--bg-card);min-height:36px;color:var(--text-muted);cursor:text;border-radius:10px;flex-wrap:wrap;align-items:center;gap:5px;padding:4px 10px;display:flex}.teacher-query-input:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51f}.teacher-query-input input{min-width:130px;color:var(--text-main);background:0 0;border:0;outline:0;flex:1;font-size:12.5px}.query-tag{color:var(--primary);cursor:pointer;white-space:nowrap;background:#4f46e517;border:1px solid #4f46e533;border-radius:6px;align-items:center;gap:3px;padding:4px 7px;font-size:11px;display:inline-flex}.query-tag:hover{background:#4f46e529}.query-builder-popover{z-index:1400;border:1px solid var(--border-subtle);background:var(--bg-card);border-radius:12px;width:min(360px,100vw - 28px);max-height:430px;padding:10px;position:absolute;top:calc(100% + 7px);left:0;overflow-y:auto;box-shadow:0 16px 40px #0f172a2e}.query-builder-caption{color:var(--text-muted);padding:5px 7px 8px;font-size:11.5px;font-weight:700}.query-key-item,.query-value-item{width:100%;color:var(--text-main);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;padding:9px 10px;font-size:12.5px;display:flex}.query-key-item:hover,.query-value-item:hover,.query-value-item.selected{color:var(--primary);background:#4f46e517}.query-builder-close,.query-back-link{color:var(--primary);cursor:pointer;background:0 0;border:0;margin-top:8px;padding:6px 8px;font-size:11.5px;font-weight:700}.query-back-link{margin:0 0 4px;padding-left:4px}.query-custom-time{align-items:center;gap:7px;padding:8px 4px;display:flex}.query-custom-time input{border:1px solid var(--border);background:var(--bg-card);min-height:32px;color:var(--text-main);border-radius:7px;padding:4px 6px}.query-custom-time .btn{white-space:nowrap}.query-value-list{flex-direction:column;gap:2px;display:flex}@media (width<=900px){.teacher-query-wrap{order:-1;min-width:100%}.teacher-common-fixed{min-width:0}}.query-tag.tone-platform,.active-filter-chip.tone-platform{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.query-tag.tone-nationality,.active-filter-chip.tone-nationality{color:#7e22ce;background:#faf5ff;border-color:#e9d5ff}.query-tag.tone-availability,.active-filter-chip.tone-availability{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.query-tag.tone-schedule,.active-filter-chip.tone-schedule{color:#c2410c;background:#fff7ed;border-color:#fed7aa}.query-tag.tone-period,.active-filter-chip.tone-period{color:#0e7490;background:#ecfeff;border-color:#a5f3fc}.query-tag.tone-signal,.active-filter-chip.tone-signal{color:#be185d;background:#fdf2f8;border-color:#fbcfe8}.query-tag.tone-fixed,.active-filter-chip.tone-fixed{color:#4338ca;background:#eef2ff;border-color:#c7d2fe}.query-tag.tone-price,.active-filter-chip.tone-price{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.query-tag.tone-balance,.active-filter-chip.tone-balance{color:#a16207;background:#fffbeb;border-color:#fde68a}.query-tag.tone-time,.active-filter-chip.tone-time{color:#0f766e;background:#f0fdfa;border-color:#99f6e4}.query-tag.tone-search,.active-filter-chip.tone-search{color:#475569;background:#f1f5f9;border-color:#cbd5e1}.dark-theme .query-tag,.dark-theme .active-filter-chip{filter:saturate(.85)brightness(.82)}.query-tag-remove{border-radius:4px;justify-content:center;align-items:center;width:15px;height:15px;display:inline-flex}.query-tag-remove:hover{background:#0f172a1f}.query-clear-all{width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.query-clear-all:hover{background:var(--bg-card-subtle);color:var(--danger,#e11d48)}@media (width<=900px){.teacher-query-wrap{min-width:100%;max-width:none}}@media (width<=1100px){.teacher-query-wrap{flex:360px;max-width:460px}}@media (width<=900px){.teacher-query-wrap{min-width:100%;max-width:none}}.teacher-query-input{flex-wrap:nowrap;overflow:hidden}.query-tag{flex:0 auto;min-width:0;max-width:145px}.query-tag-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.query-more-tag{border:1px solid var(--border);background:var(--bg-card-subtle);color:var(--text-muted);cursor:pointer;border-radius:6px;flex:none;align-items:center;padding:4px 7px;font-size:11px;font-weight:800;display:inline-flex}.query-more-tag:hover{border-color:var(--primary);color:var(--primary)}.teacher-query-input input{min-width:90px}@media (width<=900px){.teacher-query-input{flex-wrap:wrap;max-height:74px;overflow-y:auto}}.teacher-query-wrap{flex:auto;min-width:0;max-width:none}.teacher-query-input{flex-wrap:wrap;min-height:40px;overflow:visible}.query-tag{flex:none;max-width:none}.query-tag-label{text-overflow:clip;white-space:nowrap;max-width:none;overflow:visible}@media (width<=900px){.teacher-query-wrap{min-width:100%;max-width:none}.teacher-query-input{max-height:none;overflow:visible}}.teacher-query-column{flex:auto;min-width:0;max-width:none}.teacher-query-hint{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin:4px 2px 0;font-size:11px;line-height:1.35;overflow:hidden}@media (width<=900px){.teacher-query-hint{white-space:normal}}.teacher-header-toolbar{align-items:center}.teacher-header-toolbar .teacher-primary-filters{flex-grow:0;flex-basis:auto}.teacher-header-toolbar .teacher-query-column{flex:1 0 100%;order:3;width:100%}.teacher-header-toolbar .teacher-query-wrap{width:100%;max-width:none}.teacher-header-toolbar .teacher-query-input{width:100%}@media (width<=760px){.teacher-header-toolbar{align-items:stretch}.teacher-header-toolbar .pill-tabs,.teacher-header-toolbar .teacher-primary-filters{width:100%}.teacher-header-toolbar .teacher-primary-filters>.btn{margin-left:auto}}.teacher-header-toolbar{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;row-gap:10px;display:grid!important}.teacher-header-toolbar>.pill-tabs{grid-area:1/1}.teacher-header-toolbar>.teacher-primary-filters{display:contents}.teacher-header-toolbar .teacher-query-column{grid-area:2/1/auto/-1}.teacher-header-toolbar .teacher-primary-filters>.btn-primary{grid-area:1/2;justify-self:end}@media (width<=760px){.teacher-header-toolbar{grid-template-columns:1fr auto}.teacher-header-toolbar .teacher-query-column{grid-column:1/-1}}.teacher-header-toolbar>.pill-tabs{justify-self:start;width:max-content!important}@media (width<=760px){.teacher-header-toolbar>.pill-tabs{width:max-content!important}}.ai-learning-view{width:100%;max-width:none}.ai-learning-view .vocab-table-card,.ai-learning-view .vocab-toolbar{box-sizing:border-box;width:100%}.ai-learning-view .vocab-table{width:100%}
