@font-face{font-family:Barlow;src:url('/assets/fonts/barlow-regular.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:Barlow;src:url('/assets/fonts/barlow-semibold.woff2') format('woff2');font-weight:600;font-display:swap}@font-face{font-family:Teko;src:url('/assets/fonts/teko-variable.woff2') format('woff2');font-weight:300 700;font-display:swap}
:root{color-scheme:dark;--bg:#100d0b;--panel:#191512;--ink:#eee7da;--muted:#b3a493;--copper:#c08a62;--line:#bc916c33;--red:#f2ac9a;--green:#bad2a9}*{box-sizing:border-box}html{font-family:Barlow,sans-serif;background:var(--bg);color:var(--ink)}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 90% 0,#713b201a,transparent 50%)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,.button{background:var(--copper);border:1px solid var(--copper);border-radius:0;color:#1c120d;min-height:46px;padding:12px 22px;cursor:pointer;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:18px;text-decoration:none;transition:background .2s,border-color .2s}button:hover,.button:hover{background:#d7a67f;border-color:#d7a67f}button:disabled{cursor:not-allowed;opacity:.45}.secondary{background:transparent;color:var(--ink);border-color:var(--line)}.secondary:hover{background:#c08a6214;border-color:var(--copper)}.text-button{border:0;background:none;color:var(--muted);padding:8px 0;font-weight:400;justify-content:flex-start}.text-button:hover{color:var(--ink);background:none}.danger{color:var(--red);border-color:#f2ac9a55}.ops-header{height:104px;margin:0 5vw;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.ops-brand{display:inline-flex;gap:15px;align-items:center}.ops-brand img{object-fit:contain}.ops-brand span{font:500 39px/1 Teko;letter-spacing:5px;padding-top:7px}.back-link{font-size:13px;color:var(--muted)}.back-link span{margin-left:12px}.ops-main{width:min(1180px,90vw);margin:70px auto 100px;min-height:55vh}.ops-footer{margin:0 5vw;padding:25px 0 32px;border-top:1px solid var(--line);display:flex;gap:30px;color:var(--muted);font-size:12px}.ops-footer span{margin-left:auto}.loading{padding:60px 0;color:var(--muted)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Teko,sans-serif;font-weight:400}h1{font-size:clamp(56px,7vw,96px);line-height:.98;margin-bottom:25px;letter-spacing:-.5px}h2{font-size:42px;line-height:1.1;margin-bottom:20px}h3{font-size:31px;line-height:1.1;margin-bottom:14px}p{line-height:1.65;color:var(--muted)}small,.small{font-size:12px;color:var(--muted);line-height:1.6}.section-kicker{display:block;font-size:11px;letter-spacing:1.9px;text-transform:uppercase;color:var(--copper);margin-bottom:20px}.auth-layout{display:grid;grid-template-columns:1fr 390px;gap:12%;align-items:center;min-height:58vh}.auth-art{position:relative;min-height:460px;display:flex;align-items:center}.auth-art:before{content:'';width:1px;height:330px;background:linear-gradient(transparent,var(--copper),transparent);position:absolute;left:0;top:10%;opacity:.5}.auth-art-inner{padding-left:45px}.auth-art img{width:130px;height:130px;object-fit:contain;margin-bottom:32px;filter:drop-shadow(15px 15px 25px #000)}.auth-art h1{font-size:clamp(65px,6vw,100px);max-width:350px}.auth-art p{max-width:310px;font-size:15px}.auth-form{padding:26px 0}.auth-form h2{font-size:43px}form{display:grid;gap:20px}label{display:grid;gap:9px;font-size:13px;color:var(--muted)}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:0;background:#110f0d;color:var(--ink);padding:13px 14px;min-height:46px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--copper);box-shadow:0 0 0 1px var(--copper)}textarea{resize:vertical;min-height:100px}input::placeholder{color:#84776a}input[type=checkbox]{min-height:0;width:17px;height:17px;accent-color:var(--copper);margin:0}.check-label{display:flex;align-items:flex-start;gap:11px;line-height:1.5;font-size:12px}.check-label a{text-decoration:underline}.form-error{margin:0;color:var(--red);font-size:13px;line-height:1.6}.form-success{color:var(--green);font-size:14px;line-height:1.7}.form-footer{margin-top:22px;border-top:1px solid var(--line);padding-top:16px;display:flex;flex-wrap:wrap;gap:5px 20px}.form-footer button{font-size:12px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:25px;margin-bottom:45px}.topbar h1{margin-bottom:10px}.topbar p{margin:0}.topbar-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.topbar-actions>*{font-size:12px}.status{display:inline-flex;align-items:center;gap:8px;font-size:11px;border:1px solid var(--line);padding:7px 11px;color:var(--muted);white-space:nowrap}.status:before{content:'';width:5px;height:5px;background:currentColor;border-radius:50%}.status.approved,.status.published,.status.valid{color:var(--green)}.status.pending,.status.draft{color:#dcbd80}.status.blocked,.status.rejected,.status.cancelled,.status.revoked,.status.expired{color:var(--red)}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:55px}.panel{border:1px solid var(--line);background:linear-gradient(120deg,#2a20161a,#1915124d);padding:28px}.quiet-panel{padding:35px 0;border-block:1px solid var(--line)}.quiet-panel p:last-child{margin-bottom:0}.account-meta{display:grid;gap:10px;margin:28px 0}.account-meta dt{font-size:11px;color:var(--muted)}.account-meta dd{margin:0;font-size:16px}.pass-card{background:linear-gradient(125deg,#38271b,#17120e 55%,#2c2119);border:1px solid #ac7f5555;box-shadow:0 22px 60px #0004;padding:25px;max-width:420px;position:relative}.pass-card:after{content:'';position:absolute;right:-1px;top:24px;bottom:24px;width:2px;background:linear-gradient(transparent,#e3b58a,transparent);opacity:.6}.pass-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.pass-head img{width:42px;height:50px;object-fit:contain}.pass-head b{font:400 24px Teko;letter-spacing:3px;margin-right:auto}.pass-card .qr{display:block;width:min(100%,235px);height:auto;aspect-ratio:1;margin:20px auto;background:#fff}.pass-card h3{margin:20px 0 7px}.pass-card p{font-size:12px;margin:0}.pass-foot{border-top:1px solid var(--line);margin-top:22px;padding-top:14px;font-size:10px;letter-spacing:1px;display:flex;justify-content:space-between;gap:15px;color:var(--muted)}.pass-token{margin:16px 0 0}.pass-token summary{font-size:11px;color:var(--muted);cursor:pointer}.pass-token code{display:block;word-break:break-all;font-size:11px;line-height:1.6;margin-top:12px;color:var(--ink)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.section-block{margin-top:65px}.section-block>.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:25px}.section-block h2{margin-bottom:0}.empty{padding:28px 0;border-block:1px solid var(--line);color:var(--muted);font-size:14px;line-height:1.7}.reservation-list,.pass-list{display:grid;gap:16px}.reservation-row{border:1px solid var(--line);padding:22px;display:grid;grid-template-columns:1fr auto;gap:15px}.reservation-row h3{margin:0 0 8px}.reservation-row p{font-size:13px;margin:0 0 6px}.reservation-row button{font-size:11px;min-height:38px;padding:8px 12px;align-self:start}.wristband{padding:20px;border:1px solid var(--line);display:grid;grid-template-columns:110px 1fr;gap:22px;align-items:center}.wristband>.qr{width:110px;height:110px;background:#fff}.wristband h3{margin:0 0 7px}.wristband p{font-size:12px;margin:0 0 9px}.booking-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:50px}.floorplan{position:relative;width:100%;aspect-ratio:20/14;border:1px solid var(--line);background:#17120e;overflow:hidden;margin-top:20px}.floorplan svg{width:100%;height:100%;display:block}.table-node{position:absolute;transform:translate(-50%,-50%);padding:0;border:1px solid #bc916c77;color:var(--ink);background:#493020;width:40px;height:40px;min-height:0;aspect-ratio:1;border-radius:50%;font-size:12px;gap:0}.table-node:hover{background:#84583b}.table-node.selected{background:#e0b590;color:#1c120d;border-color:#f9dfc4;box-shadow:0 0 0 4px #e0b5901c}.table-node:disabled{background:#342923;color:#8d7869;opacity:.6}.map-legend{display:flex;flex-wrap:wrap;gap:20px;margin-top:15px;font-size:11px;color:var(--muted)}.map-legend span:before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px;background:#493020;border:1px solid #bc916c77}.map-legend span:nth-child(2):before{background:#e0b590}.map-legend span:nth-child(3):before{background:#342923}.attendee-list{display:grid;gap:0;margin:0;padding:0;list-style:none}.attendee-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.attendee-list li small{margin-left:auto}.attendee-list li button{font-size:11px;min-height:30px;padding:4px 8px}.lookup-row{display:flex;gap:9px}.lookup-row input{flex:1;min-width:0}.lookup-row button{padding-inline:14px;font-size:12px}.tabs{display:flex;gap:3px;overflow-x:auto;padding-bottom:10px;margin-bottom:30px;border-bottom:1px solid var(--line)}.tabs button{background:none;border-color:transparent;color:var(--muted);white-space:nowrap;font-weight:400;font-size:13px;padding:10px 18px}.tabs button.active{color:var(--ink);border-bottom-color:var(--copper);background:#c08a620a}.staff-list{display:grid;gap:0}.staff-row{padding:23px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(200px,1fr) auto auto;gap:20px;align-items:center}.staff-row p{margin:5px 0 0;font-size:12px}.staff-row strong{font-weight:600}.staff-row .row-actions{display:flex;gap:7px;flex-wrap:wrap}.staff-row button{font-size:11px;min-height:35px;padding:8px 12px}.role-select{padding:7px 9px;min-height:35px;font-size:11px;width:120px}.stats{display:flex;gap:35px;flex-wrap:wrap;margin-bottom:30px}.stats b{font:400 40px/1 Teko;display:block;color:var(--ink)}.stats span{font-size:11px;color:var(--muted)}.search-line{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-bottom:24px}.search-line input{max-width:360px}.staff-two{display:grid;grid-template-columns:1fr 1fr;gap:45px}.event-form{border:1px solid var(--line);padding:25px}.event-edit-list{display:grid;gap:15px}.event-edit-item{padding:22px;border:1px solid var(--line)}.event-edit-item h3{margin:0 0 8px}.event-edit-item p{font-size:13px;margin:0 0 14px}.event-edit-item .actions{margin-top:15px}.event-edit-item button{font-size:11px;min-height:35px;padding:8px 12px}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:15px}.door-layout{display:grid;grid-template-columns:minmax(300px,1fr) minmax(300px,1fr);gap:40px}.scanner-shell{border:1px solid var(--line);padding:22px}.camera-view{background:#0b0908;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;margin-bottom:18px}.camera-view:before,.camera-view:after{content:'';position:absolute;width:34px;height:34px;border:1px solid #c08a6277;z-index:2;pointer-events:none}.camera-view:before{left:25%;top:15%;border-right:0;border-bottom:0}.camera-view:after{right:25%;bottom:15%;border-left:0;border-top:0}.camera-view video{width:100%;height:100%;object-fit:cover}.camera-view>span{font:400 50px Teko;color:#5e4635}.scan-controls{display:flex;gap:10px;margin-bottom:25px}.scan-controls button{flex:1;font-size:12px}.scan-result{border:1px solid var(--line);min-height:300px;padding:35px;display:flex;flex-direction:column;justify-content:center}.scan-result h2{font-size:54px;margin-bottom:12px}.scan-result p{margin:0 0 8px}.scan-result .scan-symbol{font:300 70px/1 Teko;margin-bottom:24px;color:var(--copper)}.scan-result.allowed{border-color:#7ba26366;background:#7ba2630d}.scan-result.allowed .scan-symbol{color:var(--green)}.scan-result.denied{border-color:#d4907b66;background:#d4907b0a}.scan-result.denied .scan-symbol{color:var(--red)}.scan-result.used{border-color:#c4a15e66;background:#c4a15e0a}.scan-result.used .scan-symbol{color:#e3c88b}.scan-result button{margin-top:22px;align-self:flex-start}.access-log{width:100%;border-collapse:collapse;font-size:12px}.access-log th{text-align:left;color:var(--muted);font-weight:400}.access-log td,.access-log th{padding:13px 8px;border-bottom:1px solid var(--line)}.access-log-wrap{overflow-x:auto}.notice{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:20;background:#d8ad85;color:#1b110b;padding:15px 22px;max-width:calc(100vw - 35px);box-shadow:0 12px 35px #0006;font-size:13px;transition:opacity .2s,transform .2s}.notice.show{opacity:1;transform:translate(-50%,0)}.privacy{max-width:760px}.privacy h2{font-size:34px;margin-top:35px}.privacy ul{padding-left:20px;color:var(--muted);line-height:1.8}.privacy a{text-decoration:underline}.error-page{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;min-height:60vh}.error-page img{width:min(100%,340px);display:block;margin:auto;filter:drop-shadow(25px 30px 35px #0007)}.error-code{font-size:12px;letter-spacing:2px;color:var(--copper);margin-bottom:25px;display:block}.error-page h1{font-size:clamp(65px,8vw,110px)}.error-page p{max-width:320px}.error-page .actions{margin-top:35px}:focus-visible{outline:2px solid #dfb98e;outline-offset:4px}[hidden]{display:none!important}
@media(max-width:900px){.auth-layout{grid-template-columns:1fr 360px;gap:8%}.auth-art-inner{padding-left:25px}.auth-art h1{font-size:70px}.dashboard-grid{gap:30px}.booking-layout,.staff-two,.door-layout{grid-template-columns:1fr;gap:30px}.staff-row{grid-template-columns:1fr auto}.staff-row .row-actions{grid-column:1/-1}.booking-layout .floorplan{max-width:600px}.door-layout .scan-result{min-height:230px}.scanner-shell{max-width:600px}.error-page{gap:30px}.error-page img{max-width:250px}}
@media(max-width:650px){.ops-header{height:80px;margin:0 22px}.ops-brand img{width:33px;height:39px}.ops-brand span{font-size:32px;letter-spacing:4px}.back-link{font-size:11px}.ops-main{width:auto;margin:40px 22px 65px}.ops-footer{margin:0 22px;font-size:11px;gap:20px;flex-wrap:wrap}.ops-footer span{margin-left:0;flex-basis:100%}.auth-layout{display:block;min-height:0}.auth-art{min-height:0;margin-bottom:22px}.auth-art:before{display:none}.auth-art-inner{padding:0}.auth-art img{display:none}.auth-art h1{font-size:65px;max-width:none;margin-bottom:13px}.auth-art p{max-width:none;font-size:14px}.auth-form{padding:22px 0}.auth-form h2{font-size:36px}.topbar{display:block;margin-bottom:30px}.topbar-actions{margin-top:20px}.topbar h1{font-size:65px}.dashboard-grid{display:block}.dashboard-grid>.panel{margin-top:30px}.pass-card{max-width:none}.pass-card .qr{width:225px}.section-block{margin-top:45px}.section-block>.section-heading{display:block}.section-block>.section-heading .text-button{margin-top:10px}.reservation-row{grid-template-columns:1fr}.wristband{grid-template-columns:85px 1fr;gap:15px;padding:16px}.wristband>.qr{width:85px;height:85px}.wristband h3{font-size:28px}.panel{padding:22px}.booking-layout{display:block}.booking-form-panel{margin-top:35px}.table-node{width:34px;height:34px;font-size:11px}.staff-row{grid-template-columns:1fr auto;gap:13px}.staff-row .row-actions{gap:6px}.staff-row .status{font-size:10px}.staff-row button{padding:8px 10px}.stats{gap:28px}.tabs button{padding:10px 12px;font-size:12px}.form-two{grid-template-columns:1fr}.staff-two{gap:25px}.event-form{padding:20px}.door-layout{display:flex;flex-direction:column}.scan-result{order:-1;min-height:200px;padding:25px}.scan-result h2{font-size:44px}.scan-result .scan-symbol{font-size:50px;margin-bottom:12px}.scanner-shell{padding:15px}.scan-controls button{padding:11px;font-size:11px}.error-page{display:flex;flex-direction:column;gap:25px;align-items:flex-start}.error-page img{width:150px;margin:0;order:-1}.error-page h1{font-size:75px}.privacy h1{font-size:65px}}
.campaign-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.campaign-heading h3{min-width:0;overflow-wrap:anywhere}.campaign-preview{border-block:1px solid var(--line);padding:18px 0;margin-top:18px}.campaign-message{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink)!important;line-height:1.7!important}.campaign-confirm:empty{display:none}.campaign-send-form{padding-top:25px;margin-top:25px;border-top:1px solid var(--line)}.campaign-send-form h3{margin-bottom:0}.campaign-result{padding:16px 20px;border:1px solid #bad2a955;margin-bottom:28px}.campaign-card .status.sent{color:var(--green)}.campaign-card .status.sending{color:#dcbd80}#public-token-form{margin-top:30px}#public-token-form .actions{margin-top:0}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
