.mode-banner,.preorder-strip{display:flex;align-items:center;justify-content:space-between;gap:24px;border-left:5px solid var(--brand,#93283a)}
.mode-banner h2,.preorder-strip h2{margin:.25rem 0}.preorder-list{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.preorder-settings hr{border:0;border-top:1px solid var(--line,#ece9ec);margin:28px 0}.preorder-settings h3{margin:22px 0 14px}.preorder-strip{background:#fffaf0;border-color:#d97706}.preorder-strip .eyebrow{color:#b45309}.preorder-list .chip{background:#fff7ed;border-color:#fdba74;color:#9a3412;font-weight:800}
.table-seal{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border:1px solid #e3c5ca;background:#fff6f7;border-radius:12px;margin-bottom:20px}.table-seal strong{font-size:1.25rem;color:#93283a}
.inline-field{display:flex;gap:8px}.inline-field input{flex:1}.inline-field .btn{white-space:nowrap}
.checkout-extra{border-top:1px solid #eee;margin-top:22px;padding-top:16px}.checkout-extra h3{margin-top:0}
.table-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}.table-admin-card{display:flex;flex-direction:column;align-items:center;gap:10px;border:1px solid #eadfe1;border-radius:16px;padding:16px}.table-admin-card img{width:150px;height:150px;border-radius:8px}.table-admin-card .actions{justify-content:center}
.cash-queue{border:2px solid #a02a3c;background:#fff8f3}.order-context{margin-bottom:18px}.order-type{max-width:180px;text-align:center}.kitchen-card{border-top:5px solid #93283a}
.table-map-panel{margin-bottom:22px}.table-map-legend{display:flex;flex-wrap:wrap;gap:7px}.table-map-legend span{padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800}.table-map-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:12px}.table-map-card{min-height:120px;padding:15px;border:2px solid #ddd;border-radius:14px;background:#fff}.table-map-title{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px}.table-map-title>span{font-size:10px;font-weight:800;text-align:right}.table-map-card>small{display:block;color:#6f686c}.table-map-card.available{border-color:#4c9d69;background:#f2fbf5}.table-map-card.payment{border-color:#d28b29;background:#fff8e9}.table-map-card.occupied{border-color:#b42a3e;background:#fff3f5}.table-map-card.ready{border-color:#337fbd;background:#f1f8ff}.table-map-card.cleaning{border-color:#8b8589;background:#f5f3f4}.table-map-card.inactive{border-color:#3c383a;background:#ebe9ea;opacity:.75}.table-map-legend .available{background:#dff4e5;color:#257543}.table-map-legend .payment{background:#fff0ca;color:#9a6116}.table-map-legend .occupied{background:#f9dce2;color:#8d1f31}.table-map-legend .ready{background:#dceefe;color:#246796}.table-map-legend .cleaning{background:#e8e5e7;color:#625d60}.table-order-list{display:grid;gap:5px;margin:10px 0}.table-order-list button{padding:7px 8px;border-radius:8px;background:#fff;text-align:left;color:#312d2f;font-size:11px;font-weight:700}.table-total{display:block;font-size:11px;margin-top:8px}.takeaway-qr-card{border:2px solid #8f1f32;background:#fffafb}
@media(max-width:700px){.mode-banner,.preorder-strip{align-items:stretch;flex-direction:column}.preorder-list{justify-content:flex-start}.inline-field{align-items:stretch;flex-direction:column}.table-admin-grid{grid-template-columns:1fr}.order-type{max-width:130px}}
.merchant-qris-preview{display:block;width:min(280px,100%);aspect-ratio:1;object-fit:contain;margin:18px auto;padding:12px;border:1px solid #e5dcde;border-radius:16px;background:#fff}.merchant-qris-payment{text-align:center}.merchant-qris-payment img{display:block;width:min(320px,100%);aspect-ratio:1;object-fit:contain;margin:14px auto;padding:12px;border:1px solid #e5dcde;border-radius:16px;background:#fff}.merchant-qris-payment .payment-amount{font-size:24px;color:#921f31}

/* Bukti pembayaran QRIS manual */
.payment-proof-form{display:grid;gap:14px;margin-top:18px}.payment-proof-form .field{margin:0}.payment-proof-waiting{border-color:#d4a72c;background:#fff9e6}.payment-proof-rejected{border-color:#b42318;background:#fff1f0}.merchant-qris-payment .payment-amount{display:block;margin-top:12px;font-size:1.25rem}


/* Penanda menu pre-order untuk pelanggan */
.preorder-customer-label{display:flex;flex-wrap:wrap;align-items:center;gap:7px 10px;margin:9px 0 11px;padding:9px 11px;border:1px solid #b42335;border-radius:10px;background:#fff3f5;color:#7e1525}.preorder-customer-label strong{font-size:.78rem;letter-spacing:.1em}.preorder-customer-label span{font-size:.82rem;font-weight:700}.preorder-customer-label.compact{margin:5px 0 3px;padding:5px 8px;gap:5px 7px}.preorder-customer-label.compact strong{font-size:.68rem}.preorder-customer-label.compact span{font-size:.75rem}
/* Foto produk pre-order: pratinjau tetap ringkas di pengaturan admin. */
.preorder-product-row{gap:18px;align-items:center}
.preorder-product-summary{display:flex;align-items:center;gap:14px;min-width:0}
.preorder-product-summary>span{display:grid;gap:4px;min-width:0}
.preorder-product-thumb,.preorder-photo-preview{overflow:hidden;border:1px solid var(--line,#e6dde0);border-radius:14px;background:#f7f3f4}
.preorder-product-thumb{width:76px;height:76px;flex:0 0 76px}
.preorder-photo-preview{width:min(100%,280px);height:180px;margin-top:10px}
.preorder-product-thumb .menu-photo,.preorder-product-thumb .photo-missing,.preorder-photo-preview .menu-photo,.preorder-photo-preview .photo-missing{width:100%;height:100%;aspect-ratio:auto!important;border:0;border-radius:0}
.preorder-product-thumb img,.preorder-photo-preview img{width:100%!important;height:100%!important;left:0!important;top:0!important;object-fit:cover}
.preorder-edit-photo{display:grid;grid-template-columns:minmax(180px,280px) minmax(260px,1fr);gap:20px;align-items:end;margin-bottom:18px}
.preorder-photo-status{display:block;margin-top:10px}
.photo-file-ok{display:flex;align-items:center;gap:10px;color:#287a47}
.photo-file-ok img{width:64px;height:64px;object-fit:cover;border-radius:10px;border:1px solid #cfe3d5}
.photo-file-error{color:#a51f34}
@media(max-width:720px){.preorder-product-row{align-items:flex-start}.preorder-product-row,.preorder-product-summary{width:100%}.preorder-product-row{display:grid}.preorder-edit-photo{grid-template-columns:1fr}.preorder-photo-preview{height:160px}.preorder-product-thumb{width:68px;height:68px;flex-basis:68px}}

/* QRIS pada kasir ditampilkan lebih besar untuk pemindaian langsung di outlet. */
.cashier-manual-qris img{width:min(480px,100%);padding:18px}
.cashier-manual-qris{margin:8px auto 18px}


/* Kontras tab status aktif: selalu terbaca pada warna semantiknya. */
.order-filter-groups .order-group.selected.order-group--action,.order-filter-groups .order-group.selected.order-group--refund,.order-filter-groups .order-group.selected.order-group--kitchen,.order-filter-groups .order-group.selected.order-group--handover,.order-filter-groups .order-group.selected.order-group--completed,.order-filter-groups .order-group.selected.order-group--cancelled{color:#fff!important}.order-filter-groups .order-group.selected.order-group--action>span,.order-filter-groups .order-group.selected.order-group--refund>span,.order-filter-groups .order-group.selected.order-group--kitchen>span,.order-filter-groups .order-group.selected.order-group--handover>span,.order-filter-groups .order-group.selected.order-group--completed>span,.order-filter-groups .order-group.selected.order-group--cancelled>span{color:#fff!important}.order-filter-groups .order-group.selected strong{background:#ffffff26!important;color:#fff!important}

/* Notifikasi antrean dapur berdasarkan jenis pesanan. */
.kitchen-queue-tab.has-items.kitchen-queue--delivery{background:#eff7ff;border-color:#87bce9;color:#155f9b}.kitchen-queue-tab.has-items.kitchen-queue--delivery .badge{background:#d5ebff;color:#125484}.kitchen-queue-tab.has-items.kitchen-queue--takeaway{background:#fff7e8;border-color:#e7ab4e;color:#8a5200}.kitchen-queue-tab.has-items.kitchen-queue--takeaway .badge{background:#f9dda6;color:#744300}.kitchen-queue-tab.has-items.kitchen-queue--dinein{background:#edfafa;border-color:#78c9c4;color:#126b68}.kitchen-queue-tab.has-items.kitchen-queue--dinein .badge{background:#cff0ed;color:#0e5f5c}.kitchen-queue-tab.has-items.kitchen-queue--preorder{background:#faf5ff;border-color:#b99ae4;color:#65409a}.kitchen-queue-tab.has-items.kitchen-queue--preorder .badge{background:#e9dcfb;color:#573685}.kitchen-queue-tab.selected.kitchen-queue--delivery{background:#2477b6!important;border-color:#2477b6!important}.kitchen-queue-tab.selected.kitchen-queue--takeaway{background:#c57b08!important;border-color:#c57b08!important}.kitchen-queue-tab.selected.kitchen-queue--dinein{background:#147b77!important;border-color:#147b77!important}.kitchen-queue-tab.selected.kitchen-queue--preorder{background:#7651a6!important;border-color:#7651a6!important}.kitchen-queue-tab.selected.has-items,.kitchen-queue-tab.selected.has-items .badge{color:#fff!important}.kitchen-queue-tab.selected.has-items .badge{background:#ffffff26!important}

/* Pembatalan pelanggan harus terlihat jelas tetapi tetap terpisah dari tombol bayar. */
button[data-action="customer-cancel"]{background:#fff0f1!important;border:1px solid #d96a74!important;color:#9f2533!important;font-weight:800!important;box-shadow:0 4px 12px #9f25331a}button[data-action="customer-cancel"]:hover,button[data-action="customer-cancel"]:focus-visible{background:#fde0e3!important;border-color:#b94350!important;color:#7f1825!important}

/* Form refund memakai kolom yang jelas agar label, pilihan metode, dan catatan tidak saling bertumpuk. */
.refund-completion-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:end}
.refund-completion-form .refund-completion-title{grid-column:1/-1;display:block;margin:0;font-size:1.2rem;line-height:1.35}
.refund-completion-form .refund-method-field,.refund-completion-form .refund-note-field{display:grid!important;gap:8px;min-width:0;margin:0;font-weight:800;color:#332d30}
.refund-completion-form .refund-method-field small,.refund-completion-form .refund-note-field small{font-weight:600;color:#746b70}
.refund-completion-form select,.refund-completion-form input{box-sizing:border-box;width:100%;min-width:0;min-height:48px;margin:0}
.refund-completion-form .refund-completion-actions{grid-column:1/-1;margin:4px 0 0}
@media(max-width:720px){.refund-completion-form{grid-template-columns:1fr}.refund-completion-form .refund-completion-actions{grid-column:auto}.refund-completion-form .refund-completion-actions .btn{width:100%}}

/* Status produk pre-order dibuat setara tinggi dan bobotnya dengan tombol tindakan di baris yang sama. */
.preorder-product-row>.actions{align-items:center}
.preorder-product-row>.actions>.badge{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:13px 18px;margin:0;white-space:nowrap;font:inherit;font-size:14px;font-weight:600;line-height:1.2}

/* Daftar promo: satu baris tindakan yang rapi dan konsisten pada desktop maupun HP. */
.promo-list{display:grid;gap:12px;margin-top:18px}.promo-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px;border:1px solid var(--line,#e6dde0);border-radius:14px;background:#fff}.promo-row-summary{display:grid;gap:7px;min-width:0}.promo-row-summary>strong{font-size:1.05rem;line-height:1.3}.promo-row-summary>small{color:#71686d;line-height:1.45}.promo-row-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px}.promo-row-actions .btn,.promo-form-actions .btn{min-height:44px;padding:10px 16px;font:inherit;font-size:14px;font-weight:700;line-height:1.2;white-space:nowrap}.promo-status{display:grid;gap:2px;min-width:78px;padding:8px 11px;border-radius:10px;text-align:center;line-height:1.1}.promo-status small{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.promo-status strong{font-size:13px}.promo-status.is-active{background:#edf8ef;color:#277447}.promo-status.is-inactive{background:#f5f1f2;color:#6b5a61}.promo-editor{margin-top:20px}.promo-form-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:end}.promo-settings .muted strong{color:#5e2230}@media(max-width:760px){.promo-row{grid-template-columns:1fr;gap:14px}.promo-row-actions{justify-content:flex-start}.promo-row-actions .btn{flex:1 1 120px}.promo-status{min-width:88px}.promo-form-actions{width:100%}.promo-form-actions .btn{flex:1}}

/* Halaman login staf memakai suasana visual yang sama dengan login pelanggan, tanpa mengubah form atau autentikasi. */
.staff-login-page{min-height:100vh;display:grid;place-items:center;padding:clamp(22px,5vw,70px);background:linear-gradient(120deg,rgba(38,12,18,.91),rgba(86,25,38,.66)),url('./assets/staff-login-interior.png') center/cover fixed}.staff-login-card{width:min(100%,470px);padding:clamp(25px,4vw,32px)!important;border:1px solid rgba(255,255,255,.45)!important;border-radius:26px!important;background:rgba(255,252,249,.97)!important;box-shadow:0 30px 90px rgba(0,0,0,.35)!important;backdrop-filter:blur(10px)}.staff-login-card h1{margin:16px 0 10px;font-size:30px;letter-spacing:-.035em}.staff-login-card>.muted{margin-bottom:20px;font-size:1rem}.staff-login-card form{display:grid;gap:14px}.staff-login-card .field{display:grid;gap:8px;font-weight:700}.staff-login-card .field input{min-height:48px}.staff-login-card .btn.wide{min-height:48px;margin-top:4px}.staff-login-card>.btn.secondary{margin-top:14px}@media(max-width:640px){.staff-login-page{padding:18px;background-position:60% center}.staff-login-card{padding:28px 22px!important;border-radius:20px!important}.staff-login-card h1{font-size:1.8rem}}
