.spinner-wrap{padding:var(--space-8,32px);justify-content:center;align-items:center;display:flex}.spinner{border:3px solid var(--surface-5);border-top-color:var(--p-80);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spinner-spin}@keyframes spinner-spin{to{transform:rotate(360deg)}}.ghost-btn{width:100%;min-height:var(--tap-min);border-radius:var(--radius-card);color:var(--text-button);border:3px solid var(--ghost);font-family:Montserrat;font-weight:600;font-size:var(--fs-title);cursor:pointer;transition:transform var(--transition-fast), box-shadow var(--transition), filter var(--transition-fast);touch-action:manipulation;-webkit-user-select:none;user-select:none;background:0 0;padding:18px 24px;box-shadow:0 0 25px -6px #ffffff80}.ghost-btn:hover:not(:disabled){filter:brightness(1.1);box-shadow:0 0 32px -4px #fff9}.ghost-btn:active:not(:disabled){transform:scale(.98)}.ghost-btn:focus-visible{outline-offset:4px}.ghost-btn:disabled{opacity:.4;box-shadow:none;cursor:not-allowed}.login{background:radial-gradient(90% 45% at 50% -5%,#519a5824,#0000);justify-content:center;gap:40px}.login-title{text-align:center;letter-spacing:2px;text-shadow:0 0 32px #9ed49d59;font-size:40px;font-weight:700}.login-logo{object-fit:contain;align-self:center;max-width:220px;max-height:120px}.login-form{flex-direction:column;gap:16px;display:flex}.login-form input{border-radius:var(--radius-el);border:1px solid var(--border);background:var(--surface-2);min-height:52px;color:var(--text);font-family:Montserrat;font-size:var(--fs-body);transition:border-color var(--transition-fast), background var(--transition-fast);padding:14px 16px}.login-form input:hover{border-color:var(--border-strong)}.login-form input:focus{border-color:var(--p-80)}.login-form input::placeholder{color:var(--muted)}.login-error{color:var(--danger-fg);font-size:var(--fs-body);text-align:center}.avatar{object-fit:cover;background:var(--surface-3);color:var(--text);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.8em;font-weight:600;display:inline-flex;overflow:hidden}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:var(--z-modal,50);animation:modal-fade var(--transition,.2s ease);background:#0a080e8c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-card);width:100%;max-width:380px;box-shadow:var(--elevation-2,0 0 40px -8px #0009);animation:modal-pop var(--dur-slow,.3s) var(--ease,ease);padding:28px}.modal-card:focus,.modal-card:focus-visible{outline:none}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-pop{0%{opacity:0;transform:scale(.94)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.confirm-dialog{gap:var(--space-3);flex-direction:column;display:flex}.confirm-title{font-size:var(--fs-heading);font-weight:600}.confirm-message{font-size:var(--fs-body);color:var(--text-secondary)}.confirm-actions{gap:var(--space-3);margin-top:var(--space-3);display:flex}.confirm-btn{min-height:var(--tap-min);border-radius:var(--radius-el);border:1px solid var(--border);color:var(--text);font-family:Montserrat;font-size:var(--fs-body);cursor:pointer;transition:background var(--transition-fast), transform var(--transition-fast);touch-action:manipulation;background:0 0;flex:1;padding:12px 16px;font-weight:600}.confirm-btn:hover:not(:disabled){background:var(--surface-3)}.confirm-btn:active:not(:disabled){transform:scale(.98)}.confirm-btn:disabled{opacity:.5;cursor:not-allowed}.confirm-btn-main{background:var(--p-80);border-color:var(--p-80);color:var(--text-on-accent)}.confirm-btn-main:hover:not(:disabled){background:var(--p-90)}.confirm-btn-main.danger{background:var(--danger-bg);border-color:var(--danger-bg);color:var(--danger-fg)}.confirm-btn-main.danger:hover:not(:disabled){background:#8a3d3c}.admin{grid-template-columns:248px 1fr;min-height:100dvh;display:grid}.admin-side{background:var(--surface-1);border-right:1px solid var(--border-subtle);flex-direction:column;gap:24px;padding:24px 16px;display:flex}.admin-brand{font-weight:700;font-size:var(--fs-heading)}.admin-brand span{color:var(--p-80);font-weight:400;font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin-left:6px}.admin-topbar{justify-content:space-between;align-items:center;display:flex}.admin-nav-toggle{color:var(--text);cursor:pointer;min-width:var(--tap-min);min-height:var(--tap-min);border-radius:var(--radius-sm);touch-action:manipulation;background:0 0;border:none;justify-content:center;align-items:center;display:none}.admin-nav-toggle .material-symbols-rounded{font-size:28px}.admin-side nav{flex-direction:column;gap:4px;display:flex}.admin-side nav a{color:var(--text-secondary);border-radius:var(--radius-sm);font-size:var(--fs-body);transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);border-left:3px solid #0000;align-items:center;gap:12px;padding:11px 12px;text-decoration:none;display:flex}.admin-side nav a .material-symbols-rounded{color:var(--muted);transition:color var(--transition-fast);font-size:21px}.admin-side nav a:hover{background:var(--surface-2);color:var(--text)}.admin-side nav a:hover .material-symbols-rounded{color:var(--text-secondary)}.admin-side nav a.active{background:var(--surface-3);color:var(--text);border-left-color:var(--p-80);font-weight:600}.admin-side nav a.active .material-symbols-rounded{color:var(--p-80)}.admin-user{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);flex-direction:column;gap:12px;margin-top:auto;padding:12px;display:flex}.admin-user-id{align-items:center;gap:10px;min-width:0;display:flex}.admin-user-meta{flex-direction:column;min-width:0;display:flex}.admin-user-name{font-size:var(--fs-body);color:var(--text);font-weight:600}.admin-user-name,.admin-user-email{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.admin-user-email{font-size:var(--fs-label);color:var(--muted)}.admin-user-actions{gap:8px;display:flex}.admin-user-actions .admin-user-link,.admin-user-actions button{text-align:center;background:var(--surface-3);color:var(--text);border-radius:var(--radius-xs);cursor:pointer;font-family:Montserrat;font-size:var(--fs-label);transition:background var(--transition-fast);touch-action:manipulation;border:none;flex:1;padding:9px 10px;text-decoration:none}.admin-user-actions .admin-user-link:hover,.admin-user-actions button:hover{background:var(--surface-5)}.admin-main{min-width:0;max-width:1080px;animation:admin-in var(--dur) var(--ease);padding:32px 40px 48px}.admin-main h1{font-size:var(--fs-page);margin-bottom:24px;font-weight:700}@keyframes admin-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.admin-table{border-collapse:collapse;width:100%}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border-subtle);font-size:var(--fs-body);padding:13px 12px}.admin-table th{color:var(--muted);font-weight:600;font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.admin-table td.num{font-variant-numeric:tabular-nums}.admin-table tr{cursor:pointer;transition:background var(--transition-fast)}.admin-table tr:hover td{background:var(--surface-1)}.badge{border-radius:var(--radius-pill);font-size:var(--fs-label);background:var(--surface-3);padding:3px 12px;font-weight:600;display:inline-block}.badge.active,.badge.open{background:var(--success-bg-strong);color:var(--success-fg)}.badge.draft{background:var(--surface-5)}.badge.closed{background:var(--danger-bg);color:var(--danger-fg)}.badge.valid{background:var(--success-bg);color:var(--success-fg)}.badge.used{background:var(--surface-5);color:var(--text-secondary)}.btn{background:var(--surface-3);color:var(--text);border-radius:var(--radius-el);min-height:var(--tap-min);cursor:pointer;font-family:Montserrat;font-size:var(--fs-body);transition:background var(--transition-fast), filter var(--transition-fast), transform var(--transition-fast);touch-action:manipulation;border:none;padding:10px 18px}.btn.primary{background:var(--p-80);color:var(--text-on-accent);font-weight:600}.btn:hover{background:var(--surface-5)}.btn.primary:hover{background:var(--p-80);filter:brightness(1.08)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.field label{font-size:var(--fs-label);color:var(--muted)}.field input,.field select,.field textarea,.card input:not([type=checkbox]):not([type=radio]),.card select,.card textarea{border-radius:var(--radius-el);border:1px solid var(--border);background:var(--surface-2);width:100%;color:var(--text);font-family:Montserrat;font-size:var(--fs-body);transition:border-color var(--transition-fast), background var(--transition-fast);padding:14px 16px}.field input::placeholder,.card input::placeholder,.card textarea::placeholder{color:var(--muted)}.field input:hover,.field select:hover,.field textarea:hover,.card input:hover,.card select:hover,.card textarea:hover{border-color:var(--border-strong);background:var(--surface-3)}.field input:focus,.field select:focus,.field textarea:focus,.card input:focus,.card select:focus,.card textarea:focus{border-color:var(--p-80);background:var(--surface-2)}.field textarea,.card textarea{resize:vertical;min-height:112px;line-height:var(--leading-normal)}.field select,.card select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23a9b3ab' stroke-width='2'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;padding-right:40px}.field-grow{flex:1}.field-grow-2{flex:2}.tier-row{grid-template-columns:2fr 1fr 1fr auto;align-items:end;gap:10px;margin-bottom:10px;display:grid}.card{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-el);margin-bottom:24px;padding:20px}.card h2{font-size:var(--fs-title);margin-bottom:16px}.check{font-size:var(--fs-body);cursor:pointer;align-items:center;gap:10px;padding:8px 0;display:flex}.check input[type=checkbox]{width:18px;height:18px;accent-color:var(--p-80);cursor:pointer}.muted{color:var(--muted);font-size:var(--fs-label)}.ok{color:var(--p-80);font-size:var(--fs-label)}.err{color:var(--neon-red);font-size:var(--fs-label)}.chip{border-radius:var(--radius-pill);background:var(--surface-3);color:var(--text);margin-right:6px;padding:4px 10px;font-size:.9em;display:inline-block}.chip-full{background:var(--danger-bg);color:var(--danger-fg)}.entries{flex-direction:column;gap:14px;margin-bottom:16px;display:flex}.entry{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);flex-direction:column;gap:14px;padding:16px;display:flex}.entry .field{margin-bottom:0}.entry-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.entry-title{align-items:center;gap:10px;font-size:16px;font-weight:600;display:flex}.type-chip{letter-spacing:.04em;text-transform:uppercase;border-radius:var(--radius-pill);background:var(--surface-5);color:var(--muted);padding:3px 9px;font-size:11px;font-weight:600}.type-chip.cover{background:var(--success-bg);color:var(--success-fg)}.type-chip.inv{background:var(--info-bg);color:var(--info-fg)}.entry-x{border:1px solid var(--border);color:var(--muted);border-radius:var(--radius-xs);cursor:pointer;width:36px;height:36px;transition:background var(--transition-fast), color var(--transition-fast);touch-action:manipulation;background:0 0;flex:none;font-size:15px;line-height:1}.entry-x:hover{background:var(--surface-3);color:var(--text)}.entry-grid{grid-template-columns:2fr 1fr 1fr;gap:12px;display:grid}.entry-sec{align-items:center;gap:10px;display:flex}.entry-sec:before,.entry-sec:after{content:"";background:var(--border-subtle);flex:1;height:1px}.entry-sec span{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.braz-grid{grid-template-columns:140px 1fr;align-items:end;gap:16px;display:grid}.meter{flex-direction:column;gap:6px;display:flex}.meter-top{justify-content:space-between;align-items:baseline;font-size:13px;display:flex}.meter-top b{font-variant-numeric:tabular-nums}.meter-bar{border-radius:var(--radius-pill);background:var(--surface-5);height:8px;overflow:hidden}.meter-bar>i{border-radius:var(--radius-pill);height:100%;transition:width var(--transition);display:block}.braz-dot{vertical-align:middle;border-radius:50%;width:12px;height:12px;margin-right:6px;display:inline-block;box-shadow:inset 0 0 0 1px #00000040}@media (width<=1024px){.admin{grid-template-columns:1fr}.admin-side{border-right:none;border-bottom:1px solid var(--border-subtle);flex-direction:column;gap:12px;padding:16px}.admin-nav-toggle{display:inline-flex}.admin-side nav{display:none}.admin-side.open nav{display:flex}.admin-user{margin-top:4px;display:none}.admin-side.open .admin-user{display:flex}.admin-main{max-width:none;padding:20px 16px}.admin-table{white-space:nowrap;max-width:100%;display:block;overflow-x:auto}}@media (width<=640px){.row{flex-direction:column;align-items:stretch}.row .field,.row>.btn{width:100%}.tier-row{grid-template-columns:1fr 1fr}.entry-grid,.braz-grid{grid-template-columns:1fr}.admin-table.cards{white-space:normal;display:block;overflow:visible}.admin-table.cards thead{display:none}.admin-table.cards tbody,.admin-table.cards tr,.admin-table.cards td{width:100%;display:block}.admin-table.cards tr{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);margin-bottom:12px;padding:6px 14px}.admin-table.cards tr:hover td{background:0 0}.admin-table.cards td{text-align:right;overflow-wrap:anywhere;border:none;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.admin-table.cards td+td{border-top:1px solid var(--border-subtle)}.admin-table.cards td:before{content:attr(data-label);color:var(--muted);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.04em;text-align:left;flex:none;font-weight:600}.admin-table.cards td:has(input,select,textarea){text-align:left;flex-direction:column;align-items:stretch;gap:6px}.admin-table.cards td:empty{display:none}.admin-table.cards .user-avatar-cell{justify-content:flex-start}}.add-btn{border:1px dashed var(--border-strong);background:0 0;margin-top:4px}.add-btn:hover{background:var(--surface-3)}.proof-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;display:grid}.proof-thumb{cursor:pointer;text-align:left;color:var(--text);background:0 0;border:none;flex-direction:column;gap:6px;padding:0;font-family:Montserrat;display:flex}.proof-thumb img{aspect-ratio:3/4;object-fit:cover;border-radius:var(--radius-xs);border:1px solid var(--border-subtle);background:var(--surface-2);width:100%;transition:border-color var(--transition-fast)}.proof-thumb:hover img{border-color:var(--p-80)}.proof-cap{font-size:var(--fs-label);color:var(--muted);font-variant-numeric:tabular-nums}.proof-full{flex-direction:column;gap:10px;display:flex}.proof-full img{object-fit:contain;border-radius:var(--radius-xs);max-width:100%;max-height:75vh}.empty-state{align-items:center;gap:var(--space-2,8px);text-align:center;padding:var(--space-8,32px) var(--space-4,16px);opacity:.75;flex-direction:column;display:flex}.empty-icon{opacity:.7;font-size:40px}.empty-title{font-size:var(--fs-title);font-weight:600}.empty-hint{font-size:var(--fs-body);color:var(--muted)}.swatch-picker{flex-direction:column;gap:10px;display:flex}.swatch-row{flex-wrap:wrap;gap:8px;display:flex}.swatch-chip{border:1.5px solid var(--surface-5);background:var(--surface-1);color:var(--text);cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast);border-radius:999px;align-items:center;gap:8px;padding:7px 12px 7px 9px;font-family:Montserrat;font-size:13.5px;display:inline-flex}.swatch-chip:hover{background:var(--surface-3)}.swatch-dot{border-radius:50%;flex:none;width:15px;height:15px;box-shadow:inset 0 0 0 1px #00000059}.swatch-name{text-transform:capitalize}.swatch-chip.selected{border-color:var(--p-80);background:var(--success-bg)}.swatch-check{color:var(--p-90);font-weight:700}.swatch-chip.custom{color:var(--muted);border-style:dashed}.swatch-custom{max-width:240px}.app-frame{animation:screen-in var(--dur) var(--ease)}@keyframes screen-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.event-card{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-card);text-align:center;flex-direction:column;align-items:center;gap:16px;margin:auto 0;padding:40px 24px;display:flex}.event-card-name{font-size:var(--fs-display);font-weight:700}.event-card-date{font-size:var(--fs-title);color:var(--p-80)}.event-card-cover{flex-direction:column;gap:6px;margin:12px 0;display:flex}.event-card-cover h2{font-size:var(--fs-heading);margin-bottom:6px;font-weight:600}.event-card-cover p{font-size:var(--fs-body);color:var(--text-secondary)}.event-card-sinpe{flex-direction:column;gap:2px;display:flex}.event-card-sinpe h2{font-size:var(--fs-heading);margin-bottom:4px;font-weight:600}.event-card-sinpe p{font-size:var(--fs-body);color:var(--text-secondary)}.event-card-sinpe-num{font-variant-numeric:tabular-nums;color:var(--text);font-weight:700}.door-empty{text-align:center;color:var(--text-secondary);justify-content:center;align-items:center}.caja{justify-content:flex-start;gap:8px}.caja-title{font-size:var(--fs-display);text-align:center;margin-top:24px;font-weight:700}.caja-sub{font-size:var(--fs-body);color:var(--text-secondary);text-align:center;margin-bottom:16px}.caja-keypad{margin-top:auto}.caja-check{justify-content:flex-start;gap:16px;overflow-y:auto}.caja-actions{flex-direction:column;gap:12px;margin-top:auto;display:flex}.caja-back{color:var(--muted);font-family:Montserrat;font-size:var(--fs-label);cursor:pointer;min-height:var(--tap-min);border-radius:var(--radius-xs);transition:color var(--transition-fast), background var(--transition-fast);touch-action:manipulation;background:0 0;border:none;align-self:flex-start;align-items:center;margin-left:-8px;padding:4px 8px;display:inline-flex}.caja-back:hover{color:var(--text);background:var(--surface-1)}.door-menu{gap:20px}.door-menu-actions{flex-direction:column;gap:20px;margin:auto 0;display:flex}.door-menu-cap{margin-top:auto}.door-menu-links{flex-direction:column;gap:10px;display:flex}.door-menu-secondary{background:var(--surface-2);border:1px solid var(--border);width:100%;min-height:52px;color:var(--text);border-radius:var(--radius-el);font-family:Montserrat;font-size:var(--fs-body);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);touch-action:manipulation;justify-content:center;align-items:center;gap:10px;padding:14px;display:flex}.door-menu-secondary:hover{background:var(--surface-3);border-color:var(--border-strong)}.door-menu-secondary:active{transform:scale(.99)}.door-menu-secondary .material-symbols-rounded{color:var(--p-80);font-size:20px}.door-menu-sinpe{text-align:center;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);flex-direction:column;align-items:center;gap:2px;padding:10px 14px;display:flex}.door-menu-sinpe-label{font-size:var(--fs-label);color:var(--muted);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.door-menu-sinpe-val{font-variant-numeric:tabular-nums;font-weight:600}.door-topbar{justify-content:space-between;align-items:center;padding:4px 0 12px;display:flex}.door-topbar-user{align-items:center;gap:8px;display:flex}.door-topbar-settings{color:inherit;cursor:pointer;min-width:var(--tap-min);min-height:var(--tap-min);border-radius:var(--radius-sm);transition:background var(--transition-fast);touch-action:manipulation;background:0 0;border:none;justify-content:center;align-items:center;margin:-6px;display:inline-flex}.door-topbar-settings:hover{background:var(--surface-2)}.keypad{background:var(--keyboard);border-radius:var(--radius-el);padding:16px}.keypad-display{text-align:right;font-size:var(--fs-display);min-height:56px;padding:8px 12px;font-weight:600}.keypad-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.key{border-radius:var(--radius-pill);background:var(--key-bg);min-height:56px;color:var(--text);font-family:Montserrat;font-size:var(--fs-heading);cursor:pointer;transition:transform var(--transition-fast), filter var(--transition-fast), background var(--transition-fast);touch-action:manipulation;-webkit-user-select:none;user-select:none;border:none;padding:0}.key:hover{filter:brightness(1.2)}.key:active{transform:scale(.95)}.key-del{background:var(--key-danger)}.key-enter{background:var(--key-affirm);width:100%;color:var(--success-fg);margin-top:10px;font-weight:600}.neon-btn{border-radius:var(--radius-card);width:100%;min-height:72px;color:var(--text);font-family:Montserrat;font-weight:600;font-size:var(--fs-heading);cursor:pointer;transition:transform var(--transition-fast), filter var(--transition-fast), box-shadow var(--transition);touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#000;border:4px solid;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex}.neon-green{border-color:var(--neon-green);box-shadow:0 0 40px -4px var(--neon-green-glow)}.neon-yellow{border-color:var(--neon-yellow);box-shadow:0 0 40px -4px var(--neon-yellow)}.neon-red{border-color:var(--neon-red);box-shadow:0 0 40px -4px var(--neon-red)}.neon-btn:hover:not(:disabled){filter:brightness(1.15)}.neon-btn:active:not(:disabled){filter:brightness(1.25);transform:scale(.97)}.neon-green:active:not(:disabled){box-shadow:0 0 52px -2px var(--neon-green-glow)}.neon-yellow:active:not(:disabled){box-shadow:0 0 52px -2px var(--neon-yellow)}.neon-red:active:not(:disabled){box-shadow:0 0 52px -2px var(--neon-red)}.neon-btn:focus-visible{outline-offset:4px}.neon-btn:disabled{opacity:.4;box-shadow:none;filter:none;cursor:not-allowed}.capbar{width:100%}.capbar-row{font-size:var(--fs-label);color:var(--text-secondary);justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.capbar-row .capacity-nums{color:var(--text);font-weight:600}.capbar-track{background:var(--surface-3);border-radius:var(--radius-pill);height:10px;overflow:hidden}.capbar-fill{background:var(--p-80);border-radius:var(--radius-pill);height:100%;transition:width var(--dur-slow) var(--ease), background var(--transition)}.capbar.warn .capbar-fill{background:var(--neon-yellow)}.capbar.danger .capbar-fill{background:var(--neon-red)}.app-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.hdr-btn{color:var(--text);cursor:pointer;min-width:var(--tap-min);min-height:var(--tap-min);border-radius:var(--radius-sm);transition:background var(--transition-fast);touch-action:manipulation;background:0 0;border:none;justify-content:center;align-items:center;margin:-6px;display:inline-flex}.hdr-btn:hover{background:var(--surface-2)}.hdr-btn:active{background:var(--surface-3)}.hdr-btn .material-symbols-rounded{font-size:28px}.cobrar-methods-actions{flex-direction:column;gap:20px;margin:auto 0;display:flex}.cobrar{justify-content:flex-start}.cobrar-cost-label{text-align:center;font-size:var(--fs-title);color:var(--text-secondary);margin-top:16px}.cobrar-cost{text-align:center;font-size:var(--fs-display);margin-bottom:24px;font-weight:700}.cobrar-heading{text-align:center;font-size:var(--fs-display);color:var(--p-90);margin-bottom:16px;font-weight:700}.cobrar-field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.cobrar-field label{font-size:var(--fs-label);color:var(--text-secondary)}.cobrar-field input[type=text]{border-radius:var(--radius-el);border:1px solid var(--surface-5);background:var(--surface-2);color:var(--text);font-family:Montserrat;font-size:var(--fs-body);padding:14px 16px}.cobrar-field input::placeholder{color:var(--muted)}.cobrar-proof{flex-direction:column;gap:12px;margin:8px 0 20px;display:flex}.cobrar-proof-btn{border:1px dashed var(--border-strong);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-weight:600;display:inline-flex}.cobrar-proof-btn input{display:none}.cobrar-proof-preview{align-items:center;gap:10px;display:flex}.cobrar-proof-preview img{object-fit:cover;border-radius:8px;width:64px;height:64px}.cobrar-proof-ok{color:var(--p-80);font-weight:600}.cobrar-summary{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-card);text-align:center;margin:auto 0;padding:28px}.cobrar-summary .row-label{font-size:var(--fs-title);color:var(--text-secondary);margin-top:16px}.cobrar-summary .row-value{font-size:var(--fs-display);font-weight:700}.cobrar-summary .vuelto{color:var(--p-90)}.cobrar-keypad{margin-top:auto}.cobrar-error{color:var(--neon-red);text-align:center;font-size:var(--fs-body);margin-top:12px}.cobrar-actions{margin-top:24px}.cobrar-qty{flex-direction:column;align-items:center;gap:6px;margin:8px 0 4px;display:flex}.cobrar-qty-unit{font-size:var(--fs-caption);color:var(--text-secondary)}.en-construccion{text-align:center;opacity:.7;flex-direction:column;align-items:center;gap:8px;margin:auto 0;display:flex}.en-construccion .material-symbols-rounded{font-size:48px}.en-construccion p{font-size:var(--fs-heading);font-weight:600}.en-construccion small{font-size:var(--fs-body);opacity:.85}.qty-stepper{align-items:center;gap:16px;display:inline-flex}.qty-btn{cursor:pointer;width:44px;height:44px;color:inherit;transition:transform var(--transition-fast), filter var(--transition-fast);background:0 0;border:1px solid;border-radius:50%;font-size:1.5rem;line-height:1}.qty-btn:hover:not(:disabled){filter:brightness(1.3)}.qty-btn:active:not(:disabled){transform:scale(.94)}.qty-btn:disabled{opacity:.35;cursor:default}.qty-value{text-align:center;font-variant-numeric:tabular-nums;min-width:2ch;font-size:1.5rem}.invitados{justify-content:flex-start}.invitados-title{font-size:var(--fs-display);margin:8px 0 16px;font-weight:700}.invitados-search{border-radius:var(--radius-el);border:1px solid var(--surface-5);background:var(--surface-2);width:100%;color:var(--text);font-family:Montserrat;font-size:var(--fs-body);margin-bottom:16px;padding:14px 16px}.invitados-group{margin-bottom:20px}.invitados-group h2{font-size:var(--fs-label);text-transform:uppercase;opacity:.7;margin-bottom:8px}.guest-row{border-radius:var(--radius-el);background:var(--surface-1);width:100%;color:var(--text);font-family:Montserrat;font-size:var(--fs-body);cursor:pointer;border:none;justify-content:space-between;align-items:center;margin-bottom:8px;padding:16px;display:flex}.guest-row .guest-state{font-size:var(--fs-label);opacity:.7}.guest-row.checked{opacity:.5}.guest-row.checked .guest-state{color:var(--p-90)}.preventa{justify-content:flex-start}.preventa-title{font-size:var(--fs-heading);text-align:center;margin:8px 0 16px;font-weight:700}.qr-reader{border-radius:var(--radius-el);background:#000;width:100%;min-height:240px;overflow:hidden}.preventa-hint{text-align:center;opacity:.7;font-size:var(--fs-body);margin:12px 0 20px}.preventa-manual{gap:10px;display:flex}.preventa-manual input{border-radius:var(--radius-el);border:1px solid var(--surface-5);background:var(--surface-2);color:var(--text);font-family:Montserrat;font-size:var(--fs-body);flex:1;padding:14px 16px}.preventa-manual button{width:auto;padding-left:24px;padding-right:24px}.preventa-search{border-radius:var(--radius-el);border:1px solid var(--surface-5);background:var(--surface-2);width:100%;color:var(--text);font-family:Montserrat;font-size:var(--fs-body);margin:20px 0 12px;padding:14px 16px}.preventa-list{flex-direction:column;gap:8px;display:flex;overflow-y:auto}.preventa-row{border-radius:var(--radius-el);background:var(--surface-1);width:100%;color:var(--text);font-family:Montserrat;font-size:var(--fs-body);cursor:pointer;text-align:left;border:none;justify-content:space-between;align-items:center;padding:16px;display:flex}.preventa-row .preventa-state{font-size:var(--fs-label);opacity:.7}.preventa-row.checked{opacity:.5}.preventa-cedula{opacity:.6;font-size:var(--fs-label)}.preventa-error{color:var(--neon-red);text-align:center;font-size:var(--fs-body);margin-top:12px}.incidente{justify-content:flex-start}.incidente-title{font-size:var(--fs-display);margin:8px 0 16px;font-weight:700}.incidente-text{border-radius:var(--radius-el);border:1px solid var(--surface-5);background:var(--surface-2);width:100%;color:var(--text);font-family:Montserrat;font-size:var(--fs-body);resize:vertical;padding:14px 16px}.incidente-error{color:var(--neon-red);font-size:var(--fs-body);margin-top:12px}.incidente-actions{margin-top:24px}.cliente{justify-content:flex-start}.cliente-title{font-size:var(--fs-display);margin:8px 0 16px;font-weight:700}.cliente-field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.cliente-field label{font-size:var(--fs-label);opacity:.8}.cliente-field input{border-radius:var(--radius-el);border:1px solid var(--surface-5);background:var(--surface-2);color:var(--text);font-family:Montserrat;font-size:var(--fs-body);padding:14px 16px}.cliente-existing{background:var(--surface-1);border-radius:var(--radius-card);text-align:center;padding:24px}.cliente-name{font-size:var(--fs-heading);font-weight:600}.cliente-flag{color:var(--neon-yellow);margin-top:8px;font-weight:600}.cliente-phone{opacity:.7;margin-top:8px}.finturno{justify-content:flex-start}.finturno-title{font-size:var(--fs-display);margin:8px 0 16px;font-weight:700}.finturno-summary{background:var(--surface-1);border-radius:var(--radius-el);margin-bottom:20px;padding:16px 20px}.fin-row{font-size:var(--fs-body);justify-content:space-between;padding:6px 0;display:flex}.fin-row.total{border-top:1px solid var(--surface-5);margin-top:6px;padding-top:10px;font-weight:600}.finturno-heading{text-align:center;font-size:var(--fs-heading);margin-bottom:12px;font-weight:600}.finturno-keypad{margin-top:auto}.finturno-close{background:var(--surface-2);border-radius:var(--radius-card);margin:auto 0;padding:24px}.fin-diff{text-align:center;font-size:var(--fs-heading);color:var(--p-90);margin:16px 0;font-weight:700}.fin-brazaletes{margin-top:16px}.fin-braz-row{align-items:center;gap:10px;margin:8px 0;display:flex}.fin-braz-color{flex:1;align-items:center;gap:6px;display:inline-flex}.fin-braz-dot{border-radius:50%;width:14px;height:14px;box-shadow:inset 0 0 0 1px #00000040}.fin-braz-exp{opacity:.7;min-width:92px}.fin-braz-input{width:64px}.fin-braz-diff{text-align:right;min-width:92px}.brand-logo-preview{background:var(--surface-2);border-radius:12px;justify-content:center;align-items:center;min-height:84px;padding:14px;display:flex}.brand-logo-preview img{object-fit:contain;max-width:100%;max-height:84px}.login-logo{object-fit:contain;max-width:78%;max-height:88px;margin:0 auto;display:block}.admin-brand-logo{object-fit:contain;vertical-align:middle;max-width:130px;max-height:26px}.settings{gap:20px}.settings-title{margin:0}.settings-section{border-radius:var(--radius-el);border:1px solid var(--border-subtle);background:var(--surface-1);flex-direction:column;gap:10px;padding:16px;display:flex}.settings-section h2{font-size:var(--fs-title)}.settings-section form{flex-direction:column;gap:8px;display:flex}.settings-section label{font-size:var(--fs-label);color:var(--muted)}.settings-section input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);width:100%;color:var(--text);font-family:Montserrat;font-size:var(--fs-body);transition:border-color var(--transition-fast);padding:12px 14px}.settings-section input:focus{border-color:var(--p-80)}.avatar-upload{align-items:center;gap:12px;display:flex}.settings-msg{margin:0}.settings-logout{color:var(--danger-fg);margin-top:8px}.settings-logout:hover{background:var(--danger-bg)}.host{gap:16px}.host-topbar{justify-content:space-between;align-items:center;gap:12px;padding-bottom:4px;display:flex}.host-topbar-id{align-items:center;gap:8px;min-width:0;display:flex}.host-topbar-id span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.host-logout{border:1px solid var(--border);color:var(--text);border-radius:var(--radius-el);min-height:var(--tap-min);cursor:pointer;font-family:Montserrat;font-size:var(--fs-label);background:0 0;flex:none;padding:10px 14px}.host-title{font-size:var(--fs-page);margin:0;font-weight:700}.host-sub{color:var(--muted);margin:-8px 0 0}.host-events{flex-direction:column;gap:10px;display:flex}.host-event{text-align:left;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;color:var(--text);transition:border-color var(--transition-fast);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;font-family:Montserrat;display:flex}.host-event:hover{border-color:var(--p-80)}.host-event-main{flex-direction:column;gap:2px;min-width:0;display:flex}.host-event-name{font-weight:600;font-size:var(--fs-body)}.host-event-date{color:var(--muted);font-size:var(--fs-label)}.host-event-cupo{font-variant-numeric:tabular-nums;flex-direction:column;flex:none;align-items:flex-end;font-weight:700;display:flex}.host-event-cupo small{color:var(--muted);font-size:10px;font-weight:400}.host-cupo{background:var(--surface-1);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.host-cupo b{font-size:1.1em}.host-cupo-tag{font-size:var(--fs-label);color:var(--p-90);background:var(--success-bg);border-radius:var(--radius-pill);flex:none;padding:4px 10px}.host-cupo-tag.full{color:var(--danger-fg);background:var(--danger-bg)}.host-form{flex-direction:column;gap:10px;display:flex}.host-form input{border-radius:var(--radius-el);border:1px solid var(--border);background:var(--surface-2);width:100%;color:var(--text);font-family:Montserrat;font-size:var(--fs-body);padding:14px 16px}.host-form input::placeholder{color:var(--muted)}.host-form input:focus{border-color:var(--p-80);outline:none}.host-form-actions{gap:8px;display:flex}.host-form-actions .btn{flex:1}.host-notice{margin:0}.host-bulk{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:2px 12px}.host-bulk summary{cursor:pointer;font-size:var(--fs-label);color:var(--muted);padding:10px 0}.host-bulk textarea{border-radius:var(--radius-el);border:1px solid var(--border);background:var(--surface-2);width:100%;color:var(--text);font-family:Montserrat;font-size:var(--fs-body);resize:vertical;min-height:110px;margin-bottom:10px;padding:12px 14px}.host-bulk textarea::placeholder{color:var(--muted)}.host-bulk textarea:focus{border-color:var(--p-80);outline:none}.host-bulk .btn{width:100%;margin-bottom:10px}.host-guests{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.host-guest{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.host-guest.in{opacity:.7}.host-guest-info{flex-direction:column;gap:2px;min-width:0;display:flex}.host-guest-name{font-weight:600}.host-guest-cedula{color:var(--muted);font-size:var(--fs-label)}.host-guest-actions{flex:none;gap:8px;display:flex}.host-guest-badge{font-size:var(--fs-label);color:var(--p-90);background:var(--success-bg);border-radius:var(--radius-pill);flex:none;padding:4px 10px}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f0d13;--surface-1:#1d1b20;--surface-2:#211f26;--surface-3:#2b2930;--surface-5:#36343b;--keyboard:#151218;--border-subtle:#2b2930;--border:#3d3a44;--border-strong:#55515e;--text:#ebf7ed;--text-secondary:#c9c5d2;--muted:#a5a2ad;--text-disabled:#6e6a78;--text-button:#f2f2f2;--text-on-accent:#002107;--neon-green:#519a58;--neon-green-glow:#48894e;--neon-yellow:#fcd216;--neon-red:#cf142a;--ghost:#fff;--p-90:#b9f0b7;--p-80:#9ed49d;--success-bg:#20351f;--success-bg-strong:#205026;--success-fg:#b9f0b7;--warning-bg:#3a3312;--warning-fg:#fcd216;--danger-bg:#733332;--danger-fg:#ffdad7;--info-bg:#1f2c3a;--info-fg:#9cc4f0;--key-bg:var(--surface-1);--key-danger:#643b46;--key-affirm:#35603c;--radius-xs:8px;--radius-sm:12px;--radius-el:16px;--radius-lg:24px;--radius-card:32px;--radius-pill:999px;--fs-display:34px;--fs-page:24px;--fs-heading:20px;--fs-title:18px;--fs-body:15px;--fs-caption:13px;--fs-label:12px;--tracking-wide:.06em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--leading-tight:1.2;--leading-normal:1.5;--dur-fast:.12s;--dur:.2s;--dur-slow:.3s;--ease:cubic-bezier(.2, 0, 0, 1);--ease-in-out:cubic-bezier(.45, 0, .15, 1);--transition-fast:var(--dur-fast) var(--ease);--transition:var(--dur) var(--ease);--elevation-1:0 1px 2px #0000004d;--elevation-2:0 12px 32px -10px #0009;--focus:#6ca8ff;--tap-min:44px;--z-sticky:10;--z-nav:20;--z-modal:50;--z-toast:60}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg,#0f0d13);color:var(--text,#ebf7ed);font-family:Montserrat,system-ui,sans-serif;line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;font-synthesis:none;-webkit-tap-highlight-color:transparent}.material-symbols-rounded{font-family:Material Symbols Rounded;font-weight:400;line-height:1}h1,h2,h3{text-wrap:balance}::selection{background:var(--p-80);color:var(--text-on-accent)}*{scrollbar-width:thin;scrollbar-color:var(--surface-5) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--surface-5);border-radius:999px}::-webkit-scrollbar-track{background:0 0}.app-frame{flex-direction:column;max-width:420px;min-height:100dvh;margin:0 auto;padding:24px;display:flex}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.tnum,.keypad-display,.capacity-nums,td.num{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
