/* ============================================================
   ۱) پایه و متغیرها (ریست، فونت، رنگ‌ها)
   ============================================================ */
@font-face{font-family:'Vazirmatn';src:local('Vazirmatn'),local('Vazir'),local('Tahoma');}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
:root{--primary:#1e3a8a;--primary-light:#3b82f6;--success:#059669;--danger:#dc2626;--warning:#d97706;--bg:#f1f5f9;--card:#fff;--border:#cbd5e1;--text:#1e293b;--muted:#64748b;--radius:12px;}
html{font-size:15px;}
body{font-family:'Vazirmatn','Tahoma',sans-serif;background:var(--bg);color:var(--text);line-height:1.7;direction:rtl;min-height:100vh;overflow-x:hidden;}
img{max-width:100%;height:auto;}
.money-input-wrap{position:relative;display:flex;align-items:stretch;border:1.5px solid var(--border);border-radius:8px;overflow:hidden;background:#fff;transition:all .15s;}
.money-input-wrap:focus-within{border-color:var(--primary-light);box-shadow:0 0 0 3px rgba(59,130,246,.15);}
.money-input-wrap input{border:none!important;border-radius:0!important;flex:1;padding:11px 12px;font-family:inherit;font-size:15px;text-align:left;direction:ltr;background:transparent;min-width:0;}
.money-input-wrap input:focus{outline:none;box-shadow:none;}
.money-input-wrap .money-unit{display:flex;align-items:center;padding:0 12px;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);color:var(--primary);font-size:12px;font-weight:700;white-space:nowrap;border-right:1px solid var(--border);}
.money-display{font-size:11px;color:var(--muted);margin-top:4px;min-height:16px;font-weight:600;}
/* ============================================================
   ۲) هدر و نوار تب‌ها
   ============================================================ */
header.app-header{background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;padding:14px 16px;box-shadow:0 2px 8px rgba(0,0,0,.15);display:flex;justify-content:space-between;align-items:center;gap:10px;position:sticky;top:0;z-index:200;}
header.app-header h1{font-size:16px;font-weight:700;display:flex;align-items:center;gap:8px;flex:1;min-width:0;}
header.app-header h1 span.title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
header.app-header .badge{background:rgba(255,255,255,.2);padding:4px 10px;border-radius:20px;font-size:12px;white-space:nowrap;}
.hamburger{background:rgba(255,255,255,.2);border:none;color:#fff;width:44px;height:44px;border-radius:10px;cursor:pointer;display:none;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;transition:background .15s;}
.hamburger:active{background:rgba(255,255,255,.35);}
nav.tabs{background:#fff;border-bottom:2px solid var(--border);display:flex;overflow-x:auto;padding:0 8px;position:sticky;top:68px;z-index:190;-webkit-overflow-scrolling:touch;}
nav.tabs button{background:none;border:none;padding:12px 14px;font-family:inherit;font-size:13px;cursor:pointer;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap;font-weight:600;transition:color .15s;display:flex;align-items:center;gap:5px;}
nav.tabs button.active{color:var(--primary);border-bottom-color:var(--primary);}
/* ============================================================
   ۳) چیدمان کلی صفحات و کارت‌ها/فرم‌ها
   ============================================================ */
main{padding:16px;max-width:1400px;margin:0 auto;padding-bottom:100px;}
.page{display:none;animation:fadeIn .25s ease;}
.page.active{display:block;}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
.card{background:var(--card);border-radius:var(--radius);padding:16px;margin-bottom:14px;box-shadow:0 1px 4px rgba(0,0,0,.06);border:1px solid var(--border);}
.card h2{font-size:16px;margin-bottom:14px;color:var(--primary);border-bottom:2px solid var(--bg);padding-bottom:10px;display:flex;align-items:center;gap:8px;}
.card h3{font-size:14px;margin:16px 0 10px;color:var(--primary);padding:6px 10px 6px 0;border-right:4px solid var(--primary-light);background:linear-gradient(90deg,rgba(59,130,246,.08),transparent);border-radius:4px;}
.form-grid{display:grid;grid-template-columns:1fr;gap:12px;}
.form-group{display:flex;flex-direction:column;}
.form-group label{font-size:13px;margin-bottom:5px;color:var(--muted);font-weight:600;}
.form-group input,.form-group select,.form-group textarea{padding:11px 12px;border:1.5px solid var(--border);border-radius:8px;font-family:inherit;font-size:15px;background:#fff;color:var(--text);transition:all .15s;width:100%;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-light);box-shadow:0 0 0 3px rgba(59,130,246,.15);}
.form-group .hint{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.4;}
/* ============================================================
   ۴) دکمه‌ها
   ============================================================ */
.btn{padding:12px 18px;border:none;border-radius:8px;font-family:inherit;font-size:14px;cursor:pointer;font-weight:600;transition:all .15s;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;white-space:nowrap;}
.btn:active{transform:scale(.97);}
.btn-primary{background:var(--primary);color:#fff;}
.btn-success{background:var(--success);color:#fff;}
.btn-danger{background:var(--danger);color:#fff;}
.btn-warning{background:var(--warning);color:#fff;}
.btn-secondary{background:var(--border);color:var(--text);}
.btn-sm{padding:7px 12px;font-size:12px;min-height:34px;}
.btn-block{width:100%;}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;}
.btn-row .btn{flex:1;min-width:140px;}
/* ============================================================
   ۵) جدول‌ها
   ============================================================ */
.table-wrap{overflow-x:auto;border-radius:8px;-webkit-overflow-scrolling:touch;margin:0 -4px;}
table.data-table{width:100%;border-collapse:collapse;font-size:13px;background:#fff;min-width:600px;}
table.data-table th,table.data-table td{padding:10px 8px;text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;}
table.data-table th{background:var(--bg);font-weight:700;color:var(--primary);font-size:12px;}
table.data-table tr:hover{background:#f8fafc;}
table.data-table td.actions{display:flex;gap:4px;flex-wrap:wrap;}
table.data-table td.money-cell{font-weight:700;color:var(--primary);direction:rtl;}
table.data-table td.money-cell .unit{font-size:10px;color:var(--muted);font-weight:500;}
/* ============================================================
   ۶) هشدار، Toast، مودال، وضعیت خالی
   ============================================================ */
.alert{padding:12px 14px;border-radius:8px;margin-bottom:12px;font-size:13px;border-right:4px solid;line-height:1.6;}
.alert-info{background:#dbeafe;border-color:#3b82f6;color:#1e40af;}
.alert-success{background:#d1fae5;border-color:#059669;color:#065f46;}
.alert-warning{background:#fef3c7;border-color:#d97706;color:#92400e;}
.alert-danger{background:#fee2e2;border-color:#dc2626;color:#991b1b;}
.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,100px);background:#1e293b;color:#fff;padding:14px 20px;border-radius:10px;box-shadow:0 4px 20px rgba(0,0,0,.3);z-index:9999;opacity:0;transition:all .3s;font-size:14px;max-width:90vw;text-align:center;}
.toast.show{opacity:1;transform:translate(-50%,0);}
.toast.success{background:var(--success);}
.toast.error{background:var(--danger);}
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:none;align-items:center;justify-content:center;z-index:1000;padding:16px;}
.modal-overlay.show{display:flex;}
.modal{background:#fff;border-radius:12px;padding:20px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;}
.modal h3{margin-bottom:14px;color:var(--primary);font-size:16px;}
.empty-state{text-align:center;padding:40px 16px;color:var(--muted);}
.empty-state .icon{font-size:42px;margin-bottom:10px;}
/* ============================================================
   ۷) کارت‌های خلاصه (داشبورد/گزارش‌ها) و ویزارد صدور سریع
   ============================================================ */
.summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px;}
.summary-card{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-radius:10px;padding:12px;text-align:center;border:1px solid var(--border);}
.summary-card .label{font-size:11px;color:var(--muted);margin-bottom:6px;line-height:1.3;}
.summary-card .value{font-size:14px;font-weight:700;color:var(--primary);word-break:break-all;line-height:1.4;}
.summary-card .value .unit{font-size:10px;color:var(--muted);font-weight:500;display:block;margin-top:2px;}
.summary-card.green .value{color:var(--success);}
.summary-card.orange .value{color:var(--warning);}
.wizard-steps{display:flex;justify-content:space-between;margin-bottom:20px;position:relative;padding:0 4px;}
.wizard-steps::before{content:'';position:absolute;top:18px;right:20px;left:20px;height:2px;background:var(--border);z-index:0;}
.wizard-step{display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;z-index:1;flex:1;}
.wizard-step .circle{width:36px;height:36px;border-radius:50%;background:#fff;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:var(--muted);transition:all .2s;}
.wizard-step .label{font-size:11px;color:var(--muted);text-align:center;font-weight:600;}
.wizard-step.active .circle{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 0 0 4px rgba(30,58,138,.15);}
.wizard-step.active .label{color:var(--primary);}
.wizard-step.completed .circle{background:var(--success);border-color:var(--success);color:#fff;}
.wizard-step.completed .label{color:var(--success);}
.wizard-panel{display:none;}
.wizard-panel.active{display:block;animation:fadeIn .25s ease;}
.wizard-nav{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap;}
.wizard-nav .btn{flex:1;min-width:120px;}
.tax-row{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:6px;align-items:end;margin-bottom:10px;padding:10px;background:#f8fafc;border-radius:8px;border:1px solid var(--border);}
.tax-row .tax-field{display:flex;flex-direction:column;}
.tax-row .tax-field label{font-size:10px;color:var(--muted);margin-bottom:2px;}
.tax-row input{padding:8px;border:1px solid var(--border);border-radius:6px;font-family:inherit;font-size:13px;width:100%;}
.tax-row .tax-remove{background:var(--danger);color:#fff;border:none;width:36px;height:36px;border-radius:6px;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;}
#con_body{font-family:'Vazirmatn',Tahoma,sans-serif;font-size:13px;line-height:1.9;padding:14px;border:1.5px solid var(--border);border-radius:8px;min-height:420px;resize:vertical;background:#fefefe;}
/* ============================================================
   ۸) نوار پایین موبایل و چاپ فیش/قرارداد
   ============================================================ */
.mobile-nav{display:none;position:fixed;bottom:0;right:0;left:0;background:#fff;border-top:2px solid var(--border);z-index:300;padding:6px 0 calc(6px + env(safe-area-inset-bottom));box-shadow:0 -2px 10px rgba(0,0,0,.08);}
.mobile-nav-inner{
  display:flex;
  flex-wrap:nowrap;
  justify-content:flex-start;
  align-items:stretch;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
  gap:2px;
  padding:0 6px;
}
.mobile-nav-inner::-webkit-scrollbar{display:none;}
.mobile-nav button{
  background:none;border:none;
  flex:0 0 auto;
  min-width:68px;
  padding:8px 10px;
  font-family:inherit;font-size:11px;color:var(--muted);font-weight:600;
  cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:4px;min-height:56px;border-radius:10px;box-sizing:border-box;
  scroll-snap-align:start;
  white-space:nowrap;
}
.mobile-nav button.active{color:var(--primary);background:rgba(30,58,138,.1);}
.mobile-nav button .nav-icon{font-size:22px;line-height:1;}
.payslip-container{display:none;}
.contract-container{display:none;}
@media print{
body{background:#fff;}
header.app-header,nav.tabs,main,.toast,.modal-overlay,.mobile-nav,.no-print{display:none!important;}
.payslip-container{display:block!important;padding:0;margin:0;width:100%;font-size:12px;}
.contract-container{display:block!important;padding:0;margin:0;width:100%;font-size:12px;}
.payslip{width:100%;max-width:210mm;margin:0 auto;padding:8mm;background:#fff;color:#000;page-break-after:always;}
.payslip:last-child{page-break-after:auto;}
.contract-paper{width:100%;max-width:210mm;margin:0 auto;padding:10mm;background:#fff;color:#000;page-break-after:always;}
.contract-paper:last-child{page-break-after:auto;}
@page{size:A4;margin:8mm;}
}
.payslip{border:2px solid #1e3a8a;padding:16px;font-family:'Vazirmatn',Tahoma,sans-serif;direction:rtl;}
.payslip-header{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #1e3a8a;padding-bottom:10px;margin-bottom:10px;gap:10px;flex-wrap:wrap;}
.payslip-header .logo-box{width:70px;height:70px;border:1px dashed #94a3b8;display:flex;align-items:center;justify-content:center;font-size:10px;color:#64748b;overflow:hidden;flex-shrink:0;}
.payslip-header .logo-box img{max-width:100%;max-height:100%;}
.payslip-header .title-box{text-align:center;flex:1;min-width:200px;}
.payslip-header .title-box h2{color:#1e3a8a;font-size:16px;margin:0;}
.payslip-header .title-box h3{font-size:14px;margin:4px 0;}
.payslip-header .title-box .meta{font-size:11px;color:#475569;}
.payslip-section-title{background:#1e3a8a;color:#fff;padding:4px 10px;font-size:12px;font-weight:700;margin:8px 0 6px;border-radius:4px;}
.payslip-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px 12px;font-size:11px;margin-bottom:6px;}
.payslip-info-grid .item{border-bottom:1px dotted #cbd5e1;padding:2px 0;}
.payslip-info-grid .item b{color:#1e3a8a;}
.payslip-tables{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.payslip-tables table{width:100%;border-collapse:collapse;font-size:11px;}
.payslip-tables th,.payslip-tables td{border:1px solid #64748b;padding:3px 6px;text-align:right;}
.payslip-tables th{background:#e2e8f0;font-weight:700;}
.payslip-tables td.money-cell{font-weight:700;color:#1e3a8a;}
.payslip-summary{margin-top:10px;border:2px solid #1e3a8a;padding:8px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center;font-size:12px;}
.payslip-summary .box{padding:4px;}
.payslip-summary .box .lbl{font-size:10px;color:#475569;}
.payslip-summary .box .val{font-size:13px;font-weight:700;color:#1e3a8a;line-height:1.4;}
.payslip-summary .box .val .unit{font-size:9px;color:#64748b;display:block;}
.payslip-net-words{margin-top:8px;padding:6px;background:#f1f5f9;border-radius:4px;font-size:11px;text-align:center;}
.payslip-signatures{margin-top:16px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:center;font-size:11px;}
.payslip-signatures .sig{border-top:1px solid #64748b;padding-top:4px;}
.contract-paper{border:2px solid #1e3a8a;padding:16px;font-family:'Vazirmatn',Tahoma,sans-serif;direction:rtl;line-height:1.9;}
.contract-paper h1{text-align:center;font-size:17px;color:#1e3a8a;border-bottom:2px solid #1e3a8a;padding-bottom:8px;margin-bottom:8px;}
.contract-paper h2{text-align:center;font-size:14px;color:#1e3a8a;margin:6px 0 10px;}
.contract-paper .contract-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:11px;margin-bottom:12px;padding-bottom:6px;border-bottom:1px dashed #94a3b8;}
.contract-paper .contract-section{margin-bottom:12px;}
.contract-paper .contract-section h3{font-size:13px;color:#1e3a8a;background:#e2e8f0;padding:5px 10px;margin-bottom:8px;border-radius:4px;font-weight:700;}
.contract-paper .contract-section p{text-align:justify;margin-bottom:6px;font-size:11.5px;text-indent:20px;}
.contract-paper table.contract-info{width:100%;border-collapse:collapse;font-size:11px;margin-bottom:10px;}
.contract-paper table.contract-info td{border:1px solid #64748b;padding:4px 8px;}
.contract-paper table.contract-info td:first-child,.contract-paper table.contract-info td:nth-child(3){background:#f1f5f9;font-weight:700;width:22%;}
.contract-paper .contract-signatures{margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:20px;text-align:center;font-size:12px;}
.contract-paper .contract-signatures .sig-box{border-top:1px solid #64748b;padding-top:8px;min-height:70px;}
.contract-paper .contract-signatures .sig-box .sig-title{font-weight:700;margin-bottom:6px;}
.contract-paper .contract-signatures .sig-box .sig-space{height:50px;}
@media (min-width:640px){.form-grid{grid-template-columns:repeat(2,1fr);}.summary-grid{grid-template-columns:repeat(3,1fr);}html{font-size:16px;}}
@media (min-width:900px){header.app-header{padding:16px 24px;}header.app-header h1{font-size:20px;}main{padding:20px;}.card{padding:20px;}.form-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}.card h2{font-size:18px;}.card h3{font-size:15px;}}
/* ============================================================
   ۹) واکنش‌گرایی (موبایل/تبلت) — نوار پایین به‌جای تب‌ها، فونت و چیدمان فشرده‌تر
   ============================================================ */
@media (max-width:899px){
.hamburger{display:flex;}
header.app-header{padding:12px 14px;position:sticky;top:0;z-index:300;}
header.app-header h1{font-size:14px;}
header.app-header h1 .title-text{font-size:13px;}
nav.tabs{
  display:none;
  position:fixed;
  top:60px;
  right:0;left:0;
  bottom:0;
  flex-direction:column;
  padding:12px 10px calc(80px + env(safe-area-inset-bottom));
  background:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.15);
  z-index:250;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  max-height:none;
}
nav.tabs.open{display:flex;}
nav.tabs button{
  padding:14px 16px;
  border-bottom:1px solid #f1f5f9;
  border-radius:10px;
  text-align:right;
  justify-content:flex-start;
  font-size:14px;
  min-height:48px;
  flex-shrink:0;
}
nav.tabs button:last-child{border-bottom:none;margin-bottom:20px;}
nav.tabs button.active{background:rgba(30,58,138,.1);border-bottom-color:transparent;color:var(--primary);}
.mobile-nav{
  display:block;
  position:fixed;
  bottom:0;right:0;left:0;
  background:#fff;
  border-top:1px solid var(--border);
  z-index:300;
  padding:6px 0 calc(6px + env(safe-area-inset-bottom));
  box-shadow:0 -4px 16px rgba(0,0,0,.08);
}
.mobile-nav-inner{
  display:flex;
  flex-wrap:nowrap;
  justify-content:flex-start;
  align-items:stretch;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
  gap:2px;
  padding:0 6px;
  max-width:100%;
}
.mobile-nav-inner::-webkit-scrollbar{display:none;}
.mobile-nav button{
  background:none;border:none;
  flex:0 0 auto;
  min-width:68px;
  width:auto;
  padding:8px 10px;
  font-family:inherit;font-size:11px;color:var(--muted);font-weight:600;
  cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:4px;min-height:56px;border-radius:10px;
  box-sizing:border-box;
  scroll-snap-align:start;
  white-space:nowrap;
}
.mobile-nav button .nav-icon{font-size:22px;line-height:1;}
.mobile-nav button.active{color:var(--primary);background:rgba(30,58,138,.1);font-weight:700;}
main{padding:12px;padding-bottom:calc(84px + env(safe-area-inset-bottom));}
.card{padding:14px;border-radius:12px;margin-bottom:12px;}
.form-grid{grid-template-columns:1fr;gap:10px;}
.btn-row{flex-direction:column;}
.btn-row .btn{width:100%;min-width:0;}
.table-wrap{margin:0 -4px;border-radius:8px;}
table.data-table{font-size:12px;min-width:520px;}
.summary-grid{grid-template-columns:1fr 1fr;gap:8px;}
.wizard-steps{padding:0 2px;}
.wizard-step .label{font-size:10px;}
.toast{bottom:calc(80px + env(safe-area-inset-bottom));max-width:92vw;}
.modal{max-height:85vh;padding:16px;}
}
@media (max-width:480px){
html{font-size:14px;}
.card{padding:12px;border-radius:12px;}
.card h2{font-size:15px;}
.card h3{font-size:13px;}
.wizard-step .label{font-size:9px;}
.wizard-step .circle{width:28px;height:28px;font-size:11px;}
.payslip-info-grid{grid-template-columns:repeat(2,1fr);}
.payslip-tables{grid-template-columns:1fr;}
.payslip-summary{grid-template-columns:1fr;gap:4px;}
.payslip-summary .box{border-bottom:1px solid #cbd5e1;padding:6px 0;}
.payslip-summary .box:last-child{border-bottom:none;}
.payslip-signatures{grid-template-columns:1fr;}
.tax-row{grid-template-columns:1fr 1fr;gap:6px;}
.tax-row .tax-remove{grid-column:span 2;width:100%;height:34px;}
.contract-paper .contract-signatures{grid-template-columns:1fr;}
.money-input-wrap input{font-size:16px;} /* جلوگیری از زوم iOS */
.form-group input,.form-group select,.form-group textarea{font-size:16px;}
header.app-header .badge{font-size:11px;padding:3px 8px;}
.mobile-nav button{font-size:11px;padding:8px 10px;min-height:56px;min-width:64px;flex:0 0 auto;width:auto;}
.mobile-nav button .nav-icon{font-size:22px;}
main{padding-bottom:calc(84px + env(safe-area-inset-bottom));}
.toast{bottom:calc(76px + env(safe-area-inset-bottom));}
}

/* ============================================================
   پرسنل یکپارچه + دکمه شناور ثبت
   ============================================================ */
.staff-subnav{
  display:flex;flex-wrap:wrap;gap:6px;
  border-bottom:1px solid var(--border);
  padding-bottom:10px;
}
.staff-tab{
  background:#f1f5f9;border:1px solid var(--border);
  border-radius:999px;padding:8px 14px;
  font-family:inherit;font-size:13px;font-weight:600;
  color:var(--muted);cursor:pointer;
  transition:all .15s;
}
.staff-tab.active{
  background:var(--primary);color:#fff;border-color:var(--primary);
}
.staff-panel{animation:fadeIn .2s ease;}
.fab-add-emp{
  position:fixed;
  left:16px;
  bottom:calc(78px + env(safe-area-inset-bottom));
  z-index:280;
  width:56px;height:56px;
  border-radius:50%;
  border:none;
  background:var(--primary);
  color:#fff;
  box-shadow:0 6px 20px rgba(30,58,138,.35);
  cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:0;
  font-family:inherit;
  transition:transform .15s, box-shadow .15s;
}
.fab-add-emp:hover,.fab-add-emp:active{transform:scale(1.06);box-shadow:0 8px 24px rgba(30,58,138,.45);}
.fab-add-emp .fab-icon{font-size:28px;line-height:1;font-weight:300;margin-top:-2px;}
.fab-add-emp .fab-label{font-size:9px;font-weight:700;letter-spacing:0;opacity:.95;}
@media (min-width:769px){
  .fab-add-emp{bottom:24px;left:24px;}
  .mobile-nav{display:none!important;}
}
@media print{
  .fab-add-emp,.staff-subnav{display:none!important;}
}

/* نشان‌ها و کشویی کارکرد در فهرست پرسنل */
.badge-stamp{
  display:inline-block;padding:3px 8px;border-radius:4px;
  background:#fef2f2;color:#b91c1c;border:1px dashed #ef4444;
  font-size:11px;font-weight:700;white-space:nowrap;
  transform:rotate(-2deg);
}
.badge-ok{
  display:inline-block;padding:3px 8px;border-radius:4px;
  background:#ecfdf5;color:#047857;border:1px solid #6ee7b7;
  font-size:11px;font-weight:600;white-space:nowrap;
}
.badge-att{
  display:inline-block;padding:3px 8px;border-radius:4px;
  background:#eff6ff;color:#1d4ed8;font-size:11px;font-weight:600;
}
.badge-muted{color:#94a3b8;font-size:11px;}
.btn-expand{
  background:#e2e8f0;border:none;border-radius:6px;
  width:28px;height:28px;cursor:pointer;font-size:14px;line-height:1;
  color:#334155;padding:0;
}
.btn-expand:hover{background:#cbd5e1;}
.emp-detail-row td{background:#f8fafc;padding:0!important;}
.emp-att-box{padding:12px 14px;border-right:4px solid var(--primary);margin:4px 0;}
.emp-att-head{font-weight:700;color:var(--primary);margin-bottom:8px;font-size:13px;}
.emp-att-table{min-width:480px;font-size:12px;}
.emp-main-row:hover{background:#f1f5f9;}
td.actions{
  display:flex;flex-wrap:nowrap;gap:4px;align-items:center;
  white-space:nowrap;vertical-align:middle;
}
td.actions .btn-sm{padding:4px 8px;font-size:11px;line-height:1.2;white-space:nowrap;}
tr.emp-main-row td{padding:6px 8px;vertical-align:middle;font-size:12px;}
.btn-expand{width:24px;height:24px;font-size:12px;flex-shrink:0;}

/* منوی کشویی عملیات در فهرست پرسنل */
.act-dd{position:relative;display:inline-block;}
.act-dd-toggle{min-width:78px;}
.act-dd-toggle.open{background:var(--primary);color:#fff;border-color:var(--primary);}
.act-dd-menu{
  position:fixed;z-index:5000;
  min-width:148px;background:#fff;border:1px solid var(--border);
  border-radius:10px;box-shadow:0 10px 28px rgba(0,0,0,.18);
  padding:6px;display:flex;flex-direction:column;gap:2px;
}
.act-dd-menu[hidden]{display:none!important;}
.act-dd-menu button{
  background:none;border:none;text-align:right;padding:8px 10px;
  font-family:inherit;font-size:12px;font-weight:600;color:#334155;
  border-radius:8px;cursor:pointer;white-space:nowrap;
}
.act-dd-menu button:hover{background:#f1f5f9;color:var(--primary);}
.act-dd-menu button.danger{color:#b91c1c;}
.act-dd-menu button.danger:hover{background:#fef2f2;}
td.actions{overflow:visible;}
table.data-table{overflow:visible;}
.table-wrap{overflow:auto;}

/* ورود و اطلاعیه */
.login-gate,.notice-gate{
  position:fixed;inset:0;z-index:10000;
  background:rgba(15,23,42,.72);
  display:flex;align-items:center;justify-content:center;
  padding:16px;
  backdrop-filter:blur(4px);
}
.login-card,.notice-card{
  background:#fff;border-radius:16px;padding:24px 22px;
  width:100%;max-width:420px;box-shadow:0 20px 50px rgba(0,0,0,.25);
  direction:rtl;
}
.login-logo{font-size:40px;text-align:center;margin-bottom:6px;}
.login-card h1{text-align:center;font-size:18px;color:var(--primary);margin:0 0 4px;}
.login-sub{text-align:center;color:var(--muted);font-size:12px;margin:0 0 16px;}
.login-error{background:#fef2f2;color:#b91c1c;padding:8px 10px;border-radius:8px;font-size:12px;margin-bottom:10px;font-weight:600;}
.login-foot{text-align:center;font-size:11px;color:#64748b;margin:14px 0 0;}
.notice-card h2{margin:0 0 12px;color:var(--primary);font-size:17px;text-align:center;}
.notice-body{font-size:13px;line-height:1.9;color:#334155;margin-bottom:16px;}
.notice-body p{margin:0 0 10px;}
.notice-designer{margin-top:14px;padding-top:12px;border-top:1px dashed var(--border);text-align:center;color:#1e3a8a;}
body.login-locked header.app-header,
body.login-locked nav.tabs,
body.login-locked main,
body.login-locked .mobile-nav,
body.login-locked .fab-add-emp{pointer-events:none;filter:blur(2px);}

.xfer-list{max-height:280px;overflow:auto;border:1px solid var(--border);border-radius:10px;padding:8px;background:#f8fafc;}
.xfer-row{display:flex;align-items:flex-start;gap:10px;padding:8px;border-bottom:1px solid #e2e8f0;cursor:pointer;}
.xfer-row:last-child{border-bottom:none;}
.xfer-row input{margin-top:4px;}
.xfer-name{display:flex;flex-direction:column;gap:2px;font-size:13px;}
.xfer-name small{color:var(--muted);font-size:11px;}

.year-panel{
  margin-top:12px;padding:14px;border:1px solid var(--border);
  border-radius:12px;background:#f8fafc;animation:fadeIn .2s ease;
}
.year-panel h4{margin:0 0 10px;color:var(--primary);font-size:14px;}
.year-actions .btn.open{
  background:var(--primary);color:#fff;border-color:var(--primary);
}

.dash-sub{font-size:13px;color:var(--primary);margin:0 0 10px;font-weight:700;}
.dash-two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:700px){.dash-two-col{grid-template-columns:1fr;}}
.dash-bars{display:flex;flex-direction:column;gap:8px;}
.dash-bar-row{display:grid;grid-template-columns:110px 1fr 48px;gap:8px;align-items:center;font-size:12px;}
.dash-bar-label{color:#475569;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dash-bar-track{height:12px;background:#e2e8f0;border-radius:999px;overflow:hidden;}
.dash-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#3b82f6,#1d4ed8);min-width:0;}
.dash-bar-fill.ins{background:linear-gradient(90deg,#10b981,#047857);}
.dash-bar-fill.warn{background:linear-gradient(90deg,#f59e0b,#d97706);}
.dash-bar-fill.danger{background:linear-gradient(90deg,#ef4444,#b91c1c);}
.dash-bar-fill.purple{background:linear-gradient(90deg,#8b5cf6,#6d28d9);}
.dash-bar-val{text-align:left;font-weight:700;color:#0f172a;}
.dash-empty{color:#94a3b8;font-size:12px;padding:8px 0;}

/* فیلد الزامی و خطا */
.req-star{color:#dc2626;font-weight:800;margin-right:2px;}
input.field-error, select.field-error, textarea.field-error{
  border-color:#dc2626!important;
  background:#fef2f2!important;
  box-shadow:0 0 0 3px rgba(220,38,38,.15)!important;
}
.form-group:has(.field-error) label{color:#b91c1c;}

/* داشبورد جذاب‌تر */
#page-dashboard .card{
  border:none;
  box-shadow:0 8px 24px rgba(15,23,42,.06);
  background:linear-gradient(180deg,#ffffff 0%,#f8fafc 100%);
}
#page-dashboard h2{
  background:linear-gradient(90deg,#1e3a8a,#3b82f6);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  font-weight:800;
}
#page-dashboard .summary-card{
  border:1px solid #e2e8f0;
  border-radius:14px;
  padding:14px 12px;
  background:#fff;
  box-shadow:0 2px 8px rgba(15,23,42,.04);
  transition:transform .15s ease, box-shadow .15s ease;
  position:relative;
  overflow:hidden;
}
#page-dashboard .summary-card::before{
  content:'';
  position:absolute;top:0;right:0;left:0;height:3px;
  background:linear-gradient(90deg,#3b82f6,#8b5cf6);
}
#page-dashboard .summary-card:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(37,99,235,.12);
}
#page-dashboard .summary-card .label{color:#64748b;font-size:11px;font-weight:600;}
#page-dashboard .summary-card .value{font-size:16px;font-weight:800;color:#0f172a;margin-top:4px;}
#page-dashboard .dash-bar-track{background:#e2e8f0;height:14px;}
#page-dashboard .dash-bar-fill{box-shadow:0 0 8px rgba(59,130,246,.35);}
#dashYearLabel{
  display:inline-block;background:#eff6ff;color:#1d4ed8;
  padding:4px 12px;border-radius:999px;font-size:12px;font-weight:700;
}
#dashQuickActions .btn{border-radius:10px;font-weight:700;}

/* اطمینان از کلیک‌پذیری نوار پایین */
.mobile-nav, .mobile-nav-inner, .mobile-nav button{
  pointer-events:auto!important;
}
.mobile-nav{z-index:400!important;}
.act-dd-menu{z-index:350;}
body.login-locked .mobile-nav{pointer-events:none!important;}

/* نوار چاپ و اشتراک */
.print-share-bar{
  display:none;position:fixed;top:0;right:0;left:0;z-index:9000;
  background:linear-gradient(180deg,#1e3a8a,#1e40af);color:#fff;
  box-shadow:0 4px 20px rgba(0,0,0,.2);padding:10px 12px;
}
.print-share-inner{max-width:960px;margin:0 auto;}
.print-share-title{font-weight:800;font-size:14px;display:block;margin-bottom:8px;}
.print-share-actions{display:flex;flex-wrap:wrap;gap:6px;}
.print-share-actions .btn{border:none;}
.print-share-hint{margin:8px 0 0;font-size:11px;opacity:.9;line-height:1.5;}
body.print-preview-open .payslip-container,
body.print-preview-open .contract-container{
  display:block!important;margin-top:120px;padding:12px;background:#e2e8f0;
}
body.print-preview-open .payslip-container .payslip,
body.print-preview-open .contract-container .contract-paper{
  background:#fff;margin:0 auto 16px;box-shadow:0 4px 16px rgba(0,0,0,.1);
}
@media print{
  .print-share-bar,.fab-add-emp,#loginGate,#copyrightNotice{display:none!important;}
  body.print-preview-open .payslip-container,
  body.print-preview-open .contract-container{margin-top:0!important;padding:0!important;background:#fff!important;}
  body.print-preview-open .payslip,
  body.print-preview-open .contract-paper{box-shadow:none!important;}
}

.contract-paper.contract-v2{border:3px solid #1e3a8a;border-radius:6px;padding:18px 16px 14px;position:relative;background:#fff;box-shadow:0 0 0 1px #93c5fd inset;}
.contract-v2 .c-ornament.top,.contract-v2 .c-ornament.bottom{height:4px;border-radius:2px;background:linear-gradient(90deg,#1e3a8a,#3b82f6,#1e3a8a);margin:0 0 12px;}
.contract-v2 .c-ornament.bottom{margin:16px 0 8px;}
.contract-v2 .c-header{display:grid;grid-template-columns:1fr 1.6fr 1fr;gap:8px;align-items:start;margin-bottom:12px;}
.contract-v2 .c-header-center{text-align:center;}
.contract-v2 .c-kicker{font-size:11px;color:#64748b;margin-bottom:4px;}
.contract-v2 h1{font-size:18px!important;color:#1e3a8a!important;border:none!important;padding:0!important;margin:0 0 4px!important;}
.contract-v2 h2{font-size:14px!important;margin:0 0 4px!important;color:#1d4ed8!important;}
.contract-v2 .c-sub{font-size:10px;color:#64748b;margin:0;}
.contract-v2 .c-badge{display:inline-block;background:#1e3a8a;color:#fff;font-size:10px;font-weight:700;padding:4px 8px;border-radius:999px;margin:2px 0;}
.contract-v2 .c-badge.soft{background:#dbeafe;color:#1e3a8a;}
.contract-v2 .c-meta-box{border:1px solid #cbd5e1;border-radius:8px;padding:6px 8px;margin-bottom:6px;text-align:center;background:#f8fafc;}
.contract-v2 .c-meta-box span{display:block;font-size:10px;color:#64748b;}
.contract-v2 .c-meta-box b{font-size:12px;color:#0f172a;}
.contract-v2 .c-intro{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:8px 12px;font-size:11.5px;margin-bottom:12px;text-align:justify;line-height:1.8;}
.contract-v2 .contract-section h3{display:flex;align-items:center;gap:8px;background:linear-gradient(90deg,#1e3a8a,#2563eb)!important;color:#fff!important;border-radius:8px!important;padding:6px 10px!important;}
.contract-v2 .c-num{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;background:#fff;color:#1e3a8a;border-radius:50%;font-size:11px;font-weight:800;}
.contract-v2 table.contract-info td{padding:6px 8px!important;}
.contract-v2 .c-money{color:#1e3a8a;font-size:13px;}
.contract-v2 .c-article{margin-bottom:10px;padding:8px 10px;background:#f8fafc;border-right:3px solid #3b82f6;border-radius:0 8px 8px 0;}
.contract-v2 .c-article h3{background:transparent!important;color:#1e3a8a!important;padding:0!important;margin:0 0 6px!important;font-size:12.5px!important;display:block;}
.contract-v2 .c-article p{text-indent:0!important;margin:0 0 4px!important;font-size:11px!important;line-height:1.85;}
.contract-v2 .c-closing{margin:14px 0;padding:10px;border:1px dashed #94a3b8;border-radius:8px;font-size:11.5px;text-align:justify;background:#fffbeb;}
.contract-v2 .c-sigs-3{grid-template-columns:1fr 1fr 1fr!important;gap:12px!important;}
.contract-v2 .sig-box{border:1px solid #cbd5e1!important;border-radius:10px;padding:10px 8px!important;background:#f8fafc;border-top:none!important;min-height:90px!important;}
.contract-v2 .sig-title{color:#1e3a8a;font-size:12px;}
.contract-v2 .c-footer-note{text-align:center;font-size:9.5px;color:#94a3b8;margin-top:4px;}
@media(max-width:700px){.contract-v2 .c-header{grid-template-columns:1fr;text-align:center;}.contract-v2 .c-sigs-3{grid-template-columns:1fr!important;}}
@media print{.contract-v2{box-shadow:none!important;}}

details.att-block{border:1px solid #e2e8f0;border-radius:12px;margin:10px 0;background:#fff;overflow:hidden;}
details.att-block>summary{cursor:pointer;padding:12px 14px;font-weight:700;color:#1e3a8a;background:#f8fafc;list-style:none;user-select:none;}
details.att-block>summary::-webkit-details-marker{display:none;}
details.att-block>summary::after{content:'▾';float:left;opacity:.6;}
details.att-block[open]>summary::after{content:'▴';}
details.att-block[open]>summary{border-bottom:1px solid #e2e8f0;}
.att-block-body{padding:12px 14px 14px;}


/* چشم مخفی‌سازی اقلام مالی قرارداد */
.btn-eye{border:none;background:transparent;cursor:pointer;font-size:1em;padding:0 4px;vertical-align:middle;opacity:.85}
.btn-eye:hover{opacity:1}
.btn-eye.eye-hidden{opacity:1;filter:grayscale(.3)}
.fin-item label{display:flex;align-items:center;gap:6px;flex-wrap:wrap}

/* قرارداد فشرده برای ۱–۲ صفحه چاپ */
.contract-v2.c-compact-print .c-header{margin-bottom:6px!important}
.contract-v2 .c-compact{margin-bottom:6px!important}
.contract-v2 .c-compact h3{font-size:12px!important;padding:3px 8px!important;margin-bottom:4px!important}
.contract-v2 .c-compact .contract-info td{padding:2px 6px!important;font-size:10.5px!important}
.contract-v2 .c-fin-compact td{padding:2px 5px!important;font-size:10px!important}
.contract-v2 .c-fin-label{background:#f1f5f9;font-weight:700;white-space:nowrap}
.contract-v2 .c-fin-hl{background:#fef9c3}
.contract-v2 .c-articles .c-article{margin-bottom:4px}
.contract-v2 .c-articles .c-article h3{font-size:11.5px!important;margin:4px 0 2px!important}
.contract-v2 .c-articles .c-article p{font-size:10.5px!important;margin:0 0 3px!important;line-height:1.55!important;text-indent:12px}
.contract-v2 .c-closing{font-size:10.5px;margin:8px 0}
.contract-v2 .c-sigs-3{margin-top:12px!important;gap:10px!important}
.contract-v2 .c-sigs-3 .sig-space{height:36px!important}
.contract-v2 .c-footer-note{font-size:9.5px}
@media print{
  .contract-paper.contract-v2{padding:8mm 8mm 6mm!important;border-width:2px!important}
  .contract-v2 .c-header{margin-bottom:4px!important}
  .contract-v2 .c-body-section{page-break-inside:auto}
  .contract-v2 .c-articles .c-article{page-break-inside:avoid}
  .contract-v2 .contract-signatures{page-break-inside:avoid}
}
