:root{--bg-app:#f8fafc;--bg-card:#fff;--bg-subtle:#f1f5f9;--bg-hover:#e2e8f0;--text-main:#0f172a;--text-body:#334155;--text-muted:#64748b;--text-light:#94a3b8;--border:#e2e8f0;--border-strong:#cbd5e1;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-subtle:#eff6ff;--primary-border:#bfdbfe;--status-completed-text:#047857;--status-completed-bg:#ecfdf5;--status-completed-border:#a7f3d0;--status-progress-text:#b45309;--status-progress-bg:#fffbeb;--status-progress-border:#fde68a;--status-pending-text:#64748b;--status-pending-bg:#f8fafc;--status-pending-border:#e2e8f0;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000a;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:9999px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}#app{flex-direction:column;min-height:100vh;display:flex}a{color:inherit;text-decoration:none}button{font-family:inherit;font-size:inherit;cursor:pointer;background:0 0;border:none}input,textarea,select{font-family:inherit;font-size:inherit}.btn{border-radius:var(--radius-md);cursor:pointer;justify-content:center;align-items:center;gap:.5rem;padding:.55rem 1rem;font-size:.875rem;font-weight:500;line-height:1.25;text-decoration:none;transition:all .15s ease-in-out;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover);box-shadow:var(--shadow-sm)}.btn-secondary{background-color:var(--bg-card);color:var(--text-main);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-subtle);border-color:var(--border-strong)}.btn-outline{color:var(--primary);border:1px solid var(--primary-border);background-color:#0000}.btn-outline:hover:not(:disabled){background-color:var(--primary-subtle)}.btn-sm{border-radius:var(--radius-sm);padding:.35rem .75rem;font-size:.8125rem}.btn-lg{border-radius:var(--radius-md);padding:.75rem 1.5rem;font-size:1rem}.container{width:100%;max-width:1120px;margin-left:auto;margin-right:auto;padding-left:1.25rem;padding-right:1.25rem}.page-wrapper{flex:1;padding:2rem 0 3.5rem}@media (width<=640px){.page-wrapper{padding:1.25rem 0 2.5rem}}.markdown-body{color:var(--text-body);overflow-wrap:anywhere;font-size:.975rem;line-height:1.7}.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{color:var(--text-main);margin:1.6em 0 .6em;font-weight:700;line-height:1.3}.markdown-body h1{font-size:1.6rem}.markdown-body h2{font-size:1.3rem}.markdown-body h3{font-size:1.1rem}.markdown-body h4{font-size:1rem}.markdown-body h5,.markdown-body h6{color:var(--text-muted);font-size:.9rem}.markdown-body p{margin:0 0 .9em}.markdown-body ul,.markdown-body ol{margin:0 0 .95em;padding-left:1.5em}.markdown-body li,.markdown-body li>ul,.markdown-body li>ol{margin:.3em 0}.markdown-body strong{color:var(--text-main);font-weight:650}.markdown-body em{font-style:italic}.markdown-body del{color:var(--text-muted)}.markdown-body a{color:var(--primary);text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body hr{border:0;border-top:1px solid var(--border);margin:1.5em 0}.markdown-body blockquote{border-left:3px solid var(--primary-border);color:var(--text-muted);margin:0 0 1em;padding:.4em 0 .4em 1em}.markdown-body code{font-family:var(--font-mono);background-color:#0f172a0f;border-radius:4px;padding:.15rem .35rem;font-size:.85em}.markdown-body pre{color:#f8fafc;border-radius:var(--radius-md);background-color:#0f172a;margin:0 0 1em;padding:.9rem 1.1rem;overflow-x:auto}.markdown-body pre code{color:inherit;background:0 0;padding:0;font-size:.85rem;line-height:1.5}.markdown-body img{border-radius:var(--radius-sm);max-width:100%;height:auto}.markdown-body table{border-collapse:collapse;width:100%;margin:0 0 1em;font-size:.9rem}.markdown-body th,.markdown-body td{border:1px solid var(--border);text-align:left;padding:.5rem .7rem}.markdown-body th{background-color:var(--bg-subtle);color:var(--text-main);font-weight:600}.markdown-body-bubble{font-size:.925rem;line-height:1.6}.markdown-body-bubble h1{font-size:1.25rem}.markdown-body-bubble h2{font-size:1.1rem}.markdown-body-bubble h3,.markdown-body-bubble h4{font-size:1rem}.markdown-body-bubble h1,.markdown-body-bubble h2,.markdown-body-bubble h3,.markdown-body-bubble h4,.markdown-body-bubble h5,.markdown-body-bubble h6{margin:1em 0 .5em}.markdown-body-bubble p,.markdown-body-bubble ul,.markdown-body-bubble ol,.markdown-body-bubble pre,.markdown-body-bubble table{margin-bottom:.7em}.app-header[data-v-b84d4ba4]{background-color:var(--bg-card);border-bottom:1px solid var(--border);z-index:40;position:sticky;top:0}.header-inner[data-v-b84d4ba4]{justify-content:space-between;align-items:center;height:64px;display:flex}.brand[data-v-b84d4ba4]{color:var(--text-main);align-items:center;gap:.75rem;font-size:1.15rem;font-weight:700;text-decoration:none;display:flex}.brand-icon[data-v-b84d4ba4]{border-radius:var(--radius-md);background-color:var(--primary-subtle);width:34px;height:34px;color:var(--primary);justify-content:center;align-items:center;display:flex}.brand-name[data-v-b84d4ba4]{letter-spacing:-.02em}.brand-text[data-v-b84d4ba4]{flex-direction:column;line-height:1.15;display:flex}.brand-tagline[data-v-b84d4ba4]{letter-spacing:0;color:var(--text-muted);white-space:nowrap;margin-top:.12rem;font-size:.7rem;font-weight:500;line-height:1.2}.brand-name-short[data-v-b84d4ba4]{letter-spacing:-.02em;display:none}.header-nav[data-v-b84d4ba4]{align-items:center;gap:1.25rem;display:flex}.nav-link[data-v-b84d4ba4]{color:var(--text-muted);padding:.5rem .25rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:color .15s}.nav-link[data-v-b84d4ba4]:hover,.nav-link.active[data-v-b84d4ba4]{color:var(--primary)}.profile-container[data-v-b84d4ba4]{position:relative}.profile-button[data-v-b84d4ba4]{border-radius:var(--radius-full);border:1px solid var(--border);background-color:var(--bg-card);align-items:center;gap:.5rem;padding:.35rem .6rem;transition:all .15s;display:flex}.profile-button[data-v-b84d4ba4]:hover{background-color:var(--bg-subtle);border-color:var(--border-strong)}.avatar[data-v-b84d4ba4]{color:#fff;background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%);border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:.75rem;font-weight:600;display:flex}.profile-name[data-v-b84d4ba4]{color:var(--text-body);font-size:.8125rem;font-weight:500}.chevron[data-v-b84d4ba4]{color:var(--text-muted)}.profile-dropdown[data-v-b84d4ba4]{background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);width:200px;box-shadow:var(--shadow-lg);z-index:50;padding:.5rem 0;position:absolute;top:calc(100% + 8px);right:0}.dropdown-header[data-v-b84d4ba4]{padding:.5rem 1rem}.dropdown-name[data-v-b84d4ba4]{color:var(--text-main);font-size:.875rem;font-weight:600}.dropdown-email[data-v-b84d4ba4]{color:var(--text-muted);font-size:.75rem}.balance-chip[data-v-b84d4ba4]{color:var(--primary);background-color:var(--primary-subtle);border:1px solid var(--primary-border,#bfdbfe);border-radius:var(--radius-full,999px);white-space:nowrap;align-items:center;gap:.3rem;padding:.15rem .5rem;font-size:.78rem;font-weight:700;display:inline-flex}.balance-label[data-v-b84d4ba4]{opacity:.75;font-size:.72rem;font-weight:500}.dropdown-balance[data-v-b84d4ba4]{color:var(--primary);margin-top:.25rem;font-size:.8rem;font-weight:600}.dropdown-divider[data-v-b84d4ba4]{background-color:var(--border);height:1px;margin:.35rem 0}.dropdown-item[data-v-b84d4ba4]{width:100%;color:var(--text-body);text-align:left;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.8125rem;transition:background-color .15s;display:flex}.dropdown-item[data-v-b84d4ba4]:hover{background-color:var(--bg-subtle)}.text-danger[data-v-b84d4ba4]{color:#dc2626}.text-danger[data-v-b84d4ba4]:hover{background-color:#fef2f2}@media (width<=640px){.brand[data-v-b84d4ba4]{gap:.5rem;font-size:1.05rem}.brand-name[data-v-b84d4ba4]{display:none}.brand-name-short[data-v-b84d4ba4]{display:inline}.brand-tagline[data-v-b84d4ba4]{display:none}.header-nav[data-v-b84d4ba4]{gap:.6rem}.nav-link[data-v-b84d4ba4]{padding:.5rem 0;font-size:.85rem}.profile-button[data-v-b84d4ba4]{gap:.35rem;padding:.3rem .45rem}.profile-name[data-v-b84d4ba4],.chevron[data-v-b84d4ba4],.balance-label[data-v-b84d4ba4]{display:none}.balance-chip[data-v-b84d4ba4]{padding:.12rem .4rem;font-size:.72rem}.avatar[data-v-b84d4ba4]{width:24px;height:24px}}.app-layout[data-v-8d1abe55]{flex-direction:column;min-height:100vh;display:flex}.login-page[data-v-fe524955]{background-color:var(--bg-app);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.login-card[data-v-fe524955]{background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:440px;box-shadow:var(--shadow-md);text-align:center;padding:2.25rem 2rem}.brand-badge[data-v-fe524955]{justify-content:center;margin-bottom:1.25rem;display:flex}.brand-icon[data-v-fe524955]{border-radius:var(--radius-md);background-color:var(--primary-subtle);width:52px;height:52px;color:var(--primary);justify-content:center;align-items:center;display:flex}.app-title[data-v-fe524955]{color:var(--text-main);letter-spacing:-.02em;margin-bottom:.35rem;font-size:1.75rem;font-weight:700}.app-tagline[data-v-fe524955]{color:var(--text-muted);margin-bottom:1.5rem;font-size:.925rem}.auth-tabs[data-v-fe524955]{background-color:var(--bg-subtle);border-radius:var(--radius-md);border:1px solid var(--border);margin-bottom:1.5rem;padding:.25rem;display:flex}.auth-tab[data-v-fe524955]{color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;flex:1;padding:.5rem .75rem;font-size:.875rem;font-weight:500;transition:all .15s}.auth-tab.active[data-v-fe524955]{color:var(--primary);box-shadow:var(--shadow-sm);background-color:#fff;font-weight:600}.alert[data-v-fe524955]{border-radius:var(--radius-md);text-align:left;margin-bottom:1.25rem;padding:.75rem 1rem;font-size:.85rem;line-height:1.4}.alert-danger[data-v-fe524955]{color:#dc2626;background-color:#fef2f2;border:1px solid #fecaca}.alert-success[data-v-fe524955]{color:#047857;background-color:#ecfdf5;border:1px solid #a7f3d0}.login-form[data-v-fe524955]{text-align:left;flex-direction:column;gap:1.15rem;display:flex}.form-group[data-v-fe524955]{flex-direction:column;gap:.4rem;display:flex}.form-label[data-v-fe524955]{color:var(--text-body);font-size:.8125rem;font-weight:600}.form-input[data-v-fe524955]{border-radius:var(--radius-md);border:1px solid var(--border);width:100%;color:var(--text-main);background-color:#fff;padding:.65rem .85rem;font-size:.925rem;transition:all .15s}.form-input[data-v-fe524955]:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-subtle);outline:none}.form-input.has-error[data-v-fe524955]{background-color:#fffbfb;border-color:#dc2626}.form-input.has-error[data-v-fe524955]:focus{box-shadow:0 0 0 3px #fee2e2}.field-error-text[data-v-fe524955]{color:#dc2626;font-size:.775rem;font-weight:500}.submit-btn[data-v-fe524955]{width:100%;margin-top:.5rem}.login-footer[data-v-fe524955]{border-top:1px solid var(--border);flex-direction:column;gap:.75rem;margin-top:1.5rem;padding-top:1.25rem;display:flex}.signup-hint[data-v-fe524955]{color:var(--text-muted);font-size:.85rem}.signup-link[data-v-fe524955]{color:var(--primary);font-weight:600}.signup-link[data-v-fe524955]:hover{text-decoration:underline}.progress-container[data-v-3dea6e14]{align-items:center;gap:.75rem;width:100%;display:flex}.progress-track[data-v-3dea6e14]{background-color:var(--border);border-radius:var(--radius-full);flex:1;position:relative;overflow:hidden}.progress-fill[data-v-3dea6e14]{background:linear-gradient(90deg, var(--primary) 0%, #3b82f6 100%);border-radius:var(--radius-full);height:100%;transition:width .35s}.progress-label[data-v-3dea6e14]{color:var(--text-main);text-align:right;font-variant-numeric:tabular-nums;min-width:2.5rem;font-size:.8125rem;font-weight:600}.status-badge[data-v-afc0097b]{border-radius:var(--radius-full);white-space:nowrap;align-items:center;gap:.35rem;font-weight:500;line-height:1;display:inline-flex}.badge-sm[data-v-afc0097b]{padding:.2rem .55rem;font-size:.75rem}.badge-md[data-v-afc0097b]{padding:.3rem .75rem;font-size:.8125rem}.status-icon[data-v-afc0097b]{font-size:.85em}.status-completed[data-v-afc0097b]{background-color:var(--status-completed-bg);color:var(--status-completed-text);border:1px solid var(--status-completed-border)}.status-in_progress[data-v-afc0097b],.status-in-progress[data-v-afc0097b]{background-color:var(--status-progress-bg);color:var(--status-progress-text);border:1px solid var(--status-progress-border)}.status-not_started[data-v-afc0097b],.status-pending[data-v-afc0097b]{background-color:var(--status-pending-bg);color:var(--status-pending-text);border:1px solid var(--status-pending-border)}.course-card[data-v-759f3aa3]{background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;padding:1.5rem;transition:all .2s}.course-card[data-v-759f3aa3]:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.course-card.featured[data-v-759f3aa3]{border-color:var(--primary-border);background:linear-gradient(180deg, #fff 0%, var(--bg-app) 100%)}.card-header[data-v-759f3aa3]{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.course-title[data-v-759f3aa3]{color:var(--text-main);letter-spacing:-.01em;margin-bottom:.35rem;font-size:1.35rem;font-weight:700}.meta-tags[data-v-759f3aa3]{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.85rem;display:flex}.level-badge[data-v-759f3aa3]{text-transform:capitalize;color:var(--primary);background-color:var(--primary-light,#eff6ff);border-radius:var(--radius-sm,4px);padding:.15rem .5rem;font-size:.75rem;font-weight:600}.duration-badge[data-v-759f3aa3]{color:var(--text-muted);font-size:.8rem;font-weight:500}.meta-dot[data-v-759f3aa3]{color:var(--text-muted)}.topic-counter[data-v-759f3aa3]{font-weight:500}.status-wrap[data-v-759f3aa3]{flex-shrink:0}.progress-section[data-v-759f3aa3]{background-color:var(--bg-subtle);border-radius:var(--radius-md);margin-bottom:1.25rem;padding:.85rem 1rem}.progress-meta[data-v-759f3aa3]{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.progress-label[data-v-759f3aa3]{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.75rem;font-weight:600}.progress-percentage[data-v-759f3aa3]{color:var(--text-main);font-size:.9rem;font-weight:700}.card-footer[data-v-759f3aa3]{justify-content:flex-end;align-items:center;display:flex}@media (width<=640px){.card-header[data-v-759f3aa3]{flex-direction:column;align-items:flex-start}.card-footer .btn[data-v-759f3aa3]{width:100%}}.empty-state[data-v-4c4305cf]{text-align:center;background-color:var(--bg-card);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);flex-direction:column;align-items:center;max-width:580px;margin:2rem auto;padding:3.5rem 1.5rem;display:flex}.empty-state--dashboard[data-v-4c4305cf]{justify-content:center;max-width:640px;padding:3rem 1.5rem}.empty-icon-wrapper[data-v-4c4305cf]{background-color:var(--primary-subtle);width:72px;height:72px;color:var(--primary);border-radius:50%;justify-content:center;align-items:center;margin-bottom:1.25rem;display:flex}.empty-title[data-v-4c4305cf]{color:var(--text-main);margin-bottom:.5rem;font-size:1.25rem;font-weight:700}.empty-desc[data-v-4c4305cf]{color:var(--text-muted);max-width:420px;margin-bottom:1.5rem;font-size:.925rem;line-height:1.55}.empty-cta[data-v-4c4305cf]{gap:.5rem}.prompt-box[data-v-54c3438f]{width:100%}.prompt-input-row[data-v-54c3438f]{align-items:stretch;gap:.6rem;display:flex}.prompt-input[data-v-54c3438f]{border:1px solid var(--border);border-radius:var(--radius-md);background-color:var(--bg-app);min-width:0;color:var(--text-main);resize:vertical;outline:none;flex:1;padding:.7rem .85rem;font-family:inherit;font-size:.95rem;line-height:1.5;transition:border-color .15s,box-shadow .15s}.prompt-input[data-v-54c3438f]:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-subtle)}.prompt-input[data-v-54c3438f]:disabled{opacity:.7;cursor:not-allowed}.prompt-submit[data-v-54c3438f]{white-space:nowrap;align-self:flex-end;align-items:center;gap:.4rem;height:42px;display:inline-flex}.prompt-preview[data-v-54c3438f]{text-align:left;color:var(--text-muted);margin-top:.45rem;font-size:.78rem}.prompt-chips[data-v-54c3438f]{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:.85rem;display:flex}.prompt-chip[data-v-54c3438f]{border:1px solid var(--border);background-color:var(--bg-card);color:var(--text-body);border-radius:var(--radius-full);padding:.35rem .75rem;font-size:.78rem;line-height:1.35;transition:border-color .15s,background-color .15s,color .15s}.prompt-chip[data-v-54c3438f]:hover:not(:disabled){border-color:var(--primary-border);background-color:var(--primary-subtle);color:var(--primary)}.prompt-chip[data-v-54c3438f]:disabled{opacity:.6;cursor:not-allowed}.prompt-error[data-v-54c3438f]{text-align:left;color:#dc2626;margin-top:.6rem;font-size:.82rem}.spinner-small[data-v-54c3438f]{border:2px solid #ffffff80;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin-54c3438f}@keyframes spin-54c3438f{to{transform:rotate(360deg)}}@media (width<=640px){.prompt-input-row[data-v-54c3438f]{flex-direction:column}.prompt-submit[data-v-54c3438f]{justify-content:center;width:100%}.prompt-input[data-v-54c3438f]{resize:none}}.progress-panel[data-v-8937781d]{text-align:left;background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;max-width:500px;margin:0 auto;padding:1.25rem 1.35rem;position:relative}.progress-dismiss[data-v-8937781d]{border-radius:var(--radius-full,999px);width:28px;height:28px;color:var(--text-muted);justify-content:center;align-items:center;font-size:1.15rem;line-height:1;display:inline-flex;position:absolute;top:.35rem;right:.5rem}.progress-dismiss[data-v-8937781d]:hover{background-color:var(--bg-app);color:var(--text-main)}.progress-steps[data-v-8937781d]{flex-direction:column;gap:.7rem;list-style:none;display:flex}.progress-step[data-v-8937781d]{color:var(--text-light);align-items:center;gap:.6rem;font-size:.9rem;display:flex}.progress-step--done[data-v-8937781d]{color:var(--text-body)}.progress-step--active[data-v-8937781d]{color:var(--text-main);font-weight:600}.step-icon[data-v-8937781d]{flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.progress-step--done .step-icon[data-v-8937781d]{color:#047857}.progress-step--failed[data-v-8937781d]{color:#b91c1c}.progress-step--failed .step-icon[data-v-8937781d]{color:#dc2626}.step-label[data-v-8937781d]{min-width:0}.step-dot[data-v-8937781d]{background-color:var(--border-strong);border-radius:50%;width:7px;height:7px}.spinner-small[data-v-8937781d]{border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin-8937781d}.progress-error[data-v-8937781d]{color:#dc2626;margin-top:1rem;font-size:.85rem}.progress-actions[data-v-8937781d]{align-items:center;gap:.6rem;margin-top:.9rem;display:flex}.progress-hint[data-v-8937781d]{color:var(--text-muted);font-size:.8rem;line-height:1.45}@keyframes spin-8937781d{to{transform:rotate(360deg)}}@media (width<=640px){.progress-panel[data-v-8937781d]{padding:1rem}}.dashboard-view[data-v-d9983e49]{min-height:calc(100vh - 64px);padding-bottom:3rem}.dashboard-header[data-v-d9983e49]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:2.25rem;display:flex}.zero-balance-note[data-v-d9983e49]{color:#b45309;background-color:var(--status-progress-bg,#fffbeb);border:1px solid var(--status-progress-border,#fde68a);border-radius:var(--radius-md);margin-bottom:1.5rem;padding:.55rem 1rem;font-size:.85rem;font-weight:600}.page-heading[data-v-d9983e49]{color:var(--text-main);letter-spacing:-.025em;font-size:1.85rem;font-weight:800;line-height:1.2}.page-subheading[data-v-d9983e49]{color:var(--text-muted);margin-top:.25rem;font-size:.95rem}.plus-icon[data-v-d9983e49]{font-size:1.25em;font-weight:700}.loading-state[data-v-d9983e49]{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:4rem 1rem;display:flex}.spinner[data-v-d9983e49]{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin-d9983e49}@keyframes spin-d9983e49{to{transform:rotate(360deg)}}.error-banner[data-v-d9983e49]{background-color:var(--status-pending-bg);color:var(--status-pending-text);border:1px solid var(--status-pending-border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1.25rem;display:flex}.courses-section[data-v-d9983e49]{margin-bottom:2.5rem}.courses-grid[data-v-d9983e49]{flex-direction:column;gap:1.25rem;display:flex}.empty-wrap[data-v-d9983e49]{text-align:center}.empty-prompt[data-v-d9983e49]{text-align:left;width:100%;max-width:500px;margin:0 auto}.manual-link[data-v-d9983e49]{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin:.9rem auto 0;padding:.25rem;font-size:.85rem;text-decoration:underline;display:block}.manual-link[data-v-d9983e49]:hover:not(:disabled){color:var(--primary)}.manual-link[data-v-d9983e49]:disabled{opacity:.6;cursor:not-allowed}.modal-backdrop[data-v-d9983e49]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background-color:#0f172a8c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card[data-v-d9983e49]{background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:480px;box-shadow:var(--shadow-lg);padding:2rem}.modal-title[data-v-d9983e49]{color:var(--text-main);margin-bottom:.35rem;font-size:1.4rem;font-weight:700}.modal-subtitle[data-v-d9983e49]{color:var(--text-muted);margin-bottom:1.5rem;font-size:.9rem}.form-group[data-v-d9983e49]{margin-bottom:1.25rem}.form-label[data-v-d9983e49]{color:var(--text-main);margin-bottom:.4rem;font-size:.85rem;font-weight:600;display:block}.form-input[data-v-d9983e49]{border:1px solid var(--border);border-radius:var(--radius-md);background-color:var(--bg-app);width:100%;color:var(--text-main);outline:none;padding:.75rem .9rem;font-size:.95rem;transition:border-color .15s}.form-input[data-v-d9983e49]:focus{border-color:var(--primary)}.form-select[data-v-d9983e49]{cursor:pointer;appearance:auto}.duration-input-wrap[data-v-d9983e49]{align-items:center;gap:.5rem;display:flex}.duration-number[data-v-d9983e49]{max-width:120px}.duration-unit[data-v-d9983e49]{color:var(--text-muted);font-size:.95rem;font-weight:500}.creating-indicator[data-v-d9983e49]{background-color:var(--bg-subtle,#f8fafc);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-muted);align-items:center;gap:.75rem;margin-bottom:1rem;padding:.85rem 1rem;font-size:.85rem;display:flex}.spinner-small[data-v-d9983e49]{border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.8s linear infinite spin-d9983e49}.modal-success[data-v-d9983e49]{color:#065f46;border-radius:var(--radius-md);background-color:#ecfdf5;border:1px solid #a7f3d0;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem;font-weight:500}.modal-error[data-v-d9983e49]{color:#ef4444;margin-bottom:1rem;font-size:.85rem}.modal-actions[data-v-d9983e49]{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}@media (width<=640px){.dashboard-header[data-v-d9983e49]{flex-direction:column;align-items:flex-start}.dashboard-header .btn[data-v-d9983e49]{width:100%}}.setup-container[data-v-7899c8fa]{max-width:780px}.setup-header[data-v-7899c8fa]{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.back-link[data-v-7899c8fa]{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.85rem;transition:color .15s;display:flex}.back-link[data-v-7899c8fa]:hover{color:var(--primary)}.step-indicator[data-v-7899c8fa]{color:var(--primary);background-color:var(--primary-subtle);border-radius:var(--radius-full);padding:.25rem .65rem;font-size:.8125rem;font-weight:600}.chat-wizard-card[data-v-7899c8fa]{background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);flex-direction:column;display:flex;overflow:hidden}.dialogue-area[data-v-7899c8fa]{border-bottom:1px solid var(--border);background-color:#fbfcff;flex-direction:column;gap:1rem;max-height:380px;padding:1.75rem;display:flex;overflow-y:auto}.wizard-bubble[data-v-7899c8fa]{gap:.75rem;max-width:85%;display:flex}.bubble-agent[data-v-7899c8fa]{align-self:flex-start}.bubble-user[data-v-7899c8fa]{flex-direction:row-reverse;align-self:flex-end}.agent-avatar[data-v-7899c8fa]{background-color:var(--primary-subtle);width:32px;height:32px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.bubble-content[data-v-7899c8fa]{border-radius:var(--radius-md);padding:.75rem 1rem;font-size:.925rem;line-height:1.45}.bubble-agent .bubble-content[data-v-7899c8fa]{border:1px solid var(--border);color:var(--text-main);box-shadow:var(--shadow-sm);background-color:#fff}.bubble-user .bubble-content[data-v-7899c8fa]{background-color:var(--primary);color:#fff}.wizard-control-area[data-v-7899c8fa]{padding:1.75rem}.step-controls[data-v-7899c8fa]{flex-direction:column;gap:1rem;display:flex}.topic-suggestions[data-v-7899c8fa]{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.suggestion-label[data-v-7899c8fa]{color:var(--text-muted);font-size:.75rem;font-weight:600}.suggestion-btn[data-v-7899c8fa]{background-color:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-full);color:var(--text-body);padding:.25rem .65rem;font-size:.8125rem;transition:all .15s}.suggestion-btn[data-v-7899c8fa]:hover{background-color:var(--primary-subtle);border-color:var(--primary-border);color:var(--primary)}.topic-input-form[data-v-7899c8fa]{gap:.75rem;display:flex}.topic-input[data-v-7899c8fa]{border-radius:var(--radius-md);border:1px solid var(--border);flex:1;padding:.75rem 1rem;font-size:.95rem;transition:all .15s}.topic-input[data-v-7899c8fa]:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-subtle);outline:none}.difficulty-grid[data-v-7899c8fa]{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.difficulty-card[data-v-7899c8fa]{border-radius:var(--radius-md);border:1px solid var(--border);background-color:var(--bg-subtle);text-align:left;flex-direction:column;gap:.5rem;padding:1.25rem;transition:all .15s;display:flex}.difficulty-card[data-v-7899c8fa]:hover{border-color:var(--primary);background-color:var(--bg-card);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.level-header[data-v-7899c8fa]{justify-content:space-between;align-items:center;display:flex}.level-name[data-v-7899c8fa]{color:var(--text-main);font-size:1rem;font-weight:700}.level-arrow[data-v-7899c8fa]{color:var(--primary);font-weight:700}.level-desc[data-v-7899c8fa]{color:var(--text-muted);font-size:.8125rem;line-height:1.4}.control-label[data-v-7899c8fa]{color:var(--text-muted);font-size:.8125rem;font-weight:600}.duration-options[data-v-7899c8fa]{grid-template-columns:repeat(4,1fr);gap:.75rem;display:grid}.duration-btn[data-v-7899c8fa]{background-color:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;justify-content:center;align-items:center;padding:1rem;transition:all .15s;display:flex}.duration-btn[data-v-7899c8fa]:hover{border-color:var(--primary);background-color:var(--bg-card)}.duration-btn.active[data-v-7899c8fa]{border-color:var(--primary);background-color:var(--primary-subtle)}.duration-num[data-v-7899c8fa]{color:var(--text-main);font-size:1.25rem;font-weight:700}.duration-unit[data-v-7899c8fa]{color:var(--text-muted);font-size:.75rem}.custom-duration-form[data-v-7899c8fa]{gap:.75rem;margin-top:.5rem;display:flex}.custom-input[data-v-7899c8fa]{border-radius:var(--radius-md);border:1px solid var(--border);width:200px;padding:.5rem .75rem;font-size:.875rem}.plan-summary-card[data-v-7899c8fa]{background-color:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-md);padding:1.5rem}.summary-header[data-v-7899c8fa]{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.summary-title[data-v-7899c8fa]{color:var(--text-main);font-size:1.15rem;font-weight:700}.summary-tag[data-v-7899c8fa]{color:var(--status-completed-text);background-color:var(--status-completed-bg);border:1px solid var(--status-completed-border);border-radius:var(--radius-full);padding:.2rem .55rem;font-size:.75rem;font-weight:600}.summary-grid[data-v-7899c8fa]{grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1.25rem;display:grid}.summary-item[data-v-7899c8fa]{flex-direction:column;gap:.2rem;display:flex}.item-label[data-v-7899c8fa]{text-transform:uppercase;color:var(--text-muted);letter-spacing:.04em;font-size:.75rem;font-weight:600}.item-value[data-v-7899c8fa]{color:var(--text-main);font-size:1rem;font-weight:700}.item-value.highlight[data-v-7899c8fa]{color:var(--primary)}.syllabus-preview[data-v-7899c8fa]{border-top:1px dashed var(--border);padding-top:1rem}.preview-title[data-v-7899c8fa]{color:var(--text-body);margin-bottom:.5rem;font-size:.8125rem;font-weight:600}.preview-topics[data-v-7899c8fa]{color:var(--text-muted);flex-direction:column;gap:.35rem;font-size:.85rem;list-style:inside;display:flex}.confirmation-actions[data-v-7899c8fa]{justify-content:space-between;align-items:center;gap:1rem;margin-top:.5rem;display:flex}@media (width<=640px){.difficulty-grid[data-v-7899c8fa]{grid-template-columns:1fr}.duration-options[data-v-7899c8fa]{grid-template-columns:repeat(2,1fr)}.summary-grid[data-v-7899c8fa]{grid-template-columns:1fr}.confirmation-actions[data-v-7899c8fa]{flex-direction:column-reverse}.confirmation-actions .btn[data-v-7899c8fa]{width:100%}}.reader-backdrop[data-v-936291be]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background-color:#0f172a8c;padding:1.5rem;display:flex;position:fixed;inset:0}.reader-dialog[data-v-936291be]{background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.reader-header[data-v-936291be]{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.1rem 1.5rem;display:flex}.reader-heading[data-v-936291be]{min-width:0}.reader-title[data-v-936291be]{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;font-size:1.25rem;font-weight:700;overflow:hidden}.reader-subtitle[data-v-936291be]{color:var(--text-muted);margin-top:.15rem;font-size:.8rem}.reader-close-btn[data-v-936291be]{border:1px solid var(--border);border-radius:var(--radius-md);width:34px;height:34px;color:var(--text-muted);cursor:pointer;background-color:#0000;flex-shrink:0;justify-content:center;align-items:center;font-size:.95rem;transition:all .15s;display:flex}.reader-close-btn[data-v-936291be]:hover{background-color:var(--bg-subtle);color:var(--text-main);border-color:var(--border-strong)}.reader-close-btn[data-v-936291be]:focus-visible,.reader-nav button[data-v-936291be]:focus-visible,.send-btn[data-v-936291be]:focus-visible,.question-input[data-v-936291be]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.reader-content[data-v-936291be]{flex:1;padding:1.5rem 2rem;overflow-y:auto}.reading-pane[data-v-936291be]{max-width:760px;margin:0 auto}.chat-pane[data-v-936291be]{flex-direction:column;gap:.9rem;max-width:760px;margin:0 auto;display:flex}.chat-row[data-v-936291be]{display:flex}.chat-row-user[data-v-936291be]{justify-content:flex-end}.chat-row-assistant[data-v-936291be]{justify-content:flex-start}.chat-bubble[data-v-936291be]{border-radius:var(--radius-md);overflow-wrap:anywhere;max-width:82%;padding:.7rem 1rem;font-size:.925rem;line-height:1.6}.bubble-user[data-v-936291be]{background-color:var(--primary);color:#fff;white-space:pre-line;border-bottom-right-radius:4px}.bubble-assistant[data-v-936291be]{background-color:var(--bg-subtle);border:1px solid var(--border);color:var(--text-main);border-bottom-left-radius:4px}.bubble-error[data-v-936291be]{color:#ef4444;background-color:#fef2f2;border-color:#ef4444}.bubble-typing[data-v-936291be]{align-items:center;gap:.3rem;padding:.9rem 1rem;display:inline-flex}.dot[data-v-936291be]{background-color:var(--text-muted);border-radius:50%;width:7px;height:7px;display:inline-block}@media (prefers-reduced-motion:no-preference){.dot[data-v-936291be]{animation:1.2s ease-in-out infinite typing-bounce-936291be}.dot[data-v-936291be]:nth-child(2){animation-delay:.15s}.dot[data-v-936291be]:nth-child(3){animation-delay:.3s}.chat-bubble[data-v-936291be]{animation:.18s ease-out bubble-in-936291be}}@keyframes typing-bounce-936291be{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}@keyframes bubble-in-936291be{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.reader-footer[data-v-936291be]{border-top:1px solid var(--border);background-color:var(--bg-card);flex-shrink:0;padding:.85rem 1.5rem 1rem}.reader-nav[data-v-936291be]{justify-content:space-between;align-items:center;gap:1rem;display:flex}.page-indicator[data-v-936291be]{color:var(--text-muted);font-size:.85rem;font-weight:600}.question-bar[data-v-936291be]{align-items:flex-end;gap:.6rem;margin-top:.85rem;display:flex}.question-input[data-v-936291be]{resize:none;border:1px solid var(--border);border-radius:var(--radius-md);background-color:var(--bg-app);max-height:120px;color:var(--text-main);font-family:var(--font-sans);outline:none;flex:1;padding:.65rem .9rem;font-size:.925rem;line-height:1.5;transition:border-color .15s}.question-input[data-v-936291be]:focus{border-color:var(--primary)}.question-input[data-v-936291be]:disabled{opacity:.6}.send-btn[data-v-936291be]{background-color:var(--primary);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1rem;transition:background-color .15s;display:flex}.send-btn[data-v-936291be]:hover:not(:disabled){background-color:var(--primary-hover,#1d4ed8)}.send-btn[data-v-936291be]:disabled{opacity:.45;cursor:not-allowed}@media (prefers-reduced-motion:reduce){.reader-close-btn[data-v-936291be],.send-btn[data-v-936291be],.chat-bubble[data-v-936291be],.question-input[data-v-936291be],.dot[data-v-936291be]{transition:none;animation:none}}@media (width<=640px){.reader-backdrop[data-v-936291be]{padding:.75rem}.reader-header[data-v-936291be]{padding:.9rem 1rem}.reader-title[data-v-936291be]{white-space:normal;font-size:1.05rem}.reader-content[data-v-936291be]{padding:1rem}.reader-footer[data-v-936291be]{padding:.75rem 1rem}.chat-bubble[data-v-936291be]{max-width:92%}}.course-view[data-v-6cd1508f]{min-height:calc(100vh - 64px);padding-bottom:3rem}.loading-state[data-v-6cd1508f],.not-found-state[data-v-6cd1508f]{text-align:center;padding:4rem 1rem}.spinner[data-v-6cd1508f]{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;margin:0 auto 1rem;animation:.8s linear infinite spin-6cd1508f}@keyframes spin-6cd1508f{to{transform:rotate(360deg)}}.view-header[data-v-6cd1508f]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.back-link[data-v-6cd1508f]{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;transition:color .15s;display:flex}.back-link[data-v-6cd1508f]:hover{color:var(--primary)}.top-actions[data-v-6cd1508f]{align-items:center;gap:.75rem;display:flex}.btn-danger[data-v-6cd1508f]{color:#fff;background-color:#ef4444;border:1px solid #dc2626;font-weight:600}.btn-danger[data-v-6cd1508f]:hover{background-color:#dc2626}.course-banner[data-v-6cd1508f]{background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:2.5rem;padding:2rem}.banner-top[data-v-6cd1508f]{justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:1.5rem;display:flex}.title-with-status[data-v-6cd1508f]{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.course-title[data-v-6cd1508f]{color:var(--text-main);letter-spacing:-.025em;font-size:2rem;font-weight:800;line-height:1.2}.banner-tags[data-v-6cd1508f]{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.meta-level-badge[data-v-6cd1508f]{text-transform:capitalize;color:var(--primary);background-color:var(--primary-light,#eff6ff);border-radius:var(--radius-sm,4px);letter-spacing:.02em;padding:.15rem .6rem;font-size:.8rem;font-weight:700}.meta-duration-badge[data-v-6cd1508f]{color:var(--text-main);font-size:.85rem;font-weight:600}.meta-dot[data-v-6cd1508f]{opacity:.5}.meta-percentage[data-v-6cd1508f]{color:var(--text-main);font-weight:600}.banner-progress[data-v-6cd1508f]{background-color:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem 1.25rem}.progress-info[data-v-6cd1508f]{justify-content:space-between;margin-bottom:.5rem;display:flex}.progress-title[data-v-6cd1508f]{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.75rem;font-weight:600}.progress-val[data-v-6cd1508f]{color:var(--text-main);font-size:.85rem;font-weight:700}.curriculum-section[data-v-6cd1508f]{flex-direction:column;gap:1rem;display:flex}.curriculum-header[data-v-6cd1508f]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.curriculum-title[data-v-6cd1508f]{color:var(--text-main);font-size:1.4rem;font-weight:700}.curriculum-subtitle[data-v-6cd1508f]{color:var(--text-muted);margin-top:.2rem;font-size:.85rem}.topics-list[data-v-6cd1508f]{flex-direction:column;gap:.65rem;display:flex}.topic-card[data-v-6cd1508f]{background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;flex-direction:column;gap:.75rem;padding:.9rem 1.2rem;transition:all .15s;display:flex}.topic-card[data-v-6cd1508f]:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.topic-card[data-v-6cd1508f]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.topic-card.topic-busy[data-v-6cd1508f]:not(.topic-resuming){opacity:.55;cursor:not-allowed}.topic-card.topic-busy[data-v-6cd1508f]:not(.topic-resuming):hover{border-color:var(--border);box-shadow:none}.topic-card.topic-resuming[data-v-6cd1508f]{border-color:var(--primary);background-color:var(--primary-subtle);box-shadow:var(--shadow-md)}.topic-main-row[data-v-6cd1508f]{justify-content:space-between;align-items:center;gap:1rem;width:100%;display:flex}.topic-resume-progress[data-v-6cd1508f]{flex-direction:column;gap:.45rem;width:100%;display:flex}.topic-stage-text[data-v-6cd1508f]{color:var(--primary);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:600;overflow:hidden}.topic-progress-track[data-v-6cd1508f]{background-color:#2563eb26;border-radius:999px;width:100%;height:5px;overflow:hidden}.topic-progress-fill[data-v-6cd1508f]{background-color:var(--primary);border-radius:999px;width:35%;height:100%;display:block}@media (prefers-reduced-motion:no-preference){.topic-progress-fill[data-v-6cd1508f]{animation:1.6s ease-in-out infinite topic-progress-sweep-6cd1508f}}@keyframes topic-progress-sweep-6cd1508f{0%{transform:translate(-110%)}to{transform:translate(340%)}}.topic-resume-error[data-v-6cd1508f]{color:#ef4444;font-size:.82rem}.topic-card.status-completed[data-v-6cd1508f]{border-left:4px solid var(--status-completed-text);background-color:#fafdfa}.topic-card.status-in_progress[data-v-6cd1508f]{border-left:4px solid var(--status-progress-text);background-color:var(--primary-subtle)}.topic-card.status-not_started[data-v-6cd1508f]{border-left:4px solid var(--border-strong)}.topic-left[data-v-6cd1508f]{align-items:center;gap:.85rem;min-width:0;display:flex}.status-toggle-btn[data-v-6cd1508f]{border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer;background-color:#0000;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;transition:all .15s;display:flex}.status-toggle-btn[data-v-6cd1508f]:hover{background-color:var(--bg-subtle);border-color:var(--primary)}.topic-icon[data-v-6cd1508f]{font-size:1rem;font-weight:700}.topic-icon.completed[data-v-6cd1508f]{color:var(--status-completed-text)}.topic-icon.in-progress[data-v-6cd1508f]{color:var(--status-progress-text)}.topic-icon.not-started[data-v-6cd1508f]{color:var(--text-muted)}.topic-info[data-v-6cd1508f]{align-items:center;gap:.75rem;min-width:0;display:flex}.topic-day-badge[data-v-6cd1508f]{text-transform:uppercase;letter-spacing:.05em;background-color:var(--bg-subtle,#f1f5f9);color:var(--text-main);border-radius:var(--radius-sm,4px);border:1px solid var(--border);white-space:nowrap;padding:.2rem .55rem;font-size:.75rem;font-weight:700}.topic-seq[data-v-6cd1508f]{color:var(--text-muted);font-size:.9rem;font-weight:700}.topic-name[data-v-6cd1508f]{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:600;overflow:hidden}.start-course-action-wrap[data-v-6cd1508f]{flex-direction:column;align-items:center;gap:.6rem;margin-top:1.5rem;padding:1.5rem 0;display:flex}.resume-btn[data-v-6cd1508f]{justify-content:center;min-width:320px;min-height:52px;position:relative;overflow:hidden}.btn-progress-track[data-v-6cd1508f]{background-color:#ffffff40;height:4px;position:absolute;bottom:0;left:0;right:0}.btn-progress-fill[data-v-6cd1508f]{background-color:#fff;border-radius:999px;width:35%;height:100%;display:block}@media (prefers-reduced-motion:no-preference){.btn-progress-fill[data-v-6cd1508f]{animation:1.6s ease-in-out infinite btn-progress-sweep-6cd1508f}}@keyframes btn-progress-sweep-6cd1508f{0%{transform:translate(-110%)}to{transform:translate(340%)}}.resume-stage-text[data-v-6cd1508f]{white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;overflow:hidden}.resume-error[data-v-6cd1508f]{color:#ef4444;font-size:.85rem}.zero-balance-note[data-v-6cd1508f]{color:#b45309;background-color:var(--status-progress-bg,#fffbeb);border:1px solid var(--status-progress-border,#fde68a);border-radius:var(--radius-md);padding:.5rem 1rem;font-size:.85rem;font-weight:600}.start-course-btn[data-v-6cd1508f]{letter-spacing:-.01em;box-shadow:var(--shadow-md,0 4px 6px -1px #0000001a);align-items:center;gap:.65rem;padding:.9rem 2.25rem;font-size:1.05rem;font-weight:700;transition:all .2s;display:inline-flex}.start-course-btn[data-v-6cd1508f]:hover{box-shadow:var(--shadow-lg,0 10px 15px -3px #0000001a);transform:translateY(-2px)}.play-icon[data-v-6cd1508f]{font-size:.85rem}.topic-right[data-v-6cd1508f]{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.badge-toggle-btn[data-v-6cd1508f]{cursor:pointer;background:0 0;border:none;padding:0}.btn-icon-delete[data-v-6cd1508f]{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:.25rem .4rem;font-size:.85rem;transition:all .15s}.btn-icon-delete[data-v-6cd1508f]:hover{color:#ef4444;background-color:#fee2e2}.empty-topics[data-v-6cd1508f]{text-align:center;background-color:var(--bg-card);border:1px dashed var(--border-strong);border-radius:var(--radius-md);color:var(--text-muted);flex-direction:column;align-items:center;gap:1rem;padding:3rem 1.5rem;display:flex}.modal-backdrop[data-v-6cd1508f]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background-color:#0f172a8c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card[data-v-6cd1508f]{background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:480px;box-shadow:var(--shadow-lg);padding:2rem}.modal-title[data-v-6cd1508f]{color:var(--text-main);margin-bottom:.35rem;font-size:1.4rem;font-weight:700}.modal-subtitle[data-v-6cd1508f]{color:var(--text-muted);margin-bottom:1.5rem;font-size:.9rem}.delete-icon-wrap[data-v-6cd1508f]{margin-bottom:.75rem;font-size:2.5rem}.delete-warning-text[data-v-6cd1508f]{color:var(--text-main);margin-bottom:.5rem;font-size:.975rem;line-height:1.5}.delete-sub-warning[data-v-6cd1508f]{color:#ef4444;margin-bottom:1.5rem;font-size:.875rem;font-weight:600}.form-group[data-v-6cd1508f]{margin-bottom:1.25rem}.form-label[data-v-6cd1508f]{color:var(--text-main);margin-bottom:.4rem;font-size:.85rem;font-weight:600;display:block}.form-input[data-v-6cd1508f]{border:1px solid var(--border);border-radius:var(--radius-md);background-color:var(--bg-app);width:100%;color:var(--text-main);outline:none;padding:.75rem .9rem;font-size:.95rem;transition:border-color .15s}.form-input[data-v-6cd1508f]:focus{border-color:var(--primary)}.modal-error[data-v-6cd1508f]{color:#ef4444;margin-bottom:1rem;font-size:.85rem}.modal-actions[data-v-6cd1508f]{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.delete-actions[data-v-6cd1508f]{justify-content:flex-end}@media (width<=640px){.view-header[data-v-6cd1508f]{flex-direction:column;align-items:stretch}.top-actions[data-v-6cd1508f]{justify-content:flex-end}}.session-sidebar[data-v-8bf3c957]{background-color:var(--bg-card);border-right:1px solid var(--border);flex-direction:column;width:340px;height:calc(100vh - 64px);display:flex;position:sticky;top:64px}.sidebar-top[data-v-8bf3c957]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.nav-back-btn[data-v-8bf3c957]{color:var(--text-muted);align-items:center;gap:.45rem;font-size:.8125rem;font-weight:500;transition:color .15s;display:flex}.nav-back-btn[data-v-8bf3c957]:hover{color:var(--primary)}.day-overview[data-v-8bf3c957]{border-bottom:1px solid var(--border);flex-direction:column;gap:.5rem;padding:1.25rem;display:flex}.day-pill[data-v-8bf3c957]{text-transform:uppercase;color:var(--primary);letter-spacing:.05em;font-size:.75rem;font-weight:700}.day-title[data-v-8bf3c957]{color:var(--text-main);font-size:1.125rem;font-weight:700;line-height:1.3}.progress-block[data-v-8bf3c957]{flex-direction:column;gap:.45rem;margin-top:.5rem;display:flex}.progress-labels[data-v-8bf3c957]{justify-content:space-between;align-items:center;display:flex}.progress-stat[data-v-8bf3c957]{color:var(--text-body);font-size:.8125rem;font-weight:600}.topics-section[data-v-8bf3c957]{flex-direction:column;flex:1;gap:.75rem;padding:1.25rem;display:flex;overflow-y:auto}.section-title[data-v-8bf3c957]{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.75rem;font-weight:700}.topics-list[data-v-8bf3c957]{flex-direction:column;gap:.45rem;display:flex}.topic-row[data-v-8bf3c957]{border-radius:var(--radius-md);text-align:left;border:1px solid var(--border);background-color:var(--bg-subtle);align-items:center;gap:.65rem;padding:.65rem .85rem;transition:all .15s;display:flex}.topic-row[data-v-8bf3c957]:hover{background-color:var(--bg-hover);border-color:var(--border-strong)}.topic-row.status-completed[data-v-8bf3c957]{background-color:var(--bg-card);opacity:.85}.topic-row.status-in-progress[data-v-8bf3c957],.topic-row.active[data-v-8bf3c957]{background-color:var(--primary-subtle);border-color:var(--primary-border)}.status-symbol[data-v-8bf3c957]{text-align:center;flex-shrink:0;width:18px;font-size:.9em;font-weight:700}.status-completed .status-symbol[data-v-8bf3c957]{color:var(--status-completed-text)}.status-in-progress .status-symbol[data-v-8bf3c957]{color:var(--status-progress-text)}.status-pending .status-symbol[data-v-8bf3c957]{color:var(--status-pending-text)}.topic-name[data-v-8bf3c957]{color:var(--text-main);font-size:.85rem;font-weight:500;line-height:1.35}.sidebar-bottom[data-v-8bf3c957]{border-top:1px solid var(--border);background-color:#fafbfc;padding:1.25rem}.complete-btn[data-v-8bf3c957]{width:100%}@media (width<=860px){.session-sidebar[data-v-8bf3c957]{border-right:none;border-bottom:1px solid var(--border);width:100%;height:auto;position:static}}.message-row[data-v-4b263db4]{gap:.85rem;max-width:88%;margin-bottom:1.25rem;display:flex}.sender-tutor[data-v-4b263db4]{align-self:flex-start;margin-right:auto}.sender-user[data-v-4b263db4]{flex-direction:row-reverse;align-self:flex-end;margin-left:auto}.message-avatar[data-v-4b263db4]{flex-shrink:0;margin-top:.25rem}.avatar-tutor[data-v-4b263db4]{border-radius:var(--radius-md);width:36px;height:36px;color:var(--primary);border:1px solid var(--primary-border);background:linear-gradient(135deg,#eff6ff 0%,#dbeafe 100%);justify-content:center;align-items:center;display:flex}.avatar-user[data-v-4b263db4]{border-radius:var(--radius-md);background-color:var(--bg-hover);width:36px;height:36px;color:var(--text-main);border:1px solid var(--border);justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex}.message-bubble-wrapper[data-v-4b263db4]{flex-direction:column;min-width:0;display:flex}.sender-user .message-bubble-wrapper[data-v-4b263db4]{align-items:flex-end}.message-meta-header[data-v-4b263db4]{align-items:center;gap:.5rem;margin-bottom:.25rem;padding:0 .25rem;display:flex}.sender-name[data-v-4b263db4]{color:var(--text-muted);font-size:.75rem;font-weight:600}.message-time[data-v-4b263db4]{color:var(--text-light);font-size:.7rem}.message-bubble[data-v-4b263db4]{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);word-break:break-word;padding:.85rem 1.15rem;font-size:.925rem;line-height:1.55}.sender-tutor .message-bubble[data-v-4b263db4]{background-color:var(--bg-card);border:1px solid var(--border);color:var(--text-main);border-top-left-radius:4px}.sender-user .message-bubble[data-v-4b263db4]{background-color:var(--primary);color:#fff;border-top-right-radius:4px}[data-v-4b263db4] .code-block{color:#f8fafc;border-radius:var(--radius-md);font-family:var(--font-mono);background-color:#0f172a;margin:.5rem 0;padding:.75rem 1rem;font-size:.8125rem;line-height:1.45;overflow-x:auto}[data-v-4b263db4] .inline-code{font-family:var(--font-mono);background-color:#0000000f;border-radius:4px;padding:.15rem .35rem;font-size:.85em}.sender-user[data-v-4b263db4] .inline-code{color:#fff;background-color:#fff3}[data-v-4b263db4] strong{font-weight:600}.chat-input-wrapper[data-v-1a20e8fb]{background-color:var(--bg-card);border-top:1px solid var(--border);flex-direction:column;gap:.65rem;padding:.85rem 1.25rem 1.15rem;display:flex}.prompt-pills[data-v-1a20e8fb]{scrollbar-width:thin;align-items:center;gap:.45rem;padding-bottom:.2rem;display:flex;overflow-x:auto}.pill-btn[data-v-1a20e8fb]{color:var(--text-muted);background-color:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-full);white-space:nowrap;padding:.25rem .65rem;font-size:.75rem;transition:all .15s}.pill-btn[data-v-1a20e8fb]:hover:not(:disabled){background-color:var(--primary-subtle);color:var(--primary);border-color:var(--primary-border)}.input-form[data-v-1a20e8fb]{background-color:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-lg);align-items:flex-end;gap:.75rem;padding:.5rem .75rem;transition:border-color .15s;display:flex}.input-form[data-v-1a20e8fb]:focus-within{border-color:var(--primary);background-color:var(--bg-card);box-shadow:0 0 0 3px var(--primary-subtle)}.chat-textarea[data-v-1a20e8fb]{resize:none;color:var(--text-main);background:0 0;border:none;outline:none;flex:1;max-height:120px;padding:.25rem 0;font-size:.925rem;line-height:1.45}.chat-textarea[data-v-1a20e8fb]::placeholder{color:var(--text-light)}.send-btn[data-v-1a20e8fb]{border-radius:var(--radius-md);flex-shrink:0;width:38px;height:38px;margin-bottom:.15rem;padding:0}.session-layout[data-v-f1e6fdb4]{background-color:var(--bg-app);min-height:calc(100vh - 64px);display:flex}.session-main[data-v-f1e6fdb4]{flex-direction:column;flex:1;min-width:0;height:calc(100vh - 64px);display:flex;position:relative}.session-header-bar[data-v-f1e6fdb4]{background-color:var(--bg-card);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;height:60px;padding:0 1.5rem;display:flex}.header-topic-meta[data-v-f1e6fdb4]{align-items:center;gap:.75rem;min-width:0;display:flex}.session-badge[data-v-f1e6fdb4]{text-transform:uppercase;letter-spacing:.05em;color:var(--primary);background-color:var(--primary-subtle);border:1px solid var(--primary-border);border-radius:var(--radius-sm);white-space:nowrap;padding:.15rem .5rem;font-size:.7rem;font-weight:700}.active-topic-name[data-v-f1e6fdb4]{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:700;overflow:hidden}.session-controls-right[data-v-f1e6fdb4]{align-items:center;gap:1rem;display:flex}.session-tutor-status[data-v-f1e6fdb4]{color:var(--text-muted);align-items:center;gap:.45rem;font-size:.8125rem;font-weight:500;display:flex}.online-indicator[data-v-f1e6fdb4]{background-color:#10b981;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 2px #10b98133}.chat-scroll-area[data-v-f1e6fdb4]{background:radial-gradient(circle at 100% 0,#f1f5f9 0%,#f8fafc 100%);flex-direction:column;flex:1;padding:1.5rem;display:flex;overflow-y:auto}.chat-flow-container[data-v-f1e6fdb4]{flex-direction:column;width:100%;max-width:860px;margin:0 auto;display:flex}.typing-indicator-row[data-v-f1e6fdb4]{align-items:center;gap:.65rem;margin-top:.5rem;margin-bottom:1rem;display:flex}.typing-bubble[data-v-f1e6fdb4]{background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-full);align-items:center;gap:4px;padding:.5rem .85rem;display:flex}.dot[data-v-f1e6fdb4]{background-color:var(--text-muted);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite both typingBounce-f1e6fdb4}.dot[data-v-f1e6fdb4]:first-child{animation-delay:-.32s}.dot[data-v-f1e6fdb4]:nth-child(2){animation-delay:-.16s}@keyframes typingBounce-f1e6fdb4{0%,80%,to{opacity:.4;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.typing-label[data-v-f1e6fdb4]{color:var(--text-muted);font-size:.75rem;font-style:italic}.session-fallback[data-v-f1e6fdb4]{text-align:center;padding:4rem 1rem}@media (width<=860px){.session-layout[data-v-f1e6fdb4]{flex-direction:column}.session-main[data-v-f1e6fdb4]{height:70vh}}
