:root{--primary: #0f766e;--bg: #fffdf8;--danger: #b91c1c;--danger-bg: #fef2f2;--ink: #1f2937;--muted: #6b7280;--line: #e5e7eb}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:#f8f7f4}button,select,input{font:inherit}.center-msg{max-width:420px;margin:20vh auto;padding:24px;text-align:center}.desc{color:var(--muted);font-size:.92em;margin:4px 0}.row{display:flex;gap:10px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}.row-between{display:flex;justify-content:space-between;align-items:center;gap:10px}.btn{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 16px;min-height:44px;cursor:pointer}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.link{background:none;border:0;color:var(--danger);text-decoration:underline;cursor:pointer;padding:4px}.banner{border-radius:10px;padding:12px 14px;margin:12px 0}.banner.warn{background:#fffbeb;border:1px solid #f59e0b}.toast{position:fixed;left:50%;bottom:90px;transform:translate(-50%);background:#111827;color:#fff;padding:12px 18px;border-radius:12px;z-index:60;max-width:90vw}.powered{text-align:center;font-size:11px;color:#9ca3af;opacity:.55;padding:24px 0 96px;letter-spacing:.02em}.guest{max-width:760px;margin:0 auto;background:var(--bg);min-height:100vh;padding:0 14px}.g-head{position:sticky;top:0;z-index:10;background:var(--bg);display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.g-head h1{font-size:1.25rem;margin:0}.brand{display:flex;align-items:center;gap:10px}.logo{height:44px;width:auto;border-radius:8px}.sub{color:var(--muted);font-size:.9rem}.head-actions{display:flex;gap:8px;align-items:center}.head-actions select{min-height:40px;border-radius:8px;border:1px solid var(--line);padding:0 8px;background:#fff}.chip-btn{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;min-height:40px;cursor:pointer}.welcome{font-size:1.05rem;margin:12px 0 0}.cat-nav{display:flex;gap:8px;overflow-x:auto;padding:10px 0;position:sticky;top:66px;background:var(--bg);z-index:9}.cat-nav a{white-space:nowrap;padding:8px 12px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--ink);text-decoration:none}.cat h2{margin:18px 0 8px;font-size:1.15rem}.item{display:flex;gap:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:10px;cursor:pointer}.item.danger{border:2px solid var(--danger);background:var(--danger-bg)}.item.sold{opacity:.6}.thumb{width:88px;height:88px;object-fit:cover;border-radius:10px;flex:none}.item-body{flex:1;min-width:0}.item-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.item-top h3,.item-top h2{margin:0;font-size:1.02rem}.price{font-weight:600;white-space:nowrap}.danger-label{color:var(--danger);font-weight:700;margin:6px 0}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.tag{font-size:.78rem;padding:3px 8px;border-radius:999px;background:#f3f4f6}.tag-danger{background:var(--danger);color:#fff;font-weight:600}.tag-diet{background:#ecfdf5;color:#065f46}.sold-label{color:var(--muted);font-weight:700;margin-top:6px}.disclaimer{font-size:.85rem;color:var(--muted);background:#fff;border:1px dashed var(--line);border-radius:10px;padding:10px 12px;margin-top:16px}.cart-bar{position:fixed;left:50%;transform:translate(-50%);bottom:16px;z-index:20;background:var(--primary);color:#fff;border:0;border-radius:999px;padding:14px 22px;font-weight:600;box-shadow:0 6px 20px #0003;cursor:pointer}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182780;z-index:50;display:flex;align-items:flex-end;justify-content:center}.sheet{background:#fff;width:100%;max-width:640px;max-height:92vh;overflow:auto;border-radius:18px 18px 0 0;padding:18px}@media(min-width:700px){.modal{align-items:center}.sheet{border-radius:18px}}.danger-sheet{border-top:6px solid var(--danger)}.media{width:100%;max-height:300px;object-fit:cover;border-radius:12px;margin-bottom:10px;background:#000}.allergen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:12px 0}.al-opt{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:10px;cursor:pointer;min-height:48px}.al-opt.on{border:2px solid var(--danger);background:var(--danger-bg)}.privacy{font-size:.85rem;color:#065f46}.opt-group{border:1px solid var(--line);border-radius:10px;margin:10px 0;padding:8px 12px}.opt{display:flex;gap:8px;align-items:center;min-height:40px}.note-l{display:block;margin:10px 0}.note-l input,.login input{display:block;width:100%;margin-top:4px;padding:10px;border:1px solid var(--line);border-radius:8px;min-height:44px}.qty{display:flex;gap:12px;align-items:center;margin:8px 0}.qty span{min-width:2ch;text-align:center;font-weight:700}.cart-line{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding:10px 0}.cart-right{text-align:right;display:flex;flex-direction:column;align-items:flex-end}.cart-total{display:flex;justify-content:space-between;font-size:1.1rem;padding:12px 0}.login{max-width:380px;margin:12vh auto;background:#fff;padding:24px;border-radius:16px;border:1px solid var(--line);display:flex;flex-direction:column;gap:12px}.staff{max-width:1100px;margin:0 auto;padding:0 14px}.s-head{display:flex;justify-content:space-between;align-items:center;padding:12px 0;gap:10px;flex-wrap:wrap}.tabs{display:flex;gap:8px;margin:6px 0}.tab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;min-height:40px;cursor:pointer}.tab.on{background:var(--primary);color:#fff;border-color:var(--primary)}.legend{display:flex;gap:8px;align-items:center;font-size:.9rem;color:var(--muted);margin:6px 0}.dot{display:inline-block;width:14px;height:14px;border-radius:50%;border:2px solid}.dot.free,.tbl.is-free{background:#ecfdf5;border-color:#10b981}.dot.open,.tbl.is-open{background:#dbeafe;border-color:#2563eb}.floor{position:relative;width:100%;background:#fff;border:1px solid var(--line);border-radius:14px;background-image:radial-gradient(#e5e7eb 1px,transparent 1px);background-size:20px 20px}.tbl{position:absolute;border:2px solid;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;padding:2px}.tbl.round{border-radius:50%}.tbl-label{font-weight:800;font-size:1.1rem}.tbl-sub{font-size:.75rem;color:var(--muted)}.banner.ok{background:#ecfdf5;border:1px solid #10b981}.service-row{display:flex;gap:8px;margin:10px 0}.service-row .btn{flex:1}.my-order{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:10px 0}.my-order summary{font-weight:700;cursor:pointer;min-height:32px}.t-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.pill{font-size:.8rem;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap}.st-waiting{background:#f3f4f6;color:#374151}.st-preparing{background:#fef3c7;color:#92400e}.st-ready{background:#d1fae5;color:#065f46}.st-served{background:#e0e7ff;color:#3730a3}.live-dot{font-size:.85rem;font-weight:600}.live-dot.on{color:#059669}.live-dot.off{color:var(--danger)}.dot.is-free,.tbl.is-free{background:#ecfdf5;border-color:#10b981}.dot.is-open,.tbl.is-open{background:#dbeafe;border-color:#2563eb}.dot.is-cooking,.tbl.is-cooking{background:#fef3c7;border-color:#d97706}.dot.is-ready,.tbl.is-ready{background:#bbf7d0;border-color:#15803d;animation:pulse 1.2s infinite}.dot.is-request,.tbl.is-request{background:#fee2e2;border-color:var(--danger);animation:pulse 1.2s infinite}@keyframes pulse{50%{box-shadow:0 0 0 6px #00000014}}.tbl-badge{position:absolute;top:-10px;right:-10px;font-size:1.2rem}.alerts{display:flex;flex-direction:column;gap:8px;margin:8px 0}.alert{display:flex;gap:8px;align-items:center;border-radius:12px;padding:6px;border:2px solid}.al-ready{background:#dcfce7;border-color:#15803d}.al-call_waiter,.al-ask_bill{background:#fee2e2;border-color:var(--danger)}.alert-main{flex:1;text-align:left;background:none;border:0;font-weight:700;font-size:1.05rem;min-height:44px;cursor:pointer}.t-items h3{margin:12px 0 4px;font-size:1rem}.kitchen{padding-bottom:20px}.k-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.k-card{background:#fff;border:2px solid var(--line);border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:8px}.k-new{border-color:#2563eb;box-shadow:0 0 0 4px #bfdbfe}.k-late{border-color:#d97706}.k-done{border-color:#15803d;background:#f0fdf4}.k-head{display:flex;justify-content:space-between;align-items:baseline}.k-table{font-size:1.4rem;font-weight:800}.k-age{color:var(--muted)}.k-badge{background:#2563eb;color:#fff;border-radius:8px;padding:2px 8px;align-self:flex-start;font-weight:700}.k-row{display:flex;gap:6px}.k-item{flex:1;display:flex;gap:8px;align-items:center;text-align:left;border:2px solid transparent;border-radius:10px;padding:10px;min-height:56px;cursor:pointer;font-size:1.05rem}.k-item:disabled{cursor:default}.k-item.st-waiting{border-color:#d1d5db}.k-item.st-preparing{border-color:#d97706}.k-item.st-ready{border-color:#15803d}.k-qty{font-weight:800}.k-name{flex:1;display:flex;flex-direction:column}.k-name small{color:var(--muted)}.k-note{color:#b45309!important;font-weight:600}.k-st{font-size:.8rem;font-weight:700}.k-undo{border:1px solid var(--line);background:#fff;border-radius:10px;min-width:44px;font-size:1.2rem;cursor:pointer}.k-ready{color:#15803d;font-weight:800;text-align:center}.dot.is-merged,.tbl.is-merged{background:#f3e8ff;border-color:#7c3aed}.bill-box{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:12px 0;background:#fafafa}.bill-box h3{margin:0 0 8px}.bill-actions{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.split-eq{display:inline-flex;gap:4px}.by-dish .qty{margin:0}.bill-row{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--line)}.bill-row.b-paid{opacity:.7}.bill-btns{display:flex;gap:6px;flex-wrap:wrap}.bill-btns a.btn{text-decoration:none;color:inherit;display:inline-flex;align-items:center}.move-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.move-row select{min-height:44px;border-radius:10px;border:1px solid var(--line);padding:0 10px;background:#fff}.receipt-wrap{max-width:420px;margin:20px auto;padding:0 12px}.receipt{background:#fff;border:1px solid var(--line);padding:16px;font-family:ui-monospace,DejaVu Sans Mono,monospace;font-size:13px;color:#000}.receipt header{text-align:center}.receipt h1{font-size:18px;margin:0 0 4px}.nt{border:2px solid #000;text-align:center;padding:6px;margin:10px 0;display:flex;flex-direction:column;gap:2px}.r-lines,.r-vat{width:100%;border-collapse:collapse;margin:8px 0}.r-lines td{padding:3px 2px;vertical-align:top}.r-opt{font-size:11px;color:#444}.num{text-align:right;white-space:nowrap}.r-sum{border-top:1px dashed #000;padding-top:6px}.r-total{font-weight:800;font-size:16px}.r-vat th,.r-vat td{border-top:1px dashed #999;padding:3px 2px;font-size:12px;text-align:left}.r-foot{font-size:11px;text-align:center}.r-powered{font-size:9px;text-align:center;color:#999}@media print{@page{margin:4mm}body{background:#fff}.no-print{display:none!important}.receipt-wrap{margin:0;max-width:80mm;padding:0}.receipt{border:0;padding:0}}.tabs.sub .tab{min-height:36px;padding:6px 12px}.admin-top{margin:8px 0;gap:10px;flex-wrap:wrap}.admin-cols{display:grid;grid-template-columns:minmax(200px,260px) 1fr;gap:14px}@media(max-width:720px){.admin-cols{grid-template-columns:1fr}}.cat-list{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:6px;align-self:start}.cat-list h3{margin:0 0 4px}.cat-row{display:flex;align-items:center;gap:6px;border-radius:8px}.cat-row.on{background:#ecfdf5}.cat-row.off,.a-item.off{opacity:.55}.link-btn{flex:1;text-align:left;background:none;border:0;padding:8px;cursor:pointer;min-height:40px;font:inherit}.btn.small{min-height:34px;padding:4px 10px}.item-list{display:flex;flex-direction:column;gap:8px}.a-item{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px;flex-wrap:wrap}.a-item img,.a-item .ph{width:56px;height:56px;border-radius:8px;object-fit:cover;background:#f3f4f6}.a-item-main{flex:1;min-width:160px}.switch{display:inline-flex;align-items:center;gap:6px;min-height:40px;cursor:pointer}.switch input{width:22px;height:22px}.switch.is-sold span{color:var(--danger);font-weight:700}.sheet.wide{max-width:860px}.sheet label{display:block;margin:6px 0}.sheet input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]),.sheet select,.sheet textarea,.settings input:not([type=checkbox]):not([type=file]):not([type=color]),.settings select{width:100%;min-height:42px;border:1px solid var(--line);border-radius:8px;padding:6px 10px;background:#fff;font:inherit}.row-l{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:4px 0}.row-l>input:not(.w60):not(.w80){flex:1;min-width:140px;width:auto!important}.row-l label{display:inline-flex;gap:4px;align-items:center;margin:0}.indent{padding-left:18px}.w60{width:64px!important}.w80{width:90px!important}.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}.lang-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}.lang-tabs .tab.miss{border-color:var(--danger);color:var(--danger)}.lang-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:4px}.opt.inline{display:inline-flex!important;margin-right:12px}.al-opt{background:#fff;text-align:left;font:inherit}.al-opt small{margin-left:auto;font-weight:700}.al-contains{border:2px solid var(--danger)!important;background:var(--danger-bg)}.al-may_contain{border:2px dashed #d97706!important;background:#fffbeb}.og{border-top:1px dashed var(--line);padding:6px 0}.prev{max-width:100%;max-height:180px;border-radius:10px;display:block;margin-bottom:6px}.logo-prev{max-height:80px}.sticky-row{position:sticky;bottom:-18px;background:#fff;padding:10px 0}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;margin:12px 0}.card h3{margin-top:0}.preview-strip{display:flex;align-items:center;gap:10px;border:2px solid;border-radius:12px;padding:10px;margin:8px 0}.preview-strip img{height:40px}.vat-row input:first-child{flex:1}.avail{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:4px 12px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;margin:8px 0}.layout-cols{display:grid;grid-template-columns:1fr minmax(240px,300px);gap:12px;align-items:start}@media(max-width:820px){.layout-cols{grid-template-columns:1fr}}.floor.editing .tbl{cursor:grab;-webkit-user-select:none;user-select:none}.floor.editing .tbl.sel{outline:3px solid #2563eb;outline-offset:2px}.tbl-panel label{display:block;margin:6px 0}.tbl-panel input,.tbl-panel select{width:100%;min-height:40px;border:1px solid var(--line);border-radius:8px;padding:4px 8px}.perm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:2px 12px;margin:8px 0}.pin-names{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.pin-names .btn{min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700}.pin-dots{font-size:28px;letter-spacing:8px;text-align:center}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pin-pad .btn{min-height:64px;font-size:1.4rem;font-weight:700}.qr-page{padding:16px}.qr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.qr-card{border:3px solid;border-radius:16px;padding:14px;text-align:center;background:#fff;break-inside:avoid}.qr-head{display:flex;align-items:center;justify-content:center;gap:8px;font-size:1.1rem}.qr-head img{height:36px}.qr-code svg{width:100%;max-width:220px;height:auto}.qr-table{font-size:1.8rem;font-weight:800}.qr-say{font-size:.95rem}.qr-powered{font-size:9px;color:#9ca3af;margin-top:6px}@media print{.qr-page{padding:0}.qr-grid{grid-template-columns:repeat(2,1fr);gap:8mm}.qr-card{height:85mm;page-break-inside:avoid}}.signup{max-width:460px}.signup label{display:block}.signup select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;padding:0 8px}.landing .btn{display:inline-flex;text-decoration:none}.legal{max-width:760px;margin:20px auto;padding:0 16px 40px;background:#fff;line-height:1.55}.branch-pick{display:inline-flex;gap:6px;align-items:center;margin:4px 0}.branch-pick select{min-height:36px;border-radius:8px;border:1px solid var(--line)}.gs ol{list-style:none;padding:0;margin:0}.gs li{padding:4px 0}.gs li.done{opacity:.6;text-decoration:line-through}.w-tz{max-width:170px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:10px 0}.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column}.kpi span{color:var(--muted);font-size:.85rem}.kpi strong{font-size:1.4rem}.r-table{width:100%;border-collapse:collapse}.r-table td,.r-table th{padding:6px 4px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.reports input[type=date]{min-height:40px;border:1px solid var(--line);border-radius:8px;padding:0 8px}.reports a.btn{text-decoration:none;color:inherit;display:inline-flex;align-items:center}tr.is-sold td{color:var(--danger)}.audit code{font-size:.8rem}.take-btn{margin:8px 0}.to-cols{display:grid;grid-template-columns:1fr minmax(240px,300px);gap:12px}@media(max-width:760px){.to-cols{grid-template-columns:1fr}}.to-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}.to-item{display:flex;flex-direction:column;gap:2px;text-align:left;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff;min-height:72px;cursor:pointer;font:inherit}.to-item:disabled{opacity:.45}.to-cart{background:#fafafa;border:1px solid var(--line);border-radius:12px;padding:10px;align-self:start;position:sticky;top:0}.disc-box{margin:6px 0}.disc-box summary{cursor:pointer;min-height:32px}.tip-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}.chip-btn.on{background:var(--primary);color:#fff;border-color:var(--primary)}.loyalty .stamps{font-size:1.6rem;letter-spacing:4px;color:#d1d5db}.loyalty .stamps .on{color:#f59e0b}.stars-pick button{font-size:2rem;background:none;border:0;color:#d1d5db;cursor:pointer;min-width:44px;min-height:44px}.stars-pick button.on{color:#f59e0b}.review textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px;margin:6px 0;font:inherit}.book{max-width:520px}.book select,.book input:not([type=checkbox]){width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;padding:0 8px}.time-grid{display:flex;flex-wrap:wrap;gap:6px}.import-text{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px;font:inherit}.bk-cancelled,.bk-no_show{opacity:.5}.bk-seated{background:#f0fdf4}.bk-pending{border-color:#f59e0b}.stars-static{color:#f59e0b;letter-spacing:2px}.bookings input[type=date]{min-height:40px;border:1px solid var(--line);border-radius:8px;padding:0 8px}
