:root{--ink:#13231f;--muted:#67746f;--paper:#f5f2ea;--surface:#fffdf8;--line:#dedbd1;--green:#0b493e;--green2:#146b59;--lime:#d8f36c;--orange:#f27a3f;--red:#c83e3e;--yellow:#f4c64f;--purple:#7757a8;--shadow:0 16px 45px rgba(18,44,36,.1);font-family:"Be Vietnam Pro",system-ui,sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0;background:var(--paper)}button,input,select,textarea{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}.boot,.setup-page{min-height:100vh;display:grid;place-items:center;padding:24px}.boot{text-align:center;color:var(--muted)}.spinner{width:32px;height:32px;border:3px solid var(--line);border-top-color:var(--green);border-radius:50%;margin:auto;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.setup-card{width:min(620px,100%);background:var(--surface);border:1px solid var(--line);padding:36px;border-radius:28px;box-shadow:var(--shadow)}.setup-card h1{font-size:clamp(28px,5vw,48px);line-height:1.08;margin:12px 0}.setup-card p,.setup-card li{color:var(--muted);line-height:1.7}.eyebrow{display:inline-flex;color:var(--green);background:#e4efe8;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800;letter-spacing:.08em}.eyebrow.danger{color:var(--red);background:#fde7e2}
.btn{border:0;border-radius:13px;padding:11px 15px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;color:var(--ink);background:#ebe9e1}.btn:hover{filter:brightness(.97)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--green);color:white}.btn.accent{background:var(--lime)}.btn.danger{background:#fee6e2;color:var(--red)}.btn.ghost{background:transparent;border:1px solid var(--line)}.btn.wide{width:100%}.icon-btn{border:1px solid var(--line);background:var(--surface);width:40px;height:40px;border-radius:12px;cursor:pointer}.input{width:100%;border:1px solid var(--line);background:white;border-radius:13px;padding:12px 14px;outline:none}.input:focus{border-color:var(--green);box-shadow:0 0 0 3px #0b493e18}label{font-size:13px;font-weight:700;display:grid;gap:7px}.muted{color:var(--muted)}.small{font-size:12px}.price{font-weight:800}.badge{font-size:11px;font-weight:800;padding:5px 8px;border-radius:999px;background:#e7ece9;color:var(--green)}.badge.pending{background:#fff2cc;color:#885d00}.badge.preparing{background:#ffe2d5;color:#9e3a13}.badge.ready{background:#dff3e4;color:#176b35}.badge.cancelled{background:#f3dede;color:#9f2727}.toast{position:fixed;right:18px;bottom:18px;background:var(--ink);color:white;padding:12px 16px;border-radius:13px;opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s;z-index:100}.toast.show{opacity:1;transform:none}.toast.error{background:var(--red)}
.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-brand{background:var(--green);color:white;padding:7vw;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}.login-brand h1{font-size:clamp(45px,7vw,84px);line-height:.95;max-width:700px;margin:20px 0}.login-brand p{color:#d5e7df;max-width:520px;font-size:18px;line-height:1.6}.login-panel{display:grid;place-items:center;padding:24px}.login-form{width:min(420px,100%);display:grid;gap:18px}.login-form h2{font-size:34px;margin:0}.brand-mark{font-weight:900;letter-spacing:.12em}.feature-pills{display:flex;gap:8px;flex-wrap:wrap}.feature-pills span{border:1px solid #ffffff42;border-radius:999px;padding:8px 11px;font-size:12px}
.shell{min-height:100vh;display:grid;grid-template-columns:238px 1fr}.sidebar{background:var(--green);color:white;padding:22px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar .brand-mark{padding:10px 12px 25px}.nav{display:grid;gap:7px}.nav a,.nav button{border:0;color:#cfe0da;background:transparent;text-align:left;padding:12px 13px;border-radius:12px;text-decoration:none;cursor:pointer}.nav a.active,.nav a:hover,.nav button:hover{background:#ffffff16;color:white}.sidebar-foot{margin-top:auto;border-top:1px solid #ffffff1f;padding:16px 10px 0}.main{padding:24px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.topbar h1{margin:0;font-size:28px}.top-actions{display:flex;align-items:center;gap:10px}.live-dot{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}.live-dot:before{content:"";width:8px;height:8px;background:#32b66b;border-radius:50%;box-shadow:0 0 0 4px #32b66b22}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:17px}.stat span{font-size:12px;color:var(--muted)}.stat strong{display:block;font-size:25px;margin-top:7px}.content-grid{display:grid;grid-template-columns:1fr 340px;gap:18px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:0 6px 24px #244b3b0a}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.panel h2,.panel h3{margin:0}.filters{display:flex;gap:8px;flex-wrap:wrap}.filter{border:1px solid var(--line);background:white;border-radius:999px;padding:8px 12px;cursor:pointer}.filter.active{background:var(--green);color:white;border-color:var(--green)}.tables{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:11px}.table-card{border:1px solid var(--line);background:white;border-radius:16px;padding:15px;text-align:left;cursor:pointer;min-height:118px;display:flex;flex-direction:column}.table-card:hover{border-color:#94a9a0;transform:translateY(-1px)}.table-card strong{font-size:21px}.table-card .table-total{margin-top:auto;font-weight:800}.status-line{display:flex;gap:6px;align-items:center;font-size:11px;color:var(--muted);margin-top:5px}.status-line:before{content:"";width:7px;height:7px;border-radius:50%;background:#46aa70}.table-card.occupied .status-line:before{background:var(--orange)}.table-card.payment_pending .status-line:before{background:var(--yellow)}.order-list{display:grid;gap:10px;max-height:430px;overflow:auto}.order-row{display:grid;grid-template-columns:1fr auto;gap:8px;border-bottom:1px dashed var(--line);padding:9px 0}.order-row p{margin:3px 0}.bill-total{border-top:2px solid var(--ink);margin-top:14px;padding-top:14px;display:flex;justify-content:space-between;font-size:18px;font-weight:800}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.customer{min-height:100vh;padding-bottom:98px}.customer-head{background:var(--green);color:white;padding:18px max(18px,calc((100vw - 1120px)/2));position:sticky;top:0;z-index:10}.customer-head-row{display:flex;justify-content:space-between;align-items:center}.customer-head h1{font-size:19px;margin:3px 0}.table-chip{background:var(--lime);color:var(--ink);padding:9px 12px;border-radius:12px;font-weight:800}.customer-main{width:min(1120px,100%);margin:auto;padding:20px}.customer-tools{display:grid;grid-template-columns:1fr auto;gap:10px}.categories{display:flex;overflow:auto;gap:8px;padding:14px 0;scrollbar-width:none}.categories button{white-space:nowrap}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.product{background:var(--surface);border:1px solid var(--line);border-radius:19px;overflow:hidden;display:flex;flex-direction:column}.product-art{height:145px;background:linear-gradient(135deg,#e7e0c9,#d0e1d8);display:grid;place-items:center;font-size:55px}.product-body{padding:14px;display:flex;flex-direction:column;gap:8px;flex:1}.product h3{margin:0;font-size:16px}.product p{margin:0;font-size:12px;color:var(--muted);line-height:1.5}.product-foot{display:flex;justify-content:space-between;align-items:center;margin-top:auto}.cart-bar{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);width:min(700px,calc(100% - 28px));background:var(--ink);color:white;border:0;border-radius:18px;padding:15px 18px;display:flex;justify-content:space-between;z-index:30;box-shadow:var(--shadow);cursor:pointer}.cart-drawer{position:fixed;inset:0;background:#081d17aa;z-index:40;display:none;align-items:flex-end;justify-content:center}.cart-drawer.open{display:flex}.cart-sheet{background:var(--surface);width:min(700px,100%);border-radius:25px 25px 0 0;padding:20px;max-height:88vh;overflow:auto}.cart-item{display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.qty{display:flex;align-items:center;gap:8px}.qty button{width:31px;height:31px;border:1px solid var(--line);background:white;border-radius:9px}.sheet-actions{display:grid;gap:10px;margin-top:16px}.floating-service{position:fixed;right:18px;bottom:91px;border:0;background:var(--lime);border-radius:999px;padding:12px 15px;font-weight:800;box-shadow:var(--shadow);z-index:20}
.kds{min-height:100vh;background:#14201d;color:#f9fbf8;padding:22px}.kds-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.kds-head h1{margin:0}.kds-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.kds-column{background:#ffffff0b;border:1px solid #ffffff17;border-radius:20px;padding:13px;min-height:70vh}.kds-column h2{font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:#cbd7d2}.ticket{background:#fdfaf1;color:var(--ink);border-radius:16px;padding:15px;margin:10px 0}.ticket.overdue{border:3px solid var(--red)}.ticket.warning{border:3px solid var(--yellow)}.ticket-head{display:flex;justify-content:space-between}.ticket h3{margin:0}.ticket ul{padding-left:20px}.ticket-note{background:#fff0c7;padding:8px;border-radius:8px;font-weight:700}.ticket-actions{display:flex;gap:7px}.ticket-actions .btn{flex:1;padding:9px}
.modal{position:fixed;inset:0;background:#081d17aa;z-index:80;display:grid;place-items:center;padding:20px}.modal-card{width:min(560px,100%);max-height:90vh;overflow:auto;background:var(--surface);border-radius:22px;padding:22px}.modal-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.modal-head h2{margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:18px 0}.receipt{font-family:monospace;background:white;color:#000;padding:12px}.receipt h2,.receipt p{text-align:center}.receipt table{width:100%;border-collapse:collapse}.receipt td{padding:4px 0}.receipt .right{text-align:right}
@media(max-width:900px){.login-page{grid-template-columns:1fr}.login-brand{display:none}.shell{grid-template-columns:1fr}.sidebar{height:auto;position:static;flex-direction:row;align-items:center;overflow:auto}.sidebar .brand-mark{padding:10px}.nav{display:flex}.nav a,.nav button{white-space:nowrap}.sidebar-foot{display:none}.stats{grid-template-columns:1fr 1fr}.content-grid{grid-template-columns:1fr}.menu-grid{grid-template-columns:1fr 1fr}.kds-columns{grid-template-columns:1fr}.kds-column{min-height:auto}}@media(max-width:560px){.main{padding:15px}.topbar{align-items:flex-start}.top-actions .live-dot{display:none}.stats{grid-template-columns:1fr 1fr}.stat strong{font-size:20px}.menu-grid{grid-template-columns:1fr}.product{display:grid;grid-template-columns:110px 1fr}.product-art{height:100%;min-height:145px}.customer-main{padding:15px}.form-grid{grid-template-columns:1fr}.action-grid{grid-template-columns:1fr}.kds{padding:14px}}@media print{body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{position:absolute;left:0;top:0;width:var(--receipt-width,80mm);padding:3mm}.no-print{display:none!important}}
