:root{color-scheme:dark;--bg:#0b0b0b;--panel:#191919;--line:#373737;--yellow:#f7df1e;--muted:#aaa;--text:#eee}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.6 Arial,sans-serif}a{color:var(--yellow)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #555;background:#252525;color:#eee;padding:10px 16px;border-radius:5px;min-height:44px}button:hover{border-color:var(--yellow)}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--yellow);color:#101010;border-color:var(--yellow);font-weight:700}.danger{border-color:#e68989;color:#ffc1c1}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}
.portal-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:18px 4vw;gap:16px}.portal-header>div{display:flex;gap:20px;align-items:center}.brand{display:flex;align-items:center;gap:16px;text-decoration:none;color:#ddd;font-size:11px;letter-spacing:.15em}.brand img{width:68px;height:44px;object-fit:contain}.portal-shell{max-width:1440px;padding:40px 4vw 90px;margin:auto}.auth-card{max-width:540px;margin:35px auto;padding:36px;background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--yellow)}h1,h2,h3{line-height:1.15;margin:0 0 18px}h1{font-size:clamp(34px,4vw,54px);letter-spacing:-.04em}h2{font-size:25px}h3{font-size:19px;margin-top:26px}p{margin:0 0 18px;color:#bbb}.eyebrow{color:var(--yellow);font-size:11px;font-weight:700;letter-spacing:.12em;margin:0 0 12px}.page-heading,.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px}.badge{border:1px solid #665f22;color:var(--yellow);padding:7px 12px;font-size:11px;white-space:nowrap}.tabs{display:flex;gap:8px;overflow:auto;padding:10px 0 20px;border-bottom:1px solid var(--line);margin-bottom:20px}.tabs button{white-space:nowrap;background:transparent;border-color:transparent}.tabs .selected{color:#111;background:var(--yellow);font-weight:700}.notice{white-space:pre-wrap;overflow-wrap:anywhere;color:#f2d96e;min-height:24px}.notice.error{color:#ffaaa5}.notice.success{color:#a4e6b8}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:24px 0}.metrics article{background:var(--panel);padding:24px}.metrics span{display:block;color:#bbb;font-size:12px}.metrics strong{font-size:44px;display:block;margin-top:10px}.metrics .accent{background:var(--yellow);color:#111}.metrics .accent span{color:#333}.split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);gap:20px;align-items:start}.panel{background:var(--panel);border:1px solid var(--line);padding:28px;min-width:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 22px}.wide{grid-column:1/-1}label{display:block;font-size:13px;color:#c5c5c5;margin:0 0 18px}input,textarea,select{display:block;width:100%;min-width:0;margin-top:7px;border:1px solid #555;border-radius:4px;background:#101010;color:#f4f4f4;padding:11px 12px;min-height:44px}textarea{resize:vertical}.check{display:flex;gap:12px;align-items:flex-start}.check input{width:18px;min-height:18px;margin-top:3px;flex:none;accent-color:var(--yellow)}.actions{display:flex;flex-wrap:wrap;gap:10px}.inline-form{display:flex;align-items:end;gap:10px;margin-top:25px}.inline-form label{flex:1;margin:0}.camera-frame{min-height:240px;background:#050505;border:1px dashed #555;position:relative;display:grid;place-items:center;margin-bottom:14px;padding:24px;text-align:center;color:#999}.camera-frame video{width:100%;max-height:300px}.table-scroll{overflow:auto;max-height:580px}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:#aaa;font-size:11px;text-transform:uppercase}th,td{padding:14px 9px;border-bottom:1px solid var(--line);vertical-align:top}td{overflow-wrap:anywhere}td small{display:block;color:#aaa}td button{font-size:11px;padding:5px 9px;min-height:34px;margin:3px}.pill{display:inline-block;background:#343434;color:#ddd;padding:3px 8px;border-radius:20px;font-size:11px;white-space:nowrap}.pill.checked-in,.pill.sent{background:#20462b;color:#ade9bc}.pill.cancelled,.pill.failed{background:#582c2c;color:#ffd1d1}.pill.preview,.pill.draft{background:#4c4520;color:#f3e58d}.list-item{padding:18px 0;border-bottom:1px solid var(--line)}.list-item p{margin:4px 0 10px;font-size:12px}.list-item button{margin:3px}.muted{font-size:12px;color:#aaa}.qr{display:block;max-width:240px;width:100%;margin:24px auto;background:white;padding:12px}code,pre{overflow-wrap:anywhere;white-space:pre-wrap;font-size:13px}pre,.summary-box{padding:20px;background:#101010;border:1px solid var(--line);margin-bottom:22px}.summary-box p{margin:8px 0}.auth-card button{margin-top:10px}.document-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.legal-shell{max-width:900px}.legal-nav{display:flex;gap:20px;flex-wrap:wrap;margin:25px 0}.cookie-banner{position:fixed;bottom:16px;left:16px;right:16px;margin:auto;max-width:800px;z-index:50;display:flex;gap:20px;align-items:center;background:#222;border:1px solid #777;padding:20px;box-shadow:0 8px 40px #0008}.cookie-banner p{margin:0;flex:1;font:13px/1.5 Arial,sans-serif;color:#ddd}.cookie-banner button{flex:none}dialog{background:#161616;color:#eee;border:1px solid #666;padding:28px;max-width:800px;width:calc(100% - 30px);max-height:90vh}dialog::backdrop{background:#000b}iframe{width:100%;height:65vh;border:0;background:#fff}.booking-card{max-width:600px;margin:auto}.booking-card .qr{max-width:280px}.portal-header a{font-size:12px}.auth-card form button{width:100%}
@media(max-width:850px){.split{grid-template-columns:1fr}.page-heading{align-items:start;flex-direction:column}.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.portal-shell{padding:28px 16px 60px}.portal-header{padding:14px 16px}.brand span{display:none}.panel,.auth-card{padding:22px}.form-grid{grid-template-columns:1fr}.metrics article{padding:20px}.metrics strong{font-size:36px}.panel-heading{flex-wrap:wrap}.inline-form{align-items:stretch;flex-direction:column}.cookie-banner{align-items:stretch;flex-direction:column}.auth-card{margin:10px auto}.actions button{flex:1}.portal-header>div{gap:12px}}
