:root{--bg: #f4f3ee;--bg-gradient: radial-gradient(1200px 600px at 10% -10%, #e4ede8 0%, transparent 60%), var(--bg);--surface: #ffffff;--surface-2: #edece6;--surface-3: #e4e2da;--border: #e1dfd6;--border-strong: #cdcabf;--text: #1c2521;--muted: #66716b;--faint: #9aa39e;--primary: #2b5c4f;--primary-600: #234c41;--primary-700: #1b3d34;--primary-soft: #e2efe9;--primary-ring: rgba(43, 92, 79, .28);--on-primary: #ffffff;--accent: #b98d3f;--accent-soft: #f6ecd6;--ok: #2e7d32;--ok-soft: #e6f4e8;--warn: #b26a00;--warn-soft: #fff3df;--danger: #b3261e;--danger-soft: #fbe9e7;--info: #1a5fb4;--info-soft: #e7f0fb;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(20, 30, 26, .06);--shadow-sm: 0 1px 2px rgba(20, 30, 26, .05), 0 4px 12px rgba(20, 30, 26, .06);--shadow-md: 0 4px 10px rgba(20, 30, 26, .08), 0 12px 28px rgba(20, 30, 26, .08);--shadow-lg: 0 18px 50px rgba(20, 30, 26, .22);--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--ease: cubic-bezier(.2, .8, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--dur-fast: .14s;--dur: .22s;--dur-slow: .36s;--topbar-h: 56px;--tabbar-h: 62px;--content-max: 1500px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;font-family:var(--font);font-size:15px;line-height:1.45;color:var(--text);background:var(--bg-gradient);background-attachment:fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4{margin:0;font-family:var(--font-display);line-height:1.25;letter-spacing:-.01em;font-weight:700}h1{font-size:1.45rem}h2{font-size:1.15rem}h3{font-size:1rem;margin-bottom:.6rem}p{margin:0 0 .6rem}a{color:var(--primary);text-decoration-thickness:1px;text-underline-offset:2px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--primary-ring);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background:var(--primary-soft)}svg.icon{width:1.15em;height:1.15em;flex:none;vertical-align:-.2em}.app{min-height:100dvh;display:flex;flex-direction:column}.main{flex:1;width:100%;max-width:var(--content-max);margin:0 auto;padding:16px}.main.narrow{max-width:860px}.main.with-tabbar{padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 16px)}.page{animation:page-in var(--dur-slow) var(--ease-out)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.page-header .titles{display:flex;flex-direction:column;gap:2px;min-width:0}.page-header .subtitle{color:var(--muted);font-size:.9rem}.page-header .actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.topbar{position:sticky;top:0;z-index:30;min-height:var(--topbar-h);padding:0 14px;padding-top:env(safe-area-inset-top,0px);display:flex;align-items:center;gap:10px;color:var(--on-primary);background:linear-gradient(135deg,#2f6656,#244d42);box-shadow:0 2px 12px #141e1a40}.topbar .brand{display:inline-flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font-weight:700;font-size:1.05rem;letter-spacing:.01em;white-space:nowrap}.topbar .brand .mark{width:30px;height:30px;border-radius:9px;background:#ffffff24;border:1px solid rgba(255,255,255,.25);display:inline-flex;align-items:center;justify-content:center;font-family:Georgia,Times New Roman,serif;font-weight:700}.topbar .brand small{font-weight:500;opacity:.75;font-size:.85rem}.topbar nav{display:flex;align-items:center;gap:2px;flex:1;flex-wrap:nowrap}.topbar nav a,.topbar .dropdown-toggle{display:inline-flex;align-items:center;gap:6px;color:#ffffffd1;text-decoration:none;padding:8px 11px;border:0;background:transparent;border-radius:var(--radius-sm);white-space:nowrap;font-size:.92rem;font-weight:500;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.topbar nav a:hover,.topbar .dropdown-toggle:hover{background:#ffffff1f;color:#fff}.topbar nav a.active,.topbar .dropdown-toggle.active{background:#fff3;color:#fff;font-weight:600}.topbar .spacer{flex:1}.topbar .user{font-size:.86rem;opacity:.9;white-space:nowrap}.topbar .btn-bar{background:#ffffff24;color:#fff;border:1px solid rgba(255,255,255,.18)}.topbar .btn-bar:hover{background:#ffffff3d}.dropdown{position:relative}.dropdown-menu{display:none;position:absolute;top:calc(100% + 6px);left:0;flex-direction:column;min-width:200px;padding:6px;gap:2px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:60;transform-origin:top left}.dropdown-menu.right{left:auto;right:0;transform-origin:top right}.dropdown.open>.dropdown-menu{display:flex;animation:pop-in var(--dur) var(--ease-out)}.dropdown-menu a,.dropdown-menu .menu-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:10px 12px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:.92rem;font-weight:500;text-align:left;text-decoration:none;white-space:nowrap;transition:background var(--dur-fast) var(--ease)}.dropdown-menu a:hover,.dropdown-menu .menu-item:hover{background:var(--surface-2);color:var(--text)}.dropdown-menu a.active,.dropdown-menu .menu-item.active{background:var(--primary-soft);color:var(--primary-700);font-weight:600}.topbar .dropdown-menu a{justify-content:flex-start;color:var(--text);font-weight:500}.topbar .dropdown-menu a:hover{background:var(--surface-2);color:var(--text)}.topbar .dropdown-menu a.active{background:var(--primary-soft);color:var(--primary-700);font-weight:600}.topbar :focus-visible{outline-color:#ffffffa6}.menu-toggle{display:none;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.18);background:#ffffff24;color:#fff;border-radius:var(--radius-sm)}.conn{display:inline-flex;align-items:center;gap:6px;height:32px;font-size:.78rem;font-weight:500;padding:0 10px;border-radius:var(--radius-pill);background:#ffffff24;border:1px solid rgba(255,255,255,.18);white-space:nowrap;transition:background var(--dur) var(--ease)}.topbar .btn-bar{min-height:32px;height:32px;padding:0 12px}.conn .dot{width:8px;height:8px;border-radius:50%;background:#7ddc8a;box-shadow:0 0 0 3px #7ddc8a40}.conn.offline{background:#ffb74d38}.conn.offline .dot{background:#ffb74d;box-shadow:0 0 0 3px #ffb74d40}.hide-narrow{display:none}@media(min-width:1300px){.hide-narrow{display:initial}}.hide-mobile{display:none}@media(min-width:720px){.hide-mobile{display:initial}}@media(max-width:1099px){.menu-toggle{display:inline-flex}.topbar nav{display:none}.topbar nav.open{display:flex;flex-direction:column;align-items:stretch;position:absolute;left:0;right:0;top:100%;padding:10px;gap:4px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-md);animation:slide-down var(--dur) var(--ease-out)}.topbar nav.open a{color:var(--text);padding:12px 14px;font-size:1rem}.topbar nav.open a:hover{background:var(--surface-2);color:var(--text)}.topbar nav.open a.active{background:var(--primary-soft);color:var(--primary-700)}.topbar nav.open .dropdown-toggle{display:none}.topbar nav.open .dropdown-menu{display:flex;position:static;padding:0;border:0;box-shadow:none;background:transparent;animation:none}}.lang-switch{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px 0 11px;border-radius:var(--radius-pill);border:1px solid transparent;font-size:.85rem;font-weight:600;white-space:nowrap;cursor:pointer;transition:background var(--dur-fast) var(--ease)}.lang-switch svg.icon:last-child{opacity:.7}.lang-switch.on-dark{background:#ffffff24;border-color:#ffffff2e;color:#fff}.lang-switch.on-dark:hover{background:#ffffff3d}.lang-switch.on-light{background:var(--surface-2);color:var(--text)}.lang-switch.on-light:hover{background:var(--surface-3)}.lang-switch-wrap .dropdown-menu{min-width:170px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;background:#ffffffeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0px);height:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px))}.tabbar a{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);text-decoration:none;font-size:.75rem;font-weight:600;transition:color var(--dur-fast) var(--ease)}.tabbar a svg.icon{width:24px;height:24px}.tabbar a.active{color:var(--primary)}.tabbar a.active:before{content:"";position:absolute;top:0;width:28px;height:3px;border-radius:0 0 3px 3px;background:var(--primary)}.tabbar .count{position:absolute;top:8px;left:calc(50% + 6px);min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-pill);background:var(--danger);color:#fff;font-size:.7rem;line-height:18px;text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:9px 15px;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--surface-2);color:var(--text);font-weight:600;font-size:.92rem;line-height:1.2;text-decoration:none;white-space:nowrap;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.btn:hover{background:var(--surface-3)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.btn-primary{background:var(--primary);color:var(--on-primary);box-shadow:0 1px 2px #2b5c4f4d}.btn-primary:hover{background:var(--primary-600);box-shadow:0 4px 12px #2b5c4f4d}.btn-ok{background:var(--ok);color:#fff}.btn-ok:hover{background:#276b2b;box-shadow:0 4px 12px #2e7d324d}.btn-warn{background:var(--warn);color:#fff}.btn-warn:hover{background:#9a5c00;box-shadow:0 4px 12px #b26a004d}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#951f18;box-shadow:0 4px 12px #b3261e4d}.btn-outline{background:var(--surface);border-color:var(--border-strong)}.btn-outline:hover{background:var(--surface-2)}.btn-ghost{background:transparent}.btn-ghost:hover{background:var(--surface-2)}.btn-sm{min-height:32px;padding:5px 11px;font-size:.84rem;border-radius:7px}.btn-lg{min-height:50px;padding:12px 20px;font-size:1.02rem;border-radius:var(--radius)}.btn-block{width:100%}.btn-icon{padding:0;width:36px;min-height:36px}.btn-icon.btn-sm{width:32px;min-height:32px}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.field>label,.label{font-size:.8rem;font-weight:600;color:var(--muted)}.input,.select,.textarea{width:100%;min-height:40px;padding:8px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);outline:none;font-size:16px;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.input::placeholder,.textarea::placeholder{color:var(--faint)}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}.input.invalid{border-color:var(--danger)}.textarea{min-height:76px;resize:vertical}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2366716b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.input-sm{min-height:32px;padding:4px 9px}.select.input-sm{padding-right:30px;background-position:right 9px center}.card>.field:last-child{margin-bottom:0}.card>.grid-2:last-child{margin-bottom:-12px}.form-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:16px}@media(min-width:720px){.input-sm{font-size:.9rem}}input[type=date],input[type=file],.qty input{font-size:16px}input[type=file]{padding:8px 0}.checkbox{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.checkbox input{width:18px;height:18px;accent-color:var(--primary);cursor:pointer}.radio-group{display:flex;gap:8px;flex-wrap:wrap}.radio-group label{flex:1;min-width:150px;display:flex;align-items:center;gap:10px;padding:11px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.radio-group label:hover{border-color:var(--primary)}.radio-group label.checked{border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary)}.radio-group input{accent-color:var(--primary)}.help{font-size:.8rem;color:var(--muted)}.error-text{color:var(--danger);font-size:.85rem}.tabs{display:flex;background:var(--surface-2);border-radius:var(--radius-sm);padding:3px;margin-bottom:16px}.tabs button{flex:1;border:0;background:transparent;padding:9px;border-radius:7px;font-weight:600;color:var(--muted);transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.tabs button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-xs)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-sm);min-width:0}.card+.card{margin-top:14px}.card-title{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.card-title h3{margin:0;display:inline-flex;align-items:center;gap:8px}.card-title h3 svg.icon{color:var(--primary)}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:var(--radius-pill);font-size:.74rem;font-weight:700;letter-spacing:.01em;white-space:nowrap;background:var(--surface-2);color:var(--muted)}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}.badge.no-dot:before{display:none}.badge-PENDING{background:#e8eaf6;color:#3949ab}.badge-IN_PREPARATION{background:var(--warn-soft);color:var(--warn)}.badge-READY{background:#e0f2f1;color:#00695c}.badge-ASSIGNED{background:#ede7f6;color:#5e35b1}.badge-OUT_FOR_DELIVERY{background:var(--info-soft);color:var(--info)}.badge-DELIVERED{background:var(--ok-soft);color:var(--ok)}.badge-FAILED,.badge-CANCELLED{background:var(--danger-soft);color:var(--danger)}.badge-cash{background:var(--accent-soft);color:#8a6420}.badge-card{background:var(--info-soft);color:var(--info)}.badge-state-IDLE{background:var(--ok-soft);color:var(--ok)}.badge-state-ON_ROUTE{background:var(--info-soft);color:var(--info)}.badge-state-RETURNING{background:var(--warn-soft);color:var(--warn)}.badge-state-PAUSED{background:var(--surface-2);color:var(--muted)}.age{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;flex:none;font-variant-numeric:tabular-nums;font-weight:700;font-size:.78rem;padding:2px 8px;border-radius:var(--radius-pill);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.age.ok{background:var(--ok-soft);color:var(--ok)}.age.warn{background:var(--warn-soft);color:var(--warn)}.age.late{background:var(--danger-soft);color:var(--danger)}.alert{position:relative;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px 12px 16px;margin-bottom:14px;border-radius:var(--radius);border:1px solid transparent;overflow:hidden;animation:rise var(--dur) var(--ease-out)}.alert:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:currentColor;opacity:.6}.grow{flex:1 1 auto;min-width:0}.alert .grow{flex:1;min-width:200px}.alert svg.icon{width:22px;height:22px}.alert-info{background:var(--info-soft);border-color:#cddcf1;color:#163f78}.alert-warn{background:var(--warn-soft);border-color:#f0d7a5;color:#6b4000}.alert-danger{background:var(--danger-soft);border-color:#efc3be;color:#7a1a14}.alert-ok{background:var(--ok-soft);border-color:#bfe3c3;color:#1f5522}.alert-neutral{background:var(--surface);border-color:var(--border);color:var(--text)}.alert-neutral:before{background:var(--primary)}.kitchen-alert{background:linear-gradient(90deg,#fff3df,#ffe6b8);border-color:var(--warn);color:#5b3600;animation:rise var(--dur) var(--ease-out),pulse-ring 1.8s ease-in-out infinite}.empty-state{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 16px;text-align:center;color:var(--muted)}.empty-state svg.icon{width:34px;height:34px;color:var(--faint)}.empty-state .title{font-weight:600;color:var(--text)}.skeleton{position:relative;overflow:hidden;background:var(--surface-2);border-radius:var(--radius-sm)}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:shimmer 1.4s infinite}.loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:28px;color:var(--muted)}.spinner{display:inline-block;width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle}.btn-primary .spinner,.btn-ok .spinner,.btn-danger .spinner,.btn-warn .spinner{border-color:#fff6;border-top-color:#fff}.board-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.selection-bar{animation:rise var(--dur) var(--ease-out)}.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(215px,1fr);gap:12px;overflow-x:auto;padding-bottom:8px;align-items:start;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.board::-webkit-scrollbar{height:8px}.board::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px}.board::-webkit-scrollbar-track{background:transparent}.column{background:var(--surface-2);border-radius:var(--radius);display:flex;flex-direction:column;min-height:220px;max-height:calc(100dvh - 230px);scroll-snap-align:start;border:2px solid transparent;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.column.over{border-color:var(--primary);background:var(--primary-soft)}.column-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 6px;font-weight:700;font-size:.88rem;position:sticky;top:0}.column-header .count{background:var(--surface);border-radius:var(--radius-pill);padding:1px 8px;font-size:.76rem;color:var(--muted);min-width:26px;text-align:center}.column-body{padding:4px 8px 10px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;flex:1}.column-empty{color:var(--faint);font-size:.85rem;text-align:center;padding:18px 0}.order-card{position:relative;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:var(--radius-sm);padding:9px 10px;box-shadow:var(--shadow-xs);cursor:grab;font-size:.9rem;animation:rise var(--dur) var(--ease-out);transition:box-shadow var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.order-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.order-card.age-ok{border-left-color:var(--ok)}.order-card.age-warn{border-left-color:var(--warn)}.order-card.age-late{border-left-color:var(--danger)}.order-card.selected{outline:2px solid var(--primary);outline-offset:-1px}.order-card.dragging{opacity:.4}.order-card.pending-sync{border-style:dashed}.order-card .head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:4px;padding-right:26px}.order-card .head>span:first-child{min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.3}.order-card .head{align-items:flex-start}.order-card .num{font-weight:800}.order-card .name{font-weight:600}.order-card .addr{color:var(--muted);font-size:.83rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.order-card .items{font-size:.83rem;margin-top:4px;color:#33413b}.order-card .foot{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:6px;flex-wrap:wrap}.order-card .foot .actions{display:flex;gap:4px;flex-wrap:wrap}.order-card .select-box{position:absolute;top:8px;right:8px}.order-card .link{color:inherit;text-decoration:none}.order-card .link:hover{text-decoration:underline}.drag-overlay{width:250px;transform:rotate(2deg);box-shadow:var(--shadow-lg);animation:none}.drivers-panel{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.driver-chip{flex:1 1 210px;max-width:340px;background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);padding:10px 12px;box-shadow:var(--shadow-xs);transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease);animation:rise var(--dur) var(--ease-out)}.driver-chip.over{border-color:var(--primary);background:var(--primary-soft);box-shadow:var(--shadow-sm)}.driver-chip.paused{opacity:.65}.driver-chip .top{display:flex;justify-content:space-between;align-items:center;gap:6px}.driver-chip .name{display:inline-flex;align-items:center;gap:6px;font-weight:700}.driver-chip .name svg.icon{color:var(--primary)}.driver-chip .meta{display:flex;flex-direction:column;gap:2px;margin-top:4px;font-size:.8rem;color:var(--muted)}.driver-chip .eta{font-weight:700;color:var(--warn);font-variant-numeric:tabular-nums}.driver-chip .eta.due{color:var(--danger)}.driver-chip .chip-actions{display:flex;gap:4px;margin-top:8px;flex-wrap:wrap}.state-card{background:linear-gradient(135deg,#2f6656,#234d42);color:#fff;border-radius:var(--radius-lg);padding:14px 16px;margin-bottom:14px;box-shadow:var(--shadow-md);animation:rise var(--dur) var(--ease-out)}.state-card .badge{background:#ffffff2e;color:#fff}.state-card .big{font-size:1.5rem;font-weight:800;font-variant-numeric:tabular-nums;margin-top:6px}.state-card .actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.state-card .btn{background:#fffffff0;color:var(--primary-700)}.state-card .btn:hover{background:#fff}.state-card .btn-primary{background:var(--accent);color:#1f1a0e}.state-card .btn-primary:hover{background:#c99a48}.section-title{display:flex;align-items:center;gap:8px;margin:18px 0 8px;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}.section-title .count{background:var(--surface-2);border-radius:var(--radius-pill);padding:0 8px;font-size:.75rem}.driver-order{display:grid;grid-template-columns:auto 1fr;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;margin-bottom:10px;box-shadow:var(--shadow-sm);animation:rise var(--dur) var(--ease-out);transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.driver-order.selected{border-color:var(--primary);background:#f3f8f5}.driver-order.dimmed{opacity:.72}.driver-order .check{padding-top:2px}.driver-order .check input{width:22px;height:22px;accent-color:var(--primary)}.driver-order .title{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.driver-order .addr{display:flex;align-items:flex-start;gap:6px;font-size:1rem;font-weight:600;margin:4px 0}.driver-order .addr svg.icon{color:var(--primary);margin-top:3px}.driver-order .items{color:#33413b;font-size:.92rem}.driver-order .notes{display:flex;gap:6px;align-items:flex-start;background:var(--warn-soft);border-radius:var(--radius-sm);padding:6px 9px;margin-top:6px;font-size:.9rem}.driver-order .cash{font-size:1.1rem;font-weight:800;color:#8a6420}.driver-order .actions,.stop .actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.driver-order .actions .btn,.stop .actions .btn{width:100%;min-height:38px}.driver-order .actions .span-2,.stop .actions .span-2{grid-column:1 / -1}.sticky-bar{position:sticky;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 10px);z-index:25;margin-top:12px;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);animation:rise var(--dur) var(--ease-out)}.stop{display:grid;grid-template-columns:40px 1fr;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;margin-bottom:10px;box-shadow:var(--shadow-sm);animation:rise var(--dur) var(--ease-out);transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.stop.current{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring),var(--shadow-sm)}.stop.done{opacity:.6}.stop .pos{width:34px;height:34px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}.stop.done .pos{background:var(--ok)}.stop .eta{font-weight:700;font-variant-numeric:tabular-nums}.kds{font-size:1.05rem}.kds-drivers{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.kds-driver{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);padding:6px 12px;font-size:.95rem;box-shadow:var(--shadow-xs)}.kds-driver svg.icon{color:var(--primary)}.kds-driver .eta{font-weight:700;color:var(--warn)}.kds-driver .eta.due{color:var(--danger)}.kds-summary{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;margin-bottom:14px;box-shadow:var(--shadow-xs)}.kds-summary .label{font-size:.85rem;line-height:28px}.kds-summary .empty{font-size:.95rem;line-height:28px;color:var(--muted)}.kds-chip{display:inline-flex;align-items:center;gap:4px;height:28px;background:var(--primary-soft);color:var(--primary-700);border-radius:var(--radius-pill);padding:0 12px;font-size:.95rem}.kds-board{display:grid;grid-template-columns:1fr;gap:14px;align-items:start}@media(min-width:900px){.kds-board{grid-template-columns:repeat(3,1fr)}}.kds-column{background:var(--surface-2);border-radius:var(--radius);padding:10px;display:flex;flex-direction:column;gap:10px;min-height:180px}.kds-column-header{display:flex;justify-content:space-between;align-items:center;font-weight:800;font-size:1.05rem;padding:2px 6px 4px}.kds-column-header .count{background:var(--surface);border-radius:var(--radius-pill);padding:2px 10px;font-size:.85rem;color:var(--muted)}.ticket{background:var(--surface);border:1px solid var(--border);border-top:6px solid var(--border);border-radius:var(--radius);padding:10px 14px 12px;box-shadow:var(--shadow-sm);animation:rise var(--dur) var(--ease-out)}.ticket.age-ok{border-top-color:var(--ok)}.ticket.age-warn{border-top-color:var(--warn)}.ticket.age-late{border-top-color:var(--danger)}.ticket.waiting{opacity:.85}.ticket-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.ticket-num{font-size:1.5rem;font-weight:900;letter-spacing:-.02em}.ticket-customer{flex:1;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ticket-items{list-style:none;margin:0;padding:0}.ticket-items li{display:grid;grid-template-columns:48px 1fr 30px;align-items:center;gap:6px;padding:8px 4px;border-bottom:1px dashed var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;transition:background var(--dur-fast) var(--ease)}.ticket-items li:hover{background:var(--surface-2)}.ticket-items li:last-child{border-bottom:0}.ticket-items .qty{display:inline-flex;align-items:center;justify-content:center;align-self:center;min-width:44px;height:36px;padding:0 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font-size:1.35rem;font-weight:900;line-height:1}.ticket-items .name{font-size:1.1rem;font-weight:600}.ticket-items .note{display:block;font-size:.95rem;font-weight:700;color:var(--danger)}.ticket-items .check{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;border:2px solid var(--border-strong);color:#fff;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.ticket-items li.done .check{background:var(--ok);border-color:var(--ok)}.ticket-items li.done .name,.ticket-items li.done .qty{text-decoration:line-through;opacity:.5}.ticket-notes{display:flex;gap:6px;align-items:flex-start;background:var(--warn-soft);border-radius:var(--radius-sm);padding:6px 9px;margin-top:6px;font-weight:600}.ticket-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table th,.table td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--border);vertical-align:middle}.table th{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.table tbody tr{transition:background var(--dur-fast) var(--ease)}.table tbody tr:hover{background:#faf9f5}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}.table tr.inactive{opacity:.55}.stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}.stat-tile{position:relative;display:flex;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-xs);animation:rise var(--dur) var(--ease-out)}.stat-tile .tile-icon{width:40px;height:40px;border-radius:10px;background:var(--primary-soft);color:var(--primary);display:inline-flex;align-items:center;justify-content:center;flex:none}.stat-tile .tile-icon svg.icon{width:20px;height:20px}.stat-tile .value{font-size:1.45rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}.stat-tile .label{font-size:.76rem}.bar{height:8px;background:var(--surface-2);border-radius:var(--radius-pill);overflow:hidden;min-width:80px}.bar-fill{height:100%;background:var(--primary);border-radius:var(--radius-pill);transition:width var(--dur-slow) var(--ease-out)}.bar.lg{height:12px}.bar-fill.warn{background:var(--warn)}.bar-fill.danger{background:var(--danger)}.storage{display:flex;flex-direction:column;gap:8px}.table tbody tr.clickable{cursor:pointer}.table tbody tr.clickable:hover{background:var(--primary-soft)}.hours-grid{display:grid;grid-template-columns:minmax(96px,1fr) auto auto auto;gap:8px 14px;align-items:center}.hours-grid .day{font-weight:600}.hours-grid .day.off{color:var(--faint)}.hours-grid input[type=time]{width:118px}@media(max-width:480px){.hours-grid{grid-template-columns:1fr auto}.hours-grid .times{grid-column:1 / -1;display:flex;gap:8px;margin-bottom:6px}}.timeline{list-style:none;padding:0;margin:0}.timeline li{display:grid;grid-template-columns:56px 1fr;gap:10px;padding:7px 0;border-bottom:1px dashed var(--border);font-size:.9rem}.timeline li:last-child{border-bottom:0}.timeline li time{color:var(--muted);font-variant-numeric:tabular-nums}.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:.92rem}.kv dt{color:var(--muted)}.kv dd{margin:0}.combo{position:relative}.combo-list{position:absolute;z-index:50;left:0;right:0;top:calc(100% + 6px);margin:0;padding:6px;list-style:none;max-height:320px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);animation:pop-in var(--dur-fast) var(--ease-out)}.combo-item{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:9px 11px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease)}.combo-item.active,.combo-item:hover{background:var(--primary-soft)}.combo-item .sub{color:var(--muted);font-size:.8rem}.items-table{margin-top:12px;border-top:1px solid var(--border)}.line-item{display:grid;grid-template-columns:1fr auto auto 32px;grid-template-areas:"name name name name" "note qty price remove";align-items:center;gap:6px 12px;padding:10px 0;border-bottom:1px solid var(--border)}.line-item .name{grid-area:name;font-weight:700}.line-item .note{grid-area:note;min-width:0}.line-item .qty{grid-area:qty}.line-item .price{grid-area:price;min-width:80px;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.line-item .remove{grid-area:remove;justify-self:end}@media(max-width:560px){.line-item{grid-template-columns:auto 1fr 32px;grid-template-areas:"name name name" "note note note" "qty price remove"}}.qty{display:inline-flex;align-items:center;border:1px solid var(--border-strong);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface)}.qty button{border:0;background:var(--surface-2);width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;transition:background var(--dur-fast) var(--ease)}.qty button:hover{background:var(--surface-3)}.qty input{width:44px;border:0;text-align:center;height:32px;outline:none;-moz-appearance:textfield}.qty input::-webkit-outer-spin-button,.qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.totals{margin-left:auto;max-width:340px;font-variant-numeric:tabular-nums}.totals div{display:flex;justify-content:space-between;padding:3px 0}.totals .grand{font-size:1.25rem;font-weight:800;border-top:1px solid var(--border);margin-top:6px;padding-top:8px}.login-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:radial-gradient(900px 500px at 15% 0%,#d9e8e0 0%,transparent 60%),radial-gradient(700px 500px at 100% 100%,#f1e6cf 0%,transparent 55%),var(--bg)}.login-card{width:100%;max-width:420px;padding:24px;animation:rise var(--dur-slow) var(--ease-out)}.login-logo{text-align:center;margin-bottom:18px}.login-logo .mark{width:60px;height:60px;border-radius:16px;margin:0 auto 10px;background:linear-gradient(135deg,#2f6656,#234d42);color:#fff;font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:1.7rem;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md)}.login-logo h1{font-size:1.25rem}.login-logo .subtitle{color:var(--muted);font-size:.9rem}.login-footer{display:flex;justify-content:center;margin-top:16px}.driver-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-bottom:14px}.driver-grid button{padding:12px 8px;border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-sm);font-weight:600;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.driver-grid button:hover{border-color:var(--primary)}.driver-grid button.active{border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary)}.pin-input{font-size:1.6rem;letter-spacing:.4em;text-align:center}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:flex-end;justify-content:center;background:#0c161280;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:fade-in var(--dur-fast) var(--ease-out)}.modal{width:100%;max-width:580px;max-height:92dvh;overflow-y:auto;padding:18px;padding-bottom:calc(18px + env(safe-area-inset-bottom,0px));background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-lg);animation:sheet-up var(--dur) var(--ease-out)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.modal-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}@media(min-width:640px){.modal-backdrop{align-items:center;padding:20px}.modal{border-radius:var(--radius-lg);animation:pop-in var(--dur) var(--ease-out)}}.toasts{position:fixed;top:calc(var(--topbar-h) + 10px);right:14px;left:14px;z-index:200;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{pointer-events:auto;margin-left:auto;display:flex;align-items:center;gap:10px;max-width:440px;padding:10px 14px;border-radius:var(--radius);background:#1d2622;color:#fff;font-size:.92rem;box-shadow:var(--shadow-lg);cursor:pointer;animation:toast-in var(--dur) var(--ease-out)}.toast svg.icon{width:20px;height:20px;flex:none}.toast.success{background:var(--ok)}.toast.error{background:var(--danger)}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.row.nowrap{flex-wrap:nowrap}.stack{display:flex;flex-direction:column;gap:8px}.grid-2{display:grid;grid-template-columns:1fr;gap:0 14px}@media(min-width:720px){.grid-2{grid-template-columns:1fr 1fr}}.flex-1{flex:1}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:.85rem}.strong{font-weight:700}.mt-1{margin-top:6px}.mt-2{margin-top:12px}.mt-3{margin-top:20px}.mb-2{margin-bottom:12px}.text-right{text-align:right}.center{text-align:center}.nowrap{white-space:nowrap}.tabular{font-variant-numeric:tabular-nums}.photo-preview{max-width:100%;border-radius:var(--radius-sm);border:1px solid var(--border)}.icon-text{display:inline-flex;align-items:center;gap:6px}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes page-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:scale(.96) translateY(-4px)}to{opacity:1;transform:none}}@keyframes sheet-up{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}@keyframes slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@keyframes toast-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:none}}@keyframes shimmer{to{transform:translate(100%)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-ring{0%,to{box-shadow:0 0 #b26a0059}50%{box-shadow:0 0 0 8px #b26a0000}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}html{scroll-behavior:auto}}.line-item .name{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;min-width:0}.extra-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 9px;border-radius:999px;background:var(--primary-soft);color:var(--primary-700);font-size:.8rem;font-weight:600;line-height:1.4;white-space:nowrap;animation:pop-in var(--dur-fast) var(--ease-out)}.extra-chip em{font-style:normal;font-weight:500;opacity:.8}.extra-chip button{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;transition:background var(--dur-fast) var(--ease)}.extra-chip button:hover{background:#00000014}.extra-add{display:inline-flex;align-items:center;gap:4px;padding:2px 9px 2px 7px;border-radius:999px;border:1px dashed var(--border-strong);background:transparent;color:var(--muted);font:inherit;font-size:.8rem;font-weight:600;line-height:1.4;cursor:pointer;transition:color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.extra-add:hover{color:var(--primary-700);border-color:var(--primary);background:var(--primary-soft)}.extras-groups{display:flex;flex-direction:column;gap:14px;margin-top:12px;max-height:52vh;overflow-y:auto;padding-right:2px}.extras-group .label{margin-bottom:6px}.extras-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px}.extra-option{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:7px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.extra-option .tick{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--border-strong);color:var(--muted);transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.extra-option .name{font-weight:600;font-size:.9rem;line-height:1.2;overflow-wrap:anywhere}.extra-option .price{font-size:.8rem;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.extra-option:hover{border-color:var(--primary)}.extra-option.on{background:var(--primary-soft);border-color:var(--primary)}.extra-option.on .tick{background:var(--primary);border-color:var(--primary);color:#fff}.extra-option.on .price{color:var(--primary-700)}.chip-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.chip-toggle{display:inline-flex;align-items:center;gap:4px;padding:5px 11px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:.85rem;font-weight:500;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.chip-toggle:hover{border-color:var(--primary)}.chip-toggle.on{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-700);font-weight:600}.item-extras{display:block;font-size:.85rem;color:var(--primary-700)}.ticket-items .extra{display:block;font-size:.95rem;font-weight:700;color:var(--primary-700)}.names-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 14px}.names-row{display:grid;grid-template-columns:76px 1fr;align-items:center;gap:8px;font-size:.85rem;color:var(--muted)}.names-row .input{min-width:0}.list-sep{height:1px;margin:6px 0;background:var(--border)}
