:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{margin:0;background:#f3f4f6;color:#111827}.app{min-height:100vh;background:radial-gradient(120% 120% at 20% 10%,#0b0f14,#07090c 55%,#050607);position:relative;overflow:hidden}.app:before{content:"";position:fixed;inset:-20%;background:radial-gradient(140% 120% at 15% 20%,rgba(17,24,39,.85),transparent 55%),radial-gradient(140% 120% at 85% 10%,rgba(31,41,55,.8),transparent 55%),radial-gradient(160% 140% at 30% 120%,rgba(55,65,81,.75),transparent 60%),linear-gradient(120deg,#000000b3,#1f293799);animation:app-waves 18s ease-in-out infinite;z-index:0;pointer-events:none;transform:translateZ(0)}.app:after{content:"";position:fixed;inset:-20%;background:radial-gradient(140% 120% at 15% 10%,rgba(153,27,27,.18),transparent 60%),radial-gradient(160% 140% at 80% 80%,rgba(127,29,29,.2),transparent 60%);opacity:.3;mix-blend-mode:screen;animation:app-glow 16s ease-in-out infinite;z-index:0;pointer-events:none}.page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1.5rem;position:relative;z-index:1}.page.applicant-toolbar{min-height:0;justify-content:flex-start;padding-bottom:0;color:#f9fafb}.applicant-toolbar .dni-lookup{width:100%;max-width:640px;box-sizing:border-box;background:#fff;color:#111827}.applicant-toolbar form,.applicant-toolbar label,.applicant-signup{display:grid;gap:.5rem}.form-card{background:#fff;border-radius:1.25rem;padding:2rem 2.25rem;max-width:640px;width:100%;box-shadow:0 18px 40px #0f172a2e;border:1px solid #e5e7eb}.header{width:100%;max-width:640px;display:flex;align-items:center;gap:1rem;position:relative;overflow:hidden;padding:1.25rem 1.5rem;border-radius:999px;background:#0b0f14;border:1px solid #111827;box-shadow:0 18px 40px #00000059}.main{width:100%;display:flex;justify-content:center}.logo-container{flex:0 0 auto;display:flex;align-items:center;justify-content:center;padding:.35rem .6rem;position:relative;z-index:1}.logo{height:82px;width:auto;object-fit:contain}.title-container{display:flex;flex-direction:column;gap:.2rem;position:relative;z-index:1}.header:before{content:"";position:absolute;inset:-20%;background:radial-gradient(140% 90% at 0% 10%,rgba(0,0,0,.85),transparent 55%),radial-gradient(140% 90% at 90% 0%,rgba(17,24,39,.9),transparent 55%),radial-gradient(140% 120% at 20% 120%,rgba(31,41,55,.9),transparent 60%),radial-gradient(160% 120% at 80% 110%,rgba(55,65,81,.8),transparent 60%),linear-gradient(120deg,#000000b3,#1f2937a6);filter:blur(0px);animation:header-waves 7s ease-in-out infinite;transform:translateZ(0)}.header:after{content:"";position:absolute;inset:-25%;background:radial-gradient(120% 90% at 20% 20%,rgba(153,27,27,.25),transparent 60%),radial-gradient(140% 90% at 85% 30%,rgba(127,29,29,.2),transparent 60%),radial-gradient(160% 120% at 50% 120%,rgba(185,28,28,.18),transparent 65%);opacity:.35;mix-blend-mode:screen;animation:header-glow 8s ease-in-out infinite;pointer-events:none}@keyframes header-waves{0%{background-position:0% 0%,80% 0%,20% 100%,0% 50%,0% 0%;transform:translate3d(-6%,2%,0) scale(1.02)}50%{background-position:40% 30%,50% 50%,0% 70%,60% 70%,30% 40%;transform:translate3d(6%,-3%,0) scale(1.08)}to{background-position:0% 0%,80% 0%,20% 100%,0% 50%,0% 0%;transform:translate3d(-6%,2%,0) scale(1.02)}}@keyframes header-glow{0%{opacity:.25;transform:translate3d(-4%,2%,0) scale(1)}50%{opacity:.6;transform:translate3d(4%,-2%,0) scale(1.06)}to{opacity:.25;transform:translate3d(-4%,2%,0) scale(1)}}@keyframes app-waves{0%{background-position:0% 0%,100% 0%,0% 100%,0% 50%;transform:translate3d(-4%,2%,0) scale(1.01)}50%{background-position:30% 30%,70% 40%,20% 70%,40% 70%;transform:translate3d(4%,-3%,0) scale(1.06)}to{background-position:0% 0%,100% 0%,0% 100%,0% 50%;transform:translate3d(-4%,2%,0) scale(1.01)}}@keyframes app-glow{0%{opacity:.2;transform:translateZ(0) scale(1)}50%{opacity:.55;transform:translate3d(3%,-2%,0) scale(1.04)}to{opacity:.2;transform:translateZ(0) scale(1)}}.title{margin:0;font-size:1.6rem;letter-spacing:.01em}.brand-header{display:flex;align-items:center;gap:1.2rem;margin-bottom:.75rem}.brand-logo{width:72px;height:72px;object-fit:contain}.brand-text h1{margin:0;font-size:1.5rem;letter-spacing:.02em}.brand-subtitle{margin:.2rem 0 0;font-size:.9rem;color:#6b7280}.subtitle{margin:.5rem 0 1.5rem;font-size:.9rem;color:#4b5563}.header .title{color:#f9fafb}.header .subtitle{color:#cbd5f5}.form{display:flex;flex-direction:column;gap:1rem}.field{display:flex;flex-direction:column;gap:.25rem;position:relative}label{font-size:.9rem;color:#374151;font-weight:500}input[type=text],input[type=email],input[type=password],input[type=date],input[type=file]{padding:.55rem .75rem;border-radius:.6rem;border:1px solid #d1d5db;background:#f9fafb;color:#111827;font-size:.95rem;transition:border-color .15s ease,box-shadow .15s ease}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=date]:focus,input[type=file]:focus{outline:none;border-color:#991b1b;box-shadow:0 0 0 1px #991b1b59;background:#fff}.status-indicator{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);font-size:1rem;pointer-events:none}.status-indicator.valid{color:#16a34a}.status-indicator.invalid{color:#dc2626}.field.valid input,.select-wrapper.valid select{border-color:#16a34a;box-shadow:0 0 0 1px #16a34a59}.field.invalid input,.select-wrapper.invalid select{border-color:#dc2626;box-shadow:0 0 0 1px #dc262659}.with-select .select-wrapper{position:relative}.with-select select{padding:.55rem 2.3rem .55rem .75rem;border-radius:.6rem;border:1px solid #d1d5db;background:#f9fafb;color:#111827;font-size:.95rem;width:100%;transition:border-color .15s ease,box-shadow .15s ease}.with-select select:focus{outline:none;border-color:#991b1b;box-shadow:0 0 0 1px #991b1b59;background:#fff}.file-info{font-size:.8rem;color:#6b7280}.dni-lookup-hint{margin:.25rem 0 .5rem;font-size:.8rem;color:#6b7280}.dni-lookup{margin-top:.35rem;padding:.65rem .75rem;border-radius:.7rem;border:1px solid #fca5a5;background:#fef2f2;font-size:.85rem;color:#7f1d1d}.dni-lookup p{margin:0 0 .5rem}.dni-lookup-actions{display:flex;gap:.5rem;flex-wrap:wrap}.mini-button{border:none;padding:.35rem .7rem;border-radius:999px;background:#991b1b;color:#fff;font-size:.8rem;font-weight:600;cursor:pointer}.mini-button.ghost{background:#fff;color:#991b1b;border:1px solid #fca5a5}.dni-lookup-files{margin-top:.5rem;font-size:.78rem;color:#6b7280}.submit-btn{margin-top:.9rem;padding:.7rem 1.2rem;border-radius:999px;border:none;background:linear-gradient(135deg,#991b1b,#4b5563);color:#f9fafb;font-weight:600;font-size:.95rem;cursor:pointer;transition:transform .05s ease-out,box-shadow .05s ease-out,opacity .15s ease-out}.submit-btn:hover{opacity:.96;box-shadow:0 8px 18px #0f172a40;transform:translateY(-1px)}.submit-btn:disabled{opacity:.7;cursor:default;box-shadow:none}.error-message{margin-top:.75rem;color:#b91c1c;font-size:.85rem}.summary{margin-top:1.75rem;padding-top:1.3rem;border-top:1px solid #e5e7eb;font-size:.9rem}.summary h2{margin:0 0 .5rem;font-size:1.05rem;color:#111827}.summary p{margin:.15rem 0}@media(max-width:640px){.form-card{padding:1.5rem 1.25rem}.header{max-width:100%;gap:.75rem}.logo{height:68px}.title{font-size:1.35rem}}.course-label{font-size:.9rem;color:#374151;font-weight:500;margin-bottom:.25rem}.course-hint{margin:.35rem 0;font-size:.9rem;color:#4b5563}.course-group{display:grid;grid-template-columns:1fr;gap:.4rem}.course-option{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;border-radius:.5rem;background:#f9fafb;border:1px solid #e5e7eb;font-size:.9rem;cursor:pointer}.course-option input[type=radio]{accent-color:#991b1b}.course-option:hover{border-color:#d1d5db;background:#f3f4f6}.file-hint{margin-top:.25rem;font-size:.8rem;color:#6b7280}@media(min-width:720px){.course-group{grid-template-columns:1fr 1fr}}.section-title{margin:1.5rem 0 .5rem;font-size:1.05rem;font-weight:600;color:#111827;border-top:1px solid #e5e7eb;padding-top:1rem}.whatsapp-hint{margin-top:.75rem;font-size:.85rem;color:#4b5563}.admin-page{min-height:100vh;display:flex;align-items:stretch;justify-content:center;background:#f3f4f6;padding:2rem 1.5rem}.admin-card{width:min(1600px,100%);max-width:none;background:#fff;border-radius:1rem;padding:1.5rem;box-shadow:0 18px 40px #0f172a2e;border:1px solid #e5e7eb;margin:0 auto}.admin-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin:1rem 0}.admin-toolbar select{margin-left:.35rem;padding:.35rem .6rem;border-radius:.5rem;border:1px solid #d1d5db;background:#f9fafb}.admin-toolbar .filter-box{display:flex;align-items:center;gap:.35rem;margin-left:.5rem}.admin-toolbar .filter-box input{padding:.35rem .6rem;border-radius:.5rem;border:1px solid #d1d5db;background:#f9fafb;min-width:220px}.admin-toolbar .filter-box input:focus{outline:none;border-color:#991b1b;box-shadow:0 0 0 1px #991b1b59;background:#fff}.admin-table-wrapper{border:1px solid #e5e7eb;border-radius:.9rem;overflow:auto}.admin-table{width:100%;border-collapse:collapse;table-layout:fixed;min-width:900px;background:#fff}.admin-table th,.admin-table td{padding:.55rem .75rem;font-size:.9rem;border-top:1px solid #f1f5f9}.admin-table th{position:sticky;top:0;background:linear-gradient(180deg,#fef2f2,#fff);color:#991b1b;text-align:left;border-bottom:1px solid #e5e7eb;padding-right:1.1rem}.admin-table tbody tr:nth-child(2n){background:#f9fafb}.admin-table tbody tr:hover{background:#fff7f7}.admin-table .col-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;position:relative}.admin-table .col-resizer{position:absolute;top:0;right:-6px;width:12px;height:100%;cursor:col-resize;display:flex;align-items:center;justify-content:center}.admin-table .col-resizer:after{content:"";width:2px;height:70%;background:#e5e7eb;transition:background .15s ease}.admin-table .col-resizer:hover:after{background:#991b1b}.admin-table .col-id{width:50px}.admin-table .col-actions{width:120px}.admin-table .col-date{width:165px}.admin-table .col-name{width:210px}.admin-table .col-dni{width:110px;text-align:center;font-variant-numeric:tabular-nums}.admin-table .col-email{width:220px}.admin-table .col-phone{width:140px}.admin-table .col-city{width:150px}.admin-table .col-province,.admin-table .col-sede{width:140px}.admin-table .col-course{width:1%}.admin-table .col-download{width:90px;text-align:center}.admin-table col.col-id{width:50px}.admin-table col.col-actions{width:120px}.action-buttons{display:flex;gap:.3rem}.icon-btn{padding:.35rem .55rem;border-radius:.5rem;border:1px solid #d1d5db;background:#f9fafb;color:#111827;font-size:.8rem;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.icon-btn:hover{background:#f3f4f6;border-color:#cbd5e1}.icon-btn.primary{border-color:#991b1b;background:#fff7f7;color:#991b1b}.icon-btn.primary:hover{background:#fee2e2}.icon-btn.danger{border-color:#dc2626;background:#fff1f2;color:#b91c1c}.icon-btn.danger:hover{background:#ffe4e6}.icon-btn:disabled{opacity:.6;cursor:default}.cell-input{width:100%;padding:.35rem .45rem;border-radius:.45rem;border:1px solid #d1d5db;font-size:.9rem;background:#fff;color:#111827}.cell-input:focus{outline:none;border-color:#991b1b;box-shadow:0 0 0 1px #991b1b59}@media(max-width:900px){.admin-card{padding:1.1rem}.admin-toolbar{flex-direction:column;align-items:flex-start}}
