@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";
:root{--color-bg-primary:#faf6f1;--color-bg-secondary:#fff8f0;--color-bg-card:#fff;--color-bg-card-hover:#fff5eb;--color-bg-input:#fefcfa;--color-bg-sidebar:#3d2814;--color-border:#e8ddd0;--color-border-focus:#e87b35;--color-border-subtle:#0000000f;--color-text-primary:#2d1b0e;--color-text-secondary:#6b5744;--color-text-muted:#9a8872;--color-text-inverted:#fff;--color-accent:#e87b35;--color-accent-hover:#d4692a;--color-accent-subtle:#e87b351a;--color-accent-glow:#e87b3533;--color-success:#16a34a;--color-success-bg:#16a34a14;--color-warning:#d97706;--color-warning-bg:#d9770614;--color-danger:#dc2626;--color-danger-bg:#dc262614;--color-info:#2563eb;--color-info-bg:#2563eb14;--color-risk-low:#16a34a;--color-risk-medium:#d97706;--color-risk-high:#ea580c;--color-risk-critical:#dc2626;--color-risk-paused:#7c3aed;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-base:.875rem;--font-size-lg:1rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--shadow-sm:0 1px 3px #8b643214;--shadow-md:0 4px 12px #8b64321a;--shadow-lg:0 8px 32px #8b64321f;--shadow-glow:0 0 20px #e87b351f;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--sidebar-width:190px;--sidebar-compact-width:72px;--header-height:64px}.line-clamp-2{-webkit-line-clamp:2;word-wrap:break-word;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-bg-primary);min-height:100vh;line-height:1.6}a{color:var(--color-accent);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent-hover)}.app-layout{min-height:100vh;display:flex;overflow-x:hidden}.app-main{margin-left:var(--sidebar-width);transition:margin-left var(--transition-base);flex-direction:column;flex:1;min-width:0;display:flex}.app-layout.compact-sidebar .app-main{margin-left:var(--sidebar-compact-width)}.app-layout.no-sidebar .app-main{margin-left:0}.app-content{padding:var(--space-8);flex:1;width:100%;max-width:1400px;margin:0 auto}.app-layout:has(.comunidad-layout-wrapper) .app-content{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}.app-content-full{flex:1;width:100%;max-width:none;margin:0;padding:0}.sidebar{width:var(--sidebar-width);background:var(--color-bg-sidebar);z-index:100;color:#f5ede4;height:100vh;transition:width var(--transition-base);border-right:1px solid #ffffff14;flex-direction:column;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.app-layout.compact-sidebar .sidebar{width:var(--sidebar-compact-width);overflow:visible}.sidebar-logo{padding:var(--space-4);align-items:center;gap:var(--space-3);border-bottom:1px solid #ffffff14;flex-shrink:0;height:80px;display:flex}.app-layout.compact-sidebar .sidebar-logo{padding:var(--space-2);gap:var(--space-1);justify-content:space-between}.app-layout.compact-sidebar .sidebar-logo-text,.app-layout.compact-sidebar .sidebar-logo-sub{display:none}.sidebar-logo-icon{border-radius:var(--radius-md);color:#fff;letter-spacing:-.5px;background:linear-gradient(135deg,#e87b35,#f5a623);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:16px;font-weight:800;display:flex}.sidebar-logo-text{font-size:var(--font-size-lg);letter-spacing:-.01em;font-weight:700}.sidebar-logo-sub{font-size:var(--font-size-xs);color:#fff6;font-weight:400}.sidebar-nav{padding:var(--space-4) var(--space-3);gap:var(--space-1);flex-direction:column;flex:1;display:flex;overflow:hidden auto}.sidebar-section{margin-top:var(--space-6)}.sidebar-section:first-child{margin-top:0}.sidebar-section-title{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-2) var(--space-3);white-space:nowrap;font-weight:600}.app-layout.compact-sidebar .sidebar-section-title{display:none}.sidebar-link{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:#ffffffb3;font-size:var(--font-size-sm);transition:all var(--transition-fast);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;font-weight:500;display:flex;overflow:hidden}.app-layout.compact-sidebar .sidebar-link{padding:var(--space-3);justify-content:center}.app-layout.compact-sidebar .sidebar-link div>div{display:none}.app-layout.compact-sidebar .sidebar-link-icon{margin:0;font-size:20px}.sidebar-link:hover{color:#f5ede4;background:#ffffff14}.sidebar-link.active{color:#f5a623;background:#f5a6231f}.sidebar-link-icon{text-align:center;flex-shrink:0;width:20px;font-size:18px}.sidebar-link-badge{font-size:var(--font-size-xs);background:var(--color-danger);color:#fff;border-radius:var(--radius-full);text-align:center;min-width:20px;margin-left:auto;padding:1px 7px;font-weight:600}@media (min-width:769px) and (max-height:800px){.sidebar-logo{height:60px!important;padding:var(--space-2) var(--space-4)!important}.sidebar-nav{padding:var(--space-2) var(--space-3)!important;gap:2px!important}.sidebar-section{margin-top:var(--space-3)!important}.sidebar-section-title{padding:var(--space-1) var(--space-3)!important;margin-bottom:2px!important}.sidebar-link{padding:6px 12px!important}.sidebar-link-sub{display:none!important}}.page-header{margin-bottom:var(--space-8);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.page-header-left{gap:var(--space-1);flex-direction:column;display:flex}.page-title{font-size:var(--font-size-2xl);letter-spacing:-.02em;font-weight:700}.page-subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted)}.page-header-actions{gap:var(--space-3);align-items:center;display:flex}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-family:var(--font-family);font-size:var(--font-size-sm);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:1px solid #0000;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover);box-shadow:var(--shadow-glow)}.btn-secondary{background:var(--color-bg-card);color:var(--color-text-primary);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-card-hover);border-color:var(--color-text-muted)}.btn-danger{background:var(--color-danger-bg);color:var(--color-danger);border-color:#ef44444d}.btn-danger:hover:not(:disabled){background:#ef444433}.btn-ghost{color:var(--color-text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--color-bg-card);color:var(--color-text-primary)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-base)}.btn-icon{padding:var(--space-2);width:36px;height:36px}.card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-base);overflow:hidden}.card:hover{border-color:var(--color-border-focus);box-shadow:var(--shadow-glow)}.card-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--font-size-base);font-weight:600}.card-body{padding:var(--space-6)}.card-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);background:#e87b350a}.stats-grid{gap:var(--space-4);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.stat-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);gap:var(--space-2);transition:all var(--transition-fast);flex-direction:column;display:flex}.stat-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.stat-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.stat-value{font-size:var(--font-size-3xl);letter-spacing:-.03em;font-weight:800;line-height:1}.stat-change{font-size:var(--font-size-xs);font-weight:500}.form-group{gap:var(--space-2);margin-bottom:var(--space-5);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:600}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-2) var(--space-3);font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-subtle)}.form-input::placeholder{color:var(--color-text-muted)}.form-textarea{resize:vertical;min-height:80px}.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.form-row{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.form-actions{gap:var(--space-3);margin-top:var(--space-6);justify-content:flex-end;display:flex}.form-error{font-size:var(--font-size-xs);color:var(--color-danger)}.data-table-container{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);-webkit-overflow-scrolling:touch;overflow-x:auto}.data-table-toolbar{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.data-table-search{flex:1;min-width:200px;max-width:320px}.data-table{border-collapse:collapse;width:100%}.data-table th{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);white-space:nowrap;background:#e87b350d;font-weight:600}.data-table td{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);border-bottom:1px solid var(--color-border-subtle);vertical-align:middle}.data-table tr:hover td{background:#e87b350a}.data-table tr:last-child td{border-bottom:none}.data-table-empty{padding:var(--space-12) var(--space-6);text-align:center;color:var(--color-text-muted)}.data-table-empty-icon{margin-bottom:var(--space-4);opacity:.3;font-size:48px}.alumnos-filters-container{gap:var(--space-3);flex-wrap:wrap;align-items:center;width:100%;display:flex}.alumnos-filters-container .form-input,.alumnos-filters-container .form-select{flex:200px;min-width:150px}.alumnos-filter-actions{gap:var(--space-2);flex-wrap:wrap;margin-left:auto;display:flex}.badge{align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);border-radius:var(--radius-full);white-space:nowrap;padding:2px 10px;font-weight:600;display:inline-flex}.badge-active{background:var(--color-success-bg);color:var(--color-success)}.badge-paused{color:#7c3aed;background:#7c3aed14}.badge-closed,.badge-cancelled{color:var(--color-text-muted);background:#64748b1f}.badge-completed{background:var(--color-success-bg);color:var(--color-success)}.badge-pending{background:var(--color-warning-bg);color:var(--color-warning)}.badge-in_progress{background:var(--color-info-bg);color:var(--color-info)}.badge-skipped{color:var(--color-text-muted);background:#64748b1f}.risk-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.risk-dot.low{background:var(--color-risk-low)}.risk-dot.medium{background:var(--color-risk-medium)}.risk-dot.high{background:var(--color-risk-high)}.risk-dot.critical{background:var(--color-risk-critical);animation:1.5s ease-in-out infinite pulse-risk}.risk-dot.paused{background:var(--color-risk-paused)}@keyframes pulse-risk{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 6px #ef444400}}.risk-label{align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);text-transform:capitalize;font-weight:600;display:inline-flex}.timeline{padding-left:var(--space-8);position:relative}.timeline:before{content:"";background:var(--color-border);width:2px;position:absolute;top:0;bottom:0;left:11px}.timeline-item{padding-bottom:var(--space-6);position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-dot{left:calc(-1 * var(--space-8) + 5px);background:var(--color-bg-card);border:2px solid var(--color-accent);z-index:1;border-radius:50%;width:14px;height:14px;position:absolute;top:4px}.timeline-dot.success{border-color:var(--color-success)}.timeline-dot.warning{border-color:var(--color-warning)}.timeline-dot.danger{border-color:var(--color-danger)}.timeline-dot.info{border-color:var(--color-info)}.timeline-content{background:var(--color-bg-card);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.timeline-title{font-size:var(--font-size-sm);font-weight:600}.timeline-desc,.timeline-time{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.tabs{gap:var(--space-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-6);display:flex}.tab{padding:var(--space-3) var(--space-5);font-size:var(--font-size-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);font-weight:500;font-family:var(--font-family);background:0 0;border:none;border-bottom:2px solid #0000}.tab:hover{color:var(--color-text-primary)}.tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.tiptap-editor{min-height:200px;font-size:var(--font-size-sm);color:var(--color-text-primary);line-height:1.8;font-family:var(--font-family);outline:none;padding:12px 16px}.tiptap-editor:focus{outline:none}.tiptap-editor p{margin-bottom:.75em}.tiptap-editor h2{color:var(--color-text-primary);margin:1.2em 0 .5em;font-size:1.25rem;font-weight:700}.tiptap-editor h3{color:var(--color-text-primary);margin:1em 0 .4em;font-size:1.05rem;font-weight:600}.tiptap-editor ul,.tiptap-editor ol{margin-bottom:.75em;padding-left:1.5em}.tiptap-editor li{margin-bottom:.25em}.tiptap-editor strong{font-weight:700}.tiptap-editor em{font-style:italic}.tiptap-editor u{text-decoration:underline}.tiptap-editor s{text-decoration:line-through}.tiptap-editor blockquote{border-left:3px solid var(--color-accent);color:var(--color-text-secondary);margin:.75em 0;padding-left:1em;font-style:italic}.tiptap-editor code{background:var(--color-bg-subtle);border-radius:4px;padding:2px 6px;font-family:monospace;font-size:.9em}.tiptap-editor pre{background:var(--color-bg-subtle);border-radius:var(--radius-md);margin:.75em 0;padding:1em;overflow-x:auto}.tiptap-editor pre code{background:0 0;padding:0}.tiptap-editor img{border-radius:var(--radius-md);max-width:100%;margin:.5em 0}.tiptap-editor a{color:var(--color-accent);text-decoration:underline}.tiptap-editor p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--color-text-muted);pointer-events:none;float:left;height:0}.lesson-html-content p{margin-bottom:.8em}.lesson-html-content h2{margin:1.5em 0 .6em;font-size:1.3rem;font-weight:700}.lesson-html-content h3{margin:1.2em 0 .5em;font-size:1.1rem;font-weight:600}.lesson-html-content ul,.lesson-html-content ol{margin-bottom:.8em;padding-left:1.5em}.lesson-html-content li{margin-bottom:.3em}.lesson-html-content blockquote{border-left:3px solid var(--color-accent);color:var(--color-text-secondary);margin:1em 0;padding-left:1em;font-style:italic}.lesson-html-content strong{font-weight:700}.lesson-html-content code{background:var(--color-bg-subtle);border-radius:4px;padding:2px 6px;font-size:.9em}.lesson-html-content img{border-radius:var(--radius-lg);max-width:100%;margin:.5em 0}.lesson-html-content a{color:var(--color-accent);text-decoration:underline}.filter-pills{gap:var(--space-2);flex-wrap:wrap;display:flex}.filter-pill{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);font-family:var(--font-family);font-size:var(--font-size-xs);color:var(--color-text-secondary);background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);font-weight:500;display:inline-flex}.filter-pill:hover{border-color:var(--color-accent);color:var(--color-text-primary)}.filter-pill.active{background:var(--color-accent-subtle);border-color:var(--color-accent);color:var(--color-accent)}.filter-pill-count{background:var(--color-accent);color:#fff;border-radius:var(--radius-full);text-align:center;min-width:18px;padding:0 5px;font-size:10px;font-weight:700}.checklist{gap:var(--space-2);flex-direction:column;display:flex}.checklist-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-bg-input);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);transition:all var(--transition-fast);display:flex}.checklist-item:hover{border-color:var(--color-border)}.checklist-item.completed{opacity:.6}.checklist-item.completed .checklist-item-name{text-decoration:line-through}.checklist-check{border-radius:var(--radius-sm);border:2px solid var(--color-border);cursor:pointer;width:20px;height:20px;transition:all var(--transition-fast);color:#0000;background:0 0;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:flex}.checklist-check:hover{border-color:var(--color-accent)}.checklist-check.checked{background:var(--color-success);border-color:var(--color-success);color:#fff}.checklist-item-name{font-size:var(--font-size-sm);flex:1;font-weight:500}.checklist-item-meta{align-items:center;gap:var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-muted);display:flex}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#2d1b0e66;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:90vw;max-width:560px;max-height:85vh;box-shadow:var(--shadow-lg);animation:.25s slideUp;overflow-y:auto}.modal-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--font-size-lg);font-weight:700}.modal-close{border-radius:var(--radius-md);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:18px;display:flex}.modal-close:hover{background:var(--color-bg-card);color:var(--color-text-primary)}.modal-body{padding:var(--space-6)}.modal-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);justify-content:flex-end;gap:var(--space-3);display:flex}.toast{bottom:var(--space-6);right:var(--space-6);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-lg);z-index:2000;align-items:center;gap:var(--space-3);max-width:400px;animation:.3s slideUp;display:flex;position:fixed}.toast-success{border-left:3px solid var(--color-success)}.toast-error{border-left:3px solid var(--color-danger)}.toast-warning{border-left:3px solid var(--color-warning)}.login-container{background:var(--color-bg-primary);background-image:radial-gradient(at 20%,#e87b3514 0%,#0000 60%),radial-gradient(at 80% 20%,#f5a6230f 0%,#0000 50%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:420px;padding:var(--space-10);box-shadow:var(--shadow-lg)}.login-logo{text-align:center;margin-bottom:var(--space-8)}.login-logo-icon{border-radius:var(--radius-lg);color:#fff;width:56px;height:56px;margin-bottom:var(--space-4);background:linear-gradient(135deg,#e87b35,#f5a623);justify-content:center;align-items:center;font-size:24px;font-weight:800;display:inline-flex}.login-title{font-size:var(--font-size-xl);margin-bottom:var(--space-1);font-weight:700}.login-subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted)}.detail-grid{gap:var(--space-6);grid-template-columns:1fr 380px;align-items:start;display:grid}.detail-main,.detail-sidebar{gap:var(--space-6);flex-direction:column;display:flex}.client-header{align-items:flex-start;gap:var(--space-5);padding:var(--space-6);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex}.client-avatar{border-radius:var(--radius-lg);color:#fff;background:linear-gradient(135deg,#e87b35,#f5a623);flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;font-size:22px;font-weight:700;display:flex}.client-info{flex:1}.client-name{font-size:var(--font-size-xl);font-weight:700}.client-meta{gap:var(--space-4);margin-top:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.client-meta-item{align-items:center;gap:var(--space-1);display:flex}.client-actions{gap:var(--space-2);flex-wrap:wrap;flex-shrink:0;display:flex}.empty-state{text-align:center;padding:var(--space-12) var(--space-6)}.empty-state-icon{margin-bottom:var(--space-4);opacity:.2;font-size:64px}.empty-state-title{font-size:var(--font-size-lg);margin-bottom:var(--space-2);font-weight:600}.empty-state-desc{font-size:var(--font-size-sm);color:var(--color-text-muted);max-width:360px;margin:0 auto var(--space-6)}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin}.loading-page{justify-content:center;align-items:center;min-height:60vh;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.chat-container{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;height:calc(100vh - 220px);min-height:400px;display:flex;overflow:hidden}.chat-messages{padding:var(--space-4);gap:var(--space-3);-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;display:flex;overflow:hidden auto}@media (max-width:768px){.chat-container{height:calc(100dvh - 245px);min-height:300px}}.chat-bubble{max-width:75%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);animation:.2s fadeIn}.chat-bubble-mine{background:var(--color-accent);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.chat-bubble-other{background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-primary);border-bottom-left-radius:4px;align-self:flex-start}.chat-bubble-body{font-size:var(--font-size-sm);white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;line-height:1.5}.chat-bubble-time{opacity:.7;margin-top:var(--space-1);text-align:right;font-size:10px}.chat-bubble-other .chat-bubble-time{color:var(--color-text-muted);opacity:1}.chat-input-bar{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-bg-secondary);display:flex}.chat-input{flex:1}.kanban-board{gap:var(--space-3);padding-bottom:var(--space-4);min-height:500px;display:flex;overflow-x:auto}.kanban-column{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;flex:1 1 0;min-width:180px;transition:border-color .2s;display:flex;overflow:hidden}.kanban-column-hover{border-color:var(--color-accent);box-shadow:0 0 0 2px #e87b3526}.kanban-column-header{padding:var(--space-3) var(--space-3);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-top:3px solid;justify-content:space-between;align-items:center;font-weight:700;display:flex}.kanban-count{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-full);justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:600;display:flex}.kanban-column-body{padding:var(--space-2);gap:var(--space-2);flex-direction:column;flex:1;min-height:60px;display:flex;overflow-y:auto}.kanban-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);cursor:grab;word-wrap:break-word;min-width:0;transition:all .15s;animation:.2s fadeIn;overflow:hidden}.kanban-card:active{cursor:grabbing;box-shadow:var(--shadow-md);transform:scale(.98)}.kanban-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-sm)}.kanban-card-header{justify-content:space-between;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.kanban-card-header strong{font-size:var(--font-size-sm);line-height:1.3}.kanban-card-meta{color:var(--color-text-muted);margin-bottom:var(--space-2);flex-direction:column;gap:2px;font-size:11px;display:flex}.kanban-card-footer{color:var(--color-text-muted);padding-top:var(--space-2);border-top:1px solid var(--color-border);justify-content:space-between;font-size:10px;display:flex}.kanban-empty{text-align:center;padding:var(--space-4);font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic}.notes-list{gap:var(--space-3);flex-direction:column;display:flex}.note-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);transition:border-color .15s}.note-card:hover{border-color:var(--color-accent)}.note-card.pinned{border-left:3px solid var(--color-accent)}.note-card-header{margin-bottom:var(--space-2);justify-content:space-between;align-items:flex-start;display:flex}.note-card-title{font-weight:600;font-size:var(--font-size-sm)}.note-card-meta{color:var(--color-text-muted);gap:var(--space-3);margin-bottom:var(--space-2);font-size:11px;display:flex}.note-card-body{font-size:var(--font-size-sm);white-space:pre-wrap;color:var(--color-text-secondary);line-height:1.6}.note-type-badge{border-radius:var(--radius-full);padding:2px 8px;font-size:10px;font-weight:600}.mobile-topbar,.sidebar-overlay,.mobile-bottom-nav{display:none}@media (max-width:1200px){.detail-grid{grid-template-columns:1fr}}@media (max-width:768px){.mobile-topbar{background:var(--color-bg-sidebar);color:#f5ede4;height:56px;padding:0 var(--space-4);z-index:200;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 2px 8px #00000026}.mobile-topbar-title{font-size:var(--font-size-lg);letter-spacing:-.02em;font-weight:700}.mobile-hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:8px;display:flex}.mobile-hamburger span{background:#f5ede4;border-radius:2px;width:22px;height:2px;transition:all .3s;display:block}.sidebar-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:299;background:#00000080;animation:.2s fadeIn;display:block;position:fixed;inset:0}.sidebar{z-index:300;width:280px;padding-top:0;transition:transform .3s cubic-bezier(.4,0,.2,1);transform:translate(-100%)}.sidebar.sidebar-open{transform:translate(0)}.app-main{margin-left:0;padding-top:56px}.app-content{padding:var(--space-4);padding-bottom:calc(var(--space-4) + 72px)}.mobile-bottom-nav{background:var(--color-bg-card);border-top:1px solid var(--color-border);z-index:200;height:64px;padding:0;padding-bottom:env(safe-area-inset-bottom,0px);display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #0000000f}.mobile-bottom-nav-item{cursor:pointer;color:var(--color-text-muted);font-family:var(--font-family);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:6px 0;transition:color .2s;display:flex;position:relative}.mobile-bottom-nav-item.active{color:var(--color-accent)}.mobile-bottom-nav-icon{font-size:22px;line-height:1;position:relative}.mobile-bottom-nav-badge{background:var(--color-danger);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:9px;font-weight:700;display:flex;position:absolute;top:-6px;right:-10px}.mobile-bottom-nav-label{letter-spacing:.01em;font-size:10px;font-weight:600}.form-row{grid-template-columns:1fr}.stats-grid{gap:var(--space-3);grid-template-columns:1fr 1fr}.stat-card{padding:var(--space-3)}.stat-value{font-size:var(--font-size-2xl)}.page-header{align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-5);flex-direction:column}.page-title{font-size:var(--font-size-xl)}.page-header-actions{flex-wrap:wrap;width:100%}.card-header{padding:var(--space-4);gap:var(--space-3);flex-direction:column;align-items:flex-start}.card-body{padding:var(--space-4)}.data-table-container{border-radius:var(--radius-md)}.data-table-toolbar{padding:var(--space-3);flex-direction:column;align-items:stretch}.data-table-search{width:100%;max-width:100%}.data-table{font-size:var(--font-size-xs)}.data-table th,.data-table td{padding:var(--space-2) var(--space-3)}.alumnos-filters-container{align-items:stretch;gap:var(--space-2);flex-direction:column}.alumnos-filters-container .form-input,.alumnos-filters-container .form-select{flex:auto;width:100%}.alumnos-filter-actions{justify-content:space-between;width:100%;margin-left:0}.alumnos-filter-actions .btn{flex:auto;justify-content:center}.client-header{padding:var(--space-4);gap:var(--space-3);flex-direction:column}.client-actions{justify-content:flex-start;width:100%}.chat-container{border-radius:var(--radius-md);height:calc(100vh - 120px - 2rem)}.chat-bubble{max-width:85%}.chat-input-bar{padding:var(--space-2) var(--space-3)}.kanban-board{flex-direction:column;min-height:auto}.kanban-column{flex:none;width:100%}.modal{width:95vw;max-height:90vh;margin:auto}.modal-header,.modal-body{padding:var(--space-4)}.tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:0;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{padding:var(--space-3);white-space:nowrap;font-size:var(--font-size-xs)}.filter-pills{-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:var(--space-2);flex-wrap:nowrap;overflow-x:auto}.filter-pills::-webkit-scrollbar{display:none}.login-card{margin:var(--space-4);padding:var(--space-6)}.toast{bottom:calc(64px + var(--space-4));right:var(--space-4);left:var(--space-4);max-width:none}.checklist-item{padding:var(--space-3)}.checklist-item-meta{gap:var(--space-1);flex-direction:column}.timeline{padding-left:var(--space-6)}.timeline-dot{left:calc(-1 * var(--space-6) + 3px);width:12px;height:12px}.timeline-content{padding:var(--space-2) var(--space-3)}}@media (max-width:400px){.stats-grid{grid-template-columns:1fr}.page-header-actions .btn{justify-content:center;width:100%}.mobile-bottom-nav-label{font-size:9px}.mobile-bottom-nav-icon{font-size:20px}}.lesson-html-content,.article-body,.tiptap-editor{color:var(--color-text-secondary);line-height:1.8}.lesson-html-content img,.article-body img,.tiptap-editor img{border-radius:var(--radius-md);max-width:100%;height:auto;margin:var(--space-4) 0;cursor:zoom-in;transition:transform .2s;box-shadow:0 4px 12px #0000001a}.lesson-html-content img:hover,.article-body img:hover,.tiptap-editor img:hover{transform:scale(1.01)}.lesson-html-content h2,.article-body h2{color:var(--color-text-primary);margin-top:var(--space-8);margin-bottom:var(--space-4);font-weight:700}.lesson-html-content h3,.article-body h3{color:var(--color-text-primary);margin-top:var(--space-6);margin-bottom:var(--space-3);font-weight:600}.lesson-html-content p,.article-body p{margin-bottom:var(--space-4)}.lesson-html-content ul,.article-body ul{margin-bottom:var(--space-4);padding-left:var(--space-6);list-style-type:disc}.lesson-html-content li,.article-body li{margin-bottom:var(--space-2)}.lesson-html-content blockquote,.article-body blockquote{border-left:4px solid var(--color-accent);padding:var(--space-3) var(--space-5);background:var(--color-bg-subtle);margin:var(--space-5) 0;border-radius:0 var(--radius-md) var(--radius-md) 0;font-style:italic}.academy-player-container{gap:var(--space-6);flex:1;width:100%;display:flex}.academy-player-main{gap:var(--space-5);flex-direction:column;flex:1;min-width:0;display:flex}.academy-player-sidebar{flex:0 0 340px;min-width:280px}.lesson-html-content iframe{aspect-ratio:16/9;max-width:100%!important;height:auto!important}@media (max-width:1023px){.academy-player-container{gap:var(--space-6);flex-direction:column}.academy-player-sidebar{flex:1;width:100%}}@media print{@page{size:A4 portrait;margin:0}.mobile-bottom-nav,.mobile-topbar,.portal-sidebar,.sidebar,.portal-header,nav,header,footer,.no-print{visibility:hidden!important;display:none!important}}
