:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font:"Inter", "Segoe UI", ui-sans-serif, system-ui, -apple-system, sans-serif;--mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--ink:#0f1c19;--ink-2:#33423d;--muted:#677872;--line:#e2e9e6;--line-strong:#cbd8d3;--canvas:#f4f7f6;--surface:#fff;--surface-2:#f8fbfa;--brand:#0f766e;--brand-strong:#0b5c55;--brand-soft:#e3f4f1;--accent:#f59e0b;--accent-soft:#fff4de;--danger:#dc2626;--danger-soft:#fdecec;--warning:#b45309;--warning-soft:#fdf3e2;--success:#15803d;--success-soft:#e6f6ec;--info:#2563eb;--info-soft:#e8effd;--radius-sm:8px;--radius:12px;--radius-lg:18px;--shadow-sm:0 1px 2px #0f1c190f;--shadow:0 6px 24px #0f1c1912;--shadow-lg:0 24px 64px #0f1c192e;--sidebar:#0c2622;--sidebar-ink:#cfe3dd}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--canvas);color:var(--ink);font:14px/1.45 var(--font);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--brand);text-decoration:none}h1,h2,h3,h4{letter-spacing:-.02em;margin:0}h1{font-size:26px;font-weight:750}h2{font-size:19px;font-weight:700}h3{font-size:15px;font-weight:700}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.num{font-variant-numeric:tabular-nums}.row{align-items:center;gap:10px;display:flex}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.stack{gap:12px;display:grid}.stack.tight{gap:6px}.grow{flex:auto;min-width:0}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}@media (max-width:1100px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.btn{border-radius:var(--radius-sm);background:var(--brand);color:#fff;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 16px;font-weight:650;transition:background .12s,transform 60ms,box-shadow .12s;display:inline-flex}.btn:hover{background:var(--brand-strong)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn.secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.btn.secondary:hover{background:var(--surface-2)}.btn.ghost{color:var(--ink-2);background:0 0}.btn.ghost:hover{background:#0f1c190d}.btn.danger{background:var(--danger)}.btn.danger:hover{background:#b91c1c}.btn.warning{background:var(--accent);color:#231400}.btn.lg{border-radius:var(--radius);min-height:52px;padding:0 22px;font-size:16px}.btn.xl{border-radius:var(--radius);min-height:64px;padding:0 26px;font-size:18px}.btn.sm{min-height:32px;padding:0 11px;font-size:13px}.btn.block{width:100%}.btn.icon{width:40px;padding:0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card.pad{padding:20px}.card-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.card-body{padding:20px}.stat{padding:18px 20px}.stat .label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:650}.stat .value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:6px;font-size:28px;font-weight:760}.stat .hint{color:var(--muted);margin-top:4px;font-size:12px}.badge{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:12px;font-weight:650;display:inline-flex}.badge.brand{background:var(--brand-soft);color:var(--brand-strong);border-color:#0000}.badge.success{background:var(--success-soft);color:var(--success);border-color:#0000}.badge.warning{background:var(--warning-soft);color:var(--warning);border-color:#0000}.badge.danger{background:var(--danger-soft);color:var(--danger);border-color:#0000}.badge.info{background:var(--info-soft);color:var(--info);border-color:#0000}.dot{background:currentColor;border-radius:50%;width:8px;height:8px;display:inline-block}.field{gap:6px;display:grid}.field>span{color:var(--ink-2);font-size:12px;font-weight:650}.input,.select,.textarea{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);outline:none;width:100%;min-height:40px;padding:8px 12px;transition:border-color .12s,box-shadow .12s}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #0f766e26}.input.lg{min-height:52px;font-size:18px}.textarea{resize:vertical;min-height:80px}.checkbox{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.table-wrap{overflow:auto}table.table{border-collapse:collapse;width:100%;font-size:13.5px}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap;padding:10px 14px;font-size:12px;font-weight:650;position:sticky;top:0}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 14px}.table tr:last-child td{border-bottom:0}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--surface-2)}.table .right{text-align:right}.tabs{border-radius:var(--radius);background:#0f1c190d;gap:4px;width:fit-content;min-width:0;max-width:100%;padding:4px;display:flex;overflow-x:auto}.tab{cursor:pointer;color:var(--ink-2);white-space:nowrap;background:0 0;border:0;border-radius:9px;padding:8px 14px;font-weight:600}.tab.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.modal-backdrop{z-index:50;background:#0914127a;place-items:center;padding:20px;animation:.12s ease-out fade;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-lg);width:min(560px,100%);max-height:calc(100vh - 40px);box-shadow:var(--shadow-lg);animation:.14s ease-out pop;overflow:auto}.modal.wide{width:min(880px,100%)}.modal-header{border-bottom:1px solid var(--line);background:var(--surface);z-index:1;justify-content:space-between;align-items:center;padding:18px 22px;display:flex;position:sticky;top:0}.modal-body{padding:20px 22px}.modal-footer{border-top:1px solid var(--line);background:var(--surface-2);justify-content:flex-end;gap:10px;padding:16px 22px;display:flex;position:sticky;bottom:0}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.98)}}.toasts{z-index:80;gap:10px;display:grid;position:fixed;bottom:18px;right:18px}.toast{border-radius:var(--radius);background:var(--ink);color:#fff;min-width:260px;max-width:420px;box-shadow:var(--shadow-lg);padding:12px 16px;animation:.14s ease-out pop}.toast.error{background:#7f1d1d}.toast.success{background:#14532d}.empty{text-align:center;color:var(--muted);place-items:center;gap:8px;padding:36px 20px;display:grid}.empty strong{color:var(--ink-2);font-size:15px}.spinner{border:2.5px solid #0f766e33;border-top-color:var(--brand);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.center{place-items:center;min-height:160px;display:grid}.keypad{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.key{border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;min-height:62px;font-size:22px;font-weight:650}.key:active{background:var(--brand-soft)}.pin-dots{justify-content:center;gap:14px;margin:8px 0 18px;display:flex}.pin-dots span{border:2px solid var(--line-strong);border-radius:50%;width:16px;height:16px}.pin-dots span.on{background:var(--brand);border-color:var(--brand)}.app-shell{grid-template-columns:248px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--sidebar);color:var(--sidebar-ink);flex-direction:column;gap:22px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0;overflow:auto}.logo{color:#fff;letter-spacing:-.03em;align-items:center;gap:10px;padding:4px 8px;font-size:17px;font-weight:800;display:flex}.logo-mark{color:#fff;background:linear-gradient(135deg,#14b8a6,#0f766e);border-radius:10px;place-items:center;width:32px;height:32px;font-weight:900;display:grid}.nav-group{gap:2px;display:grid}.nav-label{text-transform:uppercase;letter-spacing:.1em;color:#6f9a90;padding:0 10px 6px;font-size:11px;font-weight:700}.nav-item{color:var(--sidebar-ink);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;width:100%;padding:9px 10px;font-weight:550;display:flex}.nav-item:hover{color:#fff;background:#ffffff0f}.nav-item.active{color:#fff;background:#14b8a629}.main{min-width:0}.topbar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);z-index:10;background:#ffffffd9;justify-content:space-between;align-items:center;gap:16px;padding:14px 28px;display:flex;position:sticky;top:0}.page{grid-template-columns:minmax(0,1fr);gap:20px;padding:26px 28px 40px;display:grid}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-header p{color:var(--muted);margin:4px 0 0}@media (max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}}.auth{grid-template-columns:1.1fr 1fr;min-height:100vh;display:grid}.auth-hero{color:#ecfdf8;background:radial-gradient(1200px 600px at 20% 10%,#14b8a6 0%,#0f766e 35%,#0c2622 80%);flex-direction:column;justify-content:space-between;padding:48px;display:flex}.auth-hero h1{max-width:520px;font-size:40px;line-height:1.08}.auth-panel{place-items:center;padding:32px;display:grid}.auth-card{gap:16px;width:min(420px,100%);display:grid}@media (max-width:900px){.auth{grid-template-columns:1fr}.auth-hero{display:none}}.bars{justify-content:center;align-items:flex-end;gap:8px;height:160px;padding-top:8px;display:flex}.bar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;max-width:72px;height:100%;display:flex}.bar-fill{background:linear-gradient(#2dd4bf,#0f766e);border-radius:8px 8px 3px 3px;width:100%;min-height:3px}.bar small{color:var(--muted);font-size:11px}.divider{background:var(--line);height:1px;margin:4px 0}.kbd{font-family:var(--mono);border:1px solid var(--line-strong);background:var(--surface);border-bottom-width:2px;border-radius:6px;padding:1px 6px;font-size:12px}.banner{border-radius:var(--radius);align-items:center;gap:10px;padding:10px 14px;font-weight:600;display:flex}.banner.warning{background:var(--warning-soft);color:var(--warning)}.banner.danger{background:var(--danger-soft);color:var(--danger)}.banner.info{background:var(--info-soft);color:var(--info)}.banner.success{background:var(--success-soft);color:var(--success)}.staff-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.staff-card{border:1px solid var(--line-strong);background:var(--surface);min-height:132px;color:inherit;cursor:pointer;text-align:center;font:inherit;border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:18px 10px;display:flex}.staff-card:hover,.staff-card:focus-visible{border-color:var(--brand);background:var(--brand-soft);outline:none}.staff-card.selected,.staff-card[aria-pressed=true]{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 2px color-mix(in srgb, var(--brand) 24%, transparent)}.staff-avatar{background:var(--brand);color:#fff;border-radius:50%;place-items:center;width:52px;height:52px;font-size:19px;font-weight:800;display:grid}.staff-name{font-size:17px;font-weight:750;line-height:1.2}.staff-role{opacity:.7;font-size:13px}.floor-scroll{border-radius:var(--radius-lg);contain:inline-size;max-width:100%;overflow:auto}.floor-canvas{border-radius:var(--radius-lg);border:1px solid var(--line);background:repeating-linear-gradient(0deg,#0000 0 39px,#0f1c190a 39px 40px),repeating-linear-gradient(90deg,#0000 0 39px,#0f1c190a 39px 40px);background-color:var(--surface);min-height:640px;position:relative}.table-tile{border:2px solid var(--line-strong);background:var(--surface-2);cursor:pointer;width:132px;height:112px;box-shadow:var(--shadow-sm);border-radius:16px;align-content:center;justify-items:center;gap:4px;padding:8px;transition:transform 80ms,box-shadow .12s;display:grid;position:absolute}.table-tile:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.table-tile.round{border-radius:56px}.table-tile.rect{width:176px}.table-tile.bar{border-radius:12px;width:110px;height:90px}.table-tile .label{letter-spacing:-.03em;font-size:22px;font-weight:800}.table-tile .meta{color:var(--muted);font-size:12px}.table-tile.busy{border-color:var(--brand);background:var(--brand-soft)}.table-tile.busy .meta{color:var(--brand-strong);font-weight:650}.table-tile.ready{border-color:var(--accent);background:var(--accent-soft);animation:1.6s ease-in-out infinite pulse}.table-tile.paying{border-color:var(--info);background:var(--info-soft)}@keyframes pulse{50%{box-shadow:0 0 0 6px #f59e0b38}}.floor-canvas.editing .table-tile{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:box-shadow .12s}.floor-canvas.editing .table-tile:hover{transform:none}.floor-canvas.editing .table-tile.dragging{cursor:grabbing;z-index:3;box-shadow:var(--shadow)}.table-tile.selected{box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 35%, transparent);z-index:2}.table-tile.invalid{border-color:var(--danger);background:var(--danger-soft)}
body{color:#e7f1ee;background:#0b1210;overflow:hidden}.kds{grid-template-rows:58px 1fr;height:100vh;display:grid}.kds-top{background:#0f1a17;border-bottom:1px solid #1d2c28;align-items:center;gap:14px;padding:0 18px;display:flex}.kds-top .brand{letter-spacing:-.03em;align-items:center;gap:10px;font-size:18px;font-weight:850;display:flex}.kds-top .spacer{flex:1}.kds-top .select{color:#e7f1ee;background:#16231f;border-color:#29403a;min-width:220px;max-width:320px}.kds-top>span{white-space:nowrap}.kds-top .clock{font-family:var(--mono);font-size:18px;font-weight:700}.lanes{grid-template-columns:repeat(2,minmax(0,1fr)) 280px;gap:12px;min-height:0;padding:12px;display:grid}.lane{background:#111b18;border:1px solid #1d2c28;border-radius:16px;grid-template-rows:auto 1fr;min-height:0;display:grid}.lane-head{text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid #1d2c28;justify-content:space-between;align-items:center;padding:12px 14px;font-size:13px;font-weight:800;display:flex}.lane-body{align-content:start;gap:10px;padding:10px;display:grid;overflow:auto}.ticket-card{border-top:6px solid var(--station,#14b8a6);background:#182622;border-radius:14px;overflow:hidden}.ticket-card:active{transform:scale(.985)}.ticket-card.late{box-shadow:inset 0 0 0 2px #f59e0b}.ticket-card.very-late{animation:1.4s ease-in-out infinite blink;box-shadow:inset 0 0 0 2px #ef4444}@keyframes blink{50%{background:#2a1717}}.ticket-card header{justify-content:space-between;align-items:baseline;padding:10px 12px 6px;display:flex}.ticket-card header strong{letter-spacing:-.02em;font-size:20px}.ticket-card .meta{color:#8fb3aa;padding:0 12px 8px;font-size:12.5px}.ticket-card ul{gap:6px;margin:0;padding:0 12px 10px;list-style:none;display:grid}.ticket-card li{grid-template-columns:34px 1fr;gap:6px;font-size:16px;display:grid}.ticket-card li .q{color:#5eead4;font-weight:900}.ticket-card li .mods{color:#a7c7bf;font-size:13px}.ticket-card li .note{color:#fcd34d;font-size:13px}.ticket-card li.void{opacity:.5;text-decoration:line-through}.ticket-card footer{color:#8fb3aa;background:#13201c;justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;display:flex}.timer{font-family:var(--mono);color:#e7f1ee;font-size:15px;font-weight:800}.cancel-card{cursor:pointer;background:#2a1414;border:1px solid #7f1d1d;border-radius:14px;gap:6px;padding:12px;display:grid}.cancel-card strong{color:#fca5a5}.kds .btn.secondary{color:#e7f1ee;background:#16231f;border-color:#29403a}.kds-empty{color:#5b7a72;text-align:center;padding:30px 10px;font-weight:600}@media (max-width:1100px){.lanes{grid-template-columns:repeat(2,minmax(0,1fr));overflow:auto}body{overflow:auto}}.ticket-actions{gap:8px;padding:0 12px 12px;display:flex}.ticket-actions button{font:inherit;cursor:pointer;border:0;border-radius:12px;font-weight:800}.ticket-ready{color:#04201b;background:#14b8a6;flex:1;padding:14px 10px;font-size:18px}.ticket-preparing{color:#fcd34d;background:#243631;padding:14px 12px}.ticket-dismiss{color:#8fb3aa;background:#1f2d29;flex:1;padding:10px}@media (max-width:900px){.lanes{grid-template-columns:1fr}}
