/* Zizha Rx — gaya aplikasi (urutan blok sama seperti sebelumnya di index.html). */
/* --- blok 1 --- */
#shPos{display:none!important}#txValue::placeholder,#shipInput::placeholder,#mkValue::placeholder,#cartBody .disc input::placeholder{color:#b8c4bc;opacity:1}.total-card .sum-line.sl-sub{border-top:1px solid var(--line,#d8e8dc);margin-top:6px;padding-top:12px}.total-card .sum-line.sl-sub span{font-weight:700;font-size:16px}.total-card .sum-line.sl-sub b{font-size:24px;letter-spacing:-.3px}.total-card .sum-line.sl-items[hidden]{display:none!important}.total-card .sum-line.sl-items{color:var(--muted,#5d7064)}#optMarkup.mk-off{display:none!important}@media (max-width:640px){#cartBody tr{grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr) minmax(0,1.4fr) 36px!important;grid-template-areas:"nm nm nm del" "pr pr sub sub" "qt un dc dc"!important;column-gap:6px!important}#cartBody td:nth-child(3),#cartBody td:nth-child(4),#cartBody td:nth-child(5){min-width:0}#cartBody .qty input,#cartBody td:nth-child(4) select,#cartBody .disc select,#cartBody .disc input{font-size:clamp(12px,3.7vw,16px)!important;height:40px;min-height:40px!important}#cartBody .qty input{width:100%!important;min-width:0}#cartBody td:nth-child(4) select{padding:6px 18px 6px 6px!important;background-position:right 4px center!important}#cartBody .disc{gap:3px!important}#cartBody .disc select{width:48px!important;min-width:48px!important;flex:none!important;padding:6px 0 6px 6px!important;text-indent:0!important}#cartBody td:nth-child(4) select{padding-right:2px!important}#cartBody .disc input{flex:1 1 0;min-width:0;width:auto!important;padding:6px 4px!important}}.inv-headbar{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;justify-content:space-between;margin-bottom:12px}.inv-headbar .purchase-help{flex:1;min-width:220px;margin:0}.inv-back{margin-bottom:10px}
/* --- blok 2 --- */
:root{--green:#1a913b;--green2:#e4f5e8;--ink:#14261a;--muted:#5d7064;--line:#d8e8dc;--bg:#f3f9f4;--white:#fff;--red:#b42318}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink)}
header{background:var(--green);color:white;padding:18px 22px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
header h1{font-size:20px;margin:0}header p{margin:4px 0 0;opacity:.88;font-size:13px}
.badge{border:1px solid #ffffff80;border-radius:999px;padding:6px 10px;font-size:12px}
nav{display:flex;gap:8px;padding:12px 18px;background:white;border-bottom:1px solid var(--line);overflow:auto}
nav button{border:0;background:transparent;padding:10px 13px;border-radius:9px;white-space:nowrap;font-weight:650;color:var(--muted);cursor:pointer}
nav button.active{background:var(--green2);color:var(--green)}
.subnav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px;padding:8px;background:#e9f4ec;border-radius:12px}.subnav button{border:1px solid var(--line);background:#fff;padding:9px 12px;border-radius:8px;color:var(--ink);font-weight:650}.subnav button.active{background:var(--green);color:white;border-color:var(--green)}.purchase-pane{display:none}.purchase-pane.active{display:block}.purchase-help{font-size:13px;color:var(--muted);margin:-6px 0 14px}
main{max-width:1200px;margin:auto;padding:20px}
.view{display:none}.view.active{display:block}
h2{font-size:21px;margin:0 0 16px}h3{margin:0 0 12px;font-size:16px}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.card,.panel{background:white;border:1px solid var(--line);border-radius:14px;padding:16px;min-width:0}
.metric-label{color:var(--muted);font-size:13px}.metric{font-size:23px;font-weight:750;margin-top:7px;overflow-wrap:anywhere}
.layout{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}
input,select,textarea{font:inherit;padding:10px 11px;border:1px solid #c6d9cc;border-radius:9px;width:100%;background:white;color:var(--ink)}
label{display:block;font-size:13px;color:var(--muted);margin:10px 0 5px}
button{font:inherit;cursor:pointer}.btn{border:0;border-radius:9px;padding:10px 13px;background:var(--green);color:white;font-weight:650}.btn.secondary{background:#e8f1eb;color:#1d3324}.btn.danger{background:#fff0ef;color:var(--red)}.btn.small{padding:6px 9px;font-size:12px}
.row{display:flex;gap:8px;align-items:center}.row>*{flex:1}.toolbar{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:12px}.toolbar>*{flex:1;min-width:160px}
.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:10px;margin-top:12px}
table{width:100%;border-collapse:collapse;background:white;font-size:13px}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line);vertical-align:top}th{background:#f6faf7;color:#4f6556;white-space:nowrap}tr:last-child td{border-bottom:0}.right{text-align:right}.muted{color:var(--muted);font-size:13px}.notice{padding:11px 13px;border-radius:10px;background:#fff7df;color:#6e5010;font-size:13px;margin-bottom:14px}
.productlist{max-height:360px;overflow:auto;margin-top:10px}.product{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.product:last-child{border:0}.product strong{display:block}.product small{color:var(--muted)}
.total{display:flex;justify-content:space-between;align-items:center;font-weight:750;font-size:18px;padding:14px 0}.empty{padding:24px;text-align:center;color:var(--muted)}
.supplier-picker{position:relative}.supplier-suggestions{display:none;position:absolute;z-index:30;left:0;right:0;top:100%;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 22px #0002;max-height:230px;overflow:auto}.supplier-suggestions.show{display:block}.supplier-suggestion{display:block;width:100%;text-align:left;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--ink)}.supplier-suggestion:last-child{border-bottom:0}.supplier-suggestion:hover,.supplier-suggestion:focus{background:var(--green2);outline:0}.supplier-suggestion small{display:block;color:var(--muted);font-size:12px}
@media(max-width:760px){main{padding:13px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.layout{grid-template-columns:1fr}header{padding:15px} .metric{font-size:19px}}

.expiry-warning{display:block;font-size:12px;margin-top:4px;font-weight:600}
.expiry-warning.expired{color:#b42318}
.expiry-warning.soon{color:#b54708}
.field-locked{opacity:1}.field-locked input:disabled,.field-locked select:disabled,.field-locked button:disabled{cursor:not-allowed;opacity:.55}

/* ===== Tema baru: Apotek Jihan Farma ===== */
:root{--green:#1a913b;--green2:#d9f3e0;--green3:#42bd66;--ink:#14261a;--muted:#5d7064;--line:#d8e8dc;--bg:#f2f8f3;--shadow:0 1px 2px #1a913b14,0 6px 18px #1a913b12;--shadow-lg:0 10px 30px #1a913b26}
body{background:radial-gradient(1200px 500px at 90% -10%,#dff3e4 0,transparent 60%),var(--bg)}
.ic{width:1.15em;height:1.15em;flex:none;vertical-align:-.2em}
header{background:linear-gradient(120deg,#0c5a24 0,#1a913b 55%,#42bd66 120%);padding:18px 26px;box-shadow:var(--shadow-lg);position:relative;z-index:5}
.brand{display:flex;align-items:center;gap:14px}
.logo{width:48px;height:48px;border-radius:14px;background:#ffffff26;border:1px solid #ffffff55;display:grid;place-items:center;backdrop-filter:blur(4px)}
.logo .ic{width:28px;height:28px;fill:#fff;stroke:none}
header h1{font-size:21px;letter-spacing:.2px}
.badge{display:inline-flex;align-items:center;gap:7px;background:#ffffff1f;border:1px solid #ffffff4d;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:600}
.badge .ic{width:15px;height:15px}
#syncStatus::before{content:"";width:8px;height:8px;border-radius:50%;background:#1a913b;box-shadow:0 0 0 3px #1a913b33}
nav{position:sticky;top:0;z-index:4;gap:6px;padding:10px 18px;background:#ffffffee;backdrop-filter:blur(8px);box-shadow:0 2px 10px #1a913b10}
nav button{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:12px;transition:.18s}
nav button .ic{width:18px;height:18px}
nav button:hover{background:#effaf1;color:var(--green)}
nav button.active{background:linear-gradient(135deg,#1a913b,#42bd66);color:#fff;box-shadow:0 4px 12px #1a913b44}
.subnav{background:#e4f4e8}
.subnav button{display:inline-flex;align-items:center;gap:7px;transition:.18s}
.subnav button .ic{width:16px;height:16px}
.subnav button:hover{border-color:var(--green3);color:var(--green)}
.subnav button.active{background:linear-gradient(135deg,#1a913b,#42bd66);border-color:transparent;box-shadow:0 3px 10px #1a913b40}
h2{display:flex;align-items:center;gap:11px;font-size:23px;margin:4px 0 18px}
h2 .ic{width:38px;height:38px;padding:9px;border-radius:12px;background:var(--green2);color:var(--green)}
h3{display:flex;align-items:center;gap:8px}
h3 .ic{color:var(--green3);width:19px;height:19px}
.card,.panel{box-shadow:var(--shadow);border-radius:16px}
.panel{padding:18px}
.card{position:relative;overflow:hidden;transition:.18s}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent,var(--green3))}
.card .metric-label{display:flex;align-items:center;gap:8px}
.card .metric-label .mi{width:34px;height:34px;padding:8px;border-radius:10px;background:var(--accent-bg,#d9f3e0);color:var(--accent,#1a913b)}
.c-blue{--accent:#0e7c66;--accent-bg:#d5f2ea}.c-amber{--accent:#e07a00;--accent-bg:#fff0dc}.c-violet{--accent:#c2570c;--accent-bg:#ffe8d1}.c-rose{--accent:#e11d48;--accent-bg:#ffe4e6}.c-green{--accent:#1a913b;--accent-bg:#dff3e4}
.metric{font-size:25px;letter-spacing:-.3px}
.notice{display:flex;gap:10px;align-items:flex-start;background:#fff7ec;border:1px solid #ffd9a8;color:#7a4a07;line-height:1.5;margin-bottom:14px}
.notice>.ic{margin-top:2px;color:#e07a00;width:19px;height:19px}
.notice>.nt{flex:1}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,#1a913b,#42bd66);box-shadow:0 3px 10px #1a913b33;transition:.18s}
.btn:hover{filter:brightness(1.07);transform:translateY(-1px)}
.btn.secondary{background:#e6f3e9;color:#0f5a28;box-shadow:none}
.btn.secondary:hover{background:#d2eadb}
.btn.danger{background:#fff1f2;color:#be123c;box-shadow:none}
.btn.danger:hover{background:#ffe4e6}
input,select,textarea{border-color:#c4d9ca;transition:.15s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--green3);box-shadow:0 0 0 3px #42bd662e}
.searchbox{position:relative;display:block}.toolbar>.searchbox{flex:1;min-width:160px}
.searchbox>.ic{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:#7b9c84;width:17px;height:17px;pointer-events:none}
.searchbox input{padding-left:36px}
th{background:#e5f4e9;color:#2a5a36;font-weight:700}
tbody tr:nth-child(even){background:#f7fbf8}
tbody tr:hover{background:#e8f7ec}
.tablewrap{border-radius:12px;box-shadow:var(--shadow)}
.total{background:linear-gradient(90deg,#e8f9ed,transparent);padding:14px 12px;border-radius:12px;color:#0f5a28}
.product{border-radius:10px;padding:11px 8px;transition:.12s}.product:hover{background:#effaf1}
footer.muted{text-align:center;padding:22px}
@media(max-width:760px){nav button span{font-size:13px}.logo{width:40px;height:40px}header h1{font-size:18px}h2{font-size:20px}}
#excelImportPanel{scroll-margin-top:72px}
.modal-back{position:fixed;inset:0;background:#0b231499;backdrop-filter:blur(2px);display:grid;place-items:center;z-index:1000;padding:16px}
.modal{background:#fff;border-radius:18px;padding:22px;max-width:440px;width:100%;box-shadow:0 20px 60px #0004}
.modal h3{margin:0 0 8px;font-size:18px}.modal p{margin:0 0 18px;color:var(--muted);line-height:1.5}
.modal .actions{display:flex;gap:10px;justify-content:flex-end}.modal .actions .btn{flex:0 0 auto;min-width:96px}
.btn.solid-danger{background:linear-gradient(135deg,#be123c,#e11d48);box-shadow:0 3px 10px #be123c40}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#0f3d1f;color:#fff;padding:12px 18px;border-radius:12px;box-shadow:0 10px 30px #0004;z-index:1100;font-weight:600;max-width:92vw}
input[type=checkbox]{width:18px;height:18px;padding:0;margin:0;accent-color:var(--green);cursor:pointer;vertical-align:middle}
tr.sel,tbody tr.sel:nth-child(even){background:#fff1f2}tr.sel:hover{background:#ffe4e6}
#deleteSelected:disabled{opacity:.5;cursor:not-allowed;transform:none}
@media print{nav,header .badge{display:none}}

/* ===== Tema logo: hijau #1a913b + oranye #ff8b10 ===== */
:root{--orange:#ff8b10;--orange-dark:#d96f00;--orange-pale:#fff1e0}
html{background:#f3f9f4}body{background-repeat:no-repeat;background-attachment:fixed;min-height:100vh}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
header{background:#fff;color:var(--ink);padding:10px 26px 14px;box-shadow:0 4px 18px #1a913b1f;position:relative}
header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:linear-gradient(90deg,#1a913b 0,#42bd66 40%,#ffa43f 78%,#ff8b10 100%)}
.brand{display:flex;align-items:center;gap:16px}
.brand img{height:72px;width:auto;display:block}
.brand .tag{border-left:2px solid var(--orange);padding-left:14px;color:var(--muted);font-size:13px;line-height:1.35;font-weight:600}
.badge{background:#f1f9f3;border:1px solid #cfe7d6;color:#0f5a28}
.badge .ic{color:var(--orange)}
nav button.active::after{content:"";position:absolute;left:14px;right:14px;bottom:3px;height:3px;border-radius:3px;background:var(--orange)}
nav button{position:relative}
th{border-bottom:2px solid #ffc27a}
.total{border-left:4px solid var(--orange)}
#checkout{background:linear-gradient(135deg,#ff8b10,#ffa43f);box-shadow:0 4px 14px #ff8b1055;font-size:15px}
#checkout:hover{filter:brightness(1.05)}
.card:hover{box-shadow:0 10px 30px #1a913b26}
h2 .ic{background:#e1f5e6;color:#1a913b}
.modal .actions .btn.secondary{color:#0f5a28}
@media(max-width:760px){.brand img{height:50px}.brand .tag{display:none}header{padding:8px 14px 12px}}
@media print{header::after{display:none}}

/* ===== Layout sidebar ===== */
.app{display:flex;min-height:100vh}
.content{flex:1;min-width:0}
.sidebar{width:262px;flex:none;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;background:linear-gradient(185deg,#0c5a24 0,#12702f 55%,#1a913b 130%);color:#e6f6ea;z-index:60;transition:margin .22s ease,transform .22s ease;box-shadow:4px 0 22px #0c5a2433}
.app:not(.sb-open) .sidebar{margin-left:-262px}
.sb-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #ffffff1f}
.sb-x{border:0;background:#ffffff1f;color:#fff;border-radius:10px;width:36px;height:36px;display:grid;place-items:center;cursor:pointer}
.sb-x:hover{background:#ffffff33}.sb-x .ic{width:20px;height:20px}
.sb-ver{font-size:12px;font-weight:700;letter-spacing:.4px;color:#bfe6c9}
.sb-scroll{overflow:auto;padding:10px 12px 24px;flex:1}
.sb-link,.sb-group-btn{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;color:#fff;font:inherit;font-weight:700;padding:11px 12px;border-radius:10px;cursor:pointer;text-align:left;margin-top:4px}
.sb-link .ic,.sb-group-btn .ic{width:20px;height:20px}
.sb-group-btn .chev{margin-left:auto;width:18px;height:18px;transition:transform .2s}
.sb-group.closed .chev{transform:rotate(-90deg)}
.sb-sub{overflow:hidden;max-height:420px;transition:max-height .25s ease;padding:2px 0 4px}
.sb-group.closed .sb-sub{max-height:0;padding:0}
.sb-item{display:block;width:100%;text-align:left;border:0;background:transparent;color:#d3eddb;font:inherit;font-weight:650;font-size:14px;padding:10px 12px 10px 44px;border-radius:10px;cursor:pointer;margin:2px 0;position:relative}
.sb-link:hover,.sb-group-btn:hover,.sb-item:hover{background:#ffffff1c;color:#fff}
.sb-item.active,.sb-link.active{background:#fff;color:#0f5a28;box-shadow:0 4px 14px #00000026}
.sb-item.active::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:4px;border-radius:4px;background:var(--orange)}
.sb-overlay{display:none}
header.topbar{position:sticky;top:0;z-index:40;padding:8px 20px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.menu-btn{border:1px solid #cfe7d6;background:#f1f9f3;color:#0f5a28;border-radius:12px;width:44px;height:44px;display:grid;place-items:center;cursor:pointer}
.menu-btn:hover{background:#e1f5e6}.menu-btn .ic{width:22px;height:22px}
header.topbar .brand img{height:52px}
nav{display:none}
#purchaseSubnav{display:none}
main{max-width:1320px}
.kbd{display:inline-block;font-size:11px;font-weight:700;border:1px solid #c4d9ca;background:#f6faf7;color:#4f6556;border-radius:6px;padding:1px 6px;margin-left:4px;line-height:1.5}
.kbd.light{background:#ffffff26;border-color:#ffffff66;color:#fff}
/* ===== Halaman Kasir ===== */
.pos-wrap{display:grid;grid-template-columns:250px minmax(0,1fr);gap:22px;align-items:start}
.pos-side h2{margin-top:0}
.draft{position:relative;background:#fff;border:1px solid var(--line);border-left:4px solid transparent;border-radius:12px;padding:11px 34px 11px 13px;margin-bottom:10px;cursor:pointer;transition:.15s;box-shadow:var(--shadow)}
.draft:hover{border-color:var(--green3)}
.draft.active{background:#effaf1;border-left-color:var(--orange);border-color:#bfe3c9}
.draft .d-total{font-weight:800;font-size:17px}
.draft .d-meta{font-size:12px;color:var(--muted);margin-top:2px}
.draft .d-x{position:absolute;right:8px;top:8px;border:0;background:transparent;color:#8aa391;font-size:18px;line-height:1;cursor:pointer;border-radius:8px;width:24px;height:24px}
.draft .d-x:hover{background:#ffe4e6;color:#be123c}
.pos-top{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.txn-no{font-weight:800;color:#3b4a40;font-size:15px}
.txn-total{font-size:38px;font-weight:800;letter-spacing:-.5px;color:var(--ink);line-height:1.15}
.infobox{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));border:1px solid #bcd3c3;border-radius:10px;background:#fff;overflow:hidden;min-width:min(100%,420px)}
.ib{padding:8px 12px}.ib+.ib{border-left:1px solid #d6e5da}
.ib label{display:flex;align-items:center;gap:6px;font-weight:800;color:#1a7f36;font-size:13px;margin:0 0 2px}
.ib label .ic{width:14px;height:14px}
.ib input,.ib select{border:0;padding:3px 0;font-size:14px;box-shadow:none;background:transparent}.ib select{cursor:pointer;font-weight:600;padding-right:4px;margin-left:-2px}
.ib input:focus{box-shadow:none}
.pos-bar{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}
.pos-picker{position:relative;flex:1;min-width:0}
.pos-results{display:none;position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:25;background:#fff;border:1px solid #bcd3c3;border-radius:14px;box-shadow:0 18px 40px #0c5a2433;padding:6px 10px}
.pos-results.open{display:block}
.pos-results .productlist{max-height:380px;margin-top:0}
#checkout{padding:12px 20px;white-space:nowrap}
.cart-table{overflow-x:auto;-webkit-overflow-scrolling:touch}
.cart-table table td{vertical-align:middle}
.cart-table .qty{display:flex;align-items:center;gap:4px}
.cart-table .qty input{width:62px;text-align:center;padding:7px 6px}
.cart-table select{padding:7px 8px;min-width:78px}
.disc,.disc-in{display:flex;align-items:center;gap:4px}
.disc select,.disc-in select{width:64px;min-width:64px}
.disc input{width:78px;padding:7px 8px}
.disc-in input{width:130px;padding:8px 10px;text-align:right}
.disc-in .pre{color:var(--muted);font-weight:700}
.cart-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:36px 12px;color:#55645b}
.hist-items{margin:6px 0 0;padding-left:18px;font-size:13px;color:#4f6556}
details summary{cursor:pointer;color:#1a7f36;font-weight:650}
@media(max-width:900px){
 .sidebar{position:fixed;left:0;top:0;bottom:0;margin-left:0!important;transform:translateX(-102%)}
 .app.sb-open .sidebar{transform:none}
 .app.sb-open .sb-overlay{display:block;position:fixed;inset:0;background:#0b231499;z-index:55}
 .pos-wrap{grid-template-columns:minmax(0,1fr)}
 .pos-bar{flex-direction:column;align-items:stretch}.pos-bar #checkout{width:100%}.pos-picker{width:100%}
 .txn-total{font-size:30px}
 .disc-in input{width:110px}
}
.sl-low{display:flex!important;align-items:center;gap:8px;margin:0!important;font-size:13px;font-weight:700;color:#33463a;white-space:nowrap}.toolbar>.sl-low{flex:0 0 auto}
.sl-low input{width:72px;padding:8px;text-align:center}.sl-low span{font-weight:600;color:var(--muted);font-size:12px}
.sl-b{display:inline-block;font-size:10.5px;font-weight:800;border-radius:6px;padding:1px 7px;margin-left:4px;vertical-align:1px}
.sl-b.out{background:#ffe4e6;color:#be123c}.sl-b.low{background:#fff0dc;color:#c2570c}
.sl-n{font-size:15px}tr.slr-out .sl-n{color:#be123c}tr.slr-low .sl-n{color:#c2570c}
[hidden]{display:none!important}
.cat-b{display:inline-block;font-size:11px;font-weight:800;border-radius:6px;padding:2px 8px}
.cat-obat{background:#dff3e4;color:#17702f}.cat-alkes{background:#e0ecff;color:#1d4ed8}.cat-pangan{background:#fff0dc;color:#b45309}.cat-lainnya{background:#f1f0fb;color:#5b4bb7}
.sub-b{display:inline-block;font-size:11px;font-weight:700;border-radius:6px;padding:2px 8px;background:#eef2ef;color:#33463a;white-space:nowrap}
.sub-b.ctl-red,.pc-tag.ctl-red{background:#ffe4e6;color:#be123c;border-color:#fda4af}.sub-b.ctl-amb,.pc-tag.ctl-amb{background:#fff0dc;color:#c2570c;border-color:#fdba74}
#products .toolbar>.searchbox{flex:2 1 260px}#products .toolbar>select{flex:1 1 170px}#productRows td:nth-child(3){min-width:210px}
.pf-cat{margin-bottom:6px;display:flex;gap:4px;flex-wrap:wrap}
.bulk-cat{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff7ec;border:1px solid #ffd9a8;border-radius:12px;padding:10px 14px;margin:10px 0 0;font-size:13px}
.bulk-cat label{display:flex;align-items:center;gap:6px;margin:0;font-weight:700;color:#33463a}.bulk-cat select{width:auto;padding:7px 9px}
.mig{border:1px solid #bfdbfe;background:#f3f8ff;border-radius:12px;padding:12px 14px;margin-bottom:12px}
.mig-h{display:flex;align-items:center;gap:8px;color:#1d4ed8}.mig-h .ic{width:18px;height:18px}
.mig-steps{margin:8px 0 8px;padding-left:20px;font-size:13px;line-height:1.7}.mig-steps .btn{margin-left:6px;vertical-align:middle}
.mig-ex{font-size:12.5px;background:#fff;border:1px dashed #bfdbfe;border-radius:10px;padding:8px 10px;line-height:1.6}
.pkp-row{display:flex;align-items:center;gap:10px}.pkp-txt{flex:1;font-size:13.5px}
.pkp-rate{width:96px;flex:none}.pkp-rate input{font-size:15px;padding:8px 10px}
.money:has(input:disabled){background:#f3f6f4}
@media print{.sidebar,.sb-overlay,header.topbar{display:none}}
.exp-warn{display:inline-flex;align-items:center;justify-content:center;vertical-align:-4px;margin-left:7px;width:22px;height:22px;border-radius:50%;background:#fff1e0;color:#e07a00;cursor:help}
.exp-warn.expired{background:#ffe4e6;color:#e11d48}
.exp-warn .ic{width:15px;height:15px}
.unit-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.chip{display:inline-flex;flex-direction:column;align-items:flex-start;border:1px solid #c4d9ca;background:#fff;border-radius:10px;padding:5px 11px;cursor:pointer;font:inherit;line-height:1.25;color:var(--ink);transition:.12s}
.chip b{font-size:12px;letter-spacing:.3px}.chip span{font-size:12px;color:var(--muted);font-weight:600}
.chip:hover:not(:disabled){border-color:var(--green3)}
.chip.on{background:linear-gradient(135deg,#1a913b,#42bd66);border-color:transparent;color:#fff;box-shadow:0 3px 10px #1a913b40}
.chip.on span{color:#e6f6ea}
.chip:disabled{opacity:.45;cursor:not-allowed}
.add-ctl{display:flex;gap:6px;align-items:flex-start}.add-ctl input{width:66px;padding:8px}
.pos-results{padding:0;overflow:hidden;flex-direction:column;border-radius:14px}
.pos-results.open{display:flex}
.pr-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid #e3eee6;background:#f5faf6;font-size:12px;color:var(--muted);font-weight:700}
.pr-head label{display:flex;align-items:center;gap:8px;margin:0;font-size:12px}
.pr-head input{width:62px;padding:5px 8px;text-align:center}
#posProducts{overflow:auto;max-height:min(60vh,520px)}
.prow{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;padding:9px 14px;border-bottom:1px solid #edf3ef;transition:background .12s}
.prow:last-child{border-bottom:0}
.prow:hover{background:#f6fbf7}
.pr-main{flex:1 1 280px;min-width:0}
.pr-name{display:flex;align-items:center;gap:8px;min-width:0}
.pr-name strong{font-size:14.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.pr-name .exp-warn,.pr-name .pc-tag,.pr-name .pc-ppn{flex:none;margin-left:0}
.pc-tag{font-size:11px;padding:0 8px;font-weight:700;border:1px solid #9db3a4;border-radius:999px;color:#3d5444;background:#f6faf7;white-space:nowrap}
.pc-ppn{font-size:10.5px;font-weight:800;color:#0f5a28;background:#e1f5e6;border-radius:6px;padding:1px 6px}
.pr-meta{font-size:12px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pr-meta i{font-style:italic;color:#55645b}
.pr-stock{font-weight:800;color:#17803a}
.pr-units{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.upill{display:inline-flex;align-items:center;gap:8px;border:1px solid #cfe3d5;background:#fff;border-radius:12px;padding:6px 12px 6px 8px;cursor:pointer;font:inherit;color:var(--ink);transition:.12s;position:relative}
.upill:hover:not(.off){border-color:#1a913b;background:#effaf1;box-shadow:0 2px 8px #1a913b24}
.u-plus{flex:none;width:20px;height:20px;color:#1a913b;background:#e1f5e6;border-radius:7px;padding:3px}
.u-lbl{display:flex;flex-direction:column;line-height:1.15;text-align:left}
.u-lbl b{font-size:13px;color:#17702f;letter-spacing:.2px}
.u-lbl em{font-style:normal;font-size:10.5px;color:var(--muted);white-space:nowrap}
.upill .u-price{font-weight:800;font-size:13.5px;margin-left:4px;white-space:nowrap}
.u-count{position:absolute;top:-7px;right:-6px;min-width:18px;height:18px;border-radius:9px;background:#ff8b10;color:#fff;font-size:11px;font-style:normal;font-weight:800;display:grid;place-items:center;padding:0 5px;box-shadow:0 2px 6px #ff8b1066}
.upill.off{opacity:.55;cursor:not-allowed}
.upill.off em{color:#c2570c;font-weight:700}
@media(max-width:900px){.prow{display:block}.pr-units{justify-content:flex-start;margin-top:8px}}
.txn-label{font-weight:800;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.7px}
.pos-summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,470px);gap:16px;margin-top:16px;align-items:start}
.pay-card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:16px 18px}
.pay-card h3{margin:0 0 14px;font-size:14px;color:#33463a;text-transform:uppercase;letter-spacing:.5px}
.pay-card h3 .ic{color:#1a913b}
.adj-field{margin-bottom:16px}.adj-field:last-child{margin-bottom:0}
.adj-field>label{display:flex;align-items:center;gap:6px;font-weight:800;color:#33463a;font-size:13px;margin:0 0 7px}
.adj-row{display:flex;gap:10px;align-items:stretch}.adj-row .money{flex:1}
.hint{display:block;margin-top:6px;color:var(--muted);font-size:12px}
.seg{display:inline-flex;border:1px solid #c4d9ca;border-radius:12px;overflow:hidden;flex:none}
.seg button{border:0;background:#fff;color:#33463a;padding:0 18px;font:inherit;font-weight:800;cursor:pointer;min-height:42px}
.seg button+button{border-left:1px solid #c4d9ca}
.seg button.on{background:linear-gradient(135deg,#1a913b,#42bd66);color:#fff}
.money{display:flex;align-items:stretch;border:1px solid #c4d9ca;border-radius:12px;background:#fff;overflow:hidden}
.money:focus-within{border-color:#42bd66;box-shadow:0 0 0 3px #1a913b24}
.money .pre{display:flex;align-items:center;padding:0 12px;background:#f3f9f4;color:var(--muted);font-weight:800}
.money input{border:0;border-radius:0;box-shadow:none;text-align:right;font-size:16px;font-weight:700;min-width:0;width:100%;padding:10px 12px}
.money input:focus{box-shadow:none}
.money.big input{font-size:20px;padding:12px}
.sum-line{display:flex;justify-content:space-between;align-items:center;padding:8px 0;color:#33463a;border-bottom:1px dashed #dbe8de}
.sum-line b{font-weight:800}
.sum-line.grand{background:linear-gradient(90deg,#fff3e3,transparent);margin:4px -18px;padding:12px 18px;border-left:4px solid var(--orange);border-bottom:0;font-weight:800}
.sum-line.grand b{font-size:24px;color:#0f5a28}
.pay-field{margin:10px 0 6px}
.pay-field>label{display:block;font-weight:800;color:#33463a;font-size:13px;margin:0 0 7px}
.quick-pay{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.qp-list{display:contents}
.qp{border:1px solid #cfe3d5;background:#fff;border-radius:999px;padding:7px 14px;font:inherit;font-weight:800;font-size:13px;color:#17702f;cursor:pointer;transition:.12s}
.qp:hover{background:#effaf1;border-color:#1a913b}
.qp.exact{background:linear-gradient(135deg,#1a913b,#42bd66);color:#fff;border-color:transparent;box-shadow:0 3px 10px #1a913b40}
.sum-line.change{border-bottom:0;padding-top:12px}
.sum-line.change b{font-size:18px}
#change.neg,.sum-line.change.neg span{color:#be123c}
.btn.big{width:100%;margin-top:12px;padding:13px;font-size:16px;background:linear-gradient(135deg,#ff8b10,#ffa43f);box-shadow:0 4px 14px #ff8b1055}
@media(max-width:900px){.pos-summary{grid-template-columns:minmax(0,1fr)}}
.unit-builder{border:1px solid #cfe3d5;background:#f7fbf8;border-radius:14px;padding:14px 16px;margin:16px 0 6px}
.ub-head{display:flex;flex-direction:column;gap:3px;margin-bottom:4px}
.ub-head b{display:flex;align-items:center;gap:7px;color:#17702f;font-size:14px}
.ub-head small{color:var(--muted);font-size:12px;line-height:1.5}
.ub-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}
.ub-lbl{min-width:150px;font-weight:700;color:#33463a;font-size:13px}
.ub-lbl .req{color:#e11d48;font-style:normal}
.ub-row input,.ub-row select{width:auto;min-width:0}
.ub-row input:not(.ub-per):not(.ub-name),.ub-row select{width:210px}
.ub-name{width:150px}.ub-per{width:96px;text-align:center}
.ub-1{font-weight:800;color:#1a913b}
.ub-of{font-weight:800;color:#17702f;min-width:44px}
.ub-x{border:0;background:#ffe4e6;color:#be123c;border-radius:9px;width:32px;height:32px;font-size:18px;line-height:1;cursor:pointer}
.ub-x:hover{background:#fecdd3}
.ub-preview{margin-top:12px;background:#fff;border:1px dashed #b7d3bf;border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.65;color:#33463a}
.basisName{color:#17702f}
/* ===== Form tambah barang (satu kesatuan) ===== */
.pf{padding:0;overflow:hidden}
.cl-head{display:flex;justify-content:space-between;align-items:center;gap:12px;cursor:pointer;user-select:none}
.cl-head h3{margin:0 0 4px}.cl-head p{margin:0;color:var(--muted);font-size:13px}
.cl-btn{flex:none;display:inline-flex;align-items:center;gap:6px;border:1px solid #cfe3d5;background:#fff;color:#17702f;border-radius:999px;padding:7px 12px 7px 14px;font:inherit;font-size:13px;font-weight:800;cursor:pointer}
.cl-btn:hover{background:#effaf1;border-color:#1a913b}
.cl-btn .ic{width:16px;height:16px;transition:transform .2s;transform:rotate(180deg)}
.is-collapsed .cl-btn .ic{transform:none}
.collapsible.is-collapsed>:not(.cl-head){display:none!important}
.collapsible.is-collapsed .pf-head{border-bottom:0}
.xl-head{margin:-16px -18px 14px;padding:16px 18px 14px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,#eef6ff,#fff 70%)}
.is-collapsed .xl-head{margin-bottom:-16px;border-bottom:0;border-radius:16px}
#excelImportPanel.is-collapsed{padding-bottom:16px}
.pf-head{padding:18px 20px 14px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,#effaf1,#fff 70%)}
.pf-head h3{margin:0 0 4px;font-size:17px}.pf-head p{margin:0;color:var(--muted);font-size:13px}
.pf-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px}
.pf-main{padding:6px 20px 18px}
.pf-step{display:grid;grid-template-columns:34px minmax(0,1fr);gap:14px;position:relative;padding:16px 0}
.pf-step+.pf-step{border-top:1px dashed #d6e5da}
.pf-step:not(:last-of-type) .pf-num::after{content:"";position:absolute;left:16px;top:52px;bottom:-16px;width:2px;background:#e1f0e5}
.pf-num{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#1a913b,#42bd66);color:#fff;font-weight:800;display:grid;place-items:center;box-shadow:0 3px 10px #1a913b33}
.pf-body h4{margin:5px 0 10px;font-size:15px;color:#14261a}
.pf-sub{margin:-6px 0 12px;color:var(--muted);font-size:12.5px;line-height:1.5}
.pf-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 12px}
.pf-fields label{margin-top:4px}.pf-fields .span2{grid-column:span 2}.pf-fields .span3{grid-column:1/-1}
.pf-fields .money input{font-size:15px}
.pf-fields .money .pre.basisName{font-size:12px;text-transform:none}
.pf-h4row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}.pf-h4row h4{margin:5px 0}
.pf-basis{display:flex;align-items:center;gap:8px;margin:0;font-size:13px;font-weight:700;color:#33463a}
.pf-basis select{width:auto;min-width:150px;padding:7px 10px;font-weight:700;border-color:#9fd1ad;background:#effaf1;color:#0f5a28}
.pf-exp{align-self:end;font-size:12.5px;padding-bottom:10px;display:flex;align-items:center;gap:6px}
.pf-opt{font-size:10.5px;font-weight:700;color:#5d7064;background:#eef2ef;border-radius:5px;padding:1px 6px;margin-left:4px}
.pf-sublbl{font-size:12px!important;margin-top:8px!important}
.pf-up{text-transform:uppercase;font-weight:700}.pf-up::placeholder{text-transform:none;font-weight:400}
.pf-fields input:disabled{background:#f3f6f4;cursor:not-allowed}.money:has(input:disabled){background:#f3f6f4}
.pf-adj{margin:14px 0 6px;border:1px solid #cfe3d5;background:#f7fbf8;border-radius:12px;padding:12px 14px 6px}
.pf-adj-h b{display:block;color:#17702f;font-size:13.5px}.pf-adj-h small{color:var(--muted);font-size:12px}
.pf-adj .money input.pf-set{color:#c2570c}
.pf-good{color:#17803a;font-weight:700}.pf-bad{color:#be123c;font-weight:700}
.ub-chain{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px}
.ub-levels{display:contents}
.ub-card{background:#fff;border:1px solid #cfe3d5;border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:7px;min-width:170px;box-shadow:0 1px 2px #1a913b10}
.ub-card.base{border-color:#9fd1ad;background:#f4fbf6}
.ub-card.base input{width:150px}
.ub-tag{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:#4f6556}
.ub-tag .req{color:#e11d48;font-style:normal}
.ub-eq{display:flex;align-items:center;gap:6px}
.ub-card input:not(.ub-per){text-transform:uppercase}.ub-card input::placeholder{text-transform:none}
.ub-eq .ub-name{width:92px;font-weight:700}.ub-eq .ub-per{width:64px;text-align:center}
.ub-1,.ub-is{font-weight:800;color:#1a913b}.ub-of{font-weight:800;color:#17702f;min-width:30px;font-size:13px}
.ub-x{border:0;background:#ffe4e6;color:#be123c;border-radius:7px;width:22px;height:22px;font-size:15px;line-height:1;cursor:pointer}
.ub-link{display:grid;place-items:center;color:#7fbf91}.ub-link .ic{transform:rotate(-90deg);width:20px;height:20px}
.ub-addcard{border:2px dashed #b7d3bf;background:transparent;border-radius:14px;padding:10px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#17702f;font:inherit;font-weight:800;cursor:pointer;min-width:150px;transition:.15s}
.ub-addcard small{color:var(--muted);font-weight:600;font-size:11px}
.ub-addcard:hover:not(:disabled){border-color:#1a913b;background:#effaf1}.ub-addcard:disabled{opacity:.45;cursor:not-allowed}
.pf-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:14px;border-top:1px solid var(--line)}
.pf-actions .btn{padding:11px 18px}
.pf-side{background:#f6faf7;border-left:1px solid var(--line);padding:18px}
.pf-sum{position:sticky;top:76px}
.pf-sum-h{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:#4f6556;margin-bottom:12px}.pf-sum-h .ic{color:var(--orange)}
.pf-sum-name{font-size:16px;font-weight:800;line-height:1.3;overflow-wrap:anywhere}
.pf-sum-meta{font-size:12px;color:var(--muted);margin:3px 0 12px;font-style:italic}
.pf-empty{border:1px dashed #b7d3bf;border-radius:10px;padding:12px;font-size:12.5px;color:var(--muted);background:#fff}
.pf-pack{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:6px}
.pf-chip{background:#fff;border:1px solid #cfe3d5;border-radius:8px;padding:4px 9px;font-weight:800;font-size:13px;color:#0f5a28}
.pf-chip small{display:block;font-size:10.5px;color:var(--muted);font-weight:600}
.pf-arrow{color:#7fbf91;font-weight:800}
.pf-eqs{font-size:12px;color:#4f6556;margin-bottom:10px;line-height:1.6}
.pf-tbl{font-size:12.5px;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:10px}
.pf-tbl th,.pf-tbl td{padding:6px 9px}
.pf-stock{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:6px 0;border-top:1px dashed #d6e5da}
@media(max-width:1100px){.pf-grid{grid-template-columns:minmax(0,1fr)}.pf-side{border-left:0;border-top:1px solid var(--line)}.pf-sum{position:static}}
@media(max-width:700px){.pf-fields{grid-template-columns:1fr}.pf-fields .span2,.pf-fields .span3{grid-column:auto}.pf-step{grid-template-columns:1fr}.pf-num::after{display:none}.ub-link{width:100%}.ub-link .ic{transform:none}.ub-card,.ub-addcard{flex:1 1 100%}}
@media(max-width:900px){.ub-lbl{min-width:100%}.ub-row input:not(.ub-per):not(.ub-name),.ub-row select{width:100%}}
/* ===== Pelanggan & mitra (harga khusus) ===== */
.party-hint{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.35}
.party-hint a{color:#1a7f36;font-weight:700;cursor:pointer;text-decoration:underline}
.ptag{display:inline-block;font-size:10.5px;font-weight:800;border-radius:6px;padding:1px 6px;margin-right:4px;vertical-align:1px;white-space:nowrap}
.ptag.customer{background:#d5f2ea;color:#0e7c66}.ptag.partner{background:#fff0dc;color:#c2570c}
.p-old{display:block;font-size:11.5px;color:var(--muted);text-decoration:line-through;font-weight:600}
.p-src{display:block;font-size:11px;color:#c2570c;font-weight:700}
.u-old{font-size:11px;color:var(--muted);font-weight:600;margin-right:3px;text-decoration:line-through}
tr.p-on,tbody tr.p-on:nth-child(even){background:#effaf1}
.sp-form{display:grid;grid-template-columns:minmax(220px,2fr) minmax(110px,1fr) minmax(140px,1fr) auto;gap:10px;align-items:end}
.sp-form label{margin-top:0}
@media(max-width:900px){.sp-form{grid-template-columns:1fr}}
.m-status{display:flex;align-items:center;gap:10px;margin:16px 0 20px;font-weight:700}
.switch{position:relative;display:inline-block;width:50px;height:28px;margin:0}
.switch input{position:absolute;opacity:0;width:0;height:0}
.switch .sl{position:absolute;inset:0;background:#d4ddd7;border-radius:8px;cursor:pointer;transition:.2s}
.switch .sl:before{content:"";position:absolute;width:24px;height:24px;left:2px;top:2px;background:#fff;border-radius:6px;box-shadow:0 1px 3px #0003;transition:.2s}
.switch input:checked+.sl{background:var(--green)}.switch input:checked+.sl:before{transform:translateX(22px)}
.switch input:focus-visible+.sl{box-shadow:0 0 0 3px #42bd6655}
.mtabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #bcd3c3;margin-bottom:18px}
.mtab{border:1px solid var(--line);border-bottom:0;background:#f1f6f2;padding:13px 10px;border-radius:12px 12px 0 0;text-align:center;cursor:pointer;font:inherit;color:var(--ink);margin-bottom:-1px}
.mtab b{display:block;color:#17702f;font-size:14.5px}.mtab small{color:var(--muted);font-size:12px}
.mtab.on{background:#fff;border-color:#bcd3c3;box-shadow:inset 0 3px 0 var(--orange);border-bottom:1px solid #fff}
.mt-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.mt-search{display:flex;align-items:stretch;flex:0 1 340px;min-width:220px}
.mt-search .searchbox{flex:1}.mt-search input{border-radius:9px 0 0 9px}.mt-search .btn{border-radius:0 9px 9px 0;border:1px solid #c4d9ca;border-left:0}
.m-pick{border:1px solid #cfe3d5;background:#f7fbf8;border-radius:12px;padding:12px 14px;margin-bottom:12px}
.m-pick-list{max-height:260px;overflow:auto;margin-top:8px;background:#fff;border:1px solid var(--line);border-radius:10px}
.m-pick-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid #edf3ef}.m-pick-row:last-child{border-bottom:0}
.icon-btn{border:0;background:transparent;color:#17702f;width:32px;height:32px;border-radius:8px;display:inline-grid;place-items:center;cursor:pointer}
.icon-btn:hover{background:#e6f3e9}.icon-btn.danger{color:#be123c}.icon-btn.danger:hover{background:#ffe4e6}
.mt-bar .toolbar>*{flex:0 0 auto;min-width:0}.mt-bar .btn{white-space:nowrap}
.mk-sum{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.mk-chip{border:1px solid #cfe3d5;background:#fff;border-radius:999px;padding:6px 12px;font:inherit;font-size:12.5px;font-weight:700;color:#33463a;cursor:pointer}
.mk-chip b{margin-left:4px}.mk-chip.on{background:#17702f;border-color:#17702f;color:#fff}
.mk-chip.rugi:not(.on) b{color:#be123c}.mk-chip.murah:not(.on) b{color:#b45309}.mk-chip.mahal:not(.on) b{color:#1d4ed8}
.mk-b{display:inline-block;font-size:11.5px;font-weight:800;border-radius:6px;padding:2px 8px;white-space:nowrap}
.mk-b.rugi{background:#ffe4e6;color:#be123c}.mk-b.murah{background:#fff4dc;color:#b45309}.mk-b.sama{background:#eef2ef;color:#5d7064}.mk-b.mahal{background:#e0ecff;color:#1d4ed8}
.mk-sum+.tablewrap th{white-space:normal;line-height:1.25}#mItemRows .icon-btn{width:28px;height:28px}
.mk-m{font-weight:800;color:#17803a}.mk-m.neg{color:#be123c}
.m-price-in{width:120px;text-align:right;padding:7px 9px;font-weight:700}
.mm-neg{color:#c0262d;font-weight:800}.mm-low{color:#b45309;font-weight:700}
td.comp-c{max-width:240px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:help}td.comp-c.trunc{text-decoration:underline dotted #9bb5a2;text-underline-offset:3px}
#fullTip{position:fixed;z-index:1200;max-width:min(420px,calc(100vw - 24px));background:#14261a;color:#fff;font-size:12.5px;line-height:1.45;padding:9px 12px;border-radius:10px;box-shadow:0 10px 30px #0004;white-space:normal;word-break:break-word;pointer-events:none;opacity:0;transition:opacity .12s}#fullTip.on{opacity:1}#fullTip b{display:block;font-size:11px;color:#9fe0b0;margin-bottom:3px;text-transform:uppercase;letter-spacing:.04em}
.modal.edit-m{max-width:680px;max-height:calc(100vh - 32px);overflow:auto}
.em-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 14px}.em-grid .s2{grid-column:span 2}
.em-grid label{margin-top:8px;display:block;font-size:12.5px;font-weight:700}.em-grid input,.em-grid select{width:100%}
.em-mm{display:flex;gap:10px;margin:12px 0 4px;flex-wrap:wrap}.em-mm div{flex:1;min-width:120px;background:#f3faf5;border:1px solid #d8e8dc;border-radius:10px;padding:8px 10px;font-size:12px;color:var(--muted)}.em-mm b{display:block;font-size:17px;color:#14261a}
.em-hint{font-size:11.5px;color:var(--muted);margin-top:2px}.em-err{color:#c0262d;font-size:12px;font-weight:700;min-height:16px;margin-top:6px}
@media(max-width:640px){.em-grid{grid-template-columns:1fr}.em-grid .s2{grid-column:auto}}
.pfm-inline{padding:6px 20px 18px}.pfm-inline .em-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.pfm-inline .em-grid .s2{grid-column:span 2}
.pfm-inline .em-grid .em-mm,.pfm-inline .em-grid .up-wrap{grid-column:1/-1}.em-mm{align-items:flex-start}
@media(max-width:900px){.pfm-inline .em-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.pfm-inline .em-grid{grid-template-columns:1fr}.pfm-inline .em-grid .s2{grid-column:auto}}
.up-wrap{margin-top:10px;border:1px solid #d8e8dc;border-radius:12px;padding:10px 12px 12px;background:#fbfefc}
.up-h b{display:block;font-size:13.5px}.up-h small{color:var(--muted);font-size:11.5px}
.up-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:4px 14px}
.up-row label{margin-top:8px}.up-row input.up-set{border-color:#e07a00;background:#fff8ec}
.em-hint.bad{color:#c0262d;font-weight:700}
.sl-cards{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:760px){.sl-cards{grid-template-columns:1fr}}
button.df-link{text-align:left;font:inherit;cursor:pointer;border:inherit}button.df-link:hover{filter:brightness(.98);box-shadow:0 4px 14px #0001}
.sb-cnt{display:inline-block;min-width:18px;padding:0 6px;border-radius:9px;background:#f59e0b;color:#fff;font-size:10.5px;font-weight:800;line-height:18px;text-align:center;margin-left:6px}
#defekta .toolbar>.btn{flex:0 0 auto}#defekta .toolbar>.searchbox{flex:1 1 180px;min-width:0}#defekta .toolbar>select{flex:1 1 130px;min-width:0}.df-ord{display:flex;gap:6px}.df-ord input{width:64px;padding:7px;text-align:center}.df-ord select{padding:7px 6px;min-width:70px}
.rack-sel{padding:6px 8px;font-size:12.5px;min-width:130px;max-width:170px}.rack-sel.empty{color:var(--muted)}
#stocklist .toolbar>.btn{flex:0 0 auto}
.modal.rack-m{max-width:520px;max-height:calc(100vh - 32px);overflow:auto}
.rk-add{display:flex;gap:8px;margin-bottom:12px}.rk-add input{flex:1}
.rk-list{display:flex;flex-direction:column;gap:6px;max-height:46vh;overflow:auto}
.rk-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid #d8e8dc;border-radius:10px;background:#fbfefc}.rk-name{font-weight:800;flex:1}.rk-row .muted{font-size:12px;white-space:nowrap}
.pr-rack{display:inline-block;white-space:nowrap;background:#e8f0ff;color:#1d4ed8;font-weight:800;font-size:11px;border-radius:5px;padding:0 6px}
.so-new{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;align-items:end}.so-new label{display:block;font-size:12.5px;font-weight:700;margin-bottom:4px}.so-new input,.so-new select{width:100%}
@media(max-width:900px){.so-new{grid-template-columns:1fr}}
.so-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.so-title{font-size:18px;font-weight:800}.so-actions{display:flex;gap:8px;flex-wrap:wrap}.so-actions .btn{flex:0 0 auto}
.so-cards{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:900px){.so-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
.so-bar{height:6px;background:#e5efe8;border-radius:4px;margin:6px 0 4px;overflow:hidden}.so-bar i{display:block;height:100%;background:#1a913b;border-radius:4px;transition:width .2s}
.so-in{display:flex;gap:6px;flex-wrap:wrap}.so-u{display:flex;align-items:center;gap:4px;margin:0!important;font-size:11.5px;font-weight:700;color:var(--muted)}.so-u input{width:64px;padding:6px;text-align:center}
.so-v.pos{color:#1d6fd8;font-weight:800}.so-v.neg{color:#c0262d;font-weight:800}
.so-tbl tr.so-ok td{background:#f1faf3}.so-tbl tr.so-df td{background:#fff7ec}
.so-live{background:#1a913b}
#opname .toolbar>.searchbox{flex:2 1 240px}
.modal.so-view{max-width:720px}.so-view.only-diff tr.so-same{display:none}.so-onlydiff{display:flex!important;align-items:center;gap:6px;font-size:12.5px;margin:0 0 8px!important}
.md-units{display:inline-flex;border:1px solid #cfe3d5;border-radius:9px;overflow:hidden;background:#fff}
.md-u{border:0;background:transparent;font:inherit;font-size:11.5px;font-weight:800;color:#33463a;padding:5px 9px;cursor:pointer;border-right:1px solid #cfe3d5}.md-u:last-child{border-right:0}.md-u:hover{background:#effaf1}.md-u.on{background:#1a913b;color:#fff}
.md-note{font-size:11px;margin-top:1px}.md-cus{color:#c2570c;font-weight:700}
.pr-units{align-items:center}.u-chips{display:inline-flex;gap:6px;flex-wrap:wrap}
.uchip{position:relative;border:1px solid #cfe3d5;background:#fff;border-radius:10px;padding:7px 13px;font:inherit;font-size:13px;font-weight:800;color:var(--ink);cursor:pointer;transition:.12s}
.uchip:hover:not(.off){border-color:#1a913b;background:#effaf1}#posProducts .uchip.on{background:#1a913b!important;border-color:#1a913b!important;color:#fff!important;box-shadow:0 2px 8px #1a913b33}
.uchip.off{opacity:.5;cursor:not-allowed}.uchip .u-count{top:-7px;right:-7px}
.u-act{display:inline-flex;align-items:center;gap:10px;padding-left:4px}.u-hint{font-size:12px;color:var(--muted);font-style:italic}
.u-info{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap}.u-info em{font-size:11.5px;color:var(--muted);font-style:normal}.u-pr{font-size:15px}.u-info small{color:var(--muted);font-weight:700}
.u-add{white-space:nowrap}
.mk-btn{flex:1;min-width:120px;background:#f3faf5;border:1px dashed #1a913b;border-radius:10px;padding:8px 10px;font:inherit;font-size:12px;color:var(--muted);text-align:left;cursor:pointer;position:relative}
.mk-btn:hover{background:#e6f6ea;border-style:solid}.mk-btn b{display:block;font-size:17px;color:#14261a}.mk-edit{position:absolute;right:9px;top:7px;font-size:11px;font-weight:800;color:#1a913b}
.mk-link{border:0;background:none;font:inherit;padding:0;cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px;font-weight:700}
.mk-pop{position:fixed;z-index:1300;width:320px;max-width:calc(100vw - 16px);background:#fff;border:1px solid #d8e8dc;border-radius:14px;box-shadow:0 16px 40px #0003;padding:14px}
.mk-h{font-weight:800;font-size:13.5px;margin-bottom:10px}.mk-h small{display:block;font-weight:600;color:var(--muted);font-size:11.5px;margin-top:2px}
.mk-chips{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.mk-chips button{border:1px solid #cfe3d5;background:#fff;border-radius:8px;padding:7px 0;font:inherit;font-weight:800;font-size:13px;cursor:pointer}.mk-chips button:hover{background:#effaf1}.mk-chips button.on{background:#1a913b;color:#fff;border-color:#1a913b}
.mk-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.mk-row label{font-size:11.5px;font-weight:700;margin:0!important;display:block}.mk-row select{width:100%;padding:7px}
.mk-in{display:flex;align-items:center;gap:4px}.mk-in input{width:100%;padding:7px}
.mk-prev{margin-top:10px;background:#f3faf5;border-radius:10px;padding:8px 10px;font-size:12.5px}.mk-prev b{font-size:16px}.mk-prev small{display:block;color:var(--muted);margin-top:2px}
.mk-act{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.mk-act .btn{flex:0 0 auto}
.rc-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr);gap:16px;align-items:start}@media(max-width:1000px){.rc-grid{grid-template-columns:1fr}}
.rc-h{margin:0 0 10px;font-size:15px}.rc-f{margin-bottom:10px}.rc-f label{display:block;font-size:12.5px;font-weight:700;margin:0 0 4px}.rc-f input,.rc-f select,.rc-f textarea{width:100%}.rc-f textarea{resize:vertical;font:inherit;padding:9px 11px;border:1px solid var(--line);border-radius:10px}
.rc-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:640px){.rc-2{grid-template-columns:1fr}}
.rc-checks{display:flex;flex-wrap:wrap;gap:8px 18px;margin:4px 0 10px}.rc-checks label[hidden]{display:none!important}.rc-checks label{display:flex!important;align-items:center;gap:7px;font-size:13px;font-weight:600;margin:0!important}
.rc-note{font-size:12px;color:var(--muted);background:#f3faf5;border-radius:10px;padding:9px 11px;margin:0 0 12px;line-height:1.5}.rc-note code{background:#e3efe6;padding:0 4px;border-radius:4px}
.rc-status{display:flex;align-items:center;gap:10px;min-height:40px;font-size:13px;font-weight:700}.rc-status .btn{flex:0 0 auto}
.rc-prev-panel{position:sticky;top:84px}.rc-paper{background:#fff;margin:0 auto;padding:14px 12px 22px;box-shadow:0 2px 14px #0002;border-radius:4px;overflow:auto;background-image:linear-gradient(#fff,#fff)}
.rc-paper.w58{width:260px}.rc-paper.w80{width:380px;max-width:100%}
.rc-paper pre{margin:0;font-family:'Courier New',Courier,monospace;font-size:12px;line-height:1.35;color:#111;white-space:normal}
.rc-paper .rl{display:block;white-space:pre}.rc-paper .c{text-align:center}.rc-paper .b{font-weight:700}.rc-paper .big{transform:scaleY(1.7);margin:6px 0}
.rc-prev-act{display:flex;justify-content:center;margin-top:14px}
.modal.sale-ok{text-align:center;max-width:380px}.so-ic{width:54px;height:54px;border-radius:50%;background:#dff3e4;color:#1a913b;display:grid;place-items:center;margin:0 auto 8px}.so-ic .ic{width:28px;height:28px}
.sd-change{background:#f3faf5;border-radius:12px;padding:12px;margin:4px 0 8px}.sd-change span{display:block;font-size:12px;color:var(--muted)}.sd-change b{font-size:26px;color:#14261a}
.sd-status{font-size:12.5px;color:#1a913b;font-weight:700;min-height:18px;margin-bottom:10px}.sale-ok .actions{justify-content:center}.sale-ok .actions small{opacity:.7;font-weight:600}
.hs-b{display:inline-block;font-size:10.5px;font-weight:800;border-radius:6px;padding:1px 7px;margin-top:3px}.hs-b.void{background:#ffe4e6;color:#be123c}.hs-b.ret{background:#fff0dc;color:#c2570c}
tr.hs-void td{background:#fbf5f5;color:#8a7b7b}.hs-ret{color:#c2570c;font-size:11.5px;font-weight:700}
.hs-act{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.hs-act .btn{white-space:nowrap}
.hs-l{display:block;font-size:12.5px;font-weight:700;margin:10px 0 4px}.hs-chk{display:flex!important;align-items:center;gap:7px;font-size:13px;font-weight:600;margin:12px 0 0!important}
.modal select#vdReason,.modal select#rtReason{width:100%}
.modal.rt-m{max-width:640px}.rt-q{display:flex;align-items:center;justify-content:center;gap:4px}.rt-q input{width:56px;padding:6px;text-align:center}.rt-q button{width:30px;height:32px;border:1px solid #cfe3d5;background:#fff;border-radius:8px;font-weight:800;cursor:pointer}.rt-q button:disabled{opacity:.4;cursor:not-allowed}
.rt-opts{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin-top:6px}@media(max-width:560px){.rt-opts{grid-template-columns:1fr}}
.rt-sum{display:flex;justify-content:space-between;align-items:center;background:#fff7ec;border-radius:12px;padding:12px 14px;margin-top:12px}.rt-sum b{font-size:22px;color:#c2570c}
#history .toolbar{display:flex;gap:10px;flex-wrap:nowrap}#history .toolbar .searchbox{flex:1 1 auto}#history .toolbar select{flex:0 0 200px;width:200px}
.stk-l{display:flex!important;justify-content:space-between;align-items:center;gap:8px}.stk-zero{border:0;background:#ffe4e6;color:#be123c;font:inherit;font-size:11px;font-weight:800;border-radius:6px;padding:2px 8px;cursor:pointer}.stk-zero:hover{background:#fecdd3}
.adj-wrap{background:#fff4f4;border:1px solid #f5c2c7;border-radius:12px;padding:10px 12px;margin-top:6px}.adj-wrap.inc{background:#f1f7ff;border-color:#bfd6f6}.adj-h{font-size:12.5px;margin-bottom:6px}
.adj-g{display:grid;grid-template-columns:1fr 1.4fr;gap:10px}.adj-g label{margin-top:0!important}@media(max-width:640px){.adj-g{grid-template-columns:1fr}}
.adj-tb{flex-wrap:wrap}.adj-tb>.btn{flex:0 0 auto}.adj-d{display:flex!important;align-items:center;gap:6px;margin:0!important;font-size:12.5px;font-weight:700;flex:0 0 auto}.adj-d input{width:150px}
.adj-cards{grid-template-columns:repeat(4,minmax(0,1fr));margin:12px 0}@media(max-width:900px){.adj-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
.adj-by{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.adj-chip{border:1px solid #d8e8dc;background:#fff;border-radius:10px;padding:6px 10px;font:inherit;text-align:left;cursor:pointer}.adj-chip b{display:block;font-size:12.5px}.adj-chip span{font-size:11.5px;color:var(--muted)}.adj-chip.neg span{color:#c0262d}.adj-chip.pos span{color:#1d6fd8}.adj-chip:hover{background:#f3faf5}
.adj-r{display:inline-block;font-size:11.5px;font-weight:700;background:#eef2ef;border-radius:6px;padding:1px 7px}.adj-r.exp{background:#ffe4e6;color:#be123c}

/* ===== Tema Jihan Modern ===== */
/* Layout: sidebar putih ramping + topbar remah roti; ruang kerja netral kehijauan, hijau logo untuk aksi, oranye logo khusus untuk kasir & bayar */
:root{
 --jf-bg:#f4f6f3;--jf-surface:#ffffff;--jf-ink:#15201a;--jf-muted:#65736a;--jf-line:#e2e8e3;--jf-line-strong:#cfd9d2;
 --jf-green:#1a913b;--jf-green-ink:#0f6b2b;--jf-green-soft:#e9f5ec;--jf-orange:#ff8b10;--jf-orange-hover:#ef7d00;--jf-orange-soft:#fff3e4;
 --jf-font:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
 --ink:var(--jf-ink);--muted:var(--jf-muted);--line:var(--jf-line);--bg:var(--jf-bg);--shadow:none;--shadow-lg:0 12px 32px #15201a1f;
 color-scheme:light}
html,body{background:var(--jf-bg)!important}
body{font-family:var(--jf-font);color:var(--jf-ink);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font-family:inherit}
.metric,.txn-total,.right,td.right,.sum-line b,.draft .d-total,.money input,#paid{font-variant-numeric:tabular-nums}

/* Sidebar */
.sidebar{width:248px;background:var(--jf-surface);color:var(--jf-ink);border-right:1px solid var(--jf-line);box-shadow:none}
.app:not(.sb-open) .sidebar{margin-left:-248px}
.sb-head{padding:16px 14px 10px 18px;border-bottom:0}
.sb-logo{height:46px;width:auto;display:block}
.sb-x{background:transparent;color:var(--jf-muted);width:34px;height:34px}
.sb-x:hover{background:var(--jf-bg);color:var(--jf-ink)}
.sb-scroll{padding:6px 12px 16px}
.sb-link,.sb-item{display:flex;align-items:center;gap:11px;width:100%;color:#3a4840;font-weight:600;font-size:14px;padding:9px 10px;margin:1px 0;border-radius:10px;transition:background .15s,color .15s}
.sb-link .ic,.sb-item .ic{width:18px;height:18px;color:#8a978f;transition:color .15s}
.sb-item .t,.sb-link .t{flex:1;min-width:0}
.sb-link:hover,.sb-item:hover{background:#f1f5f2;color:var(--jf-ink)}
.sb-link:hover .ic,.sb-item:hover .ic{color:var(--jf-green)}
.sb-item.active,.sb-link.active{background:var(--jf-green-soft);color:var(--jf-green-ink);box-shadow:none}
.sb-item.active .ic,.sb-link.active .ic{color:var(--jf-green)}
.sb-item.active::before{display:none}
.sb-link.sb-cta{background:var(--jf-orange);color:#fff;font-weight:700;padding:12px 14px;margin:2px 0 10px;box-shadow:0 1px 0 #00000014}
.sb-link.sb-cta .ic{color:#fff}
.sb-link.sb-cta:hover{background:var(--jf-orange-hover);color:#fff}
.sb-link.sb-cta.active{background:var(--jf-orange-hover);color:#fff;box-shadow:0 0 0 3px #ff8b1033}
.sb-link.sb-cta.active .ic{color:#fff}
.sb-group-btn{display:flex;align-items:center;width:100%;background:transparent;color:#86938b;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:16px 10px 6px;margin:0;border-radius:8px}
.sb-group-btn:hover{background:transparent;color:var(--jf-ink)}
.sb-group-btn .chev{width:14px;height:14px;margin-left:auto;opacity:.7}
.sb-sub{max-height:520px}
.sb-cnt{font-size:10.5px;font-weight:700;background:var(--jf-orange-soft);color:#b35400;border-radius:999px;padding:1px 8px;margin-left:auto}
.sb-foot{border-top:1px solid var(--jf-line);padding:4px 12px 14px}
.sb-foot .sb-group-btn{padding-top:12px}
.sb-link:focus-visible,.sb-item:focus-visible,.sb-group-btn:focus-visible,.menu-btn:focus-visible,.btn:focus-visible{outline:2px solid var(--jf-green);outline-offset:2px}

/* Topbar */
header.topbar{background:#f4f6f3e6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--jf-line);box-shadow:none;padding:12px 24px;color:var(--jf-ink)}
header.topbar::after{display:none}
header.topbar .brand{gap:14px;min-width:0}
.menu-btn{width:40px;height:40px;border-radius:10px;background:var(--jf-surface);border:1px solid var(--jf-line);color:var(--jf-ink)}
.menu-btn:hover{background:var(--jf-green-soft);border-color:#cfe5d6}
.menu-btn .ic{width:20px;height:20px}
.crumb{display:flex;flex-direction:column;min-width:0}
.crumb-eyebrow{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--jf-muted)}
.crumb-title{margin:0;font-size:19px;font-weight:800;letter-spacing:-.01em;line-height:1.25;color:var(--jf-ink)}
.badge{background:var(--jf-surface);border:1px solid var(--jf-line);color:#3a4840;font-weight:600;border-radius:999px;padding:6px 12px}
#liveClock{font-variant-numeric:tabular-nums}
#syncStatus{gap:8px}
#syncStatus::before{background:var(--jf-green);box-shadow:0 0 0 3px #1a913b26}

/* Isi halaman */
main{padding:24px}
h2{font-size:22px;font-weight:800;letter-spacing:-.015em;gap:10px;text-wrap:balance}
h2 .ic{width:22px;height:22px;padding:0;border-radius:0;background:none!important;color:var(--jf-green)}
h3{font-size:15.5px;font-weight:700}
h3 .ic{color:var(--jf-green);width:18px;height:18px}
.card,.panel{background:var(--jf-surface);border:1px solid var(--jf-line);border-radius:14px;box-shadow:none}
.card::before{display:none}
.card:hover{transform:none;box-shadow:none;border-color:var(--jf-line-strong)}
.card .metric-label{font-weight:600;color:var(--jf-muted)}
.card .metric-label .mi{width:32px;height:32px;padding:7px;border-radius:9px}
.metric{font-size:26px;font-weight:800;letter-spacing:-.02em;color:var(--jf-ink)}
.notice{background:var(--jf-orange-soft);border:1px solid #fbdcb6;color:#6b4410;border-radius:12px}
.notice>.ic{color:var(--jf-orange)}
.muted{color:var(--jf-muted)}

/* Tombol & isian */
.btn{background:var(--jf-green);box-shadow:none;border-radius:10px;font-weight:700}
.btn:hover{background:#157f33;filter:none;transform:none}
.btn.secondary{background:#edf3ef;color:var(--jf-green-ink)}
.btn.secondary:hover{background:#e0ebe3}
.btn.danger{background:#fff1f2;color:#be123c}
.btn.solid-danger{background:#d61f45;box-shadow:none}
#checkout,#checkout2{background:var(--jf-orange);color:#fff;box-shadow:none}
#checkout:hover,#checkout2:hover{background:var(--jf-orange-hover)}
input,select,textarea{border-color:#d4ddd6;border-radius:10px}
input:focus,select:focus,textarea:focus{border-color:var(--jf-green);box-shadow:0 0 0 3px #1a913b24}

/* Tabel */
.tablewrap{box-shadow:none;border:1px solid var(--jf-line);border-radius:12px}
th{background:#f7f9f7;color:#5a685f;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border-bottom:1px solid var(--jf-line)}
tbody tr:nth-child(even){background:transparent}
tbody tr:hover{background:#f6faf7}
.total{background:var(--jf-green-soft);border-left:0;color:var(--jf-green-ink)}
.product:hover{background:#f3f8f4}

/* Kasir */
.draft{box-shadow:none;border:1px solid var(--jf-line);border-radius:12px}
.draft:hover{border-color:var(--jf-line-strong)}
.draft.active{background:var(--jf-surface);border-color:var(--jf-orange);box-shadow:0 0 0 3px #ff8b1022}
.txn-total{font-weight:800;letter-spacing:-.02em}
.infobox{border-color:var(--jf-line);border-radius:12px}
.ib+.ib{border-left-color:var(--jf-line)}
.ib label{color:var(--jf-green-ink)}
.pos-results{border-color:var(--jf-line);box-shadow:0 16px 36px #15201a1f}
.seg button.on{background:var(--jf-green);color:#fff}
.qp.exact{background:var(--jf-green);box-shadow:none}
.sum-line.grand{background:var(--jf-orange-soft);border-left:0;border-radius:10px;margin:6px 0;padding:12px 14px}
.sum-line.grand b{color:var(--jf-ink)}
.sb-logo{height:52px}
.modal{border-radius:16px}
.modal-back{background:#15201a80}
.toast{background:var(--jf-ink)}

/* Kasir: tata letak menyesuaikan lebar area kerja, bukan lebar layar */
#pos{container:poswrap/inline-size}
.pos-main{container:posmain/inline-size;min-width:0}
.pkp-rate{width:112px}
.pkp-rate input{-moz-appearance:textfield;appearance:textfield}
.pkp-rate input::-webkit-outer-spin-button,.pkp-rate input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
@container poswrap (max-width:1040px){
 .pos-wrap{grid-template-columns:minmax(0,1fr);gap:14px}
 .pos-side{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px}
 .pos-side h2{display:none}
 #draftList{display:flex;gap:8px;overflow-x:auto;max-width:100%;padding:3px}
 #draftList .draft{flex:0 0 190px;margin:0}
 #newDraft{width:auto!important;margin:3px 0!important;flex:0 0 auto}
}
@container posmain (max-width:820px){
 .pos-summary{grid-template-columns:minmax(0,1fr)}
 .adj-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));column-gap:18px}
 .adj-card h3{grid-column:1/-1}
 .adj-card .adj-field{margin-bottom:0}
}
.uom-sep{color:var(--jf-muted);margin:0 2px;font-weight:400}.uom-s{cursor:help}
.uom-path{display:inline-flex;align-items:stretch;border:1px solid var(--jf-line-strong);border-radius:8px;overflow:hidden;background:var(--jf-surface);font-size:11.5px;line-height:1;vertical-align:middle}
.uom-path b{font-weight:700;color:var(--jf-ink);padding:5px 8px;letter-spacing:.02em}
.uom-path i{font-style:normal;font-weight:600;font-size:10.5px;color:var(--jf-muted);background:#f3f6f4;padding:5px 5px;display:flex;align-items:center;font-variant-numeric:tabular-nums}
.uom-path.one{background:transparent;border-color:transparent}.uom-path.one b{padding-left:0}
/* Hasil cari kasir: satu kolom satuan (pilih), info barang lebih kecil */
#posProducts .pr-name strong{font-size:14px;font-weight:700}
#posProducts .pr-meta{font-size:11px;color:#8a978f;margin-top:3px}
#posProducts .pr-meta i{color:#8a978f}
#posProducts .pr-stock{font-weight:600;color:var(--jf-green-ink)}
#posProducts .pc-tag{font-size:10px;padding:1px 6px}
#posProducts .pr-units{display:grid;grid-template-columns:118px 104px auto;align-items:center;gap:10px;margin-top:0;flex:none}
.u-selw{position:relative;display:flex;align-items:center;margin:0;height:34px;border:1px solid var(--jf-line-strong);border-radius:9px;background:var(--jf-surface);padding:0 28px 0 11px;cursor:pointer}
.u-selw:hover,.u-selw:focus-within{border-color:var(--jf-green)}
.u-selw:focus-within{box-shadow:0 0 0 3px #1a913b24}
.u-sel{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;border:0;padding:0}
.u-selv{font-size:12.5px;font-weight:700;color:var(--jf-ink);letter-spacing:.02em;pointer-events:none}
.u-selw .ic{position:absolute;right:8px;width:15px;height:15px;color:var(--jf-muted);pointer-events:none}
.u-one{display:flex;align-items:center;height:34px;padding:0 11px;font-size:12.5px;font-weight:700;color:var(--jf-muted)}
#posProducts .u-info{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}
#posProducts .u-pr{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--jf-ink)}
#posProducts .u-old{font-size:11px;color:var(--jf-muted)}
#posProducts .u-add{height:34px}
@media(max-width:900px){#posProducts .pr-units{grid-template-columns:1fr auto auto;width:100%;margin-top:8px}}
/* Metode bayar & pratinjau struk */
.pm-field{margin:4px 0 14px}
.pm-label{display:block;font-size:13px;font-weight:800;color:#33463a;margin-bottom:7px}
.pm-seg{display:flex;width:100%}.pm-seg button{flex:1;min-height:40px}
.pm-ref{margin-top:10px}.pm-ref label{margin:0 0 5px;font-size:12.5px}.pm-ref small{font-weight:400;color:var(--jf-muted)}
.modal.rc-pop{max-width:460px;padding:18px}
.rc-pop-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:12px}.rc-pop-h h3{margin:0}
.rc-pop-b{background:#eef2ef;border-radius:12px;padding:16px 10px;max-height:min(62vh,560px);overflow:auto;margin-bottom:14px}
.rc-pop .rc-paper{max-width:100%}
#posProducts .pr-units{grid-template-columns:56px 104px 92px auto;gap:8px}
#posProducts .pr-main{flex:1 1 200px}
.u-qty{width:56px;height:34px;padding:4px 6px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}
@media(max-width:900px){#posProducts .pr-units{grid-template-columns:56px 1fr auto auto}}
/* Rekening & QRIS */
.ps-intro{margin:-8px 0 16px}
.ps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:16px;align-items:start}
.bank-form{display:grid;gap:4px}.bank-form label{margin-top:6px}
.bf-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.bf-act{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.bank-list{display:grid;gap:8px;margin-top:16px}
.bank-item{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--jf-line);border-radius:12px;padding:10px 12px}
.bi-main{display:flex;flex-direction:column;gap:1px;min-width:0}.bi-main b{font-size:14px}.bi-no{font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:.03em}
.bi-act{display:flex;gap:6px}
.bank-empty{border:1px dashed var(--jf-line-strong);border-radius:12px;padding:16px}
.qr-set{display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px;align-items:start}
@media(max-width:560px){.qr-set{grid-template-columns:1fr}}
.qr-box{aspect-ratio:1;max-width:100%;border:1px solid var(--jf-line);border-radius:12px;background:#fff;display:grid;place-items:center;overflow:hidden}
.qr-box img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.qr-empty{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--jf-muted);font-size:12.5px;text-align:center;padding:12px}.qr-empty .ic{width:28px;height:28px}
.qr-side{display:flex;flex-direction:column;gap:8px}.qr-side label:first-child{margin-top:0}
.qr-up{cursor:pointer;justify-content:center;margin:4px 0 0!important;color:var(--jf-green-ink)!important;font-size:14px!important}
.linkbtn{border:0;background:none;padding:0;font:inherit;color:var(--jf-green-ink);font-weight:700;text-decoration:underline;cursor:pointer}
/* Kasir: rekening tujuan */
.pm-bank{margin-top:10px}.pm-bank label{margin:0 0 5px;font-size:12.5px}
.pm-bank-info{font-size:12.5px;color:var(--jf-muted);margin-top:6px}
/* Pop-up QRIS */
.modal.qr-pop{max-width:380px;text-align:center;padding:20px}
.qr-pop-h{display:flex;justify-content:center;align-items:center;gap:10px;margin-bottom:12px}
.qr-badge{font-weight:800;letter-spacing:.08em;font-size:13px;background:var(--jf-ink);color:#fff;border-radius:6px;padding:3px 8px}
.qr-pop-img{background:#fff;border:1px solid var(--jf-line);border-radius:14px;padding:10px;margin:0 auto 14px;width:min(100%,280px);aspect-ratio:1}
.qr-pop-img img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.qr-pop-none{display:flex;flex-direction:column;gap:6px;background:var(--jf-orange-soft);border-radius:12px;padding:16px;margin-bottom:14px;font-size:13px;color:#6b4410}
.qr-pop-amt{display:flex;flex-direction:column;gap:2px;background:var(--jf-green-soft);border-radius:12px;padding:10px;margin-bottom:10px}
.qr-pop-amt span{font-size:12px;color:var(--jf-muted)}.qr-pop-amt b{font-size:26px;font-variant-numeric:tabular-nums;color:var(--jf-ink)}
.qr-pop-note{font-size:12.5px;line-height:1.45;margin:0 0 16px!important}
.qr-pop .actions,.modal.sale-ok .actions{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}
.qr-pop .actions .btn,.modal.sale-ok .actions .btn{min-width:0;width:100%;white-space:nowrap}
.modal.sale-ok .actions [data-a="print"]{grid-column:1/-1;order:-1}
.qr-pop .actions{grid-template-columns:1fr!important}.qr-pop .actions [data-a="paid"]{order:-1}
.modal.sale-ok .actions small{display:none}
.modal.sale-ok h3{text-align:center}
.modal.sale-ok{width:100%;max-width:400px}
/* Riwayat: satu menu aksi + jenis bayar */
.hs-menu{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px 0 12px;border:1px solid var(--jf-line-strong);border-radius:9px;background:var(--jf-surface);font:inherit;font-size:12.5px;font-weight:700;color:var(--jf-ink);cursor:pointer}
.hs-menu .ic{width:14px;height:14px;color:var(--jf-muted);transition:transform .15s}
.hs-menu:hover,.hs-menu[aria-expanded="true"]{border-color:var(--jf-green);background:var(--jf-green-soft)}
.hs-menu[aria-expanded="true"] .ic{transform:rotate(180deg)}
.hs-pop{position:fixed;z-index:900;min-width:196px;background:var(--jf-surface);border:1px solid var(--jf-line);border-radius:12px;box-shadow:0 14px 34px #15201a26;padding:6px;display:flex;flex-direction:column;gap:2px;font-family:var(--jf-font)}
.hs-pop button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;font:inherit;font-size:13.5px;font-weight:600;color:var(--jf-ink);padding:9px 10px;border-radius:8px;text-align:left;cursor:pointer}
.hs-pop button .ic{width:16px;height:16px;color:var(--jf-muted)}
.hs-pop button:hover:not([disabled]),.hs-pop button:focus-visible{background:#f1f5f2;outline:0}
.hs-pop button.danger{color:#be123c}.hs-pop button.danger .ic{color:#be123c}
.hs-pop button.danger:hover,.hs-pop button.danger:focus-visible{background:#fff1f2}
.hs-pop button[disabled]{opacity:.45;cursor:not-allowed}
.pm-b{display:inline-block;font-size:11px;font-weight:700;border-radius:999px;padding:2px 9px;white-space:nowrap}
.pm-cash{background:var(--jf-green-soft);color:var(--jf-green-ink)}
.pm-transfer{background:#e8f0fe;color:#1d4ed8}
.pm-qris{background:#15201a;color:#fff}
.pm-sub{font-size:11px;margin-top:2px;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#history td:first-child{white-space:nowrap}
.iac-pop{position:fixed;z-index:950;background:var(--jf-surface);border:1px solid var(--jf-line);border-radius:12px;box-shadow:0 14px 34px #15201a26;padding:4px;overflow:auto;font-family:var(--jf-font)}
.iac-opt{display:flex;flex-direction:column;gap:1px;padding:8px 10px;border-radius:8px;cursor:pointer}
.iac-opt b{font-size:13.5px;font-weight:700;color:var(--jf-ink)}
.iac-opt span{font-size:11px;color:var(--jf-muted)}
.iac-opt:hover{background:#f3f7f4}
.iac-opt.on{background:var(--jf-green-soft)}.iac-opt.on b{color:var(--jf-green-ink)}
.iac-none{padding:12px;font-size:12.5px;color:var(--jf-muted)}
input[data-inv-batch],input[id$="Batch"]{text-transform:uppercase}
input[data-inv-batch]::placeholder,input[id$="Batch"]::placeholder{text-transform:none}
.supplier-suggestion:first-child:not(.kb),.supplier-suggestion.kb{background:var(--jf-green-soft)}
.supplier-suggestions:has(.kb) .supplier-suggestion:first-child:not(.kb){background:#fff}
.iac-pop[hidden]{display:none}
.inv-disc{display:flex;align-items:stretch;gap:6px;min-width:150px;flex-direction:row-reverse;justify-content:flex-end}
.inv-disc .seg{border-radius:9px}.inv-disc .seg button{min-height:36px;padding:0 10px;font-size:12.5px}
.inv-disc input{width:92px;text-align:right}
.inv-dm1{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:50px;border:1px solid var(--jf-line-strong);background:var(--jf-green-soft);color:var(--jf-green-ink);border-radius:9px;font:inherit;font-size:13px;font-weight:800;cursor:pointer;padding:0 8px}
.inv-dm1 .ic{width:12px;height:12px;opacity:.6}
.inv-dm1:hover{border-color:var(--jf-green)}
.inv-addrow{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:8px;padding:11px 14px;border:1.5px dashed var(--jf-line-strong);border-radius:12px;background:transparent;font:inherit;font-size:14px;font-weight:700;color:var(--jf-green-ink);cursor:pointer;transition:background .15s,border-color .15s}
.inv-addrow .ic{width:18px;height:18px}
.inv-r2{align-items:flex-start;flex-wrap:wrap}.inv-r2>*{min-width:150px}.inv-r2>.inv-sup{flex:2 1 260px}#selectedSupplierInfo{display:none}
.inv-addrow .muted{font-weight:500;font-size:12px}
.inv-addrow:hover:not(:disabled){background:var(--jf-green-soft);border-color:var(--jf-green)}
.inv-addrow:disabled{opacity:.5;cursor:not-allowed}
/* Rincian faktur ringkas: muat penuh tanpa geser */
.inv-table{table-layout:fixed;width:100%;font-size:13px}
.inv-table col.c-nm{width:auto}.inv-table col.c-u{width:78px}.inv-table col.c-q{width:58px}.inv-table col.c-c{width:108px}.inv-table col.c-b{width:92px}.inv-table col.c-e{width:110px}.inv-table col.c-d{width:104px}.inv-table col.c-s{width:104px}.inv-table col.c-a{width:78px}
.inv-table th{padding:8px 6px;font-size:10.5px}
.inv-table td{padding:6px;vertical-align:top}
.inv-table th:first-child,.inv-table td:first-child{padding-left:10px}
.inv-table th:last-child,.inv-table td:last-child{padding-right:10px}
.inv-table input,.inv-table select{width:100%;min-width:0!important;height:34px;padding:5px 8px;font-size:13px;border-radius:8px}
.inv-table select{padding-right:4px}
.inv-table input.right{text-align:right}
.inv-table input[type=number]{-moz-appearance:textfield;appearance:textfield}.inv-table input[type=number]::-webkit-outer-spin-button,.inv-table input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.inv-table .inv-disc{min-width:0;gap:4px}
.inv-table .inv-disc input{width:100%;flex:1 1 auto}
.inv-table .inv-dm1{min-width:34px;padding:0 6px;height:34px;border-radius:8px}
.inv-table tr.inv-view td{padding-top:10px;padding-bottom:10px;vertical-align:middle}
.inv-table tr.inv-view .inv-nm{display:block;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inv-table tr.inv-view small{display:block;font-size:11px}
.inv-table tr.inv-edit{background:#f7fbf8}
.inv-table td.right b{font-variant-numeric:tabular-nums}
.inv-sm{font-size:11px;margin-top:2px}
.xs-b{display:inline-block;font-size:10.5px;font-weight:700;margin-top:3px;white-space:nowrap}.xs-b.ok{color:#067647}.xs-b.warn{color:#b54708}.xs-b.bad{color:#b42318}
.inv-act .hs-menu{height:30px;padding:0 8px 0 10px;font-size:12px}
.inv-tw{overflow-x:auto}
@media(max-width:900px){.inv-table{min-width:860px}}
.inv-table input.inv-req{border-color:#e11d48;box-shadow:0 0 0 3px #e11d4822;background:#fff7f8}
.inv-table th .req{color:#e11d48}
.inv-hdr{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px 12px;align-items:start}
.inv-hdr>div{min-width:0}.inv-hdr label{margin-top:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inv-hdr .h-d{grid-column:span 2}
.inv-hdr .h-s{grid-column:span 2}
#invNumber{text-transform:uppercase}#invNumber::placeholder{text-transform:none}
@media(max-width:1100px){.inv-hdr{grid-template-columns:repeat(2,minmax(0,1fr))}.inv-hdr .h-d{grid-column:auto}.inv-hdr .h-s:first-child{grid-column:span 2}.inv-hdr .h-s{grid-column:span 2}}
.modal.pay-m{max-width:440px}.pay-m p{line-height:1.6}
.pay-m-g{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;margin-bottom:18px}.pay-m-g label{margin-top:0}
@media(max-width:480px){.pay-m-g{grid-template-columns:1fr}}
.cs-intro{margin:-8px 0 16px;max-width:80ch;line-height:1.55}
.cs-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.cs-head h3{margin:0}.cs-head select{width:auto;min-width:200px}
.cs-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:12px}
.cs-owe{color:#b45309}
.cs-tag{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.03em;background:#f3e8ff;color:#7c3aed;border-radius:999px;padding:1px 7px;vertical-align:middle}
/* Jatuh tempo */
.due-alert{display:flex;gap:12px;align-items:flex-start;background:#fff7ec;border:1px solid #fbd9a8;border-radius:14px;padding:12px 14px;margin:0 0 14px;color:#6b4410}
.due-alert.late{background:#fff1f2;border-color:#fecdd3;color:#7f1d1d}
.due-alert>.ic{width:20px;height:20px;flex:none;margin-top:2px;color:#e07a00}.due-alert.late>.ic{color:#e11d48}
.da-b{flex:1;min-width:0;font-size:13.5px}.da-b ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.da-b li{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:12.5px;border-top:1px dashed #00000014;padding-top:4px}
.da-r{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.da-r em{font-style:normal;font-weight:700}.da-r em.warn{color:#b45309}.da-r em.bad{color:#be123c}
.due-alert .btn{flex:none}
.due-tag{font-size:11px;font-weight:700;color:#b45309;margin-top:2px}.due-tag.bad{color:#be123c}
.sb-cnt.sb-due{background:#fff0dc;color:#b45309;flex:none}.sb-item .t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sb-cnt.sb-due.late{background:#ffe4e6;color:#be123c}
/* Tinjau harga */
.modal.pr-m{max-width:760px;width:100%}
.pr-tw{max-height:min(52vh,460px);overflow:auto}
.pr-m td{vertical-align:top}.pr-m .money input{font-size:14px;padding:8px 10px}
.pr-m .up{color:#be123c;font-weight:700}.pr-m .down{color:#067647;font-weight:700}
.pr-m .bad{color:#be123c;font-weight:700}.pr-m .warn{color:#b45309;font-weight:700}
.pur-cards{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.pc-btn{font:inherit;text-align:left;color:inherit;cursor:pointer;width:100%}
.pc-btn:hover{border-color:var(--jf-green)!important}
.pc-btn:focus-visible{outline:2px solid var(--jf-green);outline-offset:2px}
.pc-btn.on{border-color:var(--jf-green)!important;box-shadow:0 0 0 3px #1a913b26!important}
.pc-btn .metric{font-size:22px}
/* Profil apotek */
.pf-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 14px}
.pf-grid>div{min-width:0}.pf-grid label{margin-top:8px}
.pf-wide{grid-column:span 2}.pf-full{grid-column:1/-1}
.pf-grid textarea{resize:vertical;min-height:60px}
.pf-act{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}
.pf-chk{display:flex!important;align-items:center;gap:8px;margin:0!important;font-size:13px;color:var(--jf-ink)}
.sdm-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.sdm-head h3{margin:0}
.modal.sf-m{max-width:620px;width:100%}.sf-m .pf-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:16px}.sf-m .pf-wide{grid-column:span 1}
.role-b{display:inline-block;font-size:11px;font-weight:700;border-radius:999px;padding:2px 9px;background:#eef2ef;color:#3a4840;white-space:nowrap}
.role-b.r-owner{background:#fff0dc;color:#b45309}.role-b.r-apj{background:var(--jf-green-soft);color:var(--jf-green-ink)}.role-b.r-apa{background:#e6f6ef;color:#0f6b4a}.role-b.r-ttk{background:#e8f0fe;color:#1d4ed8}
.lic-t{font-weight:700}.lic-t.bad{color:#be123c}.lic-t.warn{color:#b45309}
@media(max-width:760px){.pf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-wide{grid-column:1/-1}}
@media(max-width:480px){.pf-grid,.sf-m .pf-grid{grid-template-columns:1fr}.pf-wide,.pf-full{grid-column:1/-1}}
/* Input tanggal DD/MM/YYYY */
.dmy-w{position:relative;display:flex;align-items:stretch;width:100%}
.dmy-w .dmy-in{flex:1 1 auto;min-width:0;padding-right:38px;font-variant-numeric:tabular-nums}
.dmy-cal{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;background:transparent;border-radius:7px;color:var(--jf-muted);display:grid;place-items:center;cursor:pointer}
.dmy-cal:hover:not(:disabled){background:var(--jf-green-soft);color:var(--jf-green-ink)}
.dmy-cal .ic{width:17px;height:17px}
.dmy-nat{position:absolute!important;right:0;bottom:0;width:1px!important;height:1px!important;opacity:0;pointer-events:none;border:0!important;padding:0!important}
.dmy-w.dis{opacity:.55}.dmy-w.dis .dmy-cal{cursor:not-allowed}
/* Surat pesanan */
.sp-intro{margin:-8px 0 16px;max-width:85ch;line-height:1.55}
.df-selbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:-4px 0 8px}
.df-selact{display:flex;align-items:center;gap:10px}.df-selact .muted{font-size:12.5px;font-weight:600}
.sp-t{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.03em;border-radius:999px;padding:1px 7px;vertical-align:middle;background:#eef2ef;color:#3a4840}
.sp-t.sp-oot{background:#fff0dc;color:#b45309}.sp-t.sp-pre{background:#fde8f1;color:#be185d}.sp-t.sp-psi{background:#ede9fe;color:#6d28d9}.sp-t.sp-nar{background:#ffe4e6;color:#be123c}
.sp-on{display:inline-block;font-size:10px;font-weight:700;background:#e8f0fe;color:#1d4ed8;border-radius:999px;padding:1px 7px;vertical-align:middle}
.sp-wait{background:#fff0dc;color:#b45309}
.modal.sp-m{max-width:860px;width:100%}.sp-tw{max-height:min(46vh,420px);overflow:auto;margin-top:10px}
.sp-m td{vertical-align:top}.sp-m select,.sp-m input{height:34px;padding:5px 8px;font-size:13px}
.sp-x{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:6px;margin-top:6px}
.sp-q{display:flex;gap:6px}.sp-q input{width:64px;text-align:right}
.sp-apj{font-size:13px;background:var(--jf-green-soft);color:var(--jf-green-ink);border-radius:10px;padding:8px 12px}.sp-apj.bad{background:#fff1f2;color:#9f1239}
.sp-sum{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 16px}.sp-g{font-size:12px;border:1px solid var(--jf-line);border-radius:999px;padding:4px 10px}.sp-g.bad{border-color:#fecdd3;color:#be123c}
.modal.spv-m{max-width:820px;width:100%}.spv-b{background:#eef2ef;border-radius:12px;padding:14px;max-height:min(66vh,720px);overflow:auto;margin-bottom:14px}.spv-b .spd{box-shadow:0 2px 14px #0002;max-width:760px;margin:0 auto}
.sp-det summary{cursor:pointer;color:var(--jf-green-ink);font-weight:600}.sp-det ul{text-align:left;margin:6px 0 0;padding-left:16px;font-size:12px}
/* TTE & pratinjau SP A4 */
.sig-box{margin-top:6px}
.sig-wrap{position:relative;border:1.5px dashed var(--jf-line-strong);border-radius:12px;background:#fff;overflow:hidden;max-width:560px}
.sig-wrap canvas{display:block;width:100%;height:auto;aspect-ratio:560/180;touch-action:none;cursor:crosshair}
.sig-hint{position:absolute;inset:0;display:grid;place-items:center;color:var(--jf-muted);font-size:12.5px;pointer-events:none}
.sig-act{display:flex;gap:8px;margin-top:8px}.sig-up{cursor:pointer;margin:0!important}
.sig-ok{font-size:11px;color:var(--jf-green-ink);font-weight:600;margin-top:3px}
.spv-b{display:flex;flex-direction:column;align-items:center;gap:14px}
.spv-pg{width:100%;max-width:640px}.spv-pg canvas{display:block;width:100%;height:auto;box-shadow:0 2px 14px #0002;background:#fff}
.spv-lb{text-align:center;font-size:11.5px;color:var(--jf-muted);margin-top:5px}
/* Modal panjang: isi bisa digulir, tombol tetap terlihat */
.modal{max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
.modal>.actions{position:sticky;bottom:-22px;margin:14px -22px -22px;padding:12px 22px 18px;background:var(--jf-surface);border-top:1px solid var(--jf-line);z-index:2}
.sf-m .pf-grid{margin-bottom:0}
.sig-top{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}.sig-top label{margin:0}
.sig-act{margin-top:0!important}
.sig-wrap{max-width:none;margin-top:6px}.sig-wrap canvas{aspect-ratio:560/160;max-height:160px}
.sig-note{font-size:11.5px;color:var(--jf-green-ink);margin-top:4px;min-height:14px}
.sig-mode{display:flex;width:100%;margin-top:6px}.sig-mode button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;font-size:13px}.sig-mode button .ic{width:16px;height:16px}
.sig-drop{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;margin-top:8px!important;padding:22px 14px;border:1.5px dashed var(--jf-line-strong);border-radius:12px;background:#fafcfa;cursor:pointer;color:var(--jf-ink)!important;transition:.15s}
.sig-drop .ic{width:26px;height:26px;color:var(--jf-green)}.sig-drop b{font-size:14px}.sig-drop span{font-size:12px;color:var(--jf-muted)}
.sig-drop:hover,.sig-drop.over{border-color:var(--jf-green);background:var(--jf-green-soft)}
.sig-clean{display:flex!important;align-items:center;gap:8px;margin:8px 0 0!important;font-size:12.5px;color:var(--jf-ink)!important}
.sig-change{font-size:12.5px;margin-top:4px}
.sig-file{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}
.sig-pick{margin-top:6px;pointer-events:none}
.sig-drop .sig-pick{color:#fff!important;font-size:12.5px!important;font-weight:700}
.sig-drop[hidden],.sig-clean[hidden],.sig-wrap[hidden],.sig-change[hidden]{display:none!important}
/* Tab daftar barang & lencana kedaluwarsa */
.sl-tabs{display:flex;width:max-content;max-width:100%;margin:-4px 0 16px}.sl-tabs button{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 16px;font-size:13.5px}.sl-tabs button .ic{width:16px;height:16px}
.sl-tabn{font-size:10.5px;font-weight:800;background:#ffe4e6;color:#be123c;border-radius:999px;padding:0 7px;line-height:17px}.sl-tabs button.on .sl-tabn{background:#fff;color:#be123c}
.exp-b{display:inline-flex;align-items:center;gap:3px;vertical-align:1px;margin-left:6px;font-size:10.5px;font-weight:800;line-height:1;padding:3px 7px 3px 5px;border-radius:999px;white-space:nowrap;cursor:help;flex:none}
.exp-b .ic{width:12px;height:12px}
.exp-b.expired{background:#be123c;color:#fff}
.exp-b.m3{background:#ffe4e6;color:#be123c}
.exp-b.m5{background:#fff0dc;color:#b45309}
td .exp-b{margin-left:0;margin-top:3px}td>.exp-b,td div>.exp-b{display:inline-flex}
/* Frekuensi */
.fq-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.fq-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--jf-line);background:var(--jf-surface);border-radius:999px;padding:4px 10px;font:inherit;font-size:12px;font-weight:600;color:var(--jf-ink);cursor:pointer}
.fq-chip b{font-variant-numeric:tabular-nums;color:var(--jf-muted);font-weight:700}
.fq-chip:hover{border-color:var(--jf-line-strong)}.fq-chip.on{border-color:var(--jf-green);box-shadow:0 0 0 3px #1a913b22}
.fq-b{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;white-space:nowrap;cursor:help;color:var(--jf-ink)}
.fq-b i,.fq-chip i{width:8px;height:8px;border-radius:50%;flex:none;background:#9aa69e}
.f1 i{background:#15803d}.f2 i{background:#4caf50}.f3 i{background:#84cc16}.f4 i{background:#eab308}.f5 i{background:#f97316}.f6 i{background:#dc2626}.f0 i{background:#94a3b8}
.fq-b.f6{color:#b91c1c}.fq-b.f0{color:var(--jf-muted)}
.sl-zero{font-size:11.5px;color:#be123c!important;margin-left:4px}
#slExpCard{cursor:pointer}
.hs-filter{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:-4px 0 12px}
#hsPerSel{min-width:180px}.hs-range{display:inline-flex;align-items:center;gap:8px}.hs-range[hidden],#hsDayW[hidden],#hsMonW[hidden]{display:none!important}.hs-range .dmy-w{width:170px}
.hs-filter input,.hs-filter select{width:auto;min-width:170px}#hsMon{min-width:190px}
.hs-filter .dmy-w{width:180px}
.hs-sum{background:var(--jf-surface);border:1px solid var(--jf-line);border-radius:14px;padding:14px 16px;margin-bottom:14px}
.hs-sum-h{font-size:13px;color:var(--jf-muted);margin-bottom:10px}.hs-sum-h b{color:var(--jf-ink)}
.hs-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.hs-c{border:1px solid var(--jf-line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.hs-c>span{font-size:12px;color:var(--jf-muted);font-weight:600}.hs-c>b{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}.hs-c small{font-size:11.5px;color:var(--jf-muted)}
.hs-c.main{background:var(--jf-green-soft);border-color:#cfe7d6}.hs-c.main>b{color:var(--jf-green-ink)}
.hs-pm{display:flex;flex-direction:column;gap:4px;margin-top:2px}.hs-pm>span{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums}.hs-pm i{font-style:normal}
.hs-byc{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px;font-size:12.5px}
.hs-cc{border:1px solid var(--jf-line);background:var(--jf-surface);border-radius:999px;padding:4px 10px;font:inherit;font-size:12px;cursor:pointer;color:var(--jf-ink)}.hs-cc:hover{border-color:var(--jf-green)}
/* TTD opsional */
.sig-toggle{display:flex;align-items:center;gap:10px;width:100%;margin-top:10px;padding:10px 12px;border:1px dashed var(--jf-line-strong);border-radius:12px;background:#fafcfa;font:inherit;color:var(--jf-ink);cursor:pointer;text-align:left}
.sig-toggle>.ic{width:18px;height:18px;color:var(--jf-green)}.sig-toggle span{flex:1}.sig-toggle small{color:var(--jf-muted);font-size:11.5px}
.sig-toggle em{font-style:normal;font-size:11.5px;font-weight:700;color:var(--jf-muted)}.sig-toggle .chev{width:16px;height:16px;color:var(--jf-muted);transition:transform .15s}
.sig-toggle.open .chev{transform:rotate(180deg)}.sig-toggle:hover{border-color:var(--jf-green)}
.sig-box[hidden]{display:none!important}
/* Manajemen pengguna */
.ac-note{display:flex;gap:10px;align-items:flex-start;background:#eef6ff;border:1px solid #cfe0fb;color:#1e3a8a;border-radius:12px;padding:12px 14px;margin-bottom:14px;font-size:13px;line-height:1.5}.ac-note>.ic{width:18px;height:18px;flex:none;margin-top:2px}
.ac-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.ac-head h3{margin:0}
.ac-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ac-prev{display:flex!important;align-items:center;gap:8px;margin:0!important;font-size:13px;color:var(--jf-ink)!important}.ac-prev select{width:auto;min-width:190px}
.ac-users{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.ac-u{border:1px solid var(--jf-line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;font-size:13px}.ac-u .role-b{align-self:flex-start}
.ac-table th.ac-c,.ac-table td.ac-c{text-align:center;width:118px}.ac-table th.ac-c span{display:block}
.ac-col{font-size:10.5px;text-transform:none;letter-spacing:0}
.ac-table tr.ac-g td{background:#f7f9f7;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--jf-muted);padding-top:7px;padding-bottom:7px}
.ac-table input[disabled]{opacity:.5;cursor:not-allowed}
.ac-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#1e3a8a;color:#fff;padding:8px 24px;font-size:13px}.ac-bar .ic{width:16px;height:16px}.ac-bar span{flex:1}.ac-bar .btn{background:#fff;color:#1e3a8a}
.sb-group[hidden],.sb-item[hidden]{display:none!important}
/* ===== Kasir: area pembayaran ringkas ===== */
.pos-top>div:first-child{display:none}
.pos-top{margin-bottom:12px}.pos-top .infobox{flex:1;min-width:0}
.pos-summary{display:flex!important;flex-direction:column;gap:12px;margin-top:12px}
.pay-card{border-radius:14px;padding:12px 14px;box-shadow:none}
.adj-card{display:grid!important;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.2fr);gap:12px;align-items:end}
.adj-card h3,.adj-card .hint{display:none!important}
.adj-card .adj-field{margin:0!important;min-width:0}
.adj-card .adj-field>label{font-size:11px!important;font-weight:700!important;letter-spacing:.05em;text-transform:uppercase;color:var(--jf-muted)!important;margin:0 0 5px!important}
.adj-card .seg button{min-height:34px;padding:0 12px;font-size:12.5px}
.adj-card .money input{font-size:14px;padding:6px 10px;height:34px}
.adj-card .money .pre{padding:0 9px;font-size:12.5px}
.adj-card .money{border-radius:9px}
.adj-card .adj-row{gap:6px}
.pkp-row{gap:8px!important}.pkp-txt{font-size:12px!important}.pkp-txt b{font-weight:600}
.pkp-rate{width:78px!important}
.switch{transform:scale(.85);transform-origin:left center}
.pos-summary>.pay-card{width:100%;max-width:none}
.total-card{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start;width:100%}
.pkp-txt b{white-space:nowrap}
.ts-left,.ts-right{min-width:0}
.total-card .sum-line{padding:6px 0;font-size:13.5px}
.total-card .sum-line b{font-weight:700}
.total-card .sum-line.grand{margin:8px 0 0;padding:10px 12px;font-size:14px}
.total-card .sum-line.grand b{font-size:22px;font-weight:800}
.pm-field{margin:0 0 10px!important}
.pm-label{font-size:11px!important;font-weight:700!important;letter-spacing:.05em;text-transform:uppercase;color:var(--jf-muted)!important;margin-bottom:5px!important}
.pm-seg button{min-height:34px!important;font-size:13px}
.pay-field{margin:0 0 4px!important}
.pay-field>label{font-size:11px!important;font-weight:700!important;letter-spacing:.05em;text-transform:uppercase;color:var(--jf-muted)!important;margin:0 0 5px!important}
.money.big input{font-size:18px!important;padding:7px 10px!important;height:40px}
.money.big .pre{font-size:13px}
.quick-pay{gap:6px!important;margin-top:8px!important}
.qp{padding:4px 10px!important;font-size:12px!important;font-weight:700!important}
.sum-line.change{padding:8px 0 10px!important;font-size:13.5px}.sum-line.change b{font-size:16px!important}
#checkout2{min-height:42px;font-size:14.5px;width:100%;padding:0 14px}
@container posmain (max-width:700px){.total-card{grid-template-columns:1fr}.adj-card{grid-template-columns:1fr 1fr}.adj-card .pkp-field{grid-column:1/-1}}
/* Kasir: penyesuaian menyatu di ringkasan */
#sumPpnRow[hidden]{display:grid!important}
.sl-hidden,#pkpLbl,.pkp-txt{display:none!important}
.total-card .sum-line.sl-in{display:grid!important;grid-template-columns:96px minmax(0,1fr) 92px;gap:10px;align-items:center;padding:6px 0}
.sum-line.sl-in>b{text-align:right}
.sl-ctl{display:flex;align-items:center;gap:6px;min-width:0}
.sl-ctl .seg{flex:none;border-radius:8px}.sl-ctl .seg button{min-height:30px;padding:0 9px;font-size:12px}
.sl-ctl .money{flex:1;min-width:0;border-radius:8px}.sl-ctl .money input{height:30px;padding:4px 8px;font-size:13.5px}.sl-ctl .money .pre{padding:0 8px;font-size:12px}
.sl-ctl .pkp-row{display:flex;align-items:center;gap:8px;width:100%}.sl-ctl .switch{transform:scale(.8);transform-origin:left center;margin-right:-6px}
.sl-ctl .pkp-rate{width:76px!important;flex:none;margin-left:auto}
.sl-ctl .pkp-rate input{height:30px}
.ce-logo{display:block;width:auto;height:72px;margin:0 auto}
.cart-empty{align-items:center;justify-content:center;text-align:center}
/* Kasir: ringkasan sejajar tabel, diskon seperti per item, total = ukuran jumlah bayar */
.total-card{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important}
.total-card .ts-left{order:2}.total-card .ts-right{order:1}
#txModeSeg[hidden]{display:none!important}
.sl-ctl #txModeSel{width:64px;min-width:64px;flex:none;height:34px;padding:6px 8px;font-size:13px;border-radius:10px}
.sl-ctl .money{border-radius:10px}
.sl-ctl .money input{height:34px!important}
.sl-ctl .disc-like,.sl-ctl #txValue{text-align:right}
.total-card .sum-line.sl-in{grid-template-columns:84px minmax(0,1fr) 84px!important;gap:8px!important}
.sl-ctl #txModeSel{width:58px;min-width:58px}
.sl-ctl #roundMode{width:100%;height:34px;padding:6px 8px;font-size:13px;border-radius:10px}
.sl-ctl .pkp-rate{width:86px!important;overflow:visible}
.sl-ctl .money input{min-width:60px}
.rnd-chk{white-space:nowrap;display:flex!important;align-items:center;gap:8px;margin:0!important;font-size:12.5px;color:var(--jf-ink)!important;font-weight:500!important;text-transform:none!important;letter-spacing:0!important;cursor:pointer}
.total-card .sum-line.grand b{font-size:18px!important}
.total-card .sum-line.grand{padding:8px 12px!important}
/* Dinas / shift */
.sb-cnt.sb-shift{background:var(--jf-green-soft);color:var(--jf-green-ink)}
.sh-now{background:var(--jf-surface);border:1px solid var(--jf-line);border-radius:14px;padding:14px 16px}
.sh-now-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.sh-now-h h3{margin:0}
.sh-active{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.sh-card{border:1px solid #cfe7d6;background:#f6fbf7;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px}
.sh-card-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sh-card-h .muted{font-size:12px;margin-left:auto}
.sh-dot,.sh-pos i{width:8px;height:8px;border-radius:50%;background:var(--jf-green);box-shadow:0 0 0 3px #1a913b26;flex:none}
.sh-card-b{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.sh-card-b span{display:block;font-size:11px;color:var(--jf-muted)}.sh-card-b b{font-size:14px;font-variant-numeric:tabular-nums}
.sh-card .btn{align-self:flex-start}
.sh-empty{color:var(--jf-muted);font-size:13px;padding:6px 0}
.sh-sum{margin-bottom:12px}.sh-sum .hs-cards{margin-bottom:10px}
.sh-by table{width:100%}.sh-by{border:1px solid var(--jf-line);border-radius:12px;overflow:auto}
.sh-badge{display:inline-block;font-size:11px;font-weight:700;background:var(--jf-green-soft);color:var(--jf-green-ink);border-radius:999px;padding:2px 8px}
tr.sh-live td{background:#f8fcf9}
.sh-ok{color:#067647;font-weight:700;font-size:12.5px}.sh-minus{color:#be123c;font-weight:700;font-size:12.5px}.sh-plus{color:#b45309;font-weight:700;font-size:12.5px}
.modal.sh-m{max-width:520px;width:100%}.sh-g{grid-template-columns:repeat(2,minmax(0,1fr))!important;margin-bottom:6px}
.sh-mini{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;background:#f6faf7;border-radius:10px;padding:8px 10px;margin:-4px 0 6px}.sh-mini b{font-variant-numeric:tabular-nums}
.sh-pos{display:flex;align-items:center;gap:6px;border:0;background:none;padding:2px 0 0;font:inherit;font-size:11.5px;font-weight:600;cursor:pointer;color:var(--jf-green-ink)}
.sh-pos.off{color:#b45309}.sh-pos.off i{background:#f59e0b;box-shadow:0 0 0 3px #f59e0b26}
.sh-pos:hover{text-decoration:underline}
#shDayW[hidden],#shMonW[hidden],#shRangeW[hidden]{display:none!important}
/* Defekta pintar */
.dfx-set{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;background:var(--jf-surface);border:1px solid var(--jf-line);border-radius:14px;padding:12px 14px;margin:-4px 0 14px}
.dfx-set-t{display:flex;gap:10px;align-items:flex-start;min-width:0;flex:1 1 320px}.dfx-set-t>.ic{width:18px;height:18px;color:var(--jf-green);flex:none;margin-top:2px}.dfx-set-t b{font-size:14px}.dfx-set-t .muted{font-size:12px;line-height:1.5}
.dfx-in{display:flex;gap:10px;flex-wrap:wrap}.dfx-in label{display:flex!important;flex-direction:column;gap:3px;margin:0!important;font-size:10.5px!important;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--jf-muted)!important}
.dfx-in span{display:flex;align-items:center;gap:5px;font-size:12.5px;text-transform:none;letter-spacing:0;font-weight:600;color:var(--jf-ink)}.dfx-in input{width:62px;height:32px;padding:4px 8px;text-align:right}.dfx-in select{height:32px;padding:4px 8px;width:auto}
.dfx-cards{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:900px){.dfx-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
.dfx-sub{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;margin-top:3px;font-size:11.5px}
.dfx-b{display:inline-block;font-size:11px;font-weight:800;border-radius:999px;padding:2px 9px;white-space:nowrap}
.dfx-b.out{background:#be123c;color:#fff}.dfx-b.crit{background:#ffe4e6;color:#be123c}.dfx-b.low{background:#fff0dc;color:#b45309}.dfx-b.ok{background:var(--jf-green-soft);color:var(--jf-green-ink)}.dfx-b.over{background:#e0ecff;color:#1d4ed8}.dfx-b.hold{background:#eef2ef;color:var(--jf-muted)}
.dfx-mm{border:1px dashed transparent;background:none;font:inherit;font-variant-numeric:tabular-nums;color:var(--jf-ink);cursor:pointer;border-radius:7px;padding:2px 6px}.dfx-mm:hover{border-color:var(--jf-line-strong);background:#f6faf7}.dfx-mm i{font-style:normal;font-size:9.5px;font-weight:800;background:#1d4ed8;color:#fff;border-radius:4px;padding:0 4px;margin-left:3px}
.dfx-legend{font-size:12px;line-height:1.55;margin-top:10px}
.dfx-table td{vertical-align:top}.df-ord input::placeholder{color:#94a39a}
@media(max-width:900px){.sidebar{width:272px;box-shadow:12px 0 32px #15201a26}main{padding:16px}header.topbar{padding:10px 16px}}
@media(max-width:560px){.crumb-title{font-size:17px}#liveClock{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@keyframes mdlNudge{0%,100%{transform:none}25%{transform:scale(1.015)}60%{transform:scale(.995)}}.mdl-nudge{animation:mdlNudge .22s ease}
#fSort{flex:0 0 190px;min-width:190px}th.md-sort{cursor:pointer;user-select:none;white-space:nowrap}th.md-sort:hover{color:var(--green)}th.md-sort .md-arr{font-size:10px;opacity:.45;margin-left:2px}th.md-sort.on{color:var(--green)}th.md-sort.on .md-arr{opacity:1}
.up{display:inline-block;margin:-5px 0}.up-one{display:inline-flex;align-items:center;height:28px;margin:-5px 0;padding:0 10px;border:1px solid #e3ebe5;border-radius:999px;font-size:12px;font-weight:800;color:#55685b;background:#f6f9f7}.up-btn{display:inline-flex;align-items:center;gap:6px;min-width:84px;height:28px;padding:0 7px 0 10px;border:1px solid #bfe0c9;border-radius:999px;background:#eaf7ee;color:#14692f;font:inherit;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap}
.up-btn:hover,.up-btn.open{border-color:#1a913b;background:#dcf2e3}.up-btn .ic{width:13px;height:13px;margin-left:auto;transition:transform .15s}.up-btn.open .ic{transform:rotate(180deg)}
.up-n{font-size:10.5px;font-weight:800;background:#fff;color:#14692f;border-radius:999px;padding:0 6px;line-height:16px}
.up-pop{position:fixed;z-index:200;background:#fff;border:1px solid #d9e6dd;border-radius:11px;box-shadow:0 10px 28px #0c3a1a26;padding:5px;min-width:190px;display:flex;flex-direction:column;gap:2px}
.up-pop button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;border:0;background:transparent;text-align:left;font:inherit;padding:7px 10px;border-radius:8px;cursor:pointer;color:#1d2b22}
.up-pop button b{font-size:12.5px;font-weight:800;min-width:46px}.up-pop button small{font-size:11.5px;color:#6b7f71}.up-pop button .ic{width:15px;height:15px;color:#1a913b}
.up-pop button:hover,.up-pop button:focus{background:#f1f8f3;outline:none}.up-pop button.on{background:#eaf7ee}.up-pop button.on b{color:#14692f}
.sh-chips{display:flex;gap:8px;flex-wrap:wrap}.sh-chip{height:36px;padding:0 16px;border:1px solid #d6e4da;border-radius:999px;background:#fff;font:inherit;font-size:13.5px;font-weight:700;color:#3a4d40;cursor:pointer}.sh-chip:hover{border-color:#1a913b}.sh-chip.on{background:#1a913b;border-color:#1a913b;color:#fff}
.sh-tag{display:inline-block;font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:999px;vertical-align:1px;background:#eef2f0;color:#3a4d40}.sh-tag.sh-pagi{background:#fff4d6;color:#8a5a00}.sh-tag.sh-siang{background:#e3effd;color:#1c4f8f}.sh-tag.sh-pagisiang{background:#eaf7ee;color:#14692f}.sh-tag.sh-tukarjadwal{background:#f3e8fd;color:#6b2fa3}
.sh-pos.free{cursor:default;color:#1c4f8f;text-decoration:none!important}.sh-pos.free i{background:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.ac-lock{display:inline-flex;width:18px;height:18px;border-radius:5px;background:#dcf2e3;color:#14692f;align-items:center;justify-content:center}.ac-lock .ic{width:13px;height:13px}.ac-full{display:block;font-size:10.5px;font-weight:700;color:#14692f;text-transform:none;letter-spacing:0}
#checkout[hidden]{display:none!important}
.total-card .sum-line.grand{display:flex!important;align-items:center;gap:14px;padding:12px 12px 12px 16px!important}
.total-card .sum-line.grand>span{flex:1}
.total-card .sum-line.grand #checkout2{margin:0!important;width:auto!important;min-height:40px!important;height:40px;padding:0 18px!important;font-size:14.5px;flex:none;border-radius:10px}
/* Area bayar satu kolom kanan */
.total-card{grid-template-columns:minmax(0,1fr)!important;max-width:560px;margin-left:auto}
.total-card .ts-left{order:0!important}
.opt-tg{display:flex;align-items:center;gap:7px;width:100%;border:0;border-bottom:1px dashed #dbe8de;background:none;font:inherit;font-size:12.5px;font-weight:700;color:#1a7a35;padding:7px 0;cursor:pointer;text-align:left}
.opt-tg .ic{width:14px;height:14px}.opt-tg small{margin-left:auto;font-size:11px;font-weight:700;background:#fff0dc;color:#b45309;border-radius:999px;padding:1px 8px}.opt-tg small:empty{display:none}.opt-tg:hover span{text-decoration:underline}
.total-card:not(.opt-open) .opt-row:not(.has-val){display:none!important}
.pay-rows{border-bottom:1px dashed #dbe8de;padding:4px 0 2px}
.pay-rows .pr-row{display:grid;grid-template-columns:84px minmax(0,1fr);column-gap:8px;align-items:center;margin:6px 0!important}
.pay-rows .pr-row>.pm-label,.pay-rows .pr-row>label{margin:0!important;font-size:13.5px!important;font-weight:400!important;letter-spacing:0!important;text-transform:none!important;color:#33463a!important}
.pay-rows .pm-field>*:not(.pm-label),.pay-rows .pay-field>*:not(label){grid-column:2}
.pay-rows .pm-bank,.pay-rows .pm-ref{margin-top:8px}
.pay-rows .pay-field[hidden],.pay-rows .sum-line[hidden]{display:none!important}
.pay-rows .money.big input{height:40px}
.pay-rows .sum-line.change{border:0;padding:6px 0 4px!important}
.total-card:not(.opt-open) #sumPpnRow.opt-row:not(.has-val){display:none!important}
.pos-summary>.pay-card.total-card{max-width:560px!important;width:100%;margin-left:auto!important;align-self:flex-end}
.pay-top{display:grid;grid-template-columns:84px 118px minmax(0,1fr);column-gap:8px;row-gap:8px;align-items:center;margin:6px 0}
.pay-top .pl-l{margin:0;font-size:13.5px;font-weight:400;color:#33463a;text-transform:none;letter-spacing:0}
.pay-top #pmSel{height:42px;font-weight:700;font-size:14px;border-radius:10px;padding:0 10px}
.pay-top .pay-field{display:contents}
.pay-top .pay-field .money{grid-column:3;margin:0}
.pay-top .pay-field .quick-pay{grid-column:2/4;margin:0!important}
.pay-top .money.big input{height:40px}
.pay-top:has(.pay-field[hidden]) #pmSel{grid-column:2/4}
#payMethod[hidden]{display:none!important}
.pm-extra{display:grid;grid-template-columns:84px minmax(0,1fr);column-gap:8px;margin:0}
.pm-extra>*{grid-column:2}.pm-extra .pm-bank,.pm-extra .pm-ref{margin:0 0 8px}
.pm-extra:not(:has(>:not([hidden]))){display:none}
/* Laporan keuangan */
.fin-bar{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.fin-bar-l label{display:block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--jf-muted);margin:0 0 5px}.fin-bar-l select{min-width:200px;font-weight:700}
.fin-bar-r{display:flex;gap:8px;flex-wrap:wrap}
.fin-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:14px}
.fin-card{background:#fff;border:1px solid var(--jf-line);border-radius:14px;padding:12px 14px;min-width:0}.fin-card span{display:block;font-size:12px;color:var(--jf-muted);font-weight:600}.fin-card b{display:block;font-size:19px;font-weight:800;margin-top:4px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fin-card b.neg{color:#be123c}.fin-card small{font-size:11.5px;color:var(--jf-muted)}
.fin-tabs{display:flex;width:max-content;max-width:100%;margin-bottom:16px}.fin-tabs button{min-height:38px;padding:0 16px;font-size:13.5px}
.fin-doc-h{text-align:center;margin:4px 0 14px}.fin-doc-h b{display:block;font-size:13px;color:var(--jf-muted);text-transform:uppercase;letter-spacing:.06em}.fin-doc-h h3{display:block!important;text-align:center;margin:4px 0 2px;font-size:19px}.fin-doc-h span{font-size:12.5px;color:var(--jf-muted)}
.fin-st{width:100%;max-width:720px;margin:0 auto;border-collapse:collapse;font-size:14px}.fin-st td{padding:7px 10px;border-bottom:1px solid #eef3ef}.fin-st td.right{font-variant-numeric:tabular-nums;white-space:nowrap;width:180px}
.fin-st tr.fh td{font-weight:800;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:#14692f;background:#f3f9f5;padding-top:9px}
.fin-st tr.fs td{font-weight:700;border-top:1px solid #cfe0d4}.fin-st tr.fg td{font-weight:800;font-size:15px;background:var(--jf-orange-soft);border-bottom:0}.fin-st tr.fg+tr.fh td{border-top:10px solid #fff}
.fin-st tr.fn td{font-size:12.5px;color:var(--jf-muted);border:0;padding-top:10px;font-style:italic}
.fin-st .neg,.fin-inv .neg{color:#be123c}
.fin-inv-sum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.fin-inv-sum div{background:#f6faf7;border-radius:10px;padding:9px 12px}.fin-inv-sum span{display:block;font-size:12px;color:var(--jf-muted)}.fin-inv-sum b{font-size:16px;font-variant-numeric:tabular-nums}
.fin-inv td,.fin-inv th{white-space:nowrap}.fin-inv td:nth-child(2){white-space:normal;min-width:180px}.fin-inv tfoot td{font-weight:800;background:#f6faf7}
.fin-note{font-size:12.5px;margin-top:10px}
.fin-set{margin-top:16px;padding-top:12px;border-top:1px dashed #dbe8de;font-size:12.5px;color:var(--jf-muted)}
.fin-m{max-width:880px!important;width:calc(100vw - 32px)}.fin-m h4{margin:18px 0 8px;font-size:14px}.fin-m h4 small{font-weight:400;color:var(--jf-muted);margin-left:6px}
.fin-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.fin-g label{display:block;font-size:12.5px;margin:0 0 5px}
.fin-et{font-size:13px}.fin-et td{padding:5px 6px}.fin-et input,.fin-et select{padding:6px 8px;font-size:13px;min-width:0;width:100%}.fin-et .fin-amt{text-align:right}
.fin-m .tablewrap{margin:0 0 8px}
@media(max-width:1100px){.fin-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.fin-cards,.fin-inv-sum{grid-template-columns:1fr 1fr}.fin-g{grid-template-columns:1fr}}
.fin-close{margin-bottom:14px}.fc-h{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start}.fc-h h3{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:15.5px}.fc-h h3 .ic{width:18px;height:18px;color:#1a913b}.fc-h p{margin:0;font-size:12.5px;color:var(--jf-muted);max-width:640px}
.fc-calc{text-align:right;background:#f6faf7;border-radius:10px;padding:8px 12px}.fc-calc span{display:block;font-size:11.5px;color:var(--jf-muted)}.fc-calc b{font-size:16px;font-variant-numeric:tabular-nums}
.fc-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-top:12px;align-items:end}.fc-g label{display:block;font-size:12.5px;margin:0 0 5px}
.fc-sum{background:var(--jf-orange-soft);border-radius:10px;padding:8px 12px}.fc-sum span{display:block;font-size:11.5px;color:#8a5a00}.fc-sum b{display:block;font-size:17px;font-variant-numeric:tabular-nums}.fc-sum small{font-size:11.5px;color:var(--jf-muted)}.fc-sum small.neg{color:#be123c;font-weight:700}.fc-sum small.pos{color:#1c4f8f;font-weight:700}
.fc-act{display:flex;gap:8px;margin-top:12px}
@media(max-width:1250px){.fin-cards{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
.pay-h{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:flex-end;margin-bottom:10px}.pay-h h3{display:flex;align-items:center;gap:8px;margin:0 0 4px}.pay-h h3 .ic{width:18px;height:18px;color:#1a913b}.pay-h p{margin:0;font-size:12.5px;max-width:620px}
.pay-ctl{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.pay-ctl select{min-width:0!important}.pay-ctl #payMonth{min-width:160px!important}.pay-auto-o[hidden]{display:none}.pay-ctl label{display:block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--jf-muted);margin:0 0 5px}.pay-ctl select{min-width:170px;font-weight:700}
.pay-t td,.pay-t th{white-space:nowrap}.pay-t tfoot td{font-weight:800;background:#f6faf7}.pay-miss{font-size:11px;color:#b45309;font-weight:700}
.pay-act{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}.pay-act>div{display:flex;gap:8px;flex-wrap:wrap}
.pay-st{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--jf-muted)}.pay-st .ic{width:15px;height:15px}.pay-st.ok{color:#14692f;font-weight:700}.pay-st.warn{color:#b45309}
.pay-m{max-width:760px!important;width:calc(100vw - 32px)}.pay-m .money input{text-align:right}
.cal-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.cal-nav{display:flex;align-items:center;gap:8px}.cal-nav h3{margin:0 6px;min-width:150px;text-align:center;font-size:16px}.cal-nav .btn{min-width:34px;justify-content:center}#calStaff{min-width:170px;width:auto!important;flex:0 0 auto}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal-dow{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--jf-muted);text-align:center;padding:4px 0}
.cal-d{min-height:86px;border:1px solid #e3ebe5;border-radius:10px;background:#fff;padding:5px 6px;display:flex;flex-direction:column;align-items:stretch;gap:3px;text-align:left;font:inherit;cursor:pointer;min-width:0}
.cal-d:hover{border-color:#1a913b;background:#f8fcf9}.cal-d.wk{background:#fbfcfb}.cal-d.cal-x{background:transparent;border-color:transparent;cursor:default}
.cal-d.today{border:2px solid #1a913b}.cal-d.today .cal-n{background:#1a913b;color:#fff}
.cal-n{font-size:12px;font-weight:800;color:#33463a;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.cal-it{display:flex;flex-direction:column;gap:2px;min-width:0}
.cal-c{display:block;font-size:11px;font-weight:700;border-radius:6px;padding:1px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#eef2f0;color:#3a4d40;border:1px solid transparent}
.cal-c.sh-pagi{background:#fde68a;color:#7a4b00}.cal-c.sh-siang{background:#bfdbfe;color:#1c4f8f}.cal-c.sh-pagisiang{background:#bbf7d0;color:#14692f}.cal-c.sh-tukarjadwal{background:#e9d5ff;color:#6b2fa3}
.cal-c.plan{background:#fff!important;border:1px dashed currentColor}.cal-c.live{box-shadow:inset 3px 0 0 #1a913b}
.cal-more{font-size:10.5px;color:var(--jf-muted);padding-left:4px}
.cal-leg{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin-top:10px;font-size:12px}.cal-leg .cal-c{display:inline-block}.cal-info{margin-left:auto}
.cal-m{max-width:480px!important}.cal-m h4{margin:16px 0 8px;font-size:14px}.cal-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid #eef2ef}.cal-row b{flex:1}.cal-add{display:flex;gap:8px}.cal-add select{flex:1;min-width:0}
@media(max-width:700px){.cal-d{min-height:64px;padding:3px}.cal-c{font-size:10px;padding:0 3px}}
.sh-now-a{display:flex;align-items:center;gap:10px}
.cal-ico{width:46px;height:48px;border:1px solid #cfe0d4;border-radius:11px;background:#fff;padding:0;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;box-shadow:0 2px 6px #0c3a1a14;transition:transform .12s}
.cal-ico:hover{transform:translateY(-1px);border-color:#1a913b}
.cal-ico-m{display:block;background:#1a913b;color:#fff;font-size:10px;font-weight:800;letter-spacing:.06em;line-height:16px;text-align:center}
.cal-ico-d{flex:1;display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:800;color:#1d2b22}
.cal-ov[hidden]{display:none!important}
.cal-big{position:relative;max-width:1100px!important;width:calc(100vw - 32px);max-height:calc(100vh - 32px);overflow:auto;padding:18px 20px!important}
.cal-x-btn{position:absolute;top:12px;right:14px;width:34px;height:34px;border:0;border-radius:50%;background:#eef4f0;font-size:22px;line-height:1;color:#33463a;cursor:pointer}.cal-x-btn:hover{background:#dcefe2}
.cal-big .cal-h{padding-right:44px}
.sh-grp td{background:#f3f9f5;border-top:1px solid #d9e9de;cursor:pointer}.sh-grp:hover td{background:#eaf5ee}
.sh-gbtn{display:inline-flex;align-items:center;gap:8px;border:0;background:none;font:inherit;padding:0;cursor:pointer;color:#1d2b22}.sh-gbtn .ic{width:15px;height:15px;transform:rotate(-90deg);transition:transform .15s;color:#1a913b}.sh-grp.open .sh-gbtn .ic{transform:none}
.sh-gn{font-size:11px;font-weight:700;background:#fff;border:1px solid #cfe0d4;border-radius:999px;padding:1px 8px;color:#14692f}
.sh-det td:first-child{padding-left:34px}.sh-det[hidden]{display:none}
.bc-in{display:flex;gap:6px}.bc-in input{flex:1;min-width:0}.bc-in .btn{flex:none;white-space:nowrap}
.bc-m{max-width:760px!important;width:calc(100vw - 32px)}.bc-m #bcGen{margin:0 0 10px}.bc-t td{vertical-align:middle}.bc-code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px}.bc-none{font-size:12px;color:#b45309;font-weight:700}.bc-bad{font-size:11px;color:#be123c}.bc-prev{line-height:0}.bc-prev svg{border:1px solid #eef2ef}
.bc-opt{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:flex-end;margin-top:12px}.bc-opt label{font-size:12.5px}.bc-opt select{min-width:260px}.bc-ck{display:flex;align-items:center;gap:6px;margin:0 0 8px}
.inv-total{margin-top:12px}.inv-tot-r{display:flex;align-items:center;gap:16px}.inv-total #saveInvoice{margin:0!important;font-size:14.5px;min-height:42px}
.inv-addrow:disabled,.inv-addrow.inv-add-off{opacity:.45;cursor:not-allowed;filter:grayscale(.4)}
#invMethod.inv-fixed{background:#f3f6f4;pointer-events:none}
.nt-bell{position:relative;width:36px;height:36px;border-radius:50%;border:1px solid var(--jf-line);background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#55685b}
.nt-bell .ic{width:18px;height:18px}.nt-bell:hover{border-color:#1a913b;color:#1a913b}.nt-bell.has{color:#b45309;border-color:#f5c27a;background:#fff8ec}.nt-bell.has .ic{animation:ntRing 2.4s ease-in-out infinite}
.nt-n{position:absolute;top:-5px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#e11d48;color:#fff;font-size:10.5px;font-weight:800;line-height:18px;text-align:center;box-shadow:0 0 0 2px #fff}
@keyframes ntRing{0%,86%,100%{transform:none}89%{transform:rotate(14deg)}92%{transform:rotate(-12deg)}95%{transform:rotate(8deg)}}
.pr-act{white-space:nowrap;vertical-align:middle}.pr-ok{font-size:12px;font-weight:800;color:#14692f}
tr.pr-done td{background:#f3faf5}tr.pr-done td:not(.pr-act){opacity:.6}
.pr-flash{animation:prFlash .9s ease}@keyframes prFlash{0%{box-shadow:0 0 0 0 #1a913b66;border-color:#1a913b}60%{box-shadow:0 0 0 5px #1a913b22;border-color:#1a913b}100%{box-shadow:none}}
.pr-m{max-width:980px!important}
.db-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.db-head h2{margin-bottom:12px}.db-date{font-size:13px;font-weight:700;color:var(--jf-muted)}
.db-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.db-sub{font-size:12px;color:var(--jf-muted);margin-top:3px;min-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.db-sub.up{color:#14692f;font-weight:700}.db-sub.down{color:#be123c;font-weight:700}
.db-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:14px;margin-bottom:14px;align-items:start}
.db-ph{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.db-ph h3{margin:0}.db-ph select{width:auto;min-width:150px;padding:6px 10px;font-size:13px}
.db-attn h3,.db-ph h3{display:flex;align-items:center;gap:8px}.db-attn h3 .ic,.db-ph h3 .ic{width:18px;height:18px;color:#1a913b}
.db-al{display:flex;flex-direction:column;gap:7px}
.db-a{display:grid;grid-template-columns:34px minmax(0,1fr) auto 16px;align-items:center;gap:10px;width:100%;border:1px solid #e3ebe5;border-radius:12px;background:#fff;padding:9px 10px;text-align:left;font:inherit;cursor:pointer}.db-a:hover{border-color:#1a913b;background:#f8fcf9}
.db-ai{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center}.db-ai .ic{width:17px;height:17px}
.db-a.red .db-ai{background:#ffe4e6;color:#be123c}.db-a.amber .db-ai{background:#fff0dc;color:#b45309}.db-a.soft .db-ai{background:#eef4f0;color:#3a5a45}
.db-at b{display:block;font-size:13.5px}.db-at small{display:block;font-size:12px;color:var(--jf-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.db-av{font-weight:800;font-size:14px;white-space:nowrap;font-variant-numeric:tabular-nums}.db-a.red .db-av{color:#be123c}.db-a.amber .db-av{color:#b45309}
.db-ch{width:14px;height:14px;transform:rotate(-90deg);color:#9aab9f}
.db-ok{display:flex;gap:12px;align-items:center;background:#eaf7ee;border-radius:12px;padding:14px}.db-ok .ic{width:26px;height:26px;color:#1a913b}.db-ok b{display:block}.db-ok small{color:var(--jf-muted)}
.db-ct,.db-et{width:100%;border-collapse:collapse;font-size:13.5px}.db-ct th,.db-et th{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--jf-muted);text-align:left;padding:6px 8px;border-bottom:1px solid #e3ebe5}.db-ct td,.db-et td{padding:8px;border-bottom:1px solid #eef2ef;vertical-align:middle}.db-ct .right,.db-et .right{text-align:right}
.db-bar{height:5px;background:#eef2ef;border-radius:3px;margin-top:5px;max-width:200px}.db-bar i{display:block;height:100%;background:#1a913b;border-radius:3px}
.db-live{font-size:10.5px;font-weight:800;color:#14692f;background:#eaf7ee;border-radius:999px;padding:1px 7px}
.db-et tr.expired td{background:#fff5f6}.db-et .neg{color:#be123c;font-weight:700}
@media(max-width:1100px){.db-grid{grid-template-columns:1fr}.db-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
.bm-chip{border:1px solid #cfe0d4;background:#f3f9f5;color:#14692f;font:inherit;font-size:10.5px;font-weight:800;border-radius:999px;padding:1px 8px;margin-left:4px;cursor:pointer;vertical-align:1px}.bm-chip.one{color:#6b7f71;background:#fff;padding:0 6px}.bm-chip:hover{border-color:#1a913b}
.bm-m{max-width:720px!important;width:calc(100vw - 32px)}.bm-t td{padding:6px}.bm-t input{padding:6px 8px;font-size:13px;width:100%;min-width:0}.bm-q{display:flex;align-items:center;gap:6px}.bm-q input{max-width:110px;text-align:right}.bm-q span{font-size:12px;color:var(--jf-muted)}
tr.bm-del td{opacity:.45}.bm-m #bmAdd{margin:8px 0}.bm-adj{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;padding:10px;border-radius:10px;background:#fff8ec}.bm-adj label{grid-column:1/-1;font-size:12.5px;margin:0}
.fefo-b{display:inline-block;background:#eef6f0;color:#14692f;border-radius:6px;padding:0 6px;font-weight:700;margin-left:2px}
.ks-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.ks-s{flex:1;min-width:260px}.ks-bar select{width:auto;min-width:150px}
.ks-p{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 8px}.ks-p b{font-size:16px}.ks-st{display:flex;align-items:center;gap:10px;font-size:13px}
.ks-bs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.ks-bt{font-size:12px;background:#f3f9f5;border:1px solid #d9e9de;border-radius:8px;padding:3px 8px;display:inline-flex;align-items:center;gap:4px}
.ks-t td,.ks-t th{font-size:13px}.ks-t .ks-in{color:#14692f;font-weight:700}.ks-t .ks-out{color:#be123c;font-weight:700}.ks-t tr.ks-open td{background:#f6faf7}.ks-t tfoot td{font-weight:800;background:#f6faf7}
.bm-m .actions .bm-ks{margin-right:auto}
.infobox{grid-template-columns:repeat(3,minmax(150px,1fr))!important}
.rx-btn{display:block;width:100%;text-align:left;border:1px dashed #cfe0d4;background:#f8fbf9;border-radius:8px;padding:4px 8px;margin-top:2px;font:inherit;cursor:pointer;line-height:1.25}.rx-btn b{font-size:13px;color:#14692f}.rx-btn small{display:block;font-size:11px;color:var(--jf-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rx-btn.on{border-style:solid;background:#eaf7ee;border-color:#9fd3b0}.rx-btn.need{border-style:solid;border-color:#f5a3b1;background:#fff1f3}.rx-btn.need b{color:#be123c}
.rx-m{max-width:760px!important;width:calc(100vw - 32px)}.rx-m h4{margin:16px 0 8px;font-size:14px}.rx-warn{background:#fff1f3;color:#9f1239;border-radius:10px;padding:8px 12px;font-weight:600}
.rx-g2{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.rx-g2 label{display:block;font-size:12.5px;margin:0 0 4px}.rx-full{grid-column:1/-1}.rx-g3{display:grid;grid-template-columns:1fr 80px;gap:8px}
.rx-sig{display:flex;flex-direction:column;gap:8px}.rx-sr{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:10px;align-items:center;border-bottom:1px solid #eef2ef;padding-bottom:8px}
.rx-g{font-size:10px;font-weight:800;border-radius:999px;padding:1px 7px;margin-left:4px;vertical-align:1px}.rx-g.nar{background:#fee2e2;color:#991b1b}.rx-g.psi{background:#ede9fe;color:#5b21b6}.rx-g.pre{background:#fff0dc;color:#b45309}.rx-g.oot{background:#e0f2fe;color:#075985}
.rx-m .rx-del{margin-right:auto}.sd-rx{display:flex;gap:8px;justify-content:center;margin:6px 0}
.rx-sum{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--jf-muted);margin:12px 0}.rx-sum b{color:#1d2b22;font-size:15px}
.rx-t td{vertical-align:top;font-size:13px}.rx-it{margin-bottom:4px}.rx-void td{opacity:.5}
@media(max-width:1250px){.infobox{grid-template-columns:repeat(2,minmax(150px,1fr))!important}.ib-rx{grid-column:1/-1;order:3;border-left:0!important;border-top:1px solid var(--jf-line)}}
.npp-t th{white-space:nowrap}.npp-t th.c{text-align:center;border-bottom:1px solid #e3ebe5}.npp-t td{font-size:13px;vertical-align:middle}.npp-t .neg{color:#be123c;font-weight:800}
.npp-w{display:flex;gap:10px;align-items:flex-start;background:#fff1f3;color:#9f1239;border-radius:10px;padding:10px 12px;margin-bottom:10px;font-size:13px}.npp-w .ic{width:18px;height:18px;flex:none;margin-top:1px}
.hpp-m{max-width:720px!important;width:calc(100vw - 32px)}
.pr-mu{max-width:110px}.pr-mu input{text-align:right}

/* =====================================================================
   FINISHING RESPONSIF — laptop, tablet, HP (lapisan terakhir, menimpa di atas)
   ===================================================================== */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-x:hidden}
.content{container-type:inline-size;container-name:content}
.view{animation:vIn .18s ease}
@keyframes vIn{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.view{animation:none}*{transition:none!important}}
:focus-visible{outline:3px solid #42bd6680;outline-offset:2px}

/* Tabel: kolom pertama tetap terlihat saat digeser, bayangan petunjuk geser */
.tablewrap{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;
 background:linear-gradient(90deg,#fff 30%,#fff0) left/40px 100% no-repeat local,linear-gradient(270deg,#fff 30%,#fff0) right/40px 100% no-repeat local,
 radial-gradient(farthest-side at 0 50%,#0c5a2424,#0000) left/12px 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,#0c5a2424,#0000) right/12px 100% no-repeat scroll;background-color:#fff}
.tablewrap table{background:transparent}
.tablewrap th{position:sticky;top:0;z-index:2}

/* ---------- Kasir: laptop lebar → daftar penjualan di kiri, input & pembayaran satu kolom dari atas ke bawah ---------- */
@container content (min-width:1040px){
 #pos .pos-wrap{grid-template-columns:210px minmax(0,1fr)!important;gap:18px!important}
 #pos .pos-side{display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;align-items:stretch!important;gap:10px!important;min-width:0;position:sticky;top:84px}
 #pos .pos-side h2{display:flex!important;margin:0 0 2px!important;flex:none}
 #pos #draftList{display:flex!important;flex-direction:column!important;gap:6px;overflow:auto;max-height:calc(100dvh - 260px);flex:0 1 auto;min-width:0;padding:2px;scrollbar-width:thin}
 #pos #draftList .draft{flex:none!important;width:100%!important;margin:0!important}
 #pos #newDraft{width:100%!important;margin:0!important;flex:none}
 #pos .pos-main{display:block!important}
 #pos .pos-main>.pos-summary{position:static!important;margin-top:14px!important;max-height:none!important;overflow:visible!important;border-radius:16px}
 #pos .pos-summary .pay-card.total-card{max-width:none!important;width:100%!important;margin-left:0!important}
 #pos .total-card .ts-left{width:100%;max-width:640px;margin-left:auto}
 #pos .pos-main>.tablewrap.cart-table{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;margin-bottom:0!important;box-shadow:none!important}
 #pos .pos-main>.pos-summary{margin-top:-1px!important}
 #pos .pos-summary .pay-card.total-card{border-top-left-radius:0!important;border-top-right-radius:0!important;box-shadow:none!important}
 #pos .pos-summary .pay-card{margin:0}
 #pos .pos-summary .sum-line.grand{flex-wrap:wrap}
 #pos .pos-summary .sum-line.grand #checkout2{flex:1 1 100%;min-height:50px;font-size:16px}
 #pos .total-card .pay-top{grid-template-columns:84px minmax(0,1fr)!important}
 #pos .total-card .pay-top #pmSel{grid-column:2!important;width:100%}
 #pos .total-card .pay-top .pay-field .money{grid-column:1/-1!important}
 #pos .total-card .pay-top .pay-field .quick-pay{grid-column:1/-1!important;display:flex;flex-wrap:wrap;gap:6px}
 #pos .money.big input{font-size:20px;height:46px!important}
 #pos .cart-table th,#pos .cart-table td{padding:9px 7px}
 #pos .cart-table td:first-child{min-width:170px}
 #pos .cart-table .qty input{width:46px;padding:7px 2px}
 #pos .cart-table .disc{display:flex;gap:4px}
 #pos .cart-table .disc select{width:56px;padding-left:6px;padding-right:18px}
 #pos .cart-table .disc input{width:60px}
 #pos .cart-table td:nth-child(4) select{width:84px;padding-right:18px}
}
@container content (min-width:1240px){
 #pos .pos-main{grid-template-columns:minmax(0,1fr) 390px}
 #pos .cart-table td:first-child{min-width:220px}
}

/* ---------- Tablet & HP ---------- */
@media (max-width:900px){
 header.topbar{padding:10px 14px!important;flex-wrap:nowrap!important;gap:8px}
 header.topbar>div:last-child{flex-wrap:nowrap!important;flex:none}
 #liveClock{display:none}
 main{padding:14px!important}
 .modal-back{padding:10px}
 /* sentuhan lebih nyaman */
 .btn,.subnav button,.sb-item,.sb-link{min-height:42px}
 .btn.small{min-height:34px;min-width:34px}
 input:not([type=checkbox]):not([type=radio]),select{min-height:42px}
 .toolbar>*{min-width:140px}
 /* sidebar jadi laci di atas konten */
 .sidebar{position:fixed!important;left:0;top:0;bottom:0;height:100dvh!important;margin-left:0!important;transform:translateX(-105%);width:min(300px,86vw)!important;z-index:120!important}
 .app.sb-open .sidebar{transform:none}
 .app.sb-open .sb-overlay{display:block!important;position:fixed;inset:0;background:#0b231466;backdrop-filter:blur(2px);z-index:110}
 .app:not(.sb-open) .sidebar{margin-left:0!important}
 .sb-item,.sb-link{padding-top:12px;padding-bottom:12px}
}

/* ---------- HP ---------- */
@media (max-width:640px){
 /* cegah zoom otomatis iOS saat mengetik */
 input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important}
 header.topbar .crumb-title{font-size:18px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw}
 #syncStatus{font-size:0!important;padding:0!important;width:30px;height:30px;justify-content:center}
 #syncStatus::before{margin:0}
 main{padding:12px 10px 20px!important}
 h2{font-size:19px!important;margin-bottom:12px!important}
 h2 .ic{width:32px!important;height:32px!important;padding:7px!important}
 .panel,.card{padding:14px!important;border-radius:14px}
 .grid{gap:8px!important}
 .metric{font-size:19px!important}
 .toolbar{gap:8px}
 .toolbar>*,.toolbar>.searchbox{min-width:calc(50% - 4px)!important;flex:1 1 calc(50% - 4px)!important}
 .toolbar>.searchbox,.toolbar>input[type=search],.toolbar>input:first-child{flex-basis:100%!important}
 .row{flex-wrap:wrap}
 .row>*{min-width:120px}
 .hs-range{display:flex!important;flex-wrap:wrap;width:100%}
 .hs-range .dmy-w{width:auto!important;flex:1 1 130px;min-width:0}
 .dmy-w,.dmy-in{max-width:100%;min-width:0}
 .modal{padding:18px!important;border-radius:16px!important}
 .modal .actions{flex-wrap:wrap}
 .modal .actions .btn{flex:1 1 auto!important}
 .tablewrap th,.tablewrap td{padding:9px 8px}
 /* kolom pertama tabel menempel saat digeser ke samping */
 .tablewrap:not(.cart-table) td:first-child,.tablewrap:not(.cart-table) th:first-child{position:sticky;left:0;z-index:1;background:inherit}
 .tablewrap:not(.cart-table) tbody tr{background:#fff}
 .tablewrap:not(.cart-table) tbody tr:nth-child(even){background:#f7fbf8}
 .tablewrap:not(.cart-table) th:first-child{z-index:3;background:#e5f4e9}
 .tablewrap:not(.cart-table) td:first-child{box-shadow:6px 0 8px -8px #0c5a2455}
 .tablewrap td:first-child:has(input[type=checkbox]:only-child){position:static;box-shadow:none}
 footer.muted{padding:14px 12px 96px;font-size:12px}

 /* ---- Kasir: baris keranjang jadi kartu ---- */
 #pos .pos-side{flex-wrap:nowrap!important;overflow:hidden}
 #pos #draftList .draft{flex:0 0 160px!important}
 #pos #newDraft{flex:none;width:auto!important;padding:0 14px}
 #pos .infobox{display:grid!important;grid-template-columns:1fr!important}
 #pos .infobox .ib{border-right:0!important;border-bottom:1px solid var(--line)}
 #pos .infobox .ib:last-child{border-bottom:0}
 .cart-table{overflow:visible!important;border:0!important;box-shadow:none!important;background:none!important}
 .cart-table table,.cart-table tbody{display:block;background:none}
 .cart-table thead{display:none!important}
 .cart-table tbody tr{display:grid;grid-template-columns:auto minmax(92px,1fr) minmax(0,.85fr) 36px;grid-template-areas:"nm nm nm del" "pr pr sub sub" "qt un dc dc";gap:8px 10px;align-items:center;background:#fff!important;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:10px;box-shadow:0 1px 3px #1a913b12}
 .cart-table tbody td{display:block;padding:0!important;border:0!important;min-width:0}
 .cart-table tbody td:nth-child(1){grid-area:nm;padding-right:4px!important}
 .cart-table tbody td:nth-child(1) strong{font-size:15px;line-height:1.3}
 .cart-table tbody td:nth-child(2){grid-area:pr;text-align:left!important;color:var(--muted);font-size:13px}
 .cart-table tbody td:nth-child(2)::before{content:"Harga @ "}
 .cart-table tbody td:nth-child(3){grid-area:qt}
 .cart-table tbody td:nth-child(4){grid-area:un}
 .cart-table tbody td:nth-child(5){grid-area:dc}
 .cart-table tbody td:nth-child(6){grid-area:sub;font-size:16px;color:#0f5a28;text-align:right}
 .cart-table tbody td:nth-child(7){grid-area:del;align-self:start}
 .cart-table tbody td:nth-child(7) .btn{width:36px;height:36px;min-height:36px;border-radius:10px;font-size:18px}
 .cart-table .qty{gap:3px!important}
 .cart-table .qty input{width:42px!important;min-height:38px;padding:6px 2px!important}
 .cart-table .qty .btn{width:32px;height:38px;min-height:38px;min-width:32px;padding:0;font-size:18px}
 .cart-table td:nth-child(4) select{width:100%;min-width:0;padding:6px 20px 6px 8px;background-position:right 5px center;text-overflow:ellipsis}
 .cart-table .disc{display:flex;gap:4px;min-width:0}
 .cart-table .disc select{width:50px;flex:none;padding:6px 18px 6px 6px;background-position:right 4px center}
 .cart-table .disc input{width:100%;min-width:0;padding:6px}
 .cart-table .fefo-b{display:inline-block;margin-top:3px}
 #pos .total-card .pay-top{grid-template-columns:96px minmax(0,1fr)!important}
 #pos .total-card .pay-top #pmSel{grid-column:2!important;width:100%}
 #pos .total-card .pay-top .pay-field .money{grid-column:1/-1!important}
 #pos .total-card .pay-top .pay-field .quick-pay{grid-column:1/-1!important;display:flex;flex-wrap:wrap;gap:6px}
 #pos .money.big input{font-size:20px!important;height:46px!important}
 #pos .total-card .sum-line.sl-in{grid-template-columns:96px minmax(0,1fr) auto!important}
 table.db-et,table.db-ct{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
 #pos .sum-line.grand{flex-wrap:wrap}
 #pos .sum-line.grand #checkout2{flex:1 1 100%;min-height:50px;font-size:16px}
}
@media (max-width:380px){
 .grid{grid-template-columns:1fr 1fr!important}
 .cart-table tbody tr{grid-template-areas:"nm nm nm del" "pr pr sub sub" "qt qt un un" "dc dc dc dc"}
}

/* ---------- Bilah bayar melayang (tablet & HP) ---------- */
.m-paybar{display:none}
@media (max-width:900px){
 .m-paybar{position:fixed;left:10px;right:10px;max-width:600px;margin:0 auto;bottom:calc(10px + env(safe-area-inset-bottom));z-index:90;display:flex;align-items:center;gap:12px;background:#0f3d1f;color:#fff;border-radius:16px;padding:10px 10px 10px 16px;box-shadow:0 12px 30px #0b231455;transform:translateY(140%);transition:transform .22s ease}
 .m-paybar.show{transform:none}
 .m-paybar .mp-info{flex:1;min-width:0;line-height:1.2}
 .m-paybar small{display:block;opacity:.75;font-size:12px}
 .m-paybar b{font-size:19px;font-variant-numeric:tabular-nums}
 .m-paybar button{border:0;border-radius:12px;font:inherit;font-weight:700;cursor:pointer;min-height:46px}
 .m-paybar .mp-go{background:#ffffff1f;color:#fff;padding:0 12px}
 .m-paybar .mp-pay{background:linear-gradient(135deg,#ff8b10,#ffa43f);color:#fff;padding:0 18px;display:inline-flex;align-items:center;gap:6px}
 .m-paybar .mp-pay .ic{width:18px;height:18px}
 .toast{bottom:calc(84px + env(safe-area-inset-bottom))!important}
}
@media print{.m-paybar{display:none!important}}
/* Tabel harga per satuan (form barang) — tabel di laptop, kartu di HP */
.pt-wrap{margin-top:10px}.pt-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:6px}.pt-h b{font-size:13.5px}.pt-h small{font-size:12px;color:var(--jf-muted)}
.pt{border:1px solid var(--jf-line);border-radius:12px;overflow:hidden}.pt{container-type:inline-size}
@container (max-width:600px){
  .pt .pt-head{display:none!important}
  .pt .pt-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(96px,.9fr);grid-template-areas:"u u g" "h p m";gap:6px 8px;padding:10px}
  .pt .pt-u{grid-area:u;display:flex;align-items:center;gap:8px} .pt .pt-u small{margin:0}
  .pt .pt-g{white-space:normal;line-height:1.3;grid-area:g;align-self:center} .pt .pt-d{font-size:10.5px}
  .pt .pt-hpp{grid-area:h;text-align:left} .pt .pt-p{grid-area:p} .pt .pt-m{grid-area:m}
  .pt .pt-ml{display:block!important;font-size:10.5px!important;font-weight:700!important;color:var(--jf-muted)!important;margin:0 0 3px!important;text-transform:uppercase;letter-spacing:.04em;text-align:left}
  .pt .pt-hv{display:flex;flex-direction:column;justify-content:flex-end;height:100%;font-size:13.5px;color:#33463a}
}
.pt-row{display:grid;grid-template-columns:minmax(70px,.75fr) minmax(86px,1fr) minmax(96px,1.15fr) minmax(92px,1fr) minmax(96px,1.05fr);gap:10px;align-items:center;padding:8px 12px;border-top:1px solid #eef2ef}
.pt-row.pt-head{border-top:0;background:#f6faf7;padding-top:6px;padding-bottom:6px}.pt-head span{font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--jf-muted)}
.pt-u b{display:inline-block;font-size:11.5px;font-weight:800;background:#eaf7ee;color:#14692f;border-radius:999px;padding:2px 9px}.pt-u small{display:block;font-size:11px;color:var(--jf-muted);margin-top:2px}
.pt-row input{width:100%;height:36px;padding:6px 10px;font-size:14px;text-align:right;margin:0}
.pt-hv{font-size:13px;color:#55685b;text-align:right}.pt-hpp{text-align:right}
.pt-mu{display:flex;align-items:center;border:1px solid #c4d9ca;border-radius:10px;overflow:hidden;background:#fff}.pt-mu:focus-within{border-color:#42bd66;box-shadow:0 0 0 3px #1a913b24}.pt-mu input{border:0!important;box-shadow:none!important;border-radius:0;height:34px}.pt-mu i{font-style:normal;font-size:12px;font-weight:800;color:var(--jf-muted);padding:0 9px;background:#f3f9f4;align-self:stretch;display:flex;align-items:center}
.pt-mu.neg{border-color:#f5a3b1}.pt-mu.neg input{color:#be123c}
.pt-g{font-size:12.5px;text-align:right;white-space:nowrap}.pt-d{display:block;font-size:11px;color:#b45309;font-weight:700}
.pt-ml{display:none!important}.pt-note{font-size:11.5px;color:var(--jf-muted);padding:6px 12px 9px;border-top:1px solid #eef2ef}
.pt-row input.up-set{border-color:#f0b35a;background:#fffaf0}
@media(max-width:700px){
 .pt-head{display:none!important}
 .pt-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 96px;grid-template-areas:"u u g" "h p m";gap:6px 8px;padding:10px}
 .pt-u{grid-area:u;display:flex;align-items:center;gap:8px}.pt-u small{margin:0}
 .pt-g{white-space:normal;line-height:1.3}.pt-d{font-size:10.5px}
 .pt-hpp{grid-area:h;text-align:left}.pt-p{grid-area:p}.pt-m{grid-area:m}.pt-g{grid-area:g;align-self:center}
 .pt-ml{display:block!important;font-size:10.5px!important;font-weight:700!important;color:var(--jf-muted)!important;margin:0 0 3px!important;text-transform:uppercase;letter-spacing:.04em;text-align:left}
 .pt-hv{display:flex;flex-direction:column;justify-content:flex-end;height:100%;font-size:13.5px;color:#33463a}
}
.m-pick .sp-form{grid-template-columns:minmax(200px,2fr) minmax(100px,1fr) minmax(130px,1fr) 120px auto}.m-pick .pt-mu input{height:40px;text-align:right;padding:0 10px}
@media(max-width:700px){.m-pick .sp-form{grid-template-columns:1fr 1fr}.m-pick .sp-form>div:first-child,.m-pick .sp-form>.toolbar{grid-column:1/-1}}
.m-pend{margin-top:4px;font-size:12px;color:#14692f}.m-pend b{background:#eaf7ee;border-radius:6px;padding:0 6px;margin:0 2px}
.m-sort{width:auto!important;margin-left:auto;min-width:200px;padding:6px 10px;font-size:13px;border-radius:999px}
tr.pr-mt td{background:#f8fbff;border-top:0;padding-top:6px;padding-bottom:6px}tr.pr-mt td:first-child{padding-left:26px}.pr-mb{font-size:10px;font-weight:800;background:#e0ecff;color:#1d4ed8;border-radius:999px;padding:1px 7px;margin-right:6px}.money.pr-low{border-color:#f5a3b1}
.m-saved{display:flex;gap:4px;flex-wrap:wrap;margin-top:3px}.m-saved span{font-size:10px;font-weight:800;color:#1d4ed8;background:#e0ecff;border-radius:999px;padding:0 6px}.m-saved span.on{background:#1d4ed8;color:#fff}
.total-card .sl-round.rd-hide{display:none!important}
.rd-chips{display:flex;flex-wrap:wrap;gap:6px}.rd-chips button{flex:1 1 auto;min-width:0;height:34px;padding:0 10px;border:1px solid var(--jf-line,#d8e8dc);background:#fff;color:var(--jf-ink,#1d2b22);border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}.rd-chips button:hover{border-color:var(--jf-green,#1a913b)}.rd-chips button.on{background:var(--jf-green,#1a913b);border-color:var(--jf-green,#1a913b);color:#fff}
.total-card .sl-round{grid-template-columns:84px minmax(0,1fr) auto!important}
.cart-no{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 5px;margin-right:7px;border-radius:999px;background:#e6f6ea;color:#1a6b31;font-size:11.5px;font-weight:800;vertical-align:1px}
#pos .pos-bar.pb-below{margin:0!important;padding:10px 12px;background:#fff;border:1px solid var(--jf-line,#d8e8dc);border-top:0}.pay-rows .sl-round{border-bottom:0!important;padding:4px 0!important}
.fq-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:5px;vertical-align:-2px;cursor:help}.fq-dot i{width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 2px #fff,0 0 0 3px #00000014}
.ss-w{position:relative;display:block;width:100%}.ss-w>select[data-ss]{display:none}.ss-in{width:100%;padding-right:28px!important;cursor:text}.ss-w::after{content:"";position:absolute;right:11px;top:50%;width:7px;height:7px;border-right:2px solid #6b7a72;border-bottom:2px solid #6b7a72;transform:translateY(-70%) rotate(45deg);pointer-events:none}
.ss-pop{position:fixed;z-index:9999;background:#fff;border:1px solid #d6e0da;border-radius:10px;box-shadow:0 10px 30px #0002;max-height:280px;overflow:auto;padding:4px;font-size:14px}.ss-pop div{padding:7px 10px;border-radius:7px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ss-pop div.on{background:#e7f4ec;color:#0f5b35}.ss-pop div.sel{font-weight:700}.ss-pop mark{background:#fde68a;color:inherit;border-radius:2px}.ss-pop .ss-none{color:#8a978f;cursor:default}
.sp-pend{border:1px solid #f3d9a4;background:#fffaf0;border-radius:12px;padding:10px 12px;margin-bottom:12px}.sp-pend h4{margin:0 0 6px;font-size:14px;display:flex;align-items:center;gap:6px;color:#92400e}.sp-pend .spp-r{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 0;border-top:1px dashed #f0dcb2}.sp-pend .spp-r:first-of-type{border-top:0}.sp-pend .spp-i{flex:1;min-width:200px;font-size:13px}.sp-pend .spp-on{background:#e7f4ec;color:#0f5b35;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}
.inv-from-sp{display:flex;align-items:center;gap:8px;background:#e7f4ec;color:#0f5b35;border-radius:10px;padding:8px 12px;margin:0 0 10px;font-size:13px}
.inv-tabs{display:flex;gap:8px;align-items:stretch;overflow-x:auto;padding:3px 3px 6px;margin-bottom:6px;scrollbar-width:thin}
.inv-tabs .draft{flex:0 0 200px;margin:0;padding:9px 30px 9px 12px}.inv-tabs .draft .d-total{font-size:15px}.inv-tabs .draft .d-nm{font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inv-tabs .d-sp{display:inline-block;background:#e7f4ec;color:#0f5b35;border-radius:999px;padding:0 7px;font-size:11px;font-weight:700;margin-left:4px}
.inv-tabs .it-add{flex:0 0 auto;white-space:nowrap;align-self:stretch}
@media(max-width:700px){.inv-tabs .draft{flex-basis:165px}}
.ssx-pop{position:fixed;z-index:10000;background:#fff;border:1px solid #cfd9d2;border-radius:12px;box-shadow:0 12px 32px #0f2a1a29;display:flex;flex-direction:column;overflow:hidden;font-size:14px}
.ssx-q{margin:8px;padding:8px 10px 8px 32px!important;border:1px solid #cfd9d2;border-radius:9px;font:inherit;outline:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2365736a' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") 10px 50% no-repeat;min-height:0!important;height:auto!important;width:auto!important}
.ssx-q:focus{border-color:#1a913b;box-shadow:0 0 0 3px #1a913b22}
.ssx-l{overflow:auto;padding:0 6px 6px}.ssx-l .o{padding:7px 10px;border-radius:8px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;padding-right:26px}.ssx-l .o.on{background:#e9f5ec;color:#0f6b2b}.ssx-l .o.cur{font-weight:700}.ssx-l .o.cur::after{content:"✓";position:absolute;right:10px;color:#1a913b}
.ssx-l .g{padding:8px 10px 3px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#65736a}.ssx-l mark{background:#fde68a;color:inherit;border-radius:2px;padding:0}.ssx-l .none{padding:10px;color:#8a978f}
.ssx-n{font-size:11.5px;color:#65736a;padding:0 12px 6px}
.mds-k{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:4px}
.mds-k .k{border:1px solid var(--jf-line,#e2e8e3);border-radius:12px;padding:11px 13px;background:#fff}.mds-k .k small{display:block;font-size:12px;color:var(--jf-muted,#65736a);font-weight:600}.mds-k .k b{display:block;font-size:19px;margin-top:3px;font-variant-numeric:tabular-nums;white-space:nowrap}.mds-k .k span{font-size:11.5px;color:var(--jf-muted,#65736a)}.mds-k .k.hl{background:#e9f5ec;border-color:#bfe3c9}.mds-k .k.hl b{color:#0f6b2b}
.mds-g{display:grid;grid-template-columns:1.5fr 1fr;gap:12px;margin-top:12px}@media(max-width:900px){.mds-g{grid-template-columns:1fr}}
.mds-c{border:1px solid var(--jf-line,#e2e8e3);border-radius:12px;padding:12px 14px;min-width:0}.mds-c h4{margin:0 0 8px;font-size:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mds-c h4 .sp{flex:1}
.mds-seg{display:inline-flex;border:1px solid var(--jf-line,#e2e8e3);border-radius:9px;overflow:hidden}.mds-seg button{border:0;background:#fff;padding:5px 10px;font:inherit;font-size:12px;font-weight:600;color:#65736a;cursor:pointer}.mds-seg button.on{background:#1a913b;color:#fff}
.mds-bars{max-height:480px;overflow:auto;padding-right:4px}.mds-b{display:grid;grid-template-columns:minmax(90px,170px) 1fr auto;gap:8px;align-items:center;padding:4px 6px;border-radius:8px;cursor:pointer;font-size:13px}.mds-b:hover{background:#f4f6f3}.mds-b .n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mds-b .t{height:12px;background:#eef2ef;border-radius:6px;overflow:hidden}.mds-b .t i{display:block;height:100%;background:#1a913b;border-radius:6px}.mds-b .v{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap;font-size:12.5px}.mds-b .v small{font-weight:500;color:#65736a;margin-left:4px}
.mds-chk{list-style:none;margin:0;padding:0}.mds-chk li{display:flex;align-items:center;gap:8px;padding:6px 4px;border-bottom:1px dashed #e2e8e3;font-size:13px}.mds-chk li:last-child{border-bottom:0}.mds-chk li b{margin-left:auto;font-variant-numeric:tabular-nums}.mds-chk .dot{width:8px;height:8px;border-radius:50%;flex:none}.mds-chk li.z{color:#8a978f}.mds-chk li.z b{font-weight:500}
.mds-top{margin-top:10px}.mds-top ol{margin:4px 0 0;padding-left:20px;font-size:13px}.mds-top li{padding:2px 0}.mds-top li span{float:right;font-weight:700;font-variant-numeric:tabular-nums}
.mds-note{font-size:12px;color:#65736a;margin:10px 0 0}
.so-one input{width:84px!important;text-align:right!important}.so-br{font-size:11.5px;color:var(--muted);margin-top:3px;white-space:nowrap}
.so-cards [data-sof]{cursor:pointer;transition:box-shadow .15s,border-color .15s}.so-cards .card[data-sof]:hover{box-shadow:0 0 0 2px #1a913b33}.so-cards .card.on{box-shadow:0 0 0 2px #1a913b;border-color:#1a913b}
.so-lk{border:0;background:none;padding:0;font:inherit;color:inherit;text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer}.so-lk:hover{color:#0f6b2b}.so-lk.on{color:#0f6b2b;font-weight:700;text-decoration-style:solid}
#soRows tr.so-gone{opacity:0;transition:opacity .25s}
.qty.qty-one{justify-content:flex-start}.qty.qty-one input{width:72px!important;min-width:72px;text-align:center}
.party-hint:empty{display:none}
.inv-st select{min-width:150px;height:34px;padding:4px 28px 4px 10px;font-size:13px;font-weight:700;border-radius:9px}.inv-st.paid select{background-color:#e9f5ec;border-color:#bfe3c9;color:#0f6b2b}.inv-st.cred select{background-color:#fff7ed;border-color:#fcd9a8;color:#b45309}.inv-st.late select{background-color:#fff1f2;border-color:#fecdd3;color:#be123c}.inv-st small{display:block;font-size:11.5px;color:var(--jf-muted,#65736a);margin-top:3px;white-space:nowrap}
.ivs{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch;border:1px solid #bfe3c9;background:#f4faf6;border-radius:12px;padding:10px 12px;margin:0 0 12px}.ivs .ivs-n{flex:1 1 100%;font-weight:800;font-size:14px;display:flex;align-items:center;gap:8px}.ivs .ivs-n button{margin-left:auto}.ivs .ivs-k{flex:1 1 140px;background:#fff;border:1px solid #e2e8e3;border-radius:10px;padding:8px 10px}.ivs .ivs-k small{display:block;font-size:11.5px;color:#65736a;font-weight:600}.ivs .ivs-k b{display:block;font-size:16px;font-variant-numeric:tabular-nums;margin-top:2px}.ivs .ivs-k span{font-size:11.5px;color:#65736a}.ivs .ivs-k.due b{color:#b45309}
.fin-adj{margin:0 0 14px;border:1px solid var(--jf-line,#e2e8e3);border-radius:12px;overflow:hidden}.fin-adj h4{margin:0;padding:9px 12px;font-size:13.5px;background:#f6faf7;border-bottom:1px solid var(--jf-line,#e2e8e3);display:flex;gap:8px;align-items:center}.fin-adj h4 a{margin-left:auto;font-size:12px;font-weight:700;color:#0f6b2b;cursor:pointer}.fin-adj table{width:100%;font-size:13px}.fin-adj td,.fin-adj th{padding:6px 12px}.fin-adj th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#65736a;text-align:left}.fin-adj th.right{text-align:right}.fin-adj .neg{color:#be123c}.fin-adj tfoot td{font-weight:800;border-top:1px solid var(--jf-line,#e2e8e3)}
.rb-tag{color:#7c3aed!important;font-weight:700}
.rb-m{max-width:880px!important;width:calc(100vw - 32px)}.rb-m .tablewrap{max-height:46vh;overflow:auto}.rb-m td{vertical-align:middle;font-size:13px}.rb-m input.rb-q{width:76px;text-align:right;padding:6px 8px}.rb-m .rb-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:10px 0}.rb-sum{border:1px solid #e2e8e3;border-radius:12px;padding:10px 12px;font-size:13px;background:#f8fbf9}.rb-sum b{font-variant-numeric:tabular-nums}.rb-sum .rb-ex{margin-top:8px;display:flex;gap:16px;flex-wrap:wrap}.rb-sum .rb-ex label{display:flex!important;align-items:center;gap:6px;font-weight:600!important;margin:0!important}
.rb-cr{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}.rb-cr span{background:#f3e8ff;color:#6b21a8;border-radius:999px;padding:4px 10px;font-size:12.5px}
.apv-tg{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 12px}.apv-tg label{display:flex!important;align-items:center;gap:8px;margin:0!important;font-weight:600!important;font-size:13.5px}
.apv-ap{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.apv-ap>div{border:1px solid var(--jf-line,#e2e8e3);border-radius:12px;padding:10px 12px;display:flex;align-items:center;gap:10px;font-size:13px}.apv-ap>div b{display:block}.apv-ap>div .muted{font-size:12px}.apv-ap button{margin-left:auto;white-space:nowrap;flex:none}
.apv-h{margin:16px 0 8px;font-size:14px}
.apv-m{max-width:420px!important}.apv-m .apv-x{background:#fff7ed;border:1px solid #fcd9a8;border-radius:10px;padding:8px 10px;font-size:13px;margin:0 0 12px}.apv-m input[type=password]{letter-spacing:.3em;font-size:18px;text-align:center}.apv-m .em-err{min-height:18px}
/* --- blok 3 --- */
#syncStatus.err{background:#fff1f2!important;border-color:#fecdd3!important;color:#be123c!important}#syncStatus.err::before{background:#e11d48!important;box-shadow:0 0 0 3px #e11d4840!important;animation:jfBlink 1s infinite}@keyframes jfBlink{50%{opacity:.25}}
/* --- blok 4 --- */
.loss-n{font-size:11.5px;font-weight:800;color:#be123c;margin-top:2px;white-space:nowrap}.loss-warn{display:flex;gap:8px;align-items:flex-start;background:#fff1f2;border:1px solid #fecdd3;color:#9f1239;border-radius:10px;padding:9px 12px;margin:10px 0 4px;font-size:13px;line-height:1.45}.loss-warn b{color:#be123c}
/* --- blok 5 --- */
.lg-row{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.lg-box{flex:none;width:220px;height:110px;border:1px dashed #b7d3bf;border-radius:14px;background:#fff;display:grid;place-items:center;padding:12px;color:var(--muted);font-size:12.5px;text-align:center}.lg-box img{width:auto!important;height:auto!important;max-width:196px!important;max-height:86px!important;object-fit:contain;display:block}.lg-txt{flex:1 1 280px;min-width:0}.lg-txt p{margin:0 0 12px;line-height:1.55;max-width:62ch}.lg-act{display:flex;gap:10px;flex-wrap:wrap}.lg-act .btn{flex:0 0 auto}.sb-brand{display:flex;align-items:center;gap:10px;min-width:0}.sb-logo.custom{max-width:180px;object-fit:contain}.sb-bname{font-weight:800;font-size:14px;line-height:1.2;color:#0f5a28;overflow-wrap:anywhere}.ce-logo.custom{max-width:220px;object-fit:contain}@media(max-width:560px){.lg-box{width:100%}}
/* --- blok 6 --- */
#bootMsg{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2000;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #cfe7d6;border-radius:14px;padding:14px 20px;box-shadow:0 10px 30px #0c5a2426;font:600 14px system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#0f5a28;max-width:calc(100vw - 32px)}#bootMsg .bm-spin{width:18px;height:18px;border-radius:50%;border:3px solid #cfe7d6;border-top-color:#1a913b;animation:bmSpin .8s linear infinite;flex:none}@keyframes bmSpin{to{transform:rotate(360deg)}}#bootMsg.err{flex-direction:column;align-items:flex-start;gap:6px;color:#9f1239;border-color:#fecdd3;max-width:420px}#bootMsg.err .bm-t{font-weight:500;color:#33463a}#bootMsg.err button{margin-top:6px;border:0;border-radius:9px;padding:9px 14px;background:#1a913b;color:#fff;font:inherit;cursor:pointer}@media (prefers-reduced-motion:reduce){#bootMsg .bm-spin{animation:none}}
/* --- blok 7 --- */
.sb-app{display:flex;align-items:center;gap:11px;min-width:0}.sb-app-logo{width:auto;height:42px;flex:none;display:block}.sb-appt{display:flex;flex-direction:column;min-width:0;line-height:1.2}.sb-appt b{font-size:18px;font-weight:800;color:#0f5a28;letter-spacing:.1px}.sb-appt span{font-size:12px;font-weight:600;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.sb-appt span.has{font-size:13px;font-weight:700;color:#33463a;white-space:normal;max-width:170px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25;margin-top:1px}@media(min-width:901px){#pagePharm{display:none!important}}@media(max-width:900px){body.has-pharm #pageGroup{display:none}#pagePharm{max-width:52vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}}
/* --- blok 8 --- */
.ce-mark{font-family:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:46px;font-weight:800;letter-spacing:-.02em;line-height:1.05;color:#d7e7dc;text-shadow:0 1px 0 #fff,0 -1px 0 #c3d8c9;user-select:none;padding:4px 0}@media(max-width:560px){.ce-mark{font-size:38px}}
/* --- blok 9 --- */
#cartEmpty .ce-logo,#cartEmpty .ce-mark{display:none!important}
/* --- blok 10 --- */
.ai-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.ai-head h3{margin:0}
.ai-btn{flex:0 0 auto;background:linear-gradient(135deg,#0f5a28,#1a913b)}
.modal.ai-m{max-width:960px;max-height:calc(100vh - 32px);overflow:auto;padding:20px 22px}
.ai-m h3{display:flex;align-items:center;gap:8px}.ai-sub{margin:-2px 0 14px!important;color:var(--muted);line-height:1.5;max-width:70ch}
.ai-drop{border:2px dashed #b7d3bf;border-radius:14px;background:#f7fbf8;padding:22px 16px;text-align:center;cursor:pointer;transition:.15s;display:flex;flex-direction:column;align-items:center;gap:6px;color:#33463a}
.ai-drop:hover,.ai-drop.over{border-color:#1a913b;background:#effaf1}.ai-drop b{font-size:15px;color:#0f5a28}.ai-drop small{color:var(--muted)}
.ai-drop .ic{width:30px;height:30px;color:#1a913b}
.ai-thumbs{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.ai-th{position:relative;width:96px;height:120px;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#fff}
.ai-th img{width:100%;height:100%;object-fit:cover;display:block}.ai-th span{position:absolute;left:6px;bottom:5px;background:#0f3d1fcc;color:#fff;font-size:11px;font-weight:700;border-radius:6px;padding:1px 6px}
.ai-th button{position:absolute;top:4px;right:4px;width:24px;height:24px;border:0;border-radius:7px;background:#fff;color:#be123c;font-size:16px;line-height:1;cursor:pointer;box-shadow:0 1px 4px #0003}
.ai-tips{margin:12px 0 0;padding-left:18px;color:var(--muted);font-size:12.5px;line-height:1.6}
.ai-busy{display:flex;flex-direction:column;align-items:center;gap:12px;padding:34px 10px;text-align:center}
.ai-spin{width:34px;height:34px;border-radius:50%;border:4px solid #cfe7d6;border-top-color:#1a913b;animation:bmSpin .8s linear infinite}
.ai-busy b{font-size:15px}.ai-busy small{color:var(--muted)}
.ai-err{background:#fff1f2;border:1px solid #fecdd3;color:#9f1239;border-radius:10px;padding:10px 12px;margin:10px 0;font-size:13px;line-height:1.5}
.ai-hdr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 14px;background:#f7fbf8;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:12px;font-size:13px}
.ai-hdr div span{display:block;color:var(--muted);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.ai-hdr div b{display:block;overflow-wrap:anywhere}
.ai-hdr .wide{grid-column:span 2}
.ai-sup-warn{color:#b45309;font-weight:700;font-size:12px;display:block;margin-top:2px}.ai-sup-warn button{margin-left:6px}
.ai-tbl{font-size:12.5px}.ai-tbl td{vertical-align:middle}.ai-tbl select{min-width:220px;padding:6px 8px;font-size:12.5px}
.ai-src{font-weight:700}.ai-src small{display:block;color:var(--muted);font-weight:500}
.ai-st{display:inline-block;font-size:11px;font-weight:800;border-radius:6px;padding:1px 7px;margin-top:4px}
.ai-st.ok{background:#dff3e4;color:#17702f}.ai-st.chk{background:#fff0dc;color:#b45309}.ai-st.no{background:#ffe4e6;color:#be123c}
.ai-sum{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;font-size:13px}
.ai-m .actions{margin-top:16px;flex-wrap:wrap}
@media(max-width:700px){.ai-hdr{grid-template-columns:1fr 1fr}.ai-hdr .wide{grid-column:1/-1}.ai-tbl select{min-width:170px}}
/* --- blok 11 --- */
.ib .rx-btn,.ib .rx-btn.on,.ib .rx-btn.need{border:0!important;background:transparent!important;border-radius:0;padding:3px 0;margin-top:0;font-size:14px;color:var(--ink)}
.ib .rx-btn:focus-visible{outline:2px solid #42bd6655;outline-offset:2px;border-radius:4px}
.ib .rx-btn b{font-size:14px;font-weight:600;color:var(--ink)}
.ib .rx-btn.need b{color:#be123c}
.rx-ph{color:#7c8a81;font-weight:400;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ib .rx-btn:hover .rx-ph{color:#4f6556}
/* --- rt-responsive --- */
/* --- Semua perangkat: tabel lebih ringkas, kolom nama menempel saat digeser --- */
.tablewrap{position:relative;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.tablewrap.rt-scroll-r{box-shadow:inset -18px 0 14px -14px #0c5a2433,var(--shadow)}
.tablewrap.rt-scroll-l{box-shadow:inset 18px 0 14px -14px #0c5a2433,var(--shadow)}
.tablewrap.rt-scroll-l.rt-scroll-r{box-shadow:inset 18px 0 14px -14px #0c5a2433,inset -18px 0 14px -14px #0c5a2433,var(--shadow)}
table.rt-card td.m-clamp{max-width:200px;min-width:150px;white-space:normal}
table.rt-card th{white-space:normal;line-height:1.25}
table.rt-card td.m-clamp>.rt-txt,table.rt-card td.m-clamp{overflow-wrap:anywhere}
@media(max-width:1600px){
 table.rt-card{font-size:12.5px}
 table.rt-card th,table.rt-card td{padding:8px 8px}
 table.rt-card th{font-size:11.5px}
 table.rt-card .btn.small{padding:5px 8px}
}

.md-code{display:none}
@media(min-width:1025px) and (max-width:1700px){
 #products .rt-card thead th:nth-child(2),#productRows td:nth-child(2){display:none}
 #productRows .md-code{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;font-variant-numeric:tabular-nums}
}
@media(min-width:1025px){
 #productRows td:last-child .btn{display:flex;width:100%;margin:0 0 5px}
 #productRows td:last-child .btn:last-child{margin-bottom:0}
 #products table.rt-card td.m-clamp{max-width:170px;min-width:130px}
 #productRows td:nth-child(3){min-width:170px!important}
 #productRows td:nth-child(3){font-weight:650;color:var(--ink)}
 #productRows .md-code{font-weight:500}
 #products table.rt-card th,#products table.rt-card td{padding:8px 6px}
}

/* --- Tablet portrait: tabel yang kolomnya banyak jadi kartu 2 kolom (tanpa geser kiri-kanan) --- */
@media(min-width:641px) and (max-width:1024px){
 .tablewrap:has(>table.rt-card.rt-many){overflow:visible;border:0;box-shadow:none!important;background:transparent}
 table.rt-card.rt-many{background:transparent;min-width:0!important;width:100%!important;display:block}
 table.rt-card.rt-many thead{display:none}
 table.rt-card.rt-many tbody{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 table.rt-card.rt-many tfoot{display:block;margin-top:12px}
 table.rt-card.rt-many tbody tr.rt-emptyrow{grid-column:1/-1}
}
/* --- Kartu (dipakai HP untuk semua tabel, tablet untuk tabel lebar) --- */
@media(max-width:640px){
 .tablewrap:has(>table.rt-card){overflow:visible;border:0;box-shadow:none!important;background:transparent;margin-top:10px}
 table.rt-card{background:transparent;min-width:0!important;width:100%!important;display:block;font-size:13.5px}
 table.rt-card thead{display:none}
 table.rt-card tbody,table.rt-card tfoot{display:block}
}
@media(max-width:640px){
 table.rt-card tbody tr,table.rt-card tfoot tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;background:#fff!important;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:0 0 10px;box-shadow:var(--shadow);position:relative;align-items:start}
 table.rt-card td{display:block;padding:0!important;border:0!important;min-width:0;max-width:none!important;text-align:left!important;white-space:normal!important;width:auto!important;position:static!important;box-shadow:none!important;background:transparent!important}
 table.rt-card td::before{content:attr(data-label);display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.45px;color:var(--muted);margin-bottom:2px;line-height:1.3}
 table.rt-card td[data-label=""]::before{display:none}
 table.rt-card td.m-title{grid-column:1/-1;order:-2;font-size:15px;font-weight:750;color:var(--ink);line-height:1.35;padding-right:34px!important}
 table.rt-card td.m-title::before{display:none}
 table.rt-card td.m-sub{grid-column:1/-1;order:-1;margin-top:-6px;color:var(--muted);font-size:12.5px}
 table.rt-card td.m-sub::before{display:none}
 table.rt-card td.m-chk{position:absolute!important;top:12px!important;right:12px!important;left:auto!important;width:auto!important}
 table.rt-card td.m-chk::before{display:none}
 table.rt-card td.m-wide,table.rt-card td[colspan]{grid-column:1/-1}
 table.rt-card td.m-money{font-weight:700;color:var(--ink)}
 table.rt-card td.m-act{grid-column:1/-1;order:9;display:flex!important;gap:8px;flex-wrap:wrap;justify-content:flex-end;border-top:1px dashed var(--line)!important;padding-top:10px!important;margin-top:2px}
 table.rt-card td.m-act::before{display:none}
 table.rt-card td.m-act .btn,table.rt-card td.m-act button{min-height:38px;padding:8px 14px;font-size:13px}
 table.rt-card td.m-hide{display:none}
 table.rt-card td.empty,table.rt-card tr.rt-emptyrow td{grid-column:1/-1;text-align:center!important;padding:10px 0!important}
 table.rt-card tr.rt-emptyrow{box-shadow:none;border-style:dashed;background:transparent!important}
 table.rt-card tbody tr.sel{background:#fff1f2!important;border-color:#fecdd3}
 table.rt-card td input:not([type=checkbox]),table.rt-card td select{width:100%;min-height:40px}
 table.rt-card td.m-clamp{display:-webkit-box!important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
 table.rt-card tfoot tr{background:#e8f9ed!important;border-color:#bfe6c9}
 /* tombol & isian ramah jari */
 .btn,select,input:not([type=checkbox]):not([type=radio]){min-height:42px}
 .btn.small{min-height:34px}
 input,select,textarea{font-size:16px} /* cegah zoom otomatis iOS */
 .toolbar>*{min-width:0;flex:1 1 calc(50% - 9px)}
 .toolbar>.searchbox,.toolbar>input[type=search]{flex-basis:100%}
 .modal{max-height:calc(100dvh - 32px);overflow:auto;padding:18px}
 .modal-back{align-items:end;padding:0}
 .modal-back>.modal{border-radius:18px 18px 0 0;max-width:none}
 .toast{bottom:calc(16px + env(safe-area-inset-bottom));width:max-content}
}
@media(max-width:640px){
 /* kartu di tablet ikut gaya yang sama */
}
@media(min-width:641px) and (max-width:1024px){
 table.rt-card.rt-many tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;background:#fff!important;border:1px solid var(--line);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow);position:relative;align-content:start}
 table.rt-card.rt-many tfoot tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 14px;background:#e8f9ed!important;border:1px solid #bfe6c9;border-radius:14px;padding:12px 14px}
 table.rt-card.rt-many td{display:block;padding:0!important;border:0!important;min-width:0;max-width:none!important;text-align:left!important;white-space:normal!important;width:auto!important;position:static!important;box-shadow:none!important;background:transparent!important}
 table.rt-card.rt-many td::before{content:attr(data-label);display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.45px;color:var(--muted);margin-bottom:2px}
 table.rt-card.rt-many td[data-label=""]::before,table.rt-card.rt-many td.m-title::before,table.rt-card.rt-many td.m-sub::before,table.rt-card.rt-many td.m-chk::before,table.rt-card.rt-many td.m-act::before{display:none}
 table.rt-card.rt-many td.m-title{grid-column:1/-1;order:-2;font-size:15px;font-weight:750;padding-right:34px!important}
 table.rt-card.rt-many td.m-sub{grid-column:1/-1;order:-1;margin-top:-6px;color:var(--muted);font-size:12.5px}
 table.rt-card.rt-many td.m-chk{position:absolute!important;top:12px!important;right:12px!important;left:auto!important}
 table.rt-card.rt-many td.m-wide,table.rt-card.rt-many td[colspan]{grid-column:1/-1}
 table.rt-card.rt-many td.m-money{font-weight:700}
 table.rt-card.rt-many td.m-act{grid-column:1/-1;order:9;display:flex!important;gap:8px;flex-wrap:wrap;justify-content:flex-end;border-top:1px dashed var(--line)!important;padding-top:10px!important}
 table.rt-card.rt-many td.m-hide{display:none}
 table.rt-card.rt-many td.m-clamp{display:-webkit-box!important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
 table.rt-card.rt-many tbody tr.sel{background:#fff1f2!important}
 table.rt-card.rt-many tr.rt-emptyrow{grid-column:1/-1;display:block;text-align:center}
}
/* --- Tablet: area sentuh lebih besar --- */
@media(pointer:coarse){
 .btn,.sb-item,.sb-link,.sb-group-btn{min-height:42px}
 input[type=checkbox]{width:22px;height:22px}
}
@supports(padding:max(0px)){
 @media(max-width:640px){main{padding-left:max(13px,env(safe-area-inset-left));padding-right:max(13px,env(safe-area-inset-right));padding-bottom:calc(90px + env(safe-area-inset-bottom))}}
}
@media print{table.rt-card,table.rt-card thead,table.rt-card tbody{display:revert!important}}


/* Fase 0: apotek, cabang & perangkat */
.f0-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.f0-card{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fbfefc;min-width:0}
.f0-wide{margin-top:14px}
.f0-card h4{margin:0 0 8px;font-size:15px;color:#14261a}
.f0-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.f0-head h4{margin:0}
.f0-kv{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px dashed #d6e5da;font-size:13px}.f0-kv span{color:var(--muted)}.f0-kv code{font-size:12px;overflow-wrap:anywhere}
.f0-card label{display:block;margin:10px 0 5px;font-size:12.5px;font-weight:700;color:#33463a}
.f0-row{display:flex;gap:8px}.f0-row input{flex:1;min-width:0}
.f0-hint{font-size:12.5px;color:var(--muted);line-height:1.5;margin:8px 0 0}
.f0-pill{display:inline-block;font-size:11px;font-weight:800;border-radius:999px;padding:2px 9px;background:#eef2ef;color:#33463a;white-space:nowrap}
.f0-pill.main{background:#fff0dc;color:#c2570c}.f0-pill.on{background:#dff3e4;color:#17702f}.f0-pill.off{background:#ffe4e6;color:#be123c}
.f0-form{display:grid;grid-template-columns:110px minmax(0,1.2fr) minmax(0,1.6fr) minmax(0,1fr) auto;gap:10px;align-items:end}
.f0-form label{margin-top:0}.f0-fact{display:flex;gap:8px}
.f0-err{color:#be123c;font-size:12.5px;font-weight:700;min-height:16px;margin-top:6px}
.f0-pol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media(max-width:1100px){.f0-form{grid-template-columns:repeat(2,minmax(0,1fr))}.f0-fact{grid-column:1/-1}.f0-pol{grid-template-columns:1fr}}
@media(max-width:760px){.f0-grid{grid-template-columns:1fr}.f0-form{grid-template-columns:1fr}}

/* Kasir: atur harga dari markup */
.mk-cart{display:inline-flex;align-items:center;gap:4px;margin-top:5px;border:1px dashed #1a913b;background:#f3faf5;color:#0f5a28;border-radius:8px;padding:3px 8px;font:inherit;font-size:11.5px;font-weight:800;cursor:pointer;white-space:nowrap}
.mk-cart:hover{background:#e6f6ea;border-style:solid}
.mk-cart:focus-visible{outline:3px solid #ff8b10;outline-offset:2px}
.cart-table td.right .mk-cart{float:right;clear:both}
@media(max-width:900px){#cartBody .mk-cart{float:none;margin-top:4px;min-height:32px}}

/* Master data: panel ringkas + bar filter rapi */
#products .collapsible{padding:0!important;overflow:hidden;border-radius:14px;margin-top:10px!important}
@media(hover:hover){#products .collapsible>.cl-head:hover{background:#f6fbf7}}
#products .collapsible>.cl-head{margin:0;padding:14px 16px;background:#fff;border:0;border-radius:0;gap:14px;transition:background .15s}
#products .collapsible>.cl-head.xl-head,#products .collapsible>.cl-head.pf-head{margin:0!important;background:#fff;border-radius:0}
@media(hover:hover){#products .collapsible>.cl-head.xl-head:hover,#products .collapsible>.cl-head.pf-head:hover{background:#f6fbf7}}
#products .collapsible.is-collapsed{padding-bottom:0!important}
#products .mk-total span:last-of-type{text-decoration:none}
#products .collapsible:not(.is-collapsed)>.cl-head{border-bottom:1px solid var(--line)}
#products .collapsible>.cl-head h3{font-size:15.5px;margin:0 0 2px}
#products .collapsible>.cl-head h3 .ic{width:30px;height:30px;padding:7px;border-radius:9px;background:#e6f6ea;color:#1a913b}
#products #excelImportPanel>.cl-head h3 .ic{background:#e7f0ff;color:#1d4ed8}
#products #mdSumPanel>.cl-head h3 .ic{background:#fff0dc;color:#c2570c}
#products .collapsible>.cl-head p{font-size:12.5px;margin-left:38px}
#products .collapsible>:not(.cl-head){padding-left:16px;padding-right:16px}
#products .collapsible>:last-child:not(.cl-head){padding-bottom:16px}
#products .collapsible>.cl-head+*{padding-top:14px}
#products .pfm-inline{padding-left:16px!important;padding-right:16px!important}
.cl-btn{width:34px;height:34px;padding:0!important;justify-content:center;border-radius:50%!important}
.cl-btn .ic{transform:rotate(180deg)!important}
.is-collapsed .cl-btn .ic{transform:none!important}
.md-bar{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.md-filters{display:grid;grid-template-columns:minmax(0,2.2fr) repeat(3,minmax(0,1fr));gap:10px;align-items:stretch}
.md-filters .md-search{display:block;position:relative;min-width:0}
.md-filters .md-search input,.md-filters select{height:44px;min-height:44px;margin:0;width:100%;box-sizing:border-box;border-radius:11px;font-size:14px}
.md-filters .md-search input{padding-left:38px}
.md-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.md-act{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#17702f;font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:.15s}
.md-act .ic{width:16px;height:16px}
.md-act:hover:not(:disabled){border-color:#1a913b;background:#f3faf5}
.md-act.danger{color:#be123c}.md-act.danger:hover:not(:disabled){border-color:#fda4af;background:#fff1f2}
.md-act:disabled{opacity:.45;cursor:not-allowed}
.md-act:focus-visible{outline:3px solid #ff8b10;outline-offset:2px}
@media(max-width:1024px){.md-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.md-filters .md-search{grid-column:1/-1}}
@media(max-width:640px){.md-filters{grid-template-columns:1fr 1fr}.md-filters select#fSort{grid-column:1/-1}.md-actions{display:grid;grid-template-columns:1fr 1fr;justify-content:stretch}.md-act{justify-content:center;height:40px}.md-filters .md-search input,.md-filters select{font-size:16px}}
/* Kasir: kasir terkunci & markup semua barang */
.ib.ib-lock select:disabled{opacity:1;color:var(--ink);cursor:not-allowed;-webkit-appearance:none;appearance:none;background:transparent}
.ib.ib-lock label::after{content:none;display:none;margin-left:6px;font-size:10.5px;font-weight:800;color:#c2570c;background:#fff0dc;border-radius:999px;padding:1px 7px}
.mk-total .mk-pct{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:5px;background:#e6f6ea;color:#1a913b;font-size:11px;font-weight:900}
/* Daftar barang di kartu: satu baris penuh, teks lebih tegas */
@media(max-width:1024px){
 table.rt-card td.m-wide details summary{font-size:14px}
 table.rt-card td.m-wide .hist-items{list-style:none;margin:8px 0 0;padding:0;font-size:14.5px;color:var(--ink);display:flex;flex-direction:column;gap:6px}
 table.rt-card td.m-wide .hist-items li{background:#f3faf5;border:1px solid #d8e8dc;border-radius:10px;padding:8px 11px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}
}
/* Satuan berupa tombol di HP/tablet */
#posProducts .u-tchips{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
#posProducts .u-tchips .uchip{min-height:38px;padding:6px 12px;font-size:13px}
#posProducts .u-tchips .uchip.off{opacity:.45}
.cu-chips{display:flex;flex-wrap:wrap;gap:6px}
.cu-chip{border:1px solid #cfe3d5;background:#fff;border-radius:10px;min-height:40px;min-width:52px;padding:6px 12px;font:inherit;font-size:13px;font-weight:800;color:var(--ink);cursor:pointer}
.cu-chip.on{background:#1a913b;border-color:#1a913b;color:#fff;box-shadow:0 2px 8px #1a913b33}
@media(max-width:900px){#posProducts .pr-units{grid-template-columns:56px minmax(0,1fr) auto auto}}
@media(max-width:900px){#cartBody tr:has(.cu-chips){grid-template-areas:"nm nm nm del" "pr pr sub sub" "un un un un" "qt dc dc dc"!important}#cartBody td:has(>.cu-chips) .cu-chips{flex-wrap:nowrap;overflow-x:auto}#cartBody .cu-chip{flex:1 1 0}}
@media(max-width:480px){#posProducts .pr-units{grid-template-columns:56px minmax(0,1fr) auto;row-gap:8px}#posProducts .pr-units .u-add{grid-column:1/-1;width:100%}}
/* --- tema-warna --- */
/* ===== Tema: area kerja putih bersih, menu samping hijau dengan aksen oranye ===== */
body{background:#fff!important}
header.topbar{background:#ffffffeb!important;border-bottom:1px solid var(--jf-line)}
.sidebar{background:linear-gradient(180deg,#0f6b2b 0,#0c5a24 100%)!important;color:#e6f6ea!important;border-right:0!important}
.sidebar .sb-head{border-bottom:1px solid #ffffff1a}
.sidebar .sb-app-logo{background:#fff;border-radius:12px;padding:4px 6px;box-shadow:0 2px 8px #0000002a}
.sidebar .sb-appt b,.sidebar .sb-bname{color:#fff!important}
.sidebar .sb-appt span,.sidebar .sb-appt span.has{color:#bfe6c9!important}
.sidebar .sb-x{color:#d3eddb}.sidebar .sb-x:hover{background:#ffffff1f;color:#fff}
.sidebar .sb-group-btn{color:#ffb15c!important}
.sidebar .sb-group-btn:hover{color:#ffd19c!important;background:transparent}
.sidebar .sb-link,.sidebar .sb-item{color:#e6f6ea!important}
.sidebar .sb-link .ic,.sidebar .sb-item .ic{color:#9fd8af!important}
.sidebar .sb-link:hover,.sidebar .sb-item:hover{background:#ffffff17!important;color:#fff!important}
.sidebar .sb-link:hover .ic,.sidebar .sb-item:hover .ic{color:#ffb15c!important}
.sidebar .sb-item.active,.sidebar .sb-link.active{background:#ffffff!important;color:#0f5a28!important;font-weight:700;box-shadow:0 4px 14px #00000026!important;position:relative}
.sidebar .sb-item.active .ic,.sidebar .sb-link.active .ic{color:var(--jf-orange)!important}
.sidebar .sb-item.active::before,.sidebar .sb-link.active::before{content:""!important;display:block!important;position:absolute;left:0;top:8px;bottom:8px;width:4px;border-radius:4px;background:var(--jf-orange)}
.sidebar .sb-link.sb-cta{background:var(--jf-orange)!important;color:#fff!important}.sidebar .sb-link.sb-cta .ic{color:#fff!important}
.sidebar .sb-cnt{background:var(--jf-orange)!important;color:#fff!important}
.sidebar .sb-cnt.sb-due.late{background:#e11d48!important}
.sidebar .sb-cnt.sb-shift{background:#ffffff26!important;color:#fff!important}
.sidebar .sb-foot{border-top-color:#ffffff1a}
.sidebar .sb-link:focus-visible,.sidebar .sb-item:focus-visible,.sidebar .sb-group-btn:focus-visible{outline-color:#ffb15c}
.sidebar .sb-scroll{scrollbar-color:#ffffff40 transparent}
/* Kasir: baris Total bayar di bawah hanya tombol Bayar, angka total sudah di atas */
#pos .total-card .sum-line.grand>span,#pos .total-card .sum-line.grand>#sumGrand{display:none}
#pos .total-card .sum-line.grand{background:none!important;padding:8px 0 0!important}
#pos .total-card .sum-line.grand #checkout2{flex:1 1 100%;width:100%;min-height:48px;font-size:16px}
#pos .total-card .sl-sub span{font-weight:800}
/* Daftar barang: kolom nama lebih lebar, kolom lain menyesuaikan isi */
.sl-tbl{table-layout:auto}
.sl-tbl th.sl-nm{width:38%;min-width:260px}
.sl-tbl td:nth-child(4){white-space:normal}
.sl-tbl th:not(.sl-nm),.sl-tbl td:not(:nth-child(4)){width:1%}
.sl-tbl td:nth-child(5) .cat-b,.sl-tbl td:nth-child(5)>span:first-child{white-space:nowrap}
.sl-tbl .sl-up{margin-top:4px;display:flex;justify-content:flex-end}
/* Berlangganan */
.lg-intro{margin:-6px 0 14px}
.lg-status{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between;border:1px solid var(--jf-line);border-left:5px solid var(--jf-green);border-radius:14px;padding:14px 16px;background:#fff}
.lg-status.warn{border-left-color:var(--jf-orange);background:#fffaf3}.lg-status.bad{border-left-color:#e11d48;background:#fff6f7}
.lg-si{display:flex;gap:12px;align-items:flex-start;min-width:0;flex:1 1 320px}.lg-si small,.lg-until small{display:block;font-size:12px;color:var(--muted,#6b7a72);font-weight:600}
.lg-si b{font-size:18px}.lg-si p{margin:2px 0 0;color:#33463a}
.lg-dot{width:12px;height:12px;border-radius:50%;background:var(--jf-green);margin-top:5px;flex:none;box-shadow:0 0 0 4px #1a913b22}.warn .lg-dot{background:var(--jf-orange);box-shadow:0 0 0 4px #ff8b1022}.bad .lg-dot{background:#e11d48;box-shadow:0 0 0 4px #e11d4822}
.lg-until{text-align:right}.lg-until b{font-size:16px}
.lg-pend{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;margin-top:12px;border:1px dashed var(--jf-orange);background:var(--jf-orange-soft);border-radius:12px;padding:12px 14px}.lg-pend p{margin:4px 0 0;font-size:13px}
.lg-err{margin-top:12px;padding:10px 12px;border-radius:10px;background:#fff1f2;color:#9f1239;font-weight:600}
.lg-note{padding:14px;border:1px solid var(--jf-line);border-radius:12px;color:var(--muted,#6b7a72);background:#fff;margin-top:8px}
.lg-h{margin:22px 0 10px}
.lg-plans{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.lg-plan{position:relative;display:flex;flex-direction:column;gap:6px;border:1px solid var(--jf-line);border-radius:16px;padding:18px 16px 16px;background:#fff}
.lg-plan.hot{border:2px solid var(--jf-orange);box-shadow:0 10px 26px #ff8b1022}
.lg-badge{position:absolute;top:-11px;left:14px;background:var(--jf-orange);color:#fff;font-size:11px;font-weight:800;border-radius:999px;padding:3px 10px}
.lg-pn{font-size:15px}.lg-price{font-size:24px;font-weight:800;color:var(--jf-green-ink)}.lg-price small{font-size:13px;font-weight:600;color:var(--muted,#6b7a72)}
.lg-pm{font-size:12.5px;color:#33463a}.lg-pm b{color:#c2570c}
.lg-plan ul{margin:6px 0 10px;padding-left:18px;font-size:13px;color:#33463a;flex:1}.lg-plan li{margin:3px 0}
.lg-plan .btn{width:100%}
.lg-st{display:inline-block;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:800}.lg-st.ok{background:#e7f6ec;color:#15803d}.lg-st.warn{background:#fff4e0;color:#b45309}.lg-st.idle{background:#eef2ef;color:#5d7064}
.lg-mb .modal{max-width:460px}.lg-mb input{width:100%}
.lg-pay{flex-direction:column;align-items:stretch}.lg-pay-h{display:flex;gap:12px;justify-content:space-between;align-items:flex-start}
.lg-pay-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin:10px 0 4px}
.lg-bank{background:#fff;border:1px solid var(--jf-line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.lg-bank span{font-size:12px;font-weight:800;color:var(--jf-green-ink)}.lg-bank b{font-size:17px;letter-spacing:.5px}.lg-bank small{color:#5a685f}.lg-bank .btn{margin-top:6px;align-self:flex-start}
.lg-qris img{max-width:170px;border-radius:8px;margin-top:4px}
.lg-proof{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px;padding-top:10px;border-top:1px dashed #ffc98a}.lg-proof-a{display:flex;gap:8px;flex-wrap:wrap}.lg-proof label.btn{cursor:pointer}.lg-proof small{flex-basis:100%}
.lg-proof-img{width:64px;height:64px;object-fit:cover;border-radius:10px;border:1px solid var(--jf-line)}
#zxRenew{position:fixed;inset:0;z-index:2147483000;background:#f4f6f3;overflow:auto;visibility:visible!important}
.lg-gate{max-width:980px;margin:0 auto;padding:22px 16px 40px}
.lg-gh{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.lg-gh h2{margin:2px 0 6px}.lg-gh small{color:var(--jf-green-ink);font-weight:800}.lg-gh p{margin:0;color:#33463a}
@media(max-width:600px){.lg-until{text-align:left}.lg-pend{flex-direction:column}.lg-gh{flex-direction:column}}
/* Dinas wajib: kunci kasir */
#pos .pos-main{position:relative}
#pos .pos-main.sh-locked>*:not(.sh-lock){filter:blur(2px);opacity:.45;pointer-events:none;user-select:none}
.sh-lock{position:absolute;inset:0;z-index:30;display:flex;align-items:flex-start;justify-content:center;padding:60px 16px}
.sh-lock-c{max-width:440px;width:100%;background:#fff;border:1px solid var(--jf-line);border-top:4px solid var(--jf-orange);border-radius:16px;padding:22px 20px;text-align:center;box-shadow:0 18px 40px #15201a24}
.sh-lock-i{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--jf-orange-soft);color:var(--jf-orange)}.sh-lock-i .ic{width:26px;height:26px}
.sh-lock-c h3{margin:10px 0 6px;display:block;text-align:center}.sh-lock-c p{margin:0 0 16px;color:#33463a;line-height:1.5}.sh-lock-c .btn{width:100%;justify-content:center}
/* Kasir: nomor urut di tengah baris, info stok sejajar nama */
.cart-nm{display:flex;align-items:center;gap:10px;min-width:0}.cart-nmb{min-width:0;flex:1}
.cart-nm .cart-no{margin-right:0;flex:none}
/* Ringkasan laporan penjualan */
.rp-sum{background:#fff;border:1px solid var(--jf-line);border-radius:16px;padding:16px}
.rp-ctl{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin-bottom:14px}
.rp-per{display:inline-flex;background:#f1f5f2;border-radius:12px;padding:4px;gap:2px;flex-wrap:wrap}
.rp-per button{border:0;background:transparent;border-radius:9px;padding:8px 14px;font:inherit;font-weight:700;color:#4b5a51;cursor:pointer;white-space:nowrap}
.rp-per button.on{background:#fff;color:var(--jf-green-ink);box-shadow:0 1px 4px #15201a1f}
.rp-date{display:flex;align-items:center;gap:8px;margin:0!important;font-size:13px;font-weight:600;color:#5a685f;white-space:nowrap}.rp-date input{width:auto;height:40px}
.rp-range{margin-left:auto;font-weight:800;color:var(--jf-green-ink);background:var(--jf-green-soft);border-radius:999px;padding:6px 14px;font-size:13px}
.rp-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.rp-card{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--jf-line);border-radius:14px;padding:14px;background:#fff;min-width:0;position:relative;overflow:hidden}
.rp-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--a)}
.rp-ci{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--s);color:var(--a)}.rp-ci .ic{width:20px;height:20px}
.rp-cb{min-width:0}.rp-cb span{display:block;font-size:12.5px;font-weight:600;color:#5a685f}.rp-cb b{display:block;font-size:clamp(18px,2vw,24px);letter-spacing:-.3px;margin:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rp-cb small{display:block;font-size:12px;color:#6b7a72}
.rp-card.c-sales{--a:#1a913b;--s:#e9f5ec}.rp-card.c-cost{--a:#2563eb;--s:#e8f0ff}.rp-card.c-gross{--a:#ff8b10;--s:#fff3e4}.rp-card.c-exp{--a:#e11d48;--s:#ffe9ee}
.rp-net{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:14px 18px;border-radius:14px;background:linear-gradient(90deg,#0f6b2b,#1a913b);color:#fff}
.rp-net span{display:block;font-weight:800;font-size:15px}.rp-net small{display:block;opacity:.85;font-size:12px}.rp-net b{font-size:clamp(20px,2.4vw,28px);letter-spacing:-.4px}
.rp-net.neg{background:linear-gradient(90deg,#9f1239,#e11d48)}
.rp-help{margin:10px 0 0;font-size:12.5px}
@media(max-width:1100px){.rp-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.rp-cards{grid-template-columns:1fr 1fr;gap:8px}.rp-card{padding:10px;gap:8px;flex-direction:column}.rp-ci{width:32px;height:32px}.rp-range{margin-left:0}.rp-per{width:100%}.rp-per button{flex:1;padding:8px 4px;font-size:13px}.rp-date{width:100%}.rp-date input{flex:1}}
/* Laporan penjualan per barang */
.rp-tabs{display:flex;gap:6px;margin:14px 0 10px;flex-wrap:wrap}
.rp-tabs button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--jf-line);background:#fff;border-radius:999px;padding:8px 16px;font:inherit;font-weight:700;cursor:pointer;color:#33463a}
.rp-tabs button .ic{width:16px;height:16px}.rp-tabs button.on{background:var(--jf-green);border-color:var(--jf-green);color:#fff}
.rp-it-bar{margin-bottom:6px}.rp-it-note{font-size:12.5px;margin:0 0 8px}.rp-it-help{font-size:12.5px;margin-top:8px}
.rp-it tfoot td{background:#f3faf5;border-top:2px solid var(--jf-line)}
tr.rp-pt-row{cursor:pointer}tr.rp-pt-row:hover td{background:#f3faf5}tr.rp-pt-row.open td{background:#eef8f1}
.rp-chev{width:14px;height:14px;margin-right:4px;vertical-align:-2px;transform:rotate(-90deg);transition:transform .15s;color:#8a978f}tr.rp-pt-row.open .rp-chev{transform:none;color:var(--jf-green)}
tr.rp-sub>td{background:#f8fbf9;padding:4px 10px 12px 34px!important}
@media(max-width:760px){tr.rp-sub,tr.rp-sub>td{display:block!important;width:100%!important;padding:0 0 10px!important;border:0!important;background:none!important}tr.rp-sub>td::before{display:none!important}.rp-sub-in>table{display:none!important}.rp-sub-list{display:flex!important}}
.rp-sub-list{display:none;flex-direction:column;gap:8px}.rp-sl{border:1px solid var(--jf-line);border-radius:10px;padding:8px 10px}.rp-sl-h{display:flex;justify-content:space-between;gap:8px;font-size:13px}.rp-sl-h span{white-space:nowrap;color:#5a685f}.rp-sl-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:6px;font-size:11px;color:#6b7a72}.rp-sl-g b{display:block;font-size:12.5px;color:var(--jf-ink)}.rp-sl-g b.rp-pos{color:var(--jf-green-ink)}.rp-sl-g b.rp-neg{color:#be123c}
.rp-sub-in{border:1px solid var(--jf-line);border-radius:12px;background:#fff;padding:10px 12px;overflow-x:auto}.rp-sub-h{display:block;font-size:13px;margin-bottom:6px}
.rp-sub-in table{width:100%;font-size:13px}.rp-sub-in th{font-size:11px;background:transparent}.rp-sub-in td,.rp-sub-in th{padding:5px 8px}
.rp-it td.rp-pos b{color:var(--jf-green-ink)}.rp-it .rp-neg,.rp-it .rp-neg b{color:#be123c}
/* Izin lihat laba: sembunyikan laba, markup & margin */
.zx-nohpp .zx-p,.zx-nohpp option.zx-p{display:none!important}
.zx-nohpp .pt-row .pt-m,.zx-nohpp .pt-row .pt-g,.zx-nohpp .money.pr-mu,.zx-nohpp .money:has([data-pmmu]){display:none!important}
.zx-nohpp .pt-row{grid-template-columns:minmax(70px,.75fr) minmax(86px,1fr) minmax(96px,1.15fr)!important}
@media(max-width:700px){.zx-nohpp .pt-row{grid-template-columns:1fr 1fr!important;grid-template-areas:"u u" "h p"!important}}
.zx-nohpp .rp-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1100px){.zx-nohpp .rp-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Pilih format ekspor */
.modal.fmt-m{max-width:420px}
.fmt-pick{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fmt-b{display:flex;flex-direction:column;align-items:flex-start;gap:3px;border:1.5px solid var(--jf-line);background:#fff;border-radius:14px;padding:14px;cursor:pointer;text-align:left;font:inherit}
.fmt-b .ic{width:24px;height:24px;color:var(--jf-green);margin-bottom:4px}.fmt-b b{font-size:15px}.fmt-b small{color:#6b7a72;font-size:12px}
.fmt-b:hover,.fmt-b:focus-visible{border-color:var(--jf-green);background:#f3faf5}
.fmt-b[data-fmt="csv"] .ic{color:var(--jf-orange)}
/* Rekap pembelian pelanggan / mitra */
tr.prk-row{cursor:pointer}tr.prk-row:hover td{background:#f3faf5}
.prk-n{display:inline-block;min-width:26px;padding:1px 8px;border-radius:999px;background:var(--jf-green-soft);color:var(--jf-green-ink);font-weight:800;text-align:center;text-decoration:underline dotted}
.modal.prk-m{max-width:880px;width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto}
.prk-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.prk-h h3{margin:0 0 4px}.prk-h p{margin:0}
.prk-per{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}.prk-per select{width:auto;min-width:170px}.prk-cust{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.prk-cust input{width:auto}.prk-per #prkXls{margin-left:auto}
.prk-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin-bottom:12px}
.prk-c{border:1px solid var(--jf-line);border-radius:12px;padding:10px 12px;background:#fff}.prk-c span{display:block;font-size:12px;color:var(--muted,#6b7a72)}.prk-c b{font-size:17px}.prk-c.pos b{color:var(--jf-green-ink)}.prk-c.neg b,.prk-neg{color:#be123c}
.prk-m h4{margin:14px 0 6px}.prk-tw{margin-top:0;max-height:38vh;overflow:auto}.prk-empty{padding:28px;text-align:center}
@media(max-width:600px){.prk-per #prkXls{margin-left:0}.prk-per select{flex:1}}

/* logo baru (kotak hijau-oranye) */
.sb-app-logo{background:none!important;padding:0!important;border-radius:11px!important;box-shadow:0 2px 8px #0000002e!important;height:42px!important;width:42px!important}
.ce-logo{height:84px;width:84px;border-radius:18px}

/* Jenis usaha tanpa Resep: kotak info Kasir jadi 2 kolom di layar lebar */
@media(min-width:1251px){.infobox:has(> .ib-rx[hidden]){grid-template-columns:repeat(2,minmax(150px,1fr))!important}}

/* ===== Bantuan & Mulai cepat (bantuan.js) ===== */
.bt-help{font:800 17px/1 system-ui,sans-serif;color:var(--jf-green,#14692f)}
.bt-back{position:fixed;inset:0;z-index:9000;background:#0b1a1166;display:flex;justify-content:flex-end}
.bt-box{width:min(460px,100%);height:100%;background:#fff;display:flex;flex-direction:column;box-shadow:-12px 0 40px #0003;animation:btIn .18s ease-out}
@keyframes btIn{from{transform:translateX(30px);opacity:.4}to{transform:none;opacity:1}}
.bt-h{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 8px}
.bt-h h3{margin:0;font-size:18px}
.bt-x{border:0;background:#f1f5f2;width:34px;height:34px;border-radius:50%;font-size:22px;line-height:1;cursor:pointer;color:#405146}
.bt-q{box-sizing:border-box;width:calc(100% - 36px);max-width:none;margin:4px 18px 10px;padding:10px 12px;border:1px solid var(--jf-line,#dbe6de);border-radius:10px;font:inherit}
.bt-list{flex:1;overflow:auto;padding:0 18px 18px}
.bt-sec{font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#6b7f72;margin:14px 0 6px}
.bt-it{border:1px solid var(--jf-line,#dbe6de);border-radius:12px;margin-bottom:8px;background:#fff}
.bt-it summary{cursor:pointer;list-style:none;padding:10px 12px;display:flex;flex-direction:column;gap:1px}
.bt-it summary::-webkit-details-marker{display:none}
.bt-it summary span{font-size:13px;color:#6b7f72}
.bt-it[open]{border-color:#9fd0ad;background:#f7fcf8}
.bt-it ol{margin:0;padding:0 14px 10px 32px;font-size:14px;line-height:1.5}
.bt-it li{margin:4px 0}
.bt-go{margin:0 12px 12px;border:0;background:none;color:var(--jf-green,#14692f);font-weight:800;cursor:pointer;padding:0}
.bt-none{color:#6b7f72;text-align:center}
.bt-qs{margin:0 18px 18px;border:1px dashed #b9d7c2;background:#f7fcf8;border-radius:10px;padding:10px;font:inherit;font-size:13.5px;cursor:pointer;color:#30473a}
.bt-qsc{margin-bottom:14px;border:1px solid #f6c98f;background:linear-gradient(180deg,#fff8ef,#fff)}
.bt-qh{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.bt-qh h3{margin:0;font-size:16px}.bt-qh span{font-size:13px;color:#6b7f72}
.bt-hide{border:0;background:none;color:#6b7f72;font:inherit;font-size:13px;cursor:pointer;text-decoration:underline}
.bt-bar{height:6px;border-radius:99px;background:#f1e3cf;margin:10px 0 12px;overflow:hidden}.bt-bar i{display:block;height:100%;background:#ff8b10;border-radius:99px}
.bt-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}
.bt-steps button{width:100%;display:flex;gap:10px;align-items:flex-start;text-align:left;border:1px solid var(--jf-line,#dbe6de);background:#fff;border-radius:12px;padding:10px;cursor:pointer;font:inherit;color:inherit}
.bt-steps button:hover{border-color:#9fd0ad}
.bt-steps b{display:block;font-size:14px}.bt-steps small{display:block;color:#6b7f72;font-size:12.5px;line-height:1.35}
.bt-c{flex:0 0 22px;height:22px;border-radius:50%;border:2px solid #c9d8ce;display:grid;place-items:center;font-size:12px;font-weight:900;color:#fff}
.bt-steps .ok .bt-c{background:#1a913b;border-color:#1a913b}
.bt-steps .ok b{text-decoration:line-through;color:#6b7f72}
@media(max-width:640px){.bt-box{width:100%}.bt-steps{grid-template-columns:1fr}}
