:root{--ink:#18362f;--muted:#65756e;--paper:#f4f3ed;--card:#fffefa;--line:#dbdfd7;--green:#245447;--pale:#e8eee8;--orange:#a54c22;--sand:#f8ead9;--red:#a93634;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--green);border-radius:10px;min-height:46px;padding:10px 16px;background:var(--green);color:white;font-weight:650}button:hover{filter:brightness(.94)}button:disabled{opacity:.55;cursor:wait}button.quiet{background:transparent;color:var(--ink);border-color:var(--line)}button.small{padding:8px 12px;font-size:13px;min-height:44px}button.warn{background:#fff5ed;color:var(--orange);border-color:#d6b59d}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #c98c36;outline-offset:3px}.top{display:flex;align-items:center;justify-content:space-between;padding:22px max(24px,calc((100vw - 1160px)/2));border-bottom:1px solid var(--line);background:var(--card);gap:12px}.brand{display:flex;gap:12px;align-items:center}.mark{display:grid;place-items:center;background:var(--green);color:#f8efcf;width:42px;height:45px;border-radius:12px 12px 4px 12px;font-family:Georgia,serif;font-size:30px}.brand small{font-size:9px;letter-spacing:1.9px;display:block;color:var(--muted);margin-bottom:4px}.brand strong{font-size:18px;letter-spacing:1px}main{max-width:1160px;margin:auto;padding:32px 24px 60px}h1{font-size:clamp(25px,4vw,36px);line-height:1.4;letter-spacing:-.5px;margin:10px 0 12px}h2{font-size:20px;margin:12px 0}h3{font-size:16px;margin:0 0 12px}p{line-height:1.75}small,.muted{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:1.5px;font-weight:700;color:var(--green)}.lead{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.lead p{color:var(--muted);font-size:14px;margin:0 0 22px;max-width:720px}.pill{display:inline-block;padding:5px 9px;font-size:11px;font-weight:650;border-radius:7px;background:var(--pale);color:var(--green)}.pill.amber{background:var(--sand);color:var(--orange)}.pill.red{background:#f8e4e1;color:var(--red)}.source{border:1px solid var(--line);background:var(--card);border-left:4px solid var(--green);padding:14px 18px;border-radius:10px;margin:0 0 24px;line-height:1.7;font-size:13px}.source.demo{border-left-color:var(--orange)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:28px}.metric{background:var(--card);padding:19px;border:1px solid var(--line);border-radius:13px}.metric small{display:block;font-size:12px}.metric strong{font-size:30px;display:block;margin-top:7px;font-variant-numeric:tabular-nums}.metric em{font-size:12px;font-weight:400;font-style:normal;margin-left:6px;color:var(--muted)}.toolbar{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.toolbar input{flex:1;min-width:160px}.toolbar select{width:auto}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:20px}.tabs button{background:transparent;color:var(--muted);border-color:transparent}.tabs button[aria-selected="true"]{background:var(--green);color:white}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card{padding:20px;background:var(--card);border:1px solid var(--line);border-radius:13px;min-width:0}.card h3{margin:12px 0 5px;font-size:17px;line-height:1.5}.card .code{font-size:11px;color:var(--muted);overflow-wrap:anywhere}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.pair div{border-left:2px solid var(--line);padding-left:12px}.pair small{font-size:11px;display:block}.pair strong{font-size:24px;display:block;margin-top:4px}.pair em{font-size:11px;font-style:normal}.card button{width:100%}.card .hint{font-size:12px;margin:12px 0;color:var(--orange)}.login{max-width:760px;margin:35px auto}.login .intro{max-width:540px}.login-options{display:grid;gap:12px;margin-top:28px}.login-options button{text-align:left;display:flex;align-items:center;justify-content:space-between;padding:18px 20px}.login-options button span{font-size:12px;opacity:.85;font-weight:400}.login .access{border-top:1px solid var(--line);margin-top:32px;padding-top:20px}.access form{display:flex;gap:10px;flex-wrap:wrap}.access input{flex:1;min-width:180px}input,select,textarea{border:1px solid #b8c4ba;border-radius:8px;background:white;padding:12px;color:var(--ink);width:100%;min-height:46px;font-size:16px}textarea{min-height:85px;resize:vertical}label{display:block;font-size:13px;line-height:1.6;margin-bottom:14px}label input,label select,label textarea{margin-top:5px}.check{display:flex;align-items:flex-start;gap:10px}.check input{width:20px;height:20px;min-height:20px;flex-shrink:0;margin-top:2px}.fields{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.row>*{flex:1}.empty{padding:35px 15px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px}.request{display:grid;grid-template-columns:1fr 1fr;gap:24px}.request+.request{margin-top:15px}.request p{margin:9px 0;font-size:13px}.audit{padding:16px;border-left:2px solid var(--line);margin:0 0 14px;background:var(--card)}.audit p{font-size:13px;margin:8px 0;overflow-wrap:anywhere}.audit small{font-size:11px}.section-title{display:flex;justify-content:space-between;align-items:center;margin:10px 0 18px}.section-title p{color:var(--muted);font-size:12px}dialog{width:min(640px,calc(100% - 24px));max-height:91dvh;padding:0;border:1px solid var(--line);border-radius:18px;color:var(--ink);background:var(--card)}dialog::backdrop{background:#172b2690;backdrop-filter:blur(3px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;position:sticky;top:0;background:var(--card);border-bottom:1px solid var(--line);z-index:1}.dialog-top h2{margin:0;font-size:19px}.dialog-content{padding:22px}.dialog-section{border-top:1px solid var(--line);padding-top:24px;margin-top:24px}.explain{background:var(--pale);padding:14px;border-radius:9px;font-size:12px;line-height:1.9}.explain.warning{background:var(--sand);color:#77461e}.formula{font-size:13px;line-height:1.9;color:var(--muted);margin-bottom:20px}.result{font-size:14px;padding:14px;background:var(--sand);border-radius:9px;margin-bottom:18px}.result strong{font-size:23px;margin:0 6px}.full{width:100%}#notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:10;width:min(560px,calc(100% - 32px));background:var(--green);color:white;padding:16px;border-radius:12px;box-shadow:0 8px 30px #18362f35;display:none;font-size:14px;line-height:1.7}#notice.error{background:#8c3430}footer{text-align:center;font-size:12px;line-height:1.9;color:var(--muted);padding:26px 16px 35px;border-top:1px solid var(--line)}footer span{font-size:10px}.subhead{font-size:12px;margin:5px 0 16px;color:var(--muted)}@media(max-width:850px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.request{grid-template-columns:1fr}}@media(max-width:540px){.top{padding:15px 16px}.brand strong{font-size:15px}.brand small{font-size:8px;letter-spacing:1px}.brand{gap:8px}.mark{width:34px;height:38px;font-size:25px}.top button{font-size:11px;padding:7px 10px}main{padding:24px 16px 36px}.lead{display:block}.metrics{gap:8px;margin-bottom:20px}.metric{padding:13px 10px}.metric strong{font-size:25px}.metric small{font-size:10px}.metric em{font-size:10px}.grid{grid-template-columns:1fr;gap:12px}.card{padding:18px}.card h3{font-size:18px}.pair{margin:16px 0}.tabs{gap:2px}.tabs button{flex:1;padding:10px 5px;font-size:12px}.toolbar{gap:8px}.toolbar select{max-width:125px}.fields{gap:8px}.fields label{font-size:11px}.dialog-content{padding:18px}.dialog-top{padding:16px}.login{margin:10px auto}.login-options button{display:block}.login-options button span{display:block;margin-top:6px}.section-title p{max-width:140px;text-align:right}.section-title h2{font-size:18px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.code{overflow-wrap:anywhere;font-size:11px;color:var(--muted);line-height:1.8}

.promotion-guide{margin-bottom:18px}.promotion-actions{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.promotion-actions>*{flex:1;min-width:100px}.promotion-locations{border:1px solid var(--line);border-radius:10px;padding:14px;margin:15px 0;font-size:13px}.promotion-locations p{margin:10px 0}.promotion-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.promotion-two>*{min-width:0}.balance-list{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:15px 0}.balance-list>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;background:var(--pale)}.balance-list>div+div{border-top:1px solid var(--line)}.balance-list span{font-size:13px;overflow-wrap:anywhere;min-width:0}.balance-list small{display:block;font-size:10px;margin-top:4px}.balance-list b{font-size:21px;white-space:nowrap}.balance-list em{font-style:normal;font-size:11px}.promotion-empty{grid-column:1/-1}.promotion-arrow{text-align:center;font-size:12px;color:var(--muted);margin:-4px 0 14px}#promoStore{max-width:160px}.promotion-card .card-head{align-items:flex-start}.promotion-card .pill{overflow-wrap:anywhere}.promotion-card .card-head small{font-size:10px;white-space:nowrap}.promotion-card h3{overflow-wrap:anywhere}.dialog-top h2{overflow-wrap:anywhere;min-width:0}.dialog-top button{flex-shrink:0}summary{cursor:pointer;min-height:36px;line-height:1.8}#promotionForm input[type=datetime-local]{min-width:0;max-width:100%}@media(max-width:540px){.promotion-actions button{font-size:12px;padding:10px 7px}.promotion-two{gap:8px}.promotion-two label{font-size:12px}#promoStore{max-width:135px}.tabs button{font-size:11px}.promotion-card .pair strong{font-size:28px}.balance-list>div{padding:11px}}

.barcode-view{position:relative;background:#172b26;border-radius:12px;overflow:hidden;aspect-ratio:4/3}.barcode-view video{display:block;width:100%;height:100%;object-fit:contain}.barcode-frame{position:absolute;inset:32% 7%;border:2px solid #fff9c6;border-radius:8px;pointer-events:none}#barcodeStatus{font-size:14px;line-height:1.7;min-height:3.4em}#scanBarcode{white-space:nowrap}@media(max-width:540px){#search{flex-basis:55%}#scanBarcode{flex:1;font-size:13px}}
