:root{color:#211d18;background:#f6f0e6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #211d18;--muted: #6f6255;--paper: #fffaf3;--paper-strong: #fffdf9;--line: #ddceb9;--coffee: #6f3c2c;--green: #087866;--gold: #c68b2d;--night: #26221e}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{min-height:48px;border:0;border-radius:8px;padding:0 18px;background:var(--green);color:#fff;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:disabled{cursor:not-allowed;opacity:.62}input,select{min-height:48px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:var(--paper-strong);color:var(--ink)}label{display:grid;gap:7px;color:#54483a;font-size:.92rem;font-weight:700}.app-shell{width:min(430px,100%);margin:0 auto;padding:14px 14px 92px}.brand-strip{display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:10px 0 18px}.brand-strip h1{margin:0;font-size:1.45rem;line-height:1.08;letter-spacing:0}.brand-copy{min-width:0}.merchant-logo{width:58px;height:58px;flex:0 0 58px;display:grid;place-items:center;border:2px solid rgba(255,255,255,.74);border-radius:16px;background:linear-gradient(145deg,var(--coffee),#9f5a38);color:#fff8ec;box-shadow:0 12px 26px #472b1c33;position:relative}.merchant-logo span{font-size:1rem;font-weight:900;letter-spacing:0}.merchant-logo svg{position:absolute;right:7px;bottom:7px;opacity:.88}.eyebrow{margin:0 0 4px;color:var(--coffee);font-size:.72rem;font-weight:800;text-transform:uppercase}.auth-panel,.admin-panel,.coffee-card,.gift-card-panel,.staff-panel{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 18px 36px #261e1417}.auth-panel{max-width:100%}.panel-heading,.top-nav{display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-heading{justify-content:flex-start;margin-bottom:14px}.panel-heading h2{margin:0;font-size:1.15rem;letter-spacing:0}.compact-heading{margin-bottom:4px}.compact-heading h3{margin:0;font-size:.98rem;letter-spacing:0}.google-button{width:100%;margin-bottom:14px;background:#fff;border:1px solid var(--line);color:var(--ink)}.auth-divider{display:flex;align-items:center;gap:10px;margin:2px 0 12px;color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:var(--line)}.stack{display:grid;gap:14px}.segmented-control{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:14px;padding:4px;border:1px solid var(--line);border-radius:8px;background:#efe3d0}.segment{min-height:38px;padding:0 10px;background:transparent;color:#54483a}.segment.active{background:#fff;color:var(--green);box-shadow:0 1px 6px #261e1414}.top-nav{margin-bottom:16px;padding:0;border:0}.icon-button{width:44px;padding:0}.nav-actions{position:fixed;left:50%;bottom:14px;z-index:20;width:min(402px,calc(100% - 24px));transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:7px;border:1px solid rgba(221,206,185,.88);border-radius:16px;background:#fffaf3f5;box-shadow:0 16px 34px #261e142e;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.route-button{min-height:46px;flex:1;padding:0 8px;background:transparent;border:0;color:#54483a;font-size:.84rem;flex-direction:column;gap:2px}.route-button.active{background:var(--green);color:#fff}.views,.admin-grid{display:grid;grid-template-columns:1fr;gap:14px;align-items:start}.admin-panel{min-width:0}.wide-panel{grid-column:1 / -1}.single-view{display:grid;grid-template-columns:minmax(320px,430px);justify-content:start}.coffee-card,.gift-card-panel{width:100%}.inline-form{display:grid;grid-template-columns:1fr;gap:10px;align-items:end}.gift-card-list{display:grid;gap:10px;margin-top:16px}.gift-card-item{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:10px;align-items:start;padding:14px;border:1px solid rgba(198,139,45,.34);border-radius:14px;background:linear-gradient(140deg,#fff7e8,#fff 58%,#eef8f4)}.gift-card-topline{display:flex;align-items:center;gap:7px;margin-bottom:8px;color:var(--coffee);font-size:.78rem;font-weight:900;text-transform:uppercase}.gift-balance{margin:0 0 3px;color:var(--ink);font-size:1.55rem;font-weight:850}.qr-box{display:grid;place-items:center;min-height:210px;border:1px dashed #bca88d;border-radius:14px;background:#fffdf9}.coffee-qr{background:linear-gradient(90deg,#c68b2d14,#08786614),#fffdf9}.qr-frame{display:grid;place-items:center;width:188px;height:188px;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 8px #fff,0 8px 18px #261e1414}.qr-box img{width:176px;height:176px}.card-status-band{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:12px 14px;border-radius:12px;background:var(--night);color:#fff8ec}.card-status-band span{font-weight:800}.card-status-band strong{color:#ffd28a;font-size:1.15rem}.scan-value-row{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;align-items:center;margin-top:10px}.card-id{word-break:break-all;color:#6c5c49;font-size:.78rem;margin:0}.copy-button{background:#efe3d0;border:1px solid var(--line);color:#54483a}.stamps{display:grid;grid-template-columns:repeat(5,minmax(44px,1fr));gap:9px;margin:16px 0}.stamp{display:grid;place-items:center;aspect-ratio:1;min-height:0;height:auto;border:1px solid #d7c9b9;border-radius:12px;background:#efe3d0;color:#9c8b78}.stamp.filled{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 8px 16px #08786633}.status,.reward{margin:0 0 14px;font-size:1.05rem;font-weight:800;text-align:center}.reward{color:#8a3e2f}.secondary{width:100%;background:var(--night)}.staff-result{margin-top:18px;padding-top:16px;border-top:1px solid #e2d6c5;display:grid;gap:10px}.issue-panel{margin-top:18px;padding-top:16px;border-top:1px solid #e2d6c5;display:grid;gap:12px}.staff-page{width:min(560px,100%)}.staff-admin-form{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(120px,.65fr) auto;gap:10px;align-items:end}.list-stack,.activity-list{display:grid;gap:10px;margin-top:16px}.admin-list-item,.activity-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--paper-strong)}.admin-list-item strong,.activity-row strong{display:block;margin-bottom:3px}.admin-metric{display:grid;gap:3px;text-align:right;color:#54483a}.admin-metric span,.activity-row time{color:#6c5c49;font-size:.84rem;font-weight:700}.secondary-action,.danger-button{min-height:38px;padding:0 12px}.secondary-action{background:#efe3d0;border:1px solid var(--line);color:#54483a}.danger-button{background:#8a3e2f}.staff-result p{margin:0}.check-row{display:flex;align-items:center;gap:10px;font-weight:650}.check-row input{min-height:0;width:18px;height:18px}.success,.error,.loading{margin:14px 0 0;font-weight:700}.success{color:#146c5f}.compact{margin:8px 0 0;font-size:.86rem}.error{color:#a83a2a}.loading{color:#6c5c49}.hint{margin:12px 0 0;color:#6c5c49;font-size:.88rem;line-height:1.4}.muted{margin:0;color:#6c5c49;line-height:1.45}@media(max-width:420px){.app-shell{padding-inline:12px}.staff-admin-form,.admin-list-item,.activity-row{grid-template-columns:1fr}.admin-metric{text-align:left}.stamp{height:50px}.brand-strip{align-items:flex-start}}@media(min-width:760px){.app-shell{width:min(860px,100%);padding-bottom:28px}.views,.admin-grid{grid-template-columns:repeat(2,minmax(320px,1fr))}.nav-actions{position:static;width:auto;transform:none;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.route-button{min-height:40px;padding:0 12px;flex-direction:row;gap:8px}.inline-form{grid-template-columns:minmax(0,1fr) auto}}.customer-shell{--ink: #20332e;--muted: #73807b;--green: #286b58;--coffee: #286b58;--line: #e3eae6;--paper: #ffffff;--paper-strong: #ffffff;width:min(460px,100%);min-height:100dvh;padding:max(22px,env(safe-area-inset-top)) 26px 96px;background:#fff;color:var(--ink)}body:has(.customer-shell){background:#f3f5f4}.customer-shell .brand-strip{padding:8px 0 26px;gap:12px;align-items:center}.customer-shell .brand-strip h1{font-size:21px;font-weight:750}.customer-shell .brand-copy{display:flex;flex-direction:column-reverse;gap:5px}.customer-shell .eyebrow{color:var(--muted);font-size:12px;font-weight:500;text-transform:none;margin:0}.customer-shell .merchant-logo{width:48px;height:48px;flex-basis:48px;background:var(--green);border:0;border-radius:50%;box-shadow:none}.customer-shell .merchant-logo span{display:none}.customer-shell .merchant-logo svg{position:static;width:27px;height:27px;opacity:1}.customer-shell .coffee-card,.customer-shell .gift-card-panel,.customer-shell .auth-panel{border:0;border-radius:0;box-shadow:none;padding:0;background:transparent}.loyalty-heading{margin:12px 0 30px}.loyalty-heading h2{margin:0 0 8px;font-size:28px;line-height:1.2;font-weight:650}.loyalty-heading p{margin:0;color:var(--muted);font-size:14px}.customer-shell .stamps{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:0 0 28px}.customer-shell .stamp{border-radius:50%;border:1.5px solid #cbd9d1;background:#fff;color:#b7c9bf;height:auto;aspect-ratio:1;box-shadow:none}.customer-shell .stamp.filled{background:var(--green);border-color:var(--green);color:#fff}.loyalty-progress{text-align:center;margin-bottom:24px}.loyalty-progress strong{font-size:18px;font-weight:600}.loyalty-progress strong span{margin-left:6px;font-variant-numeric:tabular-nums;color:var(--green)}.loyalty-progress p{font-size:14px;color:var(--muted);margin:7px 0 0}.collect-action>button{width:100%;min-height:52px;font-size:16px;font-weight:600}.request-feedback{min-height:28px;padding-top:7px;text-align:center;font-size:12px;color:var(--muted);overflow-wrap:anywhere}.customer-qr{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:4px}.customer-qr img{width:160px;height:160px;object-fit:contain}.customer-qr span{font-size:11px;color:var(--muted)}.customer-tabs{position:fixed;z-index:20;bottom:0;left:50%;transform:translate(-50%);width:min(460px,100%);display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-top:1px solid var(--line);padding:8px 14px max(12px,env(safe-area-inset-bottom))}.customer-tabs button{display:flex;flex-direction:column;gap:5px;background:transparent;color:var(--muted);font-size:11px;font-weight:500;min-height:48px;padding:0}.customer-tabs button[aria-current]{color:var(--green)}.customer-tabs button[aria-current] svg{stroke-width:2.5}.customer-account{padding:24px 0}.customer-account p{color:var(--muted);overflow-wrap:anywhere}.customer-account button{margin-top:24px;width:100%}.customer-shell .gift-card-item{background:#f3f8f5;border:1px solid var(--line);border-radius:8px;padding:20px}.customer-shell .gift-balance{font-size:30px}.customer-shell .muted{color:var(--muted)}.customer-shell .copy-button,.customer-shell .segmented-control{background:#eef3f0;color:var(--green)}.gift-qr{display:block;margin-top:16px;max-width:100%;height:auto}.copyable-qr{position:relative;width:160px;max-width:100%}.qr-copy-button{display:block;width:100%;aspect-ratio:1;min-height:0;padding:0;border:0;border-radius:0;background:#fff}.qr-copy-button img{display:block;width:100%;height:auto}.qr-copy-feedback{position:absolute;bottom:100%;left:50%;transform:translate(-50%);width:max-content;max-width:260px;font-size:11px;text-align:center;color:var(--green);background:#fff}.request-queue{border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:24px}.request-queue .panel-heading{gap:8px}.request-queue .panel-heading>span{margin-left:auto;font-weight:700}.request-row{padding:14px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.request-row p{font-size:12px;margin-top:4px}.request-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.request-actions{align-items:end}.coffee-quantity{display:grid;gap:5px}.coffee-quantity>span{font-size:12px;font-weight:650}.quantity-stepper{display:grid;grid-template-columns:44px 32px 44px;align-items:center;border:1px solid var(--line);border-radius:8px}.quantity-stepper button{min-height:46px;padding:0;background:transparent;color:var(--ink)}.quantity-stepper output{text-align:center;font-variant-numeric:tabular-nums;font-weight:700}.decline-request{background:#b42332;color:#fff}.decline-request:hover:not(:disabled){background:#941c29}.earned-rewards{margin:0}.earned-rewards>button{width:100%;min-height:52px}.reward-balance{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--green);font-size:15px;margin:0 0 12px}.collect-action>.collect-secondary{background:#eef5f1;color:var(--green);border:1px solid #d6e5dc}.reward-feedback{text-align:center;color:var(--green);font-size:13px;margin:0 0 12px}.request-kind{display:block;color:var(--green);font-weight:700;font-size:12px;margin-bottom:6px}.staff-rewards{display:grid;gap:10px;padding-top:12px;border-top:1px solid var(--line)}.coffee-card:has(.earned-rewards) .loyalty-heading{margin-bottom:20px}.coffee-card:has(.earned-rewards) .stamps{margin-bottom:20px}.coffee-card:has(.earned-rewards) .loyalty-progress{margin-bottom:16px}.coffee-card:has(.earned-rewards) .request-feedback{min-height:22px}@media(max-width:480px){.request-actions .coffee-quantity{display:flex;align-items:center;justify-content:space-between;width:100%}.request-actions>button{flex:1;padding-inline:10px}}button:focus-visible{outline:3px solid #76ad9a;outline-offset:3px}@media(max-width:360px){.customer-shell{padding-inline:20px}.customer-shell .stamps{gap:8px}.customer-shell .stamp svg{width:20px;height:20px}.loyalty-heading h2{font-size:25px}}@media(max-height:740px){.customer-shell{padding-top:max(12px,env(safe-area-inset-top))}.customer-shell .brand-strip{padding-bottom:16px}.loyalty-heading{margin:6px 0 16px}.loyalty-heading p{display:none}.customer-shell .stamps,.loyalty-progress{margin-bottom:16px}}.feature-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.feature-heading h2{margin:0}.icon-action{width:44px;height:44px;min-height:44px;padding:10px;flex-shrink:0;background:#edf1ef;color:#283e35;border-radius:6px}.admin-feature-tabs{display:flex;flex-wrap:wrap;gap:6px;border-bottom:1px solid #d9dfdc;padding-bottom:12px;margin-bottom:24px}.admin-feature-tabs button{background:transparent;color:#44534b;font-size:14px;padding:10px 16px}.admin-feature-tabs button[aria-selected=true]{background:#e6efe9;color:#1e533f}.history-section,.statistics-section,.designer-section{min-width:0;padding:8px 0 24px}.history-list{list-style:none;margin:0;padding:0}.history-list li{display:flex;align-items:flex-start;gap:12px;padding:18px 0;border-bottom:1px solid #e1e8e4}.history-list li>svg{flex-shrink:0;margin-top:3px;color:#6b7b73}.history-list li>div{flex:1;min-width:0}.history-list strong{font-size:14px}.history-list p{margin:5px 0 0;font-size:12px;color:#617269}.history-list b{font-size:15px;white-space:nowrap}.history-pagination{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:20px;font-size:13px}.report-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:12px;align-items:end}.report-filters label{font-size:13px;min-width:0}.report-filters input,.report-filters select{min-width:0;width:100%;padding:11px;font-size:14px}.report-caption{font-size:12px;color:#647269;margin:16px 0}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:20px 0 30px;gap:0;border-top:1px solid #dbe2dd;border-bottom:1px solid #dbe2dd}.metric-grid>div{padding:20px 16px 20px 0;min-width:0}.metric-grid dt{color:#596a60;font-size:13px;min-height:34px}.metric-grid dd{font-size:28px;margin:4px 0 0;font-weight:700;overflow-wrap:anywhere}.statistics-section h3{font-size:17px;margin:28px 0 12px}.trend-scroll{overflow-x:auto}.daily-trend{display:flex;gap:3px;height:140px;border-bottom:1px solid #dce4df;min-width:100%;width:max-content}.trend-column{flex:1;min-width:8px;height:100%;display:flex;align-items:flex-end}.trend-column span{background:#398b69;width:100%;border-radius:2px 2px 0 0}.trend-dates{display:flex;justify-content:space-between;font-size:11px;color:#64766b;margin-top:8px}.report-table-scroll{overflow:auto}.report-table-scroll table{width:100%;border-collapse:collapse;font-size:14px}.report-table-scroll th,.report-table-scroll td{text-align:left;padding:13px 12px;border-bottom:1px solid #dce4df}.report-table-scroll th{color:#5e6c64;font-size:12px}.designer-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:start}.designer-controls{display:grid;gap:20px}.designer-controls fieldset{border:0;padding:0;margin:0}.designer-controls legend{font-weight:600;margin-bottom:10px;font-size:14px}.designer-controls label{font-size:14px}.theme-swatches,.design-options,.designer-actions{display:flex;gap:10px}.theme-swatches button{width:44px;height:44px;border-radius:50%;padding:10px;color:#fff}.design-options button[aria-pressed=true]{outline:2px solid #27684f;outline-offset:2px}.color-field{display:flex;justify-content:space-between;align-items:center}.color-field input{width:64px;height:44px;padding:4px}.logo-upload input{font-size:12px;padding:10px;width:100%}.designer-actions button{flex:1;font-size:14px}.design-preview{border:1px solid #d8e2dd;border-radius:8px;padding:28px 24px;width:100%;max-width:390px;background:#fff;text-align:center;color:#23372e}.preview-brand{display:flex;align-items:center;gap:12px;text-align:left}.preview-brand>svg{color:var(--green);flex-shrink:0}.preview-brand img{width:48px;height:48px;object-fit:contain;flex-shrink:0}.preview-brand h3{font-size:20px;margin:0;overflow-wrap:anywhere;flex:1}.preview-brand span{font-size:11px;flex-shrink:0;color:#67756d;text-align:right}.preview-brand b{font-size:18px;color:#23372e}.preview-stamps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:38px 0 24px}.preview-stamps>div{aspect-ratio:1;border:1px solid #bccdc3;border-radius:var(--stamp-radius);display:grid;place-items:center;color:#a2b6aa}.preview-stamps .filled{background:var(--green);color:var(--brand-contrast);border-color:var(--green)}.design-preview>strong{font-size:15px}.preview-qr{display:block;width:160px;height:160px;margin:28px auto 0}.customer-shell .coffee-card .stamp{border-radius:var(--stamp-radius,50%)}.customer-shell .coffee-card .stamp.filled,.customer-shell .brand-strip .merchant-logo{color:var(--brand-contrast,#fff)}.customer-shell .brand-copy{min-width:0}.customer-shell .brand-strip h1{overflow-wrap:anywhere}.preview-brand h3{min-width:0}.customer-shell .merchant-logo img{width:100%;height:100%;object-fit:contain;background:#fff}.customer-shell .merchant-logo:has(img){background:transparent;border-radius:0;overflow:hidden}.customer-shell .customer-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.customer-shell .collect-action>button:not(.collect-secondary),.customer-shell .earned-rewards>button{color:var(--brand-contrast,#fff)}.merchant-logo img{width:100%;height:100%;object-fit:contain}.customer-shell .gift-card-item{border-left:3px solid var(--green)}.customer-shell .customer-tabs button[aria-current],.customer-shell .loyalty-progress span,.customer-shell .collect-action>.collect-secondary,.customer-shell .earned-rewards{color:var(--brand-ink)}.preview-brand>svg{color:var(--brand-ink)}.customer-history-detail{border-top:1px solid #dce4df;margin-top:20px;padding-top:20px}@media(max-width:700px){.report-filters,.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid dd{font-size:24px}.designer-layout{grid-template-columns:minmax(0,1fr);gap:28px}.design-preview{margin:auto}.admin-feature-tabs button{padding:10px;font-size:12px}.history-list li{gap:8px}}
