.app-layout[data-v-3c199dad]{min-height:100vh;display:flex;flex-direction:column}.app-header[data-v-3c199dad]{background-color:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--spacing-4) var(--spacing-6)}.app-nav[data-v-3c199dad]{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.nav-brand-section[data-v-3c199dad]{display:flex;align-items:center;gap:var(--spacing-6)}.nav-brand[data-v-3c199dad]{font-size:var(--font-size-xl);font-weight:700;color:var(--color-text);text-decoration:none}.nav-link[data-v-3c199dad]{color:var(--color-text-muted);text-decoration:none;font-size:var(--font-size-sm);font-weight:500;transition:color .15s ease}.nav-link[data-v-3c199dad]:hover,.nav-link.router-link-active[data-v-3c199dad]{color:var(--color-primary)}.user-profile[data-v-3c199dad]{display:flex;align-items:center;gap:var(--spacing-4)}.user-info[data-v-3c199dad]{display:flex;align-items:center;gap:var(--spacing-2)}.user-avatar[data-v-3c199dad]{width:32px;height:32px;border-radius:var(--radius-full);object-fit:cover;border:1px solid var(--color-border)}.user-avatar-fallback[data-v-3c199dad]{width:32px;height:32px;border-radius:var(--radius-full);background-color:var(--color-primary);color:var(--color-primary-text);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--font-size-sm)}.user-name[data-v-3c199dad]{font-weight:500;color:var(--color-text);font-size:var(--font-size-sm)}.btn-signout[data-v-3c199dad]{background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-1) var(--spacing-3);font-size:var(--font-size-sm);color:var(--color-text-muted);cursor:pointer;transition:all .15s ease}.btn-signout[data-v-3c199dad]:hover{color:var(--color-danger);border-color:var(--color-danger)}.app-content[data-v-3c199dad]{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:var(--spacing-6)}.home-view[data-v-35f5615e]{display:flex;flex-direction:column;gap:var(--spacing-6)}.header-section[data-v-35f5615e]{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-4);flex-wrap:wrap}.page-title[data-v-35f5615e]{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text)}.page-subtitle[data-v-35f5615e]{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-top:var(--spacing-1)}.state-container[data-v-35f5615e]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-12);gap:var(--spacing-4);color:var(--color-text-muted)}.error-text[data-v-35f5615e]{color:var(--color-danger);font-weight:500}.empty-state[data-v-35f5615e]{margin:var(--spacing-8) auto;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-4)}.empty-state h2[data-v-35f5615e]{font-size:var(--font-size-xl);color:var(--color-text)}.empty-state p[data-v-35f5615e]{color:var(--color-text-muted)}.courses-grid[data-v-35f5615e]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-6)}.course-card[data-v-35f5615e]{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-6);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;display:flex;flex-direction:column;gap:var(--spacing-4)}.course-card[data-v-35f5615e]:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--color-primary)}.course-card-header[data-v-35f5615e]{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-2)}.course-title[data-v-35f5615e]{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text);line-height:var(--line-height-tight)}.status-badge[data-v-35f5615e]{flex-shrink:0}.course-mission[data-v-35f5615e]{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--line-height-normal);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1}.course-progress-section[data-v-35f5615e]{display:flex;flex-direction:column;gap:var(--spacing-2);margin-top:auto;padding-top:var(--spacing-2);border-top:1px solid var(--color-border)}.progress-info[data-v-35f5615e]{display:flex;justify-content:space-between;font-size:var(--font-size-sm)}.progress-label[data-v-35f5615e]{color:var(--color-text-muted)}.progress-count[data-v-35f5615e]{font-weight:500;color:var(--color-text)}.progress-bar-bg[data-v-35f5615e]{height:6px;background-color:var(--color-bg);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill[data-v-35f5615e]{height:100%;background-color:var(--color-primary);border-radius:var(--radius-full);transition:width .3s ease}p[data-v-7c131806]{margin-bottom:var(--spacing-6)}.error-message[data-v-7c131806]{color:var(--color-danger);margin-bottom:var(--spacing-4);font-size:var(--font-size-sm)}.btn-primary[data-v-7c131806]{background-color:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);padding:var(--spacing-3) var(--spacing-6);font-size:var(--font-size-base);font-weight:600;cursor:pointer;width:100%;transition:background-color .15s ease}.btn-primary[data-v-7c131806]:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-primary[data-v-7c131806]:disabled{opacity:.7;cursor:not-allowed}.panel-action[data-v-8d564d0e]{margin-top:var(--spacing-6)}.create-course-view[data-v-c1463493]{max-width:640px;margin:var(--spacing-4) auto}.form-card[data-v-c1463493]{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-8);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:var(--spacing-6)}.form-header[data-v-c1463493]{display:flex;flex-direction:column;gap:var(--spacing-1)}.form-title[data-v-c1463493]{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text)}.form-subtitle[data-v-c1463493]{color:var(--color-text-muted);font-size:var(--font-size-sm)}.create-form[data-v-c1463493]{display:flex;flex-direction:column;gap:var(--spacing-6)}.form-error[data-v-c1463493]{background-color:#fef2f2;border:1px solid #fecaca;color:var(--color-danger);padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.form-group[data-v-c1463493]{display:flex;flex-direction:column;gap:var(--spacing-2)}.form-label[data-v-c1463493]{font-weight:600;font-size:var(--font-size-sm);color:var(--color-text)}.form-input[data-v-c1463493],.form-textarea[data-v-c1463493]{width:100%;padding:var(--spacing-3);font-family:inherit;font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color .15s ease,box-shadow .15s ease}.form-input[data-v-c1463493]:focus,.form-textarea[data-v-c1463493]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb33}.form-hint[data-v-c1463493]{font-size:.75rem;color:var(--color-text-muted)}.form-actions[data-v-c1463493]{display:flex;justify-content:flex-end;gap:var(--spacing-3);padding-top:var(--spacing-2)}.btn-primary[data-v-c1463493]{padding:var(--spacing-2) var(--spacing-5)}.course-view[data-v-75a9e63f]{display:flex;flex-direction:column;gap:var(--spacing-6)}.state-container[data-v-75a9e63f]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-12);gap:var(--spacing-4);color:var(--color-text-muted)}.error-text[data-v-75a9e63f]{color:var(--color-danger);font-weight:500}.course-container[data-v-75a9e63f]{display:flex;flex-direction:column;gap:var(--spacing-6)}.top-nav[data-v-75a9e63f]{margin-bottom:var(--spacing-2)}.back-link[data-v-75a9e63f]{color:var(--color-primary);text-decoration:none;font-size:var(--font-size-sm);font-weight:500}.back-link[data-v-75a9e63f]:hover{text-decoration:underline}.course-header[data-v-75a9e63f]{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-4);flex-wrap:wrap}.header-main[data-v-75a9e63f]{display:flex;align-items:center;gap:var(--spacing-3);flex-wrap:wrap}.course-title[data-v-75a9e63f]{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text)}.completed-badge[data-v-75a9e63f]{font-size:var(--font-size-sm);padding:2px var(--spacing-2);border-radius:var(--radius-full);font-weight:500;background-color:#dcfce7;color:#166534;border:1px solid #bbf7d0}.section-card[data-v-75a9e63f]{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-6);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--spacing-4)}.section-header[data-v-75a9e63f]{display:flex;justify-content:space-between;align-items:center}.section-header h2[data-v-75a9e63f]{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text)}.lesson-count-badge[data-v-75a9e63f]{font-size:var(--font-size-sm);color:var(--color-text-muted)}.section-content[data-v-75a9e63f]{color:var(--color-text);line-height:var(--line-height-normal);white-space:pre-wrap}.notes-text[data-v-75a9e63f]{color:var(--color-text)}.empty-notes[data-v-75a9e63f]{color:var(--color-text-muted);font-style:italic}.btn-inline[data-v-75a9e63f]{background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-1) var(--spacing-3);font-size:var(--font-size-sm);font-weight:500;color:var(--color-primary);cursor:pointer;transition:all .15s ease}.btn-inline[data-v-75a9e63f]:hover{background-color:var(--color-bg);border-color:var(--color-primary)}.inline-editor[data-v-75a9e63f]{display:flex;flex-direction:column;gap:var(--spacing-3)}.editor-error[data-v-75a9e63f]{color:var(--color-danger);font-size:var(--font-size-sm)}.editor-textarea[data-v-75a9e63f]{width:100%;padding:var(--spacing-3);font-family:inherit;font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color .15s ease}.editor-textarea[data-v-75a9e63f]:focus{outline:none;border-color:var(--color-primary)}.editor-actions[data-v-75a9e63f]{display:flex;justify-content:flex-end;gap:var(--spacing-2)}.empty-syllabus[data-v-75a9e63f]{padding:var(--spacing-6);text-align:center;color:var(--color-text-muted);background-color:var(--color-bg);border-radius:var(--radius-md);border:1px dashed var(--color-border)}.syllabus-list[data-v-75a9e63f]{display:flex;flex-direction:column;gap:var(--spacing-3)}.lesson-card[data-v-75a9e63f]{display:flex;align-items:flex-start;gap:var(--spacing-4);padding:var(--spacing-4);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md)}.lesson-position[data-v-75a9e63f]{font-weight:700;color:var(--color-text-muted);font-size:var(--font-size-sm);min-width:28px}.lesson-main[data-v-75a9e63f]{display:flex;flex-direction:column;gap:var(--spacing-1);flex:1}.lesson-title-row[data-v-75a9e63f]{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-2);flex-wrap:wrap}.lesson-title-link[data-v-75a9e63f]{font-weight:600;color:var(--color-text);text-decoration:none}.lesson-title-link[data-v-75a9e63f]:hover{color:var(--color-primary);text-decoration:underline}.lesson-badges[data-v-75a9e63f]{display:flex;align-items:center;gap:var(--spacing-2)}.lesson-summary[data-v-75a9e63f]{font-size:var(--font-size-sm);color:var(--color-text-muted)}.status-badge.ready[data-v-75a9e63f]{background-color:#dcfce7;color:#166534;border-color:#bbf7d0}.status-badge.generating[data-v-75a9e63f]{background-color:#fef3c7;color:#92400e;border-color:#fde68a}.status-badge.failed[data-v-75a9e63f]{background-color:#fee2e2;color:#991b1b;border-color:#fca5a5}.btn-danger[data-v-75a9e63f]{background-color:var(--color-surface);color:var(--color-danger);border:1px solid var(--color-danger);border-radius:var(--radius-md);padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .15s ease}.btn-danger[data-v-75a9e63f]:hover:not(:disabled){background-color:#fef2f2}.btn-danger[data-v-75a9e63f]:disabled{opacity:.6;cursor:not-allowed}.lesson-view[data-v-7f917698]{display:flex;flex-direction:column;gap:var(--spacing-6)}.state-container[data-v-7f917698]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-12);gap:var(--spacing-4);color:var(--color-text-muted)}.error-text[data-v-7f917698]{color:var(--color-danger);font-weight:500}.lesson-container[data-v-7f917698]{display:flex;flex-direction:column;gap:var(--spacing-6)}.top-nav-bar[data-v-7f917698]{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-4);flex-wrap:wrap}.back-link[data-v-7f917698]{color:var(--color-primary);text-decoration:none;font-size:var(--font-size-sm);font-weight:500}.back-link[data-v-7f917698]:hover{text-decoration:underline}.nav-controls[data-v-7f917698]{display:flex;align-items:center;gap:var(--spacing-2)}.nav-btn[data-v-7f917698]{font-size:var(--font-size-sm);padding:var(--spacing-1) var(--spacing-3)}.lesson-header[data-v-7f917698]{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-6);box-shadow:var(--shadow-sm)}.header-main[data-v-7f917698]{display:flex;flex-direction:column;gap:var(--spacing-2)}.lesson-meta[data-v-7f917698]{display:flex;align-items:center;gap:var(--spacing-3);font-size:var(--font-size-sm)}.position-badge[data-v-7f917698]{color:var(--color-text-muted);font-weight:500}.status-badge.ready[data-v-7f917698]{background-color:#dcfce7;color:#166534;border-color:#bbf7d0}.status-badge.generating[data-v-7f917698]{background-color:#fef3c7;color:#92400e;border-color:#fde68a}.status-badge.failed[data-v-7f917698]{background-color:#fee2e2;color:#991b1b;border-color:#fca5a5}.btn-inline[data-v-7f917698]{background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-1) var(--spacing-3);font-size:var(--font-size-sm);font-weight:500;color:var(--color-primary);cursor:pointer;transition:all .15s ease}.btn-inline[data-v-7f917698]:hover:not(:disabled){background-color:var(--color-bg);border-color:var(--color-primary)}.btn-inline[data-v-7f917698]:disabled{opacity:.6;cursor:not-allowed}.action-error[data-v-7f917698]{color:var(--color-danger);font-size:var(--font-size-sm)}.lesson-title[data-v-7f917698]{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text)}.lesson-summary[data-v-7f917698]{color:var(--color-text-muted);font-size:var(--font-size-base);line-height:var(--line-height-normal)}.content-section[data-v-7f917698]{width:100%}.lesson-iframe[data-v-7f917698]{width:100%;height:70vh;border:1px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface);box-shadow:var(--shadow-sm);overflow:auto}.status-card[data-v-7f917698]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-12);gap:var(--spacing-3);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);text-align:center}.status-card-title[data-v-7f917698]{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text)}.status-card-message[data-v-7f917698]{color:var(--color-text-muted);font-size:var(--font-size-base)}.bottom-nav-bar[data-v-7f917698]{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-4);padding-top:var(--spacing-2)}.spend-view[data-v-eb937159]{display:flex;flex-direction:column;gap:var(--spacing-6)}.top-nav[data-v-eb937159]{margin-bottom:var(--spacing-2)}.back-link[data-v-eb937159]{color:var(--color-primary);text-decoration:none;font-size:var(--font-size-sm);font-weight:500}.back-link[data-v-eb937159]:hover{text-decoration:underline}.spend-header[data-v-eb937159]{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--spacing-4);flex-wrap:wrap}.page-title[data-v-eb937159]{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text)}.page-subtitle[data-v-eb937159]{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-top:var(--spacing-1)}.filter-group[data-v-eb937159]{display:flex;align-items:center;gap:var(--spacing-2)}.filter-label[data-v-eb937159]{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-muted)}.course-select[data-v-eb937159]{padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text);font-size:var(--font-size-sm)}.course-select[data-v-eb937159]:focus{outline:none;border-color:var(--color-primary)}.state-container[data-v-eb937159]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-12);gap:var(--spacing-4);color:var(--color-text-muted)}.error-text[data-v-eb937159]{color:var(--color-danger);font-weight:500}.spend-content[data-v-eb937159]{display:flex;flex-direction:column;gap:var(--spacing-6)}.section-card[data-v-eb937159]{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-6);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--spacing-4)}.section-header[data-v-eb937159]{display:flex;justify-content:space-between;align-items:center}.section-header h2[data-v-eb937159]{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text)}.badge-count[data-v-eb937159]{font-size:var(--font-size-sm);color:var(--color-text-muted)}.empty-card[data-v-eb937159]{padding:var(--spacing-6);text-align:center;color:var(--color-text-muted);background-color:var(--color-bg);border-radius:var(--radius-md);border:1px dashed var(--color-border)}.table-wrapper[data-v-eb937159]{overflow-x:auto}.spend-table[data-v-eb937159]{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.spend-table th[data-v-eb937159],.spend-table td[data-v-eb937159]{padding:var(--spacing-3) var(--spacing-4);text-align:left;border-bottom:1px solid var(--color-border)}.spend-table th[data-v-eb937159]{font-weight:600;color:var(--color-text-muted);background-color:var(--color-bg)}.text-right[data-v-eb937159]{text-align:right!important}.font-medium[data-v-eb937159]{font-weight:500}.status-badge.ok[data-v-eb937159]{background-color:#dcfce7;color:#166534;border-color:#bbf7d0}.status-badge.running[data-v-eb937159]{background-color:#fef3c7;color:#92400e;border-color:#fde68a}.status-badge.queued[data-v-eb937159]{background-color:#f1f5f9;color:#475569;border-color:#cbd5e1}.status-badge.failed[data-v-eb937159]{background-color:#fee2e2;color:#991b1b;border-color:#fca5a5}.error-row td[data-v-eb937159]{background-color:#fef2f2;border-bottom:1px solid var(--color-border)}.error-cell[data-v-eb937159]{color:var(--color-danger);font-size:var(--font-size-xs, .8125rem);padding:var(--spacing-2) var(--spacing-4)}.error-label[data-v-eb937159]{font-weight:600}:root{--color-bg: #f8fafc;--color-surface: #ffffff;--color-text: #0f172a;--color-text-muted: #64748b;--color-border: #e2e8f0;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-text: #ffffff;--color-danger: #dc2626;--font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--line-height-normal: 1.5;--line-height-tight: 1.25;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-12: 3rem;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-bg);min-height:100vh}.panel{display:flex;justify-content:center;align-items:center;min-height:60vh}.panel-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-8);box-shadow:var(--shadow-md);text-align:center;max-width:400px;width:100%}.panel-card h1{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-2);color:var(--color-text)}.panel-card p{color:var(--color-text-muted)}.btn-primary{background-color:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:background-color .15s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background-color:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease}.btn-secondary:hover:not(:disabled){background-color:var(--color-bg)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.status-badge{font-size:var(--font-size-sm);padding:2px var(--spacing-2);border-radius:var(--radius-full);text-transform:capitalize;font-weight:500;background-color:var(--color-bg);color:var(--color-text-muted);border:1px solid var(--color-border)}
