/* ==========================================================================
   punya.shop UI kit — komponen reusable untuk panel Owner & Admin Toko
   Warna aksen ikut var(--utama) (biru owner / hijau admin) dari _head.php.
   ========================================================================== */

/* ---------- Stat card (seluruh kartu bisa diklik) ---------- */
.ps-stats{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:700px){.ps-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1200px){.ps-stats.six{grid-template-columns:repeat(6,minmax(0,1fr))}}
.ps-stat{position:relative;display:flex;flex-direction:column;gap:2px;min-width:0;padding:14px 14px 12px;background:var(--card);border:1px solid var(--border);border-radius:14px;color:var(--text);text-decoration:none;transition:border-color .18s,background .18s,transform .18s,box-shadow .18s;outline:0}
.ps-stat .l{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;color:var(--muted);min-width:0}
.ps-stat .l i{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--soft);color:var(--utama);font-size:11px;flex:none;transition:background .18s,color .18s,transform .18s}
.ps-stat .l span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.25}
.ps-stat .v{font-size:clamp(17px,1.6vw,21px);font-weight:900;letter-spacing:-.02em;line-height:1.15;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ps-stat .s{font-size:11px;font-weight:600;color:var(--faint);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}
.ps-stat{padding-right:36px}.ps-stat .go{position:absolute;right:10px;top:12px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:var(--faint);font-size:10px;transition:.18s;opacity:.7}
a.ps-stat:hover,a.ps-stat:focus-visible{border-color:var(--utama);background:var(--soft);transform:translateY(-1px);box-shadow:0 6px 16px var(--shadow)}
a.ps-stat:hover .l i,a.ps-stat:focus-visible .l i{background:var(--utama);color:#fff;transform:scale(1.06)}
a.ps-stat:hover .go,a.ps-stat:focus-visible .go{color:var(--utama);opacity:1;transform:translateX(2px)}
a.ps-stat:active{transform:translateY(0);box-shadow:none}
a.ps-stat:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--utama) 30%,transparent)}

/* ---------- Loading system: pulse lembut (bukan shimmer kasar) + progres tipis ---------- */
.ps-sk{position:relative;overflow:hidden;background:color-mix(in srgb,var(--text) 7%,var(--card));border-radius:8px;color:transparent!important;animation:ps-pulse 1.4s ease-in-out infinite}
@keyframes ps-pulse{0%,100%{opacity:.55}50%{opacity:1}}
.ps-sk *{visibility:hidden}
.ps-skbox{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;opacity:0;pointer-events:none;transition:opacity .18s;background:color-mix(in srgb,var(--card) 72%,transparent);backdrop-filter:blur(1px);border-radius:12px;z-index:2}
.ps-skbox.on{opacity:1;pointer-events:auto}
.ps-skbox i{display:none}
.ps-skbox::before{content:'';width:26px;height:26px;border-radius:50%;border:3px solid color-mix(in srgb,var(--utama) 20%,transparent);border-top-color:var(--utama);animation:ps-spin .7s linear infinite}
.ps-skbox::after{content:attr(data-teks);font-size:11.5px;font-weight:800;color:var(--muted)}
@keyframes ps-spin{to{transform:rotate(360deg)}}
.ps-loading{position:relative}
.ps-loading>canvas,.ps-loading>div:not(.ps-skbox){opacity:.28;filter:saturate(.4);transition:opacity .18s,filter .18s}
/* progres tipis di atas kartu/area yang sedang memuat */
.ps-bar{position:relative}
.ps-bar::before{content:'';position:absolute;left:12px;right:12px;top:0;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--utama),transparent);background-size:40% 100%;animation:ps-barrun 1s linear infinite;z-index:3}
@keyframes ps-barrun{from{background-position:-40% 0}to{background-position:140% 0}}
/* spinner kecil inline (tombol, teks) */
.ps-spin{display:inline-block;width:14px;height:14px;border-radius:50%;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:currentColor;animation:ps-spin .7s linear infinite;vertical-align:-2px}
.btn.loading{position:relative;color:transparent!important;pointer-events:none}.btn.loading::after{content:'';position:absolute;left:50%;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:ps-spin .7s linear infinite}
.btn.secondary.loading::after,.btn.ghost.loading::after{border-color:color-mix(in srgb,var(--utama) 30%,transparent);border-top-color:var(--utama)}
/* konten masuk dengan fade ringan (tanpa layout shift) */
.ps-in{animation:ps-fadein .22s ease-out both}@keyframes ps-fadein{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
/* overlay pencarian sebelum pindah halaman detail */
.ps-seek{position:fixed;inset:0;z-index:130;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 70%,transparent);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .18s}.ps-seek.on{opacity:1;pointer-events:auto}
.ps-seek .bx{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:18px 22px;display:flex;align-items:center;gap:14px;box-shadow:0 20px 50px rgba(0,0,0,.25);animation:ps-fadein .2s both}.ps-seek .bx i.av{width:40px;height:40px;border-radius:12px;background:var(--soft);color:var(--utama);display:grid;place-items:center;font-size:16px;position:relative}.ps-seek .bx i.av::after{content:'';position:absolute;inset:-4px;border-radius:14px;border:2px solid color-mix(in srgb,var(--utama) 25%,transparent);border-top-color:var(--utama);animation:ps-spin .8s linear infinite}.ps-seek .bx b{display:block;font-size:13px}.ps-seek .bx small{font-size:11px;color:var(--muted);font-weight:600}
/* ---------- Segmented / periode ---------- */
.ps-seg{display:inline-flex;gap:2px;background:var(--soft);border:1px solid var(--border);border-radius:11px;padding:3px;max-width:100%;min-width:0;overflow-x:auto;scrollbar-width:none}
.ps-seg::-webkit-scrollbar{display:none}
.ps-seg button{flex:none;border:0;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:800;padding:7px 12px;border-radius:8px;cursor:pointer;transition:.18s;white-space:nowrap}
.ps-seg button:hover{color:var(--text)}
.ps-seg button[aria-pressed=true]{background:var(--card);color:var(--utama);box-shadow:0 1px 3px var(--shadow)}
.ps-seg button:focus-visible{outline:2px solid var(--utama);outline-offset:-2px}
.ps-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:10px 12px}
.ps-toolbar .ttl{display:flex;align-items:center;gap:8px;font-weight:900;font-size:13px;color:var(--text);margin-right:auto;min-width:0}
.ps-toolbar .ttl i{color:var(--utama)}
.ps-toolbar .ttl small{color:var(--faint);font-weight:700;font-size:11px}
.ps-toolbar .custom{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ps-toolbar .custom input[type=date]{width:auto;padding:7px 9px;font-size:12px;background:var(--soft);margin:0;border-radius:9px}
.ps-toolbar .custom .sep{color:var(--faint);font-weight:800}
@media(max-width:600px){.ps-toolbar .custom{width:100%}.ps-toolbar .custom input[type=date]{flex:1;min-width:0}.ps-seg{width:100%}.ps-seg button{flex:1;padding:7px 6px;font-size:11.5px}.ps-seg button .lbl{display:none}}
.ps-toolbar .custom.ps-off{display:none}

/* ---------- Tombol demo ---------- */
.ps-demo{display:inline-flex;align-items:center;gap:7px;border:1px dashed var(--border);background:transparent;color:var(--muted);font:inherit;font-size:11.5px;font-weight:800;padding:7px 11px;border-radius:9px;cursor:pointer;transition:.18s;white-space:nowrap}
.ps-demo:hover{border-color:var(--utama);color:var(--utama)}
.ps-demo[aria-pressed=true]{border-style:solid;border-color:#f59e0b;background:#fff7e6;color:#b45309}
[data-mode=dark] .ps-demo[aria-pressed=true]{background:#3d2f1a;color:#ffb74d;border-color:#ffb74d}
.ps-demo-tag{display:inline-flex;align-items:center;gap:5px;background:#fff7e6;color:#b45309;border:1px solid #fcd9a0;border-radius:7px;padding:3px 8px;font-size:10px;font-weight:900;letter-spacing:.3px;text-transform:uppercase}
[data-mode=dark] .ps-demo-tag{background:#3d2f1a;color:#ffb74d;border-color:#7a5a24}

/* ---------- Aksi cepat: grid seragam ---------- */
.ps-quick{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:900px){.ps-quick{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ps-quick a{position:relative;display:grid;grid-template-rows:auto 1fr auto;gap:10px;min-height:118px;padding:14px;background:var(--soft);border:1px solid var(--border);border-radius:14px;color:var(--text);text-decoration:none;transition:.18s;outline:0}
.ps-quick a .ic{width:38px;height:38px;border-radius:11px;background:var(--card);color:var(--utama);display:grid;place-items:center;font-size:15px;transition:.18s}
.ps-quick a b{display:block;font-size:12.5px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ps-quick a small{display:block;font-size:10.5px;font-weight:600;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ps-quick a .cta{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:800;color:var(--utama)}
.ps-quick a .cta i{transition:.18s}
.ps-quick a .n{position:absolute;top:12px;right:12px;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:#fff3e0;color:#e65100;border:1px solid #ffe0b2;font-size:11px;font-weight:900;display:grid;place-items:center}
[data-mode=dark] .ps-quick a .n{background:#3d2f1a;color:#ffb74d;border-color:#7a5a24}
.ps-quick a:hover,.ps-quick a:focus-visible{border-color:var(--utama);background:var(--card);transform:translateY(-1px);box-shadow:0 6px 16px var(--shadow)}
.ps-quick a:hover .ic{background:var(--utama);color:#fff}
.ps-quick a:hover .cta i{transform:translateX(3px)}
.ps-quick a:active{transform:none;box-shadow:none}

/* ---------- Tooltip "?" (hover desktop, tap mobile) ---------- */
.ps-q{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;border:1px solid var(--border);background:var(--soft);color:var(--muted);font-size:9.5px;font-weight:900;cursor:help;vertical-align:middle;margin-left:4px;font-style:normal;transition:.18s;flex:none}
.ps-q:hover,.ps-q.on{background:var(--utama);color:#fff;border-color:var(--utama)}
.ps-tipbox{position:fixed;z-index:120;max-width:min(280px,calc(100vw - 24px));background:var(--text);color:var(--bg);padding:9px 12px;border-radius:10px;font-size:11.5px;font-weight:600;line-height:1.45;box-shadow:0 10px 30px rgba(0,0,0,.25);opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .15s,transform .15s}
.ps-tipbox.on{opacity:1;transform:none}
.ps-tipbox::before{content:'';position:absolute;left:var(--ax,50%);top:-5px;width:10px;height:10px;background:inherit;transform:translateX(-50%) rotate(45deg);border-radius:2px}
.ps-tipbox.up::before{top:auto;bottom:-5px}

/* ---------- Modal reusable ---------- */
.ps-modal{position:fixed;inset:0;z-index:110;display:flex;align-items:center;justify-content:center;padding:14px;background:rgba(10,14,22,.5);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .2s}
.ps-modal.on{opacity:1;pointer-events:auto}
.ps-modal .box{width:100%;max-width:520px;max-height:min(88vh,calc(100vh - 28px));display:flex;flex-direction:column;background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.35);transform:translateY(16px) scale(.98);transition:transform .22s cubic-bezier(.2,.8,.2,1);outline:0}
.ps-modal.on .box{transform:none}
.ps-modal .box.lg{max-width:760px}
.ps-modal .box.sm{max-width:400px}
.ps-modal .hd{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border)}
.ps-modal .hd h3{margin:0;font-size:14px;font-weight:900;display:flex;align-items:center;gap:8px;min-width:0}
.ps-modal .hd h3 i{color:var(--utama)}
.ps-modal .hd .x{margin-left:auto;width:32px;height:32px;border-radius:9px;border:1px solid var(--border);background:var(--soft);color:var(--muted);cursor:pointer;display:grid;place-items:center;transition:.18s;flex:none}
.ps-modal .hd .x:hover{color:var(--text);border-color:var(--utama)}
.ps-modal .bd{padding:16px;overflow:auto;min-height:0}
.ps-modal .ft{display:flex;gap:8px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--border);flex-wrap:wrap}
.ps-modal .ft .btn{width:auto;padding:10px 16px}
@media(max-width:600px){.ps-modal{padding:0;align-items:flex-end}.ps-modal .box{max-width:none;max-height:92vh;border-radius:18px 18px 0 0;transform:translateY(40px)}}
body.ps-lock{overflow:hidden}

/* ---------- Tabs ---------- */
.ps-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none;margin-bottom:14px}
.ps-tabs::-webkit-scrollbar{display:none}
.ps-tabs button,.ps-tabs a{flex:none;position:relative;border:0;background:transparent;color:var(--muted);font:inherit;font-size:12.5px;font-weight:800;padding:10px 14px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:7px;transition:.18s;text-decoration:none}
.ps-tabs button::after,.ps-tabs a::after{content:'';position:absolute;left:10px;right:10px;bottom:-1px;height:2.5px;border-radius:3px;background:var(--utama);transform:scaleX(0);transition:transform .18s}
.ps-tabs button:hover,.ps-tabs a:hover{color:var(--text)}
.ps-tabs [aria-selected=true]{color:var(--utama)}
.ps-tabs [aria-selected=true]::after{transform:scaleX(1)}
.ps-tabs .n{min-width:18px;height:18px;padding:0 6px;border-radius:999px;background:var(--soft);color:var(--muted);font-size:10px;display:grid;place-items:center}
.ps-tabs [aria-selected=true] .n{background:var(--utama);color:#fff}
.ps-tabpanel[hidden]{display:none}

/* ---------- Empty / error state ---------- */
.ps-empty{display:grid;place-items:center;text-align:center;gap:6px;padding:26px 14px;color:var(--faint);font-size:12px;font-weight:600}
.ps-empty i{width:46px;height:46px;border-radius:14px;background:var(--soft);color:var(--utama);display:grid;place-items:center;font-size:18px;margin-bottom:4px}
.ps-empty b{color:var(--text);font-size:13px;font-weight:900}
.ps-empty .btn{width:auto;padding:8px 14px;font-size:12px;margin-top:6px}
.ps-error{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff5f5;border:1px solid #fecaca;color:#b91c1c;border-radius:12px;padding:10px 12px;font-size:12px;font-weight:700}
[data-mode=dark] .ps-error{background:#3a1f1f;border-color:#7f2f2f;color:#fca5a5}
.ps-error .btn{width:auto;margin-left:auto;padding:7px 12px;font-size:11px;background:transparent;border:1px solid currentColor;color:inherit}

/* ---------- Badge status (label manusia) ---------- */
.ps-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;border:1px solid transparent;white-space:nowrap;line-height:1.4}
.ps-badge::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}
.ps-badge.ok{background:#e8f5e9;color:#2e7d32;border-color:#c8e6c9}
.ps-badge.warn{background:#fff3e0;color:#e65100;border-color:#ffe0b2}
.ps-badge.info{background:#e3f2fd;color:#1565c0;border-color:#bbdefb}
.ps-badge.err{background:#ffebee;color:#c62828;border-color:#ffcdd2}
.ps-badge.mute{background:var(--soft);color:var(--muted);border-color:var(--border)}
[data-mode=dark] .ps-badge.ok{background:#1b3a1e;color:#81c784;border-color:#2e5a32}
[data-mode=dark] .ps-badge.warn{background:#3d2f1a;color:#ffb74d;border-color:#6b4d21}
[data-mode=dark] .ps-badge.info{background:#1a2c44;color:#64b5f6;border-color:#274a73}
[data-mode=dark] .ps-badge.err{background:#3a1f1f;color:#ef9a9a;border-color:#6b2f2f}

/* ---------- Load more ---------- */
.ps-more{display:flex;justify-content:center;padding:12px 0 2px}
.ps-more .btn{width:auto;padding:9px 18px;font-size:12px;background:var(--soft);color:var(--utama);border:1px solid var(--border)}
.ps-more .btn:hover{background:var(--utama);color:#fff}
.ps-more .done{font-size:11.5px;font-weight:700;color:var(--faint)}

/* ---------- Search ---------- */
.ps-search{position:relative;flex:1;min-width:160px}
.ps-search i{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--faint);font-size:12px;pointer-events:none}
.ps-search input{width:100%;margin:0;padding:9px 32px 9px 32px;font-size:12.5px;border-radius:10px;background:var(--soft)}
.ps-search .clr{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:24px;height:24px;border:0;border-radius:6px;background:transparent;color:var(--faint);cursor:pointer;display:none}
.ps-search.has .clr{display:grid;place-items:center}

/* ---------- Copy feedback ---------- */
.ps-copy{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);background:var(--soft);color:var(--muted);font:inherit;font-size:11px;font-weight:800;padding:4px 9px;border-radius:7px;cursor:pointer;transition:.18s}
.ps-copy:hover{color:var(--utama);border-color:var(--utama)}
.ps-copy.ok{background:#e8f5e9;color:#2e7d32;border-color:#c8e6c9}

/* ---------- Bantuan kecil ---------- */
.ps-hd{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:13px;font-weight:900;color:var(--text);flex-wrap:wrap;min-width:0}
.ps-hd i{color:var(--utama)}
.ps-hd .r{margin-left:auto;display:flex;align-items:center;gap:8px;font-weight:700;font-size:11px;color:var(--faint);flex-wrap:wrap;min-width:0}
.ps-hide{display:none!important}
@media(prefers-reduced-motion:reduce){.ps-sk::after,.ps-skbox i::after{animation:none}.ps-modal,.ps-modal .box,.ps-stat,.ps-quick a{transition:none}}

/* ---------- tabel detail di modal ---------- */
.ps-dtl{width:100%;border-collapse:collapse;font-size:12.5px}.ps-dtl td{padding:8px 0;border-bottom:1px solid var(--border);vertical-align:top;word-break:break-word}.ps-dtl td:first-child{color:var(--muted);width:38%;font-weight:600;padding-right:10px}.ps-dtl td b{color:var(--text)}.ps-dtl tr:last-child td{border:0}
/* ---------- item daftar (pesanan/topup/user) ---------- */
.ps-item{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:13px;padding:11px 13px;margin-bottom:8px;min-width:0;color:var(--text);text-decoration:none;transition:.18s;cursor:pointer}.ps-item:hover{border-color:var(--utama);background:var(--soft)}
.ps-item .ic{width:40px;height:40px;border-radius:11px;background:var(--soft);color:var(--utama);display:grid;place-items:center;font-size:14px;font-weight:900;flex:none}.ps-item:hover .ic{background:var(--utama);color:#fff}
.ps-item .bd{min-width:0}.ps-item .bd b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ps-item .bd small{display:block;font-size:11px;color:var(--muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.ps-item .bd .kd{font-family:ui-monospace,monospace;font-size:11px;background:var(--soft);color:var(--utama);border-radius:5px;padding:1px 6px;margin-right:6px;font-weight:800}
.ps-item .rt{text-align:right;white-space:nowrap}.ps-item .rt b{display:block;font-size:13.5px}.ps-item .rt small{display:block;font-size:10.5px;color:var(--faint);font-weight:600;margin:2px 0 4px}
@media(max-width:600px){.ps-item{grid-template-columns:36px 1fr;padding:10px 12px}.ps-item .ic{width:36px;height:36px}.ps-item .rt{grid-column:2;text-align:left;display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:7px;margin-top:2px}.ps-item .rt small{margin:0}}
.ps-item.sk{pointer-events:none}.ps-item.sk .ic,.ps-item.sk b,.ps-item.sk small,.ps-item.sk .ps-badge{color:transparent!important;background:var(--soft)!important;border-radius:6px}

/* ---------- Interaction system ---------- */
.btn,.lb,.ps-seg button,.ps-tabs button,.rowbtn,.ps-item,.ps-stat,.ps-quick a,.chip{-webkit-tap-highlight-color:transparent}
.btn:active:not(:disabled),.lb:active,.ps-copy:active,.ps-demo:active{transform:scale(.97)}
.btn:focus-visible,.lb:focus-visible,.ps-copy:focus-visible,.ps-demo:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid color-mix(in srgb,var(--utama) 55%,transparent);outline-offset:2px}
.ps-tabpanel:not([hidden]){animation:ps-fadein .2s ease-out both}
.ps-copy.ok,.btn.ok{background:#e8f5e9!important;color:#2e7d32!important;border-color:#c8e6c9!important}[data-mode=dark] .ps-copy.ok,[data-mode=dark] .btn.ok{background:#1b3a1e!important;color:#81c784!important;border-color:#2e5a32!important}
@media(hover:hover){.ps-item:hover .ic,.rowbtn:hover .ic{transform:scale(1.04)}.ps-item .ic,.rowbtn .ic{transition:transform .18s,background .18s,color .18s}}
@media(pointer:coarse){.btn,.ps-seg button,.ps-tabs button,.ps-copy,.ps-demo,.pkc .ft button,.kpc .ft button,.nti .rt button{min-height:38px}.ps-q{width:20px;height:20px;font-size:10.5px}}
/* header info daftar (mis. "Menampilkan 20 dari 47 toko") */
.ps-count{display:flex;align-items:center;gap:8px;padding:8px 12px;margin:0 0 10px;background:var(--card);border:1px solid var(--border);border-radius:11px;font-size:12px;font-weight:700;color:var(--muted)}.ps-count b{color:var(--text)}.ps-count i{color:var(--utama)}.ps-count .ps-demo-tag{margin-left:auto}
.ps-count:empty{display:none}
.sk{animation:ps-pulse 1.4s ease-in-out infinite}

@media(max-width:600px){.ps-seg.wide button{flex:0 0 auto}.ps-toolbar>*{min-width:0;max-width:100%}.ps-toolbar .ps-seg{width:100%}.ps-toolbar .ps-seg button{flex:1 0 auto;padding:7px 9px}.card .row{flex-wrap:wrap}}
.ps-modal .box.xl{max-width:1180px}

/* v4.0: umpan balik tombol salin (admin, owner, staf): berubah jadi centang sebentar */
[data-copy].ok,.cp-ok{background:#e3f6ec!important;color:#188a47!important;border-color:#9ad9b6!important}[data-copy].ok i,.cp-ok i{color:#188a47}

/* saldo berubah: kilau singkat */
.saldo-ubah{animation:saldoUbah 1.1s ease-out}@keyframes saldoUbah{0%{transform:scale(1.12);color:var(--ok,#16a34a)}100%{transform:none}}
