:root{--paper: #f4f5f2;--surface: #ffffff;--ink: #17203a;--muted: #566079;--line: #dcdfd8;--line-strong: #b4baae;--blue: #23408e;--blue-dark: #182c66;--blue-tint: #e7ebf6;--mustard: #e8ac2a;--mustard-tint: #fbf0d0;--danger: #a82a22;--danger-tint: #f8e3e1;--ok: #17704a;--ok-tint: #dff1e7;--bon: #fffef9;--radius: 8px;--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font:1.0625rem/1.5 var(--font);-webkit-font-smoothing:antialiased}h1,h2,h3{line-height:1.12;letter-spacing:-.015em;margin:0 0 .5em;font-weight:800}h1{font-size:clamp(2.3rem,8vw,3.75rem);letter-spacing:-.03em;color:var(--blue)}h2{font-size:1.5rem}h3{font-size:1.125rem}p{margin:0 0 1em}a{color:var(--blue);text-underline-offset:3px}img,svg{max-width:100%}:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:.9rem}.lead{font-size:1.2rem;max-width:34em}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.pre{white-space:pre-line}.nowrap{white-space:nowrap}[hidden]{display:none!important}.field{display:grid;gap:.3rem;margin-bottom:1rem}.field>label,.field>.label{font-weight:650;font-size:.95rem}input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],input[type=date],input[type=search],select,textarea{width:100%;min-height:46px;padding:.55rem .75rem;font:inherit;color:var(--ink);background:var(--surface);border:1.5px solid var(--line-strong);border-radius:var(--radius)}textarea{min-height:5.5rem;resize:vertical}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--blue-tint);outline-offset:0;border-color:var(--blue)}.hint{font-size:.875rem;color:var(--muted)}.check{display:flex;gap:.6rem;align-items:flex-start;margin-bottom:.75rem;cursor:pointer}.check input{width:1.25rem;height:1.25rem;margin-top:.15rem;accent-color:var(--blue);flex:none}.cols{display:grid;gap:0 1rem;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr))}.error{color:var(--danger);background:var(--danger-tint);border-left:4px solid var(--danger);padding:.6rem .85rem;border-radius:0 var(--radius) var(--radius) 0;margin:0 0 1rem}.notice{background:var(--mustard-tint);border-left:4px solid var(--mustard);padding:.6rem .85rem;border-radius:0 var(--radius) var(--radius) 0;margin:0 0 1rem}.success{background:var(--ok-tint);border-left:4px solid var(--ok);padding:.6rem .85rem;border-radius:0 var(--radius) var(--radius) 0;margin:0 0 1rem}.honey{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:46px;padding:.5rem 1.15rem;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;border-radius:var(--radius);border:1.5px solid var(--blue);background:var(--blue);color:#fff;transition:background .12s,color .12s}.btn:hover{background:var(--blue-dark);border-color:var(--blue-dark)}.btn[disabled]{opacity:.5;cursor:not-allowed}.btn-quiet{background:transparent;color:var(--blue)}.btn-quiet:hover{background:var(--blue-tint);color:var(--blue-dark)}.btn-danger{background:transparent;color:var(--danger);border-color:var(--danger)}.btn-danger:hover{background:var(--danger-tint);color:var(--danger);border-color:var(--danger)}.btn-sm{min-height:38px;padding:.25rem .8rem;font-size:.95rem}.btn-block{width:100%}.icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;border:0;background:transparent;color:inherit;font-size:1.5rem;line-height:1;border-radius:var(--radius);cursor:pointer}.icon-btn:hover{background:var(--blue-tint)}.icon-btn[disabled]{opacity:.3;cursor:default;background:transparent}.link-btn{background:none;border:0;padding:0;font:inherit;color:var(--blue);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.shell-header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem 1.5rem;max-width:46rem;margin:0 auto;padding:1rem 1rem .75rem}.brand{font-weight:800;font-size:1.05rem;color:var(--ink);text-decoration:none;letter-spacing:-.01em}.shell-nav{display:flex;gap:0 1.25rem;flex-wrap:wrap}.shell-nav a{color:var(--ink);text-decoration:none;font-weight:600;padding:.3rem 0;border-bottom:2.5px solid transparent}.shell-nav a.router-link-active{border-bottom-color:var(--mustard)}.page{max-width:46rem;margin:0 auto;padding:1rem 1rem 4rem}.page-wide{max-width:72rem}.shell-footer{max-width:46rem;margin:2rem auto 0;padding:1.25rem 1rem 3rem;border-top:1.5px solid var(--line);color:var(--muted);font-size:.9rem}.hero{padding:1.5rem 0 1.75rem}.hero .lead{margin-bottom:0}.actions{display:grid;gap:1rem;margin:1.5rem 0 2.5rem}.action{display:block;border-radius:14px;padding:1.25rem 1.25rem 1.35rem;text-decoration:none}.action h2{margin-bottom:.35rem}.action p{margin-bottom:0}.action-reserve{background:var(--blue);color:#fff}.action-reserve:hover{background:var(--blue-dark)}.action-order{background:var(--mustard-tint);color:var(--ink);border:2px solid var(--mustard)}.action-order form{display:flex;gap:.6rem;margin-top:.9rem}.action-order input{flex:1;min-width:0}.facts{display:grid;gap:1.25rem 2rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.facts dt{font-weight:700;margin-bottom:.2rem}.facts dd{margin:0}.plate{display:inline-flex;align-items:baseline;gap:.5rem;padding:.4rem 1.1rem;background:var(--blue);color:#fff;border-radius:10px;font-weight:800;font-size:1.15rem;line-height:1.2;box-shadow:inset 0 0 0 2px var(--blue),inset 0 0 0 4px #fff,inset 0 0 0 5.5px var(--blue)}.plate b{font-size:1.6em;letter-spacing:-.02em}.cat-nav{position:sticky;top:0;z-index:5;display:flex;gap:.5rem;overflow-x:auto;padding:.6rem 1rem;margin:0 -1rem 1rem;background:var(--paper);border-bottom:1.5px solid var(--line);scrollbar-width:none}.cat-nav::-webkit-scrollbar{display:none}.cat-nav button{flex:none;min-height:40px;padding:.3rem .95rem;font:inherit;font-weight:650;color:var(--ink);background:var(--surface);border:1.5px solid var(--line-strong);border-radius:999px;cursor:pointer}.cat-nav button:hover{background:var(--blue-tint)}.cat-title{scroll-margin-top:4.5rem;margin:2rem 0 .5rem;padding-bottom:.4rem;border-bottom:3px solid var(--ink)}.dishes{list-style:none;margin:0;padding:0}.dish{padding:.85rem 0;border-bottom:1px solid var(--line)}.dish-head{display:flex;align-items:baseline;gap:.5rem}.dish-name{font-weight:700}.leader{flex:1;min-width:1rem;border-bottom:2px dotted var(--line-strong);transform:translateY(-.3em)}.dish-price{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.dish-desc{margin:.15rem 0 0;color:var(--muted);max-width:36em}.dish-allergens{margin:.15rem 0 0;font-size:.85rem;color:var(--muted)}.dish-off .dish-name,.dish-off .dish-price{color:var(--muted);text-decoration:line-through}.dish-actions{margin-top:.6rem;display:flex;align-items:center;gap:.6rem}.stepper{display:inline-flex;align-items:center;border:1.5px solid var(--blue);border-radius:var(--radius);overflow:hidden}.stepper button{width:44px;height:42px;border:0;background:var(--blue-tint);color:var(--blue-dark);font:inherit;font-size:1.4rem;font-weight:700;cursor:pointer}.stepper button:hover{background:var(--blue);color:#fff}.stepper output{min-width:2.4rem;text-align:center;font-weight:800;font-variant-numeric:tabular-nums}.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.2rem,1fr));gap:.5rem}.slot{min-height:46px;font:inherit;font-weight:700;font-variant-numeric:tabular-nums;background:var(--surface);color:var(--ink);border:1.5px solid var(--line-strong);border-radius:var(--radius);cursor:pointer}.slot:hover:not([disabled]){border-color:var(--blue);background:var(--blue-tint)}.slot[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:#fff}.slot[disabled]{color:var(--line-strong);text-decoration:line-through;cursor:not-allowed;background:transparent}.bon{--zig: 16px;position:relative;background:var(--bon);color:#25272b;font-family:var(--mono);font-size:.92rem;line-height:1.45;padding:1.4rem 1.25rem 1.6rem;margin-bottom:14px;box-shadow:0 10px 28px #17203a24}.bon:after{content:"";position:absolute;left:0;right:0;top:100%;height:calc(var(--zig) / 2);background:linear-gradient(135deg,var(--bon) 25%,transparent 25%) 0 0 / var(--zig) var(--zig) repeat-x,linear-gradient(225deg,var(--bon) 25%,transparent 25%) 0 0 / var(--zig) var(--zig) repeat-x;filter:drop-shadow(0 6px 5px rgba(23,32,58,.08))}.bon h2,.bon h3{font-family:var(--mono);font-size:1.05rem;letter-spacing:0;text-align:center;margin-bottom:.2rem}.bon-sub{text-align:center;color:#5d6068;margin-bottom:.9rem}.bon hr{border:0;border-top:2px dashed #b5b3a8;margin:.9rem 0}.bon-line{display:grid;grid-template-columns:auto 1fr auto;gap:.2rem .6rem;align-items:baseline;padding:.3rem 0}.bon-line.edit{grid-template-columns:1fr auto;padding:.45rem 0}.bon-controls{grid-column:1 / -1;display:flex;align-items:center;gap:.5rem}.bon-controls input[type=text]{flex:1;min-width:0}.bon-qty{font-weight:700}.bon-sum{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.bon-sub-line{grid-column:2 / -1;font-size:.85rem;color:#5d6068}.bon-controls input[type=text]{min-height:36px;padding:.2rem .5rem;font:inherit;font-size:.85rem;background:#fff}.bon-total{display:flex;justify-content:space-between;font-weight:800;font-size:1.15rem}.bon .stepper{flex:none}.bon .stepper button{width:36px;height:34px;font-size:1.2rem}.bon .stepper output{min-width:1.9rem}.bon .field>label{font-family:var(--font)}.order-bar{position:fixed;left:0;right:0;bottom:0;z-index:8;padding:.75rem 1rem calc(.75rem + env(safe-area-inset-bottom));background:var(--paper);border-top:1.5px solid var(--line-strong);box-shadow:0 -6px 20px #17203a1a}.order-bar .btn{max-width:44rem;margin:0 auto;display:flex;justify-content:space-between}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;overflow-y:auto;background:#17203a8c;padding:1rem 1rem 3rem}.sheet-inner{max-width:32rem;margin:0 auto}.sheet-top{display:flex;justify-content:flex-end;margin-bottom:.5rem}.sheet-top .btn{background:var(--paper)}.progress{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}.progress li{display:flex;gap:.6rem;align-items:center;color:#8b8d93}.progress li:before{content:"";width:.85rem;height:.85rem;border:2px solid currentColor;border-radius:50%;flex:none}.progress li.done{color:#25272b}.progress li.done:before{background:var(--ok);border-color:var(--ok)}.progress li.now{color:#25272b;font-weight:800}.progress li.now:before{background:var(--mustard);border-color:#25272b}.admin{display:block}.admin-side{background:var(--ink);color:#fff}.admin-side a{color:#fff;text-decoration:none}.admin-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1rem}.admin-head strong{font-size:1.05rem}.admin-nav{display:flex;gap:.25rem;overflow-x:auto;padding:0 .75rem .6rem;scrollbar-width:none}.admin-nav a{flex:none;display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .85rem;border-radius:var(--radius);font-weight:650}.admin-nav a:hover{background:#ffffff1a}.admin-nav a.router-link-active{background:#fff;color:var(--ink)}.badge{display:inline-block;min-width:1.4rem;padding:0 .4rem;border-radius:999px;background:var(--mustard);color:var(--ink);font-size:.8rem;font-weight:800;text-align:center;line-height:1.4rem}.admin-main{padding:1.25rem 1rem 4rem;max-width:72rem}.admin-side .btn-quiet{color:#fff;border-color:#ffffff73}.admin-side .btn-quiet:hover{background:#ffffff1f;color:#fff}@media(min-width:60rem){.admin{display:grid;grid-template-columns:15rem 1fr;min-height:100vh}.admin-side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.admin-nav{flex-direction:column;overflow:visible;padding:.5rem .75rem;flex:1}.admin-main{padding:2rem 2rem 4rem}.actions{grid-template-columns:1fr 1fr}}.page-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;margin-bottom:1.25rem}.page-head h1{font-size:1.9rem;margin:0;color:var(--ink);letter-spacing:-.02em}.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.panel{background:var(--surface);border:1.5px solid var(--line);border-radius:12px;padding:1.1rem 1.2rem;margin-bottom:1.25rem}.panel>h2{font-size:1.2rem}.tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1rem}.tabs button{min-height:40px;padding:.3rem .95rem;font:inherit;font-weight:650;color:var(--ink);background:transparent;border:1.5px solid var(--line-strong);border-radius:999px;cursor:pointer}.tabs button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.rows{list-style:none;margin:0;padding:0}.rows>li{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.7rem 0;border-bottom:1px solid var(--line)}.rows>li:last-child{border-bottom:0}.rows .grow{flex:1 1 14rem;min-width:0}.rows .end{display:flex;gap:.35rem;align-items:center;margin-left:auto;flex-wrap:wrap}.status{display:inline-block;padding:.1rem .6rem;border-radius:999px;font-size:.85rem;font-weight:700;background:var(--blue-tint);color:var(--blue-dark)}.status.ok{background:var(--ok-tint);color:var(--ok)}.status.warn{background:var(--mustard-tint);color:#7a5600}.status.bad{background:var(--danger-tint);color:var(--danger)}.board{display:grid;gap:1rem;align-items:start}@media(min-width:60rem){.board{grid-template-columns:repeat(3,1fr)}}.board h2{font-size:1.1rem;display:flex;align-items:center;gap:.5rem}.ticket{position:relative;background:var(--bon);font-family:var(--mono);font-size:.88rem;padding:.9rem 1rem;margin-bottom:1rem;border:1.5px solid var(--line-strong);border-radius:4px}.ticket.fresh{border-color:var(--mustard);border-width:2.5px}.ticket header{display:flex;justify-content:space-between;gap:.5rem;font-weight:800;margin-bottom:.4rem}.ticket ul{list-style:none;margin:0 0 .5rem;padding:0}.ticket li{padding:.1rem 0}.ticket .note{background:var(--mustard-tint);padding:.2rem .5rem;margin:.25rem 0}.ticket footer{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:space-between;align-items:center;border-top:2px dashed #b5b3a8;padding-top:.6rem;margin-top:.4rem;font-family:var(--font)}.empty{padding:2rem 1rem;text-align:center;color:var(--muted);border:2px dashed var(--line-strong);border-radius:12px}.mono{font-family:var(--mono)}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:.95rem}table.data th,table.data td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}table.data th{font-weight:700;color:var(--muted)}dialog.modal{width:min(30rem,calc(100vw - 1.5rem));max-height:calc(100dvh - 1.5rem);padding:0;border:0;border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:0 24px 60px #17203a59}dialog.modal.wide{width:min(44rem,calc(100vw - 1.5rem))}dialog.modal::backdrop{background:#17203a8c}.modal-body{padding:1.1rem 1.25rem 1.4rem}.modal-body>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.modal-body>header h2{margin:0}.modal-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end;margin-top:1.25rem}.toasts{position:fixed;z-index:50;left:50%;bottom:5rem;transform:translate(-50%);display:grid;gap:.5rem;width:min(26rem,calc(100vw - 2rem));pointer-events:none}.toast{padding:.7rem 1rem;border-radius:var(--radius);background:var(--ink);color:#fff;font-weight:600;box-shadow:0 8px 24px #17203a4d}.toast.error{background:var(--danger);border:0}.qr{width:100%;aspect-ratio:1;background:#fff}.qr svg{display:block;width:100%;height:100%}.qr-preview{width:15rem;margin:0 auto 1rem;padding:.75rem;background:#fff;border:1.5px solid var(--line);border-radius:8px}.print-only{display:none}@media print{@page{size:A4;margin:10mm}body{background:#fff}.no-print,.toasts{display:none!important}.print-only{display:block}.qr-sheet{display:grid;grid-template-columns:1fr 1fr;gap:0}.qr-card{break-inside:avoid;border:1px dashed #888;padding:9mm 6mm;text-align:center;height:92mm;display:flex;flex-direction:column;align-items:center;justify-content:space-between;color:#000}.qr-card .qr{width:46mm;height:46mm;flex:none;margin:3mm 0}.qr-card .plate{-webkit-print-color-adjust:exact;print-color-adjust:exact}.qr-card p{margin:0;font-size:10pt;line-height:1.3}.admin{display:block}.admin-main{padding:0;max-width:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
