:root{--ink:oklch(24% 0.02 180);--ink-soft:oklch(45% 0.015 180);--muted:oklch(60% 0.012 180);--deep:oklch(32% 0.05 185);--teal:oklch(46% 0.07 183);--aqua:oklch(66% 0.1 180);--aqua-soft:oklch(96% 0.02 180);--paper:oklch(99% 0.004 90);--sand:oklch(97.5% 0.012 85);--line:oklch(90% 0.008 85);--line-strong:oklch(85% 0.01 85);--wait:oklch(72% 0.13 72);--wait-soft:oklch(96% 0.04 80);--danger:oklch(55% 0.16 25);--danger-soft:oklch(96% 0.03 25);--radius:10px;--shadow:0 1px 2px oklch(24% 0.02 180/0.06),0 8px 24px oklch(24% 0.02 180/0.05)}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:15px;-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.shell{display:grid;grid-template-columns:88px 1fr;min-height:100vh}.rail{background:var(--deep);display:flex;flex-direction:column;align-items:center;padding:18px 0;gap:6px}.rail .mark{width:34px;height:34px;border-radius:9px;background:var(--aqua);color:oklch(20% .04 185);display:grid;place-items:center;font-weight:700;font-size:15px;letter-spacing:-.02em;margin-bottom:18px}.rail a{width:74px;height:56px;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:oklch(85% .02 180/.72);font-size:9.5px;font-weight:600;letter-spacing:.02em;text-align:center;white-space:nowrap}.rail a:hover{background:oklch(100% 0 0/.08);color:white}.rail a[data-active=true]{background:oklch(100% 0 0/.14);color:white}.main{display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;gap:18px;padding:14px 26px;border-bottom:1px solid var(--line);background:var(--paper);position:-webkit-sticky;position:sticky;top:0;z-index:20}.topbar .store{font-weight:650;letter-spacing:-.01em}.topbar .sep{width:1px;height:18px;background:var(--line)}.topbar .who{margin-left:auto;display:flex;align-items:center;gap:10px;color:var(--ink-soft);font-size:13px}.avatar{width:30px;height:30px;border-radius:50%;background:var(--aqua-soft);color:var(--teal);display:grid;place-items:center;font-weight:650;font-size:12px}.pos{display:grid;grid-template-columns:minmax(0,1fr) 396px;grid-gap:0;gap:0;flex:1 1;min-height:0}.catalog{padding:22px 26px 30px;min-width:0}.ticket{border-left:1px solid var(--line);background:var(--sand);display:flex;flex-direction:column;min-height:0}.screen-title{font-size:20px;font-weight:650;letter-spacing:-.015em;margin:0 0 4px}.screen-sub{color:var(--muted);font-size:13px;margin:0 0 18px}.group-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:650;margin:22px 0 10px}.group-label:first-of-type{margin-top:0}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(196px,1fr));grid-gap:12px;gap:12px}.tile{min-height:96px;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:13px 14px 12px;display:flex;flex-direction:column;gap:6px;transition:border-color .12s ease-out,transform .12s ease-out,box-shadow .12s ease-out}.tile:hover{border-color:var(--line-strong);box-shadow:var(--shadow)}.tile:active{transform:translateY(1px)}.tile .name{font-weight:600;font-size:14px;letter-spacing:-.005em}.tile .price{color:var(--ink-soft);font-size:13px}.tile .price b{color:var(--ink);font-weight:650}.tile .tag{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.ticket-head{padding:18px 20px 14px;border-bottom:1px solid var(--line)}.ticket-title{font-size:15px;font-weight:650;margin:0;display:flex;justify-content:space-between;align-items:baseline}.ticket-title span{font-size:12px;color:var(--muted);font-weight:500}.field{display:flex;flex-direction:column;gap:6px;margin-top:12px}.field label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:650}.field input{border:1px solid var(--line-strong);background:var(--paper);border-radius:8px;padding:9px 11px;font-size:14px}.field input:focus{outline:2px solid var(--aqua);outline-offset:1px;border-color:transparent}.lines{flex:1 1;overflow-y:auto;padding:14px 20px}.empty{color:var(--muted);font-size:13px;line-height:1.6;padding:26px 0;text-align:center}.line{display:grid;grid-template-columns:1fr auto;grid-gap:4px 10px;gap:4px 10px;padding:11px 0;border-bottom:1px solid var(--line)}.line:last-child{border-bottom:0}.line .lname{font-weight:600;font-size:13.5px}.line .lmeta{color:var(--muted);font-size:12px}.line .ltotal{text-align:right;font-weight:650}.line .lctrl{grid-column:1/-1;display:flex;align-items:center;gap:8px;margin-top:2px}.stepper{display:inline-flex;align-items:center;border:1px solid var(--line-strong);border-radius:7px;overflow:hidden;background:var(--paper)}.stepper button{width:30px;height:28px;border:0;background:transparent;color:var(--ink-soft);font-size:15px}.stepper button:hover{background:var(--aqua-soft);color:var(--teal)}.stepper .val{min-width:62px;text-align:center;font-size:12.5px;font-weight:600}.ghost{border:0;background:transparent;color:var(--muted);font-size:12px;padding:4px 6px;border-radius:6px}.ghost:hover{color:var(--danger);background:var(--danger-soft)}.ticket-foot{padding:16px 20px 18px;border-top:1px solid var(--line);background:var(--paper)}.sum{display:flex;justify-content:space-between;font-size:13px;color:var(--ink-soft);margin-bottom:6px}.sum.total{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line-strong);font-size:15px;color:var(--ink);align-items:baseline}.sum.total b{font-size:26px;letter-spacing:-.02em;font-weight:700}.btn{width:100%;border:0;border-radius:9px;padding:13px 16px;font-weight:650;font-size:14.5px;letter-spacing:-.005em;background:var(--deep);color:oklch(98% .01 90);transition:background .12s ease-out,transform .12s ease-out}.btn:hover{background:var(--teal)}.btn:active{transform:translateY(1px)}.btn:disabled{background:var(--line-strong);color:var(--muted);cursor:not-allowed}.btn.secondary{background:var(--paper);color:var(--ink);border:1px solid var(--line-strong)}.btn.secondary:hover{background:var(--aqua-soft);color:var(--teal);border-color:var(--aqua)}.btn.small{width:auto;padding:8px 13px;font-size:13px;border-radius:7px}.alert{margin:0 20px 12px;padding:10px 12px;border-radius:8px;background:var(--danger-soft);color:var(--danger);font-size:13px;border:1px solid oklch(88% .05 25)}.alert.ok{background:var(--aqua-soft);color:var(--teal);border-color:oklch(88% .04 180)}.combo,.combo-box{position:relative}.combo-box{display:flex;align-items:center}.combo-box input{width:100%}.combo-spin{position:absolute;right:10px;width:12px;height:12px;border-radius:50%;border:2px solid var(--line-strong);border-top-color:var(--teal);animation:combo-spin .7s linear infinite}@keyframes combo-spin{to{transform:rotate(1turn)}}.combo-menu{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 4px);background:var(--paper);border:1px solid var(--line-strong);border-radius:9px;box-shadow:var(--shadow);overflow:hidden;max-height:272px;overflow-y:auto}.combo-item{width:100%;border:0;background:transparent;text-align:left;display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 12px;border-bottom:1px solid var(--line)}.combo-item:last-child{border-bottom:0}.combo-item[data-active=true]{background:var(--aqua-soft)}.combo-name{font-size:13.5px;font-weight:600}.combo-phone{font-size:12px;color:var(--muted)}.combo-selected{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--teal);margin-top:2px}.page{padding:22px 26px 40px;max-width:1080px}.toolbar{gap:10px;margin-bottom:16px;flex-wrap:wrap}.search,.toolbar{display:flex;align-items:center}.search{flex:1 1;min-width:240px;gap:8px;border:1px solid var(--line-strong);border-radius:9px;padding:9px 12px;background:var(--paper)}.search input{border:0;outline:0;width:100%;background:transparent;font-size:14px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--line-strong);background:var(--paper);color:var(--ink-soft);border-radius:999px;padding:7px 12px;font-size:12.5px;font-weight:550}.chip[data-active=true]{background:var(--deep);border-color:var(--deep);color:oklch(98% .01 90)}.rows{border-top:1px solid var(--line)}.row{display:grid;grid-template-columns:154px 1fr 152px 118px 104px;grid-gap:14px;gap:14px;align-items:center;padding:14px 6px;border-bottom:1px solid var(--line)}.row:hover{background:var(--sand)}.row .num-order{font-weight:650;font-size:13px;letter-spacing:-.005em;white-space:nowrap}.row .cust{display:flex;flex-direction:column;gap:2px;min-width:0}.row .cust b{font-weight:600;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .cust span{color:var(--muted);font-size:12px}.row .amt{text-align:right;font-weight:650;font-size:14px}.row .when{color:var(--muted);font-size:12.5px}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--sand);color:var(--ink-soft);border:1px solid var(--line);white-space:nowrap}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.7}.pill[data-status=completed],.pill[data-status=paid],.pill[data-status=ready]{background:var(--aqua-soft);color:var(--teal);border-color:oklch(88% .04 180)}.pill[data-status=awaiting_payment]{background:var(--wait-soft);color:oklch(45% .11 72);border-color:oklch(90% .05 80)}.pill[data-status=refunded],.pill[data-status=void]{background:var(--danger-soft);color:var(--danger);border-color:oklch(90% .04 25)}.rows-head{display:grid;grid-template-columns:154px 1fr 152px 118px 104px;grid-gap:14px;gap:14px;padding:8px 6px;border-bottom:1px solid var(--line);font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:650}.rows-head .r{text-align:right}.strip{display:flex;gap:26px;align-items:baseline;flex-wrap:wrap;padding:12px 16px;margin-bottom:22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--sand)}.strip div{display:flex;flex-direction:column;gap:2px}.strip .k{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:650}.strip .v{font-size:17px;font-weight:650;letter-spacing:-.01em}.strip .v.small{font-size:14px}.detail{display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-gap:26px;gap:26px;align-items:start}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.panel+.panel{margin-top:14px}.panel-head{padding:13px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:baseline}.panel-head h2{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:650}.panel-body{padding:16px}.big-number{font-size:30px;font-weight:700;letter-spacing:-.03em;margin:2px 0 0}.meta-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px 20px;gap:12px 20px}.meta-grid div{display:flex;flex-direction:column;gap:3px}.meta-grid .k{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:650}.meta-grid .v{font-size:14px;font-weight:550}.items{width:100%;border-collapse:collapse}.items th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:0 0 8px;font-weight:650}.items td,.items th{border-bottom:1px solid var(--line)}.items td{padding:10px 0;vertical-align:top;font-size:13.5px}.items tr:last-child td{border-bottom:0}.items .r{text-align:right}.items .muted{color:var(--muted);font-size:12px}.receipt{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:11.5px;line-height:1.55;white-space:pre;overflow-x:auto;background:var(--sand);border:1px solid var(--line);border-radius:8px;padding:14px}.timeline{list-style:none;margin:0;padding:0}.timeline li{display:grid;grid-template-columns:62px 1fr;grid-gap:10px;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}.timeline li:last-child{border-bottom:0}.timeline time{color:var(--muted);font-size:12px}.qr{display:grid;place-items:center;padding:14px;background:var(--paper);border:1px dashed var(--line-strong);border-radius:8px}.qr img{width:168px;height:168px;image-rendering:pixelated}.link{display:block;word-break:break-all;font-size:12px;color:var(--teal);background:var(--aqua-soft);padding:9px 10px;border-radius:7px;margin-top:10px}.overlay{position:fixed;inset:0;z-index:50;background:oklch(24% .02 180/.38);display:grid;place-items:center;padding:24px}.dialog{width:100%;max-width:460px;max-height:90vh;overflow:hidden;background:var(--paper);border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 24px 64px oklch(24% .02 180/.22);display:flex;flex-direction:column}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px 14px;border-bottom:1px solid var(--line)}.dialog-head h2{margin:0;font-size:16px;font-weight:650;letter-spacing:-.01em}.dialog-head p{margin:3px 0 0;font-size:12.5px;color:var(--muted)}.dialog-body{padding:18px 20px;overflow-y:auto}.dialog-foot{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px;background:var(--sand)}.icon-btn{width:30px;height:30px;border-radius:7px;border:1px solid transparent;background:transparent;color:var(--ink-soft);display:grid;place-items:center}.icon-btn:hover{background:var(--aqua-soft);color:var(--teal);border-color:var(--aqua)}.login{min-height:100vh;display:grid;place-items:center;background:var(--sand);padding:24px}.login-card{width:100%;max-width:392px}.login .mark-lg{font-family:ui-serif,Georgia,serif;font-size:42px;letter-spacing:-.03em;color:var(--deep)}.login .tag{color:var(--muted);font-size:13px;margin:4px 0 26px}.login .btn{margin-top:18px}.hint{color:var(--muted);font-size:12px;margin-top:14px;line-height:1.6}@media (max-width:1080px){.pos{grid-template-columns:1fr}.ticket{border-left:0;border-top:1px solid var(--line)}.detail{grid-template-columns:1fr}.row{grid-template-columns:1fr auto;row-gap:6px}}