:root{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;background:#0d171b;color:#eff9f6}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 0 0,#244c46,transparent 48%),#0d171b;min-height:100vh}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{color:inherit;text-decoration:none}header,main,footer{max-width:1100px;margin:auto;padding-left:24px;padding-right:24px}header{height:90px;border-bottom:1px solid #ffffff20;display:flex;align-items:center;justify-content:space-between}.logo{font-size:24px;font-weight:900;letter-spacing:1px}.logo span,h1 em,small{color:#b5eed0}h1 em{font-style:normal}.pill{color:#bfebd1;border:1px solid #507d6c;padding:9px 13px;border-radius:30px;font-size:12px}header button,.link,#close{border:0;background:none;color:#b5eed0;padding:9px}.layout{min-height:70vh;display:grid;grid-template-columns:1.2fr 0.8fr;gap:70px;align-items:center;padding:65px 0}.pitch h1{font-size:clamp(39px,5.3vw,67px);letter-spacing:-2px;line-height:1.14}.pitch p{max-width:500px;color:#bdd0c9;font-size:16px;line-height:1.85}.panel,.metrics>div,.qr-item{background:#1b2b30;border:1px solid #ffffff24;border-radius:18px;padding:27px;box-shadow:0 14px 60px #0002}.tabs{display:flex;background:#102026;padding:5px;border-radius:11px;margin-bottom:15px}.tabs button{flex:1;border:0;border-radius:8px;padding:12px;background:none;color:#9eb5af}.tabs .selected{background:#2d5046;color:#e5fff0;font-weight:bold}label{display:block;font-size:13px;font-weight:700;margin:17px 0 7px}input:not([type=checkbox]){background:#101d22;border:1px solid #57776f;border-radius:10px;color:#fff;padding:14px;width:100%;outline:none}input:focus{border-color:#b5eed0}.primary{background:#b5eed0;border:0;border-radius:10px;padding:14px 20px;color:#11241a;font-weight:800}form>.primary{width:100%;margin-top:23px}.tip,.heading p{font-size:13px;color:#acc3ba;line-height:1.6}[role=status]{font-size:13px;color:#eeb98e;line-height:1.6}.heading{display:flex;justify-content:space-between;align-items:center;gap:18px}.heading h1{font-size:38px}#dash{padding:64px 0 100px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:35px 0}.metrics>div{font-size:13px;color:#adc6bc}.metrics strong{font-size:34px;color:#fff;display:block;margin-top:12px}.qr-item{display:grid;grid-template-columns:1fr auto;gap:15px;align-items:center;margin-bottom:14px}.qr-item h3{margin:0 0 8px}.qr-item p{font-size:12px;color:#b2c9bf;word-break:break-all;margin:6px 0}.qr-item button{border:1px solid #587269;background:#274239;color:white;border-radius:8px;padding:9px 12px;margin:3px}.status{display:inline-block;font-size:11px;border-radius:30px;padding:4px 9px;background:#295e42;color:#c4f7d5}.status.off{background:#6c4337;color:#ffdac3}footer{border-top:1px solid #ffffff20;padding-top:28px;padding-bottom:30px;font-size:12px;color:#839f94}.overlay{position:fixed;inset:0;display:grid;place-items:center;padding:20px;background:#000c}.overlay[hidden],section[hidden],button[hidden]{display:none}.modal{width:min(100%,480px)}.modal .heading h2{margin:0}.row{display:flex;gap:10px;align-items:center;font-weight:400}@media(max-width:800px){.layout{grid-template-columns:1fr;gap:25px;padding:45px 0}.pitch h1{font-size:45px}.panel{padding:20px}.heading{align-items:flex-start;flex-direction:column}.heading h1{font-size:31px}.modal .heading{flex-direction:row}.metrics{gap:7px}.metrics>div{padding:12px;font-size:11px}.metrics strong{font-size:23px}.qr-item{grid-template-columns:1fr}.pill{display:none}.qr-item button{padding:11px}header,main,footer{padding-left:17px;padding-right:17px}}

#recovery:not([hidden]){display:grid;}
#recovery .panel{max-width:460px;}

/* Mobile QR preview and save controls */
.preview-modal{width:min(100%,510px);max-height:min(92dvh,850px);overflow-y:auto;overscroll-behavior:contain}.preview-modal .heading{flex-direction:row;align-items:center}.preview-modal h2{margin:0}#preview-close{background:transparent;border:0;color:#d9f6e6;font-size:24px;padding:10px}select{width:100%;border:1px solid #57776f;border-radius:10px;background:#101d22;color:white;padding:14px;font:inherit}.qr-picture{background:#fff;border-radius:12px;margin:16px auto;padding:15px;display:grid;place-items:center;width:min(100%,345px)}.qr-picture img{width:100%;height:auto;aspect-ratio:1;object-fit:contain;display:block}.preview-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.preview-actions button{padding:13px 8px;border-radius:10px;border:1px solid #5d7a72;color:#effaf2;background:#274239;min-height:46px}.preview-actions .primary{grid-column:1/-1;color:#11241a;background:#b5eed0;border:0}.preview-destination{font-size:12px;overflow-wrap:anywhere;color:#b4e7cf}.overlay{z-index:20;overflow-y:auto;align-items:center}.qr-item button{min-height:43px}.qr-item .action-set{display:flex;flex-wrap:wrap;gap:4px}.modal{max-height:90dvh;overflow:auto}@media(max-width:500px){.overlay{padding:10px;align-items:center}.preview-modal{padding:17px}.qr-picture{width:min(100%,280px)}.qr-item .action-set{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.qr-item .action-set button{margin:0}.preview-actions{grid-template-columns:1fr 1fr}}

/* V4 single-colour QR picker, responsive and touch-friendly */
.qr-presets{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px;margin-top:12px}
.qr-presets button{aspect-ratio:1;border:3px solid transparent;outline:1px solid #587269;border-radius:12px;background:var(--swatch);min-height:36px;cursor:pointer}
.qr-presets button.selected{border-color:#d4ffea;outline:2px solid #b5eed0;box-shadow:0 0 0 2px #142c24 inset}
.color-custom{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:12px}.color-custom label{margin:0}.color-custom input[type=color]{width:52px;height:44px;border-radius:8px;border:1px solid #6f8f84;padding:2px;background:transparent;cursor:pointer}.color-custom span{font-size:13px;color:#ccebdc}
@media(max-width:520px){.qr-presets{grid-template-columns:repeat(4,minmax(0,1fr))}.qr-presets button{min-height:46px}}

/* V6: clear customization action, accessible single-colour swatches */
.qr-item .action-set button:nth-child(2){background:#b5eed0;color:#102a1d;border-color:#b5eed0;font-weight:800}
.qr-presets button:nth-child(1){background:#174D35}.qr-presets button:nth-child(2){background:#171717}.qr-presets button:nth-child(3){background:#193B66}.qr-presets button:nth-child(4){background:#791D32}.qr-presets button:nth-child(5){background:#583783}.qr-presets button:nth-child(6){background:#086B70}.qr-presets button:nth-child(7){background:#68412B}.qr-presets button:nth-child(8){background:#9C420B}
.preview-actions .designer-save{grid-column:1/-1;background:#b5eed0;color:#102a1d;border:0;font-weight:800}
.qr-presets button:focus-visible,.preview-actions button:focus-visible,.action-set button:focus-visible{outline:3px solid #fff;outline-offset:3px}
@media(max-width:500px){.preview-modal{max-height:94dvh}.qr-picture{width:min(100%,260px)}.preview-actions button{min-height:48px}}

.build-version{display:inline-block;margin-left:8px;color:#b5eed0;font-size:11px;letter-spacing:.05em;border:1px solid #426e5b;border-radius:7px;padding:5px 7px}
