:root{--navy:#152238;--ink:#172338;--muted:#5e6b7c;--blue:#3155d9;--blue-hover:#2341b2;--blue-soft:#eef2ff;--bg:#f5f7fa;--surface:#fff;--line:#dce2eb;--green:#166b46;--green-soft:#e8f5ee;--amber:#915409;--amber-soft:#fff3df;--red:#b62d43;--red-soft:#fff0f2;--radius:12px;--shadow:0 12px 36px #15223812;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
/* Device theme roles. Light keeps the current UI, including white forms and paper. */
:root{color-scheme:light;--surface-2:#f3f5fc;--surface-3:#eef1fa;--line-soft:#e8ecf7;--card-line:var(--line);--muted-2:#6b77a0;--placeholder:#7d88ad;--primary:var(--blue);--primary-hover:var(--blue-hover);--on-primary:#fff;--accent-text:var(--blue);--accent-border:var(--blue);--brand-ink:var(--navy);--on-dark:#fff;--on-dark-muted:#c9d3ff;--chip-active-bg:var(--blue);--chip-active-fg:#fff;--stepper-bg:var(--blue);--stepper-ink:#fff;--hero-bg:var(--blue);--hero-ink:#fff;--hero-muted:#e1e7ff;--brand-yellow:#ffd823;--on-yellow:var(--navy);--brand-yellow-soft:#fff4bf;--brand-yellow-soft-ink:var(--navy);--brand-yellow-border:#f7e08a;--amber-border:#f8c9a8;--amber-strong:#e0661b;--green-solid:#166b46;--on-green-solid:#fff;--danger-bg:var(--red);--on-danger:#fff;--promo-band-bg:var(--navy);--tooltip-bg:var(--ink);--tooltip-ink:#fff;--input-bg:var(--surface);--overlay-dialog:#12203970;--focus:var(--blue)}
*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus-5477fa);outline-offset:3px}button{border:0}a{color:var(--accent-text);text-decoration:none}svg{width:21px;height:21px;flex:none;vertical-align:middle}h1,h2,h3,p{margin:0}h1{font-size:30px;line-height:1.25;letter-spacing:-.025em;font-weight:730;text-wrap:balance}h2{font-size:19px;line-height:1.3;letter-spacing:-.015em}h3{font-size:15px;line-height:1.4}small{font-size:12px}p{max-width:72ch}strong,b{font-weight:650}.muted{color:var(--muted)}.num{font-variant-numeric:tabular-nums}.skip{position:fixed;top:-80px;left:20px;z-index:100;background:var(--surface);padding:14px}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.sidebar{width:208px;position:fixed;inset:0 auto 0 0;background:var(--navy);color:var(--on-dark-muted-d3ddec);z-index:30;display:flex;flex-direction:column;padding:28px 14px 20px;overflow-y:auto;overscroll-behavior:contain}
/* overflow-y: tablet mendatar layar pendek (±510px) — isi sidebar ±740px; tanpa gulir, Ukuran teks s.d. Keluar tak terjangkau. */
.brand{color:var(--on-dark);font-size:27px;line-height:1;font-weight:750;letter-spacing:-.025em;padding:4px 12px 37px;display:flex;align-items:center;gap:9px}.brand-mark{height:27px;width:27px;border:5px solid var(--accent-border-90a6ff);border-radius:9px 9px 9px 2px;display:inline-block}.nav{display:flex;flex-direction:column;gap:7px}.nav button,.nav-bottom button{display:flex;align-items:center;gap:13px;width:100%;text-align:left;padding:13px 14px;background:transparent;color:inherit;border-radius:8px;min-height:48px}.nav button:hover,.nav-bottom button:hover{background:var(--nav-hover-24354f)}.nav button.active{background:var(--chip-active-bg);color:var(--on-primary)}.nav-count{margin-left:auto;font-size:11px;background:var(--nav-count-ffffff26);border-radius:5px;padding:0 6px}.nav-bottom{margin-top:auto;padding-top:35px}.nav-note{font-size:11px;color:var(--on-dark-muted-abbad0);line-height:1.6;padding:14px 13px 0}.main-shell{margin-left:208px;min-height:100vh}.topbar{height:76px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:15px}.top-left,.top-right,.inline,.actions{display:flex;align-items:center;gap:12px}.breadcrumb{color:var(--muted);font-size:13px}.breadcrumb b{color:var(--ink);margin-left:8px}.selector{position:relative;display:flex;align-items:center;gap:9px;min-width:170px}.selector select{border:1px solid var(--line);border-radius:8px;min-height:40px;padding:0 30px 0 12px;background:var(--surface);color:var(--ink);width:100%}.role-select{min-width:190px}.avatar{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2-e9edf5);color:var(--brand-ink);border-radius:50%;font-size:11px;font-weight:750;flex:none}.avatar.blue{background:var(--surface-3-e5ebff);color:var(--accent-text)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;min-width:38px;background:transparent;color:var(--muted);border-radius:8px}.icon-btn:hover{background:var(--surface-2-edf1f8)}.mobile-menu{display:none}.content{padding:30px 32px 40px;max-width:1600px;margin:auto}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.page-heading p{margin-top:8px;color:var(--muted)}.demo-tag{font-size:11px;font-weight:650;background:var(--surface-2-edf0f5);color:var(--muted-536176);display:inline-flex;padding:5px 9px;border-radius:5px;white-space:nowrap}.demo-top{display:flex;align-items:center;gap:12px}.summary-strip{display:flex;gap:25px;align-items:center;padding:0 0 25px}.summary-strip>div{border-right:1px solid var(--line);padding-right:25px;display:flex;align-items:baseline;gap:7px}.summary-strip>div:last-child{border:0}.summary-strip strong{font-size:22px;font-weight:680}.summary-strip span{color:var(--muted);font-size:13px}.blue-text{color:var(--accent-text)}.red-text{color:var(--red)}
.workspace-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,1fr);gap:24px;align-items:start}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.panel-pad{padding:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:19px 22px;border-bottom:1px solid var(--line)}.panel-head small{color:var(--muted)}.filters{display:flex;gap:7px;align-items:center;margin-bottom:15px;flex-wrap:wrap}.filter{padding:8px 13px;background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:7px;font-size:12px;min-height:35px}.filter.active{color:var(--chip-active-fg);background:var(--chip-active-bg);border-color:var(--chip-active-bg)}.filter:hover:not(.active){border-color:var(--accent-border-9aacda);color:var(--accent-text)}.task-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.task{position:relative;display:flex;gap:15px;align-items:center;text-align:left;background:var(--surface);width:100%;padding:23px 19px;color:var(--ink);border-bottom:1px solid var(--line);min-height:115px}.task:last-child{border:0}.task:hover{background:var(--surface-hover-f8faff)}.task.selected{background:var(--blue-soft);box-shadow:none}.task-icon{height:40px;width:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;flex:none;background:var(--blue-soft);color:var(--accent-text)}.task-icon.amber{background:var(--amber-soft);color:var(--amber)}.task-icon.green{background:var(--green-soft);color:var(--green)}.task-text{flex:1;min-width:0}.task-text strong{display:block;font-size:14px;margin-bottom:5px}.task-text small{color:var(--muted);display:block}.task-side{display:flex;flex-direction:column;gap:7px;align-items:flex-start;min-width:135px;font-size:12px}.task-side>span:last-child{color:var(--muted)}.task-arrow{width:16px;color:var(--muted-8792a3)}.badge{display:inline-flex;align-items:center;gap:5px;vertical-align:middle;padding:3px 8px;line-height:1.5;font-size:11px;font-weight:650;border-radius:5px;white-space:nowrap;background:var(--surface-2-eef1f5);color:var(--muted-586578)}.badge.blue{background:var(--blue-soft);color:var(--accent-text-294bbc)}.task.selected .badge.blue,.fraud-pattern.selected .badge.blue{background:var(--primary);color:var(--on-primary)}.badge.green{background:var(--green-soft);color:var(--green)}.badge.amber{background:var(--amber-soft);color:var(--amber)}.badge.red{background:var(--red-soft);color:var(--red)}.evidence-panel{padding:22px}.evidence-panel h2{font-size:19px;margin:16px 0 7px}.evidence-panel>p{color:var(--muted);font-size:13px;margin-bottom:22px}.detail-label{font-size:12px;font-weight:650;margin-top:21px;margin-bottom:9px}.definition{margin:0}.definition>div{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line-soft-ecf0f5);padding:11px 0;font-size:13px}.definition dt{color:var(--muted)}.definition dd{margin:0;text-align:right;font-weight:550}.evidence-file{display:flex;align-items:center;gap:12px;padding:13px;background:var(--bg);border-radius:8px;font-size:12px;margin:12px 0 18px}.evidence-file small{display:block;color:var(--muted);margin-top:2px}.next-step{margin-top:22px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:41px;padding:10px 16px;background:var(--primary);color:var(--on-primary);border-radius:7px;font-weight:600;font-size:13px;line-height:1.3;text-align:center}.button:hover{background:var(--primary-hover)}.button.secondary{border:1px solid var(--line);background:var(--surface);color:var(--ink)}.button.secondary:hover{background:var(--surface-2-f0f3fa)}.button.ghost{color:var(--accent-text);background:transparent;padding:8px 0;min-height:34px}.button.danger{background:var(--danger-bg)}.button.small{min-height:33px;font-size:12px;padding:7px 11px}.button.full{width:100%}
/* Tombol lebar bertumpuk (mis. jendela struk: Sambungkan · Simulasikan; Cetak ulang · Kembali, dipisah kotak galat kosong) tidak saling menempel. :where() agar jarak khusus yang sudah ada tetap menang. */
.button.full~:where(.button.full){margin-top:8px}.qris-demo-actions .button.full{margin-top:0}.button svg{height:17px;width:17px}.outline-icon{color:var(--muted)}
.outlet-panel{margin-top:25px}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}.data-table th{font-size:11px;font-weight:600;color:var(--muted);background:var(--surface-2-fafbfc);padding:11px 21px;white-space:nowrap}.data-table td{padding:16px 21px;border-top:1px solid var(--line-soft-e9edf3);vertical-align:middle}.data-table td small{display:block;color:var(--muted);margin-top:3px}.data-table .align-right{text-align:right}.outlet-name{background:none;text-align:left;color:var(--ink);font-weight:650;padding:6px 0;min-height:32px}.outlet-name:hover{color:var(--accent-text)}.footer-line{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;gap:15px;margin-top:23px}.footer-line a{font-weight:600}.tabs{display:flex;border-bottom:1px solid var(--line);gap:22px;margin:-4px 0 25px;overflow-x:auto}.tab{padding:13px 6px;min-width:44px;text-align:center;flex:0 0 auto;background:none;color:var(--muted);font-weight:600;font-size:13px;border-bottom:2px solid transparent;white-space:nowrap}.tab.active{color:var(--accent-text);border-color:var(--accent-text)}.two-col{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr);gap:24px;align-items:start}.section-stack{display:flex;flex-direction:column;gap:21px}.helper{font-size:12px;line-height:1.6;color:var(--muted);margin-top:12px}.notice{background:var(--blue-soft);border:1px solid var(--accent-border-d8e1ff);color:var(--accent-text-2c458c);border-radius:8px;padding:13px 15px;font-size:12px;display:flex;gap:10px;align-items:flex-start;margin:15px 0}.notice.amber{color:var(--amber);background:var(--amber-soft);border-color:var(--amber-border-f3dfbf)}.notice.green{color:var(--green);background:var(--green-soft);border-color:var(--green-border-cfe6d7)}.notice svg{height:17px;width:17px;margin-top:1px}.empty{padding:42px 24px;text-align:center;color:var(--muted)}.empty svg{width:32px;height:32px;color:var(--muted-8494af);margin-bottom:12px}.empty h3{color:var(--ink);margin-bottom:5px}.search{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:0 11px}.search input{border:0;width:100%;outline:0;min-height:41px;background:transparent}.search svg{width:17px;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;min-width:0;margin-bottom:15px}.form-field input,.form-field select,.form-field textarea{width:100%;border:1px solid var(--line-cdd5e1);border-radius:7px;min-height:43px;padding:10px 12px;font-size:14px;color:var(--ink);background:var(--surface);font-weight:400}.form-field input[type=checkbox]{width:17px;min-height:17px}.form-field textarea{min-height:90px;resize:vertical}.form-field small{font-weight:400;color:var(--muted);line-height:1.5}.check-label{display:flex;align-items:flex-start;gap:9px;line-height:1.5;font-size:12px;margin:15px 0}.check-label input{margin-top:3px;accent-color:var(--primary)}.form-error{padding:11px 13px;background:var(--red-soft);color:var(--red);border-radius:7px;margin-bottom:15px;font-size:13px}.form-error:empty{display:none}.signed{display:flex;align-items:center;gap:9px;padding:15px 0;border-top:1px solid var(--line);font-size:12px}.signed small{display:block;color:var(--muted)}.signed .badge{margin-left:auto}.count-input{max-width:95px;border:1px solid var(--line-cdd5e1);border-radius:6px;padding:9px;width:100%;font-size:14px}.steps{display:flex;gap:0;margin:21px 0}.step{position:relative;flex:1;text-align:center;color:var(--muted);font-size:11px;padding:0 5px}.step:before{content:"";height:1px;background:var(--line);position:absolute;left:0;right:0;top:16px;z-index:0}.step:first-child:before{left:50%}.step:last-child:before{right:50%}.step i{position:relative;width:33px;height:33px;border-radius:50%;background:var(--surface-2-eef1f6);display:flex;align-items:center;justify-content:center;margin:0 auto 8px;color:var(--muted-6b7a90);font-style:normal;border:4px solid var(--surface)}.step.active i{background:var(--primary);color:var(--on-primary)}.step.done i{background:var(--green-soft);color:var(--green)}.step b{display:block}.step svg{width:15px;height:15px}.record{padding:17px 0;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:flex-start}.record:last-child{border:0}.record p{font-size:13px}.record small{color:var(--muted);display:block;margin-top:4px}.record .spacer{flex:1}.record-list{padding:0 22px}.fact-row{display:flex;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid var(--line-soft-e9edf3)}.fact-row.total{font-weight:700;border-top:1px solid var(--line);border-bottom:0;margin-top:8px;font-size:16px}.big-value{font-size:27px;font-weight:720;letter-spacing:-.025em;margin:5px 0}.subtle-rule{border:0;border-top:1px solid var(--line);margin:20px 0}.progress-track{width:90px;max-width:100%;height:4px;background:var(--surface-2-edf0f5);border-radius:4px;margin-top:7px;overflow:hidden}.progress-track span{display:block;height:100%;background:var(--primary);border-radius:4px}.progress-track.low span{background:var(--amber-strong-c78321)}
.cashier-layout{display:grid;grid-template-columns:minmax(0,1fr) 326px;gap:25px;align-items:start}.cashier-top{display:flex;justify-content:space-between;gap:15px;margin-bottom:20px;flex-wrap:wrap}.menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.product{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:0;text-align:left;overflow:hidden;color:var(--ink);position:relative;transition:border-color .18s,box-shadow .18s}.product:hover{border-color:var(--accent-border-8ca2ed);box-shadow:0 5px 15px var(--shadow-color-1622380a)}.product-image{width:100%;aspect-ratio:4/3;position:relative;overflow:hidden;background:var(--surface);flex:none}.product img{position:absolute;inset:0;display:block;height:100%;width:100%;object-fit:contain;mix-blend-mode:multiply}.product img[src*="/menu-v2-"]:not([src$="-prima.jpg"]):not([src$="-teh.jpg"]){object-fit:cover}.product-body{width:100%;flex:1;padding:12px 15px 16px;border-top:1px solid var(--line-soft-f0f2f6)}.product-body h3{font-size:14px;margin-bottom:5px}.product-body p{font-size:11px;color:var(--muted);min-height:32px;margin-bottom:11px}.product-price{font-weight:650;font-size:14px;display:flex;align-items:center;justify-content:space-between}.add-mark{display:flex;justify-content:center;align-items:center;background:var(--blue-soft);color:var(--accent-text);width:25px;height:25px;border-radius:6px;font-size:18px}.cart{position:sticky;top:18px}.cart-items{padding:0 19px;max-height:340px;overflow-y:auto}.cart-item{padding:18px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;font-size:12px}.cart-item strong{display:block;margin-bottom:7px}.quantity{display:flex;align-items:center;gap:10px}.quantity button{width:36px;height:36px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--ink)}.cart-bottom{padding:18px 19px}.cart-note{font-size:11px;color:var(--muted);text-align:center;margin-top:11px}.login-shell{display:grid;grid-template-columns:minmax(280px,440px) 1fr;gap:40px;align-items:center;max-width:980px;margin:32px auto}.login-intro{padding:24px 12px}.login-intro h2{font-size:31px;line-height:1.3;letter-spacing:-.025em;margin-bottom:20px}.login-intro p{color:var(--muted);margin-bottom:20px}.login-fact{display:flex;align-items:center;gap:13px;margin:19px 0;color:var(--ink);font-size:13px}.receipt{max-width:340px;margin:0 auto;font-size:13px}.receipt-center{text-align:center}.receipt-thanks{padding:8px 0}.receipt-center h2{font-size:25px}.receipt-line{display:flex;justify-content:space-between;gap:12px;margin:11px 0}.dash-rule{border:0;border-top:1px dashed var(--line-c1cad7);margin:19px 0}.pay-methods{display:flex;gap:10px;margin-bottom:17px}.pay-methods label{flex:1;display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:14px;border-radius:8px;font-size:13px}.pay-methods label:has(input:checked){background:var(--blue-soft);border-color:var(--accent-border-8da4f5);color:var(--accent-text-2844a7)}.pay-methods input{accent-color:var(--primary)}.pay-total{font-size:32px;font-weight:720;margin:8px 0 20px;letter-spacing:-.025em}.profile-strip{display:flex;align-items:center;gap:13px;margin-bottom:23px}.profile-strip .avatar{width:48px;height:48px;font-size:15px}.profile-strip h2{margin-bottom:4px}.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:18px 0}.status-grid small{display:block;color:var(--muted);margin-bottom:6px}.status-grid strong{font-size:17px}.timeline-item{position:relative;padding:0 0 20px 23px;border-left:1px solid var(--line);margin-left:6px;font-size:12px}.timeline-item:before{content:"";position:absolute;left:-4px;top:3px;background:var(--accent-border-879ccd);width:7px;height:7px;border-radius:50%}.timeline-item:last-child{padding-bottom:0;border:0}.timeline-item small{display:block;color:var(--muted);margin-top:4px}.salary-line{display:flex;align-items:center;gap:15px;padding:17px 0;border-bottom:1px solid var(--line)}.salary-line .spacer{flex:1}.calendar-row{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:18px 0}.calendar-day{padding:12px 3px;text-align:center;background:var(--surface-2-f5f7fb);border-radius:8px;font-size:11px;color:var(--muted)}.calendar-day b{display:block;font-size:17px;margin-top:4px;color:var(--ink)}.calendar-day.marked{background:var(--blue-soft);color:var(--accent-text-294bbc)}.calendar-day.marked b{color:var(--accent-text-294bbc)}.compare td{vertical-align:top;line-height:1.65}.compare th{font-size:12px}.compare .claim{min-width:125px}.bullet-list{padding-left:19px;color:var(--muted);font-size:13px;line-height:1.9}.bullet-list li{margin:5px 0}.body-copy{line-height:1.8;color:var(--muted);font-size:13px}.body-copy strong{color:var(--ink)}
dialog{border:0;border-radius:15px;padding:0;max-width:580px;width:calc(100% - 32px);max-height:90dvh;box-shadow:0 28px 90px var(--shadow-color-0e193044);color:var(--ink);background:var(--surface);overflow:auto}dialog::backdrop{background:var(--overlay-dialog-12203970)}.dialog-head{padding:21px 25px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:var(--surface);z-index:1}.dialog-head h2{font-size:20px}.dialog-content{padding:23px 25px}.dialog-footer{display:flex;gap:10px;justify-content:flex-end;margin-top:21px}#toast{display:none;position:static;max-width:100%;width:100%;background:var(--blue-soft);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin:0 0 20px;font-size:13px;line-height:1.6;overflow-wrap:anywhere}#toast>span{flex:1;min-width:0}#toast .icon-btn{flex:none}#toast.show{display:flex;align-items:center;gap:12px}.backdrop{display:none}.permission-note{padding:50px 25px;text-align:center}.mobile-only{display:none}.photo-proof{padding:18px;background:var(--bg);border-radius:8px;text-align:center;font-size:12px}.photo-proof svg{width:31px;height:31px;margin-bottom:8px}.photo-proof strong{display:block}.photo-proof small{display:block;color:var(--muted);margin-top:5px}.photo-proof video{width:100%;max-height:220px;border-radius:6px}.photo-proof img{width:100%;max-height:220px;object-fit:contain}
@media(min-width:1500px){.content{padding-left:44px;padding-right:44px}.task{padding:26px 23px}}
@media(max-width:1200px){.sidebar{width:185px}.main-shell{margin-left:185px}.content{padding:26px 23px}.topbar{padding:0 23px}.brand{font-size:24px;padding-left:6px}.nav button{padding:12px 10px;gap:10px}.workspace-grid{gap:18px;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr)}.task{gap:11px;padding:20px 14px}.task-side{min-width:100px}.task-side>span:last-child{display:none}.cashier-layout{grid-template-columns:minmax(0,1fr) 290px;gap:18px}.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.role-select{min-width:165px}.breadcrumb{display:none}}
@media(max-width:1000px){.task-side{display:none}.two-col{grid-template-columns:1fr}.workspace-grid{grid-template-columns:minmax(0,1.2fr) minmax(275px,1fr)}.summary-strip{gap:17px}.summary-strip>div{padding-right:17px;gap:6px}.summary-strip strong{font-size:20px}.summary-strip span{font-size:12px}.data-table th,.data-table td{padding-left:16px;padding-right:16px}.login-shell{grid-template-columns:1fr;max-width:490px}.login-intro{display:none}.topbar{gap:10px}.selector{min-width:140px}.top-right{gap:8px}.role-select{min-width:150px}.demo-top{display:none}}
@media(max-width:800px){.sidebar{transform:translateX(-100%);transition:transform .18s;width:230px}.sidebar.open{transform:translateX(0)}.main-shell{margin-left:0}.mobile-menu{display:inline-flex}.topbar{height:68px;padding:0 18px}.mobile-only{display:block}.backdrop.open{display:block;position:fixed;inset:0;background:var(--overlay-drawer-10213970);z-index:25}.content{padding:25px 20px 35px}.workspace-grid{grid-template-columns:1fr 1fr}.task{min-height:120px}.task-icon{display:none}.footer-line{flex-wrap:wrap}.cashier-layout{grid-template-columns:minmax(0,1fr) 300px}.summary-strip{gap:20px}.page-heading h1{font-size:27px}.top-right .avatar{display:none}}
@media(max-width:600px){body{font-size:14px}.content{padding:23px 16px 30px}.topbar{padding:0 12px;gap:6px}.top-left{gap:5px}.selector{min-width:0;width:151px}.selector select{font-size:12px;padding-left:9px;padding-right:22px}.role-select{width:142px}.top-right{gap:3px}.top-right .icon-btn{display:none}.page-heading{gap:10px;margin-bottom:22px}.page-heading h1{font-size:26px}.page-heading p{font-size:12px;max-width:40ch}.page-heading>.actions{flex-shrink:0}.page-heading>.actions .button{padding:9px 10px;font-size:11px}.page-heading .demo-tag{display:none}.summary-strip{gap:10px;padding-bottom:22px;align-items:stretch}.summary-strip>div{padding-right:10px;display:block;flex:1}.summary-strip strong{font-size:23px;display:block}.summary-strip span{font-size:11px;display:block;margin-top:3px}.workspace-grid{grid-template-columns:1fr;gap:19px}.task{padding:19px 15px;gap:13px;min-height:99px}.task-icon{display:flex;width:36px;height:36px;border-radius:9px}.task-text strong{font-size:13px}.task-text small{font-size:11px}.task-side{display:none}.evidence-panel{padding:20px}.evidence-panel h2{font-size:18px}.filters{gap:6px}.filter{font-size:11px;padding:8px 10px}.outlet-panel{margin-top:21px}.panel-head{padding:17px 18px}.panel-head h2{font-size:17px}.data-table th,.data-table td{padding:13px 15px}.data-table{min-width:550px}.data-table.compact{min-width:0}.data-table.compact td,.data-table.compact th{padding:12px 10px;font-size:11px}.data-table.compact .count-input{font-size:14px;padding:9px 7px}.data-table .optional{display:none}.cashier-layout{grid-template-columns:1fr}.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.product-body{padding:12px}.product-body p{font-size:10px;min-height:30px}.product-price{font-size:13px}.cart{position:static;margin-top:3px}.cart-items{max-height:none}.cashier-top{gap:11px}.cashier-top>.search{width:100%}.form-grid{grid-template-columns:1fr 1fr;gap:12px}.two-col{gap:20px}.panel-pad{padding:19px}.tabs{gap:20px;margin-bottom:22px}.tab{font-size:12px}.status-grid{gap:15px}.profile-strip{margin-bottom:20px}.profile-strip h2{font-size:18px}.record-list{padding:0 17px}.salary-line{gap:10px;flex-wrap:wrap}.salary-line .actions{width:100%;margin-left:42px}.salary-line .actions .button{min-height:35px}.login-shell{margin:0;gap:0}.dialog-head{padding:18px 20px}.dialog-content{padding:19px 20px}.dialog-head h2{font-size:18px}.check-label{font-size:12px}.footer-line{font-size:10px}.steps{margin:18px 0}.step{font-size:10px}.step i{width:30px;height:30px}.compare{min-width:600px}.button{min-height:43px}.fact-row{font-size:13px}.fact-row.total{font-size:15px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Final review: continuous briefing desk, inspectable evidence, inclusive navigation. */
.content.workspace-view{padding:0;background:var(--surface);max-width:none}.briefing-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(365px,1fr);align-items:stretch}.briefing-inbox{padding:27px 23px 24px 30px}.briefing-inbox .page-heading{margin-bottom:21px;display:block}.briefing-inbox .page-heading h1{font-size:38px;line-height:1.18;letter-spacing:-.035em}.briefing-inbox .page-heading p{font-size:13px}.briefing-inbox .demo-tag{display:none}.briefing-inbox .summary-strip{padding-bottom:20px;margin-bottom:0;gap:16px}.briefing-inbox .summary-strip>div{padding-right:16px;gap:7px}.briefing-inbox .summary-strip span{font-size:11px}.briefing-inbox .summary-strip strong{font-size:21px}.briefing-inbox .task-list{border-radius:5px}.briefing-inbox .task{padding:18px 14px;gap:12px;min-height:112px}.briefing-inbox .task-icon{width:43px;height:43px;border-radius:50%;display:flex}.briefing-inbox .task-text strong{font-size:13px;line-height:1.5}.briefing-inbox .task-text small{font-size:11px;line-height:1.6}.briefing-inbox .task-owner{width:105px;flex:none;font-size:11px;align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:5px;border-left:1px solid var(--line);padding-left:12px}.task-owner small,.task-side>small{font-size:10px;color:var(--muted)}.briefing-inbox .task-side{display:flex;min-width:0;width:143px;gap:5px;border-left:1px solid var(--line);padding-left:12px;align-self:stretch;justify-content:center}.briefing-inbox .task-side b{font-size:11px;line-height:1.5;font-weight:550}.briefing-inbox .task-side .badge{font-size:10px;padding:4px 6px}.briefing-inbox .task-side>span:last-child{display:inline-flex}.task.selected{box-shadow:none}.briefing-evidence{border-left:1px solid var(--line);padding:28px 25px 24px;background:var(--surface)}.evidence-panel h2{margin:0 0 10px;line-height:1.45}.briefing-evidence h2{font-size:21px}.detail-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:12px;margin-bottom:15px}.briefing-evidence>p{font-size:12px;line-height:1.65;margin-bottom:15px}.briefing-evidence .definition>div{padding:10px 0}.briefing-evidence .detail-label{margin:17px 0 3px;font-size:12px}.briefing-evidence .signed{padding:12px 0}.briefing-evidence .next-step{margin-top:12px}.proof-card{display:flex;align-items:center;gap:14px;padding:12px;border:1px solid var(--line);border-radius:5px;margin-top:16px}.proof-card img{width:74px;height:96px;object-fit:cover;border:1px solid var(--line);background:var(--bg)}.proof-card strong{font-size:12px}.proof-card p{font-size:11px;color:var(--muted);margin:7px 0 10px}.proof-large{display:block;width:200px;max-width:100%;height:auto;margin:0 auto 20px}.evidence-record{border:1px solid var(--line);border-radius:5px;padding:14px;margin:16px 0}.evidence-record h3{font-size:12px;margin-bottom:8px}.evidence-record p{font-size:12px;color:var(--muted);line-height:1.7}.briefing-bottom{border-top:1px solid var(--line);padding:0 25px 0 30px}.briefing-bottom .outlet-panel{margin-top:0;border:none;border-radius:0}.briefing-bottom .panel-head{padding:18px 0 12px;border:0}.briefing-bottom .panel-head h2{font-size:15px}.briefing-bottom .data-table th,.briefing-bottom .data-table td{padding:9px 12px;font-size:11px}.briefing-bottom .data-table td small{font-size:10px}.briefing-bottom .outlet-name{font-size:12px}.briefing-bottom .data-table .button{padding:5px 10px;min-height:31px;font-size:10px}.briefing-bottom .footer-line{margin-top:17px;padding-bottom:18px}.sidebar-close{position:absolute;right:8px;top:7px;color:var(--on-dark)}.table-hint{display:none}.table-scroll:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}.evidence-panel:focus-visible{outline:2px solid var(--accent-text);outline-offset:-3px}main:focus{outline:none}
@media(max-width:1200px){.briefing-grid{grid-template-columns:minmax(0,1.5fr) minmax(310px,1fr)}.briefing-inbox{padding:26px 18px}.briefing-inbox .page-heading h1{font-size:34px}.briefing-inbox .task{display:grid;grid-template-columns:38px minmax(0,1fr) 16px;gap:7px 10px;padding:15px 12px}.briefing-inbox .task-icon{width:38px;height:38px;grid-column:1;grid-row:1/3}.briefing-inbox .task-text{grid-column:2;grid-row:1}.briefing-inbox .task-arrow{grid-column:3;grid-row:1/3}.briefing-inbox .task-owner{width:auto;grid-column:2;grid-row:2;display:block;border:0;padding:0;font-size:11px}.task-owner small{margin-right:5px}.briefing-inbox .task-side{width:auto;grid-column:2;grid-row:3;display:flex;flex-wrap:wrap;flex-direction:row;align-items:center;justify-content:flex-start;border:0;padding:0}.briefing-inbox .task-side>small{display:none}.briefing-evidence{padding:26px 20px}.briefing-inbox .summary-strip{gap:10px}.briefing-inbox .summary-strip>div{padding-right:10px}}
@media(max-width:900px){.briefing-grid{grid-template-columns:1fr}.briefing-evidence{border-left:0;border-top:1px solid var(--line)}.briefing-inbox .task{min-height:113px}.briefing-inbox .page-heading h1{font-size:32px}.briefing-bottom{padding:0 20px}.table-hint{display:block;font-size:11px;color:var(--muted);margin:0;padding:9px 17px;background:var(--bg)}.briefing-inbox .task-side{gap:8px}.briefing-inbox .task-side b{font-size:11px}.briefing-inbox .task-owner{font-size:11px}}
@media(max-width:600px){.briefing-inbox{padding:23px 16px 22px}.briefing-inbox .page-heading h1{font-size:28px}.briefing-inbox .summary-strip span{font-size:11px}.briefing-inbox .summary-strip strong{font-size:23px}.briefing-inbox .summary-strip{gap:10px}.briefing-inbox .task-side b{font-size:10px}.briefing-evidence{padding:23px 20px}.briefing-bottom{padding:0 16px}.briefing-evidence h2{font-size:20px}.compare,.compare tbody,.compare tr,.compare td{display:block;min-width:0;width:100%}.compare thead{display:none}.compare tr{padding:15px 18px;border-bottom:1px solid var(--line)}.compare tr:last-child{border:0}.compare td{padding:8px 0!important;border:0;white-space:normal;overflow-wrap:anywhere;font-size:12px}.compare td.claim{font-weight:700;font-size:15px;padding-top:0!important}.compare td:not(.claim):before{content:attr(data-label);display:block;font-size:10px;color:var(--muted);margin-bottom:5px;font-weight:650}.compare td:last-child{padding-bottom:0!important}}

/* Fraud Shield inherits the briefing surface: concrete records and a working evidence panel. */
.fraud-toolbar{display:flex;align-items:center;gap:24px;padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:22px}.fraud-toolbar .form-field{width:210px;margin:0;flex:none}.fraud-toolbar p{font-size:13px}.fraud-toolbar small{display:block;color:var(--muted);margin-top:5px}.fraud-summary{display:flex;gap:24px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:0 0 18px}.fraud-summary b{color:var(--ink);font-variant-numeric:tabular-nums}.fraud-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:22px;align-items:start}.fraud-layout>*{min-width:0}.fraud-list{overflow:hidden}.fraud-pattern{display:flex;align-items:center;gap:13px;background:var(--surface);width:100%;text-align:left;padding:20px 18px;border-bottom:1px solid var(--line);color:var(--ink)}.fraud-pattern:last-child{border:0}.fraud-pattern:hover{background:var(--bg)}.fraud-pattern.selected{background:var(--blue-soft)}.fraud-pattern>span:nth-child(2){flex:1;min-width:0}.fraud-pattern strong{display:block;font-size:14px}.fraud-pattern small{display:block;color:var(--muted);font-size:12px;margin-top:5px;line-height:1.6}.fraud-pattern-status{display:flex;align-items:center;gap:8px;flex:none}.fraud-pattern-status svg{width:16px}.fraud-pattern .task-icon{width:36px;height:36px;border-radius:50%;display:flex}.fraud-layout .evidence-panel>p{font-size:13px;line-height:1.7}.fraud-layout .evidence-panel{padding:24px}.fraud-ladder{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;padding:0;margin:22px 0;border:1px solid var(--line);border-radius:7px;overflow:hidden}.fraud-ladder li{padding:12px 10px;background:var(--bg);border-right:1px solid var(--line)}.fraud-ladder li:last-child{border:0}.fraud-ladder li.current{background:var(--blue-soft);color:var(--accent-text)}.fraud-ladder b{font-size:12px}.fraud-ladder small{display:block;font-size:11px;margin-top:3px}.fraud-section-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:24px}.fraud-section-heading small{color:var(--muted);font-size:11px}.fraud-record{display:flex;align-items:center;gap:10px;background:var(--surface);width:100%;text-align:left;padding:16px 0;border-bottom:1px solid var(--line);color:var(--ink)}.fraud-record:hover{background:var(--bg)}.fraud-record>span:first-child{flex:1;min-width:0}.fraud-record strong{font-size:13px;display:block}.fraud-record small{font-size:11px;color:var(--muted);display:block;margin-top:5px;overflow-wrap:anywhere}.fraud-record svg{width:16px}.fraud-pairs{margin-top:22px}.fraud-pairs .panel-head{flex-wrap:wrap;gap:8px}.fraud-pair{display:flex;justify-content:space-between;gap:20px;padding:5px 0 18px}.fraud-pair h3{font-size:14px}.fraud-pair p,.fraud-pair small{color:var(--muted);font-size:12px;display:block;margin-top:4px}.fraud-pair>div:last-child{flex:none}.fraud-case-filters{display:grid;grid-template-columns:170px minmax(200px,1fr) minmax(160px,1fr);gap:15px;margin-bottom:20px}.fraud-case-filters .form-field{margin:0}.fraud-case-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.fraud-history{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.fraud-history h3{font-size:14px}.fraud-history p{font-size:13px;line-height:1.7;margin-top:9px;overflow-wrap:anywhere}.fraud-history .record{padding:15px 0}.fraud-alert{padding:20px 0;border-bottom:1px solid var(--line)}.fraud-alert:last-child{border:0}.fraud-alert h3{font-size:14px}.fraud-alert p{font-size:13px;margin-top:5px}.fraud-alert small{display:block;color:var(--muted);margin-top:7px}.fraud-alert .actions{margin-top:13px;flex-wrap:wrap}.fraud-followup{padding-bottom:15px}.fraud-followup p{font-size:12px;color:var(--muted);margin-top:8px}.fraud-demo-load{margin-bottom:22px}.fraud-view .definition dd{overflow-wrap:anywhere}.fraud-view .tabs{flex-wrap:wrap}.fraud-view .notice{overflow-wrap:anywhere}
@media(max-width:1200px){.fraud-pattern{flex-wrap:wrap;gap:10px}.fraud-pattern-status{width:100%;justify-content:space-between;padding-left:46px}.fraud-layout{gap:18px}.fraud-layout .evidence-panel{padding:21px}.fraud-case-actions .button{width:100%}}
@media(max-width:900px){.fraud-layout{grid-template-columns:1fr}.fraud-pattern-status{width:auto;padding:0}.fraud-pattern{flex-wrap:nowrap}.fraud-case-filters{grid-template-columns:1fr 1fr}.fraud-case-filters>label:last-child{grid-column:1/-1}.fraud-case-actions .button{width:auto}}
@media(max-width:600px){.fraud-toolbar{display:block;padding:16px}.fraud-toolbar .form-field{width:100%}.fraud-toolbar p{margin-top:12px;font-size:12px}.fraud-toolbar small{font-size:11px}.fraud-summary{gap:8px 16px;font-size:12px}.fraud-pattern{padding:17px 14px;flex-wrap:wrap}.fraud-pattern strong{font-size:13px}.fraud-pattern small{font-size:11px}.fraud-pattern-status{width:100%;padding-left:46px}.fraud-case-filters{grid-template-columns:1fr}.fraud-case-filters>label:last-child{grid-column:auto}.fraud-layout .evidence-panel{padding:19px 17px}.fraud-ladder li{padding:10px 8px}.fraud-ladder b{font-size:11px}.fraud-ladder small{font-size:10px}.fraud-pair{display:block}.fraud-pair>div:last-child{margin-top:12px}.fraud-pairs .panel-head small{font-size:11px}.fraud-record{flex-wrap:wrap;gap:8px}.fraud-record>span:first-child{flex-basis:100%}.fraud-record>svg{margin-left:auto}.fraud-case-actions .button{width:100%}.fraud-view .page-heading .actions .button{font-size:11px}.fraud-view .page-heading h1{font-size:26px}}

/* Compact entry: one content-sized panel, short brand header, full-row choices. */
.entry-page{width:min(600px,calc(100% - 32px));margin:48px auto;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}
.entry-brand{background:var(--navy);color:var(--on-dark);padding:20px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px}.entry-brand .brand{padding:0}.entry-brand-caption{color:var(--on-dark-muted-c3cee1);font-size:12px}.entry-panel{padding:28px 32px;min-width:0}.entry-panel h1{font-size:28px;line-height:1.25;letter-spacing:-.025em;margin-bottom:8px}.entry-description{color:var(--muted);font-size:14px;line-height:1.5;margin-bottom:24px}.entry-panel .entry-back{min-height:44px;padding:0;margin:-12px 0 12px}.entry-choices{display:grid;gap:12px}.entry-choice{display:flex;gap:16px;align-items:center;width:100%;padding:20px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:8px;color:var(--ink)}.entry-choice:hover{border-color:var(--accent-text);background:var(--blue-soft)}.entry-choice-icon{color:var(--accent-text);flex:none}.entry-choice-icon svg{width:24px;height:24px}.entry-choice-copy{flex:1;min-width:0}.entry-choice strong{font-size:18px;display:block;line-height:1.35}.entry-choice small{display:block;color:var(--muted);font-size:13px;line-height:1.5;margin-top:4px}.entry-choice-arrow{width:18px;height:18px;color:var(--accent-text);flex:none}.entry-panel form .button.full{min-height:48px;margin-top:16px;font-size:14px}.entry-panel .form-field{margin-bottom:16px}.entry-panel .form-field input,.entry-panel .form-field select{min-height:48px;font-size:16px}.entry-panel .form-field:has(input[name=pin]){margin-bottom:8px}.entry-panel .helper{margin-top:0;line-height:1.5}.entry-account-note{color:var(--muted);font-size:13px;line-height:1.5;margin:-8px 0 16px}.entry-footnote{font-size:12px;line-height:1.5;color:var(--muted);margin-top:16px}.entry-demo-note{display:flex;gap:8px;align-items:flex-start;border-top:1px solid var(--line);padding-top:16px;margin-top:20px;color:var(--muted);font-size:12px;line-height:1.5}.entry-demo-note svg{flex:none;width:16px;height:16px;margin-top:1px}
.account-summary{display:flex;gap:9px;align-items:center;max-width:210px;font-size:12px;line-height:1.5}.account-summary small{display:block;color:var(--muted);font-size:10px}.outlet-current{font-size:13px;color:var(--muted)}
@media(max-width:1100px){.account-summary .avatar{display:none}.topbar{padding-left:20px;padding-right:20px}.top-right{gap:10px}}
@media(max-width:800px){.account-summary{max-width:130px}.top-right>.button span{display:none}.top-right>.button{min-width:44px;min-height:44px}.top-right>.icon-btn{display:none}}
@media(max-width:480px){.entry-page{margin:16px auto}.entry-panel{padding:24px 20px}.entry-brand{padding:16px 20px}.entry-panel h1{font-size:24px}.entry-description{margin-bottom:20px}.entry-choice{padding:16px;gap:12px}.entry-choice-icon svg{width:22px;height:22px}.entry-choice strong{font-size:17px}.outlet-current{display:none}}
@media(max-width:600px){.page-heading{flex-wrap:wrap;gap:16px}.page-heading>.actions{flex-wrap:wrap;max-width:100%}}

/* Explicit sample shift setup keeps normal login and handover separate. */
.cashier-setup{margin-bottom:20px}.cashier-setup .actions{margin-top:16px;flex-wrap:wrap}.cashier-setup .button{min-height:44px}

/* Cash shortcuts update the received amount; they never submit a payment. */
.cash-amounts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:-4px 0 16px}.cash-amounts .button{min-height:44px;padding:10px 8px;white-space:nowrap}.cash-amounts [aria-pressed=true]{background:var(--blue-soft);border-color:var(--accent-text);color:var(--accent-text)}.cash-change{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;background:var(--green-soft);color:var(--green);border-radius:8px;margin-bottom:20px;font-size:14px}.cash-change strong{font-size:22px}.cash-change.short{background:var(--amber-soft);color:var(--amber)}#cash-fields input{font-size:16px;min-height:48px}#qris-fields .check-label{margin:16px 0 20px;min-height:44px}
@media(max-width:480px){.cash-amounts{grid-template-columns:repeat(2,minmax(0,1fr))}.cash-change{padding:12px}.cash-change strong{font-size:20px}}

.qris-state{padding:16px;border:1px solid var(--line);border-radius:8px;margin-bottom:20px}.qris-state p{font-size:13px;line-height:1.6;margin:0 0 16px}.qris-state small,.qris-preview small{display:block;color:var(--muted);font-size:12px;line-height:1.5;margin-top:12px}.qris-state .badge{margin-bottom:12px}.qris-preview{text-align:center;padding:12px 0 16px}.qris-preview>svg{display:block;width:160px;height:160px;margin:0 auto 12px}.qris-preview p{font-size:13px;margin-top:8px}.qris-preview small{margin-top:4px}.qris-demo-actions{display:grid;gap:8px;margin-bottom:20px}.qris-demo-actions .button,.qris-state .button{min-height:44px}.dialog-footer [type=submit][hidden]{display:none}

.outlet-profile{margin-bottom:22px}.workspace-view .outlet-profile{margin:24px 30px 0;border-radius:var(--radius)}@media(max-width:600px){.workspace-view .outlet-profile{margin:14px 14px 0}.profile-grid{gap:16px}}.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px 26px}.profile-grid h3{font-size:13px;margin-bottom:6px;letter-spacing:.2px}.profile-grid .record{padding:11px 0}.profile-grid .timeline-item{padding-top:8px;padding-bottom:8px;font-size:13px}.profile-grid .timeline-item small{display:block;color:var(--muted);font-size:11px}

.record small.red-text,.fraud-record small.red-text{color:var(--red)}
.product.habis{opacity:.55}.product.habis .product-image{filter:grayscale(1)}.cart-sticky{display:none}@media(max-width:800px){.cart-sticky{display:flex;position:sticky;bottom:0;z-index:5;align-items:center;justify-content:space-between;gap:12px;margin:0 -16px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -6px 18px var(--shadow-color-rgba)}.cart-sticky>div{display:flex;flex-direction:column;gap:2px;font-size:13px}.cart-sticky .num{font-weight:700;font-size:15px}.cart-sticky .button{width:auto}}
@media(max-width:600px){.tabs{flex-wrap:wrap;gap:4px 18px}}
.check-label{min-height:44px;display:flex;align-items:center;gap:10px}@media(max-width:800px){.button.small,.button.ghost,.outlet-name,.filter,.icon-btn{min-height:44px}.icon-btn{min-width:44px}.quantity button{width:44px;height:44px}.button.small{padding-top:8px;padding-bottom:8px}}
.briefing-evidence p,.briefing-evidence dd,.briefing-evidence h2,.evidence-record p,.evidence-record li,.task-text strong,.task-text small{overflow-wrap:anywhere}

/* Cik'eun 12 Sep 2026: menu dengan pilihan minum, umur stok, jadwal, barcode, pengaturan */
.product.drink{cursor:default;text-align:left}
.product.drink .product-body{display:flex;flex-direction:column;gap:6px}
.drink-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.drink-row .button{min-height:40px;padding:6px 10px;font-size:13px}
.product.habis .drink-row .button{opacity:.6}
.age-red td{background:var(--red-soft-rgba)}
.age-red td:first-child{box-shadow:inset 4px 0 0 var(--red-d64545)}
.sched-table td{text-align:center}
.sched{display:inline-flex;align-items:center;justify-content:center;min-width:64px;min-height:36px;padding:4px 10px;border-radius:10px;font-size:13px;font-weight:600;border:1px solid transparent;background:var(--surface-2-eef3f8);color:var(--ink-2b3a4f);cursor:default}
button.sched{cursor:pointer}
.sched.off{background:var(--amber-soft-fff1e6);color:var(--amber-9a4a00);border-color:var(--amber-border-f3c9a3)}
.sched.izin{background:var(--accent-soft-e8f0ff);color:var(--accent-text-1d4ed8)}
.sched.ajukan{background:var(--amber-soft-fff8dc);color:var(--amber-8a6d00)}
.barcode{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px;border:1px dashed #c8d2de;border-radius:12px;background:#fff;margin:6px 0 14px}
.barcode svg{width:100%;max-width:360px;height:56px}
.barcode code{font-size:13px;letter-spacing:.06em}
.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px 12px;margin:6px 0 12px}
.recipe-grid .form-field{margin:0}
.check-grid{display:flex;flex-wrap:wrap;gap:6px 16px}
fieldset.form-field{border:1px solid var(--line-d9e0e8);border-radius:12px;padding:10px 14px}
fieldset.form-field legend{padding:0 6px;font-size:13px;color:var(--ink-4a5a6f)}
form[data-form=master-staff] input[name=nikMode]{width:18px;height:18px;min-height:18px;flex:none;padding:0;margin:0}
.count-input.wide{width:110px}
.entry-accounts{margin-top:18px}
.entry-accounts summary{cursor:pointer;font-weight:600;color:var(--accent-text-1f4fd8);padding:8px 0}
.entry-accounts table{font-size:13px}
tr.muted td{opacity:.6}
@media(max-width:600px){.recipe-grid{grid-template-columns:1fr 1fr}.drink-row .button{flex:1}}
.calendar-day{min-width:0;overflow:hidden}
.calendar-day small{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
@media(max-width:480px){.calendar-row{gap:4px}.calendar-day{padding:10px 2px}.calendar-day b{font-size:15px}}

/* 13 Sep: halaman masuk diketengahkan; ukuran teks per perangkat (zoom) */
#app:has(> .entry-page){min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:16px 0;box-sizing:border-box}
#app:has(> .entry-page) .entry-page{margin:0 auto}
html[data-teks="besar"]{zoom:1.18}
html[data-teks="sangat"]{zoom:1.38}
.teks-row{display:flex;align-items:center;gap:6px;padding:6px 13px 4px;color:var(--on-dark-muted-abbad0);font-size:12px}
.teks-row span{flex:1}
.teks-row button{min-width:40px;min-height:40px;border-radius:8px;border:1px solid var(--nav-line-2c3d5c);background:transparent;color:var(--on-dark-muted-dfe6f3);font-weight:700;line-height:1}
.teks-row button[aria-pressed="true"]{background:var(--chip-active-bg);border-color:var(--accent-text);color:var(--on-primary)}
.teks-row button.b1{font-size:12px}.teks-row button.b2{font-size:15px}.teks-row button.b3{font-size:18px}
.entry-panel .teks-row{color:var(--muted);padding:14px 0 0;border-top:1px solid var(--line);margin-top:14px}
.entry-panel .teks-row button{border-color:var(--line);color:var(--ink)}
.entry-panel .teks-row button[aria-pressed="true"]{color:var(--on-primary)}
.two-col>*,.section-stack>*,.panel,.record,.record>.spacer,.briefing-grid>*{min-width:0}
.record{flex-wrap:wrap}
.record .actions{flex-wrap:wrap}
.topbar,.top-right{flex-wrap:wrap;min-width:0}
.top-right{justify-content:flex-end;row-gap:8px}
.account-summary{min-width:0}
.account-summary>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}
.selector select{max-width:150px}
.topbar{height:auto;min-height:68px;padding-top:8px;padding-bottom:8px}

/* Penanda satu minuman; pilihan merek tetap melalui tombol kartu. */
.product .drink-visual{position:absolute;right:7px;bottom:7px;display:flex;align-items:center;gap:5px;padding:6px 8px;background:var(--surface);color:var(--ink-17384d);border:1px solid var(--line-d6e3ed);border-radius:9px;box-shadow:0 2px 5px var(--shadow-color-142c4012);pointer-events:none}.product .drink-visual svg{width:18px;height:18px;flex:none}.product .drink-visual span{font-size:11px;font-weight:700;line-height:1.2;white-space:nowrap}

/* Keep text controls inside the sidebar with a full right gutter. */
.sidebar .teks-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:8px 13px}.sidebar .teks-row>span{grid-column:1/-1;margin-bottom:3px}.sidebar .teks-row button{width:100%;min-width:0;min-height:40px}
@media(min-width:801px){.cashier-layout>.cart{margin-top:var(--cart-offset,0px);height:var(--cart-height,480px);display:flex;flex-direction:column;overflow:hidden}.cart>.panel-head,.cart>.cart-bottom{flex:none}.cart>.cart-items{flex:1;min-height:0;max-height:none;overscroll-behavior:contain}.cart>.cart-bottom{margin-top:auto}.cart>.empty{min-height:0;overflow:auto}}
@media(max-width:800px){.cashier-layout{grid-template-columns:1fr}.cashier-layout>.cart{position:static;height:auto;margin-top:3px}.cart-items{max-height:none}}

.cart>.panel-head{flex-wrap:wrap;gap:10px}.cart>.panel-head h2{margin-right:auto}.cart>.panel-head [data-action="cart-clear"]{min-height:40px}

.ai-scan{padding:16px;margin-top:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2-fbfcfe)}
.ai-scan h3{font-size:13px;margin-bottom:4px}
.ai-scan .ai-field{display:block;margin:12px 0;font-size:13px;font-weight:600}
.ai-scan .ai-field input{display:block;width:100%;margin-top:6px;font-weight:400}
/* Pemilih berkas bawaan browser disembunyikan; tombol dan nama berkas memakai gaya aplikasi */
.ai-pick{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0}
.ai-pick input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.ai-pick-btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;cursor:pointer}
.ai-pick:focus-within .ai-pick-btn{border-color:var(--accent-border-8ca2ed);box-shadow:0 0 0 3px var(--focus-soft-4361ee22)}
.ai-file-name{flex:1;min-width:140px;font-style:normal;font-size:11px;color:var(--muted)}
.ai-file-name.ada{color:var(--ink);font-weight:600}
.ai-result{margin-top:14px;overflow-wrap:anywhere}.ai-result p{font-size:13px;margin:8px 0}

/* Bantuan AI dibuka dari navigasi; tidak ada tombol mengambang di area kasir. */
.help-panel{position:fixed;right:16px;bottom:16px;width:min(400px,calc(100% - 32px));max-width:calc(100% - 32px);max-height:min(78vh,720px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 48px var(--shadow-color-16223833);z-index:61;overflow:hidden}
.help-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;background:var(--navy-152238);color:var(--on-dark)}
.help-head small{display:block;color:var(--on-dark-muted-c7d2e6);font-size:12px}
.help-notice{display:flex;gap:8px;align-items:flex-start;margin:0;padding:8px 14px;background:var(--amber-soft-fff8dc);color:var(--amber-6b5300);font-size:12px}
.help-notice svg{width:16px;height:16px;flex:none;margin-top:1px}
.help-body{flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:10px;background:var(--surface-2-f5f7fb)}
.help-msg{max-width:92%;padding:10px 12px;border-radius:12px;font-size:13px;line-height:1.55}
.help-msg p{margin:0;white-space:normal}
.help-msg.me{align-self:flex-end;background:var(--blue-soft);color:var(--accent-text-1c2f6e)}
.help-msg.bot{align-self:flex-start;background:var(--surface);border:1px solid var(--line)}
.help-msg.bot small{display:block;color:var(--muted);font-size:11px;margin-bottom:4px}
.help-busy p{color:var(--muted);font-style:italic}
.help-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.help-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 10px;border-radius:999px;border:1px solid var(--accent-border-8da4f5);background:var(--surface-3-eef3ff);color:var(--accent-text-1c3fb5);font-size:12px;font-weight:600;cursor:pointer}
.help-chip.ghost{background:var(--surface);border-color:var(--line);color:var(--ink)}
.help-chip svg{width:14px;height:14px}
.help-fb{display:flex;gap:4px;margin-top:6px}
.help-fb-btn{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-width:36px;min-height:32px;cursor:pointer}
.help-guide{border:1px solid var(--accent-border-8da4f5);background:var(--surface);border-radius:12px;padding:12px}
.help-guide-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px}
.help-guide-head small{color:var(--muted)}
.help-guide-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.help-suggest{display:flex;flex-wrap:wrap;gap:6px;padding:8px 14px 0;background:var(--surface-2-f5f7fb)}
.help-form{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--line);background:var(--surface)}
.help-form input{flex:1;min-height:44px;border:1px solid var(--line);border-radius:10px;padding:0 12px;font-size:14px}
.help-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 14px 10px;background:var(--surface);color:var(--muted);font-size:11px}
.help-log{border-top:1px dashed var(--line);padding:8px 0}
.help-log b{display:block;font-size:13px}
.help-log p{margin:4px 0;font-size:13px;color:var(--ink)}
@media(max-width:600px){.help-panel{left:0;right:0;bottom:0;width:auto;max-width:none;max-height:100dvh;height:100dvh;border-radius:0}}
@media(max-width:600px){.content{padding-bottom:110px}}

/* Bantuan: jarak tepi lebih lega, saran menempel di bawah pesan, aman dari bilah bawah HP */
.help-suggest{display:block;padding:0;background:transparent}
.help-suggest-label{margin:0 0 6px;font-size:12px;color:var(--muted)}
.help-suggest .help-chip{margin:0 6px 6px 0}
.help-body{gap:12px}
@media(max-width:600px){
 .help-head{padding:16px 18px}
 .help-notice{padding:10px 18px;line-height:1.5}
 .help-body{padding:14px 18px 18px}
 .help-msg{max-width:100%}
 .help-form{padding:12px 18px}
 .help-foot{padding:0 18px calc(12px + env(safe-area-inset-bottom,0px))}
 .help-panel{padding-bottom:env(safe-area-inset-bottom,0px)}
}

/* Bagian ayam: kartu menu membuka pemilih; ketersediaan per bagian tampil di kartu */
.bagian-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.bagian-tag{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--surface-2-eef3f8);color:var(--ink-2b3a4f)}
.bagian-tag.kosong{background:var(--amber-soft-fff1e6);color:var(--amber-9a4a00);text-decoration:line-through}
.pilih-mark{width:auto;padding:0 8px;font-size:12px;white-space:nowrap}
.pay-methods.varian{flex-wrap:wrap}.pay-methods.varian label{min-width:calc(50% - 5px);min-height:52px}
.pay-methods.varian label.kosong{opacity:.55}
.pay-methods.varian label span{display:flex;flex-direction:column;gap:2px}.pay-methods.varian label small{font-size:11px;color:var(--muted)}

/* Isian kemasan pada dialog pembayaran */
.pack-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:14px}
.pack-grid .form-field small{color:var(--muted);font-weight:400}

/* Panel stok ayam di layar kasir: siap jual besar, mentah kecil, plus tombol penggorengan */
.cashier-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);margin-bottom:22px}
.cashier-shortcut-group{min-width:0}.cashier-shortcut-group+div{border-left:1px solid var(--line);padding-left:18px}
.cashier-shortcut-group h2{font-size:12px;color:var(--muted);font-weight:600;margin-bottom:10px}
.cashier-shortcut-group>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.cashier-shortcut-group .button{min-width:0;min-height:60px;padding:10px 8px;white-space:normal;overflow-wrap:anywhere;font-size:12px;line-height:1.4}
.cashier-shortcut-group .button svg{flex-shrink:0;width:18px;height:18px}
.stok-ayam-panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:18px}
.stok-ayam-panel header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.stok-ayam-panel h2{font-size:15px;margin:0}.stok-ayam-panel header small{color:var(--muted);font-size:12px}
.stok-ayam-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.stok-bagian{background:var(--green-soft-f1f6f2);border-radius:9px;padding:12px;min-width:0}.stok-bagian h3{font-size:12px;font-weight:600;line-height:1.4;margin:0 0 10px;overflow-wrap:anywhere}
.stok-bagian-jumlah{display:flex;align-items:baseline;gap:5px;flex-wrap:wrap}.stok-bagian b{font-size:26px;line-height:1.2;color:var(--green-17663a)}.stok-bagian span,.stok-bagian small{font-size:11px;color:var(--muted)}.stok-bagian small{display:block;margin-top:6px}
.stok-bagian.kosong{background:var(--amber-soft-fdf1e7)}.stok-bagian.kosong b,.stok-bagian.kosong small{color:var(--amber-9a4a00)}
.stok-goreng{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.stok-goreng>div{min-width:0}.stok-goreng h3{font-size:12px;font-weight:600;margin:0}.stok-goreng .stok-bahan{margin:5px 0 0;line-height:1.6}.stok-goreng .button{min-height:44px;flex-shrink:0;white-space:normal;font-size:12px}
@media(max-width:1400px){.cashier-shortcut-group .button{flex-direction:column;min-height:72px}.stok-goreng{flex-wrap:wrap}.stok-goreng .button{flex:1}}
@media(max-width:1000px){.cashier-shortcuts{grid-template-columns:minmax(0,1fr)}.cashier-shortcut-group+div{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:14px}}
@media(max-width:800px){.stok-ayam-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stok-goreng{flex-wrap:nowrap}.stok-goreng .button{flex:none}}
@media(max-width:520px){.cashier-shortcuts{padding:12px;gap:12px}.cashier-shortcut-group>div{gap:6px}.cashier-shortcut-group .button{padding:9px 5px;font-size:11px}.stok-ayam-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stok-goreng{flex-wrap:wrap}.stok-goreng .button{flex:1}}
.stok-ayam-note{margin-top:10px;font-size:11px;color:var(--amber-9a4a00);background:var(--amber-soft-fdf1e7);border-radius:8px;padding:8px 10px}
@media(max-width:460px){.stok-ayam-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.stok-ayam-panel header{flex-direction:column;align-items:stretch}.stok-ayam-panel header .button{width:100%;justify-content:center}}

/* Pengatur jumlah: tombol besar agar mudah ditekan di HP (spinner bawaan terlalu kecil) */
.qty-stepper{display:flex;align-items:center;gap:6px;margin-top:6px}
.qty-stepper button{flex:none;width:46px;height:46px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center}
.qty-stepper button:hover{border-color:var(--accent-border-8ca2ed);color:var(--accent-text)}
.qty-stepper button:active{background:var(--blue-soft)}
.qty-stepper input{flex:1;min-width:0;height:46px;text-align:center;font-size:17px;font-weight:650;-moz-appearance:textfield;appearance:textfield;margin:0}
.qty-stepper input::-webkit-outer-spin-button,.qty-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.pack-grid .form-field small,.recipe-grid .form-field small{display:block;color:var(--muted);font-size:11px;margin-top:2px}

/* Baris keranjang: tombol + dikunci saat bahan habis, dengan alasan singkat di tempat */
.cart-item .quantity button[disabled]{opacity:.4}
.cart-habis{display:block;margin-top:7px;font-size:11px;color:var(--amber-9a4a00);background:var(--amber-soft-fdf1e7);border-radius:6px;padding:4px 8px}

/* Penggorengan per bungkus: koreksi per bagian dilipat sebagai pengecualian */
.koreksi-bagian{margin:12px 0;border:1px dashed var(--line);border-radius:10px;padding:10px 14px}
.koreksi-bagian summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--accent-text)}
.koreksi-bagian .recipe-grid{margin-top:10px}
.stok-bahan{margin-top:10px;font-size:12px;color:var(--muted)}
.stok-bahan .badge{margin-left:4px}
/* Di layar sempit, koreksi per bagian satu kolom agar angka pada pengatur jumlah tidak terpotong */
@media(max-width:480px){.koreksi-bagian .recipe-grid,.pack-grid{grid-template-columns:1fr}.qty-stepper input{min-width:56px}}

/* Hasil pembacaan foto oleh AI, tampil tepat di bawah kotak bukti */
.ai-result{margin-top:12px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2-fbfcfe);overflow-wrap:anywhere}
.ai-result h4{font-size:13px;margin-bottom:8px}
.ai-result p{display:flex;justify-content:space-between;gap:12px;font-size:12px;margin:6px 0}
.ai-result p.helper{display:block;color:var(--muted)}
.ai-result b{text-align:right}
.ai-result .button{margin-top:10px}
.photo-proof img{width:auto;max-width:100%;max-height:180px;border-radius:8px;margin:0 auto 8px;display:block;object-fit:contain}

/* Ukuran teks besar memakai zoom, sehingga satuan tinggi layar (dvh/vh) ikut membesar dan elemen
   bertinggi penuh meluber ke luar layar. Bagi balik dengan faktor zoom-nya agar tombol tutup dan
   tombol simpan tetap terjangkau. */
html[data-teks="besar"] dialog{max-height:calc(90dvh / 1.18)}
html[data-teks="sangat"] dialog{max-height:calc(90dvh / 1.38)}
html[data-teks="besar"] .help-panel{max-height:calc(78vh / 1.18)}
html[data-teks="sangat"] .help-panel{max-height:calc(78vh / 1.38)}
@media(max-width:600px){
  html[data-teks="besar"] .help-panel{height:calc(100dvh / 1.18);max-height:calc(100dvh / 1.18)}
  html[data-teks="sangat"] .help-panel{height:calc(100dvh / 1.38);max-height:calc(100dvh / 1.38)}
  html[data-teks="besar"] .cart-bar{bottom:0}
}
/* Badge pada kartu menu tidak boleh terpotong saat teks diperbesar */
html[data-teks] .product-price{flex-wrap:wrap;row-gap:6px}
html[data-teks] .add-mark.pilih-mark{white-space:normal}
/* Pilihan Tunai/QRIS melipat saat teks diperbesar atau layar sempit agar dialog tidak meluber */
html[data-teks] .pay-methods{flex-wrap:wrap}
html[data-teks] .pay-methods>label{flex:1 1 100%}
@media(max-width:400px){.pay-methods{flex-wrap:wrap}.pay-methods>label{flex:1 1 100%}}
/* Target sentuh minimal 44 px pada tombol utama dan chip bantuan */
@media(max-width:600px){.button{min-height:44px}.help-chip,.help-suggest button{min-height:44px}}
.help-chip,.help-suggest button{min-height:44px}
/* Ruang bawah agar tombol melayang Bantuan tidak menutupi isi terakhir */
.cart-bottom,.panel-foot,.page-foot{padding-bottom:64px}

/* Rincian bahan yang cocok pada bukti serah terima: dilipat agar selisih mudah dilihat. */
.rincian-cocok{margin:10px 0;border:1px dashed var(--line);border-radius:10px;padding:8px 12px}
.rincian-cocok summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--accent-text)}
.rincian-cocok .definition{margin-top:8px}
/* P0 24 Sep: penanda antrean luring di bilah atas + status lokasi di formulir mulai kerja */
.chip-luring{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:6px 11px;border-radius:999px;border:1px solid var(--amber-border-f3dfbf);background:var(--amber-soft);color:var(--amber);font-size:12px;font-weight:650;white-space:nowrap}
.chip-luring svg{width:15px;height:15px;flex:none}
.chip-luring.mati{background:var(--surface-2-eef1f5);border-color:var(--line);color:var(--muted-586578)}
.chip-luring.tolak{background:var(--red-soft);border-color:var(--red-border-f2c9c9);color:var(--red)}
#status-luring:empty{display:none}
.lokasi-absen{display:flex;align-items:flex-start;gap:10px;padding:12px 13px;border-radius:8px;border:1px solid var(--line);background:var(--surface-2-f7f9fc);font-size:12px;line-height:1.55;margin:4px 0 15px}
.lokasi-absen svg{width:17px;height:17px;flex:none;margin-top:1px}
.lokasi-absen>span{flex:1;min-width:0}
.lokasi-absen small{display:block;color:var(--muted);margin-top:2px}
.lokasi-absen .button{flex:none;min-height:30px}
.lokasi-absen.baik{background:var(--green-soft);border-color:var(--green-border-cfe6d7);color:var(--green)}
.lokasi-absen.buruk{background:var(--red-soft);border-color:var(--red-border-f2c9c9);color:var(--red)}
@media (max-width:600px){.chip-luring span{max-width:150px;overflow:hidden;text-overflow:ellipsis}}
/* Transaksi kantor: filter tanggal + 20 per halaman (rapat 23 Sep) */
.trx-filter{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;margin:0 0 18px}
.trx-filter .form-field{flex:1 1 170px;max-width:240px;margin:0}
.trx-filter .actions{display:flex;gap:8px;flex-wrap:wrap}
.trx-filter .form-error{flex-basis:100%;margin:0}
.trx-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px}
@media (max-width:600px){.trx-filter .form-field{max-width:none;flex-basis:100%}}
/* Profil outlet dilipat (rapat 23 Sep): ringkasan satu baris, rincian dibuka bila perlu */
.outlet-profile>summary{cursor:pointer;list-style:none}
.outlet-profile>summary::-webkit-details-marker{display:none}
.outlet-profile:not([open])>summary{border-bottom:0}
.outlet-profile-toggle{flex:none;font-size:12px;font-weight:600;color:var(--accent-text);white-space:nowrap}
.outlet-profile-toggle::before{content:'Lihat rincian ▾'}
.outlet-profile[open] .outlet-profile-toggle::before{content:'Tutup rincian ▴'}
/* Isian hitung fisik di tabel: − angka + (lebih ringkas dari stepper formulir) */
.qty-stepper.hitung{margin:0;gap:4px;min-width:150px}
.qty-stepper.hitung button{width:40px;height:40px;font-size:20px}
.hitung-sel{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.hitung-sel .sesuai{flex:1 0 auto;min-height:40px;white-space:nowrap}
.qty-stepper.hitung input.count-input{max-width:none;height:40px;min-width:64px;text-align:center;font-weight:650}
/* Laporan keuangan: tiap baris bisa dibuka rinciannya (masukan klien 25 Sep); bawaan tertutup. */
.rinci>summary{display:flex;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid var(--line-soft-e9edf3);font-size:13px;cursor:pointer;list-style:none}
.rinci>summary::-webkit-details-marker{display:none}
.rinci>summary .tanpa-putus::after{content:'';display:inline-block;width:6px;height:6px;margin:0 0 3px 9px;border-right:2px solid var(--accent-text);border-bottom:2px solid var(--accent-text);transform:rotate(45deg)}
.rinci[open]>summary .tanpa-putus::after{transform:rotate(-135deg);margin-bottom:-1px}
.rinci>summary .num{white-space:nowrap}
.rinci-isi{padding:6px 12px 10px;border-bottom:1px solid var(--line-soft-e9edf3);background:var(--surface-2-fafbfc)}
.rinci-isi>div{display:flex;justify-content:space-between;gap:12px;padding:5px 0;font-size:12px;color:var(--muted)}
.rinci-isi>div>span:first-child{min-width:0;overflow-wrap:anywhere}
.rinci-isi>div>.num{white-space:nowrap}
.rinci-isi h4{margin:8px 0 2px;font-size:11px;font-weight:650;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}
/* Paragraf di wadah rata-tengah ikut ke tengah: aturan global p{max-width:72ch} membuat kotaknya menempel kiri di layar lebar. */
:is(.empty,.cart-note,.receipt-center,.permission-note,.photo-proof,.qris-preview,.step,.calendar-day) p{margin-left:auto;margin-right:auto}
/* Sisir tata letak 25 Sep: tombol filter setinggi isian tanggal; ruang di bawah halaman agar tombol Bantuan tidak menutup baris terakhir;
   tabel stok 2:1; kolom pertama tabel di HP tidak terjepit. */
.trx-filter .actions .button{min-height:45px}
.content::after{content:'';display:block;height:64px}
.two-col.lebar-kiri{grid-template-columns:minmax(0,2.2fr) minmax(280px,1fr)}
@media(max-width:1000px){.two-col.lebar-kiri{grid-template-columns:1fr}}
@media(max-width:600px){.content .table-scroll .data-table:not(.hitung) :is(td,th):first-child{min-width:128px}}

/* Ikon (i) arti metrik laporan keuangan + gelembung penjelasannya (masukan Alam 26 Sep). */
.info-tip{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin:-6px 0 -6px 2px;padding:0;border:0;border-radius:50%;background:none;color:var(--muted);vertical-align:middle;cursor:help;flex:none}
.info-tip svg{width:15px;height:15px}
.tanpa-putus{white-space:nowrap}
/* HP: area sentuh 44 px (konvensi .icon-btn) tanpa menggeser tata letak: ::before melebar 8 px ke tiap sisi. */
@media(max-width:800px){.info-tip{position:relative}.info-tip::before{content:'';position:absolute;inset:-8px}}
.info-tip:hover,.info-tip:focus-visible,.info-tip[aria-expanded="true"]{color:var(--accent-text);background:var(--accent-soft-3155d914)}
#tip-metrik{position:fixed;z-index:1000;max-width:min(300px,calc(100vw - 16px));padding:10px 12px;border-radius:10px;background:var(--tooltip-bg);color:var(--tooltip-ink);font-size:13px;line-height:1.45;box-shadow:0 12px 32px var(--shadow-color-0e193040)}

/* POS Melong: rincian sebelum total, rekap thermal tetap terbaca di tablet/HP. */
.payment-lines{margin:16px 0;padding:0 0 12px;border-bottom:1px solid var(--line)}.payment-lines .fact-row{align-items:flex-start;gap:16px;padding:8px 0}.payment-lines .fact-row>span{flex:1;min-width:0}.payment-lines .num{white-space:nowrap}.rekap-thermal{max-width:100%;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.5 ui-monospace,monospace;background:#fff;color:#18243a;padding:16px;border:1px solid #dce2e9;margin:16px 0}
/* Aksi kasir bertambah: tetap terjangkau pada tablet mendatar tanpa melebar keluar layar. */
.page-heading>.actions{min-width:0;flex-wrap:wrap;justify-content:flex-end;max-width:100%}

.dialog-head>.icon-btn{width:44px;height:44px;min-width:44px}
.rekap-actions{flex-wrap:wrap;margin:12px 0}.rekap-actions .button{min-height:44px;max-width:100%;overflow-wrap:anywhere}
@media(min-width:801px) and (max-width:1200px) and (max-height:650px){
  .page-heading{display:block;margin-bottom:16px}
  .page-heading>.actions{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;padding:8px 0;gap:8px}
  .page-heading>.actions>.button{flex-shrink:0;white-space:nowrap;min-height:44px}
}
.page-heading>.actions>.button{min-height:44px}
[data-action="rekap-print"],[data-action="rekap-download"]{min-height:44px}

/* Promo: dua saklar dengan label/status teks, target sentuh minimal 48 px. */
.promo-outlet{max-width:420px;margin-bottom:12px}
.promo-option{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0;border-bottom:1px solid var(--line)}
.promo-option h3{margin:0 0 6px;font-size:16px}
.promo-option .helper{margin:0;max-width:60ch}
.voucher-balance,.promo-balance{margin:20px 0;font-size:16px}
.voucher-quota{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;margin-bottom:14px}
.voucher-quota .form-error{flex-basis:100%}
.voucher-quota .form-error:empty{display:none}
.voucher-quota .button{min-height:44px}
.voucher-quota .form-field{margin:0;min-width:160px;flex:1;max-width:300px}
.voucher-card-quota{font-weight:600;color:var(--ink);margin:10px 0 0}
.promo-switch{display:flex;align-items:center;gap:10px;min-width:128px;min-height:48px;padding:8px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font:inherit;font-weight:600;cursor:pointer;flex:none}
.promo-switch:hover{background:var(--bg)}
.promo-switch:disabled{opacity:.6;cursor:wait}
.promo-switch:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.promo-track{display:block;width:38px;height:24px;flex:none;border-radius:20px;background:var(--muted);padding:3px}
.promo-track::after{content:'';display:block;width:18px;height:18px;border-radius:50%;background:var(--surface)}
.promo-switch[aria-checked=true] .promo-track{background:var(--green-solid)}
.promo-switch[aria-checked=true] .promo-track::after{transform:translateX(14px)}
@media(max-width:600px){.promo-option{align-items:flex-start;flex-direction:column;gap:12px;padding:18px 0}.promo-switch{min-width:140px}}

/* Pilihan promo ada di rincian pembayaran, sebelum total dan tombol selesai. */
.checkout-promos{border:0;padding:0;margin:20px 0;min-width:0}.checkout-promos legend{font-size:14px;font-weight:700;padding:0;margin-bottom:8px}.checkout-promos>.helper{margin-bottom:12px}.checkout-promo-options{display:grid;gap:8px;margin-bottom:14px}.checkout-promo-options label{display:flex;gap:12px;align-items:center;min-height:56px;padding:12px;border:1px solid var(--line);border-radius:7px;cursor:pointer}.checkout-promo-options label:has(input:checked){background:var(--blue-soft);border-color:var(--accent-text)}.checkout-promo-options label:has(input:disabled){color:var(--muted);cursor:default}.checkout-promo-options label:focus-within{outline:2px solid var(--focus);outline-offset:2px}.checkout-promo-options input{accent-color:var(--primary);flex:none}.checkout-promo-options span{min-width:0;overflow-wrap:anywhere}.checkout-promo-options strong,.checkout-promo-options small{display:block}.checkout-promo-options strong{font-size:13px}.checkout-promo-options small{font-size:12px;color:var(--muted);margin-top:3px}

/* Kartu tetap dapat diketuk untuk menjelaskan struk tertunda, bukan menambah pesanan. */
.product.struk-tertunda{background:var(--bg);cursor:pointer}
.product.struk-tertunda .product-image{filter:grayscale(1);opacity:.48}
.product.struk-tertunda:hover{border-color:var(--line);box-shadow:none}

.struk-guide{min-height:48px;white-space:normal}

.promo-jadwal{display:grid;gap:16px}.promo-jadwal .check-line{display:flex;align-items:center;gap:10px;min-height:44px}.promo-jadwal input[type=checkbox]{width:20px;height:20px}.promo-jadwal .two-col>div{min-width:0}.promo-jadwal button{min-height:44px;justify-self:start}

.ship-line{padding:16px 0;border-bottom:1px solid var(--line)}.ship-line .field{min-width:0}.ship-line h3{font-size:15px}.ship-line .helper{margin:6px 0 12px}
/* Updates follows the existing reading panels; it never interrupts the cashier. */
.updates-page{max-width:780px;margin:0 auto}
.updates-page .page-heading{margin-bottom:20px}
.updates-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.updates-filters .filter{min-height:44px}
.updates-note{color:var(--muted);font-size:13px;line-height:1.5;margin:0 0 20px}
.updates-list{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.update-entry{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:22px}
.update-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.update-meta time{color:var(--muted);font-size:12px}
.update-entry h2{font-size:19px;line-height:1.35;margin:0 0 8px}
.update-audience{font-size:12px;color:var(--muted);line-height:1.5;margin:0 0 12px}
.update-description{font-size:14px;line-height:1.65;margin:0;max-width:70ch}
.update-link{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:14px}
.update-link .button{min-height:44px}
.update-link small{color:var(--muted);font-size:12px;line-height:1.5}
.update-guide{border-top:1px solid var(--line);margin-top:18px;padding-top:4px}
.update-guide summary{color:var(--accent-text);font-weight:650;font-size:13px;cursor:pointer;padding:12px 0;min-height:44px}
.update-guide summary:focus-visible{outline:2px solid var(--accent-text);outline-offset:3px;border-radius:4px}
.update-guide ol{padding-left:22px;font-size:14px;line-height:1.65;margin:0 0 12px}
.update-guide li+li{margin-top:6px}
.update-guide figure{margin:16px 0 0}
.update-video{width:100%;max-height:440px;object-fit:contain;background:var(--bg);border:1px solid var(--line);border-radius:8px}
.update-guide figcaption{font-size:12px;line-height:1.5;color:var(--muted);margin-top:8px}
.nav .updates-new{margin-left:auto;background:var(--red-soft);color:var(--red);border-radius:5px;padding:2px 6px;font-size:10px;font-weight:700}
@media(max-width:600px){.update-entry{padding:18px}.update-entry h2{font-size:18px}.update-meta{gap:8px}.update-meta time{font-size:11px}}
/* HP: penanda Updates baru pada tombol menu (navigasi tersembunyi di laci). */
.mobile-menu{position:relative}.updates-dot{position:absolute;top:8px;right:8px;width:9px;height:9px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 2px var(--surface)}

/* Absensi pribadi supervisor (Akun saya): tombol mudah disentuh di tablet/HP. */
.attendance-action{min-height:48px}
/* Setoran per tanggal: nominal dan pemeriksaan tetap terbaca pada tablet/ponsel. */
.setoran-layout{gap:20px}
.setoran-tersedia{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 0 20px}
.setoran-tersedia>div{min-width:0;display:grid;gap:6px}
.setoran-tersedia>div>span{font-size:13px;color:var(--muted)}
.setoran-tersedia strong{font-size:30px;letter-spacing:-.5px;line-height:1.2}
.setoran-tersedia .helper{margin:0}
.setoran-catat{min-height:44px;flex:none}
.setoran-posisi{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:16px 0;margin:0 0 16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.setoran-posisi>div{min-width:0;display:grid;gap:6px}
.setoran-posisi dt{font-size:12px;color:var(--muted);line-height:1.5}
.setoran-posisi dd{margin:0;font-size:14px;font-weight:600}
.setoran-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:8px 20px;flex-wrap:wrap}
.setoran-toolbar>.setoran-filter[open]{flex-basis:100%}
.setoran-pilihan{gap:8px;margin-bottom:8px}.setoran-pilihan .button{min-height:44px;white-space:normal;text-align:left;border-color:transparent;background:transparent;color:var(--muted)}
.setoran-pilihan .button[aria-pressed=true]{background:var(--blue-soft);color:var(--accent-text)}
.setoran-pilihan .button:hover{background:var(--blue-soft);color:var(--accent-text)}
.setoran-jumlah{font-size:11px;padding:2px 6px;border-radius:5px;background:var(--surface-2-e8edf4);color:var(--muted)}
.setoran-pilihan [aria-pressed=true] .setoran-jumlah{background:var(--surface-3-dde5ff);color:var(--accent-text-294bbc)}
.setoran-filter>summary,.setoran-info>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-size:13px;color:var(--accent-text);width:fit-content}
.setoran-filter .trx-filter{margin:4px 0 12px}.setoran-filter .form-error{flex-basis:100%}
.setoran-harian-list{border-top:1px solid var(--line);margin-top:4px}
.setoran-hari{min-width:0}
.setoran-hari>summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:20px;min-height:64px;padding:12px 0}
.setoran-hari-label{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}
.setoran-hari-label>strong{font-size:14px;overflow-wrap:anywhere}
.setoran-hari-total{display:grid;gap:2px;text-align:right}.setoran-hari-total>small{font-size:12px;color:var(--muted)}
.setoran-hari-total>strong{font-size:19px;letter-spacing:-.2px}
.setoran-buka{font-size:12px;color:var(--accent-text)}
.setoran-rincian{padding:12px 0 16px;border-bottom:1px solid var(--line)}
.setoran-rincian .definition{margin-bottom:12px}
.setoran-info{margin-top:8px}.setoran-info .helper{margin-top:0}
@media(max-width:700px){.setoran-tersedia{align-items:stretch;flex-direction:column;gap:16px;padding-bottom:16px}.setoran-catat{width:100%}.setoran-posisi{grid-template-columns:1fr;gap:12px;padding:16px 0}.setoran-posisi>div{display:flex;justify-content:space-between;gap:16px}.setoran-posisi dd{flex:none;text-align:right}.setoran-posisi dt{max-width:26ch}.setoran-hari>summary{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px}.setoran-hari-label{display:grid;gap:5px;justify-items:start}.setoran-buka{grid-column:1 / -1}.setoran-toolbar>.setoran-pilihan{width:100%}.setoran-pilihan button{flex:1;min-width:0}}

.setoran-filter .button,.setoran-harian-list+.trx-nav .button{min-height:44px}

/* Analisis penjualan: angka sejajar, rincian terbuka saat diperlukan. */
.sales-analysis{display:grid;gap:24px;min-width:0}.analysis-controls{display:flex;flex-wrap:wrap;align-items:end;gap:12px}.analysis-controls .trx-filter{width:100%;margin:0}.analysis-controls>.helper{flex-basis:100%;margin:0}.analysis-totals,.analysis-customer{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:24px;margin:24px 0}.analysis-totals>div,.analysis-customer>div{min-width:0}.analysis-totals dt,.analysis-customer dt{color:var(--muted);font-size:13px}.analysis-totals dd{font-size:28px;font-weight:700;letter-spacing:-.025em;margin:5px 0;font-variant-numeric:tabular-nums}.analysis-totals small{color:var(--muted);display:block}.analysis-customer{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.analysis-customer dd{margin:4px 0;font-size:23px;font-weight:650;font-variant-numeric:tabular-nums}.sales-analysis summary{cursor:pointer;min-height:44px;padding:12px 0;font-weight:600}.analysis-reconcile{border-top:1px solid var(--line)}.analysis-menus{margin-top:12px}.analysis-cashiers{border-top:1px solid var(--line)}.sales-analysis .data-table td:not(:first-child),.sales-analysis .data-table th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.sales-analysis .data-table td:first-child{min-width:190px}.sales-analysis .table-scroll{max-height:480px;overflow:auto}.sales-analysis .data-table thead{position:sticky;top:0;background:var(--bg);z-index:1}.sales-analysis .table-scroll:focus-visible{outline:3px solid var(--focus-5477fa);outline-offset:3px}@media(max-width:1000px){.analysis-totals{grid-template-columns:1fr 1fr;gap:20px}.analysis-totals>div:first-child{grid-column:1/-1}.analysis-customer{grid-template-columns:1fr 1fr}}@media(max-width:600px){.sales-analysis{gap:16px}.analysis-totals dd{font-size:24px}.analysis-controls>.button{width:100%}.analysis-totals{gap:18px}.analysis-customer{gap:16px}.sales-analysis .panel-pad{padding:18px 16px}.sales-analysis .trx-filter .form-field{min-width:0}}

.sales-analysis button{min-height:44px}

/* Promo voucher: syarat besar di atas nama menu, tidak bergantung pada foto atau warna. */
.product.promo-bogo-voucher{border-color:var(--accent-border-9faee1)}.product.promo-free-voucher{border-color:var(--green-border-87b7a4)}
.promo-kind-band{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:10px 12px;background:var(--promo-band-bg);color:var(--on-dark);font-size:12px;font-weight:700;line-height:1.3}.promo-kind-band svg{width:19px;height:19px}
.promo-free-voucher .promo-kind-band{background:var(--green-solid)}.promo-bogo-voucher .product-image,.promo-free-voucher .product-image{height:72px;aspect-ratio:auto}.promo-bogo-voucher .product-image img,.promo-free-voucher .product-image img{object-fit:contain!important}
.product-body .promo-requirement{display:flex;flex-direction:column;gap:4px;padding:0 0 12px;margin-bottom:12px;border-bottom:1px solid var(--line)}.promo-requirement strong{font-size:17px;line-height:1.25;letter-spacing:-.015em}.promo-requirement span{font-size:12px;line-height:1.4;color:var(--muted)}
.promo-bogo-voucher .promo-requirement strong{color:var(--brand-ink)}.promo-free-voucher .promo-requirement strong{color:var(--green-166b46)}
@media(max-width:450px){.promo-kind-band{padding:10px;font-size:11px;gap:6px}.product-body .promo-requirement strong{font-size:16px}.product-body .promo-requirement span{font-size:11px}}

.product-stock{display:inline-flex;align-self:flex-start;background:var(--surface-2-eef2f7);color:var(--ink-334863);border-radius:5px;padding:4px 8px;margin:0 0 10px;font-size:12px;font-weight:600;line-height:1.4}.product-stock.kosong{background:var(--amber-soft);color:var(--amber)}

/* Pengingat absensi ringkas: buka/ciutkan tanpa menutup menu kasir. */
.attendance-reminder{margin:0 0 16px;background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.attendance-reminder summary{display:flex;align-items:center;gap:10px;padding:10px 14px;min-height:48px;cursor:pointer;list-style:none;font-size:13px}
.attendance-reminder summary::-webkit-details-marker{display:none}.attendance-reminder summary>svg{width:18px;height:18px;color:var(--amber);flex:none}.attendance-reminder summary>strong{flex:1;min-width:0}.attendance-reminder summary>span{color:var(--amber);white-space:nowrap}.reminder-expand{color:var(--accent-text);font-size:12px}
.attendance-reminder summary:focus-visible{outline:2px solid var(--focus);outline-offset:-3px}.attendance-reminder-body{padding:0 14px 14px;border-top:1px solid var(--line)}.attendance-reminder-body>p{font-size:12px;color:var(--muted);margin:12px 0}.attendance-reminder-body>small{display:block;color:var(--muted);font-size:12px;margin-top:10px}.attendance-reminder-list{max-height:220px;overflow:auto}.attendance-reminder-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}.attendance-reminder-list>div:last-child{border:0}.attendance-reminder-list strong{min-width:0;overflow-wrap:anywhere}.attendance-reminder-list .button{flex:none;min-height:44px}
@media(max-width:480px){.attendance-reminder summary{gap:8px;padding:10px 12px}.attendance-reminder summary>strong{font-size:12px}.attendance-reminder-body{padding:0 12px 12px}}

.reminder-expand-open{display:none}.attendance-reminder[open] .reminder-expand-closed{display:none}.attendance-reminder[open] .reminder-expand-open{display:inline}

/* Semantic shade aliases preserve the incumbent light appearance. */
:root{--focus-5477fa:#5477fa;--on-dark-muted-d3ddec:#d3ddec;--accent-border-90a6ff:#90a6ff;--nav-hover-24354f:#24354f;--nav-count-ffffff26:#ffffff26;--on-dark-muted-abbad0:#abbad0;--surface-2-e9edf5:#e9edf5;--surface-3-e5ebff:#e5ebff;--surface-2-edf1f8:#edf1f8;--surface-2-edf0f5:#edf0f5;--muted-536176:#536176;--accent-border-9aacda:#9aacda;--surface-hover-f8faff:#f8faff;--muted-8792a3:#8792a3;--surface-2-eef1f5:#eef1f5;--muted-586578:#586578;--accent-text-294bbc:#294bbc;--line-soft-ecf0f5:#ecf0f5;--surface-2-f0f3fa:#f0f3fa;--surface-2-fafbfc:#fafbfc;--line-soft-e9edf3:#e9edf3;--accent-border-d8e1ff:#d8e1ff;--accent-text-2c458c:#2c458c;--amber-border-f3dfbf:#f3dfbf;--green-border-cfe6d7:#cfe6d7;--muted-8494af:#8494af;--line-cdd5e1:#cdd5e1;--surface-2-eef1f6:#eef1f6;--muted-6b7a90:#6b7a90;--amber-strong-c78321:#c78321;--accent-border-8ca2ed:#8ca2ed;--shadow-color-1622380a:#1622380a;--line-soft-f0f2f6:#f0f2f6;--line-c1cad7:#c1cad7;--accent-border-8da4f5:#8da4f5;--accent-text-2844a7:#2844a7;--accent-border-879ccd:#879ccd;--surface-2-f5f7fb:#f5f7fb;--shadow-color-0e193044:#0e193044;--overlay-dialog-12203970:#12203970;--overlay-drawer-10213970:#10213970;--on-dark-muted-c3cee1:#c3cee1;--shadow-color-rgba:rgba(21,34,56,.08);--red-soft-rgba:rgba(214,69,69,.07);--red-d64545:#d64545;--surface-2-eef3f8:#eef3f8;--ink-2b3a4f:#2b3a4f;--amber-soft-fff1e6:#fff1e6;--amber-9a4a00:#9a4a00;--amber-border-f3c9a3:#f3c9a3;--accent-soft-e8f0ff:#e8f0ff;--accent-text-1d4ed8:#1d4ed8;--amber-soft-fff8dc:#fff8dc;--amber-8a6d00:#8a6d00;--line-d9e0e8:#d9e0e8;--ink-4a5a6f:#4a5a6f;--accent-text-1f4fd8:#1f4fd8;--nav-line-2c3d5c:#2c3d5c;--on-dark-muted-dfe6f3:#dfe6f3;--ink-17384d:#17384d;--line-d6e3ed:#d6e3ed;--shadow-color-142c4012:#142c4012;--surface-2-fbfcfe:#fbfcfe;--focus-soft-4361ee22:#4361ee22;--shadow-color-16223833:#16223833;--navy-152238:#152238;--on-dark-muted-c7d2e6:#c7d2e6;--amber-6b5300:#6b5300;--accent-text-1c2f6e:#1c2f6e;--surface-3-eef3ff:#eef3ff;--accent-text-1c3fb5:#1c3fb5;--green-soft-f1f6f2:#f1f6f2;--green-17663a:#17663a;--amber-soft-fdf1e7:#fdf1e7;--red-border-f2c9c9:#f2c9c9;--surface-2-f7f9fc:#f7f9fc;--accent-soft-3155d914:#3155d914;--shadow-color-0e193040:#0e193040;--surface-2-e8edf4:#e8edf4;--surface-3-dde5ff:#dde5ff;--accent-border-9faee1:#9faee1;--green-border-87b7a4:#87b7a4;--green-166b46:#166b46;--surface-2-eef2f7:#eef2f7;--ink-334863:#334863;--on-dark-muted-d9e0ff:#d9e0ff;--nav-hover-173bae:#173bae;--brand-yellow-soft-fff4bf:#fff4bf;--shadow-color-0a1a5c06:#0a1a5c06;--nav-hover-1c3dba:#1c3dba;--shadow-color-00249c20:#00249c20;--surface-2-f3f5ff:#f3f5ff;--amber-8d491e:#8d491e;--amber-soft-fff3e9:#fff3e9;--shadow-color-00249c15:#00249c15;--surface-2-e2e7f4:#e2e7f4;--amber-border-ffc8a3:#ffc8a3;--amber-track-f7d8c2:#f7d8c2;--amber-strong-e76b22:#e76b22;--surface-3-eef1ff:#eef1ff;--accent-border-8c9ee6:#8c9ee6;--shadow-color-00249c0d:#00249c0d;--surface-3-fafafa:#fafafa;--shadow-color-00249c08:#00249c08;--hero-muted-e1e7ff:#e1e7ff;--overlay-dialog-00104488:#00104488;--shadow-color-00249c06:#00249c06;--line-ced7ef:#ced7ef;}
/* Jumlah kemasan dapat diketuk di tablet. */
[data-form="request"] .count-input,[data-form="request-change"] .count-input{min-height:44px}

.stock-unit-input{display:grid;grid-template-columns:minmax(76px,1fr) minmax(110px,1fr);gap:8px;min-width:198px;max-width:320px}.stock-unit-input .form-field{margin:0}.stock-unit-input .stock-unit-total{grid-column:1/-1;margin:0;font-weight:600}.stock-unit-input input,.stock-unit-input select{min-height:44px;width:100%;min-width:0}.ship-line .stock-unit-input{max-width:none}

/* Satuan stok tetap bersama angka; tabel dapat digeser pada layar kecil. */
.two-col.stockist-layout{grid-template-columns:minmax(0,1fr)}
.stockist-table{min-width:700px}
.stockist-table td:not(:first-child){white-space:nowrap}
.stockist-table td small{white-space:normal;max-width:28ch}

/* Riwayat pasokan: ringkas, rincian sesuai kebutuhan. */
.stockist-history-list .history-row{align-items:center;gap:16px}.history-row h3{overflow-wrap:anywhere}.history-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;font-size:13px;color:var(--muted)}.history-input input{min-width:90px;width:110px}.history-input select{min-width:100px}.history-row .button{min-height:44px;flex-shrink:0}@media(max-width:600px){.history-pagination{align-items:flex-start;flex-direction:column}.history-row{gap:10px!important}.history-row h3{font-size:14px}.history-row small{line-height:1.6}}

/* Barang masuk: jumlah dan satuan tetap berdampingan pada tablet/ponsel. */
.stock-in-lines{display:grid;gap:12px;margin:16px 0 24px}.stock-in-line{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(80px,.7fr) minmax(120px,1fr);gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.stock-in-line .form-field{margin:0}.stock-in-line input,.stock-in-line select{min-width:0;width:100%}.upload-proof{position:relative;overflow:hidden;cursor:pointer}.upload-proof input{position:absolute;inset:0;opacity:0;cursor:pointer}.upload-proof:focus-within{outline:2px solid var(--blue);outline-offset:3px}.stock-in-detail{margin:18px 0}@media(max-width:560px){.stock-in-line{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:8px}.stock-in-line>strong{grid-column:1/-1}.stock-in-line input,.stock-in-line select{font-size:16px}}
[data-form="stockist-in"] .button{min-height:44px}

.stock-in-record h3,.stock-in-record small,.stock-in-receipt dd,.stock-in-detail .fact-row span{overflow-wrap:anywhere}
