:root[data-theme=light]{--text:#1a1a1a;--background:#fffef5;--surface:#fff;--surface-hover:#fcf9e8;--border:#f3ebd0;--primary:#f59e0b;--primary-hover:#d97706;--secondary:#ff6b35;--secondary-hover:#e8551e;--accent:#004e89;--accent-bg:#004e8914;--state-neutral:#64748b;--state-neutral-bg:#64748b1f;--muted-text:#666053;--shadow-color:#004e8914}:root[data-theme=dark]{--text:#fef5f0;--background:#0f1419;--surface:#182026;--surface-hover:#222d36;--border:#2c3844;--primary:#f59e0b;--primary-hover:#fbbf24;--secondary:#ff6b35;--secondary-hover:#ff8552;--accent:#60a5fa;--accent-bg:#60a5fa1f;--state-neutral:#94a3b8;--state-neutral-bg:#94a3b829;--muted-text:#9ab0c4;--shadow-color:#0006}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background-color:var(--background);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif;transition:background-color .25s,color .25s}button{cursor:pointer;font-family:inherit}input{font-family:inherit}.app-surface{background-color:var(--surface);border-color:var(--border);transition:background-color .25s,border-color .25s}.app-surface-hover:hover{background-color:var(--surface-hover)}.btn-primary{background-color:var(--primary);color:#fff;border:none}.btn-primary:hover{background-color:var(--primary-hover)}.btn-secondary{background-color:var(--secondary);color:#fff;border:none}.btn-secondary:hover{background-color:var(--secondary-hover)}.text-accent-color{color:var(--accent)}.bg-accent-light{background-color:var(--accent-bg)}.border-app{border-color:var(--border)}.custom-shadow{box-shadow:0 4px 20px -2px var(--shadow-color)}.hidden{display:none!important}.w-3-5{width:.875rem}.h-3-5{height:.875rem}.w-4{width:1rem}.h-4{height:1rem}.w-5{width:1.25rem}.h-5{height:1.25rem}.w-6{width:1.5rem}.h-6{height:1.5rem}.theme-icon{color:var(--primary)}:root[data-theme=light] .theme-icon{color:#334155}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:9999px}.app-shell{flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}@media (width>=768px){.app-shell{flex-direction:row}}.sidebar{z-index:20;border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;justify-content:space-between;width:100%;height:100%;display:flex}@media (width>=768px){.sidebar{width:18rem}}.sidebar-top{flex-direction:column;gap:1.5rem;padding:1.25rem;display:flex}.entity-block{border-bottom:1px solid var(--border);flex-direction:column;gap:.5rem;padding-bottom:1rem;display:flex}.entity-row{align-items:center;gap:.75rem;display:flex}.entity-logo{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;border-radius:.75rem;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.25rem;font-weight:800;display:flex;box-shadow:0 1px 3px #0000001a}.entity-text{min-width:0}.entity-title{letter-spacing:-.025em;color:var(--accent);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.875rem;font-weight:700;line-height:1;overflow:hidden}.entity-subtitle{opacity:.7;font-size:11px;font-weight:500}.brand-badge{background-color:var(--accent-bg);color:var(--accent);border:1px solid var(--border);border-radius:9999px;align-items:center;gap:.375rem;width:fit-content;margin-top:.25rem;padding:.25rem .625rem;font-size:11px;font-weight:700;display:inline-flex}.brand-badge svg{color:var(--secondary)}.nav{flex-direction:column;gap:.375rem;display:flex}.nav-label{text-transform:uppercase;letter-spacing:.05em;opacity:.5;margin-bottom:.25rem;padding:0 .75rem;font-size:10px;font-weight:800}.nav-btn{text-align:left;width:100%;color:var(--text);background:0 0;border:none;border-radius:.75rem;align-items:center;gap:.75rem;padding:.625rem .875rem;font-size:.875rem;font-weight:600;transition:all .15s;display:flex}.nav-btn:not(.active){opacity:.8;font-weight:500}.nav-btn:not(.active):hover{background-color:var(--surface-hover)}.nav-btn.active{background-color:var(--primary);color:#fff;box-shadow:0 1px 2px #0000000d}.nav-counter{color:#fff;background:#fff3;border-radius:9999px;margin-left:auto;padding:.125rem .5rem;font-size:.75rem;font-weight:700}.user-chip{border-top:1px solid var(--border);background-color:var(--accent-bg);border-radius:1rem;align-items:center;gap:.75rem;margin:.75rem;padding:.875rem;display:flex}.user-avatar-wrap{flex-shrink:0;position:relative}.user-avatar{background-color:var(--secondary);color:#fff;border-radius:.75rem;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-weight:700;display:flex;box-shadow:0 1px 2px #0000000d}.online-dot{background-color:#10b981;border:2px solid #fff;border-radius:9999px;width:.75rem;height:.75rem;position:absolute;bottom:-.125rem;right:-.125rem}:root[data-theme=dark] .online-dot{border-color:#1c1917}.user-info{flex-direction:column;flex:1;min-width:0;display:flex}.user-name{white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;font-weight:700;overflow:hidden}.user-subtitle{opacity:.7;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.logout-btn{color:var(--muted-text);background:0 0;border:none;border-radius:.5rem;flex-shrink:0;justify-content:center;align-items:center;padding:.375rem;transition:color .15s;display:flex}.logout-btn:hover{color:var(--secondary)}.workspace{flex-direction:column;flex:1;height:100%;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;height:4rem;padding:0 1.5rem;display:flex}.breadcrumb{opacity:.7;align-items:center;gap:.5rem;font-size:.75rem;font-weight:600;display:flex}.breadcrumb-current{color:var(--accent);font-weight:700}.topbar-controls{align-items:center;gap:.75rem;display:flex}.theme-toggle{border:1px solid var(--border);color:var(--text);background:0 0;border-radius:.75rem;align-items:center;gap:.5rem;padding:.375rem .75rem;font-size:.75rem;font-weight:700;transition:all .15s;display:flex;box-shadow:0 1px 2px #0000000d}.theme-toggle:hover{background-color:var(--surface-hover)}.icon-btn{border:1px solid var(--border);color:var(--accent);background:0 0;border-radius:.75rem;justify-content:center;align-items:center;padding:.5rem;transition:all .15s;display:flex}.icon-btn:hover{background-color:var(--surface-hover)}.content{flex:1;padding:1.5rem;overflow-y:auto}@media (width>=768px){.content{padding:2rem}}.view{flex-direction:column;gap:1.5rem;display:flex}.callout{border:1px solid var(--border);border-radius:1rem;flex-direction:column;justify-content:space-between;gap:1.25rem;padding:1.5rem;display:flex}@media (width>=768px){.callout{flex-direction:row;align-items:center}}.callout-title{letter-spacing:-.025em;margin:0;font-size:1.25rem;font-weight:700}.callout-subtitle{opacity:.7;margin:.25rem 0 0;font-size:.75rem}.callout-actions{flex-direction:column;gap:.375rem;display:flex}@media (width>=640px){.callout-actions{align-items:flex-end}}.btn-primary-lg{border-radius:.75rem;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:700;transition:all .2s;display:inline-flex;box-shadow:0 4px 6px -1px #0000001a}.btn-primary-lg:active{transform:scale(.95)}.helper-text{color:var(--secondary);align-items:center;gap:.25rem;font-size:11px;font-weight:600;display:flex}.stats-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=640px){.stats-grid{grid-template-columns:repeat(3,1fr)}}.stat-card{border:1px solid var(--border);border-radius:1rem;align-items:center;gap:1rem;padding:1rem;display:flex}.stat-icon{border-radius:.75rem;flex-shrink:0;justify-content:center;align-items:center;width:3rem;height:3rem;font-weight:700;display:flex}.stat-icon-accent{background-color:var(--accent-bg);color:var(--accent)}.stat-icon-primary{color:var(--primary);background-color:#f59e0b1a}.stat-icon-emerald{color:#10b981;background-color:#10b9811a}.stat-label{opacity:.7;font-size:.75rem;font-weight:500}.stat-value{margin:0;font-size:1.25rem;font-weight:700}.table-card{border:1px solid var(--border);border-radius:1rem;overflow:hidden}.table-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex}.table-title{margin:0;font-size:.875rem;font-weight:700}.search-input{border:1px solid var(--border);color:var(--text);background:0 0;border-radius:.75rem;outline:none;width:13rem;padding:.375rem .875rem;font-size:.75rem}.search-input:focus{border-color:var(--primary)}.table-wrap{overflow-x:auto}.course-table{text-align:left;border-collapse:collapse;width:100%;font-size:.75rem}.course-table thead{text-transform:uppercase;opacity:.6;background:#0000000d;font-size:10px;font-weight:700}:root[data-theme=dark] .course-table thead{background:#ffffff0d}.course-table th,.course-table td{padding:1rem}.course-table tbody tr{transition:background-color .15s}.course-table tbody tr:hover{background-color:var(--surface-hover)}.course-table tbody tr+tr{border-top:1px solid var(--border)}.cell-bold{font-weight:700}.cell-medium{font-weight:500}.cell-muted{opacity:.7}.cell-right{text-align:right}.badge{border-radius:9999px;padding:.25rem .625rem;font-size:10px;font-weight:700;display:inline-block}.badge-emerald{color:#059669;background-color:#10b9811a}:root[data-theme=dark] .badge-emerald{color:#34d399}.badge-primary{color:var(--primary);background-color:#f59e0b1a}.badge-blue{background-color:var(--accent-bg);color:var(--accent)}.badge-neutral{background-color:var(--state-neutral-bg);color:var(--state-neutral)}.pagination{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex}.pagination-summary{opacity:.7;font-size:.75rem;font-weight:600}.pagination-actions{gap:.5rem;display:flex}.page-btn{border:1px solid var(--border);color:var(--text);background:0 0;border-radius:.75rem;padding:.375rem .875rem;font-size:.75rem;font-weight:700;transition:all .15s}.page-btn:hover:not(:disabled){background-color:var(--surface-hover)}.page-btn:disabled{opacity:.4;cursor:not-allowed}.detail-actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.callout-buttons{flex-wrap:wrap;gap:.5rem;display:flex}.cert-actions{flex-direction:column;gap:.75rem;display:flex}.invalidation-form{flex-direction:column;gap:.5rem;display:flex}select.text-input{cursor:pointer}.link-accent{color:var(--accent);font-weight:700;font-size:inherit;background:0 0;border:none;padding:0}.link-accent:hover{text-decoration:underline}.link-secondary{color:var(--secondary);font-weight:700;font-size:inherit;background:0 0;border:none;padding:0}.link-secondary:hover{text-decoration:underline}.empty-state{text-align:center;opacity:.7;padding:2rem;font-size:.875rem}.error-banner{color:#dc2626;background-color:#ef44441a;border-radius:.75rem;padding:.75rem 1rem;font-size:.75rem;font-weight:600}:root[data-theme=dark] .error-banner{color:#f87171}.loading-text{text-align:center;opacity:.6;padding:1.5rem;font-size:.75rem}.view-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.view-title{letter-spacing:-.025em;margin:0;font-size:1.25rem;font-weight:700}.view-subtitle{opacity:.7;margin:.25rem 0 0;font-size:.75rem}.btn-primary-sm{border-radius:.75rem;justify-content:center;align-items:center;gap:.375rem;padding:.5rem 1rem;font-size:.75rem;font-weight:700;transition:all .15s;display:inline-flex;box-shadow:0 1px 2px #0000000d}.btn-primary-sm:active{transform:scale(.95)}.students-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=768px){.students-grid{grid-template-columns:repeat(2,1fr)}}.student-card{border:1px solid var(--border);border-radius:1rem;align-items:center;gap:1rem;padding:1rem;display:flex}.student-avatar{border-radius:.75rem;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-weight:700;display:flex}.student-avatar-accent{background-color:var(--accent-bg);color:var(--accent)}.student-avatar-secondary{color:var(--secondary);background-color:#ff6b351a}.student-info{flex:1;min-width:0}.student-name{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.875rem;font-weight:700;overflow:hidden}.student-meta{opacity:.7;white-space:nowrap;text-overflow:ellipsis;margin:.125rem 0 0;font-size:.75rem;overflow:hidden}.badge-validados{color:#059669;background-color:#10b9811a;border-radius:9999px;flex-shrink:0;padding:.25rem .625rem;font-size:10px;font-weight:700}:root[data-theme=dark] .badge-validados{color:#34d399}.form-card{border:1px solid var(--border);border-radius:1rem;flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.form-grid{grid-template-columns:1fr;gap:.875rem;display:grid}@media (width>=640px){.form-grid{grid-template-columns:repeat(2,1fr)}}.field-label{margin-bottom:.25rem;font-size:.75rem;font-weight:700;display:block}.text-input{border:1px solid var(--border);width:100%;color:var(--text);background:0 0;border-radius:.75rem;outline:none;padding:.5rem .875rem;font-size:.875rem}.text-input:focus{border-color:var(--primary)}.textarea-input{border:1px solid var(--border);width:100%;color:var(--text);resize:vertical;background:0 0;border-radius:.75rem;outline:none;min-height:6rem;padding:.5rem .875rem;font-family:inherit;font-size:.875rem;line-height:1.5}.textarea-input:focus{border-color:var(--primary)}.form-actions{justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.templates-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=640px){.templates-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=768px){.templates-grid{grid-template-columns:repeat(3,1fr)}}.template-card{border:1px solid var(--border);border-radius:1rem;overflow:hidden}.template-preview{border-bottom:1px solid var(--border);background-color:#f59e0b1a;justify-content:center;align-items:center;height:8rem;padding:1rem;display:flex;position:relative}.template-preview-text{color:var(--accent);font-family:Georgia,Times New Roman,serif;font-size:.875rem;font-style:italic;font-weight:700}.template-qr-badge{color:#fff;background-color:#10b981;border-radius:.25rem;padding:.125rem .5rem;font-size:9px;font-weight:800;position:absolute;top:.5rem;right:.5rem}.template-body{padding:1rem}.template-title{margin:0;font-size:.875rem;font-weight:700}.template-desc{opacity:.7;margin:.25rem 0 0;font-size:.75rem}.reference-tag{background-color:var(--accent-bg);color:var(--accent);border:1px solid var(--border);border-radius:9999px;margin-top:.5rem;padding:.25rem .625rem;font-size:10px;font-weight:700;display:inline-block}.template-meta{opacity:.6;margin-top:.5rem;font-size:10px;font-weight:600;display:block}.template-actions{justify-content:flex-end;align-items:center;margin-top:.75rem;display:flex}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;background-color:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card{border:1px solid var(--border);border-radius:1rem;flex-direction:column;gap:1.25rem;width:100%;max-width:32rem;max-height:90vh;padding:1.5rem;display:flex;position:relative;overflow-y:auto}.modal-card-sm{max-width:28rem}.modal-card-md{max-width:32rem}.modal-card-preview{width:min(94vw,72rem);max-width:72rem}.modal-close{opacity:.5;color:var(--text);background:0 0;border:none;justify-content:center;align-items:center;padding:.25rem;display:flex;position:absolute;top:1rem;right:1rem}.modal-close:hover{opacity:1}.modal-title{margin:0;font-size:1.125rem;font-weight:700}.modal-subtitle{opacity:.7;margin:.125rem 0 0;font-size:.75rem}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:.75rem;padding-top:.75rem;display:flex}.course-description{min-height:6rem;max-height:12rem}.course-preview-head{align-items:flex-start;gap:.75rem}.btn-replace-file{color:var(--accent);white-space:nowrap;opacity:1;padding:.375rem .625rem}.course-preview-column .course-preview-scroll{overscroll-behavior:contain;max-height:450px;overflow-y:auto}.course-preview-table{min-width:44rem}.preview-row-invalid{background-color:#dc26260f}.preview-row-ok{color:#059669;white-space:nowrap;font-weight:700}.preview-row-error{color:#dc2626;font-size:11px;font-weight:600}:root[data-theme=dark] .preview-row-ok{color:#34d399}:root[data-theme=dark] .preview-row-error{color:#f87171}.file-summary{border:1px solid var(--border);background-color:var(--accent-bg);border-radius:.75rem;flex-direction:column;gap:.25rem;padding:.75rem .875rem;display:flex}.file-summary-label,.file-summary-meta{color:var(--muted-text);font-size:11px;font-weight:600}.file-summary-name{color:var(--accent);overflow-wrap:anywhere;font-size:.8rem}.course-modal-actions{margin-top:auto}@media (width>=1024px){.course-upload-layout.has-preview{grid-template-columns:minmax(0,1.2fr) minmax(20rem,.8fr);align-items:start}.course-preview-column{max-height:calc(90vh - 12rem)}.course-preview-column .course-preview-scroll{flex:1;min-height:0}}.btn-ghost{opacity:.7;color:var(--text);background:0 0;border:none;border-radius:.75rem;padding:.5rem 1rem;font-size:.75rem;font-weight:700}.btn-ghost:hover{opacity:1}.btn-primary-md{border-radius:.75rem;padding:.5rem 1.25rem;font-size:.75rem;font-weight:700;transition:all .15s;box-shadow:0 4px 6px -1px #0000001a}.btn-primary-md:active{transform:scale(.95)}.btn-danger{color:#fff;background-color:#dc2626;border:none;border-radius:.75rem;padding:.5rem 1.25rem;font-size:.75rem;font-weight:700;transition:all .15s;box-shadow:0 4px 6px -1px #0000001a}.btn-danger:hover{background-color:#b91c1c}.btn-danger:active{transform:scale(.95)}.btn-danger:disabled{opacity:.6}.btn-danger-sm{box-shadow:none;padding:.375rem .75rem;font-size:11px}.dropzone{border:2px dashed var(--border);cursor:pointer;text-align:center;border-radius:1rem;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1.5rem;transition:background-color .15s;display:flex}.dropzone:hover{background-color:var(--surface-hover)}.dropzone-icon{width:3rem;height:3rem;color:var(--secondary);background-color:#ff6b351a;border-radius:9999px;justify-content:center;align-items:center;display:flex}.dropzone-title{font-size:.75rem;font-weight:700}.dropzone-hint{opacity:.6;font-size:11px}.file-chip{color:var(--accent);background-color:var(--accent-bg);border:1px solid var(--border);text-overflow:ellipsis;white-space:nowrap;border-radius:9999px;max-width:100%;padding:.25rem .625rem;font-size:11px;font-weight:600;overflow:hidden}.honest-notice{color:var(--secondary);border:1px solid var(--border);background-color:#ff6b3514;border-radius:.75rem;padding:.625rem .75rem;font-size:11px;font-weight:600;line-height:1.4}.dropzone-active{border-color:var(--primary);background-color:var(--surface-hover)}.bulk-progress{color:var(--accent);background-color:var(--accent-bg);border:1px solid var(--border);border-radius:.75rem;align-items:baseline;gap:.5rem;padding:.625rem .75rem;font-size:.75rem;display:flex}.bulk-progress-title{font-weight:700}.bulk-progress-count{opacity:.8;font-weight:600}.bulk-timeout{color:var(--secondary);border:1px solid var(--border);background-color:#ff6b3514;border-radius:.75rem;padding:.625rem .75rem;font-size:11px;font-weight:600;line-height:1.4}.bulk-report{border:1px solid var(--border);border-radius:.75rem;flex-direction:column;gap:.5rem;padding:.75rem .875rem;font-size:.75rem;line-height:1.4;display:flex}.bulk-report-ok{background-color:#10b98114;border-color:#10b9814d}.bulk-report-warn{background-color:#f59e0b14;border-color:#f59e0b4d}.bulk-report-failed{background-color:#ef444414;border-color:#ef44444d}.bulk-report-headline{font-size:.8125rem;font-weight:800}.bulk-report-ok .bulk-report-headline{color:#059669}.bulk-report-warn .bulk-report-headline{color:#b45309}.bulk-report-failed .bulk-report-headline{color:#dc2626}.bulk-report-note{opacity:.75;margin:0}.bulk-report-errors{flex-direction:column;gap:.25rem;display:flex}.bulk-report-errors-title{opacity:.85;font-weight:700}.bulk-report-error-list{flex-direction:column;gap:.125rem;max-height:10rem;margin:0;padding-left:1.1rem;display:flex;overflow-y:auto}.bulk-report-error-item{word-break:break-word}:root[data-theme=dark] .bulk-report-ok .bulk-report-headline{color:#34d399}:root[data-theme=dark] .bulk-report-warn .bulk-report-headline{color:#fbbf24}:root[data-theme=dark] .bulk-report-failed .bulk-report-headline{color:#f87171}.verify-head{align-items:center;gap:.75rem;display:flex}.verify-icon{color:#10b981;background-color:#10b9811a;border-radius:.75rem;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;display:flex}.verify-title{margin:0;font-size:.875rem;font-weight:700}.verify-context{color:var(--accent);font-size:.75rem;font-weight:600}.cert-preview{border:1px solid var(--border);background-color:var(--accent-bg);text-align:center;border-radius:.75rem;flex-direction:column;align-items:center;gap:.75rem;padding:1rem;display:flex}.qr-box{border:1px solid var(--border);background-color:#fff;border-radius:.5rem;justify-content:center;align-items:center;width:6rem;height:6rem;padding:.5rem;display:flex;box-shadow:0 1px 2px #0000000d}.qr-box svg{color:#0f172a;width:100%;height:100%}.hash-label{opacity:.6;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;display:block}.hash-value{color:var(--secondary);word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;font-weight:700}.badge-authentic{color:#fff;background-color:#10b981;border-radius:9999px;padding:.25rem .75rem;font-size:10px;font-weight:700}.cert-facts{text-align:left;flex-direction:column;gap:.375rem;width:100%;display:flex}.cert-facts-card{border:1px solid var(--border);background-color:var(--surface);border-radius:.75rem;flex:1;padding:1rem}.cert-fact-break{word-break:break-all}.cert-preview-grid{grid-template-columns:minmax(0,.9fr) minmax(20rem,1.1fr);align-items:start;gap:1.25rem;display:grid}.cert-preview-visual{aspect-ratio:210/297;border:1px solid var(--border);background-color:#fff;border-radius:.75rem;max-width:100%;height:min(70vh,46rem);margin:0 auto;overflow:hidden}.cert-preview-visual iframe{background-color:#fff;border:0;width:100%;height:100%;display:block}.cert-preview-fallback{text-align:center;background-color:var(--accent-bg);height:100%;color:var(--text);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:1.5rem;display:flex}.cert-preview-side{flex-direction:column;gap:1rem;min-width:0;display:flex}@media (width<=900px){.cert-preview-grid{grid-template-columns:minmax(0,1fr)}.cert-preview-visual{height:min(52vh,30rem)}}.cert-fact{font-size:.75rem}.cert-fact-label{opacity:.6;font-weight:600}.cert-fact-value{font-weight:700}.btn-close-dark{color:#fff;background-color:#292524;border:none;border-radius:.75rem;width:100%;padding:.5rem;font-size:.75rem;font-weight:700}:root[data-theme=dark] .btn-close-dark{color:#1c1917;background-color:#e7e5e4}.info-note{background-color:var(--accent-bg);color:var(--accent);border-radius:.75rem;padding:.75rem;font-size:11px;font-weight:600;line-height:1.5}.btn-primary-full{border-radius:.75rem;width:100%;padding:.5rem;font-size:.75rem;font-weight:700}.login-screen{background-color:var(--background);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{border:1px solid var(--border);border-radius:1rem;flex-direction:column;gap:1.5rem;width:100%;max-width:24rem;padding:2rem;display:flex}.login-brand{text-align:center;flex-direction:column;align-items:center;gap:.75rem;display:flex}.login-logo{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;border-radius:1rem;justify-content:center;align-items:center;width:3.5rem;height:3.5rem;font-size:1.5rem;font-weight:800;display:flex;box-shadow:0 4px 6px -1px #0000001a}.login-title{letter-spacing:-.025em;margin:0;font-size:1.25rem;font-weight:700}.login-subtitle{opacity:.7;margin:0;font-size:.75rem}.login-error{color:#dc2626;background-color:#ef44441a;border-radius:.75rem;padding:.75rem;font-size:.75rem;font-weight:600}:root[data-theme=dark] .login-error{color:#f87171}.login-form{flex-direction:column;gap:1rem;display:flex}.btn-primary-login{border-radius:.75rem;width:100%;padding:.625rem;font-size:.875rem;font-weight:700;transition:all .15s;box-shadow:0 4px 6px -1px #0000001a}.btn-primary-login:active{transform:scale(.98)}.btn-primary-login:disabled{opacity:.6;cursor:not-allowed}.boot-screen{background-color:var(--background);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.boot-card{border:1px solid var(--border);text-align:center;border-radius:1rem;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:24rem;padding:2rem;display:flex}.boot-title{margin:0;font-size:1rem;font-weight:700}.boot-text{opacity:.7;margin:0;font-size:.75rem}.callout-compact{gap:.75rem;padding:1rem 1.25rem}.callout-compact .callout-title{font-size:1.05rem}.callout-compact .callout-subtitle{font-size:.7rem}.stat-card-compact{gap:.75rem;padding:.625rem .875rem}.stat-card-compact .stat-icon{border-radius:.625rem;width:2.25rem;height:2.25rem}.stat-card-compact .stat-value{font-size:1.05rem}.stat-card-compact .stat-label{font-size:.7rem}.stats-grid-4{grid-template-columns:1fr}@media (width>=640px){.stats-grid-4{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.stats-grid-4{grid-template-columns:repeat(4,1fr)}}.content:has(.view-cursos){overflow:hidden}.view-cursos{gap:1rem;height:100%;min-height:0}.view-cursos>.callout,.view-cursos>.stats-grid{flex-shrink:0}.view-cursos .table-card{flex-direction:column;flex:1;min-height:0;display:flex}.view-cursos .table-wrap{flex:1;min-height:0;overflow-y:auto}.view-cursos .courses-grid{flex:auto;grid-auto-rows:max-content;align-content:start;min-height:0;overflow-y:auto}.table-header-tools{align-items:center;gap:.5rem;display:flex}.view-toggle{border:1px solid var(--border);border-radius:.75rem;flex-shrink:0;align-items:center;display:inline-flex;overflow:hidden}.view-toggle-btn{color:var(--muted-text);background:0 0;border:none;justify-content:center;align-items:center;padding:.375rem .625rem;transition:all .15s;display:flex}.view-toggle-btn:hover{background-color:var(--surface-hover)}.view-toggle-btn.active{background-color:var(--accent-bg);color:var(--accent)}.courses-grid{grid-template-columns:1fr;grid-auto-rows:max-content;gap:1rem;padding:1rem 1.5rem;display:grid}@media (width>=640px){.courses-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.courses-grid{grid-template-columns:repeat(3,1fr)}}.course-grid-card{border:1px solid var(--border);border-radius:1rem;flex-direction:column;min-height:11rem;display:flex;overflow:hidden}.course-mini-cover{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;letter-spacing:-.02em;flex:0 0 5rem;justify-content:center;align-items:center;height:5rem;font-size:1.75rem;font-weight:800;display:flex}.course-mini-cover svg{width:2rem;height:2rem}.course-grid-body{flex-direction:column;flex:1;gap:.5rem;padding:.875rem 1rem;display:flex}.course-grid-name{margin:0;font-size:.875rem;font-weight:700}.course-grid-meta{flex-direction:column;gap:.25rem;font-size:.75rem;display:flex}.course-grid-meta-row{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.course-grid-meta-label{opacity:.7;font-weight:500}.course-grid-meta-value{text-align:right;font-weight:700}.course-grid-actions{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;margin-top:auto;padding-top:.5rem;display:flex}.breadcrumb-link{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.breadcrumb-link:hover{color:var(--accent);text-decoration:underline}.detail-back{color:var(--accent);background:0 0;border:none;align-items:center;gap:.25rem;margin-bottom:.375rem;padding:0;font-size:.75rem;font-weight:700;display:inline-flex}.detail-back:hover{text-decoration:underline}.detail-created{opacity:.6;margin-top:.375rem;font-size:11px;font-weight:600;display:block}.dropzone-prominent{padding:2rem 1.5rem}.preview-block{flex-direction:column;gap:.5rem;display:flex}.preview-head{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.preview-title{font-size:.75rem;font-weight:700}.preview-count{opacity:.6;font-size:11px;font-weight:600}.preview-scroll{border:1px solid var(--border);border-radius:.75rem;max-height:14rem;overflow:auto}.preview-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:.75rem}.preview-table thead{text-transform:uppercase;opacity:.6;background:#0000000d;font-size:10px;font-weight:700}:root[data-theme=dark] .preview-table thead{background:#ffffff0d}.preview-table th{text-align:left;padding:.5rem .75rem}.preview-table td{border-top:1px solid var(--border);padding:.5rem .75rem}.preview-table tbody tr:hover{background-color:var(--surface-hover)}.preview-note{opacity:.6;font-size:11px;font-weight:600}.created-head{align-items:center;gap:.75rem;display:flex}.created-icon{color:#10b981;background-color:#10b9811a;border-radius:.75rem;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;display:flex}.created-text{opacity:.8;margin:0;font-size:.75rem;line-height:1.55}.created-course-name{color:var(--accent);font-weight:700}.btn-with-icon{justify-content:center;align-items:center;gap:.5rem;display:inline-flex}.btn-with-icon svg{flex-shrink:0}.row-actions .icon-btn{width:2.25rem;height:2.25rem;padding:0}.icon-btn-danger{color:#dc2626}:root[data-theme=dark] .icon-btn-danger{color:#f87171}.icon-btn:focus-visible,.icon-btn-danger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.row-actions{justify-content:flex-end;align-items:flex-start;gap:1rem;display:inline-flex}.action-group{flex-direction:column;align-items:center;gap:.25rem;display:flex;position:relative}.action-label{color:var(--muted-text);font-size:.65rem}.action-btn{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:.5rem;flex-direction:column;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.7rem;display:inline-flex}.action-btn:disabled{opacity:.4;cursor:not-allowed}.action-btn-icon{padding:.375rem}.more-menu{position:relative}.more-menu-dropdown{background:var(--surface);border:1px solid var(--border);z-index:10;border-radius:.75rem;flex-direction:column;min-width:140px;padding:.25rem;display:flex;position:absolute;top:calc(100% + .25rem);right:0;box-shadow:0 10px 40px #0f172a1f}.more-menu-item{color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:.5rem;align-items:center;gap:.5rem;padding:.375rem .5rem;font-size:.8rem;display:inline-flex}.more-menu-item:hover:not(:disabled){background-color:var(--surface-hover)}.more-menu-item:disabled{opacity:.4;cursor:not-allowed}.more-menu-item-danger{color:#dc2626}:root[data-theme=dark] .more-menu-item-danger{color:#f87171}.action-btn-generate{color:var(--accent)}.action-btn-emit{color:#059669}:root[data-theme=dark] .action-btn-emit{color:#34d399}.action-btn-view{color:var(--primary)}.action-btn-edit,.action-btn-more{color:var(--muted-text)}.action-btn:hover:not(:disabled){background-color:var(--surface-hover)}.course-details-fields{border:1px solid var(--border);border-radius:.75rem;flex-direction:column;gap:.85rem;margin:0;padding:.85rem 1rem 1rem;display:flex}.course-details-fields legend{padding:0 .4rem}.field-row{grid-template-columns:1fr 1fr;gap:.85rem;display:grid}.field-row>div{flex-direction:column;display:flex}@media (width<=640px){.field-row{grid-template-columns:1fr}}.template-preview-frame{aspect-ratio:297/210;border:1px solid var(--border);background:#f4f4f4;border-radius:.75rem;width:100%;overflow:hidden}.bulk-download-options{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.bulk-download-option{text-align:left;flex-direction:column;align-items:flex-start;gap:.35rem;padding:1rem;display:flex}.bulk-download-option:disabled{opacity:.55}.bulk-download-option-title{color:var(--text);font-weight:700}.bulk-download-option-hint{color:var(--text-muted);font-size:.85rem}.modal-card.modal-card-course{width:min(88vw,76rem);min-width:0;max-width:76rem;overflow:hidden}.new-course-grid{flex:auto;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);gap:1.25rem;min-width:0;min-height:0;display:grid;overflow:hidden}.new-course-grid>*{min-width:0;max-width:100%}.students-left-col,.course-form-compact{overscroll-behavior:contain;flex-direction:column;gap:.875rem;min-width:0;max-width:100%;min-height:0;padding-right:.25rem;display:flex;overflow:hidden auto}@media (width>=1024px){.new-course-grid{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}}.dropzone-compact{gap:.25rem;padding:.875rem 1rem}.file-summary-compact{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.375rem .75rem;display:grid}.file-summary-compact .file-summary-label{grid-row:1/3}.file-summary-compact .btn-replace-file{justify-self:end}.manual-student-form{border:1px solid var(--border);border-radius:.75rem;flex-direction:column;flex:none;gap:.625rem;margin:0;padding:.875rem;display:flex}.manual-student-grid{grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.5rem;display:grid}.btn-add-student{width:100%;color:var(--success,#22c55e);border:1px dashed var(--success,#22c55e);border-radius:.625rem;justify-content:center}.student-table-head{flex:none;justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.student-table-scroll{border:1px solid var(--border);border-radius:.75rem;flex:none;overflow:visible}.student-table-empty{color:var(--muted-text);text-align:center;padding:1rem;font-size:.8rem}.student-table{width:100%;min-width:0}.student-table th{z-index:1;background:var(--surface,#fff);text-align:left;border-bottom:1px solid var(--border);padding:.4rem .5rem;font-size:11px;position:sticky;top:0}.student-table td{vertical-align:middle;padding:.25rem .375rem}.student-row-input{width:100%;min-width:0;padding:.3rem .5rem;font-size:.78rem}.student-row-actions{white-space:nowrap;text-align:right}.row-remove{color:#dc2626;cursor:pointer;background:0 0;border:none;border-radius:.35rem;margin-left:.375rem;padding:.2rem .45rem;font-size:1rem;font-weight:700;line-height:1}.row-remove:hover{background:#dc26261a}:root[data-theme=dark] .row-remove{color:#f87171}:root[data-theme=dark] .row-remove:hover{background:#f8717126}.submit-block{color:#b91c1c;background:#dc26260f;border:1px solid #dc262659;border-radius:.6rem;flex:none;margin:0;padding:.5rem .75rem;font-size:.75rem;font-weight:700}:root[data-theme=dark] .submit-block{color:#fca5a5}.modal-toast{z-index:60;border-radius:.75rem;max-width:min(26rem,90vw);padding:.65rem 1rem;font-size:.8rem;font-weight:600;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000040}.modal-toast-error{color:#fffaf5;background:#dc2626}.modal-toast-success{color:#f0fdf9;background:#059669}.modal-overlay .modal-card.modal-card-course{height:auto;max-height:90vh;overflow:hidden!important}.modal-overlay .modal-card.modal-card-course>*{min-width:0;max-width:100%}.modal-overlay .modal-card.modal-card-course .new-course-grid{flex:1;min-height:0!important;overflow:hidden!important}.modal-overlay .modal-card.modal-card-course .students-left-col,.modal-overlay .modal-card.modal-card-course .course-form-compact{height:100%;max-height:100%;min-height:0!important;overflow:hidden auto!important}.modal-overlay .modal-card.modal-card-course .student-table-scroll{overflow:hidden visible!important}.modal-overlay .modal-card.modal-card-course{flex-direction:column!important;min-width:0!important;height:90vh!important;max-height:90vh!important;display:flex!important;overflow:hidden!important}.modal-overlay .modal-card.modal-card-course>div:first-of-type,.modal-overlay .modal-card.modal-card-course header,.modal-overlay .modal-card.modal-card-course .modal-header{flex:none!important}@media (width>=1024px){.modal-overlay .modal-card.modal-card-course .new-course-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)!important}}.modal-overlay .modal-card.modal-card-course .students-left-col,.modal-overlay .modal-card.modal-card-course .course-form-compact{overscroll-behavior:contain;flex-direction:column!important;gap:.875rem!important;height:100%!important;min-height:0!important;max-height:100%!important;display:flex!important;overflow:hidden auto!important}.modal-overlay .modal-card.modal-card-course .student-table,.modal-overlay .modal-card.modal-card-course table{table-layout:fixed!important;width:100%!important;min-width:0!important}.modal-overlay{align-items:flex-start!important;padding-top:2vh!important}.modal-overlay .modal-card.modal-card-course>button.modal-close{flex:none!important}.modal-overlay .modal-card.modal-card-course>div:nth-child(3){flex:none!important;min-width:0!important}.modal-overlay .modal-card.modal-card-course>input[type=file]{display:none!important}.modal-overlay .modal-card.modal-card-course .new-course-grid{flex:1!important;grid-template-rows:minmax(0,1fr)!important;grid-template-columns:1fr!important;gap:1rem!important;height:1px!important;min-height:0!important;max-height:100%!important;display:grid!important;overflow:hidden!important}@media (width>=1024px){.modal-overlay .modal-card.modal-card-course .new-course-grid{grid-template-columns:1fr 1fr!important}}.modal-overlay .modal-card.modal-card-course .students-left-col,.modal-overlay .modal-card.modal-card-course .course-form-compact{-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;overscroll-behavior:contain!important;flex-direction:column!important;gap:.75rem!important;height:100%!important;min-height:0!important;max-height:100%!important;padding-right:.5rem!important;display:flex!important;overflow:hidden scroll!important}.modal-overlay .modal-card.modal-card-course .students-left-col>*,.modal-overlay .modal-card.modal-card-course .course-form-compact>*{flex-shrink:0;min-width:0!important;max-width:100%!important}.modal-overlay .modal-card.modal-card-course *{box-sizing:border-box;max-width:100%}body:has(.modal-card-course) .modal-card{overflow:hidden!important}.modal-overlay .modal-card.modal-card-course{flex-direction:column!important;height:92vh!important;max-height:92vh!important;display:flex!important;overflow:hidden!important}.modal-overlay .modal-card.modal-card-course>:not(.new-course-grid){flex:none!important}.modal-overlay .modal-card.modal-card-course .new-course-grid{flex:1!important;grid-template-rows:1fr!important;height:auto!important;min-height:0!important;display:grid!important;overflow:hidden!important}@media (width>=1024px){.modal-overlay .modal-card.modal-card-course .new-course-grid{grid-template-columns:50% 50%!important}}.modal-overlay .modal-card.modal-card-course .students-left-col,.modal-overlay .modal-card.modal-card-course .course-form-compact{flex-direction:column!important;gap:.875rem!important;height:100%!important;min-height:0!important;max-height:100%!important;padding-right:.5rem!important;display:flex!important;overflow:hidden auto!important}.modal-overlay .modal-card.modal-card-course .students-left-col>.manual-student-form,.modal-overlay .modal-card.modal-card-course .students-left-col fieldset.manual-student-form{visibility:visible!important;opacity:1!important;flex-shrink:0!important;min-height:auto!important;display:flex!important}.modal-overlay .modal-card.modal-card-course .student-table-scroll{flex-shrink:0!important;overflow-x:hidden!important}.modal-card-course{flex-direction:column!important;height:90vh!important;max-height:90vh!important;display:flex!important;overflow:hidden!important}.modal-card-course>*{flex-shrink:0}.modal-card-course .new-course-grid{flex:auto!important;grid-template-columns:1fr!important;gap:1rem!important;min-height:0!important;display:grid!important;overflow:hidden!important}@media (width>=1024px){.modal-card-course .new-course-grid{grid-template-columns:1fr 1fr!important}}.modal-card-course .students-left-col,.modal-card-course .course-form-compact{flex-direction:column!important;gap:.75rem!important;height:100%!important;max-height:100%!important;padding-right:.5rem!important;display:flex!important;overflow:hidden auto!important}.modal-card-course .manual-student-form{visibility:visible!important;opacity:1!important;flex-direction:column!important;flex:none!important;width:100%!important;display:flex!important}.modal-card-course .student-table-scroll{flex:none!important;overflow-x:auto!important}.modal-card.modal-card-course{flex-direction:column!important;width:min(94vw,90rem)!important;max-width:90rem!important;height:92vh!important;max-height:92vh!important;display:flex!important;overflow:hidden!important}.modal-card.modal-card-course>*{box-sizing:border-box!important;min-width:0!important;max-width:100%!important}.modal-card.modal-card-course .new-course-grid{flex:auto!important;grid-template-rows:minmax(0,1fr)!important;grid-template-columns:1fr!important;gap:1rem!important;height:0!important;min-height:0!important;display:grid!important;overflow:hidden!important}@media (width>=1024px){.modal-card.modal-card-course .new-course-grid{grid-template-columns:1fr 1fr!important}}.modal-card.modal-card-course .students-left-col,.modal-card.modal-card-course .course-form-compact{scrollbar-gutter:stable;overscroll-behavior:contain!important;flex-direction:column!important;align-items:stretch!important;gap:.875rem!important;height:100%!important;min-height:0!important;max-height:100%!important;padding-right:.5rem!important;display:flex!important;overflow:hidden auto!important}.modal-card.modal-card-course .students-left-col>*,.modal-card.modal-card-course .course-form-compact>*{flex:none!important;min-width:0!important;max-width:100%!important}.modal-card.modal-card-course .manual-student-form{visibility:visible!important;opacity:1!important;flex-direction:column!important;flex:none!important;order:2!important;display:flex!important}.modal-card.modal-card-course .dropzone-compact{order:1!important}.modal-card.modal-card-course .student-table-head{flex:none!important;order:3!important}.modal-card.modal-card-course .student-table-scroll{flex:none!important;order:4!important;overflow:auto visible!important}.modal-card.modal-card-course .modal-footer{flex:none!important}.modal-overlay .modal-card.modal-card-course{flex-direction:column!important;width:min(96vw,92rem)!important;min-width:0!important;max-width:92rem!important;height:92vh!important;max-height:92vh!important;display:flex!important;overflow:hidden!important}.modal-overlay .modal-card.modal-card-course>*{box-sizing:border-box!important;min-width:0!important;max-width:100%!important}.modal-overlay .modal-card.modal-card-course .new-course-grid{flex:1!important;grid-template-rows:minmax(0,1fr)!important;grid-template-columns:minmax(0,1fr)!important;gap:1rem!important;height:0!important;min-height:0!important;display:grid!important;overflow:hidden!important}@media (width>=1024px){.modal-overlay .modal-card.modal-card-course .new-course-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}}.modal-overlay .modal-card.modal-card-course .new-course-grid>*{min-width:0!important;max-width:100%!important;min-height:0!important}.modal-overlay .modal-card.modal-card-course .students-left-col,.modal-overlay .modal-card.modal-card-course .course-form-compact{overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;scrollbar-gutter:stable!important;flex-direction:column!important;gap:.875rem!important;height:100%!important;min-height:0!important;max-height:100%!important;padding-right:.5rem!important;display:flex!important;overflow:hidden auto!important}.modal-overlay .modal-card.modal-card-course .students-left-col>*,.modal-overlay .modal-card.modal-card-course .course-form-compact>*{flex:none!important;min-width:0!important;max-width:100%!important}.modal-overlay .modal-card.modal-card-course .manual-student-form{visibility:visible!important;opacity:1!important;flex-direction:column!important;order:2!important;width:100%!important;display:flex!important}.modal-overlay .modal-card.modal-card-course .dropzone-compact{order:1!important}.modal-overlay .modal-card.modal-card-course .student-table-head{order:3!important}.modal-overlay .modal-card.modal-card-course .student-table-scroll{flex:none!important;order:4!important;overflow:hidden visible!important}.modal-overlay .modal-card.modal-card-course .student-table{table-layout:fixed!important;width:100%!important;min-width:0!important}.modal-overlay .modal-card.modal-card-course .student-table td,.modal-overlay .modal-card.modal-card-course .student-table th{word-break:break-word!important;overflow-wrap:break-word!important}.modal-overlay .modal-card.modal-card-course input,.modal-overlay .modal-card.modal-card-course select,.modal-overlay .modal-card.modal-card-course textarea{min-width:0!important;max-width:100%!important}.modal-overlay .modal-card.modal-card-course .modal-footer{flex:none!important}.modal-overlay:has(.modal-card-course) .modal-card{flex-direction:column!important;display:flex!important;overflow:hidden!important}.modal-overlay .modal-card-course{height:94vh!important;max-height:94vh!important}.modal-overlay .modal-card-course>.new-course-grid{flex:1 1 0!important;height:0!important;min-height:0!important;overflow:hidden!important}.modal-overlay .modal-card-course .students-left-col,.modal-overlay .modal-card-course .course-form-compact{-webkit-overflow-scrolling:touch!important;height:100%!important;max-height:100%!important;overflow:hidden scroll!important}.modal-overlay .modal-card-course .manual-student-form{visibility:visible!important;opacity:1!important;flex-direction:column!important;flex-grow:0!important;flex-shrink:0!important;order:1!important;height:auto!important;min-height:auto!important;max-height:none!important;margin-top:.5rem!important;margin-bottom:.5rem!important;display:flex!important}.modal-overlay .modal-card-course .dropzone-compact{order:0!important}.modal-overlay .modal-card-course .student-table-head{order:2!important}.modal-overlay .modal-card-course .student-table-scroll{order:3!important}.modal-overlay:has(.modal-card-course) .modal-card{flex-direction:column!important;height:94vh!important;max-height:94vh!important;display:flex!important;overflow:hidden!important}.modal-overlay .modal-card-course{flex-direction:column!important;height:94vh!important;max-height:94vh!important;display:flex!important;overflow:hidden!important}.modal-overlay .modal-card-course>div:first-of-type,.modal-overlay .modal-card-course>button.modal-close{flex:none!important}.modal-overlay .modal-card-course .new-course-grid{flex:1!important;grid-template-rows:minmax(0,1fr)!important;grid-template-columns:minmax(0,1fr)!important;gap:1rem!important;height:0!important;min-height:0!important;max-height:100%!important;display:grid!important;overflow:hidden!important}@media (width>=1024px){.modal-overlay .modal-card-course .new-course-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}}.modal-overlay .modal-card-course .new-course-grid>*{min-width:0!important;max-width:100%!important;min-height:0!important}.modal-overlay .modal-card-course .students-left-col,.modal-overlay .modal-card-course .course-form-compact{overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;scrollbar-gutter:stable!important;flex-direction:column!important;align-items:stretch!important;gap:.875rem!important;height:100%!important;min-height:0!important;max-height:100%!important;padding-right:.5rem!important;display:flex!important;overflow:hidden auto!important}.modal-overlay .modal-card-course .students-left-col>*,.modal-overlay .modal-card-course .course-form-compact>*{flex:none!important;min-width:0!important;max-width:100%!important}.modal-overlay .modal-card-course .students-left-col .manual-student-form,.modal-overlay .modal-card-course .students-left-col fieldset.manual-student-form{visibility:visible!important;opacity:1!important;z-index:5!important;pointer-events:auto!important;flex-direction:column!important;flex:none!important;order:-1!important;width:100%!important;height:auto!important;min-height:fit-content!important;max-height:none!important;margin:0!important;display:flex!important;position:relative!important}.modal-overlay .modal-card-course .students-left-col .dropzone-compact{order:0!important}.modal-overlay .modal-card-course .students-left-col .student-table-head{order:1!important}.modal-overlay .modal-card-course .students-left-col .student-table-scroll{flex:none!important;order:2!important}.modal-overlay .modal-card-course .modal-footer{flex:none!important}.modal-overlay .modal-card-course *{box-sizing:border-box!important}.modal-overlay .modal-card-course .students-left-col{flex-direction:column!important;gap:0!important;height:100%!important;min-height:0!important;max-height:100%!important;padding-right:.25rem!important;display:flex!important;overflow:hidden!important}.modal-overlay .modal-card-course .students-top{scrollbar-width:thin!important;scrollbar-color:var(--accent) transparent!important;flex-direction:column!important;flex:auto!important;gap:.75rem!important;min-height:0!important;padding-right:.375rem!important;display:flex!important;overflow:hidden auto!important}.modal-overlay .modal-card-course .students-top::-webkit-scrollbar{width:6px!important}.modal-overlay .modal-card-course .students-top::-webkit-scrollbar-track{background:0 0!important}.modal-overlay .modal-card-course .students-top::-webkit-scrollbar-thumb{background:linear-gradient(180deg, var(--accent) 0%, #2563eb99 100%)!important;border-radius:10px!important}.modal-overlay .modal-card-course .students-bottom{border-top:1px solid var(--border)!important;background:var(--surface,#fff)!important;z-index:4!important;flex-direction:column!important;flex:none!important;gap:.625rem!important;margin-top:.75rem!important;padding-top:.75rem!important;display:flex!important;position:sticky!important;bottom:0!important}:root[data-theme=dark] .modal-overlay .modal-card-course .students-bottom{background:var(--surface,#0b1026)!important}.modal-overlay .modal-card-course .manual-student-form--fixed{flex:none!important;order:1!important;margin:0!important}.modal-overlay .modal-card-course .dropzone-compact{flex:none!important;order:2!important;min-height:6.5rem!important;transition:min-height .25s,padding .25s!important}.modal-overlay .modal-card-course .dropzone-mini{gap:.25rem!important;min-height:3rem!important;padding:.5rem .875rem!important}.modal-overlay .modal-card-course .dropzone-mini .dropzone-icon{display:none!important}.modal-overlay .modal-card-course .dropzone-mini .dropzone-title{font-size:.75rem!important}.modal-overlay .modal-card-course .dropzone-mini .dropzone-hint{display:none!important}.modal-overlay .modal-card-course .file-change-bar{border:1px solid var(--border)!important;background:color-mix(in srgb, var(--accent) 6%, transparent)!important;border-radius:.625rem!important;flex:none!important;order:2!important;justify-content:space-between!important;align-items:center!important;gap:.75rem!important;padding:.5rem .875rem!important;display:flex!important}.modal-overlay .modal-card-course .file-change-bar__info{align-items:baseline!important;gap:.5rem!important;min-width:0!important;display:flex!important;overflow:hidden!important}.modal-overlay .modal-card-course .file-change-bar__label{color:var(--muted-text)!important;text-transform:uppercase!important;letter-spacing:.04em!important;font-size:.7rem!important}.modal-overlay .modal-card-course .file-change-bar__name{white-space:nowrap!important;text-overflow:ellipsis!important;font-size:.78rem!important;overflow:hidden!important}.modal-overlay .modal-card-course .file-change-bar__meta{color:var(--muted-text)!important;font-size:.72rem!important}.modal-overlay .modal-card-course .btn-replace-file--thin{white-space:nowrap!important;padding:.25rem .625rem!important;font-size:.75rem!important}.modal-overlay .modal-card-course .course-form-compact{scrollbar-width:thin!important;scrollbar-color:var(--accent) transparent!important}.modal-overlay .modal-card-course .course-form-compact::-webkit-scrollbar{width:6px!important}.modal-overlay .modal-card-course .students-top::-webkit-scrollbar{width:6px!important}.modal-overlay .modal-card-course .course-form-compact::-webkit-scrollbar-track{background:0 0!important}.modal-overlay .modal-card-course .course-form-compact::-webkit-scrollbar-thumb{background:linear-gradient(180deg, var(--accent) 0%, #2563eb99 100%)!important;border-radius:10px!important}.field-missing-highlight{border-radius:.5rem;animation:.4s ease-in-out 3 field-shake;border:2px solid #dc2626!important;box-shadow:0 0 0 3px #dc26262e!important}.row-invalid-highlight{animation:.6s ease-in-out 3 row-pulse}.row-error-tip{color:#fff!important;cursor:help!important;background:#dc2626!important;border:none!important;border-radius:50%!important;justify-content:center!important;align-items:center!important;width:18px!important;height:18px!important;margin-right:.375rem!important;padding:0!important;font-size:11px!important;font-weight:800!important;line-height:1!important;display:inline-flex!important}.row-error-tip:hover{filter:brightness(1.1)}@keyframes field-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes row-pulse{0%,to{background-color:#0000}50%{background-color:#dc262614}}.submit-block.field-missing-highlight{animation:.4s ease-in-out 2 field-shake,.6s ease-in-out 2 row-pulse}.modal-overlay .modal-card-course .course-form-compact{flex-direction:column!important;gap:0!important;height:100%!important;min-height:0!important;max-height:100%!important;padding-right:.25rem!important;display:flex!important;overflow:hidden!important}.modal-overlay .modal-card-course .course-form-compact>:not(.course-form-footer){flex-shrink:0!important}.modal-overlay .modal-card-course .course-form-compact>fieldset,.modal-overlay .modal-card-course .course-form-compact>div:not(.course-form-footer){flex:none!important}.modal-overlay .modal-card-course .course-form-footer{border-top:1px solid var(--border)!important;background:var(--surface,#fff)!important;z-index:4!important;flex:auto!important;justify-content:flex-end!important;align-items:flex-end!important;gap:.75rem!important;min-height:0!important;margin-top:1rem!important;padding-top:1rem!important;display:flex!important;position:sticky!important;bottom:0!important}:root[data-theme=dark] .modal-overlay .modal-card-course .course-form-footer{background:var(--surface,#0b1026)!important}.modal-overlay .modal-card-course .course-form-footer .btn-primary,.modal-overlay .modal-card-course .course-form-footer .btn-ghost{flex:none!important}.modal-overlay .modal-card-course .students-left-col{gap:0!important}.modal-overlay .modal-card-course .students-top{gap:.5rem!important;padding-bottom:.25rem!important}.modal-overlay .modal-card-course .students-bottom{gap:.5rem!important;margin-top:.5rem!important;padding-top:.5rem!important}.modal-overlay .modal-card-course .student-table-head{padding-top:.25rem!important}.modal-overlay .modal-card-course .preview-note{margin:.25rem 0 0!important;font-size:.72rem!important}.modal-overlay .modal-card-course .students-left-col .students-top{flex:auto!important}.modal-overlay .modal-card-course .course-form-footer{margin-top:.75rem!important;padding-top:.75rem!important}.row-added-highlight{background:linear-gradient(90deg,#10b9811f 0%,#0000 100%);animation:1.4s ease-in-out row-added-pulse}@keyframes row-added-pulse{0%{background-color:#10b98129;box-shadow:inset 4px 0 #10b981}to{background-color:#0000;box-shadow:inset 4px 0 #0000}}.template-entity-row{align-items:flex-start}.select-field{flex-direction:column;flex:1;gap:.375rem;min-width:0;display:flex}.select-wrapper{width:100%;position:relative}.select-enhanced{appearance:none;cursor:pointer;background:linear-gradient(#ffffff05 0%,#0000 100%);transition:border-color .2s,box-shadow .2s,background .2s;padding-right:2.25rem!important}.select-enhanced:hover{border-color:color-mix(in srgb, var(--primary) 40%, var(--border))}.select-enhanced:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb14}.select-chevron{pointer-events:none;color:var(--muted-text);justify-content:center;align-items:center;transition:color .2s,transform .2s;display:flex;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.select-wrapper:focus-within .select-chevron{color:var(--primary);transform:translateY(-50%)rotate(180deg)}:root[data-theme=dark] .select-enhanced{background:linear-gradient(#ffffff03 0%,#0000 100%)}:root[data-theme=dark] .select-enhanced:focus{box-shadow:0 0 0 3px #60a5fa1f}.modal-card-edit{flex-direction:column!important;width:min(92vw,42rem)!important;max-width:42rem!important;max-height:90vh!important;display:flex!important;overflow:hidden!important}.modal-card-student{width:min(92vw,32rem)!important;max-width:32rem!important}.modal-card-edit .modal-body-scroll{scrollbar-width:thin!important;scrollbar-color:var(--accent) transparent!important;flex-direction:column!important;flex:auto!important;gap:.875rem!important;min-height:0!important;padding-right:.375rem!important;display:flex!important;overflow:hidden auto!important}.modal-card-edit .modal-body-scroll::-webkit-scrollbar{width:6px!important}.modal-card-edit .modal-body-scroll::-webkit-scrollbar-track{background:0 0!important}.modal-card-edit .modal-body-scroll::-webkit-scrollbar-thumb{background:linear-gradient(180deg, var(--accent) 0%, #2563eb99 100%)!important;border-radius:10px!important}.modal-card-edit .modal-footer{background:var(--surface)!important;border-top:1px solid var(--border)!important;z-index:2!important;flex:none!important;margin:.75rem -1.5rem -1.5rem!important;padding:.75rem 1.5rem 1rem!important;position:sticky!important;bottom:-1.5rem!important}.modal-card-edit .field-row{grid-template-columns:1fr 1fr!important;gap:.75rem!important;display:grid!important}.modal-card-preview-large{flex-direction:column!important;width:min(96vw,110rem)!important;max-width:110rem!important;height:min(94vh,56rem)!important;max-height:94vh!important;display:flex!important;overflow:hidden!important}.cert-preview-layout{flex:auto!important;grid-template-columns:minmax(0,2.2fr) minmax(0,1fr)!important;gap:1rem!important;min-height:0!important;display:grid!important;overflow:hidden!important}.cert-preview-main{border:1px solid var(--border)!important;scrollbar-width:thin!important;background:#f8fafc!important;border-radius:.875rem!important;min-width:0!important;min-height:0!important;overflow:auto!important}.cert-preview-aside{flex-direction:column!important;gap:.875rem!important;min-height:0!important;display:flex!important}.aside-section{border:1px solid var(--border)!important;scrollbar-width:thin!important;border-radius:.875rem!important;flex-direction:column!important;flex:auto!important;gap:.75rem!important;min-height:0!important;padding:.875rem!important;display:flex!important;overflow-y:auto!important}.aside-title{margin:0!important;font-size:.9rem!important;font-weight:700!important}.aside-field{flex-direction:column!important;gap:.375rem!important;display:flex!important}.aside-actions{flex-direction:column!important;gap:.5rem!important;display:flex!important}.btn-full{justify-content:center!important;width:100%!important}.modal-blocking-overlay{-webkit-backdrop-filter:blur(2px)!important;backdrop-filter:blur(2px)!important;z-index:10!important;background:#0f172a73!important;border-radius:1rem!important;justify-content:center!important;align-items:center!important;display:flex!important;position:absolute!important;inset:0!important}.modal-blocking-card{background:var(--surface)!important;border-radius:.875rem!important;align-items:center!important;gap:.75rem!important;padding:.875rem 1.25rem!important;font-weight:600!important;display:flex!important;box-shadow:0 20px 60px #00000040!important}@keyframes spin{to{transform:rotate(360deg)}}.missing-fields-alert{color:#b45309;cursor:pointer;text-align:left;background:#d9770614;border:1px solid #d9770673;border-radius:.625rem;align-items:center;gap:.375rem;max-width:34rem;padding:.45rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.missing-fields-alert:hover{background:#d9770624}:root[data-theme=dark] .missing-fields-alert{color:#fbbf24}.btn-ghost:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.footer-missing-alert{color:#dc2626;text-align:left;flex:auto;min-width:0;font-size:.75rem}.spinner{border:2px solid #fff9;border-top-color:currentColor;border-radius:50%;width:1.25rem;height:1.25rem;animation:.8s linear infinite spin}.qr-image{object-fit:contain;width:100%;height:100%}
