:root{--ink: #140b1f;--ink-2: #1f1130;--cream: #fff6e8;--pink: #ff2d6c;--yellow: #f4ff52;--orange: #ff7a30;--violet: #8a4fff;--green: #2ed45b;--green-ink: #0b1f10;--red: #ff3b3b;--red-ink: #2b0808;--amber: #ffc53d;--amber-ink: #241a00;--radius: 8px;--page-bg: var(--ink);--page-text: var(--cream);--page-divider: rgba(255, 246, 232, .15);--page-divider-strong: rgba(255, 246, 232, .25);color-scheme:dark;font-family:Space Grotesk,system-ui,sans-serif}[data-theme=light]{--page-bg: #efe6d8;--page-text: var(--ink);--page-divider: rgba(20, 11, 31, .12);--page-divider-strong: rgba(20, 11, 31, .2);color-scheme:light}@font-face{font-family:Anton;size-adjust:100%}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--page-bg);color:var(--page-text);overflow-wrap:anywhere}.display{font-family:Anton,Arial Narrow,sans-serif;letter-spacing:.01em;line-height:.95}.container{max-width:560px;margin:0 auto;padding:24px 20px 64px}.center-screen{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;gap:16px;text-align:center}h1,h2,h3{margin:0 0 8px;font-family:Anton,Arial Narrow,sans-serif;font-weight:400;letter-spacing:.01em}p{color:inherit;opacity:.75;margin:0 0 16px}a{color:var(--pink)}a:hover{color:var(--orange)}.halftone-bg{position:relative}.halftone-bg:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(255,45,108,.35) 1.4px,transparent 1.6px);background-size:9px 9px;opacity:.45;pointer-events:none}.card{position:relative;z-index:1;background:var(--cream);color:var(--ink);border:3px solid var(--ink);border-radius:var(--radius);box-shadow:4px 4px 0 var(--ink-2);padding:20px;margin-bottom:18px}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row.space-between{justify-content:space-between}label{display:block;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;opacity:.6;margin-bottom:6px}input,select{width:100%;background:transparent;border:none;border-bottom:3px solid var(--ink);color:var(--ink);border-radius:0;padding:10px 2px;font-size:16px;font-family:Space Grotesk,sans-serif}input:focus,select:focus{outline:none;border-bottom-color:var(--pink)}input:disabled,select:disabled{opacity:.5;cursor:not-allowed}.search-input{border-bottom:3px solid var(--page-divider-strong);color:var(--page-text)}.search-input:focus{border-bottom-color:var(--pink)}.search-input::placeholder{color:var(--page-text);opacity:.5}.check-option{display:flex;align-items:center;gap:10px;margin:0;padding:6px 0;font-size:16px;font-weight:500;letter-spacing:normal;text-transform:none;opacity:1;cursor:pointer}.check-option input[type=checkbox]{width:20px;height:20px;flex:none;padding:0;border:none;accent-color:var(--pink)}.password-input{position:relative}.password-input input{padding-right:30px}.password-toggle{position:absolute;right:0;bottom:6px;display:flex;align-items:center;background:none;border:none;padding:2px;margin:0;color:var(--ink);opacity:.55;cursor:pointer}.password-toggle:hover{opacity:1}.manual-code-input{font-family:Space Grotesk,sans-serif;font-variant-numeric:tabular-nums;font-size:28px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-align:center;color:var(--cream);border-bottom-color:var(--cream)}.manual-code-input::placeholder{color:var(--cream);opacity:.35}button{font-family:Anton,Arial Narrow,sans-serif;font-size:17px;letter-spacing:.01em;padding:14px 20px;border-radius:var(--radius);border:3px solid var(--ink);cursor:pointer;background:var(--pink);color:var(--ink);box-shadow:5px 5px 0 var(--ink);transition:transform .1s,box-shadow .1s}button:active{transform:translate(2px,2px);box-shadow:3px 3px 0 var(--ink)}button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:5px 5px 0 var(--ink)}button.secondary{background:var(--cream);color:var(--ink)}button.danger{background:var(--red);color:var(--cream)}button.big{padding:20px 24px;font-size:20px;width:100%;box-shadow:6px 6px 0 var(--yellow)}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#140b1fbf;display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000}.dialog-box{max-width:380px;width:100%;margin-bottom:0}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}@media(max-width:479px){.dialog-actions{flex-direction:column-reverse}.dialog-actions>button{width:100%;white-space:normal}}.error-msg{color:var(--red);font-weight:700;font-size:14px;margin:-4px 0 8px}.badge{display:inline-block;font-family:Anton,sans-serif;font-size:12px;letter-spacing:.02em;padding:4px 12px;border-radius:999px;border:2px solid var(--ink)}.badge.sold{background:var(--violet);color:var(--cream)}.badge.used{background:var(--green);color:var(--green-ink)}.badge.cancelled{background:var(--red);color:var(--cream)}.badge.active{background:var(--green);color:var(--green-ink)}.badge.inactive{background:transparent;color:var(--ink);opacity:.45}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:10px 8px;border-bottom:2px solid rgba(20,11,31,.12)}th{font-family:Anton,sans-serif;font-size:11px;letter-spacing:.08em;opacity:.55}.tabs{display:flex;gap:8px;margin-bottom:20px;overflow-x:auto;padding-bottom:4px}.tab{flex:none;font-family:Space Grotesk,sans-serif;font-weight:700;font-size:13px;padding:9px 16px;border-radius:999px;border:2px solid rgba(255,246,232,.25);background:transparent;color:var(--page-text);opacity:.7;box-shadow:none;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab:active{transform:none}.tab.active{background:var(--pink);color:var(--ink);border-color:var(--ink);opacity:1}.card .tab{color:var(--ink);border-color:#140b1f40}.top-bar{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:3px solid rgba(255,246,232,.15)}.top-bar h3{font-size:22px}@media(max-width:639px){.top-bar{flex-wrap:wrap;row-gap:10px}.top-bar-actions{width:100%}.top-bar-actions button.secondary{flex:1 1 0;padding:10px 12px;font-size:14px;box-shadow:3px 3px 0 var(--ink);white-space:nowrap}.top-bar-actions button.organizer-menu-toggle{flex:none}}.organizer-menu{position:relative;flex:none}.organizer-menu-inline{display:none;align-items:center;gap:12px}.organizer-menu-toggle{padding:10px 14px;font-size:18px;line-height:1}.organizer-menu-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:220px;margin-bottom:0}@media(min-width:640px){.organizer-menu-inline{display:flex}.organizer-menu-toggle,.organizer-menu-panel{display:none}}.role-card{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:16px;padding:22px 20px;border:3px solid var(--ink);border-radius:var(--radius);box-shadow:7px 7px 0 var(--ink);width:100%;max-width:340px;text-align:left}.role-card.organizer{background:var(--pink);color:var(--ink);transform:rotate(-1.6deg)}.role-card.scanner{background:var(--yellow);color:var(--ink);transform:rotate(1.4deg)}.role-icon{flex:none;width:42px;height:42px}.role-title{font-family:Anton,sans-serif;font-size:22px;line-height:.95}.role-sub{font-size:13px;font-weight:500;margin-top:4px;opacity:.75}.color-picker{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}.color-swatch{position:relative;width:32px;height:32px;border-radius:50%;border:2px solid transparent;box-shadow:0 0 0 1px #00000026;cursor:pointer;padding:0}.color-swatch[data-selected=true]{border-color:var(--cream, #fff);box-shadow:0 0 0 3px var(--pink, #ff2d6c);transform:scale(1.12)}.color-swatch[data-selected=true]:after{content:"✓";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6)}.color-swatch:disabled{cursor:not-allowed;opacity:.25}.color-swatch-sm{width:18px;height:18px;box-shadow:0 0 0 1px #0003;flex:none}.stub-divider{display:flex;align-items:center;gap:10px;margin:24px 0;opacity:.85}.stub-divider .dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}.stub-divider .line{flex:1;border-top:3px dashed currentColor;opacity:.5}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:26px}.stat-tile{border:3px solid var(--ink);border-radius:var(--radius);padding:14px 10px;text-align:center;box-shadow:5px 5px 0 var(--ink)}.stats-grid .stat-tile:nth-child(1){background:var(--yellow);color:var(--ink);transform:rotate(-2deg)}.stats-grid .stat-tile:nth-child(2){background:var(--violet);color:var(--cream);transform:rotate(1.5deg)}.stats-grid .stat-tile:nth-child(3){background:var(--orange);color:var(--ink);transform:rotate(-1deg)}.stat-tile .label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.75}.stat-tile .num{font-family:Anton,sans-serif;font-size:32px;line-height:1.1;margin-top:2px}.type-row{display:flex;align-items:center;gap:12px;padding:14px 4px;border-bottom:2px solid rgba(255,246,232,.15)}.type-swatch{width:14px;height:14px;flex:none;background:var(--swatch, var(--violet))}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:20px}.kpi-tile{padding:14px 16px}.kpi-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.65}.info-tip-wrap{position:relative;display:inline-block}.info-tip{all:unset;display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;border:1.5px solid currentColor;font-family:Georgia,Times New Roman,serif;font-style:italic;font-size:10px;font-weight:700;opacity:.6;cursor:pointer;vertical-align:middle}.info-tip:hover,.info-tip:focus-visible{opacity:1}.info-tip-bubble{position:fixed;z-index:20;width:230px;max-width:70vw;padding:10px 12px;background:var(--cream);color:var(--ink);border:2px solid var(--ink);border-radius:8px;box-shadow:4px 4px 0 var(--ink);font-family:Space Grotesk,sans-serif;font-size:12px;font-weight:400;text-transform:none;letter-spacing:normal;line-height:1.4}.kpi-value{font-family:Anton,sans-serif;font-size:28px;line-height:1.15;margin-top:4px}.analytics-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.chart-legend{display:flex;flex-wrap:wrap;gap:12px;margin:2px 0 4px}.legend-item{display:inline-flex;align-items:center;gap:6px;font-size:12px;opacity:.85}.legend-swatch{width:10px;height:10px;border-radius:50%;flex:none}.bar-row{display:flex;align-items:center;gap:10px;padding:5px 0}.bar-row-label{flex:0 0 auto;width:34%;min-width:70px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{flex:1 1 auto;height:14px;border-radius:7px;background:var(--page-divider);overflow:hidden}.bar-fill{height:100%;min-width:3px;border-radius:7px;transition:width .3s ease}.bar-row-value{flex:0 0 auto;min-width:44px;text-align:right;font-size:13px;font-variant-numeric:tabular-nums;opacity:.85}.hist-chart{display:flex;align-items:flex-end;gap:4px;height:160px;margin-top:12px;overflow-x:auto;padding-bottom:4px}.hist-col{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;flex:1 0 28px;height:100%;min-width:28px}.hist-bar{width:100%;max-width:24px;border-radius:4px 4px 0 0;min-height:2px}.hist-col-label{font-size:10px;opacity:.6;margin-top:6px;white-space:nowrap}.scan-result{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;text-align:center;padding:24px;z-index:50}.scan-result.valid{background:var(--green);color:var(--green-ink)}.scan-result.invalid,.scan-result.wrong_type{background:var(--red);color:var(--red-ink)}.scan-result.already_used{background:var(--amber);color:var(--amber-ink)}.scan-result.connection_error{background:var(--ink-2);color:var(--cream)}.scan-result.valid .scan-info{background:var(--green-ink);color:var(--green)}.scan-result.invalid .scan-info,.scan-result.wrong_type .scan-info{background:var(--red-ink);color:var(--cream)}.scan-result.already_used .scan-info{background:var(--amber-ink);color:var(--amber)}.scan-result.connection_error .scan-info{background:var(--ink);color:var(--cream)}.scan-stamp{width:200px;height:200px;border-radius:50%;border:8px solid currentColor;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-6deg)}.scan-stamp svg{width:56px;height:56px}.scan-stamp .result-title{font-family:Anton,sans-serif;font-size:32px;margin-top:6px;line-height:1}.scan-info{border-radius:var(--radius);padding:14px 20px;max-width:340px}.scan-info .tipo{font-family:Anton,sans-serif;font-size:24px}.scan-info .sub{font-size:17px;opacity:.8;margin-top:4px}.scan-continue{all:unset;cursor:pointer;border:2px solid currentColor;color:currentColor;padding:12px 30px;border-radius:var(--radius);font-family:Space Grotesk,sans-serif;font-weight:600;font-size:14px;letter-spacing:.02em}.scan-continue:active{opacity:.7}#qr-reader{width:100%;border-radius:var(--radius);overflow:hidden;border:3px solid var(--cream)}.ticket-card{position:relative;z-index:1;width:100%;max-width:320px;background:var(--cream);color:var(--ink);border:3px solid var(--ink);border-radius:10px;box-shadow:8px 8px 0 var(--violet);display:flex;flex-direction:column;align-items:center;padding:26px 22px 20px}.qr-preview{display:block;width:170px;height:170px;background:#fff;border:3px solid var(--ink);border-radius:8px;padding:12px;transform:rotate(-1.5deg)}.list{border:3px solid var(--ink);border-radius:var(--radius);box-shadow:6px 6px 0 var(--violet);background:var(--cream);color:var(--ink);overflow:hidden}.list-row{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:2px solid rgba(20,11,31,.12);cursor:pointer;background:none;width:100%;text-align:left}.list-row:last-child{border-bottom:none}.list-row:hover{background:#140b1f0a}.list-row-chevron{flex:none;width:16px;height:16px;transition:transform .15s;opacity:.5}.list-row-chevron.open{transform:rotate(90deg)}.list-row-main{flex:1;min-width:0}.list-row{flex-wrap:wrap}.list-row>.icon-btn{flex:none;white-space:nowrap}@media(max-width:639px){.list-row-main{flex-basis:calc(100% - 30px)}}.list-row-title{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-row-sub{font-size:12px;opacity:.55}.chip{flex:none;font-size:11px;font-weight:700;padding:4px 9px;border-radius:999px;border:2px solid var(--ink);white-space:nowrap}.chip.on{background:var(--green);color:var(--green-ink)}.chip.off{background:transparent;opacity:.45}.sub-rows{background:#140b1f09;border-bottom:2px solid rgba(20,11,31,.12)}.sub-row{padding:10px 14px 12px 40px;border-top:1px solid rgba(20,11,31,.08)}.sub-row:first-child{border-top:none}.sub-row-cancelled{background:#a85a4a1a;border-left:3px solid var(--red);padding-left:37px}.sub-row-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.check{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700}.check-box{width:23px;height:23px;border:2.5px solid var(--ink);border-radius:6px;display:flex;align-items:center;justify-content:center;flex:none}.check-box.checked{background:var(--green);border-color:var(--green-ink);box-shadow:0 0 0 3px #6e967840}.check-box svg{width:15px;height:15px}.icon-btn-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.icon-btn{all:unset;cursor:pointer;font-size:12px;font-weight:700;padding:7px 11px;border:2px solid var(--ink);border-radius:6px;background:var(--cream)}.icon-btn.danger{background:var(--red);color:var(--cream)}.ticket-type-badge{display:inline-block;background:var(--orange);color:var(--ink);font-family:Anton,sans-serif;font-size:15px;padding:6px 16px;border-radius:999px;border:2px solid var(--ink);transform:rotate(-2deg);margin-bottom:12px}.install-banner{position:fixed;bottom:0;left:0;right:0;z-index:100;background:var(--cream);color:var(--ink);border-top:3px solid var(--ink);padding:12px 16px;display:flex;align-items:center;gap:12px;font-size:13px;font-weight:500}.install-banner button{flex:none;padding:8px 14px;font-size:13px;box-shadow:3px 3px 0 var(--ink)}.update-banner{background:var(--pink);color:var(--cream);border-top-color:var(--cream);z-index:101}.update-banner button{background:var(--cream);color:var(--ink)}.connection-banner{position:fixed;top:0;left:0;right:0;z-index:200;background:var(--amber);color:var(--amber-ink);text-align:center;padding:6px 12px;font-size:12px;font-weight:700}.event-grid{display:flex;flex-direction:column;gap:12px}.list-row-estados{display:none}@media(min-width:960px){.container-app{max-width:1080px;padding-left:32px;padding-right:32px}.top-bar{--content-offset: max(32px, calc((100% - 1080px)/2 + 32px) );padding-left:var(--content-offset);padding-right:var(--content-offset)}.top-bar-back{display:inline-block;margin-left:calc(20px - var(--content-offset))}.workbench{display:grid;grid-template-columns:minmax(340px,380px) minmax(0,1fr);gap:28px;align-items:start}.workbench-aside{position:sticky;top:20px;margin-bottom:0}.workbench-aside>.card:last-child{margin-bottom:0}.workbench-main .list-row-title{white-space:normal;overflow-wrap:break-word}.list-row-estados{display:inline-block;flex:none;font-size:12px;opacity:.6;white-space:nowrap}.event-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}.event-grid>.card{margin-bottom:0;min-width:0}.event-grid .card h3,.event-grid .card p{overflow-wrap:break-word}.dash{max-width:760px}.dash .stats-grid{max-width:560px}}
