@font-face{font-family:Carlito;src:url('/assets/fonts/carlito-400-normal.woff2');font-weight:400;font-display:swap}@font-face{font-family:Carlito;src:url('/assets/fonts/carlito-700-normal.woff2');font-weight:700;font-display:swap}
:root{font-family:Carlito,Arial,sans-serif;color:#233d36;background:#f7f8f2;font-size:18px}*{box-sizing:border-box}body{margin:0}header{max-width:740px;margin:auto;padding:18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dce3d9}.brand{font-size:25px;font-weight:bold;text-decoration:none}.help{min-width:48px;min-height:48px;border:1px solid #ccd7cb;border-radius:50%;display:grid;place-items:center;text-decoration:none;font-size:26px}main{max-width:680px;margin:24px auto;padding:0 18px 60px}h1{font-size:34px;line-height:1.12;letter-spacing:-.8px}h2{font-size:26px}p{line-height:1.4}a{color:#185b4a}button,.button{font:inherit;font-weight:700;min-height:54px;border-radius:14px;padding:14px 18px;border:1px solid #ccd7cb;background:white;color:#233d36;cursor:pointer;display:inline-flex;justify-content:center;align-items:center;gap:8px;text-decoration:none}button:disabled{opacity:.55;cursor:not-allowed}.primary{background:#185b4a;color:white;border-color:#185b4a}.full{width:100%;margin-top:14px}.panel{background:white;border:1px solid #dce3d9;border-radius:22px;padding:22px;margin:18px 0}.center{text-align:center}.art{width:110px;max-height:120px;margin:8px auto 18px;display:block}.card{max-width:440px;margin:18px auto;background:white;border:1px solid #dce3d9;border-radius:24px;overflow:hidden}.card h2{padding:24px;background:#285a49;color:white;margin:0}.card-body{padding:22px;text-align:center}.qr{display:block;width:240px;max-width:100%;height:auto;margin:12px auto;background:white}.reward{padding:12px;border-radius:14px;background:#eaf1da;font-weight:bold;margin:16px 0}.progress{font-size:32px;font-weight:bold;margin:18px 0}.muted,small{color:#52675d;font-size:16px}label{display:block;margin:18px 0 8px;font-weight:bold}input,select,textarea{width:100%;font:inherit;min-height:52px;padding:12px;border:1px solid #b8c5ba;border-radius:12px;background:white;color:#233d36}textarea{min-height:100px;overflow-wrap:anywhere}input[type=checkbox]{width:24px;height:24px;min-height:24px;margin-right:10px}.check{display:flex;align-items:center;min-height:48px}.check input{flex-shrink:0}.row{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0}.row>*{flex:1}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stats strong{display:block;font-size:32px}.stats>div{padding:14px;background:#eaf1da;border-radius:14px;font-size:16px}.event{padding:14px 0;border-bottom:1px solid #dce3d9;display:flex;justify-content:space-between;gap:12px}summary{cursor:pointer;min-height:48px;padding:12px 0;font-weight:bold}video{width:100%;max-height:330px;object-fit:cover;border-radius:18px;background:#233d36}#notice{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);background:#233d36;color:white;border-radius:14px;padding:16px;width:min(550px,calc(100% - 24px));display:none;z-index:20}#notice.visible{display:block}#mode{font-size:16px;background:#fff0d9;text-align:center;padding:8px}#mode:empty{display:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #8aa755;outline-offset:3px}.code{word-break:break-all;font-size:16px}nav{display:flex;gap:8px;flex-wrap:wrap}nav a{padding:12px;min-height:48px}.warning{background:#fff0d9;padding:16px;border-radius:14px}dialog{border:1px solid #dce3d9;border-radius:22px;padding:24px;max-width:calc(100vw - 32px);width:440px;color:#233d36}dialog::backdrop{background:#20382d88}@media(max-width:400px){h1{font-size:30px}.panel{padding:18px}.stats{gap:6px}.stats>div{padding:12px 8px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.card-link{display:block;text-decoration:none}.card-link p{margin-bottom:0}dialog{max-height:90dvh;overflow:auto}h3{font-size:22px}textarea:focus-visible,summary:focus-visible{outline:3px solid #8aa755;outline-offset:3px}

.brand img{display:block;width:174px;max-width:55vw;height:auto}.muted,small,.code{font-size:18px}

[hidden]{display:none!important}.camera-stage{background:#eaf1da;border-radius:22px;padding:16px;text-align:center}.camera-stage video{height:min(42dvh,330px);object-fit:cover}.camera-stage p{margin:12px 0 0;min-height:26px}.counter-help{margin-top:18px}.counter-help p{font-size:18px}button,.button{touch-action:manipulation}

/* Owner authentication: scoped so the customer card and counter stay unchanged. */
.auth-shell{max-width:480px;margin:0 auto}.auth-art{display:block;width:76px;height:76px;object-fit:contain;margin:0 auto 14px}.auth-card{padding:28px;background:#fff;border:1px solid #dce3d9;border-radius:24px;box-shadow:0 8px 32px #233d3606}.auth-card h1{text-align:center;margin:0;font-size:34px;line-height:1.16}.auth-intro{text-align:center;margin:12px 0 24px;color:#52675d}.auth-card .google-signin{display:flex;width:min(288px,100%);min-height:0;margin:0 auto;padding:0;border:0;border-radius:999px;background:transparent;line-height:0}.google-signin img{display:block;width:100%;height:auto}.auth-card .google-signin:hover{box-shadow:0 2px 8px #233d3622}.auth-divider{display:flex;align-items:center;gap:14px;margin:22px 0;color:#52675d;white-space:nowrap}.auth-divider::before,.auth-divider::after{content:"";height:1px;background:#dce3d9;flex:1}.auth-card label{margin:0 0 8px}.auth-card input{min-height:54px;font-size:18px}.auth-password-label{display:flex;justify-content:space-between;align-items:center;margin-top:8px;gap:12px}.auth-password-label label{margin:0}.auth-password-label a{display:inline-flex;align-items:center;min-height:48px;font-weight:bold}.auth-password{position:relative}.auth-password input{padding-right:78px}.auth-password button{position:absolute;right:4px;top:3px;min-height:48px;min-width:66px;border:0;background:transparent;padding:8px;font-size:18px}.auth-card .full{min-height:56px;margin-top:20px}.auth-hint{margin:8px 0 0;color:#52675d;font-size:18px}.auth-switch{text-align:center;margin:18px 0 0}.auth-switch a{display:inline-flex;align-items:center;min-height:48px;font-weight:bold}.auth-footer{text-align:center;color:#52675d;margin:18px 0 0}.auth-feedback{padding:16px;margin:0 0 18px;border-radius:14px;background:#eaf1da;line-height:1.4}.auth-feedback.is-error{background:#fff0d9}.auth-local{border-top:1px solid #dce3d9;margin-top:20px;padding-top:12px}.auth-local p{margin-bottom:0}.auth-card input::placeholder{color:#63746b;opacity:1}@media(max-width:420px){.auth-card{padding:22px 20px}.auth-card h1{font-size:30px}.auth-art{width:64px;height:64px;margin-bottom:12px}.auth-intro{margin-bottom:20px}.auth-divider{margin:18px 0}}

#page-role{max-width:740px;margin:0 auto;padding:10px 18px 0;color:#52675d;font-size:18px;font-weight:bold}.screen-role{font-weight:bold;color:#52675d}.preview-note{background:#fff0d9;padding:16px;border-radius:14px}nav a[aria-current=page]{background:#eaf1da;border-radius:12px;font-weight:bold}#copy-status:empty{display:none}

/* Keep controls out of iPhone cutouts and the home-indicator area. */
body{padding-top:env(safe-area-inset-top,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
main{padding-bottom:calc(32px + env(safe-area-inset-bottom,0px))}
#notice{bottom:calc(14px + env(safe-area-inset-bottom,0px))}
/* A cashier needs a balance and one clear primary action, not a full customer card. */
.counter-screen header{padding-top:12px;padding-bottom:12px}.counter-screen .brand img{width:148px}.counter-screen #page-role{display:none}.counter-screen main{margin-top:22px}
.counter-result{max-width:480px;margin:0 auto}.counter-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px}.counter-heading h1{font-size:32px;margin:0 0 6px}.counter-heading p{margin:0;font-size:20px;color:#52675d;overflow-wrap:anywhere}.counter-heading img{width:68px;height:68px;flex-shrink:0;object-fit:contain}
.counter-summary{padding:24px;background:#fff;border:1px solid #dce3d9;border-radius:24px;text-align:center}.counter-summary h2{font-size:24px;line-height:1.25;margin:14px 0 20px;overflow-wrap:anywhere}.stamp-label{margin:0;color:#52675d}.stamp-total{font-size:52px;line-height:1.1;font-weight:700;margin:12px 0}.stamp-total span{font-size:32px;color:#52675d}.counter-summary .full{margin-top:0;min-height:58px;font-size:20px}.has-reward{background:#edf3e1;border-color:#dce6cc}.reward-count{display:inline-block;margin:0;background:#fff;padding:8px 14px;border-radius:999px;color:#285a49;font-weight:700}.next-reward{display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid #d3dfc4;margin-top:22px;padding-top:18px;text-align:left}.next-reward strong{white-space:nowrap}.counter-actions{display:grid;gap:12px;margin-top:16px}.counter-actions .full{margin:0;min-height:56px;font-size:20px}.counter-actions .quiet{background:transparent;border-color:transparent}.owner-exception{margin-top:8px}.owner-exception summary{text-align:center;color:#52675d;min-height:52px}.counter-status{font-size:18px;text-align:left;margin-bottom:0}.counter-result button{white-space:normal}
@media(max-width:380px){.counter-summary{padding:20px}.counter-heading{gap:10px;margin-bottom:16px}.counter-heading h1{font-size:30px}.counter-heading img{width:56px;height:56px}.counter-heading p{font-size:18px}.next-reward{flex-wrap:wrap}}
