:root{--ink:#16362b;--green:#17382e;--orange:#db5935;--cream:#fbf8f2;--sand:#efe7d9;--line:#e4ddd1;--muted:#718077;--white:#fffdfa;--shadow:0 18px 50px rgba(26,49,39,.11)}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:14px/1.45 Manrope,Arial,sans-serif}button,input,textarea,select{font:inherit}.eyebrow{margin:0 0 5px;color:#c45535;font-size:10px;font-weight:800;letter-spacing:.17em}.mini-brand{display:inline-block;color:var(--ink);font-size:16px;font-weight:800;line-height:.73;text-decoration:none;letter-spacing:-.07em}.mini-brand b{color:var(--orange);font-size:23px}.access-screen{display:grid;min-height:100vh;place-items:center;padding:24px;background:linear-gradient(115deg,#11352b 0%,#173b30 45%,#d8b45d 135%)}.access-card{width:min(100%,480px);padding:50px;border-radius:30px;background:var(--white);box-shadow:var(--shadow)}.access-card .eyebrow{margin-top:48px}.access-card h1{margin:0;font:600 clamp(42px,8vw,66px)/.94 "Playfair Display",serif}.access-card h1 em{color:var(--orange)}.access-card p:not(.eyebrow){max-width:320px;color:var(--muted);font-size:16px}.access-link{display:inline-flex;margin-top:18px;padding:15px 20px;border-radius:13px;background:var(--orange);color:#fff;text-decoration:none;font-weight:800}.app-header{display:flex;align-items:center;justify-content:space-between;min-height:84px;padding:17px max(24px,calc((100vw - 1480px)/2));background:var(--white);border-bottom:1px solid var(--line)}.shift-title{margin-left:46px;flex:1}.shift-title strong{font-size:13px}.header-actions{display:flex;align-items:center;gap:14px}.sync-state{color:var(--muted);font-size:12px}.quiet-link{color:var(--ink);font-weight:700;text-decoration:none}.round-button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font-size:20px;cursor:pointer}.desk-layout{display:grid;grid-template-columns:255px minmax(390px,1fr) 355px;max-width:1480px;margin:auto;min-height:calc(100vh - 84px);border-inline:1px solid var(--line)}.tables-panel,.ticket-panel{padding:28px 22px;background:#f5efe5}.tables-panel{border-right:1px solid var(--line)}.ticket-panel{border-left:1px solid var(--line);background:#fffdfa}.panel-heading,.ticket-head,.menu-top,.active-orders-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.panel-heading h2,.ticket-head h2,.active-orders h2{margin:0;font:600 25px/1.03 "Playfair Display",serif}.panel-heading>span{display:grid;min-width:28px;height:28px;place-items:center;border-radius:9px;background:#e6dac4;font-size:12px;font-weight:800}.table-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:24px 0}.table-card{position:relative;min-height:69px;padding:8px;border:1px solid #ded5c8;border-radius:15px;background:#fffdfa;color:var(--ink);font-weight:800;text-align:left;cursor:pointer;transition:.16s}.table-card:hover{transform:translateY(-1px);border-color:#9bab9f}.table-card.active{border:2px solid var(--green);background:#eaf1eb}.table-card.busy:after{position:absolute;top:9px;right:9px;width:7px;height:7px;border-radius:50%;background:var(--orange);content:""}.table-card small{display:block;margin-top:3px;color:var(--muted);font-size:10px;font-weight:700}.guest-picker,.waiter-picker{margin-top:23px;padding-top:20px;border-top:1px solid #ddd2c3}.field-label,.waiter-picker label{display:block;margin:0 0 9px;color:var(--ink);font-size:12px;font-weight:800}.stepper{display:grid;grid-template-columns:42px 1fr 42px;height:48px;border:1px solid #d8cbb9;border-radius:14px;background:#fff;overflow:hidden}.stepper button{border:0;background:#fff;color:var(--green);font-size:23px;cursor:pointer}.stepper output{display:grid;place-items:center;font-size:17px;font-weight:800}.guest-picker small{display:block;margin-top:8px;color:var(--muted);font-size:10px}.waiter-picker select{width:100%;padding:11px;border:1px solid #d8cbb9;border-radius:11px;background:#fff;color:var(--ink)}.waiter-picker p{margin:9px 0 0;color:var(--muted);font-size:11px}.menu-panel{min-width:0;padding:29px 30px}.menu-top h1{margin:0;font:600 clamp(28px,3vw,39px)/1 "Playfair Display",serif}.search-field{display:flex;align-items:center;gap:8px;width:min(100%,245px);padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:#fff}.search-field span{font-size:23px;line-height:0}.search-field input{width:100%;border:0;outline:0;background:transparent;color:var(--ink)}.category-row{display:flex;gap:8px;margin:26px 0 11px;overflow:auto;padding-bottom:4px}.category-row button{flex:0 0 auto;padding:8px 14px;border:1px solid #ded8cc;border-radius:20px;background:#fff;color:#5f7169;cursor:pointer;font-size:12px;font-weight:800}.category-row button.active{border-color:var(--green);background:var(--green);color:white}.quick-actions{display:flex;align-items:center;gap:7px;min-height:35px;margin-bottom:16px}.quick-action{padding:6px 10px;border:0;border-radius:10px;background:#f1e9db;color:#53665c;font-size:11px;font-weight:800;cursor:pointer}.quick-action.selected{background:#ffe2d8;color:#b9472c}.quick-actions span{margin-left:auto;color:#73847b;font-size:11px}.waiter-menu{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:11px}.dish-card{display:grid;grid-template-columns:68px 1fr;gap:11px;min-height:97px;padding:8px;border:1px solid #e5ded4;border-radius:16px;background:#fff;box-shadow:0 5px 15px rgba(40,56,43,.025)}.dish-card img,.dish-image-placeholder{width:68px;height:80px;border-radius:11px;background:#e9e0d0;object-fit:cover}.dish-content{display:flex;min-width:0;flex-direction:column}.dish-content h3{display:-webkit-box;margin:0;overflow:hidden;font-size:12px;line-height:1.25;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dish-content p{display:-webkit-box;margin:4px 0;color:var(--muted);font-size:10px;line-height:1.25;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dish-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:auto}.dish-bottom strong{font-size:13px}.dish-bottom button{display:grid;width:28px;height:28px;place-items:center;border:0;border-radius:9px;background:var(--green);color:#fff;font-size:20px;cursor:pointer}.clear-ticket{border:0;background:transparent;color:#a04c37;font-size:11px;font-weight:800;cursor:pointer}.ticket-table{margin:19px 0 12px;padding:10px 12px;border-radius:12px;background:#f2eee5;color:#5f7067;font-size:12px;font-weight:700}.ticket-items{min-height:180px;max-height:34vh;overflow:auto}.empty-ticket{padding:35px 10px;color:#96a299;text-align:center}.empty-ticket span{display:block;margin-bottom:7px;color:#d6c6ac;font-size:25px}.empty-ticket p{margin:0;font-size:12px}.ticket-line{display:grid;grid-template-columns:1fr auto;gap:6px;padding:11px 0;border-bottom:1px dashed #ded7cc}.ticket-line h3{margin:0;font-size:12px}.ticket-line p{margin:3px 0 0;color:var(--muted);font-size:10px}.ticket-line>strong{font-size:12px}.line-controls{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between}.line-controls div{display:flex;align-items:center;gap:8px}.line-controls button{display:grid;width:22px;height:22px;place-items:center;border:1px solid #ded8ce;border-radius:7px;background:white;color:var(--green);cursor:pointer}.line-controls .remove{width:auto;padding:0 6px;border:0;color:#bf5037;font-size:10px}.note-field{display:block;margin-top:15px;color:var(--ink);font-size:11px;font-weight:800}.note-field textarea{width:100%;resize:vertical;margin-top:6px;padding:9px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:11px;outline-color:#799489}.payment-choice{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:13px;color:var(--ink);font-size:11px;font-weight:800}.payment-choice div{display:flex;gap:3px}.payment-choice button{padding:6px 8px;border:1px solid #e2dcd2;border-radius:8px;background:#fff;color:#66756d;font-size:10px;font-weight:800;cursor:pointer}.payment-choice button.active{border-color:#c3d5c8;background:#ecf4ed;color:var(--green)}.ticket-total{display:flex;justify-content:space-between;margin-top:17px;padding-top:16px;border-top:1px solid #e2dbd0}.ticket-total span{font-weight:800}.ticket-total strong{font-size:22px}.ticket-actions{display:grid;grid-template-columns:1fr 1.55fr;gap:7px;margin-top:15px}.ticket-actions button{min-height:47px;border-radius:12px;font-weight:800;cursor:pointer}.save-draft{border:1px solid #d9d2c8;background:#fff;color:var(--green);font-size:11px}.send-kitchen{border:0;background:var(--orange);color:#fff;font-size:12px}.send-kitchen span{font-size:17px}.ticket-hint{margin:9px 0 0;color:#87948c;font-size:9px;line-height:1.4}.active-orders{max-width:1480px;margin:0 auto 44px;padding:25px 30px;border:1px solid var(--line);border-top:0;background:#fffdfa}.active-orders-head>span{padding:6px 10px;border-radius:9px;background:#e9f0ea;color:#55715e;font-size:11px;font-weight:800}.orders-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:12px;margin-top:18px}.orders-empty{margin:0;color:var(--muted);font-size:12px}.order-card{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}.order-card-top{display:flex;justify-content:space-between;gap:8px}.order-card h3{margin:0;font-size:14px}.order-card time,.order-card p{color:var(--muted);font-size:10px}.order-card p{margin:8px 0 0}.order-status{padding:4px 7px;border-radius:7px;background:#f8e0d8;color:#b7472e;font-size:9px;font-weight:800}.order-card button{margin-top:12px;padding:6px 9px;border:1px solid #d8e5db;border-radius:8px;background:#eff6f0;color:var(--green);font-size:10px;font-weight:800;cursor:pointer}.toast{position:fixed;z-index:10;left:50%;bottom:25px;padding:11px 16px;border-radius:12px;background:var(--green);color:#fff;box-shadow:var(--shadow);font-size:12px;font-weight:800;transform:translate(-50%,100px);transition:.22s}.toast.show{transform:translate(-50%,0)}
@media(max-width:1080px){.desk-layout{grid-template-columns:210px 1fr 300px}.menu-panel{padding:25px 18px}.ticket-panel{padding:25px 16px}.waiter-menu{grid-template-columns:1fr}.app-header{padding-inline:20px}}
@media(max-width:790px){.app-header{min-height:70px}.shift-title{display:none}.sync-state,.quiet-link{display:none}.desk-layout{display:flex;min-height:0;flex-direction:column;border:0}.tables-panel,.ticket-panel{border:0}.tables-panel{padding:20px;background:#f5efe5}.table-grid{grid-template-columns:repeat(5,1fr);margin:14px 0}.table-card{min-height:57px}.guest-picker,.waiter-picker{display:inline-block;width:calc(50% - 6px);vertical-align:top}.waiter-picker{margin-left:8px}.menu-panel{order:2;padding:24px 16px}.menu-top{align-items:stretch;flex-direction:column}.search-field{width:100%}.ticket-panel{order:3;padding:24px 16px}.ticket-items{max-height:none}.active-orders{margin-bottom:0;padding:25px 16px;border-inline:0}.header-actions{margin-left:auto}.waiter-menu{grid-template-columns:repeat(2,minmax(0,1fr))}.dish-card{grid-template-columns:1fr;min-height:0}.dish-card img,.dish-image-placeholder{width:100%;height:100px}.dish-content{min-height:89px}.quick-actions{overflow:auto}.quick-action{flex:0 0 auto}.access-card{padding:38px 28px}.ticket-actions{grid-template-columns:1fr}.ticket-total strong{font-size:25px}}
.waiter-login-form{display:grid;gap:13px;margin-top:25px}.waiter-login-form label{display:grid;gap:6px;color:var(--ink);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.waiter-login-form input{width:100%;padding:13px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-size:15px;letter-spacing:.03em;outline-color:#8aa193}.waiter-login-form input[type=password]{letter-spacing:.25em}.waiter-login-form button{margin-top:5px;padding:15px;border:0;border-radius:13px;background:var(--orange);color:#fff;font-weight:800;cursor:pointer}.waiter-login-form button:disabled{opacity:.65}.waiter-login-error{margin:0!important;color:#c34c32!important;font-size:12px!important}.quiet-link{border:0;background:transparent;cursor:pointer}.table-card:disabled{opacity:.46;cursor:not-allowed;transform:none!important}
@media(max-width:790px){.quiet-link#waiter-logout{display:block}}
/* Атрибут hidden має завжди приховувати екран входу або робочий простір. */
[hidden] { display: none !important; }
