:root{--wine:#30121b;--wine2:#4b2430;--paper:#f6f2eb;--gold:#c9ad7f;--ink:#34242a;--muted:#877b7c;--line:#e5ded4}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #b18a53;outline-offset:4px}button{border:0}h1,h2,h3,p{margin:0}h1,h2,h3,.serif{font-family:Georgia,'Times New Roman',serif;font-weight:400}h1{font-size:clamp(32px,4vw,52px);line-height:1.14}h2{font-size:30px}h3{font-size:22px}a{color:inherit}svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.logo{text-align:center;line-height:1.1;font-family:Georgia,serif;letter-spacing:3px;font-size:25px;white-space:nowrap}.logo small{display:block;font:10px/2.1 system-ui;letter-spacing:5px}.top{height:102px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;border-bottom:1px solid var(--line);gap:20px}.location,.eyebrow{text-transform:uppercase;letter-spacing:2.5px;font-size:12px}.mode{display:flex;background:#eae4db;border-radius:30px;padding:4px;gap:3px}.mode button{background:none;color:#75666a;border-radius:24px;padding:10px 19px;font-size:14px}.mode button.active{background:var(--wine);color:#fff}.guest-nav{display:flex;justify-content:center;gap:44px;border-bottom:1px solid var(--line);height:66px}.guest-nav button{display:flex;align-items:center;gap:9px;background:none;color:var(--muted);border-bottom:2px solid transparent;font-size:14px}.guest-nav button.active{color:var(--wine);border-bottom-color:var(--wine)}.main{max-width:1250px;margin:auto;padding:42px 36px 55px}.intro{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}.intro .eyebrow{margin-bottom:12px;color:var(--muted)}.muted{color:var(--muted)}.intro p{margin-top:10px}.member-tag{display:flex;align-items:center;gap:9px;font-size:14px}.pill{display:inline-block;padding:5px 12px;background:#ede1c8;border-radius:20px;color:#775a31;font-size:12px;letter-spacing:.4px}.home-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:24px}.membership{background:var(--wine);padding:32px;border-radius:16px;color:#fff;position:relative;overflow:hidden}.membership-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;color:#dac5a5}.membership-head .eyebrow{font-size:11px}.loyalty-card{padding:26px 28px;background:linear-gradient(118deg,#dcc6a1,#bfa177 60%,#dbc5a1);color:#3c2425;border:1px solid #f1dec0;border-radius:12px;box-shadow:0 10px 28px #0002;position:relative;overflow:hidden}.card-top{display:flex;justify-content:space-between;gap:10px;font-size:12px;letter-spacing:2px}.card-number{font:64px/1.2 Georgia;margin-top:14px;letter-spacing:-2px}.card-bottom{display:flex;justify-content:space-between;align-items:end;font-size:13px}.card-monogram{position:absolute;right:25px;top:37px;font:100px Georgia;opacity:.11;letter-spacing:-15px;pointer-events:none}.progress-title{display:flex;justify-content:space-between;margin:24px 0 8px;font-size:13px;color:#decfd0}.progress{height:4px;background:#67434b;border-radius:4px;overflow:hidden}.progress span{display:block;height:100%;background:#d1b88f}.membership .btn{margin-top:24px;width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 22px;border-radius:7px;background:var(--wine);color:#fff;text-decoration:none;font-size:14px;transition:background .2s,transform .2s}.btn:hover{background:#542733;transform:translateY(-1px)}.btn.light{background:var(--paper);color:var(--wine)}.btn.outline{background:transparent;color:var(--wine);border:1px solid #d5c9bc}.experience{position:relative;min-height:360px;border-radius:16px;overflow:hidden;background:#201518;color:white;display:flex;align-items:end;padding:34px}.experience img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.experience:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#190e16e6,transparent 85%)}.experience-content{position:relative;z-index:1;max-width:320px}.experience h2{font-size:42px;line-height:1.12;margin:14px 0}.experience p{color:#e0d6d5;font-size:14px;margin-bottom:22px}.experience a{font-size:14px;display:inline-flex;align-items:center;gap:15px;text-underline-offset:7px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:34px 0 18px}.text-btn{background:none;color:var(--wine);font-size:14px;display:flex;align-items:center;gap:8px}.perks{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.perk{background:#fff9;border:1px solid var(--line);border-radius:12px;padding:23px;display:flex;flex-direction:column;align-items:start}.perk-icon{color:#947544;margin-bottom:18px;display:flex;justify-content:center;align-items:center;width:42px;height:42px;border:1px solid #e7dccb;border-radius:50%}.perk p{font-size:14px;color:var(--muted);margin:9px 0 24px}.perk-footer{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;margin-top:auto}.perk .btn{padding:9px 15px}.perk strong{font-size:14px;font-weight:500}.footer{padding:22px 5%;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:12px;color:var(--muted);letter-spacing:1px}.tabs{display:flex;gap:8px;margin:24px 0}.tabs button{border-radius:30px;background:#eae4db;padding:9px 18px;color:var(--ink);font-size:14px}.tabs button.active{background:var(--wine);color:white}.paper{background:#fff9;border:1px solid var(--line);border-radius:12px;padding:28px}.history-row{display:flex;align-items:center;gap:16px;padding:17px 0;border-bottom:1px solid var(--line)}.history-row:last-child{border-bottom:0}.history-row .entry{flex:1}.history-row small{display:block;color:var(--muted);font-size:12px}.positive{color:#4c7159}.negative{color:#7d4550}.history-row strong{font-size:18px;font-weight:500}.history-icon{background:#eee8df;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px}.card-view{max-width:480px;margin:auto;text-align:center}.card-view .loyalty-card{text-align:left;margin:22px 0}.member-code{font:36px Georgia;letter-spacing:5px;padding:22px 0}.card-view p{margin-bottom:16px}.profile-row{padding:18px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px}.admin-layout{display:grid;grid-template-columns:218px 1fr;min-height:calc(100vh - 102px)}.sidebar{background:var(--wine);color:#e4d5d6;padding:35px 18px;display:flex;flex-direction:column;gap:7px}.sidebar .eyebrow{margin:0 15px 25px;color:#af9296}.sidebar button{display:flex;align-items:center;gap:12px;background:none;color:inherit;padding:13px 16px;border-radius:7px;text-align:left;font-size:14px}.sidebar button.active{background:#58323d;color:white}.sidebar-bottom{margin-top:auto;padding:40px 15px 0;font-size:12px;color:#ae9599}.admin-main{padding:38px;min-width:0;max-width:1600px;width:100%;margin:auto}.admin-main h1{font-size:38px}.admin-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px;gap:16px}.admin-title p{font-size:14px;color:var(--muted);margin-top:7px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:26px}.stat{padding:21px 24px;border:1px solid var(--line);background:#fff8;border-radius:10px}.stat-label{font-size:13px;color:var(--muted);display:flex;align-items:center;justify-content:space-between}.stat-value{font:34px Georgia;margin:9px 0 0}.client-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:22px;align-items:start}.client-list{overflow:hidden;background:#fff8;border:1px solid var(--line);border-radius:12px}.list-tools{padding:20px;display:flex;gap:10px;border-bottom:1px solid var(--line)}input,select,textarea{width:100%;padding:12px 13px;border:1px solid #dbd1c7;border-radius:6px;background:#fff9;color:var(--ink);outline-color:#a98451}input::placeholder{color:#a39593}.list-tools select{width:115px;font-size:14px}.client-row{display:grid;grid-template-columns:minmax(150px,1fr) 80px 70px;gap:10px;align-items:center;padding:17px 20px;border-bottom:1px solid var(--line);width:100%;text-align:left;background:transparent;color:var(--ink);font-size:14px}.client-row.active{background:#eae1d6}.client-row:hover{background:#eee7df}.client-row.head{font-size:12px;color:var(--muted);padding-top:12px;padding-bottom:12px}.client-name{display:flex;align-items:center;gap:12px;min-width:0}.avatar{display:inline-flex;align-items:center;justify-content:center;background:#e5d9c9;border-radius:50%;height:38px;width:38px;color:#75584d;font:15px Georgia;flex-shrink:0}.client-name small{font-size:12px;color:var(--muted);display:block}.client-detail{padding:25px;background:#fff9;border:1px solid var(--line);border-radius:12px}.detail-head{display:flex;align-items:center;gap:13px;margin-bottom:22px}.detail-head h3{font-size:23px}.balance{padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:20px}.balance div{font:40px Georgia;margin-top:4px}.client-detail .btn{width:100%;margin-bottom:10px}.note{font-size:14px;background:#f0eae2;padding:14px;border-radius:7px;margin:16px 0}.note small{display:block;color:var(--muted);margin-bottom:7px}.client-detail .history-row{font-size:13px;gap:8px}.client-detail .history-row strong{font-size:15px}.empty{padding:35px;text-align:center;color:var(--muted)}dialog{width:calc(100% - 32px);max-width:460px;border:1px solid var(--line);border-radius:16px;padding:30px;background:var(--paper);color:var(--ink);box-shadow:0 25px 100px #0003}dialog::backdrop{background:#170a12aa;backdrop-filter:blur(4px)}.modal-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.close{background:transparent;padding:5px;color:var(--muted);font-size:26px;line-height:1}dialog p{margin-bottom:18px;color:var(--muted);font-size:14px}label{display:block;font-size:14px;margin:15px 0 6px}.actions{display:flex;gap:10px;margin-top:24px}.actions .btn{flex:1}.error{color:#a43543;font-size:14px;margin-top:12px;min-height:20px}#toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,20px);background:var(--wine);color:white;border:1px solid #755360;padding:14px 24px;border-radius:9px;box-shadow:0 5px 25px #0003;z-index:10;opacity:0;pointer-events:none;transition:.25s;font-size:14px;max-width:90vw}#toast.show{opacity:1;transform:translate(-50%,0)}.demo{font-size:11px;letter-spacing:1px;color:var(--muted)}.status-level{padding:18px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px}.status-level small{display:block;font-family:system-ui;font-size:13px;color:var(--muted);margin-top:5px}
@media(min-width:1500px){.main{padding-top:55px}.experience{min-height:420px}}@media(max-width:1100px){.client-layout{grid-template-columns:1fr}.client-detail{display:block}.admin-main{padding:25px}.admin-layout{grid-template-columns:185px 1fr}.client-detail .history-row{font-size:14px}}@media(max-width:760px){.top{height:82px;padding:0 20px}.location{display:none}.logo{font-size:20px}.logo small{font-size:9px}.mode button{padding:8px 13px;font-size:12px}.main{padding:28px 20px 95px}.guest-nav{position:fixed;bottom:0;left:0;right:0;z-index:5;background:#faf7f1;gap:0;justify-content:space-around;height:70px;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -3px 15px #30121b08}.guest-nav button{flex-direction:column;gap:3px;font-size:11px;padding:9px 12px;border-bottom:none;border-top:2px solid transparent}.guest-nav button.active{border-top-color:var(--wine)}.intro{align-items:start}.intro p{font-size:14px}.intro .member-tag{display:none}.intro h1{font-size:35px}.home-grid,.two-col{grid-template-columns:1fr}.membership{padding:23px}.membership-head{margin-bottom:20px}.loyalty-card{padding:22px}.card-number{font-size:58px}.experience{min-height:300px;padding:26px}.experience h2{font-size:36px}.perks{grid-template-columns:1fr}.perk{padding:22px}.perk p{margin-bottom:18px}.section-heading h2{font-size:27px}.footer{padding:20px 20px 95px;flex-direction:column;gap:7px}.admin-layout{display:block}.sidebar{padding:8px 15px;flex-direction:row;overflow:auto;gap:3px}.sidebar .eyebrow,.sidebar-bottom{display:none}.sidebar button{white-space:nowrap;padding:12px;font-size:13px}.sidebar button svg{width:17px}.admin-main{padding:25px 16px}.admin-title{align-items:start}.admin-title h1{font-size:31px}.admin-title .btn{padding:11px 12px;font-size:12px}.stats{gap:8px}.stat{padding:13px 10px}.stat-label{font-size:11px}.stat-label svg{display:none}.stat-value{font-size:27px}.client-row{grid-template-columns:minmax(140px,1fr) 62px 55px;padding:14px 12px;gap:6px;font-size:13px}.client-name{gap:8px}.client-row .pill{padding:4px 8px}.list-tools{padding:12px}.list-tools input{min-width:0}.paper{padding:22px}.admin-main .perks{grid-template-columns:1fr}body:has(.admin-layout) .footer{padding-bottom:25px}#toast{bottom:85px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.login{max-width:430px;margin:10vh auto;padding:30px}.login .logo{margin-bottom:40px}.login .btn{width:100%;margin-top:24px}.lang{display:flex;gap:10px;align-items:center}.lang button{background:none;color:inherit}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.warning{background:#eee0c5;padding:16px 22px;border-radius:8px;margin-bottom:24px}.pending{margin-bottom:20px}.pending h3{margin-bottom:10px}.pending .btn{margin-top:16px}.inline-form{max-width:600px}.inline-form .btn{margin-top:20px}.code{font:28px Georgia;letter-spacing:3px;margin:15px 0}.history-row{overflow-wrap:anywhere}.muted small{font-size:13px}.top h3{font-size:20px}#loading{padding:50px;text-align:center}.client-row{grid-template-columns:minmax(140px,1fr) 80px 80px}.client-name small{overflow-wrap:anywhere}.client-detail{min-width:0}.error{overflow-wrap:anywhere}

/* Operational state is conveyed with labels and borders as well as color. */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.filters input{flex:1;min-width:200px}
.availability{display:inline-block;font:600 12px/1.5 system-ui;letter-spacing:.04em;padding:6px 12px;border-radius:8px;margin-bottom:12px}
.is-active{background:#e2eee5;color:#28583a}.is-inactive{background:#e4e0db;color:#49423d}
.perk.reward-inactive{background:#ebe8e3;border:2px dashed #9b948b;box-shadow:none}
.perk.reward-active{border-top:4px solid #588269}
.reward-inactive h3{color:#625b54}.reward-inactive .btn{background:#fff;color:#30121b}
.request-count{display:inline-block;background:#f4dbc0;color:#30121b;border-radius:12px;padding:1px 8px;margin-left:5px;font-weight:700}
#request-monitor{font-size:12px;color:#96352c;max-width:170px}.resolution-reason{white-space:pre-wrap;overflow-wrap:anywhere;padding:14px;background:#f4e8df;border-radius:8px}
.reject-button{color:#96352c;border-color:#96352c}.pending .actions{flex-wrap:wrap}

.diamond-pill{background:linear-gradient(120deg,#B3EAE1,#81D8D0);color:#103E3D;border:1px solid #69C6C0;letter-spacing:.04em}

/* Camera scanner */
.scanner-dialog{width:min(94vw,520px);max-height:92dvh;overflow:auto;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--paper);color:var(--ink)}
.scanner-dialog::backdrop{background:rgba(25,10,16,.72)}
.scanner-camera{position:relative;aspect-ratio:4/3;background:#20191c;border-radius:16px;overflow:hidden;margin:18px 0}
.scanner-camera video{width:100%;height:100%;object-fit:contain;display:block}
.scanner-frame{position:absolute;inset:15% 24%;border:2px solid #e6d1ad;border-radius:16px;pointer-events:none}
.scanner-status{min-height:3em;margin:12px 0;overflow-wrap:anywhere}
.scanner-manual{display:grid;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.scanner-manual input{width:100%;text-transform:uppercase}
#client-requests .pending{margin:12px 0} .admin-title{gap:16px;flex-wrap:wrap}
@media(max-width:600px){.scanner-dialog{padding:18px}.scanner-dialog h2{font-size:25px}.admin-title>[data-action="scan"]{width:100%}}

.queue-summary{display:flex;align-items:center;gap:18px;background:var(--wine);color:var(--paper);border-radius:16px;padding:20px 24px;margin-bottom:24px}.queue-summary strong{font-size:40px;line-height:1}.queue-summary span{font-size:17px}.pending.new-gift{border-left:5px solid #9b793f}.pending.scanned-gift{border:3px solid #3c8077;background:#f0f8f4;box-shadow:0 8px 24px #23433b14}.scan-match{font-size:12px;letter-spacing:.1em;font-weight:700;color:#356b61;margin-bottom:12px}.pending h3{font-size:28px}.client-detail>#client-requests{margin-bottom:24px}

/* Guest profile overlay; transaction forms stay in a separate top-layer dialog. */
.client-layout{display:block}.client-list{width:100%}
html.client-overlay-open{overflow:hidden}
#client-dialog{width:min(1000px,calc(100vw - 48px));max-width:none;max-height:90dvh;padding:0;border:1px solid #dfd3c3;border-radius:24px;background:var(--paper);overflow:auto;overscroll-behavior:contain;box-shadow:0 30px 100px #190b1650}
#client-dialog::backdrop{background:#1d101bb3;backdrop-filter:blur(6px)}
.client-window-head{padding:30px 34px 24px;background:var(--paper);display:flex;justify-content:space-between;align-items:flex-start;gap:24px;border-bottom:1px solid var(--line)}
.client-kicker{display:block;font-size:11px;font-weight:600;letter-spacing:.18em;color:var(--muted);margin-bottom:12px}
.client-window-head h2{font-size:36px;line-height:1.15;overflow-wrap:anywhere}.client-window-head p{margin:10px 0 0;overflow-wrap:anywhere}
.client-window-close{flex-shrink:0;width:44px;height:44px;border-radius:50%;font-size:30px;background:#eae2d8;color:var(--wine);line-height:1}
.client-window-body{padding:28px 34px 34px}.client-overview{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;align-items:center;margin-bottom:28px}
.client-balance-card{padding:24px;border-radius:18px;color:#f6f2eb;background:linear-gradient(120deg,#30121b,#51303b)}
.client-balance-top,.client-balance-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;flex-wrap:wrap}.client-balance-top>.pill{color:#4b3925}.client-balance-card>strong{display:block;font:52px/1.2 Georgia,serif;margin:14px 0}.client-balance-footer{color:#dac9c8;font-size:12px}.client-primary-actions{display:grid;gap:12px}
.client-window-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px;align-items:start}.client-window-section{min-width:0}.client-window-section>h3{font-size:24px;margin:0 0 18px}
#client-dialog .pending{padding:22px;margin:0 0 16px;background:#fff;border-radius:16px}#client-dialog .pending h3{font-size:25px}#client-dialog .pending .actions{display:grid;gap:10px}#client-dialog .pending .code{font-size:26px;overflow-wrap:anywhere}#client-dialog .pending p{margin:10px 0}
.client-information{background:#fff8;border:1px solid var(--line);border-radius:16px;padding:22px}.client-info-item{display:grid;gap:7px;padding:16px 0;border-top:1px solid var(--line)}.client-info-item>span,.client-info-item>small{color:var(--muted);font-size:13px}.client-info-item .text-btn{justify-self:start;padding:0}.client-note{white-space:pre-wrap;overflow-wrap:anywhere!important;color:var(--ink)!important;margin:0!important}
.client-history{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
@media(max-width:700px){#client-dialog{width:calc(100vw - 20px);max-height:94dvh;border-radius:20px}.client-window-head{padding:22px 20px;gap:10px}.client-window-head h2{font-size:28px}.client-window-body{padding:20px}.client-overview,.client-window-grid{grid-template-columns:minmax(0,1fr);gap:20px}.client-balance-card{padding:20px}.client-window-close{width:40px;height:40px}.client-balance-footer{font-size:11px}}
