/* ===================================================================
   ArianaEAM — Design System (نسخه ۱.۰)
   با فونت وزیر و پشتیبانی کامل از اعداد فارسی
   رنگ‌های سازمانی: آبی صنعتی (#1A80F8)
=================================================================== */

/* ===================================================================
   Fonts — فارسی: Vazirmatn | English: Inter  (لوکال / آفلاین)
   فایل‌ها: assets/fonts/*.woff2
=================================================================== */
@font-face {
    font-family: 'Vazirmatn';
    src: url('../fonts/Vazirmatn-Light.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Vazirmatn';
    src: url('../fonts/Vazirmatn-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Vazirmatn';
    src: url('../fonts/Vazirmatn-Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Vazirmatn';
    src: url('../fonts/Vazirmatn-SemiBold.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Vazirmatn';
    src: url('../fonts/Vazirmatn-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Inter';
    src: url('../fonts/Inter-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Inter';
    src: url('../fonts/Inter-Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Inter';
    src: url('../fonts/Inter-SemiBold.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Inter';
    src: url('../fonts/Inter-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

:root {
    /* ===== رنگ‌های سازمانی (آبی صنعتی) ===== */
    --primary: #1A80F8;
    --primary-light: #5BA3F5;
    --primary-dark: #1565C0;
    --primary-glow: rgba(26, 128, 248, 0.28);

    --amber: #F59E0B;
    --amber-bg: rgba(245, 158, 11, 0.14);
    --danger: #EF4444;
    --danger-bg: rgba(239, 68, 68, 0.14);
    --success: #22C55E;
    --success-bg: rgba(34, 197, 94, 0.14);
    --info: #3B82F6;
    --info-bg: rgba(59, 130, 246, 0.14);
    --purple: #8B5CF6;
    --purple-bg: rgba(139, 92, 246, 0.14);
    --orange: #F97316;
    --orange-bg: rgba(249, 115, 22, 0.14);

    --bg-body: #EEF2F7;
    --bg-card: #FFFFFF;
    --bg-card-alt: #F4F7FB;
    --bg-sidebar: #0C1929;
    --bg-sidebar-hover: #152A42;
    --bg-header: #FFFFFF;
    --bg-footer: #0C1929;
    --text-color: #142033;
    --text-muted: #5B6B7F;
    --text-sidebar: #A8BDD4;
    --text-footer: #7A91A8;
    --border-color: #D8E0EA;
    --grid-line: rgba(26, 128, 248, 0.05);

    --shadow: 0 4px 16px rgba(15, 30, 50, 0.06);
    --shadow-hover: 0 12px 32px rgba(15, 30, 50, 0.10);
    --shadow-glow: 0 0 0 3px rgba(26, 128, 248, 0.20);

    --radius: 14px;
    --radius-sm: 10px;
    --radius-lg: 18px;
    --transition: 0.22s ease;

    --sidebar-width: 268px;
    --sidebar-collapsed: 76px;
    --header-height: 52px;
    --bottom-nav-height: 56px;
    --footer-height: 36px;

    --font-fa: 'Vazirmatn', 'Tahoma', 'Segoe UI', sans-serif;
    --font-en: 'Inter', 'Segoe UI', 'Roboto', system-ui, -apple-system, sans-serif;
    --font-mono: 'Vazirmatn', 'JetBrains Mono', 'Consolas', monospace;
    --font-main: var(--font-en);
}

body.rtl {
    --font-main: var(--font-fa);
    --font-mono: var(--font-fa);
}
body:not(.rtl) {
    --font-main: var(--font-en);
    --font-mono: 'JetBrains Mono', 'Vazir', monospace;
}

body.dark-mode {
    --bg-body: #0A101C;
    --bg-card: #131C2E;
    --bg-card-alt: #1A2438;
    --bg-header: #111A2B;
    --bg-sidebar: #080E18;
    --bg-sidebar-hover: #162338;
    --bg-footer: #080E18;
    --text-color: #E8EEF6;
    --text-muted: #8B9CB3;
    --text-sidebar: #9BB0C9;
    --text-footer: #6B7F96;
    --border-color: #243247;
    --grid-line: rgba(26, 128, 248, 0.07);
    --shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
    --shadow-hover: 0 16px 40px rgba(0, 0, 0, 0.55);
    --shadow-glow: 0 0 0 3px rgba(26, 128, 248, 0.25);
    --primary-glow: rgba(26, 128, 248, 0.30);
}

/* ===== Reset & Base ===== */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
    font-family: var(--font-main);
    background: var(--bg-body);
    color: var(--text-color);
    transition: background var(--transition), color var(--transition);
    display: flex;
    min-height: 100vh;
    direction: ltr;
    font-size: 14.5px;
    -webkit-font-smoothing: antialiased;
    background-image:
        radial-gradient(circle at 100% 0%, var(--grid-line) 0%, transparent 45%),
        radial-gradient(circle at 0% 100%, var(--grid-line) 0%, transparent 40%);
    background-attachment: fixed;
    overflow-x: hidden;
}
body.rtl { direction: rtl; }
button, input, select, textarea { font-family: inherit; }

a { text-decoration: none; color: inherit; }
ul { list-style: none; }
::selection { background: var(--primary); color: #fff; }
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--primary); border-radius: 10px; opacity: 0.6; }

:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.mono { font-family: var(--font-mono); letter-spacing: 0.3px; }

/* ===== Sidebar ===== */
.sidebar {
    width: var(--sidebar-width);
    height: 100vh;
    background: var(--bg-sidebar);
    color: var(--text-sidebar);
    position: fixed;
    top: 0;
    left: 0;
    padding: 18px 14px;
    display: flex;
    flex-direction: column;
    transition: width 0.3s ease, transform 0.3s ease, padding 0.3s ease;
    z-index: 1000;
    overflow-y: auto;
    overflow-x: hidden;
    border-right: 1px solid rgba(255, 255, 255, 0.05);
}
body.rtl .sidebar {
    left: auto;
    right: 0;
    border-right: none;
    border-left: 1px solid rgba(255, 255, 255, 0.05);
}
.sidebar.collapsed { width: var(--sidebar-collapsed); }
.sidebar.collapsed .sidebar-brand span,
.sidebar.collapsed .sidebar-brand small,
.sidebar.collapsed .menu-label,
.sidebar.collapsed .sidebar-menu li a span,
.sidebar.collapsed .sidebar-menu li a .nav-badge,
.sidebar.collapsed .sidebar-footer div {
    display: none;
}
.sidebar.collapsed .sidebar-brand { justify-content: center; padding-bottom: 16px; }
.sidebar.collapsed .sidebar-menu li a { justify-content: center; padding: 12px 0; }
.sidebar.collapsed .sidebar-footer { justify-content: center; }
.sidebar.collapsed .has-submenu .submenu,
.sidebar.collapsed .submenu-arrow { display: none; }

.sidebar.hidden {
    transform: translateX(-100%);
    width: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: hidden;
}
body.rtl .sidebar.hidden { transform: translateX(100%); }

.sidebar-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 6px 8px 18px 8px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    margin-bottom: 6px;
}
.sidebar-brand .brand-icon {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    flex-shrink: 0;
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 16px var(--primary-glow);
    color: #fff;
    font-size: 17px;
}
.sidebar-brand span {
    font-size: 16.5px;
    font-weight: 700;
    color: #fff;
    white-space: nowrap;
    letter-spacing: -0.2px;
}
.sidebar-brand small {
    font-size: 10px;
    font-weight: 400;
    opacity: 0.55;
    display: block;
    margin-top: 1px;
    letter-spacing: 0.3px;
}

.sidebar-menu {
    flex: 1;
    padding: 10px 0 8px;
}
.sidebar-menu .menu-label {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    opacity: 0.38;
    padding: 16px 10px 6px;
    white-space: nowrap;
    font-weight: 600;
}
.sidebar-menu li:first-child .menu-label { padding-top: 4px; }
.sidebar-menu li a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 12px;
    border-radius: 11px;
    font-weight: 400;
    font-size: 13.3px;
    color: var(--text-sidebar);
    transition: background var(--transition), color var(--transition);
    margin-bottom: 2px;
    white-space: nowrap;
    position: relative;
}
.sidebar-menu li a i {
    width: 20px;
    font-size: 15px;
    text-align: center;
    flex-shrink: 0;
    opacity: 0.85;
}
.sidebar-menu li a:hover {
    background: var(--bg-sidebar-hover);
    color: #fff;
}
.sidebar-menu li a.active {
    background: linear-gradient(90deg, rgba(26, 128, 248, 0.16) 0%, rgba(26, 128, 248, 0.03) 100%);
    color: #fff;
}
.sidebar-menu li a.active i {
    opacity: 1;
    color: var(--primary-light);
}
.sidebar-menu li a.active::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 18px;
    background: var(--primary);
    border-radius: 0 4px 4px 0;
    box-shadow: 0 0 10px var(--primary);
}
body.rtl .sidebar-menu li a.active::before {
    left: auto;
    right: 0;
    border-radius: 4px 0 0 4px;
}
.sidebar-menu li a .nav-badge {
    margin-inline-start: auto;
    background: var(--danger);
    color: #fff;
    font-size: 9.5px;
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 20px;
    font-family: var(--font-mono);
}
.sidebar-menu li a .nav-badge.soft {
    background: rgba(26, 128, 248, 0.18);
    color: var(--primary-light);
}

.sidebar-menu li.has-submenu > a.submenu-toggle { cursor: pointer; }
.sidebar-menu li.has-submenu > a.submenu-toggle .submenu-arrow {
    width: auto;
    flex-shrink: 0;
    font-size: 10px;
    opacity: 0.5;
    transition: transform var(--transition);
}
.sidebar-menu li.has-submenu.open > a.submenu-toggle .submenu-arrow { transform: rotate(180deg); }
.sidebar-menu li.has-submenu.open > a.submenu-toggle { color: #fff; }
.sidebar-menu li.has-submenu.open > a.submenu-toggle i:first-child {
    opacity: 1;
    color: var(--primary-light);
}

.sidebar-menu .submenu {
    list-style: none;
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--transition);
    margin-inline-start: 19px;
    padding-inline-start: 12px;
    border-inline-start: 1px solid rgba(255, 255, 255, 0.09);
}
.sidebar-menu li.has-submenu.open > .submenu { max-height: 400px; }
.sidebar-menu .submenu li a {
    padding: 7.5px 12px;
    font-size: 12.6px;
    opacity: 0.92;
    margin-bottom: 1px;
}
.sidebar-menu .submenu li a i { font-size: 13px; }
.sidebar-menu .submenu li a.active::before { display: none; }
.sidebar-menu .submenu li a.active { background: rgba(26, 128, 248, 0.14); }

.sidebar-footer {
    padding: 12px 8px 4px;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
    display: flex;
    align-items: center;
    gap: 10px;
}
.sidebar-footer img {
    width: 34px;
    height: 34px;
    border-radius: 11px;
    object-fit: cover;
    border: 2px solid rgba(26, 128, 248, 0.4);
    flex-shrink: 0;
}
.sidebar-footer div { font-size: 12.5px; line-height: 1.3; }
.sidebar-footer div > div:first-child { color: #fff; }
.sidebar-footer div > div:last-child { color: var(--primary-light); font-size: 10px; }

/* ===== Overlay ===== */
.sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(6, 10, 19, 0.6);
    z-index: 999;
    backdrop-filter: blur(3px);
}
.sidebar-overlay.active {
    display: block;
    animation: fadeIn 0.25s ease;
}
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* ===== Main Content ===== */
.main-content {
    flex: 1;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    transition: margin 0.3s ease;
    margin-left: var(--sidebar-width);
    padding-top: var(--header-height);
    padding-bottom: var(--footer-height);
}
body.rtl .main-content {
    margin-left: 0;
    margin-right: var(--sidebar-width);
}
.sidebar.collapsed ~ .main-content { margin-left: var(--sidebar-collapsed); }
body.rtl .sidebar.collapsed ~ .main-content {
    margin-right: var(--sidebar-collapsed);
    margin-left: 0;
}
.sidebar.hidden ~ .main-content { margin-left: 0 !important; }
body.rtl .sidebar.hidden ~ .main-content {
    margin-right: 0 !important;
    margin-left: 0 !important;
}

/* ===== Header ===== */
header.header {
    height: var(--header-height);
    background: var(--bg-header);
    padding: 0 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--border-color);
    transition: background var(--transition), border var(--transition), box-shadow var(--transition);
    position: fixed;
    top: 0;
    right: 0;
    left: var(--sidebar-width);
    z-index: 200;
    gap: 12px;
    flex-shrink: 0;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 1px 0 rgba(0,0,0,0.04), 0 4px 20px rgba(0,0,0,0.04);
}
body.rtl header.header {
    left: 0;
    right: var(--sidebar-width);
}
.sidebar.collapsed ~ .main-content header.header,
body:has(.sidebar.collapsed) header.header {
    left: var(--sidebar-collapsed);
}
body.rtl:has(.sidebar.collapsed) header.header,
body.rtl .sidebar.collapsed ~ .main-content header.header {
    right: var(--sidebar-collapsed);
    left: 0;
}
@media (max-width: 768px) {
    header.header, body.rtl header.header {
        left: 0 !important;
        right: 0 !important;
    }
}
.header-left {
    display: flex;
    align-items: center;
    gap: 12px;
}
.header-left .menu-toggle,
.header-left .collapse-toggle {
    background: var(--bg-card-alt);
    border: 1px solid var(--border-color);
    font-size: 15px;
    color: var(--text-color);
    cursor: pointer;
    padding: 6px;
    border-radius: 10px;
    transition: background var(--transition), border-color var(--transition);
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.header-left .menu-toggle:hover,
.header-left .collapse-toggle:hover {
    background: var(--border-color);
    border-color: var(--primary);
}
.header-left .menu-toggle { display: none; }
@media (max-width: 768px) { .header-left .menu-toggle { display: flex; } }
.header-left .collapse-toggle { display: none; }
@media (min-width: 769px) { .header-left .collapse-toggle { display: flex; } }

.header-left .search-box {
    display: flex;
    align-items: center;
    background: var(--bg-card-alt);
    border-radius: 30px;
    padding: 2px 12px;
    border: 1px solid var(--border-color);
    transition: border var(--transition), background var(--transition);
}
.header-left .search-box:focus-within {
    border-color: var(--primary);
    box-shadow: var(--shadow-glow);
}
.header-left .search-box i { color: var(--text-muted); font-size: 13px; }
.header-left .search-box input {
    border: none;
    background: transparent;
    padding: 4px 6px;
    font-size: 13px;
    color: var(--text-color);
    outline: none;
    width: 150px;
}

.header-right {
    display: flex;
    align-items: center;
    gap: 6px;
}
.header-right .icon-btn {
    background: none;
    border: none;
    font-size: 16px;
    color: var(--text-muted);
    cursor: pointer;
    padding: 4px;
    border-radius: 11px;
    transition: background var(--transition), color var(--transition);
    position: relative;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.header-right .icon-btn:hover {
    background: var(--bg-card-alt);
    color: var(--text-color);
}
.header-right .icon-btn .badge {
    position: absolute;
    top: 2px;
    right: 2px;
    background: var(--danger);
    color: #fff;
    font-size: 8px;
    border-radius: 50%;
    width: 15px;
    height: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-family: var(--font-mono);
    box-shadow: 0 0 0 2px var(--bg-header); /* header badge */
}
body.rtl .header-right .icon-btn .badge {
    right: auto;
    left: 2px;
}

/* ===== Profile Dropdown ===== */
.profile-dropdown { position: relative; cursor: pointer; }
.profile-dropdown .profile {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 10px 4px 6px;
    border-radius: 30px;
    transition: background var(--transition);
    border: 1px solid transparent;
}
.profile-dropdown .profile:hover {
    background: var(--bg-card-alt);
    border-color: var(--border-color);
}
.profile-dropdown .profile img {
    width: 32px;
    height: 32px;
    border-radius: 10px;
    object-fit: cover;
    border: 2px solid var(--primary-light);
}
.profile-dropdown .profile .info { line-height: 1.15; }
.profile-dropdown .profile .info .name { font-weight: 600; font-size: 12.5px; }
.profile-dropdown .profile .info .role { font-size: 10px; color: var(--text-muted); }

.profile-dropdown .dropdown-menu {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-hover);
    min-width: 170px;
    z-index: 500;
    padding: 6px 0;
    overflow: hidden;
}
body.rtl .profile-dropdown .dropdown-menu { right: auto; left: 0; }
.profile-dropdown .dropdown-menu.open {
    display: block;
    animation: dropIn 0.2s ease;
}
.profile-dropdown .dropdown-menu a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    font-size: 13px;
    color: var(--text-color);
    transition: background var(--transition);
}
.profile-dropdown .dropdown-menu a:hover { background: var(--bg-card-alt); }
.profile-dropdown .dropdown-menu a i { width: 18px; text-align: center; color: var(--text-muted); }
.profile-dropdown .dropdown-menu .divider {
    height: 1px;
    background: var(--border-color);
    margin: 4px 0;
}

.theme-toggle,
.rtl-toggle {
    background: none;
    border: none;
    font-size: 15px;
    cursor: pointer;
    color: var(--text-muted);
    padding: 4px;
    border-radius: 11px;
    transition: background var(--transition), color var(--transition);
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.theme-toggle:hover,
.rtl-toggle:hover {
    background: var(--bg-card-alt);
    color: var(--primary);
}

/* ===== Notification Panel ===== */
.notif-wrap { position: relative; }
.notif-panel {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: 340px;
    max-width: 88vw;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    box-shadow: var(--shadow-hover);
    z-index: 500;
    display: none;
    overflow: hidden;
}
body.rtl .notif-panel { right: auto; left: 0; }
.notif-panel.open {
    display: block;
    animation: dropIn 0.2s ease;
}
@keyframes dropIn {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}
.notif-panel .notif-head {
    padding: 14px 16px;
    border-bottom: 1px solid var(--border-color);
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.notif-panel .notif-head strong { font-size: 13.5px; }
.notif-panel .notif-head a { font-size: 11.5px; color: var(--primary); }
.notif-panel .notif-body { max-height: 340px; overflow-y: auto; }
.notif-item {
    display: flex;
    gap: 10px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--border-color);
    transition: background var(--transition);
    cursor: pointer;
}
.notif-item:hover { background: var(--bg-card-alt); }
.notif-item:last-child { border-bottom: none; }
.notif-item .dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-top: 6px;
    flex-shrink: 0;
    background: var(--primary);
}
.notif-item.warn .dot { background: var(--amber); }
.notif-item.danger .dot { background: var(--danger); }
.notif-item .txt p { font-size: 12.5px; line-height: 1.6; }
.notif-item .txt span { font-size: 10.5px; color: var(--text-muted); }

/* ===== Breadcrumb ===== */
.breadcrumb {
    padding: 8px 20px;
    font-size: 12px;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 6px;
}
.breadcrumb i { font-size: 12px; }
.breadcrumb a { transition: color var(--transition); }
.breadcrumb a:hover { color: var(--primary); }
.breadcrumb span { color: var(--text-color); font-weight: 600; }

/* ===== Page Content ===== */
.page-content {
    flex: 1;
    padding: 6px 20px 20px;
    transition: padding var(--transition);
}
.page-section { display: none; }
.page-section.active { display: block; }
.page-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 18px;
}
.page-head h1 {
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -0.3px;
}
.page-head p {
    font-size: 12.5px;
    color: var(--text-muted);
    margin-top: 4px;
}
.page-head-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

/* ===== Footer ===== */
.footer,
.app-footer {
    background: var(--bg-footer);
    color: var(--text-footer);
    padding: 0 20px;
    text-align: center;
    font-size: 11.5px;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    transition: background var(--transition), border var(--transition), color var(--transition);
    position: fixed;
    bottom: 0;
    right: 0;
    left: var(--sidebar-width);
    z-index: 200;
    height: var(--footer-height);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 -4px 20px rgba(0,0,0,0.06);
}
body.rtl .app-footer {
    left: 0;
    right: var(--sidebar-width);
}
body:has(.sidebar.collapsed) .app-footer {
    left: var(--sidebar-collapsed);
}
body.rtl:has(.sidebar.collapsed) .app-footer {
    right: var(--sidebar-collapsed);
    left: 0;
}
@media (max-width: 768px) {
    .app-footer, body.rtl .app-footer {
        left: 0 !important;
        right: 0 !important;
    }
}
.app-footer .footer-inner {
    display: flex;
    align-items: center;
    gap: 10px;
}
.app-footer .footer-brand {
    display: flex;
    align-items: center;
    gap: 6px;
}
.app-footer .footer-sep { opacity: 0.4; }
.app-footer .brand { color: var(--primary-light); font-weight: 700; letter-spacing: 0.3px; }
.app-footer .footer-text { opacity: 0.9; }

/* ===== Stats Grid ===== */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 16px;
}
.stat-card {
    background: var(--bg-card);
    padding: 18px 20px;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    transition: background var(--transition), box-shadow var(--transition), transform var(--transition);
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 1px solid var(--border-color);
    position: relative;
    overflow: hidden;
}
.stat-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, var(--primary-glow) 0%, transparent 55%);
    opacity: 0;
    transition: opacity var(--transition);
    pointer-events: none;
}
.stat-card:hover {
    box-shadow: var(--shadow-hover);
    transform: translateY(-3px);
    border-color: var(--primary);
}
.stat-card:hover::after { opacity: 0.4; }
.stat-card .info h4 {
    font-size: 12px;
    font-weight: 500;
    color: var(--text-muted);
    margin-bottom: 6px;
}
.stat-card .info .number {
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -0.5px;
    font-family: var(--font-mono);
}
.stat-card .info .trend {
    font-size: 11px;
    margin-top: 6px;
    display: flex;
    align-items: center;
    gap: 4px;
    font-weight: 600;
}
.stat-card .info .trend.up { color: var(--success); }
.stat-card .info .trend.down { color: var(--danger); }
.stat-card .icon {
    width: 44px;
    height: 44px;
    border-radius: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
    color: #fff;
    flex-shrink: 0;
}
.stat-card .icon.blue { background: linear-gradient(135deg, #1A80F8, #1A5CB5); }
.stat-card .icon.green { background: linear-gradient(135deg, var(--success), #16A34A); }
.stat-card .icon.orange { background: linear-gradient(135deg, var(--amber), #D97706); }
.stat-card .icon.purple { background: linear-gradient(135deg, var(--purple), #7C3AED); }
.stat-card .icon.red { background: linear-gradient(135deg, var(--danger), #DC2626); }

/* ===== Row Layouts ===== */
.row-two {
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: 14px;
    margin-bottom: 16px;
}
.row-three {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-bottom: 16px;
}

/* ===== Cards ===== */
.card {
    background: var(--bg-card);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 18px 20px;
    border: 1px solid var(--border-color);
    transition: background var(--transition), border var(--transition), box-shadow var(--transition);
}
.card-title {
    font-size: 14.5px;
    font-weight: 700;
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}
.card-title span:first-child {
    display: flex;
    align-items: center;
    gap: 8px;
}
.card-title .more {
    font-size: 12px;
    font-weight: 500;
    color: var(--primary);
    cursor: pointer;
}
.card-title .more:hover { text-decoration: underline; }

/* ===== Tables ===== */
.table-wrap {
    overflow-x: auto;
    margin-top: 4px;
}
table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
table th {
    text-align: left;
    padding: 10px 8px 10px 0;
    font-weight: 600;
    color: var(--text-muted);
    border-bottom: 2px solid var(--border-color);
    font-size: 11.5px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}
table td {
    padding: 12px 8px 12px 0;
    border-bottom: 1px solid var(--border-color);
}
table tbody tr { transition: background var(--transition); }
table tbody tr:hover { background: var(--bg-card-alt); }
body.rtl table th,
body.rtl table td {
    text-align: right;
    padding: 10px 0 10px 8px;
}

.badge-status {
    padding: 4px 12px;
    border-radius: 30px;
    font-size: 11px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.badge-status.paid { background: var(--success-bg); color: var(--success); }
.badge-status.pending { background: var(--amber-bg); color: var(--amber); }
.badge-status.canceled { background: var(--danger-bg); color: var(--danger); }
.badge-status.inactive { background: var(--danger-bg); color: var(--danger); }
.badge-status.draft { background: var(--border-color); color: var(--text-muted); }

/* ===== Forms ===== */
.form-group { margin-bottom: 16px; }
.form-group label {
    display: block;
    font-weight: 600;
    margin-bottom: 6px;
    font-size: 12.5px;
    color: var(--text-color);
}
.form-group .hint {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 5px;
}
.form-group input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 11px 14px;
    border-radius: 11px;
    border: 1.5px solid var(--border-color);
    background: var(--bg-card-alt);
    color: var(--text-color);
    font-size: 13px;
    transition: border var(--transition), background var(--transition), box-shadow var(--transition);
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: var(--primary);
    outline: none;
    background: var(--bg-card);
    box-shadow: var(--shadow-glow);
}
.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
@media (max-width: 600px) { .form-row { grid-template-columns: 1fr; } }

/* ===== Buttons ===== */
.btn-primary {
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    color: #fff;
    border: none;
    padding: 11px 24px;
    font-weight: 700;
    border-radius: 30px;
    font-size: 13.5px;
    cursor: pointer;
    transition: box-shadow var(--transition), transform var(--transition), filter var(--transition);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    box-shadow: 0 6px 18px var(--primary-glow);
}
.btn-primary:hover {
    filter: brightness(1.06);
    transform: translateY(-1px);
    box-shadow: 0 10px 24px var(--primary-glow);
}
.btn-primary:active { transform: translateY(0); }
.btn-outline {
    background: transparent;
    color: var(--text-color);
    border: 1.5px solid var(--border-color);
    padding: 10px 22px;
    border-radius: 30px;
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
    transition: all var(--transition);
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.btn-outline:hover {
    border-color: var(--primary);
    color: var(--primary);
}
.btn-sm {
    padding: 5px 14px;
    border-radius: 20px;
    font-size: 11px;
    border: none;
    cursor: pointer;
    font-weight: 600;
    transition: filter var(--transition), transform var(--transition);
}
.btn-sm:hover { filter: brightness(1.1); }
.btn-edit { background: var(--info-bg); color: var(--info); }
.btn-danger { background: var(--danger-bg); color: var(--danger); }
.btn-icon {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    border: 1px solid var(--border-color);
    background: var(--bg-card-alt);
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all var(--transition);
}
.btn-icon:hover {
    border-color: var(--primary);
    color: var(--primary);
}

/* ===== Toggle Switch ===== */
.toggle-switch {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 25px;
    flex-shrink: 0;
}
.toggle-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}
.toggle-switch .slider {
    position: absolute;
    cursor: pointer;
    inset: 0;
    background: var(--border-color);
    transition: var(--transition);
    border-radius: 30px;
}
.toggle-switch .slider::before {
    content: '';
    position: absolute;
    height: 19px;
    width: 19px;
    left: 3px;
    bottom: 3px;
    background: #fff;
    transition: var(--transition);
    border-radius: 50%;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}
.toggle-switch input:checked + .slider { background: var(--primary); }
.toggle-switch input:checked + .slider::before { transform: translateX(19px); }
body.rtl .toggle-switch .slider::before { left: auto; right: 3px; }
body.rtl .toggle-switch input:checked + .slider::before { transform: translateX(-19px); }

/* ===== Auth Pages ===== */
.auth-page {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    flex: 1;
    min-height: 100vh;
    padding: 20px;
    position: relative;
    overflow: hidden;
}
.auth-page .auth-side-visual {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 15% 20%, var(--primary-glow) 0%, transparent 35%),
        radial-gradient(circle at 85% 80%, rgba(59, 130, 246, 0.18) 0%, transparent 35%);
}
.auth-card {
    background: var(--bg-card);
    padding: 36px 32px;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-hover);
    border: 1px solid var(--border-color);
    max-width: 400px;
    width: 100%;
    transition: background var(--transition), border var(--transition);
    position: relative;
    overflow: hidden;
    z-index: 1;
}
.auth-card::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle at 30% 50%, var(--primary-light) 0%, transparent 70%);
    opacity: 0.08;
    animation: rotateBg 24s linear infinite;
}
@keyframes rotateBg {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
.auth-card > * { position: relative; z-index: 1; }
.auth-header {
    text-align: center;
    margin-bottom: 26px;
}
.auth-header .auth-icon {
    width: 56px;
    height: 56px;
    border-radius: 16px;
    margin: 0 auto 14px;
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    color: #fff;
    box-shadow: 0 8px 22px var(--primary-glow);
}
.auth-header h2 {
    font-weight: 800;
    font-size: 21px;
    letter-spacing: -0.3px;
}
.auth-header p {
    font-size: 12.5px;
    color: var(--text-muted);
    margin-top: 6px;
}
.auth-footer-link {
    text-align: center;
    font-size: 12.5px;
    color: var(--text-muted);
    margin-top: 18px;
}
.auth-footer-link a {
    color: var(--primary);
    font-weight: 700;
}
.auth-divider {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 18px 0;
    font-size: 11px;
    color: var(--text-muted);
}
.auth-divider::before,
.auth-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--border-color);
}

/* ===== Toast ===== */
.toast-container {
    position: fixed;
    top: 16px;
    right: 16px;
    z-index: 99998;
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: 340px;
    width: 100%;
}
body.rtl .toast-container { right: auto; left: 16px; }
.toast {
    padding: 13px 16px;
    border-radius: 13px;
    background: var(--bg-card);
    border-inline-start: 4px solid var(--primary);
    box-shadow: var(--shadow-hover);
    display: flex;
    align-items: center;
    gap: 10px;
    animation: slideIn 0.3s ease;
    color: var(--text-color);
    font-size: 12.8px;
    border: 1px solid var(--border-color);
    font-weight: 500;
}
.toast.success { border-inline-start-color: var(--success); }
.toast.error { border-inline-start-color: var(--danger); }
.toast.warning { border-inline-start-color: var(--amber); }
.toast-close {
    margin-inline-start: auto;
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border: none !important;
    background: transparent !important;
    color: var(--text-muted) !important;
    border-radius: 8px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    box-shadow: none !important;
    outline: none !important;
    padding: 0;
    transition: color 0.15s ease, background 0.15s ease;
}
.toast-close:hover {
    color: var(--danger) !important;
    background: var(--danger-bg) !important;
    border: none !important;
}
.toast-close:focus,
.toast-close:active {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
}
body.dark-mode .toast-close {
    color: var(--text-muted) !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
}
body.dark-mode .toast-close:hover {
    color: var(--danger) !important;
    background: var(--danger-bg) !important;
}
@keyframes slideIn {
    from { transform: translateX(90px); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}
body.rtl .toast {
    animation: slideInRtl 0.3s ease;
}
@keyframes slideInRtl {
    from { transform: translateX(-90px); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

/* ===== Bottom Nav ===== */
.bottom-nav {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: var(--bottom-nav-height);
    background: var(--bg-header);
    border-top: 1px solid var(--border-color);
    z-index: 200;
    justify-content: space-around;
    align-items: center;
    padding: 0 4px;
    backdrop-filter: blur(12px);
}
.bottom-nav a {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: 9px;
    color: var(--text-muted);
    gap: 2px;
    padding: 4px 8px;
    border-radius: 12px;
    transition: color var(--transition), background var(--transition);
    position: relative;
    font-weight: 500;
}
.bottom-nav a i { font-size: 17px; }
.bottom-nav a.active { color: var(--primary); }
.bottom-nav a .badge {
    position: absolute;
    top: 0;
    right: 4px;
    background: var(--danger);
    color: #fff;
    font-size: 7px;
    border-radius: 50%;
    width: 14px;
    height: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}
body.rtl .bottom-nav a .badge { right: auto; left: 4px; }

/* ===== Global Loader ===== */
.global-loader {
    position: fixed;
    inset: 0;
    background: var(--bg-body);
    z-index: 99999;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    transition: opacity 0.5s ease;
    gap: 16px;
}
.global-loader.hidden {
    opacity: 0;
    pointer-events: none;
}
.global-loader p { color: var(--text-muted); font-size: 12.5px; }
.loader-spinner {
    width: 44px;
    height: 44px;
    border: 3px solid var(--border-color);
    border-top-color: var(--primary);
    border-radius: 50%;
    animation: spin 0.7s linear infinite;
    position: relative;
}
.loader-spinner::after {
    content: '';
    position: absolute;
    inset: -8px;
    border-radius: 50%;
    border: 1px solid var(--primary);
    opacity: 0.3;
    animation: radarPing 1.6s ease-out infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ===== Responsive ===== */
@media (max-width: 1200px) { .row-three { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 1024px) {
    .stats-grid { grid-template-columns: repeat(2, 1fr); }
    .row-two { grid-template-columns: 1fr; }
    .row-three { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .sidebar {
        transform: translateX(-100%);
        width: var(--sidebar-width);
        box-shadow: 0 0 60px rgba(0, 0, 0, 0.4);
    }
    body.rtl .sidebar { transform: translateX(100%); }
    .sidebar.open { transform: translateX(0) !important; }
    .sidebar-overlay.active { display: block; }
    .main-content { margin-left: 0 !important; margin-right: 0 !important; }
    .header-left .collapse-toggle { display: none !important; }
    .header-left .search-box { display: none; }
    .header-right .profile .info { display: none; }
    .stats-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
    .stat-card { padding: 12px 14px; }
    .stat-card .info .number { font-size: 18px; }
    .stat-card .icon { width: 34px; height: 34px; font-size: 15px; }
    .page-content { padding: 6px 12px 80px; }
    .bottom-nav { display: flex; }
    header.header { padding: 0 12px; height: 50px; }
    .page-head { align-items: flex-start; }
    .page-head h1 { font-size: 17px; }
    .breadcrumb { padding: 6px 12px; font-size: 11px; }
    .footer, .app-footer { display: none; }
    .auth-page { min-height: 100vh; padding: 16px; }
    .row-three { grid-template-columns: 1fr; }
    .notif-panel { width: 92vw; }
}
@media (max-width: 480px) {
    .stats-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
    .stat-card { padding: 10px 12px; flex-direction: row-reverse; justify-content: flex-end; gap: 10px; }
    .stat-card .info .number { font-size: 16px; }
    .stat-card .icon { width: 30px; height: 30px; font-size: 13px; }
    .card { padding: 14px 16px; }
    .auth-card { padding: 26px 20px; }
}

/* ===== Force Persian Font ===== */
body,
input,
textarea,
select,
button,
.btn-primary,
.btn-outline,
.btn-sm,
.chip,
.time,
.badge,
.badge-status,
.ticket-status,
.ticket-priority,
.status,
.nav-badge,
.mono,
.form-group label,
.card-title,
.page-head h1,
.page-head p,
.activity-item .content .title,
.activity-item .content .time,
.notif-item .txt p,
.notif-item .txt span,
.ticket-item .ticket-info .title,
.ticket-item .ticket-info .meta,
.plan-card,
.stat-card .info h4,
.stat-card .info .number,
.stat-card .info .trend {
    font-family: var(--font-fa) !important;
}
::placeholder {
    font-family: var(--font-fa) !important;
    opacity: 0.7;
}

/* ============================================================
   مودال فول‌اسکرین
   - بسته شدن فقط با دکمه بستن یا اکشن (نه کلیک بیرون)
   - زوم ملایم پس‌زمینه هنگام باز بودن
   - اسکرول فقط روی محتوای مدال
   ============================================================ */
.fullscreen-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.72);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    z-index: 9999;
    align-items: center;
    justify-content: center;
    padding: 20px;
    box-sizing: border-box;
    opacity: 0;
    transition: opacity 0.3s ease;
    /* جلوگیری از بسته شدن با کلیک روی پس‌زمینه */
    pointer-events: auto;
}
.fullscreen-modal.open {
    display: flex !important;
    opacity: 1;
    animation: fadeInModal 0.3s ease;
}
@keyframes fadeInModal {
    from { opacity: 0; }
    to { opacity: 1; }
}

.modal-content {
    background: var(--bg-card);
    border-radius: var(--radius-lg);
    padding: 28px 24px;
    max-width: 640px;
    width: 100%;
    max-height: 85vh;
    overflow-y: auto;
    overflow-x: hidden;
    position: relative;
    box-shadow: 0 30px 70px rgba(0, 0, 0, 0.5);
    border: 1px solid var(--border-color);
    transform: scale(0.92) translateY(16px);
    opacity: 0;
    transition: transform 0.32s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.28s ease;
    /* اسکرول روی خود مدال */
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}
.fullscreen-modal.open .modal-content {
    transform: scale(1) translateY(0);
    opacity: 1;
}

/* قفل اسکرول پس‌زمینه (بدون زوم روی کل صفحه) */
body.modal-open {
    overflow: hidden !important;
    touch-action: none;
}

/* انیمیشن زوم روی خود باکس مدال وقتی بیرون کلیک شود */
@keyframes modalAttention {
    0%   { transform: scale(1); }
    40%  { transform: scale(1.03); }
    70%  { transform: scale(0.98); }
    100% { transform: scale(1); }
}
.modal-content.modal-attention {
    animation: modalAttention 0.38s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.modal-content h2 {
    font-size: 20px;
    font-weight: 800;
    margin-bottom: 4px;
    color: var(--text-color);
}
.modal-content .modal-sub {
    font-size: 13px;
    color: var(--text-muted);
    margin-bottom: 16px;
}

.modal-close {
    position: absolute;
    top: 14px;
    right: 16px;
    background: var(--bg-card-alt);
    border: 1px solid var(--border-color);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    font-size: 18px;
    color: var(--text-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    z-index: 10;
}
.modal-close:hover {
    color: var(--danger);
    border-color: var(--danger);
    background: var(--danger-bg);
}
body.rtl .modal-close {
    right: auto;
    left: 16px;
}

/* مودال بزرگ‌تر برای صفحاتی که نیاز دارند */
.modal-content.large {
    max-width: 800px;
}
.modal-content.small {
    max-width: 420px;
}

/* حالت تاریک */
body.dark-mode .fullscreen-modal {
    background: rgba(0, 0, 0, 0.88);
}
body.dark-mode .modal-content {
    background: var(--bg-card);
    border-color: var(--border-color);
}
.jstree-default .jstree-node.jstree-leaf > .jstree-ocl {
    display: none !important;
}

/* ============================================================
   Select2 — هماهنگ با فرم‌های قالب
   ============================================================ */
.select2-container {
    width: 100% !important;
    font-family: var(--font-main);
    z-index: 1; /* پیش‌فرض پایین — تا روی مدال نیاید */
}
.select2-container--default .select2-selection--single {
    height: 42px !important;
    background: var(--bg-card-alt) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 10px !important;
    display: flex !important;
    align-items: center !important;
    padding: 0 10px !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    position: relative;
}
/* متن انتخاب‌شده — فضای کافی برای ضربدر و فلش */
.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--text-color) !important;
    line-height: 40px !important;
    padding-left: 0 !important;
    padding-right: 52px !important; /* فلش + ضربدر */
    font-size: 14px;
}
body.rtl .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding-right: 0 !important;
    padding-left: 52px !important;
    text-align: right;
}
/* ضربدر پاک‌کردن — فاصله از متن و از فلش */
.select2-container--default .select2-selection--single .select2-selection__clear {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%);
    right: 28px !important;
    left: auto !important;
    margin: 0 !important;
    padding: 0 4px !important;
    height: 22px !important;
    width: 22px !important;
    line-height: 22px !important;
    text-align: center !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    color: var(--text-muted) !important;
    border-radius: 50%;
    transition: color 0.15s ease, background 0.15s ease;
    z-index: 2;
}
body.rtl .select2-container--default .select2-selection--single .select2-selection__clear {
    right: auto !important;
    left: 28px !important;
}
.select2-container--default .select2-selection--single .select2-selection__clear:hover {
    color: var(--danger) !important;
    background: var(--danger-bg);
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 40px !important;
    width: 24px !important;
    right: 4px !important;
    left: auto !important;
}
body.rtl .select2-container--default .select2-selection--single .select2-selection__arrow {
    right: auto !important;
    left: 4px !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: var(--text-muted) transparent transparent transparent !important;
}
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--primary) !important;
    box-shadow: var(--shadow-glow) !important;
}
.select2-container--default .select2-selection--multiple {
    min-height: 42px !important;
    background: var(--bg-card) !important;
    border: 1.5px solid var(--border-color) !important;
    border-radius: 12px !important;
    padding: 6px 10px !important;
    display: block !important;
    cursor: text;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    position: relative !important;
}
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--multiple {
    border-color: var(--primary) !important;
    box-shadow: var(--shadow-glow) !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__rendered {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    padding: 0 !important;
    width: 100% !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice {
    background: color-mix(in srgb, var(--primary) 14%, var(--bg-card)) !important;
    border: 1px solid color-mix(in srgb, var(--primary) 35%, transparent) !important;
    color: var(--primary) !important;
    border-radius: 20px !important;
    padding: 4px 10px 4px 8px !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    line-height: 1.3 !important;
    max-width: 100%;
}
body.rtl .select2-container--default .select2-selection--multiple .select2-selection__choice {
    padding: 4px 8px 4px 10px !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: var(--primary) !important;
    margin: 0 !important;
    border: none !important;
    border-radius: 50% !important;
    width: 18px !important;
    height: 18px !important;
    font-size: 14px !important;
    line-height: 16px !important;
    order: -1;
    opacity: 0.75;
    transition: all 0.15s ease;
}
body.rtl .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    order: 2;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
    color: #fff !important;
    background: var(--danger) !important;
    opacity: 1;
}
.select2-container--default .select2-selection--multiple .select2-search--inline {
    flex: 1 1 80px;
    margin: 0 !important;
}
.select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field {
    margin: 0 !important;
    height: 28px !important;
    min-height: 28px !important;
    font-family: var(--font-main) !important;
    color: var(--text-color) !important;
    padding: 0 4px !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__placeholder {
    color: var(--text-muted) !important;
    margin: 0 !important;
    padding: 4px 0 !important;
}
body.dark-mode .select2-container--default .select2-selection--multiple .select2-selection__choice {
    background: color-mix(in srgb, var(--primary) 22%, var(--bg-card)) !important;
    border-color: color-mix(in srgb, var(--primary) 40%, transparent) !important;
}
.select2-dropdown {
    background: var(--bg-card) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 12px !important;
    box-shadow: var(--shadow-hover) !important;
    z-index: 2000 !important;
    overflow: hidden;
}
.select2-container--default .select2-results__option {
    padding: 10px 14px;
    font-size: 13.5px;
    color: var(--text-color);
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: var(--primary) !important;
    color: #fff !important;
}
.select2-container--default .select2-results__option[aria-selected=true] {
    background: color-mix(in srgb, var(--primary) 12%, var(--bg-card)) !important;
    color: var(--primary) !important;
}
.select2-search--dropdown .select2-search__field {
    border: 1px solid var(--border-color) !important;
    border-radius: 8px !important;
    background: var(--bg-card-alt) !important;
    color: var(--text-color) !important;
    padding: 8px 12px !important;
    font-family: var(--font-main);
}
.select2-container--default .select2-search--dropdown .select2-search__field:focus {
    border-color: var(--primary) !important;
    outline: none !important;
}
/* باز بودن معمولی (بدون مدال) */
.select2-container--open {
    z-index: 2000 !important;
}
/* داخل مدال: بالاتر از پس‌زمینه، داخل stacking مدال */
.fullscreen-modal {
    z-index: 9999;
}
.fullscreen-modal .select2-container {
    z-index: 2;
}
.fullscreen-modal .select2-container--open {
    z-index: 10050 !important;
}
.fullscreen-modal .select2-dropdown {
    z-index: 10060 !important;
}
/* وقتی مدال باز است: Select2های صفحه اصلی پشت مدال */
body.modal-open .main-content .select2-container--open,
body.modal-open .filter-group .select2-container--open,
body.modal-open .table-toolbar .select2-container--open {
    z-index: 1 !important;
}
body.modal-open .main-content .select2-dropdown,
body.modal-open .filter-group .select2-dropdown,
body.modal-open .table-toolbar .select2-dropdown {
    z-index: 1 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}
/* Select2 داخل مدال — بالاتر */
body.modal-open .fullscreen-modal .select2-container--open {
    z-index: 10050 !important;
}
body.modal-open .fullscreen-modal .select2-dropdown {
    z-index: 10060 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}
/* دراپ‌داون‌های append شده مستقیم به body (خارج از مدال) هنگام مدال باز */
body.modal-open > .select2-container {
    z-index: 1 !important;
}
body.modal-open > .select2-container .select2-dropdown {
    z-index: 1 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}
/* placeholder */
.select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: var(--text-muted) !important;
}
body.dark-mode .select2-container--default .select2-selection--single,
body.dark-mode .select2-container--default .select2-selection--multiple {
    background: var(--bg-card-alt) !important;
    border-color: var(--border-color) !important;
}
body.dark-mode .select2-dropdown {
    background: var(--bg-card) !important;
    border-color: var(--border-color) !important;
}

/* ===== Language Dropdown (Modern) ===== */
.lang-dropdown {
    position: relative;
}
.lang-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    background: var(--bg-card-alt);
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 5px 10px 5px 8px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-color);
    cursor: pointer;
    transition: all var(--transition);
    height: 34px;
}
.lang-btn:hover {
    border-color: var(--primary);
    background: var(--bg-card);
    box-shadow: 0 0 0 3px var(--primary-glow);
}
.lang-btn .fa-globe {
    font-size: 13px;
    color: var(--primary);
}
.lang-btn .lang-label {
    min-width: 22px;
    letter-spacing: 0.5px;
}
.lang-btn .lang-chevron {
    font-size: 9px;
    opacity: 0.6;
    transition: transform 0.2s ease;
}
.lang-dropdown.open .lang-chevron {
    transform: rotate(180deg);
}
.lang-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 150px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    box-shadow: 0 12px 40px rgba(0,0,0,0.12), 0 4px 12px rgba(0,0,0,0.06);
    padding: 6px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px) scale(0.96);
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
    z-index: 300;
}
body.rtl .lang-menu {
    right: auto;
    left: 0;
}
.lang-dropdown.open .lang-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) scale(1);
}
.lang-option {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 9px 12px;
    border: none;
    background: transparent;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-color);
    cursor: pointer;
    transition: background 0.15s ease;
    text-align: right;
}
body:not(.rtl) .lang-option { text-align: left; }
.lang-option:hover {
    background: var(--bg-card-alt);
}
.lang-option .lang-flag {
    font-size: 16px;
    line-height: 1;
}
.lang-option .fa-check {
    margin-right: auto;
    font-size: 11px;
    color: var(--primary);
    opacity: 0;
}
body:not(.rtl) .lang-option .fa-check {
    margin-right: 0;
    margin-left: auto;
}
.lang-option.active .fa-check {
    opacity: 1;
}
.lang-option.active {
    background: color-mix(in srgb, var(--primary) 10%, transparent);
    color: var(--primary);
    font-weight: 600;
}

/* Profile chevron */
.profile-chevron {
    font-size: 10px;
    opacity: 0.5;
    margin-right: 2px;
    transition: transform 0.2s ease;
}
body:not(.rtl) .profile-chevron {
    margin-right: 0;
    margin-left: 2px;
}
.profile-dropdown.open .profile-chevron {
    transform: rotate(180deg);
}

/* Theme toggle as icon-btn consistency */
.theme-toggle.icon-btn {
    width: 36px;
    height: 36px;
    border-radius: 11px;
    background: none;
    border: none;
    font-size: 15px;
    color: var(--text-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background var(--transition), color var(--transition);
}
.theme-toggle.icon-btn:hover {
    background: var(--bg-card-alt);
    color: var(--text-color);
}

/* Dark mode refinements for header/footer */
body.dark-mode header.header {
    box-shadow: 0 1px 0 rgba(255,255,255,0.04), 0 4px 24px rgba(0,0,0,0.25);
}
body.dark-mode .app-footer {
    box-shadow: 0 -4px 24px rgba(0,0,0,0.3);
}
body.dark-mode .lang-menu {
    box-shadow: 0 12px 40px rgba(0,0,0,0.4), 0 4px 12px rgba(0,0,0,0.2);
}

/* Smooth page content area */
.main-content > *:not(.header):not(.app-footer):not(#header-placeholder):not(#footer-placeholder) {
    /* content flows between fixed bars */
}

/* Ensure placeholders don't affect layout */
#header-placeholder {
    /* header is fixed, placeholder just holds the DOM node */
}
#footer-placeholder {
    /* same */
}

/* Modern glass-ish header when dark */
body.dark-mode header.header {
    background: color-mix(in srgb, var(--bg-header) 85%, transparent);
}

/* Better focus for accessibility */
.lang-btn:focus-visible,
.icon-btn:focus-visible,
.menu-toggle:focus-visible,
.collapse-toggle:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}


/* ===== Header isolation (prevent card .header class conflict + hover shake) ===== */
header.header {
    transform: translateZ(0);
    will-change: left, right;
    backface-visibility: hidden;
}
/* Card internal headers must NOT use bare class "header" globally — scope them */
.equip-card .header,
.equip-card .card-header,
.shutdown-card .header,
.shutdown-card .card-header,
.wo-card .header,
.wo-card .card-header,
.log-item .header,
.log-item .card-header,
.report-card .header,
.report-card .card-header,
.stat-card .header,
.card .header:not(header) {
    position: static !important;
    height: auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    z-index: auto !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    display: flex;
    flex-shrink: 1;
}


/* page-content stable */
.page-content {
    padding: 16px 20px 24px;
    flex: 1;
    min-width: 0;
}
.page-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}
.page-head h1 {
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 4px;
}
.page-head p {
    margin: 0;
    font-size: 13px;
    color: var(--text-muted);
}
.page-head-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}


/* Brand logo */
.sidebar-brand .brand-logo {
    width: 40px;
    height: 40px;
    padding: 0;
    overflow: hidden;
    border-radius: 11px;
    background: transparent !important;
    display: flex;
    align-items: center;
    justify-content: center;
}
.sidebar-brand .brand-logo img {
    width: 40px;
    height: 40px;
    display: block;
}
.sidebar.collapsed .brand-logo img {
    width: 32px;
    height: 32px;
}


/* ===================================================================
   Industrial polish — light/dark contrast fixed
=================================================================== */

/* Solid surfaces (no transparent cards) */
.card,
.panel,
.kit-section,
.eq-hero,
.eq-stat,
.inv-stat,
.today-card,
.report-card,
.stat-card,
.wo-card,
.equip-card,
.shutdown-card,
.login-shell {
    background: var(--bg-card) !important;
    border: 1px solid var(--border-color) !important;
    box-shadow: var(--shadow) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

header.header {
    background: var(--bg-header) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    border-bottom: 1px solid var(--border-color) !important;
    box-shadow: 0 1px 0 rgba(255,255,255,0.04) !important;
}

body.dark-mode header.header {
    background: var(--bg-header) !important;
    border-bottom-color: var(--border-color) !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.25) !important;
}

.sidebar {
    background: var(--bg-sidebar) !important;
    backdrop-filter: none !important;
    border-color: rgba(255,255,255,0.06) !important;
}

.app-footer {
    background: var(--bg-footer) !important;
    backdrop-filter: none !important;
    border-top: 1px solid rgba(255,255,255,0.06) !important;
    color: var(--text-footer) !important;
}

/* Buttons — industrial solid */
.btn-primary {
    background: linear-gradient(180deg, #2B8CFF 0%, #1A80F8 55%, #156FE0 100%) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 10px !important;
    box-shadow: 0 4px 12px rgba(26, 128, 248, 0.28) !important;
    font-weight: 600 !important;
    padding: 9px 16px !important;
}
.btn-primary:hover {
    filter: brightness(1.05);
    box-shadow: 0 6px 16px rgba(26, 128, 248, 0.35) !important;
}
.btn-outline {
    background: var(--bg-card) !important;
    color: var(--text-color) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 10px !important;
    font-weight: 600 !important;
    padding: 9px 16px !important;
}
.btn-outline:hover {
    border-color: var(--primary) !important;
    color: var(--primary) !important;
    background: color-mix(in srgb, var(--primary) 8%, var(--bg-card)) !important;
}

body.dark-mode .btn-outline {
    background: var(--bg-card-alt) !important;
}

/* Inputs contrast */
input, select, textarea,
.fg input, .fg select, .fg textarea,
.header-left .search-box,
.header-left .search-box input {
    background: var(--bg-card-alt) !important;
    color: var(--text-color) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 10px !important;
}
input:focus, select:focus, textarea:focus,
.fg input:focus, .fg select:focus, .fg textarea:focus {
    border-color: var(--primary) !important;
    box-shadow: var(--shadow-glow) !important;
    outline: none !important;
}
input::placeholder, textarea::placeholder {
    color: var(--text-muted) !important;
    opacity: 0.85;
}

/* Dropdowns / panels */
.lang-menu, .dropdown-menu, .notif-panel, .auth-lang-menu {
    background: var(--bg-card) !important;
    border: 1px solid var(--border-color) !important;
    box-shadow: var(--shadow-hover) !important;
    backdrop-filter: none !important;
    color: var(--text-color) !important;
}
.lang-btn, .auth-lang-btn {
    background: var(--bg-card-alt) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-color) !important;
    border-radius: 10px !important;
}

/* Tables */
table th {
    background: var(--bg-card-alt) !important;
    color: var(--text-muted) !important;
}
table td {
    color: var(--text-color) !important;
    border-color: var(--border-color) !important;
}

/* Body background clean industrial */
body {
    background-color: var(--bg-body) !important;
    background-image:
        radial-gradient(ellipse 70% 40% at 100% 0%, rgba(26,128,248,0.07), transparent 55%),
        radial-gradient(ellipse 50% 30% at 0% 100%, rgba(15,40,80,0.04), transparent 50%) !important;
    color: var(--text-color);
}
body.dark-mode {
    background-image:
        radial-gradient(ellipse 70% 40% at 100% 0%, rgba(26,128,248,0.10), transparent 55%),
        radial-gradient(ellipse 50% 30% at 0% 100%, rgba(0,0,0,0.3), transparent 50%) !important;
}

/* Page head */
.page-head h1 { color: var(--text-color) !important; }
.page-head p { color: var(--text-muted) !important; }

/* Breadcrumb */
.breadcrumb { color: var(--text-muted); }
.breadcrumb a { color: var(--text-muted); }
.breadcrumb a:hover { color: var(--primary); }

/* Toast readable both modes */
.toast {
    background: var(--bg-card) !important;
    color: var(--text-color) !important;
    border: 1px solid var(--border-color) !important;
    box-shadow: var(--shadow-hover) !important;
}

/* Hover cards — no layout break */
.stat-card:hover,
.report-card:hover,
.equip-card:hover,
.today-card:hover,
.wo-card:hover,
.shutdown-card:hover {
    transform: translateY(-2px);
    border-color: var(--primary) !important;
    box-shadow: var(--shadow-hover) !important;
}

/* Sidebar active clear */
.sidebar-menu li a.active {
    background: rgba(26, 128, 248, 0.18) !important;
    color: #fff !important;
}
.sidebar-menu li a:hover {
    background: var(--bg-sidebar-hover) !important;
}

/* Auth pages industrial */
body.login-page {
    background:
        radial-gradient(ellipse at 15% 15%, rgba(26,128,248,0.16), transparent 45%),
        radial-gradient(ellipse at 85% 85%, rgba(12,25,45,0.12), transparent 40%),
        var(--bg-body, #EEF2F7) !important;
}
body.login-page.dark-mode {
    background:
        radial-gradient(ellipse at 15% 15%, rgba(26,128,248,0.12), transparent 45%),
        radial-gradient(ellipse at 85% 85%, rgba(0,0,0,0.4), transparent 40%),
        #0A101C !important;
}
.login-brand {
    background: linear-gradient(165deg, #0C1929 0%, #123050 50%, #1A80F8 160%) !important;
}
.btn-login {
    background: linear-gradient(180deg, #2B8CFF, #1A80F8) !important;
    border-radius: 10px !important;
}
.captcha-q {
    background: linear-gradient(135deg, #0C1929, #1A80F8) !important;
}

/* Fix muted text never equal to main text */
.kit-section .sec-desc,
.subtitle,
.meta,
.hint {
    color: var(--text-muted) !important;
}

/* Ensure icon buttons visible */
.icon-btn, .theme-toggle, .menu-toggle, .collapse-toggle {
    color: var(--text-muted) !important;
}
.icon-btn:hover, .theme-toggle:hover {
    color: var(--text-color) !important;
    background: var(--bg-card-alt) !important;
}

/* Profile text */
.profile .name { color: var(--text-color) !important; }
.profile .role { color: var(--text-muted) !important; }

/* Calendar cells */
.calendar-grid th {
    background: var(--bg-card-alt) !important;
    color: var(--text-muted) !important;
}
.calendar-grid td {
    background: var(--bg-card) !important;
    color: var(--text-color) !important;
    border-color: var(--border-color) !important;
}
.calendar-grid td.empty {
    background: var(--bg-card-alt) !important;
}

/* jstree readability */
.jstree-default .jstree-anchor {
    color: var(--text-color) !important;
}

/* ===== Global search panel ===== */
.global-search-panel {
    position: fixed;
    top: calc(var(--header-height) + 8px);
    right: max(16px, calc(var(--sidebar-width) + 24px));
    width: min(420px, calc(100vw - 32px));
    max-height: 360px;
    overflow: auto;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 14px;
    box-shadow: var(--shadow-hover);
    z-index: 400;
    display: none;
}
body.rtl .global-search-panel {
    right: auto;
    left: max(16px, calc(var(--sidebar-width) + 24px));
}
.global-search-panel.open { display: block; }
.gsp-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    border-bottom: 1px solid var(--border-color);
    font-size: 13px;
}
.gsp-head button {
    border: none;
    background: none;
    color: var(--text-muted);
    cursor: pointer;
}
.gsp-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--border-color);
    color: var(--text-color);
    text-decoration: none;
    font-size: 13.5px;
}
.gsp-item:hover { background: var(--bg-card-alt); }
.gsp-item i { color: var(--primary); width: 18px; }
.gsp-item small { margin-right: auto; color: var(--text-muted); font-size: 11px; }
body:not(.rtl) .gsp-item small { margin-right: 0; margin-left: auto; }
.gsp-empty { padding: 20px; text-align: center; color: var(--text-muted); font-size: 13px; }

/* ===== Mobile bottom navigation ===== */
.mobile-bottom-nav {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 250;
    background: var(--bg-header);
    border-top: 1px solid var(--border-color);
    padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
    justify-content: space-around;
    box-shadow: 0 -4px 20px rgba(0,0,0,0.08);
}
.mobile-bottom-nav a {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 6px 2px;
    font-size: 10px;
    font-weight: 600;
    color: var(--text-muted);
    text-decoration: none;
}
.mobile-bottom-nav a i { font-size: 18px; }
.mobile-bottom-nav a.active { color: var(--primary); }
@media (max-width: 768px) {
    .mobile-bottom-nav { display: flex; }
    .main-content { padding-bottom: calc(var(--footer-height) + 56px) !important; }
    .app-footer { display: none !important; }
}

/* Notif items in panel */
.notif-item {
    padding: 10px 12px;
    border-bottom: 1px solid var(--border-color);
    font-size: 12.5px;
}
.notif-item strong { display: block; margin-bottom: 2px; color: var(--text-color); }
.notif-item span { color: var(--text-muted); }

/* ===== Collapsible sidebar menu groups ===== */
.menu-group { margin: 4px 8px; }
.menu-group-title {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 12px;
    border: none;
    background: transparent;
    color: var(--text-sidebar);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    border-radius: 10px;
    text-align: right;
}
body:not(.rtl) .menu-group-title { text-align: left; }
.menu-group-title span { display: flex; align-items: center; gap: 8px; }
.menu-group-title .chev {
    font-size: 10px;
    opacity: 0.7;
    transition: transform 0.2s;
}
.menu-group.open .menu-group-title .chev { transform: rotate(180deg); }
.menu-group-title:hover { background: var(--bg-sidebar-hover); color: #fff; }
.menu-group-items {
    list-style: none;
    margin: 0;
    padding: 0 0 6px;
    display: none;
    overflow: hidden;
}
.menu-group.open .menu-group-items { display: block; }
.menu-group-items a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px 8px 14px;
    margin: 2px 0;
    border-radius: 10px;
    color: var(--text-sidebar);
    font-size: 13px;
    text-decoration: none;
}
body:not(.rtl) .menu-group-items a { padding: 8px 14px 8px 12px; }
.menu-group-items a:hover { background: var(--bg-sidebar-hover); color: #fff; }
.menu-group-items a.active {
    background: rgba(26, 128, 248, 0.22) !important;
    color: #fff !important;
}

.menu-group.has-active > .menu-group-title {
    color: #fff !important;
    background: rgba(26, 128, 248, 0.18) !important;
}
.menu-group.has-active > .menu-group-title .chev {
    opacity: 1;
    color: var(--primary-light, #5BA3F5);
}
.menu-group.has-active > .menu-group-title span i:first-child {
    color: var(--primary-light, #5BA3F5);
}

.menu-group-items a i { width: 18px; text-align: center; opacity: 0.9; font-size: 13px; }

/* collapsed sidebar: hide group labels text somewhat */
.sidebar.collapsed .menu-group-title span span,
.sidebar.collapsed .sidebar-brand { display: none; }

/* ===== Final industrial polish (safe) ===== */
.sidebar-header {
    padding: 16px 14px !important;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.sidebar-logo {
    display: flex;
    align-items: center;
    gap: 10px;
}
.sidebar-logo img {
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(26,128,248,0.25);
}
.sidebar-brand strong {
    display: block;
    font-size: 14px;
    color: #fff;
    letter-spacing: -0.02em;
}
.sidebar-brand span {
    display: block;
    font-size: 11px;
    color: var(--text-sidebar);
    opacity: 0.75;
    margin-top: 2px;
}

/* Smooth group expand */
.menu-group-items {
    display: block !important;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.28s ease, opacity 0.2s ease, padding 0.2s ease;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
.menu-group.open .menu-group-items {
    max-height: 640px;
    opacity: 1;
    padding-bottom: 6px !important;
}

/* Group title active bar */
.menu-group.has-active > .menu-group-title {
    position: relative;
}
.menu-group.has-active > .menu-group-title::before {
    content: '';
    position: absolute;
    top: 8px;
    bottom: 8px;
    right: 0;
    width: 3px;
    border-radius: 3px;
    background: var(--primary);
}
body:not(.rtl) .menu-group.has-active > .menu-group-title::before {
    right: auto;
    left: 0;
}

/* Page content breathing room */
.page-content {
    animation: pageIn 0.28s ease;
}
@keyframes pageIn {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Cards subtle border glow on focus-within forms */
.card:focus-within,
.dp-demo-card:focus-within {
    border-color: color-mix(in srgb, var(--primary) 35%, var(--border-color));
}

/* Sidebar footer cleaner */
.sidebar-footer {
    border-top: 1px solid rgba(255,255,255,0.06);
    padding: 12px 14px;
    font-size: 11px;
    color: var(--text-sidebar);
}

/* ===== Collapsed sidebar — icon only (new menu groups) ===== */
.sidebar.collapsed {
    width: var(--sidebar-collapsed) !important;
    overflow-x: hidden;
}
.sidebar.collapsed .sidebar-brand,
.sidebar.collapsed .menu-text,
.sidebar.collapsed .chev,
.sidebar.collapsed .sidebar-footer {
    display: none !important;
}
.sidebar.collapsed .sidebar-header {
    justify-content: center;
    padding: 14px 8px !important;
}
.sidebar.collapsed .sidebar-logo {
    justify-content: center;
}
.sidebar.collapsed .menu-group {
    margin: 2px 6px;
}
.sidebar.collapsed .menu-group-title {
    justify-content: center;
    padding: 10px 0;
}
.sidebar.collapsed .menu-group-title span {
    gap: 0;
}
.sidebar.collapsed .menu-group-title span i {
    margin: 0;
    font-size: 16px;
}
/* در حالت جمع: همه زیرمنوها باز بمانند تا آیکون‌ها دیده شوند */
.sidebar.collapsed .menu-group-items {
    max-height: none !important;
    opacity: 1 !important;
    display: block !important;
    padding: 0 !important;
}
.sidebar.collapsed .menu-group-items a {
    justify-content: center !important;
    padding: 10px 0 !important;
    margin: 2px 0;
}
.sidebar.collapsed .menu-group-items a i {
    margin: 0;
    font-size: 15px;
    width: auto;
}
.sidebar.collapsed .menu-group.has-active > .menu-group-title::before {
    display: none;
}
.sidebar.collapsed .menu-group-title {
    background: transparent !important;
}
/* عنوان گروه در حالت جمع فقط آیکون بخش */
.sidebar.collapsed .menu-group-title {
    pointer-events: none; /* جلوگیری از بسته شدن اتفاقی */
    opacity: 0.55;
    padding: 6px 0 2px;
}

/* SweetAlert2 بالای مدال و Select2 */
.swal2-container {
    z-index: 11000 !important;
}
.swal2-container.swal2-backdrop-show,
.swal2-container.swal2-shown {
    z-index: 11000 !important;
}

/* ============================================================
   SweetAlert2 — هماهنگ با تم روشن / تاریک قالب
   ============================================================ */
.swal2-popup {
    background: var(--bg-card) !important;
    color: var(--text-color) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: var(--radius-lg) !important;
    font-family: var(--font-main) !important;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35) !important;
}
.swal2-title {
    color: var(--text-color) !important;
    font-weight: 800 !important;
}
.swal2-html-container,
.swal2-content {
    color: var(--text-muted) !important;
}
.swal2-icon {
    border-color: var(--border-color) !important;
}
.swal2-actions button {
    font-family: var(--font-main) !important;
    border-radius: 10px !important;
    font-weight: 600 !important;
}
.swal2-confirm {
    background: var(--primary) !important;
}
.swal2-confirm:focus {
    box-shadow: var(--shadow-glow) !important;
}
.swal2-cancel {
    background: var(--bg-card-alt) !important;
    color: var(--text-color) !important;
    border: 1px solid var(--border-color) !important;
}
.swal2-deny {
    background: var(--danger) !important;
}
.swal2-input,
.swal2-textarea,
.swal2-select {
    background: var(--bg-card-alt) !important;
    color: var(--text-color) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 10px !important;
}
.swal2-input:focus,
.swal2-textarea:focus,
.swal2-select:focus {
    border-color: var(--primary) !important;
    box-shadow: var(--shadow-glow) !important;
}
.swal2-validation-message {
    background: var(--danger-bg) !important;
    color: var(--danger) !important;
}
.swal2-timer-progress-bar {
    background: var(--primary) !important;
}
body.dark-mode .swal2-popup {
    background: var(--bg-card) !important;
    color: var(--text-color) !important;
    border-color: var(--border-color) !important;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55) !important;
}
body.dark-mode .swal2-container.swal2-backdrop-show {
    background: rgba(0, 0, 0, 0.72) !important;
}
body.dark-mode .swal2-cancel {
    background: var(--bg-card-alt) !important;
    color: var(--text-color) !important;
    border-color: var(--border-color) !important;
}
body.dark-mode .swal2-icon.swal2-success [class^=swal2-success-line],
body.dark-mode .swal2-icon.swal2-success [class^=swal2-success-circular-line] {
    background-color: transparent !important;
}
body.dark-mode .swal2-footer {
    border-top-color: var(--border-color) !important;
    color: var(--text-muted) !important;
}

/* ============================================================
   Select2 در نوار فیلتر / تولبار جداول (سراسری)
   ============================================================ */
.filter-group,
.table-toolbar .filter-group {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.filter-group .select2-container,
.table-toolbar .select2-container {
    width: auto !important;
    min-width: 110px;
}
.filter-group .select2-container--default .select2-selection--single,
.table-toolbar .filter-group .select2-container--default .select2-selection--single {
    height: 36px !important;
    border-radius: 30px !important;
    padding: 0 12px !important;
}
.filter-group .select2-container--default .select2-selection--single .select2-selection__rendered,
.table-toolbar .filter-group .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 34px !important;
    font-size: 12.5px;
    padding-right: 44px !important;
}
body.rtl .filter-group .select2-container--default .select2-selection--single .select2-selection__rendered,
body.rtl .table-toolbar .filter-group .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding-right: 0 !important;
    padding-left: 44px !important;
}
.filter-group .select2-container--default .select2-selection--single .select2-selection__arrow,
.table-toolbar .filter-group .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 34px !important;
}
.filter-group .select2-container--default .select2-selection--single .select2-selection__clear,
.table-toolbar .filter-group .select2-container--default .select2-selection--single .select2-selection__clear {
    right: 24px !important;
}
body.rtl .filter-group .select2-container--default .select2-selection--single .select2-selection__clear,
body.rtl .table-toolbar .filter-group .select2-container--default .select2-selection--single .select2-selection__clear {
    right: auto !important;
    left: 24px !important;
}
/* Select2 داخل مدال‌ها — تمام‌عرض */
.fullscreen-modal .form-group .select2-container,
.fullscreen-modal .fg .select2-container {
    width: 100% !important;
}
.fullscreen-modal .select2-container--default .select2-selection--single {
    height: 42px !important;
    border-radius: 10px !important;
}

/* ============================================================
   Jalali DatePicker (jdp) — سراسری
   ============================================================ */
.jdp-field {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0;
    width: 100%;
}
/* دکمه‌های تقویم سمت شروع متن (راست در RTL) + فاصله متن از آیکون */
.jdp-field .jdp-input,
.jdp-field input.jdp-input,
input.jdp-input[data-jdp],
input.jdp-input[data-jdp-enhanced],
input.jdp-input {
    flex: 1;
    width: 100%;
    padding-block: 10px !important;
    padding-inline-start: 80px !important; /* فاصله از آیکون/ابتدای فیلد */
    padding-inline-end: 14px !important;
    text-align: start !important;
    cursor: pointer;
    box-sizing: border-box !important;
}
.jdp-actions {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    inset-inline-start: 6px;
    inset-inline-end: auto;
    display: flex;
    gap: 2px;
    z-index: 2;
}
.filter-group .jdp-field .jdp-input,
.table-toolbar .jdp-field .jdp-input,
.form-group .jdp-field .jdp-input,
.fg .jdp-field .jdp-input {
    padding-inline-start: 80px !important;
    padding-inline-end: 14px !important;
}
.jdp-btn {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    transition: all 0.15s ease;
}
.jdp-btn:hover {
    color: var(--primary);
    background: var(--bg-card-alt);
    border-color: var(--border-color);
}
.jdp-btn.jdp-clear:hover {
    color: var(--danger);
    background: var(--danger-bg);
}
.jdp-popup {
    position: absolute;
    z-index: 5000;
    top: calc(100% + 6px);
    right: 0;
    width: 320px;
    max-width: min(320px, 92vw);
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 14px;
    box-shadow: var(--shadow-hover);
    padding: 12px;
    display: none;
}
body:not(.rtl) .jdp-popup { right: auto; left: 0; }
.jdp-popup.open { display: block; animation: jdpIn 0.18s ease; }
@keyframes jdpIn {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}
.jdp-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
    gap: 6px;
}
.jdp-head .nav {
    width: 32px; height: 32px;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    background: var(--bg-card-alt);
    color: var(--text-color);
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
}
.jdp-head .nav:hover { border-color: var(--primary); color: var(--primary); }
.jdp-head .title {
    flex: 1;
    text-align: center;
    font-weight: 700;
    font-size: 14px;
    color: var(--text-color);
    cursor: pointer;
    padding: 6px;
    border-radius: 8px;
}
.jdp-head .title:hover { background: var(--bg-card-alt); }
.jdp-week {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    margin-bottom: 4px;
}
.jdp-week span {
    text-align: center;
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
    padding: 4px 0;
}
.jdp-days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
}
.jdp-days button {
    aspect-ratio: 1;
    border: none;
    background: transparent;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-color);
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}
.jdp-days button:hover:not(:disabled) { background: var(--bg-card-alt); }
.jdp-days button.other { color: var(--text-muted); opacity: 0.45; }
.jdp-days button.today { box-shadow: inset 0 0 0 1.5px var(--primary); }
.jdp-days button.selected {
    background: var(--primary) !important;
    color: #fff !important;
}
.jdp-time {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--border-color);
    justify-content: center;
    direction: ltr;
}
.jdp-time select {
    width: 64px;
    padding: 6px 8px;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    background: var(--bg-card-alt);
    color: var(--text-color);
    font-size: 13px;
    font-weight: 600;
}
.jdp-time span { color: var(--text-muted); font-weight: 700; }
.jdp-foot {
    display: flex;
    gap: 6px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--border-color);
}
.jdp-foot button {
    flex: 1;
    padding: 8px;
    border-radius: 9px;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid var(--border-color);
    background: var(--bg-card-alt);
    color: var(--text-color);
}
.jdp-foot button.primary {
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
}
.jdp-months, .jdp-years {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
}
.jdp-months button, .jdp-years button {
    padding: 12px 6px;
    border: 1px solid var(--border-color);
    background: var(--bg-card-alt);
    border-radius: 10px;
    color: var(--text-color);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
}
.jdp-months button.active, .jdp-years button.active {
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
}
.jdp-months button:hover, .jdp-years button:hover { border-color: var(--primary); }
/* داخل مدال */
.fullscreen-modal .jdp-popup {
    z-index: 10070 !important;
}
body.modal-open .jdp-popup.open {
    z-index: 10070 !important;
}
/* فیلترهای جمع‌وجور */
.filter-group .jdp-field,
.table-toolbar .jdp-field {
    width: auto;
    min-width: 140px;
}
.filter-group .jdp-field .jdp-input,
.table-toolbar .jdp-field .jdp-input {
    height: 36px;
    border-radius: 30px !important;
    font-size: 12.5px;
    padding-inline-start: 72px !important;
    padding-inline-end: 12px !important;
}

.form-hint {
    display: block;
    margin-top: 6px;
    font-size: 11.5px;
    color: var(--text-muted);
    line-height: 1.4;
}

.jdp-popup.jdp-popup-fixed {
    position: fixed !important;
    z-index: 10070 !important;
}

/* Select2 نباید داخل SweetAlert ظاهر شود */
.swal2-container .select2-container,
.swal2-popup .select2-container {
    display: none !important;
}
/* select خالی پیش‌فرض سویت‌الرت (بدون option) همیشه مخفی بماند */
#swal2-select:empty,
.swal2-select:empty,
#swal2-select:not(:has(option)),
.swal2-select:not(:has(option)) {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    opacity: 0 !important;
    pointer-events: none !important;
    position: absolute !important;
    visibility: hidden !important;
}
/* اگر Select2 روی select سویت‌الرت اعمال شده بود، مخفی بماند */
.swal2-container select.select2-hidden-accessible,
.swal2-popup select.select2-hidden-accessible {
    display: none !important;
}

/* ============================================================
   Tab panels spacing — جلوگیری از چسبیدن متن به لبه
   ============================================================ */
.tab-panel.active,
.tabs-content .tab-panel.active {
    padding-block: 8px;
}
.tab-panel .table-wrap,
.card .table-wrap {
    overflow: hidden;
}
.tab-panel table th,
.tab-panel table td,
.table-wrap table th,
.table-wrap table td {
    padding-inline: 16px;
}
.page-content {
    padding-inline: max(16px, env(safe-area-inset-left));
}
.card-body,
.card .card-body {
    padding: 16px 18px;
}

/* ===================================================================
   Page-specific styles (from inline <style> — exact content)
   Special full-page layouts keep their own <style> to avoid body conflicts
=================================================================== */

/* ---------- from admin.html ---------- */

.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.admin-tile{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;padding:18px;text-decoration:none;color:inherit;box-shadow:var(--shadow);transition:transform .2s,border-color .2s}
.admin-tile:hover{transform:translateY(-2px);border-color:var(--primary)}
.admin-tile i{font-size:22px;color:var(--primary);margin-bottom:10px}
.admin-tile h3{margin:0 0 4px;font-size:14px}
.admin-tile p{margin:0;font-size:12px;color:var(--text-muted);line-height:1.5}

/* ---------- from attachments.html ---------- */

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

        .file-card {
            background: var(--bg-card);
            border-radius: var(--radius-sm);
            border: 1px solid var(--border-color);
            padding: 14px 16px;
            transition: all var(--transition);
        }

        .file-card:hover {
            border-color: var(--primary);
            transform: translateY(-2px);
            box-shadow: var(--shadow-hover);
        }

        .file-card .icon {
            width: 48px;
            height: 48px;
            border-radius: 12px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 22px;
            background: var(--primary-glow);
            color: var(--primary);
            margin-bottom: 8px;
        }

        .file-card .name {
            font-weight: 600;
            font-size: 13px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .file-card .meta {
            font-size: 11px;
            color: var(--text-muted);
            margin-top: 4px;
        }

        .file-card .parent {
            font-size: 11px;
            color: var(--text-muted);
            margin-top: 2px;
        }

        .file-card .parent a {
            color: var(--primary);
            text-decoration: underline;
        }

        .file-card .actions {
            margin-top: 8px;
            display: flex;
            gap: 6px;
        }

        .type-badge {
            font-size: 10px;
            padding: 0 8px;
            border-radius: 10px;
            background: var(--bg-card-alt);
            border: 1px solid var(--border-color);
            color: var(--text-muted);
        }

        .table-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            align-items: center;
            margin-bottom: 16px;
        }

        .table-toolbar .search-box {
            flex: 1;
            min-width: 200px;
        }

        .table-toolbar .search-box input {
            width: 100%;
            padding: 10px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 13px;
            transition: border 0.25s;
        }

        .table-toolbar .search-box input:focus {
            border-color: var(--primary);
            outline: none;
            box-shadow: var(--shadow-glow);
        }

        .filter-group {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
        }

        .filter-group select {
            padding: 8px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 12.5px;
            cursor: pointer;
            transition: border 0.25s;
        }

        .filter-group select:focus {
            border-color: var(--primary);
            outline: none;
        }

        .pagination {
            display: flex;
            justify-content: flex-end;
            align-items: center;
            gap: 8px;
            margin-top: 16px;
            flex-wrap: wrap;
        }

        .pagination button {
            padding: 6px 14px;
            border-radius: 20px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            color: var(--text-color);
            cursor: pointer;
            transition: all 0.2s;
            font-size: 12.5px;
        }

        .pagination button:hover:not(:disabled) {
            border-color: var(--primary);
            color: var(--primary);
        }

        .pagination button.active {
            background: var(--primary);
            border-color: var(--primary);
            color: #fff;
            font-weight: 700;
        }

        .pagination button:disabled {
            opacity: 0.4;
            cursor: not-allowed;
        }

        .pagination .info {
            font-size: 12.5px;
            color: var(--text-muted);
        }

        .empty-state {
            text-align: center;
            padding: 40px 20px;
            color: var(--text-muted);
        }

        .empty-state i {
            font-size: 40px;
            color: var(--border-color);
            margin-bottom: 12px;
            display: block;
        }

/* ---------- from audit-log.html ---------- */

.audit-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px;padding:12px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px}
.audit-filters input,.audit-filters select{padding:8px 12px;border-radius:10px;border:1px solid var(--border-color);background:var(--bg-card-alt);color:var(--text-color);font-size:13px}
.table-wrap{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;overflow:auto}
table.audit{width:100%;border-collapse:collapse;font-size:13px;min-width:720px}
table.audit th{text-align:right;padding:11px 14px;background:var(--bg-card-alt);color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--border-color)}
table.audit td{padding:11px 14px;border-bottom:1px solid var(--border-color);color:var(--text-color)}
table.audit tr:hover td{background:var(--bg-card-alt)}
.act-badge{font-size:11px;font-weight:700;padding:3px 8px;border-radius:8px}
.act-create{background:rgba(34,197,94,.12);color:#16A34A}
.act-update{background:rgba(26,128,248,.12);color:#1A80F8}
.act-delete{background:rgba(239,68,68,.12);color:#DC2626}
.act-login{background:rgba(139,92,246,.12);color:#7C3AED}

/* ---------- from cost-management.html ---------- */

.table-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            align-items: center;
            margin-bottom: 16px;
        }
        .table-toolbar .search-box { flex: 1; min-width: 200px; }
        .table-toolbar .search-box input {
            width: 100%;
            padding: 10px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 13px;
            transition: border 0.25s;
        }
        .table-toolbar .search-box input:focus {
            border-color: var(--primary);
            outline: none;
            box-shadow: var(--shadow-glow);
        }
        .filter-group {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
        }
        .filter-group select,
        .filter-group input[type="date"] {
            padding: 8px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 12.5px;
            cursor: pointer;
            transition: border 0.25s;
        }
        .filter-group select:focus,
        .filter-group input[type="date"]:focus {
            border-color: var(--primary);
            outline: none;
        }

        .pagination {
            display: flex;
            justify-content: flex-end;
            align-items: center;
            gap: 8px;
            margin-top: 16px;
            flex-wrap: wrap;
        }
        .pagination button {
            padding: 6px 14px;
            border-radius: 20px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            color: var(--text-color);
            cursor: pointer;
            transition: all 0.2s;
            font-size: 12.5px;
        }
        .pagination button:hover:not(:disabled) { border-color: var(--primary); color: var(--primary); }
        .pagination button.active {
            background: var(--primary);
            border-color: var(--primary);
            color: #fff;
            font-weight: 700;
        }
        .pagination button:disabled { opacity: 0.4; cursor: not-allowed; }
        .pagination .info { font-size: 12.5px; color: var(--text-muted); }

        .empty-state {
            text-align: center;
            padding: 40px 20px;
            color: var(--text-muted);
        }
        .empty-state i { font-size: 40px; color: var(--border-color); margin-bottom: 12px; display: block; }

        .budget-grid {
            display: grid;
            grid-template-columns: 1fr 1fr 1fr;
            gap: 14px;
            margin-bottom: 16px;
        }
        .budget-card {
            background: var(--bg-card);
            border-radius: var(--radius-sm);
            border: 1px solid var(--border-color);
            padding: 14px 16px;
            transition: all var(--transition);
        }
        .budget-card:hover {
            border-color: var(--primary);
            transform: translateY(-2px);
            box-shadow: var(--shadow-hover);
        }
        .budget-card .title { font-weight: 700; font-size: 14px; }
        .budget-card .amount { font-size: 18px; font-weight: 800; font-family: var(--font-mono); margin-top: 4px; }
        .budget-card .progress {
            margin-top: 6px;
            height: 6px;
            background: var(--border-color);
            border-radius: 10px;
            overflow: hidden;
        }
        .budget-card .progress .bar {
            height: 100%;
            border-radius: 10px;
            transition: width 0.5s ease;
        }
        .budget-card .meta {
            font-size: 12px;
            color: var(--text-muted);
            margin-top: 4px;
            display: flex;
            justify-content: space-between;
        }

        .cost-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 6px 10px;
            background: var(--bg-card-alt);
            border-radius: 6px;
            border: 1px solid var(--border-color);
            margin-bottom: 4px;
        }
        .cost-item .desc { font-weight: 500; font-size: 13px; }
        .cost-item .amount { font-weight: 700; font-family: var(--font-mono); }
        .cost-item .date { font-size: 11px; color: var(--text-muted); }
        .cost-item .actions { display: flex; gap: 4px; }

        .chart-container {
            position: relative;
            height: 250px;
        }

        @media (max-width: 1024px) {
            .budget-grid { grid-template-columns: 1fr 1fr; }
        }
        @media (max-width: 768px) {
            .budget-grid { grid-template-columns: 1fr; }
            .table-toolbar { flex-direction: column; align-items: stretch; }
            .filter-group { justify-content: center; }
        }

/* ---------- from date-input.html ---------- */

.dp-page-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 16px;
        }
        @media (max-width: 960px) {
            .dp-page-grid { grid-template-columns: 1fr; }
        }
        .dp-demo-card {
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: var(--radius);
            padding: 20px;
            box-shadow: var(--shadow);
        }
        .dp-demo-card h3 {
            margin: 0 0 6px;
            font-size: 15px;
            font-weight: 700;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        .dp-demo-card h3 i { color: var(--primary); }
        .dp-demo-card .desc {
            font-size: 12.5px;
            color: var(--text-muted);
            margin-bottom: 14px;
        }
        .dp-field { position: relative; margin-bottom: 10px; }
        .dp-field label {
            display: block;
            font-size: 12px;
            font-weight: 600;
            color: var(--text-muted);
            margin-bottom: 6px;
        }
        .dp-input-wrap {
            display: flex;
            align-items: center;
            gap: 0;
            background: var(--bg-card-alt);
            border: 1px solid var(--border-color);
            border-radius: 10px;
            overflow: hidden;
            transition: border 0.2s, box-shadow 0.2s;
        }
        .dp-input-wrap:focus-within {
            border-color: var(--primary);
            box-shadow: var(--shadow-glow);
        }
        .dp-input-wrap input {
            flex: 1;
            border: none !important;
            background: transparent !important;
            box-shadow: none !important;
            padding: 11px 12px;
            color: var(--text-color);
            font-size: 13.5px;
            outline: none;
            min-width: 0;
        }
        .dp-input-wrap button {
            border: none;
            background: transparent;
            color: var(--text-muted);
            width: 42px;
            height: 42px;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
        }
        .dp-input-wrap button:hover { color: var(--primary); }
        .dp-result {
            margin-top: 10px;
            padding: 10px 12px;
            background: var(--bg-card-alt);
            border-radius: 10px;
            font-size: 12.5px;
            color: var(--text-muted);
            border: 1px dashed var(--border-color);
            min-height: 40px;
        }
        .dp-result strong { color: var(--text-color); }
        .dp-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-bottom: 16px;
            padding: 12px 14px;
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 12px;
            align-items: center;
        }
        .dp-toolbar .seg {
            display: flex;
            background: var(--bg-card-alt);
            border-radius: 10px;
            padding: 3px;
            border: 1px solid var(--border-color);
        }
        .dp-toolbar .seg button {
            border: none;
            background: transparent;
            padding: 7px 14px;
            border-radius: 8px;
            font-size: 12.5px;
            font-weight: 600;
            color: var(--text-muted);
            cursor: pointer;
        }
        .dp-toolbar .seg button.active {
            background: var(--primary);
            color: #fff;
        }
        .dp-toolbar .hint {
            margin-right: auto;
            font-size: 12px;
            color: var(--text-muted);
        }
        body:not(.rtl) .dp-toolbar .hint { margin-right: 0; margin-left: auto; }

        /* ===== Popup Calendar ===== */
        .jdp-popup {
            position: absolute;
            z-index: 500;
            top: calc(100% + 6px);
            right: 0;
            width: 320px;
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 14px;
            box-shadow: var(--shadow-hover);
            padding: 12px;
            display: none;
        }
        body:not(.rtl) .jdp-popup { right: auto; left: 0; }
        .jdp-popup.open { display: block; animation: jdpIn 0.18s ease; }
        @keyframes jdpIn {
            from { opacity: 0; transform: translateY(-6px); }
            to { opacity: 1; transform: translateY(0); }
        }
        .jdp-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 10px;
            gap: 6px;
        }
        .jdp-head .nav {
            width: 32px; height: 32px;
            border-radius: 8px;
            border: 1px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            cursor: pointer;
            display: flex; align-items: center; justify-content: center;
        }
        .jdp-head .nav:hover { border-color: var(--primary); color: var(--primary); }
        .jdp-head .title {
            flex: 1;
            text-align: center;
            font-weight: 700;
            font-size: 14px;
            color: var(--text-color);
            cursor: pointer;
            padding: 6px;
            border-radius: 8px;
        }
        .jdp-head .title:hover { background: var(--bg-card-alt); }
        .jdp-week {
            display: grid;
            grid-template-columns: repeat(7, 1fr);
            gap: 2px;
            margin-bottom: 4px;
        }
        .jdp-week span {
            text-align: center;
            font-size: 11px;
            font-weight: 600;
            color: var(--text-muted);
            padding: 4px 0;
        }
        .jdp-days {
            display: grid;
            grid-template-columns: repeat(7, 1fr);
            gap: 2px;
        }
        .jdp-days button {
            aspect-ratio: 1;
            border: none;
            background: transparent;
            border-radius: 9px;
            font-size: 13px;
            font-weight: 600;
            color: var(--text-color);
            cursor: pointer;
            transition: background 0.15s, color 0.15s;
            position: relative;
        }
        .jdp-days button:hover:not(:disabled) {
            background: var(--bg-card-alt);
        }
        .jdp-days button.other {
            color: var(--text-muted);
            opacity: 0.45;
        }
        .jdp-days button.today {
            box-shadow: inset 0 0 0 1.5px var(--primary);
        }
        .jdp-days button.selected {
            background: var(--primary) !important;
            color: #fff !important;
        }
        .jdp-days button.in-range {
            background: color-mix(in srgb, var(--primary) 16%, transparent);
            color: var(--primary);
            border-radius: 0;
        }
        .jdp-days button.range-start {
            background: var(--primary) !important;
            color: #fff !important;
            border-radius: 9px 0 0 9px;
        }
        .jdp-days button.range-end {
            background: var(--primary) !important;
            color: #fff !important;
            border-radius: 0 9px 9px 0;
        }
        .jdp-days button.multi-selected {
            background: color-mix(in srgb, var(--primary) 20%, transparent);
            color: var(--primary);
            box-shadow: inset 0 0 0 1.5px var(--primary);
        }
        .jdp-days button:disabled { opacity: 0.3; cursor: default; }
        .jdp-time {
            display: flex;
            align-items: center;
            gap: 8px;
            margin-top: 10px;
            padding-top: 10px;
            border-top: 1px solid var(--border-color);
            justify-content: center;
            direction: ltr; /* ساعت چپ، دقیقه راست — حتی در صفحه RTL/شمسی */
        }
        .jdp-time select {
            width: 64px;
            padding: 6px 8px;
            border-radius: 8px;
            border: 1px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 13px;
            font-weight: 600;
        }
        .jdp-time span { color: var(--text-muted); font-weight: 700; }
        .jdp-foot {
            display: flex;
            gap: 6px;
            margin-top: 10px;
            padding-top: 10px;
            border-top: 1px solid var(--border-color);
        }
        .jdp-foot button {
            flex: 1;
            padding: 8px;
            border-radius: 9px;
            font-size: 12.5px;
            font-weight: 600;
            cursor: pointer;
            border: 1px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
        }
        .jdp-foot button.primary {
            background: var(--primary);
            color: #fff;
            border-color: var(--primary);
        }
        .jdp-foot button:hover { filter: brightness(1.05); }
        .jdp-months, .jdp-years {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 6px;
        }
        .jdp-months button, .jdp-years button {
            padding: 12px 6px;
            border: 1px solid var(--border-color);
            background: var(--bg-card-alt);
            border-radius: 10px;
            color: var(--text-color);
            font-size: 12.5px;
            font-weight: 600;
            cursor: pointer;
        }
        .jdp-months button.active, .jdp-years button.active {
            background: var(--primary);
            color: #fff;
            border-color: var(--primary);
        }
        .jdp-months button:hover, .jdp-years button:hover {
            border-color: var(--primary);
        }
        .chips {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
            margin-top: 8px;
        }
        .chip-date {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 4px 10px;
            border-radius: 20px;
            background: color-mix(in srgb, var(--primary) 12%, transparent);
            color: var(--primary);
            font-size: 12px;
            font-weight: 600;
        }
        .chip-date button {
            border: none;
            background: none;
            color: inherit;
            cursor: pointer;
            padding: 0;
            font-size: 11px;
            opacity: 0.7;
        }
        .chip-date button:hover { opacity: 1; }

/* ---------- from equipment-categories.html ---------- */

/* استایل‌های ثابت (همانند قبل) */
        .tree-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin-bottom: 16px;
            padding: 12px 16px;
            background: var(--bg-card-alt);
            border-radius: 14px;
            border: 1px solid var(--border-color);
            align-items: center;
        }
        .tree-toolbar .btn-sm { padding: 6px 16px; font-size: 12.5px; }
        .tree-toolbar .hint {
            font-size: 12px;
            color: var(--text-muted);
            margin-right: auto;
        }
        body.rtl .tree-toolbar .hint { margin-right: 0; margin-left: auto; }
        #categoryTree {
            min-height: 400px;
            padding: 12px 8px;
            background: var(--bg-card);
            border-radius: 14px;
            border: 1px solid var(--border-color);
            transition: all 0.25s;
        }
        .jstree-default .jstree-anchor {
            font-family: var(--font-fa) !important;
            font-size: 13.5px;
            color: var(--text-color) !important;
            padding: 4px 6px !important;
            border-radius: 8px !important;
        }
        .jstree-default .jstree-clicked {
            background: var(--primary-glow) !important;
            color: var(--primary) !important;
        }
        .jstree-default .jstree-node[data-type="equipment_type"] > .jstree-anchor .jstree-icon {
            color: #F59E0B !important;
        }
        .jstree-default .jstree-node[data-type="model"] > .jstree-anchor .jstree-icon {
            color: #8B5CF6 !important;
        }

        .search-box {
            display: flex;
            align-items: center;
            background: var(--bg-card-alt);
            border-radius: 30px;
            padding: 2px 12px;
            border: 1px solid var(--border-color);
            transition: border 0.25s, background 0.25s;
            flex: 1;
            min-width: 200px;
        }
        .search-box:focus-within {
            border-color: var(--primary);
            box-shadow: var(--shadow-glow);
        }
        .search-box i { color: var(--text-muted); font-size: 13px; }
        .search-box input {
            border: none;
            background: transparent;
            padding: 8px 6px;
            font-size: 13px;
            color: var(--text-color);
            outline: none;
            width: 100%;
        }
        .search-box .clear-search {
            cursor: pointer;
            color: var(--text-muted);
            display: none;
        }
        .search-box .clear-search.visible { display: block; }

        .attr-row {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
            align-items: center;
            margin-bottom: 8px;
            background: var(--bg-card-alt);
            padding: 8px;
            border-radius: 10px;
            border: 1px solid var(--border-color);
        }
        .attr-row input, .attr-row select {
            padding: 6px 10px;
            border-radius: 6px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            color: var(--text-color);
            font-size: 12px;
            flex: 1;
            min-width: 80px;
        }
        .attr-row .btn-sm { padding: 4px 10px; }
        .attr-item {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 6px;
            padding: 6px 10px;
            background: var(--bg-card);
            border-radius: 8px;
            border: 1px solid var(--border-color);
            margin-bottom: 4px;
        }
        .attr-item .key { font-weight: 600; margin-left: 4px; }
        .attr-item .value { color: var(--text-muted); }
        .attr-item .unit { color: var(--text-muted); font-size: 11px; background: var(--border-color); padding: 0 6px; border-radius: 4px; }
        .attr-item .type-badge { font-size: 10px; background: var(--primary-glow); padding: 0 6px; border-radius: 4px; color: var(--primary); }

        @media (max-width: 768px) {
            .tree-toolbar { flex-direction: column; align-items: stretch; }
            .tree-toolbar .hint { margin: 0; text-align: center; }
            .search-box { min-width: unset; }
            .attr-row { flex-direction: column; align-items: stretch; }
        }
    
        /* ===== بهبود ظاهر درخت ===== */
        #equipmentTree, #categoryTree {
            min-height: 420px;
            padding: 16px 12px;
            background: var(--bg-card);
            border-radius: 16px;
            border: 1px solid var(--border-color);
            box-shadow: inset 0 1px 0 rgba(255,255,255,0.03);
        }
        .jstree-default .jstree-anchor {
            font-family: inherit !important;
            font-size: 13.5px !important;
            color: var(--text-color) !important;
            padding: 6px 10px !important;
            border-radius: 10px !important;
            line-height: 1.45 !important;
            transition: background 0.15s, color 0.15s !important;
        }
        .jstree-default .jstree-anchor:hover {
            background: var(--bg-card-alt) !important;
        }
        .jstree-default .jstree-clicked {
            background: color-mix(in srgb, var(--primary) 14%, transparent) !important;
            color: var(--primary) !important;
            font-weight: 600 !important;
            box-shadow: 0 0 0 1px color-mix(in srgb, var(--primary) 25%, transparent);
        }
        .jstree-default .jstree-hovered {
            background: var(--bg-card-alt) !important;
        }
        .jstree-default .jstree-icon {
            width: 22px !important;
            height: 22px !important;
            line-height: 22px !important;
            margin-left: 4px !important;
            font-size: 14px !important;
        }
        .jstree-default .jstree-node {
            margin-left: 0 !important;
            margin-right: 8px !important;
        }
        body:not(.rtl) .jstree-default .jstree-node {
            margin-right: 0 !important;
            margin-left: 8px !important;
        }
        .jstree-default .jstree-children {
            padding-right: 12px !important;
            border-right: 1px dashed color-mix(in srgb, var(--border-color) 80%, transparent);
            margin-right: 10px;
        }
        body:not(.rtl) .jstree-default .jstree-children {
            padding-right: 0 !important;
            border-right: none;
            padding-left: 12px !important;
            border-left: 1px dashed color-mix(in srgb, var(--border-color) 80%, transparent);
            margin-left: 10px;
            margin-right: 0;
        }
        .tree-toolbar {
            border-radius: 14px !important;
            gap: 8px !important;
            background: linear-gradient(180deg, var(--bg-card-alt), var(--bg-card)) !important;
        }
        .tree-toolbar .search-box {
            flex: 1;
            min-width: 180px;
            max-width: 320px;
            display: flex;
            align-items: center;
            gap: 8px;
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 10px;
            padding: 6px 12px;
        }
        .tree-toolbar .search-box input {
            border: none;
            background: transparent;
            outline: none;
            flex: 1;
            color: var(--text-color);
            font-size: 13px;
        }
        .tree-toolbar .btn-sm {
            border-radius: 10px !important;
            font-weight: 600;
        }
        .card {
            border-radius: 16px;
            overflow: hidden;
        }
        .card-title {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding-bottom: 12px;
            margin-bottom: 4px;
            border-bottom: 1px solid var(--border-color);
        }

/* ---------- from equipment-detail.html ---------- */

.eq-hero {
            display: grid;
            grid-template-columns: auto 1fr auto;
            gap: 18px;
            align-items: center;
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 16px;
            padding: 20px;
            margin-bottom: 16px;
        }
        .eq-icon {
            width: 72px; height: 72px;
            border-radius: 18px;
            background: linear-gradient(135deg, #1A80F8, #3B82F6);
            color: #fff;
            display: flex; align-items: center; justify-content: center;
            font-size: 28px;
        }
        .eq-hero h2 { margin: 0 0 4px; font-size: 20px; }
        .eq-hero .code { font-family: var(--font-mono); color: var(--text-muted); font-size: 13px; }
        .eq-hero .tags { display: flex; gap: 6px; margin-top: 8px; flex-wrap: wrap; }
        .tag {
            font-size: 11px; font-weight: 600;
            padding: 3px 10px; border-radius: 20px;
            background: var(--bg-card-alt); color: var(--text-muted);
            border: 1px solid var(--border-color);
        }
        .tag.ok { background: rgba(34,197,94,0.12); color: #16A34A; border-color: transparent; }
        .tag.warn { background: rgba(245,158,11,0.12); color: #D97706; border-color: transparent; }
        .eq-stats {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 12px;
            margin-bottom: 16px;
        }
        .eq-stat {
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 14px;
            padding: 14px 16px;
            text-align: center;
        }
        .eq-stat .v { font-size: 22px; font-weight: 800; font-family: var(--font-mono); }
        .eq-stat .l { font-size: 11.5px; color: var(--text-muted); margin-top: 4px; }
        .tabs {
            display: flex; gap: 4px; margin-bottom: 14px;
            border-bottom: 1px solid var(--border-color);
            overflow-x: auto;
        }
        .tabs .tab {
            padding: 10px 16px;
            font-size: 13px; font-weight: 600;
            color: var(--text-muted);
            cursor: pointer;
            border-bottom: 2px solid transparent;
            white-space: nowrap;
        }
        .tabs .tab.active { color: var(--primary); border-bottom-color: var(--primary); }
        .tab-panel { display: none; }
        .tab-panel.active { display: block; padding: 4px 2px 8px; }
        .tab-panel .table-wrap { padding: 0; }
        .tab-panel table.data th,
        .tab-panel table.data td {
            padding: 12px 18px !important;
        }
        .tab-panel table.data th:first-child,
        .tab-panel table.data td:first-child {
            padding-inline-start: 20px !important;
        }
        .tab-panel table.data th:last-child,
        .tab-panel table.data td:last-child {
            padding-inline-end: 20px !important;
        }
        .info-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 10px 24px;
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 14px;
            padding: 18px;
        }
        .info-item label { display: block; font-size: 11.5px; color: var(--text-muted); margin-bottom: 3px; }
        .info-item div { font-size: 13.5px; font-weight: 600; }
        .table-wrap {
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 14px;
            overflow: hidden;
        }
        table.data {
            width: 100%;
            border-collapse: collapse;
            font-size: 13px;
        }
        table.data th {
            text-align: right;
            padding: 10px 14px;
            background: var(--bg-card-alt);
            color: var(--text-muted);
            font-weight: 600;
            border-bottom: 1px solid var(--border-color);
        }
        table.data td {
            padding: 10px 14px;
            border-bottom: 1px solid var(--border-color);
        }
        table.data tr:last-child td { border-bottom: none; }
        @media (max-width: 800px) {
            .eq-hero { grid-template-columns: 1fr; text-align: center; }
            .eq-hero .tags { justify-content: center; }
            .eq-stats { grid-template-columns: 1fr 1fr; }
            .info-grid { grid-template-columns: 1fr; }
        }

/* ---------- from equipment-tree.html ---------- */

.tree-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin-bottom: 16px;
            padding: 12px 16px;
            background: var(--bg-card-alt);
            border-radius: 14px;
            border: 1px solid var(--border-color);
            align-items: center;
        }
        .tree-toolbar .btn-sm { padding: 6px 16px; font-size: 12.5px; }
        .tree-toolbar .hint {
            font-size: 12px;
            color: var(--text-muted);
            margin-right: auto;
        }
        body.rtl .tree-toolbar .hint { margin-right: 0; margin-left: auto; }
        #equipmentTree {
            min-height: 400px;
            padding: 12px 8px;
            background: var(--bg-card);
            border-radius: 14px;
            border: 1px solid var(--border-color);
            transition: all 0.25s;
        }
        .jstree-default .jstree-anchor {
            font-family: var(--font-fa) !important;
            font-size: 13.5px;
            color: var(--text-color) !important;
            padding: 4px 6px !important;
            border-radius: 8px !important;
        }
        .jstree-default .jstree-clicked {
            background: var(--primary-glow) !important;
            color: var(--primary) !important;
        }

        /* رنگ آیکون‌ها */
        .jstree-default .jstree-node[data-type="company"] > .jstree-anchor .jstree-icon { color: #1A80F8 !important; }
        .jstree-default .jstree-node[data-type="complex"] > .jstree-anchor .jstree-icon { color: #3B82F6 !important; }
        .jstree-default .jstree-node[data-type="factory"] > .jstree-anchor .jstree-icon { color: #60A5FA !important; }
        .jstree-default .jstree-node[data-type="unit"] > .jstree-anchor .jstree-icon { color: #34D399 !important; }
        .jstree-default .jstree-node[data-type="process"] > .jstree-anchor .jstree-icon { color: #F59E0B !important; }
        .jstree-default .jstree-node[data-type="line"] > .jstree-anchor .jstree-icon { color: #FBBF24 !important; }
        .jstree-default .jstree-node[data-type="operation"] > .jstree-anchor .jstree-icon { color: #F97316 !important; }
        .jstree-default .jstree-node[data-type="station"] > .jstree-anchor .jstree-icon { color: #FB923C !important; }
        .jstree-default .jstree-node[data-type="parent_equipment"] > .jstree-anchor .jstree-icon { color: #8B5CF6 !important; }
        .jstree-default .jstree-node[data-type="equipment"] > .jstree-anchor .jstree-icon { color: #EC4899 !important; }
        .jstree-default .jstree-node[data-type="sub_equipment"] > .jstree-anchor .jstree-icon { color: #14B8A6 !important; }
        .jstree-default .jstree-node[data-type="component"] > .jstree-anchor .jstree-icon { color: #06B6D4 !important; }
        .jstree-default .jstree-node[data-type="circuit"] > .jstree-anchor .jstree-icon { color: #8B5CF6 !important; }

        /* مخفی کردن فلش برای گره‌های بدون فرزند */
        #equipmentTree .jstree-node.jstree-leaf > .jstree-ocl {
            display: none !important;
        }
        #equipmentTree .jstree-node.jstree-leaf {
            background-image: none !important;
        }

        .search-box {
            display: flex;
            align-items: center;
            background: var(--bg-card-alt);
            border-radius: 30px;
            padding: 2px 12px;
            border: 1px solid var(--border-color);
            transition: border 0.25s, background 0.25s;
            flex: 1;
            min-width: 200px;
        }
        .search-box:focus-within {
            border-color: var(--primary);
            box-shadow: var(--shadow-glow);
        }
        .search-box i { color: var(--text-muted); font-size: 13px; }
        .search-box input {
            border: none;
            background: transparent;
            padding: 8px 6px;
            font-size: 13px;
            color: var(--text-color);
            outline: none;
            width: 100%;
        }
        .search-box .clear-search {
            cursor: pointer;
            color: var(--text-muted);
            display: none;
        }
        .search-box .clear-search.visible { display: block; }

        .attr-field {
            margin-bottom: 8px;
        }
        .attr-field label {
            display: block;
            font-size: 12.5px;
            font-weight: 600;
            margin-bottom: 2px;
        }
        .attr-field input, .attr-field select {
            width: 100%;
            padding: 6px 10px;
            border-radius: 6px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            color: var(--text-color);
            font-size: 13px;
        }
        .checkbox-group {
            margin: 10px 0;
            display: flex;
            flex-direction: column;
            gap: 6px;
        }
        .checkbox-group label {
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 13px;
            font-weight: 500;
            cursor: pointer;
        }
        .checkbox-group input[type="checkbox"] {
            width: 18px;
            height: 18px;
            accent-color: var(--primary);
            cursor: pointer;
        }

        @media (max-width: 768px) {
            .tree-toolbar { flex-direction: column; align-items: stretch; }
            .tree-toolbar .hint { margin: 0; text-align: center; }
            .search-box { min-width: unset; }
        }
    
        /* ===== بهبود ظاهر درخت ===== */
        #equipmentTree, #categoryTree {
            min-height: 420px;
            padding: 16px 12px;
            background: var(--bg-card);
            border-radius: 16px;
            border: 1px solid var(--border-color);
            box-shadow: inset 0 1px 0 rgba(255,255,255,0.03);
        }
        .jstree-default .jstree-anchor {
            font-family: inherit !important;
            font-size: 13.5px !important;
            color: var(--text-color) !important;
            padding: 6px 10px !important;
            border-radius: 10px !important;
            line-height: 1.45 !important;
            transition: background 0.15s, color 0.15s !important;
        }
        .jstree-default .jstree-anchor:hover {
            background: var(--bg-card-alt) !important;
        }
        .jstree-default .jstree-clicked {
            background: color-mix(in srgb, var(--primary) 14%, transparent) !important;
            color: var(--primary) !important;
            font-weight: 600 !important;
            box-shadow: 0 0 0 1px color-mix(in srgb, var(--primary) 25%, transparent);
        }
        .jstree-default .jstree-hovered {
            background: var(--bg-card-alt) !important;
        }
        .jstree-default .jstree-icon {
            width: 22px !important;
            height: 22px !important;
            line-height: 22px !important;
            margin-left: 4px !important;
            font-size: 14px !important;
        }
        .jstree-default .jstree-node {
            margin-left: 0 !important;
            margin-right: 8px !important;
        }
        body:not(.rtl) .jstree-default .jstree-node {
            margin-right: 0 !important;
            margin-left: 8px !important;
        }
        .jstree-default .jstree-children {
            padding-right: 12px !important;
            border-right: 1px dashed color-mix(in srgb, var(--border-color) 80%, transparent);
            margin-right: 10px;
        }
        body:not(.rtl) .jstree-default .jstree-children {
            padding-right: 0 !important;
            border-right: none;
            padding-left: 12px !important;
            border-left: 1px dashed color-mix(in srgb, var(--border-color) 80%, transparent);
            margin-left: 10px;
            margin-right: 0;
        }
        .tree-toolbar {
            border-radius: 14px !important;
            gap: 8px !important;
            background: linear-gradient(180deg, var(--bg-card-alt), var(--bg-card)) !important;
        }
        .tree-toolbar .search-box {
            flex: 1;
            min-width: 180px;
            max-width: 320px;
            display: flex;
            align-items: center;
            gap: 8px;
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 10px;
            padding: 6px 12px;
        }
        .tree-toolbar .search-box input {
            border: none;
            background: transparent;
            outline: none;
            flex: 1;
            color: var(--text-color);
            font-size: 13px;
        }
        .tree-toolbar .btn-sm {
            border-radius: 10px !important;
            font-weight: 600;
        }
        .card {
            border-radius: 16px;
            overflow: hidden;
        }
        .card-title {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding-bottom: 12px;
            margin-bottom: 4px;
            border-bottom: 1px solid var(--border-color);
        }

/* ---------- from equipment.html ---------- */

.equip-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
        .equip-card { background: var(--bg-card); border-radius: var(--radius-sm); border: 1px solid var(--border-color); padding: 14px 16px; box-shadow: var(--shadow-sm); transition: all var(--transition); }
        .equip-card:hover { border-color: var(--primary); transform: translateY(-2px); }
        .equip-card .card-header { display: flex; justify-content: space-between; align-items: start; }
        .equip-card .card-header .name { font-weight: 700; font-size: 15px; }
        .equip-card .card-header .code { font-size: 11px; color: var(--text-muted); font-family: var(--font-mono); }
        .equip-card .meta { font-size: 12px; color: var(--text-muted); display: flex; gap: 12px; margin-top: 6px; flex-wrap: wrap; }
        .equip-card .meta span { display: flex; align-items: center; gap: 4px; }
        .equip-card .status { font-size: 11px; padding: 2px 10px; border-radius: 30px; font-weight: 600; }
        .equip-card .status.active { background: var(--success-bg); color: var(--success); }
        .equip-card .status.inactive { background: var(--danger-bg); color: var(--danger); }
        .equip-card .status.maintenance { background: var(--amber-bg); color: var(--amber); }
        .equip-card .actions { margin-top: 10px; display: flex; gap: 6px; }
        .table-toolbar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 16px; }
        .table-toolbar .search-box { flex: 1; min-width: 200px; }
        .table-toolbar .search-box input { width: 100%; padding: 10px 14px; border-radius: 30px; border: 1.5px solid var(--border-color); background: var(--bg-card-alt); color: var(--text-color); font-size: 13px; transition: border 0.25s; }
        .table-toolbar .search-box input:focus { border-color: var(--primary); outline: none; box-shadow: var(--shadow-glow); }
        .filter-group { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
        .filter-group select { padding: 8px 14px; border-radius: 30px; border: 1.5px solid var(--border-color); background: var(--bg-card-alt); color: var(--text-color); font-size: 12.5px; cursor: pointer; transition: border 0.25s; }
        .filter-group select:focus { border-color: var(--primary); outline: none; }
        .pagination { display: flex; justify-content: flex-end; align-items: center; gap: 8px; margin-top: 16px; flex-wrap: wrap; }
        .pagination button { padding: 6px 14px; border-radius: 20px; border: 1px solid var(--border-color); background: var(--bg-card); color: var(--text-color); cursor: pointer; transition: all 0.2s; font-size: 12.5px; }
        .pagination button:hover:not(:disabled) { border-color: var(--primary); color: var(--primary); }
        .pagination button.active { background: var(--primary); border-color: var(--primary); color: #fff; font-weight: 700; }
        .pagination button:disabled { opacity: 0.4; cursor: not-allowed; }
        .pagination .info { font-size: 12.5px; color: var(--text-muted); }
        .empty-state { text-align: center; padding: 40px 20px; color: var(--text-muted); }
        .empty-state i { font-size: 40px; color: var(--border-color); margin-bottom: 12px; display: block; }
        @media (max-width: 768px) { .equip-grid { grid-template-columns: 1fr; } }

/* ---------- from gis-map.html ---------- */

/* ===== استایل‌های اختصاصی نقشه ===== */
        .map-container {
            position: relative;
            width: 100%;
            height: 550px;
            border-radius: var(--radius);
            overflow: hidden;
            border: 1px solid var(--border-color);
        }
        #gisMap {
            width: 100%;
            height: 100%;
        }
        .map-controls {
            position: absolute;
            top: 12px;
            right: 12px;
            z-index: 1000;
            display: flex;
            flex-direction: column;
            gap: 6px;
        }
        body.rtl .map-controls {
            right: auto;
            left: 12px;
        }
        .map-controls button {
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 8px;
            padding: 8px 12px;
            font-size: 13px;
            color: var(--text-color);
            cursor: pointer;
            transition: all 0.2s;
            box-shadow: var(--shadow);
            display: flex;
            align-items: center;
            gap: 6px;
        }
        .map-controls button:hover {
            border-color: var(--primary);
            color: var(--primary);
        }

        .equip-legend {
            position: absolute;
            bottom: 24px;
            right: 24px;
            z-index: 1000;
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 10px;
            padding: 10px 14px;
            box-shadow: var(--shadow);
            font-size: 12px;
        }
        body.rtl .equip-legend {
            right: auto;
            left: 24px;
        }
        .equip-legend .item {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 2px 0;
        }
        .equip-legend .dot {
            width: 12px;
            height: 12px;
            border-radius: 50%;
            border: 1px solid rgba(0,0,0,0.1);
        }

        /* ===== پنل اطلاعات تجهیز ===== */
        .equip-popup .popup-title {
            font-weight: 700;
            font-size: 15px;
        }
        .equip-popup .popup-detail {
            font-size: 12px;
            color: var(--text-muted);
            margin-top: 2px;
        }
        .equip-popup .popup-status {
            font-size: 11px;
            padding: 2px 10px;
            border-radius: 12px;
            display: inline-block;
            margin-top: 4px;
            font-weight: 600;
        }
        .equip-popup .popup-status.active { background: var(--success-bg); color: var(--success); }
        .equip-popup .popup-status.inactive { background: var(--danger-bg); color: var(--danger); }
        .equip-popup .popup-status.maintenance { background: var(--amber-bg); color: var(--amber); }

        /* ===== لیست تجهیزات کناری ===== */
        .equip-sidebar {
            max-height: 450px;
            overflow-y: auto;
            margin-top: 8px;
        }
        .equip-sidebar .equip-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 8px 12px;
            background: var(--bg-card-alt);
            border-radius: 8px;
            border: 1px solid var(--border-color);
            margin-bottom: 4px;
            cursor: pointer;
            transition: all 0.2s;
        }
        .equip-sidebar .equip-item:hover {
            border-color: var(--primary);
            background: var(--primary-glow);
        }
        .equip-sidebar .equip-item .name { font-weight: 600; font-size: 13px; }
        .equip-sidebar .equip-item .status-dot {
            width: 10px;
            height: 10px;
            border-radius: 50%;
            display: inline-block;
            margin-left: 6px;
        }
        .equip-sidebar .equip-item .status-dot.active { background: var(--success); }
        .equip-sidebar .equip-item .status-dot.inactive { background: var(--danger); }
        .equip-sidebar .equip-item .status-dot.maintenance { background: var(--amber); }

        .table-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            align-items: center;
            margin-bottom: 12px;
        }
        .table-toolbar .search-box { flex: 1; min-width: 200px; }
        .table-toolbar .search-box input {
            width: 100%;
            padding: 8px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 13px;
            transition: border 0.25s;
        }
        .table-toolbar .search-box input:focus {
            border-color: var(--primary);
            outline: none;
            box-shadow: var(--shadow-glow);
        }
        .filter-group {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
        }
        .filter-group select {
            padding: 6px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 12.5px;
            cursor: pointer;
            transition: border 0.25s;
        }

        /* ===== مودال ویرایش موقعیت ===== */
        .coord-input {
            display: flex;
            gap: 8px;
            align-items: center;
        }
        .coord-input input {
            flex: 1;
            padding: 6px 10px;
            border-radius: 6px;
            border: 1px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 13px;
            width: 100px;
        }
        .coord-input .label { font-size: 12px; font-weight: 600; color: var(--text-muted); }

        .marker-icon {
            background: transparent;
            border: none;
        }

        @media (max-width: 768px) {
            .map-container { height: 350px; }
            .map-controls button span { display: none; }
            .equip-legend { display: none; }
            .coord-input { flex-wrap: wrap; }
        }

/* ---------- from index.html ---------- */

/* ===== استایل‌های جدید داشبورد ===== */
        .stats-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 14px;
            margin-bottom: 16px;
        }
        .stat-card {
            background: var(--bg-card);
            padding: 18px 20px;
            border-radius: var(--radius);
            box-shadow: var(--shadow);
            transition: background var(--transition), box-shadow var(--transition), transform var(--transition);
            display: flex;
            align-items: center;
            justify-content: space-between;
            border: 1px solid var(--border-color);
            position: relative;
            overflow: hidden;
        }
        .stat-card::after {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(135deg, var(--primary-glow) 0%, transparent 55%);
            opacity: 0;
            transition: opacity var(--transition);
            pointer-events: none;
        }
        .stat-card:hover {
            box-shadow: var(--shadow-hover);
            transform: translateY(-3px);
            border-color: var(--primary);
        }
        .stat-card:hover::after { opacity: 0.4; }
        .stat-card .info h4 {
            font-size: 12px;
            font-weight: 500;
            color: var(--text-muted);
            margin-bottom: 6px;
        }
        .stat-card .info .number {
            font-size: 24px;
            font-weight: 800;
            letter-spacing: -0.5px;
            font-family: var(--font-mono);
        }
        .stat-card .info .trend {
            font-size: 11px;
            margin-top: 6px;
            display: flex;
            align-items: center;
            gap: 4px;
            font-weight: 600;
        }
        .stat-card .info .trend.up { color: var(--success); }
        .stat-card .info .trend.down { color: var(--danger); }
        .stat-card .icon {
            width: 44px;
            height: 44px;
            border-radius: 13px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 19px;
            color: #fff;
            flex-shrink: 0;
        }
        .stat-card .icon.blue { background: linear-gradient(135deg, #1A80F8, #1A5CB5); }
        .stat-card .icon.green { background: linear-gradient(135deg, var(--success), #16A34A); }
        .stat-card .icon.orange { background: linear-gradient(135deg, var(--amber), #D97706); }
        .stat-card .icon.purple { background: linear-gradient(135deg, var(--purple), #7C3AED); }
        .stat-card .icon.red { background: linear-gradient(135deg, var(--danger), #DC2626); }
        .stat-card .icon.teal { background: linear-gradient(135deg, #14B8A6, #0D9488); }

        .chart-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 14px;
            margin-bottom: 16px;
        }
        .chart-grid .card { padding: 18px 20px; }
        .chart-grid .card .chart-container {
            position: relative;
            height: 250px;
        }
        .chart-grid .card .chart-container canvas {
            max-height: 250px;
            max-width: 100%;
        }
        .chart-grid .card .card-title {
            font-size: 14px;
            font-weight: 700;
            margin-bottom: 12px;
            display: flex;
            align-items: center;
            justify-content: space-between;
        }

        .full-width-chart {
            grid-column: 1 / -1;
        }
        .full-width-chart .chart-container {
            height: 200px;
        }

        /* ===== لیست رویدادهای اخیر ===== */
        .activity-list {
            max-height: 300px;
            overflow-y: auto;
        }
        .activity-item {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 8px 0;
            border-bottom: 1px solid var(--border-color);
        }
        .activity-item:last-child { border-bottom: none; }
        .activity-item .icon {
            width: 32px;
            height: 32px;
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 14px;
            flex-shrink: 0;
        }
        .activity-item .icon.repair { background: var(--danger-bg);
            color: var(--danger); }
        .activity-item .icon.pm { background: var(--success-bg);
            color: var(--success); }
        .activity-item .icon.wo { background: var(--primary-glow);
            color: var(--primary); }
        .activity-item .icon.report { background: var(--amber-bg);
            color: var(--amber); }
        .activity-item .content { flex: 1; }
        .activity-item .content .title { font-weight: 600;
            font-size: 13px; }
        .activity-item .content .desc { font-size: 12px;
            color: var(--text-muted); }
        .activity-item .time { font-size: 11px;
            color: var(--text-muted);
            white-space: nowrap; }

        /* ===== فیلترهای داشبورد ===== */
        .dashboard-filters {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin-bottom: 16px;
            padding: 12px 16px;
            background: var(--bg-card-alt);
            border-radius: 14px;
            border: 1px solid var(--border-color);
            align-items: center;
        }
        .dashboard-filters label {
            font-size: 12px;
            font-weight: 600;
            color: var(--text-muted);
            margin-left: 4px;
        }
        .dashboard-filters select,
        .dashboard-filters input {
            padding: 6px 12px;
            border-radius: 8px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            color: var(--text-color);
            font-size: 12.5px;
        }
        .dashboard-filters select:focus,
        .dashboard-filters input:focus {
            border-color: var(--primary);
            outline: none;
        }

        @media (max-width: 1024px) {
            .stats-grid { grid-template-columns: repeat(2, 1fr); }
            .chart-grid { grid-template-columns: 1fr; }
        }
        @media (max-width: 600px) {
            .stats-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
            .stat-card { padding: 12px 14px; }
            .stat-card .info .number { font-size: 18px; }
            .stat-card .icon { width: 34px;
                height: 34px;
                font-size: 15px; }
            .dashboard-filters { flex-direction: column;
                align-items: stretch; }
        }

/* ---------- from integrations.html ---------- */

.int-list{display:flex;flex-direction:column;gap:12px}
.int-row{display:flex;align-items:center;gap:14px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}
.int-row .ic{width:44px;height:44px;border-radius:12px;background:var(--bg-card-alt);display:flex;align-items:center;justify-content:center;color:var(--primary);font-size:18px}
.int-row h3{margin:0 0 2px;font-size:14px}
.int-row p{margin:0;font-size:12px;color:var(--text-muted)}
.int-row .status{margin-right:auto;font-size:12px;font-weight:700}
body:not(.rtl) .int-row .status{margin-right:0;margin-left:auto}
.status.on{color:#16A34A}.status.off{color:var(--text-muted)}

/* ---------- from inventory.html ---------- */

.inv-stats {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 12px;
            margin-bottom: 16px;
        }
        .inv-stat {
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 14px;
            padding: 16px;
            display: flex;
            align-items: center;
            gap: 14px;
        }
        .inv-stat .ic {
            width: 44px; height: 44px; border-radius: 12px;
            display: flex; align-items: center; justify-content: center;
            font-size: 18px; color: #fff;
        }
        .inv-stat .v { font-size: 20px; font-weight: 800; font-family: var(--font-mono); }
        .inv-stat .l { font-size: 12px; color: var(--text-muted); }
        .filters {
            display: flex; flex-wrap: wrap; gap: 10px;
            margin-bottom: 14px;
            padding: 12px 14px;
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 12px;
            align-items: center;
        }
        .filters input, .filters select {
            border: 1px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            border-radius: 10px;
            padding: 8px 12px;
            font-size: 13px;
            outline: none;
        }
        .filters input { min-width: 200px; }
        .table-wrap {
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 14px;
            overflow: auto;
        }
        table.inv {
            width: 100%;
            border-collapse: collapse;
            font-size: 13px;
            min-width: 800px;
        }
        table.inv th {
            text-align: right;
            padding: 11px 14px;
            background: var(--bg-card-alt);
            color: var(--text-muted);
            font-weight: 600;
            border-bottom: 1px solid var(--border-color);
            white-space: nowrap;
        }
        table.inv td {
            padding: 11px 14px;
            border-bottom: 1px solid var(--border-color);
        }
        table.inv tr:hover td { background: var(--bg-card-alt); }
        .stock-ok { color: #16A34A; font-weight: 700; }
        .stock-low { color: #D97706; font-weight: 700; }
        .stock-out { color: #DC2626; font-weight: 700; }
        .badge-soft {
            font-size: 11px; font-weight: 600;
            padding: 3px 8px; border-radius: 8px;
            background: var(--bg-card-alt);
        }
        @media (max-width: 800px) {
            .inv-stats { grid-template-columns: 1fr 1fr; }
        }

/* ---------- from kpi-dashboard.html ---------- */

/* ===== استایل‌های اختصاصی ===== */
        .kpi-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 14px;
            margin-bottom: 16px;
        }
        .kpi-card {
            background: var(--bg-card);
            border-radius: var(--radius);
            padding: 16px 18px;
            border: 1px solid var(--border-color);
            transition: all var(--transition);
            position: relative;
            overflow: hidden;
        }
        .kpi-card:hover {
            border-color: var(--primary);
            transform: translateY(-3px);
            box-shadow: var(--shadow-hover);
        }
        .kpi-card .label {
            font-size: 12px;
            color: var(--text-muted);
            font-weight: 500;
        }
        .kpi-card .value {
            font-size: 26px;
            font-weight: 800;
            font-family: var(--font-mono);
            margin-top: 4px;
        }
        .kpi-card .sub {
            font-size: 12px;
            color: var(--text-muted);
            margin-top: 4px;
        }
        .kpi-card .trend {
            font-size: 12px;
            font-weight: 600;
            margin-top: 4px;
            display: flex;
            align-items: center;
            gap: 4px;
        }
        .kpi-card .trend.up { color: var(--success); }
        .kpi-card .trend.down { color: var(--danger); }
        .kpi-card .icon {
            position: absolute;
            left: 16px;
            bottom: 16px;
            font-size: 32px;
            opacity: 0.15;
        }
        body.rtl .kpi-card .icon {
            left: auto;
            right: 16px;
        }

        .kpi-card .badge-status {
            font-size: 11px;
            padding: 2px 10px;
            border-radius: 20px;
            background: var(--success-bg);
            color: var(--success);
        }

        .chart-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 14px;
            margin-bottom: 16px;
        }
        .chart-grid .card { padding: 16px 18px; }
        .chart-grid .card .chart-container { height: 220px; }

        .full-width { grid-column: 1 / -1; }

        /* ===== جدول توقفات ===== */
        .table-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            align-items: center;
            margin-bottom: 16px;
        }
        .table-toolbar .search-box { flex: 1; min-width: 200px; }
        .table-toolbar .search-box input {
            width: 100%;
            padding: 10px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 13px;
            transition: border 0.25s;
        }
        .table-toolbar .search-box input:focus {
            border-color: var(--primary);
            outline: none;
            box-shadow: var(--shadow-glow);
        }
        .filter-group {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
        }
        .filter-group select,
        .filter-group input[type="date"] {
            padding: 8px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 12.5px;
            cursor: pointer;
            transition: border 0.25s;
        }

        .pagination {
            display: flex;
            justify-content: flex-end;
            align-items: center;
            gap: 8px;
            margin-top: 16px;
            flex-wrap: wrap;
        }
        .pagination button {
            padding: 6px 14px;
            border-radius: 20px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            color: var(--text-color);
            cursor: pointer;
            transition: all 0.2s;
            font-size: 12.5px;
        }
        .pagination button:hover:not(:disabled) { border-color: var(--primary); color: var(--primary); }
        .pagination button.active { background: var(--primary); border-color: var(--primary); color: #fff; font-weight: 700; }
        .pagination button:disabled { opacity: 0.4; cursor: not-allowed; }
        .pagination .info { font-size: 12.5px; color: var(--text-muted); }

        .empty-state {
            text-align: center;
            padding: 40px 20px;
            color: var(--text-muted);
        }
        .empty-state i { font-size: 40px; color: var(--border-color); margin-bottom: 12px; display: block; }

        .downtime-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 8px 12px;
            background: var(--bg-card-alt);
            border-radius: 8px;
            border: 1px solid var(--border-color);
            margin-bottom: 4px;
            flex-wrap: wrap;
            gap: 8px;
        }
        .downtime-item .info { flex: 1; min-width: 200px; }
        .downtime-item .info .title { font-weight: 600; font-size: 14px; }
        .downtime-item .info .desc { font-size: 12px; color: var(--text-muted); }
        .downtime-item .duration {
            font-weight: 700;
            font-family: var(--font-mono);
            font-size: 15px;
            color: var(--danger);
        }
        .downtime-item .type-badge {
            font-size: 11px;
            padding: 2px 10px;
            border-radius: 12px;
            font-weight: 600;
        }
        .downtime-item .type-badge.planned { background: var(--primary-glow); color: var(--primary); }
        .downtime-item .type-badge.unplanned { background: var(--danger-bg); color: var(--danger); }
        .downtime-item .type-badge.maintenance { background: var(--amber-bg); color: var(--amber); }

        @media (max-width: 1200px) {
            .kpi-grid { grid-template-columns: repeat(2, 1fr); }
        }
        @media (max-width: 1024px) {
            .chart-grid { grid-template-columns: 1fr; }
        }
        @media (max-width: 768px) {
            .kpi-grid { grid-template-columns: 1fr 1fr; }
            .table-toolbar { flex-direction: column; align-items: stretch; }
            .filter-group { justify-content: center; }
            .kpi-card .value { font-size: 20px; }
        }
        @media (max-width: 480px) {
            .kpi-grid { grid-template-columns: 1fr; }
        }

/* ---------- from maintenance-log.html ---------- */

.log-timeline {
            position: relative;
            padding-inline-start: 22px;
        }
        .log-timeline::before {
            content: '';
            position: absolute;
            inset-inline-start: 6px;
            top: 6px;
            bottom: 6px;
            width: 2px;
            background: var(--border-color);
        }
        .log-item {
            position: relative;
            padding-bottom: 16px;
        }
        .log-item:last-child { padding-bottom: 0; }
        .log-item::before {
            content: '';
            position: absolute;
            inset-inline-start: -22px;
            top: 2px;
            width: 11px;
            height: 11px;
            border-radius: 50%;
            background: var(--bg-card);
            border: 3px solid var(--primary);
        }
        .log-item .card-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 6px;
        }
        .log-item .title { font-weight: 600;
            font-size: 13.5px; }
        .log-item .meta {
            font-size: 11px;
            color: var(--text-muted);
            display: flex;
            gap: 12px;
            flex-wrap: wrap;
        }
        .log-item .cost {
            font-weight: 700;
            color: var(--primary);
            font-family: var(--font-mono);
        }
        .log-item .desc { font-size: 12px;
            color: var(--text-secondary);
            margin-top: 2px; }
        .table-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            align-items: center;
            margin-bottom: 16px;
        }
        .table-toolbar .search-box { flex: 1;
            min-width: 200px; }
        .table-toolbar .search-box input {
            width: 100%;
            padding: 10px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 13px;
            transition: border 0.25s;
        }
        .table-toolbar .search-box input:focus {
            border-color: var(--primary);
            outline: none;
            box-shadow: var(--shadow-glow);
        }
        .filter-group {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
        }
        .filter-group select {
            padding: 8px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 12.5px;
            cursor: pointer;
            transition: border 0.25s;
        }
        .filter-group select:focus {
            border-color: var(--primary);
            outline: none;
        }
        .pagination {
            display: flex;
            justify-content: flex-end;
            align-items: center;
            gap: 8px;
            margin-top: 16px;
            flex-wrap: wrap;
        }
        .pagination button {
            padding: 6px 14px;
            border-radius: 20px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            color: var(--text-color);
            cursor: pointer;
            transition: all 0.2s;
            font-size: 12.5px;
        }
        .pagination button:hover:not(:disabled) { border-color: var(--primary);
            color: var(--primary); }
        .pagination button.active {
            background: var(--primary);
            border-color: var(--primary);
            color: #fff;
            font-weight: 700;
        }
        .pagination button:disabled { opacity: 0.4;
            cursor: not-allowed; }
        .pagination .info { font-size: 12.5px;
            color: var(--text-muted); }
        .empty-state {
            text-align: center;
            padding: 40px 20px;
            color: var(--text-muted);
        }
        .empty-state i { font-size: 40px;
            color: var(--border-color);
            margin-bottom: 12px;
            display: block; }

/* ---------- from notifications.html ---------- */

/* ===== استایل‌های عمومی ===== */
        .table-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            align-items: center;
            margin-bottom: 16px;
        }
        .table-toolbar .search-box { flex: 1;
            min-width: 200px; }
        .table-toolbar .search-box input {
            width: 100%;
            padding: 10px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 13px;
            transition: border 0.25s;
        }
        .table-toolbar .search-box input:focus {
            border-color: var(--primary);
            outline: none;
            box-shadow: var(--shadow-glow);
        }
        .filter-group {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
        }
        .filter-group select {
            padding: 8px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 12.5px;
            cursor: pointer;
            transition: border 0.25s;
        }
        .filter-group select:focus {
            border-color: var(--primary);
            outline: none;
        }

        .pagination {
            display: flex;
            justify-content: flex-end;
            align-items: center;
            gap: 8px;
            margin-top: 16px;
            flex-wrap: wrap;
        }
        .pagination button {
            padding: 6px 14px;
            border-radius: 20px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            color: var(--text-color);
            cursor: pointer;
            transition: all 0.2s;
            font-size: 12.5px;
        }
        .pagination button:hover:not(:disabled) { border-color: var(--primary);
            color: var(--primary); }
        .pagination button.active {
            background: var(--primary);
            border-color: var(--primary);
            color: #fff;
            font-weight: 700;
        }
        .pagination button:disabled { opacity: 0.4;
            cursor: not-allowed; }
        .pagination .info { font-size: 12.5px;
            color: var(--text-muted); }

        .empty-state {
            text-align: center;
            padding: 40px 20px;
            color: var(--text-muted);
        }
        .empty-state i { font-size: 40px;
            color: var(--border-color);
            margin-bottom: 12px;
            display: block; }

        /* ===== کارت اعلان‌ها ===== */
        .notif-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 10px;
        }
        .notif-card {
            background: var(--bg-card);
            border-radius: var(--radius-sm);
            border: 1px solid var(--border-color);
            padding: 14px 16px;
            transition: all var(--transition);
            display: flex;
            align-items: start;
            gap: 14px;
            cursor: pointer;
        }
        .notif-card:hover {
            border-color: var(--primary);
            transform: translateX(4px);
            box-shadow: var(--shadow-hover);
        }
        .notif-card .icon {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 18px;
            flex-shrink: 0;
            margin-top: 2px;
        }
        .notif-card .icon.info { background: var(--info-bg);
            color: var(--info); }
        .notif-card .icon.success { background: var(--success-bg);
            color: var(--success); }
        .notif-card .icon.warning { background: var(--amber-bg);
            color: var(--amber); }
        .notif-card .icon.danger { background: var(--danger-bg);
            color: var(--danger); }
        .notif-card .icon.primary { background: var(--primary-glow);
            color: var(--primary); }

        .notif-card .content { flex: 1; }
        .notif-card .content .title {
            font-weight: 600;
            font-size: 14px;
        }
        .notif-card .content .message {
            font-size: 13px;
            color: var(--text-color);
            margin-top: 2px;
        }
        .notif-card .content .meta {
            font-size: 11px;
            color: var(--text-muted);
            margin-top: 4px;
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
        }
        .notif-card .content .meta span { display: flex;
            align-items: center;
            gap: 4px; }

        .notif-card .actions {
            display: flex;
            gap: 6px;
            flex-shrink: 0;
        }
        .notif-card .status-dot {
            width: 10px;
            height: 10px;
            border-radius: 50%;
            flex-shrink: 0;
            margin-top: 4px;
        }
        .notif-card .status-dot.unread { background: var(--primary); }
        .notif-card .status-dot.read { background: var(--border-color); }

        .notif-card.unread {
            border-right: 3px solid var(--primary);
        }
        body.rtl .notif-card.unread {
            border-right: none;
            border-left: 3px solid var(--primary);
        }

        .notif-card .badge-type {
            font-size: 10px;
            padding: 0 8px;
            border-radius: 10px;
            background: var(--bg-card-alt);
            border: 1px solid var(--border-color);
            color: var(--text-muted);
        }

        @media (max-width: 768px) {
            .notif-card { flex-wrap: wrap; }
            .notif-card .actions { width: 100%;
                justify-content: flex-end; }
        }

/* ---------- from overlays.html ---------- */

.ov-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:20px}
.ov-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;padding:16px;box-shadow:var(--shadow)}
.ov-card h3{margin:0 0 6px;font-size:14px}
.ov-card p{margin:0 0 12px;font-size:12.5px;color:var(--text-muted);line-height:1.5}

/* Backdrop */
.ov-backdrop{position:fixed;inset:0;background:rgba(8,14,28,.55);z-index:3000;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s;backdrop-filter:blur(2px)}
.ov-backdrop.open{opacity:1;visibility:visible}

/* Center modal */
.ov-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-48%) scale(.96);z-index:3001;width:min(440px,calc(100vw - 32px));background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.25);opacity:0;visibility:hidden;transition:.25s;max-height:min(90vh,640px);display:flex;flex-direction:column}
.ov-modal.open{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}
.ov-modal.lg{width:min(720px,calc(100vw - 24px))}
.ov-modal.full{width:min(960px,calc(100vw - 16px));height:min(90vh,800px)}
.ov-modal.fs-true{
  left:0!important;right:0!important;top:0!important;bottom:0!important;
  width:100vw!important;height:100vh!important;margin:0;
  max-height:none;max-width:none;border-radius:0;transform:translateY(12px) scale(1);
  border:none;
}
.ov-modal.fs-true.open{transform:translateY(0) scale(1);}
.ov-m-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border-color);flex-shrink:0}
.ov-m-head h3{margin:0;font-size:15px}
.ov-m-head button{border:none;background:var(--bg-card-alt);width:32px;height:32px;border-radius:8px;cursor:pointer;color:var(--text-muted)}
.ov-m-body{padding:16px;overflow:auto;flex:1;font-size:13.5px;line-height:1.7;color:var(--text-color)}
.ov-m-foot{padding:12px 16px;border-top:1px solid var(--border-color);display:flex;gap:8px;justify-content:flex-end;flex-shrink:0}

/* Drawer / slide overlay */
.ov-drawer{position:fixed;top:0;bottom:0;z-index:3001;width:min(380px,92vw);background:var(--bg-card);border:1px solid var(--border-color);box-shadow:0 0 40px rgba(0,0,0,.2);transition:transform .3s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column}
.ov-drawer.from-start{right:0;transform:translateX(105%)} /* opposite of typical RTL sidebar which is right - wait RTL sidebar is on right, so opposite is left */
body.rtl .ov-drawer.from-start{right:auto;left:0;transform:translateX(-105%)}
body:not(.rtl) .ov-drawer.from-start{left:0;transform:translateX(-105%)}
.ov-drawer.from-end{left:0;transform:translateX(-105%)}
body.rtl .ov-drawer.from-end{left:auto;right:0;transform:translateX(105%)}
body:not(.rtl) .ov-drawer.from-end{right:0;left:auto;transform:translateX(105%)}
.ov-drawer.open{transform:translateX(0)!important}

/* Bottom sheet */
.ov-sheet{position:fixed;left:0;right:0;bottom:0;z-index:3001;max-height:85vh;background:var(--bg-card);border-radius:18px 18px 0 0;border:1px solid var(--border-color);box-shadow:0 -8px 40px rgba(0,0,0,.2);transform:translateY(110%);transition:transform .3s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column}
.ov-sheet.open{transform:translateY(0)}
.ov-sheet .handle{width:40px;height:4px;background:var(--border-color);border-radius:4px;margin:10px auto 0}

/* Fullscreen overlay */
.ov-fs{position:fixed;inset:0;z-index:3001;background:var(--bg-body);transform:translateY(100%);transition:transform .35s ease;display:flex;flex-direction:column}
.ov-fs.open{transform:translateY(0)}

/* ---------- from pm-schedule.html ---------- */

.pm-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
        .pm-card { background: var(--bg-card); border-radius: var(--radius-sm); border: 1px solid var(--border-color); padding: 14px 16px; box-shadow: var(--shadow-sm); transition: all var(--transition); }
        .pm-card:hover { border-color: var(--primary); transform: translateY(-2px); }
        .pm-card .name { font-weight: 700; font-size: 14px; }
        .pm-card .equip { font-size: 12px; color: var(--text-muted); }
        .pm-card .meta { font-size: 12px; color: var(--text-muted); display: flex; gap: 12px; margin-top: 6px; flex-wrap: wrap; }
        .pm-card .meta span { display: flex; align-items: center; gap: 4px; }
        .pm-card .status { font-size: 11px; padding: 2px 10px; border-radius: 30px; font-weight: 600; }
        .pm-card .status.done { background: var(--success-bg); color: var(--success); }
        .pm-card .status.pending { background: var(--amber-bg); color: var(--amber); }
        .pm-card .status.overdue { background: var(--danger-bg); color: var(--danger); }
        .pm-card .actions { margin-top: 10px; display: flex; gap: 6px; }
        .table-toolbar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 16px; }
        .table-toolbar .search-box { flex: 1; min-width: 200px; }
        .table-toolbar .search-box input { width: 100%; padding: 10px 14px; border-radius: 30px; border: 1.5px solid var(--border-color); background: var(--bg-card-alt); color: var(--text-color); font-size: 13px; transition: border 0.25s; }
        .table-toolbar .search-box input:focus { border-color: var(--primary); outline: none; box-shadow: var(--shadow-glow); }
        .filter-group { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
        .filter-group select { padding: 8px 14px; border-radius: 30px; border: 1.5px solid var(--border-color); background: var(--bg-card-alt); color: var(--text-color); font-size: 12.5px; cursor: pointer; transition: border 0.25s; }
        .filter-group select:focus { border-color: var(--primary); outline: none; }
        .pagination { display: flex; justify-content: flex-end; align-items: center; gap: 8px; margin-top: 16px; flex-wrap: wrap; }
        .pagination button { padding: 6px 14px; border-radius: 20px; border: 1px solid var(--border-color); background: var(--bg-card); color: var(--text-color); cursor: pointer; transition: all 0.2s; font-size: 12.5px; }
        .pagination button:hover:not(:disabled) { border-color: var(--primary); color: var(--primary); }
        .pagination button.active { background: var(--primary); border-color: var(--primary); color: #fff; font-weight: 700; }
        .pagination button:disabled { opacity: 0.4; cursor: not-allowed; }
        .pagination .info { font-size: 12.5px; color: var(--text-muted); }
        .empty-state { text-align: center; padding: 40px 20px; color: var(--text-muted); }
        .empty-state i { font-size: 40px; color: var(--border-color); margin-bottom: 12px; display: block; }
        @media (max-width: 1024px) { .pm-grid { grid-template-columns: 1fr 1fr; } }
        @media (max-width: 600px) { .pm-grid { grid-template-columns: 1fr; } }

/* ---------- from report-templates.html ---------- */

.table-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            align-items: center;
            margin-bottom: 16px;
        }
        .table-toolbar .search-box { flex: 1;
            min-width: 200px; }
        .table-toolbar .search-box input {
            width: 100%;
            padding: 10px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 13px;
            transition: border 0.25s;
        }
        .table-toolbar .search-box input:focus {
            border-color: var(--primary);
            outline: none;
            box-shadow: var(--shadow-glow);
        }
        .filter-group {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
        }
        .filter-group select {
            padding: 8px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 12.5px;
            cursor: pointer;
            transition: border 0.25s;
        }
        .filter-group select:focus {
            border-color: var(--primary);
            outline: none;
        }

        .pagination {
            display: flex;
            justify-content: flex-end;
            align-items: center;
            gap: 8px;
            margin-top: 16px;
            flex-wrap: wrap;
        }
        .pagination button {
            padding: 6px 14px;
            border-radius: 20px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            color: var(--text-color);
            cursor: pointer;
            transition: all 0.2s;
            font-size: 12.5px;
        }
        .pagination button:hover:not(:disabled) { border-color: var(--primary);
            color: var(--primary); }
        .pagination button.active {
            background: var(--primary);
            border-color: var(--primary);
            color: #fff;
            font-weight: 700;
        }
        .pagination button:disabled { opacity: 0.4;
            cursor: not-allowed; }
        .pagination .info { font-size: 12.5px;
            color: var(--text-muted); }

        .empty-state {
            text-align: center;
            padding: 40px 20px;
            color: var(--text-muted);
        }
        .empty-state i { font-size: 40px;
            color: var(--border-color);
            margin-bottom: 12px;
            display: block; }

        .template-grid {
            display: grid;
            grid-template-columns: 1fr 1fr 1fr;
            gap: 14px;
        }
        .template-card {
            background: var(--bg-card);
            border-radius: var(--radius-sm);
            border: 1px solid var(--border-color);
            padding: 14px 16px;
            transition: all var(--transition);
        }
        .template-card:hover {
            border-color: var(--primary);
            transform: translateY(-2px);
            box-shadow: var(--shadow-hover);
        }
        .template-card .name {
            font-weight: 700;
            font-size: 15px;
        }
        .template-card .desc {
            font-size: 12px;
            color: var(--text-muted);
            margin-top: 4px;
        }
        .template-card .meta {
            font-size: 12px;
            color: var(--text-muted);
            margin-top: 8px;
            display: flex;
            gap: 12px;
            flex-wrap: wrap;
        }
        .template-card .actions {
            margin-top: 10px;
            display: flex;
            gap: 6px;
        }
        .template-card .field-preview {
            font-size: 11px;
            color: var(--text-muted);
            margin-top: 6px;
            padding: 4px 8px;
            background: var(--bg-card-alt);
            border-radius: 6px;
        }

        /* استایل فیلدهای پویا در مودال */
        .dynamic-field {
            margin-bottom: 12px;
            padding-bottom: 10px;
            border-bottom: 1px solid var(--border-color);
        }
        .dynamic-field:last-child {
            border-bottom: none;
        }
        .dynamic-field label {
            display: block;
            font-weight: 600;
            font-size: 12.5px;
            margin-bottom: 4px;
        }
        .dynamic-field label .required {
            color: var(--danger);
        }
        .dynamic-field input,
        .dynamic-field select,
        .dynamic-field textarea {
            width: 100%;
            padding: 8px 12px;
            border-radius: 8px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 13px;
            transition: border 0.25s;
        }
        .dynamic-field input:focus,
        .dynamic-field select:focus,
        .dynamic-field textarea:focus {
            border-color: var(--primary);
            outline: none;
            box-shadow: var(--shadow-glow);
        }
        .dynamic-field .field-actions {
            margin-top: 4px;
            display: flex;
            gap: 6px;
        }
        .dynamic-field .field-actions button {
            font-size: 11px;
            padding: 2px 10px;
        }

        @media (max-width: 1024px) {
            .template-grid { grid-template-columns: 1fr 1fr; }
        }
        @media (max-width: 768px) {
            .template-grid { grid-template-columns: 1fr; }
            .table-toolbar { flex-direction: column;
                align-items: stretch; }
            .filter-group { justify-content: center; }
        }

/* ---------- from reports.html ---------- */

.report-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 14px;
        }
        .report-card {
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 16px;
            padding: 20px;
            transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
            cursor: pointer;
            display: flex;
            flex-direction: column;
            gap: 12px;
        }
        .report-card:hover {
            transform: translateY(-3px);
            box-shadow: var(--shadow-hover);
            border-color: var(--primary);
        }
        .report-card .icon {
            width: 48px; height: 48px;
            border-radius: 14px;
            display: flex; align-items: center; justify-content: center;
            font-size: 20px; color: #fff;
        }
        .report-card h3 {
            margin: 0;
            font-size: 15px;
            font-weight: 700;
        }
        .report-card p {
            margin: 0;
            font-size: 12.5px;
            color: var(--text-muted);
            line-height: 1.6;
            flex: 1;
        }
        .report-card .meta {
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-size: 11.5px;
            color: var(--text-muted);
        }
        .section-label {
            font-size: 13px;
            font-weight: 700;
            color: var(--text-muted);
            margin: 8px 0 12px;
            letter-spacing: 0.3px;
        }
        @media (max-width: 960px) {
            .report-grid { grid-template-columns: 1fr 1fr; }
        }
        @media (max-width: 560px) {
            .report-grid { grid-template-columns: 1fr; }
        }

/* ---------- from roles.html ---------- */

/* استایل‌های اصلی */
        .table-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            align-items: center;
            margin-bottom: 16px;
        }
        .table-toolbar .search-box { flex: 1;
            min-width: 200px; }
        .table-toolbar .search-box input {
            width: 100%;
            padding: 10px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 13px;
            transition: border 0.25s;
        }
        .table-toolbar .search-box input:focus {
            border-color: var(--primary);
            outline: none;
            box-shadow: var(--shadow-glow);
        }
        .filter-group {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
        }
        .filter-group select {
            padding: 8px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 12.5px;
            cursor: pointer;
            transition: border 0.25s;
        }
        .filter-group select:focus {
            border-color: var(--primary);
            outline: none;
        }

        .pagination {
            display: flex;
            justify-content: flex-end;
            align-items: center;
            gap: 8px;
            margin-top: 16px;
            flex-wrap: wrap;
        }
        .pagination button {
            padding: 6px 14px;
            border-radius: 20px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            color: var(--text-color);
            cursor: pointer;
            transition: all 0.2s;
            font-size: 12.5px;
        }
        .pagination button:hover:not(:disabled) { border-color: var(--primary);
            color: var(--primary); }
        .pagination button.active {
            background: var(--primary);
            border-color: var(--primary);
            color: #fff;
            font-weight: 700;
        }
        .pagination button:disabled { opacity: 0.4;
            cursor: not-allowed; }
        .pagination .info { font-size: 12.5px;
            color: var(--text-muted); }

        .badge-status.inactive { background: var(--danger-bg);
            color: var(--danger); }
        .role-actions { display: flex;
            gap: 6px;
            flex-wrap: wrap; }
        .empty-state {
            text-align: center;
            padding: 40px 20px;
            color: var(--text-muted);
        }
        .empty-state i { font-size: 40px;
            color: var(--border-color);
            margin-bottom: 12px;
            display: block; }

        /* ===== بخش دسترسی‌ها ===== */
        .permissions-grid {
            margin-top: 12px;
            overflow-x: auto;
        }
        .permissions-grid table {
            width: 100%;
            border-collapse: collapse;
            font-size: 12.5px;
        }
        .permissions-grid th {
            background: var(--bg-card-alt);
            padding: 8px 10px;
            text-align: center;
            font-weight: 600;
            border-bottom: 2px solid var(--border-color);
            white-space: nowrap;
            font-size: 11px;
        }
        .permissions-grid td {
            padding: 6px 8px;
            text-align: center;
            border-bottom: 1px solid var(--border-color);
            vertical-align: middle;
        }
        .permissions-grid .module-name {
            text-align: right;
            font-weight: 500;
            white-space: nowrap;
        }
        .permissions-grid .sub-module {
            padding-right: 20px !important;
            font-size: 12px;
            color: var(--text-muted);
        }
        .permissions-grid .group-header {
            background: var(--bg-card-alt);
            font-weight: 600;
        }

        /* چک‌باکس‌های دسترسی */
        .perm-checkbox {
            width: 16px;
            height: 16px;
            accent-color: var(--primary);
            cursor: pointer;
        }
        .perm-checkbox:disabled {
            opacity: 0.4;
            cursor: not-allowed;
        }
        .perm-checkbox.checked {
            accent-color: var(--primary);
        }

        /* خلاصه دسترسی‌ها */
        .perm-summary {
            display: flex;
            flex-wrap: wrap;
            gap: 4px 12px;
            font-size: 11px;
            color: var(--text-muted);
        }
        .perm-summary .badge {
            background: var(--primary-glow);
            padding: 0 8px;
            border-radius: 10px;
            color: var(--primary);
        }
        .perm-summary .badge.full {
            background: var(--success-bg);
            color: var(--success);
        }

        @media (max-width: 768px) {
            .permissions-grid table {
                font-size: 11px;
            }
            .permissions-grid th,
            .permissions-grid td {
                padding: 4px 4px;
            }
            .permissions-grid .module-name {
                font-size: 11px;
            }
        }

/* ---------- from settings-backup.html ---------- */

.bak-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;padding:20px;margin-bottom:14px;box-shadow:var(--shadow)}
.bak-card h3{margin:0 0 8px;font-size:15px}
.bak-card p{margin:0 0 14px;font-size:13px;color:var(--text-muted);line-height:1.6}
.bak-actions{display:flex;flex-wrap:wrap;gap:8px}
textarea.bak-area{width:100%;min-height:120px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-card-alt);color:var(--text-color);padding:12px;font-family:var(--font-mono);font-size:12px;box-sizing:border-box}
.keys{font-size:12px;color:var(--text-muted);margin-top:10px}
.keys code{background:var(--bg-card-alt);padding:2px 6px;border-radius:6px;margin:2px;display:inline-block}

/* ---------- from shift-calendar.html ---------- */

.today-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 12px;
            margin-bottom: 18px;
        }
        .today-card {
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 14px;
            padding: 14px 16px;
            position: relative;
            overflow: hidden;
            transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
        }
        .today-card:hover {
            transform: translateY(-2px);
            box-shadow: var(--shadow-hover);
        }
        .today-card::before {
            content: '';
            position: absolute;
            top: 0; right: 0; left: 0;
            height: 3px;
        }
        .today-card.shift-A::before { background: #1A80F8; }
        .today-card.shift-B::before { background: #22C55E; }
        .today-card.shift-C::before { background: #F59E0B; }
        .today-card.shift-D::before { background: #8B5CF6; }
        .today-card .shift-letter {
            font-size: 28px;
            font-weight: 800;
            font-family: var(--font-mono);
            line-height: 1;
            margin-bottom: 6px;
        }
        .today-card.shift-A .shift-letter { color: #1A80F8; }
        .today-card.shift-B .shift-letter { color: #22C55E; }
        .today-card.shift-C .shift-letter { color: #F59E0B; }
        .today-card.shift-D .shift-letter { color: #8B5CF6; }
        .today-card .shift-type {
            font-size: 14px;
            font-weight: 700;
            margin-bottom: 2px;
        }
        .today-card .shift-day {
            font-size: 12px;
            color: var(--text-muted);
        }
        .today-card .shift-badge {
            position: absolute;
            top: 12px;
            left: 12px;
            font-size: 10px;
            font-weight: 700;
            padding: 3px 8px;
            border-radius: 20px;
        }
        .badge-morning { background: rgba(26,128,248,0.15); color: #1A80F8; }
        .badge-evening { background: rgba(34,197,94,0.15); color: #16A34A; }
        .badge-night   { background: rgba(245,158,11,0.15); color: #D97706; }
        .badge-rest    { background: rgba(139,92,246,0.12); color: #7C3AED; }

        .pattern-strip {
            display: flex;
            gap: 6px;
            flex-wrap: wrap;
            margin-bottom: 16px;
            padding: 12px 14px;
            background: var(--bg-card-alt);
            border-radius: 12px;
            border: 1px solid var(--border-color);
            align-items: center;
        }
        .pattern-strip .label {
            font-size: 12px;
            font-weight: 600;
            color: var(--text-muted);
            margin-left: 8px;
        }
        .pattern-chip {
            font-size: 11px;
            font-weight: 600;
            padding: 4px 10px;
            border-radius: 8px;
        }
        .chip-morning { background: rgba(26,128,248,0.12); color: #1A80F8; }
        .chip-evening { background: rgba(34,197,94,0.12); color: #16A34A; }
        .chip-night   { background: rgba(245,158,11,0.12); color: #D97706; }
        .chip-rest    { background: rgba(139,92,246,0.12); color: #7C3AED; }

        .calendar-controls {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            align-items: center;
            margin-bottom: 14px;
            padding: 10px 14px;
            background: var(--bg-card);
            border-radius: 12px;
            border: 1px solid var(--border-color);
        }
        .calendar-controls .nav-btn {
            background: var(--bg-card-alt);
            border: 1px solid var(--border-color);
            border-radius: 8px;
            width: 34px; height: 34px;
            cursor: pointer;
            color: var(--text-color);
            display: flex; align-items: center; justify-content: center;
            transition: all 0.2s;
        }
        .calendar-controls .nav-btn:hover {
            border-color: var(--primary);
            color: var(--primary);
        }
        .calendar-controls .month-label {
            font-size: 16px;
            font-weight: 700;
            min-width: 150px;
            text-align: center;
        }
        .calendar-controls .legend {
            display: flex;
            flex-wrap: wrap;
            gap: 8px 14px;
            margin-right: auto;
            font-size: 12px;
        }
        .calendar-controls .legend .item {
            display: flex; align-items: center; gap: 5px;
        }
        .calendar-controls .legend .dot {
            width: 10px; height: 10px; border-radius: 3px;
        }

        .calendar-wrap {
            overflow-x: auto;
            border-radius: 14px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
        }
        .calendar-grid {
            width: 100%;
            border-collapse: collapse;
            min-width: 640px;
        }
        .calendar-grid th {
            padding: 10px 4px;
            text-align: center;
            font-weight: 600;
            font-size: 12px;
            color: var(--text-muted);
            background: var(--bg-card-alt);
            border-bottom: 1px solid var(--border-color);
        }
        .calendar-grid td {
            padding: 6px 4px;
            vertical-align: top;
            border: 1px solid var(--border-color);
            height: 96px;
            width: 14.28%;
            transition: background 0.15s;
        }
        .calendar-grid td:hover { background: var(--bg-card-alt); }
        .calendar-grid td.empty { background: var(--bg-card-alt); opacity: 0.5; }
        .calendar-grid td.today-cell {
            box-shadow: inset 0 0 0 2px var(--primary);
            background: color-mix(in srgb, var(--primary) 6%, transparent);
        }
        .day-num {
            display: block;
            font-size: 13px;
            font-weight: 700;
            margin-bottom: 4px;
            text-align: center;
            color: var(--text-color);
        }
        .day-num.today-num { color: var(--primary); }
        .shift-pill {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 4px;
            font-size: 10px;
            font-weight: 600;
            padding: 2px 5px;
            border-radius: 5px;
            margin-bottom: 2px;
            line-height: 1.3;
        }
        .shift-pill .letter {
            font-family: var(--font-mono);
            font-weight: 800;
            font-size: 11px;
        }
        .pill-morning { background: rgba(26,128,248,0.14); color: #1A80F8; }
        .pill-evening { background: rgba(34,197,94,0.14); color: #16A34A; }
        .pill-night   { background: rgba(245,158,11,0.14); color: #D97706; }
        .pill-rest    { background: rgba(139,92,246,0.12); color: #7C3AED; }

        .info-box {
            margin-top: 16px;
            padding: 14px 16px;
            background: var(--bg-card-alt);
            border-radius: 12px;
            border: 1px solid var(--border-color);
            font-size: 13px;
            color: var(--text-muted);
            line-height: 1.7;
        }
        .info-box strong { color: var(--text-color); }

        .view-tabs {
            display: flex;
            gap: 6px;
            margin-bottom: 12px;
            flex-wrap: wrap;
        }
        .view-tabs .tab {
            padding: 6px 14px;
            border-radius: 20px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            cursor: pointer;
            font-size: 12.5px;
            font-weight: 600;
            color: var(--text-muted);
            transition: all 0.2s;
        }
        .view-tabs .tab:hover { border-color: var(--primary); color: var(--primary); }
        .view-tabs .tab.active {
            background: var(--primary);
            color: #fff;
            border-color: var(--primary);
        }

        @media (max-width: 900px) {
            .today-grid { grid-template-columns: repeat(2, 1fr); }
        }
        @media (max-width: 560px) {
            .today-grid { grid-template-columns: 1fr 1fr; }
            .calendar-grid td { height: 80px; }
            .shift-pill { font-size: 9px; padding: 1px 3px; }
        }

/* ---------- from shift-report.html ---------- */

/* ===== استایل‌های قبلی ===== */
        .table-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            align-items: center;
            margin-bottom: 16px;
        }
        .table-toolbar .search-box { flex: 1;
            min-width: 200px; }
        .table-toolbar .search-box input {
            width: 100%;
            padding: 10px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 13px;
            transition: border 0.25s;
        }
        .table-toolbar .search-box input:focus {
            border-color: var(--primary);
            outline: none;
            box-shadow: var(--shadow-glow);
        }
        .filter-group {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
        }
        .filter-group select,
        .filter-group input[type="date"] {
            padding: 8px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 12.5px;
            cursor: pointer;
            transition: border 0.25s;
        }
        .filter-group select:focus,
        .filter-group input[type="date"]:focus {
            border-color: var(--primary);
            outline: none;
        }

        .pagination {
            display: flex;
            justify-content: flex-end;
            align-items: center;
            gap: 8px;
            margin-top: 16px;
            flex-wrap: wrap;
        }
        .pagination button {
            padding: 6px 14px;
            border-radius: 20px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            color: var(--text-color);
            cursor: pointer;
            transition: all 0.2s;
            font-size: 12.5px;
        }
        .pagination button:hover:not(:disabled) { border-color: var(--primary);
            color: var(--primary); }
        .pagination button.active {
            background: var(--primary);
            border-color: var(--primary);
            color: #fff;
            font-weight: 700;
        }
        .pagination button:disabled { opacity: 0.4;
            cursor: not-allowed; }
        .pagination .info { font-size: 12.5px;
            color: var(--text-muted); }

        .empty-state {
            text-align: center;
            padding: 40px 20px;
            color: var(--text-muted);
        }
        .empty-state i { font-size: 40px;
            color: var(--border-color);
            margin-bottom: 12px;
            display: block; }

        /* ===== کارت گزارش‌ها ===== */
        .report-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 14px;
        }
        .report-card {
            background: var(--bg-card);
            border-radius: var(--radius-sm);
            border: 1px solid var(--border-color);
            padding: 14px 16px;
            transition: all var(--transition);
            cursor: pointer;
        }
        .report-card:hover {
            border-color: var(--primary);
            transform: translateY(-2px);
            box-shadow: var(--shadow-hover);
        }
        .report-card .card-header {
            display: flex;
            justify-content: space-between;
            align-items: start;
            flex-wrap: wrap;
            gap: 6px;
        }
        .report-card .card-header .title {
            font-weight: 700;
            font-size: 15px;
        }
        .report-card .card-header .badge-status {
            font-size: 11px;
            padding: 2px 12px;
            border-radius: 30px;
            font-weight: 600;
        }
        .report-card .card-header .badge-status.draft { background: var(--border-color);
            color: var(--text-muted); }
        .report-card .card-header .badge-status.submitted { background: var(--amber-bg);
            color: var(--amber); }
        .report-card .card-header .badge-status.approved { background: var(--success-bg);
            color: var(--success); }
        .report-card .card-header .badge-status.rejected { background: var(--danger-bg);
            color: var(--danger); }

        .report-card .meta {
            font-size: 12px;
            color: var(--text-muted);
            margin-top: 6px;
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
        }
        .report-card .meta span { display: flex;
            align-items: center;
            gap: 4px; }
        .report-card .summary {
            font-size: 13px;
            margin-top: 6px;
            color: var(--text-color);
            display: -webkit-box;
      
            -webkit-box-orient: vertical;
            overflow: hidden;
        }
        .report-card .event-count {
            font-size: 11px;
            color: var(--text-muted);
            margin-top: 6px;
        }
        .report-card .actions {
            margin-top: 10px;
            display: flex;
            gap: 6px;
            flex-wrap: wrap;
        }

        /* ===== لیست رویدادها در مودال ===== */
        .event-list-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 6px 10px;
            background: var(--bg-card-alt);
            border-radius: 8px;
            border: 1px solid var(--border-color);
            margin-bottom: 4px;
            font-size: 13px;
        }
        .event-list-item .event-title { font-weight: 500; }
        .event-list-item .event-type {
            font-size: 10px;
            padding: 0 8px;
            border-radius: 10px;
            background: var(--primary-glow);
            color: var(--primary);
        }
        .event-list-item .event-time { font-size: 11px;
            color: var(--text-muted); }
        .event-list-item .event-checkbox {
            width: 18px;
            height: 18px;
            accent-color: var(--primary);
            cursor: pointer;
        }

        /* ===== استایل مودال انتخاب رویداد ===== */
        .event-select-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 8px 12px;
            background: var(--bg-card-alt);
            border-radius: 8px;
            border: 1px solid var(--border-color);
            margin-bottom: 6px;
            cursor: pointer;
            transition: all 0.2s;
        }
        .event-select-item:hover {
            border-color: var(--primary);
            background: var(--primary-glow);
        }
        .event-select-item .event-title { font-weight: 500; }
        .event-select-item .event-detail {
            font-size: 12px;
            color: var(--text-muted);
        }
        .event-select-item .event-add-btn {
            padding: 4px 12px;
            border-radius: 20px;
            border: none;
            background: var(--primary);
            color: #fff;
            font-weight: 600;
            cursor: pointer;
            font-size: 12px;
        }
        .event-select-item .event-add-btn:hover { opacity: 0.8; }
        .event-select-item .event-add-btn.added {
            background: var(--success);
        }

        @media (max-width: 1024px) {
            .report-grid { grid-template-columns: 1fr; }
        }
        @media (max-width: 768px) {
            .table-toolbar { flex-direction: column;
                align-items: stretch; }
            .filter-group { justify-content: center; }
        }

/* ---------- from shifts.html ---------- */

/* ===== استایل‌های عمومی ===== */
        .section-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 12px;
            flex-wrap: wrap;
            gap: 8px;
        }
        .section-header h3 {
            font-size: 16px;
            font-weight: 700;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        .section-header .badge-count {
            font-size: 12px;
            font-weight: 400;
            color: var(--text-muted);
        }

        .shift-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
        .shift-card, .group-card {
            background: var(--bg-card); border-radius: var(--radius-sm);
            border: 1px solid var(--border-color); padding: 14px 16px;
            box-shadow: var(--shadow-sm); transition: all var(--transition);
        }
        .shift-card:hover, .group-card:hover { border-color: var(--primary); transform: translateY(-2px); }
        .shift-card .name, .group-card .name { font-weight: 700; font-size: 15px; }
        .shift-card .time { font-size: 13px; color: var(--text-secondary); font-family: var(--font-mono); }
        .shift-card .meta, .group-card .meta { font-size: 12px; color: var(--text-muted); display: flex; gap: 12px; margin-top: 6px; flex-wrap: wrap; }
        .shift-card .status, .group-card .status { font-size: 11px; padding: 2px 10px; border-radius: 30px; font-weight: 600; }
        .shift-card .status.active { background: var(--success-bg); color: var(--success); }
        .shift-card .status.inactive { background: var(--danger-bg); color: var(--danger); }
        .shift-card .actions, .group-card .actions { margin-top: 10px; display: flex; gap: 6px; }

        /* ===== جدول ابزار ===== */
        .table-toolbar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 16px; }
        .table-toolbar .search-box { flex: 1; min-width: 200px; }
        .table-toolbar .search-box input { width: 100%; padding: 10px 14px; border-radius: 30px; border: 1.5px solid var(--border-color); background: var(--bg-card-alt); color: var(--text-color); font-size: 13px; transition: border 0.25s; }
        .table-toolbar .search-box input:focus { border-color: var(--primary); outline: none; box-shadow: var(--shadow-glow); }
        .filter-group { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
        .filter-group select { padding: 8px 14px; border-radius: 30px; border: 1.5px solid var(--border-color); background: var(--bg-card-alt); color: var(--text-color); font-size: 12.5px; cursor: pointer; transition: border 0.25s; }
        .filter-group select:focus { border-color: var(--primary); outline: none; }

        .pagination { display: flex; justify-content: flex-end; align-items: center; gap: 8px; margin-top: 16px; flex-wrap: wrap; }
        .pagination button { padding: 6px 14px; border-radius: 20px; border: 1px solid var(--border-color); background: var(--bg-card); color: var(--text-color); cursor: pointer; transition: all 0.2s; font-size: 12.5px; }
        .pagination button:hover:not(:disabled) { border-color: var(--primary); color: var(--primary); }
        .pagination button.active { background: var(--primary); border-color: var(--primary); color: #fff; font-weight: 700; }
        .pagination button:disabled { opacity: 0.4; cursor: not-allowed; }
        .pagination .info { font-size: 12.5px; color: var(--text-muted); }

        .empty-state { text-align: center; padding: 40px 20px; color: var(--text-muted); }
        .empty-state i { font-size: 40px; color: var(--border-color); margin-bottom: 12px; display: block; }

        /* ===== الگوها ===== */
        .pattern-item {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 8px 12px;
            background: var(--bg-card-alt);
            border-radius: 8px;
            border: 1px solid var(--border-color);
            margin-bottom: 6px;
            flex-wrap: wrap;
        }
        .pattern-item .pattern-info { flex: 1; min-width: 200px; }
        .pattern-item .pattern-info .name { font-weight: 600; font-size: 14px; }
        .pattern-item .pattern-info .desc { font-size: 12px; color: var(--text-muted); }
        .pattern-item .pattern-steps {
            display: flex;
            flex-wrap: wrap;
            gap: 4px;
            margin: 4px 0;
        }
        .pattern-item .pattern-steps .step-badge {
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 12px;
            padding: 2px 10px;
            font-size: 11px;
            display: inline-flex;
            align-items: center;
            gap: 4px;
        }
        .pattern-item .actions { display: flex; gap: 6px; margin-right: auto; }

        .pattern-list { max-height: 400px; overflow-y: auto; }

        /* ===== مودال ردیف الگو ===== */
        .pattern-row {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
            padding: 8px 10px;
            background: var(--bg-card-alt);
            border-radius: 8px;
            border: 1px solid var(--border-color);
            margin-bottom: 6px;
        }
        .pattern-row select, .pattern-row input {
            padding: 6px 10px;
            border-radius: 6px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            color: var(--text-color);
            font-size: 12px;
        }
        .pattern-row .shift-select { flex: 1; min-width: 120px; }
        .pattern-row .group-select { flex: 1; min-width: 120px; }
        .pattern-row .days-input { width: 70px; }
        .pattern-row .row-actions { display: flex; gap: 4px; }

        @media (max-width: 1024px) { .shift-grid { grid-template-columns: 1fr 1fr; } }
        @media (max-width: 600px) { .shift-grid { grid-template-columns: 1fr; } }

/* ---------- from shutdown-planning.html ---------- */

.shutdown-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
            gap: 14px;
        }
        .shutdown-card {
            background: var(--bg-card);
            border-radius: var(--radius-sm);
            border: 1px solid var(--border-color);
            padding: 14px 16px;
            transition: all var(--transition);
        }
        .shutdown-card:hover {
            border-color: var(--primary);
            transform: translateY(-2px);
            box-shadow: var(--shadow-hover);
        }
        .shutdown-card .card-header {
            display: flex;
            justify-content: space-between;
            align-items: start;
            flex-wrap: wrap;
            gap: 6px;
        }
        .shutdown-card .card-header .title {
            font-weight: 700;
            font-size: 15px;
        }
        .shutdown-card .card-header .code {
            font-size: 12px;
            color: var(--text-muted);
            font-family: var(--font-mono);
        }
        .shutdown-card .meta {
            font-size: 12px;
            color: var(--text-muted);
            margin-top: 6px;
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
        }
        .shutdown-card .timeline-bar {
            margin-top: 10px;
            background: var(--bg-card-alt);
            border-radius: 6px;
            height: 20px;
            overflow: hidden;
            position: relative;
            border: 1px solid var(--border-color);
        }
        .shutdown-card .timeline-bar .progress {
            height: 100%;
            border-radius: 6px;
            transition: width 0.5s ease;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 10px;
            font-weight: 700;
            color: #fff;
        }
        .shutdown-card .resources {
            margin-top: 8px;
            font-size: 12px;
            color: var(--text-muted);
        }
        .shutdown-card .resources .avatar-group {
            display: flex;
            flex-wrap: wrap;
            gap: 4px;
            margin-top: 2px;
        }
        .shutdown-card .resources .avatar {
            width: 26px;
            height: 26px;
            border-radius: 50%;
            background: var(--primary-glow);
            color: var(--primary);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 11px;
            font-weight: 700;
            border: 2px solid var(--border-color);
        }
        .shutdown-card .actions {
            margin-top: 12px;
            display: flex;
            gap: 6px;
            flex-wrap: wrap;
        }

        .status-badge {
            font-size: 11px;
            padding: 2px 12px;
            border-radius: 30px;
            font-weight: 600;
        }
        .status-badge.planning { background: var(--info-bg); color: var(--info); }
        .status-badge.approved { background: var(--primary-glow); color: var(--primary); }
        .status-badge.in_progress { background: var(--amber-bg); color: var(--amber); }
        .status-badge.completed { background: var(--success-bg); color: var(--success); }
        .status-badge.cancelled { background: var(--danger-bg); color: var(--danger); }

        .type-badge {
            font-size: 10px;
            padding: 0 8px;
            border-radius: 10px;
            background: var(--bg-card-alt);
            border: 1px solid var(--border-color);
        }

        .table-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            align-items: center;
            margin-bottom: 16px;
        }
        .table-toolbar .search-box { flex: 1; min-width: 200px; }
        .table-toolbar .search-box input {
            width: 100%;
            padding: 10px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 13px;
            transition: border 0.25s;
        }
        .table-toolbar .search-box input:focus {
            border-color: var(--primary);
            outline: none;
            box-shadow: var(--shadow-glow);
        }
        .filter-group {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
        }
        .filter-group select,
        .filter-group input[type="date"] {
            padding: 8px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 12.5px;
            cursor: pointer;
            transition: border 0.25s;
        }

        .pagination {
            display: flex;
            justify-content: flex-end;
            align-items: center;
            gap: 8px;
            margin-top: 16px;
            flex-wrap: wrap;
        }
        .pagination button {
            padding: 6px 14px;
            border-radius: 20px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            color: var(--text-color);
            cursor: pointer;
            transition: all 0.2s;
            font-size: 12.5px;
        }
        .pagination button:hover:not(:disabled) { border-color: var(--primary); color: var(--primary); }
        .pagination button.active { background: var(--primary); border-color: var(--primary); color: #fff; font-weight: 700; }
        .pagination button:disabled { opacity: 0.4; cursor: not-allowed; }
        .pagination .info { font-size: 12.5px; color: var(--text-muted); }

        .empty-state {
            text-align: center;
            padding: 40px 20px;
            color: var(--text-muted);
            grid-column: 1 / -1;
        }
        .empty-state i { font-size: 40px; color: var(--border-color); margin-bottom: 12px; display: block; }

        .summary-stats {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 14px;
            margin-bottom: 16px;
        }
        .stat-item {
            background: var(--bg-card);
            padding: 14px 16px;
            border-radius: var(--radius-sm);
            border: 1px solid var(--border-color);
            text-align: center;
        }
        .stat-item .number { font-size: 24px; font-weight: 800; font-family: var(--font-mono); }
        .stat-item .label { font-size: 12px; color: var(--text-muted); }

        @media (max-width: 1024px) {
            .summary-stats { grid-template-columns: repeat(2, 1fr); }
        }
        @media (max-width: 768px) {
            .shutdown-grid { grid-template-columns: 1fr; }
            .summary-stats { grid-template-columns: 1fr 1fr; }
            .table-toolbar { flex-direction: column; align-items: stretch; }
            .filter-group { justify-content: center; }
        }

/* ---------- from shutdown-planning1.html ---------- */

.table-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            align-items: center;
            margin-bottom: 16px;
        }
        .table-toolbar .search-box { flex: 1; min-width: 200px; }
        .table-toolbar .search-box input {
            width: 100%;
            padding: 10px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 13px;
            transition: border 0.25s;
        }
        .table-toolbar .search-box input:focus {
            border-color: var(--primary);
            outline: none;
            box-shadow: var(--shadow-glow);
        }
        .filter-group {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
        }
        .filter-group select,
        .filter-group input[type="date"] {
            padding: 8px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 12.5px;
            cursor: pointer;
            transition: border 0.25s;
        }
        .filter-group select:focus,
        .filter-group input[type="date"]:focus {
            border-color: var(--primary);
            outline: none;
        }

        .pagination {
            display: flex;
            justify-content: flex-end;
            align-items: center;
            gap: 8px;
            margin-top: 16px;
            flex-wrap: wrap;
        }
        .pagination button {
            padding: 6px 14px;
            border-radius: 20px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            color: var(--text-color);
            cursor: pointer;
            transition: all 0.2s;
            font-size: 12.5px;
        }
        .pagination button:hover:not(:disabled) { border-color: var(--primary); color: var(--primary); }
        .pagination button.active {
            background: var(--primary);
            border-color: var(--primary);
            color: #fff;
            font-weight: 700;
        }
        .pagination button:disabled { opacity: 0.4; cursor: not-allowed; }
        .pagination .info { font-size: 12.5px; color: var(--text-muted); }

        .empty-state {
            text-align: center;
            padding: 40px 20px;
            color: var(--text-muted);
        }
        .empty-state i { font-size: 40px; color: var(--border-color); margin-bottom: 12px; display: block; }

        .kpi-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 14px;
            margin-bottom: 16px;
        }
        .kpi-card {
            background: var(--bg-card);
            border-radius: var(--radius-sm);
            border: 1px solid var(--border-color);
            padding: 14px 16px;
            text-align: center;
        }
        .kpi-card .value {
            font-size: 24px;
            font-weight: 800;
            font-family: var(--font-mono);
        }
        .kpi-card .label {
            font-size: 12px;
            color: var(--text-muted);
            margin-top: 4px;
        }
        .kpi-card .trend {
            font-size: 11px;
            margin-top: 4px;
        }
        .kpi-card .trend.up { color: var(--success); }
        .kpi-card .trend.down { color: var(--danger); }

        .shutdown-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 8px 12px;
            background: var(--bg-card-alt);
            border-radius: 6px;
            border: 1px solid var(--border-color);
            margin-bottom: 4px;
            transition: all 0.2s;
        }
        .shutdown-item:hover {
            border-color: var(--primary);
        }
        .shutdown-item .info { flex: 1; }
        .shutdown-item .info .title { font-weight: 600; font-size: 14px; }
        .shutdown-item .info .meta { font-size: 11px; color: var(--text-muted); display: flex; gap: 12px; flex-wrap: wrap; }
        .shutdown-item .duration { font-weight: 700; font-family: var(--font-mono); }
        .shutdown-item .actions { display: flex; gap: 4px; }

        .status-planned { background: var(--info-bg); color: var(--info); padding: 2px 10px; border-radius: 12px; font-size: 11px; font-weight: 600; }
        .status-unplanned { background: var(--danger-bg); color: var(--danger); padding: 2px 10px; border-radius: 12px; font-size: 11px; font-weight: 600; }
        .status-pm { background: var(--success-bg); color: var(--success); padding: 2px 10px; border-radius: 12px; font-size: 11px; font-weight: 600; }
        .status-completed { background: var(--border-color); color: var(--text-muted); padding: 2px 10px; border-radius: 12px; font-size: 11px; font-weight: 600; }

        .equipment-kpi-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 6px 10px;
            background: var(--bg-card-alt);
            border-radius: 6px;
            border: 1px solid var(--border-color);
            margin-bottom: 4px;
            font-size: 13px;
        }
        .equipment-kpi-item .name { font-weight: 600; }
        .equipment-kpi-item .stats { display: flex; gap: 16px; font-family: var(--font-mono); font-size: 12px; }
        .equipment-kpi-item .stats span { color: var(--text-muted); }

        .chart-container {
            position: relative;
            height: 200px;
        }

        @media (max-width: 1024px) {
            .kpi-grid { grid-template-columns: repeat(2, 1fr); }
        }
        @media (max-width: 768px) {
            .kpi-grid { grid-template-columns: 1fr 1fr; }
            .shutdown-item { flex-wrap: wrap; }
            .shutdown-item .actions { width: 100%; justify-content: flex-end; }
            .table-toolbar { flex-direction: column; align-items: stretch; }
            .filter-group { justify-content: center; }
        }

/* ---------- from spare-parts.html ---------- */

.part-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
        .part-card { background: var(--bg-card); border-radius: var(--radius-sm); border: 1px solid var(--border-color); padding: 14px 16px; box-shadow: var(--shadow-sm); transition: all var(--transition); }
        .part-card:hover { border-color: var(--primary); transform: translateY(-2px); }
        .part-card .name { font-weight: 700; font-size: 14px; }
        .part-card .code { font-size: 11px; color: var(--text-muted); font-family: var(--font-mono); }
        .part-card .stock { font-size: 13px; font-weight: 700; }
        .part-card .stock.low { color: var(--danger); }
        .part-card .stock.medium { color: var(--amber); }
        .part-card .stock.high { color: var(--success); }
        .part-card .meta { font-size: 11px; color: var(--text-muted); display: flex; gap: 12px; margin-top: 4px; }
        .part-card .actions { margin-top: 10px; display: flex; gap: 6px; }
        .table-toolbar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 16px; }
        .table-toolbar .search-box { flex: 1; min-width: 200px; }
        .table-toolbar .search-box input { width: 100%; padding: 10px 14px; border-radius: 30px; border: 1.5px solid var(--border-color); background: var(--bg-card-alt); color: var(--text-color); font-size: 13px; transition: border 0.25s; }
        .table-toolbar .search-box input:focus { border-color: var(--primary); outline: none; box-shadow: var(--shadow-glow); }
        .filter-group { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
        .filter-group select { padding: 8px 14px; border-radius: 30px; border: 1.5px solid var(--border-color); background: var(--bg-card-alt); color: var(--text-color); font-size: 12.5px; cursor: pointer; transition: border 0.25s; }
        .filter-group select:focus { border-color: var(--primary); outline: none; }
        .pagination { display: flex; justify-content: flex-end; align-items: center; gap: 8px; margin-top: 16px; flex-wrap: wrap; }
        .pagination button { padding: 6px 14px; border-radius: 20px; border: 1px solid var(--border-color); background: var(--bg-card); color: var(--text-color); cursor: pointer; transition: all 0.2s; font-size: 12.5px; }
        .pagination button:hover:not(:disabled) { border-color: var(--primary); color: var(--primary); }
        .pagination button.active { background: var(--primary); border-color: var(--primary); color: #fff; font-weight: 700; }
        .pagination button:disabled { opacity: 0.4; cursor: not-allowed; }
        .pagination .info { font-size: 12.5px; color: var(--text-muted); }
        .empty-state { text-align: center; padding: 40px 20px; color: var(--text-muted); }
        .empty-state i { font-size: 40px; color: var(--border-color); margin-bottom: 12px; display: block; }
        @media (max-width: 1024px) { .part-grid { grid-template-columns: 1fr 1fr; } }
        @media (max-width: 600px) { .part-grid { grid-template-columns: 1fr; } }

/* ---------- from ui-kit.html ---------- */

.kit-nav {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
            margin-bottom: 18px;
            position: sticky;
            top: calc(var(--header-height) + 8px);
            z-index: 50;
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 12px;
            padding: 8px;
        }
        .kit-nav a {
            padding: 6px 12px;
            border-radius: 8px;
            font-size: 12.5px;
            font-weight: 600;
            color: var(--text-muted);
            text-decoration: none;
        }
        .kit-nav a:hover { background: var(--bg-card-alt); color: var(--primary); }
        .kit-section {
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 16px;
            padding: 20px;
            margin-bottom: 16px;
        }
        .kit-section h2 {
            font-size: 16px;
            font-weight: 800;
            margin: 0 0 6px;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        .kit-section h2 i { color: var(--primary); }
        .kit-section .sec-desc {
            font-size: 12.5px;
            color: var(--text-muted);
            margin-bottom: 16px;
        }
        .typo-sample h1 { font-size: 28px; font-weight: 800; margin: 0 0 8px; }
        .typo-sample h2 { font-size: 22px; font-weight: 700; margin: 0 0 8px; }
        .typo-sample h3 { font-size: 18px; font-weight: 700; margin: 0 0 8px; }
        .typo-sample h4 { font-size: 15px; font-weight: 600; margin: 0 0 8px; }
        .typo-sample p { font-size: 14px; line-height: 1.7; color: var(--text-muted); margin: 0 0 8px; }
        .typo-sample .small { font-size: 12px; color: var(--text-muted); }
        .typo-sample .mono { font-family: var(--font-mono); font-size: 13px; }
        .btn-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 12px; }
        .btn-sm { padding: 6px 14px; font-size: 12.5px; border-radius: 10px; }
        .btn-lg { padding: 12px 22px; font-size: 15px; border-radius: 12px; }
        .btn-block { width: 100%; }
        .btn-success { background: #16A34A; color: #fff; border: none; border-radius: 10px; padding: 9px 16px; font-weight: 600; cursor: pointer; }
        .btn-danger { background: #DC2626; color: #fff; border: none; border-radius: 10px; padding: 9px 16px; font-weight: 600; cursor: pointer; }
        .btn-warning { background: #D97706; color: #fff; border: none; border-radius: 10px; padding: 9px 16px; font-weight: 600; cursor: pointer; }
        .btn-ghost { background: transparent; border: none; color: var(--primary); font-weight: 600; cursor: pointer; padding: 9px 12px; }
        .btn-icon {
            width: 40px; height: 40px; border-radius: 11px;
            border: 1px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            display: inline-flex; align-items: center; justify-content: center;
            cursor: pointer;
        }
        .form-demo-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 14px;
        }
        .fg label {
            display: block;
            font-size: 12px;
            font-weight: 600;
            margin-bottom: 6px;
            color: var(--text-muted);
        }
        .fg input, .fg select, .fg textarea {
            width: 100%;
            border: 1px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            border-radius: 10px;
            padding: 10px 12px;
            font-size: 13.5px;
            outline: none;
            box-sizing: border-box;
        }
        .fg input:focus, .fg select:focus, .fg textarea:focus {
            border-color: var(--primary);
            box-shadow: 0 0 0 3px var(--primary-glow, rgba(26,128,248,0.15));
        }
        .fg input:disabled, .fg select:disabled {
            opacity: 0.6;
            cursor: not-allowed;
        }
        .fg .hint { font-size: 11.5px; color: var(--text-muted); margin-top: 4px; }
        .fg .error-text { font-size: 11.5px; color: #DC2626; margin-top: 4px; }
        .fg input.is-error { border-color: #DC2626; }
        .fg input.is-ok { border-color: #16A34A; }
        .fg.full { grid-column: 1 / -1; }
        .check-row { display: flex; flex-wrap: wrap; gap: 16px; font-size: 13.5px; }
        .check-row label { display: flex; align-items: center; gap: 8px; cursor: pointer; }
        .badge {
            display: inline-flex; align-items: center; gap: 4px;
            padding: 3px 10px; border-radius: 20px;
            font-size: 11.5px; font-weight: 700;
        }
        .badge-primary { background: rgba(26,128,248,0.12); color: #1A80F8; }
        .badge-success { background: rgba(22,163,74,0.12); color: #16A34A; }
        .badge-warning { background: rgba(217,119,6,0.12); color: #D97706; }
        .badge-danger { background: rgba(220,38,38,0.12); color: #DC2626; }
        .badge-muted { background: var(--bg-card-alt); color: var(--text-muted); }
        .alert {
            padding: 12px 14px;
            border-radius: 12px;
            font-size: 13.5px;
            margin-bottom: 10px;
            display: flex;
            gap: 10px;
            align-items: flex-start;
            border: 1px solid transparent;
        }
        .alert-info { background: rgba(26,128,248,0.1); color: #1A80F8; border-color: rgba(26,128,248,0.2); }
        .alert-success { background: rgba(22,163,74,0.1); color: #16A34A; border-color: rgba(22,163,74,0.2); }
        .alert-warning { background: rgba(217,119,6,0.1); color: #D97706; border-color: rgba(217,119,6,0.2); }
        .alert-danger { background: rgba(220,38,38,0.1); color: #DC2626; border-color: rgba(220,38,38,0.2); }
        .table-demo {
            width: 100%;
            border-collapse: collapse;
            font-size: 13px;
        }
        .table-demo th {
            text-align: right;
            padding: 10px 12px;
            background: var(--bg-card-alt);
            color: var(--text-muted);
            font-weight: 600;
            border-bottom: 1px solid var(--border-color);
        }
        .table-demo td {
            padding: 10px 12px;
            border-bottom: 1px solid var(--border-color);
        }
        .tabs-demo { display: flex; gap: 4px; border-bottom: 1px solid var(--border-color); margin-bottom: 14px; }
        .tabs-demo .tab {
            padding: 10px 14px;
            font-size: 13px; font-weight: 600;
            color: var(--text-muted);
            cursor: pointer;
            border-bottom: 2px solid transparent;
        }
        .tabs-demo .tab.active { color: var(--primary); border-bottom-color: var(--primary); }
        .progress {
            height: 8px;
            background: var(--bg-card-alt);
            border-radius: 8px;
            overflow: hidden;
            margin-bottom: 10px;
        }
        .progress > span {
            display: block;
            height: 100%;
            background: linear-gradient(90deg, #1A80F8, #3B82F6);
            border-radius: 8px;
        }
        .skeleton {
            background: linear-gradient(90deg, var(--bg-card-alt) 25%, var(--border-color) 50%, var(--bg-card-alt) 75%);
            background-size: 200% 100%;
            animation: sk 1.2s infinite;
            border-radius: 8px;
            height: 14px;
            margin-bottom: 8px;
        }
        @keyframes sk { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
        .avatar-demo {
            display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
        }
        .av {
            width: 40px; height: 40px; border-radius: 50%;
            background: #1A80F8; color: #fff;
            display: flex; align-items: center; justify-content: center;
            font-weight: 700; font-size: 14px;
        }
        .av.sm { width: 28px; height: 28px; font-size: 11px; }
        .av.lg { width: 56px; height: 56px; font-size: 18px; }
        .av.img { background: url(assets/img/avatar.png) center/cover; }
        .modal-backdrop {
            position: fixed; inset: 0;
            background: rgba(6,10,19,0.55);
            z-index: 2000;
            display: none;
            align-items: center;
            justify-content: center;
            padding: 20px;
            backdrop-filter: blur(3px);
        }
        .modal-backdrop.open { display: flex; }
        .modal-box {
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 16px;
            width: 100%;
            max-width: 420px;
            padding: 22px;
            box-shadow: 0 20px 50px rgba(0,0,0,0.2);
        }
        .modal-box h3 { margin: 0 0 8px; font-size: 17px; }
        .modal-box p { margin: 0 0 16px; color: var(--text-muted); font-size: 13.5px; line-height: 1.6; }
        .modal-actions { display: flex; gap: 8px; justify-content: flex-end; }
        .chip {
            display: inline-flex; align-items: center; gap: 6px;
            padding: 6px 12px; border-radius: 20px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            font-size: 12.5px; font-weight: 600;
            cursor: pointer; color: var(--text-muted);
        }
        .chip.active { background: var(--primary); color: #fff; border-color: var(--primary); }
        .tooltip-demo {
            position: relative;
            display: inline-block;
        }
        .tooltip-demo .tip {
            visibility: hidden;
            position: absolute;
            bottom: calc(100% + 8px);
            right: 50%;
            transform: translateX(50%);
            background: #0F172A;
            color: #fff;
            font-size: 11.5px;
            padding: 6px 10px;
            border-radius: 8px;
            white-space: nowrap;
            opacity: 0;
            transition: opacity 0.15s;
            z-index: 10;
        }
        .tooltip-demo:hover .tip { visibility: visible; opacity: 1; }
        .color-swatches { display: flex; flex-wrap: wrap; gap: 10px; }
        .swatch {
            width: 72px; text-align: center; font-size: 11px; color: var(--text-muted);
        }
        .swatch .box {
            height: 48px; border-radius: 12px; margin-bottom: 6px;
            border: 1px solid var(--border-color);
        }
        .empty-state {
            text-align: center;
            padding: 36px 16px;
            color: var(--text-muted);
        }
        .empty-state i { font-size: 36px; margin-bottom: 12px; opacity: 0.4; }
        .empty-state h4 { margin: 0 0 6px; color: var(--text-color); }
        @media (max-width: 700px) {
            .form-demo-grid { grid-template-columns: 1fr; }
        }

/* ---------- from users.html ---------- */

/* استایل‌های اصلی */
        .table-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            align-items: center;
            margin-bottom: 16px;
        }
        .table-toolbar .search-box { flex: 1; min-width: 200px; }
        .table-toolbar .search-box input {
            width: 100%;
            padding: 10px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 13px;
            transition: border 0.25s;
        }
        .table-toolbar .search-box input:focus {
            border-color: var(--primary);
            outline: none;
            box-shadow: var(--shadow-glow);
        }
        .filter-group {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
        }
        .filter-group select {
            padding: 8px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 12.5px;
            cursor: pointer;
            transition: border 0.25s;
        }
        .filter-group select:focus {
            border-color: var(--primary);
            outline: none;
        }
        /* Select2 در نوار فیلتر — جمع‌وجور */
        .filter-group .select2-container {
            width: auto !important;
            min-width: 110px;
        }
        .filter-group .select2-container--default .select2-selection--single {
            height: 36px !important;
            border-radius: 30px !important;
            padding: 0 12px !important;
        }
        .filter-group .select2-container--default .select2-selection--single .select2-selection__rendered {
            line-height: 34px !important;
            font-size: 12.5px;
        }
        .filter-group .select2-container--default .select2-selection--single .select2-selection__arrow {
            height: 34px !important;
        }
        /* Select2 داخل مدال‌ها */
        .fullscreen-modal .form-group .select2-container {
            width: 100% !important;
        }
        .fullscreen-modal .select2-container--default .select2-selection--single {
            height: 42px !important;
            border-radius: 10px !important;
        }

        .pagination {
            display: flex;
            justify-content: flex-end;
            align-items: center;
            gap: 8px;
            margin-top: 16px;
            flex-wrap: wrap;
        }
        .pagination button {
            padding: 6px 14px;
            border-radius: 20px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            color: var(--text-color);
            cursor: pointer;
            transition: all 0.2s;
            font-size: 12.5px;
        }
        .pagination button:hover:not(:disabled) { border-color: var(--primary);
            color: var(--primary); }
        .pagination button.active {
            background: var(--primary);
            border-color: var(--primary);
            color: #fff;
            font-weight: 700;
        }
        .pagination button:disabled { opacity: 0.4;
            cursor: not-allowed; }
        .pagination .info { font-size: 12.5px;
            color: var(--text-muted); }

        .badge-status.inactive { background: var(--danger-bg);
            color: var(--danger); }
        .user-actions { display: flex;
            gap: 6px;
            flex-wrap: wrap; }
        .empty-state {
            text-align: center;
            padding: 40px 20px;
            color: var(--text-muted);
        }
        .empty-state i { font-size: 40px;
            color: var(--border-color);
            margin-bottom: 12px;
            display: block; }

        /* بخش چارت سازمانی */
        .org-chart-wrapper {
            margin-top: 20px;
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 20px;
        }
        .org-chart-card {
            background: var(--bg-card);
            border-radius: var(--radius);
            border: 1px solid var(--border-color);
            padding: 16px 18px;
        }
        .org-chart-card .card-title {
            font-weight: 700;
            font-size: 14px;
            margin-bottom: 10px;
            display: flex;
            align-items: center;
            gap: 8px;
            justify-content: space-between;
        }
        #orgTree {
            min-height: 300px;
            max-height: 450px;
            overflow-y: auto;
            padding: 8px 4px;
        }
        .jstree-default .jstree-anchor {
            font-family: var(--font-fa) !important;
            font-size: 13px;
            color: var(--text-color) !important;
            padding: 2px 6px !important;
            border-radius: 6px !important;
        }
        .jstree-default .jstree-clicked {
            background: var(--primary-glow) !important;
            color: var(--primary) !important;
        }
        .jstree-default .jstree-node[data-type="company"]>.jstree-anchor .jstree-icon { color: #1A80F8 !important; }
        .jstree-default .jstree-node[data-type="department"]>.jstree-anchor .jstree-icon { color: #3B82F6 !important; }
        .jstree-default .jstree-node[data-type="section"]>.jstree-anchor .jstree-icon { color: #60A5FA !important; }
        .jstree-default .jstree-node[data-type="team"]>.jstree-anchor .jstree-icon { color: #34D399 !important; }

        /* فرم انتخاب گره در مودال کاربر */
        .org-node-selector {
            display: flex;
            gap: 8px;
            align-items: center;
        }
        .org-node-selector input {
            flex: 1;
            padding: 8px 12px;
            border-radius: 8px;
            border: 1px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
        }
        .org-node-selector .btn-sm { padding: 6px 12px; }

        @media (max-width: 1024px) {
            .org-chart-wrapper { grid-template-columns: 1fr; }
        }
        @media (max-width: 768px) {
            .table-toolbar { flex-direction: column;
                align-items: stretch; }
            .filter-group { justify-content: center; }
        }

/* ---------- from work-order-detail.html ---------- */

.wo-layout {
            display: grid;
            grid-template-columns: 1fr 320px;
            gap: 16px;
            align-items: start;
        }
        .wo-main, .wo-side {
            display: flex;
            flex-direction: column;
            gap: 14px;
        }
        .panel {
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 14px;
            padding: 18px;
        }
        .panel h3 {
            font-size: 14px;
            font-weight: 700;
            margin: 0 0 14px;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        .panel h3 i { color: var(--primary); }
        .form-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 12px;
        }
        .form-grid .full { grid-column: 1 / -1; }
        .fg label {
            display: block;
            font-size: 12px;
            font-weight: 600;
            margin-bottom: 5px;
            color: var(--text-muted);
        }
        .fg input, .fg select, .fg textarea {
            width: 100%;
            border: 1px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            border-radius: 10px;
            padding: 9px 12px;
            font-size: 13px;
            outline: none;
            box-sizing: border-box;
            transition: border 0.15s;
        }
        .fg input:focus, .fg select:focus, .fg textarea:focus {
            border-color: var(--primary);
        }
        .fg textarea { min-height: 90px; resize: vertical; }
        .status-pill {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 5px 12px;
            border-radius: 20px;
            font-size: 12px;
            font-weight: 700;
        }
        .st-open { background: rgba(26,128,248,0.12); color: #1A80F8; }
        .st-progress { background: rgba(245,158,11,0.12); color: #D97706; }
        .st-done { background: rgba(34,197,94,0.12); color: #16A34A; }
        .st-cancel { background: rgba(239,68,68,0.12); color: #DC2626; }
        .priority-high { color: #DC2626; font-weight: 700; }
        .priority-med { color: #D97706; font-weight: 700; }
        .priority-low { color: #16A34A; font-weight: 700; }
        .timeline {
            position: relative;
            padding-right: 18px;
        }
        .timeline::before {
            content: '';
            position: absolute;
            right: 5px;
            top: 4px;
            bottom: 4px;
            width: 2px;
            background: var(--border-color);
        }
        .tl-item {
            position: relative;
            padding-bottom: 16px;
        }
        .tl-item::before {
            content: '';
            position: absolute;
            right: -16px;
            top: 4px;
            width: 10px; height: 10px;
            border-radius: 50%;
            background: var(--primary);
            border: 2px solid var(--bg-card);
            box-shadow: 0 0 0 2px var(--primary);
        }
        .tl-item .time {
            font-size: 11px;
            color: var(--text-muted);
            margin-bottom: 2px;
        }
        .tl-item .text { font-size: 13px; }
        .meta-row {
            display: flex;
            justify-content: space-between;
            padding: 8px 0;
            border-bottom: 1px dashed var(--border-color);
            font-size: 13px;
        }
        .meta-row:last-child { border: none; }
        .meta-row span { color: var(--text-muted); }
        .meta-row b { color: var(--text-color); }
        .action-bar {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-top: 4px;
        }
        .checklist-item {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 8px 0;
            border-bottom: 1px solid var(--border-color);
            font-size: 13px;
        }
        .checklist-item:last-child { border: none; }
        .checklist-item input { width: 16px; height: 16px; accent-color: var(--primary); }
        @media (max-width: 960px) {
            .wo-layout { grid-template-columns: 1fr; }
            .form-grid { grid-template-columns: 1fr; }
        }

/* ---------- from work-orders.html ---------- */

/* ===== استایل‌های عمومی ===== */
        .table-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            align-items: center;
            margin-bottom: 16px;
        }
        .table-toolbar .search-box { flex: 1;
            min-width: 200px; }
        .table-toolbar .search-box input {
            width: 100%;
            padding: 10px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 13px;
            transition: border 0.25s;
        }
        .table-toolbar .search-box input:focus {
            border-color: var(--primary);
            outline: none;
            box-shadow: var(--shadow-glow);
        }
        .filter-group {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
        }
        .filter-group select,
        .filter-group input[type="date"] {
            padding: 8px 14px;
            border-radius: 30px;
            border: 1.5px solid var(--border-color);
            background: var(--bg-card-alt);
            color: var(--text-color);
            font-size: 12.5px;
            cursor: pointer;
            transition: border 0.25s;
        }
        .filter-group select:focus,
        .filter-group input[type="date"]:focus {
            border-color: var(--primary);
            outline: none;
        }

        .pagination {
            display: flex;
            justify-content: flex-end;
            align-items: center;
            gap: 8px;
            margin-top: 16px;
            flex-wrap: wrap;
        }
        .pagination button {
            padding: 6px 14px;
            border-radius: 20px;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            color: var(--text-color);
            cursor: pointer;
            transition: all 0.2s;
            font-size: 12.5px;
        }
        .pagination button:hover:not(:disabled) { border-color: var(--primary);
            color: var(--primary); }
        .pagination button.active {
            background: var(--primary);
            border-color: var(--primary);
            color: #fff;
            font-weight: 700;
        }
        .pagination button:disabled { opacity: 0.4;
            cursor: not-allowed; }
        .pagination .info { font-size: 12.5px;
            color: var(--text-muted); }

        .empty-state {
            text-align: center;
            padding: 40px 20px;
            color: var(--text-muted);
        }
        .empty-state i { font-size: 40px;
            color: var(--border-color);
            margin-bottom: 12px;
            display: block; }

        /* ===== کارت دستور کار ===== */
        .wo-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 14px;
        }
        .wo-card {
            background: var(--bg-card);
            border-radius: var(--radius-sm);
            border: 1px solid var(--border-color);
            padding: 14px 16px;
            transition: all var(--transition);
            cursor: pointer;
        }
        .wo-card:hover {
            border-color: var(--primary);
            transform: translateY(-2px);
            box-shadow: var(--shadow-hover);
        }
        .wo-card .card-header {
            display: flex;
            justify-content: space-between;
            align-items: start;
            flex-wrap: wrap;
            gap: 6px;
        }
        .wo-card .card-header .title {
            font-weight: 700;
            font-size: 15px;
        }
        .wo-card .card-header .wo-code {
            font-size: 12px;
            color: var(--text-muted);
            font-family: var(--font-mono);
        }
        .wo-card .equip {
            font-size: 12px;
            color: var(--text-muted);
            margin-top: 2px;
        }
        .wo-card .meta {
            font-size: 12px;
            color: var(--text-muted);
            margin-top: 6px;
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
        }
        .wo-card .meta span { display: flex;
            align-items: center;
            gap: 4px; }
        .wo-card .assignees {
            margin-top: 6px;
            display: flex;
            flex-wrap: wrap;
            gap: 4px;
        }
        .wo-card .assignees .avatar {
            width: 26px;
            height: 26px;
            border-radius: 50%;
            background: var(--primary-glow);
            color: var(--primary);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 11px;
            font-weight: 700;
            border: 2px solid var(--border-color);
        }
        .wo-card .parts-used {
            font-size: 11px;
            color: var(--text-muted);
            margin-top: 4px;
            padding: 4px 8px;
            background: var(--bg-card-alt);
            border-radius: 6px;
        }
        .wo-card .actions {
            margin-top: 10px;
            display: flex;
            gap: 6px;
            flex-wrap: wrap;
        }

        /* ===== وضعیت‌ها ===== */
        .status-badge {
            font-size: 11px;
            padding: 2px 12px;
            border-radius: 30px;
            font-weight: 600;
            display: inline-flex;
            align-items: center;
            gap: 4px;
        }
        .status-badge.open { background: var(--info-bg);
            color: var(--info); }
        .status-badge.assigned { background: var(--primary-glow);
            color: var(--primary); }
        .status-badge.in_progress { background: var(--amber-bg);
            color: var(--amber); }
        .status-badge.waiting_parts { background: var(--orange-bg);
            color: var(--orange); }
        .status-badge.closed { background: var(--success-bg);
            color: var(--success); }
        .status-badge.cancelled { background: var(--danger-bg);
            color: var(--danger); }

        .priority-badge {
            font-size: 11px;
            padding: 2px 10px;
            border-radius: 30px;
            font-weight: 600;
        }
        .priority-badge.critical { background: var(--danger-bg);
            color: var(--danger); }
        .priority-badge.high { background: var(--danger-bg);
            color: var(--danger); }
        .priority-badge.medium { background: var(--amber-bg);
            color: var(--amber); }
        .priority-badge.low { background: var(--info-bg);
            color: var(--info); }

        /* ===== مودال ===== */
        .assignee-tag {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            padding: 2px 10px 2px 6px;
            background: var(--bg-card-alt);
            border-radius: 20px;
            border: 1px solid var(--border-color);
            font-size: 12px;
            margin: 2px;
        }
        .assignee-tag .remove {
            cursor: pointer;
            color: var(--danger);
            font-size: 12px;
        }
        .part-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 4px 8px;
            background: var(--bg-card-alt);
            border-radius: 6px;
            border: 1px solid var(--border-color);
            margin-bottom: 4px;
            font-size: 13px;
        }
        .part-item .part-name { font-weight: 500; }
        .part-item .part-qty { font-size: 12px;
            color: var(--text-muted); }

        /* ===== گردش کار ===== */
        .workflow-container {
            margin-top: 8px;
            padding: 8px 10px;
            background: var(--bg-card-alt);
            border-radius: 8px;
            border: 1px solid var(--border-color);
        }

        @media (max-width: 1024px) {
            .wo-grid { grid-template-columns: 1fr; }
        }
        @media (max-width: 768px) {
            .table-toolbar { flex-direction: column;
                align-items: stretch; }
            .filter-group { justify-content: center; }
        }

/* equipment table helpers */
.equip-code { font-family: var(--font-mono); font-size: 12px; color: var(--text-muted); }
.equip-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.equip-status, span.status {
  font-size: 11px; padding: 2px 10px; border-radius: 30px; font-weight: 600; display: inline-block;
}
span.status.active { background: var(--success-bg); color: var(--success); }
span.status.inactive { background: var(--danger-bg); color: var(--danger); }
span.status.maintenance { background: var(--amber-bg); color: var(--amber); }


/* ===== UI POLISH: toolbar / table / shift cards ===== */

/* --- Tables: comfortable cell padding --- */
.table-wrap table th,
.table-wrap table td,
table th,
table td {
    padding: 12px 14px !important;
    vertical-align: middle;
}
body.rtl .table-wrap table th,
body.rtl .table-wrap table td,
body.rtl table th,
body.rtl table td {
    text-align: right;
    padding: 12px 14px !important;
}
table.print-t th,
table.print-t td {
    padding: 12px 14px !important;
}

/* --- Unified filter / search toolbar (single row, content-sized filters) --- */
.table-toolbar,
.filters,
.filter-bar {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 10px !important;
    margin-bottom: 16px !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

.table-toolbar .search-box,
.filters .search-box,
.filter-bar .search-box {
    flex: 1 1 220px !important;
    min-width: 180px !important;
    max-width: 420px !important;
    position: relative;
}

/* search inputs inside .search-box: no own border (shell has it) */
.table-toolbar .search-box input,
.filters .search-box input,
.filter-bar .search-box input,
#woSearch,
#equipSearch,
#partSearch,
#pmSearch,
#groupSearch,
#shiftSearch {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: none !important;
    color: var(--text-color) !important;
    font-size: 13px !important;
    font-family: inherit !important;
}
/* standalone filter text inputs (no .search-box wrapper) */
.filters > input[type="text"],
#searchInv {
    width: auto !important;
    flex: 1 1 220px !important;
    min-width: 180px !important;
    max-width: 360px !important;
    height: 42px !important;
    padding: 0 16px !important;
    border-radius: 12px !important;
    border: 1.5px solid var(--border-color) !important;
    background: var(--bg-card) !important;
    color: var(--text-color) !important;
    font-size: 13px !important;
    box-sizing: border-box !important;
}
.filters > input[type="text"]:focus,
#searchInv:focus {
    border-color: var(--primary) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px var(--primary-glow) !important;
}
.table-toolbar .search-box input:focus,
.filters .search-box input:focus,
#woSearch:focus,
#shiftSearch:focus,
#groupSearch:focus {
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
}

.table-toolbar .filter-group,
.filters .filter-group,
.filter-group {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 8px !important;
    flex: 0 1 auto !important;
    margin: 0 !important;
}

/* Filters sized to content, not stretched full width */
.table-toolbar .filter-group select,
.filters select,
.filter-group select,
.table-toolbar select,
.filters > select {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    height: 40px !important;
    padding: 0 14px !important;
    border-radius: 12px !important;
    border: 1.5px solid var(--border-color) !important;
    background: var(--bg-card) !important;
    color: var(--text-color) !important;
    font-size: 12.5px !important;
    font-family: inherit !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
}

.table-toolbar .filter-group select:focus,
.filters select:focus,
.filter-group select:focus {
    border-color: var(--primary) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px var(--primary-glow) !important;
}

/* Date inputs in toolbar */
.table-toolbar input[type="date"],
.filters input[type="date"],
.table-toolbar .jdp-field,
.filters .jdp-field {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 140px !important;
}
.table-toolbar .jdp-field .jdp-input,
.filters .jdp-field .jdp-input {
    height: 40px !important;
    border-radius: 12px !important;
    font-size: 12.5px !important;
}

/* Select2 inside toolbars — content width */
.table-toolbar .select2-container,
.filter-group .select2-container,
.filters .select2-container {
    width: auto !important;
    min-width: 120px !important;
    flex: 0 0 auto !important;
}
.table-toolbar .select2-container--default .select2-selection--single,
.filter-group .select2-container--default .select2-selection--single {
    height: 40px !important;
    border-radius: 12px !important;
    border: 1.5px solid var(--border-color) !important;
    background: var(--bg-card) !important;
}
.table-toolbar .select2-container--default .select2-selection--single .select2-selection__rendered,
.filter-group .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 38px !important;
    font-size: 12.5px !important;
    padding-inline: 14px 28px !important;
}
.table-toolbar .select2-container--default .select2-selection--single .select2-selection__arrow,
.filter-group .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 38px !important;
}

/* Mobile: still one visual group, wrap gracefully — not full-width column stretch of every control */
@media (max-width: 768px) {
    .table-toolbar,
    .filters {
        flex-direction: row !important;
        align-items: stretch !important;
    }
    .table-toolbar .search-box,
    .filters .search-box {
        flex: 1 1 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }
    .table-toolbar .filter-group,
    .filter-group {
        flex: 1 1 100% !important;
    }
    .table-toolbar .filter-group select,
    .filters select,
    .filter-group select {
        flex: 1 1 auto !important;
        min-width: 120px !important;
    }
}

/* --- Shift / group cards: compact --- */
.shift-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
    gap: 10px !important;
}
.shift-card,
.group-card {
    padding: 10px 12px !important;
    border-radius: 10px !important;
    box-shadow: none !important;
}
.shift-card .name,
.group-card .name {
    font-size: 13.5px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}
.shift-card .time {
    font-size: 12px !important;
    margin-top: 2px !important;
}
.shift-card .meta,
.group-card .meta {
    font-size: 11.5px !important;
    margin-top: 4px !important;
    gap: 8px !important;
}
.shift-card .status,
.group-card .status {
    font-size: 10.5px !important;
    padding: 2px 8px !important;
}
.shift-card .actions,
.group-card .actions {
    margin-top: 8px !important;
    gap: 4px !important;
}
.shift-card .actions .btn-sm,
.group-card .actions .btn-sm {
    padding: 4px 8px !important;
    font-size: 11px !important;
}

/* Inventory filters row (uses .filters class) */
.filters > input,
.filters > select {
    height: 40px !important;
    border-radius: 12px !important;
    border: 1.5px solid var(--border-color) !important;
    background: var(--bg-card) !important;
    padding: 0 14px !important;
    font-size: 13px !important;
    box-sizing: border-box !important;
}
.filters > input {
    flex: 1 1 220px !important;
    min-width: 180px !important;
    max-width: 360px !important;
}
.filters > select {
    flex: 0 0 auto !important;
    width: auto !important;
}


/* ===== Settings: language & digits chips ===== */
.locale-options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.locale-chip {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 120px;
    padding: 14px 16px;
    border-radius: 12px;
    border: 1.5px solid var(--border-color);
    background: var(--bg-card-alt);
    color: var(--text-color);
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
}
.locale-chip small {
    font-size: 10px;
    font-weight: 500;
    color: var(--text-muted);
}
.locale-chip:hover {
    border-color: var(--primary);
}
.locale-chip.active {
    border-color: var(--primary);
    background: var(--primary-glow);
    color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-glow);
}
.locale-chip.active small {
    color: var(--primary);
}


/* ===== Locale fonts & digits (forced by language) ===== */
html[lang="fa"] body,
html[lang="fa"] body.rtl,
body.rtl {
    --font-main: var(--font-fa);
    --font-mono: var(--font-fa);
    font-family: var(--font-fa) !important;
}
html[lang="en"] body,
html[lang="en"] body:not(.rtl),
body:not(.rtl) {
    --font-main: var(--font-en);
    --font-mono: 'JetBrains Mono', 'Consolas', 'Courier New', monospace;
    font-family: var(--font-en) !important;
}

html[lang="fa"] body,
body.rtl,
body.lang-fa {
    font-family: var(--font-fa) !important;
}
html[lang="en"] body,
body:not(.rtl),
body.lang-en {
    font-family: var(--font-en) !important;
}

/* Text elements inherit locale font */
html[lang="fa"] body p, html[lang="fa"] body span, html[lang="fa"] body div,
html[lang="fa"] body a, html[lang="fa"] body li, html[lang="fa"] body label,
html[lang="fa"] body td, html[lang="fa"] body th, html[lang="fa"] body h1,
html[lang="fa"] body h2, html[lang="fa"] body h3, html[lang="fa"] body h4,
html[lang="fa"] body button, html[lang="fa"] body input, html[lang="fa"] body select,
html[lang="fa"] body textarea, html[lang="fa"] body .card, html[lang="fa"] body .btn-primary,
html[lang="fa"] body .btn-outline, html[lang="fa"] body .btn-sm,
body.rtl p, body.rtl span, body.rtl div, body.rtl a, body.rtl li, body.rtl label,
body.rtl td, body.rtl th, body.rtl h1, body.rtl h2, body.rtl h3, body.rtl button,
body.rtl input, body.rtl select, body.rtl textarea {
    font-family: var(--font-fa) !important;
}

html[lang="en"] body p, html[lang="en"] body span, html[lang="en"] body div,
html[lang="en"] body a, html[lang="en"] body li, html[lang="en"] body label,
html[lang="en"] body td, html[lang="en"] body th, html[lang="en"] body h1,
html[lang="en"] body h2, html[lang="en"] body h3, html[lang="en"] body h4,
html[lang="en"] body button, html[lang="en"] body input, html[lang="en"] body select,
html[lang="en"] body textarea, html[lang="en"] body .card,
body:not(.rtl) p, body:not(.rtl) span, body:not(.rtl) div, body:not(.rtl) a,
body:not(.rtl) li, body:not(.rtl) label, body:not(.rtl) td, body:not(.rtl) th,
body:not(.rtl) h1, body:not(.rtl) h2, body:not(.rtl) h3, body:not(.rtl) button,
body:not(.rtl) input, body:not(.rtl) select, body:not(.rtl) textarea {
    font-family: var(--font-en) !important;
}

/* Keep icons on Font Awesome (specificity > body.rtl *) */
body .fa, body .fas, body .far, body .fal, body .fab,
body .fa-solid, body .fa-regular, body .fa-brands,
body [class^="fa-"], body [class*=" fa-"],
body.rtl .fa, body.rtl .fas, body.rtl .far, body.rtl .fab,
body.rtl .fa-solid, body.rtl .fa-brands,
body:not(.rtl) .fa, body:not(.rtl) .fas, body:not(.rtl) .fab,
html[lang="fa"] body .fa, html[lang="en"] body .fa,
html[lang="fa"] body .fas, html[lang="en"] body .fas,
html[lang="fa"] body i[class*="fa-"], html[lang="en"] body i[class*="fa-"] {
    font-family: "Font Awesome 6 Free", "Font Awesome 6 Brands" !important;
    font-weight: 900 !important;
    font-style: normal !important;
}
body .fab, body .fa-brands,
body.rtl .fab, body:not(.rtl) .fab {
    font-family: "Font Awesome 6 Brands" !important;
    font-weight: 400 !important;
}

/* Mono numeric codes still readable */
.mono, .equip-code, code, pre, .wo-code, [class*="-code"] {
    font-variant-numeric: tabular-nums;
}
html[lang="en"] .mono,
html[lang="en"] .equip-code,
body:not(.rtl) .mono,
body:not(.rtl) .equip-code {
    font-family: 'JetBrains Mono', 'Consolas', 'Courier New', monospace !important;
}
html[lang="fa"] .mono,
html[lang="fa"] .equip-code,
body.rtl .mono,
body.rtl .equip-code {
    font-family: var(--font-fa) !important;
}


/* ===== SEARCH BOX + PRO UI (unified) ===== */

/* Outer shell = only visual chrome; input is borderless inside */
.table-toolbar .search-box,
.filters .search-box,
.filter-bar .search-box,
.tree-toolbar .search-box,
.search-box {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    flex: 1 1 220px !important;
    min-width: 180px !important;
    max-width: 420px !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 0 14px 0 16px !important;
    margin: 0 !important;
    border-radius: 12px !important;          /* همان گوشه input — بدون دوگانگی ۳۰ vs ۱۲ */
    border: 1.5px solid var(--border-color) !important;
    background: var(--bg-card) !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
    position: relative !important;
    overflow: hidden !important;
}

.table-toolbar .search-box:focus-within,
.filters .search-box:focus-within,
.search-box:focus-within {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px var(--primary-glow) !important;
}

/* آیکون جستجو اگر در HTML نباشد */
.search-box:not(:has(> i)):not(:has(> .fa)):before {
    content: "\f002";
    font-family: "Font Awesome 6 Free" !important;
    font-weight: 900 !important;
    font-size: 13px !important;
    color: var(--text-muted) !important;
    flex-shrink: 0;
    line-height: 1;
}
.search-box > i,
.search-box > .fa,
.search-box > .fas {
    color: var(--text-muted) !important;
    font-size: 13px !important;
    flex-shrink: 0 !important;
}

/* خود input: بدون border/radius جدا — فقط متن */
.table-toolbar .search-box input,
.filters .search-box input,
.filter-bar .search-box input,
.tree-toolbar .search-box input,
.search-box input,
#shiftSearch,
#groupSearch,
#woSearch,
#equipSearch,
#partSearch,
#pmSearch,
#searchInv {
    flex: 1 1 auto !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: none !important;
    font-size: 13px !important;
    color: var(--text-color) !important;
    font-family: inherit !important;
}
.table-toolbar .search-box input:focus,
.filters .search-box input:focus,
.search-box input:focus,
#shiftSearch:focus,
#groupSearch:focus {
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
}
.search-box input::placeholder {
    color: var(--text-muted) !important;
    opacity: 0.85;
}

/* فیلترهای کنار جستجو — گوشه هم‌خوان ۱۲px */
.table-toolbar .filter-group select,
.filter-group select,
.filters select,
.table-toolbar select {
    border-radius: 12px !important;
    height: 42px !important;
}

/* --- Pro: sticky table header --- */
.table-wrap {
    position: relative;
    overflow: auto;
    max-height: min(70vh, 720px);
    border-radius: 12px;
    border: 1px solid var(--border-color);
}
.table-wrap table {
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
}
.table-wrap thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--bg-card-alt) !important;
    box-shadow: 0 1px 0 var(--border-color);
}

/* --- Pro: scroll to top --- */
#scrollTopBtn {
    position: fixed;
    bottom: 72px;
    left: 20px;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    border: 1.5px solid var(--border-color);
    background: var(--bg-card);
    color: var(--primary);
    box-shadow: var(--shadow-hover);
    cursor: pointer;
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 900;
    transition: transform 0.2s, opacity 0.2s, background 0.2s;
}
body.rtl #scrollTopBtn {
    left: auto;
    right: 20px;
}
#scrollTopBtn.visible {
    display: flex;
}
#scrollTopBtn:hover {
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
    transform: translateY(-2px);
}

/* --- Pro: focus ring consistency --- */
.btn-primary, .btn-outline, .btn-sm, .btn-danger {
    border-radius: 12px !important;
}

/* --- Pro: subtle page content enter --- */
.page-content {
    animation: pageIn 0.28s ease;
}
@keyframes pageIn {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

/* --- Pro: keyboard hint under search (optional via data attribute) --- */
.search-box[data-shortcut]::after {
    content: attr(data-shortcut);
    font-size: 10px;
    font-weight: 600;
    color: var(--text-muted);
    background: var(--bg-card-alt);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    padding: 2px 6px;
    flex-shrink: 0;
    letter-spacing: 0.3px;
    opacity: 0.7;
}
@media (max-width: 768px) {
    .search-box[data-shortcut]::after { display: none; }
    #scrollTopBtn { bottom: 80px; }
}


/* ===== FINAL: search-box single chrome (no double lines) ===== */
.table-toolbar .search-box,
.filters .search-box,
.filter-bar .search-box,
.tree-toolbar .search-box,
div.search-box {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    height: 42px !important;
    padding: 0 14px !important;
    border: 1.5px solid var(--border-color) !important;
    border-radius: 12px !important;
    background: var(--bg-card) !important;
    box-shadow: none !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}
.table-toolbar .search-box:focus-within,
.filters .search-box:focus-within,
div.search-box:focus-within {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px var(--primary-glow) !important;
}
.table-toolbar .search-box input,
.filters .search-box input,
.filter-bar .search-box input,
.tree-toolbar .search-box input,
div.search-box input,
div.search-box > input[type="text"] {
    all: unset !important;
    display: block !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 40px !important;
    line-height: 40px !important;
    font-size: 13px !important;
    font-family: inherit !important;
    color: var(--text-color) !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    padding: 0 !important;
    margin: 0 !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}
div.search-box input::placeholder {
    color: var(--text-muted) !important;
    opacity: 0.8;
}


/* ===== FINAL POLISH: height, select2 clear, trees ===== */

/* ارتفاع یکسان: جستجو = فیلتر = select = ۴۰px */
.table-toolbar .search-box,
.filters .search-box,
.filter-bar .search-box,
.tree-toolbar .search-box,
div.search-box {
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 12px !important;
}
.table-toolbar .filter-group select,
.filter-group select,
.filters select,
.table-toolbar select,
.filters > input[type="text"],
#searchInv {
    height: 40px !important;
    min-height: 40px !important;
}
.table-toolbar .select2-container--default .select2-selection--single,
.filter-group .select2-container--default .select2-selection--single,
.form-group .select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--single {
    height: 40px !important;
    border-radius: 12px !important;
    border: 1.5px solid var(--border-color) !important;
    background: var(--bg-card) !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 38px !important;
    padding-inline: 14px 36px !important;
    font-size: 13px !important;
    color: var(--text-color) !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 38px !important;
    width: 28px !important;
}
/* ضربدر پاک کردن Select2 — همیشه دیده و قابل کلیک */
.select2-container--default .select2-selection--single .select2-selection__clear {
    display: inline-block !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--text-muted) !important;
    margin-inline-end: 4px !important;
    position: absolute !important;
    inset-inline-end: 26px !important;
    top: 0 !important;
    height: 38px !important;
    line-height: 38px !important;
    width: 22px !important;
    text-align: center !important;
    cursor: pointer !important;
    z-index: 2 !important;
    opacity: 0.75 !important;
    transition: color 0.15s, opacity 0.15s !important;
}
.select2-container--default .select2-selection--single .select2-selection__clear:hover {
    color: var(--danger) !important;
    opacity: 1 !important;
}
body.rtl .select2-container--default .select2-selection--single .select2-selection__clear {
    left: 26px !important;
    right: auto !important;
}
body:not(.rtl) .select2-container--default .select2-selection--single .select2-selection__clear {
    right: 26px !important;
    left: auto !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__clear {
    display: inline-block !important;
    margin-top: 4px !important;
    color: var(--text-muted) !important;
    cursor: pointer !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__clear:hover {
    color: var(--danger) !important;
}

/* --- درخت تجهیزات و چارت سازمانی --- */
#equipmentTree,
#categoryTree,
#orgTree {
    min-height: 280px;
    max-height: min(62vh, 560px);
    overflow-x: hidden !important;
    overflow-y: auto !important;
    padding: 10px 8px !important;
    background: var(--bg-card-alt);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    box-sizing: border-box;
}

/* جلوگیری از اسکرول افقی jstree */
#equipmentTree .jstree-container-ul,
#categoryTree .jstree-container-ul,
#orgTree .jstree-container-ul,
#equipmentTree .jstree-children,
#orgTree .jstree-children {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
}
#equipmentTree .jstree-anchor,
#categoryTree .jstree-anchor,
#orgTree .jstree-anchor {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    max-width: calc(100% - 28px) !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    padding: 6px 10px !important;
    border-radius: 8px !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    transition: background 0.15s, color 0.15s !important;
}
#equipmentTree .jstree-anchor:hover,
#categoryTree .jstree-anchor:hover,
#orgTree .jstree-anchor:hover {
    background: var(--bg-card) !important;
}
#equipmentTree .jstree-clicked,
#categoryTree .jstree-clicked,
#orgTree .jstree-clicked {
    background: var(--primary-glow) !important;
    color: var(--primary) !important;
    box-shadow: inset 0 0 0 1px rgba(26, 128, 248, 0.25);
    font-weight: 600 !important;
}
#equipmentTree .jstree-node,
#categoryTree .jstree-node,
#orgTree .jstree-node {
    margin: 2px 0 !important;
}
#equipmentTree .jstree-icon,
#categoryTree .jstree-icon,
#orgTree .jstree-icon {
    width: 18px !important;
    height: 18px !important;
    line-height: 18px !important;
    flex-shrink: 0 !important;
}

/* کارت چارت سازمانی */
.org-chart-wrapper {
    display: grid !important;
    grid-template-columns: 1.2fr 1fr !important;
    gap: 16px !important;
    margin-top: 20px !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
}
.org-chart-card {
    background: var(--bg-card) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 14px !important;
    padding: 14px 16px !important;
    min-width: 0 !important; /* مهم برای جلوگیری از اسکرول افقی در grid */
    overflow: hidden !important;
    box-shadow: var(--shadow) !important;
}
.org-chart-card .card-title {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
    margin-bottom: 12px !important;
    flex-wrap: wrap !important;
}
.org-chart-card .item-list {
    max-height: 220px;
    overflow-y: auto;
    overflow-x: hidden;
}
@media (max-width: 1024px) {
    .org-chart-wrapper {
        grid-template-columns: 1fr !important;
    }
}

/* پنل درخت تجهیزات (لایه صفحه) */
.tree-layout,
.equipment-tree-layout,
.tree-split {
    display: grid !important;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr) !important;
    gap: 16px !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
}
.tree-layout > *,
.equipment-tree-layout > *,
.tree-panel,
.tree-side {
    min-width: 0 !important;
    max-width: 100% !important;
}
@media (max-width: 1024px) {
    .tree-layout,
    .equipment-tree-layout,
    .tree-split {
        grid-template-columns: 1fr !important;
    }
}

/* نوار ابزار درخت */
.tree-toolbar {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    align-items: center !important;
    margin-bottom: 12px !important;
}


/* جلوگیری از اسکرول افقی کل صفحه به‌خاطر درخت */
.page-content,
.main-content,
.card {
    max-width: 100%;
    overflow-x: clip;
}
#equipmentTree .jstree-default .jstree-wholerow,
#orgTree .jstree-default .jstree-wholerow {
    max-width: 100%;
}
/* Select2 clear visible even when theme hides it */
.select2-container--default .select2-selection__clear {
    opacity: 1 !important;
    visibility: visible !important;
}


/* ===== Select2 multi + clear like jdp ===== */

/* --- Multiple: یک فیلد تمیز هم‌تراز با input معمولی --- */
.form-group .select2-container,
.fullscreen-modal .select2-container {
    width: 100% !important;
}

.select2-container--default .select2-selection--multiple {
    position: relative !important;
    display: block !important;
    min-height: 42px !important;
    height: auto !important;
    padding: 6px 40px 6px 10px !important; /* جا برای دکمه clear */
    background: var(--bg-card) !important;
    border: 1.5px solid var(--border-color) !important;
    border-radius: 12px !important;
    box-shadow: none !important;
    cursor: text !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
    box-sizing: border-box !important;
}
body.rtl .select2-container--default .select2-selection--multiple {
    padding: 6px 10px 6px 10px !important;
}
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--multiple {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px var(--primary-glow) !important;
}

/* لیست تگ‌ها + سرچ در یک flex ردیف */
.select2-container--default .select2-selection--multiple .select2-selection__rendered {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* تگ انتخاب‌شده */
.select2-container--default .select2-selection--multiple .select2-selection__choice {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    margin: 0 !important;
    padding: 4px 8px 4px 6px !important;
    max-width: 100% !important;
    background: var(--primary-glow) !important;
    border: 1px solid rgba(26, 128, 248, 0.28) !important;
    border-radius: 8px !important;
    color: var(--primary) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    box-sizing: border-box !important;
}
body.rtl .select2-container--default .select2-selection--multiple .select2-selection__choice {
    padding: 4px 6px 4px 8px !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice__display {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    max-width: 220px !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    position: static !important;
    order: -1 !important;
    border: none !important;
    background: transparent !important;
    color: var(--primary) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    padding: 0 2px !important;
    margin: 0 !important;
    cursor: pointer !important;
    opacity: 0.7 !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
    color: var(--danger) !important;
    opacity: 1 !important;
    background: transparent !important;
}

/* فیلد جستجوی داخل multi — بدون باکس خالی اضافه در خط بعد */
.select2-container--default .select2-selection--multiple .select2-search--inline {
    display: inline-flex !important;
    flex: 1 1 80px !important;
    min-width: 80px !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}
.select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field {
    width: 100% !important;
    min-width: 80px !important;
    max-width: 100% !important;
    height: 28px !important;
    margin: 0 !important;
    padding: 0 4px !important;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 13px !important;
    font-family: inherit !important;
    color: var(--text-color) !important;
    line-height: 28px !important;
    resize: none !important;
    overflow: hidden !important;
}
.select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field:focus {
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
}
/* وقتی placeholder در multi خالی است ارتفاع نگیرد */
.select2-container--default .select2-selection--multiple .select2-selection__placeholder {
    margin: 0 !important;
    padding: 0 4px !important;
    color: var(--text-muted) !important;
    font-size: 13px !important;
    line-height: 28px !important;
}

/* --- دکمه clear مثل jdp-btn (داخل فیلد، نه بیرون) --- */
.select2-container--default .select2-selection--single {
    position: relative !important;
    overflow: visible !important;
}
.select2-container--default .select2-selection--single .select2-selection__clear,
.select2-container--default .select2-selection--multiple .select2-selection__clear {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    inset-inline-end: 6px !important;
    inset-inline-start: auto !important;
    right: 6px !important;
    left: auto !important;
    width: 30px !important;
    height: 30px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid transparent !important;
    border-radius: 8px !important;
    background: transparent !important;
    color: var(--text-muted) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 28px !important;
    text-align: center !important;
    cursor: pointer !important;
    z-index: 3 !important;
    opacity: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.15s ease !important;
}
body.rtl .select2-container--default .select2-selection--single .select2-selection__clear,
body.rtl .select2-container--default .select2-selection--multiple .select2-selection__clear {
    right: auto !important;
    left: 6px !important;
}
/* در single کنار فلش: clear کمی داخل‌تر از فلش */
.select2-container--default .select2-selection--single .select2-selection__clear {
    right: 28px !important;
    left: auto !important;
}
body.rtl .select2-container--default .select2-selection--single .select2-selection__clear {
    left: 28px !important;
    right: auto !important;
}
.select2-container--default .select2-selection--single .select2-selection__clear:hover,
.select2-container--default .select2-selection--multiple .select2-selection__clear:hover {
    color: var(--danger) !important;
    background: var(--danger-bg) !important;
    border-color: transparent !important;
}

/* single: فقط انتهای فیلد برای clear+arrow — شروع عادی */
.select2-container--default .select2-selection--single .select2-selection__rendered {
    padding-inline-start: 14px !important;
    padding-inline-end: 58px !important;
}
body.rtl .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding-inline-start: 14px !important;
    padding-inline-end: 58px !important;
}

/* multi: فقط در انتهای فیلد جا برای clear — نه در شروع */
.select2-container--default .select2-selection--multiple,
.select2-container--default .select2-selection--multiple.select2-selection--clearable {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
    padding-inline-start: 10px !important;
    padding-inline-end: 40px !important;
}
body.rtl .select2-container--default .select2-selection--multiple,
body.rtl .select2-container--default .select2-selection--multiple.select2-selection--clearable {
    padding-inline-start: 10px !important;
    padding-inline-end: 40px !important;
}

/* هماهنگ با تم تاریک */
body.dark-mode .select2-container--default .select2-selection--multiple {
    background: var(--bg-card) !important;
}
body.dark-mode .select2-container--default .select2-selection--multiple .select2-selection__choice {
    background: rgba(26, 128, 248, 0.18) !important;
}


/* ===== PM Checklists + Equipment history timeline ===== */
.cl-items-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.cl-item-row {
    display: grid;
    grid-template-columns: 28px 1fr minmax(120px, 150px) auto auto;
    gap: 8px;
    align-items: center;
    padding: 8px 10px;
    background: var(--bg-card-alt);
    border: 1px solid var(--border-color);
    border-radius: 10px;
}
.cl-item-num {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--primary-glow);
    color: var(--primary);
    font-size: 12px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cl-item-text {
    width: 100%;
    height: 36px;
    padding: 0 10px;
    border-radius: 8px;
    border: 1.5px solid var(--border-color);
    background: var(--bg-card);
    color: var(--text-color);
    font-size: 13px;
    font-family: inherit;
}
.cl-item-input-type {
    height: 36px;
    border-radius: 8px;
    border: 1.5px solid var(--border-color);
    background: var(--bg-card);
    color: var(--text-color);
    font-size: 12px;
    padding: 0 8px;
}
.cl-item-req {
    font-size: 12px;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
}
.cl-view-list {
    padding: 0 8px 8px 24px;
    line-height: 1.9;
    font-size: 13.5px;
}
.cl-view-list li { margin-bottom: 6px; }

.eq-timeline {
    position: relative;
    padding: 8px 4px 8px 0;
}
.eq-timeline::before {
    content: '';
    position: absolute;
    top: 8px;
    bottom: 8px;
    right: 11px;
    width: 2px;
    background: var(--border-color);
}
body:not(.rtl) .eq-timeline::before {
    right: auto;
    left: 11px;
}
.eq-tl-item {
    display: flex;
    gap: 14px;
    position: relative;
    margin-bottom: 16px;
}
.eq-tl-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin-top: 6px;
    flex-shrink: 0;
    background: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-glow);
    z-index: 1;
}
.eq-tl-item.type-insp .eq-tl-dot { background: var(--amber); box-shadow: 0 0 0 3px var(--amber-bg); }
.eq-tl-item.type-repair .eq-tl-dot { background: var(--danger); box-shadow: 0 0 0 3px var(--danger-bg); }
.eq-tl-item.type-emergency .eq-tl-dot { background: #64748b; box-shadow: 0 0 0 3px rgba(100,116,139,.2); }
.eq-tl-body {
    flex: 1;
    min-width: 0;
    padding: 10px 14px;
    background: var(--bg-card-alt);
    border: 1px solid var(--border-color);
    border-radius: 12px;
}
.eq-tl-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
    font-size: 12.5px;
}
.eq-tl-title {
    font-weight: 600;
    font-size: 13.5px;
    margin-bottom: 4px;
}
.eq-tl-meta {
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.5;
}
@media (max-width: 700px) {
    .cl-item-row {
        grid-template-columns: 28px 1fr auto;
        grid-template-rows: auto auto;
    }
    .cl-item-input-type { grid-column: 2; }
}


/* ===== Select2 text padding fix (start aligned) ===== */
/* clear و arrow خارج از جریان؛ متن مثل input عادی از ابتدای فیلد */
.select2-container--default .select2-selection--single {
    position: relative !important;
    display: block !important;
    height: 40px !important;
    padding: 0 !important;
    overflow: hidden !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
    display: block !important;
    width: 100% !important;
    height: 40px !important;
    line-height: 40px !important;
    margin: 0 !important;
    /* فقط فاصله معمولی از شروع فیلد — مثل input */
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-inline-start: 14px !important;
    /* جا برای فلش + ضربدر در انتهای فیلد */
    padding-inline-end: 58px !important;
    text-align: start !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    color: var(--text-color) !important;
    font-size: 13px !important;
}
/* خنثی کردن paddingهای قدیمی left/right که فاصله زیاد می‌ساختند */
body.rtl .select2-container--default .select2-selection--single .select2-selection__rendered,
body:not(.rtl) .select2-container--default .select2-selection--single .select2-selection__rendered,
.filter-group .select2-container--default .select2-selection--single .select2-selection__rendered,
.table-toolbar .select2-container--default .select2-selection--single .select2-selection__rendered,
.form-group .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-inline-start: 14px !important;
    padding-inline-end: 58px !important;
    text-align: start !important;
}

/* clear: absolute، از جریان خارج — متن را هل ندهد */
.select2-container--default .select2-selection--single .select2-selection__clear {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    inset-inline-end: 28px !important;
    inset-inline-start: auto !important;
    width: 28px !important;
    height: 28px !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 3 !important;
    border: none !important;
    background: transparent !important;
    border-radius: 8px !important;
    color: var(--text-muted) !important;
    font-size: 15px !important;
    line-height: 1 !important;
    cursor: pointer !important;
}
body.rtl .select2-container--default .select2-selection--single .select2-selection__clear {
    left: 28px !important;
    right: auto !important;
}
body:not(.rtl) .select2-container--default .select2-selection--single .select2-selection__clear {
    right: 28px !important;
    left: auto !important;
}
.select2-container--default .select2-selection--single .select2-selection__clear:hover {
    color: var(--danger) !important;
    background: var(--danger-bg) !important;
}

/* فلش */
.select2-container--default .select2-selection--single .select2-selection__arrow {
    position: absolute !important;
    top: 0 !important;
    height: 40px !important;
    width: 26px !important;
    inset-inline-end: 2px !important;
    inset-inline-start: auto !important;
}
body.rtl .select2-container--default .select2-selection--single .select2-selection__arrow {
    left: 2px !important;
    right: auto !important;
}
body:not(.rtl) .select2-container--default .select2-selection--single .select2-selection__arrow {
    right: 2px !important;
    left: auto !important;
}


/* ===== Multi Select2 start padding fix ===== */
/* با انتخاب آیتم، پدینگ شروع زیاد نشود — clear فقط سمت پایان */
.select2-container--default .select2-selection--multiple,
.select2-container--default .select2-selection--multiple.select2-selection--clearable,
body.rtl .select2-container--default .select2-selection--multiple,
body.rtl .select2-container--default .select2-selection--multiple.select2-selection--clearable,
body:not(.rtl) .select2-container--default .select2-selection--multiple,
body:not(.rtl) .select2-container--default .select2-selection--multiple.select2-selection--clearable {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
    padding-inline-start: 10px !important;
    padding-inline-end: 40px !important;
    padding-left: 10px !important;
    padding-right: 40px !important;
}
body.rtl .select2-container--default .select2-selection--multiple,
body.rtl .select2-container--default .select2-selection--multiple.select2-selection--clearable {
    padding-left: 40px !important;
    padding-right: 10px !important;
}
/* تگ‌ها از همان ابتدای محتوا */
.select2-container--default .select2-selection--multiple .select2-selection__rendered {
    padding: 0 !important;
    margin: 0 !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__clear {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
    z-index: 3 !important;
}
body.rtl .select2-container--default .select2-selection--multiple .select2-selection__clear {
    left: 6px !important;
    right: auto !important;
}
body:not(.rtl) .select2-container--default .select2-selection--multiple .select2-selection__clear {
    right: 6px !important;
    left: auto !important;
}


/* ===== FORCE multi-select padding (last) ===== */
.select2-container--default .select2-selection--multiple,
.select2-container--default .select2-selection--multiple.select2-selection--clearable,
body.rtl .select2-container--default .select2-selection--multiple,
body.rtl .select2-container--default .select2-selection--multiple.select2-selection--clearable,
.form-group .select2-container--default .select2-selection--multiple,
.fullscreen-modal .select2-container--default .select2-selection--multiple {
    display: block !important;
    position: relative !important;
    min-height: 42px !important;
    padding: 6px 10px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    box-sizing: border-box !important;
}
/* فقط فضای دکمه clear در سمت پایان (نه شروع) */
body.rtl .select2-container--default .select2-selection--multiple.select2-selection--clearable,
body.rtl .fullscreen-modal .select2-container--default .select2-selection--multiple.select2-selection--clearable {
    padding-left: 36px !important;
    padding-right: 10px !important;
}
body:not(.rtl) .select2-container--default .select2-selection--multiple.select2-selection--clearable {
    padding-right: 36px !important;
    padding-left: 10px !important;
}

/* clear کاملاً از جریان خارج */
.select2-container--default .select2-selection--multiple > .select2-selection__clear,
.select2-container--default .select2-selection--multiple .select2-selection__clear {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 28px !important;
    height: 28px !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    inset: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: none !important;
    border-radius: 8px !important;
    background: transparent !important;
    color: var(--text-muted) !important;
    font-size: 16px !important;
    line-height: 1 !important;
    z-index: 5 !important;
    cursor: pointer !important;
}
body.rtl .select2-container--default .select2-selection--multiple > .select2-selection__clear,
body.rtl .select2-container--default .select2-selection--multiple .select2-selection__clear {
    left: 4px !important;
    right: auto !important;
}
body:not(.rtl) .select2-container--default .select2-selection--multiple > .select2-selection__clear,
body:not(.rtl) .select2-container--default .select2-selection--multiple .select2-selection__clear {
    right: 4px !important;
    left: auto !important;
}

/* لیست تگ‌ها تمام عرض، بدون پدینگ اضافه */
.select2-container--default .select2-selection--multiple .select2-selection__rendered {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 6px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    box-sizing: border-box !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice {
    margin: 0 !important;
}
.select2-container--default .select2-selection--multiple .select2-search--inline {
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field {
    margin: 0 !important;
    padding: 0 2px !important;
    height: 28px !important;
    min-width: 4px !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: none !important;
}


/* ===== Checkbox / radio form fix ===== */
.form-group input[type="checkbox"],
.form-group input[type="radio"],
.fullscreen-modal input[type="checkbox"],
.fullscreen-modal input[type="radio"],
.modal-content input[type="checkbox"],
.modal-content input[type="radio"],
label input[type="checkbox"],
label input[type="radio"] {
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    max-width: 18px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 4px !important;
    flex-shrink: 0 !important;
    accent-color: var(--primary);
    cursor: pointer;
    vertical-align: middle;
    box-sizing: border-box !important;
    appearance: auto !important;
    -webkit-appearance: auto !important;
}

/* لیبل‌های تیک‌دار: ردیف افقی، نه بلاک تمام‌عرض */
.form-group > label:has(> input[type="checkbox"]),
.form-group > label:has(> input[type="radio"]),
.fullscreen-modal label:has(> input[type="checkbox"]),
.fullscreen-modal label:has(> input[type="radio"]),
.form-group label.checkbox-label,
label.checkbox-inline {
    display: inline-flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    width: auto !important;
    max-width: 100% !important;
    margin-bottom: 0 !important;
    font-weight: 500 !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
    cursor: pointer;
}

.form-group:has(> label > input[type="checkbox"]),
.form-group:has(> label > input[type="radio"]) {
    display: block;
}

.checkbox-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.checkbox-group label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    width: auto !important;
    font-weight: 500 !important;
    margin: 0 !important;
    cursor: pointer;
}
.checkbox-group input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
}

.cl-item-req {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    width: auto !important;
    white-space: nowrap;
}
.cl-item-req input[type="checkbox"] {
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
}


/* ===== Profile page ===== */
.profile-hero {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 20px 22px !important;
}
.profile-hero-main {
    display: flex;
    align-items: center;
    gap: 18px;
    min-width: 0;
}
.profile-avatar-wrap {
    position: relative;
    width: 88px;
    height: 88px;
    flex-shrink: 0;
}
.profile-avatar-wrap img {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--primary-glow);
    background: var(--bg-card-alt);
}
.avatar-upload-btn {
    position: absolute;
    bottom: 2px;
    left: 2px;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 12px;
    border: 2px solid var(--bg-card);
}
.profile-hero-info h2 {
    margin: 0 0 4px;
    font-size: 20px;
}
.profile-role {
    margin: 0 0 8px;
    font-size: 13px;
    color: var(--text-muted);
}
.profile-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin: 0;
    font-size: 12.5px;
    color: var(--text-secondary, var(--text-muted));
}
.profile-meta i { margin-inline-end: 4px; color: var(--primary); }
.profile-hero-stats {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
.ph-stat {
    min-width: 110px;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--bg-card-alt);
    border: 1px solid var(--border-color);
    text-align: center;
}
.ph-stat b { display: block; font-size: 16px; margin-bottom: 2px; }
.ph-stat span { font-size: 11px; color: var(--text-muted); }

.input-wrap-pass {
    position: relative;
    display: flex;
    align-items: center;
}
.input-wrap-pass input {
    width: 100%;
    padding-inline-end: 42px !important;
}
.toggle-pass-btn {
    position: absolute;
    inset-inline-end: 8px;
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.toggle-pass-btn:hover { color: var(--primary); background: var(--bg-card-alt); }

.pass-strength {
    display: flex;
    gap: 6px;
    margin-top: 8px;
}
.pass-strength span {
    flex: 1;
    height: 4px;
    border-radius: 4px;
    background: var(--border-color);
    transition: background 0.2s;
}
.pass-strength span.on.level-1 { background: var(--danger); }
.pass-strength span.on.level-2 { background: var(--amber); }
.pass-strength span.on.level-3 { background: #3B82F6; }
.pass-strength span.on.level-4 { background: var(--success); }
.pass-strength-label {
    font-size: 11.5px;
    color: var(--text-muted);
    margin-top: 4px;
    min-height: 16px;
}
@media (max-width: 700px) {
    .profile-hero { flex-direction: column; align-items: flex-start; }
    .profile-hero-stats { width: 100%; }
    .ph-stat { flex: 1; }
}


/* ===== Mobile sidebar always full (readable text) ===== */
@media (max-width: 768px) {
    /* روی موبایل حالت collapsed معنا ندارد — همیشه منوی کامل با متن */
    .sidebar,
    .sidebar.collapsed {
        width: min(86vw, 300px) !important;
        max-width: 300px !important;
    }
    .sidebar.collapsed .sidebar-brand span,
    .sidebar.collapsed .sidebar-brand small,
    .sidebar.collapsed .menu-label,
    .sidebar.collapsed .menu-text,
    .sidebar.collapsed .sidebar-menu li a span,
    .sidebar.collapsed .sidebar-menu li a .nav-badge,
    .sidebar.collapsed .sidebar-footer div,
    .sidebar.collapsed .menu-group-title span,
    .sidebar.collapsed .menu-group-title .menu-text,
    .sidebar.collapsed .chev {
        display: inline !important;
        opacity: 1 !important;
        width: auto !important;
        height: auto !important;
        overflow: visible !important;
        font-size: inherit !important;
    }
    .sidebar.collapsed .sidebar-brand {
        justify-content: flex-start !important;
        padding: inherit;
    }
    .sidebar.collapsed .sidebar-menu li a {
        justify-content: flex-start !important;
        padding: 10px 14px !important;
        gap: 10px !important;
    }
    .sidebar.collapsed .sidebar-footer {
        justify-content: flex-start !important;
    }
    .sidebar.collapsed .menu-group-title {
        justify-content: space-between !important;
        padding: 10px 14px !important;
    }
    .sidebar.collapsed .has-submenu .submenu,
    .sidebar.collapsed .submenu-arrow,
    .sidebar.collapsed .menu-group-items {
        /* اجازه نمایش زیرمنو وقتی باز است */
    }
    .sidebar.collapsed .menu-group.open .menu-group-items {
        display: block !important;
    }
    /* متن‌های منو همیشه خوانا */
    .sidebar .menu-text,
    .sidebar .menu-group-title .menu-text,
    .sidebar-menu li a .menu-text {
        display: inline !important;
        white-space: normal !important;
        opacity: 1 !important;
        visibility: visible !important;
        max-width: none !important;
    }
}


/* Form section title inside modals */
.form-section-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 8px 0 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border-color);
    font-size: 13.5px;
    font-weight: 700;
    color: var(--text-color);
}
.form-section-title i { color: var(--primary); }
.form-section-title .hint-inline {
    font-weight: 500;
    font-size: 11.5px;
    color: var(--text-muted);
}


/* ===== Input with prefix/suffix icon (global) ===== */
.input-wrap,
.input-wrap-pass {
    position: relative;
    display: block;
    width: 100%;
}
.input-wrap i.prefix,
.input-wrap .prefix {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    inset-inline-start: 14px;
    z-index: 2;
    pointer-events: none;
    color: var(--text-muted);
    font-size: 14px;
}
body.rtl .input-wrap i.prefix { left: auto; right: 14px; }
body:not(.rtl) .input-wrap i.prefix { left: 14px; right: auto; }

.input-wrap input,
.input-wrap select,
.form-group .input-wrap input,
.form-group .input-wrap select {
    width: 100% !important;
    box-sizing: border-box !important;
    padding-inline-start: 44px !important;
    padding-inline-end: 14px !important;
}
.input-wrap:has(.toggle-pass) input,
.input-wrap:has(.suffix-btn) input,
.input-wrap:has(.toggle-pass-btn) input,
.input-wrap-pass input,
.form-group .input-wrap-pass input {
    padding-inline-end: 44px !important;
}

.input-wrap .toggle-pass,
.input-wrap .suffix-btn,
.input-wrap-pass .toggle-pass-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    inset-inline-end: 8px;
    z-index: 2;
}
body.rtl .input-wrap .toggle-pass,
body.rtl .input-wrap .suffix-btn,
body.rtl .input-wrap-pass .toggle-pass-btn {
    left: 8px;
    right: auto;
}
body:not(.rtl) .input-wrap .toggle-pass,
body:not(.rtl) .input-wrap .suffix-btn,
body:not(.rtl) .input-wrap-pass .toggle-pass-btn {
    right: 8px;
    left: auto;
}

/* jdp already has padding-inline-start — keep safe */
.form-group .jdp-field .jdp-input,
.jdp-field .jdp-input {
    padding-inline-start: 80px !important;
    padding-inline-end: 14px !important;
}

/* ===== Font Awesome offline (must beat body * font rules) ===== */
.fa, .fas, .fa-solid,
body .fa, body .fas, body .fa-solid,
body.rtl .fa, body.rtl .fas, body.rtl .fa-solid,
body:not(.rtl) .fa, body:not(.rtl) .fas, body:not(.rtl) .fa-solid,
html[lang] body .fa, html[lang] body .fas, html[lang] body .fa-solid,
html[lang] body i[class*="fa-"] {
    font-family: "Font Awesome 6 Free" !important;
    font-weight: 900 !important;
    font-style: normal !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.far, .fa-regular,
body .far, body .fa-regular,
body.rtl .far, body:not(.rtl) .far {
    font-family: "Font Awesome 6 Free" !important;
    font-weight: 400 !important;
    font-style: normal !important;
}
.fab, .fa-brands,
body .fab, body .fa-brands,
body.rtl .fab, body:not(.rtl) .fab {
    font-family: "Font Awesome 6 Brands" !important;
    font-weight: 400 !important;
    font-style: normal !important;
}
