:root{--bg:#07131b;--ink:#f6f1e1;--wine:#b68a48;--accent:#c52c39;--muted:#a8b2b8;--line:#d9b77930;color-scheme:dark}
body{font-family:Invitation,system-ui,sans-serif;background:radial-gradient(ellipse at 90% 0,#77502c25,transparent 45%),#07131b;color:var(--ink);min-height:100dvh}
[hidden]{display:none!important}h1,h2,h3{font-family:Invitation,system-ui,sans-serif}h1{font-size:32px;letter-spacing:-1px}h2{font-size:21px}h3{color:#e8c591}button{background:#152832;border-color:#b8955c42;color:#f6f1e1;min-height:42px;border-radius:10px;transition:background .15s,border-color .15s,transform .15s}button:hover{background:#213844;border-color:#e0b46999;filter:none}button:active{transform:translateY(1px)}button:disabled{opacity:.42;cursor:not-allowed;transform:none}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid #e0b469;outline-offset:3px}.primary{background:linear-gradient(120deg,#e8c88e,#c99a52);color:#101b22;border-color:#e7c28c;font-weight:700}.primary:hover{background:#f1d29b;border-color:#fff1ce}.danger{background:#5c202d;border-color:#bf5463;color:#ffe2e8}
.sidebar{width:258px;padding:30px 22px;background:linear-gradient(#06121bcf,#06121bf5),url('/pass-theatre.jpg') center/cover;border-right:1px solid #d4a96b36;box-shadow:8px 0 40px #0003;z-index:3}.brand{font-size:inherit;letter-spacing:normal;line-height:1;display:block;margin:0 0 20px}.brand-logo{display:block;width:100%;height:auto;max-height:94px}.brand-caption{font-size:9px;letter-spacing:3px;text-align:center;color:#d9bd8c;margin-top:8px}.brand span{font:inherit;margin:0;letter-spacing:normal}.event{font-size:16px;border-top:1px solid #d4a96b36;padding-top:20px;letter-spacing:2px;color:#e6c797}.event small{font-size:11px;color:#c1c9cb;letter-spacing:.5px}nav{margin-top:30px;gap:7px}nav button{min-height:48px;color:#bdc7cb;border:1px solid transparent;border-radius:10px;font-size:11px;padding:13px 12px;gap:12px}nav button span{font-size:12px}nav button.selected{color:#f8e6c3;background:linear-gradient(90deg,#d7ae6c25,#d7ae6c0a);border:1px solid #d4a96b40;border-left:3px solid #c52c39;border-radius:9px}.aside-foot{color:#d8b577;font-size:9px;line-height:1.8}.aside-foot small{color:#9caeb5;font-size:10px}.sidebar .install-button{margin-top:15px;width:100%;font-size:11px}
main{margin-left:258px;max-width:1800px;padding:36px clamp(18px,3vw,48px)}header{padding-bottom:21px;border-bottom:1px solid #d4a96b33;margin-bottom:22px}.eyebrow{font-size:9px;letter-spacing:2px;color:#e0b469}.header-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.demo-pill{background:#132730;border:1px solid #d4a96b33;color:#d8c49d;padding:10px 14px}.connection-pill{font-size:10px;display:inline-flex;align-items:center;gap:7px;color:#9cceb7}.connection-pill::before{content:'';height:6px;width:6px;border-radius:50%;background:#74b793}.is-offline .connection-pill{color:#f2c16e}.is-offline .connection-pill::before{background:#f2c16e}.notice{background:#132730;border:1px solid #d4a96b30;border-left:3px solid #c52c39;color:#c6d0d1;border-radius:9px;padding:13px 17px;font-size:11px;line-height:1.7;margin:0 0 22px}.stats{gap:15px;margin-bottom:23px}.stat{background:linear-gradient(135deg,#182b35,#0e202a);border-color:#d4a96b35;padding:21px;border-radius:13px}.stat strong{color:#f4e4c5;font-size:30px;font-weight:700}.stat span{font-size:11px;color:#b7c3c6}.panel{background:linear-gradient(145deg,#10212bf5,#0b1a23f7);border-color:#d4a96b38;padding:26px;border-radius:15px;box-shadow:0 16px 55px #0002}.section-head{gap:16px;flex-wrap:wrap}.section-head p{font-size:12px;color:#b1bdc2}.toolbar{flex-wrap:wrap;align-items:end;padding:17px;background:#07151e75;border:1px solid #d4a96b20;border-radius:12px;gap:12px}.toolbar label{flex:1 1 180px;margin:0}.toolbar input{min-width:150px}.toolbar button{flex:0 0 auto}.panel>.actions{margin-bottom:18px}
label{font-size:11px;color:#cbd1cf;line-height:1.6}input:not([type=checkbox]),select,textarea{background:#071720;color:#f6f1e1;border:1px solid #9c875c60;border-radius:8px;padding:12px;min-height:44px}input::placeholder,textarea::placeholder{color:#81949d}input[readonly]{background:#132730;color:#c5c6bb}select option{background:#0e202a;color:#f6f1e1}input[type=checkbox]{accent-color:#d9b878;width:17px;height:17px}textarea{width:100%;resize:vertical}.tablewrap{border:1px solid #d4a96b28;border-radius:11px;scrollbar-color:#8d7448 #0c1b24}table{min-width:680px}th{background:#081921;color:#d8bb88;position:sticky;top:0;letter-spacing:1.4px;font-size:9px;padding:15px 13px;border-bottom-color:#d4a96b38}td{padding:18px 13px;color:#e1e4dd;border-bottom-color:#d4a96b20;font-size:12px}td strong{font-size:14px;line-height:1.45}td small{display:block;color:#b6c3c6;font-size:10px;line-height:1.7}tbody tr:hover td{background-color:#d8b8780a}.actions{gap:7px}.actions button{font-size:10px;min-height:36px;padding:8px 10px}.chip{background:#d4b77a16;border:1px solid #d4a96b30;color:#e7d0a2;font-size:9px;padding:5px 8px}.state{font-size:10px;letter-spacing:.2px;padding:6px 10px}.active{background:#143c2a;color:#b7edcf}.pending{background:#493b1a;color:#ffe2a1}.revoked{background:#4b202a;color:#ffd6dd}.muted{color:#a5b7be}.person-card{background:#0a1b24c9;border:1px solid #d4a96b32;border-radius:11px;padding:19px}.person-card h3{color:#eed6ad}.cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,235px),1fr))}.person-card p{font-size:12px}.person-card button{margin:4px 3px 0 0}.operator-zones{gap:14px}.result{background:#0a1b24;border-color:#d4a96b44}.result.allow{background:#123526;color:#d1f3dd;border-color:#5a9d7b}.result.deny{background:#44202b;color:#ffe2e8;border-color:#bd6371}.result.accompany{background:#42371e;color:#ffebbc;border-color:#b19454}.camera{background:#030e14;border:1px solid #d4a96b35}.camera #cameraHint{font-family:Invitation,system-ui,sans-serif;color:#f0d7ae}.camera small{font-family:Invitation,system-ui,sans-serif;color:#a2b7be}.logitem{border-color:#d4a96b24}.logitem small{color:#9aafb8}footer{flex-wrap:wrap;gap:12px;font-size:10px;color:#9cafb7;padding-bottom:10px}footer button{min-height:38px;color:#d9bd8c}
dialog{background:linear-gradient(145deg,#142832,#081822);color:#f6f1e1;border:1px solid #d4a96b70;border-radius:17px;box-shadow:0 30px 100px #0009;padding:28px;max-height:90dvh;width:min(620px,calc(100% - 28px));overscroll-behavior:contain}dialog::backdrop{background:#020b11c9;backdrop-filter:blur(7px)}dialog h2{color:#f2dfbd;margin-bottom:15px}dialog .close{background:transparent;color:#d9bd8c;min-height:36px}.dialog-actions{flex-wrap:wrap;justify-content:flex-start;gap:9px}.pass-card{background:#06131b;border-color:#d4a96b44;max-width:390px;border-radius:10px}.pass-top{background:#10232b;color:#e8c591}.pass-body p{color:#afc0c5}fieldset{border-color:#d4a96b44;background:#08172066}legend{font-size:11px;color:#d9b878;padding:0 8px}pre{white-space:pre-wrap;overflow-wrap:anywhere;color:#afc1c7;font-size:11px;line-height:1.7}.error,#peopleError{color:#ffb3b9}.permission{border-color:#d4a96b28}.permission label:last-child{color:#b4c4ca}summary{cursor:pointer;color:#e4c99c;padding:13px 0;font-size:12px}details{border-top:1px solid #d4a96b20;margin-top:15px}#toast{background:#e5c48c;color:#101d24;box-shadow:0 8px 24px #0006;border:1px solid #ffe6b9;font-weight:700;max-width:calc(100vw - 28px);font-size:12px}#loginDialog{padding:36px 34px;max-width:465px;background:linear-gradient(#06131be8,#06131bf5),url('/pass-theatre.jpg') center/cover}#loginDialog .login-brand{margin:-10px 10px 24px}#loginDialog h2{font-family:Georgia,serif;font-weight:400;font-size:28px;text-align:center}#loginDialog .login-intro{text-align:center;color:#b4c2c6;font-size:12px}#loginForm .primary{width:100%;margin-top:7px}#loginDialog .login-install{display:block;margin:18px auto 0;background:transparent;color:#dfc69a;border-color:#d4a96b35;font-size:11px}#openSetup{display:block;margin:15px auto 0;font-size:10px;background:transparent;border:0;color:#a4b8c0}#installDialog ol{padding-left:22px;line-height:1.9;color:#cad5d5}#installDialog li{padding:5px 0}.install-caption{font-size:11px;color:#a8bdc4}.is-offline .notice{border-left-color:#e0b469}#guestRows .rsvp-accepted td,#responseList .rsvp-accepted{background:#123426;color:#dcf7e9}#guestRows .rsvp-declined td,#responseList .rsvp-declined{background:#40202a;color:#ffe8ed}#guestRows .rsvp-waiting td{background:#39321d;color:#fff0c8}#guestRows .rsvp-accepted td small{color:#b1d8c5}#guestRows .rsvp-declined td small{color:#e7bcc5}#guestRows .rsvp-waiting td small{color:#dccd9f}#batchPreview details{background:#071820;border-color:#d4a96b35}#responseNotice{color:#e7c38c}
@media(min-width:1500px){main{padding-top:42px}.panel{padding:30px}}
@media(max-width:1000px){.sidebar{width:210px;padding:26px 15px}main{margin-left:210px;padding:26px 20px}.brand-logo{max-height:74px}nav button{padding:12px 8px;gap:9px}.header-tools{justify-content:flex-end}.demo-pill{display:none}}
@media(max-width:700px){.sidebar{position:sticky;top:0;width:100%;padding:10px 12px 0;background:#06131bf5;backdrop-filter:blur(18px);border-right:0;border-bottom:1px solid #d4a96b40;box-shadow:0 5px 24px #0004}.brand{width:180px;margin:0 auto 6px}.brand-logo{height:45px;width:180px}.brand-caption,.event,.aside-foot{display:none}nav{display:flex;overflow:auto;scrollbar-width:none;gap:4px;margin:0;padding-bottom:8px}nav button{flex:1 0 auto;min-height:42px;justify-content:center;padding:10px 12px;border-radius:8px;gap:6px;white-space:nowrap;font-size:9px}nav button span{font-size:10px}nav button.selected{border-left:1px solid #d4a96b40;border-bottom:2px solid #c52c39;border-radius:8px}main{margin:0;padding:21px 12px;max-width:none}header{align-items:flex-start;padding-bottom:15px;margin-bottom:17px}.header-tools{gap:7px;max-width:120px}.header-tools button{font-size:10px;padding:8px 10px;min-height:36px}.connection-pill{font-size:9px}h1{font-size:25px;line-height:1.2;letter-spacing:-.6px}.eyebrow{font-size:8px;letter-spacing:1px}.notice{font-size:10px;padding:11px 13px;margin-bottom:16px}.stats{gap:7px}.stat{padding:13px 10px}.stat strong{font-size:24px}.stat span{font-size:9px;line-height:1.5;display:block}.panel{padding:17px 13px;border-radius:12px}.section-head{align-items:stretch;gap:12px;margin-bottom:16px}.section-head h2{font-size:19px}.section-head>button{width:100%}.toolbar{padding:12px;gap:10px;flex-direction:column;align-items:stretch}.toolbar label{flex:auto}.toolbar button{width:100%}.scan-settings{grid-template-columns:1fr}.scan-grid{grid-template-columns:1fr;gap:18px}.person-card{padding:15px}.cards{grid-template-columns:1fr;margin-top:14px}.person-card h3{font-size:16px}.camera{height:260px}.result{padding:22px}.dialog-actions button{flex:1 1 135px}.actions button{min-height:40px}.manual{flex-direction:column;align-items:stretch}dialog{padding:22px 18px;max-height:92dvh;width:calc(100% - 18px);border-radius:14px}#loginDialog{padding:28px 22px}.permission{flex-wrap:wrap;gap:7px}.pass-card{max-width:100%}footer{font-size:9px;gap:8px}.operator-zones{flex-direction:column}input:not([type=checkbox]),select,textarea{font-size:16px}.install-button{font-size:11px}.tablewrap{max-width:100%;-webkit-overflow-scrolling:touch}td .actions{min-width:145px}.panel>.actions>button{flex:1 1 145px}#responseCounts{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}}
@media(display-mode:standalone){body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.install-button,.login-install{display:none!important}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.sidebar,.header-tools{display:none!important}.pass-card{border:0}dialog#passDialog{background:white}}
/* Multiple operational scopes on a single operator account. */
.operator-roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border-color:#d4a96b55;background:#07172066}
.operator-roles label{display:flex;align-items:center;gap:10px;min-height:48px;margin:0;padding:10px 12px;border:1px solid #d4a96b35;border-radius:9px;font-size:12px;cursor:pointer}
.operator-roles label:has(input:checked){border-color:#e0b469;background:#e0b46912;color:#f6f1e1}
.operator-roles input[type=checkbox]{flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:#e0b469}
.operator-roles small{grid-column:1/-1;color:#bbc7c9;line-height:1.6}
@media(max-width:480px){.operator-roles{grid-template-columns:1fr}}
@media(max-width:700px){
 #loginDialog .login-brand{display:flex;justify-content:center;align-items:center;width:100%;margin:-10px 0 24px}
 #loginDialog .login-brand .brand-logo{display:block;width:min(100%,340px);height:auto;max-height:none;margin:0 auto}
}
