:root{--ink:#2f3530;--muted:#6b7469;--paper:#fff;--soft:#f6f8f2;--soft-green:#eef6dc;--panel:#fff;--line:#dfe6d8;--accent:#9dc238;--accent-dark:#6e9825;--accent-warm:#e09900;--green:#477d1f;--red:#b93a31;--shadow:0 18px 42px #3a443121;--radius:8px}*{box-sizing:border-box}html{background:var(--soft);min-height:100%}body{min-height:100vh;color:var(--ink);background:linear-gradient(180deg, #9dc2382e, #fff0 330px), var(--soft);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:Open Sans,Arial,Helvetica,sans-serif;font-size:16px;line-height:1.55}a{color:inherit}button,input,select{font:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #9dc23880}.shell{width:min(1180px,100vw - 40px);margin:0 auto;padding:34px 0 48px}.kiosk{place-items:center;min-height:100vh;padding:28px;display:grid}.hero{background:var(--panel);border:1px solid var(--line);border-top:8px solid var(--accent);border-radius:var(--radius);width:min(980px,100%);box-shadow:var(--shadow);padding:clamp(28px,5vw,58px);position:relative;overflow:hidden}.hero:before{content:"";background:url(/sbbar.svg) 0/contain no-repeat;width:min(300px,70vw);height:54px;margin-bottom:clamp(26px,4vw,44px);display:block}.eyebrow{color:var(--accent-dark);text-transform:uppercase;letter-spacing:.1em;margin:0 0 10px;font-size:.78rem;font-weight:800}h1,h2,h3{color:var(--ink);margin:0 0 16px;font-weight:800;line-height:1.12}h1{max-width:820px;font-size:clamp(2.7rem,6vw,5.9rem)}.shell>h1{font-size:clamp(2.25rem,4vw,3.6rem)}h2{font-size:clamp(1.45rem,3vw,2.25rem)}h3{font-size:1.25rem}p{color:var(--muted);margin:0 0 1rem}small{color:var(--muted)}.grid{gap:18px;display:grid}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card,.table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:0 12px 28px #3a443114}.card{border-top:5px solid var(--accent)}.card h2,.table-wrap h2{margin-bottom:12px}.button,button{background:var(--accent);color:#22300f;cursor:pointer;border:0;border-radius:4px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:13px 20px;font-weight:800;text-decoration:none;transition:transform .16s,box-shadow .16s,background-color .16s;display:inline-flex}.button:hover,button:hover{background:#acd244;transform:translateY(-1px);box-shadow:0 10px 22px #6e982533}.button:disabled,button:disabled{cursor:not-allowed;opacity:.56;transform:none}.button.secondary,button.secondary{color:var(--ink);border:1px solid var(--line);background:#fff}.button.secondary:hover,button.secondary:hover{background:var(--soft-green)}.button.secondary.subtle,button.secondary.subtle{min-height:42px;color:var(--muted);background:#ffffffb8;padding:10px 14px}.button-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.button.warn,button.warn{background:var(--accent-warm);color:#fff}.button.warn:hover,button.warn:hover{background:#c98200}input,select{border:1px solid var(--line);width:100%;min-height:48px;color:var(--ink);background:#fff;border-radius:4px;padding:13px 14px}input::placeholder{color:#9da797}label{color:var(--muted);gap:7px;font-size:.92rem;font-weight:700;display:grid}.checkbox-label{align-items:center;gap:10px;display:flex}.checkbox-label input{width:auto;min-height:auto}.form-note{color:var(--muted);font-size:.92rem}.nav{flex-wrap:wrap;align-items:center;gap:10px;margin:18px 0 28px;display:flex}.nav form{margin:0}.table-wrap{overflow-x:auto}.table-wrap.compact{box-shadow:none;margin-top:18px;padding:0}table{border-collapse:collapse;width:100%;min-width:760px;font-size:.92rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:13px 11px}th{color:var(--ink);background:var(--soft-green);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-weight:800}tr:last-child td{border-bottom:0}td form{margin:0}td button{white-space:nowrap;min-height:38px;padding:9px 12px}.badge{min-height:30px;color:var(--green);background:#9dc2382e;border-radius:999px;align-items:center;padding:5px 11px;font-weight:800;display:inline-flex}.badge.off{color:var(--red);background:#b93a311f}.detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 18px;margin:0;display:grid}.detail-grid div{min-width:0}.detail-grid .wide{grid-column:1/-1}.detail-grid dt{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-weight:800}.detail-grid dd{color:var(--ink);overflow-wrap:anywhere;margin:4px 0 0}.log-detail{margin-bottom:22px}.log-json-grid{grid-template-columns:1fr}.log-json pre{border:1px solid var(--line);max-height:560px;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;background:#f8faf5;border-radius:4px;margin:0;padding:14px;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.88rem;line-height:1.5;overflow:auto}.amounts{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:30px;display:grid}.amounts button{border-radius:var(--radius);min-height:106px;color:var(--accent-dark);background:#fff;border:1px solid #6e982559;font-size:clamp(1.65rem,4vw,2.45rem);box-shadow:0 10px 24px #3a443114}.amounts button:hover{background:var(--accent);color:#22300f}.amounts button.selected{background:var(--accent);color:#22300f;border-color:var(--accent-dark);box-shadow:0 12px 26px #6e98253d}.amounts button:disabled:hover{color:var(--accent-dark);background:#fff;box-shadow:0 10px 24px #3a443114}.amounts button.selected:disabled,.amounts button.selected:disabled:hover{background:var(--accent);color:#22300f}.status-box{border:1px solid var(--line);border-left:8px solid var(--accent);border-radius:var(--radius);background:var(--soft-green);min-height:120px;margin-top:22px;padding:22px}.status-box h2{color:var(--accent-dark);word-break:break-word;font-size:clamp(2rem,5vw,3.6rem)}.status-box p:last-child,.hero p:last-child,.card p:last-child{margin-bottom:0}.message-box{border:1px solid var(--line);border-left:8px solid var(--accent);border-radius:var(--radius);background:var(--soft-green);color:var(--muted);margin:0 0 24px;padding:18px 20px}.message-box.warning{border-color:#b93a3147;border-left-color:var(--red);color:#7c2923;background:#fff0ee}.activation-admin{border-top-color:var(--red);margin-bottom:22px}.voucher-result h1,.receipt h1{margin-bottom:12px}.voucher-details{grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr);align-items:stretch;gap:22px;margin:28px 0 22px;display:grid}.voucher-code,.qr-panel,.receipt-meta{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:22px}.voucher-code{border-left:8px solid var(--accent)}.voucher-code h2{color:var(--accent-dark);word-break:break-word;font-size:clamp(2rem,6vw,4.2rem)}.voucher-code strong,.receipt-meta strong{color:var(--ink)}.qr-panel{text-align:center;align-content:center;place-items:center;gap:12px;display:grid}.qr-panel img{border:1px solid var(--line);border-radius:var(--radius);width:min(260px,100%);height:auto}.qr-placeholder{aspect-ratio:1;border:1px dashed var(--line);width:min(260px,100%);color:var(--muted);text-align:center;place-items:center;display:grid}.receipt-mail-form{border:1px solid var(--line);border-radius:var(--radius);background:#fff;gap:14px;margin:0 0 22px;padding:22px;display:grid}.receipt-mail-form label{color:var(--ink);font-size:1.1rem;font-weight:800;display:block}.receipt-mail-form p{margin-top:4px}.receipt-mail-controls{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.form-message{color:var(--green);margin:0;font-weight:700}.form-message.error{color:var(--red)}.receipt-page{align-items:start}.receipt{margin-top:28px}@media (max-width:860px){.grid.two,.grid.three{grid-template-columns:1fr}.amounts{grid-template-columns:repeat(2,minmax(0,1fr))}.voucher-details,.receipt-mail-controls,.detail-grid{grid-template-columns:1fr}}@media (max-width:560px){.kiosk{padding:14px}.shell{width:min(100% - 24px,1180px);padding:20px 0 32px}.hero{padding:24px}.hero:before{width:min(260px,100%);height:46px}.amounts{grid-template-columns:1fr}.nav{align-items:stretch}.nav,.nav form,.nav .button,.nav button{width:100%}}
