.wm-app{--p:#1d4ed8;--p2:#2563eb;--ok:#16a34a;--okb:#22c55e;--bad:#dc2626;--warn:#d97706;
 --bg:#f3f4f6;--line:#e5e7eb;--txt:#111827;--mut:#6b7280;
 direction:rtl;text-align:right;color:var(--txt);background:var(--bg);
 font-family:Vazirmatn,Vazir,Tahoma,sans-serif;padding:24px 16px;max-width:1180px;margin:0 auto;border-radius:20px}
.wm-app *,.wm-app *::before,.wm-app *::after{box-sizing:border-box}
.wm-app h1,.wm-app h2,.wm-app h3{margin:0 0 8px;font-weight:800}
.wm-muted{color:var(--mut);font-size:13px}
.wm-loading{text-align:center;padding:60px;color:var(--mut)}

/* --- کارت‌ها --- */
.wm-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 1px 3px rgba(16,24,40,.06)}
.wm-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:16px 0}
.wm-grid-2{display:grid;grid-template-columns:1fr 1.2fr;gap:14px;margin:16px 0}
.wm-card h2{font-size:16px}
.wm-sub{font-size:12px;color:var(--mut);margin:2px 0 12px}

/* --- شمارنده --- */
.wm-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;
 padding:0 7px;border-radius:14px;background:var(--p);color:#fff;font-size:12px;font-weight:800;vertical-align:middle}

/* --- آمار --- */
.wm-stat{display:flex;flex-direction:column;justify-content:center;min-height:96px}
.wm-stat .v{font-size:24px;font-weight:800;letter-spacing:-.5px}
.wm-stat .l{font-size:12px;color:var(--mut);margin-top:6px;display:flex;align-items:center;gap:5px}
.wm-stat.hl{background:linear-gradient(135deg,#22c55e,#16a34a);border:none;color:#fff}
.wm-stat.hl .l{color:#eaffef}
.wm-stat .v.blue{color:var(--p)} .wm-stat .v.red{color:var(--bad)}

/* --- نوار پیشرفت --- */
.wm-prog{height:8px;background:#e5e7eb;border-radius:6px;overflow:hidden}
.wm-prog i{display:block;height:100%;background:linear-gradient(90deg,#22c55e,#16a34a);border-radius:6px;transition:width .3s}

/* --- قوانین --- */
.wm-rules{display:flex;flex-direction:column;gap:2px}
.wm-rule{display:flex;align-items:center;gap:10px;padding:10px 6px;border-bottom:1px dashed var(--line);font-size:13.5px}
.wm-rule:last-child{border-bottom:none}

/* --- اعلان‌ها --- */
.wm-notifs{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.wm-notif{display:flex;gap:10px;align-items:flex-start;background:#f9fafb;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.wm-notif .ic{width:36px;height:36px;border-radius:10px;background:#eff6ff;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.wm-notif .bd{flex:1;min-width:0}
.wm-notif .bd .d{font-size:13px;font-weight:700;word-break:break-word}
.wm-notif .bd .m{font-size:11.5px;color:var(--mut);margin-top:3px}
.wm-notif .am{flex-shrink:0;padding-top:2px}

/* --- آخرین امتیاز فاکتور --- */
.wm-lastinv{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;padding:12px 14px;margin-bottom:10px}
.wm-lastinv .t{font-size:12px;color:#15803d}
.wm-lastinv .amt{font-size:21px;font-weight:800;color:#15803d;margin:3px 0}
.wm-lastinv .w{font-size:11.5px;color:#4b5563}

/* --- صفحه‌بندی --- */
.wm-pager{direction:ltr;display:flex;gap:6px;justify-content:center;align-items:center;margin-top:14px;flex-wrap:wrap}
.wm-pg{min-width:38px;height:38px;border:1.5px solid var(--line);background:#fff;border-radius:10px;
 font-family:inherit;font-size:13.5px;font-weight:700;cursor:pointer;color:#374151;padding:0 10px;transition:.15s}
.wm-pg:hover:not(:disabled){border-color:var(--p);color:var(--p)}
.wm-pg.on{background:var(--p)!important;color:#fff!important;border-color:var(--p)!important}
.wm-pg:disabled{opacity:.35;cursor:not-allowed}
.wm-dots{color:var(--mut);padding:0 2px}
.wm-pginfo{text-align:center;font-size:11.5px;color:var(--mut);margin-top:8px}

/* --- دکمه‌ها (داخل اپ) --- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;
 border-radius:10px;padding:11px 16px;font-family:inherit;font-size:14px;font-weight:700;transition:.15s;text-decoration:none}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-block{width:100%}
.btn-primary{background:linear-gradient(135deg,var(--p),var(--p2));color:#fff}
.btn-success{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}
.btn-outline{background:#fff;border:1.5px solid var(--line);color:var(--txt)}
.btn-sm{padding:6px 12px;font-size:12.5px;border-radius:8px}

/* --- بج --- */
.wm-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12.5px;font-weight:700}
.wm-b-g{background:#dcfce7;color:#15803d}.wm-b-r{background:#fee2e2;color:#b91c1c}
.wm-b-y{background:#fef3c7;color:#b45309}.wm-b-i{background:#dbeafe;color:#1d4ed8}

/* --- جدول --- */
.wm-table{width:100%;border-collapse:collapse;font-size:13.5px}
.wm-table th{background:#f9fafb;color:var(--mut);font-weight:600;font-size:12.5px;padding:11px 12px;text-align:right;border-bottom:1px solid var(--line)}
.wm-table td{padding:12px;border-bottom:1px solid #f3f4f6;vertical-align:top}
.wm-table tbody tr:nth-child(even){background:#fafafa}
.wm-table tbody tr:hover{background:#f0f6ff}

/* --- تب --- */
.wm-tabs{display:flex;gap:8px;margin:10px 0}
.wm-tab{border:1px solid var(--line);background:#fff;border-radius:20px;padding:5px 14px;font-size:12.5px;cursor:pointer;font-family:inherit}
.wm-tab.on{background:var(--p);color:#fff;border-color:var(--p)}

/* --- کارت بانکی --- */
.wm-bankcard{background:linear-gradient(135deg,#334155,#1e293b);color:#fff;border-radius:16px;padding:18px;margin-top:12px}
.wm-bankcard .bank{display:flex;justify-content:space-between;font-size:13px;opacity:.9;margin-bottom:14px}
.wm-bankcard .no{font-size:19px;font-weight:800;letter-spacing:2px;direction:ltr;text-align:left;margin:8px 0}
.wm-bankcard .meta{display:flex;justify-content:space-between;font-size:12px;opacity:.85}
.wm-bankcard .meta b{display:block;opacity:.7;font-weight:400;font-size:11px}
.wm-copy{cursor:pointer;background:rgba(255,255,255,.12);border:none;color:#fff;border-radius:6px;padding:2px 8px;font-size:11px;font-family:inherit}

/* --- ورود --- */
.wm-login-wrap{display:flex;justify-content:center;padding:40px 0}
.wm-login{max-width:420px;width:100%;text-align:center;padding:34px}
.wm-login .logo{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--p),var(--p2));
 color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;margin:0 auto 14px}
.wm-login h1{font-size:20px}
.wm-login form{margin-top:16px;text-align:right}
.wm-login label{display:block;font-size:13px;font-weight:600;margin:12px 0 6px}
.wm-note{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;border-radius:10px;padding:10px 12px;font-size:12.5px;margin-top:14px}

/* --- فرم --- */
.wm-input{width:100%;border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:14px;background:#fff}
.wm-input:focus{outline:none;border-color:var(--p);box-shadow:0 0 0 3px rgba(29,78,216,.1)}
textarea.wm-input{resize:vertical}
select.wm-input{cursor:pointer}
.wm-field{margin-bottom:12px}
.wm-field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}
.wm-chips{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.wm-chip{border:1.5px solid var(--line);background:#fff;border-radius:10px;padding:8px 12px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}
.wm-chip:hover{border-color:var(--p);color:var(--p)}

/* --- مودال --- */
.wm-modal-ov{position:fixed;inset:0;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;z-index:99999;padding:16px}
.wm-modal{background:#fff;border-radius:18px;max-width:480px;width:100%;max-height:90vh;overflow:auto}
.wm-modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}
.wm-modal-head h3{font-size:15.5px;margin:0}
.wm-x{border:none;background:none;font-size:22px;cursor:pointer;color:var(--mut);line-height:1}
.wm-modal-body{padding:20px}
.wm-info{background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:14px}

/* --- مودال موفقیت --- */
.wm-success{max-width:400px;text-align:center;padding:30px 24px}
.wm-success-ic{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#22c55e,#16a34a);
 color:#fff;font-size:30px;font-weight:800;display:flex;align-items:center;justify-content:center;
 margin:0 auto 14px;box-shadow:0 8px 20px rgba(22,163,74,.35)}
.wm-success h3{font-size:17px;margin:0 0 8px}
.wm-success-msg{font-size:13.5px;color:#374151;line-height:2;margin:0 0 18px}

/* ===== دکمه‌های مودال (خارج از #wm-portal-app — قواعد مستقل و مقاوم) ===== */
.wm-modal .btn,
.wm-modal-body button[type="submit"],
.wm-success .btn{
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    width:100%!important;border:none!important;cursor:pointer!important;text-decoration:none!important;
    font-family:Vazirmatn,Vazir,Tahoma,sans-serif!important;font-size:15px!important;font-weight:700!important;
    border-radius:12px!important;padding:13px 18px!important;margin-top:8px;
    opacity:1!important;visibility:visible!important;transition:.15s!important;
}
.wm-modal .btn-primary,
.wm-modal-body button[type="submit"],
.wm-success .btn-primary{
    background:linear-gradient(135deg,#1d4ed8,#2563eb)!important;color:#ffffff!important;
    box-shadow:0 4px 14px rgba(29,78,216,.35)!important;
}
.wm-modal .btn-primary:hover,
.wm-modal-body button[type="submit"]:hover,
.wm-success .btn-primary:hover{
    background:linear-gradient(135deg,#1e40af,#1d4ed8)!important;color:#ffffff!important;
}
.wm-modal .wm-x{
    opacity:1!important;visibility:visible!important;color:#6b7280!important;
    background:none!important;border:none!important;font-size:24px!important;line-height:1!important;cursor:pointer!important;
}

/* ===== لودر شیشه‌ای پایین صفحه ===== */
.wm-loader{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:100001;
 display:flex;align-items:center;gap:10px;padding:12px 24px;border-radius:16px;
 background:rgba(255,255,255,.62);backdrop-filter:blur(14px) saturate(1.5);-webkit-backdrop-filter:blur(14px) saturate(1.5);
 border:1px solid rgba(255,255,255,.75);box-shadow:0 10px 34px rgba(15,23,42,.22);
 font-family:Vazirmatn,Vazir,Tahoma,sans-serif;font-size:13.5px;font-weight:700;color:#1e293b;
 animation:wm-fadeup .2s ease;white-space:nowrap}
.wm-loader .wm-spin{width:18px;height:18px;border-radius:50%;flex-shrink:0;
 border:2.5px solid rgba(29,78,216,.25);border-top-color:#1d4ed8;animation:wm-rot .7s linear infinite}
@keyframes wm-rot{to{transform:rotate(360deg)}}
@keyframes wm-fadeup{from{opacity:0;transform:translateX(-50%) translateY(12px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}

/* --- توست --- */
.wm-toast{position:fixed;bottom:24px;right:50%;transform:translateX(50%);background:#111827;color:#fff;
 padding:12px 22px;border-radius:12px;font-size:13.5px;z-index:100002;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.wm-toast.err{background:var(--bad)} .wm-toast.ok{background:var(--ok)}

/* --- تاپ‌بار --- */
.wm-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.wm-top .brand{font-size:18px;font-weight:800}
.wm-top .brand small{display:block;font-size:11.5px;color:var(--mut);font-weight:400}
.wm-user{display:flex;align-items:center;gap:10px;font-size:13px}
.wm-user .chip{background:#fff;border:1px solid var(--line);border-radius:20px;padding:6px 14px;font-weight:700}

/* ===== جلوگیری از تداخل استایل قالب با دکمه‌های داخل اپ ===== */
#wm-portal-app .btn{
    border:none!important;cursor:pointer!important;text-decoration:none!important;
    font-family:Vazirmatn,Vazir,Tahoma,sans-serif!important;font-size:14px!important;
    font-weight:700!important;border-radius:10px!important;padding:11px 16px!important;transition:.15s!important;
    opacity:1!important;visibility:visible!important;
}
#wm-portal-app .btn-primary{background:linear-gradient(135deg,#1d4ed8,#2563eb)!important;color:#fff!important;box-shadow:0 1px 2px rgba(29,78,216,.25)}
#wm-portal-app .btn-primary:hover{background:linear-gradient(135deg,#1e40af,#1d4ed8)!important;color:#fff!important}
#wm-portal-app .btn-success{background:linear-gradient(135deg,#16a34a,#22c55e)!important;color:#fff!important;box-shadow:0 1px 2px rgba(22,163,74,.25)}
#wm-portal-app .btn-success:hover{background:linear-gradient(135deg,#15803d,#16a34a)!important;color:#fff!important}
#wm-portal-app .btn-outline{background:#fff!important;color:#111827!important;border:1.5px solid #e5e7eb!important}
#wm-portal-app .btn-outline:hover{background:#eff6ff!important;color:#1d4ed8!important;border-color:#1d4ed8!important}
#wm-portal-app .btn:disabled{opacity:.55!important;cursor:not-allowed!important}
#wm-portal-app .btn-sm{padding:6px 12px!important;font-size:12.5px!important}
#wm-portal-app .wm-tab{background:#fff!important;color:#374151!important;border:1px solid #e5e7eb!important}
#wm-portal-app .wm-tab.on{background:#1d4ed8!important;color:#fff!important;border-color:#1d4ed8!important}
#wm-portal-app .wm-chip{background:#fff!important;color:#111827!important;border:1.5px solid #e5e7eb!important}
#wm-portal-app .wm-chip:hover{border-color:#1d4ed8!important;color:#1d4ed8!important;background:#eff6ff!important}

/* --- ریسپانسیو --- */
@media(max-width:900px){
    .wm-grid{grid-template-columns:repeat(2,1fr)}
    .wm-grid-2{grid-template-columns:1fr}
}

/* ---- موبایل: چیدمان کارتی جدول‌ها ---- */
@media(max-width:640px){
    .wm-app{padding:14px 10px;border-radius:14px}
    .wm-card{padding:14px;border-radius:14px}
    .wm-grid{grid-template-columns:1fr 1fr;gap:10px}
    .wm-stat{min-height:84px}
    .wm-stat .v{font-size:19px}
    .wm-top{flex-direction:column;align-items:flex-start;gap:8px}
    .wm-user{flex-wrap:wrap}
    .wm-login{padding:24px 18px}

    .wm-table.wm-responsive thead{display:none}
    .wm-table.wm-responsive,
    .wm-table.wm-responsive tbody,
    .wm-table.wm-responsive tr,
    .wm-table.wm-responsive td{display:block;width:100%}
    .wm-table.wm-responsive{background:transparent;border:none;font-size:13px}
    .wm-table.wm-responsive tbody tr{
        background:#fff!important;border:1px solid var(--line);border-radius:14px;
        margin:0 0 10px;box-shadow:0 1px 2px rgba(16,24,40,.05)}
    .wm-table.wm-responsive tbody tr:hover{background:#fff!important}
    .wm-table.wm-responsive td{
        display:flex;justify-content:space-between;align-items:flex-start;gap:14px;
        padding:10px 12px;border-bottom:1px dashed #eef0f3;text-align:left;word-break:break-word}
    .wm-table.wm-responsive td:last-child{border-bottom:none}
    .wm-table.wm-responsive td::before{
        content:attr(data-th);font-weight:700;color:var(--mut);font-size:12px;flex-shrink:0;padding-top:1px}
    .wm-table.wm-responsive td.wm-td-notes{flex-direction:column;gap:7px}
    .wm-table.wm-responsive td.wm-td-notes::before{width:100%}

    .wm-pg{min-width:34px;height:34px;font-size:12.5px}
}

/* ===== پیام‌های فروشگاه ===== */
.wm-msgs{display:flex;flex-direction:column;gap:10px}
.wm-msg{background:#f9fafb;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.wm-msg .top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}
.wm-msg .t{font-size:13.5px;font-weight:800;margin-bottom:4px}
.wm-msg .b{font-size:13px;color:#374151;line-height:1.9;white-space:pre-line}

/* ===== هشدار قانون الزام مصرف ===== */
.wm-warn{background:#fffbeb;border:1px solid #fde68a;color:#92400e;border-radius:10px;
 padding:10px 13px;font-size:12.5px;line-height:1.9;margin-top:8px}

/* ===== دکمه تلگرام ورود ===== */
.wm-tg{text-decoration:none!important}