:root{--color-primario: #4F46E5;--color-primario-hover: #4338CA;--color-primario-light: #EEF2FF;--color-primario-border: #C7D2FE;--color-fondo: #FFFFFF;--color-fondo-page: #F9FAFB;--color-texto: #111827;--color-texto-secundario: #6B7280;--color-borde: #E5E7EB;--color-borde-light: #F3F4F6;--color-peligro: #DC2626;--color-exito: #059669;--color-donacion: #E11D48;--color-donacion-bg: #FFF1F2;--color-donacion-border: #FECDD3;--radio-sm: 6px;--radio-md: 8px;--radio-lg: 12px;--radio-xl: 14px;--sombra-card: 0 1px 3px rgba(0,0,0,.05)}*{box-sizing:border-box}html,body{margin:0;overflow-x:hidden}body{font-family:Plus Jakarta Sans,system-ui,-apple-system,sans-serif;background:var(--color-fondo-page);color:var(--color-texto);-webkit-font-smoothing:antialiased}#app{min-height:100vh;display:flex;flex-direction:column}.accent-bar{height:3px;background:linear-gradient(90deg,var(--color-primario),#7C3AED,var(--color-primario));flex-shrink:0}.navbar{background:var(--color-fondo);border-bottom:1px solid var(--color-borde);padding:0 32px;height:64px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.navbar-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}.navbar-logo-icon{width:36px;height:36px;background:var(--color-primario);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;color:#fff}.navbar-logo-text{font-size:20px;font-weight:800;letter-spacing:-.03em}.navbar-logo-text span{color:var(--color-primario)}.navbar-nav{display:flex;gap:20px;font-size:14px;font-weight:500}.navbar-nav a,.navbar-nav button{background:none;border:none;color:var(--color-texto-secundario);text-decoration:none;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:inherit;padding:0}.navbar-nav .activa{color:var(--color-primario);font-weight:600}.navbar-actions{display:flex;align-items:center;gap:14px}.navbar-divider{width:1px;height:24px;background:var(--color-borde)}.navbar-avatar{width:34px;height:34px;background:var(--color-primario-light);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--color-primario)}button,input,select,textarea{font-family:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 18px;border:none;border-radius:var(--radio-md);font-size:14px;font-weight:600;cursor:pointer;min-height:44px;transition:background .15s}.btn-primary{background:var(--color-primario);color:#fff}.btn-primary:hover{background:var(--color-primario-hover)}.btn-secondary{background:var(--color-fondo);color:var(--color-texto);border:1px solid var(--color-borde)}.btn-secondary:hover{background:var(--color-fondo-page)}.btn-accent{background:var(--color-primario-light);color:var(--color-primario);border:1px solid var(--color-primario-border)}.btn-danger{background:var(--color-peligro);color:#fff}.btn-whatsapp{background:#25d366;color:#fff}.btn-donation{padding:7px 14px;background:var(--color-donacion-bg);color:var(--color-donacion);border:1px solid var(--color-donacion-border);border-radius:var(--radio-md);font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:6px}.btn-sm{padding:6px 10px;font-size:12px;min-height:32px;border-radius:var(--radio-sm)}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{width:100%;padding:10px 14px;background:var(--color-fondo-page);border:1px solid var(--color-borde);border-radius:var(--radio-md);font-size:14px;color:var(--color-texto);min-height:44px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primario);box-shadow:0 0 0 3px #4f46e51a}.card{background:var(--color-fondo);border-radius:var(--radio-xl);box-shadow:var(--sombra-card);border:1px solid var(--color-borde-light);overflow:hidden}.card-header{padding:14px 20px;background:var(--color-fondo-page);border-bottom:1px solid var(--color-borde-light);display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#374151}.card-body{padding:16px 20px}.page-container{max-width:960px;width:100%;margin:0 auto;padding:28px 24px 48px}.field-label{display:block;font-size:11px;font-weight:600;color:var(--color-texto-secundario);margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}label{display:flex;flex-direction:column;gap:4px;font-size:.95rem}label.casilla{flex-direction:row;align-items:center;gap:8px}label.casilla input{width:44px;height:44px}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));gap:16px}.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:12px}.fila-doble{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat-card{background:var(--color-fondo);border-radius:var(--radio-lg);border:1px solid var(--color-borde-light);box-shadow:0 1px 2px #00000008;padding:16px 18px}.stat-card-label{font-size:11px;font-weight:600;color:var(--color-texto-secundario);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.stat-card-value{font-size:20px;font-weight:800;letter-spacing:-.02em}.stat-card.primario{background:var(--color-primario);border-color:transparent;box-shadow:0 2px 8px #4f46e540}.stat-card.primario .stat-card-label{color:#ffffffb3}.stat-card.primario .stat-card-value{color:#fff}.badge{display:inline-block;padding:4px 10px;border-radius:99px;font-size:11px;font-weight:600}.badge.vigente,.badge.emitida{background:#ecfdf5;color:var(--color-exito)}.badge.vencida{background:#fef2f2;color:var(--color-peligro)}.badge.borrador{background:#fef9c3;color:#854d0e}.badge.gratis{padding:5px 14px;background:#f0fdf4;border:1px solid #BBF7D0;border-radius:100px;font-size:12px;color:#16a34a}.services-table{width:100%;border-collapse:collapse;font-size:14px}.services-table thead{font-size:10px;font-weight:700;color:var(--color-texto-secundario);text-transform:uppercase;letter-spacing:.06em}.services-table th{padding:10px 20px;text-align:left;border-bottom:1px solid var(--color-borde-light)}.services-table td{padding:12px 20px;border-bottom:1px solid var(--color-borde-light)}.services-table tr:last-child td{border-bottom:none}.totales{margin-top:12px;text-align:right}.totales p{display:flex;justify-content:space-between;margin:4px 0}.totales p.total{font-size:1.15rem;border-top:1px solid var(--color-borde);padding-top:6px}.ad-slot{background:var(--color-fondo-page);border:1px dashed #D1D5DB;border-radius:var(--radio-md);display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:0}.ad-slot:empty{display:none}.ad-slot img{display:block;max-width:100%;height:auto;margin:0 auto}.ad-slot ins[data-ad-status=unfilled]{display:none}.ad-banner{height:90px;margin-bottom:24px}.ad-banner-mobile{height:50px;margin:12px 0}.retencion-toggle{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--color-primario-light);border-radius:var(--radio-md)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182780;display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}.modal-card{background:var(--color-fondo);border-radius:16px;padding:36px 32px 28px;width:100%;max-width:420px;box-shadow:0 20px 60px #00000026}.modal-info-badge{padding:10px 14px;background:var(--color-primario-light);border:1px solid var(--color-primario-border);border-radius:var(--radio-md);display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-primario-hover);font-weight:500}.formulario{display:flex;flex-direction:column;gap:12px}fieldset.bloque,.bloque{border:1px solid var(--color-borde);border-radius:var(--radio-lg);padding:16px;margin:16px 0;display:flex;flex-direction:column;gap:10px}fieldset.bloque{min-width:0}fieldset:disabled{opacity:.85}fieldset:disabled button,fieldset:disabled input,fieldset:disabled select{cursor:not-allowed}.acciones{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.acciones-linea{display:flex;gap:6px}ul.lista{list-style:none;padding:0;margin:0}ul.lista>li{border-bottom:1px solid var(--color-borde-light)}ul.lista button.fila{width:100%;display:grid;grid-template-columns:1fr auto;gap:4px 8px;text-align:left;padding:12px 16px;background:var(--color-fondo);border:none;border-radius:0;cursor:pointer;font-family:inherit;font-size:14px;min-height:44px}ul.lista button.fila:hover{background:var(--color-fondo-page)}table.lineas{width:100%;border-collapse:collapse}table.lineas th,table.lineas td{text-align:left;padding:10px 16px;border-bottom:1px solid var(--color-borde-light);font-size:13px}table.lineas thead{background:var(--color-fondo-page)}table.lineas th{font-size:11px;font-weight:600;color:var(--color-texto-secundario);text-transform:uppercase;letter-spacing:.04em}.error{color:var(--color-peligro)}.exito{color:var(--color-exito)}.nota{color:var(--color-texto-secundario);font-size:.9rem}.aviso-no-reembolso{font-size:.85rem;color:var(--color-texto-secundario);background:var(--color-fondo-page);border-left:3px solid var(--color-peligro);padding:6px 10px;border-radius:0 var(--radio-sm) var(--radio-sm) 0;margin:8px 0}.aviso-global{background:var(--color-fondo-page);padding:10px 14px;border-radius:var(--radio-md);margin:12px 0}.aviso-verificacion{background:#fef9c3;border-radius:var(--radio-lg);padding:14px;display:flex;flex-direction:column;gap:8px;margin:12px 0}.cabecera-seccion{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:20px}.cabecera-seccion h2{margin:0;font-size:22px;font-weight:800;letter-spacing:-.02em}.sesion{display:flex;align-items:center;gap:8px;font-size:.9rem}.logo-previa{max-height:80px;object-fit:contain;align-self:flex-start}.donacion,.donacion-historial{display:flex;flex-direction:column;gap:8px;margin-top:16px}.donacion .montos{display:flex;flex-wrap:wrap;gap:8px}.donacion .montos button.activa{background:var(--color-primario);color:#fff}.consent-banner{position:fixed;left:0;right:0;bottom:0;background:var(--color-texto);color:#fff;padding:16px;z-index:1000;font-size:.9rem}.consent-banner p{margin:0 0 12px;max-width:960px;margin-inline:auto}.consent-acciones{display:flex;gap:8px;justify-content:flex-end;max-width:960px;margin:0 auto}.consent-banner button.secundario{background:#fff;color:var(--color-texto)}.acceso{max-width:420px;margin:24px auto}.acceso h2{margin-bottom:12px}@media (max-width: 768px){.navbar{padding:0 16px;height:56px}.navbar-nav{display:none}.page-container{padding:16px 16px 32px}.ad-banner{height:50px}.ad-slot{max-height:25vh}.ad-slot img{max-height:25vh;height:auto}table.lineas,table.lineas thead,table.lineas tbody,table.lineas tr,table.lineas th,table.lineas td{display:block;width:100%}table.lineas thead{display:none}table.lineas tr{border:1px solid var(--color-borde);border-radius:var(--radio-md);margin-bottom:8px;padding:10px}}@media (max-width: 360px){.fila-doble{grid-template-columns:1fr}}
