@import"https://fonts.googleapis.com/css2?family=Fraunces:wght@400;600;700&family=Sora:wght@300;400;500;600&display=swap";:root{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}a{color:inherit;text-decoration:none}button{font:inherit}.toast-container{position:fixed;top:20px;right:20px;z-index:2000;display:flex;flex-direction:column;gap:12px}.toast{min-width:280px;max-width:380px;padding:14px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.15);box-shadow:0 18px 30px #00000059;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;background:#0f1315e6;color:#e9f0ef;animation:toastSlide .35s ease-out}.toast-message{font-size:.9rem;line-height:1.4}.toast-close-button{background:none;border:none;color:inherit;font-size:1.2rem;cursor:pointer;opacity:.7;transition:opacity .2s ease}.toast-close-button:hover{opacity:1}.toast-success{border-left:6px solid #3bb6a3}.toast-error{border-left:6px solid #d96c5c}.toast-warning{border-left:6px solid #c6a45a}.toast-info{border-left:6px solid #4da3d4}@keyframes toastSlide{0%{transform:translate(30px);opacity:0}to{transform:translate(0);opacity:1}}.contador .botones{display:flex;justify-content:space-between;gap:2rem;padding:0 .8rem}.contador .botones .boton-mas,.contador .botones .boton-menos{font-size:1.4rem;font-weight:600;width:56px;height:56px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:#ffffff0f;color:#e9f0ef;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 10px 18px #00000040}.contador .botones .boton-mas:hover,.contador .botones .boton-menos:hover{transform:translateY(-3px)}.contador .botones .boton-mas{background:linear-gradient(120deg,#4da3d480,#3bb6a399)}.contador .botones .boton-menos{background:linear-gradient(120deg,#d96c5c99,#c6a45a80)}.contador-input{width:80%;margin:.5rem auto .9rem;padding:.6rem .8rem;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:#0c0f11bf;color:#e9f0ef;font-size:1rem;text-align:center;position:relative;z-index:1}.contador-input:focus{outline:none;border-color:#4da3d4b3;box-shadow:0 0 0 2px #4da3d433}.contador-total{border:1px solid rgba(198,164,90,.4)}@page{size:11.3cm 8.4cm;margin:0}:root{--font-calibri: "Calibri", Arial, sans-serif;--font-times: "Times New Roman", Times, serif}body{background-color:#e0e0e0;display:flex;justify-content:center;align-items:center;min-height:100vh;margin:0;font-family:var(--font-calibri)}.report-container{width:11.3cm;min-height:8.4cm;background-color:#fff;box-shadow:0 0 10px #0003;padding:15px;box-sizing:border-box;position:relative;color:#000}.report-header{text-align:center;margin-bottom:20px}.report-header h1{font-family:var(--font-times);font-size:18px;font-weight:700;margin:0 0 10px}.report-header .note{font-size:9px;font-style:italic;color:#000;line-height:1.4;margin:0}.info-fields{display:flex;align-items:flex-end;margin-top:15px;font-family:var(--font-calibri)}.field-group.congregation-group{flex-shrink:0;margin-right:15px}.field-group.month-group{flex-grow:1;display:flex;align-items:center}.field-group .label{font-size:8.5pt;font-weight:700}.field-group.congregation-group .value{font-size:8.5pt}.field-group.month-group .label{margin-right:5px}.field-group.month-group .value{font-size:8.5pt;border-bottom:1px solid black;width:100%;height:1em;line-height:.9}.attendance-table{width:100%;margin-top:20px;border-collapse:collapse;font-family:var(--font-calibri);font-size:9px}.attendance-table th,.attendance-table td{border:1px solid black;padding:4px;text-align:center;vertical-align:middle}.attendance-table tr td:first-child{text-align:left;padding-left:8px}.report-footer{position:absolute;bottom:15px;left:15px;font-family:var(--font-calibri);font-size:9px;color:#333}:root{--bg-ink: #0f1315;--bg-slate: #141a1d;--bg-panel: rgba(23, 30, 33, .9);--bg-soft: rgba(255, 255, 255, .06);--border-soft: rgba(255, 255, 255, .12);--border-strong: rgba(255, 255, 255, .2);--text-main: #e9f0ef;--text-muted: #b7c2be;--text-soft: #97a6a1;--accent-gold: #c6a45a;--accent-teal: #3bb6a3;--accent-rose: #d96c5c;--accent-blue: #4da3d4;--shadow-strong: 0 20px 40px rgba(0, 0, 0, .45);--shadow-soft: 0 10px 24px rgba(0, 0, 0, .25);--radius-lg: 18px;--radius-md: 12px;--radius-sm: 8px;--font-body: "Sora", sans-serif;--font-display: "Fraunces", serif}body{margin:0;font-family:var(--font-body);background:radial-gradient(circle at top,rgba(77,163,212,.12),transparent 55%),radial-gradient(circle at 20% 20%,rgba(198,164,90,.12),transparent 50%),linear-gradient(135deg,#0e1214,#11181b 60%,#0f1416);color:var(--text-main);min-height:100vh}.App{text-align:center;padding:1.5rem 1rem 2.5rem;min-height:100vh;display:flex;flex-direction:column;align-items:center;gap:1rem}.app-header{width:min(720px,100%);margin:1.5rem auto 1rem;padding:1.5rem 1.5rem 1rem;background:var(--bg-panel);border-radius:var(--radius-lg);border:1px solid var(--border-soft);box-shadow:var(--shadow-soft);display:flex;flex-direction:column;align-items:center;gap:.75rem;position:relative;overflow:hidden;animation:floatIn .6s ease}.app-header:after{content:"";position:absolute;inset:-60% auto auto -40%;width:260px;height:260px;background:radial-gradient(circle,rgba(198,164,90,.3),transparent 70%);opacity:.6}.app-logo{width:90px;height:auto;z-index:1}.app-subtitle{margin:0;font-family:var(--font-display);font-size:1.6rem;font-weight:600;color:var(--text-main);letter-spacing:.5px;z-index:1}.user-greeting{margin-top:.25rem;font-size:1rem;color:var(--text-muted);z-index:1}.user-nickname{font-weight:600;color:var(--accent-teal)}.main-nav{display:flex;justify-content:center;gap:.6rem;margin:.5rem 0 1.5rem;flex-wrap:wrap}.main-nav button{padding:.45rem 1.1rem;font-size:.85rem;font-weight:500;background:#ffffff0a;color:var(--text-soft);border:1px solid transparent;border-radius:999px;cursor:pointer;transition:all .25s ease}.main-nav button:hover{color:var(--text-main);border-color:#4da3d466;transform:translateY(-1px)}.main-nav button.active{color:#111;background:linear-gradient(120deg,#f0d38a,#c6a45a);border-color:transparent;box-shadow:0 10px 20px #c6a45a59}.registro-container{width:min(720px,100%);display:flex;flex-direction:column;align-items:center;gap:1.75rem;animation:fadeInUp .6s ease}.seleccion-container{display:flex;flex-direction:column;align-items:center;gap:1.5rem;margin-top:1rem}.botones-seleccion{display:grid;gap:1rem;width:min(380px,100%)}.boton-reunion{padding:1.1rem;font-size:1rem;font-weight:600;color:var(--text-main);background:#ffffff0f;border:1px solid var(--border-soft);border-radius:var(--radius-md);cursor:pointer;transition:transform .2s ease,border-color .2s ease}.boton-reunion:hover{transform:translateY(-2px);border-color:#4da3d480}.contadores{display:flex;gap:1.25rem;width:100%;justify-content:center;flex-wrap:wrap}.contador,.contador-total{background:var(--bg-panel);padding:1.6rem 1.4rem;border-radius:var(--radius-lg);border:1px solid var(--border-soft);box-shadow:var(--shadow-soft);flex:1;min-width:200px;position:relative;overflow:hidden}.contador:before,.contador-total:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at top,rgba(77,163,212,.12),transparent 70%);opacity:.7;pointer-events:none}.contador h3,.contador-total h3{margin-top:0;font-size:.85rem;color:var(--text-soft);text-transform:uppercase;letter-spacing:2px;z-index:1;position:relative}.contador>*,.contador-total>*{position:relative;z-index:1}.numero{font-family:var(--font-display);font-size:3rem;font-weight:600;margin:.6rem 0 1rem;color:var(--accent-blue);z-index:1;position:relative}.contador-total .numero{color:var(--accent-teal)}.botones button{font-size:1.3rem;width:44px;height:44px;border-radius:50%;border:1px solid var(--border-strong);background:#ffffff14;color:var(--text-main);cursor:pointer;transition:transform .2s ease,background .2s ease;z-index:1}.botones button:hover{transform:translateY(-2px);background:#ffffff29}.boton-finalizar{padding:1rem 2rem;font-size:1rem;color:#121312;background:linear-gradient(120deg,#f0d38a,#c6a45a);border:none;border-radius:999px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;font-weight:600;text-transform:uppercase;letter-spacing:1px;width:100%;max-width:320px;box-shadow:0 12px 24px #c6a45a59}.boton-finalizar:hover{transform:translateY(-2px);box-shadow:0 16px 28px #c6a45a66}.acciones-finales{display:flex;flex-direction:column;gap:.9rem;width:100%;max-width:320px}.boton-cambiar{padding:.75rem 1rem;font-size:.9rem;color:var(--text-muted);background-color:transparent;border:1px solid var(--border-strong);border-radius:999px;cursor:pointer;transition:all .2s}.boton-cambiar:hover{color:var(--text-main);border-color:var(--accent-blue)}.estado-conexion{position:absolute;top:16px;right:16px;font-size:.8rem;font-weight:600;background:#0f1315b3;padding:.35rem .75rem;border-radius:999px;border:1px solid var(--border-soft)}.online-indicator{color:var(--accent-teal)}.offline-indicator{color:var(--accent-rose)}.boton-login,.boton-logout,.boton-login-form,.boton-generar,.boton-guardar,.boton-eliminar,.boton-aprobar,.boton-rechazar,.boton-reset-password,.boton-confirmar,.boton-cancelar{font-family:var(--font-body);letter-spacing:.3px}.boton-login,.boton-logout{padding:.5rem 1.2rem;font-size:.85rem;color:#111;background:linear-gradient(120deg,#f0d38a,#c6a45a);border:none;border-radius:999px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.boton-login:hover,.boton-logout:hover{transform:translateY(-1px);box-shadow:0 10px 20px #c6a45a59}.login-overlay,.confirm-dialog-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0a0c0ebf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;justify-content:center;align-items:center;z-index:1000}.login-container,.confirm-dialog{background:var(--bg-panel);padding:2rem;border-radius:var(--radius-lg);width:90%;max-width:420px;position:relative;box-shadow:var(--shadow-strong);border:1px solid var(--border-soft);animation:floatIn .4s ease}.login-close{position:absolute;top:12px;right:12px;background:#ffffff14;border:none;color:var(--text-main);font-size:1.2rem;cursor:pointer;width:32px;height:32px;border-radius:50%}.login-container h2{margin-top:0;text-align:center;font-family:var(--font-display);color:var(--text-main)}.form-group label{display:block;margin-bottom:.4rem;color:var(--text-soft);font-size:.85rem;letter-spacing:.6px;text-transform:uppercase}.form-group input,.selector-group select,.schedule-form select,.schedule-form input,.date-selector input[type=date]{width:100%;padding:.7rem .8rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background-color:#0c0f11b3;color:var(--text-main);box-sizing:border-box;font-size:.95rem}.boton-login-form,.boton-generar,.boton-guardar{width:100%;padding:.85rem 1rem;font-size:.95rem;color:#101112;background:linear-gradient(120deg,#4da3d4,#3bb6a3);border:none;border-radius:999px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 12px 24px #3bb6a333;margin-top:.5rem}.boton-login-secondary{margin-top:.75rem}.boton-login-form:hover:not(:disabled),.boton-generar:hover:not(:disabled),.boton-guardar:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 16px 30px #3bb6a347}.boton-login-form:disabled,.boton-generar:disabled,.boton-guardar:disabled{opacity:.6;cursor:not-allowed}.login-error{color:var(--accent-rose);text-align:center;margin-bottom:1rem}.login-success{color:var(--accent-teal);text-align:center;margin-bottom:1rem}.login-switch{text-align:center;margin-top:1rem;color:var(--text-muted)}.login-switch button{background:none;border:none;color:var(--accent-blue);cursor:pointer;text-decoration:underline;margin-left:5px}.generador-informes{display:flex;flex-direction:column;align-items:center;gap:1.2rem;padding:2rem;background:var(--bg-panel);border-radius:var(--radius-lg);border:1px solid var(--border-soft);box-shadow:var(--shadow-soft);max-width:440px;margin:0 auto;animation:fadeInUp .5s ease}.selectores{display:flex;gap:1rem;width:100%;justify-content:center;flex-wrap:wrap}.selector-group{display:flex;flex-direction:column;align-items:center}.selector-group label{margin-bottom:.4rem;color:var(--text-soft);font-size:.8rem;letter-spacing:1px;text-transform:uppercase}.informes-container{text-align:center;padding:2rem;color:var(--text-muted)}.confirm-dialog h3{margin-top:0;color:var(--text-main);font-family:var(--font-display)}.confirm-dialog p{color:var(--text-muted);line-height:1.5}.password-reminder-wrapper{width:min(720px,100%)}.password-reminder{background:#c6a45a1f;border:1px solid rgba(198,164,90,.35);border-radius:var(--radius-lg);padding:1.2rem;text-align:left}.password-reminder h3{margin-top:0;margin-bottom:.4rem;font-family:var(--font-display)}.password-reminder p{color:var(--text-muted)}.confirm-dialog-buttons{display:flex;gap:.8rem;margin-top:1.5rem;flex-wrap:wrap}.boton-confirmar{flex:1;padding:.7rem;color:#101112;background:linear-gradient(120deg,#f0d38a,#c6a45a);border:none;border-radius:999px;cursor:pointer}.boton-cancelar{flex:1;padding:.7rem;color:var(--text-main);background:#ffffff14;border:1px solid var(--border-strong);border-radius:999px;cursor:pointer}.admin-panel{padding:1.5rem;max-width:900px;margin:0 auto 2rem;width:100%}.admin-section{background:var(--bg-panel);padding:1.5rem;border-radius:var(--radius-lg);margin-bottom:1.8rem;border:1px solid var(--border-soft);box-shadow:var(--shadow-soft);animation:fadeInUp .5s ease}.admin-section h3{margin-top:0;color:var(--text-main);font-family:var(--font-display);border-bottom:1px solid var(--border-soft);padding-bottom:.6rem;margin-bottom:1.4rem}.admin-section-collapsible{padding:1.1rem 1.5rem}.admin-section-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:transparent;border:none;padding:0;color:var(--text-main);font-family:var(--font-display);font-size:1.1rem;text-align:left;cursor:pointer}.admin-section-toggle:hover{color:var(--accent-gold)}.admin-section-arrow{font-size:1.2rem;color:var(--accent-blue);transition:transform .2s ease}.admin-section-arrow.open{transform:rotate(180deg)}.admin-section-content{margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid var(--border-soft)}.schedule-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;align-items:end;margin-bottom:1.5rem}.schedule-form label{margin-bottom:.4rem;font-size:.8rem;color:var(--text-soft);text-transform:uppercase;letter-spacing:.8px}.schedule-list ul,.user-list{list-style:none;padding:0;margin:0}.schedule-item,.user-item{display:flex;justify-content:space-between;align-items:center;padding:.9rem 1rem;background:#080a0c99;border-radius:var(--radius-md);margin-bottom:.8rem;border:1px solid var(--border-soft);gap:1rem;flex-wrap:wrap}.user-info{color:var(--text-main);font-size:.9rem}.user-actions{display:flex;gap:.5rem;flex-wrap:wrap}.user-edit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;width:100%}.checkbox-group{display:flex;align-items:center}.checkbox-group label{display:flex;align-items:center;gap:.5rem;margin:0;text-transform:none;letter-spacing:0}.checkbox-group input{width:auto}.credential-notice{margin-top:1rem;padding:1rem;border-radius:var(--radius-md);border:1px solid rgba(59,182,163,.35);background:#3bb6a314;display:flex;flex-direction:column;gap:.35rem;text-align:left}.credential-notice code{display:inline-block;padding:.5rem .75rem;border-radius:var(--radius-sm);background:#080a0cbf;color:var(--accent-gold);word-break:break-all}.user-meta{color:var(--text-soft);font-size:.82rem}.boton-eliminar,.boton-rechazar{padding:.45rem .9rem;font-size:.75rem;color:#fff;background:#d96c5ccc;border:none;border-radius:999px;cursor:pointer}.boton-eliminar:hover,.boton-rechazar:hover{filter:brightness(1.08)}.boton-aprobar{padding:.45rem .9rem;font-size:.75rem;color:#101112;background:linear-gradient(120deg,#4da3d4,#3bb6a3);border:none;border-radius:999px;cursor:pointer}.boton-aprobar:hover{filter:brightness(1.05)}.boton-reset-password{padding:.45rem .9rem;font-size:.75rem;color:#101112;background:linear-gradient(120deg,#f0d38a,#c6a45a);border:none;border-radius:999px;cursor:pointer}.boton-reset-password:hover{filter:brightness(1.05)}.boton-guardar{padding:.8rem 1rem;font-size:.9rem}.date-selector{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:1rem;padding:1rem;background:var(--bg-panel);border-radius:var(--radius-md);border:1px solid var(--border-soft);transition:border-color .3s ease}.date-selector label{color:var(--text-soft);font-size:.85rem;letter-spacing:1px;text-transform:uppercase}.date-selector.error{border-color:var(--accent-rose)}.confirm-details{background:#ffffff0d;padding:1rem;border-radius:var(--radius-sm);margin:1rem 0;font-size:.85rem;color:var(--text-muted)}.session-button-container{margin-top:auto;margin-bottom:1rem;padding-top:1rem;border-top:1px solid var(--border-soft)}.session-button-container.compact{margin-top:1rem}@media(max-width:768px){.contadores{flex-direction:column}.app-header{padding:1.2rem}.main-nav{flex-direction:column;align-items:center}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes floatIn{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
