/**
 * =================================================================================
 * فایل اصلی استایل
 * نویسنده: تیم سایا
 * نسخه: 4.1
 * فایل استایل یکپارچه، مدرن و بهینه‌سازی شده برای کل وب‌سایت
 * =================================================================================
 */

/* ========================================================================
   فونت و تنظیمات عمومی
   ======================================================================== */
@font-face{font-family:'Vazirmatn';src:url('../font/Vazirmatn.woff2') format('woff2');font-weight:normal;font-style:normal;font-display:swap;font-variant-numeric:oldstyle-nums;font-feature-settings:"ss02" 1,"ss01" 1,"locl" 1,"pnum" 1;}
body,*{font-family:'Vazirmatn',sans-serif;margin:0;padding:0;box-sizing:border-box;direction:rtl;}

/* ========================================================================
   پس‌زمینه و ساختار صفحات
   ======================================================================== */
.login-page,.register-page,.dashboard-page,.form-page,.invitation-page,.planning-page,.report-page,.access-page{background-size:cover;display:flex;justify-content:center;align-items:center;min-height:100vh;}
.login-page{background:url('../img/login.jpg') no-repeat center center fixed;}
.register-page{background:url('../img/register.jpg') no-repeat center center fixed;}
.dashboard-page{background:url('../img/dashboard.jpg') no-repeat center center fixed;}

/* ========================================================================
   کانتینرهای شیشه‌ای
   ======================================================================== */
.login-container,.register-container,.dashboard-container,.submenu-container,.form-container,.tools-container,.medium-tools-container,.big-tools-container,.planning-container,.report-container,.full_report-container,.total-report-container,.invitation-container,.edit-container,.access-container,.modal-container,.invoice-container,.salary-container,.payslip-container,.financial-container,.sms-container{width:100%;box-sizing:border-box;background:rgba(255,255,255,0.15);padding:15px;margin:0 auto;border-radius:12px;border:1px solid rgba(255,255,255,0.3);box-shadow:0 8px 32px rgba(0,0,0,0.1);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);text-align:center;}
.login-container,.register-container{max-width:340px;}
.dashboard-container{max-width:460px;}
.submenu-container{max-width:420px;background:rgba(255,255,255,0.15);}
.form-container{max-width:520px;background:rgba(0,126,148,0.6);}
.tools-container{max-width:360px;background:rgba(60,89,155,0.6);}
.planning-container,.modal-container{max-width:1800px;background:rgba(120,120,120,0.3);}
.report-container{max-width:1300px;background:rgba(44,62,80,0.6);}
.invoice-container{max-width:1300px;background:rgba(120,120,120,0.3);}
.invitation-container{max-width:320px;background:rgba(154,60,88,0.6);}
.edit-container{max-width:280px;background:rgba(255,255,255,0.15);}
.access-container{max-width:480px;background:rgba(154,60,88,0.6);}
.salary-container{max-width:1200px;background:rgba(103, 58, 183, 0.6);}
.payslip-container{max-width:600px;margin:20px auto;padding:20px;border:1px solid #ccc;background-color:white;color:#000;}
.financial-container{max-width:700px;background:rgba(103, 58, 183, 0.6);}
.sms-container{max-width:900px;background:rgba(39, 174, 96, 0.6);}

/* ========================================================================
   عناوین، ورودی‌ها و فرم‌ها
   ======================================================================== */
h1,h2{display:block;text-align:center;margin-bottom:15px;font-size:18px;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,0.2);}
h3,h4{display:block;text-align:center;margin-bottom:15px;font-size:18px;color:#000;}
h5,h6{display:block;text-align:center;margin-bottom:15px;font-size:14px;color:#fff;font-weight: normal;}
h5,h6:hover{color:#3c599b;}
input[type="text"],input[type="password"],input[type="email"],textarea{width:100%;padding:7px;margin-bottom:6px;font-size:14px;border:none;border-radius:10px;box-shadow:inset 0 1px 3px rgba(0,0,0,0.1);transition:all 0.2s;}
input:focus,textarea:focus{box-shadow:0 0 0 2px rgba(0,207,232,0.5);outline:none;}
textarea{resize:vertical;min-height:80px;}
form{width:100%;}
form label{display:block;font-size:14px;color:#fff;text-align:right;margin:0 6px 6px 0;}
form label:hover{color:#ccc;}
form input[type="date"],form select{width:100%;padding:5px;margin-bottom:6px;border:1px solid rgba(255,255,255,0.5);border-radius:10px;background:rgba(255,255,255,0.9);}
form input[type="submit"]{background:#4CAF50;color:#fff;border:none;padding:6px 15px;font-size:14px;border-radius:6px;cursor:pointer;margin-top:10px;}
.filter-input,.filter-select{text-align:center}
.filter-input-small{max-width:50px;text-align:center}
.form-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px;}
.form-group{flex:1 1 calc(25% - 12px);min-width:140px;display:flex;flex-direction:column;text-align:right;}
.form-group label{font-weight:normal;font-size:14px;color:#fff;margin:0 6px 6px 0;}
.file-upload{margin-top:10px;display:flex;flex-direction:column;text-align:right;}
.file-upload label{color:#fff;font-weight:normal;font-size:14px;}

/* ========================================================================
   فرم ورود
   ======================================================================== */
.input-with-icon{position:relative;margin-bottom:15px;}
.input-with-icon input{width:100%;padding-right:40px;padding-left:10px;height:42px;border-radius:6px;border:1px solid #ccc;}
.input-with-icon .input-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#888;pointer-events:none;}
.input-with-icon input:focus{border-color:#00cfe8;box-shadow:0 0 0 3px rgba(0,207,232,0.2);}
.input-with-icon input:focus + .input-icon{color:#333;}

/* ========================================================================
   دکمه‌ها و لینک‌ها
   ======================================================================== */
.button{width:fit-content;}
button{width:100%;padding:6px 15px;margin:0 0 6px;font-size:14px;color:#fff;border-radius:10px;cursor:pointer;position:relative;overflow:hidden;background:rgba(255,255,255,0.12);border:1px solid rgba(255,255,255,0.15);transition:all 0.4s cubic-bezier(0.25,1,0.5,1);will-change:transform, background, box-shadow;}
button:hover{transform:translate3d(0,-2px,0);background:rgba(255,255,255,0.22);box-shadow:0 8px 20px rgba(0,0,0,0.15);border-color:rgba(255,255,255,0.3);}
button:active{transform:scale3d(0.96,0.96,1) translate3d(0,0,0);box-shadow:0 2px 8px rgba(0,0,0,0.1);background:rgba(255,255,255,0.15);}
button:disabled,button[disabled]{opacity:0.5;cursor:not-allowed;transform:none;box-shadow:none;}
/* افکت شاین عبوری روی دکمه */
button::before{content:"";position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,0.3),transparent);transition:0.6s ease-in-out;}
button:hover::before{left:150%;}
/* لینک */
a{width:fit-content;padding:6px 15px;margin:0 0 8px;font-size:14px;border-radius:10px;background:rgba(255,255,255,0.12);; border:1px solid rgba(255,255,255,0.3);box-shadow:0 4px 10px rgba(0,0,0,0.1);text-decoration: none;text-decoration:none;font-size:14px;color:#fff;transition:color 0.3s cubic-bezier(0.25,1,0.5,1);}
a:hover{color:#00cfe8;text-shadow:0 0 10px rgba(0,207,232,0.5);}
/* گروه‌بندی دکمه‌ها */
.buttons{display:flex;gap:10px;margin:15px;}
.buttons button,#tools button{width:100%;}
/* اسپینر داخل دکمه */
.spinner{display:none;position:absolute;top:50%;left:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;border:2px solid rgba(255,255,255,0.2);border-top-color:#fff;border-radius:50%;animation:spin 0.8s cubic-bezier(0.5,0,0.5,1) infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
button.is-loading .button-text{visibility:hidden;}
button.is-loading .spinner{display:block;}

/* دکمه آپلود فایل سفارشی  */
.hidden-file-input{width: 0.1px;height: 0.1px;opacity: 0;overflow: hidden;position: absolute;z-index: -1;}
.custom-file-wrapper{display:flex;align-items:center;gap:10px;margin-top:5px;}
.custom-file-btn{display:inline-block;padding:6px 15px;background:rgba(255,255,255,0.15);border:1px solid rgba(255,255,255,0.2);border-radius:8px;color:#fff;font-size:14px;cursor:pointer;transition:all 0.4s cubic-bezier(0.25,1,0.5,1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);white-space:nowrap;}
.custom-file-btn:hover{background:rgba(255,255,255,0.25);transform:translate3d(0,-2px,0);box-shadow:0 6px 16px rgba(0,0,0,0.15);}
.custom-file-btn:active{transform:scale3d(0.96,0.96,1);}
.file-name-text{font-size:12px;color:#ddd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;}

/* ========================================================================
   دکمه‌های آیکن‌دار مینیمال
   ======================================================================== */
/* تغییر پس‌زمینه و حاشیه */
.icon-row{display:flex;justify-content:space-evenly;}
.icon-button{gap:10px;background:transparent !important;border:none !important;padding:0.4em;box-shadow:none !important;cursor:pointer;}
/* اندازه و رنگ آیکن */
.icon-button i{font-size:1.2rem;color:#555;transition:all 0.2s;}
/* هاور بزرگ‌تر و پررنگ‌تر */
.icon-button:hover i{color:#000;transform:scale(1.2);}
.icon-button[title="افزودن"] i,.icon-button[title="تکمیل"] i{color:#2f855a;}
.icon-button[title="افزودن"]:hover i,.icon-button[title="تکمیل"]:hover i{color:#20bf6b;filter:drop-shadow(0 0 4px rgba(32,191,107,0.4));}
.icon-button[title="مشاهده"] i{color:#805ad5;}
.icon-button[title="مشاهده"]:hover i{color:#a55eea;filter:drop-shadow(0 0 4px rgba(165,94,234,0.4));}
.icon-button[title="ویرایش"] i,.icon-button[title="ویرایش اطلاعات تکمیلی"] i,.icon-button[title="ذخیره و بروز رسانی"] i,.icon-button[title="ثبت نهایی"] i{color:#3182ce;}
.icon-button[title="ویرایش"]:hover i{color:#2d98da;filter:drop-shadow(0 0 4px rgba(45,152,218,0.4));}
.icon-button[title="حذف"] i{color:#e53e3e;}
.icon-button[title="حذف"]:hover i{color:#fc5c65;filter:drop-shadow(0 0 4px rgba(252,92,101,0.4));}

/* ========================================================================
   نمودارها، مدال و اولویت برنامه ریزی
   ======================================================================== */
/* نمودارها */
.stats-box{display:flex;gap:20px;justify-content:center;margin-bottom:30px;flex-wrap:wrap;}
.stat-item{background:rgba(255,255,255,0.08);padding:20px;border-radius:12px;text-align:center;min-width:160px;border:1px solid rgba(255,255,255,0.1);flex:1;}
.stat-value{font-size:1.8em;font-weight:bold;color:#198754;display:block;margin-bottom:5px;text-shadow:0 0 10px rgba(76,175,80,0.3);}
.stat-label{font-size:0.9em;color:#ddd;}
.chart-wrapper{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:20px;}
.chart-box{flex:1;min-width:300px;background:rgba(255,255,255,0.9);border-radius:8px;border:1px solid #ddd;padding:10px;height:400px;}
/* اولویت */
.priority-high{color:#dc3545;font-weight:bold;}
.priority-medium{color:#ffc107;font-weight:bold;}
.priority-low{color:#198754;font-weight:bold;}
/* هم‌ترازی دکمه‌های هدر */
.header-actions{display:flex;align-items:center;gap:10px;}
/* فرم مدال */
.form-control-dark{width:100%;padding:6px;background:#333;color:white;border:1px solid #555;border-radius:6px;}
.form-control-dark:focus{border-color:#198754;outline:none;}

/* ========================================================================
   جداول، گزارشات، فیلترها، نمودارها و منوهای داخل فرم‌ها (Fluid Interactions)
   ======================================================================== */
table{border-collapse:collapse;border-spacing:0;width:100%;margin-top:15px;background:rgba(255,255,255,0.95);border-radius:10px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,0.05);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid #ddd;}
th{background:#f2f2f2;color:#1e293b;font-weight:700;padding:12px;text-align:center;font-size:14px;border:1px solid #ddd;text-transform:uppercase;letter-spacing:0.5px;}
td{padding:8px;text-align:center;font-size:14px;color:#334155;border:1px solid #ddd;transition:background 0.3s ease;}
tbody tr{transition:all 0.3s cubic-bezier(0.16,1,0.3,1);will-change:background, transform;}
tbody tr:hover{background:rgba(255,255,255,0.95);transform:translate3d(0,-2px,0);box-shadow:0 6px 15px rgba(0,0,0,0.04);position:relative;}
tbody tr:last-child td{border-bottom:none;}
thead tr.filter-row th input,thead tr.filter-row th select{margin-bottom: 6px;padding:6px;border-radius:8px;border:1px solid rgba(0,0,0,0.1);background:rgba(255,255,255,0.7);font-size:12px;color:#333;transition:all 0.3s cubic-bezier(0.16,1,0.3,1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.02);will-change:box-shadow, border-color;}
thead tr.filter-row th input:focus,thead tr.filter-row th select:focus{background:#fff;border-color:#00cfe8;box-shadow:0 0 0 3px rgba(0,207,232,0.15);outline:none;}

.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%;border-radius:14px;padding-bottom:10px;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,0.2) transparent;}
.table-responsive::-webkit-scrollbar{height:6px;}
.table-responsive::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.2);border-radius:10px;}
.table-responsive table{min-width:800px;}

.even{background-color:rgba(255,255,255,0.2);}
.odd{background-color:rgba(255,255,255,0.5);}

.pagination{margin-top:20px;text-align:center;display:flex;justify-content:center;gap:6px;flex-wrap:wrap;}
.pagination a{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 12px;background:rgba(255,255,255,0.12);color:#fff;text-decoration:none;border-radius:10px;font-size:13px;font-weight:600;border:1px solid rgba(255,255,255,0.15);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all 0.4s cubic-bezier(0.16,1,0.3,1);box-shadow:0 2px 6px rgba(0,0,0,0.05);will-change:transform, background, box-shadow;}
.pagination a:hover{background:rgba(255,255,255,0.9);color:#0f172a;transform:translate3d(0,-2px,0);box-shadow:0 6px 15px rgba(0,0,0,0.15);border-color:#fff;}
.pagination a.current{background:linear-gradient(135deg, #00cfe8, #007e94);color:#fff;border-color:transparent;box-shadow:0 6px 16px rgba(0,207,232,0.3);cursor:default;}
.pagination a.current:hover{transform:none;}

.filter-menu{display:flex;flex-wrap:nowrap;gap:10px;}
.filter-form{text-align:center;display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;}
.filter-form input{width:140px;padding:8px 12px;border-radius:8px;border:1px solid rgba(255,255,255,0.3);background:rgba(255,255,255,0.85);font-size:13px;transition:all 0.3s cubic-bezier(0.16,1,0.3,1);}
.filter-form input:focus{background:#fff;border-color:#00cfe8;box-shadow:0 0 0 3px rgba(0,207,232,0.15);outline:none;}
.filter-row-inline{display:flex;align-items:flex-end;gap:10px;}

.chart-container{display:flex;gap:1rem;flex-direction:row-reverse;flex-wrap:nowrap;width:100%;margin:20px auto;justify-content:space-between;}
.chart-container-half{flex:1 1 45%;min-width:300px;height:400px;position:relative;padding:10px;border-radius:12px;background:rgba(255,255,255,0.95);box-shadow:0 4px 6px rgba(0,0,0,0.05);}
.chart-container-half canvas,.chart-container-half>div{width:100%;height:100%;}
#pieChart,#progressChart{width:100%;display:block;}
.hc-label .name{margin-right:4px;}
.checkbox-group{display:flex;flex-wrap:wrap;gap:0.5rem;margin-bottom:1rem;}
.checkbox-item{display:flex;align-items:center;border:1px solid #ccc;border-radius:4px;padding:6px 8px;cursor:pointer;transition:background 0.2s;}
.checkbox-item:hover{background:#e3f2fd;color:#0d47a1;border-color:#2196f3;}
.checkbox-item input{margin:0.2rem;}

/* کلاس پایه و مشترک برای تمام دراپ‌داون‌های فیلتر در گزارشات */
.report-filter-dropdown{position:relative;display:inline-block;direction:rtl;}
.report-filter-dropdown .dropdown-toggle{width:clamp(150px,var(--dd-width,420px),420px);padding:6px;font-size:14px;border-radius:10px;cursor:pointer;transition:0.3s;color:#fff;background:rgba(255,255,255,0.15);border:1px solid rgba(255,255,255,0.2);}
.report-filter-dropdown .dropdown-toggle:hover{background:rgba(255,255,255,0.3);}
.report-filter-dropdown .dropdown-toggle .arrow{margin-left:6px;display:inline-block;transition:transform .2s;}
.report-filter-dropdown .dropdown-menu{position:absolute;top:100%;right:0;width:100%;max-height:400px;overflow-y:auto;background:rgba(255,255,255,0.85);border:1px solid rgba(255,255,255,0.5);border-radius:8px;box-shadow:0 8px 20px rgba(0,0,0,0.15);backdrop-filter:blur(15px);margin-top:4px;z-index:1000;display:none;padding:8px;text-align:right;}
.report-filter-dropdown.open .dropdown-menu{display:block;}
.report-filter-dropdown.open .dropdown-toggle .arrow{transform:rotate(180deg);}
.report-filter-dropdown .dropdown-item{display:flex;align-items:center;gap:.5rem;margin-bottom:4px;border:1px solid #eee;border-radius:10px;padding:6px 8px;font-size:12px;cursor:pointer;transition:background .2s;color:#333;background:#fff;}
.report-filter-dropdown .dropdown-item:hover{background:#e3f2fd;color:#0d47a1;border-color:#bbdefb;}
.report-filter-dropdown .dropdown-search-container{padding:6px;position:sticky;top:-8px;z-index:10;}
.report-filter-dropdown .dropdown-search{width:100%;padding:6px;font-size: 12px;border:1px solid #ccc;border-radius:10px;}
.report-filter-dropdown .person{max-width:250px;}
.report-filter-dropdown .group-person{max-width:180px;}
.report-filter-dropdown .seller{max-width:180px;}
.report-filter-dropdown .commodity{max-width:320px;}

/* ========================================================================
   اصلاحات جامع نمودارهای Highcharts در محیط راست‌چین (RTL)
   ======================================================================== */
/* جلوگیری از به هم ریختگی مختصات SVG به دلیل direction:rtl گلوبال */
.chart-box, .highcharts-container, .highcharts-root {direction: ltr !important;}

/* تنظیمات متون داخل نمودار برای جلوگیری از شکستگی کلمات */
.highcharts-root text, .highcharts-root tspan {font-family: 'Vazirmatn', sans-serif !important;direction: ltr !important;unicode-bidi: embed;}

/* تنظیم جهت راست‌چین برای تولتیپ‌ها و لیبل‌های HTML (تا خوانایی فارسی حفظ شود) */
.highcharts-tooltip-container, .highcharts-tooltip, .highcharts-tooltip span, .highcharts-data-label span {direction: rtl !important;text-align: right !important;font-family: 'Vazirmatn', sans-serif !important;}

/* استایل مقادیر روی ستون‌ها (Data Labels) - اضافه کردن سایه برای خوانایی روی رنگ‌های تیره */
.highcharts-data-label text, .highcharts-data-label tspan {fill: #2c3e50 !important;color: #2c3e50 !important;text-shadow: 0px 0px 4px #ffffff, 0px 0px 4px #ffffff !important; font-weight: bold;}

/* جلوگیری از قطع شدن لیبل‌های طولانی در محورها */
.highcharts-axis-labels text {white-space: normal !important;text-overflow: clip !important;}

/* حل مشکل سایز و کراپ شدن در نمودارهای عریض */
.highcharts-scrolling {overflow-x: auto !important;overflow-y: hidden !important;}

/* ========================================================================
   استایل‌های اختصاصی داشبورد KPI مدیریت ارشد (Executive Dashboard)
   ======================================================================== */
.kpi-dashboard-wrapper{display: flex;flex-direction: column;gap: 20px;margin-top: 20px;}
.kpi-cards-grid{display: grid;grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));gap: 20px;}
.kpi-card{position: relative;background: rgba(255, 255, 255, 0.85);border-radius: 16px;padding: 20px;border: 1px solid rgba(255, 255, 255, 0.4);box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);backdrop-filter: blur(12px);-webkit-backdrop-filter: blur(12px);display: flex;flex-direction: column;justify-content: center;overflow: hidden;transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease;}
.kpi-card:hover{transform: translateY(-5px) scale(1.02);box-shadow: 0 15px 35px rgba(0, 0, 0, 0.12);}

/* افکت درخشش پس‌زمینه کارت‌ها */
.kpi-card::before{content: '';position: absolute;top: -50%; right: -50%;width: 200%; height: 200%;background: radial-gradient(circle, var(--glow-color, rgba(255,255,255,0)) 0%, transparent 60%);opacity: 0.15;pointer-events: none;}
.kpi-card.sales {border-bottom: 4px solid #3498db; --glow-color: #3498db;}
.kpi-card.profit {border-bottom: 4px solid #2ecc71; --glow-color: #2ecc71;}
.kpi-card.beta{border-bottom: 4px solid #9b59b6; --glow-color: #9b59b6;}
.kpi-card.bounced{border-bottom: 4px solid #e74c3c; --glow-color: #e74c3c;}
.kpi-card-header{display: flex;justify-content: space-between;align-items: center;margin-bottom: 15px;z-index: 1;}
.kpi-card-title{font-size: 15px;color: #333;font-weight: 700;}
.kpi-card-icon{font-size: 24px;width: 45px;height: 45px;display: flex;justify-content: center;align-items: center;border-radius: 12px;background: rgba(0,0,0,0.04);}
.kpi-card.sales .kpi-card-icon {color: #3498db; background: rgba(52, 152, 219, 0.1);}
.kpi-card.profit .kpi-card-icon {color: #2ecc71; background: rgba(46, 204, 113, 0.1);}
.kpi-card.beta .kpi-card-icon {color: #9b59b6; background: rgba(155, 89, 182, 0.1);}
.kpi-card.bounced .kpi-card-icon {color: #e74c3c; background: rgba(231, 76, 60, 0.1);}
.kpi-card-value{font-size: 26px;font-weight: 900;color: #2c3e50;margin-bottom: 5px;z-index: 1;direction: ltr;text-align: right;text-shadow: 1px 1px 2px rgba(0,0,0,0.1);}
.kpi-card-subtitle{font-size: 12px;color: #7f8c8d;z-index: 1;}

/* ========================================================================
   مدال‌ها
   ======================================================================== */
.modal-overlay{display:none;position:fixed;z-index:1000;top:0;left:0;width:100%;height:100%;background:rgba(15,23,42,0.4);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);justify-content:center;align-items:center;animation:fadeInOverlay 0.4s cubic-bezier(0.32,0.72,0,1) forwards;}
@keyframes fadeInOverlay{0%{opacity:0;}100%{opacity:1;}}
.modal{display:flex;flex-direction:column;width:100%;height:auto!important;max-height:95vh!important;position:relative;transform-origin:center center;animation-fill-mode:both;will-change:transform, opacity;}
.modal-body{display:flex;flex-direction:column;flex-grow:1;overflow-y:auto;height:900px!important;min-height:750px!important;max-height:95vh;}
.modal-body-page{display:flex;flex-direction:column;flex-grow:1;overflow:hidden;height:95vh!important;}
div[id^="submenu-"] .modal-body-page,div[id^="submenu-"] .modal-body,#deleteModal .modal-body,#confirmArchiveModal .modal-body{height:auto!important;min-height:unset!important;flex-grow:0!important;padding:5px;}
.modal-body iframe,.modal-body-page iframe{width:100%;height:100%;border:none;border-radius:12px;flex:1;}
.modal-header{display:flex;flex-shrink:0;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,0.15);padding-bottom:6px;margin-bottom:15px;}
.modal-header h3{margin:0;font-size:18px;color:#fff;user-select:none;text-shadow:0 2px 4px rgba(0,0,0,0.2);}
.modal-close{cursor:pointer;font-size:24px;color:#fff;opacity:0.7;transition:all 0.3s cubic-bezier(0.25,1,0.5,1);user-select:none;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,0.1);}
.modal-close:hover{opacity:1;transform:scale3d(1.1, 1.1, 1);color:#ff7675;background:rgba(255,255,255,0.2);}
.zoom-in{animation:zoomInApple 0.5s cubic-bezier(0.32,0.72,0,1) forwards;}
.zoom-out{animation:zoomOutApple 0.4s cubic-bezier(0.32,0.72,0,1) forwards;}
@keyframes zoomInApple{0%{opacity:0;transform:scale3d(0.95,0.95,1) translate3d(0,15px,0);}100%{opacity:1;transform:scale3d(1,1,1) translate3d(0,0,0);}}
@keyframes zoomOutApple{0%{opacity:1;transform:scale3d(1,1,1) translate3d(0,0,0);}100%{opacity:0;transform:scale3d(0.95,0.95,1) translate3d(0,15px,0);}}

/* ========================================================================
   پیام‌ها و نوتیفیکیشن‌های سیستم
   ======================================================================== */
.message{display:none;padding:14px 20px;margin-top:15px;border-radius:12px;text-align:center;font-weight:600;font-size:14px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:slideInMessage 0.6s cubic-bezier(0.16,1,0.3,1) forwards;will-change:transform,opacity;box-shadow:0 8px 24px rgba(0,0,0,0.08);}

/* پیام‌های داخلی فرم‌ها (Inline) */
.success{background-color:rgba(46,204,113,0.15);color:#2ecc71;border:1px solid rgba(46,204,113,0.3);text-shadow:0 1px 2px rgba(0,0,0,0.5);}
.error{background-color:rgba(231,76,60,0.15);color:#ff7675;border:1px solid rgba(231,76,60,0.3);text-shadow:0 1px 2px rgba(0,0,0,0.5);}
.warning{background-color:rgba(253,203,110,0.15);color:#fdcb6e;border:1px solid rgba(253,203,110,0.3);text-shadow:0 1px 2px rgba(0,0,0,0.5);}

/* نوتیفیکیشن‌های شناور سیستم (Floating Toasts) */
.register-message,.register-success,.register-error{display:none;position:fixed;top:30px;left:50%;transform:translateX(-50%) translate3d(0,-20px,0);padding:16px 24px;border-radius:14px;z-index:9999;font-weight:600;font-size:14px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 15px 35px rgba(0,0,0,0.2), 0 0 0 1px rgba(255,255,255,0.1) inset;animation:toastDropApple 0.6s cubic-bezier(0.16,1,0.3,1) forwards;will-change:transform,opacity;white-space:nowrap;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,0.3);}

.register-message{background-color:rgba(243,156,18,0.75);border:1px solid rgba(243,156,18,0.4);}
.register-success{background-color:rgba(39,174,96,0.75);border:1px solid rgba(39,174,96,0.4);}
.register-error{background-color:rgba(192,57,43,0.75);border:1px solid rgba(192,57,43,0.4);}

/* موتور انیمیشن‌های روانِ پیام‌ها (GPU Accelerated) */
@keyframes slideInMessage{0%{opacity:0;transform:translate3d(0,-10px,0) scale3d(0.98,0.98,1);}100%{opacity:1;transform:translate3d(0,0,0) scale3d(1,1,1);}}
@keyframes toastDropApple{0%{opacity:0;transform:translateX(-50%) translate3d(0,-30px,0) scale3d(0.95,0.95,1);}100%{opacity:1;transform:translateX(-50%) translate3d(0,0,0) scale3d(1,1,1);}}

/* ========================================================================
   تیجیو
   ======================================================================== */
.tgju-widget{background:rgba(255,255,255,0.15)!important;border-radius:12px!important;box-shadow:0 4px 10px rgba(0,0,0,0.1)!important;backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important;border:1px solid rgba(255,255,255,0.3)!important;margin:10px auto!important;text-align:center!important;font-family:'Vazirmatn',sans-serif!important;font-size:14px;color:#3c599b!important;width:100%;}
.tgju-copyright,.tgju-copyright a,.tgju-copyright-fix a,.autofill-hidden{position:absolute;width:1px;height:1px;clip:rect(0 0 0 0);overflow:hidden;}

/* ========================================================================
   ماشین حساب مهندسی
   ======================================================================== */
/* کانتینر اصلی ماشین حساب */
.calculator {margin: 0 auto;text-align: center;padding: 15px;background: rgba(255, 255, 255, 0.05);border-radius: 20px;border: 1px solid rgba(255, 255, 255, 0.1);box-shadow: 0 15px 35px rgba(0,0,0,0.2);backdrop-filter: blur(15px);width: 100%;max-width: 600px;}

/* نمایشگر */
.display {margin-bottom: 15px;}
#output-calculator {background-color: rgba(0, 0, 0, 0.3);color: #fff;width: 100%;height: 60px;padding: 0 20px;text-align: right;border: 1px solid rgba(255, 255, 255, 0.1);border-radius: 12px;font-size: 28px;font-family: 'Courier New', monospace;letter-spacing: 2px;box-shadow: inset 0 3px 8px rgba(0,0,0,0.4);}

/* ناحیه دکمه‌ها */
#buttons {display: flex;flex-direction: column;gap: 8px;}

/* استایل هر ردیف */
.calculator .row {display: flex;justify-content: space-between;gap: 8px;}

/* استایل دکمه‌ها */
.calculator .button {flex: 1;height: 45px;display: flex;justify-content: center;align-items: center;background: rgba(255, 255, 255, 0.08);border: 1px solid rgba(255, 255, 255, 0.1);border-radius: 8px;color: #eee;font-size: 14px;cursor: pointer;user-select: none;transition: all 0.2s cubic-bezier(0.25, 0.8, 0.25, 1);}

/* هاور دکمه‌ها */
.calculator .button:hover {background: rgba(255, 255, 255, 0.2);transform: translateY(-2px);box-shadow: 0 5px 15px rgba(0,0,0,0.1);border-color: rgba(255, 255, 255, 0.3);color: #fff;}
.calculator .button:active {transform: scale(0.95);}

/* دکمه‌های اعداد (کمی روشن‌تر) */
.calculator .button.number {background: rgba(255, 255, 255, 0.12);font-weight: bold;font-size: 16px;}

/* دکمه‌های خاص */
#radians, #degrees {flex: 2.15;font-size: 12px;background: rgba(0, 207, 232, 0.15);color: #00cfe8;}
#radians:hover, #degrees:hover {background: rgba(0, 207, 232, 0.3);}

/* دکمه پاک کردن (C) */
#clear {background: rgba(231, 76, 60, 0.25);color: #ff7675;border-color: rgba(231, 76, 60, 0.4);}
#clear:hover {background: rgba(231, 76, 60, 0.5);box-shadow: 0 0 10px rgba(231, 76, 60, 0.4);}

/* دکمه مساوی */
#equals {background: rgba(46, 204, 113, 0.25);color: #2ecc71;border-color: rgba(46, 204, 113, 0.4);}
#equals:hover {background: rgba(46, 204, 113, 0.5);box-shadow: 0 0 10px rgba(46, 204, 113, 0.4);}

/* دکمه‌های عملیاتی اصلی ستون آخر */
.calculator .row .button:last-child {background: rgba(253, 203, 110, 0.2);color: #fdcb6e;}

/* ریسپانسیو برای موبایل */
@media (max-width: 480px) {
.calculator .button {height: 40px;font-size: 12px;padding: 0;}
.calculator .row {gap: 4px;}
#buttons {gap: 4px;}}

/* ========================================================================
   استایل مینیمال، شیشه‌ای و انیمیشن‌های پیشرفته SVG
   ======================================================================== */
/* --- شبکه بندی منوی اصلی --- */
.main-menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:15px;margin:2rem 0;align-items:stretch;user-select:none;}
.main-menu-item{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;background:rgba(255,255,255,0.08);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:16px;padding:1.2rem;color:#eee;cursor:pointer;border:1px solid rgba(255,255,255,0.1);transition:all 0.3s cubic-bezier(0.25,0.8,0.25,1);overflow:hidden;box-shadow:0 4px 6px rgba(0,0,0,0.05);}
.main-menu-item::before{content:'';position:absolute;top:0;left:-150%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.1),transparent);transform:skewX(-25deg);transition:0s;pointer-events:none;}
.main-menu-item:hover{transform:translateY(-4px);background:rgba(255,255,255,0.12);border-color:rgba(255,255,255,0.25);box-shadow:0 10px 20px rgba(0,0,0,0.15);}
.main-menu-item:hover::before{left:150%;transition:0.7s ease-in-out;}
.main-menu-item span{display:block;width:100%;text-align:center;font-size:0.9rem;font-weight:500;line-height:1.4;opacity:0.9;margin-top:auto;}
.menu-item-full { grid-column: 1 / -1 !important; }

/* --- ساختار و استایل زیرمنوها (Fluid Dropdown) --- */
.submenu{display:none;margin:0.8rem 0 1.5rem;padding:0.8rem;background:rgba(15,23,42,0.3);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,0.1);border-radius:14px;animation:slideDownApple 0.4s cubic-bezier(0.32,0.72,0,1) forwards;box-shadow:0 10px 25px rgba(0,0,0,0.2);}
@keyframes slideDownApple{0%{opacity:0;transform:translate3d(0,-10px,0) scale3d(0.98,0.98,1);}100%{opacity:1;transform:translate3d(0,0,0) scale3d(1,1,1);}}
.submenu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(45%,1fr));gap:8px;padding:0;align-content:flex-start;user-select:none;}
.submenu-grid button{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;min-height:42px;width:100%;margin:0;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.05);border-radius:10px;color:#ddd;font-size:0.85rem;cursor:pointer;transition:all 0.3s cubic-bezier(0.25,1,0.5,1);position:relative;overflow:hidden;}
.submenu-grid button:hover{background:rgba(0,207,232,0.15);border-color:rgba(0,207,232,0.4);color:#fff;padding-right:18px;box-shadow:0 6px 15px rgba(0,0,0,0.15);transform:translate3d(0,-1px,0);}
.submenu-grid button:active{transform:scale3d(0.97,0.97,1);}

/* --- استایل پایه آیکون های SVG --- */
.menu-svg-icon{display:block;width:48px;height:48px;margin:0 auto 5px auto;transition:all 0.4s cubic-bezier(0.34,1.56,0.64,1);stroke-width:1.5;color:#eee;}
.submenu-svg-icon{width:22px;height:22px;opacity:0.8;transition:all 0.3s;stroke-width:1.8;color:#ddd;}
.main-menu-item:hover .menu-svg-icon{transform:scale(1.15) translateY(-4px);filter:drop-shadow(0 4px 8px rgba(0,207,232,0.5));stroke-width:2;}
.submenu-grid button:hover .submenu-svg-icon{opacity:1;transform:scale(1.2);stroke-width:2.2;}

/* ========================================================================
   تزریق متغیرهای انیمیشن در زمان Hover
   ======================================================================== */

/* --- هاور منوی اصلی --- */
.main-menu-item:hover .icon-form-main{color:#a29bfe;--anim-chk1:draw-path 0.5s ease forwards;--anim-chk2:draw-path 0.5s ease 0.3s forwards;--anim-pen:sign-pen 1.5s infinite alternate;}
.main-menu-item:hover .icon-report-main{color:#ff7675;--anim-bara:grow-up 0.4s ease-out forwards;--anim-barb:grow-up 0.4s 0.1s ease-out forwards;--anim-barc:grow-up 0.4s 0.2s ease-out forwards;--anim-line:draw-path 1s ease-out forwards;--anim-dot:fade-in-dot 1s infinite alternate;}
.main-menu-item:hover .icon-tools-main{color:#00cfe8;--anim-wrench:grip-and-turn 1.6s infinite alternate cubic-bezier(0.4,0,0.2,1);--anim-nut:nut-turn 1.6s infinite alternate cubic-bezier(0.4,0,0.2,1);}
.main-menu-item:hover .icon-financial-main{color:#2ecc71;--anim-card:slide-out 2s infinite ease-in-out;--anim-coin:drop-in 2s infinite cubic-bezier(0.5,0,0.5,1);}
.main-menu-item:hover .icon-setting-main{color:#e17055;--anim-gear-l:spin-right 4s linear infinite;--anim-gear-s:spin-left 4s linear infinite;}
.main-menu-item:hover .icon-sms-main{color:#fdcb6e;--anim-sig1:broadcast 1s infinite linear;--anim-sig2:broadcast 1s infinite linear 0.3s;--anim-bubble:float-msg 1.5s infinite alternate;}

/* --- هاور زیرمنو گروه فرم --- */
.submenu-grid button:hover .icon-receipt-add{color:#a29bfe;--anim-receipt:slide-down 0.5s;}
.submenu-grid button:hover .icon-person-add{color:#74b9ff;--anim-aplus:spin-right 2s linear infinite;}
.submenu-grid button:hover .icon-check-ops{color:#2ecc71;--anim-check:draw-check 0.4s ease-out forwards;}
.submenu-grid button:hover .icon-cash-reg{color:#2ecc71;--anim-cashreg:slide-drawer 0.5s ease-out forwards;}
.submenu-grid button:hover .icon-shipping{color:#e17055;--anim-wheel:spin-right 1s linear infinite;}
.submenu-grid button:hover .icon-warehouse-item{color:#e67e22;--anim-roof:roof-bounce 0.6s cubic-bezier(0.34,1.56,0.64,1) infinite alternate;}
.submenu-grid button:hover .icon-req-office{color:#a29bfe;--anim-tick:draw-path 0.5s ease forwards;}
.submenu-grid button:hover .icon-org-email{color:#fdcb6e;--anim-mailv:bounce-mail 0.5s infinite;}

/* --- هاور زیرمنو گروه گزارش --- */
.submenu-grid button:hover .icon-cust-perf{color:#00cfe8;--anim-search:search-move 1s ease-in-out infinite;}
.submenu-grid button:hover .icon-balance-scale{color:#f1c40f;--anim-ledger:bounce-icon 0.8s infinite alternate;}
.submenu-grid button:hover .icon-seller-perf{color:#f1c40f;--anim-badge:pop-badge 0.6s cubic-bezier(0.34,1.56,0.64,1) forwards;}
.submenu-grid button:hover .icon-beta-acc{color:#00cfe8;--anim-bclock:spin-right 2s linear infinite;}
.submenu-grid button:hover .icon-sale-rep{color:#2ecc71;--anim-trend:draw-path 1s ease-out forwards;}
.submenu-grid button:hover .icon-cust-pay{color:#2ecc71;--anim-dollar:drop-in-coin 0.8s forwards;}
.submenu-grid button:hover .icon-factor-det{color:#a29bfe;--anim-list1:slide-right-fade 0.4s forwards;--anim-list2:slide-right-fade 0.4s 0.2s forwards;}
.submenu-grid button:hover .icon-inventory{color:#e67e22;--anim-inv:pop-up 0.6s cubic-bezier(0.34,1.56,0.64,1) forwards;}
.submenu-grid button:hover .icon-total-rep{color:#ff7675;--anim-dash1:pop-up 0.4s forwards;--anim-dash2:pop-up 0.4s 0.1s forwards;--anim-dash3:pop-up 0.4s 0.2s forwards;}
.submenu-grid button:hover .icon-plan{color:#00cfe8;--anim-chkplan:draw-check 0.5s forwards;}
.submenu-grid button:hover .icon-kpi{color:#2ecc71;--anim-kpi:gauge-swing 1s cubic-bezier(0.34,1.56,0.64,1) forwards;}

/* --- هاور زیرمنو گروه ابزار --- */
.submenu-grid button:hover .icon-discount{color:#e74c3c;--anim-percent:spin-simple 1s linear;}
.submenu-grid button:hover .icon-num-conv{color:#9b59b6;--anim-digit:bounce-digit 0.8s infinite alternate;}
.submenu-grid button:hover .icon-date-conv{color:#00cfe8;--anim-dcycle:flip-cal 1s infinite alternate;}
.submenu-grid button:hover .icon-serial{color:#34495e;--anim-laser:laser-scan 0.8s ease-in-out infinite alternate;}
.submenu-grid button:hover .icon-ras-calc{color:#e74c3c;--anim-rhand:spin-right 2s linear infinite;}
.submenu-grid button:hover .icon-calculator{color:#f39c12;--anim-calc:flash-buttons 1s infinite alternate;}
.submenu-grid button:hover .icon-doc-ras{color:#9b59b6;--anim-clock:spin-clock 2s linear infinite;}
.submenu-grid button:hover .icon-gold-mail{color:#f1c40f;--anim-gstar:star-pulse 1s infinite alternate;}

/* --- هاور زیرمنو گروه مالی --- */
.submenu-grid button:hover .icon-pre-inv{color:#34495e;--anim-psearch:scan-doc 1.5s infinite alternate ease-in-out;}
.submenu-grid button:hover .icon-order{color:#e67e22;--anim-cart:drive-cart 1s infinite alternate;}
.submenu-grid button:hover .icon-price-tag{color:#e74c3c;--anim-tbell:bounce-tag 1s infinite alternate;}
.submenu-grid button:hover .icon-check-clear{color:#2ecc71;--anim-ctick:draw-path 0.5s ease forwards;}
.submenu-grid button:hover .icon-beta-rec{color:#3498db;--anim-barr:bounce-arr 1s infinite alternate;}
.submenu-grid button:hover .icon-fin-person{color:#9b59b6;--anim-aplus:spin-right 2s linear infinite;}
.submenu-grid button:hover .icon-salary{color:#2ecc71;--anim-sline:scale-line 1s infinite alternate;}
.submenu-grid button:hover .icon-attendance{color:#00cfe8;--anim-aswipe:fade-swipe 1s infinite alternate;}

/* --- هاور زیرمنو گروه تنظیمات و پیامک --- */
.submenu-grid button:hover .icon-config{color:#7f8c8d;--anim-slider1:slide-h 1s infinite alternate;--anim-slider2:slide-h 1.2s infinite alternate-reverse;}
.submenu-grid button:hover .icon-users-mng{color:#3498db;--anim-ugear:spin-right 3s linear infinite;}
.submenu-grid button:hover .icon-pass-chng{color:#e74c3c;--anim-lock:unlock 0.5s forwards;}
.submenu-grid button:hover .icon-exit{color:#c0392b;--anim-exit-line:push-out 0.6s infinite alternate;--anim-exit-head:push-out 0.6s infinite alternate;}
.submenu-grid button:hover .icon-sms-dash{color:#f39c12;--anim-dmsg1:draw-path 0.5s forwards;--anim-dmsg2:draw-path 0.5s 0.2s forwards;}
.submenu-grid button:hover .icon-send-simple{color:#3498db;--anim-pbody:hover-plane 1.5s infinite alternate ease-in-out;}
.submenu-grid button:hover .icon-send-pattern{color:#2ecc71;--anim-signal:signal-blink 1s infinite;}
.submenu-grid button:hover .icon-send-group{color:#3498db;--anim-heads:bob-heads 1s infinite alternate;}
.submenu-grid button:hover .icon-send-status{color:#2ecc71;--anim-tick:draw-check 0.5s forwards;}

/* ========================================================================
   تزریق متغیرهای انیمیشن در زمان Hover
   ======================================================================== */
   /* --- هاور منوی اصلی --- */
.main-menu-item:hover .icon-form-main{color:#a29bfe;--anim-chk1:draw-tick-apple 0.6s cubic-bezier(0.16,1,0.3,1) forwards;--anim-chk2:draw-tick-apple 0.6s cubic-bezier(0.16,1,0.3,1) 0.15s forwards;}
.main-menu-item:hover .icon-report-main{color:#ff7675;--anim-bara:grow-up 0.5s cubic-bezier(0.16,1,0.3,1) forwards;--anim-barb:grow-up 0.5s cubic-bezier(0.16,1,0.3,1) 0.1s forwards;--anim-barc:grow-up 0.5s cubic-bezier(0.16,1,0.3,1) 0.2s forwards;--anim-line:draw-path 1s cubic-bezier(0.32,0.72,0,1) forwards;--anim-dot:fade-in-dot 1s cubic-bezier(0.16,1,0.3,1) infinite alternate;}
.main-menu-item:hover .icon-tools-main{color:#00cfe8;--anim-wrench:grip-turn 1.5s infinite alternate cubic-bezier(0.4,0,0.2,1);--anim-nut:nut-turn 1.5s infinite alternate cubic-bezier(0.4,0,0.2,1);}
.main-menu-item:hover .icon-financial-main{color:#2ecc71;--anim-bill:slide-bill-up 0.8s cubic-bezier(0.16,1,0.3,1) forwards;}
.main-menu-item:hover .icon-setting-main{color:#e17055;--anim-gear-l:spin-right 4s linear infinite;--anim-gear-s:spin-left 4s linear infinite;}
.main-menu-item:hover .icon-sms-main{color:#fdcb6e;--anim-sig1:broadcast 1.2s infinite ease-out;--anim-sig2:broadcast 1.2s infinite ease-out 0.4s;--anim-bubble:float-msg 1.5s infinite alternate cubic-bezier(0.32,0.72,0,1);}

/* --- هاور زیرمنو: گروه فرم --- */
.submenu-grid button:hover .icon-receipt-add{color:#a29bfe;--anim-receipt:slide-down 0.5s cubic-bezier(0.16,1,0.3,1);}
.submenu-grid button:hover .icon-person-add{color:#74b9ff;--anim-aplus:spin-right 2s linear infinite;}
.submenu-grid button:hover .icon-check-ops{color:#2ecc71;--anim-check:draw-tick-apple 0.5s cubic-bezier(0.16,1,0.3,1) forwards;}
.submenu-grid button:hover .icon-cash-reg{color:#2ecc71;--anim-cashreg:slide-drawer 0.5s cubic-bezier(0.16,1,0.3,1) forwards;}
.submenu-grid button:hover .icon-shipping{color:#e17055;--anim-wheel:spin-right 1s linear infinite;}
.submenu-grid button:hover .icon-warehouse-item{color:#e67e22;--anim-roof:roof-bounce 0.6s cubic-bezier(0.16,1,0.3,1) infinite alternate;}
.submenu-grid button:hover .icon-req-office{color:#a29bfe;--anim-tick:draw-path 0.5s ease forwards;}
.submenu-grid button:hover .icon-org-email{color:#fdcb6e;--anim-mailv:bounce-y 0.6s infinite cubic-bezier(0.16,1,0.3,1);}

/* --- هاور زیرمنو: گروه گزارش --- */
.submenu-grid button:hover .icon-cust-perf{color:#00cfe8;--anim-search:search-move 1.2s ease-in-out infinite;}
.submenu-grid button:hover .icon-balance-scale{color:#f1c40f;--anim-ledger:bounce-y 0.8s infinite alternate cubic-bezier(0.16,1,0.3,1);}
.submenu-grid button:hover .icon-seller-perf{color:#f1c40f;--anim-badge:pop-scale 0.6s cubic-bezier(0.16,1,0.3,1) forwards;}
.submenu-grid button:hover .icon-beta-acc{color:#00cfe8;--anim-bclock:spin-right 2s linear infinite;}
.submenu-grid button:hover .icon-sale-rep{color:#2ecc71;--anim-trend:draw-path 1s cubic-bezier(0.16,1,0.3,1) forwards;}
.submenu-grid button:hover .icon-cust-pay{color:#2ecc71;--anim-dollar:drop-in 0.8s cubic-bezier(0.16,1,0.3,1) forwards;}
.submenu-grid button:hover .icon-factor-det{color:#a29bfe;--anim-list1:slide-x-fade 0.4s forwards;--anim-list2:slide-x-fade 0.4s 0.15s forwards;}
.submenu-grid button:hover .icon-inventory{color:#e67e22;--anim-inv:pop-y 0.6s cubic-bezier(0.16,1,0.3,1) forwards;}
.submenu-grid button:hover .icon-total-rep{color:#ff7675;--anim-dash1:pop-y 0.4s cubic-bezier(0.16,1,0.3,1) forwards;--anim-dash2:pop-y 0.4s cubic-bezier(0.16,1,0.3,1) 0.1s forwards;--anim-dash3:pop-y 0.4s cubic-bezier(0.16,1,0.3,1) 0.2s forwards;}
.submenu-grid button:hover .icon-kpi{color:#2ecc71;--anim-kpi:gauge-swing 1s cubic-bezier(0.16,1,0.3,1) forwards;}
.submenu-grid button:hover .icon-plan{color:#00cfe8;--anim-chkplan:draw-tick-apple 0.5s cubic-bezier(0.16,1,0.3,1) forwards;}

/* --- هاور زیرمنو: گروه ابزار --- */
.submenu-grid button:hover .icon-discount{color:#e74c3c;--anim-percent:spin-half 1s cubic-bezier(0.16,1,0.3,1);}
.submenu-grid button:hover .icon-num-conv{color:#9b59b6;--anim-digit:bounce-y 0.8s infinite alternate cubic-bezier(0.16,1,0.3,1);}
.submenu-grid button:hover .icon-date-conv{color:#00cfe8;--anim-dcycle:flip-scale 1s infinite alternate cubic-bezier(0.16,1,0.3,1);}
.submenu-grid button:hover .icon-serial{color:#34495e;--anim-laser:laser-scan 0.8s ease-in-out infinite alternate;}
.submenu-grid button:hover .icon-ras-calc{color:#e74c3c;--anim-rhand:spin-right 2s linear infinite;}
.submenu-grid button:hover .icon-calculator{color:#f39c12;--anim-calc:flash-op 1s infinite alternate;}
.submenu-grid button:hover .icon-doc-ras{color:#9b59b6;--anim-clock:spin-right 2s linear infinite;}
.submenu-grid button:hover .icon-gold-mail{color:#f1c40f;--anim-gstar:pulse-move 1s infinite alternate cubic-bezier(0.16,1,0.3,1);}

/* --- هاور زیرمنو: گروه مالی --- */
.submenu-grid button:hover .icon-pre-inv{color:#34495e;--anim-psearch:scan-move 1.5s infinite alternate cubic-bezier(0.32,0.72,0,1);}
.submenu-grid button:hover .icon-order{color:#e67e22;--anim-cart:slide-x 1s infinite alternate cubic-bezier(0.16,1,0.3,1);}
.submenu-grid button:hover .icon-price-tag{color:#e74c3c;--anim-tbell:swing-rot 1s infinite alternate cubic-bezier(0.16,1,0.3,1);}
.submenu-grid button:hover .icon-check-clear{color:#2ecc71;--anim-ctick:draw-path 0.5s ease forwards;}
.submenu-grid button:hover .icon-beta-rec{color:#3498db;--anim-barr:bounce-y-subtle 1s infinite alternate cubic-bezier(0.16,1,0.3,1);}
.submenu-grid button:hover .icon-fin-person{color:#9b59b6;--anim-aplus:spin-right 2s linear infinite;}
.submenu-grid button:hover .icon-salary{color:#2ecc71;--anim-sline:scale-y 1s infinite alternate cubic-bezier(0.16,1,0.3,1);}
.submenu-grid button:hover .icon-attendance{color:#00cfe8;--anim-aswipe:fade-color 1s infinite alternate;}

/* --- هاور زیرمنو: گروه تنظیمات و پیامک --- */
.submenu-grid button:hover .icon-config{color:#7f8c8d;--anim-slider1:slide-x-subtle 1s infinite alternate cubic-bezier(0.32,0.72,0,1);--anim-slider2:slide-x-subtle 1.2s infinite alternate-reverse cubic-bezier(0.32,0.72,0,1);}
.submenu-grid button:hover .icon-users-mng{color:#3498db;--anim-ugear:spin-right 3s linear infinite;}
.submenu-grid button:hover .icon-pass-chng{color:#e74c3c;--anim-lock:unlock 0.5s cubic-bezier(0.16,1,0.3,1) forwards;}
.submenu-grid button:hover .icon-exit{color:#c0392b;--anim-exit-line:push-x 0.6s infinite alternate cubic-bezier(0.16,1,0.3,1);--anim-exit-head:push-x 0.6s infinite alternate cubic-bezier(0.16,1,0.3,1);}
.submenu-grid button:hover .icon-sms-dash{color:#f39c12;--anim-dmsg1:draw-path 0.4s cubic-bezier(0.16,1,0.3,1) forwards;--anim-dmsg2:draw-path 0.4s cubic-bezier(0.16,1,0.3,1) 0.15s forwards;}
.submenu-grid button:hover .icon-send-simple{color:#3498db;--anim-pbody:float-diag 1.5s infinite alternate cubic-bezier(0.32,0.72,0,1);}
.submenu-grid button:hover .icon-send-pattern{color:#2ecc71;--anim-signal:flash-op 1s infinite cubic-bezier(0.16,1,0.3,1);}
.submenu-grid button:hover .icon-send-group{color:#3498db;--anim-heads:bounce-y-subtle 1s infinite alternate cubic-bezier(0.16,1,0.3,1);}
.submenu-grid button:hover .icon-send-status{color:#2ecc71;--anim-tick:draw-tick-apple 0.5s cubic-bezier(0.16,1,0.3,1) forwards;}

/* ========================================================================
   اتصال متغیرها به Shadow DOM
   ======================================================================== */
#icon-form-main .chk-1{animation:var(--anim-chk1,none);stroke-dasharray:10;stroke-dashoffset:10;opacity:0;}
#icon-form-main .chk-2{animation:var(--anim-chk2,none);stroke-dasharray:10;stroke-dashoffset:10;opacity:0;}
#icon-report-main .bar-a{animation:var(--anim-bara,none);transform-origin:bottom;transform:scale3d(1,0,1);}
#icon-report-main .bar-b{animation:var(--anim-barb,none);transform-origin:bottom;transform:scale3d(1,0,1);}
#icon-report-main .bar-c{animation:var(--anim-barc,none);transform-origin:bottom;transform:scale3d(1,0,1);}
#icon-report-main .line-trend{animation:var(--anim-line,none);stroke-dasharray:30;stroke-dashoffset:30;}
#icon-report-main .trend-dot{animation:var(--anim-dot,none);opacity:0;}
#icon-tools-main .wrench-tool{animation:var(--anim-wrench,none);}
#icon-tools-main .nut-tool{animation:var(--anim-nut,none);}
#icon-financial-main .fin-bill{animation:var(--anim-bill,none);transform-origin:bottom;}
#icon-financial-main .fin-bill-outline{animation:var(--anim-bill,none);transform-origin:bottom;}
#icon-setting-main .gear-large{animation:var(--anim-gear-l,none);}
#icon-setting-main .gear-small{animation:var(--anim-gear-s,none);}
#icon-sms-main .signal-wave1{animation:var(--anim-sig1,none);opacity:0;}
#icon-sms-main .signal-wave2{animation:var(--anim-sig2,none);opacity:0;}
#icon-sms-main .chat-bubble{animation:var(--anim-bubble,none);stroke-dasharray:10;stroke-dashoffset:10;}

#icon-receipt-add path:first-child{animation:var(--anim-receipt,none);}
#icon-person-add .add-plus, #icon-fin-person .add-plus{animation:var(--anim-aplus,none);}
#icon-check-ops .check-mark{animation:var(--anim-check,none);stroke-dasharray:14;stroke-dashoffset:14;opacity:0;}
#icon-cash-reg .reg-drawer{animation:var(--anim-cashreg,none);}
#icon-shipping .wheel{animation:var(--anim-wheel,none);}
#icon-warehouse-item .roof{animation:var(--anim-roof,none);transform-origin:bottom;}
#icon-req-office .req-tick{animation:var(--anim-tick,none);stroke-dasharray:15;stroke-dashoffset:15;}
#icon-org-email .mail-v{animation:var(--anim-mailv,none);}
#icon-cust-perf .search-lens{animation:var(--anim-search,none);}
#icon-balance-scale .ledger-user{animation:var(--anim-ledger,none);}
#icon-seller-perf .badge{animation:var(--anim-badge,none);transform-origin:center;transform:scale3d(0,0,1);}
#icon-beta-acc .beta-clock{animation:var(--anim-bclock,none);}
#icon-sale-rep .trend-line{animation:var(--anim-trend,none);stroke-dasharray:25;stroke-dashoffset:25;}
#icon-cust-pay .dollar{animation:var(--anim-dollar,none);opacity:0;}
#icon-factor-det .list-item{animation:var(--anim-list1,none);opacity:0;}
#icon-factor-det .list-item:last-child{animation:var(--anim-list2,none);}
#icon-inventory .inv-item{animation:var(--anim-inv,none);transform:translate3d(0,0,0);}
#icon-total-rep .dash-p1{animation:var(--anim-dash1,none);}
#icon-total-rep .dash-p2{animation:var(--anim-dash2,none);}
#icon-total-rep .dash-p3{animation:var(--anim-dash3,none);}
#icon-kpi .kpi-needle{transform:rotate(-55deg);animation:var(--anim-kpi,none);}
#icon-plan .check-plan{animation:var(--anim-chkplan,none);stroke-dasharray:14;stroke-dashoffset:14;opacity:0;}

#icon-discount .percent-line{animation:var(--anim-percent,none);}
#icon-num-conv .digit{animation:var(--anim-digit,none);}
#icon-date-conv .date-cycle{animation:var(--anim-dcycle,none);}
#icon-serial .scan-laser{animation:var(--anim-laser,none);opacity:0;}
#icon-ras-calc .ras-hand{animation:var(--anim-rhand,none);}
#icon-calculator .calc-btn{animation:var(--anim-calc,none);}
#icon-doc-ras .hands{animation:var(--anim-clock,none);}
#icon-gold-mail .gold-star{animation:var(--anim-gstar,none);}

#icon-pre-inv .pre-search{animation:var(--anim-psearch,none);}
#icon-order .cart-item{animation:var(--anim-cart,none);}
#icon-price-tag .tag-bell{animation:var(--anim-tbell,none);}
#icon-check-clear .chk-clear-tick{animation:var(--anim-ctick,none);stroke-dasharray:15;stroke-dashoffset:15;}
#icon-beta-rec .beta-arr-in{animation:var(--anim-barr,none);}
#icon-salary .salary-line{animation:var(--anim-sline,none);}
#icon-attendance .att-swipe{animation:var(--anim-aswipe,none);}

#icon-config .slider-1{animation:var(--anim-slider1,none);}
#icon-config .slider-2{animation:var(--anim-slider2,none);}
#icon-users-mng .usr-gear{animation:var(--anim-ugear,none);}
#icon-pass-chng .lock-shackle{animation:var(--anim-lock,none);}
#icon-exit .arrow-out-line{animation:var(--anim-exit-line,none);}
#icon-exit .arrow-out-head{animation:var(--anim-exit-head,none);}
#icon-sms-dash .dash-msg1{animation:var(--anim-dmsg1,none);stroke-dasharray:10;stroke-dashoffset:10;}
#icon-sms-dash .dash-msg2{animation:var(--anim-dmsg2,none);stroke-dasharray:10;stroke-dashoffset:10;}
#icon-send-simple .plane-body{animation:var(--anim-pbody,none);}
#icon-send-pattern .signal{animation:var(--anim-signal,none);opacity:0.2;}
#icon-send-group .group-heads{animation:var(--anim-heads,none);}
#icon-send-status .check-tick{animation:var(--anim-tick,none);stroke-dasharray:25;stroke-dashoffset:25;opacity:0;}

/* ========================================================================
   فریم‌های کلیدی انیمیشن‌ها
   ======================================================================== */
@keyframes draw-path{to{stroke-dashoffset:0;}}
@keyframes draw-tick-apple{0%{opacity:0;}1%{opacity:1;}100%{stroke-dashoffset:0;opacity:1;}}
@keyframes grow-up{to{transform:scale3d(1,1,1);}}
@keyframes fade-in-dot{0%,50%{opacity:0;transform:scale3d(0.5,0.5,1);}100%{opacity:1;transform:scale3d(1.2,1.2,1);}}
@keyframes grip-turn{0%,15%{transform:translate3d(-1px,1px,0) rotate(0deg);}40%{transform:translate3d(-5.5px,5.5px,0) rotate(0deg);}100%{transform:translate3d(-5.5px,5.5px,0) rotate(-35deg);}}
@keyframes nut-turn{0%,40%{transform:rotate(0deg);}100%{transform:rotate(-35deg);}}
@keyframes slide-bill-up{0%{transform:translate3d(0,0,0);}100%{transform:translate3d(0,-3.5px,0);}}
@keyframes spin-right{to{transform:rotate(360deg);}}
@keyframes spin-left{to{transform:rotate(-360deg);}}
@keyframes broadcast{0%{opacity:0;}50%{opacity:1;}100%{opacity:0;transform:scale3d(1.1,1.1,1) translate3d(2px,0,0);}}
@keyframes float-msg{0%{stroke-dashoffset:10;transform:translate3d(0,0,0);}100%{stroke-dashoffset:0;transform:translate3d(1px,-1px,0);}}
@keyframes slide-down{from{transform:translate3d(0,-4px,0);opacity:0;}to{transform:translate3d(0,0,0);opacity:1;}}
@keyframes slide-drawer{0%,100%{transform:translate3d(0,0,0);}50%{transform:translate3d(0,2px,0);}}
@keyframes roof-bounce{0%{transform:translate3d(0,0,0);}100%{transform:translate3d(0,-2px,0);}}
@keyframes bounce-y{0%,100%{transform:translate3d(0,0,0);}50%{transform:translate3d(0,-3px,0);}}
@keyframes bounce-y-subtle{0%,100%{transform:translate3d(0,0,0);}50%{transform:translate3d(0,-2px,0);}}
@keyframes search-move{0%{transform:translate3d(0,0,0);}50%{transform:translate3d(-2.5px,-2.5px,0);}100%{transform:translate3d(0,0,0);}}
@keyframes pop-scale{0%{transform:scale3d(0,0,1);}70%{transform:scale3d(1.2,1.2,1);}100%{transform:scale3d(1,1,1);}}
@keyframes drop-in{0%{transform:translate3d(0,-10px,0);opacity:0;}50%{opacity:1;}100%{transform:translate3d(0,0,0);opacity:1;}}
@keyframes slide-x-fade{0%{transform:translate3d(-5px,0,0);opacity:0;}100%{transform:translate3d(0,0,0);opacity:1;}}
@keyframes pop-y{0%{transform:translate3d(0,0,0);}100%{transform:translate3d(0,-3px,0);}}
@keyframes gauge-swing{0%{transform:rotate(-55deg);}60%{transform:rotate(65deg);}80%{transform:rotate(40deg);}100%{transform:rotate(50deg);}}
@keyframes spin-half{to{transform:rotate(180deg);}}
@keyframes flip-scale{0%{transform:scale3d(1,1,1);}100%{transform:scale3d(1,0.7,1);opacity:0.5;}}
@keyframes laser-scan{from{transform:translate3d(0,-5px,0);opacity:1;}to{transform:translate3d(0,5px,0);opacity:1;}}
@keyframes flash-op{0%{opacity:0.5;}100%{opacity:1;}}
@keyframes pulse-move{from{transform:scale3d(0.3,0.3,1) translate3d(30px,10px,0);opacity:0.5;}to{transform:scale3d(0.4,0.4,1) translate3d(25px,8px,0);opacity:1;}}
@keyframes scan-move{0%{transform:translate3d(0,0,0);}100%{transform:translate3d(-3px,3px,0);}}
@keyframes slide-x{0%{transform:translate3d(0,0,0);}100%{transform:translate3d(-3px,0,0);}}
@keyframes swing-rot{0%{transform:rotate(0);}100%{transform:rotate(15deg);}}
@keyframes scale-y{0%{transform:scale3d(1,1,1);}100%{transform:scale3d(1,1.4,1);}}
@keyframes fade-color{0%{opacity:0.2;stroke:#00cfe8;}100%{opacity:1;stroke:#fff;}}
@keyframes slide-x-subtle{from{transform:translate3d(-1px,0,0);}to{transform:translate3d(1px,0,0);}}
@keyframes unlock{to{transform:rotate(-10deg) translate3d(0,-2px,0);}}
@keyframes push-x{0%{transform:translate3d(0,0,0);}100%{transform:translate3d(3px,0,0);}}
@keyframes float-diag{0%{transform:translate3d(0,0,0);}100%{transform:translate3d(2px,-2px,0);}}

/* ========================================================================
   لودینگ مدرن نئونی
   ======================================================================== */
#global-loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(15,23,42,0.65);z-index:999999;display:none;flex-direction:column;justify-content:center;align-items:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);opacity:0;transition:opacity 0.4s ease-in-out;}
#global-loading-overlay.visible{opacity:1;}
/* اسپینر مدرن دو حلقه */
.global-spinner{width:64px;height:64px;border:3px solid rgba(255,255,255,0.05);border-radius:50%;border-top-color:#00cfe8;border-right-color:#a29bfe;animation:global-spin 0.8s cubic-bezier(0.5,0,0.5,1) infinite;margin-bottom:25px;box-shadow:0 0 20px rgba(0,207,232,0.2);position:relative;}
/* حلقه درخشان داخلی */
.global-spinner::after{content:'';position:absolute;top:5px;left:5px;right:5px;bottom:5px;border-radius:50%;border:3px solid transparent;border-top-color:#a29bfe;animation:global-spin-reverse 1.2s linear infinite;opacity:0.8;}
/* متن لودینگ */
.global-loading-text{font-size:16px;color:#fff;font-weight:600;letter-spacing:1px;text-shadow:0 0 10px rgba(255,255,255,0.5);animation:pulse-text 2s infinite ease-in-out;}
/* انیمیشن‌های لودینگ */
@keyframes global-spin{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}}
@keyframes global-spin-reverse{0%{transform:rotate(0deg);}100%{transform:rotate(-360deg);}}
@keyframes pulse-text{0%,100%{opacity:1;transform:scale(1);}50%{opacity:0.7;transform:scale(0.98);}}
/* جلوگیری از اسکرول خوردن صفحه وقتی لودینگ فعال است */
body.loading-active{overflow:hidden!important;}

/* ========================================================================
   مدیریت دسترسی کاربران
   ======================================================================== */
/* گرید بندی منعطف برای فیلدها */
.inline-row { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 15px; }
.inline-row > .user-field, .inline-row > .other-field { flex: 1 1 calc(50% - 12px); min-width: 150px; }
.dropdown-container{position:relative;z-index:2;}

/* گرید هوشمند برای تب‌ها جهت جلوگیری از بهم‌ریختگی */
.button-row{display: grid;grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));gap: 10px;margin: 15px 0;position: relative;z-index: 1;}

/* استایل دهی دقیق برای دکمه‌های تب */
.button-row button.tab-btn{margin: 0;height: 100%;min-height: 45px;display: flex;align-items: center;justify-content: center;text-align: center;font-size: 14px;line-height: 1.4;white-space: normal;padding: 8px 5px;border-radius: 8px;transition: all 0.3s ease;}

/* تب فعال (درخشان و برجسته) */
.tab-btn.active{background: rgba(255, 255, 255, 0.25) !important;border: 1px solid #fff !important;box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15) !important;font-weight: bold;color: #fff;transform: translateY(-2px);}

#accessReportPopup{position:fixed;top:50%;left:50%;background:#fff;padding:20px;border-radius:5px;box-shadow:0 0 10px rgba(0,0,0,0.5);z-index:1000;display:none;width:90%;max-height:80%;overflow-y:auto;transform:translate(-50%,-50%);}
#popupOverlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);z-index:999;display:none;}
.global-user-select{margin:1rem auto;text-align:center;}
.global-user-select select{padding:0.5rem;font-size:1rem;}

/* ========================================================================
   پیش فاکتور و سفارش مشتری
   ======================================================================== */
/* سفارش مشتری */
.suggestions{position:absolute;background:#fff;z-index:100;width:calc(100% - 2px);max-height:200px;overflow:auto;text-align:right;}
.suggestion-item{padding:6px;cursor:pointer;font-size:10px;}
.suggestion-item:hover{background:#eee;}
.invoice-header{display:flex;justify-content:space-between;margin-bottom:5px;}
.invoice-header.field{display:flex;flex-direction:column;}
.invoice-header.field span{font-weight:bold;}
.field{display:inline-flex;align-items:center;gap:0.5rem;}
.field label{margin:0;}
/* حالت مشاهده پیش فاکتور */
.invoice-header .field{margin-bottom:10px;}
.invoice-header .field label{display:block;margin-bottom:5px;font-weight:bold;}
.invoice-header .field input{width:100%;padding:6px;box-sizing:border-box;border:1px solid #ccc;border-radius:8px;}
.view-mode-table{border-collapse:collapse;width:100%;margin-top:20px;}
.view-mode-table th,.view-mode-table td{border:1px solid #dee2e6;padding:10px 12px;text-align:right;vertical-align:middle;}
.view-mode-table th{background-color:#e9ecef;color:#495057;font-weight:bold;}
.view-mode-table td{color:#212529;}
.view-mode-table tr:nth-child(even) td{background-color:#f8f9fa;}
.view-mode-header{display:flex;justify-content:space-between;margin-bottom:5px;}
.view-mode-header div{display:flex;justify-content:space-between;margin-bottom:5px;}
.view-mode-header strong{display:flex;justify-content:space-between;margin-bottom:5px;}
.view-mode-header label{margin:0;}
.view-mode-totals td{font-weight:bold;}
.no-print-view{display:none!important;}
/*مشترک */
/* اینپوت‌های باریک و مدرن */
.invoice-header .field input,.header-grid .field input{height:28px!important;font-size:11px!important;padding:2px 6px;}
/* عناوین ریز و سفید سفارش مشتری */
.header-grid .field label{width:100%;}
/* چیدمان تک‌خطی و فشرده هدر */
.header-grid{display:flex;flex-wrap:nowrap;gap:8px;align-items:flex-end;padding:6px 0;}
.header-grid .field{margin:0;display:flex;flex-direction:column;}
/* عرض‌دهی ستون‌ها */
.col-user{flex:0 0 100px;}
.col-pass{flex:0 0 100px;}
.col-cust{flex:0 0 250px;}
.col-date{flex:0 0 80px;}
.col-desc{flex:1 1 auto;}
/* تنظیم موقعیت لیست پیشنهادات برای فیلدهای باریک‌تر */
.suggestions{top:29px;border-top:none;}
.suggestion-item{font-size:11px;padding:6px 10px;}
/* دکمه‌های جدول */
.row-num{border:none;background:transparent;text-align:center;font-weight:bold;color:#555;font-size:12px;}

/* ========================================================================
   گزارش جامع مشتری
   ======================================================================== */
.customer-report-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:1rem;padding:20px;border:1px solid #ddd;border-radius:5px;background:#f9f9f9;}
.customer-report-card__item{display:flex;justify-content:space-between;align-items:center;padding:10px;border-bottom:1px solid #eee;}
.customer-report-card__item:last-child{border-bottom:none;}
.customer-report-card__label{font-weight:bold;color:#333;}
.customer-report-card__value{font-size:1.1em;color:#0056b3;}
.customer-report-card__section{background-color:#fff;border:1px solid #ddd;border-radius:4px;padding:0 15px;display:flex;flex-direction:column;}
.customer-report-card__section h3{border-bottom:2px solid #007bff;padding-bottom:10px;margin-top:15px;}
.customer-report-card__breakdown-table{width:100%;border-collapse:collapse;margin-bottom:10px;}
.customer-report-card__breakdown-table td{padding:6px;border-bottom:1px solid #eee;}

/* ========================================================================
   پردازش ایمیل گلدیران
   ======================================================================== */
.status-found{color:#00cfe8;font-weight:bold;}
.status-not-found{color:#dc3545;font-weight:bold;}
.status-ambiguous{color:#ff9900;font-weight:bold;}
.multi-match-list{list-style-type:none;padding:0;margin:5px 0 0 0;font-size:12px;text-align:right;color:#333;}
.multi-match-list li{padding:3px;border-bottom:1px solid #eee;}
.multi-match-list li:last-child{border-bottom:none;}

/* ========================================================================
   مخفی کردن اسکرول بار
   ======================================================================== */
/* مخفی کردن اسکرول بار در مرورگرهای WebKit (Chrome, Safari) */
html::-webkit-scrollbar,body::-webkit-scrollbar{display:none;}
/* مخفی کردن اسکرول بار در Firefox و IE 10+ */
html,body{scrollbar-width:none;-ms-overflow-style:none;}
/* جلوگیری از بیرون زدگی افقی و اطمینان از اسکرول روان */
html,body{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;}

/* ========================================================================
   حقوق و دستمزد
   ======================================================================== */
/* صفحه محاسبه حقوق */
.payroll-table{width:100%;border-collapse:collapse;}
.payroll-table th,.payroll-table td{font-size:12px;}
.payroll-table th{background-color:#f2f2f2;position:sticky;top:0;z-index:1;}
.payroll-table input{box-sizing:border-box;border:none;padding:6px;text-align:center;background-color:transparent;}
.payroll-table .editable{background-color:#transparent;}
.payroll-table tfoot th{background-color:#e9ecef;font-weight:bold;}
.negative-value{color:#dc3545!important;font-weight:bold;}
/* صفحه فیش حقوقی */
.payslip-header{text-align:center;border-bottom:2px solid #333;padding-bottom:10px;margin-bottom:20px;}
.payslip-header h2{margin:0;color:#000;}
.payslip-info{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px;font-size:14px;}
.payslip-details{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.payslip-box{border:1px solid #ddd;padding:10px;border-radius:5px;}
.payslip-box h4{margin-top:0;border-bottom:1px solid #eee;padding-bottom:6px;}
.payslip-item{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px dotted #eee;}
.payslip-item:last-child{border-bottom:none;}
.payslip-totals{font-weight:bold;background-color:#f2f2f2;}
.payslip-footer{text-align:center;margin-top:20px;border-top:2px solid #333;padding-top:10px;}
.payslip-footer h3{color:#000;}
.payslip{border:2px solid #333;padding:15px;background:#fff;color:#000;}
.payslip-header{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #333;padding-bottom:10px;margin-bottom:15px;}
.payslip-header .logo{max-height:50px;}
.payslip-header h2{margin:0;font-size:18px;font-weight:bold;}
.payslip-info{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 20px;font-size:13px;margin-bottom:20px;padding:10px;border:1px solid #ccc;}
.payslip-info-item{display:flex;justify-content:space-between;}
.payslip-info-item .label{color:#555;}
.payslip-info-item .value{font-weight:bold;}
.payslip-details{grid-template-columns:1fr 1fr;gap:20px;}
.payslip-box{border:1px solid #ccc;}
.payslip-box-header{display:flex;justify-content:space-between;background-color:#f2f2f2;font-weight:bold;padding:8px;border-bottom:1px solid #ccc;}
.payslip-item{padding:6px 8px;}
.payslip-item .value{font-weight:normal;}
.payslip-summary{border:1px solid #ccc;margin-top:20px;}
.payslip-summary .payslip-item{border-bottom:1px solid #ccc;}
.payslip-summary .payslip-item:last-child{border-bottom:none;}
.payslip-net-pay{background-color:#f2f2f2;font-size:14px;padding:10px 8px!important;}
/* صفحه قرارداد */
.contract-page,.contract-page p,.contract-page div,.contract-page span{font-size:8pt!important;line-height:1.6!important}
.contract-printable-area{margin:5px auto;width:21cm;background:white;box-shadow:0 0 15px rgba(0,0,0,.2)}
.contract-page{width:100%;height:29.7cm;padding:20px;padding-bottom:40px;box-sizing:border-box;position:relative;color:#000;background:transparent;page-break-after:always;overflow:hidden}
.contract-page:last-child{page-break-after:avoid}
.contract-page .page-footer{position:absolute;bottom:20px;left:0;right:0;text-align:center;font-size:.9em}
.contract-page .page-header{display:flex;justify-content:space-between;align-items:center;font-weight:bold;font-size:1.1em;padding-bottom:10px;border-bottom:2px solid #000}
.contract-page p{text-align:justify;margin:10px 0}
.contract-page p.intro{text-align:right;margin:20px 0}
.contract-page p.small-text{margin-top:15px}
.contract-page section.content-section{margin-bottom:10px}
.contract-page section.content-section h4{font-size:1.05em;font-weight:bold;margin:20px 0 10px;text-align:right;color:#000}
.contract-page strong{font-weight:bold}
.contract-page .party-info{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 15px;line-height:2}
.contract-page .party-info .label{font-weight:bold;min-width:60px}
.contract-page .party-info .phone-number{margin-right:auto}
.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 15px;margin-top:10px;line-height:1.6;font-size:11pt}
.info-grid .info-item{display:flex;gap:5px}
.info-grid .item-label{white-space:nowrap}
.info-grid .item-value{font-weight:bold;width:100%}
.info-grid .address-item{grid-column:1 / 4}
.info-grid .contact-item{grid-column:4 / 5;flex-direction:column;gap:8px}
.info-grid .contact-item>div{display:flex;gap:5px}
.contract-page .contract-type-options{display:flex;gap:30px;align-items:center}
.contract-page .contract-type-options .option{display:flex;align-items:center;gap:8px}
.contract-page .contract-type-options .checkbox{display:flex;justify-content:center;align-items:center;width:20px;height:20px;border:1px solid #000;font-weight:bold;font-size:14pt;line-height:1}
.meta-info{display:flex;justify-content:space-between;align-items:center;margin:15px 0;font-size:11pt}
.salary-details{display:flex;flex-direction:column;gap:8px;font-size:11pt;line-height:1.6}
.salary-details .salary-item{display:flex;justify-content:space-between;gap:20px}
.salary-details .salary-item.full-width{justify-content:flex-start}
.salary-details .salary-item span:first-child{flex-basis:45%}
.salary-details .salary-item span:last-child{flex-basis:55%}
.signatures{display:flex;justify-content:space-between;margin-top:5px;padding:0 5px}
.signature-box{text-align:center;font-weight:bold}

/* ========================================================================
   گزارش تردد کارکنان
   ======================================================================== */
table.report-table{width:100%;border-collapse:collapse;margin-top:0;font-size:0.9em;color:#eee;}
table.report-table th{background-color:#333;color:#eee;border:1px solid #444;padding:10px;text-align:center;}
table.report-table td{border:1px solid #444;padding:6px;text-align:center;color:inherit;}
.user-card{background:rgba(255,255,255,0.03);margin-bottom:15px;border:1px solid #444;border-radius:12px;overflow:hidden;box-shadow:0 2px 5px rgba(0,0,0,0.2);}
.user-header{background:#2c3e50;padding:10px 15px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;}
.user-info h5{margin:0;font-size:1.1em;color:#fff;font-weight:bold;}
.controls-container{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.stat-badge{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;border-radius:10px;font-size:0.85em;color:#fff;box-shadow:0 1px 3px rgba(0,0,0,0.3);white-space:nowrap;}
.badge-present{background-color:#27ae60;}
.badge-absent{background-color:#c0392b;}
.badge-delay{background-color:#d35400;}
.badge-overtime{background-color:#8e44ad;}
.action-btn{height:32px;padding:0 15px;border:none;cursor:pointer;font-size:0.85em;color:white;transition:opacity 0.2s;white-space:nowrap;}
.action-btn:hover{opacity:0.9;}
.btn-save{background-color:#2980b9;}
.btn-details{background-color:#34495e;border:1px solid #555;}
.details-box{display:none;background:#222;border-top:1px solid #444;padding:0;}
.details-box.open{display:block;}
.log-box{margin-top:20px;border-top:1px solid #555;padding-top:10px;}
.log-content{text-align:right;direction:rtl;color:#a4b0be!important;background-color:#1a1a1a;padding:15px;height:150px;overflow-y:auto;font-size:0.85em;border:1px solid #444;border-radius:4px;}
.modal-box{background-color:#333;margin:10% auto;padding:15px;border:1px solid #555;max-width:480px;text-align:center;border-radius:12px;color:white;position:relative;}

/* ========================================================================
   استایل‌های اختصاصی ماژول اتوماسیون اعلامیه قیمت
   ======================================================================== */
.price-automation-card {background: rgba(255, 255, 255, 0.9); border: 1px solid rgba(255, 255, 255, 0.4); border-radius: 8px; padding: 15px; margin-bottom: 15px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); color: #333; text-align: right;}
.price-automation-card h4 {margin-top: 0; color: #007e94; border-bottom: 1px solid #e0e0e0; padding-bottom: 6px; margin-bottom: 12px; font-size: 15px;}
.price-automation-card p {margin-bottom: 8px; font-size: 13px;}
.price-automation-card .highlight-price {font-weight: bold; font-size: 15px; color: #d32f2f;}
.price-automation-radio-group {display: flex; align-items: center; gap: 10px; margin-bottom: 8px; padding: 6px; background: rgba(0,0,0,0.03); border-radius: 6px; border: 1px solid #ddd; transition: all 0.2s; cursor: pointer;}
.price-automation-radio-group:hover {background: #e3f2fd; border-color: #90caf9;}
.price-automation-input-group {display: flex; align-items: center; gap: 10px; margin-bottom: 8px; padding: 6px; background: rgba(0,0,0,0.03); border-radius: 6px; border: 1px solid #ddd;}
.price-automation-input-group label {flex-grow: 1; color: #333; font-size: 13px; font-weight: bold; margin: 0;}
.price-automation-input-group input[type="number"] {width: 90px; margin: 0; text-align: center; border: 1px solid #ccc; background: #fff; color: #000; height: 32px; border-radius: 4px;}
.report-box {flex: 1; min-width: 300px; border-radius: 8px; padding: 15px; box-shadow: 0 2px 4px rgba(0,0,0,0.05); text-align: right;}
.report-box.info {background: #e3f2fd; border: 1px solid #b8daff;}
.report-box.warning {background: #fff3cd; border: 1px solid #ffeeba;}
.report-box h4 {margin-top: 0; padding-bottom: 6px; border-bottom: 1px solid rgba(0,0,0,0.1); font-size: 14px;}
.report-box ul {padding-right: 20px; margin-bottom: 0; font-size: 13px; max-height: 200px; overflow-y: auto; color: #333;}
.report-box li {margin-bottom: 8px; line-height: 1.6;}
.terminal-log-box {background-color: #1e1e1e; color: #4af626; padding: 15px; border-radius: 8px; max-height: 350px; overflow-y: auto; direction: rtl; text-align: right; font-size: 13px; border: 2px solid #333; box-shadow: inset 0 2px 5px rgba(0,0,0,0.5); margin-bottom: 20px;}

/* ========================================================================
   چاپ
   ======================================================================== */
/* منو چاپ */
.planning-container,.report-container,.full_report-container,.total-report-container,.invoice-container,.salary-container,.payslip-container,.financial-container,.sms-container{position:relative;}
.print-action-container{position:absolute;top:13px;left:60px;z-index:9999;display:flex;gap:5px}
.print-action-container .dropdown{position:relative;display:inline-block}
.print-action-container .print-action-button{background:rgba(44,62,80,0.6);border:1px solid rgba(255,255,255,0.3);padding:6px 12px;border-radius:10px;cursor:pointer;font-size:14px;color:#fff;transition:background .3s,transform .2s;will-change:transform}
.print-action-container .print-action-button:hover{background:#f0f8ff;color:#3c599b;transform:translateY(-2px)}
.print-action-container .dropdown-menu{list-style:none;margin:0;padding:6px;position:absolute;top:calc(100% + 1px);right:0;min-width:80px;background:rgba(44,62,80,0.6);border:1px solid rgba(255,255,255,0.3);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,0.1);transform-origin:top center;transform:scaleY(0);opacity:0;pointer-events:none;transition:transform .2s ease-out,opacity .2s ease-out;will-change:transform,opacity}
.print-action-container .dropdown.open .dropdown-menu{transform:scaleY(1);opacity:1;pointer-events:auto}
.print-action-container .dropdown-item{display:flex;align-items:center;gap:4px;margin-bottom:4px;padding:6px 8px;font-size:14px;color:#fff;background:transparent;border:1px solid #ccc;cursor:pointer;transition:background .2s,color .2s}
.print-action-container .dropdown-item:hover{background:#f0f8ff;color:#3c599b}
.print-action-container .dropdown-icon{font-size:18px}
.print-action-button.black-text{color:#000;}
/* تنظیمات چاپ */
@page{size:auto;margin:1mm}
@page.landscape{size:A4 landscape}
@page.portrait{size:A4 portrait}
/* تنظیمات عمومی چاپ */
@media print{
html,body{margin:0;padding:0;overflow:visible}
*{background:none!important;background-image:none!important;box-shadow:none!important;text-shadow:none!important;filter:none!important}
*::before,*::after{background:none!important;box-shadow:none!important;text-shadow:none!important;filter:none!important}
table{width:100%;max-width:100%;table-layout:auto;border-collapse:collapse;page-break-inside:auto;background:none!important}
thead{display:table-header-group}
tfoot{display:table-footer-group}
tr{page-break-inside:avoid;page-break-after:auto}
th,td{border:1px solid #000!important;padding:2px;background:none!important}
/* مخفی کردن عناصر غیرضروری */
.no-print,.no-print-view,.modal-overlay,#show-invoices,button[name="save_invoice"],.icon-button[onclick*="removeRow"],.icon-button[onclick*="addRow"],img,svg,.fa,.message.error,.print-action-container{display:none!important}
/* الگوی چاپ تک بخشی مثل فیش حقوقی */
.printable-container *{visibility:hidden!important;}
.printable-container .printable,.printable-container .printable *{visibility:visible!important;}
.printable-container .printable{display:block;position:absolute;left:0;top:0;width:100%;max-width:100%;}
/*‌ چاپ قرارداد */
.contract-printable-area{margin:5px;}
.contract-page{margin:0px!important;box-shadow:none!important;border:none!important;min-height:auto;width:100%;padding:10px!important;}
.contract-page .page-footer{position:static;text-align:center;margin-top:20px;padding-top:10px;border-top:1px dashed #ccc;}
/* چاپ پیش فاکتور فروش */
.invoice-container{box-shadow:none;margin:0;padding:0;max-width:100%;}
.invoice-header input{border:none;background:transparent;padding:2px 0;}
table input{border:none;background:transparent;padding:2px 0;width:auto!important;}
input[readonly]{background-color:transparent!important;}
.view-mode-table th,.view-mode-table td{font-size:9pt;padding:6px;}
.view-mode-header strong{width:auto;margin-left:5px;}
.modal-header h1{font-size:16pt;}}

/* ========================================================================
   رسپانسیو
   ======================================================================== */
@media(max-width:768px){
.chart-box,.chart-container,.chart-container-half{flex-wrap:wrap;}
h1,h2{font-size:16px;}
.modal-body-page{max-height:100%!important;}
.popup-content{right:-30px!important;}
.tgju-widget{margin:0 auto!important;font-size:12px!important;width:100%!important;}
.calculator{width:100%;padding:10px;}
#output-calculator{width:90%;font-size:14px;}
.button,#zero{padding:8px 15px;font-size:12px;}
#radians,#degrees{width:calc(100%/3.6 - 8px);margin:1px;padding:8px;font-size:12px;}
/* .submenu-grid{grid-template-columns:1fr!important;} */
.filter-row-inline{flex-wrap:wrap;}
.filter-form input{width:100px;}
.header-grid{flex-wrap:wrap;}.header-grid .field{flex:1 1 45%;}.col-desc{flex:1 1 100%;}
.custom-file-wrapper{flex-wrap:wrap;}
.report-filter-dropdown .group-person{max-width:140px;}
}

@media(min-width:769px) and (max-width:1024px){
h1,h2{font-size:18px;}
.tgju-widget{margin:10px auto!important;font-size:14px!important;width:400px!important;}
.calculator{width:90%;padding:15px;}
#output-calculator{width:95%;font-size:16px;}
.filter-row-inline{flex-wrap:wrap;}
.button{padding:6px 15px;font-size:14px;}
.header-grid{flex-wrap:wrap;}.header-grid .field{flex:1 1 45%;}.col-desc{flex:1 1 100%;}
}

@media(min-width:1025px) and (max-width:1440px){
h1,h2{font-size:14px;}
.tgju-widget{margin:10px auto!important;}
.calculator{width:85%;padding:20px;}
#output-calculator{width:100%;font-size:18px;}
.button{padding:6px 15px;}
}

/* ========================================================================
   اصلاح مشکل بیرون‌زدگی مدال‌ها در نمایشگر با وضوح (1366x768)
   ======================================================================== */
/* استایل پایه برای چیدمان فرم‌ها */
/* تغییر محور فلکس باکس به ستونی برای کنترل هوشمند ارتفاع */
.login-page, .register-page, .dashboard-page, .form-page, .invitation-page, .planning-page, .report-page, .access-page{display: flex !important;flex-direction: column !important;justify-content: flex-start !important;align-items: center !important;padding: 20px 0 !important;min-height: 100vh !important;box-sizing: border-box !important;}

/* این مارجین، فرم‌های کوچک را دقیقاً وسط‌چین کرده و در فرم‌های بزرگ اجازه اسکرول می‌دهد */
.login-container, .register-container, .dashboard-container, .form-container, .financial-container, .tools-container, .medium-tools-container, .big-tools-container, .planning-container, .report-container, .full_report-container, .total-report-container, .invitation-container, .edit-container, .access-container, .modal-container, .invoice-container, .salary-container, .payslip-container, .sms-container{margin: auto !important;}

/* ارتفاع دقیق مدال و کانتینر برای جلوگیری از کلاپس شدن Iframe */
.modal {max-height: 95vh !important; margin: auto !important;}
.modal-body {height: calc(100vh - 120px) !important; min-height: 350px !important; max-height: 90vh !important;}
.modal-body-page {height: calc(100vh - 80px) !important; min-height: 350px !important;}

/* ========================================================================
   حالت بهینه‌شده برای سخت‌افزارهای ضعیف (Performance Mode)
   ======================================================================== */
.low-end-device *, .low-end-device *::before, .low-end-device *::after, .low-end-device svg * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
.low-end-device [class*="-container"], .low-end-device .modal, .low-end-device .main-menu-item, .low-end-device button, .low-end-device .kpi-card, .low-end-device .report-filter-dropdown .dropdown-menu, .low-end-device .modal-overlay, .low-end-device .calculator, .low-end-device .tgju-widget, .low-end-device .submenu, .low-end-device .submenu-grid button { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; box-shadow: none !important; }
.low-end-device .modal-overlay { background-color: rgba(0, 0, 0, 0.95) !important; }
.low-end-device [class*="-container"], .low-end-device .modal, .low-end-device .tgju-widget, .low-end-device .calculator { background-color: #2b3e50 !important; border: 1px solid #34495e !important; }
.low-end-device .main-menu-item, .low-end-device .submenu, .low-end-device button:not(.tab-btn), .low-end-device .report-filter-dropdown .dropdown-toggle { background-color: #34495e !important; border: 1px solid #455a64 !important; color: #fff !important; }
.low-end-device .submenu-grid button { background-color: #1e293b !important; border: 1px solid #334155 !important; }
.low-end-device #output-calculator { background-color: #111827 !important; }
.low-end-device .report-filter-dropdown .dropdown-menu { background-color: #2b3e50 !important; border: 1px solid #455a64 !important; }
.low-end-device .report-filter-dropdown .dropdown-item { background-color: transparent !important; color: #ffffff !important; border-color: #455a64 !important; }
.low-end-device .report-filter-dropdown .dropdown-item:hover, .low-end-device .report-filter-dropdown .dropdown-item.selected { background-color: #34495e !important; color: #00cfe8 !important; }
.low-end-device .report-filter-dropdown .dropdown-search-container { background-color: #2b3e50 !important; border-bottom: 1px solid #455a64 !important; }
.low-end-device .report-filter-dropdown .dropdown-search { background-color: #1e293b !important; color: #ffffff !important; border: 1px solid #455a64 !important; }
.low-end-device .kpi-card { background-color: #ffffff !important; border: 1px solid #e2e8f0 !important; }
.low-end-device .kpi-card-title, .low-end-device .kpi-card-value { color: #1e293b !important; }
.low-end-device .main-menu-item::before, .low-end-device button::before, .low-end-device .kpi-card::before { display: none !important; }
.low-end-device h1, .low-end-device h2, .low-end-device .stat-value { text-shadow: none !important; }
.low-end-device .global-spinner { box-shadow: none !important; }
.low-end-device .highcharts-axis-labels text, .low-end-device .highcharts-data-label text, .low-end-device .highcharts-data-label tspan, .low-end-device .highcharts-title, .low-end-device .highcharts-legend-item text { fill: #ffffff !important; color: #ffffff !important; text-shadow: none !important; font-weight: normal !important; }