*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:#fdf2f8;color:#1f2430;font-size:16px;padding-bottom:calc(76px + env(safe-area-inset-bottom))}
body.noscroll{overflow:hidden}
header{background:#9d174d;color:#fff;padding:calc(12px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) 12px calc(14px + env(safe-area-inset-left));position:sticky;top:0;z-index:6;font-size:18px;font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:8px}
#hShop{font-size:13px;font-weight:400;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:50%}
nav{position:fixed;bottom:0;left:0;right:0;background:#fff;display:flex;overflow-x:auto;border-top:1px solid #e5d5de;z-index:6;padding-bottom:env(safe-area-inset-bottom)}
nav button{flex:1 0 auto;min-width:54px;min-height:58px;border:0;background:none;font-size:11.5px;color:#555;padding:5px 3px}
nav button b{display:block;font-size:20px}nav button.on{color:#9d174d;font-weight:700;background:#fce7f3}
main{padding:10px;max-width:760px;margin:auto}
.card{background:#fff;border-radius:12px;padding:12px;margin-bottom:10px;box-shadow:0 1px 3px #0001}
h2{font-size:18px;margin:2px 0 10px}h3{font-size:16px;margin:0 0 6px}
label{display:block;font-size:14px;color:#555;margin:8px 0 4px}
input,select,textarea{width:100%;font-size:16px;padding:11px;border:1px solid #d8c8d2;border-radius:8px;background:#fff;color:inherit;font-family:inherit}
input[type=checkbox],input[type=radio]{width:auto;margin:0 6px 0 0;transform:scale(1.25)}
input[type=color]{padding:2px;height:44px}
.btn{display:inline-block;min-height:44px;padding:9px 14px;border:0;border-radius:10px;background:#9d174d;color:#fff;font-size:15px;margin:6px 6px 0 0;cursor:pointer;text-decoration:none;text-align:center;line-height:26px}
.btn.sec{background:#f1e4ec;color:#1f2430}.btn.red{background:#dc2626}.btn.grn{background:#15803d}.btn.blue{background:#2563eb}.btn.full{width:100%;margin-right:0}.btn.sm{min-height:36px;padding:5px 10px;font-size:14px;line-height:24px}
.row{display:flex;gap:8px}.row>*{flex:1;min-width:0}.muted{color:#6b6470;font-size:14px}.small{font-size:12.5px}
.tag{display:inline-block;padding:2px 8px;border-radius:20px;font-size:12.5px;white-space:nowrap}
.ok{background:#dcfce7;color:#166534}.bad{background:#fee2e2;color:#991b1b}.mid{background:#fef3c7;color:#92400e}
.warn{background:#fff7ed;border-left:4px solid #f97316;padding:8px 10px;border-radius:8px;margin:8px 0;font-size:14px}
.info{background:#eff6ff;border-left:4px solid #3b82f6;padding:8px 10px;border-radius:8px;margin:8px 0;font-size:14px}
.flex{display:flex;justify-content:space-between;align-items:center;gap:8px}
table{width:100%;border-collapse:collapse;font-size:14px}td,th{padding:6px 4px;border-bottom:1px solid #f0e6ec;text-align:left;vertical-align:top}td.r,th.r{text-align:right;white-space:nowrap}
pre{white-space:pre-wrap;font-family:inherit;background:#faf5f8;padding:10px;border-radius:8px;font-size:14px;margin:6px 0}
#toast{position:fixed;bottom:96px;left:50%;transform:translateX(-50%);background:#222;color:#fff;padding:10px 16px;border-radius:20px;display:none;z-index:30;max-width:90%;text-align:center;font-size:14px}
.st-b{background:#dbeafe;color:#1e40af}.st-a{background:#fef3c7;color:#92400e}.st-d{background:#dcfce7;color:#166534}.st-c{background:#e5e7eb;color:#4b5563}.st-n{background:#fee2e2;color:#991b1b}
.chips{display:flex;gap:6px;overflow-x:auto;padding:2px 0 6px}.chip{flex:0 0 auto;border:1px solid #e2cfdb;background:#fff;border-radius:20px;padding:7px 12px;font-size:14px;min-height:36px;color:#1f2430}
.chip.on{background:#9d174d;color:#fff;border-color:#9d174d}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:middle}
.datebar{display:flex;align-items:center;gap:6px}.datebar .btn{margin:0;flex:0 0 auto;min-width:44px}.datebar .dlabel{flex:1;text-align:center;font-weight:600;font-size:15px}
.datebar input{flex:1}
/* day grid */
.gwrap{overflow-x:auto;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0001;margin-bottom:10px}
.ghead{display:flex;position:sticky;top:0;background:#fff;z-index:3;border-bottom:1px solid #eee}
.ghead .tc{flex:0 0 40px}.ghead .ch{flex:1 0 92px;padding:6px 4px;font-size:13px;font-weight:600;text-align:center;border-left:1px solid #f0e6ec;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gbody{display:flex;position:relative}.tcol{flex:0 0 40px;position:relative}.tcol div{position:absolute;right:4px;font-size:11px;color:#888;transform:translateY(-6px)}
.col{flex:1 0 92px;position:relative;border-left:1px solid #f0e6ec;cursor:pointer}
.col.off{background:repeating-linear-gradient(45deg,#f6f2f4,#f6f2f4 8px,#fff 8px,#fff 16px)}
.offlbl{position:absolute;top:4px;left:0;right:0;text-align:center;font-size:12px;color:#991b1b}
.blk{position:absolute;left:2px;right:2px;border-radius:7px;padding:3px 5px;font-size:12px;line-height:1.25;overflow:hidden;color:#1f2430;border-left:4px solid;box-shadow:0 1px 2px #0002;cursor:pointer}
.blk b{font-size:12.5px}.blk.x{opacity:.45;text-decoration:line-through}.blk.cf{outline:2px solid #dc2626;outline-offset:-1px}
.nowline{position:absolute;left:0;right:0;height:2px;background:#dc2626;z-index:2;pointer-events:none}
.fab{position:fixed;right:calc(16px + env(safe-area-inset-right));bottom:calc(74px + env(safe-area-inset-bottom));z-index:7;border-radius:28px;min-height:52px;padding:12px 18px;font-size:16px;box-shadow:0 3px 10px #0004;margin:0}
/* sheet */
#sheet{display:none;position:fixed;inset:0;z-index:20}
.sheet-bg{position:absolute;inset:0;background:#0006}
.sheet-body{position:absolute;left:0;right:0;bottom:0;max-height:92%;overflow-y:auto;background:#fdf2f8;border-radius:16px 16px 0 0;padding:12px 12px calc(16px + env(safe-area-inset-bottom));max-width:760px;margin:auto;-webkit-overflow-scrolling:touch}
.sheet-top{display:flex;justify-content:space-between;align-items:center;position:sticky;top:-12px;background:#fdf2f8;padding:6px 0;z-index:2}
.sheet-top h2{margin:0}.xbtn{border:0;background:#f1e4ec;border-radius:50%;width:38px;height:38px;font-size:18px}
.svcgrp{margin:6px 0}.svcgrp h4{margin:8px 0 4px;font-size:13px;color:#9d174d;text-transform:uppercase}
.svcitem{display:flex;align-items:center;padding:8px;border:1px solid #eee;border-radius:8px;margin-bottom:5px;background:#fff;font-size:15px}
.svcitem span.p{margin-left:auto;color:#555;font-size:13px;white-space:nowrap;padding-left:6px}
.svcitem.on{border-color:#9d174d;background:#fdf2f8}
.results div{padding:9px;border-bottom:1px solid #eee;background:#fff;cursor:pointer}.results div:hover{background:#fce7f3}
.stat{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stat>div{background:#fff;border-radius:10px;padding:10px;box-shadow:0 1px 3px #0001}
.stat b{display:block;font-size:18px;margin-top:2px}.bar{height:8px;background:#f9a8d4;border-radius:4px}
.total{font-size:22px;font-weight:700;color:#9d174d}
.lineitem{display:flex;gap:6px;align-items:center;margin-bottom:6px}.lineitem .nm{flex:1;font-size:15px}.lineitem input{flex:0 0 120px;padding:8px;text-align:right}
.lineitem button{flex:0 0 36px;height:36px;border:0;border-radius:8px;background:#fee2e2;color:#991b1b}
.paym{display:flex;gap:8px}.paym label{flex:1;margin:0;border:1px solid #d8c8d2;border-radius:10px;padding:12px;background:#fff;display:flex;align-items:center;color:#1f2430;font-size:15px}
.paym label.on{border-color:#9d174d;background:#fce7f3}
.listitem{cursor:pointer}
/* v2 */
.tag.pro{background:#ede9fe;color:#5b21b6;font-size:11.5px;vertical-align:middle;margin-left:4px;font-weight:600}
.qrbox{text-align:center;background:#fff;border-radius:12px;padding:10px;margin-bottom:8px}svg.qr{max-width:100%;height:auto;display:block;margin:0 auto 4px}
.billimg{width:100%;display:block;border-radius:8px;box-shadow:0 1px 4px #0003}
#lock{position:fixed;inset:0;z-index:60;background:#fdf2f8;display:flex;align-items:center;justify-content:center;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
body.locked{overflow:hidden}.lockbox{text-align:center;width:100%;max-width:320px;padding:20px}.lockbox h2{color:#9d174d;margin:6px 0}
.pindots{display:flex;justify-content:center;gap:16px;margin:18px 0 6px}.pindots span{width:16px;height:16px;border-radius:50%;border:2px solid #9d174d}.pindots span.on{background:#9d174d}
.pinmsg{color:#dc2626;min-height:22px;font-size:14px}
.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:8px}.keypad button{height:64px;border-radius:16px;border:1px solid #e5d5de;background:#fff;font-size:26px;color:#1f2430}
.keypad button:active{background:#fce7f3}.keypad .kx{font-size:14px;background:transparent;border:0;color:#9d174d}
.s1a{background:#fff;color:#000;font-family:"Times New Roman",Times,serif;font-size:14px;line-height:1.4;min-width:320px}.s1a .c{text-align:center}.s1a table{margin-top:6px}.s1a td,.s1a th{border:1px solid #555;padding:4px 6px}.s1a h3{font-size:16px}
#print{display:none}
@media print{body{background:#fff;padding:0}body>*{display:none!important}body>#print{display:block!important;padding:10mm}#print .s1a{font-size:13pt}}
