@import "https://fonts.googleapis.com/css2?family=Noto+Sans+Lao:wght@400;500;600;700&display=swap";:root{--rail:#0b1f3a;--rail-2:#123163;--bg:#f2f5fa;--card:#fff;--card-2:#f6f9fd;--line:#e2e8f1;--line-2:#d3dbe8;--text:#16233b;--dim:#5f6c85;--faint:#97a2b8;--accent:#2563eb;--accent-ink:#fff;--accent-soft:#e8f0fe;--green:#12a150;--green-soft:#e7f7ee;--red:#e5484d;--red-soft:#fdecec;--amber:#f59e0b;--amber-soft:#fef4e3;--radius:12px;--radius-sm:8px;--shadow:0 1px 2px #141b2d0f, 0 4px 16px #141b2d0f;--shadow-lg:0 8px 40px #141b2d2e;--font:"Inter", system-ui, -apple-system, "Segoe UI", "Noto Sans Lao", sans-serif}.signup-card{text-align:left;max-width:420px}.signup-card h1,.signup-card .login-hint{text-align:center}.signup-card .opt-block{margin-bottom:12px}.signup-card .opt-block>label{color:var(--dim);margin-bottom:4px;font-size:12.5px;font-weight:600;display:block}.signup-card .opt-block input,.signup-card .opt-block select{border:1px solid var(--line);background:var(--card);width:100%;color:var(--text);border-radius:8px;padding:10px 12px;font-size:15px}.su-hint{color:var(--faint);margin-top:4px;font-size:11.5px;display:block}.su-toggle{gap:8px;margin-bottom:8px;display:flex}.su-toggle button{border:1px solid var(--line);background:var(--card);color:var(--dim);border-radius:8px;flex:1;padding:9px;font-weight:600}.su-toggle button.active{border-color:var(--accent,#2563eb);color:var(--accent,#2563eb);background:var(--accent-soft,#eff4ff)}.su-go{width:100%;margin-top:6px;padding:12px;font-size:15px;font-weight:700}.su-alt,.login-register{text-align:center;color:var(--accent,#2563eb);cursor:pointer;margin-top:14px;font-size:13.5px;font-weight:600}.su-otp{text-align:center;letter-spacing:10px;border:1px solid var(--line);background:var(--card);width:100%;color:var(--text);border-radius:10px;margin:6px 0 12px;padding:12px;font-size:26px}.su-devcode{background:var(--amber-soft,#fef4e3);border:1px dashed var(--amber,#f59e0b);color:#92400e;text-align:center;border-radius:8px;margin-bottom:10px;padding:8px 10px;font-size:13px}.su-devcode b{letter-spacing:2px;font-size:16px}.su-row{justify-content:space-between;margin-top:12px;display:flex}:root[data-lang=lo]{--font:"Noto Sans Lao", "Phetsarath OT", "Saysettha OT", "Inter", system-ui, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased;margin:0}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}input,select{font:inherit}h1,h2,h3{margin:0}.app-shell{height:100vh;display:flex;overflow:hidden}.rail{background:var(--rail);color:#aeb8cf;flex-direction:column;flex:none;align-items:center;gap:6px;width:76px;padding:16px 0;display:flex}.rail-logo{background:linear-gradient(135deg, #3b82f6, var(--accent));color:#fff;letter-spacing:-1px;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:14px;font-size:18px;font-weight:800;display:flex}.rail-item{color:#8592ad;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:3px;width:52px;height:52px;font-size:10px;display:flex}.rail-item svg{width:22px;height:22px}.rail-item.active{background:var(--rail-2);color:#fff}.rail-item:not(.active):hover{color:#cfd6e6}.rail-spacer{flex:1}.main{flex-direction:column;flex:1;min-width:0;display:flex}.header{background:var(--card);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:16px;height:64px;padding:0 20px;display:flex}.header .shop{flex-direction:column;display:flex}.header .shop b{font-size:15px;font-weight:700}.header .shop span{color:var(--dim);font-size:12px}.header .clock{font-variant-numeric:tabular-nums;color:var(--dim);font-size:13px}.header-right{align-items:center;gap:12px;margin-left:auto;display:flex}.bell-wrap{position:relative}.bell{width:40px;height:40px;color:var(--dim);border:1px solid var(--line);background:var(--card);border-radius:10px;justify-content:center;align-items:center;display:flex;position:relative}.bell svg{width:20px;height:20px}.bell:hover{color:var(--text)}.bell.high{color:var(--red);border-color:#f4b8ba}.bell-badge{background:var(--red);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;display:flex;position:absolute;top:-6px;right:-6px}.bell-menu{background:var(--card);border:1px solid var(--line);width:300px;box-shadow:var(--shadow-lg);z-index:80;border-radius:12px;position:absolute;top:48px;right:0;overflow:hidden}.bell-head{border-bottom:1px solid var(--line);padding:12px 16px;font-size:13px;font-weight:700}.bell-empty{text-align:center;color:var(--green);padding:20px;font-size:14px}.bell-item{border-bottom:1px solid var(--line);border-left:3px solid var(--line);padding:12px 16px;font-size:13px}.bell-item:last-child{border-bottom:none}.bell-item.high{border-left-color:var(--red);background:var(--red-soft)}.bell-item.warn{border-left-color:var(--amber)}.bell-item.info{border-left-color:var(--accent)}.printer-chip{background:var(--card-2);border:1px solid var(--line);border-radius:999px;align-items:center;gap:8px;padding:7px 12px;font-size:12px;font-weight:500;display:flex}.printer-chip .dot{background:var(--green);border-radius:50%;width:8px;height:8px}.printer-chip.down{background:var(--red-soft);color:#b42318;border-color:#f4b8ba}.printer-chip.down .dot{background:var(--red);animation:1s infinite pulse}@keyframes pulse{50%{opacity:.35}}.user-chip{align-items:center;gap:10px;padding-left:8px;display:flex}.user-avatar{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.user-meta{flex-direction:column;line-height:1.2;display:flex}.user-meta b{font-size:13px}.user-meta span{color:var(--dim);text-transform:capitalize;font-size:11px}.icon-btn{width:36px;height:36px;color:var(--dim);border:1px solid var(--line);background:var(--card);border-radius:8px;justify-content:center;align-items:center;display:flex}.icon-btn:hover{color:var(--text);background:var(--card-2)}.shop-switch select{background:var(--card-2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:13px}.body{flex:1;min-height:0;display:flex}.catalog-col{flex-direction:column;flex:1;min-width:0;display:flex}.caps{flex-wrap:wrap;gap:6px;padding:10px 20px 0;display:flex}.caps .cap{color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:3px 9px;font-size:11px;font-weight:500}.cats{flex:none;gap:8px;padding:14px 20px;display:flex;overflow-x:auto}.cat-tab{white-space:nowrap;background:var(--card);border:1px solid var(--line);color:var(--dim);border-radius:999px;padding:9px 16px;font-size:13px;font-weight:600}.cat-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.search-bar{align-items:center;gap:8px;padding:0 20px 8px;display:flex}.search-bar input{border:1px solid var(--line);background:var(--card);border-radius:10px;flex:1;min-width:0;padding:12px 16px;font-size:14px}.search-bar input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.view-toggle{border:1px solid var(--line);background:var(--card);border-radius:10px;flex-shrink:0;display:inline-flex;overflow:hidden}.view-toggle button{width:40px;height:42px;color:var(--dim);cursor:pointer;background:0 0;place-items:center;display:grid}.view-toggle button+button{border-left:1px solid var(--line)}.view-toggle button:hover{color:var(--text);background:var(--card-2)}.view-toggle button.on{background:var(--accent);color:#fff}.products-list{flex:1;padding:4px 20px 20px;overflow-y:auto}.plist{border-collapse:collapse;width:100%;font-size:14px}.plist thead th{z-index:1;background:var(--card-2);text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--dim);border-bottom:1px solid var(--line);padding:10px 12px;font-size:11px;position:sticky;top:0}.plist th.pl-num{text-align:right;width:40px}.plist th.pl-thumb,.plist td.pl-thumb{width:48px;padding-right:4px}.plist td.pl-thumb img{object-fit:cover;border-radius:7px;width:40px;height:40px;display:block}.plist td.pl-thumb .pl-ph{background:linear-gradient(135deg, var(--card-2), #eef2f8);width:40px;height:40px;color:var(--faint);border-radius:7px;justify-content:center;align-items:center;font-weight:700;display:flex}.plist th.pl-price,.plist td.pl-price{text-align:right;white-space:nowrap}.plist tbody tr{border-bottom:1px solid var(--line);cursor:pointer}.plist tbody tr:hover{background:var(--accent-soft)}.plist td{vertical-align:middle;padding:11px 12px}.plist td.pl-num{text-align:right;color:var(--faint);font-variant-numeric:tabular-nums}.plist td.pl-cat{color:var(--dim)}.plist td.pl-name b{font-weight:600}.plist td.pl-name .pl-lo{color:var(--dim);margin-left:6px}.plist td.pl-name .pl-bc{color:var(--faint);font-family:ui-monospace,monospace;font-size:11px;display:block}.plist td.pl-unit,.plist td.pl-station{color:var(--dim)}.plist td.pl-price{font-variant-numeric:tabular-nums;font-weight:700}.plist td.pl-price em{color:var(--dim);font-style:normal;font-weight:400}.products{flex:1;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-content:start;gap:12px;padding:4px 20px 20px;display:grid;overflow-y:auto}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);text-align:left;min-height:104px;box-shadow:var(--shadow);flex-direction:column;gap:4px;padding:14px;transition:transform 60ms,box-shadow .12s;display:flex}.card:hover{box-shadow:var(--shadow-lg)}.card:active{transform:scale(.98)}.card .thumb{background:linear-gradient(135deg, var(--card-2), #eef2f8);width:100%;height:72px;color:var(--faint);border-radius:8px;justify-content:center;align-items:center;margin-bottom:6px;font-size:22px;font-weight:700;display:flex;overflow:hidden}.card .thumb.has-img{background:var(--card-2)}.card .thumb img{object-fit:cover;width:100%;height:100%;display:block}.card .name{color:var(--text);font-size:14px;font-weight:600}.card .name-lo{color:var(--dim);font-size:12px}.card .price{color:var(--text);font-variant-numeric:tabular-nums;margin-top:auto;font-weight:700}.card .price em{color:var(--dim);font-size:12px;font-style:normal;font-weight:400}.card .station{color:var(--amber);text-transform:uppercase;letter-spacing:.4px;font-size:10px;font-weight:600}.card .barcode{color:var(--faint);font-family:ui-monospace,monospace;font-size:10px}.cat-heading{color:var(--dim);text-transform:uppercase;letter-spacing:.6px;grid-column:1/-1;margin:8px 0 -2px;font-size:12px;font-weight:700}.order{background:var(--card);border-left:1px solid var(--line);flex-direction:column;flex:none;width:380px;display:flex}@media (width<=1100px){.order{width:320px}}.order-head{border-bottom:1px solid var(--line);padding:18px 20px 12px}.order-head h2{align-items:center;gap:8px;font-size:16px;display:flex}.order-head .table-tag{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600}.ordertype{background:var(--card-2);border-radius:10px;gap:4px;margin-top:12px;padding:4px;display:flex}.ordertype button{color:var(--dim);border-radius:7px;flex:1;padding:8px;font-size:12px;font-weight:600}.ordertype button.sel{background:var(--card);color:var(--accent);box-shadow:var(--shadow)}.guests{color:var(--dim);align-items:center;gap:10px;margin-top:12px;font-size:13px;display:flex}.guests button{border:1px solid var(--line);background:var(--card);width:30px;height:30px;color:var(--text);border-radius:8px;font-size:18px;line-height:1}.guests strong{text-align:center;min-width:22px;color:var(--text)}.tables-block{padding:14px 20px 0}.tables-block h3{color:var(--dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px}.table-grid{flex-wrap:wrap;gap:8px;display:flex}.table{border:1px solid var(--line);background:var(--card);width:68px;height:58px;box-shadow:var(--shadow);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;display:flex}.table .code{font-weight:700}.table .seats{color:var(--dim);font-size:11px}.table.occupied{border-color:var(--amber);background:var(--amber-soft)}.table.sel{background:var(--accent);border-color:var(--accent);color:#fff}.table.sel .seats{color:#dbe6ff}.order-lines{flex:1;padding:8px 20px;overflow-y:auto}.order-empty{color:var(--faint);text-align:center;padding:40px 0;font-size:13px}.line{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:10px 0;display:flex;position:relative}.line .qty{background:var(--accent-soft);min-width:30px;height:26px;color:var(--accent);border-radius:6px;justify-content:center;align-items:center;padding:0 6px;font-size:13px;font-weight:700;display:flex}.line .info{flex:1}.line .info b{font-size:14px;font-weight:600}.line .info .sub{color:var(--dim);font-size:12px}.line .amt{font-variant-numeric:tabular-nums;font-weight:600}.line .del{width:22px;height:22px;color:var(--faint);border-radius:6px;font-size:15px;position:absolute;top:8px;right:-4px}.line .del:hover{color:var(--red);background:var(--red-soft)}.order-foot{border-top:1px solid var(--line);flex:none;padding:16px 20px}.totals-row{color:var(--dim);justify-content:space-between;margin-bottom:6px;font-size:13px;display:flex}.totals-row.grand{color:var(--text);font-variant-numeric:tabular-nums;align-items:baseline;margin:10px 0 14px;font-size:20px;font-weight:700}.totals-row.grand em{color:var(--dim);font-size:13px;font-style:normal}.foot-actions{gap:10px;display:grid}.btn{border-radius:10px;padding:14px;font-size:15px;font-weight:600;transition:filter .1s}.btn:active{filter:brightness(.95)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:var(--card-2);border:1px solid var(--line);color:var(--text)}.btn-charge{background:var(--green);color:#fff;padding:16px;font-size:17px}.result{border:1px solid var(--green);background:var(--green-soft);border-radius:10px;margin-top:12px;padding:14px}.result .r-top{align-items:center;gap:8px;display:flex}.result .r-top b{font-family:ui-monospace,monospace}.result .r-badge{letter-spacing:.5px;background:var(--green);color:#fff;border-radius:5px;margin-left:auto;padding:2px 9px;font-size:11px;font-weight:700}.result .r-change{margin-top:8px;font-size:15px}.result .r-change b{color:var(--green);font-variant-numeric:tabular-nums}.result .r-sub{color:var(--dim);margin-top:6px;font-size:12px}.result .r-actions{gap:8px;margin-top:10px;display:flex}.result .r-actions button{border:1px solid var(--line);background:var(--card);border-radius:7px;flex:1;padding:8px;font-size:13px}.result.err{border-color:var(--red);background:var(--red-soft);color:#b42318}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:60;background:#141b2d80;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.picker,.checkout{background:var(--card);box-shadow:var(--shadow-lg);border-radius:16px}.picker{width:min(520px,94vw);padding:22px}.picker h3{margin-bottom:16px;font-size:17px}.opt-block{margin-bottom:16px}.opt-block label{text-transform:uppercase;letter-spacing:.5px;color:var(--dim);margin-bottom:8px;font-size:12px;display:block}.opt-block input{border:1px solid var(--line);border-radius:9px;width:100%;padding:11px}.opt-block input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.matrix{flex-direction:column;gap:6px;display:flex}.matrix-row{align-items:center;gap:6px;display:flex}.matrix-label{width:34px;color:var(--dim);font-family:ui-monospace,monospace;font-weight:600}.matrix-cell{border:1px solid var(--line);background:var(--card-2);border-radius:8px;flex:1;padding:11px}.matrix-cell.sel{background:var(--accent);border-color:var(--accent);color:#fff}.matrix-cell.empty{background:0 0;border-style:dashed}.barcode-hint,.calc{color:var(--dim);margin:8px 0 0;font-size:12px}.calc b{color:var(--green)}.mods{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.mod{border:1px solid var(--line);background:var(--card-2);border-radius:999px;padding:8px 14px;font-size:13px}.mod.sel{background:var(--accent);border-color:var(--accent);color:#fff}.picker-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.picker-actions button{border:1px solid var(--line);border-radius:9px;padding:11px 22px;font-weight:600}.picker-actions .primary{background:var(--accent);border-color:var(--accent);color:#fff}.picker-actions .primary:disabled{opacity:.5}.menu-sub{color:var(--dim);margin-left:14px;font-size:13px}.menu-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;padding:4px 20px 24px;display:grid}.menu-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.menu-photo{cursor:pointer;background:linear-gradient(135deg, var(--card-2), #eef2f8);border:0;width:100%;height:140px;padding:0;display:block}.menu-photo:disabled{cursor:default;opacity:.7}.menu-photo img{object-fit:cover;width:100%;height:100%;display:block}.menu-add{height:100%;color:var(--faint);flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.menu-add em{font-size:12px;font-style:normal;font-weight:600}.menu-photo:hover .menu-add{color:var(--accent)}.menu-spin{height:100%;color:var(--accent);justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.menu-info{padding:12px}.menu-info b{font-size:14px;font-weight:600}.menu-lo{color:var(--dim);margin-top:1px;font-size:12px;display:block}.menu-meta{justify-content:space-between;align-items:center;gap:8px;margin-top:8px;display:flex}.menu-price{font-variant-numeric:tabular-nums;font-weight:700}.menu-price em{color:var(--dim);font-size:12px;font-style:normal;font-weight:400}.menu-cat{color:var(--dim);background:var(--card-2);border:1px solid var(--line);border-radius:999px;padding:2px 9px;font-size:11px}.menu-remove{border:1px solid var(--line);background:var(--card);width:100%;color:var(--red);cursor:pointer;border-radius:8px;margin-top:10px;padding:7px;font-size:12px;font-weight:600}.menu-remove:hover{background:var(--red-soft)}.menu-card.as-btn{text-align:left;border:1px solid var(--line);cursor:pointer;width:100%;padding:0;display:block}.menu-card.as-btn:hover{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.menu-card.off{opacity:.6}.menu-photo.static{background:linear-gradient(135deg, var(--card-2), #eef2f8);width:100%;height:120px;display:block}.menu-photo.static img{object-fit:cover;width:100%;height:100%;display:block}.menu-photo.static .menu-add em{color:var(--faint);place-items:center;height:100%;font-size:30px;font-style:normal;font-weight:800;display:grid}.menu-hidden{color:var(--red);margin-top:6px;font-size:11px;font-weight:600;display:block}.cat-add{flex-wrap:wrap;gap:8px;display:flex}.cat-add input{border:1px solid var(--line);border-radius:9px;flex:1;min-width:180px;padding:11px}.cat-add input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.prod-editor{width:min(640px,96vw);max-height:92vh;overflow-y:auto}.pe-grid{grid-template-columns:1fr 1fr;gap:12px 14px;display:grid}.pe-grid .opt-block{margin-bottom:0}.pe-toggles{flex-wrap:wrap;gap:18px;margin:16px 0 8px;display:flex}.pe-check{color:var(--text);cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.pe-check input{width:17px;height:17px;accent-color:var(--accent)}.pe-photo{background:var(--card-2);border-radius:10px;align-items:center;gap:14px;margin:10px 0;padding:12px;display:flex}.pe-photo-thumb{background:#eef2f8;border-radius:10px;flex-shrink:0;place-items:center;width:64px;height:64px;display:grid;overflow:hidden}.pe-photo-thumb img{object-fit:cover;width:100%;height:100%}.pe-photo-thumb em{color:var(--faint);font-size:24px;font-style:normal;font-weight:800}.pe-photo-actions{align-items:center;gap:12px;display:flex}.pe-photo-actions button{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:9px;padding:9px 16px;font-size:13px;font-weight:600}.pe-photo-actions .linklike{color:var(--red);background:0 0;border:0;padding:0}.pe-hint{color:var(--dim);margin:6px 0;font-size:12px}@media (width<=560px){.pe-grid{grid-template-columns:1fr}}.recipe-box{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.recipe-toggle{color:var(--text);cursor:pointer;background:0 0;border:0;padding:4px 0;font-size:14px;font-weight:700}.recipe-body{margin-top:8px}.recipe-line{align-items:center;gap:8px;margin-bottom:6px;display:flex}.recipe-line select{border:1px solid var(--line);background:var(--card);border-radius:8px;flex:1;padding:9px}.recipe-line input{border:1px solid var(--line);text-align:right;border-radius:8px;padding:9px}.recipe-cost{text-align:right;font-variant-numeric:tabular-nums;width:78px;color:var(--dim);font-size:13px}.recipe-total{border-top:1px dashed var(--line);justify-content:space-between;align-items:baseline;margin-top:10px;padding-top:8px;display:flex}.recipe-total b{font-size:16px}.recipe-total em{color:var(--dim);font-size:12px;font-style:normal;font-weight:400}.recipe-save{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:9px;width:100%;margin-top:10px;padding:10px;font-weight:600}.recipe-save:disabled{opacity:.6}.rep-table td.profit{color:var(--green);font-variant-numeric:tabular-nums;font-weight:600}.kt-big{color:var(--accent);text-align:center;padding:12px 0 2px;font-size:34px;font-weight:800}.kt-sub{text-align:center;color:var(--dim);font-size:12px}.btn-add.on{background:var(--red);border-color:var(--red)}.merge-hint{background:var(--accent-soft);color:var(--accent);border-radius:10px;margin-bottom:12px;padding:10px 14px;font-size:13px;font-weight:600}.ocard.picked{outline:3px solid var(--accent);outline-offset:1px}.merge-bar{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-lg);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:12px 16px;display:flex;position:sticky;bottom:0}.merge-bar .pri{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:11px 22px;font-weight:700}.merge-bar .pri:disabled{opacity:.5}.split-lines{flex-direction:column;gap:6px;max-height:46vh;display:flex;overflow-y:auto}.split-line{border:1px solid var(--line);cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;display:flex}.split-line.on{border-color:var(--accent);background:var(--accent-soft)}.split-line input{width:17px;height:17px;accent-color:var(--accent)}.split-line .sl-qty{color:var(--dim);font-variant-numeric:tabular-nums}.split-line .sl-name{flex:1;font-weight:600}.split-line .sl-amt{font-variant-numeric:tabular-nums}.split-total{border-top:1px dashed var(--line);justify-content:space-between;align-items:baseline;margin:14px 0 4px;padding-top:10px;display:flex}.split-total b{font-size:17px}.split-total em{color:var(--dim);font-size:12px;font-style:normal;font-weight:400}.co-points{border:1px solid var(--amber,#d97706);background:var(--amber-soft,#fef3c7);color:#92400e;cursor:pointer;border-radius:10px;width:100%;margin-top:8px;padding:11px;font-size:13px;font-weight:600}.co-points:disabled{opacity:.5}.day-toggles{gap:6px;display:flex}.day-tog{border:1px solid var(--line);background:var(--card);width:40px;height:38px;color:var(--dim);cursor:pointer;border-radius:8px;font-size:12px;font-weight:700}.day-tog.on{background:var(--accent);border-color:var(--accent);color:#fff}.rep-note{color:var(--dim);font-size:12px;font-weight:400}.kpi.good strong{color:var(--green)}.fb-summary{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.fb-stars{color:#f59e0b;font-size:18px}.fb-stars b{color:var(--text);margin-left:6px}.fb-dim{color:var(--line-2)}.fb-senti{gap:8px;display:flex}.fb-list{flex-direction:column;gap:8px;display:flex}.fb-item{border:1px solid var(--line);border-left-width:3px;border-radius:8px;padding:10px 12px}.fb-item.positive{border-left-color:var(--green)}.fb-item.negative{border-left-color:var(--red)}.fb-item.neutral{border-left-color:var(--line-2)}.fb-row{justify-content:space-between;align-items:center;display:flex}.fb-rate{color:#f59e0b;font-size:14px}.fb-comment{color:var(--text);margin-top:5px;font-size:14px}.fbf-wrap{background:var(--bg);place-items:center;min-height:100vh;padding:20px;display:grid}.fbf-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-lg);text-align:center;border-radius:18px;width:min(440px,96vw);padding:32px}.fbf-card h1{margin-bottom:4px;font-size:22px}.fbf-sub{color:var(--dim);margin-bottom:18px}.fbf-stars{justify-content:center;gap:6px;margin-bottom:18px;display:flex}.fbf-star{color:var(--line-2);cursor:pointer;background:0 0;border:0;font-size:42px;line-height:1;transition:transform 60ms}.fbf-star.on{color:#f59e0b}.fbf-star:hover{transform:scale(1.12)}.fbf-card textarea{border:1px solid var(--line);width:100%;font:inherit;resize:vertical;border-radius:10px;padding:12px}.fbf-card textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.fbf-submit{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:12px;width:100%;margin-top:16px;padding:14px;font-size:15px;font-weight:700}.fbf-submit:disabled{opacity:.5}.fbf-err{color:var(--red);margin-top:10px;font-size:13px}.fbf-thanks .fbf-check{background:var(--green-soft);width:68px;height:68px;color:var(--green);border-radius:50%;place-items:center;margin:0 auto 14px;font-size:34px;font-weight:800;display:grid}.payslip-print{z-index:80;background:#141b2d80;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.payslip{color:#16233b;width:min(420px,96vw);box-shadow:var(--shadow-lg);background:#fff;border-radius:12px;padding:28px}.ps-head{border-bottom:2px solid #16233b;justify-content:space-between;align-items:baseline;margin-bottom:14px;padding-bottom:10px;display:flex}.ps-head h2{font-size:20px}.ps-head span{letter-spacing:2px;color:#5f6c85;font-weight:700}.ps-row{justify-content:space-between;padding:5px 0;font-size:14px;display:flex}.ps-row span{color:#5f6c85}.ps-row.neg b{color:#b91c1c}.payslip hr{border:0;border-top:1px dashed #cbd5e1;margin:8px 0}.ps-net{margin-top:4px;font-size:18px}.ps-net b{color:#12a150}.ps-foot{gap:20px;margin-top:36px;display:flex}.ps-sign{color:#5f6c85;text-align:center;border-top:1px solid #16233b;flex:1;padding-top:6px;font-size:11px}.ps-note{text-align:center;color:#97a2b8;margin-top:18px;font-size:11px}@media print{body{background:#fff}body *{visibility:hidden}.payslip-print,.payslip-print *,.receipt-print,.receipt-print *{visibility:visible}.payslip-print,.receipt-print{background:0 0;padding:0;display:block;position:absolute;inset:0}.payslip{box-shadow:none;width:100%;max-width:420px;margin:0 auto}.ps-note{display:none}.rc-paper{box-shadow:none;border:0;width:80mm;margin:0 auto}}.receipt-modal{background:var(--card);box-shadow:var(--shadow-lg);border-radius:14px;width:min(360px,96vw);padding:18px}.rc-paper{color:#16233b;border:1px solid var(--line);background:#fff;border-radius:8px;width:300px;max-width:100%;margin:0 auto;padding:16px 18px;font-family:ui-monospace,Courier New,monospace;font-size:12.5px;line-height:1.5}.rc-center{text-align:center}.rc-shop{letter-spacing:.5px;font-size:15px;font-weight:800}.rc-dim{color:#5f6c85}.rc-reprint{color:#b91c1c;margin-top:4px;font-weight:700}.rc-rule{border-top:1px dashed #94a3b8;margin:7px 0}.rc-row{justify-content:space-between;gap:10px;display:flex}.rc-row>span:last-child{white-space:nowrap}.rc-line{margin:1px 0}.rc-note{color:#5f6c85;padding-left:10px;font-size:11.5px}.rc-total{margin-top:2px;font-size:14px;font-weight:800}.receipt-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.receipt-actions button{border:1px solid var(--line);cursor:pointer;border-radius:9px;padding:10px 18px;font-weight:600}.receipt-actions .primary{background:var(--accent);color:#fff;border-color:var(--accent)}.rc-logo{margin-bottom:6px}.rc-logo img{object-fit:contain;max-width:120px;max-height:70px}.rc-qr{margin:6px 0}.rc-qr img{object-fit:contain;width:120px;height:120px}.shop-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px}.shop-grid{grid-template-columns:1fr 260px;gap:24px;display:grid}.shop-fields .opt-block{margin-bottom:12px}.shop-save{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:10px;margin-top:4px;padding:11px 22px;font-weight:700}.shop-images{flex-direction:column;gap:16px;display:flex}.shop-img{text-align:center}.shop-img>label{text-transform:uppercase;letter-spacing:.5px;color:var(--dim);margin-bottom:6px;font-size:12px;display:block}.shop-img-box{border:2px dashed var(--line);background:var(--card-2);cursor:pointer;border-radius:12px;place-items:center;width:130px;height:130px;margin:0 auto;padding:0;display:grid;overflow:hidden}.shop-img-box:hover{border-color:var(--accent)}.shop-img-box img{object-fit:contain;width:100%;height:100%}.shop-img-ph{color:var(--faint);font-size:13px;font-weight:600;line-height:1.5}@media (width<=620px){.shop-grid{grid-template-columns:1fr}.shop-images{flex-direction:row;justify-content:center}}.cropper{width:min(360px,96vw)}.crop-drop{border:2px dashed var(--line);text-align:center;cursor:pointer;background:var(--card-2);border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:34px 16px;display:flex}.crop-drop.over{border-color:var(--accent);background:var(--accent-soft)}.crop-drop-ico{color:var(--accent);font-size:30px}.crop-drop b{font-size:15px}.crop-drop span{color:var(--dim);font-size:13px}.crop-view{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#0b1f3a;border-radius:10px;margin:4px auto 0;position:relative;overflow:hidden}.crop-view:active{cursor:grabbing}.crop-frame{pointer-events:none;border:2px solid #ffffffd9;border-radius:10px;position:absolute;inset:0;box-shadow:inset 0 0 0 100vmax #0b1f3a59}.crop-zoom{color:var(--dim);align-items:center;gap:10px;margin:12px 0 4px;font-size:13px;display:flex}.crop-zoom input[type=range]{accent-color:var(--accent);flex:1}.lang-wrap{position:relative}.lang-btn{border:1px solid var(--line);background:var(--card);color:var(--text);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:7px 11px;font-size:13px;font-weight:600;display:inline-flex}.lang-btn:hover{background:var(--card-2)}.lang-flag{font-size:16px;line-height:1}.lang-cur{text-overflow:ellipsis;white-space:nowrap;max-width:80px;overflow:hidden}.lang-menu{z-index:70;background:var(--card);border:1px solid var(--line);width:210px;box-shadow:var(--shadow-lg);border-radius:12px;padding:4px;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden}.lang-head{color:var(--dim);padding:8px 10px 6px;font-size:12px;font-weight:600}.lang-item{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:10px;font-size:14px;font-weight:600;display:flex}.lang-item:hover{background:var(--card-2)}.lang-item.on{background:var(--accent-soft);color:var(--accent)}.lang-check{margin-left:auto}.login-lang{justify-content:center;margin-bottom:10px;display:flex}.cd-account{background:var(--card-2);border:1px solid var(--line);border-radius:10px;margin:12px 0;padding:12px}.cd-bal{justify-content:space-between;align-items:baseline;display:flex}.cd-bal span{color:var(--dim);font-size:13px}.cd-bal strong{font-size:17px}.cd-bal strong.owes{color:var(--red)}.cd-acct-btns{gap:8px;margin-top:10px;display:flex}.cd-acct-btns button{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:8px;flex:1;padding:9px;font-size:13px;font-weight:600}.cd-acct-btns .pri{background:var(--accent);color:#fff;border-color:var(--accent)}.login-2fa{flex-direction:column;align-items:center;gap:10px;margin:8px 0 4px;display:flex}.totp-input{text-align:center;letter-spacing:8px;border:1px solid var(--line);border-radius:10px;width:180px;padding:12px;font-size:22px}.totp-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.totp-go,.totp-input+button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:11px 24px;font-weight:700}.totp-go:disabled{opacity:.5}.sec-wrap{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;padding:4px 20px 20px;display:grid}.sec-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px}.sec-card h3{margin-bottom:6px}.sec-secret{background:var(--card-2);border:1px solid var(--line);letter-spacing:2px;word-break:break-all;border-radius:8px;margin:8px 0;padding:10px;font-family:ui-monospace,monospace;font-size:15px;display:block}.sec-confirm{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.sec-confirm .totp-input{letter-spacing:5px;width:150px;font-size:18px}.sec-confirm button{border:1px solid var(--line);cursor:pointer;border-radius:9px;padding:10px 16px;font-weight:600}.sec-confirm .primary{background:var(--accent);color:#fff;border-color:var(--accent)}.sec-ip{border:1px solid var(--line);width:100%;font:inherit;resize:vertical;border-radius:9px;margin:6px 0;padding:11px}.sec-ip:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.sec-ip-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.sec-ip-actions .primary{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:9px;padding:10px 18px;font-weight:600}.rep-delta{border-radius:999px;margin-left:12px;padding:3px 10px;font-size:13px;font-weight:700}.rep-delta.up{color:var(--green);background:var(--green-soft)}.rep-delta.down{color:var(--red);background:var(--red-soft)}.ai-feed{background:linear-gradient(180deg, var(--accent-soft), var(--card))}.ai-insights{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;display:grid}.ai-insight{background:var(--card);border:1px solid var(--line);border-left-width:4px;border-radius:11px;gap:10px;padding:12px 14px;display:flex}.ai-insight.good{border-left-color:var(--green)}.ai-insight.warn{border-left-color:var(--red)}.ai-insight.tip{border-left-color:#f59e0b}.ai-insight.info{border-left-color:var(--accent)}.ai-ico{font-size:20px;line-height:1.2}.ai-insight b{font-size:14px}.ai-insight p{color:var(--dim);margin-top:3px;font-size:12.5px;line-height:1.45}.kpis.inset{margin:0 0 12px}.kpis.inset .kpi{background:var(--card-2)}.fc-chart .bar.proj{background:repeating-linear-gradient(45deg, var(--accent), var(--accent) 4px, var(--accent-soft) 4px, var(--accent-soft) 8px);opacity:.85}.fc-chart .hr.fc{color:var(--accent);font-weight:700}.split-2{grid-template-columns:1fr 1fr;gap:18px;display:grid}.split-2 h4,.rep-card h4{text-transform:uppercase;letter-spacing:.5px;color:var(--dim);margin:4px 0 6px;font-size:12px}.rep-table td.profit{color:var(--green);font-weight:600}.promo-recs{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.promo-rec{border:1px solid var(--line);background:var(--card);border-radius:11px;padding:14px}.promo-rec .pr-kind{text-transform:uppercase;letter-spacing:.6px;border-radius:999px;margin-bottom:6px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-block}.promo-rec.feature .pr-kind{background:var(--green-soft);color:var(--green)}.promo-rec.discount .pr-kind,.promo-rec.clearance .pr-kind{color:#92400e;background:#fef3c7}.promo-rec.happy_hour .pr-kind{background:var(--accent-soft);color:var(--accent)}.promo-rec.winback .pr-kind{color:#86198f;background:#fae8ff}.promo-rec b{font-size:14px;display:block}.promo-rec p{color:var(--dim);margin-top:5px;font-size:12.5px;line-height:1.45}@media (width<=640px){.split-2{grid-template-columns:1fr}}.rep-controls{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;display:flex}.period-bar{background:var(--card-2);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.period-bar button{color:var(--dim);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:8px 14px;font-size:13px;font-weight:600}.period-bar button.on{background:var(--accent);color:#fff}.period-custom{align-items:center;gap:8px;display:inline-flex}.period-custom input{border:1px solid var(--line);font:inherit;border-radius:9px;padding:9px 11px}.period-custom input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.set-hint{color:var(--dim);margin:0 0 14px;font-size:13px;line-height:1.5}.set-hint code{background:var(--card-2);border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:12px}.paper-toggle{gap:8px;display:flex}.paper-toggle button{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:10px;flex:1;padding:12px;font-weight:700}.paper-toggle button em{color:var(--dim);font-size:12px;font-style:normal;font-weight:400}.paper-toggle button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.set-adv{margin-top:6px}.set-adv summary{cursor:pointer;color:var(--dim);font-size:13px;font-weight:600}.bio-key{background:var(--green-soft);border:1px solid var(--green);border-radius:10px;margin:8px 0 4px;padding:12px}.bio-key label{color:var(--green);margin-bottom:6px;font-size:12px;font-weight:700;display:block}.bio-key>code{border:1px solid var(--line);word-break:break-all;background:#fff;border-radius:7px;padding:9px;font-size:13px;display:block}.bio-key .pe-hint{margin-top:8px;line-height:1.6}.bio-key .pe-hint code{border:1px solid var(--line);background:#fff;border-radius:4px;padding:1px 5px;font-size:11px}.sync-block{background:var(--card-2);border:1px solid var(--line);border-radius:10px;margin:4px 0 14px;padding:12px}.sync-block .opt-block{margin-bottom:0}.att-controls{flex-wrap:wrap;align-items:center;gap:18px;margin:4px 0 14px;display:flex}.att-controls label{color:var(--dim);align-items:center;gap:8px;font-size:13px;font-weight:600;display:inline-flex}.att-controls input[type=date]{border:1px solid var(--line);font:inherit;border-radius:9px;padding:8px 11px}.att-controls input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.att-hours{color:var(--dim);font-size:13px}.att-hours b{color:var(--text)}.att-table td.num{font-weight:700}.att-late{color:var(--red);margin-left:4px;font-size:11px;font-weight:700}.linklike{color:var(--accent);cursor:pointer;font-weight:600;font-size:inherit;background:0 0;border:0;padding:0}.dlg{background:var(--card);box-shadow:var(--shadow-lg);border-radius:16px;width:min(420px,94vw);padding:22px;animation:.12s ease-out dlg-in}@keyframes dlg-in{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:none}}.dlg h3{margin-bottom:6px;font-size:17px}.dlg-msg{color:var(--dim);margin-bottom:14px;font-size:14px;line-height:1.5}.dlg h3+.dlg-field{margin-top:14px}.dlg-field{margin-bottom:14px}.dlg-field label{text-transform:uppercase;letter-spacing:.5px;color:var(--dim);margin-bottom:7px;font-size:12px;display:block}.dlg-field input,.dlg-field select{border:1px solid var(--line);background:var(--card);width:100%;color:inherit;border-radius:10px;padding:12px;font-size:16px}.dlg-field input:focus,.dlg-field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.dlg-hint{color:var(--dim);margin-top:6px;font-size:12px;display:block}.dlg-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.dlg-actions button{border:1px solid var(--line);cursor:pointer;border-radius:10px;padding:11px 22px;font-size:14px;font-weight:600}.dlg-cancel{background:var(--card-2);color:var(--dim)}.dlg-ok{background:var(--accent);border-color:var(--accent);color:#fff}.dlg-ok.danger{background:var(--red,#dc2626);border-color:var(--red,#dc2626)}.checkout{width:min(440px,96vw);max-height:94vh;padding:20px;overflow-y:auto}.co-head{align-items:center;margin-bottom:16px;display:flex}.co-head h2{font-size:18px}.co-close{background:var(--card-2);width:32px;height:32px;color:var(--dim);border-radius:8px;margin-left:auto;font-size:20px}.co-amounts{gap:8px;margin-bottom:14px;display:flex}.co-amt{background:var(--card-2);border:1px solid var(--line);text-align:center;border-radius:10px;flex:1;padding:12px}.co-amt span{color:var(--dim);text-transform:uppercase;letter-spacing:.5px;font-size:11px;display:block}.co-amt strong{font-variant-numeric:tabular-nums;font-size:19px}.co-amt.due strong{color:var(--accent)}.co-amt.change strong{color:var(--green)}.co-split{color:var(--dim);margin-bottom:10px;font-size:12px}.co-methods{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px;display:grid}.co-method{border:1px solid var(--line);background:var(--card-2);border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:12px 4px;display:flex}.co-method span{font-size:13px;font-weight:600}.co-method em{color:var(--dim);font-size:9px;font-style:normal}.co-method.sel{background:var(--accent);border-color:var(--accent);color:#fff}.co-method.sel em{color:#dbe6ff}.co-display{background:var(--card-2);border:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums;border-radius:10px;justify-content:flex-end;align-items:baseline;gap:8px;padding:16px;font-size:28px;font-weight:700;display:flex}.co-display .ph{color:var(--faint)}.co-cur{color:var(--dim);font-size:12px;font-weight:400}.co-quick{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.co-quick button{border:1px solid var(--line);background:var(--card-2);font-variant-numeric:tabular-nums;border-radius:8px;flex:1;min-width:56px;padding:10px;font-size:12px;font-weight:600}.co-pad{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px;display:grid}.co-pad button{border:1px solid var(--line);background:var(--card-2);font-variant-numeric:tabular-nums;border-radius:10px;padding:18px;font-size:20px;font-weight:600}.co-pad button:active{background:var(--accent-soft)}.co-actions{gap:8px;margin-top:16px;display:flex}.co-partial{border:1px solid var(--line);background:var(--card-2);border-radius:10px;padding:15px;font-weight:600}.co-partial:disabled{opacity:.4}.co-pay{background:var(--green);color:#fff;border-radius:10px;flex:1;padding:15px;font-size:16px;font-weight:700}.co-pay:disabled{background:var(--line-2);color:#fff}.co-hint{color:var(--dim);text-align:center;margin:12px 0 0;font-size:11px}.drawer-backdrop{z-index:70;background:#141b2d66;position:fixed;inset:0}.drawer{z-index:71;background:var(--card);width:400px;max-width:92vw;box-shadow:var(--shadow-lg);flex-direction:column;animation:.18s slidein;display:flex;position:fixed;top:0;bottom:0;right:0}@keyframes slidein{0%{opacity:.6;transform:translate(20px)}}.drawer-head{border-bottom:1px solid var(--line);align-items:center;padding:18px 20px;display:flex}.drawer-head h2{font-size:16px}.drawer-head .alarm{letter-spacing:.5px;background:var(--red);color:#fff;border-radius:5px;margin-left:10px;padding:2px 8px;font-size:11px;font-weight:700;animation:1s infinite pulse}.drawer-head .close{background:var(--card-2);width:32px;height:32px;color:var(--dim);border-radius:8px;margin-left:auto;font-size:20px}.drawer-body{flex:1;padding:16px 20px;overflow-y:auto}.drawer-body h3{text-transform:uppercase;letter-spacing:.5px;color:var(--dim);margin:4px 0 10px;font-size:12px}.printers{gap:8px;margin-bottom:22px;display:grid}.printer{background:var(--card-2);border:1px solid var(--line);border-radius:10px;padding:12px}.printer.down{border-color:var(--red);background:var(--red-soft)}.p-head{align-items:center;gap:8px;display:flex}.p-head .dot{border-radius:50%;width:8px;height:8px}.p-head .dot.green{background:var(--green)}.p-head .dot.red{background:var(--red)}.p-name{font-size:13px;font-weight:600}.p-addr{color:var(--dim);margin-left:auto;font-family:ui-monospace,monospace;font-size:11px}.p-stats{color:var(--dim);gap:10px;margin-top:4px;font-size:11px;display:flex}.p-stats .warn{color:var(--amber)}.p-stats .bad{color:var(--red)}.p-err{color:#b42318;margin-top:6px;font-family:ui-monospace,monospace;font-size:11px}.jobs{gap:6px;display:grid}.job{background:var(--card-2);border-left:3px solid var(--line);border-radius:9px;padding:9px 11px}.job.done{border-left-color:var(--green)}.job.queued{border-left-color:var(--amber)}.job.printing{border-left-color:var(--accent)}.job.failed{border-left-color:var(--red);background:var(--red-soft)}.job.done_unverified{border-left-color:var(--amber);background:var(--amber-soft)}.j-head{align-items:center;gap:8px;display:flex}.badge{text-transform:uppercase;letter-spacing:.4px;background:var(--line);color:var(--dim);border-radius:5px;padding:2px 7px;font-size:10px;font-weight:600}.badge.done{background:var(--green);color:#fff}.badge.queued{background:var(--amber);color:#4a2c00}.badge.printing{background:var(--accent);color:#fff}.badge.failed{background:var(--red);color:#fff}.badge.done_unverified{color:var(--amber);border:1px solid var(--amber);background:0 0}.j-type{font-size:12px}.j-order{color:var(--dim);margin-left:auto;font-family:ui-monospace,monospace;font-size:11px}.j-sub{color:var(--dim);flex-wrap:wrap;gap:8px;margin-top:3px;font-size:11px;display:flex}.j-retry{color:var(--amber)}.j-err{color:#b42318;margin-top:4px;font-family:ui-monospace,monospace;font-size:11px}.j-btn{background:var(--red);color:#fff;border-radius:6px;margin-top:6px;padding:5px 12px;font-size:12px}.demo-hint{color:var(--dim);background:var(--card-2);border:1px dashed var(--line);border-radius:9px;margin-top:16px;padding:12px;font-size:12px;line-height:1.5}.demo-hint b{color:var(--text)}.demo-hint code{background:var(--card);color:var(--accent);border-radius:4px;padding:1px 5px;font-family:ui-monospace,monospace}.login{background:linear-gradient(135deg, var(--rail) 0%, #123163 55%, #1b4fb0 100%);justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{background:var(--card);width:min(360px,94vw);box-shadow:var(--shadow-lg);text-align:center;border-radius:18px;padding:30px 26px}.login-brand{justify-content:center;align-items:center;gap:8px;margin-bottom:18px;display:flex}.login-logo{background:linear-gradient(135deg, #3b82f6, var(--accent));color:#fff;border-radius:11px;justify-content:center;align-items:center;width:40px;height:40px;font-weight:800;display:flex}.login-card h1{margin-bottom:4px;font-size:21px}.login-hint{color:var(--dim);margin-bottom:22px;font-size:13px}.pin-dots{justify-content:center;gap:12px;height:16px;margin-bottom:20px;display:flex}.pin-dots .dot{border:2px solid var(--line-2);border-radius:50%;width:14px;height:14px}.pin-dots .dot.filled{background:var(--accent);border-color:var(--accent)}.login-error{color:var(--red);margin-bottom:12px;font-size:13px}.pinpad{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.pinpad button{background:var(--card-2);border:1px solid var(--line);border-radius:12px;padding:18px 0;font-family:ui-monospace,monospace;font-size:22px;font-weight:600}.pinpad button:active{background:var(--accent-soft)}.pinpad .pin-ok{background:var(--accent);border-color:var(--accent);color:#fff}.pinpad .pin-ok:disabled{background:var(--line-2);border-color:var(--line-2)}.login-demo{color:var(--faint);margin-top:20px;font-size:11px}.rep-wrap{flex:1;padding:24px;overflow-y:auto}.rep-head{align-items:baseline;gap:12px;margin-bottom:20px;display:flex}.rep-head h1{font-size:22px}.rep-date{color:var(--dim);font-variant-numeric:tabular-nums;font-size:14px}.kpis{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:22px;display:grid}.kpi{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:16px 18px}.kpi span{color:var(--dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:12px;display:block}.kpi strong{font-variant-numeric:tabular-nums;font-size:24px}.kpi strong em{color:var(--dim);font-size:13px;font-style:normal;font-weight:400}.kpi.warn strong{color:var(--amber)}.rep-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.rep-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:18px}.rep-card.wide{grid-column:1/-1}.rep-card h3{text-transform:uppercase;letter-spacing:.5px;color:var(--dim);margin-bottom:12px;font-size:13px}.rep-table{border-collapse:collapse;width:100%}.rep-table td{border-bottom:1px solid var(--line);padding:9px 0;font-size:14px}.rep-table td.num{text-align:right;font-variant-numeric:tabular-nums;color:var(--dim);width:60px}.rep-table td.num.strong{color:var(--text);width:110px;font-weight:600}.pay-tag{background:var(--accent-soft);color:var(--accent);border-radius:6px;padding:3px 9px;font-size:11px;font-weight:700}.pay-tag.cash{background:var(--green-soft);color:var(--green)}.pay-tag.qr{color:#7c3aed;background:#ede9fe}.pay-tag.card{background:var(--amber-soft);color:#b45309}.hours{align-items:flex-end;gap:6px;height:160px;padding-top:10px;display:flex}.hour{flex-direction:column;flex:1;align-items:center;height:100%;display:flex}.bar-wrap{flex:1;align-items:flex-end;width:100%;display:flex}.bar{background:linear-gradient(var(--accent), #60a5fa);border-radius:4px 4px 0 0;width:100%;min-height:2px}.hr{color:var(--dim);font-variant-numeric:tabular-nums;margin-top:6px;font-size:10px}.kds-wrap{background:#0e1626;flex-direction:column;flex:1;display:flex;overflow:hidden}.kds-head{background:var(--rail);color:#fff;flex:none;align-items:center;gap:16px;padding:16px 20px;display:flex}.kds-head h1{font-size:18px}.kds-stations{gap:6px;margin-left:auto;display:flex}.kds-stations button{color:#aeb8cf;background:#ffffff0f;border-radius:8px;padding:7px 14px;font-size:13px}.kds-stations button.active{background:var(--accent);color:#fff}.kds-board{flex:1;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));align-content:start;gap:14px;padding:16px;display:grid;overflow-y:auto}.ticket{background:#17233b;border:1px solid #26344f;border-radius:12px;overflow:hidden}.ticket.late{border-color:var(--amber);box-shadow:0 0 0 1px var(--amber)}.ticket-head{color:#fff;background:#1e2d49;align-items:center;gap:8px;padding:12px 14px;display:flex}.ticket-head b{font-size:15px}.ticket-no{color:#8ea0c4;font-family:ui-monospace,monospace;font-size:11px}.ticket-age{color:#cbd5e1;margin-left:auto;font-size:12px;font-weight:700}.ticket.late .ticket-age{color:var(--amber)}.ticket-items{gap:6px;padding:8px;display:grid}.kitem{text-align:left;color:#e8eefc;background:#223251;border:1px solid #0000;border-radius:9px;padding:10px 12px}.kitem.cooking{border-color:var(--amber);background:#3a2f10}.kitem.ready{border-color:var(--green);background:#10331f}.kitem-main{align-items:baseline;gap:8px;display:flex}.kitem-qty{color:#7cc0ff;font-weight:700}.kitem-name{font-weight:600}.kitem-note{color:#ffd27a;margin-top:3px;font-size:12px}.kitem-station{color:#8ea0c4;text-transform:uppercase;letter-spacing:.4px;margin-top:3px;font-size:10px}.kitem-action{text-transform:uppercase;letter-spacing:.5px;color:#9fb4d8;margin-top:8px;font-size:11px;font-weight:700}.kitem.cooking .kitem-action{color:var(--amber)}.kitem.ready .kitem-action{color:#5ed99a}.co-promo{gap:8px;margin-bottom:8px;display:flex}.co-promo input{border:1px solid var(--line);text-transform:uppercase;border-radius:9px;flex:1;padding:10px 12px;font-family:ui-monospace,monospace}.co-promo button{background:var(--accent);color:#fff;border-radius:9px;padding:10px 16px;font-weight:600}.co-promo button:disabled{background:var(--line-2)}.co-promo-msg{margin-bottom:8px;font-size:13px;font-weight:600}.co-promo-msg.ok{color:var(--green)}.co-promo-msg.err{color:var(--red)}.co-discount{border:1px dashed var(--line);background:var(--card-2);width:100%;color:var(--accent);border-radius:9px;margin-bottom:12px;padding:10px;font-size:13px;font-weight:600}.co-discount:disabled{opacity:.5}.orders-wrap{flex:1;padding:24px;overflow-y:auto}.orders-head{align-items:center;gap:16px;margin-bottom:18px;display:flex}.orders-head h1{font-size:22px}.orders-tabs{background:var(--card);border:1px solid var(--line);border-radius:10px;gap:6px;margin-left:auto;padding:4px;display:flex}.orders-tabs button{color:var(--dim);border-radius:7px;padding:8px 16px;font-size:13px;font-weight:600}.orders-tabs button.active{background:var(--accent);color:#fff}.orders-msg{background:var(--accent-soft);color:var(--accent);cursor:pointer;border-radius:10px;margin-bottom:16px;padding:12px 16px;font-size:14px}.orders-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;display:grid}.ocard{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:16px}.ocard.held{border-left:4px solid var(--amber)}.ocard.open{border-left:4px solid var(--accent)}.ocard-head{align-items:center;gap:8px;display:flex}.ocard-head b{font-size:15px}.ocard-status{text-transform:uppercase;letter-spacing:.4px;background:var(--accent-soft);color:var(--accent);border-radius:5px;margin-left:auto;padding:2px 8px;font-size:10px;font-weight:700}.ocard-status.held{background:var(--amber-soft);color:#b45309}.ocard-no{color:var(--dim);margin-top:4px;font-family:ui-monospace,monospace;font-size:12px}.ocard-meta{color:var(--dim);margin-top:2px;font-size:12px}.ocard-total{font-variant-numeric:tabular-nums;margin:10px 0;font-size:22px;font-weight:700}.ocard-total em{color:var(--dim);font-size:12px;font-style:normal;font-weight:400}.ocard-actions{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.ocard-actions button{border:1px solid var(--line);background:var(--card-2);white-space:nowrap;cursor:pointer;border-radius:8px;flex:auto;min-width:56px;padding:9px 8px;font-size:13px;font-weight:600;transition:background .1s,border-color .1s}.ocard-actions button:hover{background:var(--card);border-color:var(--line-2)}.ocard-actions .pri{background:var(--green);border-color:var(--green);color:#fff;flex-basis:100%;padding:11px;font-size:14px}.ocard-actions .pri:hover{background:var(--green);filter:brightness(.96)}.stock-wrap{flex:1;padding:24px;overflow-y:auto}.stock-head{align-items:center;gap:12px;margin-bottom:18px;display:flex}.stock-head h1{font-size:22px}.stock-alert{background:var(--amber-soft);color:#b45309;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:700}.stock-table{border-collapse:collapse;background:var(--card);border:1px solid var(--line);width:100%;box-shadow:var(--shadow);border-radius:12px;overflow:hidden}.stock-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--dim);border-bottom:1px solid var(--line);background:var(--card-2);padding:12px 16px;font-size:11px}.stock-table th.num,.stock-table td.num{text-align:right}.stock-table th.act,.stock-table td.act{text-align:right;width:200px}.stock-table td{border-bottom:1px solid var(--line);padding:12px 16px;font-size:14px}.stock-table tr:last-child td{border-bottom:none}.stock-table tr.low{background:var(--amber-soft)}.stock-table tr.out{background:var(--red-soft)}.stock-table .sku{color:var(--faint);font-family:ui-monospace,monospace;font-size:12px}.stock-table .big{font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.stock-table .big em{color:var(--dim);font-size:12px;font-style:normal;font-weight:400}.stock-table .muted{color:var(--dim);font-variant-numeric:tabular-nums}.stock-table .tag{border-radius:5px;margin-left:8px;padding:2px 7px;font-size:10px;font-weight:700}.stock-table .tag.low{background:var(--amber);color:#4a2c00}.stock-table .tag.out{background:var(--red);color:#fff}.stock-table td.act button{border:1px solid var(--line);background:var(--card-2);border-radius:7px;margin-left:6px;padding:7px 12px;font-size:13px;font-weight:600}.stock-table td.act .pri{background:var(--accent);border-color:var(--accent);color:#fff}.cash-wrap{flex:1;max-width:720px;padding:24px;overflow-y:auto}.cash-head h1{margin-bottom:18px;font-size:22px}.cash-closed{background:var(--card);border:1px solid var(--line);text-align:center;box-shadow:var(--shadow);border-radius:12px;padding:40px}.cash-closed p{color:var(--dim);margin-bottom:16px}.cash-closed .btn-charge{padding:14px 28px;display:inline-block}.cash-expected{background:var(--rail);color:#fff;border-radius:14px;margin-bottom:16px;padding:24px}.cash-expected span{color:#9fb0d0;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:13px;display:block}.cash-expected strong{font-variant-numeric:tabular-nums;font-size:34px}.cash-expected em{color:#9fb0d0;font-size:15px;font-style:normal}.cash-breakdown{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:16px;display:grid}.cb{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;padding:14px}.cb span{color:var(--dim);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px;font-size:11px;display:block}.cb b{font-variant-numeric:tabular-nums;font-size:17px}.cash-actions{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.cash-actions button{border:1px solid var(--line);background:var(--card);border-radius:9px;padding:12px 18px;font-size:14px;font-weight:600}.cash-actions .danger{background:var(--red);border-color:var(--red);color:#fff;margin-left:auto}.cash-ledger{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:16px}.cash-ledger h3{text-transform:uppercase;letter-spacing:.5px;color:var(--dim);margin-bottom:10px;font-size:12px}.cl{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:8px 0;font-size:14px;display:flex}.cl:last-child{border-bottom:none}.cl-kind{text-transform:uppercase;background:var(--card-2);color:var(--dim);border-radius:5px;padding:2px 8px;font-size:10px;font-weight:700}.cl-kind.in{background:var(--green-soft);color:var(--green)}.cl-kind.out,.cl-kind.drop{background:var(--amber-soft);color:#b45309}.cl-amt{font-variant-numeric:tabular-nums;width:90px;font-weight:600}.cl-reason{color:var(--dim);flex:1}.cl-time{color:var(--faint);font-size:12px}.cust-btn{border:1px dashed var(--line);background:var(--card-2);color:var(--accent);border-radius:8px;margin-top:8px;padding:6px 12px;font-size:12px;font-weight:600}.cust-btn.on{background:var(--accent-soft);border-style:solid}.cust-wrap{flex:1;display:flex;overflow:hidden}.cust-main{flex:1;padding:24px;overflow-y:auto}.cust-head{align-items:center;gap:12px;margin-bottom:16px;display:flex}.cust-head h1{font-size:22px}.cust-search{border:1px solid var(--line);border-radius:9px;flex:1;max-width:320px;padding:10px 14px}.cust-detail{background:var(--card);border-left:1px solid var(--line);flex:none;width:320px;padding:20px;position:relative;overflow-y:auto}.cd-close{background:var(--card-2);width:30px;height:30px;color:var(--dim);border-radius:8px;font-size:20px;position:absolute;top:14px;right:14px}.cust-detail h2{font-size:18px}.cd-phone{color:var(--dim);margin-bottom:12px;font-size:13px}.cd-points{background:var(--rail);color:#fff;border-radius:12px;margin-bottom:12px;padding:16px}.cd-points span{color:#9fb0d0;text-transform:uppercase;font-size:11px;display:block}.cd-points strong{font-size:30px}.cd-stats{color:var(--dim);justify-content:space-between;margin-bottom:16px;font-size:13px;display:flex}.cust-detail h3{text-transform:uppercase;letter-spacing:.5px;color:var(--dim);margin:16px 0 8px;font-size:12px}.cd-row{border-bottom:1px solid var(--line);justify-content:space-between;padding:7px 0;font-size:13px;display:flex}.cd-row .pos{color:var(--green)}.cd-row .neg{color:var(--red)}.po-lines{gap:8px;display:grid}.po-line{align-items:center;gap:8px;display:flex}.po-line select{border:1px solid var(--line);border-radius:8px;flex:1;padding:9px}.po-line input{border:1px solid var(--line);border-radius:8px;padding:9px}.po-lt{text-align:right;font-variant-numeric:tabular-nums;width:90px;font-weight:600}.po-rm{background:var(--red-soft);width:28px;height:28px;color:var(--red);border-radius:7px;font-size:16px}.staff-wrap{flex:1;padding:24px;overflow-y:auto}.staff-head{align-items:center;margin-bottom:18px;display:flex}.staff-head h1{font-size:22px}.btn-add{background:var(--accent);color:#fff;border-radius:9px;margin-left:auto;padding:10px 18px;font-size:14px;font-weight:600}.role-sel{border:1px solid var(--line);background:var(--card);border-radius:7px;padding:6px 10px;font-size:13px}.tag.ok{background:var(--green-soft);color:var(--green)}.tag.off{background:var(--card-2);color:var(--dim)}.stock-table .tag.ok,.stock-table .tag.off{border-radius:6px;padding:3px 9px;font-size:11px;font-weight:600}.branch-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.branch-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:18px}.branch-head{align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.branch-head b{font-size:16px}.branch-sales{font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}.branch-sales em{color:var(--dim);font-size:13px;font-style:normal;font-weight:400}.branch-bar{background:var(--card-2);border-radius:3px;height:6px;margin:10px 0;overflow:hidden}.branch-bar div{background:linear-gradient(90deg, var(--accent), #60a5fa);border-radius:3px;height:100%}.branch-meta{color:var(--dim);font-size:12px}.cd-screen{background:linear-gradient(160deg, var(--rail), #0d2350 70%, #17408f);color:#fff;flex-direction:column;min-height:100vh;padding:40px;display:flex}.cd-brand{align-items:center;gap:16px;margin-bottom:30px;display:flex}.cd-logo{background:linear-gradient(135deg, #3b82f6, var(--accent));border-radius:14px;justify-content:center;align-items:center;width:56px;height:56px;font-size:26px;font-weight:800;display:flex}.cd-brand b{font-size:24px;display:block}.cd-brand span{color:#9fb4d8;font-size:14px}.cd-order{flex-direction:column;flex:1;display:flex}.cd-lines{flex:1;overflow-y:auto}.cd-empty{color:#7e93bd;text-align:center;margin-top:80px;font-size:22px}.cd-line{border-bottom:1px solid #ffffff1a;align-items:center;gap:20px;padding:16px 0;font-size:24px;display:flex}.cd-qty{color:#7cc0ff;font-variant-numeric:tabular-nums;min-width:70px;font-weight:700}.cd-name{flex:1}.cd-amt{font-variant-numeric:tabular-nums;font-weight:600}.cd-total{border-top:3px solid #ffffff40;justify-content:space-between;align-items:baseline;margin-top:12px;padding-top:24px;display:flex}.cd-total span{color:#9fb4d8;font-size:26px}.cd-total strong{font-variant-numeric:tabular-nums;font-size:56px}.cd-total em{color:#9fb4d8;font-size:22px;font-style:normal}.cd-member{color:#ffd27a;margin-top:16px;font-size:18px}.cd-paid{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.cd-thanks{margin-bottom:20px;font-size:48px;font-weight:800}.cd-paidamt{font-variant-numeric:tabular-nums;font-size:64px;font-weight:800}.cd-paidamt em{color:#9fb4d8;font-size:26px;font-style:normal}.cd-change{margin-top:20px;font-size:32px}.cd-change b{color:#5ed99a}.cd-points{color:#ffd27a;margin-top:16px;font-size:22px}.cd-sub{color:#9fb4d8;margin-top:24px;font-size:20px}.loading{text-align:center;color:var(--dim);padding:60px}.fatal{text-align:center;padding:60px}.fatal h1{color:var(--red);margin-bottom:8px}.fatal code{background:var(--card);box-shadow:var(--shadow);border-radius:5px;padding:3px 8px;font-family:ui-monospace,monospace}
