:root{--bg:#fff7fb;--panel:#fff;--text:#302033;--muted:#8b718c;--pink:#ec4899;--pink2:#f9a8d4;--line:#f2d9e7;--danger:#ef4444;--ok:#16a34a;--shadow:0 16px 40px rgba(115,37,87,.10)}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:linear-gradient(135deg,#fff7fb,#fff,#f8f0ff);color:var(--text)}a{color:inherit;text-decoration:none}.app{display:flex;min-height:100vh}.sidebar{width:292px;background:rgba(255,255,255,.86);backdrop-filter:blur(14px);border-right:1px solid var(--line);padding:22px 18px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;gap:12px;align-items:center;margin-bottom:24px}.brand.big{margin-bottom:20px}.logo{width:44px;height:44px;border-radius:16px;background:linear-gradient(135deg,var(--pink),#a855f7);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;box-shadow:var(--shadow)}.brand b{display:block;font-size:18px}.brand span,.topbar p,.muted,.hint,small{color:var(--muted);font-size:12px}nav{display:grid;gap:6px}nav a{padding:11px 12px;border-radius:14px;display:flex;gap:10px;align-items:center;color:#5b435f;font-weight:650}nav a:hover,nav a.active{background:linear-gradient(135deg,#fce7f3,#f5e8ff);color:#9d174d}.main{flex:1;min-width:0}.topbar{height:84px;display:flex;align-items:center;justify-content:space-between;padding:14px 28px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.78);backdrop-filter:blur(12px);position:sticky;top:0;z-index:5}.topbar h1{margin:0;font-size:23px}.top-actions{display:flex;gap:12px;align-items:center}.user-pill{background:#fff;border:1px solid var(--line);border-radius:16px;padding:9px 13px;box-shadow:var(--shadow)}.user-pill b,.user-pill span{display:block}.content{padding:24px;display:grid;gap:20px}.card,.kpi,.login-card,.setup-box{background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:20px}.card h2{font-size:18px;margin:0 0 16px}.grid{display:grid;gap:16px}.cards{grid-template-columns:repeat(6,minmax(0,1fr))}.kpi span{display:block;color:var(--muted);font-size:12px}.kpi b{font-size:24px;display:block;margin:7px 0}.kpi em{font-style:normal;color:var(--muted);font-size:12px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.form-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.field{display:grid;gap:6px}.field.wide{grid-column:1/-1}.actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px}.summary-box{grid-column:1/-1;background:linear-gradient(135deg,#fdf2f8,#faf5ff);border:1px solid var(--line);border-radius:18px;padding:16px}.summary-box span,.summary-box small{display:block}.summary-box b{font-size:26px}label{font-weight:700;font-size:13px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;padding:11px 12px;font:inherit;color:var(--text)}textarea{min-height:90px}.btn,button{border:0;border-radius:14px;padding:11px 16px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn.primary,button.primary{background:linear-gradient(135deg,var(--pink),#a855f7);color:#fff;box-shadow:0 10px 24px rgba(236,72,153,.24)}.btn.ghost{background:#fff;border:1px solid var(--line);color:#7b2d61}.btn.small,button.small{padding:7px 10px;border-radius:10px;font-size:12px}.btn.full{width:100%;margin-top:12px}.alert{padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:#fff}.alert.success{background:#ecfdf5;color:#047857;border-color:#bbf7d0}.alert.danger{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.alert.warning{background:#fffbeb;color:#92400e;border-color:#fde68a}table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden}th,td{border-bottom:1px solid var(--line);padding:10px;text-align:left;font-size:13px;vertical-align:top}th{color:#6b3b64;background:#fdf2f8;font-size:12px;text-transform:uppercase;letter-spacing:.02em}tr:hover td{background:#fffafd}.badge{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800}.badge.success{background:#dcfce7;color:#166534}.badge.danger{background:#fee2e2;color:#991b1b}.badge.muted{background:#f3f4f6;color:#6b7280}.tabs{display:flex;gap:10px;flex-wrap:wrap}.tabs a{background:#fff;border:1px solid var(--line);padding:10px 14px;border-radius:999px;font-weight:800}.tabs a.active{background:#fce7f3;color:#be185d}.check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.check-card{border:1px solid var(--line);padding:10px;border-radius:16px;background:#fff;display:grid;gap:4px}.check-card span{font-size:11px;color:var(--muted)}.check-card.present{border-color:#bbf7d0;background:#f0fdf4}.check-card.absent{opacity:.75}.inline-row,.inline-form{display:flex;gap:10px;align-items:center}.inline-row{margin-bottom:8px}.inline-form select,.inline-form input{width:auto}.progress-row{display:grid;grid-template-columns:170px 1fr 70px;gap:12px;align-items:center;margin:14px 0}.bar{height:12px;border-radius:999px;background:#fae8ff;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--pink),#a855f7);border-radius:999px}.masters{grid-template-columns:repeat(3,minmax(0,1fr))}.mini-form{display:grid;gap:8px;margin-bottom:14px}.card ul{margin:0;padding-left:18px;max-height:220px;overflow:auto}.login-page,.setup{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card,.setup-box{width:min(460px,100%)}.small-link{display:block;margin-top:14px;color:#be185d}.branch-switch select{min-width:190px}@media(max-width:1200px){.cards{grid-template-columns:repeat(3,1fr)}.two-col,.masters{grid-template-columns:1fr}.check-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:820px){.app{display:block}.topbar{position:sticky;height:auto;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}.top-actions{flex-wrap:wrap}.form-grid,.form-grid.compact,.cards{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr}.content{padding:14px}.inline-form{flex-wrap:wrap}table{display:block;overflow:auto}.progress-row{grid-template-columns:1fr}}
.link{color:#be185d;font-weight:900}.purchase-line{display:grid;grid-template-columns:2fr .7fr .8fr .9fr .8fr .9fr;gap:8px;margin-bottom:8px}.receipt-actions{display:flex;gap:10px}.receipt{max-width:860px;margin:auto}.receipt-head{display:flex;justify-content:space-between;gap:20px;border-bottom:1px dashed var(--line);padding-bottom:14px;margin-bottom:14px}.receipt-head h2{font-size:28px;margin:0}.receipt-head span,.receipt-meta span{display:block;color:var(--muted);font-size:12px}.receipt-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.receipt td small{display:block;color:var(--muted);font-size:11px}.receipt-total{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:16px}.receipt-total div{background:#fff7fb;border:1px solid var(--line);border-radius:16px;padding:12px}.receipt-total span{display:block;color:var(--muted);font-size:12px}.receipt-total b{font-size:18px}.receipt-staff{margin-top:16px}.center{text-align:center}@media(max-width:900px){.purchase-line,.receipt-meta,.receipt-total{grid-template-columns:1fr}}@media print{.sidebar,.topbar,.no-print,.receipt-actions{display:none!important}.app,.main,.content{display:block;padding:0}.receipt{box-shadow:none;border:0;max-width:100%;font-size:12px}body{background:#fff}.card{box-shadow:none}.receipt-total{grid-template-columns:repeat(2,1fr)}}

.card small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.rule-chip{display:inline-flex;padding:4px 8px;border-radius:999px;background:#fdf2f8;border:1px solid var(--line);font-weight:800;font-size:11px}


.pos-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;align-items:start}.pos-products,.pos-cart{position:sticky;top:104px}.pos-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px;max-height:620px;overflow:auto;padding-right:4px}.product-card{text-align:left;display:grid;gap:6px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;color:var(--text);min-height:108px}.product-card:hover{border-color:var(--pink2);box-shadow:0 10px 24px rgba(236,72,153,.12);transform:translateY(-1px)}.product-card b{font-size:13px}.product-card span{font-size:11px;color:var(--muted)}.product-card em{font-style:normal;font-weight:900;color:#be185d}.product-card.package em{color:#7c3aed}.product-card.skincare em{color:#047857}.pos-tabs button{background:#fff;border:1px solid var(--line);padding:10px 14px;border-radius:999px;color:#7b2d61}.pos-tabs button.active{background:#fce7f3;color:#be185d}.pos-search{margin-top:10px}.hidden{display:none!important}.pos-cart-table{margin:14px 0;max-height:360px;overflow:auto;border:1px solid var(--line);border-radius:16px}.qty-step{display:flex;gap:5px;align-items:center}.qty-step button{padding:6px 9px;border-radius:10px;background:#fdf2f8;color:#be185d}.qty-step input{width:72px;padding:7px;text-align:center}.price-mini{width:112px;padding:7px}.pos-totals{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.pos-totals div{background:#fff7fb;border:1px solid var(--line);border-radius:16px;padding:12px}.pos-totals span{display:block;color:var(--muted);font-size:11px}.pos-totals b{font-size:16px}.compact-check{grid-template-columns:repeat(2,minmax(0,1fr))}.permission-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.perm-card b{font-size:12px}.receipt-thermal{max-width:360px;border-radius:0;box-shadow:none;font-family:ui-monospace,Menlo,Consolas,monospace}.receipt-thermal .receipt-head,.receipt-thermal .receipt-meta,.receipt-thermal .receipt-total{display:block}.receipt-thermal .receipt-total div{margin:6px 0}.receipt-a5{max-width:620px}.receipt-modern{max-width:860px}@media(max-width:1200px){.pos-layout{grid-template-columns:1fr}.pos-products,.pos-cart{position:relative;top:auto}.pos-card-grid{grid-template-columns:repeat(2,1fr)}.permission-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.pos-card-grid,.pos-totals,.permission-grid{grid-template-columns:1fr}}

textarea{width:100%;border:1px solid #ead5dc;border-radius:14px;padding:10px 12px;font-family:inherit;background:#fff;color:#2a1d23;resize:vertical}.badge.danger{background:#fee2e2;color:#991b1b}.badge.warning{background:#fef3c7;color:#92400e}.card small{display:block;color:#7d6570;margin-top:3px}.inline-row{display:flex;gap:10px;align-items:center;margin-bottom:8px}.inline-row select{min-width:280px}.inline-row input{max-width:160px}
/* v7.2.2: kotak cari item recipe / treatment / skincare di inline-row jangan ikut kepotong 160px */
.inline-row .ajax-combo{flex:1 1 360px;min-width:260px;max-width:none}
.inline-row .ajax-combo-input{max-width:none;width:100%;min-width:0}


/* V6: sidebar kategori + AJAX searchable combobox */
.grouped-nav{display:grid;gap:12px}.nav-section{display:grid;gap:5px}.nav-section-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#a0708e;font-weight:900;padding:9px 10px 2px}.nav-section.open .nav-section-title{color:#be185d}.grouped-nav a{padding:9px 11px}.grouped-nav a span{width:22px;text-align:center}.ajax-combo{position:relative}.ajax-combo-input{padding-left:38px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' viewBox='0 0 24 24' stroke='%23a8557f'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m21 21-4.3-4.3m1.3-5.2a6.5 6.5 0 1 1-13 0 6.5 6.5 0 0 1 13 0Z'/%3E%3C/svg%3E") no-repeat 12px center}.ajax-combo-results{display:none;position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px rgba(31,20,30,.14);max-height:260px;overflow:auto;padding:6px}.ajax-combo-results.open{display:grid;gap:4px}.ajax-option{display:grid;gap:3px;text-align:left;background:#fff;border:0;border-radius:12px;padding:10px 12px;color:var(--text);width:100%}.ajax-option:hover{background:#fff1f8}.ajax-option b{font-size:13px}.ajax-option small{font-size:11px;color:var(--muted);margin:0}.ajax-selected{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:8px}.ajax-chip{display:inline-flex;align-items:center;gap:7px;background:#fce7f3;border:1px solid #f9a8d4;color:#831843;border-radius:999px;padding:7px 8px 7px 10px;font-size:12px;font-weight:800}.ajax-chip input{display:none}.ajax-chip button{padding:0;width:20px;height:20px;border-radius:999px;background:#fff;color:#be185d;border:1px solid #f9a8d4}.muted.ajax-option{cursor:default;color:var(--muted)}


/* V6.3 maintenance */
.nav-section{border:1px solid rgba(242,217,231,.65);border-radius:16px;padding:4px;background:rgba(255,255,255,.42)}
.nav-section:not(.open) a{padding-top:8px;padding-bottom:8px}
.ajax-combo-input[data-selected-text]{border-color:#86efac;background-color:#f0fdf4}
.pos-cart .actions .btn.primary{width:100%;justify-content:center}
.product-card[disabled],.product-card.disabled{opacity:.55;cursor:not-allowed}
.badge.info{background:#dbeafe;color:#1e40af}


/* v6.5 maintenance polish */
.product-card.disabled-card{opacity:.45;cursor:not-allowed;border-style:dashed}
.product-card.disabled-card:hover{transform:none;box-shadow:none}
.master-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px;max-height:360px;overflow:auto}
.master-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft)}
.master-list.simple li{justify-content:flex-start}
.master-list form{margin:0;white-space:nowrap}
.badge.warning{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}
.inline-form .muted{align-self:center}
@media print{.no-print,.sidebar,.topbar,.receipt-actions{display:none!important}.main{padding:0}.receipt.card{box-shadow:none;border:none}.app{display:block}}


/* v6.8 maintenance: POS filter kategori dan master edit row */
.pos-filter-row{display:grid;grid-template-columns:1fr 220px;gap:10px;margin-top:10px}
.pos-filter-row .pos-search{margin-top:0}
.master-edit-row{display:grid!important;grid-template-columns:1fr auto;gap:8px;align-items:center}
.master-edit-row .inline-form{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;margin:0}
.master-edit-row input{padding:8px 10px;border-radius:10px}
@media(max-width:720px){.pos-filter-row{grid-template-columns:1fr}.master-edit-row{grid-template-columns:1fr}.master-edit-row .inline-form{grid-template-columns:1fr}}

/* V6.9 POS polishing */
.pos-topbar{display:grid;grid-template-columns:1fr repeat(3,minmax(140px,190px));gap:12px;align-items:center;margin-bottom:18px}.pos-topbar h2{margin:0}.pos-today{background:#fff7fb;border:1px solid var(--line);border-radius:16px;padding:12px}.pos-today span{display:block;font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em}.pos-today b{font-size:15px}.pos-tabs button small{font-size:11px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:2px 7px;margin-left:4px}.product-card i{justify-self:start;font-style:normal;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;background:#fdf2f8;color:#be185d;border:1px solid #fbcfe8;border-radius:999px;padding:3px 7px}.product-card.package i{background:#f5f3ff;color:#6d28d9;border-color:#ddd6fe}.product-card.skincare i{background:#ecfdf5;color:#047857;border-color:#bbf7d0}.product-card.disabled-card{opacity:.45;filter:grayscale(.4);cursor:not-allowed}.product-card.disabled-card:hover{transform:none;box-shadow:none;border-color:var(--line)}.pos-cart-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.pos-cart-summary span{background:#fff7fb;border:1px solid var(--line);border-radius:14px;padding:10px;font-size:12px;color:var(--muted)}.pos-cart-summary b{color:var(--text);font-size:16px}.quick-pay{display:flex;gap:8px;flex-wrap:wrap}.extra-line{display:grid;grid-template-columns:1fr 130px auto;align-items:center}.pos-cart .section-head{align-items:start}.pos-cart-table small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.pos-cart .actions .btn.primary:disabled{opacity:.65;cursor:not-allowed;box-shadow:none}.pos-products .section-head{align-items:start}@media(max-width:1100px){.pos-topbar{grid-template-columns:1fr 1fr}.pos-today b{font-size:14px}}@media(max-width:720px){.pos-topbar,.pos-cart-summary{grid-template-columns:1fr}.extra-line{grid-template-columns:1fr}}

.repack-child-row td:nth-child(2){padding-left:26px;background:rgba(236,72,153,.04)}
.repack-child-row small{display:block;color:#64748b;margin-top:3px}
.master-list .master-edit-row form.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.card table small{display:block;color:#64748b;font-size:11px;margin-top:3px}

/* V6.14 POS finishing */
.pos-shortcuts{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;background:linear-gradient(135deg,#fff7fb,#f8fbff)}
.pos-shortcuts b{color:#be185d;margin-right:4px}.pos-shortcuts span{font-size:12px;font-weight:800;border:1px solid var(--line);border-radius:999px;background:#fff;padding:6px 10px;color:#6b214f}
.pos-layout{grid-template-columns:minmax(520px,1.15fr) minmax(420px,.85fr)}
.pos-products,.pos-cart{box-shadow:0 18px 50px rgba(190,24,93,.08)}
.pos-cart{border:1px solid #f9a8d4}.product-card{transition:.16s ease;cursor:pointer}.product-card b{font-size:14px}.product-card em{font-size:15px}.pos-filter-row input,.pos-filter-row select{height:44px}.pos-cart-table table th{position:sticky;top:0;background:#fff;z-index:1}.inline-pay{display:grid;grid-template-columns:1fr auto;gap:8px}.check-inline{display:inline-flex;gap:7px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 12px;font-size:12px;font-weight:800;color:#7b2d61}.pos-totals-wide{grid-template-columns:repeat(5,minmax(0,1fr))}.pos-totals-wide div:nth-child(3){background:#fdf2f8;border-color:#f9a8d4}.pos-totals-wide div:nth-child(3) b{color:#be185d}.pos-cart .field small b{color:#be185d}.pos-cart .field small{line-height:1.35}.receipt-thermal{width:80mm;max-width:80mm;padding:10px;font-size:11px}.receipt-thermal table{font-size:11px}.receipt-thermal th,.receipt-thermal td{padding:5px 2px}.receipt-thermal .receipt-total{display:block}.receipt-thermal .receipt-total div{display:flex;justify-content:space-between;gap:10px;border:0;border-top:1px dashed #ddd;border-radius:0;background:#fff;padding:5px 0}.receipt-thermal .receipt-total span{font-size:11px}.receipt-thermal .receipt-total b{font-size:12px;text-align:right}.receipt-thermal .receipt-head{border-bottom:1px dashed #ddd;padding-bottom:8px;margin-bottom:8px}.receipt-thermal .receipt-meta{display:block;border-bottom:1px dashed #ddd;padding-bottom:8px}.receipt-thermal .receipt-meta span{display:block}.masters .card:nth-child(5),.masters .card:nth-child(6){grid-column:span 2}
@page{margin:5mm}
@media print{body{background:#fff!important}.receipt-thermal{width:80mm;max-width:80mm;margin:0 auto;padding:0}.receipt-a5{width:148mm;max-width:148mm}.receipt-modern{width:190mm;max-width:190mm}.receipt-total{gap:4px}.receipt-total div{break-inside:avoid}}
@media(max-width:1180px){.pos-layout{grid-template-columns:1fr}.pos-totals-wide{grid-template-columns:repeat(2,1fr)}.masters .card:nth-child(5),.masters .card:nth-child(6){grid-column:auto}}
@media(max-width:720px){.pos-totals-wide{grid-template-columns:1fr}.inline-pay{grid-template-columns:1fr}.pos-shortcuts span{font-size:11px}}

/* v6.16 polishing: hanya merapikan modul yang sudah ada */
.dashboard-hero,.master-hero,.inventory-item-hero{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:16px;align-items:center;background:linear-gradient(135deg,#fff,#fff7fb 55%,#f7f0ff)}
.dashboard-hero h2,.master-hero h2,.inventory-item-hero h2{margin:0 0 6px;font-size:22px}.dashboard-filter{justify-content:flex-end;flex-wrap:wrap}.branch-chip{display:inline-flex;align-items:center;border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 12px;font-size:12px;font-weight:900;color:#7b2d61}.dashboard-kpis .kpi{position:relative;overflow:hidden;border-radius:22px}.dashboard-kpis .kpi:after{content:"";position:absolute;right:-26px;top:-28px;width:86px;height:86px;border-radius:999px;background:rgba(236,72,153,.08)}.dashboard-kpis .kpi-primary{background:linear-gradient(135deg,#fdf2f8,#faf5ff);border-color:#f9a8d4}.dashboard-kpis .kpi-primary b{color:#be185d}.two-col .card .progress-row{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px}.bar{background:#f3e8ff}.bar i{transition:width .25s ease}.pos-hero{border-color:#f9a8d4;background:linear-gradient(135deg,#fff,#fff7fb 58%,#f5f3ff)}.pos-layout{align-items:start}.pos-products{min-height:calc(100vh - 128px)}.pos-products .section-head,.pos-cart .section-head{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}.pos-products h2,.pos-cart h2{font-size:19px}.pos-card-grid{scrollbar-width:thin}.product-card{box-shadow:0 8px 18px rgba(73,29,80,.04);border-color:#f1d6e5}.product-card:hover{background:linear-gradient(135deg,#fff,#fff7fb);outline:2px solid #fbcfe8}.product-card:active{transform:scale(.99)}.pos-cart{background:linear-gradient(180deg,#fff,#fffaff)}.pos-cart-table{background:#fff}.pos-cart-table tbody tr:last-child td{border-bottom:0}.qty-step input,.price-mini{background:#fffafc}.pos-totals-wide div{min-height:72px}.pos-totals-wide div:nth-child(5){background:#ecfdf5;border-color:#bbf7d0}.pos-totals-wide div:nth-child(5) b{color:#047857}.quick-pay .btn{min-height:36px}.ajax-chip{box-shadow:0 6px 14px rgba(190,24,93,.08)}.master-hero .master-hint{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;min-width:260px}.master-hint b,.master-hint span{display:block}.master-hint b{color:#be185d;margin-bottom:4px}.masters{align-items:start}.masters .card{position:relative;overflow:hidden}.masters .card h2{display:flex;align-items:center;gap:8px}.masters .card h2:before{content:"";width:10px;height:10px;border-radius:999px;background:linear-gradient(135deg,var(--pink),#a855f7);display:inline-block}.master-list li{background:#fff}.master-list li:hover{border-color:#f9a8d4;background:#fff7fb}.master-list span{line-height:1.35}.mini-form{background:#fffafc;border:1px solid var(--line);border-radius:16px;padding:12px}.inventory-item-hero .item-hero-stats{display:grid;grid-template-columns:repeat(4,minmax(90px,1fr));gap:8px}.item-hero-stats span{display:grid;gap:3px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.item-hero-stats b{font-size:20px;color:#be185d}.master-item-form{background:linear-gradient(135deg,#fff,#fffafd)}.master-item-form form{align-items:end}.repack-child-row td{background:#f8fafc!important}.repack-child-row td:nth-child(2){padding-left:26px;border-left:4px solid #c084fc}.repack-child-row small{display:block;margin-top:4px}.card table tr:hover td{background:#fff7fb}.card table td b+small{margin-top:4px}.btn:focus,input:focus,select:focus,textarea:focus{outline:3px solid rgba(236,72,153,.16);border-color:#f9a8d4}
@media(max-width:1180px){.dashboard-hero,.master-hero,.inventory-item-hero{grid-template-columns:1fr}.dashboard-filter{justify-content:flex-start}.inventory-item-hero .item-hero-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.inventory-item-hero .item-hero-stats{grid-template-columns:1fr}.branch-chip{width:100%;justify-content:center}.pos-products{min-height:auto}.pos-card-grid{max-height:none}.master-hero .master-hint{min-width:0}}
@media print{body{background:#fff}.receipt-thermal{width:var(--paper-width,80mm)!important;max-width:var(--paper-width,80mm)!important;margin:0!important;padding:6px!important}.receipt-thermal .receipt-head h2{font-size:16px}.receipt-thermal table{width:100%;border-collapse:collapse}.receipt-thermal th{font-size:10px;background:#fff!important;border-bottom:1px dashed #999}.receipt-thermal td{font-size:10px;border-bottom:0}.receipt-actions,.no-print,.sidebar,.topbar{display:none!important}.main,.content{padding:0!important;margin:0!important}.receipt.card{border:0!important;box-shadow:none!important}}

/* v7.2 maintenance polish */
.row-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.report-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.report-shortcuts{display:flex;gap:8px;flex-wrap:wrap}
.badge.info{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}
.badge.danger{background:#fee2e2;color:#b91c1c;border-color:#fecaca}
.master-list li{align-items:flex-start;gap:10px}
.master-list li>span{min-width:0;flex:1}
.master-edit-row{gap:8px;flex-wrap:wrap}
.master-edit-row .inline-form{flex:1;min-width:220px}
.recipe-group{margin-bottom:18px;padding-bottom:14px;border-bottom:1px dashed var(--line)}
.recipe-group:last-of-type{border-bottom:0;margin-bottom:8px}
.recipe-group-title{margin:0 0 8px;font-size:13px;color:#be185d;font-weight:900;text-transform:uppercase;letter-spacing:.02em}
.recipe-real-table input.price-mini{width:96px}
.recipe-real-table td small.muted{display:block;margin-top:2px}
.report-sort-bar{padding:10px 14px}
.report-sort-bar .inline-form{flex-wrap:wrap;gap:8px;align-items:center}
.btn.danger,button.danger{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}
.btn.danger:hover,button.danger:hover{background:#fee2e2}

/* v7.2.1: kenyamanan akses POS di HP/tablet */
@media(max-width:1024px){
  .pos-topbar{grid-template-columns:1fr 1fr;gap:10px}
  .pos-layout{gap:14px}
}
@media(max-width:768px){
  .sidebar{padding:14px 12px}
  .topbar{padding:12px 16px}
  .content{padding:12px;gap:14px}
  .card{padding:14px;border-radius:18px}
  .pos-topbar{grid-template-columns:1fr;gap:8px}
  .pos-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:4px}
  .pos-tabs button{flex:0 0 auto;white-space:nowrap;padding:11px 14px}
  .pos-filter-row{grid-template-columns:1fr}
  .pos-filter-row input,.pos-filter-row select{height:46px;font-size:15px}
  .pos-card-grid{grid-template-columns:repeat(2,1fr);max-height:none;gap:8px}
  .product-card{min-height:96px;padding:12px}
  .product-card b{font-size:13px}
  .qty-step button{padding:9px 12px;font-size:15px}
  .qty-step input{width:56px}
  .price-mini{width:84px}
  .pos-cart-table{max-height:none}
  .pos-cart-table table{font-size:12px}
  .pos-totals-wide,.pos-totals{grid-template-columns:repeat(2,1fr)}
  .pos-cart .actions{position:sticky;bottom:0;background:#fff;padding:10px 0;margin:0 -14px -14px;padding-left:14px;padding-right:14px;border-top:1px solid var(--line);box-shadow:0 -8px 18px rgba(73,29,80,.08)}
  .pos-cart .actions .btn.primary{font-size:15px;padding:14px}
  input,select,textarea,.ajax-combo-input{font-size:15px}
  .btn,button{min-height:42px}
  .ajax-combo-results{max-height:50vh}
}
@media(max-width:480px){
  .pos-card-grid{grid-template-columns:1fr}
  .form-grid,.form-grid.compact{grid-template-columns:1fr}
  .purchase-line{grid-template-columns:1fr!important}
  .receipt-total,.receipt-meta{grid-template-columns:1fr!important}
  .pos-totals-wide,.pos-totals{grid-template-columns:1fr}
  .topbar h1{font-size:18px}
  .user-pill{display:none}
}


/* ==========================================================================
   HAMBURGER MENU + MOBILE SIDEBAR
   ========================================================================== */

/* Tombol hamburger - hanya muncul di mobile */
.hamburger-btn {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  padding: 7px;
  background: #fff7fb;
  border: 1px solid var(--line);
  border-radius: 12px;
  cursor: pointer;
  flex-shrink: 0;
  min-height: unset;
}
.hamburger-btn span {
  display: block;
  height: 2px;
  background: #be185d;
  border-radius: 2px;
  transition: 0.2s ease;
}

/* Topbar kiri: hamburger + judul */
.topbar-left {
  display: flex;
  align-items: center;
  gap: 12px;
}

@media(max-width:820px) {
  /* Sidebar: fixed, tersembunyi di kiri layar */
  .sidebar {
    position: fixed !important;
    left: -300px;
    top: 0;
    width: 270px !important;
    height: 100vh !important;
    z-index: 50;
    transition: left 0.25s cubic-bezier(0.4,0,0.2,1);
    overflow-y: auto;
    box-shadow: none;
  }
  .sidebar.sidebar-open {
    left: 0;
    box-shadow: 4px 0 24px rgba(0,0,0,0.18);
  }

  /* Main content mulai dari kiri penuh */
  .main {
    margin-left: 0 !important;
  }

  /* Hamburger muncul */
  .hamburger-btn {
    display: flex;
  }

  /* Topbar: flex row, hamburger di kiri */
  .topbar {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    height: auto !important;
    padding: 10px 14px !important;
    flex-wrap: nowrap;
  }
  .topbar-left {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
  }
  .topbar h1 {
    font-size: 16px;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .topbar p {
    display: none;
  }
  .top-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: nowrap;
  }
}

/* ==========================================================================
   NAV SECTION COLLAPSIBLE (mobile sidebar)
   ========================================================================== */

/* Tombol toggle grup nav */
.nav-section-title {
  cursor: default;
  user-select: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.nav-section-title::after {
  content: none;
}

@media(max-width:820px) {
  /* Di mobile, semua grup bisa di-collapse */
  .nav-section-title {
    cursor: pointer;
  }
  .nav-section-title::after {
    content: '▾';
    font-size: 13px;
    color: #a0708e;
    transition: transform 0.2s ease;
    flex-shrink: 0;
  }
  /* Saat tertutup, ikon rotasi */
  .nav-section:not(.open) .nav-section-title::after {
    transform: rotate(-90deg);
  }
  /* Link tersembunyi saat collapse */
  .nav-section:not(.open) a {
    display: none;
  }
  /* Active group selalu terbuka */
  .nav-section.open a {
    display: flex;
  }
}

/* ==========================================================================
   MOBILE POS COMBOBOX
   ========================================================================== */
.pos-mobile-hidden {
  display: none !important;
}

.mobile-pos-combo {
  margin-top: 10px;
  display: none; /* hanya muncul kalau JS inject & layar mobile */
}

@media(max-width:720px) {
  .mobile-pos-combo {
    display: block;
  }
}

.mobile-pos-combo-group {
  display: none;
}

.mpc-search-wrap {
  margin-bottom: 8px;
}

.mpc-search {
  width: 100%;
  padding: 11px 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  font-size: 15px;
  background: #fff;
}

.mpc-select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  font-size: 14px;
  padding: 6px 4px;
  min-height: 180px;
  max-height: 260px;
}
.mpc-select option {
  padding: 9px 10px;
  border-bottom: 1px solid #f2d9e7;
  font-size: 13px;
  line-height: 1.5;
  white-space: normal;
}
.mpc-select option:checked {
  background: #fce7f3;
  color: #9d174d;
}
