:root{color-scheme:dark;font-family:system-ui,sans-serif;background:#000;color:#f4f4f4}*{box-sizing:border-box}body{margin:0;padding:env(safe-area-inset-top) 24px env(safe-area-inset-bottom)}header{max-width:760px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:28px 0}.brand{font-size:calc(28px * var(--text-scale,1));letter-spacing:-1px;font-weight:700;color:white;text-decoration:none}main{max-width:620px;margin:36px auto 80px}h1{font-size:clamp(calc(28px * var(--text-scale,1)),calc(6vw * var(--text-scale,1)),calc(42px * var(--text-scale,1)));line-height:1.15;letter-spacing:-1px}h2{font-size:calc(21px * var(--text-scale,1))}p{color:#aaa;line-height:1.6}.accent{color:#beff38}.test-label{font-size:calc(12px * var(--text-scale,1));letter-spacing:2px;color:#beff38;text-transform:uppercase}button,input,select{font:inherit;border-radius:10px;padding:14px 18px}button{border:1px solid #444;color:#eee;background:#171717;cursor:pointer}button.primary{background:#beff38;color:#0a0a0a;border-color:#beff38;font-weight:700}button:disabled{opacity:.4;cursor:default}input,select{display:block;width:100%;background:#0d0d0d;color:white;border:1px solid #555;margin-top:8px}label{display:block;margin:20px 0;color:#ccc}form>button{width:100%;margin:8px 0}.row{display:flex;flex-wrap:wrap;gap:10px}.row>button{flex:1}#notice{max-width:620px;margin:0 auto 20px;white-space:pre-wrap;color:#f8ba75}dialog{width:min(620px,100%);max-height:calc(100dvh - 32px);overflow:auto;background:#000;color:white;border:1px solid #555;border-radius:16px;padding:20px}dialog::backdrop{background:#000d}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-head button{font-size:calc(24px * var(--text-scale,1));padding:4px 12px}video{width:100%;max-height:45dvh;object-fit:contain;background:#111}#scan-status{white-space:pre-wrap}#scan-close{width:100%;margin-top:12px}.operation{padding:18px 0;border-bottom:1px solid #333}.operation .row button{font-size:calc(13px * var(--text-scale,1));padding:10px}.operation small{color:#aaa}#captcha{min-height:110px}a{color:#beff38}:focus-visible{outline:2px solid #beff38;outline-offset:4px}[hidden]{display:none!important}@media(max-width:480px){body{padding-left:16px;padding-right:16px}main{margin-top:24px}dialog{padding:14px}.row{gap:8px}}
main.admin-wide{max-width:1100px}.admin-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:36px}.admin-layout nav{display:flex;flex-direction:column;gap:12px;padding-top:24px;align-self:start}.admin-layout nav button{text-align:left}.admin-layout nav [aria-current]{border-color:#beff38;color:#beff38}.admin-layout h1{margin-top:16px}.table-scroll{overflow-x:auto;margin:24px 0}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:14px 12px;border-bottom:1px solid #333}th{color:#aaa;font-size:calc(13px * var(--text-scale,1))}td button{padding:9px 12px;font-size:calc(14px * var(--text-scale,1))}.qr-input{display:flex;align-items:center;gap:10px}.qr-input input{flex:1;min-width:0}.qr-input button{flex-shrink:0;margin-top:8px}@media(max-width:680px){.admin-layout{grid-template-columns:125px minmax(0,1fr);gap:14px}.admin-layout nav button{font-size:calc(12px * var(--text-scale,1));padding:12px 8px}.qr-input{flex-wrap:wrap}.qr-input input{flex-basis:100%}th,td{padding:10px 8px}.admin-layout h1{font-size:calc(25px * var(--text-scale,1))}}

header{max-width:1100px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:16px;min-height:110px}.brand{grid-column:2;display:block}.brand img{display:block;width:140px;height:auto;max-height:80px;object-fit:contain}.header-controls{grid-column:3;justify-self:end;display:flex;align-items:center;justify-content:flex-end;min-width:0;max-width:100%;gap:10px}#language{width:auto;min-width:0;max-width:170px;margin:0;padding:12px}#fullscreen{flex-shrink:0}@media(max-width:767px){#fullscreen{display:none}header{gap:6px;padding:18px 0}.brand img{width:90px}#language{max-width:100%;font-size:calc(13px * var(--text-scale,1));padding:9px 5px}.header-controls{gap:0}}@media(pointer:coarse) and (max-height:500px){#fullscreen{display:none}}@media(max-width:480px){.admin-layout{grid-template-columns:90px minmax(0,1fr);gap:12px}.admin-layout nav button{font-size:calc(11px * var(--text-scale,1));overflow-wrap:anywhere}.admin-layout .row>button{flex-basis:100%}}

:root{--text-scale:1;font-size:calc(16px * var(--text-scale))}:root.large-text{--text-scale:1.5}body{min-height:100dvh;display:flex;flex-direction:column}header{width:100%}main{width:100%}footer{margin-top:auto;text-align:center;padding:24px 0;color:#aaa;font-size:calc(12px * var(--text-scale));overflow-wrap:anywhere}#text-size{grid-column:1;grid-row:1;justify-self:start;padding:10px;min-width:44px;min-height:44px}#text-size[aria-pressed="true"]{border-color:#beff38;color:#beff38}.brand,.header-controls{grid-row:1}.refuel{font-size:2rem}h1,h2,button{overflow-wrap:anywhere}html.large-text .admin-layout{grid-template-columns:minmax(0,1fr)}html.large-text #language{max-width:none}html.large-text .brand img{width:70px}

button.primary.refuel{background:#008000;border-color:#008000;color:#fff}

/* Keep native camera controls outside the video/compositing layer, even at 150%. */
#scanner[open]{display:flex;flex-direction:column;gap:12px;height:min(760px,calc(100dvh - 24px));max-height:calc(100dvh - 24px);overflow:hidden;margin:auto;isolation:isolate}
#scanner .dialog-head{flex:none;position:relative;z-index:2}#scanner .dialog-head h2{margin:0}#scanner .dialog-head button{min-width:44px;min-height:44px}
.scan-video{flex:1 1 240px;min-height:0;overflow:hidden;position:relative;z-index:0;pointer-events:none}
#video{display:block;width:100%;height:100%;max-height:none;object-fit:contain;pointer-events:none}
.scan-controls{flex:0 1 auto;min-height:0;max-height:65%;overflow-y:auto;position:relative;z-index:2;background:#000;overscroll-behavior:contain}
.scan-controls label{margin:8px 0}#camera{min-width:0;max-width:100%;min-height:44px;touch-action:manipulation}#scan-status{margin:0 0 10px}#scan-close{margin-top:8px}
html.tablet-layout{--text-scale:1}html.tablet-layout header{gap:16px;padding:20px 0}html.tablet-layout .brand img{width:100px}html.tablet-layout #language{font-size:16px;max-width:170px;padding:12px}html.tablet-layout .header-controls{gap:10px}html.tablet-layout #fullscreen{display:block}html.tablet-layout .admin-layout{grid-template-columns:150px minmax(0,1fr);gap:24px}html.tablet-layout .admin-layout nav button{font-size:14px}
@media (orientation:landscape) and (max-height:500px){#scanner[open]{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,1fr);grid-template-rows:auto minmax(0,1fr);width:min(900px,100%);gap:10px}#scanner .dialog-head{grid-column:1 / -1}.scan-video{height:100%}.scan-controls{height:100%;max-height:none}}
