:root{--font-display: "DM Serif Display", Georgia, "Times New Roman", serif;--font-body: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;--navy-900: #0f1724;--navy-800: #1a2332;--navy-700: #243044;--navy-600: #334155;--navy-500: #475569;--amber-600: #b8860b;--amber-500: #c4933f;--amber-400: #d4a853;--amber-300: #e4c580;--amber-200: #f0ddb0;--amber-100: #faf3e0;--amber-50: #fdfaf2;--surface: #faf8f5;--surface-warm: #f5f1eb;--card: #ffffff;--card-hover: #fffefa;--text-primary: #1a2332;--text-secondary: #475569;--text-muted: #94a3b8;--text-on-dark: #faf8f5;--border: #e8e4df;--border-light: #f0ece6;--border-focus: var(--amber-500);--success-bg: #ecfdf5;--success-border: #6ee7b7;--success-text: #065f46;--success-icon: #10b981;--error-bg: #fef2f2;--error-border: #fca5a5;--error-text: #991b1b;--shadow-sm: 0 1px 2px rgba(26, 35, 50, .04);--shadow-md: 0 4px 12px rgba(26, 35, 50, .06), 0 1px 3px rgba(26, 35, 50, .04);--shadow-lg: 0 8px 30px rgba(26, 35, 50, .08), 0 2px 8px rgba(26, 35, 50, .04);--shadow-glow: 0 0 0 3px rgba(196, 147, 63, .15);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;font-family:var(--font-body);line-height:1.6;font-weight:400;font-optical-sizing:auto;color:var(--text-primary);background-color:var(--surface);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--surface)}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23c4933f' fill-opacity='0.02'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}#root{position:relative;z-index:1}::selection{background:var(--amber-200);color:var(--navy-900)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--surface-warm)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.certificado{animation:fade-up .5s ease-out}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.cert-hero{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.75rem}.cert-hero-icon{width:52px;height:52px;background:var(--amber-100);border:1px solid var(--amber-200);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;color:var(--amber-600);flex-shrink:0}.cert-title{font-family:var(--font-display);font-size:1.6rem;font-weight:400;color:var(--navy-800);margin:0 0 .15rem;line-height:1.25}.cert-description{font-size:.9rem;color:var(--text-secondary);margin:0;line-height:1.5}.steps-bar{display:flex;align-items:center;gap:0;margin-bottom:1.5rem;padding:.875rem 1.25rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.step-item{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.step-num{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;background:var(--surface-warm);color:var(--text-muted);border:1.5px solid var(--border);transition:all .3s ease}.step-num.active{background:var(--navy-800);color:var(--text-on-dark);border-color:var(--navy-800);box-shadow:0 0 0 3px #1a23321f}.step-num.done{background:var(--success-icon);color:#fff;border-color:var(--success-icon)}.step-label{font-size:.8rem;font-weight:500;color:var(--text-muted);transition:color .3s ease}.step-label.active{color:var(--navy-800);font-weight:600}.step-line{flex:1;height:2px;background:var(--border);margin:0 .75rem;border-radius:1px;position:relative;overflow:hidden;min-width:20px}.step-line:after{content:"";position:absolute;left:0;top:0;height:100%;width:0;background:var(--success-icon);border-radius:1px;transition:width .4s ease}.step-line[data-done=true]:after{width:100%}.cert-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:1.75rem;box-shadow:var(--shadow-md);animation:fade-up .5s ease-out .1s both}.form-section{transition:opacity .3s ease}.form-section.section-disabled{opacity:.45;pointer-events:none}.form-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.form-label{display:flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:600;color:var(--navy-700);text-transform:uppercase;letter-spacing:.04em}.form-label-icon{color:var(--amber-500)}.student-count{font-size:.75rem;font-weight:600;color:var(--amber-600);background:var(--amber-100);padding:.2rem .6rem;border-radius:20px;border:1px solid var(--amber-200);animation:fade-up .3s ease-out}.loading-hint{display:flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--text-muted)}.select-wrapper{position:relative}.select-wrapper select{width:100%;padding:.7rem 2.5rem .7rem .875rem;border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--card);color:var(--text-muted);font-family:var(--font-body);font-size:.92rem;appearance:none;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,color .2s ease;outline:none}.select-wrapper select.has-value{color:var(--text-primary);border-color:var(--navy-700)}.select-wrapper select:hover:not(:disabled){border-color:var(--navy-500)}.select-wrapper select:focus{border-color:var(--amber-500);box-shadow:var(--shadow-glow)}.select-wrapper select:disabled{opacity:.5;cursor:not-allowed;background:var(--surface-warm)}.select-arrow{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none;display:flex}.form-divider{height:1px;background:var(--border-light);margin:1.25rem 0}.cert-error{display:flex;align-items:center;gap:.6rem;background:var(--error-bg);border:1px solid var(--error-border);border-radius:var(--radius-md);color:var(--error-text);padding:.65rem .875rem;margin-top:1.25rem;font-size:.85rem;animation:shake .4s ease}.cert-error svg{flex-shrink:0}.cert-error span{flex:1}.error-close{background:none;border:none;color:var(--error-text);cursor:pointer;padding:.2rem;opacity:.6;display:flex;transition:opacity .2s}.error-close:hover{opacity:1}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-4px)}30%{transform:translate(4px)}45%{transform:translate(-3px)}60%{transform:translate(2px)}75%{transform:translate(-1px)}}.btn-group{display:flex;gap:.75rem;margin-top:1.5rem}.btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;border-radius:var(--radius-md);border:none;font-family:var(--font-body);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;outline:none;position:relative;overflow:hidden}.btn:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.1) 0%,transparent 100%);pointer-events:none}.btn-primary{background:var(--navy-800);color:var(--text-on-dark);box-shadow:0 2px 8px #1a233240}.btn-primary:hover:not(:disabled){background:var(--navy-700);box-shadow:0 4px 14px #1a23324d;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 4px #1a233233}.btn-secondary{background:var(--amber-500);color:var(--navy-900);box-shadow:0 2px 8px #c4933f40}.btn-secondary:hover:not(:disabled){background:var(--amber-400);box-shadow:0 4px 14px #c4933f4d;transform:translateY(-1px)}.btn-secondary:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 4px #c4933f33}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn:focus-visible{box-shadow:var(--shadow-glow)}.spinner{display:inline-flex;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;top:5.5rem;right:1.5rem;display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border-radius:var(--radius-md);font-size:.85rem;font-weight:500;box-shadow:var(--shadow-lg);z-index:1000;animation:toast-in .4s ease-out;max-width:400px}.toast-success{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success-text)}.toast-error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text)}.toast-icon{display:flex;flex-shrink:0}.toast-msg{flex:1;line-height:1.4}.toast-close{background:none;border:none;color:inherit;cursor:pointer;padding:.15rem;opacity:.5;display:flex;transition:opacity .2s;flex-shrink:0}.toast-close:hover{opacity:1}@keyframes toast-in{0%{opacity:0;transform:translate(20px) translateY(-8px)}to{opacity:1;transform:translate(0) translateY(0)}}.ajustes-toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:.6rem 0;background:none;border:none;color:var(--text-secondary);font-family:var(--font-body);font-size:.82rem;font-weight:500;cursor:pointer;transition:color .2s}.ajustes-toggle:hover{color:var(--navy-800)}.ajustes-icon{color:var(--amber-500)}.ajustes-chevron{margin-left:auto;transition:transform .25s ease}.ajustes-chevron.open{transform:rotate(180deg)}.ajustes-panel{display:flex;flex-direction:column;gap:1rem;padding:1rem;background:var(--surface-warm);border:1px solid var(--border-light);border-radius:var(--radius-md);margin-bottom:.25rem;animation:fade-up .25s ease-out}.slider-group{display:flex;flex-direction:column;gap:.35rem}.slider-header{display:flex;align-items:center;justify-content:space-between}.slider-label{font-size:.78rem;font-weight:600;color:var(--navy-700);text-transform:uppercase;letter-spacing:.03em}.slider-value{font-size:.72rem;font-weight:600;color:var(--amber-600);background:var(--amber-100);padding:.1rem .45rem;border-radius:10px;border:1px solid var(--amber-200);min-width:32px;text-align:center}.slider-row{display:flex;align-items:center;gap:.6rem}.slider-hint{font-size:.7rem;color:var(--text-muted);flex-shrink:0;width:36px;text-align:center}.slider-input{flex:1;-webkit-appearance:none;appearance:none;height:6px;background:var(--border);border-radius:3px;outline:none;cursor:pointer}.slider-input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--navy-800);border:2px solid var(--card);box-shadow:0 1px 4px #0003;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.slider-input::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 2px 8px #00000040}.slider-input::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--navy-800);border:2px solid var(--card);box-shadow:0 1px 4px #0003;cursor:pointer}.reprobados-section{margin-top:1.5rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:1.25rem 1.75rem;box-shadow:var(--shadow-md);animation:fade-up .5s ease-out .2s both}.reprobados-toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:.4rem 0;background:none;border:none;color:var(--error-text, #b91c1c);font-family:var(--font-body);font-size:.88rem;font-weight:600;cursor:pointer;transition:color .2s}.reprobados-toggle:hover{color:var(--navy-800)}.reprobados-icon{color:var(--error-text, #b91c1c)}.reprobados-chevron{margin-left:auto;transition:transform .25s ease}.reprobados-chevron.open{transform:rotate(180deg)}.reprobados-table-wrapper{margin-top:1rem;overflow-x:auto;animation:fade-up .25s ease-out}.reprobados-table{width:100%;border-collapse:collapse;font-size:.85rem}.reprobados-table th{background:var(--surface-warm, #faf8f5);color:var(--navy-700);font-weight:600;text-transform:uppercase;font-size:.75rem;letter-spacing:.04em;padding:.6rem .75rem;text-align:left;border-bottom:2px solid var(--border)}.reprobados-table th:first-child{width:40px;text-align:center}.reprobados-table td{padding:.55rem .75rem;border-bottom:1px solid var(--border-light, #eee);color:var(--text-primary)}.reprobados-table td:first-child{text-align:center;font-weight:600;color:var(--text-muted)}.reprobados-table tbody tr:hover{background:var(--amber-100, #fef3c7)}.reprobados-table tbody tr:last-child td{border-bottom:none}.cert-hint{text-align:center;font-size:.8rem;color:var(--text-muted);margin-top:1rem;margin-bottom:0}@media(max-width:640px){.cert-hero{gap:.75rem}.cert-hero-icon{width:44px;height:44px}.cert-title{font-size:1.3rem}.cert-card{padding:1.25rem;border-radius:var(--radius-lg)}.btn-group{flex-direction:column}.steps-bar{padding:.75rem 1rem}.step-label{font-size:.72rem}.toast{right:.75rem;left:.75rem;max-width:none}}.app{min-height:100vh;display:flex;flex-direction:column}.header{background:var(--navy-800);border-bottom:3px solid var(--amber-500);position:sticky;top:0;z-index:100}.header-inner{max-width:960px;margin:0 auto;padding:.875rem 1.5rem;display:flex;align-items:center;justify-content:space-between}.header-brand{display:flex;align-items:center;gap:.875rem}.header-logo{width:42px;height:42px;background:linear-gradient(135deg,var(--amber-500),var(--amber-400));border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--navy-900);flex-shrink:0}.header-text h1{font-family:var(--font-display);font-size:1.35rem;font-weight:400;color:var(--text-on-dark);margin:0;letter-spacing:.01em;line-height:1.2}.header-subtitle{font-size:.75rem;color:var(--amber-300);margin:0;letter-spacing:.04em;text-transform:uppercase;font-weight:500}.header-badge{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--amber-200);background:#ffffff0f;padding:.35rem .75rem;border-radius:20px;border:1px solid rgba(255,255,255,.08)}.badge-dot{width:7px;height:7px;background:#34d399;border-radius:50%;display:inline-block;animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.main-content{flex:1;max-width:960px;width:100%;margin:0 auto;padding:2rem 1.5rem 3rem}.footer{text-align:center;padding:1.25rem 1.5rem;border-top:1px solid var(--border);background:var(--surface-warm)}.footer p{margin:0;font-size:.8rem;color:var(--text-muted);letter-spacing:.02em}@media(max-width:640px){.header-inner{padding:.75rem 1rem}.header-badge{display:none}.main-content{padding:1.25rem 1rem 2rem}.header-text h1{font-size:1.15rem}}
