.input{width:100%;border:1px solid rgb(226 232 240);border-radius:1rem;padding:.8rem 1rem;outline:none;background:white}.input:focus{border-color:rgb(16 185 129);box-shadow:0 0 0 4px rgb(16 185 129/.12)}.btn{border-radius:1rem;padding:.75rem 1rem;font-weight:800;transition:.15s;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.btn-primary{background:linear-gradient(135deg,#10b981,#0ea5e9);color:#fff}.btn-primary:hover{filter:brightness(.98);transform:translateY(-1px)}.btn-soft{background:#fff;color:#0f172a;border:1px solid #e2e8f0}.btn-danger{background:#ef4444;color:white}.btn-info{background:#2563eb;color:white}.btn-dark{background:#111827;color:white}.btn-xs{padding:.45rem .7rem;border-radius:.75rem;font-size:.78rem}.card{background:white;border:1px solid #e2e8f0;border-radius:1.5rem;box-shadow:0 12px 35px rgb(15 23 42/.06)}.badge{border-radius:999px;padding:.25rem .65rem;font-size:.75rem;font-weight:800}.table-wrap{overflow:auto;border-radius:1.25rem;border:1px solid #e2e8f0}.table{min-width:900px;width:100%;background:white}.table th{background:#f8fafc;text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.table th,.table td{padding:.85rem;border-bottom:1px solid #e2e8f0;white-space:nowrap;vertical-align:top}.menu-card{cursor:pointer;transition:.18s}.menu-card:hover{transform:translateY(-3px)}.menu-card.active{outline:4px solid rgb(16 185 129/.25);border-color:#10b981}.status-PENDING{background:#f1f5f9;color:#334155}.status-ALLOCATED{background:#dbeafe;color:#1d4ed8}.status-ACCEPTED{background:#ccfbf1;color:#0f766e}.status-PREPARING{background:#fef3c7;color:#b45309}.status-READY{background:#dcfce7;color:#15803d}.status-COMPLETED{background:#e0e7ff;color:#4338ca}.status-REJECTED{background:#fee2e2;color:#b91c1c}.mini-table{width:100%;border-collapse:collapse}.mini-table td,.mini-table th{border-bottom:1px solid #e2e8f0;padding:.55rem;text-align:left}.mini-table th{font-size:.72rem;color:#64748b;text-transform:uppercase}.inactive{opacity:.45;filter:grayscale(.25)}

.label{display:block;font-size:.8rem;font-weight:700;color:#475569;margin-bottom:.35rem}

/* MODIFIKASI: perbaikan overflow mobile dan layout Order Training */
#content,.card,.table-wrap{max-width:100%;min-width:0}.grid>*{min-width:0}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.training-page{max-width:100%;min-width:0}.training-page .card{min-width:0;overflow:hidden}.training-page aside{min-width:0}.training-page select.input,.training-page input.input,.training-page textarea.input{max-width:100%}
@media (max-width:640px){body{overflow-x:hidden}.training-page{display:block}.training-page>.space-y-5{min-width:0}.training-page .card{padding:1rem;border-radius:1.25rem}.training-page .table-wrap{width:100%;border-radius:1rem}.training-page .table{min-width:680px}.training-page .btn{width:100%;white-space:normal}.training-page .sticky{position:static}.training-page h3{font-size:1rem}.training-page th,.training-page td{padding:.65rem}.training-page td .input{min-width:120px}}

/* PATCH: Modal Detail List Order mobile no-wrap */
.order-detail-modal{max-width:100%;overflow:hidden}
.order-detail-modal .table-wrap{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
.order-detail-modal .mini-table{min-width:760px;width:100%;table-layout:auto}
.order-detail-modal .mini-table th,
.order-detail-modal .mini-table td{white-space:nowrap;vertical-align:middle}
.order-detail-modal .mini-table td:first-child,
.order-detail-modal .mini-table th:first-child{min-width:220px}
.order-detail-modal .mini-table small{white-space:nowrap}
.order-detail-modal .order-meta{min-width:0}
.order-detail-modal .order-meta p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:640px){
 .swal2-popup{max-width:calc(100vw - 1rem)!important}
 .swal2-html-container{margin-left:.5rem!important;margin-right:.5rem!important;overflow-x:hidden!important}
 .order-detail-modal .table-wrap{border-radius:1rem}
 .order-detail-modal .mini-table{min-width:720px}
 .order-detail-modal .mini-table th,
 .order-detail-modal .mini-table td{padding:.55rem .7rem!important;font-size:.82rem}
 .order-detail-modal .mini-table .btn{white-space:nowrap;width:auto}
 .order-detail-modal .order-meta{display:block!important}
 .order-detail-modal .order-meta p{margin-bottom:.35rem}
}


/* PATCH: Nomor antrean otomatis */
.order-ref{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;min-width:max-content}
.order-ref small{font-size:.72rem;color:#64748b;font-weight:700;line-height:1.1;white-space:nowrap}
.queue-pill{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:999px;padding:.34rem .75rem;background:linear-gradient(135deg,#0f172a,#334155);color:#fff;font-weight:900;letter-spacing:.03em;font-size:.9rem;box-shadow:0 8px 18px rgb(15 23 42/.12)}
@media(max-width:640px){.queue-pill{font-size:.82rem;padding:.3rem .65rem}.order-ref small{font-size:.68rem}}


/* PATCH: Kitchen Display untuk Mess/Dapur */
.kitchen-page{max-width:100%;min-width:0}.kitchen-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem}.kitchen-controls{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.kitchen-input{width:auto;min-width:180px}.kitchen-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.kitchen-stat{padding:1rem}.kitchen-stat span{display:block;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.kitchen-stat b{display:block;font-size:2rem;line-height:1.05;margin-top:.25rem}.kitchen-board{display:grid;grid-template-columns:repeat(4,minmax(280px,1fr));gap:1rem;align-items:start}.kitchen-col{border-radius:1.5rem;border:1px solid #e2e8f0;background:#f8fafc;overflow:hidden;min-height:420px}.kitchen-col-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;padding:1rem;border-bottom:1px solid #e2e8f0;background:#fff}.kitchen-col-head h3{font-weight:1000;font-size:1rem;letter-spacing:.02em}.kitchen-col-head p{font-size:.75rem;color:#64748b;margin-top:.15rem;line-height:1.25}.kitchen-count{display:inline-flex;align-items:center;justify-content:center;min-width:2.2rem;height:2.2rem;border-radius:999px;background:#0f172a;color:#fff;font-weight:1000}.kitchen-list{display:flex;flex-direction:column;gap:.8rem;padding:.85rem}.kitchen-empty{border:2px dashed #cbd5e1;border-radius:1rem;padding:1rem;text-align:center;color:#64748b;font-weight:700;background:#fff}.kitchen-ticket{background:white;border:1px solid #e2e8f0;border-radius:1.25rem;padding:1rem;box-shadow:0 10px 28px rgb(15 23 42/.07)}.kitchen-ticket.is-late{outline:3px solid rgb(239 68 68/.16);border-color:#fecaca}.ticket-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.ticket-menu{margin-top:.85rem;font-size:.8rem;font-weight:900;text-transform:uppercase;color:#64748b;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ticket-title{font-size:1.45rem;line-height:1.1;font-weight:1000;margin:.18rem 0 .8rem;color:#0f172a}.ticket-info{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-top:1px solid #f1f5f9;padding:.55rem 0}.ticket-info span{font-size:.8rem;color:#64748b;font-weight:800}.ticket-info b{text-align:right;font-weight:1000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:68%}.ticket-note{margin-top:.55rem;padding:.7rem;border-radius:.9rem;background:#f8fafc;color:#475569;font-size:.88rem;font-weight:650}.ticket-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.85rem}.ticket-actions .btn{flex:1;min-width:120px}.kitchen-ALLOCATED .kitchen-col-head{border-top:5px solid #3b82f6}.kitchen-ACCEPTED .kitchen-col-head{border-top:5px solid #14b8a6}.kitchen-PREPARING .kitchen-col-head{border-top:5px solid #f59e0b}.kitchen-READY .kitchen-col-head{border-top:5px solid #22c55e}
@media(max-width:1280px){.kitchen-board{grid-template-columns:repeat(2,minmax(280px,1fr))}.kitchen-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.kitchen-toolbar{display:block}.kitchen-controls{justify-content:stretch;margin-top:1rem}.kitchen-controls .btn,.kitchen-input{width:100%;min-width:0}.kitchen-board{grid-template-columns:1fr}.kitchen-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.kitchen-stat{padding:.85rem}.kitchen-stat b{font-size:1.55rem}.kitchen-col{min-height:240px;border-radius:1.15rem}.kitchen-col-head{padding:.85rem}.kitchen-ticket{padding:.9rem;border-radius:1rem}.ticket-title{font-size:1.25rem}.ticket-info b{max-width:62%}}
@media(min-width:1600px){.kitchen-board{grid-template-columns:repeat(4,minmax(330px,1fr))}.ticket-title{font-size:1.65rem}.kitchen-col-head h3{font-size:1.1rem}}

/* PATCH: Paket Konsumsi Training + Setting lebih terstruktur */
.settings-page section{max-width:100%;min-width:0}.setting-section-title{display:flex;align-items:center;gap:.85rem;margin:.35rem 0 1rem}.setting-section-title>span{display:inline-flex;align-items:center;justify-content:center;width:2.6rem;height:2.6rem;border-radius:1rem;background:#fff;border:1px solid #e2e8f0;box-shadow:0 8px 18px rgb(15 23 42/.06);font-size:1.25rem}.setting-section-title h3{font-weight:1000;font-size:1.15rem;line-height:1.1;color:#0f172a}.setting-section-title p{font-size:.85rem;color:#64748b;margin-top:.15rem}.package-session-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.package-session{display:flex;align-items:center;gap:.55rem;padding:.75rem;border:1px solid #e2e8f0;border-radius:1rem;background:#f8fafc;font-weight:800;color:#334155}.package-session input{width:1.15rem;height:1.15rem;flex:0 0 auto}.package-table{min-width:760px}.package-table td:nth-child(2){white-space:normal;min-width:260px}.training-page #trPackageInfo{line-height:1.4}.training-page .table td,.training-page .table th{white-space:nowrap}
@media(max-width:720px){.setting-section-title{align-items:flex-start}.setting-section-title h3{font-size:1.05rem}.setting-section-title p{font-size:.8rem}.package-session-grid{grid-template-columns:1fr}.settings-page .card{padding:1rem;border-radius:1.25rem}.package-table{min-width:680px}.training-page .table{min-width:760px}.training-page #trPackage{font-size:.95rem}}

/* PATCH: Kalender Order + Hari Libur */
.calendar-page{max-width:100%;min-width:0}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem}.calendar-controls{display:flex;align-items:center;justify-content:flex-end;gap:.55rem;flex-wrap:wrap}.calendar-filter{width:auto;min-width:180px}.calendar-legend{display:flex;flex-wrap:wrap;gap:.65rem}.cal-legend-item{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:800;color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:.4rem .65rem}.cal-dot{width:.85rem;height:.85rem;border-radius:999px;display:inline-block}.cal-past{background:#cbd5e1}.cal-today{background:#22c55e}.cal-future-order{background:#fde68a}.cal-holiday{background:#fbcfe8}.cal-busy{background:#fb7185}.calendar-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.calendar-card{overflow:hidden}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.55rem}.calendar-head{font-size:.78rem;font-weight:1000;text-transform:uppercase;letter-spacing:.04em;text-align:center;color:#64748b;padding:.4rem;background:#f8fafc;border-radius:.8rem}.calendar-cell{position:relative;min-height:145px;text-align:left;border:1px solid #e2e8f0;background:#fff;border-radius:1.1rem;padding:.8rem;overflow:hidden;transition:.15s;display:flex;flex-direction:column;gap:.3rem}.calendar-cell:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgb(15 23 42/.09);z-index:2}.calendar-cell.other-month{opacity:.42}.calendar-cell.is-past{background:#f1f5f9;color:#64748b}.calendar-cell.is-holiday{background:#fdf2f8;border-color:#fbcfe8}.calendar-cell.has-order{background:#fffbeb;border-color:#fde68a}.calendar-cell.is-busy{outline:3px solid rgb(251 113 133/.23);border-color:#fb7185}.calendar-cell.is-today{background:#ecfdf5!important;border-color:#22c55e!important;outline:3px solid rgb(34 197 94/.22)}.cal-date-row{display:flex;align-items:center;justify-content:space-between;gap:.4rem}.cal-date-row b{font-size:1.15rem;font-weight:1000;color:#0f172a}.cal-tag{font-size:.62rem;font-weight:1000;border-radius:999px;padding:.18rem .45rem;white-space:nowrap}.cal-tag.today{background:#22c55e;color:#fff}.cal-tag.holiday{background:#f9a8d4;color:#831843}.cal-holiday-name{font-size:.7rem;font-weight:900;color:#be185d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-main{display:flex;align-items:flex-end;gap:.25rem;margin-top:.1rem}.cal-main strong{font-size:1.75rem;line-height:1;font-weight:1000}.cal-main span{font-size:.72rem;font-weight:900;color:#64748b;margin-bottom:.12rem}.cal-sub{font-size:.72rem;font-weight:900;color:#475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-sessions{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.2rem}.cal-sessions span{font-size:.63rem;font-weight:900;background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:.18rem .38rem;white-space:nowrap}.cal-mess{margin-top:auto;font-size:.7rem;font-weight:900;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-empty{margin-top:auto;font-size:.72rem;color:#94a3b8;font-weight:800}.calendar-detail-modal{max-width:100%;overflow:hidden}.calendar-detail-modal .table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.calendar-detail-table{min-width:980px}.calendar-detail-table th,.calendar-detail-table td{white-space:nowrap;vertical-align:middle}.holiday-table{min-width:720px}
@media(max-width:1024px){.calendar-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-toolbar{display:block}.calendar-controls{justify-content:stretch;margin-top:1rem}.calendar-controls .btn,.calendar-filter{width:100%;min-width:0}}
@media(max-width:640px){.calendar-page .card{border-radius:1.15rem}.calendar-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.calendar-stats .card{padding:.85rem!important}.calendar-stats .card .text-3xl{font-size:1.55rem}.calendar-card{padding:.45rem!important}.calendar-grid{gap:.25rem}.calendar-head{font-size:.66rem;padding:.32rem .1rem;border-radius:.55rem}.calendar-cell{min-height:88px;border-radius:.65rem;padding:.42rem;gap:.12rem}.cal-date-row b{font-size:.9rem}.cal-tag{display:none}.cal-holiday-name{font-size:.56rem}.cal-main strong{font-size:1.15rem}.cal-main span{font-size:.58rem}.cal-sub{font-size:.55rem}.cal-sessions{display:none}.cal-mess{font-size:.55rem}.cal-empty{font-size:.55rem}.calendar-cell.other-month .cal-empty{display:none}.calendar-legend{gap:.35rem}.cal-legend-item{font-size:.68rem;padding:.3rem .45rem}.cal-dot{width:.65rem;height:.65rem}.calendar-detail-table{min-width:860px}.calendar-detail-table th,.calendar-detail-table td{font-size:.78rem;padding:.55rem!important}}

/* PATCH: Setting page daftar/tabel no wrap text */
.settings-page .table-wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.settings-page .table{
  width:100%;
  table-layout:auto;
}
.settings-page .table th,
.settings-page .table td{
  white-space:nowrap!important;
  vertical-align:middle;
}
.settings-page .table td b,
.settings-page .table td small,
.settings-page .table th small{
  white-space:nowrap!important;
}
.settings-page .package-table{
  min-width:860px;
}
.settings-page .package-table td:nth-child(2){
  white-space:nowrap!important;
  min-width:300px;
}
.settings-page .holiday-table{
  min-width:720px;
}
.settings-page .table td:last-child{
  min-width:210px;
}
.settings-page .table td:last-child > div,
.settings-page .flex.flex-wrap.gap-2.justify-end{
  flex-wrap:nowrap!important;
  white-space:nowrap;
}
.settings-page .table .btn,
.settings-page .table td:last-child .btn{
  white-space:nowrap!important;
  width:auto;
  flex:0 0 auto;
}
.settings-page .card > .space-y-2.overflow-auto{
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}
.settings-page .card > .space-y-2.overflow-auto > div{
  min-width:560px;
}
.settings-page .card > .space-y-2.overflow-auto .flex{
  flex-wrap:nowrap!important;
  align-items:center;
}
.settings-page .card > .space-y-2.overflow-auto span,
.settings-page .card > .space-y-2.overflow-auto b,
.settings-page .card > .space-y-2.overflow-auto small{
  white-space:nowrap!important;
}
.settings-page .card > .space-y-2.overflow-auto .btn{
  white-space:nowrap!important;
  flex:0 0 auto;
}
@media(max-width:720px){
  .settings-page .package-table{min-width:820px;}
  .settings-page .table td,
  .settings-page .table th{padding:.62rem .72rem;}
  .settings-page .card > .space-y-2.overflow-auto > div{min-width:620px;}
  .settings-page .table td:last-child{min-width:230px;}
}

/* PATCH: Revisi jumlah porsi */
.order-detail-modal .revision-table{min-width:980px!important;}
.order-detail-modal .revision-table th,
.order-detail-modal .revision-table td{white-space:nowrap!important;vertical-align:middle;}
.order-detail-modal .nowrap-actions{flex-wrap:nowrap!important;white-space:nowrap;}
.status-REVISED{background:#fce7f3;color:#be185d;}
@media(max-width:720px){
  .order-detail-modal .revision-table{min-width:900px!important;}
  .order-detail-modal .nowrap-actions{justify-content:flex-start;}
}

/* PATCH: Halaman Laporan Operasional */
.report-page{max-width:100%;min-width:0}.report-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.report-presets{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.report-filter{width:auto;min-width:180px}.report-table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.report-table{min-width:760px}.report-table th,.report-table td{white-space:nowrap;vertical-align:middle}.report-detail-table{min-width:1180px}.report-detail-table th,.report-detail-table td{white-space:nowrap;vertical-align:middle}.report-bar{height:.55rem;border-radius:999px;background:#e2e8f0;overflow:hidden;margin-top:.42rem}.report-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(135deg,#10b981,#0ea5e9);min-width:.25rem}.report-bar-row{padding:.75rem;border:1px solid #e2e8f0;border-radius:1rem;background:#f8fafc}.report-page .card .text-3xl{word-break:normal}.report-page .table-wrap .queue-pill{font-size:.82rem;padding:.28rem .62rem}.report-page .table-wrap .order-ref small{font-size:.66rem}
@media(max-width:820px){.report-toolbar{display:block}.report-presets{justify-content:stretch;margin-top:1rem}.report-presets .btn{flex:1;min-width:110px}.report-page .grid.md\:grid-cols-5{grid-template-columns:1fr}.report-filter{width:100%;min-width:0}}
@media(max-width:640px){.report-page .card{padding:1rem;border-radius:1.2rem}.report-page .grid.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.report-page .card .text-3xl{font-size:1.45rem}.report-page .card .text-sm{font-size:.75rem}.report-page .card .text-xs{font-size:.68rem}.report-presets{display:grid;grid-template-columns:1fr;gap:.45rem}.report-table{min-width:720px}.report-detail-table{min-width:1080px}.report-table th,.report-table td,.report-detail-table th,.report-detail-table td{padding:.56rem .68rem!important;font-size:.8rem}}

/* Patch Laporan Training */
.report-tabs{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.report-training-table{min-width:1280px}
.report-training-table th,.report-training-table td{white-space:nowrap;vertical-align:middle}
.training-summary{min-width:0}
.training-mini,.training-slot{border:1px solid #e2e8f0;background:#f8fafc;border-radius:1rem;padding:.8rem;min-width:0}
.training-mini span,.training-slot span{display:block;font-size:.72rem;color:#64748b;font-weight:800;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}
.training-mini b,.training-slot b{display:block;margin-top:.2rem;font-size:1rem;color:#0f172a;white-space:nowrap}
.training-slot{background:linear-gradient(180deg,#f8fafc,#ecfdf5)}
#reportTrainingPanel .table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
#reportTrainingPanel table th,#reportTrainingPanel table td{white-space:nowrap}
@media(max-width:820px){.report-tabs{display:grid;grid-template-columns:1fr 1fr}.report-tabs .btn{width:100%}.training-mini b,.training-slot b{font-size:.9rem}.report-training-table{min-width:1180px}}
@media(max-width:640px){.training-summary .grid.sm\:grid-cols-5{grid-template-columns:repeat(2,minmax(0,1fr))}.training-summary .text-2xl{font-size:1.25rem}.training-slot{padding:.65rem}.training-slot span{font-size:.68rem}.training-slot b{font-size:.85rem}.report-training-table{min-width:1080px}}

/* PATCH: Keranjang Order ala cafe/food ordering */
.order-page{max-width:100%;min-width:0}.order-page>*{min-width:0}.cart-panel{overflow:hidden}.cart-form .label{margin-bottom:.35rem}.cart-count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:1.55rem;height:1.55rem;border-radius:999px;background:rgba(255,255,255,.22);font-size:.8rem;font-weight:1000;padding:0 .45rem}.empty-cart-box{border:1px dashed #cbd5e1;background:#f8fafc;border-radius:1rem;padding:1rem;text-align:center;color:#64748b}.cart-list{display:flex;flex-direction:column;gap:.7rem}.cart-row{border:1px solid #e2e8f0;border-radius:1rem;padding:.8rem;background:#fff;display:grid;grid-template-columns:1fr auto;gap:.65rem;align-items:center}.cart-row b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cart-qty{display:flex;align-items:center;gap:.35rem;white-space:nowrap}.cart-qty-input{width:4.2rem;border:1px solid #e2e8f0;border-radius:.8rem;padding:.45rem .35rem;text-align:center;font-weight:1000}.cart-subtotal{grid-column:1/-1;text-align:right;font-weight:1000;color:#0f172a;border-top:1px dashed #e2e8f0;padding-top:.55rem}.cart-total{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border-radius:1rem;background:linear-gradient(135deg,#ecfdf5,#f0f9ff);border:1px solid #bbf7d0;font-weight:1000}.cart-total span{color:#475569}.cart-total b{font-size:1.15rem;color:#047857}.mobile-cart-float{position:fixed;right:1rem;bottom:1rem;z-index:45;border:0;border-radius:999px;background:linear-gradient(135deg,#10b981,#0ea5e9);color:#fff;box-shadow:0 16px 38px rgba(15,23,42,.22);padding:.85rem 1rem;font-weight:1000;display:flex;align-items:center;gap:.45rem}.mobile-cart-float.hidden{display:none}.mobile-cart-float b{display:inline-flex;align-items:center;justify-content:center;min-width:1.65rem;height:1.65rem;border-radius:999px;background:rgba(255,255,255,.22);font-size:.82rem}.order-review{max-width:100%;overflow:hidden}.order-review .table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.order-review-table{min-width:760px}.order-review-table th,.order-review-table td{white-space:nowrap;vertical-align:middle}.menu-card .btn{white-space:nowrap}
@media(max-width:640px){.order-page .card{border-radius:1.15rem}.order-page .menu-card img{height:9.5rem}.order-page .menu-card .p-4{padding:1rem}.cart-panel{position:static!important;margin-bottom:4.5rem}.cart-row{grid-template-columns:1fr;align-items:stretch}.cart-qty{justify-content:flex-end;overflow-x:auto}.cart-qty-input{width:4rem}.cart-subtotal{text-align:left}.cart-total{padding:.85rem}.cart-total b{font-size:1rem}.order-review-table{min-width:700px}.swal2-popup .order-review .cart-total{font-size:.9rem}}

/* PATCH: QR Lokasi + Order Instan - Elegant Print */
.instant-public-page .cart-panel{top:1.25rem}.instant-mode #busy{z-index:10000}.qr-admin-page .table{min-width:920px}.qr-print-sheet{display:none}.nowrap-actions{flex-wrap:nowrap!important;white-space:nowrap}
.qr-style-preview{display:grid;grid-template-columns:180px 1fr;gap:1rem;align-items:center;border:1px solid #e2e8f0;background:linear-gradient(135deg,#f8fafc,#ecfdf5);border-radius:1.25rem;padding:1rem;overflow:hidden}.qr-print-card-preview{transform:scale(.47);transform-origin:left center;margin:-54mm -42mm -54mm 0}.qr-demo-mark{display:grid;place-items:center;width:100%;height:100%;font-size:32pt;font-weight:1000;color:#94a3b8;border:10px solid #cbd5e1;border-radius:1rem;background:repeating-linear-gradient(45deg,#f8fafc,#f8fafc 8px,#e2e8f0 8px,#e2e8f0 16px)}
.qr-print-card{position:relative;width:86mm;height:120mm;border:1px solid #dbeafe;border-radius:18px;background:radial-gradient(circle at top left,#ecfeff 0,#fff 36%),linear-gradient(180deg,#fff 0,#f8fafc 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4.2mm;margin:6mm;break-inside:avoid;page-break-inside:avoid;overflow:hidden;box-shadow:0 18px 45px rgba(15,23,42,.12)}
.qr-print-card:before{content:"";position:absolute;left:-28mm;top:-28mm;width:62mm;height:62mm;border-radius:999px;background:rgba(14,165,233,.12)}.qr-print-card:after{content:"";position:absolute;right:-22mm;bottom:-26mm;width:60mm;height:60mm;border-radius:999px;background:rgba(16,185,129,.13)}
.qr-badge{position:relative;z-index:1;border:1px solid #bbf7d0;background:#ecfdf5;color:#047857;border-radius:999px;padding:2.2mm 6mm;font-size:9pt;font-weight:1000;letter-spacing:.16em}.qr-top{position:relative;z-index:1;font-size:18pt;font-weight:1000;letter-spacing:.02em;color:#0f172a;text-align:center;text-transform:uppercase}.qr-sub{position:relative;z-index:1;margin-top:-3mm;font-size:9pt;font-weight:800;color:#64748b;text-align:center}.qr-loc{position:relative;z-index:1;font-size:20pt;font-weight:1000;color:#0f172a;text-align:center;max-width:76mm;line-height:1.12}.qr-foot{position:relative;z-index:1;font-size:9pt;font-weight:900;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;padding:2mm 5mm}.qr-box{position:relative;z-index:1;width:230px;height:230px;display:grid;place-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:9px;box-shadow:0 14px 30px rgba(15,23,42,.1)}.qr-box img:not(.qr-logo-img),.qr-box canvas{max-width:100%;height:auto;border-radius:8px}.qr-logo-wrap{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:16px;background:#fff;border:7px solid #fff;box-shadow:0 8px 18px rgba(15,23,42,.2);display:grid;place-items:center;overflow:hidden;z-index:3}.qr-logo-img{width:100%;height:100%;object-fit:contain;display:block}
@media print{
 body>*:not(.qr-print-sheet){display:none!important}.qr-print-sheet{display:grid!important;grid-template-columns:repeat(2,1fr);gap:0;align-items:start;justify-items:center;background:white!important;padding:6mm}.qr-print-card{display:flex!important;box-shadow:none!important}.qr-print-card *,.qr-print-card:before,.qr-print-card:after{print-color-adjust:exact;-webkit-print-color-adjust:exact}@page{size:A4 portrait;margin:8mm}
}
@media(max-width:720px){.instant-public-page .cart-panel{position:static}.qr-admin-page .table{min-width:860px}.qr-style-preview{grid-template-columns:1fr}.qr-print-card-preview{transform:scale(.56);margin:-45mm auto}.qr-print-card{width:76mm;height:105mm}.qr-top{font-size:15pt}.qr-loc{font-size:17pt}.qr-box{width:205px;height:205px}.qr-logo-wrap{width:46px;height:46px}}

/* PATCH: Kasir + Struk Thermal 58/80 mm */
.cashier-page .cashier-table{min-width:1080px}.cashier-page .cashier-table th,.cashier-page .cashier-table td{white-space:nowrap;vertical-align:middle}.btn-info{background:#0ea5e9!important;color:white!important}.btn-xs{font-size:.75rem!important;padding:.42rem .65rem!important;border-radius:.75rem!important}.thermal-preview{display:flex;justify-content:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:1rem;padding:1rem;overflow:auto}.thermal-receipt{font-family:"Courier New",monospace;background:#fff;color:#000;border:1px solid #e5e7eb;box-shadow:0 14px 30px rgba(15,23,42,.10);padding:3mm;line-height:1.25}.thermal-58 .thermal-receipt{width:50mm;font-size:9.5px}.thermal-80 .thermal-receipt{width:72mm;font-size:11px}.thermal-receipt h2{font-size:1.15em;margin:0 0 .2em;font-weight:900}.thermal-receipt .center{text-align:center}.thermal-receipt .foot{font-size:.92em}.thermal-receipt .dash{border-top:1px dashed #000;margin:.45rem 0}.thermal-receipt .meta,.thermal-receipt .total{display:flex;align-items:flex-start;justify-content:space-between;gap:.35rem}.thermal-receipt .meta span{min-width:35%;color:#111}.thermal-receipt .meta b{text-align:right;font-weight:700;word-break:break-word}.thermal-receipt table{width:100%;border-collapse:collapse;margin:.25rem 0}.thermal-receipt th,.thermal-receipt td{padding:.12rem 0;vertical-align:top}.thermal-receipt th{text-align:left;border-bottom:1px dashed #000}.thermal-receipt .num{text-align:right}.thermal-receipt small{font-size:.86em}.thermal-receipt .total{font-size:1.1em;font-weight:900}.thermal-receipt .total b{font-size:1.05em}
@media print{.thermal-preview{display:block;border:0;padding:0;background:white}.thermal-receipt{box-shadow:none;border:0}.thermal-58 .thermal-receipt{width:50mm}.thermal-80 .thermal-receipt{width:72mm}}
@media(max-width:640px){.cashier-page .grid.md\:grid-cols-\[1fr_auto_auto\]{grid-template-columns:1fr}.thermal-preview{padding:.5rem}.thermal-58 .thermal-receipt{width:50mm;font-size:9px}.thermal-80 .thermal-receipt{width:72mm;font-size:10px}}


.instant-order-popup{max-width:min(98vw,980px)!important}.instant-order-table-wrap{width:100%;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch}.instant-order-table{min-width:760px;border-collapse:separate}.instant-order-table th,.instant-order-table td{white-space:nowrap;vertical-align:middle}.instant-nowrap{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.instant-status-cell{display:flex;justify-content:center;min-width:120px}.instant-order-table::-webkit-scrollbar{height:6px}@media(max-width:640px){.instant-order-popup{width:98vw!important;padding:1rem!important}.instant-order-list{font-size:12px}.instant-order-table{min-width:720px}.instant-nowrap{max-width:180px}}

/* PATCH: Order Mess - satu kartu per nomor order */
.mess-page{max-width:100%;min-width:0}.mess-order-list{display:flex;flex-direction:column;gap:1rem}.mess-order-card{padding:1rem;overflow:hidden}.mess-order-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.mess-order-title-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.mess-order-ref{white-space:nowrap}.mess-instant-badge{background:#fef3c7;color:#92400e}.mess-order-meta{display:flex;flex-wrap:wrap;gap:.45rem .85rem;margin-top:.55rem;font-size:.85rem;color:#64748b}.mess-order-meta span{white-space:nowrap}.mess-order-note{margin-top:.7rem;padding:.65rem .75rem;border-radius:.9rem;background:#f8fafc;border:1px solid #e2e8f0;font-size:.86rem;color:#475569}.mess-item-list{margin-top:1rem;border:1px solid #e2e8f0;border-radius:1rem;overflow:hidden}.mess-item-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:.75rem;padding:.75rem;background:#fff;border-bottom:1px solid #e2e8f0}.mess-item-row:last-child{border-bottom:0}.mess-item-name{font-weight:1000;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mess-item-meta{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.25rem;font-size:.78rem;color:#64748b}.mess-item-meta span{white-space:nowrap}.mess-item-status{white-space:nowrap}.mess-item-actions{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;white-space:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.mess-item-actions .btn{white-space:nowrap;flex:0 0 auto}
@media(max-width:720px){.mess-order-card{padding:.85rem;border-radius:1.15rem}.mess-order-title-row{gap:.4rem}.mess-order-title-row .btn{padding:.42rem .62rem}.mess-order-meta{overflow-x:auto;flex-wrap:nowrap;padding-bottom:.25rem}.mess-item-list{overflow-x:auto;-webkit-overflow-scrolling:touch}.mess-item-row{min-width:720px;grid-template-columns:minmax(260px,1fr) auto minmax(170px,auto);padding:.65rem}.mess-item-name{max-width:300px}.mess-item-meta{flex-wrap:nowrap}.mess-item-actions{overflow:visible}}

/* PATCH: Order Instan - konfirmasi diterima oleh User Order Instan */
.instant-flow-info{border:1px solid #bbf7d0;background:linear-gradient(135deg,#ecfdf5,#f0f9ff);color:#065f46;border-radius:1rem;padding:.8rem 1rem;margin-bottom:.9rem;font-size:.88rem;line-height:1.35}.instant-order-card-list{display:flex;flex-direction:column;gap:.9rem}.instant-order-card{border:1px solid #e2e8f0;border-radius:1.15rem;background:#fff;overflow:hidden}.instant-order-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;padding:.9rem 1rem;background:#f8fafc;border-bottom:1px solid #e2e8f0}.instant-order-ref-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.instant-order-ref-row b{white-space:nowrap}.instant-order-meta{display:flex;gap:.5rem .8rem;flex-wrap:wrap;margin-top:.35rem;font-size:.8rem;color:#64748b}.instant-order-meta span{white-space:nowrap}.instant-order-items{display:flex;flex-direction:column}.instant-order-item{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:.7rem;padding:.78rem 1rem;border-bottom:1px solid #eef2f7}.instant-order-item:last-child{border-bottom:0}.instant-order-item b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#0f172a}.instant-order-item small{display:block;margin-top:.2rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.instant-order-item-status,.instant-order-item-action{white-space:nowrap}.instant-receive-hint{padding:.65rem 1rem;border-top:1px dashed #dbeafe;background:#f8fafc;color:#64748b;font-size:.78rem}.instant-order-popup .btn-xs{white-space:nowrap}
@media(max-width:640px){.instant-order-popup{width:98vw!important}.instant-flow-info{font-size:.78rem;padding:.7rem}.instant-order-card-head{padding:.75rem;display:grid;grid-template-columns:1fr;gap:.6rem}.instant-order-card-head .btn{justify-self:start}.instant-order-items{overflow-x:auto;-webkit-overflow-scrolling:touch}.instant-order-item{min-width:690px;grid-template-columns:minmax(260px,1fr) auto auto;padding:.68rem .75rem}.instant-order-meta{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.2rem}.instant-receive-hint{font-size:.72rem}}

/* Perbaikan Order Instan: status jelas + riwayat per perangkat */
.instant-list-toolbar{display:flex;gap:.5rem;flex-wrap:wrap;margin:.25rem 0 .8rem 0}
.instant-public-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.22rem .55rem;font-size:.72rem;font-weight:800;line-height:1;white-space:nowrap;border:1px solid transparent}
.instant-public-status.status-ready-wait{background:#fffbeb;color:#92400e;border-color:#fde68a}
.instant-public-status.status-completed{background:#ecfdf5;color:#065f46;border-color:#bbf7d0}
.instant-public-status.status-rejected{background:#fef2f2;color:#991b1b;border-color:#fecaca}
.instant-public-status.status-preparing{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.instant-public-status.status-accepted{background:#eef2ff;color:#4338ca;border-color:#c7d2fe}
.instant-public-status.status-allocated,.instant-public-status.status-pending{background:#f8fafc;color:#475569;border-color:#e2e8f0}
.instant-order-ref-row .instant-public-status{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.instant-order-item-status .instant-public-status{min-width:140px}
@media(max-width:640px){.instant-list-toolbar .btn{flex:1 1 auto}.instant-public-status{font-size:.68rem}.instant-order-ref-row{align-items:flex-start}.instant-order-item-status .instant-public-status{min-width:155px}}

/* Patch Order Mess: checklist + bulk action + revisi */
.mess-help-box{font-size:.84rem;color:#475569;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:1rem;padding:.75rem .9rem}
.mess-bulk-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1rem;padding:.72rem .85rem;border:1px solid #e2e8f0;background:#f8fafc;border-radius:1rem;overflow:hidden}
.mess-bulk-left,.mess-bulk-actions{display:flex;align-items:center;gap:.55rem;white-space:nowrap}
.mess-bulk-actions{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.05rem}
.mess-check-all{display:flex;align-items:center;gap:.42rem;font-weight:900;font-size:.84rem;color:#334155;white-space:nowrap}
.mess-selected-count{font-size:.78rem;font-weight:900;color:#0f172a;background:#e2e8f0;border-radius:999px;padding:.25rem .55rem;white-space:nowrap}
.mess-item-check{display:flex;align-items:center;justify-content:center}
.mess-item-cb{width:1.1rem;height:1.1rem;accent-color:#2563eb;cursor:pointer}
.mess-item-cb:disabled{cursor:not-allowed;opacity:.45}
.mess-item-done{background:#f8fafc}.mess-item-done .mess-item-name{color:#64748b}
@media(max-width:720px){.mess-bulk-bar{align-items:flex-start;flex-direction:column}.mess-bulk-left,.mess-bulk-actions{width:100%;overflow-x:auto}.mess-item-row{grid-template-columns:42px minmax(260px,1fr) auto minmax(110px,auto)!important;min-width:820px}}
.mess-item-row{grid-template-columns:42px minmax(220px,1fr) auto minmax(110px,auto)!important}

/* PATCH FINAL: Order Mess simpel - satu tombol aksi, aktif/riwayat terpisah */
.mess-sticky-toolbar{position:sticky;top:.5rem;z-index:20;box-shadow:0 14px 34px rgba(15,23,42,.08)}
.mess-tabbar{display:flex;gap:.55rem;flex-wrap:wrap}.mess-tabbar .btn{white-space:nowrap}.mess-one-action-bar{background:linear-gradient(135deg,#f8fafc,#eef2ff)}
.mess-single-action{margin-left:auto}.mess-single-action .btn{min-width:130px}.mess-single-action .btn:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.25)}
.mess-reject-lite{border-color:#fecaca!important;color:#991b1b!important;background:#fff!important}.mess-reject-lite:disabled{color:#94a3b8!important;border-color:#e2e8f0!important;background:#f8fafc!important}
.mess-next-hint{font-weight:900;color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;padding:.12rem .42rem}.mess-item-wait{background:#f8fafc}.mess-item-wait .mess-next-hint{color:#64748b;background:#f1f5f9;border-color:#e2e8f0}
.mess-item-cb:not(:disabled){box-shadow:0 0 0 3px rgba(37,99,235,.08);border-radius:.25rem}.mess-item-cb:checked{transform:scale(1.05)}
@media(max-width:720px){.mess-sticky-toolbar{top:0;border-radius:0 0 1.15rem 1.15rem}.mess-tabbar .btn{flex:1}.mess-single-action{width:100%;display:flex;gap:.5rem}.mess-single-action .btn{flex:1;min-width:0}.mess-one-action-bar{gap:.65rem}}
