@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap');

:root{--ink:#20221f;--muted:#777a73;--cream:#f7f6f2;--paper:#fff;--line:#e8e7e1;--green:#254c3c;--green-soft:#e8f1eb;--orange:#ef8b52;--red:#b94a3e;--shadow:0 12px 30px #1a28140d;--radius:18px}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans","Noto Sans JP",sans-serif}button,input,select{font:inherit}.btn{border-radius:11px;font-weight:700;padding:.7rem 1rem}.btn-primary{background:var(--green);border-color:var(--green)}.btn-primary:hover,.btn-primary:focus{background:#193b2d;border-color:#193b2d}.btn-dark{background:var(--ink);border-color:var(--ink)}.form-control,.form-select{border-color:var(--line);border-radius:10px;padding:.7rem .85rem}.muted{color:var(--muted);font-size:.88rem}.eyebrow{color:#879084;font-size:.7rem;font-weight:700;letter-spacing:.16em}.feedback{color:var(--green);font-size:.85rem}
.customer-page{padding-bottom:100px}.customer-header{height:76px;padding:0 max(22px,calc((100vw - 1080px)/2));background:var(--paper);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:800;text-decoration:none;letter-spacing:.01em}.brand-mark{background:var(--green);color:white;display:grid;place-items:center;border-radius:12px;width:38px;height:38px;font-size:20px}.brand small{display:block;color:var(--muted);font-size:8px;letter-spacing:.22em}.table-pill{background:#f1f0eb;border-radius:999px;padding:9px 15px;font-size:.7rem;letter-spacing:.12em}.table-pill strong{font-size:.95rem;margin-left:6px}.customer-layout{max-width:1080px;margin:28px auto;padding:0 20px}.welcome-banner{min-height:218px;display:flex;justify-content:space-between;align-items:center;padding:32px 40px;background:#e8ede5;border-radius:24px;overflow:hidden}.welcome-banner h1{font-size:clamp(1.65rem,4vw,2.55rem);line-height:1.35;margin:10px 0}.welcome-banner p{color:#73776e;margin:0;font-size:.9rem}.welcome-art{font-size:110px;transform:rotate(-8deg);filter:drop-shadow(0 12px 8px #53482b26);margin-right:40px}.customer-tools{display:flex;gap:12px;margin:22px 0 16px}.search-box{position:relative;flex:1}.search-box span{position:absolute;left:14px;top:4px;color:#74766f;font-size:25px}.search-box input{padding-left:42px;border:1px solid var(--line);border-radius:12px;width:100%;height:46px;background:white}.call-button{white-space:nowrap}.category-strip{display:flex;gap:8px;overflow-x:auto;padding:3px 1px 15px;scrollbar-width:thin}.category-chip{border:1px solid var(--line);border-radius:999px;white-space:nowrap;padding:9px 15px;background:white;color:#5e625a;font-size:.82rem}.category-chip.active{background:var(--green);color:white;border-color:var(--green)}.menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.menu-card{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:flex;min-height:126px}.menu-card.unavailable{opacity:.55}.menu-illustration{width:98px;min-width:98px;background:#f1eee6;display:grid;place-items:center;font-size:42px}.menu-card-body{padding:14px;display:flex;flex-direction:column;justify-content:space-between;flex:1;min-width:0}.menu-card h3{font-size:.92rem;line-height:1.5;margin:0 0 8px}.menu-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px}.menu-price{font-weight:800}.stock-note{font-size:.68rem;color:var(--red)}.add-item{width:32px;height:32px;border:0;border-radius:10px;background:var(--green-soft);color:var(--green);font-size:21px;line-height:1}.section-heading,.panel-heading{display:flex;align-items:center;justify-content:space-between}.section-heading h2,.panel-heading h2{font-size:1.3rem;font-weight:800;margin:4px 0}.order-status-wrap{margin:38px 0}.table-orders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.order-status-card,.receipt-request,.panel-card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.order-status-card h3{font-size:1rem}.order-status-card p{color:var(--muted);margin-bottom:4px;font-size:.85rem}.receipt-request{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.receipt-request h2{font-size:1.2rem;margin:4px 0}.receipt-request p{color:var(--muted);font-size:.85rem;margin:0}.receipt-form{display:flex;gap:8px}.receipt-form input{width:180px}.cart-dock{position:fixed;bottom:0;left:0;right:0;background:#fffffff2;backdrop-filter:blur(16px);border-top:1px solid var(--line);padding:12px max(20px,calc((100vw - 1040px)/2));display:flex;align-items:center;justify-content:space-between;z-index:5}.cart-dock strong{font-size:1.15rem;margin-left:12px}.cart-dock #cart-count{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:50%;background:var(--green-soft);color:var(--green);font-weight:700}.modal-content{border:0;border-radius:18px}.modal-header,.modal-footer{border-color:var(--line)}.option-choice{display:block;border:1px solid var(--line);padding:10px 12px;border-radius:10px;margin:7px 0}.quantity-control{display:flex;align-items:center;gap:14px}.quantity-control button{border:1px solid var(--line);background:white;border-radius:8px;width:32px;height:32px}
.staff-page{min-height:100vh}.staff-nav{position:fixed;z-index:10;top:0;left:0;bottom:0;width:235px;padding:24px 15px;background:#1f332b;color:white;display:flex;flex-direction:column}.staff-nav .brand{color:white;padding:0 10px 28px}.staff-nav .brand-mark{background:#50715d}.nav-label{color:#91a299;font-size:.67rem;letter-spacing:.16em;padding:0 12px 8px}.staff-links{display:grid;gap:5px}.staff-links a{color:#d5ded8;text-decoration:none;border-radius:10px;padding:11px 12px;font-size:.89rem}.staff-links a:hover,.staff-links a.active{color:white;background:#ffffff17}.nav-footer{margin-top:auto;padding:12px;color:#9ca99f;font-size:.73rem;line-height:1.7}.staff-content{margin-left:235px;padding:34px clamp(20px,4vw,58px);max-width:1700px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.page-heading h1{font-size:2rem;font-weight:800;margin:5px 0}.page-heading p{color:var(--muted);margin:0}.heading-actions{display:flex;align-items:center;gap:12px}.heading-actions .form-check{margin:0}.kds-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px}.kds-count{margin-right:auto;color:var(--muted);font-size:.9rem}.kitchen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:15px}.kitchen-ticket{background:white;border:1px solid var(--line);border-top:4px solid #d9a447;border-radius:15px;padding:18px;box-shadow:var(--shadow)}.kitchen-ticket.preparing{border-top-color:#5396a5}.kitchen-ticket.ready{border-top-color:#58a074}.ticket-top{display:flex;justify-content:space-between;align-items:flex-start}.ticket-top h2{font-weight:800;font-size:1.4rem;margin:0}.ticket-time,.ticket-items{color:var(--muted);font-size:.82rem}.ticket-items{padding:15px 0}.ticket-item{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px dashed var(--line)}.ticket-item strong{font-size:1rem;color:var(--ink)}.ticket-note{font-size:.75rem;color:var(--muted);display:block}.ticket-actions{display:flex;flex-direction:column;gap:8px}.ticket-actions .btn{width:100%}.register-tabs{display:flex;border-bottom:1px solid var(--line);gap:22px;margin-bottom:20px}.register-tabs button{border:0;background:transparent;padding:10px 2px;color:var(--muted);border-bottom:2px solid transparent}.register-tabs button.active{color:var(--green);border-color:var(--green);font-weight:700}.register-layout{display:grid;grid-template-columns:minmax(240px,.75fr) minmax(360px,1.5fr);gap:18px}.table-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;align-content:start}.table-select{background:white;border:1px solid var(--line);border-radius:13px;padding:14px 8px;text-align:center;color:var(--ink)}.table-select.active{background:var(--green);border-color:var(--green);color:white}.table-select small{display:block;font-size:.67rem;margin-top:4px;opacity:.75}.checkout-detail{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:22px;min-height:300px}.checkout-empty{display:grid;place-items:center;text-align:center;color:var(--muted);min-height:250px}.checkout-line{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line)}.discount-row,.payment-row{display:flex;gap:8px;align-items:center;margin-top:14px}.discount-row input{max-width:110px}.total-row{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:16px;padding-top:16px;font-size:1.25rem;font-weight:800}.checkout-actions{display:flex;gap:9px;margin-top:18px}.checkout-actions>*{flex:1}.paper-select{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:.82rem}.paper-select select{width:95px}.date-input{max-width:190px}.panel-card{margin-bottom:16px}.panel-heading{margin-bottom:18px}.summary-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.summary-card{background:white;border:1px solid var(--line);border-radius:15px;padding:17px}.summary-card span{display:block;color:var(--muted);font-size:.78rem}.summary-card strong{display:block;font-size:1.35rem;margin-top:8px}.menu-admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}.menu-admin-toolbar input{max-width:380px}.admin-table th{font-size:.72rem;color:#84877f;font-weight:600;border-bottom-color:var(--line);white-space:nowrap}.admin-table td{font-size:.87rem}.admin-table .form-control,.admin-table .form-select{min-width:95px;padding:.45rem}.category-availability{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-bottom:17px}.category-stock{background:white;border:1px solid var(--line);border-radius:13px;padding:14px}.category-stock strong{display:block;margin-bottom:8px}.category-stock .btn{padding:.4rem .6rem;font-size:.75rem}.inventory-count{width:90px}.inventory-state{font-size:.75rem;font-weight:700}.inventory-state.low{color:#ba7e2e}.inventory-state.out{color:var(--red)}.register-daily-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.finance-controls{display:flex;align-items:end;gap:10px;margin-bottom:18px}.finance-controls label{font-size:.75rem;color:var(--muted)}.finance-controls select{min-width:100px;margin-top:5px}.finance-chart{display:flex;align-items:end;gap:9px;height:210px;border-bottom:1px solid var(--line);padding:15px 5px 0}.chart-column{height:100%;display:flex;align-items:center;justify-content:end;flex-direction:column;flex:1;min-width:20px;gap:6px}.chart-bars{width:100%;height:160px;display:flex;align-items:end;justify-content:center;gap:3px}.chart-bar{width:min(20px,42%);min-height:2px;border-radius:5px 5px 0 0;background:#7ca48a}.chart-bar.expense{background:#e6a079}.chart-column span{font-size:.65rem;color:var(--muted);white-space:nowrap}.chart-legend{display:flex;gap:18px;margin-top:12px;color:var(--muted);font-size:.76rem}.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#7ca48a;margin-right:5px}.legend-dot.expense{background:#e6a079}.expense-row,.history-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.expense-row:last-child,.history-row:last-child{border:0}.expense-row small,.history-row small{display:block;color:var(--muted);margin-top:4px}.qr-page{min-height:100vh;background:#f0efe9;padding:32px}.qr-sign{max-width:700px;min-height:80vh;margin:auto;background:white;border:1px solid var(--line);border-radius:22px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:40px;box-shadow:var(--shadow)}.qr-sign h1{font-size:3rem;font-weight:800}.qr-sign canvas{width:300px!important;height:300px!important;margin:18px}.qr-sign p{color:var(--muted)}.qr-sheet{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.qr-tile{background:white;border:1px solid var(--line);border-radius:12px;text-align:center;padding:12px;break-inside:avoid}.qr-tile h2{font-size:1rem;font-weight:800}.qr-tile canvas{width:130px!important;height:130px!important}.qr-tile p{font-size:.68rem;color:var(--muted);word-break:break-all;margin:4px}.no-orders{grid-column:1/-1;background:white;border:1px dashed var(--line);border-radius:14px;padding:36px;text-align:center;color:var(--muted)}
@media(max-width:1050px){.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.staff-nav{width:200px}.staff-content{margin-left:200px}.summary-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.qr-sheet{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.customer-layout{padding:0 14px;margin-top:14px}.welcome-banner{min-height:190px;padding:24px}.welcome-art{font-size:74px;margin-right:0}.welcome-banner p{max-width:260px;font-size:.8rem}.customer-tools{gap:7px}.call-button{padding:.65rem .7rem;font-size:.76rem}.menu-grid{grid-template-columns:1fr;gap:9px}.menu-card{min-height:105px}.menu-illustration{width:82px;min-width:82px;font-size:34px}.menu-card-body{padding:11px}.table-orders{grid-template-columns:1fr}.receipt-request{padding:17px}.receipt-form{width:100%}.receipt-form input{flex:1;width:auto}.staff-nav{position:sticky;top:0;bottom:auto;width:100%;height:auto;padding:9px 12px;display:block}.staff-nav .brand{display:none}.staff-nav .nav-label,.nav-footer{display:none}.staff-links{display:flex;overflow-x:auto;gap:4px}.staff-links a{white-space:nowrap;padding:9px 11px;font-size:.78rem}.staff-content{margin:0;padding:25px 15px}.page-heading{align-items:flex-start}.page-heading h1{font-size:1.65rem}.page-heading p{font-size:.82rem}.heading-actions{flex-wrap:wrap;justify-content:end}.register-layout{grid-template-columns:1fr}.table-picker{grid-template-columns:repeat(5,1fr)}.table-select{padding:10px 3px;font-size:.75rem}.table-select small{font-size:.58rem}.checkout-detail{padding:16px}.finance-controls{flex-wrap:wrap}.finance-controls label{flex:1}.finance-controls .date-input{max-width:150px}.summary-card{padding:13px}.summary-card strong{font-size:1.15rem}.qr-page{padding:12px}.qr-sign{min-height:90vh;padding:24px}.qr-sign h1{font-size:2.2rem}.qr-sign canvas{width:240px!important;height:240px!important}.qr-sheet{grid-template-columns:repeat(2,1fr);gap:8px}.qr-tile{padding:8px}.qr-tile canvas{width:105px!important;height:105px!important}}
.print-only{display:none;width:var(--receipt-width,80mm)}
.qr-sign .qr-code canvas,.qr-sign .qr-code img{width:300px!important;height:300px!important;margin:18px auto}
.qr-tile .qr-code canvas,.qr-tile .qr-code img{width:130px!important;height:130px!important;margin:0 auto}
.chart-plot{display:flex;align-items:end;gap:9px;height:210px;border-bottom:1px solid var(--line);padding:15px 5px 0}
.finance-chart{display:block;height:auto;border:0;padding:0}
.print-ticket-page{break-after:page}
.print-ticket-page:last-child{break-after:auto}
.receipt-layout{width:var(--receipt-width,80mm)}
.customer-socials{max-width:1080px;margin:12px auto 0;padding:0 20px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.social-link{display:flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--green);font-size:.8rem;font-weight:700;text-decoration:none}.social-link svg{width:22px;height:22px;flex-shrink:0}.social-link small{display:block;font-size:.65rem;font-weight:400}.social-link-pending{color:#6b706b;background:#f1f0eb}a.social-link:hover{background:var(--green-soft)}a.social-link:focus-visible{outline:3px solid var(--green);outline-offset:2px}@media(max-width:700px){.customer-socials{padding:0 14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.social-link{padding:8px 6px;font-size:.7rem;justify-content:center;gap:4px}.social-link svg{width:18px;height:18px}}@media print{.customer-socials{display:none}}
.menu-illustration{position:relative;min-height:126px}.menu-labels{position:absolute;top:5px;left:4px;right:4px;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:4px;pointer-events:none}.menu-label{display:inline-block;max-width:100%;padding:4px 5px;border-radius:5px;font-size:.65rem;font-weight:800;line-height:1.25;overflow-wrap:anywhere;box-shadow:0 1px 4px #0003}.menu-label-recommended{background:#ffe08a;color:#493300}.menu-label-manager{background:#8d2525;color:#fff}.menu-label-new{background:#205c40;color:#fff}.menu-label-list{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.menu-label-list:empty{display:none}
.qr-sign .qr-table-number{font-size:3rem;font-weight:800}.qr-tile .qr-table-number{font-size:1.75rem;font-weight:800}.qr-checkout-note{font-weight:700;line-height:1.5}.qr-sign .qr-checkout-note{max-width:28em;margin:16px auto}.qr-tile .qr-checkout-note{font-size:.85rem;margin:12px 0 0}
@media print{.qr-sign .qr-table-number{font-size:30pt!important}.qr-tile .qr-table-number{font-size:20pt!important}.qr-checkout-note{color:#000!important}.qr-tile .qr-checkout-note{font-size:10pt!important}}
@media(max-width:700px){.qr-sign .qr-code canvas,.qr-sign .qr-code img{width:240px!important;height:240px!important}}
@media print{.qr-tile .qr-code canvas,.qr-tile .qr-code img{width:28mm!important;height:28mm!important}.qr-sign .qr-code canvas,.qr-sign .qr-code img{width:65mm!important;height:65mm!important}}
.register-daily-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.qr-sheet .page-heading{grid-column:1/-1}
.cash-payment{margin-top:12px;padding:14px;border-radius:12px;background:#f7f6f2}.cash-payment label{font-weight:700}.cash-payment .form-control{max-width:220px}.cash-payment .total-row{margin-top:12px;padding-top:12px}
.language-header{display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 10px;box-shadow:0 4px 14px #1a28141a;z-index:3101}.language-header-inline{padding:3px 10px;box-shadow:none}.language-switch{display:flex;align-items:center;gap:7px;font-size:.78rem;font-weight:700}.language-switch button{border:0;background:transparent;color:var(--muted);padding:4px 2px;line-height:1}.language-switch button.active{color:var(--green);text-decoration:underline;text-underline-offset:4px}.language-switch button:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:3px}.language-header:not(.language-header-inline){position:fixed;top:12px;right:16px}.staff-page .staff-content{padding-top:74px}
@media print{body{background:white!important}.staff-nav,.page-heading,.kds-toolbar,.register-tabs,.cart-dock,.no-print{display:none!important}.staff-content{margin:0;padding:0;max-width:none}.kitchen-grid{display:block}.kitchen-ticket{box-shadow:none;border:0;border-bottom:1px dashed #888;border-radius:0;break-inside:avoid;margin:0;padding:8px}.ticket-items{padding:3px 0}.print-only{display:block}.modal-backdrop{display:none!important}.modal{position:static!important;display:block!important}.modal-dialog{max-width:none;margin:0}.modal-content{box-shadow:none}.modal-header,.modal-footer{display:none!important}.modal-body#receipt-paper{width:var(--receipt-width,80mm);border:0;padding:0}.qr-page{padding:0}.qr-sign{min-height:0;border:0;box-shadow:none;border-radius:0}.qr-sheet{grid-template-columns:repeat(4,1fr);gap:5mm}.qr-tile{border:1px solid #aaa;padding:3mm}.qr-tile canvas{width:28mm!important;height:28mm!important}.qr-tile p{font-size:7pt}}
@media print{.staff-page .staff-content{padding-top:0!important}}
@media print{
  body.register-page{min-height:0;padding:0!important;overflow:visible!important}
  .register-page> :not(#receipt-modal){display:none!important}
  .register-page #receipt-modal{position:static!important;width:auto;height:auto;overflow:visible!important;padding:0!important}
  .register-page #receipt-modal .modal-dialog{display:block;min-height:0;width:var(--receipt-width,80mm);max-width:100%;margin:0!important;transform:none!important}
  .register-page #receipt-modal .modal-content{border:0;border-radius:0}
  .register-page #receipt-paper{max-width:100%}
}
.ordering-status{max-width:1040px;margin:18px auto 0;padding:14px 18px;border:1px solid #edc68a;border-left:5px solid #d18b33;border-radius:12px;background:#fff4df;color:#684719;display:flex;flex-wrap:wrap;gap:4px 8px;line-height:1.5}.ordering-status[hidden]{display:none}.ordering-status-manual{border-color:#b8c7d2;border-left-color:#547b91;background:#eef5f8;color:#29485a}.ordering-status strong{font-weight:800}.ordering-controls{display:flex;align-items:center;gap:8px}.ordering-status-summary{font-size:.82rem;color:var(--muted)}.ordering-controls button{white-space:nowrap}
@media(max-width:700px){.ordering-status{margin:12px 14px 0}.kds-toolbar{flex-wrap:wrap}.ordering-controls{width:100%;justify-content:space-between}.ordering-status-summary{flex:1}}
.menu-illustration.has-menu-image{overflow:hidden;background:#f1eee6}.menu-illustration.has-menu-image img{width:100%;height:100%;object-fit:cover}.menu-admin-thumbnail,.menu-admin-thumbnail-placeholder{display:inline-grid;width:52px;height:52px;object-fit:cover;border-radius:9px;background:#f1eee6;place-items:center;font-size:24px}.menu-image-preview-wrap{display:flex;align-items:center;gap:12px;margin-top:12px}.menu-image-preview-wrap[hidden]{display:none}.menu-image-preview-wrap img{width:116px;height:96px;object-fit:cover;border-radius:10px;background:#f1eee6}
