:root{color-scheme:dark;--gold:#d7b878;--muted:#a89f8d;--line:#373126;--panel:#191916}*{box-sizing:border-box}body{margin:0;background:#10100e;color:#eee8db;font-family:'DM Sans',sans-serif;font-size:15px}header{max-width:1180px;margin:auto;padding:27px 32px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;font-size:31px;color:var(--gold);text-decoration:none}.brand span{font-size:17px;letter-spacing:3px}.brand small{display:block;font-size:8px;letter-spacing:2.3px;margin-top:5px}button,a.button{border:1px solid var(--gold);background:var(--gold);color:#17140e;padding:13px 21px;border-radius:5px;font:600 13px 'DM Sans',sans-serif;cursor:pointer;text-decoration:none;display:inline-block}button:hover,a.button:hover{filter:brightness(1.12)}button:disabled{opacity:.4;cursor:default}.quiet{background:transparent;color:var(--gold);border-color:var(--line)}header button{margin-left:8px}main{max-width:1120px;margin:auto;padding:46px 32px}.eyebrow{font-size:10px;letter-spacing:3px;color:var(--gold);text-transform:uppercase}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:400}h1{font-size:56px;line-height:1.13;margin:17px 0}h1 em{font-weight:400;color:var(--gold)}h2{font-size:31px;margin:8px 0 14px}h3{font-size:23px;margin:10px 0}p{color:var(--muted);line-height:1.7}.hero{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin:10px 0 50px}.card{background:radial-gradient(ellipse at top right,#39302055,transparent 70%),#191916;border:1px solid #665336;border-radius:15px;padding:26px;box-shadow:0 18px 50px #0004}.cardtop{display:flex;justify-content:space-between;color:var(--gold);font-size:10px;letter-spacing:2px}.stamps{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:26px 0}.stamp{border:1px dashed #6a5b3e;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;color:#756b56;font-size:18px}.stamp.filled{background:var(--gold);color:#181510;border:1px solid var(--gold)}.cardbottom{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.card strong{color:var(--gold)}.actions{display:flex;gap:10px;flex-wrap:wrap}.strip{border-block:1px solid var(--line);padding:22px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:48px}.strip b{color:var(--gold);display:block;margin-bottom:5px;font-weight:500}.strip p{font-size:12px;margin:0}.sectionhead{display:flex;justify-content:space-between;align-items:end;margin-top:35px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:23px 0 45px}.tile{background:var(--panel);border:1px solid var(--line);border-radius:9px;overflow:hidden}.tile .inside{padding:22px}.tile p{font-size:13px}.art{height:180px;display:grid;place-items:center;background:radial-gradient(ellipse,#65503a55,#24201a);font-size:70px}.art img{width:100%;height:180px;object-fit:cover}.tag{font-size:9px;color:var(--gold);letter-spacing:1.5px;text-transform:uppercase}.price{color:var(--gold);font-size:22px}.reward{padding:25px;position:relative}.reward .number{font-family:Georgia,serif;color:var(--gold);font-size:42px}.reward button{width:100%}.panel{padding:25px;background:var(--panel);border:1px solid var(--line);border-radius:9px;margin:20px 0}.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:block;color:var(--muted);font-size:12px;margin:13px 0 5px}input,textarea,select{width:100%;padding:12px;background:#10100e;color:#eee8db;border:1px solid #51452f;border-radius:4px;font:inherit}input[type=checkbox]{width:auto}small{color:var(--muted)}footer{max-width:1056px;margin:20px auto 0;padding:25px 0;border-top:1px solid var(--line);color:var(--muted);font-size:10px;letter-spacing:1px;display:flex;justify-content:space-between}dialog{background:#191916;color:#eee8db;border:1px solid #78633d;border-radius:12px;padding:30px;width:min(520px,92vw);max-height:90vh}dialog::backdrop{background:#000b}dialog .close{float:right;padding:5px 10px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--gold);color:#17140e;padding:15px 22px;border-radius:7px;display:none;z-index:9}.choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}.choices button{background:transparent;color:var(--gold);border-color:var(--line)}.choices button.selected{background:var(--gold);color:#17140e}.demo{font-size:11px;color:#a89f8d;margin-top:15px}.empty{text-align:center;padding:30px;color:var(--muted)}@media(max-width:750px){header{padding:20px 16px}.brand span{font-size:12px;letter-spacing:1px}.brand small{font-size:7px;letter-spacing:1px}header button{padding:9px;font-size:11px}main{padding:30px 18px}.hero{grid-template-columns:1fr;gap:25px;margin-bottom:30px}h1{font-size:43px}.grid{grid-template-columns:1fr}.strip{grid-template-columns:1fr;gap:15px}.two{grid-template-columns:1fr}.sectionhead{align-items:start}footer{padding:20px;display:block}.card{max-width:500px;width:100%}}
.qr{background:white;padding:10px;border-radius:6px;width:200px;margin:15px 0}.qr svg{display:block;width:100%;height:auto}

.art img.default-offer{object-fit:contain;background:#141410}
.member-home{grid-template-columns:1fr 1fr;gap:40px;margin-top:0;margin-bottom:32px}.member-summary h1{font-size:40px;margin:12px 0}.member-summary .actions{margin:20px 0 12px}.member-summary strong{color:var(--gold)}progress{width:100%;height:9px;border:0;border-radius:10px;overflow:hidden;background:#373126;accent-color:var(--gold)}progress::-webkit-progress-bar{background:#373126}progress::-webkit-progress-value{background:var(--gold)}progress::-moz-progress-bar{background:var(--gold)}.staff-view>:not(#staff):not(#owner-tools){display:none}.staff-view{padding-top:22px}.staff-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.staff-actions button{min-height:58px}.confirmation-card,.staff-success{padding:22px;border:1px solid var(--gold);border-radius:9px;background:#242017}.staff-success h3{color:var(--gold)}.staff-access{margin-top:30px}details{margin:20px 0}summary{cursor:pointer;color:var(--gold);padding:10px 0}.offer-filters{display:flex;flex-wrap:wrap;gap:7px}.offer-filters button{padding:9px 12px}.offer-filters .selected{border-color:var(--gold);background:#332b1d}.managed-offer{padding:20px 0;border-bottom:1px solid var(--line)}.managed-offer h4{margin:8px 0;font-size:18px}.managed-offer p{font-size:12px}.managed-offer .actions button{padding:9px 12px}.offer-preview{display:block;width:100%;max-height:160px;object-fit:cover;border-radius:6px;margin-top:12px}#offer-error,#confirmation-error{color:#f0b699}#staff-video{width:100%;max-height:340px;object-fit:cover;border-radius:8px;background:#000}#owner-tools>.two{align-items:start;gap:32px}#offerForm{scroll-margin-top:20px}#offers{scroll-margin-top:20px}
@media(max-width:700px){.member-home{grid-template-columns:1fr;gap:20px}.member-summary h1{font-size:28px}.member-home .card{padding:20px}.member-home .stamps{margin:18px 0}.member-summary .actions button:first-child{flex:1}.staff-actions{grid-template-columns:1fr}.staff-actions button{min-height:48px}.staff-view .panel{padding:18px}.member-home{margin-bottom:24px}}

/* Prominent purchase action on the member card. */
button.collect-primary{font-size:1.25rem;font-weight:700;min-height:64px;padding:18px 30px;min-width:240px;max-width:100%}
@media(max-width:600px){button.collect-primary{width:100%;min-height:68px;font-size:1.3rem}}

body[data-view] main {max-width:640px;margin:0 auto;padding:28px 16px}
body[data-view] form {display:grid;gap:12px;margin:20px 0}
body[data-view] input {width:100%;min-width:0;font-size:16px}
body[data-view] button {min-height:44px}
body[data-view] [hidden] {display:none!important}
body[data-view] .channels {display:grid;grid-template-columns:1fr 1fr;gap:8px}
body[data-view] [aria-pressed=true] {outline:2px solid var(--gold);outline-offset:2px}
body[data-view] output {display:block;overflow-wrap:anywhere}
body[data-view] img {max-width:100%;height:auto}
body[data-view] .ticket {margin:1em 0}
body[data-view] footer {text-align:center;padding:16px;color:var(--muted)}
#camera{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;background:#000;margin-top:12px}

.stamp-card,.live-panel,.live-offer{border:1px solid var(--line);border-radius:12px;padding:18px;margin:20px 0;background:var(--panel)}
.stamp-card strong{color:var(--gold);font-size:1.6rem}
#stamp-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;max-width:350px}
#stamp-grid span{display:grid;place-items:center;aspect-ratio:1;border:1px dashed var(--gold);border-radius:50%;color:var(--gold)}
#stamp-grid .filled{background:var(--gold);color:#18140c}
.live-panel h2{margin-top:0}.live-offer img,#offer-preview{display:block;width:100%;max-height:230px;object-fit:cover;border-radius:8px}
.live-panel textarea{min-height:90px}
.live-offer p{overflow-wrap:anywhere}
body[data-view] .reward-choice,body[data-view] #age-check{display:flex;gap:8px;align-items:center;margin:6px 0}
body[data-view] .reward-choice input,body[data-view] #age-check input{width:auto;min-width:1rem}

body[data-view="customer"] main:has(.member-page){max-width:1180px;padding:24px 20px}
body[data-view="customer"] .member-page{padding:0;background:none;border:0}
.member-page .hero{margin-top:22px}
.member-page .hero h1{max-width:10em}
.member-page .hero em{color:var(--gold)}
.member-page .member-card{width:100%;max-width:none}
.member-page .member-card h3{margin-top:22px}
.member-page #stamp-grid{max-width:none;margin:26px 0}
.member-page .member-card-note{font-size:.8rem;margin-bottom:0}
.member-page .cardbottom{gap:12px;align-items:center}
.member-page .member-offers,.member-page .member-rewards{margin:38px 0}
.member-page .sectionhead h2{margin:.2em 0}
.member-page .live-offer{padding:0;margin:0;overflow:hidden}
.member-page .live-offer img{border-radius:0}
.member-page .live-offer .inside button{width:100%}
.member-page .empty{grid-column:1/-1}
.member-page dialog{max-width:min(440px,calc(100vw - 28px));color:inherit}
.member-page dialog::backdrop{background:#000b}
.dialog-close{position:absolute;right:12px;top:12px;padding:4px 12px}
#ticket img{display:block;width:min(100%,235px);height:auto;background:#fff;border-radius:6px;margin:0 auto 12px}
#ticket output{font-size:.85rem;text-align:center}
@media(max-width:700px){
 .member-page .hero{gap:24px;margin-top:8px}
 .member-page .hero h1{max-width:none}
 .member-page .member-offers,.member-page .member-rewards{margin:28px 0}
}

.brand .brand-mark{width:42px;height:42px;border-radius:50%;flex:none}
#owner-header{display:flex;align-items:center;gap:8px}
#owner-header button{margin-left:0;white-space:nowrap}
#choose-role{border-color:var(--gold);background:#24352a}
#role-dialog{padding:30px;border-color:#78633d}
#role-dialog h2{margin:8px 0 12px}
.role-actions,.billing-actions{display:flex;flex-wrap:wrap;gap:12px}
#owner-workspace .live-panel{padding:0;border:0;background:none}
#owner-workspace h2{margin-top:1.2em}
#owner-workspace .billing-actions button:disabled{opacity:.65}
#staff-workspace #scan{width:100%}
body[data-view] .notification-opt{display:flex;align-items:center;gap:8px}
body[data-view] .notification-opt input{width:auto}
@media(max-width:470px){
 #owner-header{gap:6px}
 #owner-header button{min-height:40px;padding:8px;font-size:11px}
 .brand .brand-mark{width:34px;height:34px}
 .role-actions,.billing-actions{flex-direction:column;align-items:flex-start}
}
#test-banner{margin-top:15px;padding:12px 16px;border:1px solid #78633d;border-radius:9px;background:#282318}
#test-banner strong{color:var(--gold)}
#test-banner p{margin:.3em 0 0}
body[data-view] .staff-permission{display:flex;gap:8px;align-items:center;margin:8px 0}
body[data-view] .staff-permission input{width:auto}
#staff-workspace>.quiet{margin-top:14px}
#staff-scanner-qr img{display:block;max-width:100%;height:auto;margin-bottom:.5rem}
#example-bill-dialog{width:min(580px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto}
.bill-rows{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0;margin:0 0 1.1rem}
.bill-rows dt,.bill-rows dd{margin:0;padding:.45rem 0;border-bottom:1px solid var(--line)}
.bill-rows dt{padding-right:.7rem}
.bill-rows dd{text-align:right;font-variant-numeric:tabular-nums}
#bill-charges :nth-last-child(-n+2){color:var(--gold);font-weight:600}

.demo-banner { text-align:center; padding:10px 16px; background:#242017; border-bottom:1px solid #5d4c30; color:#e6ca8e; font-size:13px; }
#owner-header { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
#owner-header button { margin-left:0; }
#demo-intro { margin-bottom:18px; }
#start-demo button { width:100%; }
#demo-reset { margin-top:10px; }
#staff-scanner-qr a { display:block; color:var(--gold); margin-top:8px; }
#owner-workspace hr { border:0; border-top:1px solid var(--line); margin:28px 0; }
#owner-workspace p, #staff-list li { overflow-wrap:anywhere; }
#status { color:var(--gold); }
