:root{--bg:#f3f4f6;--card:#fff;--ink:#111827;--muted:#6b7280;--line:#e5e7eb;--bar:#111827;--bar-ink:#f9fafb;--new:#dc2626;--cooking:#d97706;--ready:#2563eb;--onway:#059669;--danger:#b91c1c;--ok:#047857;--radius:14px;--tap:56px;font-size:18px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent;touch-action:manipulation;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button{font:inherit;cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}.muted{color:var(--muted)}.small{font-size:.8rem}[hidden]{display:none!important}.shell{flex-direction:column;min-height:100dvh;display:flex}.topbar{z-index:20;background:var(--bar);color:var(--bar-ink);flex-wrap:wrap;align-items:center;gap:16px;padding:8px 16px;display:flex;position:sticky;top:0}.brand{letter-spacing:.04em;font-size:1.15rem;font-weight:800}.brand span{opacity:.7;font-weight:500}.tabs{gap:6px;display:flex}.tabs button{min-height:48px;color:var(--bar-ink);letter-spacing:.05em;background:0 0;border:0;border-radius:10px;padding:0 20px;font-weight:700;position:relative}.tabs button.active{background:#374151}.badge{background:var(--new);color:#fff;border-radius:999px;min-width:26px;margin-left:8px;padding:2px 8px;font-size:.85rem;animation:1s infinite pulse;display:inline-block}.top-right{align-items:center;gap:14px;margin-left:auto;font-size:.85rem;display:flex}.check{opacity:.9;align-items:center;gap:8px;display:flex}.check input{width:22px;height:22px}.sound{min-height:44px;color:var(--bar-ink);background:0 0;border:1px solid #4b5563;border-radius:10px;padding:0 14px;font-weight:600}.sound.off{background:#92400e;border-color:#92400e}.link{color:inherit;background:0 0;border:0;min-height:44px;padding:10px;text-decoration:underline}.content{flex:1;padding:12px 16px 32px}.banner{border-radius:var(--radius);text-align:left;border:0;width:100%;margin:0 0 12px;padding:14px 16px;font-size:1rem;font-weight:700;display:block}.banner.danger{background:var(--danger);color:#fff}.banner.warn{color:#78350f;background:#fef3c7}.banner.alarm{background:var(--new);color:#fff;animation:1s infinite pulse}@keyframes pulse{50%{opacity:.72}}.notice{color:#78350f;background:#fef3c7;border-radius:10px;margin:0 0 14px;padding:12px 14px;font-size:.95rem}.error{color:#7f1d1d;background:#fee2e2;border-radius:10px;margin-top:14px;padding:12px 14px;font-weight:600}.board{grid-template-columns:repeat(4,minmax(250px,1fr));align-items:start;gap:12px;display:grid;overflow-x:auto}.col{border-radius:var(--radius);background:#e5e7eb;min-height:160px;padding:10px}.col h2{letter-spacing:.08em;align-items:center;gap:8px;margin:4px 6px 0;font-size:1rem;display:flex}.col-new h2{color:var(--new)}.col-cooking h2{color:var(--cooking)}.col-ready h2{color:var(--ready)}.col-onway h2{color:var(--onway)}.count{background:#fff;border-radius:999px;padding:0 10px;font-size:.9rem}.col-hint{color:var(--muted);margin:0 6px 8px;font-size:.78rem}.col-list{flex-direction:column;gap:10px;display:flex}.card{background:var(--card);border-radius:var(--radius);border-left:8px solid var(--line);padding:12px;box-shadow:0 1px 2px #00000014}.card-main{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.card-main>span{display:block}.card.status-paid{border-left-color:var(--new)}.card.status-preparing{border-left-color:var(--cooking)}.card.status-ready{border-left-color:var(--ready)}.card.status-accepted,.card.status-picked_up,.card.status-out_for_delivery{border-left-color:var(--onway)}.card.late{box-shadow:0 0 0 3px var(--danger);background:#fee2e2}.card-main>.card-top{justify-content:space-between;align-items:baseline;display:flex}.num{letter-spacing:.02em;font-size:1.7rem;font-weight:800}.age{color:var(--muted);font-weight:700}.card.late .age{color:var(--danger)}.items{margin:8px 0;font-size:1.05rem}.item-line{padding:2px 0;display:block}.item-line.more{color:var(--muted)}.note{color:#78350f;background:#fef3c7;border-radius:8px;margin:6px 0;padding:8px 10px;font-size:.95rem;font-weight:600}.rider-line{color:var(--onway);margin:6px 0;font-weight:600}.step,.big{width:100%;min-height:var(--tap);letter-spacing:.04em;color:#fff;border:0;border-radius:12px;margin-top:8px;font-size:1.05rem;font-weight:800;display:block}.step-start{background:var(--new)}.step-ready{background:var(--cooking)}.step-assign{background:var(--ready)}.big.primary{background:var(--bar)}.big.secondary{background:#374151}.big.ghost{color:var(--ink);border:2px solid var(--line);background:0 0}.big.danger{background:var(--danger)}.big.danger-outline{color:var(--danger);border:2px solid var(--danger);background:0 0}.empty{text-align:center;color:var(--muted);padding:64px 16px}.empty-big{color:var(--ink);margin-bottom:6px;font-size:1.6rem;font-weight:800}.center-note{text-align:center;color:var(--muted);padding:80px 16px}.chip{letter-spacing:.05em;background:#e5e7eb;border-radius:999px;padding:4px 12px;font-size:.8rem;font-weight:800;display:inline-block}.chip.free{color:#065f46;background:#d1fae5}.chip.busy{color:#78350f;background:#fde68a}.chip.off{color:#4b5563;background:#e5e7eb}.big-chip{padding:8px 16px;font-size:.95rem}.s-paid{color:#991b1b;background:#fee2e2}.s-preparing{color:#78350f;background:#fde68a}.s-ready{color:#1e40af;background:#dbeafe}.s-accepted,.s-picked_up,.s-out_for_delivery,.s-delivered{color:#065f46;background:#d1fae5}.s-cancelled,.s-refunded{color:#374151;background:#e5e7eb}.overlay{z-index:40;justify-content:flex-end;display:flex;position:fixed;inset:0}.backdrop{cursor:default;background:#1118278c;border:0;position:absolute;inset:0}.panel{background:#fff;flex-direction:column;width:min(560px,100%);height:100%;display:flex;position:relative}.panel-head{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:14px 16px;display:flex}.panel-head>div:first-child{flex:1}.panel-num{font-size:2.2rem;font-weight:800;line-height:1}.close{width:var(--tap);height:var(--tap);background:#f3f4f6;border:0;border-radius:12px;font-size:1.3rem}.panel-body{flex:1;padding:4px 16px 16px;overflow-y:auto}.panel-body section{border-bottom:1px solid var(--line);padding:10px 0}.panel-body h3,.picker h3{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-size:.8rem}.panel-body p{margin:2px 0}.panel-body .warn{background:#fef3c7;border:0;border-radius:10px;margin:8px 0;padding:10px 12px}.panel-items{margin:0;padding:0;font-size:1.2rem;list-style:none}.panel-items li{gap:10px;padding:6px 0;display:flex}.qty{min-width:2.2em;font-weight:800}.extra{color:var(--muted);font-size:.9rem;font-weight:400;display:block}.total{margin-top:8px;font-size:1.05rem;font-weight:800}.call{color:#3730a3;background:#eef2ff;border-radius:10px;align-items:center;min-height:48px;margin:4px 0;padding:0 16px;font-weight:700;text-decoration:none;display:inline-flex}.addr{color:#374151}.timeline{margin:0;padding:0;font-size:.95rem;list-style:none}.timeline li{padding:3px 0}.timeline .t{min-width:5.5em;color:var(--muted);display:inline-block}.panel-actions{border-top:1px solid var(--line);background:#fff;padding:10px 16px 16px}.picker{flex:1;padding:12px 16px 16px;overflow-y:auto}.picker ul{margin:0 0 8px;padding:0;list-style:none}.picker li{margin:8px 0}.rider-row,.reason{border:2px solid var(--line);text-align:left;background:#fff;border-radius:12px;grid-template-columns:1fr auto;align-items:center;gap:2px 10px;width:100%;min-height:68px;padding:10px 14px;display:grid}.rider-row.free{border-color:#34d399}.rider-name{font-size:1.15rem;font-weight:800}.rider-sub{color:var(--muted);grid-column:1/-1;font-size:.8rem}.reason{grid-template-columns:1fr;font-weight:700}.reason.on{border-color:var(--danger);background:#fee2e2}.list-screen h2{margin:8px 0 12px}.rows{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.row{text-align:left;background:#fff;border:0;border-radius:12px;align-items:center;gap:14px;width:100%;min-height:64px;padding:10px 16px;display:flex}.row.static{cursor:default}.row .num{font-size:1.3rem}.grow{flex:1}.total-col,.carrying{text-align:right;min-width:6em;font-weight:700}.login{place-items:center;min-height:100dvh;padding:16px;display:grid}.login-card{background:#fff;border-radius:20px;width:min(440px,100%);padding:28px 24px;box-shadow:0 8px 30px #0000001a}.login-brand{letter-spacing:.1em;color:var(--new);font-size:1.4rem;font-weight:900}.login-card h1{margin:4px 0 18px;font-size:1.8rem}.login-card label{margin-bottom:8px;font-weight:700;display:block}.phone-row{align-items:stretch;gap:8px;margin-bottom:6px;display:flex}.prefix{background:#f3f4f6;border-radius:12px;place-items:center;padding:0 14px;font-weight:700;display:grid}.login-card input{width:100%;min-height:var(--tap);border:2px solid var(--line);letter-spacing:.06em;border-radius:12px;padding:0 14px;font-size:1.4rem}.login-card input.otp{text-align:center;letter-spacing:.4em;font-size:2rem}.login-card .link{color:var(--muted);margin:8px auto 0;display:block}.toasts{z-index:60;flex-direction:column;gap:8px;width:min(520px,100% - 24px);display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{color:#fff;border-radius:12px;padding:14px 18px;font-weight:700;box-shadow:0 6px 20px #00000040}.toast.ok{background:var(--ok)}.toast.error{background:var(--danger)}@media (width<=900px){.board{grid-template-columns:1fr}.top-right{justify-content:space-between;width:100%;margin-left:0}}#kot-print{display:none}@media print{@page{size:80mm auto;margin:3mm}body>:not(#kot-print){display:none!important}#kot-print{color:#000;background:#fff;width:74mm;font-family:Courier New,monospace;font-size:13pt;display:block}.kot-title{text-align:center;letter-spacing:.1em;font-weight:700}.kot-number{text-align:center;font-size:30pt;font-weight:900}.kot-meta{text-align:center;font-size:9pt}.kot-line{margin-top:6px;font-size:15pt;font-weight:700}.kot-extra{margin-left:14px;font-size:11pt}.kot-note{border:2px solid #000;margin-top:6px;padding:4px;font-weight:700}#kot-print hr{border:0;border-top:1px dashed #000;margin:6px 0}}.items-bar{align-items:center;gap:8px;margin-bottom:12px;display:flex}.items-bar .search{min-height:var(--tap);border:2px solid var(--line);font:inherit;background:#fff;border-radius:12px;flex:1;padding:0 16px}.pill{min-height:var(--tap);border:2px solid var(--line);letter-spacing:.04em;background:#fff;border-radius:12px;padding:0 18px;font-weight:800}.pill.on{background:var(--bar);color:var(--bar-ink);border-color:var(--bar)}.item-group h3{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:16px 0 8px;font-size:1rem}.item-row.sold_out{background:#fee2e2}.item-row.off_menu{opacity:.6}.item-detail{display:block}.item-btn{min-width:10.5em;min-height:var(--tap);color:#fff;letter-spacing:.04em;border:0;border-radius:12px;font-weight:800}.item-btn.out{background:var(--danger)}.item-btn.back{background:var(--ok)}.custom-time{margin:8px 0 16px;font-weight:700;display:block}.custom-time input{width:100%;min-height:var(--tap);border:2px solid var(--line);font:inherit;border-radius:12px;margin-top:6px;padding:0 12px;display:block}
