:root{color-scheme:dark;--bg:#242423;--panel:#30302e;--ink:#f8f4ed;--muted:#bcb8b0;--red:#df483d;--border:#55534e;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink)}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:0;border-radius:12px;background:var(--red);color:#fff;min-height:54px;padding:14px 22px;font-weight:700}button:disabled{opacity:.4;cursor:default}button:hover:enabled{filter:brightness(1.12)}button:focus-visible,a:focus-visible{outline:3px solid #fff;outline-offset:4px}input,select{width:100%;border:1px solid var(--border);border-radius:12px;padding:18px;background:#1e1e1d;color:var(--ink);min-height:58px}input:focus{outline:2px solid var(--red);outline-offset:2px}label{display:block;text-align:left;color:var(--muted);line-height:2}p{line-height:1.6;color:var(--muted)}a{color:inherit}.kiosk{max-width:850px;min-height:100dvh;margin:auto;padding:30px 38px;display:flex;flex-direction:column}header{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #45443f;padding-bottom:26px}.brand{font-size:42px;letter-spacing:-2px;font-weight:900;text-decoration:none;line-height:1}.brand span{display:block;font-size:10px;letter-spacing:8px;text-align:center;margin-top:9px;color:var(--red)}.outline{background:transparent;border:1px solid var(--red);color:#ff8176}.quiet{background:transparent;color:var(--muted);font-weight:400;font-size:14px;padding:10px}.eyebrow{text-transform:uppercase;letter-spacing:3px;color:var(--red);font-size:12px;font-weight:700}main{flex:1;padding:48px 0}h1{font-size:clamp(32px,5vw,48px);line-height:1.12;letter-spacing:-1.5px;margin:14px 0 16px}h2{letter-spacing:-.6px}#search{font-size:22px;margin:22px 0 12px}.results{display:grid;gap:10px}.customer{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;background:var(--panel);border:1px solid #46443f;padding:20px}.customer strong{font-size:21px;display:block;overflow-wrap:anywhere}.customer small{color:var(--muted);display:block;margin-top:8px;font-weight:400}.pill{font-size:13px;border-radius:30px;padding:8px 12px;white-space:nowrap;color:#ffb2a8;background:#4c302d}.card{text-align:center;background:var(--panel);padding:30px;border:1px solid #46443f;border-radius:20px;margin:20px 0}.stamps{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:28px 0}.stamp{aspect-ratio:1;display:grid;place-items:center;border:2px solid #62605a;border-radius:50%;font-size:22px;color:#aaa69e}.stamp.filled{background:var(--red);border-color:var(--red);color:white}.stamp.free{border-color:var(--red);color:#ff9b8e;font-size:13px;font-weight:bold}.quantity{display:flex;align-items:center;justify-content:center;gap:30px;margin:24px}.quantity output{font-size:32px;min-width:45px}.quantity button{background:#464540;font-size:24px;width:60px}.primary,.claim{display:block;width:100%;margin-top:12px;font-size:20px;min-height:68px}.claim{background:#f3e9d8;color:#352924}.back{margin-bottom:15px}.notice{padding:16px;border:1px solid #8d6339;border-radius:10px;background:#463827;color:#ffdaad;line-height:1.5;overflow-wrap:anywhere}.success{text-align:center;padding:60px 10px}.success .check{font-size:64px;color:var(--red)}.error{color:#ff9c92;min-height:24px}footer{border-top:1px solid #45443f;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;color:var(--muted);font-size:12px}dialog{background:var(--panel);color:var(--ink);border:1px solid var(--border);border-radius:18px;padding:28px;max-width:480px;width:90%}dialog::backdrop{background:#000a}form{display:grid;gap:16px}.admin{max-width:1150px;margin:auto;padding:24px}.admin main{padding-top:24px}.admin nav{display:flex;flex-wrap:wrap;gap:8px;padding:24px 0}.admin nav button{background:var(--panel);font-size:14px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stat{background:var(--panel);border-radius:14px;padding:24px}.stat strong{font-size:36px;display:block;margin-bottom:8px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}td,th{text-align:left;padding:16px 10px;border-bottom:1px solid #4e4b45;overflow-wrap:anywhere}td button{font-size:13px;padding:8px;min-height:40px}.split{display:grid;grid-template-columns:1fr 1fr;gap:20px}.spaced{margin:24px 0}#keyboard{width:100%}.name{overflow-wrap:anywhere}@media(max-width:520px){.kiosk{padding:22px 18px}header{padding-bottom:22px}.brand{font-size:34px}header button{font-size:13px;padding:12px}main{padding:30px 0}.card{padding:20px 14px}.stamps{gap:8px}.stats,.split{grid-template-columns:1fr}.customer{padding:16px}.customer strong{font-size:18px}.admin{padding:18px}}
/* Chiasso supplied portrait reference. */
:root{--red:#ed1425}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.kiosk{max-width:800px;padding:0;background:#080706;min-height:100dvh}
.kiosk>header{height:250px;min-height:200px;justify-content:center;padding:35px 30px 15px;border:0;position:relative}
.loyalty-brand{display:flex;align-items:center;justify-content:center;gap:24px;text-decoration:none;width:100%}
.loyalty-brand img{width:120px;height:120px;object-fit:contain}
.loyalty-brand span{font-family:Georgia,serif;font-size:17px;letter-spacing:5px;color:white}
.kiosk #add{position:absolute;top:15px;right:22px;min-height:38px;padding:8px 14px;border-radius:30px;font-size:13px;border-color:#6a3939;color:#f3dfdc}
.kiosk-panel{flex:1;display:flex;flex-direction:column;border-top:5px solid var(--red);border-radius:90px 90px 0 0;background:linear-gradient(#242222,#484848);min-height:calc(100dvh - 250px)}
.kiosk main{padding:36px 40px 24px;display:flex;flex-direction:column}
.search-shell,.selected-name{background:linear-gradient(#414040,#393838);border:1px solid #aaa;border-radius:50px;display:flex;align-items:center;gap:20px;padding:0 24px;min-height:64px;width:100%}
.search-shell #search{border:0!important;outline:0;background:transparent;box-shadow:none;margin:0;padding:16px 0;min-width:0;text-align:center;font-size:23px;font-weight:700;color:#fff}
.search-shell:focus-within{box-shadow:0 0 0 2px #ed142580}
.search-shell #search::placeholder{color:#ddd;font-size:20px}
.search-shell #search::-webkit-search-cancel-button{display:none}
.search-shell #clear{padding:0;min-height:28px;width:28px;min-width:28px;border-radius:50%;color:#555;background:#f5f5f5;font-size:23px;line-height:1}
.search-symbol{display:inline-block;border:3px solid white;width:19px;height:19px;min-width:19px;border-radius:50%;position:relative;margin-right:2px}
.search-symbol:after{content:'';position:absolute;width:9px;height:3px;background:white;transform:rotate(48deg);right:-7px;bottom:-4px;border-radius:2px}
.selected-name{justify-content:space-between;font-size:23px;overflow-wrap:anywhere;color:white}
.selected-name>span:nth-child(2){flex:1;min-width:0;text-align:center}
.selected-name>span:last-child{font-size:28px;font-weight:400}
.kiosk #keyboard{align-self:center;margin:8px 0 14px;font-size:12px;min-height:38px;padding:8px;color:#d2cece}
.kiosk .results{gap:16px}.kiosk .customer{border:0;border-radius:40px;background:linear-gradient(#4e4d4d,#454444);padding:12px 24px;min-height:60px;gap:12px}
.kiosk .customer>span:first-child{flex:1;text-align:center}.kiosk .customer strong{font-size:19px;font-weight:400}.kiosk .customer small{display:none}.kiosk .customer>span:last-child:not(:first-child){font-size:22px}.kiosk .customer .pill{font-size:12px!important;color:#ffe4df;background:#6c3235}
.kiosk .paper-note{text-align:center;font-size:13px;margin-top:auto;padding-top:45px;color:#d0cccc}
.kiosk .card{padding:12px 0 0;border:0;background:transparent;margin:14px 0 4px;border-radius:0}
.kiosk .stamps{max-width:430px;margin:18px auto 18px;gap:18px}
.kiosk .stamp{border:1px solid #aaa;background:#ffffff0b;font-size:15px}.kiosk .stamp.filled{background:var(--red);border-color:var(--red)}.kiosk .stamp.free{color:white;border-color:#aaa}
.kiosk .card p{font-size:14px;margin:12px 0;color:#dedada}.kiosk .card h2{font-size:19px;margin:16px 0 8px}
.kiosk .quantity{display:grid;grid-template-columns:64px minmax(0,1fr) 64px;gap:18px;margin:24px 0 12px;align-items:center}
.kiosk .quantity>button:not(.primary){border-radius:50%;background:#ffffff14;border:1px solid #999;height:64px;width:64px;font-size:30px;min-height:64px;padding:0;font-weight:400}
.kiosk .quantity .primary{border-radius:40px;font-size:20px;line-height:1.35;margin:0;min-height:64px;padding:12px 16px}
.kiosk .claim{border-radius:40px;background:transparent;border:1px solid #e0b3ac;color:#ffe4df;margin:6px auto 0;font-size:18px;max-width:520px;min-height:58px}
.kiosk .claim:disabled{border-color:#7c7676;color:#bdb7b7}
.kiosk .paid-hint{text-align:center;font-size:13px;margin:20px 0 0;color:#d0cccc}
.kiosk footer{border-top:1px solid #ffffff16;margin:0 32px;padding:12px 0;color:#d0cccc}
.kiosk #pair{font-size:12px;color:#d0cccc}.kiosk .success{padding:40px 10px}.kiosk #new button{border-radius:40px}.kiosk #new input{border-radius:40px;background:#ffffff12}
@media(max-width:520px){.kiosk>header{height:200px;min-height:200px;padding:40px 18px 20px}.loyalty-brand{gap:14px}.loyalty-brand img{width:88px;height:88px}.loyalty-brand span{font-size:12px;letter-spacing:3px}.kiosk-panel{border-radius:55px 55px 0 0;min-height:calc(100dvh - 200px)}.kiosk main{padding:26px 22px 12px}.search-shell,.selected-name{min-height:56px;padding:0 18px;gap:14px}.search-shell #search,.selected-name{font-size:19px}.search-shell #search::placeholder{font-size:17px}.kiosk .stamps{gap:13px;margin:18px auto;max-width:320px}.kiosk .stamp{font-size:12px}.kiosk .quantity{grid-template-columns:44px minmax(0,1fr) 44px;gap:9px;margin-top:20px}.kiosk .quantity>button:not(.primary){width:44px;height:44px;min-height:44px;font-size:26px}.kiosk .quantity .primary{font-size:16px;min-height:56px;padding:10px}.kiosk .claim{font-size:16px;min-height:54px}.kiosk footer{margin:0 22px;font-size:11px}.kiosk #add{right:16px;font-size:12px}}
.admin-logo{display:flex;align-items:center;gap:16px;text-decoration:none;letter-spacing:5px;font-size:12px;color:#ff8c8c}.admin-logo img{width:75px;height:75px}.admin .eyebrow{color:#ff8c8c}
.kiosk .quantity .primary{width:100%;background:var(--red);height:auto;color:white}
