:root{--sidebar-color:#0f172a;--sidebar-text:#ffffff;--sidebar-active:#0ea5a8;--sidebar-active-text:#ffffff;--sidebar-title-color:#ffffff;--sidebar-subtitle-color:rgba(255,255,255,.88);--sidebar-opacity:.88;--overlay-opacity:.42;
  --primary:#171717;--primary-soft:#f2eadf;--accent:#c69a68;--bg:#f6f2eb;--panel:#fff;--button-color:#171717;--button-text:#fff;--secondary-card:#171717;--secondary-card-text:#ffffff;
  --text:#171717;--muted:#6b7280;--border:#e5e7eb;--danger:#b42318;--success:#16794b;
  --shadow:0 10px 30px rgba(0,0,0,.07);--radius:18px;
}
*{box-sizing:border-box}body{margin:0;font-family:"Cairo",sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,var(--bg),#fff)}
.login-shell{width:min(900px,100%);display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:center}
.login-brand{text-align:center}.login-brand h1{font-size:42px;margin:16px 0 4px}.login-card{padding:30px}
.app{min-height:100vh;display:grid;grid-template-columns:280px 1fr}.sidebar{background:#111;color:#fff;padding:22px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:20}
.side-brand{display:flex;align-items:center;gap:12px;padding:6px 8px 24px;border-bottom:1px solid #2d2d2d}.side-brand strong{display:block}.side-brand span{display:block;font-size:12px;color:#aaa}
.sidebar nav{display:grid;gap:5px;padding-top:18px;overflow:auto}.sidebar nav button{border:0;background:transparent;color:#ddd;text-align:right;padding:12px 14px;border-radius:12px}.sidebar nav button:hover,.sidebar nav button.active{background:#fff;color:#111}.logout{margin-top:auto;background:#2b2b2b;color:#fff;border:1px solid #444;border-radius:12px;padding:12px}
.workspace{min-width:0}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:16px;padding:12px 28px;position:sticky;top:0;z-index:15}
.global-search-wrap{position:relative;flex:1}.global-search-wrap input{width:100%;max-width:720px}.search-results{position:absolute;top:52px;right:0;left:0;max-width:720px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:8px;z-index:30}.search-result{display:block;width:100%;border:0;background:#fff;text-align:right;padding:10px;border-radius:8px}.search-result:hover{background:#f5f5f5}
.user-chip{white-space:nowrap;font-size:13px;color:var(--muted)}.icon-btn{display:none;border:0;background:#eee;border-radius:10px;padding:8px 12px}
.container{padding:28px;max-width:1500px;margin:auto}.page{display:none}.page.active{display:block}
.panel{background:var(--panel);border:1px solid rgba(0,0,0,.04);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.page-head h1{margin:0;font-size:30px}.page-head p{margin:5px 0;color:var(--muted)}
.primary,.secondary,.back-btn{border:0;border-radius:999px;padding:11px 22px;font-weight:700;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.primary{background:var(--button-color);color:var(--button-text)}.secondary{background:color-mix(in srgb,var(--button-color) 15%,var(--secondary-card));color:var(--text)}.back-btn{background:var(--secondary-card);border:1px solid var(--border);margin-bottom:16px}.primary:hover,.secondary:hover,.back-btn:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(0,0,0,.10)}
input,select,textarea{width:100%;border:1px solid #d6d9dd;border-radius:12px;padding:11px 13px;background:#fff;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(198,154,104,.14)}
label{display:grid;gap:7px;font-weight:700;font-size:14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid .full{grid-column:1/-1}.form-row{display:flex;align-items:end;gap:14px;margin-bottom:18px}.form-row label{flex:1}
.hero{text-align:center;padding:58px 30px}.hero h1{font-size:42px;margin:15px 0 5px}.hero h3{margin:0;color:var(--muted)}.hero p{max-width:750px;margin:22px auto 0;color:var(--muted)}
.logo-placeholder{width:110px;height:70px;border:1px dashed #aaa;border-radius:14px;display:grid;place-items:center;margin:auto;color:#888}.logo-placeholder.small{width:48px;height:48px;margin:0;font-size:11px}.logo-placeholder.large{width:150px;height:92px}.brand-logo{width:110px;height:70px;object-fit:contain}.side-brand .brand-logo{width:48px;height:48px}.hero-logo{max-width:180px;max-height:110px;object-fit:contain}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:20px 0}.metric{background:var(--secondary-card);border-radius:16px;box-shadow:var(--shadow);padding:20px}.metric span{color:var(--muted);font-size:13px}.metric strong{display:block;font-size:26px;margin-top:6px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card-item{background:var(--secondary-card);border-radius:16px;box-shadow:var(--shadow);padding:20px;border:1px solid transparent}.card-item:hover{border-color:var(--accent)}.card-item h3{margin:0 0 8px}.card-item p{margin:5px 0;color:var(--muted)}.card-actions{display:flex;gap:8px;margin-top:14px}.card-actions button,.row-actions button{border:0;border-radius:999px;padding:8px 14px;font-weight:700;transition:transform .15s ease,opacity .15s ease}.card-actions button:hover,.row-actions button:hover{transform:translateY(-1px)}.edit{background:color-mix(in srgb,var(--button-color) 18%,var(--secondary-card));color:var(--text)}.delete{background:#fee4e2;color:var(--danger)}.open{background:color-mix(in srgb,var(--button-color) 12%,var(--secondary-card));color:var(--text);border-radius:999px;border:0;padding:8px 14px;font-weight:700}
.list{display:grid;gap:12px}.list-row{background:var(--secondary-card);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow);display:flex;justify-content:space-between;gap:16px;align-items:center}.list-row h3{margin:0 0 5px}.list-row p{margin:3px 0;color:var(--muted)}.row-actions{display:flex;gap:7px;flex-wrap:wrap}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.tabs button{border:0;background:var(--secondary-card);border-radius:999px;padding:9px 16px}.tabs button.active{background:var(--button-color);color:var(--button-text)}.toolbar{margin-bottom:18px}
.table-wrap{overflow:auto;padding:0}table{width:100%;border-collapse:collapse;min-width:950px}th,td{text-align:right;padding:14px;border-bottom:1px solid var(--border);white-space:nowrap}th{background:#fafafa}.badge{display:inline-block;padding:5px 9px;border-radius:999px;background:#eee;font-size:12px}.badge.late{background:#fee4e2;color:#9f1d16}.badge.paid{background:#dcfce7;color:#166534}.badge.today{background:#fef3c7;color:#92400e}.badge.upcoming{background:#e0f2fe;color:#075985}
.summary-list{display:grid;gap:10px}.summary-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border)}.muted{color:var(--muted)}.timeline{display:grid;gap:12px}.timeline-item{border-right:3px solid var(--accent);padding-right:12px}.timeline-item p{margin:2px 0;color:var(--muted);font-size:13px}
.file-header{margin-bottom:18px}.file-header h1{margin:0 0 8px}.file-layout{display:grid;grid-template-columns:310px 1fr;gap:18px;align-items:start}.sticky-summary{position:sticky;top:96px}.summary-stat{padding:12px 0;border-bottom:1px solid var(--border)}.summary-stat span{display:block;color:var(--muted);font-size:12px}.summary-stat strong{font-size:20px}.file-tabs{position:sticky;top:96px;z-index:8;padding:12px}.file-section{margin-bottom:16px}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.info-box{background:var(--secondary-card);border-radius:14px;padding:14px}.info-box span{display:block;color:var(--muted);font-size:12px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.48);display:grid;place-items:center;padding:20px;z-index:100}.modal-card{background:#fff;width:min(600px,100%);max-height:90vh;overflow:auto;border-radius:20px;padding:24px;position:relative}.modal-card.wide{width:min(900px,100%)}.modal-close{position:absolute;left:16px;top:16px;border:0;background:#eee;width:36px;height:36px;border-radius:50%;font-size:24px;line-height:1;display:flex;align-items:center;justify-content:center;padding:0;color:#222}.form-message{color:var(--danger)}
.report h2{margin-top:0}.report-table{width:100%;border-collapse:collapse}.report-table td,.report-table th{padding:10px;border:1px solid var(--border)}
@media(max-width:1100px){.cards-grid{grid-template-columns:repeat(2,1fr)}.metrics{grid-template-columns:repeat(2,1fr)}.file-layout{grid-template-columns:1fr}.sticky-summary{position:static}.file-tabs{top:76px}}
@media(max-width:820px){.app{grid-template-columns:1fr}.sidebar{position:fixed;right:0;transform:translateX(100%);transition:.2s;width:280px}.sidebar.open{transform:translateX(0)}.icon-btn{display:block}.container{padding:18px}.grid-2,.login-shell,.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.cards-grid{grid-template-columns:1fr}.topbar{padding:10px 14px}.user-chip{display:none}.hero h1{font-size:30px}.page-head{align-items:flex-start}.metrics{grid-template-columns:1fr 1fr}}
@media print{.sidebar,.topbar,.page-head button,.tabs{display:none!important}.workspace,.app{display:block!important}.page{display:none!important}#page-reports{display:block!important}.container{padding:0}.panel{box-shadow:none;border:0}}

.settings-actions{display:flex;justify-content:flex-start;gap:10px;align-items:center}
.settings-actions .primary,.settings-actions .delete{min-width:140px;padding:11px 22px;border-radius:999px;border:0;font-weight:700}
.text-open{border:0;background:transparent;color:var(--text);font-weight:800;padding:0;text-decoration:none}
.text-open:hover{text-decoration:underline}
.card-item.clickable{position:relative;padding-left:72px}
.card-item .open-left{position:absolute;left:20px;top:50%;transform:translateY(-50%);font-weight:800}

.receipt-actions{display:flex;gap:7px;align-items:center}
.receipt-preview{font-family:"Cairo",sans-serif;direction:rtl;color:#171717;background:#fff;padding:36px;max-width:820px;margin:auto}
.receipt-preview .receipt-head{text-align:center;border-bottom:2px solid #171717;padding-bottom:18px;margin-bottom:22px}
.receipt-preview .receipt-logo{max-height:90px;max-width:190px;object-fit:contain;margin-bottom:12px}
.receipt-preview .receipt-title{font-size:30px;margin:4px 0}
.receipt-preview .receipt-number{font-size:14px;color:#555}
.receipt-preview .receipt-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}
.receipt-preview .receipt-field{border:1px solid #ddd;border-radius:10px;padding:12px}
.receipt-preview .receipt-field span{display:block;font-size:12px;color:#666;margin-bottom:4px}
.receipt-preview .receipt-amount{font-size:28px;font-weight:800;text-align:center;border:2px solid #171717;padding:18px;border-radius:12px;margin:20px 0}
.receipt-preview .receipt-footer{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:55px;text-align:center}
.receipt-preview .signature-line{border-top:1px solid #333;padding-top:8px}

.contract-toolbar{display:grid;grid-template-columns:2fr 1fr;gap:12px}
.sub-head{margin-top:34px}
.contract-card{position:relative}
.contract-card .contract-number{font-size:13px;color:var(--muted);margin-bottom:8px}
.contract-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}
.contract-stat{background:var(--secondary-card);border-radius:14px;padding:10px}
.contract-stat span{display:block;font-size:11px;color:var(--muted)}
.contract-stat strong{display:block;margin-top:3px}
.contract-link{display:inline-flex;margin-top:5px}
.compact-modal{max-width:720px}
@media(max-width:760px){
  .contract-toolbar{grid-template-columns:1fr}
  .contract-stats{grid-template-columns:1fr}
}

button.edit,button.delete,button.open,.text-open{
  border-radius:999px;
  border:0;
  padding:8px 14px;
  font-weight:700;
}
.page-head button.primary{min-width:118px}

.payment-summary{
  background:var(--secondary-card);
  border:1px solid var(--border);
  border-radius:16px;
  padding:14px;
}
.partial-payment-note{
  color:var(--warning);
  font-size:13px;
  font-weight:700;
}

/* تحديث 4.6: البطاقات الثانوية */
.metrics,
.cards-grid,
.info-grid{
  align-items:start;
}

.metrics{
  grid-template-columns:repeat(auto-fit,minmax(175px,1fr));
}

.cards-grid{
  grid-template-columns:repeat(auto-fit,minmax(235px,1fr));
}

.info-grid{
  grid-template-columns:repeat(auto-fit,minmax(185px,1fr));
}

.metric,
.card-item,
.list-row,
.info-box,
.contract-stat{
  color:var(--secondary-card-text);
  height:auto;
  min-height:0;
  align-self:start;
  overflow-wrap:anywhere;
}

.metric{
  padding:16px 18px;
}

.metric span,
.card-item p,
.list-row p,
.info-box span,
.contract-stat span{
  color:color-mix(in srgb,var(--secondary-card-text) 72%,transparent);
}

.metric strong,
.card-item h3,
.list-row h3,
.info-box strong,
.contract-stat strong{
  color:var(--secondary-card-text);
}

.info-box{
  width:auto;
  padding:12px 14px;
}

.card-item{
  width:auto;
  padding:17px 18px;
}

.list-row{
  width:auto;
  padding:14px 16px;
}

.contract-stat{
  width:auto;
  padding:9px 11px;
}

/* الروابط والأزرار داخل البطاقة تظل واضحة */
.metric a,
.card-item a,
.list-row a,
.info-box a,
.contract-stat a{
  color:var(--secondary-card-text);
}

.card-item .edit,
.list-row .edit,
.info-box .edit{
  color:var(--secondary-card-text);
}

@media(max-width:820px){
  .metrics,
  .cards-grid,
  .info-grid{
    grid-template-columns:1fr;
  }
}


/* تحديث 4.7: تصحيح تباين النصوص داخل البطاقات والأزرار */

/* الشارات لا ترث لون البطاقة حتى لا تختفي الكتابة على الخلفية الفاتحة */
.badge{
  color:#333333;
}
.badge.late{color:#9f1d16}
.badge.paid{color:#166534}
.badge.today{color:#92400e}
.badge.upcoming{color:#075985}

/* أزرار الفتح والتعديل يكون لون نصها مناسبًا للون الأزرار المختار */
button.open,
button.edit,
.text-open,
.contract-link{
  background:var(--button-color);
  color:var(--button-text) !important;
  border-radius:999px;
  border:0;
  padding:8px 15px;
  font-weight:700;
  text-decoration:none;
}

/* زر الحذف يحتفظ بلونه التحذيري الواضح */
button.delete{
  background:#fee4e2;
  color:#9f1d16 !important;
}

/* أزرار التصفية غير النشطة تستخدم لون البطاقة ونص البطاقة */
.tabs button{
  background:var(--secondary-card);
  color:var(--secondary-card-text);
}
.tabs button.active{
  background:var(--button-color);
  color:var(--button-text);
}

/* منع قواعد لون البطاقة من تغيير نصوص الأزرار */
.card-item button,
.list-row button,
.info-box button,
.contract-stat button{
  opacity:1;
}

/* الروابط النصية العادية داخل البطاقة فقط */
.metric a:not(.open):not(.contract-link),
.card-item a:not(.open):not(.contract-link),
.list-row a:not(.open):not(.contract-link),
.info-box a:not(.open):not(.contract-link),
.contract-stat a:not(.open):not(.contract-link){
  color:var(--secondary-card-text);
}

/* زر فتح الملف المصغر يظهر كنص واضح داخل زر فعلي */
.open-left{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  margin-top:12px;
}


/* تحديث 4.8: تباين تلقائي شامل ورسائل محايدة */
:root{
  --danger-text:#9f1d16;
}

/* كل الأزرار الأساسية تعتمد لون النص المحسوب آليًا */
button.primary,
button.open,
button.edit,
button.secondary,
button.back-btn,
.text-open,
.contract-link,
.tabs button.active,
.page-head button,
.card-actions button:not(.delete),
.row-actions button:not(.delete){
  color:var(--button-text) !important;
}

/* الأزرار غير النشطة داخل التبويبات تعتمد لون البطاقة */
.tabs button:not(.active){
  color:var(--secondary-card-text) !important;
  background:var(--secondary-card);
}

/* الأزرار داخل الجداول والبطاقات */
table button.primary,
table button.open,
table button.edit,
table button.secondary{
  color:var(--button-text) !important;
}

/* منع أي قاعدة وراثة من تغيير النص */
.card-item button,
.list-row button,
.info-box button,
.contract-stat button,
.metric button{
  color:var(--button-text) !important;
}

/* الحذف استثناء تحذيري */
button.delete,
.card-item button.delete,
.list-row button.delete,
.info-box button.delete{
  color:var(--danger-text) !important;
  background:#fee4e2 !important;
}

/* تحسين النوافذ المنبثقة */
.modal-card{
  border-radius:24px;
  box-shadow:0 24px 70px rgba(0,0,0,.24);
}
.modal-card h2{
  margin:0 0 18px;
  font-size:24px;
  line-height:1.5;
}
.modal-close{
  width:42px;
  height:42px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  padding:0;
  font-size:26px;
  color:#171717 !important;
  background:#f0f0f0 !important;
}
.modal-card .primary.full{
  min-height:48px;
  font-size:15px;
}

/* الحقول المعطلة في الإعدادات */
input:disabled{
  opacity:.72;
  cursor:not-allowed;
}


/* الإصدار 5.0: معاينة سند القبض دون تخزين ملف PDF */
.receipt-view-card{
  max-width:850px;
}
.receipt-preview-actions{
  display:flex;
  justify-content:center;
  margin-top:18px;
}
.receipt-preview-actions .primary{
  min-width:210px;
}
.receipt-action-group{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}
.receipt-live-preview{
  direction:rtl;
  background:#fff;
  color:#171717;
  border-radius:18px;
  padding:28px;
  border:1px solid #e3e3e3;
}
.receipt-live-preview .receipt-head{
  text-align:center;
  border-bottom:2px solid #171717;
  padding-bottom:16px;
  margin-bottom:20px;
}
.receipt-live-preview .receipt-logo{
  max-height:82px;
  max-width:180px;
  object-fit:contain;
  margin-bottom:10px;
}
.receipt-live-preview .receipt-title{
  margin:6px 0;
  font-size:28px;
}
.receipt-live-preview .receipt-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.receipt-live-preview .receipt-field{
  border:1px solid #ddd;
  border-radius:12px;
  padding:11px 13px;
}
.receipt-live-preview .receipt-field span{
  display:block;
  font-size:12px;
  color:#666;
  margin-bottom:4px;
}
.receipt-live-preview .receipt-amount{
  text-align:center;
  border:2px solid #171717;
  border-radius:12px;
  padding:16px;
  margin:18px 0;
  font-weight:800;
  font-size:25px;
}
.receipt-live-preview .receipt-footer{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:50px;
  margin-top:45px;
  text-align:center;
}
.receipt-live-preview .signature-line{
  border-top:1px solid #333;
  padding-top:8px;
}
@media(max-width:680px){
  .receipt-live-preview .receipt-grid{grid-template-columns:1fr}
}


/* الإصدار 5.1: عقد الدائن والنصوص القابلة للتعديل */
.settings-section-title{
  border-bottom:1px solid var(--border);
  padding:8px 0 12px;
  margin:8px 0 4px;
}
.settings-section-title h2,
.settings-section-title h3{
  margin:0 0 4px;
}
.settings-section-title p{
  margin:0;
  color:var(--muted);
  font-size:13px;
}

/* بطاقة عقد الدائن: النص الأساسي أسود، ورقم العقد أبيض */
.contract-card,
.contract-card h3,
.contract-card p,
.contract-card .contract-stat strong,
.contract-card .contract-stat span{
  color:#171717 !important;
}
.contract-card .contract-number{
  color:#ffffff !important;
  font-weight:700;
}
.contract-card .badge{
  color:#171717 !important;
}


/* الإصدار 6.0: قائمة جانبية مخفية ومنسدلة */
.sidebar-toggle{
  position:relative;
  z-index:1202;
  width:46px;
  height:46px;
  border:0;
  border-radius:14px;
  background:var(--button-color);
  color:var(--button-text);
  font-size:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 8px 22px rgba(0,0,0,.14);
}

.sidebar{
  position:fixed !important;
  top:18px;
  right:18px;
  bottom:18px;
  width:min(320px,calc(100vw - 36px));
  height:auto !important;
  z-index:1201;
  transform:translateX(calc(100% + 32px));
  transition:transform .26s ease,opacity .26s ease;
  opacity:0;
  pointer-events:none;
  overflow-y:auto;
  padding:74px 18px 20px !important;
  border-radius:28px;
  background:color-mix(in srgb,var(--sidebar-color) calc(var(--sidebar-opacity) * 100%),transparent) !important;
  color:var(--sidebar-text) !important;
  backdrop-filter:blur(18px) saturate(135%);
  -webkit-backdrop-filter:blur(18px) saturate(135%);
  box-shadow:0 26px 70px rgba(0,0,0,.28);
  border:1px solid rgba(255,255,255,.14);
}

body.sidebar-open .sidebar{
  transform:translateX(0);
  opacity:1;
  pointer-events:auto;
}

.sidebar-overlay{
  position:fixed;
  inset:0;
  z-index:1200;
  background:rgba(0,0,0,var(--overlay-opacity));
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  opacity:0;
  pointer-events:none;
  transition:opacity .24s ease;
}

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

.sidebar-close{
  position:absolute;
  top:16px;
  left:16px;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.16);
  color:var(--sidebar-text);
  font-size:25px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}

.sidebar button[data-page],
.sidebar .logout{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  margin:5px 0;
  padding:12px 15px !important;
  border-radius:16px !important;
  background:transparent !important;
  color:var(--sidebar-text) !important;
  border:0 !important;
  text-align:right;
  font-weight:700;
  transition:background .18s ease,transform .18s ease;
}

.sidebar button[data-page]:hover,
.sidebar .logout:hover{
  background:rgba(255,255,255,.10) !important;
  transform:translateX(-2px);
}

.sidebar button[data-page].active{
  background:var(--sidebar-active) !important;
  color:var(--sidebar-active-text) !important;
  box-shadow:0 8px 18px rgba(0,0,0,.15);
}

/* منع تمرير الصفحة عند فتح القائمة */
body.sidebar-open{
  overflow:hidden;
}

@media(max-width:700px){
  .sidebar{
    top:10px;
    right:10px;
    bottom:10px;
    width:calc(100vw - 20px);
    border-radius:24px;
  }
  .sidebar-toggle{
    width:42px;
    height:42px;
  }
}


/* الإصدار 6.1: إصلاح عرض الصفحات بعد تحويل القائمة إلى قائمة منسدلة */
.app{
  display:block !important;
  min-height:100vh;
}

.workspace{
  width:100% !important;
  min-width:0;
  margin:0 !important;
}

.container{
  width:100%;
  max-width:1500px;
  margin-left:auto;
  margin-right:auto;
}

/* القائمة المنسدلة فوق الصفحة ولا تؤثر في عرض المحتوى */
.sidebar{
  grid-column:auto !important;
}

/* بطاقة عقد الدائن: جميع النصوص باللون الأبيض */
.contract-card,
.contract-card h3,
.contract-card p,
.contract-card strong,
.contract-card span,
.contract-card .contract-number,
.contract-card .contract-stat strong,
.contract-card .contract-stat span{
  color:#ffffff !important;
}


/* الإصدار 6.2: المستخدمون والأدوار */
.role-help h2,.role-matrix h2{margin-top:0}
.role-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:12px;
}
.role-grid article{
  background:var(--secondary-card);
  color:var(--secondary-card-text);
  border-radius:16px;
  padding:14px 16px;
  min-height:92px;
}
.role-grid article strong{display:block;margin-bottom:7px}
.role-grid article span{font-size:13px;opacity:.78;line-height:1.6}
.user-role-card{
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(190px,260px) auto;
  gap:14px;
  align-items:center;
}
.user-role-card .user-meta p{margin:4px 0}
.user-role-card select{width:100%}
.current-user-badge{
  display:inline-flex;
  border-radius:999px;
  padding:4px 9px;
  background:color-mix(in srgb,var(--button-color) 18%,transparent);
  font-size:12px;
  font-weight:700;
}

/* إخفاء صفحات غير مصرح بها من القائمة */
.nav-role-hidden{display:none !important}

/* الرئيس التنفيذي: تظهر له صفحة المستخدمين والإعدادات، مع إخفاء الحذف التشغيلي */
body.role-ceo .page:not(#page-users):not(#page-settings) .delete{
  display:none !important;
}

/* مسؤول المتابعة: صلاحيات تشغيلية واسعة، دون المستخدمين والإعدادات */
body.role-follow_up_officer #nav-text-users,
body.role-follow_up_officer #nav-text-settings{
  display:none !important;
}

/* المحامي: يرى ملفات المدينين ويفتحها ويعمل على الجانب القانوني */
body.role-lawyer #nav-text-dashboard,
body.role-lawyer #nav-text-creditor-contracts,
body.role-lawyer #nav-text-installments,
body.role-lawyer #nav-text-receipts,
body.role-lawyer #nav-text-finance,
body.role-lawyer #nav-text-users,
body.role-lawyer #nav-text-settings{
  display:none !important;
}

@media(max-width:760px){
  .user-role-card{grid-template-columns:1fr}
}


/* الإصدار 6.3: المالية والمحاسب المالي */
.finance-positive{font-weight:800}
.finance-warning{font-weight:800}
body.role-financial_accountant #nav-text-users,
body.role-financial_accountant #nav-text-settings,
body.role-financial_accountant #nav-text-debtors,
body.role-financial_accountant #nav-text-documents,
body.role-financial_accountant #nav-text-tasks{
  display:none !important;
}


/* الإصدار 6.4: توسيع صلاحيات الفريق التشغيلي */
body.role-deputy_manager #nav-text-users,
body.role-deputy_manager #nav-text-settings,
body.role-follow_up_officer #nav-text-users,
body.role-follow_up_officer #nav-text-settings{
  display:none !important;
}

/* السماح للمحامي بفتح ملفات المدينين */
body.role-lawyer .open,
body.role-lawyer .text-open,
body.role-lawyer .contract-link{
  display:inline-flex !important;
}


/* الإصدار 6.5: إخفاء التطبيق نهائيًا عند تسجيل الخروج */
#app[aria-hidden="true"]{
  display:none !important;
}
#login-screen[aria-hidden="false"]{
  display:grid !important;
}

/* صفحة المالية لا تظهر إلا للأدوار المخولة */
body.role-deputy_manager #nav-text-finance,
body.role-follow_up_officer #nav-text-finance,
body.role-lawyer #nav-text-finance{
  display:none !important;
}


/* الإصدار 6.6: إدارة خيارات القوائم المنسدلة */
.lookup-settings{
  display:grid;
  gap:14px;
}
.lookup-options-editor{
  display:grid;
  gap:10px;
}
.lookup-option-row{
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(150px,.8fr) 90px auto;
  gap:10px;
  align-items:end;
  padding:12px;
  border:1px solid var(--border);
  border-radius:14px;
  background:color-mix(in srgb,var(--panel-color) 92%,#000 8%);
}
.lookup-option-row label{
  margin:0;
}
.lookup-option-row .lookup-delete{
  align-self:end;
}
.lookup-option-row .lookup-code{
  direction:ltr;
  text-align:left;
}
.lookup-empty{
  padding:18px;
  text-align:center;
  border:1px dashed var(--border);
  border-radius:14px;
  color:var(--muted);
}
@media(max-width:760px){
  .lookup-option-row{
    grid-template-columns:1fr;
  }
}


/* الإصدار 6.7: إصلاح محرر القوائم المنسدلة */
.lookup-option-row input{
  min-height:44px;
}
#lookup-category-select{
  min-height:46px;
  cursor:pointer;
}
#add-lookup-option{
  min-height:48px;
}


/* الإصدار 6.8: إظهار اللون المختار داخل حقول الألوان */
input[type="color"]{
  -webkit-appearance:none;
  appearance:none;
  width:100%;
  min-height:48px;
  padding:4px;
  border:1px solid var(--border);
  border-radius:12px;
  background:transparent;
  cursor:pointer;
  overflow:hidden;
}

input[type="color"]::-webkit-color-swatch-wrapper{
  padding:0;
  border-radius:9px;
}

input[type="color"]::-webkit-color-swatch{
  border:none;
  border-radius:9px;
}

input[type="color"]::-moz-color-swatch{
  border:none;
  border-radius:9px;
}

/* منع قواعد الحقول العامة من تغطية مستطيل اللون */
.form-grid input[type="color"],
.settings-section-title + label input[type="color"],
#settings-form input[type="color"]{
  background:transparent !important;
  box-shadow:none !important;
}

/* لون النص التلقائي المعطل يبقى ظاهرًا بدل أن يبدو أبيض */
input[type="color"]:disabled{
  opacity:1;
  filter:none;
  cursor:not-allowed;
}


/* الإصدار 6.9: تحسين وضوح عنوان القائمة والعنوان الفرعي */
.sidebar-brand-title,
#app-system-title{
  color:var(--sidebar-title-color) !important;
  opacity:1 !important;
  font-weight:800;
}

.sidebar-brand-subtitle,
#app-system-subtitle{
  color:var(--sidebar-subtitle-color) !important;
  opacity:1 !important;
  font-weight:600;
}

.checkbox-label{
  display:flex !important;
  align-items:center;
  gap:10px;
}

.checkbox-label input[type="checkbox"]{
  width:20px;
  height:20px;
  margin:0;
}

#setting-sidebar-title-color:disabled,
#setting-sidebar-subtitle-color:disabled{
  opacity:1;
}


/* الإصدار 6.12: توحيد أزرار الإجراءات وإزالة ازدواج زر القائمة */
table td:last-child{
  min-width:190px;
}

table td:last-child > button,
table .receipt-actions > button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:160px;
  min-height:48px;
  padding:10px 18px;
  border-radius:999px;
  white-space:nowrap;
  line-height:1.2;
  box-sizing:border-box;
}

#installments-table td:last-child > button,
#installments-table .receipt-actions > button{
  width:160px;
}

.sidebar-toggle{
  flex:0 0 auto;
}

@media(max-width:820px){
  .icon-btn{display:none !important;}
}


/* الإصدار 6.15: بطاقات المدينين الثابتة وزر الفتح الانسيابي */
#debtors-list.cards-grid{
  align-items:stretch;
}

.debtor-card{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  min-height:220px;
  height:220px;
  overflow:hidden;
  padding:28px 22px 22px;
  transition:transform .28s ease, box-shadow .28s ease, filter .28s ease;
}

.debtor-card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 42px rgba(0,0,0,.14);
  filter:saturate(1.04);
}

.debtor-card-content{
  display:flex;
  flex-direction:column;
  gap:12px;
  height:100%;
  padding-top:22px;
}

.debtor-card h3{
  margin:0;
  min-height:3.1em;
  line-height:1.55;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  text-overflow:ellipsis;
}

.debtor-card p{
  margin:0;
  line-height:1.65;
}

.debtor-card-open{
  position:absolute;
  top:16px;
  left:16px;
  z-index:2;
  width:52px;
  height:52px;
  min-width:52px;
  min-height:52px;
  padding:0;
  border:0;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.92);
  color:#1b1b1b !important;
  font-size:30px;
  font-weight:400;
  line-height:1;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
  opacity:0;
  transform:translate(-8px,8px) scale(.88);
  pointer-events:none;
  transition:opacity .25s ease, transform .25s ease, background .2s ease;
}

.debtor-card:hover .debtor-card-open,
.debtor-card:focus-within .debtor-card-open{
  opacity:1;
  transform:translate(0,0) scale(1);
  pointer-events:auto;
}

.debtor-card-open:hover{
  background:#ffffff;
  transform:scale(1.06) !important;
}

@media(max-width:820px), (hover:none){
  .debtor-card{
    height:210px;
    min-height:210px;
  }

  .debtor-card-open{
    opacity:1;
    transform:none;
    pointer-events:auto;
    width:46px;
    height:46px;
    min-width:46px;
    min-height:46px;
    font-size:27px;
  }
}


/* الإصدار 6.16: عرض المدينين والدائنين كقوائم */
.entity-list{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.entity-list-row{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  width:100%;
  min-height:108px;
  padding:22px 26px;
  border-radius:24px;
  background:var(--secondary-card,#176f72);
  color:#fff;
  box-sizing:border-box;
  overflow:hidden;
  transition:transform .22s ease, box-shadow .22s ease, filter .22s ease;
}

.entity-list-row:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(0,0,0,.12);
  filter:saturate(1.03);
}

.entity-list-main{
  flex:1 1 auto;
  min-width:0;
}

.entity-list-main h3{
  margin:0 0 8px;
  color:#fff;
  font-size:1.18rem;
  line-height:1.55;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.entity-list-main p{
  margin:3px 0;
  color:rgba(255,255,255,.84);
  line-height:1.6;
}

.entity-list-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex:0 0 auto;
}

.entity-list-actions button{
  border-radius:999px;
  min-height:42px;
  padding:9px 18px;
}

.debtor-list-row{
  padding-left:82px;
}

.debtor-list-open{
  position:absolute;
  left:24px;
  top:50%;
  transform:translateY(-50%);
  width:auto;
  min-width:0;
  height:auto;
  min-height:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent !important;
  color:#fff !important;
  box-shadow:none !important;
  font-size:34px;
  font-weight:300;
  line-height:1;
  opacity:.72;
  transition:opacity .2s ease, transform .2s ease;
}

.debtor-list-row:hover .debtor-list-open,
.debtor-list-open:focus-visible{
  opacity:1;
  transform:translateY(-50%) translate(3px,-3px);
}

@media(max-width:720px){
  .entity-list-row{
    align-items:flex-start;
    min-height:unset;
    padding:18px 18px;
    border-radius:20px;
  }

  .creditor-list-row{
    flex-direction:column;
  }

  .entity-list-actions{
    width:100%;
    justify-content:flex-start;
  }

  .debtor-list-row{
    padding-left:66px;
  }

  .debtor-list-open{
    left:20px;
    font-size:30px;
  }

  .entity-list-main h3{
    white-space:normal;
  }
}


/* الإصدار 6.17: عقود الدائنين كقائمة قابلة للتوسّع */
#creditor-contracts-list{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.contract-list-item{
  border-radius:24px;
  overflow:hidden;
  background:var(--secondary-card,#176f72);
  color:#fff;
  box-shadow:0 10px 24px rgba(0,0,0,.08);
}

.contract-list-summary{
  width:100%;
  min-height:104px;
  padding:22px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border:0;
  border-radius:0;
  background:transparent !important;
  color:#fff !important;
  text-align:right;
  box-shadow:none !important;
}

.contract-list-summary-main{
  flex:1 1 auto;
  min-width:0;
}

.contract-list-summary h3{
  margin:0 0 7px;
  color:#fff;
  font-size:1.18rem;
  line-height:1.5;
}

.contract-list-summary p{
  margin:0;
  color:rgba(255,255,255,.82);
}

.contract-list-chevron{
  flex:0 0 auto;
  font-size:34px;
  line-height:1;
  color:#fff;
  transition:transform .24s ease;
}

.contract-list-item.open .contract-list-chevron{
  transform:rotate(180deg);
}

.contract-list-details{
  padding:0 24px 24px;
  border-top:1px solid rgba(255,255,255,.16);
  animation:contractDetailsIn .22s ease;
}

.contract-details-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  padding-top:20px;
}

.contract-details-grid > div{
  padding:14px 16px;
  border-radius:16px;
  background:rgba(255,255,255,.1);
}

.contract-details-grid span{
  display:block;
  margin-bottom:5px;
  color:rgba(255,255,255,.72);
  font-size:.88rem;
}

.contract-details-grid strong{
  color:#fff;
  line-height:1.5;
}

.contract-list-details .contract-link{
  display:inline-flex;
  margin-top:18px;
}

.contract-list-actions{
  display:flex;
  gap:10px;
  margin-top:18px;
}

.contract-list-actions button{
  min-height:42px;
  padding:9px 18px;
  border-radius:999px;
}

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

@media(max-width:900px){
  .contract-details-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:560px){
  .contract-list-summary{padding:18px}
  .contract-list-details{padding:0 18px 18px}
  .contract-details-grid{grid-template-columns:1fr}
}
