:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--navy:#101a2f;--ink:#172033;--muted:#687385;--line:#dfe5eb;--canvas:#f4f7fa;--surface:#fff;--green:#07966d;--green-dark:#057856;--green-soft:#e9faf4;--blue:#0781b8;--blue-soft:#eaf7fd;--danger:#b42318;--danger-soft:#fef3f2;--shadow:0 12px 30px #101a2f14}*{box-sizing:border-box}html{min-width:320px}body{background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline-offset:3px;outline:3px solid #f5ad2f}.login-page{background:radial-gradient(circle at 50% 0%, #07966d17, transparent 30rem), var(--canvas);justify-content:center;align-items:center;min-height:100vh;padding:2rem 1rem;display:flex}.login-shell{text-align:center;width:min(100%,29rem)}.brand-mark{background:#e7ebef;border-radius:50%;justify-content:center;align-items:center;width:3.5rem;height:3.5rem;display:inline-flex}.brand-mark span,.mini-ticket{color:var(--green);border:3px solid;border-radius:.25rem;width:1.65rem;height:1.15rem;display:inline-block;position:relative}.brand-mark span:before,.brand-mark span:after,.mini-ticket:before,.mini-ticket:after{background:inherit;content:"";border-radius:50%;width:.45rem;height:.45rem;position:absolute;top:.17rem}.brand-mark span:before,.mini-ticket:before{left:-.38rem}.brand-mark span:after,.mini-ticket:after{right:-.38rem}.brand-name{margin:1rem 0 .35rem;font-size:1.05rem;font-weight:800}.login-shell h1{letter-spacing:-.04em;margin:0;font-size:clamp(1.8rem,5vw,2.25rem)}.login-intro,.login-help{color:var(--muted)}.login-intro{margin:.6rem 0 1.75rem}.login-help{margin:1.1rem 0 0;font-size:.82rem}.login-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);text-align:left;border-radius:1rem;padding:1.5rem}.form-heading{justify-content:space-between;align-items:center;margin-bottom:1.35rem;font-size:.92rem;font-weight:700;display:flex}.secure-badge,.available-pill{background:var(--green-soft);color:var(--green-dark);border-radius:999px;padding:.4rem .65rem;font-size:.75rem;font-weight:700}.login-card label{margin:0 0 .45rem;font-size:.86rem;font-weight:700;display:block}.login-card input{background:#fbfcfd;border:1px solid #d7dde4;border-radius:.65rem;width:100%;min-height:3.2rem;padding:.75rem .9rem;box-shadow:inset 0 1px 2px #101a2f0a}.login-card input+label{margin-top:1rem}.primary-button,.print-action{color:#fff;border:0;min-height:3.2rem;font-weight:800}.primary-button{background:var(--navy);border-radius:.65rem;width:100%;margin-top:1.25rem}.form-message,.error-message{background:var(--danger-soft);color:var(--danger);border:1px solid #fecdca;border-radius:.6rem;padding:.75rem;font-size:.85rem;line-height:1.45}.cashier-page{min-height:100vh}.app-header{background:var(--navy);color:#fff;justify-content:space-between;align-items:center;min-height:4.3rem;padding:.8rem clamp(1rem,4vw,3rem);display:flex}.app-brand{color:#fff;align-items:center;gap:.7rem;font-size:1.15rem;font-weight:800;text-decoration:none;display:inline-flex}.mini-ticket{background:var(--navy);width:1.35rem;height:.9rem}.header-actions{align-items:center;gap:1rem;display:flex}.user-chip{color:#c8d1df;font-size:.8rem}.logout-button{color:#fff;background:0 0;border:1px solid #42506a;border-radius:.5rem;min-height:2.5rem;padding:.55rem .85rem}.admin-portal-button{color:#087b57;background:#f0faf6;border:1px solid #b7e5d3;border-radius:.5rem;align-items:center;min-height:2.5rem;padding:.55rem .85rem;font-size:.82rem;font-weight:750;text-decoration:none;display:inline-flex}.admin-portal-button:hover{background:#dcf5ea}.cashier-content{max-width:70rem;min-height:calc(100vh - 4.3rem);margin:0 auto;padding:clamp(1.5rem,4vw,3.25rem) clamp(1rem,4vw,2rem) 2rem}.cashier-heading{justify-content:space-between;align-items:flex-end;gap:2rem;display:flex}.eyebrow{color:var(--green-dark);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .5rem;font-size:.75rem;font-weight:800}.cashier-heading h1{letter-spacing:-.05em;margin:0;font-size:clamp(2rem,5vw,3rem)}.cashier-heading p:not(.eyebrow){color:var(--muted);margin:.65rem 0 0}.refresh-button{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:.65rem;min-height:2.8rem;padding:.65rem .9rem}.event-selector-panel{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--green);border-radius:.9rem;grid-template-columns:minmax(0,1fr) minmax(15rem,24rem);align-items:center;gap:1.5rem;margin-top:2rem;padding:1.25rem 1.5rem;display:grid}.event-selector-panel h2{margin:0;font-size:1.15rem}.event-selector-panel p:not(.eyebrow){color:var(--muted);margin:.4rem 0 0;font-size:.82rem}.event-multiselect{border:1px solid var(--line);border-radius:.75rem;max-height:18rem;padding:.4rem;overflow-y:auto}.event-multiselect>label{cursor:pointer;border-radius:.55rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.65rem;font-size:.8rem;display:grid}.event-multiselect>label:hover{background:var(--green-soft)}.event-multiselect input{accent-color:var(--green);width:1rem;height:1rem}.event-total{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:.35rem;padding:.8rem .65rem .5rem;font-size:.82rem;display:flex}.loop-mode{font-size:clamp(1.75rem,4vw,2.35rem)!important}.availability-grid,.ticket-selection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.availability-grid{margin-top:2rem}.ticket-selection-grid{margin-top:1rem}.availability-card,.ticket-selector{background:var(--surface);border:1px solid var(--line);border-radius:.9rem;box-shadow:0 3px 10px #101a2f0a}.availability-card{text-align:center;min-height:9.5rem;padding:1.25rem 1.5rem}.availability-card p{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.76rem;font-weight:800}.availability-card strong{margin:.65rem 0 .35rem;font-size:2.75rem;line-height:1.05;display:block}.availability-card span{color:var(--muted);font-size:.78rem}.availability-card.adult strong{color:var(--green)}.availability-card.child strong{color:var(--blue)}.ticket-selector{padding:1.5rem}.selector-copy{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.selector-copy h2{margin:0;font-size:1.1rem}.selector-copy p{color:var(--muted);margin:.4rem 0 0;font-size:.83rem}.child .available-pill{background:var(--blue-soft);color:#056792}.quantity-control{align-items:center;gap:1rem;margin-top:1.4rem;display:flex}.quantity-control button{color:var(--ink);background:#f0f4f8;border:0;border-radius:.7rem;width:3.1rem;height:3.1rem;font-size:1.35rem}.quantity-control output{text-align:center;min-width:2rem;font-size:1.4rem;font-weight:800}.status-area{min-height:4rem;padding-top:1rem}.order-total{background:var(--surface);border:1px solid var(--line);border-radius:.75rem;justify-content:space-between;align-items:center;margin-top:1rem;padding:.9rem 1rem;display:flex}.order-total span{color:var(--muted);font-size:.85rem;font-weight:700}.order-total strong{font-size:1.25rem}.status-area p{margin:0}.success-message{background:var(--green-soft);color:var(--green-dark);border:1px solid #a6f4d8;border-radius:.6rem;padding:.75rem;font-size:.85rem}.print-action{background:var(--green);border-radius:.8rem;justify-content:center;align-items:center;gap:.7rem;width:100%;margin-top:auto;font-size:1rem;display:flex;box-shadow:0 10px 20px #07966d33}.print-action:hover:not(:disabled){background:var(--green-dark)}.print-sheet{display:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.admin-app{min-height:100vh}.admin-header{background:var(--navy);color:#fff;justify-content:space-between;align-items:center;min-height:3.8rem;padding:.7rem 1rem;display:flex}.admin-title{color:#fff;align-items:center;gap:.7rem;font-size:1.05rem;font-weight:800;text-decoration:none;display:flex}.admin-title .mini-ticket{background:var(--navy)}.admin-body{grid-template-columns:14rem minmax(0,1fr);min-height:calc(100vh - 3.8rem);display:grid}.admin-nav{border-right:1px solid var(--line);background:#fff;padding:1.25rem .75rem}.admin-nav a{color:#3d4757;border-radius:.65rem;align-items:center;gap:.75rem;min-height:2.8rem;margin-bottom:.3rem;padding:.65rem .8rem;font-size:.9rem;text-decoration:none;display:flex}.admin-nav a span{color:#647184;text-align:center;min-width:1.2rem;font-size:1.05rem}.admin-nav a.active{background:var(--green-soft);color:var(--green-dark);font-weight:700}.admin-nav a.active span{color:var(--green-dark)}.admin-main{min-width:0;padding:clamp(1.5rem,4vw,2.75rem)}.admin-loading{color:var(--muted);padding:3rem 0}.admin-page-heading{justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:1.5rem;display:flex}.admin-page-heading h1{letter-spacing:-.04em;margin:0;font-size:clamp(1.75rem,4vw,2.35rem)}.admin-page-heading p:not(.eyebrow){color:var(--muted);margin:.55rem 0 0}.admin-primary-link,.admin-primary-button{background:var(--green);color:#fff;border:0;border-radius:.6rem;justify-content:center;min-height:2.8rem;padding:.75rem 1rem;font-weight:700;text-decoration:none;display:inline-flex}.admin-secondary-button{color:var(--ink);background:#fff;border:1px solid #cfd7e1;border-radius:.6rem;min-height:2.8rem;padding:.75rem 1rem;font-weight:700}.admin-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.admin-stat{border:1px solid var(--line);background:#fff;border-radius:.8rem;min-height:8rem;padding:1.25rem}.admin-stat p{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:700}.admin-stat strong{margin-top:.65rem;font-size:2rem;display:block}.admin-stat.green strong{color:var(--green)}.admin-stat.blue strong{color:var(--blue)}.admin-stat.amber strong{color:#c17608}.admin-callout,.preview-panel,.create-user-panel,.import-panel{border:1px solid var(--line);background:#fff;border-radius:.8rem}.admin-callout{justify-content:space-between;align-items:center;gap:2rem;margin-top:1rem;padding:1.35rem;display:flex}.admin-callout h2,.preview-panel h2,.create-user-panel h2,.history-section h2{margin:0;font-size:1rem}.admin-callout p{color:var(--muted);margin:.4rem 0 0;font-size:.86rem;line-height:1.5}.admin-callout a{color:var(--green-dark);flex:none;font-weight:700;text-decoration:none}.filter-bar{grid-template-columns:minmax(14rem,1fr) auto auto auto;align-items:center;gap:.65rem;margin-bottom:1rem;display:grid}.filter-bar input,.filter-bar select,.create-user-panel input,.create-user-panel select,.user-table select,.modal-card input{background:#fff;border:1px solid #d6dde5;border-radius:.55rem;width:100%;min-height:2.8rem;padding:.65rem .75rem}.filter-bar button,.import-actions button,.modal-actions button{background:#fff;border:1px solid #cfd7e1;border-radius:.55rem;min-height:2.8rem;padding:.65rem 1rem}.data-table-wrap{border:1px solid var(--line);background:#fff;border-radius:.8rem;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:52rem}.data-table th,.data-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #edf0f3;padding:.8rem .9rem}.data-table th{color:#657084;letter-spacing:.04em;text-transform:uppercase;background:#fafbfc;font-size:.7rem}.data-table td{font-size:.82rem}.data-table tbody tr:last-child td{border-bottom:0}.code-cell{font-family:monospace;font-weight:700}.type-badge,.status-badge{white-space:nowrap;border-radius:999px;padding:.3rem .55rem;font-size:.72rem;font-weight:700;display:inline-block}.type-badge.adult,.status-badge.available,.status-badge.completed{background:var(--green-soft);color:var(--green-dark)}.type-badge.child{background:var(--blue-soft);color:#056792}.status-badge.cooling_down,.status-badge.pending,.status-badge.used,.status-badge.out_of_commission{color:#9a5b00;background:#fff7e6}.status-badge.looping{background:var(--blue-soft);color:#056792}.status-badge.failed,.status-badge.rolled_back{background:var(--danger-soft);color:var(--danger)}.pagination{color:var(--muted);justify-content:space-between;align-items:center;padding:1rem 0;font-size:.8rem;display:flex}.pagination button,.table-action{color:var(--ink);background:#fff;border:1px solid #d6dde5;border-radius:.45rem;min-height:2.2rem;padding:.45rem .65rem;font-size:.76rem}.pagination button+button,.action-cell .table-action+.table-action{margin-left:.45rem}.import-panel{padding:1.25rem}.upload-zone{cursor:pointer;text-align:center;border:2px dashed #c9d2dc;border-radius:.8rem;flex-direction:column;justify-content:center;align-items:center;min-height:11rem;padding:1.5rem;display:flex}.upload-zone:hover{border-color:var(--green);background:#fafcfd}.upload-zone input{opacity:0;width:1px;height:1px;position:absolute}.upload-zone span:not(.upload-symbol){color:var(--muted);margin-top:.4rem;font-size:.8rem}.upload-symbol{color:var(--green);margin-bottom:.5rem;font-size:2rem}.import-actions{justify-content:flex-end;gap:.65rem;margin-top:1rem;display:flex}.import-actions .admin-primary-button,.modal-actions .admin-primary-button{background:var(--green);border-color:var(--green);color:#fff}.preview-panel{margin-top:1rem;padding:1.25rem}.preview-stats{grid-template-columns:repeat(4,1fr);gap:.65rem;margin-top:1rem;display:grid}.preview-stats span{color:var(--muted);background:#f6f8fa;border-radius:.55rem;padding:.8rem;font-size:.76rem}.preview-stats strong{color:var(--ink);font-size:1.25rem;display:block}.issue-list{color:var(--danger);margin-bottom:0;font-size:.8rem;line-height:1.5}.history-section{margin-top:2rem}.history-section h2{margin-bottom:.8rem}.muted-text,.field-help,.table-subtext{color:var(--muted)}.create-user-panel{margin-bottom:1rem;padding:1.25rem}.create-user-grid{grid-template-columns:1fr 1.2fr 1.2fr .8fr auto;align-items:end;gap:.75rem;margin-top:1rem;display:grid}.create-user-grid label,.modal-card label{font-size:.78rem;font-weight:700}.create-user-grid input,.create-user-grid select,.modal-card input{margin-top:.4rem;display:block}.field-help{margin:.75rem 0 0;font-size:.74rem}.user-search{grid-template-columns:minmax(14rem,26rem) auto;justify-content:start}.user-table td strong,.table-subtext{display:block}.table-subtext{margin-top:.25rem;font-size:.75rem}.action-cell{white-space:nowrap}.modal-backdrop{z-index:10;background:#101a2f8c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card{box-shadow:var(--shadow);background:#fff;border-radius:.9rem;width:100%;max-width:28rem;padding:1.5rem}.modal-card h2{margin-top:0}.modal-card p{color:var(--muted);font-size:.86rem;line-height:1.5}.modal-actions{justify-content:flex-end;gap:.6rem;margin-top:1rem;display:flex}.allocation-settings-panel,.event-create-panel,.event-list-panel{border:1px solid var(--line);background:#fff;border-radius:.85rem;padding:1.25rem}.allocation-settings-panel{margin-bottom:1rem}.allocation-settings-panel h2,.allocation-settings-panel p{margin:0}.allocation-settings-panel>div:first-child p{color:var(--muted);margin-top:.35rem;font-size:.82rem}.allocation-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem;display:grid}.allocation-mode-grid label{font-size:.82rem;font-weight:800}.allocation-mode-card{border:1px solid var(--line);border-radius:.7rem;padding:1rem}.allocation-mode-card h3{margin:0 0 .85rem;font-size:1rem}.allocation-mode-grid select{background:#fff;border:1px solid #d6dde5;border-radius:.55rem;width:100%;min-height:2.8rem;margin-top:.45rem;padding:.65rem .75rem;display:block}.allocation-mode-card>span{color:var(--muted);margin-top:.45rem;font-size:.75rem;font-weight:400;line-height:1.45;display:block}.allocation-mode-card input{border:1px solid #d6dde5;border-radius:.55rem;width:100%;min-height:2.8rem;margin-top:.45rem;padding:.65rem .75rem;display:block}.allocation-number-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:.75rem;display:grid}.allocation-mode-card .admin-primary-button{width:100%;margin-top:.85rem}.event-create-panel{margin-bottom:1rem}.event-create-panel>label{margin-bottom:.55rem;font-size:.82rem;font-weight:800;display:block}.event-create-panel>div{grid-template-columns:minmax(12rem,28rem) 8rem auto;justify-content:start;gap:.75rem;display:grid}.event-create-panel input,.event-settings-row input{min-height:2.8rem}.event-list-panel{margin-top:1rem}.event-list-heading{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.event-list-heading h2,.event-list-heading p{margin:0}.event-list-heading p,.empty-events{color:var(--muted);margin-top:.35rem;font-size:.8rem}.event-list-heading>span{background:var(--green-soft);color:var(--green-dark);border-radius:999px;padding:.45rem .7rem;font-size:.75rem;font-weight:800}.event-settings-list{gap:.65rem;display:grid}.event-settings-row{border:1px solid var(--line);border-radius:.65rem;grid-template-columns:minmax(12rem,1fr) 8rem auto auto auto;align-items:center;gap:.65rem;padding:.75rem;display:grid}.event-settings-row button{min-height:2.7rem}.status-badge.inactive{color:#606b7b;background:#f0f2f5}.danger-soft-button{background:var(--danger-soft);color:var(--danger);border-color:#fecdca!important}.finance-app{min-height:100vh}.finance-main{max-width:96rem;margin:0 auto;padding:clamp(1.5rem,4vw,2.75rem)}.finance-heading{justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:1.5rem;display:flex}.finance-heading h1{letter-spacing:-.04em;margin:0;font-size:clamp(1.8rem,4vw,2.5rem)}.finance-heading p:not(.eyebrow){color:var(--muted);margin:.55rem 0 0}.report-filter-panel{border:1px solid var(--line);background:#fff;border-radius:.85rem;grid-template-columns:repeat(5,minmax(8rem,1fr)) minmax(11rem,1.3fr) auto auto;align-items:end;gap:.75rem;padding:1rem;display:grid}.report-filter-panel label{font-size:.75rem;font-weight:800}.report-filter-panel input,.report-filter-panel select{width:100%;min-height:2.75rem;margin-top:.4rem;display:block}.finance-stat-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;margin-top:1rem;display:grid}.finance-report-grid{grid-template-columns:minmax(0,2fr) minmax(20rem,1fr);gap:1rem;margin-top:1rem;display:grid}.finance-table-panel{border:1px solid var(--line);background:#fff;border-radius:.85rem;min-width:0;padding:1rem}.finance-table-panel h2{margin:0 0 .85rem;font-size:1.05rem}@media (max-width:720px){.user-chip,.refresh-button span{display:none}.cashier-heading{align-items:flex-start}.event-selector-panel,.allocation-mode-grid,.allocation-number-grid,.event-create-panel>div,.event-settings-row,.report-filter-panel,.finance-stat-grid,.finance-report-grid{grid-template-columns:1fr}.finance-heading{flex-direction:column;align-items:flex-start}.availability-grid,.ticket-selection-grid{grid-template-columns:1fr}.availability-card{min-height:8.5rem}.selector-copy{gap:.5rem}.admin-header .user-chip{display:none}.admin-body{display:block}.admin-nav{border-bottom:1px solid var(--line);border-right:0;padding:.6rem;display:flex;overflow-x:auto}.admin-nav a{flex:none;margin:0 .2rem 0 0}.admin-main{padding:1.25rem 1rem}.admin-page-heading,.admin-callout{flex-direction:column;align-items:flex-start}.admin-stat-grid,.preview-stats{grid-template-columns:repeat(2,1fr)}.filter-bar,.create-user-grid,.user-search{grid-template-columns:1fr}.import-actions{flex-direction:column}}@media (min-width:721px) and (max-width:1100px){.create-user-grid{grid-template-columns:repeat(2,1fr)}}@media print{@page{margin:0;size:58mm auto}html,body{background:#fff;width:58mm;margin:0!important;padding:0!important}.cashier-page{display:none!important}.print-sheet{width:58mm;margin:0;padding:0;display:block}.printed-ticket{box-sizing:border-box;break-after:page;color:#111827;text-align:center;width:58mm;max-width:none;margin:0;padding:3mm}.printed-ticket:last-child{break-after:auto}.printed-brand{margin:0 0 2mm;font-size:14pt;font-weight:800}.printed-event-name{overflow-wrap:anywhere;margin:0 0 4mm;font-size:20pt;font-weight:900;line-height:1.15}.printed-type{border-radius:999px;margin:0 0 2mm;padding:1mm 3mm;font-size:9pt;font-weight:800;display:inline-block}.printed-type.adult{color:#057856;background:#e9faf4}.printed-type.child{color:#056792;background:#eaf7fd}.printed-validity{color:#111827;letter-spacing:.04em;text-transform:uppercase;margin:0 0 2mm;font-size:11pt;font-weight:900}.printed-events{text-align:left;border-top:1px solid #dfe5eb;border-bottom:1px solid #dfe5eb;margin:0 0 2mm;padding:1.5mm 0}.printed-events p{justify-content:space-between;margin:1mm 0;font-size:8.5pt;display:flex}.printed-events .printed-total{border-top:1px dashed #cbd3dc;margin-top:1.5mm;padding-top:1.5mm;font-size:10pt;font-weight:900}.printed-qr{max-width:100%;margin:0 auto 2mm;display:block;width:52mm!important;height:52mm!important}.printed-code{overflow-wrap:anywhere;margin-bottom:2mm;font-family:monospace;font-size:10pt;font-weight:700}.printed-instruction{border:1px solid #dfe5eb;border-radius:3mm;margin:0;padding:2mm;font-size:8.5pt;font-weight:700}.printed-ticket dl{text-align:left;border-top:1px solid #dfe5eb;gap:2mm;margin:3mm 0 0;padding-top:2mm;font-size:8pt;display:grid}.printed-ticket dl div{justify-content:space-between;display:flex}.printed-ticket dt{color:#687385}.printed-ticket dd{margin:0;font-weight:700}}
