* {
    box-sizing: border-box;
}

/* বরাদ্দকৃত ইউনিয়ন — চেকবক্স গ্রিড */
.field-req {
    color: #e02424;
}
.field-hint-inline {
    font-size: 12px;
    font-weight: 500;
    color: #9aa2b1;
}

/* বরাদ্দকৃত ইউনিয়ন ট্যাগ */
.union-tag {
    display: inline-block;
    margin: 2px 4px 2px 0;
    padding: 3px 11px;
    background: #eef2ff;
    color: #4338ca;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
}
.union-tag-none {
    background: #fef2f2;
    color: #b42318;
}
.union-check {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px 8px 10px;
    border: 1px solid #dcdfe6;
    border-radius: 999px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    color: #374151;
    background: #fff;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
    user-select: none;
}
.union-check:hover {
    border-color: #c3c8fb;
}
.union-check input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}
.union-check-box {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border: 2px solid #cbd0d9;
    border-radius: 6px;
    background: #fff;
    flex-shrink: 0;
    transition: background .15s ease, border-color .15s ease;
}
.union-check-box svg {
    opacity: 0;
    transition: opacity .1s ease;
}
.union-check input:checked ~ .union-check-box {
    background: #4f46e5;
    border-color: #4f46e5;
}
.union-check input:checked ~ .union-check-box svg {
    opacity: 1;
}
.union-check input:checked ~ .union-check-name {
    color: #4338ca;
}
.union-check:has(input:checked) {
    border-color: #c3c8fb;
    background: #f5f4ff;
}
.union-check input:focus-visible ~ .union-check-box {
    box-shadow: 0 0 0 3px rgba(99, 102, 241, .25);
}

/* hidden অ্যাট্রিবিউট সবসময় কার্যকর থাকবে (display নিয়মের চেয়েও) */
[hidden] {
    display: none !important;
}

body {
    font-family: 'Segoe UI', Arial, sans-serif;
    background: #f2f4f7;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    min-height: 100dvh;
    padding: 20px;
    overscroll-behavior-y: none;
}

.form-card {
    background: #fff;
    padding: 32px 36px;
    border-radius: 10px;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.08);
    width: 100%;
    max-width: 380px;
}

.form-card h2 {
    margin-top: 0;
    margin-bottom: 20px;
    color: #222;
    text-align: center;
}

.form-group {
    margin-bottom: 16px;
}

.form-group label {
    display: block;
    margin-bottom: 6px;
    font-size: 14px;
    color: #444;
}

.form-group input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 14px;
}

.form-group input:focus {
    outline: none;
    border-color: #4b6cb7;
}

.readonly-field {
    background: #f2f4f7;
    color: #666;
    cursor: not-allowed;
}

.file-input-wrap {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.file-input-hidden {
    width: 0.1px;
    height: 0.1px;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    z-index: -1;
}

.file-input-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    background: #fff;
    color: #4b6cb7;
    border: 1.5px solid #4b6cb7;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s ease, color 0.15s ease;
}

.file-input-label svg {
    flex-shrink: 0;
}

.file-input-label:hover {
    background: #4b6cb7;
    color: #fff;
}

.file-input-hidden:focus + .file-input-label {
    outline: 2px solid #4b6cb7;
    outline-offset: 2px;
}

.file-input-name {
    flex: 1;
    min-width: 0;
    padding: 8px 14px;
    background: #f5f6f9;
    border-radius: 8px;
    font-size: 13px;
    color: #97a0b3;
    font-style: italic;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.file-input-name.has-file {
    background: #eef2fb;
    color: #2f4f8f;
    font-style: normal;
    font-weight: 500;
}

.password-wrapper {
    position: relative;
}

.password-wrapper input {
    padding-right: 46px;
}

.toggle-password {
    position: absolute;
    top: 50%;
    right: 2px;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    cursor: pointer;
    color: #6b7280;
    padding: 8px;
    line-height: 1;
    border-radius: 6px;
}

.toggle-password svg {
    width: 22px;
    height: 22px;
    display: block;
}

.toggle-password:hover {
    color: #4b6cb7;
}

.checkbox-label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #444;
    cursor: pointer;
}

.checkbox-label input {
    width: auto;
}

.btn {
    width: 100%;
    padding: 11px;
    background: #4b6cb7;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 15px;
    cursor: pointer;
}

.btn:hover {
    background: #3a56a0;
}

.btn:disabled {
    opacity: .75;
    cursor: not-allowed;
}

/* আপলোড/সাবমিট চলাকালীন বাটনে স্পিনার — শুধু bar bar ক্লিক ঠেকাতে নয়, সময় লাগছে সেটাও বোঝায় */
.btn-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.btn-loading::before {
    content: '';
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    border: 2px solid rgba(255, 255, 255, .4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: btn-spin .7s linear infinite;
}

@keyframes btn-spin {
    to { transform: rotate(360deg); }
}

.error {
    background: #fdecea;
    color: #b3261e;
    padding: 10px 12px;
    border-radius: 6px;
    font-size: 14px;
    margin-bottom: 16px;
}

.success {
    background: #e7f6ec;
    color: #1e7b34;
    padding: 10px 12px;
    border-radius: 6px;
    font-size: 14px;
    margin-bottom: 16px;
}

/* ক্রয়মূল্য-না-জানা প্রোডাক্টের সতর্কতা, ইত্যাদি — error/success-এর প্যাটার্নে, তবে amber */
.warning-banner {
    background: #fff8e1;
    color: #8a6100;
    padding: 10px 12px;
    border-radius: 6px;
    font-size: 14px;
    margin-bottom: 16px;
    line-height: 1.6;
}

.warning-banner a {
    color: #8a6100;
    text-decoration: underline;
    font-weight: 600;
}

.switch-link {
    text-align: center;
    margin-top: 16px;
    font-size: 14px;
}

.switch-link a {
    color: #4b6cb7;
    text-decoration: none;
}

body.dashboard-page {
    display: block;
    padding: 0;
    min-height: 100vh;
}

.navbar {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    padding: 12px 24px;
    z-index: 20;
}

.navbar-brand {
    grid-column: 2;
    justify-self: center;
    font-weight: 600;
    font-size: 16px;
    color: #222;
}

.menu-toggle {
    grid-column: 1;
    justify-self: start;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    border-radius: 6px;
    color: #444;
    display: flex;
    align-items: center;
    justify-content: center;
}

.menu-toggle:hover {
    background: #f2f4f7;
}

.menu-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
    z-index: 40;
}

.menu-overlay.open {
    opacity: 1;
    pointer-events: auto;
}

.side-menu {
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    width: 260px;
    max-width: 80vw;
    background: #fff;
    box-shadow: 4px 0 24px rgba(0, 0, 0, 0.16);
    transform: translateX(-100%);
    transition: transform 0.25s ease;
    z-index: 50;
    display: flex;
    flex-direction: column;
    padding: 16px;
}

.side-menu.open {
    transform: translateX(0);
}

.side-menu-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid #eee;
}

.side-menu-close {
    background: none;
    border: none;
    font-size: 24px;
    line-height: 1;
    color: #444;
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 6px;
}

.side-menu-close:hover {
    background: #f2f4f7;
}

.nav-link {
    display: block;
    padding: 12px 14px;
    border-radius: 6px;
    text-decoration: none;
    color: #444;
    font-size: 14px;
    font-weight: 500;
}

.nav-link:hover {
    background: #f2f4f7;
}

.nav-link.active {
    background: #4b6cb7;
    color: #fff;
}

.dashboard-content {
    max-width: 700px;
    margin: 24px auto;
    padding: 0 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.dashboard-wrap {
    width: 100%;
    max-width: none;
}

.logout-btn {
    display: block;
    margin-top: auto;
    padding: 12px 14px 0;
    border-top: 1px solid #eee;
    color: #b3261e;
    background: none;
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
}

.logout-btn:hover {
    background: #fdecea;
}

/* ===== দোকান রেজিস্ট্রেশনের রসিদ পেজ (shop_registered.php) ===== */
.receipt-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin: 0 auto 14px;
    border-radius: 50%;
    background: #e7f6ec;
    color: #1e7b34;
}

.receipt-actions {
    display: flex;
    gap: 10px;
    margin-top: 22px;
}

.receipt-actions .loc-btn {
    flex: 1;
    text-align: center;
}

.empty-state {
    color: #666;
    font-size: 14px;
}

.empty-state a {
    color: #4b6cb7;
}

/* সকল দোকান — টুলবার (সার্চ / ফিল্টার / সর্ট) */
/* সাজানোর ধরন অনুযায়ী কার্ডে দেখানো তথ্য (কতদিন আগে রেজিস্টার / কতদিন লেনদেন নেই) */
.shop-sort-note {
    display: inline-block;
    margin-top: 6px;
    padding: 3px 10px;
    background: #eef2fb;
    border-radius: 999px;
    color: #4b6cb7;
    font-size: 11.5px;
    font-weight: 600;
}

/* খোঁজা + দুটি ড্রপডাউন — খোঁজার ঘর পুরো চওড়া, নিচে ড্রপডাউন দুটি সমান ভাগে।
   আগে সব একই সারিতে ঠেলে দেওয়ায় ছোট পর্দায় একটা একা লাইনে পড়ে যেত। */
.shops-toolbar {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin: 4px 0 14px;
}
.shops-search {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 14px;
    background: #fff;
    border: 1px solid #dcdfe6;
    border-radius: 10px;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.shops-search:focus-within {
    border-color: #a9bbe0;
    box-shadow: 0 0 0 3px rgba(75, 108, 183, .12);
}
.shops-search > svg {
    color: #9aa2b1;
    flex-shrink: 0;
}
.shops-search input {
    flex: 1;
    min-width: 0;
    border: none;
    outline: none;
    background: none;
    font-family: inherit;
    font-size: 14.5px;
    padding: 11px 0;
    color: #1f2430;
}
.shops-search-clear {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: #eef1f5;
    color: #64748b;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
}
.shops-search-clear:hover {
    background: #e2e8f0;
    color: #1f2430;
}

/* ছোট পর্দায় ড্রপডাউন দুটোও পুরো চওড়া — নাম লম্বা হলে কাটা পড়ে না */
@media (max-width: 460px) {
    .shops-toolbar {
        grid-template-columns: 1fr;
    }
}

.shops-count {
    font-size: 13px;
    font-weight: 600;
    color: #4b6cb7;
    margin-bottom: 12px;
    padding: 5px 12px;
    background: #eef2fb;
    border-radius: 8px;
    display: inline-block;
}

/* ===== কাস্টম ড্রপডাউন (native <select> এর বদলে) ===== */
.dd {
    position: relative;
    min-width: 0;
}

.dd-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 11px 13px;
    background: #fff;
    border: 1px solid #dcdfe6;
    border-radius: 10px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    color: #374151;
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.dd-toggle:hover {
    border-color: #a9bbe0;
}

.dd-toggle[aria-expanded="true"] {
    border-color: #4b6cb7;
    box-shadow: 0 0 0 3px rgba(75, 108, 183, .12);
}

.dd-icon {
    flex-shrink: 0;
    color: #94a3b8;
}

.dd-label {
    flex: 1;
    min-width: 0;
    text-align: left;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dd-caret {
    flex-shrink: 0;
    color: #94a3b8;
    transition: transform .2s ease;
}

.dd-toggle[aria-expanded="true"] .dd-caret {
    transform: rotate(180deg);
    color: #4b6cb7;
}

/* খোলা তালিকা — এটাই native select এ সাজানো যেত না */
.dd-menu {
    position: absolute;
    z-index: 30;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    max-height: 280px;
    overflow-y: auto;
    padding: 6px;
    background: #fff;
    border: 1px solid #e4e9f0;
    border-radius: 11px;
    box-shadow: 0 12px 28px rgba(20, 25, 40, .14);
    animation: dd-open .14s ease;
}

@keyframes dd-open {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}

.dd-opt {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 10px 11px;
    background: none;
    border: none;
    border-radius: 8px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 500;
    color: #334155;
    text-align: left;
    cursor: pointer;
    transition: background .12s ease, color .12s ease;
}

.dd-opt:hover {
    background: #f5f8fc;
}

.dd-opt.is-active {
    background: #eef2fb;
    color: #4b6cb7;
    font-weight: 700;
}

/* বাছাই করা অপশনে টিক চিহ্ন */
.dd-opt.is-active::after {
    content: '';
    margin-left: auto;
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* কার্ডের বাকি ব্যাজ */
.shop-info-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}
.shop-info-head h3 {
    margin: 0;
    font-size: 16px;
    color: #222;
    min-width: 0;
    word-break: break-word;
}
.shop-bal {
    flex-shrink: 0;
    font-size: 11.5px;
    font-weight: 700;
    padding: 3px 9px;
    border-radius: 999px;
    white-space: nowrap;
}
.shop-bal.is-due {
    background: #fff4e5;
    color: #b26a00;
}
.shop-bal.is-adv {
    background: #e8f7ee;
    color: #1e7b34;
}
.shop-bal.is-zero {
    background: #eef1f5;
    color: #64748b;
}

.shop-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
}

/* পুরনো উল্লম্ব কার্ড — admin_shops.php এখনো এটাই ব্যবহার করে */
.shop-card {
    border: 1px solid #eee;
    border-radius: 8px;
    overflow: hidden;
    background: #fafafa;
}

.shop-card-link {
    display: block;
    color: inherit;
    text-decoration: none;
    transition: box-shadow 0.15s, transform 0.15s;
}

.shop-card-link:hover {
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}

.shop-photo {
    width: 100%;
    height: 140px;
    object-fit: cover;
    display: block;
    background: #eee;
}

.shop-info {
    padding: 12px 14px;
}

.shop-info h3 {
    margin: 0 0 8px;
    font-size: 16px;
    color: #222;
}

.shop-info p {
    margin: 4px 0;
    font-size: 13px;
    color: #555;
}

/* ===== all_shops.php এর নতুন আনুভূমিক কার্ড =====
   বাম পাশে ছোট গোল ছবি, ডানে তথ্য, নিচে কল ও অর্ডার বোতাম।
   বাম কিনারার রঙই বাকির অবস্থা বলে দেয় — পড়তে হয় না, তাকালেই বোঝা যায়।
   আলাদা ক্লাসে রাখা, যাতে admin_shops.php এর পুরনো লেআউট অক্ষত থাকে। */
.shop-grid-rich {
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 12px;
}

.shop-card-rich {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #eef1f5;
    border-left: 4px solid #cbd5e1;
    border-radius: 11px;
    overflow: hidden;
    transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease;
}

.shop-card-rich:hover {
    box-shadow: 0 6px 18px rgba(20, 25, 40, .09);
    transform: translateY(-2px);
}

.shop-card-rich.is-due { border-left-color: #e0894f; }
.shop-card-rich.is-adv { border-left-color: #4caf7d; }
.shop-card-rich.is-zero { border-left-color: #cbd5e1; }

/* ছবি + তথ্য — পুরোটা দোকানের পাতার লিঙ্ক */
.shop-card-main {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 14px;
    color: inherit;
    text-decoration: none;
    min-width: 0;
}

.shop-card-rich .shop-photo {
    flex-shrink: 0;
    width: 60px;
    height: 60px;
    object-fit: cover;
    border-radius: 50%;
    background: #eef1f5;
    border: 2px solid #fff;
    box-shadow: 0 1px 4px rgba(20, 25, 40, .12);
}

.shop-card-rich .shop-info {
    flex: 1;
    min-width: 0;
    padding: 0;
}

.shop-card-rich .shop-info h3 {
    margin: 0;
    font-size: 15.5px;
    color: #1f2430;
}

.shop-card-rich .shop-info p {
    margin: 3px 0 0;
    font-size: 12.5px;
    color: #64748b;
}

.shop-place {
    display: flex;
    align-items: center;
    gap: 5px;
}

.shop-place svg {
    flex-shrink: 0;
    color: #94a3b8;
}

/* কোন DSR দোকানটি রেজিস্টার করেছে (admin_shops.php) */
.shop-by {
    display: flex;
    align-items: center;
    gap: 5px;
}

.shop-by svg {
    flex-shrink: 0;
    color: #94a3b8;
}

/* কাজের বোতাম — কল ও অর্ডার/এডিট */
.shop-card-actions {
    display: flex;
    border-top: 1px solid #f1f4f8;
}

.shop-act {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 8px;
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: none;
    transition: background .15s ease;
}

.shop-act-call {
    color: #4b6cb7;
    border-right: 1px solid #f1f4f8;
}

.shop-act-call:hover { background: #eef2fb; }

.shop-act-order {
    color: #1e7b34;
}

.shop-act-order:hover { background: #e7f6ec; }

/* অ্যাডমিনের কার্ডে অর্ডারের জায়গায় এডিট */
.shop-act-edit {
    color: #5b6779;
}

.shop-act-edit:hover { background: #f1f4f8; }

.shop-view-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.shop-view-header h2 {
    margin: 0;
    text-align: left;
}

.btn-edit {
    background: #4b6cb7;
    color: #fff;
    padding: 8px 18px;
    border-radius: 6px;
    text-decoration: none;
    font-size: 14px;
    white-space: nowrap;
}

.btn-edit:hover {
    background: #3a56a0;
}

.shop-view-photo {
    width: 100%;
    max-height: 320px;
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: 16px;
    background: #eee;
}

/* দোকানের তথ্য — উপরে ছোট ছবি+নাম+ঠিকানা, বাকিটা টগল */
.sv-details {
    padding: 18px 20px;
}
.sv-details-top {
    display: flex;
    align-items: center;
    gap: 16px;
}
.sv-details-thumb {
    width: 60px;
    height: 60px;
    border-radius: 14px;
    object-fit: cover;
    background: #eef0f4;
    flex-shrink: 0;
    border: 1px solid #eceef3;
    box-shadow: 0 2px 6px rgba(17, 24, 39, .08);
}
.sv-details-headtext {
    flex: 1;
    min-width: 0;
    text-align: left;
}
.sv-details-headtext h2 {
    margin: 0;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.25;
    color: #111827;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sv-details-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    align-self: flex-start;
}
.sv-details-address {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 5px 0 0;
    color: #6b7280;
    font-size: 13.5px;
    font-weight: 500;
}
.sv-details-address svg {
    color: #9aa2b1;
    flex-shrink: 0;
}
.sv-details-toggle {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: transparent;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    padding: 6px 13px;
    cursor: pointer;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 600;
    color: #4f46e5;
    white-space: nowrap;
    text-decoration: none;
    transition: background .15s ease, border-color .15s ease;
}

/* দোকানের বিস্তারিত পেজ */
.sd-list {
    margin-top: 8px;
}
.sd-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px;
    padding: 12px 2px;
    border-bottom: 1px solid #f0f1f5;
}
.sd-row:last-child {
    border-bottom: none;
}
.sd-key {
    color: #6b7280;
    font-size: 14px;
    font-weight: 600;
    flex-shrink: 0;
}
.sd-val {
    color: #1f2430;
    font-size: 15px;
    font-weight: 600;
    text-align: right;
    word-break: break-word;
}

/* বিস্তারিত পেজের হেডার অ্যাকশন ও প্রিন্ট বাটন */
.sd-head-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
.sd-print-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: #fff;
    border: 1px solid #dcdfe6;
    border-radius: 10px;
    padding: 8px 16px;
    cursor: pointer;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    color: #374151;
    box-shadow: 0 1px 2px rgba(17, 24, 39, .05);
    transition: border-color .15s ease, color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.sd-print-btn svg {
    color: #6366f1;
    transition: color .15s ease;
}
.sd-print-btn:hover {
    border-color: #c3c8fb;
    color: #4f46e5;
    box-shadow: 0 4px 12px rgba(79, 70, 229, .14);
    transform: translateY(-1px);
}
.sd-print-btn:active {
    transform: translateY(0);
    box-shadow: 0 1px 2px rgba(17, 24, 39, .06);
}

/* মোবাইলে লম্বা মান — লেবেলের নিচে নেমে আসে */
@media (max-width: 480px) {
    .sd-stat {
        flex-wrap: wrap;
    }
    .sd-stat-text,
    .sd-stat-val {
        width: 100%;
        max-width: 100%;
        text-align: left;
        padding-left: 52px;
        margin-top: 2px;
    }
}

/* প্রিন্ট মোড — শুধু কার্ডের তথ্য, নেভবার/বাটন বাদ */
@media print {
    body {
        background: #fff;
    }
    .navbar,
    .admin-navbar,
    .sd-head-actions,
    .back-link {
        display: none !important;
    }
    .dashboard-content {
        padding: 0;
    }
    .form-card {
        box-shadow: none;
        border: 1px solid #ddd;
    }
    .sd-stat-ic {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}

/* বিস্তারিত ও সর্বমোট আলাদা করার বিভাজক */
.sd-divider {
    height: 0;
    margin: 10px 0;
    border-top: 2px solid #eceef3;
}
/* বিভাজকের ঠিক আগের সারির নিচের রেখা বাদ (দ্বিগুণ রেখা এড়াতে) */
.sd-stat:has(+ .sd-divider) {
    border-bottom: none;
}

/* লাইফটাইম স্ট্যাট সারি (আইকন-চিপ সহ) */
.sd-stats {
    margin-top: 4px;
}
.sd-stat {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 13px 4px;
    border-bottom: 1px solid #f0f1f5;
}
.sd-stat:last-child {
    border-bottom: none;
}
.sd-stat-ic {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 11px;
    flex-shrink: 0;
}
.sd-stat-ic.ic-blue   { background: #eef2fb; color: #4b6cb7; }
.sd-stat-ic.ic-teal   { background: #e6f7f4; color: #10a394; }
.sd-stat-ic.ic-indigo { background: #eef0fe; color: #5b61d6; }
.sd-stat-ic.ic-amber  { background: #fff5e6; color: #d18700; }
.sd-stat-ic.ic-green  { background: #eaf7ee; color: #1e9e4a; }
.sd-stat-ic.ic-rose   { background: #fdeef2; color: #d6336c; }
.sd-stat-ic.ic-slate  { background: #eef1f5; color: #64748b; }
.sd-stat-label {
    flex: 1;
    min-width: 0;
    color: #6b7280;
    font-size: 14.5px;
    font-weight: 600;
}
.sd-stat-val {
    font-size: 18px;
    font-weight: 800;
    color: #1f2430;
    white-space: nowrap;
}
.sd-stat-val small {
    font-size: 12px;
    font-weight: 600;
    color: #9aa2b1;
}
.sd-stat-val.val-green {
    color: #1e9e4a;
}

/* বিস্তারিত সারির টেক্সট মান (নাম, ঠিকানা ইত্যাদি — wrap হতে পারে) */
.sd-stat-text {
    font-size: 15px;
    font-weight: 700;
    color: #1f2430;
    text-align: right;
    word-break: break-word;
    max-width: 55%;
}
.sv-details-toggle:hover {
    background: #f5f4ff;
    border-color: #d6d3fb;
}
.sv-details-caret {
    transition: transform .2s ease;
    flex-shrink: 0;
}
.sv-details.is-open .sv-details-caret {
    transform: rotate(180deg);
}
.sv-details-body {
    padding-top: 14px;
    border-top: 1px solid #f0f1f5;
    margin-top: 16px;
}
.sv-details-body p {
    margin: 9px 0;
    font-size: 14.5px;
    color: #374151;
}
.sv-details-body p strong {
    color: #6b7280;
    font-weight: 600;
}
.sv-details-stats {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px dashed #e5e7eb;
}

.current-photo-preview {
    width: 120px;
    height: 120px;
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: 8px;
    display: block;
    background: #eee;
}

.field-hint {
    display: block;
    margin-top: 6px;
    font-size: 12px;
    color: #888;
}

.field-hint-warn {
    display: inline-block;
    padding: 4px 10px;
    background: #fef3c7;
    color: #92400e;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
}

.suggest-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
    background: #eef2fb;
    border: 1px solid #d7e0f5;
    color: #4b6cb7;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    padding: 6px 12px;
    border-radius: 999px;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.suggest-toggle:hover {
    background: #e0e8fa;
    border-color: #c3d1f0;
}

.suggest-toggle-icon {
    flex-shrink: 0;
    transition: transform 0.2s ease;
}

.suggest-toggle.open .suggest-toggle-icon {
    transform: rotate(180deg);
}

.suggest-list {
    display: none;
    flex-direction: column;
    max-height: 180px;
    overflow-y: auto;
    margin-top: 6px;
    border: 1px solid #eee;
    border-radius: 6px;
    background: #fafafa;
}

.suggest-list.open {
    display: flex;
}

.suggest-item {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    border-bottom: 1px solid #eee;
    padding: 8px 12px;
    font-size: 13px;
    color: #333;
    cursor: pointer;
}

.suggest-item:last-child {
    border-bottom: none;
}

.suggest-item:hover {
    background: #f2f4f7;
}

.suggest-empty {
    padding: 8px 12px;
    font-size: 13px;
    color: #888;
}

.select-field {
    position: relative;
}

.select-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 12px;
    background: #fff;
    border: 1.5px solid #e4e9f0;
    border-radius: 12px;
    font-size: 15px;
    cursor: pointer;
    text-align: left;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.select-toggle:hover {
    border-color: #d3dbe8;
}

.select-toggle.open {
    border-color: #4b6cb7;
    box-shadow: 0 0 0 3px rgba(75, 108, 183, 0.12);
}

/* আইকন Locations টগলের মতো গোল ব্যাজে */
.select-toggle-icon-leading {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    background: #eef2fb;
    color: #4b6cb7;
    border-radius: 9px;
}

.select-toggle-text {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 15px;
    color: #97a0b3;
}

.select-toggle-text.has-value {
    color: #1f2430;
    font-weight: 600;
}

.select-toggle-icons {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.select-check-icon {
    display: none;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #1e7b34;
}

.select-check-icon.show {
    display: flex;
}

.select-toggle-chevron {
    color: #9aa1b0;
    transition: transform 0.2s ease;
}

.select-toggle.open .select-toggle-chevron {
    transform: rotate(180deg);
    color: #4b6cb7;
}

.select-dropdown {
    display: none;
    margin-top: 8px;
    border: 1.5px solid #e4e9f0;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(20, 25, 40, 0.1);
    overflow: hidden;
    animation: select-dropdown-in 0.15s ease;
}

@keyframes select-dropdown-in {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.select-dropdown.open {
    display: block;
}

.select-search-wrap {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 4px 14px;
    background: #f7f8fa;
    border-bottom: 1px solid #eceef2;
}

.select-search-icon {
    width: 17px;
    height: 17px;
    flex-shrink: 0;
    color: #9aa1b0;
    pointer-events: none;
}

.select-search {
    flex: 1;
    min-width: 0;
    padding: 11px 0;
    border: none;
    background: transparent;
    font-size: 15px;
    font-family: inherit;
    color: #1f2430;
}

.select-search:focus {
    outline: none;
}

.select-search::placeholder {
    color: #98a0b3;
}

.select-options {
    max-height: 280px;
    overflow-y: auto;
    padding: 5px;
}

.select-option {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    border-radius: 9px;
    padding: 11px 12px;
    font-size: 15px;
    color: #334155;
    cursor: pointer;
    transition: background 0.12s ease;
}

.select-option:hover {
    background: #f5f8fc;
}

.select-option.selected {
    background: #eef2fb;
    color: #2f4f8f;
    font-weight: 600;
}

.select-option-card {
    padding: 8px 10px;
}

.select-option-shop {
    display: flex;
    align-items: center;
    gap: 10px;
}

.select-option-shop-photo {
    width: 38px;
    height: 38px;
    border-radius: 7px;
    object-fit: cover;
    background: #eee;
    flex-shrink: 0;
}

.select-option-shop-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.select-option-shop-name {
    font-size: 15px;
    font-weight: 600;
    color: #1f2430;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.select-option-shop-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 2px;
    font-size: 11px;
    color: #777;
}

.select-option-shop-check {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #1e7b34;
}

.select-toggle-shop {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.select-toggle-shop-photo {
    width: 26px;
    height: 26px;
    border-radius: 6px;
    object-fit: cover;
    background: #eee;
    flex-shrink: 0;
}

.select-toggle-shop-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.select-empty {
    padding: 16px 13px;
    font-size: 14px;
    color: #98a0b3;
    text-align: center;
}

.order-shop-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.order-shop-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px;
    background: #fff;
    border: 1px solid #eceef2;
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(20, 25, 40, 0.04);
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.order-shop-card.is-selected {
    border-color: #1e7b34;
    background: #f3fbf5;
}

.order-shop-selected-badge {
    position: absolute;
    top: -8px;
    right: -8px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #1e7b34;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 6px rgba(30, 123, 52, 0.4);
}

.order-shop-change-btn {
    flex-shrink: 0;
    background: none;
    border: 1.5px solid #4b6cb7;
    color: #4b6cb7;
    font-size: 12px;
    font-weight: 500;
    padding: 7px 14px;
    border-radius: 999px;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s ease, color 0.15s ease;
}

.order-shop-change-btn:hover {
    background: #4b6cb7;
    color: #fff;
}

.order-shop-card:hover {
    box-shadow: 0 6px 16px rgba(20, 25, 40, 0.08);
    transform: translateY(-1px);
}

.order-shop-photo {
    width: 54px;
    height: 54px;
    border-radius: 8px;
    object-fit: cover;
    background: #eee;
    flex-shrink: 0;
}

.order-shop-info {
    flex: 1;
    min-width: 0;
}

.order-shop-name {
    font-size: 14px;
    font-weight: 600;
    color: #1f2430;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.order-shop-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
}

.order-shop-phone {
    font-size: 12px;
    color: #666;
}

.order-shop-id {
    font-size: 11px;
    font-weight: 600;
    color: #4b6cb7;
    background: #eef2fb;
    padding: 2px 8px;
    border-radius: 999px;
}

.chip-select-group {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.chip-select-option {
    padding: 10px 20px;
    background: #fff;
    border: 1.5px solid #dde1e8;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 500;
    color: #444;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.chip-select-option:hover {
    border-color: #b7c2e0;
}

.chip-select-option.selected {
    background: #4b6cb7;
    border-color: #4b6cb7;
    color: #fff;
}

.back-link {
    display: inline-block;
    margin-top: 16px;
    color: #4b6cb7;
    text-decoration: none;
    font-size: 14px;
}

.danger-zone {
    margin-top: 24px;
    padding-top: 16px;
    border-top: 1px solid #eee;
}

.btn-danger {
    width: 100%;
    padding: 11px;
    background: #b3261e;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 15px;
    cursor: pointer;
}

.btn-danger:hover {
    background: #8f1e18;
}

/* ===== Admin theme ===== */
body.admin-auth {
    background: #101828;
}

.admin-card {
    border-top: 4px solid #0ea5e9;
    position: relative;
}

.admin-badge {
    display: inline-block;
    margin: 0 auto 14px;
    padding: 4px 14px;
    background: #0ea5e9;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 2px;
    border-radius: 999px;
    text-align: center;
}

.admin-card h2 {
    margin-bottom: 20px;
}

.admin-card {
    text-align: center;
}

.admin-card form,
.admin-card .form-group {
    text-align: left;
}

/* ===== Auth পেজ (login.php / admin_login.php) পলিশ ===== */
.auth-card {
    position: relative;
}

.auth-card:not(.admin-card) {
    border-top: 4px solid #4b6cb7;
    box-shadow: 0 10px 34px rgba(20, 25, 40, .1);
}

/* ব্র্যান্ড নাম — কার্ডের একদম উপরে, gradient wordmark */
.auth-brand-mark {
    text-align: center;
    margin-bottom: 22px;
}

.auth-brand-name {
    font-family: Georgia, 'Segoe UI', Arial, sans-serif;
    font-size: 23px;
    font-weight: 700;
    letter-spacing: 3px;
    background: linear-gradient(135deg, #6f8fd6 0%, #3a56a0 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.admin-card .auth-brand-name {
    background: linear-gradient(135deg, #7dd3fc 0%, #0369a1 100%);
    -webkit-background-clip: text;
    background-clip: text;
}

/* ভাষা নির্বাচন — native <details> দিয়ে (JS ছাড়াই খোলে/বন্ধ হয়), ছোট পিল আকারে ডানে */
.auth-lang-row {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 18px;
}

.lang-dd {
    position: relative;
    display: inline-block;
}

.lang-dd-toggle {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 14px 8px 18px;
    border-radius: 999px;
    background: linear-gradient(135deg, #6f8fd6 0%, #4b6cb7 100%);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    list-style: none;
    white-space: nowrap;
    box-shadow: 0 4px 12px rgba(75, 108, 183, .3);
    transition: box-shadow .15s ease;
}

.lang-dd-toggle::-webkit-details-marker {
    display: none;
}

.lang-dd-toggle svg {
    flex-shrink: 0;
    transition: transform .2s ease;
}

.lang-dd[open] .lang-dd-toggle svg {
    transform: rotate(180deg);
}

.lang-dd[open] .lang-dd-toggle {
    box-shadow: 0 4px 14px rgba(75, 108, 183, .4);
}

.admin-card .lang-dd-toggle {
    background: linear-gradient(135deg, #38bdf8 0%, #0ea5e9 100%);
    box-shadow: 0 4px 14px rgba(14, 165, 233, .3);
}

.lang-dd-menu {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 30;
    min-width: 100%;
    padding: 5px;
    border-radius: 14px;
    background: linear-gradient(160deg, #86a3e0 0%, #5679c4 100%);
    box-shadow: 0 12px 28px rgba(75, 108, 183, .3);
    overflow: hidden;
    animation: dd-open .15s ease;
}

.admin-card .lang-dd-menu {
    background: linear-gradient(160deg, #5cc4f5 0%, #0ea5e9 100%);
    box-shadow: 0 12px 28px rgba(14, 165, 233, .3);
}

/* নেভবারের ভাষা ড্রপডাউন (login page-এর lang-dd পুনর্ব্যবহার) — অ্যাডমিন সাইডে সাইট-থিমের
   সায়ান রং, DSR সাইডে ডিফল্ট নীল */
.nav-lang-dd {
    margin-top: 2px;
}

.admin-side-menu .lang-dd-toggle {
    background: linear-gradient(135deg, #38bdf8 0%, #0ea5e9 100%);
    box-shadow: 0 4px 14px rgba(14, 165, 233, .3);
}

.admin-side-menu .lang-dd-menu {
    background: linear-gradient(160deg, #5cc4f5 0%, #0ea5e9 100%);
    box-shadow: 0 12px 28px rgba(14, 165, 233, .3);
}

.lang-dd-opt {
    display: block;
    padding: 9px 14px;
    border-radius: 10px;
    color: #fff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;
    opacity: .85;
    transition: background .12s ease, opacity .12s ease;
}

.lang-dd-opt:hover {
    background: rgba(255, 255, 255, .14);
    opacity: 1;
}

.lang-dd-opt.is-active {
    background: rgba(255, 255, 255, .22);
    font-weight: 700;
    opacity: 1;
}

.auth-card .btn {
    background: linear-gradient(180deg, #5679c4 0%, #4b6cb7 100%);
    box-shadow: 0 1px 2px rgba(30, 41, 90, .18);
}

.auth-card .btn:hover {
    background: linear-gradient(180deg, #4b6cb7 0%, #3f5aa6 100%);
    box-shadow: 0 5px 14px rgba(75, 108, 183, .35);
}

.admin-navbar {
    background: #0f172a;
}

.admin-navbar .navbar-brand,
.admin-navbar .menu-toggle {
    color: #e2e8f0;
}

.admin-navbar .menu-toggle:hover {
    background: #1e293b;
}

.admin-tag {
    display: inline-block;
    margin-left: 6px;
    padding: 2px 8px;
    background: #0ea5e9;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    border-radius: 999px;
    vertical-align: middle;
}

.admin-side-menu .nav-link.active {
    background: #0ea5e9;
}

.stat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 14px;
}

.stat-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 18px 12px;
    background: #f0f9ff;
    border: 1px solid #dbeafe;
    border-radius: 10px;
}

/* .stat-card <div> ছাড়াও <a>/<button> হতে পারে (ড্যাশবোর্ডের ক্লিকযোগ্য/লিংক-করা টাইল) —
   UA ডিফল্ট (আন্ডারলাইন, বাটন বর্ডার/ফন্ট) রিসেট করা */
a.stat-card, button.stat-card {
    width: 100%;
    text-decoration: none;
    color: inherit;
    font: inherit;
    cursor: pointer;
    box-sizing: border-box;
}

button.stat-card {
    -webkit-appearance: none;
    appearance: none;
}

a.stat-card:hover, button.stat-card:hover {
    border-color: #93c5fd;
}

.stat-value {
    font-size: 28px;
    font-weight: 700;
    color: #0369a1;
    line-height: 1;
}

.stat-label {
    margin-top: 6px;
    font-size: 13px;
    color: #555;
}

/* DSR নিজের প্রোফাইলে (dashboard.php) */
.profile-header {
    display: flex;
    align-items: center;
    gap: 16px;
    padding-bottom: 18px;
    margin-bottom: 18px;
    border-bottom: 1px solid #eef1f5;
}

.profile-avatar {
    width: 84px;
    height: 84px;
    border-radius: 50%;
    object-fit: cover;
    background: #e9ecf2;
    border: 3px solid #fff;
    box-shadow: 0 2px 10px rgba(20, 25, 40, 0.12);
    flex-shrink: 0;
}

/* নাম ও তার নিচের ইউনিয়ন একসাথে, ছবির পাশে */
.profile-headtext {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.profile-name {
    font-size: 20px;
    font-weight: 600;
    color: #1f2430;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* বরাদ্দকৃত ইউনিয়ন — নামের নিচে, লোকেশন আইকনসহ */
.profile-union {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    font-size: 13.5px;
    font-weight: 500;
    color: #64748b;
}

.profile-union svg {
    flex-shrink: 0;
    color: #94a3b8;
}

/* ইউনিয়ন বরাদ্দ না থাকলে চোখে পড়া দরকার */
.profile-union.is-none {
    color: #b42318;
}

.profile-union.is-none svg {
    color: #b42318;
}

.dsr-password {
    font-family: 'Consolas', monospace;
    background: #f2f4f7;
    padding: 3px 10px;
    border-radius: 5px;
    color: #1f2430;
}

.dsr-password-toggle {
    background: none;
    border: 1px solid #cbd5e1;
    color: #475569;
    padding: 3px 12px;
    border-radius: 999px;
    font-size: 12px;
    cursor: pointer;
}

.dsr-password-toggle:hover {
    background: #f2f4f7;
}

.dsr-password-missing {
    color: #92400e;
    background: #fef3c7;
    padding: 3px 10px;
    border-radius: 5px;
    font-size: 13px;
}

.table-wrap {
    overflow-x: auto;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.data-table th,
.data-table td {
    padding: 10px 12px;
    text-align: left;
    border-bottom: 1px solid #eee;
    white-space: nowrap;
}

.data-table th {
    color: #555;
    font-weight: 600;
    background: #f7f9fc;
}

.data-table td a {
    color: #0369a1;
    text-decoration: none;
}

.data-table tr:hover td {
    background: #f9fbfe;
}

.dsr-total-row td {
    font-weight: 700;
    background: #f7f9fc;
    border-top: 2px solid #e2e8f0;
}

/* ===== Locations পেজ ===== */
.loc-subtitle {
    margin: 6px 0 20px;
    color: #64748b;
    font-size: 15px;
    line-height: 1.6;
}

/* সাধারণ বাটন (Save / Add village) */
.loc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 11px 20px;
    border: 1.5px solid transparent;
    border-radius: 10px;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none; /* <a class="loc-btn"> এও যাতে আন্ডারলাইন না আসে */
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, transform 0.08s ease;
}

.loc-btn:active {
    transform: translateY(1px);
}

.loc-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(75, 108, 183, 0.28);
}

.loc-btn-primary {
    background: linear-gradient(180deg, #5679c4 0%, #4b6cb7 100%);
    border-color: #4358a0;
    color: #fff;
    box-shadow: 0 1px 2px rgba(30, 41, 90, 0.18);
}

.loc-btn-primary:hover {
    background: linear-gradient(180deg, #4b6cb7 0%, #3f5aa6 100%);
    border-color: #38508f;
    box-shadow: 0 5px 14px rgba(75, 108, 183, 0.35);
}

.loc-btn-primary:active {
    box-shadow: 0 1px 2px rgba(75, 108, 183, 0.3);
}

.loc-btn-ghost {
    background: #fff;
    border-color: #dce1ea;
    color: #475569;
    padding: 11px 16px;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05);
}

.loc-btn-ghost:hover {
    background: #f8fafc;
    border-color: #c3ccda;
    color: #1f2937;
}

.loc-btn-sm {
    padding: 8px 14px;
    font-size: 14px;
    border-radius: 8px;
}

.loc-btn-danger {
    background: linear-gradient(180deg, #c33128 0%, #b3261e 100%);
    border-color: #97201a;
    color: #fff;
    box-shadow: 0 1px 2px rgba(90, 20, 16, 0.2);
}

.loc-btn-danger:hover {
    background: linear-gradient(180deg, #b3261e 0%, #9c1f18 100%);
    border-color: #851b15;
    box-shadow: 0 5px 14px rgba(179, 38, 30, 0.35);
}

.loc-btn-danger:disabled {
    background: #e6a9a4;
    border-color: #e6a9a4;
    cursor: not-allowed;
    box-shadow: none;
}

/* কনফার্মেশন মডাল */
.loc-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    z-index: 100;
    animation: loc-fade-in 0.15s ease;
}

@keyframes loc-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

.loc-modal {
    width: 100%;
    max-width: 380px;
    background: #fff;
    border-radius: 14px;
    padding: 24px;
    box-shadow: 0 20px 50px rgba(15, 23, 42, 0.3);
    animation: loc-slide-in 0.18s ease;
}

.loc-modal-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 18px;
    font-weight: 700;
    color: #1f2430;
    margin-bottom: 12px;
}

.loc-modal-msg {
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
    margin-bottom: 22px;
}

.loc-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.loc-modal-confirm {
    min-width: 120px;
}

/* Add union টগল বাটন */
.loc-add-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 22px;
    background: #4b6cb7;
    border: none;
    border-radius: 10px;
    color: #fff;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease, box-shadow 0.15s ease;
}

.loc-add-toggle:hover {
    background: #3a56a0;
    box-shadow: 0 3px 12px rgba(75, 108, 183, 0.3);
}

/* Add union / add village ইনপুট সারি */
.loc-add-form,
.loc-add-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.loc-add-form {
    padding: 12px;
    background: #f7f9fc;
    border: 1px solid #e6ebf3;
    border-radius: 12px;
    animation: loc-slide-in 0.18s ease;
}

@keyframes loc-slide-in {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

.loc-input-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    flex-shrink: 0;
    background: #eef2fb;
    color: #4b6cb7;
    border-radius: 10px;
}

.loc-input {
    flex: 1;
    min-width: 0;
    padding: 12px 14px;
    border: 1.5px solid #d8dee9;
    border-radius: 9px;
    font-size: 15px;
    font-family: inherit;
    background: #fff;
}

.loc-input:focus {
    outline: none;
    border-color: #4b6cb7;
    box-shadow: 0 0 0 3px rgba(75, 108, 183, 0.12);
}

/* নিষ্ক্রিয় ড্রপডাউন টগল (যেমন ইউনিয়ন না বাছাই করা পর্যন্ত গ্রাম) */
.select-toggle:disabled {
    background: #f2f4f7;
    color: #97a0b3;
    cursor: not-allowed;
    border-color: #e4e8ef;
}

.select-toggle:disabled .select-toggle-icon-leading,
.select-toggle:disabled .select-toggle-chevron {
    color: #b6bdca;
}

.loc-error {
    margin-top: 12px;
    margin-bottom: 0;
    font-size: 14px;
}

.loc-loading,
.loc-empty {
    padding: 26px 4px;
    color: #94a3b8;
    font-size: 15px;
    text-align: center;
}

.loc-union-list {
    margin-top: 22px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.loc-union {
    border: 1px solid #e4e9f0;
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
    transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.loc-union:hover {
    border-color: #d3dbe8;
}

.loc-union.open {
    box-shadow: 0 6px 20px rgba(20, 25, 40, 0.08);
    border-color: #cdd7e6;
}

.loc-union-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px 6px 6px;
}

.loc-union-toggle {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 12px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 12px 8px;
    font-family: inherit;
    text-align: left;
    border-radius: 9px;
}

.loc-union-toggle:hover {
    background: #f5f8fc;
}

.loc-chevron {
    flex-shrink: 0;
    color: #94a3b8;
    transition: transform 0.2s ease;
}

.loc-union.open > .loc-union-head .loc-chevron {
    transform: rotate(180deg);
    color: #4b6cb7;
}

.loc-union-pin {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    background: #eef2fb;
    color: #4b6cb7;
    border-radius: 9px;
    flex-shrink: 0;
}

.loc-union-name {
    flex: 1;
    font-size: 17px;
    font-weight: 600;
    color: #1f2430;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.loc-badge {
    flex-shrink: 0;
    min-width: 26px;
    padding: 4px 10px;
    background: #eef2fb;
    color: #4b6cb7;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    border-radius: 999px;
}

.loc-row-actions {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}

.loc-icon-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: none;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    color: #64748b;
    transition: background 0.15s ease, color 0.15s ease;
}

.loc-icon-btn.loc-edit:hover {
    background: #eef2fb;
    color: #4b6cb7;
}

.loc-icon-btn.loc-delete:hover {
    background: #fdecea;
    color: #b3261e;
}

.loc-union-body {
    padding: 6px 16px 18px;
    border-top: 1px solid #eef1f5;
    background: #fcfdfe;
}

/* গ্রাম যোগ / সার্চ — টগল বাটন সারি */
.loc-village-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

.loc-add-village-form,
.loc-search-form {
    margin-top: 16px;
}

/* ২ সেকেন্ডের নিশ্চিতকরণ বার্তা */
.loc-village-toast {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    padding: 10px 14px;
    background: #e7f6ec;
    color: #1e7b34;
    border-radius: 9px;
    font-size: 14px;
    font-weight: 500;
    animation: loc-slide-in 0.18s ease;
}

.loc-village-list {
    margin-top: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.loc-village {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 14px;
    background: #fff;
    border: 1px solid #eef1f5;
    border-radius: 9px;
    transition: border-color 0.15s ease;
}

.loc-village:hover {
    border-color: #dbe3ee;
}

.loc-village-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #4b6cb7;
    flex-shrink: 0;
}

.loc-village-name {
    flex: 1;
    min-width: 0;
    font-size: 15px;
    color: #334155;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ইনলাইন এডিট (নাম + Save + Close) */
.loc-edit-wrap {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.loc-inline-edit {
    flex: 1;
    min-width: 0;
    padding: 9px 12px;
    border: 1.5px solid #4b6cb7;
    border-radius: 8px;
    font-size: 15px;
    font-family: inherit;
    box-shadow: 0 0 0 3px rgba(75, 108, 183, 0.12);
}

.loc-inline-edit:focus {
    outline: none;
}

/* ===== Products পেজ (বাকি স্টাইল loc-* থেকে) ===== */
.prod-price-input {
    max-width: 120px;
    flex: 0 0 auto;
}

/* ব্র্যান্ডের ভেতরে Add product ফর্ম ও প্রোডাক্ট তালিকা */
.prod-add-form {
    margin-top: 16px;
    flex-wrap: wrap;
}

.prod-list-in-brand {
    margin-top: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.prod-edit-brand {
    max-width: 190px;
    flex: 0 0 auto;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 14px;
    padding-right: 34px;
    cursor: pointer;
}

.prod-edit-brand:hover {
    border-color: #b9c4d6;
}

.prod-price-badge {
    background: #e7f6ec;
    color: #1e7b34;
    font-size: 14px;
}

.prod-disc-badge {
    flex-shrink: 0;
    padding: 3px 10px;
    background: #fff4e5;
    color: #b26a00;
    font-size: 12px;
    font-weight: 600;
    border-radius: 999px;
}

/* প্রোডাক্ট নাম/দাম ইনলাইন এডিট */
.prod-edit-wrap {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.prod-edit-name {
    flex: 1;
    min-width: 120px;
}

.prod-edit-price {
    max-width: 110px;
}

/* ছাড় সম্পাদক (Add discount + তালিকা) */
.prod-disc-tools {
    margin-top: 16px;
}

.prod-disc-form {
    margin-top: 16px;
    flex-wrap: wrap;
}

.prod-cur-sign {
    color: #64748b;
    font-size: 15px;
    font-weight: 600;
    flex-shrink: 0;
}

.prod-qty-input {
    max-width: 130px;
}

.prod-amt-input {
    max-width: 140px;
}

.prod-disc-list {
    margin-top: 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.prod-disc-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 14px;
    background: #fff;
    border: 1px solid #eef1f5;
    border-radius: 9px;
    transition: border-color 0.15s ease;
}

.prod-disc-item:hover {
    border-color: #dbe3ee;
}

.prod-disc-text {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.prod-disc-qtytext {
    font-size: 15px;
    color: #1f2430;
}

.prod-disc-arrow {
    color: #b6bdca;
    font-weight: 700;
}

.prod-disc-amt {
    font-size: 14px;
    font-weight: 600;
    color: #1e7b34;
    background: #e7f6ec;
    padding: 3px 12px;
    border-radius: 999px;
}

.prod-disc-edit {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.prod-disc-toast {
    margin-top: 14px;
    margin-bottom: 0;
}

/* ===== New Order পেজ ===== */
/* ড্রপডাউন অপশনে ডানপাশে দোকান সংখ্যা */
.select-opt-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
}

.select-opt-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.select-opt-count {
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 600;
    color: #4b6cb7;
    background: #eef2fb;
    padding: 2px 9px;
    border-radius: 999px;
}

/* নির্বাচিত দোকানের কার্ডে বাকি */
.order-shop-due {
    margin-top: 5px;
    font-size: 13px;
    font-weight: 600;
    color: #1e7b34;
}

.order-shop-due.has-due {
    color: #b26a00;
}

.order-shop-due.has-advance {
    color: #1e7b34;
}

/* balance নোটের রঙ: বাকি (কমলা) / অগ্রিম (সবুজ) / শূন্য (ধূসর) */
.order-due-note.bal-adv {
    background: #e7f6ec;
    border-color: #b7e3c4;
    color: #1e7b34;
}

.order-due-note.bal-adv strong {
    color: #1e7b34;
}

.order-due-note.bal-none {
    background: #f2f4f7;
    border-color: #e2e8f0;
    color: #64748b;
}

.order-due-note.bal-none strong {
    color: #64748b;
}

.order-due-note {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    background: #fff4e5;
    border: 1px solid #ffe0b2;
    border-radius: 10px;
    margin-bottom: 18px;
    font-size: 15px;
    color: #92620a;
}

.order-due-note strong {
    font-size: 18px;
    color: #b26a00;
}

.order-final-due {
    background: #eef2fb;
    border-color: #d7e0f5;
    color: #2f4f8f;
    margin-top: 16px;
    margin-bottom: 0;
}

.order-final-due strong {
    color: #3a56a0;
}

.order-add-tools {
    margin-bottom: 4px;
}

.order-add-form {
    margin-top: 12px;
    padding: 14px;
    background: #f7f9fc;
    border: 1px solid #e6ebf3;
    border-radius: 12px;
}

.order-qty-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 12px;
}

.order-qty-label {
    font-size: 14px;
    color: #475569;
    flex-shrink: 0;
}

.order-qty-input {
    max-width: 120px;
}

.order-line-preview {
    margin-top: 12px;
    padding: 10px 14px;
    background: #fff;
    border: 1px solid #eef1f5;
    border-radius: 9px;
}

.order-line-row {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    color: #475569;
    padding: 3px 0;
}

.order-line-disc {
    color: #1e7b34;
}

.order-disc-breakdown {
    font-size: 12px;
    color: #1e7b34;
    background: #f1faf4;
    border-radius: 6px;
    padding: 6px 10px;
    margin: 4px 0 2px;
    line-height: 1.5;
}

.order-item-breakdown {
    font-size: 12px;
    color: #4b8f63;
    margin-top: 3px;
    line-height: 1.4;
}

.order-line-total {
    border-top: 1px dashed #e2e8f0;
    margin-top: 4px;
    padding-top: 7px;
    color: #1f2430;
}

.order-add-actions {
    display: flex;
    gap: 10px;
    margin-top: 14px;
}

.order-items {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 4px;
}

.order-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    background: #fff;
    border: 1px solid #eef1f5;
    border-radius: 10px;
}

.order-item-info {
    flex: 1;
    min-width: 0;
}

.order-item-name {
    font-size: 15px;
    font-weight: 600;
    color: #1f2430;
}

.order-item-meta {
    font-size: 13px;
    color: #64748b;
    margin-top: 3px;
}

.order-item-total {
    font-size: 15px;
    font-weight: 700;
    color: #1e7b34;
    white-space: nowrap;
}

/* পরিমাণ বাড়ানো-কমানো */
.order-qty-stepper {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    border: 1.5px solid #e4e9f0;
    border-radius: 9px;
    overflow: hidden;
}

.qty-btn {
    width: 32px;
    height: 34px;
    border: none;
    background: #f7f9fc;
    color: #4b6cb7;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}

.qty-btn:hover {
    background: #eef2fb;
}

.qty-val {
    width: 46px;
    height: 34px;
    border: none;
    border-left: 1.5px solid #e4e9f0;
    border-right: 1.5px solid #e4e9f0;
    text-align: center;
    font-size: 15px;
    font-family: inherit;
    -moz-appearance: textfield;
}

.qty-val:focus {
    outline: none;
}

.qty-val::-webkit-outer-spin-button,
.qty-val::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.order-item-remove {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: none;
    color: #94a3b8;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.order-item-remove:hover {
    background: #fdecea;
    color: #b3261e;
}

/* ড্রপডাউনে "বাকি পরিশোধ" অপশন */
.opt-due {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #b26a00;
    font-weight: 600;
}

.order-summary {
    margin-top: 18px;
    padding: 16px;
    background: #fafbfc;
    border: 1px solid #eef1f5;
    border-radius: 12px;
}

.order-summary-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 15px;
    color: #475569;
    padding: 4px 0;
}

.order-summary-row strong {
    font-size: 17px;
    color: #1f2430;
}

.order-due-row {
    border-top: 1px solid #eef1f5;
    margin-top: 8px;
    padding-top: 10px;
}

.order-due-row strong {
    color: #b26a00;
}

.order-field {
    margin-top: 16px;
}

.order-field label {
    display: block;
    margin-bottom: 6px;
    font-size: 14px;
    color: #444;
}

.order-input-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
}

.order-cur {
    font-size: 16px;
    font-weight: 600;
    color: #64748b;
    flex-shrink: 0;
}

.order-paid-hint {
    color: #2f6f4f;
    background: #eef8f1;
    border-radius: 6px;
    padding: 5px 10px;
    margin-top: 6px;
    display: inline-block;
}

.order-empty {
    padding: 18px 14px;
    text-align: center;
    color: #94a3b8;
    font-size: 14px;
    border: 1.5px dashed #e4e9f0;
    border-radius: 10px;
}

/* "আগের বাকি পরিশোধ" — ব্র্যান্ড/প্রোডাক্ট নির্বাচন ছাড়াই স্বাধীন বাটন */
.order-due-toggle-btn {
    margin-top: 10px;
    padding: 9px 14px;
    font-size: 13.5px;
    width: 100%;
}

.order-due-toggle-btn.is-active {
    background: #eef2fb;
    border-color: #a9bbe0;
    color: #4b6cb7;
}

.order-confirm-btn {
    margin-top: 20px;
}

.order-confirm-btn.is-loading {
    opacity: 0.75;
    cursor: progress;
}

.order-receipt-btn {
    margin-top: 0;
    width: 100%;
}

/* অর্ডার সফল — অ্যাকশন বাটন সারি */
.order-success-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}
.order-success-actions > * {
    flex: 1 1 160px;
}
.order-goshop-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    width: 100%;
}
.order-success-redirect {
    margin-top: 10px;
    text-align: center;
    font-size: 12.5px;
    font-weight: 500;
    color: #94a3b8;
}

/* মোবাইলে কনফার্ম বাটন নিচে আটকে থাকবে */
@media (max-width: 480px) {
    .order-confirm-btn {
        position: sticky;
        bottom: 10px;
        z-index: 5;
        box-shadow: 0 6px 18px rgba(30, 41, 90, 0.25);
    }
}

.order-confirm-error {
    margin-top: 16px;
    margin-bottom: 0;
}

.order-success {
    margin-top: 18px;
    padding: 18px;
    background: #e7f6ec;
    border: 1px solid #b7e3c4;
    border-radius: 12px;
}

.order-success-title {
    font-size: 17px;
    font-weight: 700;
    color: #1e7b34;
    margin-bottom: 6px;
}

.order-success-shop {
    font-size: 15px;
    font-weight: 600;
    color: #1f2430;
    margin-bottom: 12px;
}

.order-success-row {
    display: flex;
    justify-content: space-between;
    font-size: 15px;
    color: #33694a;
    padding: 4px 0;
}

.order-success-due {
    border-top: 1px solid #b7e3c4;
    margin-top: 8px;
    padding-top: 10px;
    font-weight: 600;
}

.order-success-due strong {
    font-size: 18px;
    color: #1e7b34;
}

/* ===== shop_view: সারসংক্ষেপ ও অর্ডার হিস্ট্রি ===== */
.sv-balance {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 22px;
    border-radius: 14px;
    margin-bottom: 16px;
    border: 1px solid transparent;
}

/* dashboard.php: বর্তমান বাকি — পুরো .sv-balance ক্লিকযোগ্য (তালিকা খোলা/বন্ধ করতে) */
.sv-balance-toggle {
    display: block;
    width: 100%;
    padding: 0;
    margin: 0;
    border: none;
    background: none;
    font: inherit;
    text-align: inherit;
    cursor: pointer;
}

.sv-balance-toggle .sv-balance {
    margin-bottom: 0;
    transition: box-shadow 0.15s ease;
}

.sv-balance-toggle:hover .sv-balance {
    box-shadow: 0 6px 16px rgba(20, 25, 40, 0.08);
}

.sv-balance-toggle .sv-stat-caret {
    color: currentColor;
    opacity: 0.65;
}

.sv-balance-toggle[aria-expanded="true"] .sv-stat-caret {
    transform: rotate(180deg);
    opacity: 1;
}

/* ===== স্টক/ক্যাশ লেনদেন (dashboard.php প্রিভিউ ও dsr_transactions.php) ===== */
/* তালিকার ভেতরের ছোট উপ-শিরোনাম */
.tx-sub {
    margin: 6px 0 2px;
    font-size: 12.5px;
    font-weight: 700;
    color: #64748b;
}

/* "আরও দেখুন" লিংক */
.tx-more {
    display: block;
    padding: 10px;
    text-align: center;
    background: #f7f9fc;
    border: 1px solid #e6ebf3;
    border-radius: 9px;
    color: #4b6cb7;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.tx-more:hover {
    background: #eef2fb;
    border-color: #a9bbe0;
}

/* যোগ (+) সবুজ, বিয়োগ (−) লাল */
.tx-plus {
    color: #1e7b34;
}

.tx-minus {
    color: #b3261e;
}

/* খতিয়ান পেজের স্টক/ক্যাশ ট্যাব */
.tx-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
}

.tx-tab {
    padding: 8px 18px;
    background: #f3f4f6;
    border-radius: 999px;
    color: #4b5563;
    font-size: 13.5px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
}

.tx-tab:hover {
    background: #e9eafd;
    color: #4f46e5;
}

.tx-tab.active {
    background: #4f46e5;
    color: #fff;
}

/* খতিয়ান পেজের উপরের সারাংশ */
.tx-head {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 12px;
    margin-bottom: 16px;
    padding: 14px;
    background: #f8f9fc;
    border: 1px solid #eef1f5;
    border-radius: 12px;
}

.tx-head-item {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.tx-head-caption {
    font-size: 12.5px;
    font-weight: 600;
    color: #64748b;
}

.tx-head-value {
    font-size: 19px;
    font-weight: 800;
    color: #1f2430;
}

/* খতিয়ানের সারি */
.tx-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.tx-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 12px;
    padding: 11px 14px;
    background: #fff;
    border: 1px solid #eef1f5;
    border-left-width: 4px;
    border-radius: 9px;
}

.tx-row.is-in {
    border-left-color: #7fc79a;
}

.tx-row.is-out {
    border-left-color: #e79b95;
}

.tx-row-num {
    flex-shrink: 0;
    min-width: 22px;
    font-size: 12.5px;
    font-weight: 700;
    color: #94a3b8;
}

.tx-row-body {
    flex: 1;
    min-width: 160px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.tx-row-what {
    font-size: 14px;
    font-weight: 600;
    color: #334155;
}

.tx-row-what a {
    color: inherit;
    text-decoration: none;
}

.tx-row-what a:hover {
    color: #4b6cb7;
    text-decoration: underline;
}

.tx-row-note {
    font-size: 12px;
    color: #64748b;
}

.tx-row-date {
    font-size: 11.5px;
    color: #94a3b8;
}

/* খতিয়ানের শিরোনাম সারি (প্রিন্ট বোতাম সহ) */
.tx-page-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 14px;
}

.tx-page-head h2 {
    margin: 0;
    text-align: left;
}

.tx-print-btn {
    padding: 8px 16px;
    font-size: 13.5px;
}

/* দিন অনুযায়ী ভাগের হেডার */
.tx-day {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    margin: 18px 0 8px;
    padding-bottom: 6px;
    border-bottom: 2px solid #eef1f5;
}

.tx-day-name {
    font-size: 13.5px;
    font-weight: 700;
    color: #1f2430;
}

.tx-day-sum {
    display: flex;
    gap: 12px;
    font-size: 12.5px;
    font-weight: 700;
}

/* তালিকার নিচের সারাংশ */
.tx-foot {
    margin-top: 16px;
    padding: 10px 14px;
    background: #f8f9fc;
    border-radius: 9px;
    text-align: center;
    font-size: 12.5px;
    color: #64748b;
}

/* ছোট ফোনে ব্যালেন্স আলাদা লাইনে গেলেও যেন গুছিয়ে থাকে */
@media (max-width: 520px) {
    .tx-row-bal {
        min-width: 0;
        width: 100%;
        text-align: left;
        padding-left: 34px;
    }
}

/* প্রিন্টে শুধু খতিয়ান — মেনু, বোতাম, ফিল্টার বাদ */
@media print {
    .navbar,
    .side-menu,
    .menu-overlay,
    .no-print {
        display: none !important;
    }

    body,
    .dashboard-page {
        background: #fff;
    }

    .dashboard-content {
        padding: 0;
    }

    .form-card {
        box-shadow: none;
        border: none;
        padding: 0;
        max-width: 100%;
    }

    .tx-row {
        break-inside: avoid;
        border-color: #ccc;
    }

    .tx-day {
        break-after: avoid;
    }

    .tx-plus,
    .tx-minus,
    .tx-head-value {
        color: #000 !important;
    }
}

.tx-row-amt {
    flex-shrink: 0;
    font-size: 14.5px;
    font-weight: 700;
}

.tx-row-bal {
    flex-shrink: 0;
    min-width: 108px;
    text-align: right;
    font-size: 12px;
    color: #64748b;
}

/* admin_stock_cash.php-এ নিজে যোগ করা এন্ট্রি (purchase/adjustment) মুছে ফেলার বোতাম */
.tx-del-btn {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 1px solid #f1d4d4;
    border-radius: 7px;
    background: #fff5f5;
    color: #c0392b;
    cursor: pointer;
}

.tx-del-btn:hover {
    background: #fde8e8;
}

/* admin_stock_cash.php-এর প্রোডাক্টভিত্তিক ভাঙা হিসাব */
.tx-breakdown {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px dashed #e5e9f0;
}

.tx-breakdown-title {
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: #64748b;
    margin-bottom: 6px;
}

.tx-breakdown-row {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 5px 0;
    font-size: 13px;
    color: #334155;
    border-bottom: 1px solid #f4f6f9;
}

.tx-breakdown-row:last-child {
    border-bottom: none;
}

/* admin_stock_cash.php-এর স্টক-ভ্যালুয়েশন সেকশন — গোডাউন/DSR উপ-শিরোনাম ও সর্বমোট সারি */
.tx-breakdown-subtitle {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: #94a3b8;
    margin: 10px 0 4px;
}

.tx-breakdown-subtitle:first-of-type {
    margin-top: 0;
}

.tx-breakdown-total {
    margin-top: 6px;
    padding-top: 8px;
    border-top: 1px solid #e5e9f0;
    font-weight: 700;
    color: #1e293b;
}

.tx-pager {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 16px;
}

.tx-pager-info {
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
}

/* dashboard.php — মোট দোকান, ক্লিক করলে all_shops.php এ যায় */
.profile-shops {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
    padding: 11px 14px;
    background: #f8f9fc;
    border: 1px solid #eef1f5;
    border-radius: 11px;
    color: #334155;
    text-decoration: none;
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}

.profile-shops:hover {
    background: #fff;
    border-color: #a9bbe0;
    box-shadow: 0 3px 10px rgba(20, 25, 40, .06);
}

.profile-shops-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    flex-shrink: 0;
    background: #eef2fb;
    color: #4b6cb7;
    border-radius: 9px;
}

.profile-shops-text {
    flex: 1;
    min-width: 0;
    font-size: 13.5px;
    font-weight: 600;
}

.profile-shops-num {
    flex-shrink: 0;
    padding: 3px 11px;
    background: #eef2fb;
    color: #4b6cb7;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 800;
}

.profile-shops-arrow {
    flex-shrink: 0;
    color: #94a3b8;
    transition: transform .15s ease;
}

.profile-shops:hover .profile-shops-arrow {
    transform: translateX(3px);
    color: #4b6cb7;
}

/* dashboard.php — আজকের তারিখ (নিচের হিসাবগুলো কোন দিনের তা বোঝাতে) */
.profile-today {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 14px;
    padding: 7px 14px;
    background: #eef2fb;
    border-radius: 999px;
    color: #4b6cb7;
    font-size: 13.5px;
    font-weight: 600;
}

/* ক্লিকযোগ্য হিসাব-সারি (ভেতরে প্রোডাক্টভিত্তিক তালিকা খোলে) */
.sv-row-btn {
    width: 100%;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.sv-row-btn:hover {
    border-color: #c3cfe2;
    background: #fbfcfe;
}

.sv-row-caret {
    flex-shrink: 0;
    display: flex;
    color: #94a3b8;
    transition: transform 0.2s ease, color 0.2s ease;
}

.sv-row-btn[aria-expanded="true"] .sv-row-caret {
    transform: rotate(180deg);
    color: #4b6cb7;
}

/* সারির ভেতরের প্রোডাক্ট তালিকা */
.tx-subitems {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin: -2px 0 4px;
    padding: 8px 10px 8px 26px;
    background: #f8f9fc;
    border: 1px dashed #dbe3ee;
    border-radius: 9px;
    animation: loc-slide-in 0.18s ease;
}

.tx-subitem {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
}

.tx-subitem-num {
    flex-shrink: 0;
    min-width: 18px;
    font-weight: 700;
    color: #94a3b8;
    font-size: 12px;
}

.tx-subitem-name {
    flex: 1;
    min-width: 0;
    color: #334155;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tx-subitem-qty {
    flex-shrink: 0;
    font-weight: 700;
}

.tx-subitem-empty {
    color: #94a3b8;
    font-style: italic;
}

.tx-subgroup-label {
    margin: 4px 0 1px;
    padding-top: 5px;
    border-top: 1px dashed #dbe3ee;
    font-size: 11px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: .03em;
}

/* ক্যাশ ভাঙা হিসাবের শেষ সারি (হাতে আছে) */
.sv-stat-detail-total {
    background: #f8f9fc;
    border-color: #dbe3ee;
    font-weight: 700;
}

/* ===== admin_rsr.php — DSR-এর স্টক ও ক্যাশ খাতা ===== */
.dsr-ledger {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 14px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #eef1f5;
}

.dsr-ledger-panel {
    padding: 14px;
    background: #f8f9fc;
    border: 1px solid #eef1f5;
    border-radius: 12px;
}

.dsr-ledger-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.dsr-ledger-title {
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
}

.dsr-ledger-value {
    font-size: 20px;
    font-weight: 800;
    color: #1f2430;
}

.dsr-ledger-form {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.dsr-ledger-form .loc-input {
    padding: 9px 11px;
    font-size: 14px;
}

.dsr-ledger-form .dsr-issue-qty,
.dsr-ledger-form .dsr-cash-amount {
    max-width: 140px;
}

.dsr-ledger-form .loc-btn {
    padding: 9px 16px;
    font-size: 14px;
}

.dsr-ledger-histbtn {
    margin-top: 10px;
    padding: 0;
    background: none;
    border: none;
    color: #4b6cb7;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
}

.dsr-ledger-histbtn:hover {
    text-decoration: underline;
}

.dsr-ledger-list {
    margin-top: 10px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 260px;
    overflow-y: auto;
}

.dsr-ledger-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    background: #fff;
    border: 1px solid #eef1f5;
    border-radius: 8px;
    font-size: 13px;
}

.dsr-ledger-row-name {
    flex: 1;
    min-width: 0;
    font-weight: 600;
    color: #334155;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dsr-ledger-row-qty {
    flex-shrink: 0;
    color: #1e7b34;
    font-weight: 600;
}

.dsr-ledger-row-date {
    flex-shrink: 0;
    color: #94a3b8;
    font-size: 11.5px;
}

.dsr-ledger-empty {
    padding: 12px;
    text-align: center;
    color: #94a3b8;
    font-size: 12.5px;
    border: 1.5px dashed #e4e9f0;
    border-radius: 8px;
}

.dsr-ledger-msg {
    grid-column: 1 / -1;
    padding: 10px 14px;
    border-radius: 9px;
    font-size: 13.5px;
    font-weight: 500;
}

.dsr-ledger-msg.is-ok {
    background: #e7f6ec;
    color: #1e7b34;
}

.dsr-ledger-msg.is-error {
    background: #fdecea;
    color: #b3261e;
}

/* তালিকায় ক্রম নম্বর (১, ২, ৩...) */
.sv-stat-detail-num {
    flex-shrink: 0;
    font-size: 12.5px;
    font-weight: 700;
    color: #94a3b8;
    min-width: 18px;
}

.sv-balance-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.55);
    flex-shrink: 0;
}

.sv-balance-text {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.sv-balance-caption {
    font-size: 14px;
    font-weight: 600;
    opacity: 0.85;
}

.sv-balance-value {
    font-size: 34px;
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.5px;
}

.sv-balance.sv-due {
    background: linear-gradient(135deg, #fff6e9 0%, #ffe9c9 100%);
    border-color: #ffdca8;
    color: #b26a00;
}

.sv-balance.sv-adv {
    background: linear-gradient(135deg, #ecf9f0 0%, #d3f0dc 100%);
    border-color: #b7e3c4;
    color: #1e7b34;
}

.sv-balance.sv-zero {
    background: linear-gradient(135deg, #f5f7fa 0%, #e9edf3 100%);
    border-color: #e2e8f0;
    color: #64748b;
}

/* ইউনিয়নে অবস্থান */
.sv-position {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    border-radius: 14px;
    background: linear-gradient(135deg, #eef2ff 0%, #e0e7ff 100%);
    border: 1px solid #d5ddff;
}
.sv-position-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.7);
    color: #4f46e5;
    flex-shrink: 0;
}
.sv-position-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.sv-position-caption {
    font-size: 13px;
    font-weight: 600;
    color: #5b61d6;
}
.sv-position-value {
    font-size: 26px;
    font-weight: 800;
    color: #312e81;
    line-height: 1.1;
}
.sv-position-value small {
    font-size: 13px;
    font-weight: 600;
    color: #6b70c9;
}

/* সময়ভিত্তিক হিসাব */
.sv-period-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 14px;
}
.sv-period-head h2 {
    margin: 0;
    text-align: left;
}
.sv-period-controls {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin: 2px 0 14px;
}
.oh-controls {
    margin: 2px 0 14px;
}

/* ⚙️ সেটিং/ক্লোজ আইকন */
.sv-ctrl-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
}
.sv-gear {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: #f3f4f6;
    border: 1px solid #e5e7eb;
    color: #4b5563;
    cursor: pointer;
    flex-shrink: 0;
    padding: 0;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.sv-gear:hover {
    background: #e9eafd;
    color: #4f46e5;
}
.sv-gear.is-open {
    background: #4f46e5;
    border-color: #4f46e5;
    color: #fff;
}
.sv-gear .ic-close {
    display: none;
}
.sv-gear.is-open .ic-gear {
    display: none;
}
.sv-gear.is-open .ic-close {
    display: inline;
}
.sv-range-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: #f3f4f6;
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 6px 14px;
    cursor: pointer;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    color: #4b5563;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.sv-range-btn:hover {
    background: #e9eafd;
    color: #4f46e5;
}
.sv-range-btn.active {
    background: #4f46e5;
    color: #fff;
    border-color: #4f46e5;
}
.sv-period-custom-fields {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 12px;
    padding: 14px;
    margin-bottom: 14px;
    background: #f8f9fc;
    border: 1px solid #eef1f5;
    border-radius: 12px;
}
.sv-period-custom-fields label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 12.5px;
    font-weight: 600;
    color: #6b7280;
}
.sv-period-custom-fields input[type="date"] {
    font-family: inherit;
    font-size: 14px;
    padding: 8px 10px;
    border: 1px solid #d7dbe3;
    border-radius: 8px;
    background: #fff;
}
.btn-mini {
    background: #4f46e5;
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 9px 18px;
    cursor: pointer;
    font-family: inherit;
    font-size: 13.5px;
    font-weight: 700;
}
.btn-mini:hover {
    background: #4338ca;
}
.sv-period-range {
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
    margin-bottom: 12px;
    padding: 5px 12px;
    background: #f3f4f6;
    border-radius: 8px;
    display: inline-block;
}
#periodStats.is-loading {
    opacity: 0.45;
    pointer-events: none;
    transition: opacity .15s ease;
}

.oh-filters {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.oh-filters .loc-input {
    padding: 9px 11px;
    font-size: 14px;
    width: auto;
}

#ohShopInput {
    min-width: 200px;
    flex: 1;
}

#ohResultsBox.is-loading {
    opacity: 0.45;
    pointer-events: none;
    transition: opacity .15s ease;
}

.sv-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px;
}

.sv-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 16px 10px;
    background: #fff;
    border: 1px solid #eef1f5;
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(20, 25, 40, 0.04);
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.sv-stat:hover {
    box-shadow: 0 6px 16px rgba(20, 25, 40, 0.08);
    transform: translateY(-2px);
}

.sv-stat-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin-bottom: 4px;
    border-radius: 11px;
    background: #eef2fb;
    color: #4b6cb7;
}

.sv-stat-value-loading {
    opacity: .35;
    transition: opacity .15s ease;
}

.sv-stat-value {
    font-size: 20px;
    font-weight: 800;
    color: #1f2430;
}

.sv-stat-value-short {
    font-size: 12px;
    font-weight: 700;
    color: #b3261e;
}

.sv-stat-label {
    font-size: 12px;
    color: #64748b;
    text-align: center;
}

/* ক্লিকযোগ্য stat বাটন (dashboard.php — আজকের বিক্রি/রিসিভ, ক্লিকে তালিকা খোলে) */
.sv-stat-clickable {
    position: relative;
    width: 100%;
    font-family: inherit;
    cursor: pointer;
}

.sv-stat-clickable:focus-visible {
    outline: 2px solid #4b6cb7;
    outline-offset: 2px;
}

.sv-stat-caret {
    position: absolute;
    top: 10px;
    right: 10px;
    display: flex;
    color: #94a3b8;
    transition: transform 0.2s ease, color 0.2s ease;
}

.sv-stat-clickable[aria-expanded="true"] .sv-stat-caret {
    transform: rotate(180deg);
    color: #4b6cb7;
}

.sv-stat-detail {
    margin-top: 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    animation: loc-slide-in 0.18s ease;
}

.sv-stat-detail-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    row-gap: 4px;
    gap: 10px;
    padding: 10px 14px;
    background: #fff;
    border: 1px solid #eef1f5;
    border-radius: 9px;
}

.sv-stat-detail-link {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.sv-stat-detail-link:hover {
    border-color: #a9bbe0;
    box-shadow: 0 2px 8px rgba(20, 25, 40, 0.06);
}

.sv-stat-detail-name {
    flex: 1;
    min-width: 0;
    font-size: 14px;
    color: #334155;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sv-stat-detail-name a {
    color: inherit;
    text-decoration: none;
}

.sv-stat-detail-name a:hover {
    color: #4b6cb7;
    text-decoration: underline;
}

.sv-stat-detail-qty {
    flex-shrink: 0;
    font-size: 13px;
    color: #64748b;
}

.sv-stat-detail-amt {
    flex-shrink: 0;
    font-size: 14px;
    font-weight: 700;
    color: #1e7b34;
}

.sv-stat-detail-empty {
    padding: 14px;
    text-align: center;
    color: #94a3b8;
    font-size: 13px;
    border: 1.5px dashed #e4e9f0;
    border-radius: 10px;
}

.sv-order-count {
    flex-shrink: 0;
    font-size: 13px;
    font-weight: 600;
    color: #4b6cb7;
    background: #eef2fb;
    padding: 4px 12px;
    border-radius: 999px;
}

#orderHistoryBody.is-loading {
    opacity: 0.5;
    pointer-events: none;
    transition: opacity 0.1s ease;
}

#txListBox.is-loading {
    opacity: 0.5;
    pointer-events: none;
    transition: opacity 0.1s ease;
}

/* খতিয়ান পেজের সারাংশ — dashboard.php-এর sv-summary/sv-stat টাইলই পুনর্ব্যবহার */
.tx-summary {
    margin-bottom: 16px;
}

/* পেজিনেশন */
.sv-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 18px;
}

.sv-page-btn {
    min-width: 38px;
    padding: 8px 12px;
    border: 1.5px solid #d8dee9;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    font-family: inherit;
    color: #475569;
    text-decoration: none;
    text-align: center;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.sv-page-btn:disabled {
    opacity: 0.45;
    cursor: default;
}

.sv-page-btn:hover {
    border-color: #b7c2e0;
}

.sv-page-btn.active {
    background: #4b6cb7;
    border-color: #4b6cb7;
    color: #fff;
}

.sv-page-gap {
    color: #94a3b8;
    padding: 0 2px;
}

.sv-order-serial {
    flex-shrink: 0;
    font-size: 13px;
    font-weight: 700;
    color: #4b6cb7;
}

.sv-order-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.sv-order {
    display: block;
    text-decoration: none;
    color: inherit;
    border: 1px solid #eef1f5;
    border-left: 4px solid #cbd5e1;
    border-radius: 11px;
    overflow: hidden;
    transition: box-shadow 0.15s ease, transform 0.12s ease;
}

.sv-order:hover {
    box-shadow: 0 5px 16px rgba(20, 25, 40, 0.09);
    transform: translateY(-1px);
}

.sv-order-brief {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 14px;
    border-top: 1px dashed #eef1f5;
}

.sv-brief-main {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 14px;
    min-width: 0;
    font-size: 14px;
    color: #475569;
}

.sv-brief-count {
    font-weight: 600;
    color: #1f2430;
}

.sv-brief-total strong {
    color: #1f2430;
}

.sv-brief-paid strong {
    color: #1e9e4a;
}

.sv-brief-side {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.sv-chip {
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 12.5px;
    font-weight: 600;
    white-space: nowrap;
}

.sv-chip-due {
    background: #fff4e5;
    color: #b26a00;
}

.sv-chip-paid {
    background: #e7f6ec;
    color: #1e7b34;
}

.sv-order-arrow {
    color: #b6bdca;
    flex-shrink: 0;
}

.sv-order:hover .sv-order-arrow {
    color: #4b6cb7;
}

/* ===== order_view (বিবরণ) ===== */
.ov-meta,
.ov-calc {
    display: flex;
    flex-direction: column;
}

.ov-meta-row,
.ov-calc-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 0;
    border-bottom: 1px solid #f1f4f8;
    font-size: 15px;
}

.ov-meta-row:last-child,
.ov-calc-row:last-child {
    border-bottom: none;
}

.ov-meta-row span,
.ov-calc-row span {
    color: #64748b;
}

.ov-meta-row strong,
.ov-calc-row strong {
    color: #1f2430;
    text-align: right;
}

.ov-meta-row a {
    color: #4b6cb7;
    text-decoration: none;
    font-weight: 600;
}

.ov-calc-due strong {
    color: #b26a00;
}

.ov-calc-prev {
    color: #1e7b34;
}

.ov-calc-prev strong {
    color: #1e7b34;
}

.ov-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.ov-table th,
.ov-table td {
    padding: 10px 8px;
    border-bottom: 1px solid #eef1f5;
    text-align: left;
    white-space: nowrap;
}

.ov-table th {
    color: #64748b;
    font-weight: 600;
    background: #f7f9fc;
}

.ov-table .c { text-align: center; }
.ov-table .r { text-align: right; }

.ov-balance-box {
    margin-top: 16px;
    padding: 14px 16px;
    background: #f7f9fc;
    border: 1px solid #eef1f5;
    border-radius: 11px;
}

.ov-bal-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 6px 0;
    font-size: 14px;
    color: #475569;
}

.ov-bal-after {
    border-top: 1px dashed #dbe3ee;
    margin-top: 4px;
    padding-top: 10px;
    font-weight: 600;
}

.ov-bal {
    padding: 3px 12px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}

.ov-bal-due { background: #fff4e5; color: #b26a00; }
.ov-bal-adv { background: #e7f6ec; color: #1e7b34; }
.ov-bal-zero { background: #eef1f5; color: #64748b; }

.sv-order.is-due {
    border-left-color: #f0a500;
}

.sv-order.is-paid {
    border-left-color: #1e7b34;
}

.sv-order-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 14px;
    background: #f7f9fc;
    border-bottom: 1px solid #eef1f5;
}

.sv-order-date {
    flex: 1;
    min-width: 0;
    font-size: 13px;
    font-weight: 600;
    color: #334155;
}

.sv-order-no {
    font-size: 12px;
    font-weight: 600;
    color: #4b6cb7;
    background: #eef2fb;
    padding: 2px 9px;
    border-radius: 999px;
}

.sv-order-items {
    padding: 8px 14px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.sv-oi {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    font-size: 14px;
    color: #334155;
    padding: 3px 0;
}

.sv-oi-qty {
    color: #64748b;
    font-weight: 600;
}

.sv-oi-disc {
    font-size: 11px;
    color: #1e7b34;
    background: #e7f6ec;
    padding: 1px 7px;
    border-radius: 999px;
    margin-left: 4px;
}

.sv-oi-total {
    font-weight: 600;
    color: #1f2430;
    white-space: nowrap;
}

.sv-order-foot {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    padding: 10px 14px;
    border-top: 1px dashed #eef1f5;
}

.sv-order-foot span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 11px;
    background: #f7f9fc;
    border: 1px solid #eef1f5;
    border-radius: 999px;
    font-size: 12.5px;
    color: #64748b;
}

.sv-order-foot strong {
    color: #1f2430;
    font-weight: 700;
}

.sv-order-foot .sv-foot-due {
    background: #fff4e5;
    border-color: #ffe0b2;
    color: #92620a;
}

.sv-order-foot .sv-foot-due strong {
    color: #b26a00;
}

.sv-order-foot .sv-foot-prev {
    background: #e7f6ec;
    border-color: #b7e3c4;
    color: #2f6f4f;
}

.sv-order-foot .sv-foot-prev strong {
    color: #1e7b34;
}

/* Phone */
@media (max-width: 480px) {
    body {
        padding: 12px;
    }

    .side-menu {
        width: 240px;
    }

    .shop-view-header {
        flex-wrap: wrap;
    }

    .order-shop-card {
        flex-wrap: wrap;
    }

    .order-shop-change-btn {
        margin-left: auto;
    }

    .dashboard-content {
        margin: 16px auto;
        padding: 0 12px 16px;
        gap: 16px;
    }

    .form-card {
        padding: 24px 20px;
        max-width: 100%;
        border-radius: 8px;
    }

    .form-card h2 {
        font-size: 20px;
    }

    .form-group input {
        padding: 12px;
        font-size: 16px; /* prevents iOS auto-zoom on focus */
    }

    .password-wrapper input {
        padding-right: 48px;
    }

    .btn {
        padding: 13px;
        font-size: 16px;
    }
}

/* Small phones */
@media (max-width: 340px) {
    .form-card {
        padding: 18px 14px;
    }
}

/* ==========================================================================
   admin_rsr.php — DSR তালিকা
   ========================================================================== */

/* "নতুন DSR যোগ করুন" — পেজ হেডারের প্রধান কাজ */
.rsr-add-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 18px 10px 13px;
    background: linear-gradient(180deg, #5679c4 0%, #4b6cb7 100%);
    border: 1px solid #3f5aa6;
    border-radius: 10px;
    color: #fff;
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    text-decoration: none;
    box-shadow: 0 1px 2px rgba(30, 41, 90, 0.2);
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.08s ease;
}

/* + চিহ্নটা হালকা গোল ঘরের ভেতরে — লেখা থেকে আলাদা করে বোঝা যায় */
.rsr-add-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
}

.rsr-add-btn:hover {
    background: linear-gradient(180deg, #4b6cb7 0%, #3f5aa6 100%);
    border-color: #38508f;
    box-shadow: 0 6px 16px rgba(75, 108, 183, 0.35);
}

.rsr-add-btn:active {
    transform: translateY(1px);
    box-shadow: 0 1px 2px rgba(75, 108, 183, 0.3);
}

.rsr-add-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(75, 108, 183, 0.3);
}

.rsr-search {
    position: relative;
    display: flex;
    align-items: center;
    margin-bottom: 14px;
}

.rsr-search svg {
    position: absolute;
    left: 13px;
    color: #94a3b8;
    pointer-events: none;
}

.rsr-search input {
    width: 100%;
    padding: 11px 14px 11px 38px;
    font-family: inherit;
    font-size: 14px;
    color: #1f2430;
    background: #fff;
    border: 1px solid #dbe3ee;
    border-radius: 10px;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.rsr-search input:focus {
    border-color: #4b6cb7;
    box-shadow: 0 0 0 3px rgba(75, 108, 183, 0.12);
}

.rsr-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* কার্ডটি নিজে লিংক নয় — ভেতরে ফোনের tel: লিংক আছে, তাই .rsr-row-main আলাদা লিংক */
.rsr-row {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    overflow: hidden;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.rsr-row:hover {
    border-color: #c3d0e6;
    box-shadow: 0 6px 18px rgba(31, 36, 48, 0.08);
    transform: translateY(-1px);
}

/* উপরের অংশ — ছবি, নাম, ইউনিয়ন, বাকি; পুরোটাই DSR-এর পাতায় নিয়ে যায় */
.rsr-row-main {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 18px 14px;
    text-decoration: none;
}

.rsr-row-avatar {
    width: 64px;
    height: 64px;
    flex-shrink: 0;
    border-radius: 50%;
    object-fit: cover;
    background: #e9ecf2;
    border: 3px solid #fff;
    box-shadow: 0 0 0 1px #dbe3ee, 0 2px 6px rgba(31, 36, 48, 0.06);
}

.rsr-row-id {
    display: flex;
    flex-direction: column;
    gap: 7px;
    flex: 1;
    min-width: 0;
}

.rsr-row-name {
    font-size: 17px;
    font-weight: 700;
    color: #1f2430;
    letter-spacing: -0.2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* স্থায়ী ইউনিয়ন — নামের নিচেই, পিন আইকনসহ স্পষ্টভাবে */
.rsr-row-loc {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    width: fit-content;
    max-width: 100%;
    padding: 5px 12px 5px 10px;
    background: #eef2fb;
    border: 1px solid #d8e0f3;
    border-radius: 999px;
    color: #3a55a0;
}

.rsr-row-loc svg {
    flex-shrink: 0;
}

.rsr-row-loc-name {
    font-size: 13.5px;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rsr-row-loc-cap {
    padding-left: 8px;
    border-left: 1px solid #c7d3ee;
    font-size: 11px;
    font-weight: 600;
    color: #7d8fbe;
    white-space: nowrap;
}

.rsr-row-loc.is-none {
    background: #fdecea;
    border-color: #f4cfcb;
    color: #b3261e;
}

/* খাতায় বাকি */
.rsr-row-due {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 3px;
    flex-shrink: 0;
    text-align: right;
}

.rsr-row-due-cap {
    font-size: 11.5px;
    font-weight: 600;
    color: #7c899b;
    white-space: nowrap;
}

.rsr-row-due-val {
    font-size: 19px;
    font-weight: 800;
    color: #b3261e;
    letter-spacing: -0.3px;
    white-space: nowrap;
}

.rsr-row-due-val.is-zero {
    color: #94a3b8;
}

.rsr-row-arrow {
    flex-shrink: 0;
    color: #b9c4d4;
    transition: color 0.15s ease, transform 0.15s ease;
}

.rsr-row:hover .rsr-row-arrow {
    color: #4b6cb7;
    transform: translateX(2px);
}

/* নিচের পট্টি — কল বাটন ও অস্থায়ী দায়িত্বের চিপ */
.rsr-row-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    padding: 11px 18px 13px;
    border-top: 1px solid #f1f4f9;
    background: #fbfcfe;
}

/* ফোন নাম্বার ইংরেজি অঙ্কে — all_shops.php এর কল বাটনের মতোই */
.rsr-row-call {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 14px;
    background: #fff;
    border: 1px solid #dbe3ee;
    border-radius: 999px;
    color: #3f4a5a;
    font-size: 13.5px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.3px;
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.rsr-row-call svg {
    flex-shrink: 0;
    color: #1e7b34;
}

.rsr-row-call:hover {
    background: #e7f6ec;
    border-color: #b8e0c4;
    color: #14562a;
}

.rsr-empty-search {
    padding: 22px;
    text-align: center;
    color: #94a3b8;
    font-size: 13.5px;
}

/* ---- ইউনিয়ন চিপ (তালিকা ও DSR-এর পাতা দুই জায়গায়) ---- */
.u-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

.u-chip-fixed {
    background: #eef2fb;
    color: #3a55a0;
    border: 1px solid #d8e0f3;
}

.u-chip-temp {
    background: #fff4e5;
    color: #9a5b00;
    border: 1px solid #f5ddb8;
}

.u-chip-none {
    background: #fdecea;
    color: #b3261e;
    border: 1px solid #f4cfcb;
}

/* ==========================================================================
   admin_dsr_view.php — একজন DSR-এর পূর্ণ পাতা
   ========================================================================== */

.dv-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 14px;
    color: #64748b;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    transition: color 0.15s ease;
}

.dv-back:hover {
    color: #4b6cb7;
}

/* ---- পরিচয় ---- */
/* ছবি, নাম-ফোন-ইউনিয়ন, আর ডানে Edit বাটন — তিনটাই উল্লম্বভাবে মাঝ বরাবর */
.dv-head {
    display: flex;
    align-items: center;
    gap: 18px;
    padding-bottom: 18px;
    margin-bottom: 16px;
    border-bottom: 1px solid #eef1f5;
}

.dv-avatar {
    width: 84px;
    height: 84px;
    flex-shrink: 0;
    border-radius: 50%;
    object-fit: cover;
    background: #e9ecf2;
    border: 3px solid #fff;
    box-shadow: 0 0 0 1px #dbe3ee, 0 2px 8px rgba(31, 36, 48, 0.07);
}

.dv-head-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 7px;
    flex: 1;
    min-width: 0;
}

/* <div>, তাই .form-card h2 এর কেন্দ্রীভূত লেখা এখানে লাগে না */
.dv-name {
    margin: 0;
    font-size: 22px;
    font-weight: 800;
    color: #1f2430;
    letter-spacing: -0.4px;
    line-height: 1.2;
    text-align: left;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dv-phone {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: fit-content;
    color: #64748b;
    font-size: 14px;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.3px;
    text-decoration: none;
    transition: color 0.15s ease;
}

.dv-phone:hover {
    color: #4b6cb7;
}

.dv-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 2px;
}

.dv-edit-btn {
    flex-shrink: 0;
}

/* ---- কার্ডের ভেতরের শিরোনাম সারি ---- */
/* প্রতিটি অংশ এখন নিজের form-card এ, তাই শুধু শিরোনামের সারিটুকু লাগে */
.dv-sec-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.dv-sec-head h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
    color: #1f2430;
    text-align: left;
}

.dv-sec-sum {
    flex-shrink: 0;
    font-size: 18px;
    font-weight: 800;
    color: #b3261e;
}

.dv-note {
    margin: 0 0 14px;
    padding: 11px 13px;
    background: #f8f9fc;
    border-left: 3px solid #c3d0e6;
    border-radius: 0 8px 8px 0;
    font-size: 12.5px;
    line-height: 1.75;
    color: #5b6779;
}

.dv-note strong {
    color: #1f2430;
}

.dv-note-quiet {
    margin-top: 14px;
    margin-bottom: 0;
    background: none;
    border-left: none;
    padding: 0;
    color: #94a3b8;
    font-size: 12px;
}

/* ---- স্থায়ী ইউনিয়নের সারি ---- */

.dv-duty-link {
    flex-shrink: 0;
    color: #4b6cb7;
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: none;
}

.dv-duty-link:hover {
    text-decoration: underline;
}

.dv-subhead {
    margin: 18px 0 8px;
    font-size: 12.5px;
    font-weight: 700;
    color: #7c899b;
}

/* ---- অস্থায়ী দায়িত্ব ---- */
.dv-temp-list {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.dv-temp {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 13px 15px;
    background: #fffaf2;
    border: 1px solid #f2e0c2;
    border-radius: 11px;
}

/* বাঁ কিনারায় কমলা পট্টি — তাকালেই বোঝা যায় এটি অস্থায়ী */
.dv-temp::before {
    content: '';
    align-self: stretch;
    width: 3px;
    flex-shrink: 0;
    margin: -13px 0 -13px -15px;
    border-radius: 11px 0 0 11px;
    background: #e8a33d;
}

.dv-temp-pin {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    flex-shrink: 0;
    border-radius: 50%;
    background: #fdf0dc;
    color: #b07414;
}

.dv-temp.is-past {
    background: #fbfcfe;
    border-color: #e7ecf3;
}

.dv-temp.is-past::before {
    background: #cbd5e1;
}

.dv-temp.is-past .dv-temp-pin {
    background: #eef1f5;
    color: #94a3b8;
}

.dv-temp-main {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
    min-width: 0;
}

.dv-temp-name {
    font-size: 15px;
    font-weight: 700;
    color: #1f2430;
}

.dv-temp-meta {
    font-size: 12px;
    color: #8b98ab;
}

/* "দায়িত্ব শেষ" — ঝুঁকিপূর্ণ কাজ, তাই স্বাভাবিক অবস্থায় শান্ত, হোভারে লাল */
.dv-temp-end {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    padding: 8px 14px;
    background: #fff;
    border: 1px solid #f0c8c5;
    border-radius: 999px;
    color: #b3261e;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.dv-temp-end:hover {
    background: #b3261e;
    border-color: #b3261e;
    color: #fff;
    box-shadow: 0 3px 10px rgba(179, 38, 30, 0.28);
}

.dv-temp-end:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

/* চালু কোনো দায়িত্ব নেই */
.dv-temp-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 20px;
    background: #fbfcfe;
    border: 1.5px dashed #e2e8f0;
    border-radius: 11px;
    color: #94a3b8;
    font-size: 13px;
}

.dv-temp-add {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
    margin-top: 14px;
    padding-top: 15px;
    border-top: 1px dashed #e4e9f0;
}

.dv-temp-add .loc-input {
    flex: 1;
    min-width: 190px;
    padding: 11px 12px;
    font-size: 14px;
}

.dv-temp-add .frm-btn {
    padding: 11px 18px;
    font-size: 14px;
}

/* ---- তার খাতায় বাকি ---- */
.dv-due-list {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.dv-due-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 13px;
    background: #fff;
    border: 1px solid #eef1f5;
    border-radius: 9px;
    text-decoration: none;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.dv-due-row:hover {
    background: #fbfcfe;
    border-color: #c3d0e6;
}

.dv-due-main {
    display: flex;
    flex-direction: column;
    gap: 3px;
    flex: 1;
    min-width: 0;
}

.dv-due-name {
    font-size: 14px;
    font-weight: 600;
    color: #334155;
}

.dv-due-taker {
    font-size: 11.5px;
    color: #9a5b00;
}

.dv-due-amt {
    flex-shrink: 0;
    font-size: 15px;
    font-weight: 800;
    color: #b3261e;
}

/* ---- অ্যাকাউন্টের তথ্য ---- */
.dv-info {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 10px;
}

.dv-info-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px 13px;
    background: #f8f9fc;
    border: 1px solid #eef1f5;
    border-radius: 9px;
}

.dv-info-label {
    font-size: 11.5px;
    font-weight: 600;
    color: #7c899b;
}

.dv-info-value {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13.5px;
    color: #1f2430;
}

/* ফোন/আইডির মতো সংখ্যা — অঙ্কগুলো সমান চওড়া হলে পড়তে সুবিধা */
.dv-info-num {
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.3px;
    font-weight: 600;
}

/* ==========================================================================
   স্থায়ী ইউনিয়ন বাছাই (রেজিস্ট্রেশন ও এডিট ফর্ম) — একটিই বাছা যায়
   ========================================================================== */
.union-pick {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 8px;
}

/* ---- ছোট পর্দা ---- */
@media (max-width: 560px) {
    .dv-head {
        flex-wrap: wrap;
        gap: 14px;
    }

    .dv-avatar {
        width: 64px;
        height: 64px;
    }

    .dv-name {
        font-size: 18px;
    }

    .dv-edit-btn {
        width: 100%;
        justify-content: center;
    }

    .dv-temp-add .loc-input,
    .dv-temp-add .loc-btn {
        width: 100%;
    }

    .rsr-row-main {
        gap: 12px;
        padding: 14px 14px 12px;
    }

    .rsr-row-avatar {
        width: 54px;
        height: 54px;
    }

    .rsr-row-name {
        font-size: 15.5px;
    }

    /* ছোট পর্দায় "স্থায়ী ইউনিয়ন" লেখাটা বাদ — জায়গা নামের জন্যই থাকুক */
    .rsr-row-loc-cap {
        display: none;
    }

    .rsr-row-due-val {
        font-size: 16px;
    }

    .rsr-row-foot {
        padding: 10px 14px 12px;
    }

    .rsr-row-arrow {
        display: none;
    }
}

/* ==========================================================================
   ফর্ম পেজের সাধারণ গঠন (admin_dsr_register.php, admin_dsr_edit.php)
   ========================================================================== */

/* এক এক ভাগে ভাগ করা ফর্ম — পরিচয় / দায়িত্ব / লগইন */
.frm-sec {
    padding: 16px 18px 6px;
    margin-bottom: 16px;
    background: #fbfcfe;
    border: 1px solid #e7ecf3;
    border-radius: 12px;
}

.frm-sec-title {
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid #eef1f5;
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.3px;
    color: #7c899b;
}

/* ছবি বাছাই — গোল প্রিভিউ পাশে */
.frm-photo {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 18px;
}

.frm-photo-preview {
    width: 76px;
    height: 76px;
    flex-shrink: 0;
    border-radius: 50%;
    object-fit: cover;
    background: #e9ecf2;
    border: 3px solid #fff;
    box-shadow: 0 0 0 1px #dbe3ee, 0 2px 6px rgba(31, 36, 48, 0.06);
}

.frm-photo-side {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    min-width: 0;
}

/* ফোন/আইডির মতো ঘর — অঙ্ক সমান চওড়া */
.frm-input-num {
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.5px;
}

/* বাছাই করার মতো ফাঁকা ইউনিয়ন নেই */
.union-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 22px 20px;
    text-align: center;
    background: #fff;
    border: 1.5px dashed #dbe3ee;
    border-radius: 12px;
}

.union-empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #eef2fb;
    color: #6b83c4;
}

.union-empty-text {
    max-width: 460px;
    margin: 0;
    font-size: 13px;
    line-height: 1.8;
    color: #64748b;
}

/* ---- ফর্মের বাটন ---- */
.frm-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid #eef1f5;
}

.frm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 22px;
    border: 1px solid transparent;
    border-radius: 10px;
    font-family: inherit;
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, transform 0.08s ease;
}

.frm-btn svg {
    flex-shrink: 0;
}

.frm-btn:active {
    transform: translateY(1px);
}

.frm-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(75, 108, 183, 0.3);
}

.frm-btn-primary {
    background: linear-gradient(180deg, #5679c4 0%, #4b6cb7 100%);
    border-color: #3f5aa6;
    color: #fff;
    box-shadow: 0 1px 2px rgba(30, 41, 90, 0.2);
}

.frm-btn-primary:hover {
    background: linear-gradient(180deg, #4b6cb7 0%, #3f5aa6 100%);
    border-color: #38508f;
    box-shadow: 0 6px 16px rgba(75, 108, 183, 0.35);
}

.frm-btn-ghost {
    background: #fff;
    border-color: #dce1ea;
    color: #64748b;
}

.frm-btn-ghost:hover {
    background: #f4f6fa;
    border-color: #c3cbd9;
    color: #3f4a5a;
}

.frm-btn-outline {
    background: #fff;
    border-color: #4b6cb7;
    color: #4b6cb7;
}

.frm-btn-outline:hover {
    background: #4b6cb7;
    color: #fff;
    box-shadow: 0 5px 14px rgba(75, 108, 183, 0.3);
}

@media (max-width: 560px) {
    .frm-sec {
        padding: 14px 13px 4px;
    }

    .frm-photo {
        gap: 13px;
    }

    .frm-photo-preview {
        width: 62px;
        height: 62px;
    }

    .frm-actions .frm-btn {
        flex: 1;
    }
}

/* DSR-এর নাম সবখানে ক্যাপিটাল লেটারে দেখাতে — শুধু দেখানোর সময় (ডাটাবেজের ডেটা অপরিবর্তিত) */
.dsr-name {
    text-transform: capitalize;
}

/* টেক্সট সাইজ (Normal/Medium/Big) নির্বাচক — সাইড-মেনুতে */
.font-size-picker {
    margin-top: 10px;
    padding: 12px 14px 4px;
    border-top: 1px solid #eee;
}

.font-size-picker-label {
    display: block;
    margin-bottom: 8px;
    font-size: 12.5px;
    font-weight: 600;
    color: #888;
}

.font-size-options {
    display: flex;
    gap: 6px;
}

.font-size-opt {
    flex: 1;
    padding: 8px 6px;
    background: #f2f4f7;
    border: 1.5px solid transparent;
    border-radius: 8px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    color: #555;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.font-size-opt:hover {
    background: #e9ecf2;
}

.font-size-opt.active {
    background: #eef2fb;
    border-color: #4b6cb7;
    color: #4b6cb7;
}

/* ==========================================================================
   admin_programs.php — ব্র্যান্ড প্রোগ্রাম (X দিনে X প্যাকেট → X ফ্রি)
   ========================================================================== */

/* ইনপুট একটার নিচে একটা — একই সারিতে গাদাগাদি করলে ছোট পর্দায় লেখা কেটে যাচ্ছিল */
.prog-add-form {
    flex-direction: column;
    align-items: stretch;
}

.prog-add-form .loc-input {
    width: 100%;
}

.prog-add-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.prog-add-actions .loc-btn-primary {
    flex: 1;
}

.prog-summary-badge {
    flex-shrink: 0;
    padding: 4px 10px;
    border-radius: 999px;
    background: #eef2fb;
    color: #3a55a0;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

/* ব্র্যান্ডের নামের পাশে কোন প্রোডাক্টে (বা পুরো ব্র্যান্ডে) প্রোগ্রামটি চলছে তা দেখায় */
.prog-scope-badge {
    flex-shrink: 0;
    padding: 4px 10px;
    border-radius: 999px;
    background: #f4edff;
    color: #7c3aed;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.prog-status-badge {
    flex-shrink: 0;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

.prog-status-running {
    background: #eef2fb;
    color: #3a55a0;
    border: 1px solid #d8e0f3;
}

.prog-status-completed {
    background: #fff4e5;
    color: #9a5b00;
    border: 1px solid #f5ddb8;
}

.prog-status-expired {
    background: #fdecea;
    color: #b3261e;
    border: 1px solid #f4cfcb;
}

.prog-status-done {
    background: #ecf9f0;
    color: #1e7b34;
    border: 1px solid #b7e3c4;
}

.prog-shop-row {
    flex-wrap: wrap;
}

.prog-edit-wrap {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.prog-edit-wrap .loc-input {
    flex: 1 1 120px;
}

/* ---- ট্যাব বার: "প্রোগ্রাম তৈরি" ↔ "যোগ হওয়া শপ" ---- */
.prog-tabs {
    display: flex;
    gap: 4px;
    margin: 18px 0 4px;
    border-bottom: 1.5px solid #eef1f5;
}

.prog-tab {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 11px 16px;
    margin-bottom: -1.5px;
    background: none;
    border: none;
    border-bottom: 2.5px solid transparent;
    font-family: inherit;
    font-size: 14.5px;
    font-weight: 600;
    color: #7c8598;
    cursor: pointer;
    transition: color .15s ease, border-color .15s ease;
}

.prog-tab:hover {
    color: #4b6cb7;
}

.prog-tab.is-active {
    color: #4b6cb7;
    border-bottom-color: #4b6cb7;
}

.prog-tab-count {
    padding: 2px 8px;
    background: #eef2fb;
    color: #4b6cb7;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 700;
}

.prog-pane {
    padding-top: 18px;
}

/* ---- যোগ হওয়া শপ ট্যাবের সারাংশ ট্যাইল ---- */
.prog-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 10px;
    margin-bottom: 16px;
}

.prog-stat-tile {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 12px 14px;
    background: #fff;
    border: 1px solid #eef1f5;
    border-left: 4px solid #cbd5e1;
    border-radius: 11px;
}

.prog-stat-num {
    font-size: 20px;
    font-weight: 700;
    color: #1f2430;
}

.prog-stat-label {
    font-size: 12px;
    color: #7c8598;
}

.prog-stat-running { border-left-color: #4b6cb7; }
.prog-stat-completed { border-left-color: #d99a2b; }
.prog-stat-done { border-left-color: #2f9e5c; }
.prog-stat-expired { border-left-color: #d1554b; }

/* ---- ছাঁকনি টুলবার: এখানে ৩টি ড্রপডাউন (ইউনিয়ন, স্ট্যাটাস, সাজানো) ---- */
.shops-toolbar.prog-toolbar {
    grid-template-columns: 1fr 1fr 1fr;
}

@media (max-width: 700px) {
    .shops-toolbar.prog-toolbar {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 460px) {
    .shops-toolbar.prog-toolbar {
        grid-template-columns: 1fr;
    }
}

/* ---- যোগ হওয়া শপের কার্ড — shop-card-rich এর উপর প্রগ্রেস অংশ যোগ ---- */
.prog-joined-brand {
    color: #7c3aed;
}

.prog-joined-brand svg {
    flex-shrink: 0;
    color: #a78bfa;
}

.prog-joined-progress {
    padding: 0 14px 12px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.prog-progress-track {
    height: 7px;
    background: #eef1f5;
    border-radius: 999px;
    overflow: hidden;
}

.prog-progress-bar {
    height: 100%;
    border-radius: 999px;
    background: #4b6cb7;
    transition: width .2s ease;
}

.prog-progress-bar.prog-status-completed { background: #d99a2b; }
.prog-progress-bar.prog-status-done { background: #2f9e5c; }
.prog-progress-bar.prog-status-expired { background: #d1554b; }

.prog-progress-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    font-size: 12px;
    color: #64748b;
}

.prog-days-left {
    flex-shrink: 0;
    padding: 2px 8px;
    background: #f7f9fc;
    border-radius: 999px;
    font-weight: 600;
    color: #4b6cb7;
    white-space: nowrap;
}

.prog-act-reward,
.prog-act-remove {
    border: none;
    background: none;
    cursor: pointer;
    font-family: inherit;
}

.prog-act-reward {
    color: #d99a2b;
}

.prog-act-reward:hover {
    background: #fff4e5;
}

.prog-act-remove:hover {
    background: #fdecea;
    color: #b3261e;
}

/* ==========================================================================
   shop_view.php — শপ প্রোফাইলে প্রোগ্রামের ব্যানার
   ========================================================================== */

.sv-programs {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.sv-program-banner {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    border-radius: 14px;
}

.sv-program-icon {
    font-size: 26px;
    flex-shrink: 0;
}

.sv-program-text {
    font-size: 14px;
    color: inherit;
    line-height: 1.5;
}

.sv-program-running {
    background: linear-gradient(135deg, #eef2ff 0%, #e0e7ff 100%);
    border: 1px solid #d5ddff;
    color: #3a3f8f;
}

.sv-program-completed {
    background: linear-gradient(135deg, #fff6e9 0%, #ffe9c9 100%);
    border: 1px solid #ffdca8;
    color: #b26a00;
}

/* ==========================================================================
   all_shops.php — শপ কার্ডে "+ Program" বোতাম, পপওভার ও ব্যাজ
   ========================================================================== */

.shop-act:not(:last-child) {
    border-right: 1px solid #f1f4f8;
}

.shop-act-call {
    border-right: none;
}

.shop-act-program {
    border: none;
    background: none;
    cursor: pointer;
    font-family: inherit;
    color: #7c3aed;
}

.shop-act-program:hover {
    background: #f4edff;
}

.shop-program-caret {
    flex-shrink: 0;
    margin-left: -2px;
    transition: transform .18s ease;
}

.shop-act-program.is-open .shop-program-caret {
    transform: rotate(180deg);
}

/* "+ Program" ক্লিক করলে কার্ডের ভেতরেই খুলে যায় (কার্ড লম্বা হয়ে যায়) —
   আগে ভাসমান পপওভার ছিল, কিন্তু .shop-card-rich এর overflow:hidden তা কেটে ফেলত। */
.shop-program-panel {
    border-top: 1px solid #f1f4f8;
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 3px;
    background: #fbfbfe;
    animation: loc-slide-in 0.15s ease;
}

.shop-program-option {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    width: 100%;
    padding: 9px 11px;
    background: #fff;
    border: 1px solid #eef1f5;
    border-radius: 8px;
    font-family: inherit;
    text-align: left;
    cursor: pointer;
    transition: background .12s ease, border-color .12s ease;
}

.shop-program-option:hover {
    background: #f5f8fc;
    border-color: #d8cffa;
}

.shop-program-option strong {
    font-size: 13.5px;
    color: #334155;
}

.shop-program-option small {
    font-size: 11.5px;
    color: #94a3b8;
}

.shop-program-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.shop-program-chip {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 3px 9px;
    border-radius: 999px;
    background: #f4edff;
    color: #7c3aed;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}

/* ==========================================================================
   order_return.php / order_view.php / order_history_list — প্রোডাক্ট রিটার্ন
   ========================================================================== */

/* অর্ডার হিস্ট্রিতে রিটার্ন সারি — সাধারণ বাকি/পরিশোধ থেকে আলাদা রঙে, যাতে গুলিয়ে না যায় */
.sv-order.is-return {
    border-left-color: #7c3aed;
}

/* order_view.php-এ "রিটার্ন করুন" বাটন ও "এই অর্ডার থেকে ফেরত হয়েছে" নোট */
.ov-return-btn {
    display: inline-flex;
    margin-top: 14px;
}

.ov-return-note {
    margin-top: 14px;
    padding: 11px 14px;
    background: #f4edff;
    border: 1px solid #e4d4fb;
    border-radius: 10px;
    font-size: 13.5px;
    color: #5b3aa0;
}

.ov-return-note a {
    color: #7c3aed;
    font-weight: 600;
    text-decoration: none;
}

/* ---- order_return.php ফর্ম ---- */
.ret-table .ret-qty-input {
    width: 84px;
    text-align: center;
    padding: 8px 6px;
}

.ret-line-value {
    font-weight: 600;
    color: #1f2430;
}

.ret-summary {
    margin-top: 14px;
    padding: 12px 14px;
    background: #f7f9fc;
    border: 1px solid #eef1f5;
    border-radius: 11px;
}

.ret-summary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    font-size: 15px;
}

.ret-summary-row strong {
    color: #7c3aed;
    font-size: 17px;
}

.ret-reason-row {
    margin-top: 14px;
}

.ret-refund-block {
    margin-top: 14px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ret-refund-label {
    font-size: 14px;
    font-weight: 600;
    color: #334155;
}

.ret-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 18px;
}
