﻿:root{
  --green-950:#063e2e;--green-900:#07513a;--green-800:#0d6543;--green-700:#2f7d32;--green-600:#438c35;
  --green-100:#eaf6e8;--green-50:#f4faf2;--blue:#3278ee;--violet:#6c5ce7;--red:#dc5148;--amber:#c88a1d;
  --ink:#17221b;--muted:#78847b;--border:#e3e9e1;--surface:#fff;--canvas:#f6f8f4;
  --shadow:0 14px 34px rgba(30,60,35,.07);--radius:18px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:'Cairo',Tahoma,Arial,sans-serif;color:var(--ink);background:var(--canvas)}body{overflow-x:hidden}
a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;right:0;top:0;width:270px;height:100vh;background:linear-gradient(180deg,#064a36,#073d31 70%,#062f27);color:#fff;padding:24px 16px;z-index:50;display:flex;flex-direction:column;box-shadow:-12px 0 36px rgba(0,50,32,.12)}.brand{display:flex;align-items:center;gap:13px;padding:4px 6px 22px;border-bottom:1px solid rgba(255,255,255,.1)}.brand-mark{width:58px;height:58px;border-radius:18px;background:linear-gradient(145deg,#eef8e9,#cde9b5);color:#2f762b;display:grid;place-items:center;font-size:34px;font-weight:800}.brand strong{display:block;font-size:16px}.brand span{display:block;font-size:12px;color:#bed5c9;margin-top:3px}.side-nav{padding-top:20px;overflow-y:auto;overflow-x:hidden;flex:1 1 auto;min-height:0;scrollbar-gutter:stable}.nav-caption{color:#8fb4a3;font-size:12px;padding:12px 13px 6px}.nav-item,.nav-group-title{display:flex;align-items:center;gap:10px;min-height:45px;padding:10px 13px;border-radius:12px;margin:4px 0;color:#e7f4ed;font-size:13px}.nav-item:hover,.nav-item.selected{background:linear-gradient(90deg,#2d7b2d,#438c35);box-shadow:0 8px 20px rgba(61,139,55,.22)}.nav-group{border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:4px}.nav-group-title{font-weight:700}.nav-group .nav-item{padding-right:42px;color:#d6e7dd}.nav-symbol{width:22px;text-align:center;font-size:18px}.nav-item small{margin-right:auto;font-size:10px;color:#9fc1b0}.nav-item.disabled{opacity:.6;cursor:not-allowed}.sidebar-footer{margin-top:auto;padding:14px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:rgba(255,255,255,.05);display:flex;align-items:center;gap:10px}.sidebar-footer b,.sidebar-footer span{display:block;font-size:11px}.sidebar-footer span{color:#9fc1b0}.status-dot{width:9px;height:9px;border-radius:50%;background:#7bdc72;box-shadow:0 0 0 5px rgba(123,220,114,.1)}.main-area{width:calc(100% - 270px);margin-right:270px}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:24px;padding:0 26px;position:sticky;top:0;z-index:30}.page-branding{font-weight:800;font-size:18px;white-space:nowrap}.global-search{height:43px;border:1px solid var(--border);border-radius:12px;display:flex;align-items:center;gap:9px;padding:0 13px;max-width:390px;flex:1;margin-right:auto}.global-search input{border:0;outline:0;width:100%;background:transparent}.top-actions{display:flex;align-items:center;gap:8px}.icon-btn{width:40px;height:40px;border:1px solid var(--border);border-radius:11px;background:#fff;cursor:pointer;position:relative}.badge{position:absolute;right:-3px;top:-5px;background:#e35047;color:#fff;border-radius:50%;font-size:9px;width:18px;height:18px;display:grid;place-items:center}.user-chip{display:flex;align-items:center;gap:9px;margin-right:8px}.avatar{width:38px;height:38px;border-radius:50%;background:var(--green-100);color:var(--green-700);display:grid;place-items:center;font-weight:800}.user-chip b,.user-chip span{display:block;font-size:11px}.user-chip span{color:var(--muted)}.mobile-menu{display:none}.content{padding:26px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.page-heading h1{margin:0 0 5px;font-size:25px}.page-heading p{margin:0;color:var(--muted);font-size:13px}.breadcrumbs{color:#9aa69f;font-size:11px;white-space:nowrap}.breadcrumbs span{padding:0 6px}.breadcrumbs b{color:var(--green-700)}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:20px}.summary-card{min-height:132px;border-radius:var(--radius);background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;padding:22px 25px;position:relative;overflow:hidden}.summary-card:before{content:"";position:absolute;right:0;top:0;bottom:0;width:4px}.summary-card.blue:before{background:var(--blue)}.summary-card.green:before{background:var(--green-600)}.summary-card.violet:before{background:var(--violet)}.summary-card span,.summary-card small{display:block;color:#627067;font-size:12px}.summary-card strong{display:block;font-size:28px;margin:6px 0}.summary-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;font-weight:800;font-size:20px}.blue .summary-icon{background:#eaf2ff;color:var(--blue)}.green .summary-icon{background:#eaf7e8;color:var(--green-700)}.violet .summary-icon{background:#f0edff;color:var(--violet)}.panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel-head,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 20px;border-bottom:1px solid var(--border)}.panel-head h2,.panel-head p{margin:0}.panel-head h2{font-size:17px}.panel-head p{font-size:11px;color:var(--muted);margin-top:4px}.btn{border:1px solid var(--border);border-radius:11px;padding:10px 16px;background:#fff;cursor:pointer;font-weight:700;font-size:12px;transition:.2s}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(0,0,0,.06)}.btn.primary{background:linear-gradient(135deg,var(--green-700),#3d8c32);border-color:transparent;color:#fff}.btn.secondary{background:#fff;color:var(--ink)}.btn.large{padding:13px 22px}.toolbar-actions,.filter-bar{display:flex;align-items:center;gap:10px}.filter-bar select{height:42px;border:1px solid var(--border);border-radius:11px;padding:0 12px;background:#fff;min-width:130px}.search-box{height:42px;min-width:310px;border:1px solid var(--border);border-radius:11px;display:flex;align-items:center;gap:8px;padding:0 12px;background:#fff}.search-box input{border:0;outline:0;background:transparent;width:100%}.table-wrap{width:100%;overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:940px}.data-table th{background:#f8faf7;color:#435348;font-size:11px;text-align:right;padding:13px;border-bottom:1px solid var(--border);white-space:nowrap}.data-table td{padding:13px;border-bottom:1px solid #edf1eb;font-size:11px;vertical-align:middle}.data-table tbody tr:hover{background:#fbfdf9}.code{color:var(--green-700);font-weight:700;letter-spacing:.3px}.ltr-text{direction:ltr;text-align:right}.pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:20px;font-size:10px;font-weight:700}.pill.green{background:#e7f7e6;color:#2d7a34}.pill.red{background:#fdebea;color:#c64e46}.pill.blue{background:#eaf2ff;color:#3374d6}.pill.neutral{background:#f1f3f1;color:#687168}.actions-cell{white-space:nowrap}.inline-form{display:inline}.mini-btn{width:30px;height:30px;border:1px solid var(--border);border-radius:8px;background:#fff;cursor:pointer}.mini-btn.edit{color:#2f74e8}.mini-btn.delete{color:#db5149}.empty-state{padding:55px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--muted)}.empty-state b{font-size:17px;color:var(--ink)}.empty-state .btn{margin-top:8px}.company-form{padding-bottom:0}.company-hero-form{display:grid;grid-template-columns:220px 1fr;gap:25px;padding:24px 20px}.logo-uploader{border-left:1px dashed var(--border);display:flex;align-items:center;flex-direction:column;gap:9px;padding-left:20px}.logo-preview{width:130px;height:130px;border-radius:24px;border:1px dashed #b9c9b9;background:#f8fbf6;display:grid;place-items:center;color:#9baa9b;overflow:hidden;font-weight:800}.logo-preview img{width:100%;height:100%;object-fit:contain}.logo-uploader small{font-size:9px;color:var(--muted);text-align:center}.section-title{margin:8px 20px 0;padding-top:18px;border-top:1px solid var(--border);display:flex;align-items:baseline;gap:10px}.section-title b{font-size:14px}.section-title span{font-size:10px;color:var(--muted)}.form-grid{display:grid;gap:16px;padding:18px 20px}.form-grid.four{grid-template-columns:repeat(4,1fr)}.form-grid.two{grid-template-columns:repeat(2,1fr)}.span-2{grid-column:span 2}.span-4{grid-column:span 4}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:11px;color:#526057;font-weight:700}.field input,.field select,.field textarea{width:100%;border:1px solid #dfe6dd;background:#fff;border-radius:10px;min-height:42px;padding:9px 11px;outline:none;transition:.2s}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#75a95f;box-shadow:0 0 0 3px rgba(75,139,60,.1)}.field span.field-validation-error,.field-error{font-size:10px;color:var(--red)}.ltr-field label{text-align:right}.form-footer{display:flex;align-items:center;justify-content:space-between;padding:20px;background:#fafcf9;border-top:1px solid var(--border)}.switch-row{display:flex;align-items:center;gap:9px;font-size:12px}.switch-row input{display:none}.switch{width:40px;height:22px;background:#cdd5cd;border-radius:20px;position:relative}.switch:after{content:"";width:16px;height:16px;background:#fff;border-radius:50%;position:absolute;top:3px;right:3px;transition:.2s}.switch-row input:checked + .switch{background:var(--green-600)}.switch-row input:checked + .switch:after{transform:translateX(-18px)}.validation-summary{color:var(--red);font-size:11px;padding:0 20px}.modal{display:none;position:fixed;inset:0;z-index:100}.modal.show{display:block}.modal-backdrop{position:absolute;inset:0;background:rgba(4,30,22,.44);backdrop-filter:blur(3px)}.modal-card{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(650px,92vw);max-height:90vh;overflow:auto;background:#fff;border-radius:20px;box-shadow:0 30px 90px rgba(0,0,0,.22)}.modal-card.wide{width:min(900px,94vw)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;padding:20px;border-bottom:1px solid var(--border)}.modal-head h2,.modal-head p{margin:0}.modal-head h2{font-size:18px}.modal-head p{color:var(--muted);font-size:10px;margin-top:4px}.close-btn{border:0;background:#f2f4f2;border-radius:9px;width:34px;height:34px;font-size:22px;cursor:pointer}.modal-body{max-height:62vh;overflow:auto}.modal-footer{padding:16px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:9px;background:#fafcf9}.modal-open{overflow:hidden}.switch-group{display:flex;align-items:center;gap:20px;padding-top:24px}.switch-group.single{padding-top:26px}.switch-group label{display:flex;align-items:center;gap:7px;font-size:12px}.checkbox-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.checkbox-grid label{display:flex;align-items:center;gap:7px;border:1px solid var(--border);padding:9px;border-radius:10px;background:#fafcf9}.hint{font-size:9px;color:var(--muted)}.departments-layout{display:grid;grid-template-columns:310px 1fr;min-height:520px}.tree-panel{border-left:1px solid var(--border);padding:16px;overflow:auto}.department-table-panel{overflow:hidden}.subpanel-title{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding:0 0 13px;margin-bottom:10px}.subpanel-title b{font-size:13px}.subpanel-title span{font-size:9px;color:var(--muted)}.dept-tree-list{list-style:none;margin:0;padding:0}.dept-tree-list .dept-tree-list{padding-right:22px;border-right:1px dashed #dfe7dc}.tree-node{display:flex;align-items:center;gap:8px;padding:8px 6px;font-size:11px}.tree-node:hover{background:#f5faf3;border-radius:8px}.tree-node.muted{opacity:.55}.tree-dot{width:8px;height:8px;border-radius:50%;background:var(--green-600)}.tree-node small{margin-right:auto;background:#edf4e9;color:#5b755e;padding:2px 6px;border-radius:10px}.empty-mini{padding:30px 10px;text-align:center;color:var(--muted);font-size:11px}.toast{position:fixed;left:24px;top:92px;z-index:90;border-radius:12px;padding:12px 16px;box-shadow:var(--shadow);font-size:12px}.toast.success{background:#e8f7e8;color:#246d2b;border:1px solid #cce9cc}.toast.error{background:#fdebea;color:#b53f38;border:1px solid #f2c9c6}
@media(max-width:1100px){.sidebar{transform:translateX(100%);transition:.25s}.sidebar.open{transform:translateX(0)}.main-area{width:100%;margin-right:0}.mobile-menu{display:block}.summary-grid{grid-template-columns:1fr 1fr}.departments-layout{grid-template-columns:1fr}.tree-panel{border-left:0;border-bottom:1px solid var(--border);max-height:300px}.global-search{display:none}.company-hero-form{grid-template-columns:1fr}.logo-uploader{border-left:0;border-bottom:1px dashed var(--border);padding:0 0 18px}.form-grid.four{grid-template-columns:repeat(2,1fr)}.span-4{grid-column:span 2}}
@media(max-width:700px){.content{padding:15px}.topbar{padding:0 13px;gap:10px}.page-branding{font-size:14px}.top-actions .icon-btn,.user-chip>div:not(.avatar){display:none}.page-heading{display:block}.breadcrumbs{margin-top:9px}.summary-grid{grid-template-columns:1fr}.toolbar{align-items:stretch;flex-direction:column}.toolbar-actions,.filter-bar{flex-wrap:wrap}.search-box{min-width:0;flex:1}.form-grid.four,.form-grid.two{grid-template-columns:1fr}.span-2,.span-4{grid-column:span 1}.checkbox-grid{grid-template-columns:1fr 1fr}.form-footer{align-items:stretch;flex-direction:column;gap:14px}.form-footer .btn{width:100%}.modal-card{max-height:96vh}.company-summary{grid-template-columns:1fr}}
@media print{.sidebar,.topbar,.toolbar-actions,.filter-bar,.actions-cell,.btn,.breadcrumbs{display:none!important}.main-area{margin:0;width:100%}.content{padding:0}.panel,.summary-card{box-shadow:none}.page-heading{margin-top:10px}}


/* V2: Arabic RTL interface with Latin/English digits and Gregorian dates */
.latin-numbers,
.latin-input,
input[type="date"],
input[type="number"],
input[inputmode="numeric"],
input[inputmode="decimal"]{
  font-family:'Cairo',Tahoma,Arial,sans-serif;
  font-variant-numeric:tabular-nums lining-nums;
  unicode-bidi:isolate;
}
.latin-input,
input[type="date"],
input[type="number"]{
  direction:ltr;
  text-align:left;
}
.field-hint{font-size:9px;color:var(--muted);margin-top:1px}
.financial-settings{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  padding:18px 20px 24px;
}
.financial-setting-card{
  display:flex;
  align-items:center;
  gap:14px;
  border:1px solid var(--border);
  background:linear-gradient(135deg,#fff,#f9fcf7);
  border-radius:14px;
  padding:16px;
}
.financial-setting-card .setting-icon{
  width:46px;height:46px;min-width:46px;
  display:grid;place-items:center;
  border-radius:13px;
  background:var(--green-100);
  color:var(--green-700);
  font-size:19px;
  font-weight:800;
}
.financial-setting-card .grow{flex:1}
.input-suffix{
  display:flex;
  align-items:center;
  border:1px solid #dfe6dd;
  border-radius:10px;
  overflow:hidden;
  background:#fff;
}
.input-suffix:focus-within{border-color:#75a95f;box-shadow:0 0 0 3px rgba(75,139,60,.1)}
.input-suffix input{
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
  flex:1;
}
.input-suffix span{
  min-width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-right:1px solid var(--border);
  color:var(--green-700);
  font-weight:800;
  direction:ltr;
}
@media(max-width:700px){
  .financial-settings{grid-template-columns:1fr}
}

/* ==========================================================================
   V3 - قواعد النماذج الموحدة
   ========================================================================== */

/* كل الحقول الرقمية تستخدم شكل الأرقام اللاتينية 0-9 واتجاه LTR. */
.latin-numbers,
.latin-input,
input[type="number"],
input[type="date"],
input[inputmode="numeric"],
input[inputmode="decimal"]{
  font-variant-numeric:tabular-nums lining-nums;
  direction:ltr;
  unicode-bidi:isolate;
}

/* تمييز الحقل الذي فشل في التحقق مع Focus واضح للمستخدم. */
.field.field-invalid input,
.field.field-invalid select,
.field.field-invalid textarea{
  border-color:#dc5148!important;
  background:#fffafa;
  box-shadow:0 0 0 3px rgba(220,81,72,.12)!important;
}
.field.field-invalid label{color:#b63f39}
.client-validation-message,
.field-validation-error{
  color:#c74740;
  font-size:10px;
  font-weight:700;
}

/* رسالة صغيرة أسفل الحقل الإنجليزي توضح أن الترجمة ميزة مساعدة وليست شرطًا للحفظ. */
.translation-status{
  color:#849087;
  font-size:9px;
  min-height:14px;
}

/* إبراز زر الحفظ عندما يصل إليه المستخدم من آخر حقل بواسطة Enter أو Tab. */
[data-primary-save]:focus{
  outline:none;
  box-shadow:0 0 0 4px rgba(67,140,53,.22),0 10px 24px rgba(28,93,38,.18);
  transform:translateY(-1px);
}

/* نافذة التأكيد الموحدة للحفظ والتعديل. */
.confirm-card{
  width:min(470px,92vw);
  text-align:center;
  padding:30px 28px 24px;
  overflow:visible;
}
.confirm-icon{
  width:62px;
  height:62px;
  margin:0 auto 15px;
  border-radius:20px;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg,#e7f6e4,#d3edca);
  color:var(--green-700);
  font-size:28px;
  font-weight:800;
}
.confirm-icon.is-warning{background:linear-gradient(145deg,#fff5dc,#fbe7ae);color:#a96f00}
.confirm-icon.is-danger{background:linear-gradient(145deg,#fdecea,#f8d5d1);color:#c94740}
.btn.warning{background:#fff5df;border-color:#e8c67b;color:#8a5a00}
.btn.warning:hover{background:#ffedc0;border-color:#d9ad50}
.confirm-card h2{
  margin:0;
  font-size:19px;
}
.confirm-card p{
  color:var(--muted);
  margin:9px 0 24px;
  font-size:12px;
  line-height:1.8;
}
.confirm-actions{
  display:flex;
  justify-content:center;
  gap:10px;
}
.confirm-actions .btn{min-width:120px}
.operation-result-card{width:min(450px,92vw)}
.operation-result-icon.is-error{background:linear-gradient(145deg,#fdecea,#f8d5d1);color:#c94740}
.operation-result-icon.is-warning{background:linear-gradient(145deg,#fff5dc,#fbe7ae);color:#a96f00}
.operation-result-card p{white-space:pre-line}

@media(max-width:560px){
  .confirm-actions{flex-direction:column-reverse}
  .confirm-actions .btn{width:100%}
}

/* ==========================================================================
   V4 - توزيع مضغوط، اتجاهات اللغات، التواريخ والنجمة الإلزامية
   --------------------------------------------------------------------------
   هذه القواعد هي الطبقة الأحدث المعتمدة للواجهات. وضعها في نهاية الملف
   مقصود حتى تتغلب على المقاسات القديمة بدون كسر باقي الشاشات.
   ========================================================================== */

/* تقليل المساحات المهدرة لتناسب شاشات Desktop ذات الارتفاع المحدود. */
.content{padding:18px 20px 22px}
.compact-heading{margin-bottom:14px;align-items:center}
.compact-heading h1{font-size:22px;margin-bottom:3px}
.compact-heading p{font-size:11px}
.compact-panel-head{padding:13px 16px}
.compact-panel-head h2{font-size:15px}
.compact-panel-head p{margin-top:2px}
.record-code{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--border);background:#f8fbf7;border-radius:10px;color:var(--muted);font-size:10px}
.record-code b{color:var(--green-700);font-size:12px}

/* شاشة بيانات الشركة: الشعار أصغر والحقول تبدأ بجواره مباشرة بدون مساحة رأسية فارغة. */
.company-identity-grid{display:grid;grid-template-columns:145px minmax(0,1fr);gap:16px;padding:14px 16px 10px;align-items:start}
.compact-logo-uploader{border-left:1px dashed var(--border);padding-left:14px;gap:6px}
.compact-logo{width:92px;height:92px;border-radius:18px}
.compact-logo-uploader small{font-size:8px;line-height:1.5}
.compact-btn{padding:7px 12px}
.identity-fields{padding:0!important;align-content:start}
.compact-grid{gap:11px;padding:12px 16px}
.compact-section-title{margin:2px 16px 0;padding-top:12px;gap:8px}
.compact-section-title b{font-size:13px}
.compact-section-title span{font-size:9px}
.compact-form-footer{padding:13px 16px}

/* بطاقات الفروع والأقسام تحتفظ بالمعلومة لكن بأبعاد أقل من النسخ السابقة. */
.compact-summary-grid{gap:12px;margin-bottom:14px}
.compact-summary-card{min-height:94px;padding:15px 18px}
.compact-summary-card strong{font-size:23px;margin:3px 0}
.compact-summary-card .summary-icon{width:46px;height:46px;border-radius:14px;font-size:17px}
.compact-toolbar{padding:12px 14px}

/* الإعدادات المالية تبقى بطاقتين واضحتين لكن بدون فرد المساحة. */
.compact-financial-settings{gap:12px;padding:12px 16px 14px}
.compact-financial-card{padding:11px 13px;gap:10px;min-height:74px}
.compact-financial-card .setting-icon{width:38px;height:38px;min-width:38px;border-radius:11px;font-size:16px}

/* اتجاه النص يعتمد على لغة الحقل، وليس اتجاه الصفحة بالكامل. */
.ar-field input,.ar-field textarea,.ar-field select,.rtl-text{direction:rtl;text-align:right}
.en-field input,.en-field textarea,.en-field select,.ltr-text{direction:ltr;text-align:left;unicode-bidi:plaintext}
.latin-input{
  direction:ltr!important;unicode-bidi:isolate;
  font-family:'Cairo',Tahoma,Arial,sans-serif!important;
  font-variant-numeric:tabular-nums lining-nums;
}
.latin-numbers,input[type="number"],input[type="date"],input[type="time"],input[inputmode="numeric"],input[inputmode="decimal"],input[inputmode="tel"],input[data-gregorian-date]{
  direction:ltr!important;text-align:center!important;unicode-bidi:isolate;
  font-family:'Cairo',Tahoma,Arial,sans-serif!important;
  font-variant-numeric:tabular-nums lining-nums;
}

/* النجمة الحمراء تُضاف من JavaScript لكل required حتى لا ننساها في أي شاشة مستقبلية. */
.required-star{color:#d9433c;font-weight:900;font-size:13px;line-height:1;margin-right:2px}

/* حقول أكثر إحكامًا مع بقاء مساحة لمس مناسبة. */
.field{gap:4px}
.field label{font-size:10.5px;line-height:1.45}
.field input,.field select,.field textarea{min-height:40px;padding:8px 10px}
.field textarea{min-height:66px}
.translation-status,.field-hint,.hint{font-size:8.5px;min-height:11px;line-height:1.4}

/* حقل تاريخ موحد: كتابة YYYY-MM-DD أو فتح القائمة من زر التقويم. */
.date-entry{position:relative;display:flex;direction:ltr}
.date-entry>input[data-gregorian-date]{padding-right:42px!important}
.date-picker-button{position:absolute;right:1px;top:1px;bottom:1px;width:38px;border:0;border-left:1px solid var(--border);background:#f6faf4;color:var(--green-700);cursor:pointer;border-radius:0 9px 9px 0;font-size:14px}
.date-picker-button:hover{background:var(--green-100)}
.date-picker-proxy{position:fixed!important;left:-10000px!important;top:-10000px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}

/* الجداول: مسافة داخلية حول الجدول ومسافات أفقية مريحة في العناوين والصفوف. */
.comfortable-table-wrap{padding:0 12px 12px}
.comfortable-table{border:1px solid #e9eee7;border-radius:12px;border-collapse:separate;border-spacing:0;overflow:hidden}
.data-table th{padding:13px 16px;line-height:1.5}
.data-table td{padding:12px 16px;line-height:1.65}
.comfortable-table thead th:first-child,.comfortable-table tbody td:first-child{padding-right:18px}
.comfortable-table thead th:last-child,.comfortable-table tbody td:last-child{padding-left:18px}
.comfortable-table tbody tr:last-child td{border-bottom:0}
.department-table-title{margin:12px 12px 8px;padding:0 4px 10px}
.compact-departments-layout{min-height:430px}

/* النوافذ المنبثقة أقل ارتفاعًا مع Padding متوازن. */
.compact-modal-head{padding:14px 16px}
.compact-modal-body{max-height:66vh;padding:12px 16px}
.compact-modal-footer{padding:11px 16px}
.switch-group{padding-top:18px}
.switch-group.single{padding-top:20px}

/* زر حذف داخل نافذة التأكيد. */
.btn.danger{background:linear-gradient(135deg,#c94b43,#dd5a51);border-color:transparent;color:#fff}
.delete-confirm-card .delete-icon{background:#fdecea;color:#c94740}

@media(max-width:1100px){
  .company-identity-grid{grid-template-columns:120px minmax(0,1fr)}
  .compact-logo{width:82px;height:82px}
}
@media(max-width:700px){
  .content{padding:12px}
  .company-identity-grid{grid-template-columns:1fr;padding:12px}
  .compact-logo-uploader{border-left:0;border-bottom:1px dashed var(--border);padding:0 0 10px;flex-direction:row;justify-content:flex-start;flex-wrap:wrap}
  .compact-logo-uploader small{width:100%;text-align:right}
  .compact-summary-grid{grid-template-columns:1fr}
  .compact-grid{padding:10px 12px}
  .compact-section-title{margin-inline:12px}
  .comfortable-table-wrap{padding-inline:8px}
}

/* استغلال أفضل لمساحة سطح المكتب: شريط جانبي وهيدر أقل ارتفاعًا بدون التضحية بالوضوح. */
@media(min-width:1101px){
  .sidebar{width:250px;padding:18px 14px}
  .main-area{width:calc(100% - 250px);margin-right:250px}
  .topbar{height:68px;padding:0 20px;gap:18px}
  .brand{padding-bottom:15px}
  .brand-mark{width:50px;height:50px;border-radius:15px;font-size:29px}
  .side-nav{padding-top:12px}
  .nav-caption{padding-top:8px}
  .nav-item,.nav-group-title{min-height:41px;padding-block:8px;margin-block:2px}
}

/* ========================================================================== */
/* V5 — إعادة توزيع شاشة الشركة + تحسين الأقسام + توحيد الحقول والتاريخ      */
/* ========================================================================== */

/* ارتفاع موحد لكل عناصر الإدخال العادية. نُخرج checkbox/radio من القاعدة حتى لا تتمدد. */
:root{--control-height:42px}
.field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.field select{
  height:var(--control-height);
  min-height:var(--control-height);
  padding:8px 11px;
  line-height:1.35;
}
.field textarea{
  min-height:76px;
  padding:9px 11px;
  line-height:1.65;
}
.field input[type="checkbox"],
.field input[type="radio"],
.checkbox-grid input[type="checkbox"],
.switch-group input[type="checkbox"]{
  width:18px!important;
  height:18px!important;
  min-height:18px!important;
  max-width:18px!important;
  padding:0!important;
  margin:0;
  flex:0 0 18px;
  accent-color:var(--green-700);
}

/* شاشة بيانات الشركة: نملأ المساحة بجانب الشعار بالاسم والبيانات النظامية معًا. */
.company-primary-grid{
  display:grid;
  grid-template-columns:128px minmax(0,1fr);
  gap:14px;
  padding:12px 16px 8px;
  align-items:start;
}
.company-logo-column{
  min-height:100%;
  justify-content:flex-start;
  border-left:1px dashed var(--border);
  padding:0 0 0 14px;
}
.company-core-fields{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px 12px;
  align-items:start;
}
.company-core-fields .field{min-width:0}
.company-contact-grid{padding-top:10px;padding-bottom:10px}
.clean-section-title{
  margin:5px 16px 0;
  padding-top:11px;
  border-top:1px solid var(--border);
  display:flex;
  align-items:center;
  min-height:31px;
}
.clean-section-title b{font-size:13px}
.financial-inline-grid{padding-top:9px;padding-bottom:12px;max-width:none}
.financial-inline-grid .input-suffix{height:var(--control-height)}
.company-form-v5 .form-footer{margin-top:0}

/* لا نظهر رسائل ثابتة أسفل حقول الترجمة؛ الرسالة تظهر فقط أثناء عملية الترجمة إن وجدت. */
.translation-status:empty{display:none}
.translation-status{min-height:0}

/* التاريخ: حقل نصي للكتابة + input date شفاف فوق أيقونة التقويم.
   بهذه الطريقة يكون فتح تقويم Chrome بنقرة المستخدم مباشرة ولا يعتمد على showPicker البرمجي. */
.date-entry{
  position:relative;
  display:flex;
  direction:ltr;
  height:var(--control-height);
}
.date-entry>input[data-gregorian-date]{
  height:var(--control-height)!important;
  min-height:var(--control-height)!important;
  padding-right:43px!important;
}
.date-picker-button{
  position:absolute;
  z-index:2;
  right:1px;
  top:1px;
  bottom:1px;
  width:40px;
  height:auto;
  border:0;
  border-left:1px solid var(--border);
  background:#f5faf3;
  color:var(--green-700);
  cursor:pointer;
  border-radius:0 9px 9px 0;
  font-size:14px;
  pointer-events:none;
}
.date-picker-proxy{
  position:absolute!important;
  z-index:3!important;
  right:0!important;
  top:0!important;
  left:auto!important;
  bottom:auto!important;
  width:42px!important;
  height:var(--control-height)!important;
  min-height:var(--control-height)!important;
  opacity:0!important;
  pointer-events:auto!important;
  cursor:pointer!important;
  padding:0!important;
  border:0!important;
}

/* الجداول: الهيدر والصفوف بعيدون عن الحواف، مع ارتفاع متزن وقابلية قراءة أعلى. */
.comfortable-table-wrap{padding:10px 14px 14px}
.comfortable-table thead th{
  padding-top:14px;
  padding-bottom:14px;
  background:#f6f9f4;
  font-weight:800;
}
.comfortable-table tbody td{padding-top:12px;padding-bottom:12px}
.comfortable-table thead th:first-child,.comfortable-table tbody td:first-child{padding-right:20px}
.comfortable-table thead th:last-child,.comfortable-table tbody td:last-child{padding-left:20px}

/* شاشة الأقسام: إحصائيات صغيرة بدل البطاقات الكبيرة. */
.department-stats-strip{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-bottom:12px;
}
.department-stat{
  min-height:68px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 14px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:0 7px 22px rgba(18,55,35,.045);
}
.department-stat .stat-mark{
  width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-weight:900;font-size:14px;flex:0 0 38px
}
.department-stat .stat-mark.blue{background:#eaf2ff;color:#2f74e8}
.department-stat .stat-mark.green{background:#e9f6e6;color:var(--green-700)}
.department-stat .stat-mark.violet{background:#f0edff;color:#7558ef}
.department-stat small{display:block;color:var(--muted);font-size:10px}
.department-stat b{display:block;font-size:20px;margin-top:1px}

.department-management-panel{overflow:hidden}
.departments-layout-v5{
  grid-template-columns:285px minmax(0,1fr);
  min-height:440px;
  border-top:1px solid var(--border);
}
.department-tree-panel{
  border-left:1px solid var(--border);
  padding:0;
  background:linear-gradient(180deg,#fbfdf9,#fff);
  overflow:hidden;
}
.department-pane-head{
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:11px 14px;
  border-bottom:1px solid var(--border);
}
.department-pane-head b{display:block;font-size:12.5px}
.department-pane-head small{display:block;font-size:8.5px;color:var(--muted);margin-top:2px}
.pane-count{min-width:28px;height:28px;padding:0 7px;border-radius:9px;background:#eaf5e6;color:var(--green-700);display:grid;place-items:center;font-size:11px;font-weight:800}
.department-tree-scroll{max-height:510px;overflow:auto;padding:9px 10px 14px}
.table-pane-head{padding-inline:16px}
.department-table-wrap{padding-top:8px}
.department-table{min-width:880px}
.department-table .row-index{color:#8c9890}
.child-count{display:inline-grid;place-items:center;min-width:28px;height:25px;padding:0 7px;background:#f0f4ef;border-radius:9px;color:#556258;font-weight:700}
.scope-pill{display:inline-block;max-width:230px;padding:5px 9px;border-radius:9px;font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.scope-pill.central{background:#edf5e9;color:#367333}
.scope-pill.branches{background:#f3f5f2;color:#57645b;border:1px solid #e4eae2}

/* تحسين شجرة الأقسام: كل عقدة واضحة بصريًا بدون ازدحام. */
.dept-tree-list{margin:0;padding:0;list-style:none}
.dept-tree-list .dept-tree-list{margin-right:12px;padding-right:14px;border-right:1px solid #e0e8dc}
.tree-node{
  min-height:36px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:7px 8px;
  margin:2px 0;
  border-radius:9px;
  font-size:10.5px;
  color:#34463a;
}
.tree-node:hover{background:#edf6e9}
.tree-node .tree-dot{width:8px;height:8px;box-shadow:0 0 0 4px #edf5e9;flex:0 0 8px}
.tree-node small{margin-right:auto;min-width:22px;text-align:center;font-size:8.5px}
.tree-node.muted{opacity:.55}

/* نافذة الأقسام والفروع: نفس ارتفاع الحقول، وتقليل الفراغات. */
.form-modal-card{border-radius:17px}
.department-modal-card{width:min(820px,94vw)}
.department-modal-body{max-height:68vh;overflow:auto;padding:12px 16px 14px}
.no-side-padding{padding:0!important}
.department-form-grid{gap:10px 12px}
.department-options-row{display:flex;align-items:center;padding:11px 0 4px}
.toggle-option{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  min-height:36px;
  padding:7px 11px;
  border:1px solid var(--border);
  background:#fafcf9;
  border-radius:10px;
  font-size:10.5px;
  cursor:pointer;
}
.toggle-option input[type="checkbox"]{width:17px!important;height:17px!important;min-height:17px!important;accent-color:var(--green-700);margin:0}
.branch-switches{padding-top:2px!important;gap:9px!important}

.department-branches-section{margin-top:8px;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fcfdfb}
.department-branches-head{padding:10px 12px;border-bottom:1px solid var(--border);background:#f8faf7}
.department-branches-head b{display:block;font-size:11px}
.department-branches-head small{display:block;color:var(--muted);font-size:8.5px;margin-top:2px}
.branch-checkbox-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px}
.branch-check-card{
  position:relative;
  min-width:0;
  min-height:42px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 9px;
  border:1px solid #e0e7de;
  border-radius:10px;
  background:#fff;
  cursor:pointer;
  transition:.15s ease;
}
.branch-check-card:hover{border-color:#9fc292;background:#f8fcf6}
.branch-check-card input[type="checkbox"]{
  position:absolute!important;
  width:1px!important;height:1px!important;min-height:1px!important;
  opacity:0!important;
  pointer-events:none;
}
.check-box-ui{
  width:19px;height:19px;flex:0 0 19px;border:1.5px solid #b8c8b4;border-radius:6px;background:#fff;color:transparent;display:grid;place-items:center;font-size:11px;font-weight:900;transition:.15s
}
.branch-check-card input:checked + .check-box-ui{background:var(--green-700);border-color:var(--green-700);color:#fff}
.branch-check-card:has(input:checked){border-color:#8db77d;background:#f2f9ef}
.branch-check-card:has(input:focus-visible){box-shadow:0 0 0 3px rgba(75,139,60,.12)}
.branch-check-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
.empty-branch-options{grid-column:1/-1;padding:18px;text-align:center;color:var(--muted);font-size:10px}

@media(max-width:1100px){
  .company-primary-grid{grid-template-columns:112px minmax(0,1fr)}
  .company-core-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .company-core-fields .span-4{grid-column:span 2}
  .departments-layout-v5{grid-template-columns:1fr}
  .department-tree-panel{border-left:0;border-bottom:1px solid var(--border)}
  .department-tree-scroll{max-height:260px}
}

@media(max-width:700px){
  .company-primary-grid{grid-template-columns:1fr;padding:10px 12px}
  .company-logo-column{min-height:auto;border-left:0;border-bottom:1px dashed var(--border);padding:0 0 10px;flex-direction:row;align-items:center;flex-wrap:wrap}
  .company-logo-column small{width:100%}
  .company-core-fields{grid-template-columns:1fr}
  .company-core-fields .span-2,.company-core-fields .span-4{grid-column:span 1}
  .department-stats-strip{grid-template-columns:1fr}
  .branch-checkbox-grid{grid-template-columns:1fr 1fr}
}

@media(max-width:480px){
  .branch-checkbox-grid{grid-template-columns:1fr}
}
.date-picker-proxy::-webkit-calendar-picker-indicator{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  cursor:pointer;
}


/* ========================================================================== */
/* V6 — معيار القوائم المرجعية Country / City / Currency / Nationality       */
/* ========================================================================== */
/*
   هذا الكلاس هو الشكل القياسي لأي قائمة مرجعية في النظام مستقبلًا.
   - اتجاه النص عربي RTL.
   - سهم ثابت في الطرف الأيسر بدل اختلاف شكل السهم بين المتصفحات.
   - كود المرجع (مثل SA) يظل في قاعدة البيانات ولا يزاحم الاسم الظاهر للمستخدم.
   - نفس الارتفاع والـFocus المستخدم في باقي الحقول.
*/
.lookup-select{
  -webkit-appearance:none;
  appearance:none;
  direction:rtl!important;
  text-align:right!important;
  padding-right:11px!important;
  padding-left:38px!important;
  background-color:#fff!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2356655b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:left 12px center!important;
  background-size:14px 14px!important;
  cursor:pointer;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.lookup-select:hover{border-color:#c8d5c3}
.lookup-select:focus{
  border-color:#75a95f!important;
  box-shadow:0 0 0 3px rgba(75,139,60,.10)!important;
}
.lookup-select:disabled{
  background-color:#f5f7f4!important;
  color:#8b958e;
  cursor:not-allowed;
  opacity:1;
}
/* خيار "اختر..." يبقى مختصرًا ونظيفًا؛ لا نستخدم شرطات زخرفية داخل القوائم. */
.lookup-select option{direction:rtl;text-align:right}

/* قاعدة عامة للحقول المرجعية في أي موديول قادم. */
.field select.lookup-select{height:var(--control-height);min-height:var(--control-height)}

/* ========================================================================== */
/* V7 - موديول الموظفين والمسميات الوظيفية                                  */
/* ========================================================================== */
.form-grid.one{grid-template-columns:1fr}
.btn.small{padding:7px 11px;font-size:10px;border-radius:9px}
.hidden-form{display:none}
.mini-btn.view{color:var(--green-700)}
.text-action{border:0;background:transparent;color:var(--green-700);font-size:10px;font-weight:800;cursor:pointer;padding:5px 8px}

.employee-page-heading{margin-bottom:14px}
.employee-kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}
.employee-kpi{background:#fff;border:1px solid var(--border);border-right:3px solid var(--blue);border-radius:13px;padding:11px 14px;box-shadow:0 6px 18px rgba(30,60,35,.04);display:flex;align-items:center;justify-content:space-between;min-height:64px}
.employee-kpi span{font-size:10px;color:var(--muted);font-weight:700}
.employee-kpi b{font-size:22px;line-height:1;direction:ltr}
.employee-kpi.success{border-right-color:var(--green-600)}
.employee-kpi.muted{border-right-color:#98a49b}
.employee-kpi.accent{border-right-color:var(--amber)}
.employee-main-panel{overflow:visible}
.employee-toolbar{padding:11px 14px;flex-wrap:wrap}
.employee-filter-bar{display:flex;align-items:center;gap:7px;flex:1;justify-content:flex-end;min-width:0}
.employee-filter-bar select{height:40px;border:1px solid var(--border);border-radius:10px;background:#fff;padding:0 11px;min-width:135px;max-width:190px}
.employee-search-box{min-width:260px;max-width:360px;flex:1}
.employee-table-wrap{padding-top:7px}
.employee-table{min-width:1120px}
.employee-table th:first-child,.employee-table td:first-child{padding-right:20px}
.employee-table th:last-child,.employee-table td:last-child{padding-left:20px}
.employee-cell{display:flex;align-items:center;gap:9px;min-width:190px}
.employee-cell b,.employee-cell small{display:block}
.employee-cell small{font-size:9px;color:var(--muted);margin-top:2px}
.employee-avatar-img,.employee-avatar-fallback{width:34px;height:34px;border-radius:10px;flex:0 0 34px}
.employee-avatar-img{object-fit:cover;border:1px solid var(--border)}
.employee-avatar-fallback{display:grid;place-items:center;background:var(--green-100);color:var(--green-700);font-weight:800;font-size:10px}

/* نافذة الموظف الكبيرة: ثابتة الرأس والتذييل، والتمرير داخل جسم الملف فقط. */
.employee-modal-card{width:min(1320px,97vw)!important;max-height:94vh!important;height:min(880px,94vh);overflow:hidden!important;border-radius:18px!important;display:flex;flex-direction:column}
.employee-modal-card>form{display:flex;flex-direction:column;height:100%;min-height:0}
.employee-modal-head{height:68px;flex:0 0 68px;display:flex;align-items:center;justify-content:space-between;padding:9px 16px;border-bottom:1px solid var(--border);background:#fff}
.employee-modal-title-group{display:flex;align-items:center;gap:10px}
.employee-modal-title-group h2{margin:0;font-size:17px}
.employee-modal-title-group small{display:block;color:var(--muted);font-size:9px;margin-top:3px;direction:ltr;text-align:right}
.employee-photo-preview{width:46px;height:46px;border-radius:13px;background:linear-gradient(145deg,#e7f5e2,#d3eac6);border:1px solid #d6e5d1;display:grid;place-items:center;overflow:hidden;color:var(--green-700);font-size:11px;font-weight:800}
.employee-photo-preview img{width:100%;height:100%;object-fit:cover}
.employee-modal-content{display:grid;grid-template-columns:160px minmax(0,1fr);min-height:0;flex:1;background:#f7f9f5}
.employee-section-nav{padding:13px 9px;border-left:1px solid var(--border);background:#fbfcfa;display:flex;flex-direction:column;gap:5px;overflow:auto}
.employee-section-nav button{border:0;background:transparent;text-align:right;padding:10px 11px;border-radius:9px;color:#5c6a60;font-size:10px;font-weight:700;cursor:pointer}
.employee-section-nav button:hover,.employee-section-nav button.active{background:var(--green-100);color:var(--green-800)}
.employee-form-scroll{overflow:auto;padding:12px;scroll-behavior:smooth;position:relative}
.employee-form-section{background:#fff;border:1px solid var(--border);border-radius:14px;margin-bottom:10px;padding:0 12px 12px;scroll-margin-top:10px;box-shadow:0 5px 14px rgba(30,60,35,.025)}
.section-title-row{min-height:45px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf1eb;margin:0 -2px 10px;padding:7px 3px}
.section-title-row b,.section-title-row small{display:block}
.section-title-row b{font-size:12px}
.section-title-row small{font-size:8.5px;color:var(--muted);margin-top:2px}
.employee-form-grid{padding:0;gap:9px 11px}
.employee-form-grid .field input,.employee-form-grid .field select{height:40px;min-height:40px}
.employee-form-grid .field textarea{min-height:64px}
.employee-photo-row{display:flex;justify-content:flex-end;margin-bottom:8px}
.employee-photo-field{width:170px}
.file-upload-compact{display:flex!important;align-items:center;justify-content:center;border:1px dashed #bdcdb9;border-radius:9px;min-height:36px;background:#f8fbf6;color:var(--green-700)!important;cursor:pointer!important}
.file-upload-compact input{display:none}
.employee-account-state{border:1px solid #dbe7d7;background:#f7fbf5;border-radius:10px;min-height:52px;padding:8px 11px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.employee-account-state b,.employee-account-state span{display:block}
.employee-account-state b{font-size:10px}.employee-account-state span{font-size:8.5px;color:var(--muted);margin-top:2px}
.select-with-action{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:5px}
.field-add-btn{height:40px;border:1px solid #cfe0ca;background:var(--green-100);color:var(--green-700);border-radius:9px;font-size:18px;cursor:pointer}
.field-add-btn:hover{background:#dff0d9}
.employee-modal-footer{flex:0 0 auto;padding:10px 16px;background:#fff}
.employee-linked-section{min-height:130px}
.linked-placeholder{border:1px dashed #dbe3d8;background:#fafcf9;border-radius:10px;color:var(--muted);padding:22px;text-align:center;font-size:9.5px}

/* مستندات الموظف */
.employee-doc-list{display:flex;flex-direction:column;border:1px solid #edf1eb;border-radius:10px;overflow:hidden}
.employee-doc-row{display:grid;grid-template-columns:34px minmax(0,1fr) 105px 32px 32px;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid #edf1eb}
.employee-doc-row:last-child{border-bottom:0}
.employee-doc-icon{width:30px;height:30px;border-radius:8px;background:var(--green-100);color:var(--green-700);display:grid;place-items:center}
.employee-doc-info b,.employee-doc-info span{display:block}
.employee-doc-info b{font-size:10px}.employee-doc-info span{font-size:8.5px;color:var(--muted);margin-top:2px}
.employee-doc-expiry{text-align:center}.employee-doc-expiry small,.employee-doc-expiry span{display:block}.employee-doc-expiry small{font-size:8px;color:var(--muted)}.employee-doc-expiry span{font-size:9px;margin-top:2px}

/* Timeline داخل ملف الموظف */
.employee-timeline{padding:2px 2px 2px 0}
.timeline-item{display:grid;grid-template-columns:18px 1fr;gap:7px;position:relative;padding:5px 0 10px}
.timeline-item:not(:last-child):before{content:"";position:absolute;right:8px;top:18px;bottom:-3px;width:1px;background:#dfe8dc}
.timeline-dot{width:9px;height:9px;border-radius:50%;background:var(--green-600);margin-top:5px;justify-self:center;z-index:1;box-shadow:0 0 0 4px #edf7e9}
.timeline-body b,.timeline-body p,.timeline-body small{display:block;margin:0}.timeline-body b{font-size:9.5px}.timeline-body p{font-size:8.5px;color:#5f6b63;margin-top:3px}.timeline-body small{font-size:8px;color:#95a198;margin-top:3px;direction:ltr;text-align:right}

/* إدارة المسميات الوظيفية داخل نفس شاشة الموظفين */
.job-titles-modal-card{width:min(1120px,95vw)!important;overflow:hidden!important}
.job-titles-modal-card>.modal-head small{font-size:9px;color:var(--muted);display:block;margin-top:3px}
.job-title-manager-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.7fr);min-height:510px;max-height:72vh}
.job-title-table-panel{min-width:0;border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}
.job-title-panel-head,.job-title-editor-head{min-height:48px;padding:9px 12px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.job-title-table-wrap{overflow:auto;flex:1;padding:8px 10px}
.job-title-table-wrap .data-table{min-width:620px}
.job-title-editor-panel{background:#fbfcfa;overflow:auto}
.job-title-editor-panel form{padding-bottom:12px}
.job-title-editor-panel .form-grid{padding:10px 12px;gap:8px}
.job-title-editor-actions{display:flex;justify-content:flex-end;gap:8px;padding:0 12px}
.employee-document-modal-card{width:min(760px,94vw)!important}

/* responsive */
@media(max-width:1150px){
  .employee-kpi-strip{grid-template-columns:repeat(2,1fr)}
  .employee-filter-bar{flex-wrap:wrap;justify-content:flex-start}
  .employee-search-box{max-width:none;min-width:220px}
  .employee-modal-content{grid-template-columns:1fr}
  .employee-section-nav{display:flex;flex-direction:row;border-left:0;border-bottom:1px solid var(--border);padding:7px 9px;overflow:auto;white-space:nowrap}
  .employee-section-nav button{text-align:center;flex:0 0 auto;padding:7px 10px}
  .job-title-manager-layout{grid-template-columns:1fr}.job-title-table-panel{border-left:0;border-bottom:1px solid var(--border)}
}
@media(max-width:760px){
  .employee-kpi-strip{grid-template-columns:1fr 1fr}
  .employee-toolbar{align-items:stretch;flex-direction:column}
  .employee-filter-bar{width:100%}.employee-filter-bar select,.employee-search-box{width:100%;max-width:none;min-width:0}
  .employee-modal-card{width:99vw!important;height:97vh!important;max-height:97vh!important;border-radius:12px!important}
  .employee-modal-head{height:62px;flex-basis:62px;padding:7px 10px}
  .employee-form-scroll{padding:8px}
  .employee-form-grid.form-grid.four{grid-template-columns:1fr!important}
  .employee-form-grid .span-2,.employee-form-grid .span-3,.employee-form-grid .span-4{grid-column:span 1!important}
  .employee-account-state{align-items:stretch;flex-direction:column}
  .employee-doc-row{grid-template-columns:30px minmax(0,1fr) 30px 30px}.employee-doc-expiry{display:none}
}
.span-3{grid-column:span 3}

/* ========================================================================== */
/* V8 — قواعد عامة معتمدة: القوائم، الجداول، زر الإغلاق، الموظف والمسميات   */
/* ========================================================================== */

/*
   القوائم المنسدلة:
   - نعطي خط Cairo مساحة رأسية كافية حتى لا تُقص الحروف العربية مثل ي/ص/م.
   - لا نستخدم line-height ضيقًا مع select الأصلي للمتصفح.
   - القاعدة عامة لكل الموديولات القادمة.
*/
.reference-select,
.field select,
.filter-bar select,
.employee-filter-bar select{
  width:100%;
  min-width:0;
  height:var(--control-height,42px)!important;
  min-height:var(--control-height,42px)!important;
  padding-block:0!important;
  padding-inline:12px 34px!important;
  line-height:normal!important;
  font-size:11.5px;
  vertical-align:middle;
  text-overflow:clip;
  white-space:nowrap;
}
.reference-select option,
.field select option,
.filter-bar select option{
  font:inherit;
  line-height:1.7;
}

/* زر الإغلاق: علامة × في منتصف المربع أفقيًا ورأسيًا على كل النوافذ. */
.close-btn{
  width:34px!important;
  height:34px!important;
  min-width:34px;
  min-height:34px;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  line-height:1!important;
  text-align:center!important;
  font-family:Arial,sans-serif!important;
  font-size:20px!important;
}

/*
   الجداول:
   كل الأعمدة في المنتصف افتراضيًا.
   الاستثناءات الوحيدة: عمود الاسم/الموظف حسب اللغة، والإجراءات عند نهاية الجدول.
*/
.data-table th,
.data-table td{
  text-align:center!important;
  vertical-align:middle!important;
}
.data-table th.table-name-ar,
.data-table td.table-name-ar{
  direction:rtl;
  text-align:right!important;
}
.data-table th.table-name-en,
.data-table td.table-name-en{
  direction:ltr;
  text-align:left!important;
  unicode-bidi:plaintext;
}
.data-table th.table-actions-column,
.data-table td.table-actions-column,
.data-table td.actions-cell{
  text-align:end!important;
  white-space:nowrap;
}
.data-table .employee-cell{
  direction:rtl;
  justify-content:flex-start;
  text-align:right;
}

/* الرقم الداخلي للموظف قيمة نظامية لا يحررها المستخدم. */
.system-generated-field{
  background:#f5f8f3!important;
  color:#45604b!important;
  border-style:dashed!important;
  cursor:default;
  font-weight:800;
}

/* خيار البصمة داخل الملف الوظيفي بدل بطاقة حساب النظام. */
.biometric-field{align-self:end}
.biometric-option{
  min-height:40px;
  border:1px solid #dbe7d7;
  background:#f7fbf5;
  border-radius:10px;
  padding:8px 12px;
  display:flex;
  align-items:center;
  gap:9px;
  cursor:pointer;
  font-size:10.5px;
  font-weight:700;
}
.biometric-option input,
.compact-toggle input{
  width:18px!important;
  height:18px!important;
  min-height:18px!important;
  flex:0 0 18px;
  accent-color:var(--green-700);
}

/* شاشة المسميات: القائمة وحدها، ونموذج الإضافة/التعديل في Popup مستقل. */
.job-titles-modal-card{width:min(930px,95vw)!important}
.job-title-list-layout{min-height:430px;max-height:72vh;display:flex;flex-direction:column;overflow:hidden}
.job-title-list-layout .job-title-panel-head{flex:0 0 auto}
.job-title-list-layout .job-title-table-wrap{flex:1;overflow:auto;padding:10px 12px 14px}
.job-title-table{min-width:720px!important}
.job-title-edit-modal-card{width:min(930px,95vw)!important;max-height:90vh!important}
.nested-modal{z-index:125!important}
.compact-toggle{width:max-content;min-width:150px}

@media(max-width:760px){
  .job-title-list-layout{min-height:360px}
  .job-title-edit-modal-card{width:97vw!important}
}
/* نوافذ التأكيد/النتيجة العامة هي أعلى طبقة تفاعلية في الواجهة.
   يجب أن تظهر فوق أي Modal تشغيلي مفتوح (مثل VAT drill-down الذي يستخدم z-index مرتفع)،
   مع بقاء Busy Overlay فقط أعلى منها أثناء تنفيذ عملية فعلية. */
#submitConfirmModal,#deleteConfirmModal,#operationResultModal{z-index:50000!important}

/* ========================================================================== */
/* V9 — حسابات المستخدمين والأدوار                                            */
/* ========================================================================== */
.security-kpi-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:13px}
.security-kpi-strip.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.security-kpi{min-height:76px;background:#fff;border:1px solid var(--border);border-right:3px solid var(--blue);border-radius:13px;padding:12px 15px;box-shadow:0 6px 18px rgba(28,60,35,.035);display:flex;align-items:center;justify-content:space-between;gap:12px}
.security-kpi span{font-size:10px;color:var(--muted)}
.security-kpi b{font-size:22px;direction:ltr}
.security-kpi.success{border-right-color:var(--green-600)}
.security-kpi.muted{border-right-color:#9aa59d}
.security-kpi.accent{border-right-color:var(--amber)}
.security-main-panel{overflow:visible}
.security-toolbar{padding:11px 14px;flex-wrap:wrap}
.security-filter-bar{display:flex;align-items:center;gap:7px;flex:1;justify-content:flex-end;min-width:0}
.security-filter-bar select{height:40px;min-width:145px;max-width:210px}
.security-search-box{min-width:280px;max-width:420px;flex:1}
.security-table{min-width:1180px}
.security-person-cell{display:flex;align-items:center;gap:8px;justify-content:flex-start;text-align:right}
.security-person-avatar{width:32px;height:32px;flex:0 0 32px;border-radius:9px;background:var(--green-100);color:var(--green-700);display:grid;place-items:center;font-weight:800}
.security-person-cell b,.security-person-cell small{display:block}
.security-person-cell small{font-size:8.5px;color:var(--muted);margin-top:1px;text-align:right}
.role-chip-list{display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap}
.role-chip{display:inline-flex;align-items:center;max-width:145px;padding:3px 8px;border-radius:12px;background:#edf6e9;color:#397133;font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.role-chip.more{background:#f0f2f0;color:#687168}
.status-mini-note{display:block;color:#9a7740;font-size:7.5px;margin-top:3px}
.security-form-body{padding:2px 0 4px}
.security-form-grid{gap:10px 12px}
.user-account-modal-card{width:min(820px,94vw)!important}
.security-role-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;border:1px solid var(--border);border-radius:11px;padding:8px;background:#fafcf9}
.security-role-picker.field-invalid{border-color:#dc5148;background:#fffafa;box-shadow:0 0 0 3px rgba(220,81,72,.1)}
.security-role-option{min-height:54px;border:1px solid #e1e7df;border-radius:10px;padding:8px 10px;background:#fff;display:flex;align-items:center;gap:8px;cursor:pointer;position:relative}
.security-role-option:hover{border-color:#bdd5b4;background:#fbfef9}
.security-role-option input{width:17px!important;height:17px!important;min-height:17px!important;flex:0 0 17px;padding:0!important}
.security-role-option span{min-width:0;flex:1}
.security-role-option b,.security-role-option small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.security-role-option b{font-size:10px}.security-role-option small{font-size:8px;color:var(--muted);margin-top:2px;direction:ltr;text-align:right}
.security-role-option em{font-style:normal;font-size:7.5px;background:#eaf2ff;color:#3473c7;padding:2px 6px;border-radius:9px}
.checkbox-group-error{display:block;margin-top:4px}
.security-switch-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap;border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:#fafcf9}
.security-switch-row .switch-row{margin:0}
.role-modal-card{width:min(720px,94vw)!important}
.role-active-field{justify-content:flex-end}
.role-active-switch{min-height:42px;border:1px solid var(--border);border-radius:10px;padding:8px 10px;background:#fafcf9}
.table-subtext{display:block;color:var(--muted);font-weight:400;font-size:8px;margin-top:3px;max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* المحافظة على معيار الجداول: المنتصف افتراضيًا، الاسم حسب اللغة، والإجراءات في النهاية. */
.security-table th,.security-table td{text-align:center;vertical-align:middle}
.security-table .table-name-ar{text-align:right;direction:rtl}
.security-table .table-name-en{text-align:left;direction:ltr}
.security-table .table-actions-column{text-align:end;white-space:nowrap}

@media(max-width:900px){
  .security-kpi-strip,.security-kpi-strip.three{grid-template-columns:repeat(2,1fr)}
  .security-filter-bar{flex-wrap:wrap;justify-content:flex-start}
  .security-search-box{max-width:none;min-width:220px}
  .security-role-picker{grid-template-columns:1fr}
}
@media(max-width:600px){
  .security-kpi-strip,.security-kpi-strip.three{grid-template-columns:1fr 1fr}
  .security-toolbar{align-items:stretch;flex-direction:column}
  .security-filter-bar{width:100%}.security-filter-bar select,.security-search-box{width:100%;max-width:none;min-width:0}
  .security-switch-row{align-items:flex-start;flex-direction:column;gap:10px}
}


/* ========================================================================== */
/* V9.4 — سياسة كلمة المرور: صندوق رأسي واضح أسفل الحقل                    */
/* ========================================================================== */
.password-field{min-width:0;overflow:visible!important}
.password-input-wrap{position:relative;width:100%;direction:ltr;overflow:visible}
.password-input-wrap input{padding-left:44px!important;padding-right:11px!important;direction:ltr!important;text-align:left!important}
.password-eye-btn{
  position:absolute;left:5px;top:24px;transform:translateY(-50%);
  width:34px;height:32px;min-width:34px;padding:0;border:0;border-radius:8px;
  display:grid;place-items:center;background:transparent;color:#536259;cursor:pointer;
  line-height:1;font-family:Arial,sans-serif;font-size:18px;z-index:4;
}
.password-eye-btn:hover,.password-eye-btn:focus{background:#eef5eb;color:var(--green-700);outline:0}
.password-eye-btn.is-visible{background:#e9f4e5;color:var(--green-700)}

/*
 * صندوق الشروط جزء من تدفق النموذج وليس طبقة عائمة.
 * يظهر بانسيابية من أعلى لأسفل عند التركيز/الكتابة حتى تكون الشروط واضحة.
 */
.password-policy-panel{
  direction:rtl;text-align:right;overflow:hidden;
  display:flex;flex-direction:column;gap:4px;
  max-height:0;opacity:0;margin-top:0;padding:0 9px;
  border:1px solid transparent;border-radius:10px;background:#fff;
  transition:max-height .18s ease,opacity .16s ease,margin .18s ease,padding .18s ease,background .16s ease,border-color .16s ease;
}
.password-policy-panel.is-visible{
  max-height:190px;opacity:1;margin-top:6px;padding:8px 9px;
  background:#fff2f1;border-color:#efb9b4;
}
.password-policy-panel.is-complete{
  background:#edf8ec;border-color:#9bcf95;
}
.password-policy-panel span{
  position:relative;display:block;padding:3px 20px 3px 5px;
  border-radius:7px;font-size:9px;line-height:1.45;color:#b34a43;
}
.password-policy-panel span:before{
  content:'✕';position:absolute;right:4px;top:3px;color:#cf5048;
  font-family:Arial,sans-serif;font-size:9px;font-weight:800;
}
.password-policy-panel span.is-valid{color:#2f7b35;font-weight:700;background:rgba(69,145,63,.06)}
.password-policy-panel span.is-valid:before{content:'✓';color:#2f8a3a}

/* نتيجة التطابق تظهر كسطر صغير أسفل حقل التأكيد. */
.password-match-state{
  display:none;margin-top:5px;padding:5px 8px;border-radius:8px;
  font-size:8.5px;font-weight:700;direction:rtl;text-align:right;
}
.password-match-state.is-visible{display:block}
.password-match-state.is-valid{color:#2f7b35;background:#edf8ec;border:1px solid #a9d5a4}
.password-match-state.is-invalid{color:#b7423b;background:#fff1f0;border:1px solid #efb9b4}

@media(max-width:600px){
  .password-policy-panel span{font-size:8.5px}
}

/* ========================================================================== */
/* V10 — شروط كلمة المرور عائمة + إدارة الصلاحيات                           */
/* ========================================================================== */

/*
 * صندوق شروط كلمة المرور يظل رأسيًا وواضحًا، لكنه Overlay لا يشارك في
 * حساب ارتفاع صف الـGrid. هذا يمنع الفراغ الكبير الذي كان يظهر بجوار الحقل.
 */
.password-policy-panel{
  position:absolute!important;
  top:calc(100% + 7px)!important;
  right:0!important;
  left:0!important;
  z-index:35!important;
  margin:0!important;
  max-height:190px;
  box-shadow:0 12px 28px rgba(33,62,38,.13);
  transform:translateY(-4px);
  pointer-events:none;
}
.password-policy-panel.is-visible{
  margin:0!important;
  transform:translateY(0);
  pointer-events:auto;
}
.security-form-grid{align-items:start}

/* شاشة الصلاحيات */
.permissions-heading{margin-bottom:14px}
.permission-kpi-strip{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px;
}
.permission-kpi-strip .security-kpi{min-height:72px}
.permission-kpi-strip .security-kpi small{display:block;margin-top:2px;color:var(--muted);font-size:9px}
.permission-main-panel{overflow:visible}
.permission-page-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 14px;border-bottom:1px solid var(--border);background:#fbfdf9;
}
.permission-tabs{display:flex;align-items:center;gap:5px;padding:4px;background:#eef3ec;border-radius:12px}
.permission-tab-btn{
  border:0;background:transparent;color:#69756d;border-radius:9px;padding:8px 14px;
  font-size:11px;font-weight:800;cursor:pointer;
}
.permission-tab-btn.active{background:#fff;color:var(--green-700);box-shadow:0 3px 12px rgba(30,60,35,.08)}
.permission-toolbar-links{display:flex;gap:7px}
.permission-tab-panel{display:none;padding:14px}
.permission-tab-panel.active{display:block}
.permission-role-bar{
  display:grid;grid-template-columns:minmax(250px,370px) 1fr auto;align-items:end;gap:12px;
  padding:12px;border:1px solid var(--border);border-radius:14px;background:#fff;margin-bottom:10px;
}
.permission-role-select-field{gap:4px}
.permission-selected-role-summary{
  min-height:48px;display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:7px 12px;
  border-right:3px solid var(--green-600);background:#f8fbf7;border-radius:10px;
}
.permission-selected-role-summary>span{color:var(--muted);font-size:9px}
.permission-selected-role-summary>b{font-size:13px}
.permission-selected-role-summary small{color:var(--muted);font-size:9px}
.permission-save-top{height:42px;white-space:nowrap}
.permission-system-note{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;margin-bottom:10px;
  border:1px solid #cfe0f7;background:#f1f6fd;border-radius:12px;color:#315d92;font-size:10px;
}
.permission-system-note b{font-size:11px}
.permission-module-list{display:flex;flex-direction:column;gap:10px}
.permission-module-card{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:#fff}
.permission-module-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;
  border-bottom:1px solid var(--border);background:linear-gradient(90deg,#fbfdf9,#f3f8f0);
}
.permission-module-head h2{margin:0;font-size:13px}
.permission-module-head small{display:block;color:var(--muted);font-size:8.5px;margin-top:2px}
.permission-module-actions{display:flex;align-items:center;gap:6px;color:#a0aaa3;font-size:9px}
.permission-link-btn{border:0;background:transparent;color:var(--green-700);font-size:9px;font-weight:800;cursor:pointer;padding:3px}
.permission-link-btn:hover{text-decoration:underline}
.permission-matrix-wrap{overflow-x:auto}
.permission-matrix-table{width:100%;border-collapse:collapse;min-width:760px;table-layout:fixed}
.permission-matrix-table th,.permission-matrix-table td{
  border-bottom:1px solid #edf1eb;text-align:center;vertical-align:middle;padding:9px 8px;font-size:10px;
}
.permission-matrix-table th{background:#fafcf9;color:#4d5b51;font-weight:800;white-space:nowrap}
.permission-matrix-table th:not(.permission-resource-head){width:86px}
.permission-resource-head{width:250px;text-align:right!important;padding-right:16px!important}
.permission-resource-cell{text-align:right!important;padding-right:16px!important}
.permission-resource-cell b{display:block;font-size:10.5px}
.permission-resource-cell small{display:block;text-align:right;color:var(--muted);font-size:8px;margin-top:2px}
.permission-check{width:28px;height:28px;margin:auto;display:grid;place-items:center;cursor:pointer}
.permission-check input{position:absolute;opacity:0;pointer-events:none}
.permission-check span{
  width:22px;height:22px;border:1.5px solid #cdd8cb;border-radius:7px;background:#fff;
  display:grid;place-items:center;transition:.16s;
}
.permission-check span:after{content:'✓';font-family:Arial,sans-serif;font-size:13px;font-weight:800;color:#fff;opacity:0;transform:scale(.6);transition:.15s}
.permission-check input:checked+span{background:var(--green-700);border-color:var(--green-700);box-shadow:0 3px 9px rgba(47,125,50,.18)}
.permission-check input:checked+span:after{opacity:1;transform:scale(1)}
.permission-check input:disabled+span{opacity:.8;cursor:not-allowed}
.permission-na{color:#bdc6bf}
.permission-footer-save{
  display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 4px 0;color:var(--muted);font-size:9px;
}
.permission-empty-state{min-height:300px}

.permission-catalog-info{
  display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;margin-bottom:10px;
  border:1px solid #dce8d9;border-radius:12px;background:#f8fbf6;
}
.permission-catalog-info b,.permission-catalog-info span{display:block}
.permission-catalog-info b{font-size:11px}.permission-catalog-info>div>span{color:var(--muted);font-size:9px;margin-top:2px}
.permission-catalog-filter{display:grid;grid-template-columns:minmax(300px,1fr) 230px auto auto;gap:8px;align-items:center;margin-bottom:10px}
.permission-search-box{min-width:0;width:100%}
.permission-catalog-filter .reference-select{height:42px}
.btn.ghost{background:#f7f9f6;color:#667268}
.permission-key{font-family:Consolas,'Courier New',monospace;font-size:9px;color:#315b3b;background:#f1f6ef;padding:4px 7px;border-radius:7px;white-space:nowrap}
.permission-action-pill{display:inline-flex;min-width:56px;justify-content:center;padding:4px 8px;border-radius:8px;background:#eef5eb;color:#37743a;font-size:9px;font-weight:800}
.permission-catalog-table td,.permission-catalog-table th{text-align:center}
.permission-catalog-table .table-name-ar{text-align:right!important}
.mini-btn.permission{color:#31833b;display:inline-grid;place-items:center}

@media(max-width:1000px){
  .permission-kpi-strip{grid-template-columns:repeat(2,1fr)}
  .permission-role-bar{grid-template-columns:1fr 1fr}.permission-save-top{grid-column:span 2;justify-self:end}
  .permission-catalog-filter{grid-template-columns:1fr 200px auto}.permission-catalog-filter .btn.ghost{display:none}
}
@media(max-width:650px){
  .permission-page-toolbar{align-items:stretch;flex-direction:column}.permission-toolbar-links{flex-wrap:wrap}
  .permission-kpi-strip{grid-template-columns:1fr 1fr}
  .permission-role-bar{grid-template-columns:1fr}.permission-save-top{grid-column:auto;width:100%}
  .permission-catalog-filter{grid-template-columns:1fr}.permission-catalog-filter .btn{width:100%}
  .permission-tab-panel{padding:9px}
}

/* ========================================================================== */
/* V11 — CRM العملاء: الملف المركزي وجهات الاتصال والمستندات                 */
/* ========================================================================== */
.crm-page-heading{margin-bottom:12px}
.crm-kpi-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.employee-kpi.warning{border-color:#efcf8d;background:color-mix(in srgb, var(--amber) 8%, var(--surface))}
.employee-kpi.warning b{color:#a56a12}
.crm-main-panel{overflow:visible}
.crm-toolbar{align-items:flex-start;gap:10px}
.crm-filter-bar{display:grid;grid-template-columns:minmax(300px,1.6fr) 150px 150px 190px auto;gap:8px;align-items:center;flex:1}
.crm-search-box{width:100%;min-width:0}
.crm-table{min-width:1200px}
.crm-table th,.crm-table td{text-align:center;vertical-align:middle}
.crm-table .table-name-ar{text-align:right!important}
.crm-table .table-actions-column{text-align:left!important}
.crm-customer-cell{display:flex;align-items:center;justify-content:flex-start;gap:9px;text-align:right}
.crm-customer-avatar{width:34px;height:34px;min-width:34px;border-radius:10px;display:grid;place-items:center;background:#edf6e9;color:var(--green-700);font-weight:800}
.crm-customer-cell b{display:block;font-size:10.5px}.crm-customer-cell small{display:block;color:var(--muted);font-size:8px;margin-top:2px;text-align:left}
.crm-file-count{display:inline-grid;place-items:center;min-width:30px;height:27px;padding:0 8px;border-radius:8px;background:#f1f6ef;color:var(--green-700);font-weight:800}

.crm-customer-modal-card{width:min(1250px,96vw);height:min(850px,94vh);display:flex;flex-direction:column;overflow:hidden}
.crm-modal-head{flex:0 0 auto}
.crm-profile-mark{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,#2f7a35,#70a856);color:#fff;font-size:10px;font-weight:800;letter-spacing:.5px}
.crm-customer-modal-content{display:grid;grid-template-columns:175px 1fr;min-height:0;flex:1;overflow:hidden;border-top:1px solid var(--border)}
.crm-section-nav{border-left:1px solid var(--border);background:#fbfdf9;padding:10px;overflow-y:auto}
.crm-form-scroll{padding:10px 12px;overflow-y:auto;scroll-behavior:smooth}
.crm-modal-footer{flex:0 0 auto}
.crm-form-scroll .employee-form-section{scroll-margin-top:8px}
.crm-form-scroll .form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.crm-form-scroll .span-2{grid-column:span 2}
.is-hidden{display:none!important}
.crm-subrecords-section{padding-bottom:12px}
.crm-child-add{height:36px;padding-inline:12px}
.crm-subrecords-content{margin-top:8px}
.crm-save-first-note{padding:14px;border:1px dashed #cad9c6;border-radius:11px;background:#fbfdf9;text-align:center;color:var(--muted);font-size:9.5px}
.crm-storage-note{display:flex;align-items:center;gap:9px;margin:7px 0 9px;padding:8px 10px;border:1px solid #d8e7d3;border-radius:11px;background:#f7fbf5;color:#426346}
.crm-storage-note>span{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:#e8f3e4;color:var(--green-700)}
.crm-storage-note b{display:block;font-size:9.5px}.crm-storage-note small{display:block;color:var(--muted);font-size:8px;margin-top:2px}
.crm-mini-table-wrap{border:1px solid var(--border);border-radius:11px;overflow:auto;background:#fff}
.crm-mini-table{width:100%;min-width:760px}
.crm-mini-table th,.crm-mini-table td{padding:9px 10px;text-align:center;vertical-align:middle}
.crm-mini-table .table-name-ar{text-align:right!important}
.crm-mini-table .table-actions-column{text-align:left!important}
.crm-mini-table td.table-name-ar small{display:block;color:var(--muted);font-size:8px;margin-top:2px;text-align:right}
.crm-mini-table .pill+.pill{margin-right:4px}
.crm-expiring-text{color:#ac7219;font-weight:800}.crm-expired-text{color:#b8433c;font-weight:800}
.crm-check-card{min-height:44px;display:flex;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:#fbfdf9}
.crm-check-card label{display:flex;align-items:center;gap:8px;width:100%;cursor:pointer;font-size:9.5px;font-weight:700}
.crm-check-card input[type="checkbox"]{width:17px!important;height:17px!important;min-width:17px!important;margin:0!important;accent-color:var(--green-700)}
.crm-child-modal-card{width:min(760px,94vw);max-height:92vh;overflow:auto}
.compact-modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border)}
.compact-modal-head h2{margin:0;font-size:14px}.compact-modal-head span{display:block;color:var(--muted);font-size:8.5px;margin-top:2px}
.crm-child-modal-card .modal-body{padding:12px 14px}
.crm-child-modal-card .modal-footer{padding:10px 14px;border-top:1px solid var(--border)}
.crm-child-modal-card .form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.inline-form{display:inline-block;margin:0}
.mini-btn.danger{color:#b94b43;background:#fff2f1;border-color:#efc6c2}

@media(max-width:1100px){
  .crm-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .crm-filter-bar{grid-template-columns:1fr 145px 145px auto}.crm-filter-bar select[name="ownerEmployeeId"]{display:none}
  .crm-customer-modal-content{grid-template-columns:145px 1fr}
  .crm-form-scroll .form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .crm-kpi-strip{grid-template-columns:1fr 1fr}
  .crm-toolbar{display:block}.crm-toolbar .toolbar-actions{margin-bottom:8px;flex-wrap:wrap}
  .crm-filter-bar{grid-template-columns:1fr}.crm-filter-bar select[name="ownerEmployeeId"]{display:block}
  .crm-customer-modal-card{width:98vw;height:96vh}.crm-customer-modal-content{grid-template-columns:1fr}
  .crm-section-nav{display:flex;gap:5px;overflow-x:auto;border-left:0;border-bottom:1px solid var(--border);padding:7px}
  .crm-section-nav button{white-space:nowrap}
  .crm-form-scroll .form-grid.four,.crm-child-modal-card .form-grid.two{grid-template-columns:1fr}
  .crm-form-scroll .span-2,.crm-child-modal-card .span-2{grid-column:span 1}
}
.crm-duplicate-hint{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:5px;padding:6px 8px;border:1px solid #efbbb6;border-radius:8px;background:#fff2f1;color:#a63e38;font-size:8.5px;line-height:1.5}
.crm-duplicate-hint button{border:0;background:transparent;color:#8f2f2a;font-weight:800;white-space:nowrap;cursor:pointer;text-decoration:underline;font-family:inherit;font-size:8.5px}
.crm-storage-note.storage-error{border-color:#efbbb6;background:#fff2f1;color:#a43c36}
.crm-storage-note.storage-error>span{background:#fde4e1;color:#b63d36}
.pill.muted{background:#f1f3f1;color:#687168}

/* ========================================================================== */
/* V11.1 — تحسينات CRM: Scroll + ComboBox + بيانات التواصل                  */
/* ========================================================================== */
/*
   ملف العميل يستخدم Form داخل modal-card. يجب أن يكون الـForm نفسه Flex
   حتى يأخذ جزء المحتوى الارتفاع المتاح ويصبح customerFormScroll هو الجزء
   الوحيد الذي يتحرك، بينما الهيدر والقائمة الجانبية والفوتر تظل ثابتة.
*/
.crm-customer-modal-card>form{
  display:flex;
  flex-direction:column;
  width:100%;
  height:100%;
  min-height:0;
}
.crm-customer-modal-content{
  min-height:0!important;
  overflow:hidden!important;
}
.crm-form-scroll{
  min-height:0!important;
  height:100%;
  overflow-y:auto!important;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.crm-section-nav{
  min-height:0;
  overflow-y:auto!important;
}

/* فلاتر CRM تستخدم نفس الشكل العصري للقوائم المرجعية في بقية النظام. */
.crm-filter-bar{
  grid-template-columns:minmax(300px,1.6fr) 145px 165px 145px 180px auto;
}
.crm-filter-select{
  width:100%;
  min-width:0;
  height:42px!important;
  border:1px solid #d8e2d5!important;
  border-radius:11px!important;
  background-color:#fff!important;
  box-shadow:0 2px 8px rgba(34,69,38,.035);
  transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;
}
.crm-filter-select:hover{
  border-color:#a9c7a1!important;
  background-color:#fbfefb!important;
}
.crm-filter-select:focus{
  border-color:#75a95f!important;
  box-shadow:0 0 0 3px rgba(75,139,60,.10)!important;
}

@media(max-width:1100px){
  .crm-filter-bar{grid-template-columns:1fr 140px 155px 140px auto}
  .crm-filter-bar select[name="ownerEmployeeId"]{display:none}
}
@media(max-width:700px){
  .crm-filter-bar{grid-template-columns:1fr}
  .crm-filter-bar select[name="ownerEmployeeId"]{display:block}
}

/* ========================================================================== */
/* V11.2 — CRM: ملاحظات مستقلة + أزرار السجلات الفرعية + فلاتر موحدة        */
/* ========================================================================== */
/*
   الملاحظات تبدأ بنفس ارتفاع الحقول العادية، ويمكن للمستخدم تكبير كل TextArea
   رأسيًا بصورة مستقلة. align-self:start يمنع تمدد TextArea المقابل بصريًا عند
   تكبير العربي أو الإنجليزي.
*/
.crm-independent-note{align-self:start!important;min-height:0}
.crm-resizable-note{
  min-height:var(--control-height,42px)!important;
  height:var(--control-height,42px);
  resize:vertical!important;
  overflow:auto;
  align-self:start;
}
.crm-form-scroll .form-grid{align-items:start}

/* أزرار إضافة جهة اتصال / مستند تظل قابلة للنقر حتى في العميل الجديد؛
   عندها يحفظ النظام بيانات العميل أولًا بعد الـValidation والتأكيد ثم يفتح النموذج الفرعي. */
.crm-child-add{
  min-width:max-content;
  border-color:#cbd9c8!important;
  background:#fff!important;
  color:#314936!important;
  font-weight:800;
}
.crm-child-add:hover{border-color:#89b37e!important;background:#f4faf1!important;color:#286c30!important}

/* نفس الـComboBox المرجعي المعتمد، مع إبراز لطيف في شريط فلاتر CRM. */
.crm-filter-select{
  background-color:#fff!important;
  border-color:#d4e0d1!important;
  border-radius:12px!important;
  box-shadow:0 1px 2px rgba(28,65,34,.03)!important;
}
.crm-filter-select:hover{background-color:#fbfefb!important;border-color:#a9c7a1!important}


/* ==========================================================================
   CRM V11.3 - Searchable Economic Activity Combo
   ========================================================================== */
.crm-activity-search-combo{position:relative;width:100%;min-width:0}
.crm-activity-source-select{display:none!important}
.crm-activity-search-input{
  width:100%;height:var(--control-height,42px);min-height:var(--control-height,42px);
  border:1px solid #dfe6dd;border-radius:10px;background:#fff;outline:none;
  padding:9px 36px 9px 11px!important;transition:.18s;direction:rtl;text-align:right;
}
.crm-activity-search-input:focus{border-color:#75a95f;box-shadow:0 0 0 3px rgba(75,139,60,.1)}
.crm-activity-search-toggle{position:absolute;left:6px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:0;border-radius:7px;background:transparent;color:#68776b;cursor:pointer;z-index:2}
.crm-activity-search-combo.is-open .crm-activity-search-toggle{transform:translateY(-50%) rotate(180deg)}
.crm-activity-search-dropdown{
  display:none;position:absolute;right:0;left:0;top:calc(100% + 5px);z-index:145;
  border:1px solid #d9e5d6;border-radius:12px;background:#fff;box-shadow:0 16px 36px rgba(34,69,43,.16);
  overflow:hidden;min-width:min(620px,85vw);max-width:720px
}
.crm-activity-search-combo.is-open .crm-activity-search-dropdown{display:block}
.crm-activity-search-caption{padding:8px 10px;border-bottom:1px solid #edf2eb;background:#f8fbf7;color:#6c7d70;font-size:8.5px}
.crm-activity-results{max-height:285px;overflow:auto;padding:5px}
.crm-activity-result{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:9px;width:100%;border:0;background:#fff;padding:8px 9px;border-radius:8px;cursor:pointer;text-align:right;font-family:inherit}
.crm-activity-result:hover,.crm-activity-result.is-active{background:#eef7eb}
.crm-activity-result-code{direction:ltr;text-align:center;background:#edf4e9;color:#2c7433;border-radius:7px;padding:4px 6px;font-size:9px;font-weight:800}
.crm-activity-result-name{font-size:9.5px;line-height:1.55;color:#314237}
.crm-activity-empty{padding:18px 12px;text-align:center;color:#7a887d;font-size:9px}
.crm-activity-add-button{width:100%;border:0;border-top:1px solid #e4ece1;background:#f7fbf5;color:#2e7534;padding:10px 12px;text-align:right;font-family:inherit;font-size:9.5px;font-weight:800;cursor:pointer}
.crm-activity-add-button:hover{background:#edf7e9}
.crm-filter-activity-combo{min-width:190px}
.crm-filter-activity-combo .crm-activity-search-input{height:42px;min-height:42px;border-radius:11px;font-size:10px}
.crm-filter-activity-combo .crm-activity-search-dropdown{right:auto;left:0;min-width:min(620px,88vw)}
.crm-activity-modal{z-index:160}
.crm-activity-modal-card{width:min(720px,94vw)!important;overflow:visible!important}
.crm-activity-modal-card .modal-body{overflow:visible;padding:12px 14px}
.crm-field-hint{color:var(--muted);font-size:8px;line-height:1.5}
.crm-inline-server-message{padding:9px 11px;border-radius:9px;font-size:9px;line-height:1.55}
.crm-inline-server-message.is-error{border:1px solid #efbbb6;background:#fff2f1;color:#a63e38}
@media(max-width:700px){
  .crm-activity-search-dropdown,.crm-filter-activity-combo .crm-activity-search-dropdown{right:0;left:0;min-width:100%;max-width:100%}
  .crm-activity-result{grid-template-columns:64px minmax(0,1fr)}
}

/* ==========================================================================
   CRM V11.4 - النشاط الاقتصادي: ComboBox واضح والبحث داخل القائمة
   ========================================================================== */
/*
   لا يتحول حقل النشاط نفسه إلى SearchBox. الحقل المغلق يظل ComboBox واضحًا
   (اختر النشاط/كل الأنشطة)، وعند فتحه يظهر مربع البحث أعلى القائمة.
*/
.crm-activity-search-combo{
  position:relative;
  width:100%;
  min-width:0;
}
.crm-activity-source-select{display:none!important}
.crm-activity-select-trigger{
  width:100%;
  height:var(--control-height,42px);
  min-height:var(--control-height,42px);
  border:1px solid #dfe6dd;
  border-radius:10px;
  background:#fff;
  color:#27372d;
  padding:0 12px 0 36px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  position:relative;
  outline:none;
  cursor:pointer;
  font-family:inherit;
  font-size:inherit;
  direction:rtl;
  text-align:right;
  transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;
}
.crm-activity-select-trigger:hover{border-color:#a9c7a1;background:#fbfefb}
.crm-activity-select-trigger:focus,
.crm-activity-search-combo.is-open .crm-activity-select-trigger{
  border-color:#75a95f;
  box-shadow:0 0 0 3px rgba(75,139,60,.10);
}
.crm-activity-select-label{
  display:block;
  width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.crm-activity-select-label.is-placeholder{color:#69766d}
.crm-activity-select-arrow{
  position:absolute;
  left:11px;
  top:50%;
  transform:translateY(-50%);
  color:#627069;
  font-size:14px;
  line-height:1;
  transition:transform .16s ease;
}
.crm-activity-search-combo.is-open .crm-activity-select-arrow{transform:translateY(-50%) rotate(180deg)}
.crm-activity-search-dropdown{
  display:none;
  position:absolute;
  right:0;
  top:calc(100% + 6px);
  z-index:145;
  width:100%;
  min-width:100%;
  max-width:100%;
  border:1px solid #d9e5d6;
  border-radius:12px;
  background:#fff;
  box-shadow:0 16px 36px rgba(34,69,43,.16);
  overflow:hidden;
}
.crm-activity-search-combo.is-open .crm-activity-search-dropdown{display:block}
.crm-activity-dropdown-search-wrap{
  margin:8px 8px 5px;
  height:38px;
  border:1px solid #dce6da;
  border-radius:9px;
  background:#fff;
  display:flex;
  align-items:center;
  gap:6px;
  padding:0 9px;
}
.crm-activity-dropdown-search-wrap:focus-within{
  border-color:#75a95f;
  box-shadow:0 0 0 3px rgba(75,139,60,.08);
}
.crm-activity-dropdown-search-icon{color:#65746a;font-size:13px}
.crm-activity-dropdown-search{
  flex:1;
  min-width:0;
  height:100%;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  background:transparent!important;
  padding:0!important;
  direction:rtl;
  text-align:right;
  font-family:inherit;
  font-size:9.5px;
}
.crm-activity-search-caption{
  padding:4px 10px 7px;
  border-bottom:1px solid #edf2eb;
  background:#fff;
  color:#819087;
  font-size:8px;
  line-height:1.45;
}
.crm-activity-results{max-height:270px;overflow:auto;padding:5px}
.crm-activity-result{
  display:grid;
  grid-template-columns:68px minmax(0,1fr);
  align-items:center;
  gap:8px;
  width:100%;
  border:0;
  background:#fff;
  padding:7px 7px;
  border-radius:8px;
  cursor:pointer;
  text-align:right;
  font-family:inherit;
}
.crm-activity-result:hover,.crm-activity-result.is-active{background:#eef7eb}
.crm-activity-result-code{
  direction:ltr;
  text-align:center;
  background:#edf4e9;
  color:#2c7433;
  border-radius:7px;
  padding:4px 5px;
  font-size:8.5px;
  font-weight:800;
}
.crm-activity-result-name{
  min-width:0;
  white-space:normal;
  overflow-wrap:anywhere;
  font-size:9px;
  line-height:1.55;
  color:#314237;
}
.crm-activity-empty{padding:18px 10px;text-align:center;color:#7a887d;font-size:9px}
.crm-activity-add-button{
  width:100%;
  border:0;
  border-top:1px solid #e4ece1;
  background:#f7fbf5;
  color:#2e7534;
  padding:10px 12px;
  text-align:right;
  font-family:inherit;
  font-size:9.5px;
  font-weight:800;
  cursor:pointer;
}
.crm-activity-add-button:hover{background:#edf7e9}

/* فلتر النشاط في صفحة العملاء يوازي كل الـComboBox الأخرى تمامًا. */
.crm-filter-activity-combo{
  width:100%;
  min-width:0;
  height:42px;
  align-self:center;
}
.crm-filter-activity-combo .crm-activity-select-trigger{
  height:42px;
  min-height:42px;
  border-radius:11px;
  border-color:#d8e2d5;
  box-shadow:0 2px 8px rgba(34,69,38,.035);
  font-size:10px;
  padding-right:12px;
}
.crm-filter-activity-combo .crm-activity-search-dropdown{
  width:min(440px,80vw);
  min-width:300px;
  max-width:min(440px,80vw);
  right:0;
}

@media(max-width:700px){
  .crm-filter-activity-combo{height:42px}
  .crm-filter-activity-combo .crm-activity-search-dropdown,
  .crm-activity-search-dropdown{
    width:100%;
    min-width:100%;
    max-width:100%;
    right:0;
  }
}


/* ==========================================================================
   CRM V11.5 - تخطيط النشاط الاقتصادي والقائمة الكبيرة
   ========================================================================== */
/* النشاط في صف مستقل بعرض عمودين ليظل الاسم الرسمي الطويل واضحًا. */
.crm-economic-activity-wide{
  grid-column:span 2;
  min-width:0;
}
.crm-economic-activity-wide .crm-activity-select-trigger{
  width:100%;
}
.crm-economic-activity-wide .crm-activity-search-dropdown{
  width:100%;
  min-width:100%;
  max-width:100%;
}

/* القائمة تدعم آلاف الأنشطة: ارتفاع مريح + Scroll مع تحميل تدريجي. */
.crm-economic-activity-wide .crm-activity-results{
  max-height:360px;
}
.crm-activity-search-caption{
  min-height:26px;
  display:flex;
  align-items:center;
}

@media(max-width:700px){
  .crm-economic-activity-wide{grid-column:1 / -1}
}

/* ==========================================================================
   CRM V11.6 - وضوح قائمة النشاط الاقتصادي وعدم تداخلها مع فوتر ملف العميل
   ========================================================================== */
/* تكبير النص بدرجة بسيطة ليظل الكود والاسم الرسمي الطويل مقروءين بوضوح. */
.crm-activity-dropdown-search{
  font-size:11px;
}
.crm-activity-search-caption{
  font-size:9.5px;
  line-height:1.55;
  padding:5px 10px 8px;
}
.crm-activity-result{
  grid-template-columns:76px minmax(0,1fr);
  gap:10px;
  padding:9px 9px;
}
.crm-activity-result-code{
  font-size:10px;
  padding:5px 6px;
}
.crm-activity-result-name{
  font-size:11px;
  line-height:1.65;
}
.crm-activity-empty{font-size:10.5px}
.crm-activity-add-button{font-size:10.5px}

/*
   القائمة نفسها تصبح Flex عند الفتح، وارتفاعها يحدد بالـJS حسب المساحة الفعلية
   المتاحة حتى أعلى فوتر نافذة العميل. بذلك لا تختفي النتائج/زر الإضافة خلف الفوتر.
*/
.crm-activity-search-combo.is-open .crm-activity-search-dropdown{
  display:flex;
  flex-direction:column;
  max-height:var(--activity-dropdown-max-height,420px);
}
.crm-activity-search-dropdown .crm-activity-results{
  flex:1 1 auto;
  min-height:0;
  max-height:none;
  overflow-y:auto;
  overscroll-behavior:contain;
}
.crm-activity-search-combo.activity-open-up .crm-activity-search-dropdown{
  top:auto;
  bottom:calc(100% + 6px);
}

@media(max-width:700px){
  .crm-activity-result{grid-template-columns:70px minmax(0,1fr)}
  .crm-activity-result-name{font-size:10.5px}
}

/* ========================================================================== */
/* V11.7 — استجابة عامة للشاشات المختلفة مع اعتماد 1366×768 كهدف Desktop   */
/* ========================================================================== */
/*
   الفكرة: لا نحول شاشة 1366 إلى Tablet مبكرًا. نقلل عرض الشريط الجانبي
   والمسافات تدريجيًا، ونترك الجداول تعمل داخل حاوية Scroll أفقية عند الحاجة.
   هذا مهم أيضًا مع Windows Scaling 125% حيث يصبح عرض الـCSS الفعلي أقل.
*/

/* Desktop متوسط: 1366 وما حوله. */
@media (min-width:1101px) and (max-width:1440px){
  .sidebar{width:220px;padding:14px 10px}
  .main-area{width:calc(100% - 220px);margin-right:220px}
  .brand{gap:9px;padding:2px 5px 12px}
  .brand-mark{width:42px;height:42px;border-radius:12px;font-size:24px}
  .brand strong{font-size:13px}.brand span{font-size:9.5px}
  .side-nav{padding-top:9px}
  .nav-caption{font-size:10px;padding:7px 10px 4px}
  .nav-item,.nav-group-title{min-height:36px;padding:7px 9px;margin:2px 0;border-radius:9px;font-size:11.5px;gap:7px}
  .nav-group .nav-item{padding-right:31px}
  .nav-symbol{width:18px;font-size:15px}
  .nav-item small{font-size:8.5px}
  .sidebar-footer{padding:9px 10px;border-radius:10px}.sidebar-footer b,.sidebar-footer span{font-size:9px}

  .topbar{height:60px;padding:0 14px;gap:12px}
  .page-branding{font-size:15px}
  .global-search{height:39px;max-width:300px;padding-inline:10px}
  .icon-btn{width:36px;height:36px;border-radius:9px}
  .avatar{width:34px;height:34px}.user-chip{gap:6px;margin-right:3px}.user-chip b,.user-chip span{font-size:9.5px}
  .content{padding:12px 14px 16px}
  .page-heading,.compact-heading{margin-bottom:10px;gap:12px}
  .compact-heading h1{font-size:19px}.compact-heading p{font-size:9.5px}.breadcrumbs{font-size:9.5px}
  .summary-grid,.compact-summary-grid,.employee-kpi-strip,.security-kpi-strip,.permission-kpi-strip,.crm-kpi-strip{gap:8px;margin-bottom:9px}
  .employee-kpi,.security-kpi,.compact-summary-card{min-height:72px;padding:10px 12px}
  .toolbar,.compact-toolbar,.employee-toolbar,.security-toolbar,.crm-toolbar{padding:9px 10px;gap:7px}
  .toolbar-actions,.filter-bar{gap:7px}
  .btn{padding:8px 12px;font-size:10.5px;border-radius:9px}
  .search-box{height:40px;min-width:230px;padding-inline:10px}
  .filter-bar select{height:40px;min-width:112px;padding-inline:9px}
  .comfortable-table-wrap{padding:0 7px 7px}
  .data-table th{padding:9px 10px;font-size:10px}.data-table td{padding:9px 10px;font-size:10px}

  /* CRM على 1366: يبقى شريط البحث والفلاتر في صف واحد بدون تزاحم. */
  .crm-filter-bar{grid-template-columns:minmax(230px,1fr) 118px 118px minmax(170px,210px) auto;gap:6px}
  .crm-filter-select,.crm-filter-activity-combo,.crm-filter-activity-combo .crm-activity-select-trigger{height:40px;min-height:40px}
  .crm-kpi-strip .employee-kpi{min-height:64px}
  .crm-customer-modal-card{width:min(1180px,97vw);height:min(720px,95vh)}
  .crm-customer-modal-content{grid-template-columns:150px 1fr}
  .crm-section-nav{padding:7px}
  .crm-form-scroll{padding:8px 9px}
  .compact-grid{gap:8px 9px;padding:9px 11px}
  .crm-form-scroll .employee-form-section{margin-bottom:8px}
  .crm-modal-footer{padding:9px 12px}
}

/*
   1366 مع Scaling 125% قد يصل فعليًا إلى قرابة 1090 CSS px.
   نحافظ هنا على Desktop Sidebar مصغر بدل تحويل الواجهة إلى قائمة هاتف مبكرًا،
   بينما تظل بقية الـgrids تستخدم قواعد <=1100 الأكثر مرونة.
*/
@media (min-width:961px) and (max-width:1100px){
  .sidebar{width:196px;padding:12px 8px;transform:none!important;transition:none}
  .main-area{width:calc(100% - 196px);margin-right:196px}
  .mobile-menu{display:none!important}
  .brand{gap:7px;padding:2px 4px 10px}.brand-mark{width:38px;height:38px;border-radius:11px;font-size:21px}
  .brand strong{font-size:11.5px}.brand span{font-size:8.5px}
  .side-nav{padding-top:7px}.nav-caption{font-size:9px;padding:6px 8px 3px}
  .nav-item,.nav-group-title{min-height:33px;padding:6px 8px;margin:2px 0;font-size:10.5px;gap:6px}
  .nav-group .nav-item{padding-right:27px}.nav-symbol{width:16px;font-size:13px}.nav-item small{font-size:7.5px}
  .sidebar-footer{padding:8px}.sidebar-footer b,.sidebar-footer span{font-size:8px}
  .topbar{height:56px;padding:0 11px;gap:9px}.page-branding{font-size:13px}
  .global-search{display:none!important}
  .icon-btn{width:34px;height:34px}.avatar{width:32px;height:32px}.user-chip b,.user-chip span{font-size:8.5px}
  .content{padding:10px 11px 14px}
  .compact-heading h1{font-size:17px}.compact-heading p{font-size:9px}.breadcrumbs{font-size:8.5px}
  .crm-filter-bar{grid-template-columns:minmax(210px,1fr) 110px 110px minmax(155px,1fr) auto;gap:5px}
  .crm-filter-bar select[name="ownerEmployeeId"]{display:none}
  .crm-toolbar{display:flex;align-items:center}
  .crm-toolbar .toolbar-actions{margin-bottom:0;flex-wrap:nowrap}
  .crm-customer-modal-card{width:98vw;height:96vh}
  .crm-customer-modal-content{grid-template-columns:130px 1fr}
  .crm-section-nav{padding:6px}
  .crm-form-scroll{padding:7px}
  .crm-child-modal-card{width:min(700px,96vw)}
}

/* Tablet / نافذة Desktop ضيقة: هنا فقط يتحول الـSidebar إلى Drawer. */
@media (max-width:960px){
  .sidebar{transform:translateX(100%)}
  .sidebar.open{transform:translateX(0)}
  .main-area{width:100%;margin-right:0}
  .mobile-menu{display:block}
  .global-search{display:none}
  .content{padding:11px}
  .table-wrap,.comfortable-table-wrap,.crm-mini-table-wrap{overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
}

/* موبايل: منع أي عنصر عريض من دفع الصفحة كلها أفقيًا. */
@media (max-width:700px){
  .app-shell,.main-area,.content,.panel,.modal-card{max-width:100%}
  .topbar{height:56px}
  .page-branding{max-width:45vw;overflow:hidden;text-overflow:ellipsis}
  .crm-toolbar .toolbar-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .crm-toolbar .toolbar-actions .btn{width:100%}
  .crm-filter-bar{width:100%}
  .crm-customer-modal-card{inset:1vh 1vw auto auto;top:50%;left:50%;width:98vw;height:97vh;max-height:97vh;border-radius:12px}
  .crm-modal-head{padding:9px 10px}
  .crm-modal-footer{padding:8px 10px;gap:6px;flex-wrap:wrap}
  .crm-modal-footer .btn{flex:1;min-width:120px}
}

/* ========================================================================== */
/* CRM V12 - العملاء المحتملون Leads                                           */
/* ========================================================================== */
.lead-main-panel { overflow: visible; }
.lead-toolbar { align-items: center; }
.lead-filter-bar { min-width: 0; }
.lead-filter-bar .crm-search-box { flex: 1 1 360px; min-width: 250px; }
.lead-filter-bar .crm-filter-select { min-width: 145px; }
.lead-table { min-width: 1180px; }
.lead-table td, .lead-table th { vertical-align: middle; }
.lead-activity-cell { max-width: 250px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lead-avatar { background: #eef8e9; color: #277a2a; }
.lead-converted-row { opacity: .78; background: #fbfcfb; }
.lead-follow-overdue { color: #b42318; font-weight: 800; }
.lead-follow-today { color: #9a6700; font-weight: 800; }

.lead-modal-card {
    width: min(1180px, calc(100vw - 40px));
    height: min(820px, calc(100vh - 30px));
    max-height: calc(100vh - 30px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
/*
   مهم: الـform هو الاب المباشر للهيدر ومنطقة المحتوى والفوتر.
   بدون جعله Flex كان overflow الخاص بـ lead-modal-scroll لا يأخذ ارتفاعًا محدودًا،
   وبالتالي كانت نهاية نموذج الـLead تختفي خصوصًا على 1366x768.
*/
.lead-modal-card > form {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}
.lead-modal-head { flex: 0 0 auto; }
.lead-modal-scroll {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    overflow-y: auto !important;
    overflow-x: hidden;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: 12px 16px 18px;
    scrollbar-gutter: stable;
}
@supports (height: 100dvh) {
    .lead-modal-card {
        height: min(820px, calc(100dvh - 30px));
        max-height: calc(100dvh - 30px);
    }
}
.lead-modal-footer { flex: 0 0 auto; border-top: 1px solid var(--border, #e4e8e3); background: #fff; }
/* V12.2: القائمة تحسب ارتفاعها داخل lead-modal-scroll، لذلك تقف قبل الفوتر. */
.lead-modal-scroll .crm-activity-search-combo{z-index:2}
.lead-modal-scroll .crm-activity-search-combo.is-open{z-index:20}

.lead-grid .field { min-width: 0; }
.lead-activity-field .crm-activity-select-trigger { min-height: 42px; }
.lead-convert-btn {
    background: #eef8e9;
    color: #247328;
    border: 1px solid #b9deb6;
    font-weight: 800;
}
.lead-convert-btn:hover { background: #e3f4df; }
.lead-duplicate-warning {
    margin: 12px 0 4px;
    padding: 10px 12px;
    border: 1px solid #f4c7a2;
    background: #fff8f1;
    color: #7a3d00;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.lead-duplicate-warning[hidden] { display: none !important; }
.lead-duplicate-warning div { display: flex; flex-direction: column; gap: 2px; }
.lead-duplicate-warning button {
    border: 1px solid #e9b98e;
    background: #fff;
    color: #7a3d00;
    border-radius: 9px;
    padding: 7px 10px;
    font-family: inherit;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}
.lead-convert-confirm-card { width: min(430px, calc(100vw - 32px)); }

/* 1366x768 وما حوله: تقليل المسافات فقط بدون التضحية بوضوح الحقول. */
@media (max-width: 1440px) {
    .lead-filter-bar { gap: 7px; }
    .lead-filter-bar .crm-search-box { flex-basis: 300px; }
    .lead-filter-bar .crm-filter-select { min-width: 132px; max-width: 165px; }
    .lead-modal-card { width: min(1080px, calc(100vw - 28px)); height: min(750px, calc(100vh - 18px)); max-height: calc(100vh - 18px); }
    .lead-modal-scroll { padding: 9px 12px 14px; }
    .lead-modal-scroll .employee-form-section { padding: 12px; margin-bottom: 10px; }
    .lead-grid { gap: 9px; }
}

@media (max-width: 1100px) {
    .lead-filter-bar { flex-wrap: wrap; }
    .lead-filter-bar .crm-search-box { flex: 1 1 100%; }
    .lead-filter-bar .crm-filter-select { flex: 1 1 160px; max-width: none; }
    .lead-grid.form-grid.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lead-grid .span-2 { grid-column: span 2; }
}

@media (max-width: 700px) {
    .lead-kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lead-modal-card { width: calc(100vw - 12px); height: calc(100vh - 12px); max-height: calc(100vh - 12px); }
    .lead-modal-scroll { padding: 7px; }
    .lead-grid.form-grid.four, .lead-grid.form-grid.two { grid-template-columns: 1fr; }
    .lead-grid .span-2 { grid-column: auto; }
    .lead-modal-footer { gap: 6px; flex-wrap: wrap; }
    .lead-modal-footer .btn { flex: 1 1 auto; }
    .lead-duplicate-warning { align-items: stretch; flex-direction: column; }
}

@supports (height: 100dvh) {
    @media (max-width: 1440px) {
        .lead-modal-card { height: min(750px, calc(100dvh - 18px)); max-height: calc(100dvh - 18px); }
    }
    @media (max-width: 700px) {
        .lead-modal-card { height: calc(100dvh - 12px); max-height: calc(100dvh - 12px); }
    }
}

/* ========================================================================== */
/* CRM V13 - الفرص البيعية Opportunities                                      */
/* ========================================================================== */
.opportunity-kpi-strip{grid-template-columns:repeat(5,minmax(0,1fr))}
.opportunity-main-panel{overflow:visible}
.opportunity-filter-bar{min-width:0}
.opportunity-filter-bar .crm-search-box{min-width:250px}
.opportunity-table{min-width:1180px}
.opportunity-table td,.opportunity-table th{vertical-align:middle}
.opportunity-source-cell{display:flex;align-items:center;justify-content:flex-start;gap:7px;text-align:right}
.opportunity-probability{display:inline-grid;place-items:center;min-width:46px;height:27px;padding:0 8px;border-radius:9px;background:#f2f7f0;color:#2f7035;font-weight:800}
.opportunity-closed-row{background:color-mix(in srgb, var(--canvas) 55%, var(--surface));opacity:.82}
.opportunity-profile-mark{font-size:9px;letter-spacing:.4px}

.opportunity-modal-card{
    width:min(1120px,calc(100vw - 36px));
    height:min(790px,calc(100vh - 24px));
    max-height:calc(100vh - 24px);
    display:flex;
    flex-direction:column;
    overflow:hidden;
}
.opportunity-modal-card>form{
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
    width:100%;
    height:100%;
    min-height:0;
    overflow:hidden;
}
.opportunity-modal-head{flex:0 0 auto}
.opportunity-modal-scroll{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding:11px 14px 18px;
    scrollbar-gutter:stable;
}
.opportunity-modal-footer{flex:0 0 auto;border-top:1px solid var(--border,#e4e8e3);background:#fff}
.opportunity-grid .field{min-width:0}
.opportunity-grid .span-3{grid-column:span 3}
.opportunity-outcome-section{border-color:#ecd2a2;background:#fffdf8}

@supports (height:100dvh){
    .opportunity-modal-card{height:min(790px,calc(100dvh - 24px));max-height:calc(100dvh - 24px)}
}

@media (max-width:1440px){
    .opportunity-kpi-strip{gap:7px}
    .opportunity-filter-bar{grid-template-columns:minmax(230px,1fr) 130px 145px 170px auto;gap:6px}
    .opportunity-modal-card{width:min(1040px,calc(100vw - 24px));height:min(740px,calc(100vh - 16px));max-height:calc(100vh - 16px)}
    .opportunity-modal-scroll{padding:8px 11px 14px}
    .opportunity-modal-scroll .employee-form-section{padding:11px;margin-bottom:8px}
    .opportunity-grid{gap:8px}
}

@media (max-width:1100px){
    .opportunity-kpi-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
    .opportunity-filter-bar{grid-template-columns:1fr 145px 145px auto}
    .opportunity-filter-bar select[name="ownerEmployeeId"]{display:none}
    .opportunity-grid.form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}
    .opportunity-grid .span-2,.opportunity-grid .span-3{grid-column:span 2}
}

@media (max-width:700px){
    .opportunity-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
    .opportunity-kpi-won{grid-column:span 2}
    .opportunity-filter-bar{grid-template-columns:1fr}
    .opportunity-filter-bar select[name="ownerEmployeeId"]{display:block}
    .opportunity-modal-card{width:calc(100vw - 10px);height:calc(100vh - 10px);max-height:calc(100vh - 10px)}
    .opportunity-modal-scroll{padding:7px}
    .opportunity-grid.form-grid.four,.opportunity-grid.form-grid.two{grid-template-columns:1fr}
    .opportunity-grid .span-2,.opportunity-grid .span-3{grid-column:auto}
    .opportunity-modal-footer{gap:6px;flex-wrap:wrap}
    .opportunity-modal-footer .btn{flex:1 1 auto}
}

@supports (height:100dvh){
    @media (max-width:1440px){
        .opportunity-modal-card{height:min(740px,calc(100dvh - 16px));max-height:calc(100dvh - 16px)}
    }
    @media (max-width:700px){
        .opportunity-modal-card{height:calc(100dvh - 10px);max-height:calc(100dvh - 10px)}
    }
}


/* ============================================================================
   V13.1 - Searchable ComboBox Standard
   كل قائمة تحمل data-searchable-select تعرض بحثًا داخليًا مع الحفاظ على select الأصلي.
============================================================================ */
.searchable-select-combo{
    position:relative;
    width:100%;
    min-width:0;
    z-index:2;
}
.searchable-select-combo.is-open{z-index:80}
.searchable-select-native{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    opacity:0!important;
    pointer-events:none!important;
    overflow:hidden!important;
    inset-inline-start:0;
    bottom:0;
}
.searchable-select-trigger{
    width:100%;
    height:var(--control-height,44px);
    min-height:var(--control-height,44px);
    border:1px solid #d7e1d3;
    border-radius:12px;
    background:#fff;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:0 14px;
    font:inherit;
    color:#26352b;
    cursor:pointer;
    text-align:right;
    direction:rtl;
    transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.searchable-select-trigger:hover{border-color:#b7cdb0}
.searchable-select-trigger:focus{
    outline:none;
    border-color:#69a75d;
    box-shadow:0 0 0 3px rgba(86,145,73,.12);
}
.searchable-select-label{
    min-width:0;
    flex:1;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
}
.searchable-select-arrow{
    flex:0 0 auto;
    font-size:16px;
    line-height:1;
    transition:transform .15s ease;
}
.searchable-select-combo.is-open .searchable-select-arrow{transform:rotate(180deg)}
.searchable-select-combo.is-disabled .searchable-select-trigger{
    background:#f3f5f2;
    color:#8c968e;
    cursor:not-allowed;
}
.searchable-select-dropdown{
    display:none;
    position:absolute;
    inset-inline:0;
    top:calc(100% + 6px);
    background:#fff;
    border:1px solid #d7e1d3;
    border-radius:14px;
    box-shadow:0 16px 38px rgba(35,55,40,.16);
    padding:9px;
    z-index:4000;
    overflow:hidden;
}
.searchable-select-combo.is-open .searchable-select-dropdown{display:block}
.searchable-select-combo.searchable-open-up .searchable-select-dropdown{
    top:auto;
    bottom:calc(100% + 6px);
}
.searchable-select-search-wrap{position:relative}
.searchable-select-search{
    width:100%;
    height:40px;
    border:1px solid #cbd8c7;
    border-radius:10px;
    padding:0 36px 0 10px;
    font:inherit;
    direction:rtl;
    text-align:right;
    background:#fff;
}
.searchable-select-search:focus{
    outline:none;
    border-color:#69a75d;
    box-shadow:0 0 0 3px rgba(86,145,73,.10);
}
.searchable-select-search-icon{
    position:absolute;
    right:12px;
    top:50%;
    transform:translateY(-50%);
    color:#6f7f73;
    pointer-events:none;
}
.searchable-select-caption{
    padding:7px 4px 5px;
    font-size:11px;
    color:#7b897e;
    text-align:right;
}
.searchable-select-results{
    max-height:var(--searchable-select-max-height,320px);
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
}
.searchable-select-option{
    width:100%;
    border:0;
    background:transparent;
    border-radius:9px;
    padding:9px 10px;
    margin:1px 0;
    font:inherit;
    color:#34443a;
    text-align:right;
    direction:rtl;
    cursor:pointer;
}
.searchable-select-option:hover,
.searchable-select-option:focus{
    outline:none;
    background:#f0f7ed;
}
.searchable-select-option.is-selected{
    background:#e8f3e4;
    color:#23682c;
    font-weight:700;
}
.searchable-select-empty{
    padding:18px 10px;
    text-align:center;
    color:#89938b;
    font-size:13px;
}
.crm-filter-row .searchable-select-combo,
.crm-filter-grid .searchable-select-combo{min-width:0}
.crm-filter-row .searchable-select-trigger,
.crm-filter-grid .searchable-select-trigger{height:42px;min-height:42px}
@media (max-width:960px){
    .searchable-select-dropdown{border-radius:12px}
    .searchable-select-results{max-height:min(var(--searchable-select-max-height,280px),280px)}
}


/* ========================================================================== */
/* V13.2 — معيار أحجام الحقول + البحث فقط في ComboBox المرتبط بقاعدة البيانات */
/* ========================================================================== */
/*
   معيار الخطوط:
   - عنوان الحقل: 10.5px
   - قيمة/نص الحقل: 13px
   ينطبق على الحقول العادية والقوائم المرجعية القابلة للبحث.
*/
.field label{font-size:10.5px!important}
.field input,
.field select,
.field textarea,
.search-box input,
.global-search input,
.filter-bar select,
.crm-filter-select{
  font-size:13px!important;
}

/* الـSearchable Select العام يُستخدم فقط عندما يكون المصدر Lookup من قاعدة البيانات. */
.searchable-select-trigger,
.searchable-select-search,
.searchable-select-option{
  font-size:13px!important;
}

/* النشاط الاقتصادي Lookup من DB وله مكوّن البحث المتخصص. */
.crm-activity-select-trigger,
.crm-filter-activity-combo .crm-activity-select-trigger,
.crm-activity-dropdown-search{
  font-size:13px!important;
}
.crm-activity-result-name{font-size:13px!important;line-height:1.55}
.crm-activity-result-code{font-size:12px!important}

/* النصوص الثانوية داخل القوائم تظل أصغر من قيمة الحقل. */
.searchable-select-caption,
.crm-activity-search-caption{font-size:10.5px!important}


/* V13.3 — إغلاق شاشة إدارة العملاء + معيار تقرير العملاء */
.crm-table .crm-smart-text,
.crm-smart-text{
  direction:auto;
  unicode-bidi:plaintext;
  text-align:start!important;
  line-height:1.55;
}
.crm-table .crm-smart-text-head{text-align:start!important}
.crm-row-actions{display:flex;align-items:center;justify-content:center;gap:6px}
.crm-action-btn{
  width:31px;height:31px;min-width:31px;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid #dce5da;border-radius:9px;background:#fff;
  cursor:pointer;padding:0;text-decoration:none;transition:.16s ease;
  box-shadow:0 1px 2px rgba(15,55,30,.03)
}
.crm-action-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.crm-action-btn.view{color:#2f7d32}.crm-action-btn.edit{color:#3278ee}.crm-action-btn.opportunity{color:#7655c5}
.crm-action-btn:hover{transform:translateY(-1px);border-color:currentColor;box-shadow:0 5px 12px rgba(23,60,34,.09)}
.crm-action-btn:focus-visible{outline:2px solid rgba(47,125,50,.25);outline-offset:2px}
.crm-action-btn.labeled-action{
  width:auto!important;min-width:72px!important;height:34px!important;
  padding:0 10px!important;gap:6px!important;border-radius:9px!important;
  font:700 10.5px Cairo,Tahoma,Arial,sans-serif!important;white-space:nowrap!important
}
.crm-action-btn.labeled-action svg{width:15px!important;height:15px!important;flex:0 0 15px!important}
.crm-action-btn.print{color:#246348;border-color:#cfe0d5;background:#fff}
.btn.action-with-icon{gap:7px!important}
.btn.action-with-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:0 0 15px}

.crm-print-button{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.crm-print-button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ========================================================================== */
/* V14 — CRM Activities / المتابعات والمهام                                  */
/* ========================================================================== */
.activity-kpi-strip{grid-template-columns:repeat(4,minmax(0,1fr))}
.activity-toolbar{align-items:center}
.activity-filter-bar{
    display:grid;
    grid-template-columns:minmax(260px,1fr) 145px 145px 145px 190px auto;
    gap:8px;
    align-items:center;
    flex:1;
    min-width:0;
}
.activity-filter-bar .crm-search-box{min-width:0}
.activity-table-wrap{overflow:auto}
.activity-table{min-width:1080px}
.activity-table th,.activity-table td{vertical-align:middle}
.activity-table .table-name-ar{text-align:right}
.activity-date-cell{text-align:center;white-space:nowrap}
.activity-date-cell b{display:block;font-size:12px}
.activity-date-cell small{display:block;margin-top:2px;color:#738078;font-size:11px}
.activity-related-link{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:inherit}
.activity-related-link:hover b{color:#2d7d32;text-decoration:underline;text-underline-offset:3px}
.activity-related-link small{color:#839087;font-size:10.5px}
.activity-type-chip{
    display:inline-flex;align-items:center;justify-content:center;
    min-width:74px;padding:5px 9px;border-radius:999px;
    background:#f2f5f1;color:#425148;font-size:11px;font-weight:700;
}
.activity-type-chip.type-call{background:#eaf4ff;color:#2e66a5}
.activity-type-chip.type-whatsapp{background:#e9f8ec;color:#27753a}
.activity-type-chip.type-email{background:#f2edff;color:#684bb3}
.activity-type-chip.type-meeting{background:#fff5df;color:#936513}
.activity-type-chip.type-visit{background:#e9f7f4;color:#237364}
.activity-type-chip.type-task{background:#f0f2f6;color:#465166}
.activity-type-chip.type-follow_up{background:#edf6e9;color:#3b7634}
.activity-row-overdue{background:linear-gradient(90deg,rgba(255,244,239,.7),transparent 42%)}
.activity-row-overdue .activity-date-cell b{color:#b4472f}
.activity-row-today{background:linear-gradient(90deg,rgba(246,251,228,.75),transparent 42%)}
.activity-row-completed{opacity:.78}
.activity-complete{color:#2f8738}
.crm-action-btn.activity,.mini-btn.activity{color:#7b5bbb}
.crm-action-btn.activity:hover,.mini-btn.activity:hover{border-color:#7b5bbb}

.activity-modal-card{
    width:min(1120px,calc(100vw - 40px));
    height:min(780px,calc(100vh - 24px));
    max-height:calc(100vh - 24px);
    display:flex;
    flex-direction:column;
    overflow:hidden;
}
.activity-modal-card>form{display:flex;flex-direction:column;min-height:0;height:100%}
.activity-modal-head{flex:0 0 auto}
.activity-modal-scroll{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:10px 14px 18px;
    scrollbar-gutter:stable;
}
.activity-modal-footer{flex:0 0 auto;background:#fff;border-top:1px solid #e5ebe3;z-index:20}
.activity-profile-mark{font-size:11px;letter-spacing:.2px}
.activity-grid{gap:9px}
.activity-related-field.is-hidden,.activity-outcome-section.is-hidden{display:none!important}
.activity-outcome-section textarea{min-height:78px;resize:vertical}
.activity-modal-scroll textarea{resize:vertical}
.inline-form{display:inline-flex;margin:0}

@media (max-width:1366px){
    .activity-filter-bar{grid-template-columns:minmax(220px,1fr) 132px 132px 132px 165px auto;gap:6px}
    .activity-modal-card{width:min(1080px,calc(100vw - 24px));height:min(740px,calc(100vh - 16px));max-height:calc(100vh - 16px)}
    .activity-modal-scroll{padding:8px 11px 14px}
    .activity-modal-scroll .employee-form-section{padding:11px;margin-bottom:8px}
    .activity-grid{gap:8px}
}

@media (max-width:1100px){
    .activity-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
    .activity-filter-bar{grid-template-columns:minmax(220px,1fr) 130px 130px auto}
    .activity-filter-bar select[name="relatedEntityType"],
    .activity-filter-bar .searchable-select-combo{display:none}
    .activity-grid.form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}
    .activity-grid .span-2,.activity-grid .span-3{grid-column:span 2}
}

@media (max-width:700px){
    .activity-kpi-strip{grid-template-columns:1fr 1fr}
    .activity-filter-bar{grid-template-columns:1fr}
    .activity-filter-bar select[name="relatedEntityType"],
    .activity-filter-bar .searchable-select-combo{display:block}
    .activity-modal-card{width:calc(100vw - 10px);height:calc(100vh - 10px);max-height:calc(100vh - 10px)}
    .activity-modal-scroll{padding:7px}
    .activity-grid.form-grid.four,.activity-grid.form-grid.two{grid-template-columns:1fr}
    .activity-grid .span-2,.activity-grid .span-3{grid-column:auto}
    .activity-modal-footer{gap:6px;flex-wrap:wrap}
    .activity-modal-footer .btn{flex:1 1 auto}
}

@supports (height:100dvh){
    @media (max-width:1440px){
        .activity-modal-card{height:min(780px,calc(100dvh - 16px));max-height:calc(100dvh - 16px)}
    }
    @media (max-width:700px){
        .activity-modal-card{height:calc(100dvh - 10px);max-height:calc(100dvh - 10px)}
    }
}

/* ========================================================================== */
/* V14.2 — Sidebar Accordion + Modern Navigation                              */
/* ========================================================================== */
/*
   الهدف هنا أن يبقى الشريط الجانبي هادئًا حتى مع زيادة الموديولات:
   - Parent قابل للفتح/الطي.
   - Parent الخاص بالصفحة الحالية يفتح تلقائيًا.
   - إخفاء Scrollbar المتصفح القديم مع الإبقاء على Wheel/Touch scrolling.
*/
.side-nav{
  flex:1;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-width:none;
  -ms-overflow-style:none;
  padding-bottom:10px;
}
.side-nav::-webkit-scrollbar{width:0;height:0;display:none}

.nav-group{
  border:1px solid transparent;
  border-radius:13px;
  padding:3px;
  margin:2px 0;
  transition:border-color .2s ease,background .2s ease,box-shadow .2s ease;
}
.nav-group.expanded{
  border-color:rgba(255,255,255,.08);
  background:rgba(255,255,255,.025);
}
.nav-group.active{
  border-color:rgba(111,196,104,.18);
  background:rgba(255,255,255,.035);
}
.nav-group-title{
  width:100%;
  border:0;
  background:transparent;
  color:#eef8f2;
  font-family:inherit;
  text-align:right;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
  transition:background .18s ease,color .18s ease;
}
.nav-group-title:hover{background:rgba(255,255,255,.055)}
.nav-group-title:focus-visible{
  outline:2px solid rgba(149,221,127,.55);
  outline-offset:1px;
}
.nav-group-label{
  min-width:0;
  flex:1;
  line-height:1.55;
}
.nav-chevron{
  width:20px;
  height:20px;
  margin-right:auto;
  display:grid;
  place-items:center;
  color:#9fc6b2;
  font-size:15px;
  line-height:1;
  transition:transform .22s ease,color .18s ease;
  transform:rotate(90deg);
}
.nav-group.expanded > .nav-group-title .nav-chevron{
  transform:rotate(0deg);
  color:#dff2e6;
}
.nav-group-items{
  max-height:0;
  opacity:0;
  overflow:hidden;
  pointer-events:none;
  transform:translateY(-3px);
  transition:max-height .28s ease,opacity .2s ease,transform .24s ease;
}
.nav-group.expanded > .nav-group-items{
  max-height:360px;
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
}
.nav-group .nav-group-items .nav-item{
  position:relative;
  margin:1px 2px;
  padding-right:38px;
  min-height:36px;
  color:#d3e7dc;
  border-radius:9px;
}
.nav-group .nav-group-items .nav-item::before{
  content:"";
  position:absolute;
  right:20px;
  top:50%;
  width:5px;
  height:5px;
  border-radius:50%;
  background:rgba(192,221,205,.42);
  transform:translateY(-50%);
}
.nav-group .nav-group-items .nav-item:hover::before,
.nav-group .nav-group-items .nav-item.selected::before{
  background:#b9ec98;
  box-shadow:0 0 0 3px rgba(185,236,152,.10);
}
.nav-group .nav-group-items .nav-item.selected{
  background:linear-gradient(90deg,rgba(48,127,47,.95),rgba(61,140,53,.92));
  color:#fff;
}
.nav-item.nav-coming{
  cursor:default;
  opacity:.72;
}
.nav-item.nav-coming:hover{
  transform:none;
  background:rgba(255,255,255,.025);
  box-shadow:none;
}
.nav-item.nav-coming small{
  padding:2px 6px;
  border-radius:999px;
  background:rgba(160,209,139,.11);
  color:#b8d8c4;
}

/* خط بصري خفيف يوضح أن العناصر المفتوحة أبناء للـParent. */
.nav-group.expanded > .nav-group-items{
  position:relative;
}
.nav-group.expanded > .nav-group-items::after{
  content:"";
  position:absolute;
  right:21px;
  top:4px;
  bottom:4px;
  width:1px;
  background:linear-gradient(180deg,rgba(170,211,187,.24),rgba(170,211,187,.05));
  pointer-events:none;
}

/* Footer ثابت بصريًا؛ فقط منطقة القائمة هي التي تتحرك. */
.sidebar-footer{flex:0 0 auto;margin-top:8px}

@media (min-width:1101px) and (max-width:1440px){
  .nav-group{border-radius:10px;padding:2px}
  .nav-group .nav-group-items .nav-item{min-height:32px;padding-right:30px}
  .nav-group .nav-group-items .nav-item::before{right:16px;width:4px;height:4px}
  .nav-group.expanded > .nav-group-items::after{right:17px}
  .nav-chevron{width:16px;height:16px;font-size:12px}
}

@media (min-width:961px) and (max-width:1100px){
  .nav-group{border-radius:9px;padding:2px}
  .nav-group .nav-group-items .nav-item{min-height:29px;padding-right:26px}
  .nav-group .nav-group-items .nav-item::before{right:13px;width:4px;height:4px}
  .nav-group.expanded > .nav-group-items::after{right:14px}
  .nav-chevron{width:14px;height:14px;font-size:11px}
}


/* ========================================================================== */
/* V15 — Simplified Sidebar hierarchy + Service Catalog                       */
/* ========================================================================== */
/* لم تعد هناك Captions مستقلة؛ اسم المجموعة نفسه هو العنوان الواضح. */
.nav-caption{display:none!important}

.nav-subgroup{
  margin:2px 3px 3px 22px;
  border-radius:10px;
  border:1px solid transparent;
  overflow:hidden;
}
.nav-subgroup.expanded{background:rgba(255,255,255,.025);border-color:rgba(255,255,255,.055)}
.nav-subgroup-title{
  width:100%;min-height:34px;border:0;background:transparent;color:#d8eadf;cursor:pointer;
  display:flex;align-items:center;gap:8px;padding:6px 12px 6px 8px;border-radius:9px;font:inherit;font-size:12px;font-weight:700;text-align:right;
}
.nav-subgroup-title:hover{background:rgba(255,255,255,.05)}
.nav-subgroup-title:focus-visible{outline:2px solid rgba(149,221,127,.5);outline-offset:-1px}
.nav-subgroup-label{flex:1}
.nav-sub-chevron{width:17px;height:17px;display:grid;place-items:center;color:#9fc6b2;transform:rotate(90deg);transition:transform .2s ease}
.nav-subgroup.expanded>.nav-subgroup-title .nav-sub-chevron{transform:rotate(0deg)}
.nav-subgroup-items{max-height:0;opacity:0;overflow:hidden;pointer-events:none;transition:max-height .24s ease,opacity .18s ease}
.nav-subgroup.expanded>.nav-subgroup-items{max-height:120px;opacity:1;pointer-events:auto;padding-bottom:3px}
.nav-group .nav-group-items .nav-subgroup .nav-sub-item{min-height:31px;padding-right:38px;font-size:11.5px;margin:1px 0}
.nav-group .nav-group-items .nav-subgroup .nav-sub-item::before{right:23px;width:4px;height:4px}
.nav-subgroup.active>.nav-subgroup-title{color:#fff}

/* الشاشات الجديدة للخدمات */
.service-kpi-strip{grid-template-columns:repeat(4,minmax(0,1fr))}
.service-main-panel{overflow:hidden}
.service-toolbar{display:flex;align-items:center;gap:12px;direction:rtl}
.service-toolbar .toolbar-actions{display:flex;justify-content:flex-start;align-items:center;flex:0 0 auto}
.service-new-button{height:42px;min-width:108px;white-space:nowrap}
.service-filter-bar{flex:1 1 auto;min-width:0;display:grid;grid-template-columns:auto minmax(220px,1.8fr) minmax(125px,1.08fr) minmax(118px,.95fr) minmax(120px,.98fr) minmax(110px,.9fr) auto;align-items:center;gap:8px;direction:rtl}
.service-filter-bar>.search-box,.service-filter-bar>.reference-select,.service-filter-bar>.service-filter-select,.service-filter-bar>.searchable-select-combo{width:100%;min-width:0}
.service-filter-bar>.btn{height:42px;min-height:42px;white-space:nowrap;justify-self:stretch;padding-inline:14px}
.service-print-button{min-width:64px}
.service-search-box{min-width:0;width:100%}
.service-filter-select{min-width:0;width:100%}
.service-table{min-width:980px}
.category-table{min-width:860px}
.service-row-note{display:block;color:var(--muted);font-size:9px;margin-top:3px;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.service-name-en{direction:ltr;text-align:right}
.service-modal.show,.service-category-inline-modal.show{display:flex;align-items:center;justify-content:center;padding:14px}
.service-modal.show .modal-card,.service-category-inline-modal.show .modal-card{position:relative;top:auto;left:auto;transform:none;margin:0 auto}
.service-category-modal-card{width:min(760px,94vw);overflow:hidden}
.service-modal-card{width:min(980px,96vw);height:min(760px,calc(100vh - 26px));max-height:calc(100vh - 26px);overflow:hidden;display:flex;flex-direction:column}
.service-modal-card form{min-height:0;display:flex;flex-direction:column;height:100%}
.service-modal-head,.service-modal-card>.modal-head{flex:0 0 auto}
.service-modal-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#9bb9a9 transparent}
.service-modal-scroll::-webkit-scrollbar{width:6px}.service-modal-scroll::-webkit-scrollbar-track{background:transparent}.service-modal-scroll::-webkit-scrollbar-thumb{background:#9bb9a9;border-radius:999px}.service-modal-scroll::-webkit-scrollbar-thumb:hover{background:#6f9b82}
.service-modal-card .modal-footer{flex:0 0 auto}
.service-form-grid{gap:10px 12px}

.service-toolbar-actions{gap:8px;white-space:nowrap}
.service-modal-head{align-items:center}
.service-modal-title-block{min-width:0}
.service-modal-header-tools{display:flex;align-items:center;gap:12px;margin-inline-start:auto}
.service-header-status{display:flex;align-items:center;gap:8px;padding:5px 7px 5px 10px;border:1px solid var(--border);border-radius:12px;background:#fafcf9}
.service-header-status-caption{font-size:10px;font-weight:800;color:#5a685e;white-space:nowrap}
.service-header-switch{min-height:34px!important;padding:0 7px!important;border:0!important;background:transparent!important;white-space:nowrap}
.service-header-switch #ServiceIsActiveText{font-size:10.5px;font-weight:800;color:var(--green-700)}
.service-definition-grid .service-category-full-row{grid-column:span 4}
.service-description-field textarea{height:88px;min-height:88px;max-height:150px;resize:vertical;line-height:1.65;padding-top:10px}
.service-definition-grid .field>label,.service-pricing-grid .field>label{min-height:16px;display:flex;align-items:center}
.service-inline-link{height:var(--control-height);display:flex;align-items:center;justify-content:center;width:100%}
.service-switch-row{min-height:var(--control-height);padding:0 10px;border:1px solid var(--border);border-radius:10px;background:#fafcf9}
.service-tax-switch-field .service-switch-row{height:var(--control-height)!important;min-height:var(--control-height)!important;width:100%;box-sizing:border-box;margin:0;padding:0 12px;display:flex;align-items:center}
.service-tax-switch-field .switch{flex:0 0 40px}
#serviceVatRateField{transition:opacity .18s ease}
#serviceVatRateField.is-disabled{opacity:.48}
#serviceVatRateField.is-disabled input{background:#f3f5f2}

@media (min-width:1101px) and (max-width:1440px){
  .nav-subgroup{margin-left:14px}.nav-subgroup-title{min-height:30px;font-size:10.5px;padding-block:4px}
  .nav-group .nav-group-items .nav-subgroup .nav-sub-item{min-height:28px;font-size:10px;padding-right:31px}
  .nav-group .nav-group-items .nav-subgroup .nav-sub-item::before{right:18px}
  .service-toolbar{padding:10px 12px;gap:8px}.service-new-button{min-width:102px}.service-filter-bar{grid-template-columns:auto minmax(190px,1.7fr) minmax(112px,1.04fr) minmax(108px,.92fr) minmax(112px,.94fr) minmax(102px,.88fr) auto;gap:6px}.service-filter-bar>.btn{padding-inline:10px}.service-search-box{min-width:0}.service-kpi-strip{gap:8px;margin-bottom:9px}
  .service-modal-card{height:min(700px,calc(100vh - 18px));max-height:calc(100vh - 18px)}
}
@media(max-width:900px){
  .service-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .service-toolbar{flex-direction:column;align-items:stretch}.service-toolbar .toolbar-actions{justify-content:flex-start}.service-new-button{width:100%}.service-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.service-print-button{grid-column:auto}.service-search-box{grid-column:1 / -1;min-width:0;flex:1 1 100%}
  .service-modal-card{width:min(720px,97vw)}
  .service-modal-header-tools{gap:8px}.service-header-status-caption{display:none}
}
@media(max-width:700px){
  .service-kpi-strip{grid-template-columns:1fr 1fr}
  .service-toolbar .toolbar-actions{display:flex;width:100%}.service-toolbar .toolbar-actions>*{width:100%}
  .service-filter-bar{grid-template-columns:1fr}.service-filter-bar>*{width:100%}.service-filter-bar select{width:100%}.service-search-box{grid-column:auto}
  .service-modal-card{height:calc(100dvh - 10px);max-height:calc(100dvh - 10px);width:calc(100vw - 10px)}
  .service-category-shortcut{display:none}
  .service-modal-head{padding:12px 14px}.service-modal-header-tools{gap:6px}.service-header-status{padding:3px 5px}.service-header-switch{padding:0 4px!important}.service-description-field textarea{height:78px;min-height:78px}
}

/* ========================================================================== */
/* BusinessSuite V15.1 — Service Catalog simplification                      */
/* ========================================================================== */
.service-category-picker{
  display:grid;
  grid-template-columns:minmax(0,1fr) var(--control-height) var(--control-height);
  gap:6px;
  align-items:stretch;
}
.service-category-select-host{min-width:0}
.service-category-select-host>.searchable-select-combo,
.service-category-select-host>select{width:100%;height:100%}
.service-category-action{
  width:var(--control-height);
  height:var(--control-height);
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
  color:var(--primary);
  font-family:inherit;
  font-size:18px;
  font-weight:800;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:.16s ease;
}
.service-category-action:hover:not(:disabled){
  border-color:#7cae91;
  background:#f1f8f4;
  transform:translateY(-1px);
}
.service-category-action.edit{font-size:15px}
.service-category-action:disabled{opacity:.38;cursor:not-allowed;background:#f5f7f6;color:var(--muted)}
.service-category-inline-modal{z-index:1200}
.service-category-inline-modal .modal-backdrop{z-index:0}
.service-category-inline-modal .modal-card{z-index:1}
.service-category-modal-card{width:min(760px,94vw);max-height:calc(100vh - 30px);overflow:hidden}
.service-category-modal-card .modal-body{overflow-y:auto;scrollbar-width:thin;scrollbar-color:#9bb9a9 transparent}
.service-category-modal-card .modal-body::-webkit-scrollbar{width:6px}
.service-category-modal-card .modal-body::-webkit-scrollbar-track{background:transparent}
.service-category-modal-card .modal-body::-webkit-scrollbar-thumb{background:#9bb9a9;border-radius:999px}
.service-category-modal-card .modal-body::-webkit-scrollbar-thumb:hover{background:#6f9b82}

@media (max-width:700px){
  .service-category-picker{grid-template-columns:minmax(0,1fr) 42px 42px}
  .service-category-action{width:42px;height:var(--control-height)}
}


/* ========================================================================== */
/* BusinessSuite V15.2 — Services report / modal alignment / full filters    */
/* ========================================================================== */
#ServiceIsActiveText.is-inactive{color:#7a8580!important}

/* ========================================================================== */
/* BusinessSuite V15.2.1 — services form/filter/report visual normalization   */
/* ========================================================================== */

/* ============================================================================
   V16 — CRM Quotations / عروض الأسعار
   ============================================================================ */
.quotation-kpi-strip{grid-template-columns:repeat(4,minmax(0,1fr))}
.quotation-main-panel{overflow:hidden}
.quotation-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px}
.quotation-toolbar-primary{justify-content:flex-start}
.quotation-filter-bar{min-width:0;display:grid;grid-template-columns:minmax(260px,2fr) minmax(175px,1fr) minmax(175px,1fr) minmax(140px,.8fr) auto;gap:10px;align-items:center}
.quotation-filter-bar>*{min-width:0;width:100%}.quotation-filter-bar>.btn{width:auto;height:42px;white-space:nowrap}
.quotation-search-box{min-width:0;width:100%}.quotation-table{min-width:1180px}.quotation-item-count{display:inline-grid;place-items:center;min-width:28px;height:25px;padding:0 8px;background:#edf5ec;color:var(--green-700);border-radius:999px;font-weight:800}
.quotation-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px}.quotation-actions form{margin:0}.quotation-actions .mini-btn{display:inline-grid;place-items:center;text-decoration:none;font-weight:800}
.quotation-print-btn{color:#555f58}.quotation-send-btn{color:#245c9c}.quotation-accept-btn{color:#20723a}.quotation-reject-btn{color:#bd423b}.quotation-cancel-btn{color:#7b6658}
.quotation-editor-heading{align-items:center}.quotation-editor-head-actions{display:flex;gap:8px}.quotation-editor-form{width:100%}.quotation-editor-panel{overflow:hidden}
.quotation-editor-section{border-bottom:1px solid var(--border);background:#fff}.quotation-editor-section .section-title-row{padding:14px 18px 0}.quotation-editor-section .section-title-row b{font-size:13px}.quotation-editor-section .section-title-row small{display:block;color:var(--muted);font-size:9px;margin-top:2px}.quotation-header-section{padding-top:2px}.quotation-code-chip{display:inline-flex;align-items:center;height:29px;border-radius:9px;background:#eef7ef;color:var(--green-700);padding:0 10px;font-size:10px;font-weight:800}.quotation-header-grid{padding-top:12px}
.quotation-items-section{padding-bottom:14px}.quotation-items-title{display:flex;align-items:center;justify-content:space-between;padding-bottom:10px!important}.quotation-items-table-wrap{padding:0 16px;overflow-x:auto;overflow-y:visible;scrollbar-width:thin;scrollbar-color:#a8bcae transparent}.quotation-items-table-wrap::-webkit-scrollbar{height:6px}.quotation-items-table-wrap::-webkit-scrollbar-track{background:transparent}.quotation-items-table-wrap::-webkit-scrollbar-thumb{background:#a8bcae;border-radius:999px}.quotation-items-table{width:100%;min-width:1000px;table-layout:fixed;border-collapse:separate;border-spacing:0;border:1px solid var(--border);border-radius:13px;background:#fff}.quotation-items-table th{height:42px;padding:6px 5px;background:#f5f9f4;border-bottom:1px solid var(--border);font-size:9.5px;text-align:center;white-space:nowrap}.quotation-items-table td{height:54px;padding:7px 5px;border-bottom:1px solid #edf1ed;font-size:10px;text-align:center;vertical-align:middle;overflow:visible}.quotation-items-table tbody tr:last-child td{border-bottom:0}.quotation-items-table .quotation-line-no{width:38px}.quotation-service-col{width:28%;text-align:right!important}.quotation-unit-col{width:8%}.quotation-quantity-col{width:8%}.quotation-price-col{width:10%}.quotation-discount-type-col{width:10%}.quotation-discount-value-col{width:10%}.quotation-vat-col{width:8%}.quotation-total-col{width:11%}.quotation-delete-col{width:42px}.quotation-service-col .searchable-select-combo{width:100%;min-width:0}.quotation-service-col .searchable-select-trigger{height:40px;min-height:40px;border-radius:9px;padding:0 10px}.quotation-service-col .searchable-select-label{font-size:10.5px}.quotation-unit-cell{white-space:nowrap;color:#526057}.quotation-number-input{width:100%!important;height:40px!important;min-height:40px!important;text-align:center;padding:6px 5px!important;border-radius:9px!important}.quotation-discount-type{width:100%;height:40px;min-width:0;border:1px solid var(--border);border-radius:9px;background:#fff;padding:0 6px}.quotation-vat-cell{white-space:nowrap}.quotation-line-total{font-weight:800;color:var(--green-700);white-space:nowrap}.quotation-item-row .mini-btn.delete{width:30px;height:30px}.quotation-item-row:focus-within{background:#fbfdf9}.quotation-service-col .searchable-select-combo.is-open{z-index:5000}.quotation-service-col .searchable-select-combo.searchable-floating .searchable-select-dropdown{z-index:10050;max-width:none}
.quotation-bottom-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:0;border-bottom:1px solid var(--border)}.quotation-notes-column{min-width:0}.quotation-notes-column .quotation-editor-section:last-child{border-bottom:0}.quotation-notes-column textarea{min-height:88px}.quotation-totals-card{margin:16px;border:1px solid #d8e4d8;border-radius:15px;background:#fbfdfb;align-self:start;overflow:hidden;position:sticky;top:94px}.quotation-totals-head{padding:14px 15px;border-bottom:1px solid #dfe8df;background:#f1f7f0}.quotation-totals-head b{display:block;font-size:13px}.quotation-totals-head span{font-size:9px;color:var(--muted)}.quotation-total-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid #edf1ed;font-size:10.5px}.quotation-total-row.discount b{color:#b15339}.quotation-total-row.grand{background:linear-gradient(135deg,#0b6039,#398536);color:#fff;padding:14px;font-size:12px}.quotation-total-row.grand small{font-size:9px}.quotation-tax-note{padding:9px 13px;color:var(--muted);font-size:8.5px;line-height:1.55}.quotation-form-footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:15px 18px;background:#fafcf9}
@media(max-width:1100px){.quotation-toolbar{grid-template-columns:1fr}.quotation-toolbar-primary{justify-content:flex-start}.quotation-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.quotation-search-box{grid-column:1/-1}.quotation-bottom-grid{grid-template-columns:1fr}.quotation-totals-card{position:static;margin-top:10px}.quotation-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.quotation-kpi-strip{grid-template-columns:1fr 1fr}.quotation-filter-bar{grid-template-columns:1fr}.quotation-search-box{grid-column:auto}.quotation-filter-bar>.btn{width:100%}.quotation-editor-head-actions{margin-top:10px}.quotation-header-grid{grid-template-columns:1fr!important}.quotation-header-grid .span-2{grid-column:span 1}.quotation-items-table-wrap{padding:0 8px}.quotation-items-table{min-width:940px}.quotation-bottom-grid .form-grid.two{grid-template-columns:1fr}.quotation-form-footer{position:sticky;bottom:0;z-index:3}.quotation-form-footer .btn{flex:1}}
.crm-action-btn.quotation{color:#b97718}.crm-action-btn.quotation:hover{border-color:#b97718}


/* ========================================================================== */
/* BusinessSuite V16.0.3 — quotation opportunity + item table normalization   */
/* ========================================================================== */
.quotation-items-table th,
.quotation-items-table td{
  font-size:12px;
  text-align:center;
}
.quotation-items-table th.quotation-service-col,
.quotation-items-table td.quotation-service-col{
  text-align:right!important;
}
.quotation-service-col .searchable-select-label{
  font-size:12px;
  text-align:right;
}
.quotation-unit-cell,
.quotation-vat-cell,
.quotation-line-total,
.quotation-line-no,
.quotation-delete-col{
  text-align:center!important;
}
.quotation-number-input{
  font-size:12px!important;
  text-align:center!important;
  direction:ltr!important;
  unicode-bidi:isolate;
  font-variant-numeric:tabular-nums lining-nums;
}
.quotation-discount-type{
  font-size:12px;
  text-align:center;
  text-align-last:center;
}
.quotation-items-table .latin-numbers,
.quotation-totals-card .latin-numbers{
  direction:ltr!important;
  unicode-bidi:isolate;
  font-variant-numeric:tabular-nums lining-nums;
}

/* ========================================================================== */
/* BusinessSuite V16.0.4 — quotation numeric controls visual normalization    */
/* ========================================================================== */
.quotation-items-table .quotation-number-input{
  width:100%!important;
  height:40px!important;
  min-height:40px!important;
  box-sizing:border-box!important;
  border:1px solid #d7e1d3!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#26352b!important;
  padding:0 10px!important;
  outline:none!important;
  box-shadow:none!important;
  text-align:center!important;
  direction:ltr!important;
  font-size:12px!important;
  font-family:inherit!important;
  font-variant-numeric:tabular-nums lining-nums;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
  appearance:textfield;
  -moz-appearance:textfield;
}
.quotation-items-table .quotation-number-input:hover{
  border-color:#b7cdb0!important;
}
.quotation-items-table .quotation-number-input:focus{
  border-color:#69a75d!important;
  box-shadow:0 0 0 3px rgba(86,145,73,.12)!important;
}
.quotation-items-table .quotation-number-input::-webkit-outer-spin-button,
.quotation-items-table .quotation-number-input::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}


/* V16.0.6 — Quotation save confirmation */
.quotation-save-success-modal.show{display:flex;align-items:center;justify-content:center;padding:18px;z-index:1450}
.quotation-save-success-modal .modal-backdrop{background:rgba(4,30,22,.52);backdrop-filter:blur(4px)}
.quotation-save-success-card{position:relative;top:auto;left:auto;transform:none;width:min(430px,92vw);margin:0 auto;padding:30px 28px;text-align:center;overflow:hidden}
.quotation-save-success-icon{width:66px;height:66px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:#e7f7e6;color:#2d7a34;font-size:34px;font-weight:800;border:1px solid #cce9cc}
.quotation-save-success-card h2{margin:0 0 8px;font-size:20px;color:var(--ink)}
.quotation-save-success-card p{margin:0 0 7px;font-size:13px;font-weight:700;color:#2d7a34}
.quotation-save-success-card small{display:block;color:var(--muted);font-size:10.5px}

/* ========================================================================== */
/* V17 — Enterprise Contracts / إدارة العقود                                  */
/* ========================================================================== */
.contract-page-heading,.contract-editor-heading,.contract-details-heading{margin-bottom:10px}.contract-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:10px}.contract-kpi-grid article{background:#fff;border:1px solid #dce7e1;border-radius:11px;padding:10px 12px;min-height:78px;box-shadow:0 2px 7px rgba(23,56,42,.04)}.contract-kpi-grid span{font-size:10.5px;color:#607068}.contract-kpi-grid b{display:block;font-size:20px;margin-top:3px;color:#193b2d}.contract-kpi-grid small{font-size:9.5px;color:#7a8982}.contract-kpi-grid article.success{border-inline-start:4px solid #43a576}.contract-kpi-grid article.warning{border-inline-start:4px solid #e0a23a}.contract-kpi-grid article.info{border-inline-start:4px solid #4a91c7}.contract-kpi-grid article.danger{border-inline-start:4px solid #d86d6d}.contract-toolbar{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center}.contract-filter-bar{display:grid;grid-template-columns:minmax(250px,1.6fr) minmax(150px,1fr) minmax(150px,1fr) 140px auto;gap:7px;align-items:center}.contract-table td,.contract-table th{vertical-align:middle}.contract-code-link{font-weight:800;color:#277052;text-decoration:none}.contract-source-ref{display:block;color:#7b8882;font-size:9px}.contract-period{white-space:nowrap;font-size:11px}.contract-period span{margin:0 4px;color:#9aa59f}.contract-version-chip{display:inline-flex;align-items:center;justify-content:center;padding:3px 7px;border-radius:999px;background:#edf5f1;color:#27674c;font-weight:800;font-size:10px}.contract-mini-progress,.contract-big-progress{height:6px;background:#e7eee9;border-radius:10px;overflow:hidden}.contract-mini-progress{width:74px;margin:0 auto 3px}.contract-mini-progress span,.contract-big-progress span{display:block;height:100%;background:#4b9b73;border-radius:inherit}.contract-editor-shell{display:flex;flex-direction:column;gap:10px}.contract-section{padding:12px 14px}.contract-section-head,.contract-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.contract-section-head>div,.contract-card-head{min-width:0}.contract-section-head b,.contract-card-head b{font-size:13px;color:#1e4937}.contract-section-head small,.contract-card-head span{display:block;font-size:9.5px;color:#76867e;margin-top:2px}.contract-code-chip{background:#1f674b;color:#fff;border-radius:8px;padding:5px 10px;font-weight:800;font-size:11px}.contract-editor-table{width:100%;border-collapse:separate;border-spacing:0 5px;table-layout:fixed;font-size:11px}.contract-editor-table th{font-size:10px;color:#66786e;padding:4px 5px;text-align:center}.contract-editor-table td{padding:3px 4px;text-align:center}.contract-editor-table th.service,.contract-editor-table td.service{width:28%;text-align:right}.contract-editor-table input,.contract-editor-table select{width:100%;height:38px;border:1px solid #cbdcd3;border-radius:8px;background:#fff;padding:0 7px;font-family:Cairo,sans-serif;font-size:12px}.contract-editor-table .contract-num{text-align:center}.contract-editor-table td:not(.service){white-space:nowrap}.contract-value-bar,.contract-payment-check{display:flex;justify-content:flex-end;align-items:center;gap:16px;border-top:1px solid #e1eae5;margin-top:6px;padding-top:8px}.contract-value-bar b{font-size:18px;color:#1d6045}.contract-payment-check b{font-size:14px}.contract-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px}.contract-stack-editor{display:flex;flex-direction:column;gap:6px}.contract-stack-row{display:grid;grid-template-columns:minmax(160px,1.6fr) 130px 90px minmax(120px,1fr) 34px;gap:5px;align-items:center}.contract-stack-row.obligation-row{grid-template-columns:110px minmax(180px,1.7fr) 130px 110px 34px}.contract-stack-row input,.contract-stack-row select{height:38px;border:1px solid #cbdcd3;border-radius:8px;padding:0 7px;font-family:Cairo;font-size:11px;background:#fff}.contract-editor-footer{display:flex;justify-content:flex-end;gap:8px;position:sticky;bottom:8px;z-index:8;background:rgba(246,249,247,.94);backdrop-filter:blur(8px);padding:9px;border-radius:10px;border:1px solid #dbe7e0}.contract-title-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.contract-title-line h1{margin:0}.contract-head-actions{display:flex;gap:6px}.contract-command-strip{background:#fff;border:1px solid #dce7e1;border-radius:11px;padding:8px 10px;display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:9px}.contract-command-primary,.contract-command-links{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.contract-command-strip form{display:inline-flex}.btn.danger-soft{background:#fff4f4;border-color:#e7b7b7;color:#a74444}.contract-summary-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:9px}.contract-summary-grid article{background:#fff;border:1px solid #dce7e1;border-radius:10px;padding:9px 11px;min-height:76px}.contract-summary-grid article.warning{border-color:#efcd8f;background:#fffbf2}.contract-summary-grid article.danger{border-color:#efbbbb;background:#fff7f7}.contract-summary-grid article>span{font-size:9.5px;color:#718078}.contract-summary-grid article>b{display:block;font-size:15px;color:#1f4938;margin-top:3px}.contract-summary-grid article>small{font-size:9px;color:#78877f}.contract-big-progress{margin-top:5px}.contract-details-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:10px}.contract-details-main,.contract-details-side{display:flex;flex-direction:column;gap:10px}.contract-detail-card,.contract-side-card{padding:11px 12px}.contract-detail-table td,.contract-detail-table th{text-align:center;font-size:10.5px}.contract-detail-table .table-name-ar{text-align:right}.contract-payment-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.contract-payment-cards article{border:1px solid #dce7e1;border-radius:9px;padding:8px;display:grid;grid-template-columns:1fr auto;grid-template-areas:"name amount" "status action";gap:5px;align-items:center}.contract-payment-cards article.overdue{border-color:#e8adad;background:#fff8f8}.contract-payment-cards article>div:first-child{grid-area:name}.contract-payment-cards article>div:first-child b{font-size:10.5px;display:block}.contract-payment-cards article small{font-size:9px;color:#7b8882}.contract-payment-amount{grid-area:amount;text-align:left}.contract-payment-amount b{font-size:13px}.contract-payment-cards .pill{grid-area:status;justify-self:start}.contract-payment-cards form{grid-area:action;justify-self:end}.contract-check-list{display:flex;flex-direction:column;gap:6px}.contract-check-row{border-bottom:1px solid #e7eee9;padding:6px 0;display:grid;grid-template-columns:1fr auto auto;gap:6px;align-items:center}.contract-check-row b{font-size:10.5px}.contract-check-row small{display:block;color:#7a8881;font-size:9px}.contract-sla-box{display:grid;grid-template-columns:1fr auto 1fr auto;gap:5px;background:#f2f7f4;border-radius:8px;padding:7px;margin-top:7px;font-size:10px}.contract-empty-mini{padding:14px;text-align:center;background:#f7faf8;border-radius:8px;color:#738179;font-size:10.5px}.contract-doc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.contract-doc-grid a{display:flex;gap:8px;padding:8px;border:1px solid #dde8e2;border-radius:8px;text-decoration:none;color:#243d32;background:#fbfdfc}.contract-doc-icon{font-size:22px;color:#2f7556}.contract-doc-grid b{font-size:10px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contract-doc-grid small{font-size:8.5px;color:#79877f}.contract-workflow-steps{display:flex;flex-direction:column}.contract-workflow-steps>div{display:flex;gap:8px;align-items:center;position:relative;padding:5px 0}.contract-workflow-steps>div:not(:last-child):after{content:"";position:absolute;right:12px;top:29px;height:16px;width:2px;background:#dce6e0}.contract-workflow-steps>div>span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#e8efeb;color:#6b7a72;font-size:10px;font-weight:800}.contract-workflow-steps>div.done>span{background:#3d9168;color:white}.contract-workflow-steps>div.current>span{background:#e8a63c;color:white}.contract-workflow-steps b{font-size:10.5px}.contract-workflow-steps small{display:block;font-size:8.5px;color:#7d8b84}.contract-signature-list{margin-top:8px;border-top:1px solid #e3ebe7}.contract-signature-list>div{display:flex;justify-content:space-between;align-items:center;gap:7px;padding:7px 0;border-bottom:1px solid #edf2ef}.contract-signature-list b{font-size:9.5px}.contract-signature-list small{display:block;font-size:8px;color:#78857f}.btn.small{padding:4px 7px;font-size:9px}.contract-party-list{margin:0}.contract-party-list dt{font-size:8.5px;color:#819087;margin-top:7px}.contract-party-list dd{margin:1px 0;font-size:10.5px;font-weight:600}.contract-party-list dd small{display:block;font-size:8.5px;color:#7a8881;font-weight:400}.contract-timeline{display:flex;flex-direction:column;gap:0;max-height:520px;overflow:auto}.contract-timeline>div{display:grid;grid-template-columns:14px 1fr;gap:7px;position:relative;padding:0 0 11px}.contract-timeline>div:not(:last-child):before{content:"";position:absolute;right:5px;top:11px;bottom:0;width:1px;background:#d8e5de}.timeline-dot{width:11px;height:11px;border:3px solid #64a985;background:#fff;border-radius:50%;z-index:1}.contract-timeline b{display:block;font-size:9.5px}.contract-timeline small{display:block;font-size:8.5px;color:#75847c}.contract-timeline time{display:block;font-size:8px;color:#9aa49f;margin-top:2px}.contract-slide-panel{position:fixed;z-index:210;top:0;bottom:0;left:-430px;width:410px;max-width:92vw;background:#fff;box-shadow:12px 0 36px rgba(0,0,0,.18);padding:22px 18px;transition:left .22s ease;overflow:auto}.contract-slide-panel.open{left:0}.contract-panel-backdrop{display:none;position:fixed;inset:0;background:rgba(13,32,23,.28);z-index:205}.contract-panel-backdrop.open{display:block}.contract-panel-close{position:absolute;top:10px;right:10px;width:30px;height:30px;border:0;background:#eef4f1;border-radius:50%;cursor:pointer}.contract-slide-panel h2{font-size:16px;margin:8px 0 14px}.contract-slide-panel .field{margin-bottom:9px}.contract-slide-panel .field label{display:block;font-size:10px;margin-bottom:4px}.contract-slide-panel .field input,.contract-slide-panel .field select,.contract-slide-panel .field textarea{width:100%}.danger-note{background:#fff3f3;color:#984747;padding:8px;border-radius:7px;font-size:9.5px}.details-columns{align-items:start}
@media(max-width:1200px){.contract-kpi-grid,.contract-summary-grid{grid-template-columns:repeat(3,1fr)}.contract-details-layout{grid-template-columns:1fr}.contract-details-side{display:grid;grid-template-columns:repeat(3,1fr)}.contract-filter-bar{grid-template-columns:1.5fr 1fr 1fr 130px auto}}
@media(max-width:900px){.contract-toolbar{grid-template-columns:1fr}.contract-filter-bar{grid-template-columns:1fr 1fr}.contract-two-columns,.details-columns{grid-template-columns:1fr}.contract-details-side{display:flex}.contract-payment-cards,.contract-doc-grid{grid-template-columns:1fr}.contract-stack-row,.contract-stack-row.obligation-row{grid-template-columns:1fr 1fr}.contract-summary-grid,.contract-kpi-grid{grid-template-columns:1fr 1fr}}

/* V17 — Contract staged approval matrix */
.contract-approval-list{margin-top:9px;border-top:1px solid #e3ebe7;padding-top:6px;display:flex;flex-direction:column;gap:5px}.contract-approval-list>div{display:grid;grid-template-columns:26px 1fr auto;gap:7px;align-items:center;border:1px solid #e3ebe7;border-radius:8px;padding:6px 7px;background:#fbfdfc}.contract-approval-list>div>span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#e8efeb;color:#65756d;font-size:9px;font-weight:800}.contract-approval-list>div.done>span{background:#3d9168;color:#fff}.contract-approval-list>div.pending>span{background:#e8a63c;color:#fff}.contract-approval-list b{display:block;font-size:9.5px}.contract-approval-list small{display:block;font-size:8px;color:#78877f}.contract-approval-list em{font-style:normal;font-size:8px;font-weight:700;color:#6a7871;white-space:nowrap}.contract-approval-list>div.done em{color:#2f7d5b}.contract-approval-list>div.pending em{color:#a56c15}

.contract-doc-grid a.archived{opacity:.68;background:#f7f9f8}.contract-doc-grid a.current{border-color:#b7d6c4;background:#fbfffc}.doc-current{color:#2f7d5b;font-weight:800}.doc-archive{color:#8a9690}

/* V17 final polish: payment editor, milestones, searchable deliverable owner */
.contract-section-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.contract-editor-table.payments th:nth-child(1),.contract-editor-table.payments td:nth-child(1){width:34px}
.contract-editor-table.payments th:nth-child(2),.contract-editor-table.payments td:nth-child(2){width:18%}
.contract-editor-table.payments th:nth-child(3),.contract-editor-table.payments td:nth-child(3){width:90px}
.contract-editor-table.payments th:nth-child(4),.contract-editor-table.payments td:nth-child(4){width:132px}
.contract-editor-table.payments th:nth-child(5),.contract-editor-table.payments td:nth-child(5){width:24%}
.contract-editor-table.payments th:nth-child(6),.contract-editor-table.payments td:nth-child(6){width:86px}
.contract-editor-table.payments th:nth-child(7),.contract-editor-table.payments td:nth-child(7){width:118px}
.contract-editor-table.payments th:nth-child(8),.contract-editor-table.payments td:nth-child(8){width:38px}
.contract-payment-row .milestone-required{border-color:#d3b46a;background:#fffdf7}
.contract-payment-check{justify-content:space-between;border:1px solid #dce7e1;border-radius:9px;padding:8px 10px;margin-top:8px;background:#fbfdfc}
.contract-payment-check span{font-size:10.5px;color:#586b61}
.contract-payment-check span small{display:block;font-size:8.5px;margin-top:1px;color:#7d8a83}
.contract-payment-check.is-balanced{border-color:#add3bd;background:#f5fbf7}
.contract-payment-check.is-balanced b,.contract-payment-check.is-balanced span small{color:#2f7957}
.contract-payment-check.is-mismatch{border-color:#e2ba7a;background:#fffaf1}
.contract-payment-check.is-mismatch b,.contract-payment-check.is-mismatch span small{color:#9b681b}
.contract-stack-row .searchable-select-combo{width:100%;min-width:0}
.contract-stack-row .searchable-select-trigger{height:38px;min-height:38px;border-radius:8px;padding:0 7px;font-size:11px}
.contract-editor-table .searchable-select-combo.searchable-floating .searchable-select-dropdown{z-index:10050;max-width:none}
@media(max-width:900px){.contract-editor-table.payments{min-width:960px}.contract-section-actions{justify-content:flex-end}}
.deliverable-weight-check{margin-top:3px!important;font-weight:700}.deliverable-weight-check.is-balanced{color:#2f7957!important}.deliverable-weight-check.is-mismatch{color:#a66b14!important}
/* V17 final command-center interactions */
.contract-status-inline-form{display:flex;align-items:center;gap:4px;justify-content:flex-end}.contract-status-inline-form select{height:30px;min-height:30px;width:112px;padding:0 7px;font-size:9px;border-radius:7px}.contract-status-inline-form .mini-btn{flex:0 0 auto}.contract-approval-round-label{display:flex!important;align-items:center!important;justify-content:space-between!important;border:0!important;background:#f1f6f3!important;border-radius:6px!important;padding:5px 7px!important;font-size:8.5px!important;font-weight:800!important;color:#486155!important}.contract-approval-list>div.rejected{border-color:#efc5c5;background:#fff8f8}.contract-approval-list>div.rejected>span{background:#c65a55;color:#fff}.contract-approval-list>div.rejected em{color:#a74642}.contract-payment-panel-summary{border:1px solid #dce7e1;background:#f7fbf8;border-radius:9px;padding:9px 10px;margin-bottom:10px}.contract-payment-panel-summary>span{display:block;font-size:12px;font-weight:800;color:#294b3b}.contract-payment-panel-summary small{display:block;font-size:9px;color:#728179;margin-top:3px}.contract-panel-help{display:block;color:#728179;font-size:9px;line-height:1.6;margin:-2px 0 10px}.contract-payment-cards article>button{grid-area:action;justify-self:end}
@media(max-width:700px){.contract-status-inline-form{grid-column:1/-1;justify-content:stretch}.contract-status-inline-form select{width:100%}}

/* V17 - renewal lifecycle cues */
.contract-renewal-hint{display:block;margin-top:5px;color:var(--muted,#667085);font-size:11px;line-height:1.5}
.contract-renewal-link{display:inline-flex;margin-top:6px;font-size:11px;font-weight:800;text-decoration:none;color:var(--primary,#1f7a5a)}
.contract-renewal-link:hover{text-decoration:underline}

/* ========================================================================== */
/* V17.0.3 — Contract ComboBox / action / alignment polish                    */
/* ========================================================================== */
/* Every enhanced list floats above panels/tables instead of being clipped. */
.searchable-select-combo.searchable-floating{z-index:10040!important}
.searchable-select-combo.searchable-floating .searchable-select-dropdown{
    z-index:10050!important;
    max-width:calc(100vw - 16px)!important;
}
.custom-select-combo .searchable-select-dropdown{padding:6px}
.custom-select-combo .searchable-select-results{max-height:var(--searchable-select-max-height,300px)}
.custom-select-combo .searchable-select-option{padding:9px 11px}
.field .searchable-select-trigger{
    height:42px;
    min-height:42px;
    border-radius:10px;
    border-color:#dfe6dd;
    font-size:13px;
    padding-inline:11px;
}
.field .searchable-select-trigger:focus{border-color:#75a95f;box-shadow:0 0 0 3px rgba(75,139,60,.10)}
.contract-filter-bar .searchable-select-trigger{
    height:42px;
    min-height:42px;
    border-radius:11px;
    font-size:12px;
}
.contract-filter-bar .custom-select-combo .searchable-select-label{text-align:center}

/* Contract editor: every cell centered except the service column. */
.contract-editor-table th:not(.service),
.contract-editor-table td:not(.service){text-align:center!important}
.contract-editor-table td:not(.service) input,
.contract-editor-table td:not(.service) select{ text-align:center!important }
.contract-editor-table td:not(.service) .searchable-select-label{text-align:center!important}
.contract-editor-table td.service,
.contract-editor-table th.service{text-align:right!important}
.contract-editor-table td.service .searchable-select-label{text-align:right!important}
.contract-editor-table .searchable-select-trigger{
    height:38px;
    min-height:38px;
    border-radius:8px;
    padding:0 7px;
    font-size:12px;
}
.contract-editor-table td:not(.service) .searchable-select-trigger{justify-content:space-between}
.contract-editor-table td:not(.service) .searchable-select-arrow{margin-inline-start:4px}

/* Inline status lists in the command center use the same custom UI. */
.contract-status-inline-form .searchable-select-combo{width:122px;min-width:122px}
.contract-status-inline-form .searchable-select-trigger{
    width:122px;
    height:32px;
    min-height:32px;
    border-radius:8px;
    padding:0 8px;
    font-size:10px;
}
.contract-status-inline-form .searchable-select-label{text-align:center}

/* Clear, usable action buttons instead of tiny ambiguous glyphs. */
.contract-table th:last-child,.contract-table td:last-child{text-align:center;min-width:168px}
.contract-row-actions{display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}
.contract-action-btn{
    min-width:46px;
    height:31px;
    padding:0 9px;
    border:1px solid #d7e2dc;
    border-radius:8px;
    background:#fff;
    color:#43564c;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:10px;
    font-weight:800;
    text-decoration:none;
    transition:.15s ease;
}
.contract-action-btn:hover{transform:translateY(-1px);box-shadow:0 5px 12px rgba(31,78,57,.08)}
.contract-action-btn.view{border-color:#b9d7c5;background:#f3faf6;color:#246348}
.contract-action-btn.edit{border-color:#bfd1ed;background:#f4f8ff;color:#3568a9}
.contract-action-btn.print{border-color:#cfe0d5;background:#fff;color:#1f6949}

/* Version card in the sidebar: clearer product/version hierarchy. */
.sidebar-footer b{font-size:10.5px}
.sidebar-footer span{font-size:10px;direction:ltr;unicode-bidi:isolate;text-align:right}

@media(max-width:700px){
    .contract-status-inline-form .searchable-select-combo,
    .contract-status-inline-form .searchable-select-trigger{width:100%;min-width:0}
}


/* V17.0.4 - Contract clarity, numeric alignment, and contextual help */
.field-label-with-info{display:inline-flex;align-items:center;gap:5px;max-width:100%}
.info-tip{position:relative;display:inline-grid;place-items:center;width:17px;height:17px;min-width:17px;border:1px solid #9bb8a8;border-radius:50%;background:#f4faf6;color:#2f7556;font:800 10px Arial,sans-serif;cursor:help;direction:ltr;line-height:1;outline:none;vertical-align:middle}
.info-tip::after{content:attr(data-tooltip);position:absolute;z-index:12000;bottom:calc(100% + 8px);right:50%;transform:translateX(50%) translateY(3px);width:max-content;max-width:300px;padding:8px 10px;border-radius:8px;background:#173d2d;color:#fff;font:600 10.5px/1.65 'Cairo',Tahoma,Arial,sans-serif;text-align:right;direction:rtl;white-space:normal;box-shadow:0 9px 24px rgba(18,55,39,.22);opacity:0;visibility:hidden;pointer-events:none;transition:.16s}
.info-tip::before{content:"";position:absolute;z-index:12001;bottom:calc(100% + 3px);right:50%;transform:translateX(50%);border:5px solid transparent;border-top-color:#173d2d;opacity:0;visibility:hidden;transition:.16s}
.info-tip:hover::after,.info-tip:hover::before,.info-tip:focus::after,.info-tip:focus::before{opacity:1;visibility:visible;transform:translateX(50%) translateY(0)}
.info-tip:hover::before,.info-tip:focus::before{transform:translateX(50%)}
.contract-sla-box .info-tip{width:15px;height:15px;min-width:15px;font-size:9px;background:#fff}
.contract-doc-print-note{display:block;margin-top:3px;color:#718078;font-size:9px;line-height:1.5}
@media(max-width:700px){.info-tip::after{right:auto;left:0;transform:none;max-width:240px}.info-tip:hover::after,.info-tip:focus::after{transform:none}.info-tip::before{display:none}}

/* ========================================================================== */
/* V17.0.5 — Contract filters, numeric fields, representatives, help tips     */
/* ========================================================================== */
.contract-toolbar{
    grid-template-columns:auto minmax(0,1fr);
    gap:10px;
    padding:12px 14px;
}
.contract-filter-bar{
    grid-template-columns:minmax(280px,1.7fr) minmax(175px,1fr) minmax(175px,1fr) minmax(155px,.85fr) 86px;
    gap:8px;
    width:100%;
}
.contract-filter-bar .search-box,
.contract-filter-bar .searchable-select-combo,
.contract-filter-bar .searchable-select-trigger,
.contract-filter-bar > button{
    width:100%;
    min-width:0;
    height:42px;
    min-height:42px;
    border-radius:11px;
}
.contract-filter-bar .search-box,
.contract-filter-bar .searchable-select-trigger{
    border:1px solid #dfe6dd;
    background:#fff;
    box-shadow:none;
}
.contract-filter-bar .searchable-select-trigger{
    padding-inline:12px;
    font-size:12px;
    color:#263d31;
}
.contract-filter-bar .custom-select-combo .searchable-select-trigger{
    border-color:#dfe6dd;
    background:#fff;
    color:#263d31;
}
.contract-filter-bar .searchable-select-label{text-align:center!important}
.contract-filter-bar .contract-search input{font-size:12px}

/* Every numeric contract input uses western digits, LTR, and centered content. */
.contract-editor-form .latin-input,
.contract-editor-form input[inputmode="numeric"],
.contract-editor-form input[inputmode="decimal"],
.contract-slide-panel .latin-input,
.contract-slide-panel input[inputmode="numeric"],
.contract-slide-panel input[inputmode="decimal"]{
    direction:ltr!important;
    unicode-bidi:isolate!important;
    text-align:center!important;
    font-variant-numeric:tabular-nums;
}
.contract-readonly-field{background:#f7faf8!important;color:#53665b!important;cursor:default}

/* Tooltip is rendered at <body> level by contracts.js so panels cannot clip it. */
.info-tip::before,.info-tip::after{display:none!important}
.contract-floating-info-tooltip{
    position:fixed;
    z-index:20000;
    display:block;
    padding:9px 11px;
    border-radius:9px;
    background:#173d2d;
    color:#fff;
    font:600 10.5px/1.75 'Cairo',Tahoma,Arial,sans-serif;
    direction:rtl;
    text-align:right;
    box-shadow:0 12px 30px rgba(18,55,39,.25);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(3px);
    transition:opacity .12s ease,transform .12s ease,visibility .12s;
}
.contract-floating-info-tooltip.show{opacity:1;visibility:visible;transform:translateY(0)}

@media(max-width:1100px){
    .contract-filter-bar{grid-template-columns:minmax(220px,1.5fr) minmax(145px,1fr) minmax(145px,1fr) minmax(135px,.9fr) 82px}
}
@media(max-width:800px){
    .contract-toolbar{grid-template-columns:1fr}
    .contract-filter-bar{grid-template-columns:1fr 1fr}
    .contract-filter-bar .contract-search{grid-column:1/-1}
}

/* V17.0.5 - unavailable reference options stay visible but cannot be selected */
.searchable-select-option.is-disabled,
.searchable-select-option:disabled{
    opacity:.48;
    cursor:not-allowed!important;
    background:#f6f8f7!important;
    color:#7f8a85!important;
}

/* V17.0.5 - contract numeric and line-item alignment */
.contract-editor-form input[type="date"],
.contract-editor-form .contract-num,
.contract-details-shell .latin-numbers,
.contract-details-shell .num{
    text-align:center!important;
    direction:ltr!important;
    unicode-bidi:isolate!important;
    font-variant-numeric:tabular-nums;
}
.contract-editor-table td:not(.service) .searchable-select-label,
.contract-editor-table td:not(.service) .searchable-select-trigger,
.contract-editor-table td:not(.service) input,
.contract-editor-table td:not(.service) select{
    text-align:center!important;
}
.contract-editor-table td.service .searchable-select-label,
.contract-editor-table td.service .searchable-select-trigger{
    text-align:right!important;
}

/* === V17.0.7 Contracts: payment plans + 1366px baseline === */
.contract-source-service{display:flex;align-items:center;gap:7px;min-width:0}.contract-source-service b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contract-source-service small{flex:0 0 auto;font-size:9px;color:#607c6f;background:#edf6f1;border:1px solid #d8e8df;border-radius:999px;padding:2px 6px}.contract-locked-mark{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#eef5f1;color:#557267;font-size:12px}
.payment-plan-head{align-items:flex-end}.payment-plan-toolbar{display:grid;grid-template-columns:minmax(150px,190px) 100px auto auto;gap:6px;align-items:end;flex:0 0 auto}.payment-plan-control{min-width:0}.payment-plan-control label{display:block;font-size:9.5px;color:#607068;margin-bottom:3px}.payment-plan-control select,.payment-plan-control input{height:38px;width:100%;border:1px solid #cbdcd3;border-radius:8px;background:#fff;padding:0 8px;font-family:Cairo,sans-serif;font-size:11px}.payment-plan-control.count input{text-align:center;direction:ltr}.contract-payment-row.payment-fixed .payment-amount{background:color-mix(in srgb, var(--amber) 8%, var(--surface));border-color:#dfc47c}.contract-payment-row.payment-fixed .payment-amount:focus{box-shadow:0 0 0 2px rgba(210,160,50,.12)}
.contract-editor-table input[readonly]{background:#f4f7f5;color:#53675d;border-color:#dbe5df}.contract-editor-table .payment-percentage[readonly]{background:#f5f8f6;color:#345a48}

@media (min-width:1366px){
  .contract-editor-shell{gap:9px}.contract-section{padding:11px 12px}.contract-section-head{margin-bottom:8px}
  .contract-editor-table{font-size:11px}.contract-editor-table th{font-size:10px}.contract-editor-table input,.contract-editor-table select{font-size:12px}
  .contract-editor-table:not(.payments) th:nth-child(1),.contract-editor-table:not(.payments) td:nth-child(1){width:34px}
  .contract-editor-table:not(.payments) th.service,.contract-editor-table:not(.payments) td.service{width:29%}
  .contract-editor-table:not(.payments) th:nth-child(3),.contract-editor-table:not(.payments) td:nth-child(3){width:80px}
  .contract-editor-table:not(.payments) th:nth-child(4),.contract-editor-table:not(.payments) td:nth-child(4){width:80px}
  .contract-editor-table:not(.payments) th:nth-child(5),.contract-editor-table:not(.payments) td:nth-child(5){width:105px}
  .contract-editor-table:not(.payments) th:nth-child(6),.contract-editor-table:not(.payments) td:nth-child(6){width:95px}
  .contract-editor-table:not(.payments) th:nth-child(7),.contract-editor-table:not(.payments) td:nth-child(7){width:90px}
  .contract-editor-table:not(.payments) th:nth-child(8),.contract-editor-table:not(.payments) td:nth-child(8){width:105px}
  .contract-editor-table:not(.payments) th:nth-child(9),.contract-editor-table:not(.payments) td:nth-child(9){width:38px}
}
@media (max-width:1500px) and (min-width:1100px){
  .payment-plan-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end}.payment-plan-toolbar{grid-template-columns:170px 88px auto auto}
  .contract-two-columns{grid-template-columns:1fr}.contract-stack-row{grid-template-columns:minmax(210px,1.7fr) 130px 90px minmax(150px,1fr) 34px}.contract-stack-row.obligation-row{grid-template-columns:120px minmax(220px,1.7fr) 130px 120px 34px}
}
@media (max-width:1180px){
  .payment-plan-head{display:flex;align-items:stretch;flex-direction:column}.payment-plan-toolbar{width:100%;grid-template-columns:minmax(150px,1fr) 100px auto auto}.contract-editor-table{min-width:980px}
}

/* ========================================================================== */
/* V18 — Service Cases & Execution Management                                 */
/* ========================================================================== */
.service-case-page-heading,.service-case-editor-heading,.service-case-details-heading{margin-bottom:10px}
.service-case-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:10px}
.service-case-kpi-grid article{background:#fff;border:1px solid #dce7e1;border-radius:11px;padding:10px 12px;min-height:76px;box-shadow:0 2px 7px rgba(23,56,42,.04)}
.service-case-kpi-grid article>span{font-size:10.5px;color:#66766e}.service-case-kpi-grid article>b{display:block;font-size:21px;color:#193b2d;margin-top:4px}
.service-case-kpi-grid article.success{border-inline-start:4px solid #43a576}.service-case-kpi-grid article.warning{border-inline-start:4px solid #e0a23a}.service-case-kpi-grid article.info{border-inline-start:4px solid #4a91c7}.service-case-kpi-grid article.danger{border-inline-start:4px solid #d86d6d}
.service-case-list-panel{padding:10px 12px}.service-case-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;margin-bottom:9px}
.service-case-filter-bar{display:grid;grid-template-columns:minmax(230px,1.6fr) repeat(3,minmax(145px,1fr)) repeat(3,minmax(120px,.8fr)) auto;gap:6px;align-items:center}
.service-case-filter-bar .search-box{min-width:0}.service-case-filter-bar select,.service-case-filter-bar input{font-size:12px}
.service-case-table{font-size:11px}.service-case-table th,.service-case-table td{text-align:center;vertical-align:middle}.service-case-table .table-name-ar{text-align:right}.service-case-table td b{font-size:11px}.service-case-ooc{display:inline-flex;margin-inline-start:5px;padding:2px 6px;border-radius:999px;background:#fff3dc;color:#9a650c;font-size:8.5px;font-weight:700}
.service-case-editor{display:flex;flex-direction:column;gap:10px}.service-case-section{padding:12px 14px}.service-case-source-grid{grid-template-columns:1.4fr 1.4fr .8fr}.service-case-main-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.service-case-toggle-field .toggle-line{height:42px;border:1px solid #cbdcd3;border-radius:9px;background:#fff;display:flex;align-items:center;gap:8px;padding:0 10px}.service-case-toggle-field input{width:18px;height:18px}.service-case-toggle-field b{font-size:10.5px}.service-case-ooc-box{background:#fff9ee;border:1px solid #efd6a8;border-radius:10px;padding:10px;margin-top:8px}.service-case-ooc-box.hidden{display:none}.service-case-textareas textarea{min-height:110px}
.service-case-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:9px}.service-case-summary-grid article{background:#fff;border:1px solid #dce7e1;border-radius:10px;padding:9px 11px;min-height:78px}.service-case-summary-grid span{font-size:9.5px;color:#718078}.service-case-summary-grid b{display:block;font-size:13px;color:#1f4938;margin-top:3px}.service-case-summary-grid small{display:block;font-size:9px;color:#78877f;margin-top:2px}
.service-case-command-strip{padding:8px 10px;margin-bottom:9px}.service-case-command-strip>form{display:grid;grid-template-columns:180px minmax(260px,1fr) auto;gap:7px;align-items:center}.service-case-command-strip>form+form{margin-top:7px;display:flex;justify-content:flex-end}
.service-case-details-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:10px}.service-case-details-main,.service-case-details-side{display:flex;flex-direction:column;gap:10px}.service-case-detail-card{padding:11px 12px}
.service-case-sla-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.service-case-sla-grid article{border:1px solid #dce7e1;border-radius:9px;padding:9px;background:#fbfdfc}.service-case-sla-grid article.breached{border-color:#e9adad;background:#fff6f6}.service-case-sla-grid span,.service-case-sla-grid small{display:block;font-size:9px;color:#75857d}.service-case-sla-grid b{display:block;font-size:13px;color:#1f4938;margin:3px 0}.service-case-sla-grid strong{font-size:9px;color:#2f7959}.service-case-sla-grid .breached strong{color:#b04e4e}
.service-case-ooc-approval>p{font-size:11px;margin:5px 0 8px}.service-case-approval-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.service-case-approval-actions form{display:grid;grid-template-columns:minmax(140px,.8fr) minmax(160px,1fr) auto;gap:5px;align-items:center}
.service-case-checklist{display:flex;flex-direction:column;gap:5px}.service-case-check-row{display:grid;grid-template-columns:minmax(0,1fr) auto 320px;align-items:center;gap:7px;border-bottom:1px solid #e8efeb;padding:6px 0}.service-case-check-row b{font-size:10.5px}.service-case-check-row small{display:block;color:#7a8881;font-size:9px}.service-case-check-row form{display:grid;grid-template-columns:minmax(150px,1fr) auto;gap:5px;align-items:center}
.service-case-deliverables{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.service-case-deliverables article{border:1px solid #dce7e1;border-radius:8px;padding:8px;display:grid;grid-template-columns:1fr auto;gap:5px;align-items:center}.service-case-deliverables b{font-size:10.5px}.service-case-deliverables small{font-size:9px;color:#75857d}
.service-case-upload-form{display:grid;grid-template-columns:150px minmax(200px,1fr) minmax(170px,.8fr) auto;gap:6px;align-items:center;margin-bottom:9px}.service-case-upload-form input[type=file]{height:40px;padding:7px;border:1px solid #cbdcd3;border-radius:8px;background:#fff;font-size:10px}
.service-case-side-form{display:flex;flex-direction:column;gap:7px}.service-case-side-form textarea{min-height:74px}.service-case-details-side .searchable-select-combo{width:100%}
@media(max-width:1500px){.service-case-filter-bar{grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(135px,1fr)) repeat(2,minmax(115px,.8fr));}.service-case-filter-bar>.btn{grid-column:span 1}.service-case-kpi-grid,.service-case-summary-grid{grid-template-columns:repeat(3,1fr)}.service-case-main-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1366px){.service-case-toolbar{grid-template-columns:1fr}.service-case-toolbar>.btn{justify-self:end;grid-row:1}.service-case-filter-bar{grid-template-columns:minmax(210px,1.5fr) repeat(3,minmax(125px,1fr));}.service-case-filter-bar .btn{min-height:40px}.service-case-source-grid{grid-template-columns:1.2fr 1.2fr .8fr}.service-case-main-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-case-details-layout{grid-template-columns:minmax(0,1fr) 270px}.service-case-sla-grid{grid-template-columns:repeat(2,1fr)}.service-case-check-row{grid-template-columns:minmax(0,1fr) auto 280px}.service-case-deliverables{grid-template-columns:repeat(2,1fr)}}
@media(max-width:980px){.service-case-kpi-grid,.service-case-summary-grid{grid-template-columns:repeat(2,1fr)}.service-case-filter-bar,.service-case-source-grid,.service-case-main-grid,.service-case-details-layout,.service-case-sla-grid,.service-case-approval-actions,.service-case-upload-form{grid-template-columns:1fr}.service-case-check-row{grid-template-columns:1fr}.service-case-deliverables{grid-template-columns:1fr}.service-case-command-strip>form{grid-template-columns:1fr}}
.contract-service-cases-card{position:relative}.contract-service-case-actions{display:flex;gap:6px;justify-content:flex-end;margin:-4px 0 8px}.contract-service-cases-card .data-table td,.contract-service-cases-card .data-table th{text-align:center}.contract-service-cases-card .data-table .table-name-ar{text-align:right}.contract-service-open-btn{width:auto;min-width:58px;height:30px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;gap:5px;color:var(--green-700);background:#f7fbf7;border-color:#cfe0d4;font-weight:800;font-size:10px}.contract-service-open-btn:hover{background:#eaf6eb;border-color:#9fc8aa;box-shadow:0 5px 12px rgba(45,122,52,.10)}.contract-service-open-btn span:first-child{font-size:12px;line-height:1}

/* V18 report/action alignment */
.service-case-toolbar-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
@media(max-width:1366px){.service-case-toolbar-actions .btn{padding-inline:11px}}
.service-case-table{min-width:980px}.service-case-table .contract-source-ref{display:block;margin-top:2px;font-size:9px;color:#7a8881}.service-case-sla-inline{display:block;margin-top:4px}.service-case-sla-inline .pill{padding:2px 7px;font-size:8.5px}

/* ========================================================================== */
/* V18.0.2 — Service Cases visual standardization                            */
/* ========================================================================== */
.service-case-editor .form-grid{gap:10px 12px;padding:10px 12px}
.service-case-editor .form-grid.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
.service-case-editor .form-grid>label{display:flex;flex-direction:column;gap:5px;min-width:0;margin:0}
.service-case-editor .form-grid>label>span:first-child{display:block;font-size:10.5px;font-weight:700;color:#526057;line-height:1.4}
.service-case-editor .form-grid>label>input:not([type="checkbox"]),
.service-case-editor .form-grid>label>select,
.service-case-editor .form-grid>label>textarea,
.service-case-editor .service-case-ooc-box input,
.service-case-editor .service-case-ooc-box select,
.service-case-editor .service-case-ooc-box textarea{
  width:100%;border:1px solid #cbdcd3;border-radius:9px;background:#fff;color:#20372c;
  outline:none;font-family:Cairo,sans-serif;font-size:13px;transition:border-color .18s,box-shadow .18s,background .18s;
}
.service-case-editor .form-grid>label>input:not([type="checkbox"]),
.service-case-editor .form-grid>label>select,
.service-case-editor .service-case-ooc-box input,
.service-case-editor .service-case-ooc-box select{height:42px;min-height:42px;padding:0 11px}
.service-case-editor .form-grid>label>textarea,
.service-case-editor .service-case-ooc-box textarea{min-height:96px;padding:9px 11px;resize:vertical;line-height:1.65}
.service-case-editor .form-grid>label>input:focus,
.service-case-editor .form-grid>label>select:focus,
.service-case-editor .form-grid>label>textarea:focus,
.service-case-editor .service-case-ooc-box input:focus,
.service-case-editor .service-case-ooc-box select:focus,
.service-case-editor .service-case-ooc-box textarea:focus{border-color:#75a95f;box-shadow:0 0 0 3px rgba(75,139,60,.10)}
.service-case-editor .form-grid>label>span.field-validation-error{font-size:9.5px;color:var(--red);min-height:0}
.service-case-editor .searchable-select-combo,.service-case-filter-bar .searchable-select-combo{width:100%;min-width:0}
.service-case-editor .searchable-select-trigger,
.service-case-filter-bar .searchable-select-trigger{
  width:100%;height:42px;min-height:42px;border:1px solid #cbdcd3;border-radius:9px;background:#fff;
  padding:0 11px;font-family:Cairo,sans-serif;font-size:13px;color:#20372c;box-shadow:none;
}
.service-case-filter-bar .searchable-select-trigger{font-size:12px;border-radius:10px}
.service-case-editor .searchable-select-trigger:focus,.service-case-filter-bar .searchable-select-trigger:focus{border-color:#75a95f;box-shadow:0 0 0 3px rgba(75,139,60,.10)}
.service-case-editor .searchable-select-label,.service-case-filter-bar .searchable-select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.service-case-editor input[dir="ltr"],.service-case-editor .ltr-input,.service-case-editor input[type="datetime-local"]{direction:ltr;text-align:center;font-variant-numeric:tabular-nums}
.service-case-editor input[type="datetime-local"]::-webkit-calendar-picker-indicator{cursor:pointer}
.service-case-textareas>label:first-child textarea{text-align:right;direction:rtl}
.service-case-textareas>label:nth-child(2) textarea{text-align:left;direction:ltr}
.service-case-textareas>label.span-2 textarea{text-align:right;direction:rtl}
.service-case-toggle-field .toggle-line{height:42px;min-height:42px;border-radius:9px;font-size:12px}
.service-case-toggle-field .toggle-line input{accent-color:#2f8b3c}
.service-case-ooc-box{padding:12px 14px}.service-case-ooc-box .form-grid{padding:0}
.service-case-section{overflow:visible}
.service-case-editor-footer{display:flex;justify-content:flex-end;gap:8px;position:sticky;bottom:8px;z-index:8;background:rgba(246,249,247,.96);backdrop-filter:blur(8px);padding:9px;border-radius:10px;border:1px solid #dbe7e0}

.service-case-filter-bar>.search-box,.service-case-filter-bar>.searchable-select-combo,.service-case-filter-bar>.btn{height:42px;min-height:42px}
.service-case-filter-bar .search-box input{font-size:12px}
.service-case-table th,.service-case-table td{text-align:center!important;padding:10px 7px}
.service-case-table .table-name-ar{text-align:right!important}
.service-case-table .service-case-row-no{width:38px;min-width:38px;text-align:center!important;direction:ltr;font-variant-numeric:tabular-nums;color:#53665c;font-weight:700}
.service-case-table .row-actions{display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}
.service-case-table .row-actions .mini-btn{width:auto;min-width:48px;height:32px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;font-size:10px;font-weight:800;color:#2c624a;background:#fff;border:1px solid #cfddd5}
.service-case-table .row-actions .mini-btn:hover{background:#edf6f1;border-color:#a9cbbb}
.service-case-table .contract-code-link{display:inline-block;line-height:1.35}

@media(max-width:1366px){
  .service-case-editor .form-grid{gap:8px 9px;padding:9px 10px}
  .service-case-editor .form-grid>label>input:not([type="checkbox"]),.service-case-editor .form-grid>label>select,.service-case-editor .searchable-select-trigger{font-size:12.5px}
  .service-case-filter-bar{gap:5px}
}
@media(max-width:980px){.service-case-editor .form-grid.two-cols{grid-template-columns:1fr}.service-case-editor .span-2{grid-column:span 1}}

/* ========================================================================== */
/* V18.0.3 — Service Case Details full control theme                         */
/* ========================================================================== */
.service-case-details-layout,
.service-case-command-strip,
.service-case-detail-card,
.service-case-details-side{--sc-control-h:42px;--sc-radius:9px;--sc-border:#cbdcd3;--sc-focus:#75a95f}

.service-case-command-strip input:not([type="hidden"]),
.service-case-command-strip select,
.service-case-command-strip textarea,
.service-case-approval-actions input:not([type="hidden"]),
.service-case-approval-actions select,
.service-case-approval-actions textarea,
.service-case-check-row form input:not([type="hidden"]),
.service-case-check-row form select,
.service-case-upload-form input:not([type="hidden"]):not([type="file"]),
.service-case-upload-form select,
.service-case-side-form input:not([type="hidden"]),
.service-case-side-form select,
.service-case-side-form textarea,
.service-case-command-strip .searchable-select-trigger,
.service-case-approval-actions .searchable-select-trigger,
.service-case-check-row .searchable-select-trigger,
.service-case-upload-form .searchable-select-trigger,
.service-case-side-form .searchable-select-trigger{
    width:100%;min-width:0;height:var(--sc-control-h);min-height:var(--sc-control-h);
    border:1px solid var(--sc-border);border-radius:var(--sc-radius);background:#fff;color:#20372c;
    padding:0 11px;outline:none;box-shadow:none;font-family:Cairo,Tahoma,Arial,sans-serif;font-size:13px;
    transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.service-case-command-strip textarea,
.service-case-approval-actions textarea,
.service-case-side-form textarea{
    height:auto;min-height:84px;padding:9px 11px;line-height:1.65;resize:vertical;text-align:right;direction:rtl;
}
.service-case-command-strip input:not([type="hidden"]):focus,
.service-case-approval-actions input:not([type="hidden"]):focus,
.service-case-check-row form input:not([type="hidden"]):focus,
.service-case-upload-form input:not([type="hidden"]):not([type="file"]):focus,
.service-case-side-form input:not([type="hidden"]):focus,
.service-case-command-strip textarea:focus,
.service-case-approval-actions textarea:focus,
.service-case-side-form textarea:focus,
.service-case-command-strip .searchable-select-trigger:focus,
.service-case-approval-actions .searchable-select-trigger:focus,
.service-case-check-row .searchable-select-trigger:focus,
.service-case-upload-form .searchable-select-trigger:focus,
.service-case-side-form .searchable-select-trigger:focus{
    border-color:var(--sc-focus);box-shadow:0 0 0 3px rgba(75,139,60,.10);
}
.service-case-command-strip .searchable-select-combo,
.service-case-approval-actions .searchable-select-combo,
.service-case-check-row .searchable-select-combo,
.service-case-upload-form .searchable-select-combo,
.service-case-side-form .searchable-select-combo{width:100%;min-width:0}
.service-case-command-strip .searchable-select-label,
.service-case-check-row .searchable-select-label,
.service-case-upload-form .searchable-select-label{text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.service-case-side-form .searchable-select-label,
.service-case-approval-actions .searchable-select-label{text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Status command bar */
.service-case-command-strip{overflow:visible}
.service-case-command-strip>form:first-of-type{grid-template-columns:minmax(190px,230px) minmax(300px,1fr) 130px;gap:8px}
.service-case-command-strip>form:first-of-type>.btn{height:42px;min-height:42px;justify-content:center;white-space:nowrap}
.service-case-command-strip>form+form .btn{height:40px;min-height:40px}

/* Out-of-contract approval controls */
.service-case-approval-actions form{grid-template-columns:minmax(175px,.9fr) minmax(210px,1.15fr) 82px;gap:7px}
.service-case-approval-actions form>.btn{height:42px;min-height:42px;justify-content:center}

/* Checklist: same select/button dimensions, no overlapping controls */
.service-case-check-row{grid-template-columns:minmax(0,1fr) 74px minmax(265px,330px);gap:9px;padding:8px 0}
.service-case-check-row>span.pill{justify-self:center;min-width:64px;text-align:center}
.service-case-check-row form{grid-template-columns:minmax(175px,1fr) 70px;gap:7px;width:100%}
.service-case-check-row form>.mini-btn{
    width:70px;height:42px;min-height:42px;border:1px solid #cbdcd3;border-radius:9px;background:#fff;color:#285d45;
    display:inline-flex;align-items:center;justify-content:center;font-family:Cairo,sans-serif;font-size:10.5px;font-weight:800;
}
.service-case-check-row form>.mini-btn:hover{background:#edf6f1;border-color:#a9cbbb}

/* Assignment panel */
.service-case-side-form{gap:8px}
.service-case-side-form>.btn{width:100%;height:42px;min-height:42px;justify-content:center}
.service-case-side-form textarea{min-height:88px}

/* Documents center — replace browser-default file input with a system control */
.service-case-upload-form{grid-template-columns:170px minmax(260px,1.2fr) minmax(220px,1fr) 105px;gap:7px;align-items:center}
.service-case-upload-form>.btn{height:42px;min-height:42px;justify-content:center;white-space:nowrap}
.service-case-file-picker{
    position:relative;display:flex;align-items:center;width:100%;height:42px;min-width:0;overflow:hidden;
    border:1px solid #cbdcd3;border-radius:9px;background:#fff;cursor:pointer;transition:border-color .18s,box-shadow .18s;
}
.service-case-file-picker:focus-within{border-color:#75a95f;box-shadow:0 0 0 3px rgba(75,139,60,.10)}
.service-case-file-picker input[type="file"]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.service-case-file-button{
    height:100%;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;padding:0 13px;
    background:#edf6f1;color:#285d45;border-inline-end:1px solid #d9e6df;font-size:10.5px;font-weight:800;
}
.service-case-file-name{
    min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 11px;
    color:#75837c;font-size:10.5px;text-align:right;direction:rtl;
}
.service-case-file-picker.has-file .service-case-file-name{color:#20372c;font-weight:700;direction:ltr;text-align:left}

/* Native selects remain visually correct before/without JS enhancement. */
.service-case-command-strip select,
.service-case-approval-actions select,
.service-case-check-row form select,
.service-case-upload-form select,
.service-case-side-form select{appearance:none;-webkit-appearance:none;padding-inline-end:30px;cursor:pointer}

@media(max-width:1366px){
    .service-case-command-strip input:not([type="hidden"]),
    .service-case-approval-actions input:not([type="hidden"]),
    .service-case-check-row form input:not([type="hidden"]),
    .service-case-upload-form input:not([type="hidden"]):not([type="file"]),
    .service-case-side-form input:not([type="hidden"]),
    .service-case-command-strip .searchable-select-trigger,
    .service-case-approval-actions .searchable-select-trigger,
    .service-case-check-row .searchable-select-trigger,
    .service-case-upload-form .searchable-select-trigger,
    .service-case-side-form .searchable-select-trigger{font-size:12.5px}
    .service-case-command-strip>form:first-of-type{grid-template-columns:minmax(175px,215px) minmax(240px,1fr) 120px}
    .service-case-check-row{grid-template-columns:minmax(0,1fr) 68px minmax(245px,290px)}
    .service-case-check-row form{grid-template-columns:minmax(160px,1fr) 66px}
    .service-case-upload-form{grid-template-columns:150px minmax(220px,1.1fr) minmax(190px,.9fr) 98px}
}
@media(max-width:980px){
    .service-case-command-strip>form:first-of-type,.service-case-approval-actions form,.service-case-check-row,.service-case-check-row form,.service-case-upload-form{grid-template-columns:1fr}
    .service-case-check-row>span.pill{justify-self:start}
    .service-case-check-row form>.mini-btn{width:100%}
}

/* ========================================================================== */
/* V19 - التحصيلات والمستحقات                                                */
/* ========================================================================== */
.collection-page-heading,.collection-editor-heading,.collection-details-heading{margin-bottom:12px}
.collection-kpi-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin-bottom:10px}
.collection-kpi-grid article{background:#fff;border:1px solid #dbe8df;border-radius:14px;padding:12px 14px;min-height:88px;display:flex;flex-direction:column;justify-content:center;gap:4px;box-shadow:0 5px 14px rgba(29,67,42,.04)}
.collection-kpi-grid article>span{font-size:10.5px;color:#718078}.collection-kpi-grid article>b{font-size:18px;color:#173a28}.collection-kpi-grid article b small{font-size:9px;color:#64756a}.collection-kpi-grid article>small{font-size:9.5px;color:#7a877f}
.collection-kpi-grid article.success{background:#f3fbf5}.collection-kpi-grid article.warning{background:color-mix(in srgb, var(--amber) 8%, var(--surface))}.collection-kpi-grid article.danger{background:#fff5f3}.collection-kpi-grid article.info{background:#f4f8fc}
.collection-aging-strip{display:grid;grid-template-columns:130px repeat(4,1fr);gap:8px;background:#fff;border:1px solid #dbe8df;border-radius:12px;padding:8px 10px;margin-bottom:10px;align-items:stretch}.collection-aging-strip>div{display:flex;align-items:center;justify-content:center;color:#295e45;font-weight:800;font-size:11px}.collection-aging-strip article{border-inline-start:1px solid #e6eee9;padding:5px 12px;text-align:center}.collection-aging-strip small{display:block;color:#728078;font-size:9.5px}.collection-aging-strip b{display:block;margin-top:2px;color:#244c38;font-size:12.5px}
.collection-list-panel,.collection-receipts-panel{padding:10px;margin-bottom:10px;overflow:visible}.collection-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;margin-bottom:9px}.collection-toolbar-actions{display:flex;gap:7px;align-items:center;white-space:nowrap}.collection-filter-bar{display:grid;grid-template-columns:minmax(210px,1.7fr) minmax(175px,1.25fr) minmax(175px,1.25fr) 138px 138px 130px 130px 78px;gap:7px;align-items:center;min-width:0}.collection-filter-bar>input,.collection-filter-bar .search-box,.collection-filter-bar .searchable-select-combo{min-width:0;width:100%}.collection-filter-bar>input{height:42px;border:1px solid #cbdcd3;border-radius:9px;background:#fff;padding:0 9px;font:500 12.5px Cairo,sans-serif;text-align:center}.collection-table th,.collection-table td,.collection-receipts-table th,.collection-receipts-table td{text-align:center}.collection-table .table-name-ar,.collection-receipts-table .table-name-ar{text-align:right}.collection-table .row-actions,.collection-receipts-table .row-actions{min-width:112px}.collection-table .row-actions .mini-btn,.collection-receipts-table .row-actions .mini-btn{min-width:48px;height:30px;display:inline-flex;align-items:center;justify-content:center}
.collection-section{padding:12px;margin-bottom:10px;overflow:visible}.collection-source-grid{grid-template-columns:minmax(290px,1.5fr) minmax(290px,1.5fr) 180px}.collection-payment-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.collection-editor input:not([type=hidden]),.collection-editor textarea,.collection-editor select,.collection-editor .searchable-select-trigger{width:100%;min-width:0;border:1px solid #cbdcd3;border-radius:9px;background:#fff;color:#20372c;box-shadow:none;font-family:Cairo,Tahoma,Arial,sans-serif;font-size:13px;outline:none;transition:border-color .18s,box-shadow .18s}.collection-editor input:not([type=hidden]),.collection-editor select,.collection-editor .searchable-select-trigger{height:42px;min-height:42px;padding:0 11px}.collection-editor textarea{min-height:82px;padding:9px 11px;resize:vertical;line-height:1.6}.collection-editor input:focus,.collection-editor textarea:focus,.collection-editor .searchable-select-trigger:focus{border-color:#75a95f;box-shadow:0 0 0 3px rgba(75,139,60,.10)}.collection-editor label>span:first-child{display:block;font-size:10.5px;font-weight:700;color:#53685d;margin-bottom:5px}.collection-editor .latin-input,.collection-editor .ltr-input{direction:ltr;text-align:center;font-variant-numeric:tabular-nums}
.money-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) 58px;border:1px solid #cbdcd3;border-radius:9px;background:#fff;overflow:hidden}.money-input-wrap input{border:0!important;border-radius:0!important;box-shadow:none!important}.money-input-wrap>b{display:flex;align-items:center;justify-content:center;border-inline-start:1px solid #dce7e1;color:#2f674c;font-size:11px;background:#f5faf6}
.collection-allocation-summary{display:flex;justify-content:flex-end;gap:8px;margin:7px 0}.collection-allocation-summary span{border:1px solid #dbe8df;border-radius:9px;background:#f8fbf9;padding:7px 11px;font-size:10px;color:#617168}.collection-allocation-summary b{color:#214b36;margin-inline-start:5px}.collection-allocation-summary .collection-balance-error{background:#fff3f0;border-color:#ecc2b9;color:#9c3326}.collection-allocation-table th,.collection-allocation-table td{text-align:center}.collection-allocation-table .table-name-ar{text-align:right}.collection-allocation-table .allocation-amount{height:38px;min-height:38px;text-align:center;border:1px solid #cbdcd3;border-radius:8px;background:#fff;width:100%;font:600 12px Cairo,sans-serif;direction:ltr}.collection-allocation-table .allocation-amount:focus{border-color:#75a95f;box-shadow:0 0 0 3px rgba(75,139,60,.10);outline:none}
.collection-details-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:10px}.collection-details-grid article{background:#fff;border:1px solid #dbe8df;border-radius:12px;padding:11px;min-height:78px;display:flex;flex-direction:column;justify-content:center}.collection-details-grid span{font-size:9.5px;color:#74817a}.collection-details-grid b{font-size:12.5px;color:#1e4934;margin-top:3px}.collection-details-grid small{font-size:9px;color:#7a877f}.collection-details-grid .success{background:#f4fbf5}.collection-details-grid .danger{background:#fff4f2}.collection-heading-actions{display:flex;gap:7px}.collection-detail-panel{padding:12px;margin-bottom:10px}.collection-info-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.collection-info-list>div{background:#f9fbfa;border:1px solid #e2ebe5;border-radius:9px;padding:9px 11px}.collection-info-list span{display:block;font-size:9px;color:#758179}.collection-info-list b{display:block;margin-top:3px;font-size:11px;color:#254b38}.collection-info-list .span-2{grid-column:span 2}.collection-upload-form{display:grid;grid-template-columns:170px minmax(260px,1.2fr) minmax(240px,1fr) 100px;gap:7px;align-items:center;margin-bottom:10px}.collection-upload-form>input,.collection-upload-form select,.collection-upload-form .searchable-select-trigger{height:42px;border:1px solid #cbdcd3;border-radius:9px;background:#fff;padding:0 10px;font:500 12.5px Cairo,sans-serif}.collection-upload-form>.btn{height:42px;justify-content:center}.collection-file-picker{position:relative;display:flex;height:42px;border:1px solid #cbdcd3;border-radius:9px;background:#fff;overflow:hidden;cursor:pointer}.collection-file-picker input[type=file]{position:absolute;width:1px;height:1px;opacity:0}.collection-file-button{display:flex;align-items:center;padding:0 12px;background:#edf6f1;color:#285d45;border-inline-end:1px solid #d9e6df;font-size:10px;font-weight:800}.collection-file-name{display:flex;align-items:center;min-width:0;flex:1;padding:0 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#75837c;font-size:10px}.collection-doc-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.collection-doc-list>a{border:1px solid #dfe9e2;border-radius:9px;padding:9px;text-decoration:none;color:#254b38;background:#fbfdfb}.collection-doc-list a span,.collection-doc-list a small{display:block;margin-top:3px;color:#718078;font-size:9px}.collection-void-panel,.collection-voided-panel{padding:12px;margin-bottom:10px}.collection-void-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.9fr);gap:12px;align-items:center}.collection-void-panel>div small{display:block;margin-top:3px;color:#78857e}.collection-void-panel form{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:7px}.collection-void-panel input{height:42px;border:1px solid #e2b8b1;border-radius:9px;padding:0 10px;font:500 12.5px Cairo,sans-serif}.collection-voided-panel{background:#fff4f2;border-color:#efc8c1}.collection-voided-panel b{color:#a0372c}.collection-voided-panel p{margin:5px 0;color:#673d37}
@media(max-width:1366px){.collection-kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.collection-kpi-grid article{padding:9px 10px}.collection-kpi-grid article>b{font-size:15px}.collection-aging-strip{grid-template-columns:105px repeat(4,1fr)}.collection-toolbar{grid-template-columns:1fr}.collection-toolbar-actions{justify-content:flex-start}.collection-filter-bar{grid-template-columns:minmax(190px,1.7fr) minmax(155px,1.15fr) minmax(155px,1.15fr) 120px 120px 116px 116px 70px}.collection-source-grid{grid-template-columns:minmax(250px,1.4fr) minmax(250px,1.4fr) 165px}.collection-details-grid{grid-template-columns:repeat(3,1fr)}.collection-upload-form{grid-template-columns:145px minmax(220px,1.1fr) minmax(200px,1fr) 92px}}
@media(max-width:980px){.collection-kpi-grid{grid-template-columns:repeat(2,1fr)}.collection-aging-strip{grid-template-columns:1fr 1fr}.collection-filter-bar,.collection-source-grid,.collection-payment-grid,.collection-info-list,.collection-upload-form,.collection-void-panel,.collection-void-panel form{grid-template-columns:1fr}.collection-details-grid{grid-template-columns:repeat(2,1fr)}.collection-doc-list{grid-template-columns:1fr}}


/* ========================================================================== */
/* V19 Clean UI — stable ComboBox scrolling and original compact actions      */
/* ========================================================================== */
.searchable-select-results{
    overflow-y:auto!important;
    overscroll-behavior:contain;
    touch-action:pan-y;
    scrollbar-width:thin;
    scrollbar-color:#93aa98 transparent;
}
.searchable-select-results::-webkit-scrollbar{width:7px}
.searchable-select-results::-webkit-scrollbar-track{background:transparent}
.searchable-select-results::-webkit-scrollbar-thumb{background:#93aa98;border-radius:999px}
.searchable-select-add-footer{
    border-top:1px solid #e0e8dd;
    margin:7px -9px -9px;
    padding:0;
    background:#f5faf3;
}
.searchable-select-add-footer[hidden]{display:none!important}
.searchable-select-add-button{
    width:100%;height:42px;border:0;background:transparent;color:#23732c;
    font-family:'Cairo',Tahoma,Arial,sans-serif;font-size:11.5px;font-weight:800;
    cursor:pointer;text-align:right;padding:0 13px;
}
.searchable-select-add-button:hover{background:#eaf5e6}

/* Keep the original V19 icon sizing; only move actions to the outer edge. */
.crm-row-actions,
.contract-row-actions,
.service-case-table .row-actions,
.collection-table .row-actions,
.collection-receipts-table .row-actions{
    justify-content:flex-end!important;
}
.crm-table td.table-actions-column,
.data-table td.actions-cell.table-actions-column{
    padding-left:5px!important;
    padding-right:6px!important;
}


/* ========================================================================== */
/* V19.0.8 — ComboBox local positioning + scroll fix only                    */
/* ========================================================================== */
.searchable-select-combo{
    position:relative!important;
}
.searchable-select-combo.is-open{
    z-index:10060!important;
}
.searchable-select-combo .searchable-select-dropdown{
    position:absolute!important;
    inset-inline:0!important;
    top:calc(100% + 6px)!important;
    bottom:auto!important;
    width:100%!important;
    max-width:none!important;
    transform:none!important;
    margin:0!important;
    z-index:10070!important;
}
.searchable-select-combo.searchable-open-up .searchable-select-dropdown{
    top:auto!important;
    bottom:calc(100% + 6px)!important;
}
.searchable-select-combo.is-open .searchable-select-dropdown{
    display:block!important;
}
.searchable-select-results{
    max-height:var(--searchable-select-max-height,300px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    touch-action:pan-y!important;
    scrollbar-gutter:stable;
    pointer-events:auto;
}
.searchable-select-search,
.searchable-select-option,
.searchable-select-add-button{pointer-events:auto}

/* ========================================================================== */
/* V19.1 — Collections quick popups                                            */
/* ========================================================================== */
.collection-contract-link{border:0;background:transparent;padding:0;cursor:pointer;font:inherit;color:inherit;text-decoration:underline;text-decoration-color:#b8cabb;text-underline-offset:3px}
.collection-contract-link:hover{color:var(--green-700,#2e7d32);text-decoration-color:currentColor}
.collection-popup-card{width:min(760px,94vw);max-height:min(720px,92vh)}
.collection-popup-body{padding:18px 20px;overflow:auto}
.collection-popup-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 14px;border-bottom:1px solid var(--border,#e1e8df);margin-bottom:14px}
.collection-popup-title>b{font-size:15px}
.collection-contract-summary-grid,.quick-collection-context{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.collection-contract-summary-grid>div,.quick-collection-context>div{border:1px solid var(--border,#e1e8df);border-radius:11px;padding:10px 12px;background:#fbfdfb;min-width:0}
.collection-contract-summary-grid span,.quick-collection-context span{display:block;font-size:10.5px;color:var(--muted,#748077);margin-bottom:4px}
.collection-contract-summary-grid b,.quick-collection-context b{display:block;font-size:12.5px;overflow-wrap:anywhere}
.quick-collection-card{width:min(820px,95vw)}
.quick-collection-context{margin-bottom:14px}
.quick-collection-fields{padding:0!important}
@media(max-width:720px){.collection-contract-summary-grid,.quick-collection-context{grid-template-columns:1fr}.collection-popup-card,.quick-collection-card{width:calc(100vw - 18px);max-height:calc(100dvh - 18px)}}

/* V19.0.11 - سند القبض: أعمدة توزيع التحصيل متساوية. */
.collection-allocation-equal{table-layout:fixed!important;width:100%!important}
.collection-allocation-equal col{width:25%!important}
.collection-allocation-equal th,.collection-allocation-equal td{text-align:center!important;vertical-align:middle!important}

/* ========================================================================== */
/* V19.0.12 — final ComboBox/footer + receipt-table guards                    */
/* ========================================================================== */
.modal-footer,
.compact-modal-footer{position:relative;z-index:10080}
.searchable-select-combo.is-open{z-index:10060!important}
.searchable-select-combo .searchable-select-dropdown{z-index:10070!important}
/* Footer should visually win if an old/custom modal has unusual overflow geometry. */
.modal-footer + .searchable-select-dropdown,
.compact-modal-footer + .searchable-select-dropdown{z-index:10060!important}

/* V19.0.13 — portaled ComboBox geometry: exact field alignment + footer-safe open-up */
.searchable-select-dropdown.searchable-select-portaled{
    display:block!important;
    inset-inline:auto!important;
    overflow:hidden!important;
}
.searchable-select-dropdown.searchable-select-portaled .searchable-select-results{
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    touch-action:pan-y!important;
}


/* V19.0.17 — ComboBox dropdown overlays modal footer instead of being clipped by it. */
.modal-footer,
.compact-modal-footer,
.opportunity-modal-footer,
.activity-modal-footer{z-index:10080!important}
.searchable-select-dropdown.searchable-select-portaled{z-index:13000!important}


/* V19.0.18 field consistency audit */
.field input:not([type=checkbox]):not([type=radio]):not([type=file]),
.field select,
.field .searchable-select-trigger{font-family:'Cairo',Tahoma,Arial,sans-serif;min-height:42px;}
.field input:not([type=checkbox]):not([type=radio]):not([type=file]),
.field select{font-size:13px;}
.field textarea{font-family:'Cairo',Tahoma,Arial,sans-serif;font-size:13px;}
.quotation-discount-type-col .searchable-select-combo{width:100%;min-width:0;}
.quotation-discount-type-col .searchable-select-trigger{min-width:0;width:100%;}

/* ========================================================================== 
   V20.0.1 - Financial Foundation / Chart of Accounts
   ========================================================================== */
.finance-stats-strip{margin-bottom:10px}
.finance-account-panel{overflow:hidden}
.finance-account-toolbar{overflow:visible;padding:10px 12px;flex-wrap:nowrap;align-items:center}
.finance-account-toolbar .toolbar-actions{flex:0 0 auto;white-space:nowrap}
.finance-account-filter{
  min-width:0;
  flex:1 1 auto;
  display:grid;
  grid-template-columns:minmax(250px,1.8fr) minmax(150px,.85fr) minmax(140px,.75fr) auto;
  align-items:center;
  gap:8px;
  flex-wrap:nowrap;
  justify-content:stretch;
}
.finance-account-filter .search-box{min-width:0;width:100%}
.finance-account-filter .searchable-select-combo{min-width:0;width:100%}
.finance-account-filter>.btn{height:42px;white-space:nowrap;padding-inline:14px}
.finance-accounts-layout{grid-template-columns:300px minmax(0,1fr);min-height:470px}
.finance-account-tree-panel{background:linear-gradient(180deg,#f9fcf8,#fff)}
.finance-account-tree-scroll{max-height:545px}
.finance-tree-list .finance-tree-node{width:100%;border:0;background:transparent;font-family:'Cairo',Tahoma,Arial,sans-serif;text-align:right;cursor:pointer}
.finance-tree-list .finance-tree-node:focus-visible{outline:2px solid #78a96b;outline-offset:1px}
.finance-tree-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.finance-tree-node .tree-dot.posting{background:#3374d6;box-shadow:0 0 0 4px #eaf2ff}
.finance-tree-node .tree-dot.summary{background:var(--green-600)}
.finance-account-table{min-width:1060px}
.finance-account-table th,.finance-account-table td{text-align:center}
.finance-account-table .table-name-ar{text-align:right}
.finance-system-mark{display:inline-flex;margin-inline-start:6px;padding:2px 6px;border-radius:8px;background:#edf5e9;color:#32703a;font-size:8px;font-weight:800;vertical-align:middle}
.finance-lock-btn{color:#7d8981;cursor:not-allowed;opacity:.55}
.finance-account-modal-card{width:min(880px,95vw);overflow:visible}
.finance-account-modal-body{max-height:68vh;overflow:auto}
.finance-account-options-row{gap:9px;flex-wrap:wrap}
.finance-account-option-note{font-size:9.5px;color:#6b786f;line-height:1.65;flex:1;min-width:280px}
.finance-level-preview-field input[readonly]{background:#f7faf6;color:#4a5d50;text-align:center}
.finance-account-modal-card .modal-footer{position:relative;z-index:2}

@media(max-width:1100px){
  .finance-accounts-layout{grid-template-columns:1fr}
  .finance-account-tree-panel{border-left:0;border-bottom:1px solid var(--border)}
  .finance-account-tree-scroll{max-height:260px}
  .finance-account-toolbar{flex-wrap:wrap;align-items:stretch}
  .finance-account-toolbar .toolbar-actions{width:100%}
  .finance-account-filter{width:100%;grid-template-columns:minmax(220px,1.5fr) repeat(2,minmax(135px,1fr)) auto}
}
@media(max-width:760px){
  .finance-account-filter{grid-template-columns:1fr 1fr}
  .finance-account-filter .search-box{grid-column:1 / -1}
  .finance-account-filter>.btn{width:100%}
}


/* ========================================================================== 
   V20.0.3 - Chart of Accounts hierarchy + double-click creation choices
   ========================================================================== */
.finance-account-name-hierarchy{
  display:flex;align-items:center;gap:6px;min-width:0;position:relative;
}
.finance-account-name-hierarchy b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.finance-hierarchy-arrow{color:#87a08c;font-size:12px;font-weight:900;flex:0 0 auto}
.finance-account-name-level-1{padding-right:0}
.finance-account-name-level-2{padding-right:14px}
.finance-account-name-level-3{padding-right:28px}
.finance-account-name-level-4{padding-right:42px}
.finance-account-name-level-5{padding-right:56px}
.finance-account-name-level-6{padding-right:70px}
.finance-tree-list .dept-tree-list{margin-top:2px}
.finance-tree-list .finance-tree-node{position:relative}
.finance-tree-list .finance-tree-node:hover{background:#edf6e9}
.finance-account-choice-card{width:min(560px,94vw);overflow:visible}
.finance-account-choice-body{display:grid;gap:10px;padding:14px 16px}
.finance-create-choice{
  width:100%;min-height:72px;border:1px solid #dce8d9;background:#fbfdf9;border-radius:13px;
  padding:12px 14px;text-align:right;font-family:'Cairo',Tahoma,Arial,sans-serif;cursor:pointer;
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;color:#243b2b;
}
.finance-create-choice:hover{background:#edf6e9;border-color:#bcd5b5}
.finance-create-choice b{font-size:13px;color:#1f5f2c}
.finance-create-choice span{font-size:10px;color:#6d7a70;line-height:1.7}
.finance-create-choice:disabled{cursor:not-allowed;opacity:.5;background:#f5f6f4}
.finance-account-choice-note{min-height:24px;padding:7px 9px;border-radius:9px;background:#f7faf6;color:#66746a;font-size:9.5px;line-height:1.7}
@media(max-width:760px){
  .finance-account-name-level-2{padding-right:8px}
  .finance-account-name-level-3{padding-right:16px}
  .finance-account-name-level-4{padding-right:24px}
  .finance-account-name-level-5{padding-right:32px}
  .finance-account-name-level-6{padding-right:40px}
}


/* ========================================================================== 
   V20.0.5 - Chart of Accounts web hierarchy emphasis + full-page tree
   ========================================================================== */
@media(min-width:1101px){
  .finance-accounts-layout{align-items:stretch;min-height:0}
  .finance-account-tree-panel{
    align-self:stretch;
    height:auto;
    min-height:100%;
    display:flex;
    flex-direction:column;
    overflow:visible;
    background:linear-gradient(180deg,#f9fcf8 0,#fff 100%);
  }
  .finance-account-tree-scroll{
    max-height:none!important;
    height:auto!important;
    overflow:visible!important;
    flex:1 1 auto;
    padding-bottom:24px;
  }
}

/* V20.0.6 - Level-1 accounts use the same calm light-green language as the Active status badge. */
.finance-account-row-level-1 > td{
  background:#e7f7e6!important;
  color:#245f2b!important;
  border-bottom-color:#cfe8cd!important;
  font-weight:800;
}
.finance-account-row-level-1:hover > td{background:#ddf2db!important}
.finance-account-row-level-1 .code,
.finance-account-row-level-1 .finance-account-name-hierarchy b,
.finance-account-row-level-1 .rtl-text,
.finance-account-row-level-1 .latin-numbers{color:#245f2b!important}
.finance-account-row-level-1 .finance-system-mark{
  background:#f4fbf3;
  color:#2d7a34;
  border:1px solid #cfe8cd;
}
.finance-account-row-level-1 .pill.green{
  background:#d6efd4;
  color:#2d7a34;
}
.finance-account-row-level-1 .pill.neutral{
  background:#edf3ec;
  color:#526456;
}
.finance-account-row-level-1 .pill.blue{
  background:#eaf2ff;
  color:#3374d6;
}
.finance-account-row-level-1 .pill.red{
  background:#fdebea;
  color:#c64e46;
}
.finance-account-row-level-1 .mini-btn{
  background:#fff;
  border-color:#cfe0cd;
}

.finance-tree-list .finance-tree-node.finance-tree-level-1{
  margin:6px 0 4px;
  min-height:38px;
  padding:8px 9px;
  border-radius:10px;
  background:#e7f7e6;
  color:#245f2b;
  border:1px solid #d2ead0;
  font-weight:800;
  box-shadow:none;
}
.finance-tree-list .finance-tree-node.finance-tree-level-1:hover,
.finance-tree-list .finance-tree-node.finance-tree-level-1:focus{
  background:#ddf2db;
  border-color:#bedfbb;
}
.finance-tree-list .finance-tree-node.finance-tree-level-1 .finance-tree-name,
.finance-tree-list .finance-tree-node.finance-tree-level-1 small{color:#245f2b}
.finance-tree-list .finance-tree-node.finance-tree-level-1 small{
  background:#f4fbf3;
  border:1px solid #cfe8cd;
}
.finance-tree-list .finance-tree-node.finance-tree-level-1 .tree-dot{
  background:#4f9b50;
  box-shadow:0 0 0 3px rgba(79,155,80,.12);
}

@media(max-width:1100px){
  .finance-account-tree-scroll{max-height:360px!important;overflow:auto!important}
}

/* ========================================================================== */
/* V20.1 — Financial Foundation                                                */
/* ========================================================================== */
.financial-one-line-toolbar{align-items:center;gap:14px}
.financial-one-line-toolbar .filter-bar{display:flex;align-items:center;gap:10px;flex:1;flex-wrap:nowrap}
.financial-one-line-toolbar .search-box{min-width:280px;max-width:430px;flex:1}
.financial-one-line-toolbar .searchable-select-combo{min-width:190px}
.financial-inline-hint{font-size:12px;color:#708077}
.finance-subpanel{margin-top:14px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 18px;border-bottom:1px solid #e6eee4}
.section-heading h2{font-size:14px;margin:0 0 3px;color:#153b28}
.section-heading p{font-size:11px;margin:0;color:#8a978f}
.financial-period-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px 18px 18px}
.financial-period-card{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #dfe9dc;border-radius:12px;padding:11px 12px;background:#fff}
.financial-period-card>div{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:3px 8px;min-width:0}
.financial-period-card small{grid-column:2;font-size:10px;color:#849189;direction:ltr;text-align:right}
.financial-period-card b{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.financial-period-card.open{background:#fbfefb}
.financial-period-card.closed{background:#fafafa;opacity:.78}
.period-number{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#eef8eb;color:#2f8737;font-weight:800;grid-row:1/3}
.financial-selected-row{background:#f4faf2}
.code-note{display:block;margin-top:2px;font-size:9.5px;color:#8a978f}
.financial-split-layout{display:grid;grid-template-columns:minmax(270px,320px) minmax(0,1fr);min-height:620px;border-top:1px solid #e7eee4}
.financial-tree-panel{border-left:1px solid #e4ece2;background:#fcfefb;min-width:0}
.financial-list-panel{min-width:0}
.cost-tree{padding:8px 10px 18px;overflow:auto;max-height:calc(100vh - 260px)}
.cost-tree ul{list-style:none;margin:0;padding:0}
.cost-tree ul ul{margin-right:16px;border-right:1px solid #dce9d9;padding-right:8px}
.cost-tree-line{min-height:34px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;padding:4px 7px;border-radius:9px;cursor:pointer;font-size:11px}
.cost-tree-line:hover{background:#eff8ed}
.cost-tree-line b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:650}
.tree-status{width:8px;height:8px;border-radius:50%;display:inline-block}
.tree-status.group{background:#4f9b51;box-shadow:0 0 0 3px #edf7eb}
.tree-status.posting{background:#678ce5;box-shadow:0 0 0 3px #edf2ff}
.tree-code{font-size:9.5px;background:#eef5eb;color:#55745b;border-radius:10px;padding:2px 6px}
.tree-count{background:#edf7ea;color:#2e7e35;border-radius:10px;padding:3px 8px;font-weight:800}
.financial-settings-panel{padding-bottom:0}
.financial-settings-panel>.section-heading{margin:0 -1px}
.financial-settings-grid,.financial-settings-panel>.form-grid{padding:16px 18px}
.section-divider{height:1px;background:#e7eee4}
.financial-settings-panel .panel-actions{padding:14px 18px;border-top:1px solid #e7eee4;display:flex;justify-content:flex-end}

@media (max-width:1100px){
  .financial-period-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .financial-split-layout{grid-template-columns:260px minmax(0,1fr)}
}
@media (max-width:900px){
  .financial-one-line-toolbar,.financial-one-line-toolbar .filter-bar{flex-wrap:wrap}
  .financial-period-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .financial-split-layout{grid-template-columns:1fr}
  .financial-tree-panel{border-left:0;border-bottom:1px solid #e4ece2}
  .cost-tree{max-height:420px}
}
@media (max-width:600px){.financial-period-grid{grid-template-columns:1fr}.financial-one-line-toolbar .search-box,.financial-one-line-toolbar .searchable-select-combo{min-width:100%;max-width:none}}


/* V20.1.2 - Fiscal year row selection */
.fiscal-year-row{cursor:pointer}
.fiscal-year-row.financial-selected-row td{background:#f1f9ef}
.fiscal-year-row:hover td{background:#f7fbf6}
.fiscal-year-row.financial-selected-row:hover td{background:#edf7ea}

/* V21.0.0 - Journal entries */
.journal-filter-bar{flex-wrap:nowrap;align-items:center;gap:8px}.journal-filter-bar .search-box{min-width:260px;flex:1}.journal-filter-bar>select,.journal-filter-bar>.searchable-select-combo,.journal-filter-bar>input[type="date"]{min-width:150px;max-width:210px}.journal-entry-panel{padding:18px}.journal-head-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.journal-head-grid .span-2{grid-column:span 2}.journal-lines-heading{margin:4px 0 10px}.journal-lines-table{table-layout:fixed}.journal-lines-table th:nth-child(1){width:42px}.journal-lines-table th:nth-child(2){width:22%}.journal-lines-table th:nth-child(3){width:17%}.journal-lines-table th:nth-child(4){width:22%}.journal-lines-table th:nth-child(5){width:12%}.journal-lines-table th:nth-child(6),.journal-lines-table th:nth-child(7){width:105px}.journal-lines-table input,.journal-lines-table .searchable-select-combo{width:100%;min-width:0}.journal-lines-table tfoot th{background:#f7faf6;font-weight:800}.journal-difference-row th{border-top:2px solid #d7e5d4}.journal-unbalanced{color:#c53b32!important;background:#fff0ef!important}.journal-actions{display:flex;gap:8px;align-items:center;justify-content:flex-start;padding-top:16px;flex-wrap:wrap}.alert.info{background:#eef6ff;border:1px solid #cfe3fb;color:#245b8b}.alert.warning{background:#fff8e8;border:1px solid #f3dfad;color:#7c5b17}.alert{padding:10px 14px;border-radius:10px;margin-bottom:12px;font-size:13px}.alert a{font-weight:800;color:inherit}.btn.success{background:#2f8f3a;color:#fff;border-color:#2f8f3a}
@media(max-width:1100px){.journal-head-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.journal-filter-bar{flex-wrap:wrap}.journal-filter-bar .search-box{min-width:100%;}.journal-lines-table{min-width:1050px}}

/* ========================================================================== */
/* V21.0.3 - Simplified journal entry                                         */
/* ========================================================================== */
.journal-system-strip{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
    margin-bottom:12px;
}
.journal-system-item{
    min-height:58px;
    padding:8px 11px;
    border:1px solid #e2e9df;
    border-radius:10px;
    background:#f7faf6;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:3px;
}
.journal-system-item>span{font-size:10.5px;color:#71806f;font-weight:700}
.journal-system-item>strong{font-size:12.5px;color:#243223;font-weight:800;min-height:20px;display:flex;align-items:center}
.journal-entry-inputs{
    display:grid;
    grid-template-columns:190px minmax(320px,1fr) 230px;
    gap:10px;
    align-items:end;
    margin-bottom:8px;
}
.journal-extra-fields{
    margin:2px 0 12px;
    border:1px solid #e3e9e1;
    border-radius:10px;
    background:color-mix(in srgb, var(--canvas) 55%, var(--surface));
}
.journal-extra-fields>summary{
    cursor:pointer;
    user-select:none;
    padding:8px 11px;
    color:#536151;
    font-size:11.5px;
    font-weight:800;
}
.journal-extra-fields-body{padding:0 11px 10px;max-width:520px}
.journal-lines-heading{margin-top:8px!important}
.journal-lines-heading h2{margin-bottom:0}
.journal-lines-wrap{overflow:visible}
.journal-lines-table{min-width:880px}
.journal-lines-table th:nth-child(1){width:42px}
.journal-lines-table th:nth-child(2){width:27%}
.journal-lines-table th:nth-child(3){width:25%}
.journal-lines-table th:nth-child(4){width:22%}
.journal-lines-table th:nth-child(5),
.journal-lines-table th:nth-child(6){width:110px}
.journal-lines-table th.journal-delete-column{width:56px}
.journal-lines-table td{vertical-align:middle}
.journal-lines-table input,
.journal-lines-table .searchable-select-combo{height:42px}
.journal-lines-table .searchable-select-trigger{height:42px}
.journal-lines-table .journal-amount{text-align:center}
.journal-entry-panel input[readonly]{background:#f5f7f4;color:#4e5a4c;cursor:default}
@media(max-width:1100px){
    .journal-system-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
    .journal-entry-inputs{grid-template-columns:repeat(2,minmax(0,1fr))}
    .journal-description-field{grid-column:span 1}
    .journal-lines-wrap{overflow-x:auto}
}
@media(max-width:700px){
    .journal-system-strip,.journal-entry-inputs{grid-template-columns:1fr}
}

/* ========================================================================== */
/* V21.2.2 — Financial navigation refinement                                  */
/* ========================================================================== */
.finance-nav-group.expanded > .nav-group-items{max-height:520px;padding:2px 0 4px}
.finance-nav-section-label{margin:5px 12px 2px;padding:3px 10px;color:#8fb9a4;font-size:9px;font-weight:700;line-height:1.5;pointer-events:none;display:flex;align-items:center;gap:7px;white-space:nowrap}
.finance-nav-section-label::before{content:"";width:5px;height:5px;border-radius:50%;background:rgba(185,236,152,.48);flex:0 0 auto}
.finance-nav-section-label::after{content:"";height:1px;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(172,210,187,.16));flex:1}
.finance-nav-section-spaced{margin-top:7px}
.finance-nav-group .nav-group-items .nav-item{min-height:33px;margin:1px 3px;padding-top:6px;padding-bottom:6px;font-size:11.5px}
.finance-nav-group .nav-group-items .nav-item.selected{background:linear-gradient(90deg,rgba(43,119,45,.96),rgba(61,140,53,.94));box-shadow:inset 0 0 0 1px rgba(195,237,177,.10),0 5px 14px rgba(8,41,24,.15)}
.finance-nav-group .nav-group-items .nav-item.selected::after{content:"";position:absolute;left:8px;top:50%;width:5px;height:5px;border-radius:50%;background:#d8f4c9;transform:translateY(-50%)}
@media (min-width:1101px) and (max-width:1440px){.finance-nav-group.expanded > .nav-group-items{max-height:490px}.finance-nav-section-label{font-size:8.5px;margin-top:3px}.finance-nav-group .nav-group-items .nav-item{min-height:30px;font-size:10.8px;padding-top:5px;padding-bottom:5px}}
@media (min-width:961px) and (max-width:1100px){.finance-nav-group.expanded > .nav-group-items{max-height:455px}.finance-nav-section-label{font-size:8px}.finance-nav-group .nav-group-items .nav-item{min-height:28px;font-size:10px}}

/* V21.2.4 - Contract payment collection action alignment */
.contract-payment-cards article>.contract-payment-collect-btn{
    grid-area:action;
    justify-self:end;
    align-self:center;
    height:30px;
    min-width:72px;
    padding:0 10px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    border:1px solid #b9d8c6;
    border-radius:8px;
    background:#f5fbf7;
    color:#236947;
    font-size:10px;
    font-weight:800;
    line-height:1;
    white-space:nowrap;
    text-decoration:none;
    transition:background-color .16s,border-color .16s,box-shadow .16s,transform .16s;
}
.contract-payment-cards article>.contract-payment-collect-btn svg{
    width:14px;
    height:14px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
    flex:0 0 auto;
}
.contract-payment-cards article>.contract-payment-collect-btn:hover{
    background:#e9f6ed;
    border-color:#76b18c;
    box-shadow:0 4px 10px rgba(35,105,71,.10);
    transform:translateY(-1px);
}
.contract-payment-cards article>.contract-payment-collect-btn:focus-visible{
    outline:2px solid rgba(47,125,80,.22);
    outline-offset:2px;
}
.contract-payment-cards article.overdue>.contract-payment-collect-btn{
    background:#fff;
    border-color:#e5b8b4;
    color:#b74d48;
}
.contract-payment-cards article.overdue>.contract-payment-collect-btn:hover{
    background:#fff4f3;
    border-color:#d77a74;
    box-shadow:0 4px 10px rgba(183,77,72,.10);
}
@media(max-width:900px){
    .contract-payment-cards article>.contract-payment-collect-btn{min-width:68px;height:32px}
}

/* V21.2.5 - prior-year receivables / financial settings */
.financial-settings-note{margin:0 20px 4px;padding:11px 13px;border:1px solid #dbe7df;border-radius:10px;background:#f7faf7;display:flex;align-items:flex-start;gap:10px}
.financial-settings-note b{font-size:10.5px;color:#2f5f45;white-space:nowrap}
.financial-settings-note span{font-size:9.5px;color:#68786f;line-height:1.7}

/* ========================================================================== 
   V21.3.0 - Supplier Management
   ========================================================================== */
.supplier-filter-bar{display:grid;grid-template-columns:minmax(280px,1fr) 170px 210px auto;gap:7px;align-items:center;margin:0;flex:1}
.supplier-filter-bar>.search-box,.supplier-filter-bar>.searchable-select-combo,.supplier-filter-bar>select{width:100%;min-width:0}
.supplier-profile-mark{background:linear-gradient(135deg,#315d3b,#4f8b5c);color:#fff}
.supplier-account-note{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted)}
.supplier-account-note b{color:var(--green-700);font-size:12px}
.supplier-modal-footer{justify-content:space-between}
.supplier-modal-footer .modal-footer-actions{display:flex;gap:8px}
.supplier-table-card .table-subtext{display:block;margin-top:2px;color:var(--muted);font-size:9px;font-weight:500}
.supplier-table-card .data-table td{vertical-align:middle}
@media(max-width:1200px){.supplier-filter-bar{grid-template-columns:minmax(240px,1fr) 155px 180px auto}}
@media(max-width:900px){.supplier-filter-bar{grid-template-columns:1fr 1fr}.supplier-filter-bar>.search-box{grid-column:1/-1}.supplier-modal-footer{flex-direction:column;align-items:stretch}.supplier-modal-footer .modal-footer-actions{justify-content:flex-end}}
.supplier-table-card .pill.amber{background:#fff2d8;color:#9a6413}
.supplier-table-card .pill.gray{background:#eef1ef;color:#67736c}


/* V21.3.1 - Supplier UI/report alignment */
.supplier-notes-row{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;direction:rtl;align-items:start}
.supplier-notes-row .field{min-width:0}
.supplier-notes-row textarea{height:88px;min-height:88px;max-height:150px;resize:vertical;line-height:1.65}
.supplier-notes-row .en-field{direction:ltr}
.supplier-notes-row .en-field label{text-align:left}
.supplier-child-actions-cell{width:92px!important;min-width:92px!important;padding:8px 10px!important}
.supplier-child-actions{display:flex;align-items:center;justify-content:flex-start;gap:7px;min-height:34px}
.supplier-child-actions .crm-action-btn{width:32px;height:32px;min-width:32px;border-radius:9px}
.supplier-child-actions .crm-action-btn.view{color:#2f7d32}
.supplier-child-actions .supplier-archive-action{color:#bd5149;background:#fff8f7;border-color:#efd2cf}
.supplier-child-actions .supplier-archive-action:hover{background:#fff1ef;border-color:#d98983}
@media(max-width:700px){.supplier-notes-row{grid-template-columns:1fr}.supplier-child-actions-cell{width:88px!important;min-width:88px!important}}

/* ==========================================================================
   V21.3.3 - Supplier invoices
   ========================================================================== */
.supplier-invoice-heading{margin-bottom:14px}.supplier-invoice-summary{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px}.supplier-invoice-list-panel{padding:14px}.supplier-invoice-filter-bar{display:grid;grid-template-columns:auto minmax(260px,1.5fr) minmax(190px,1fr) 150px 150px 150px auto;gap:8px;align-items:center;margin-bottom:12px}.supplier-invoice-filter-bar>.btn,.supplier-invoice-filter-bar>input,.supplier-invoice-filter-bar>.searchable-select-combo,.supplier-invoice-filter-bar>.search-box{height:42px;min-height:42px}.supplier-invoice-filter-bar>input{border:1px solid #cbdcd3;border-radius:9px;padding:0 10px;background:#fff;font:500 12.5px Cairo,sans-serif}.supplier-invoice-table{table-layout:fixed}.supplier-invoice-table th:nth-child(1){width:40px}.supplier-invoice-table th:nth-child(2){width:130px}.supplier-invoice-table th:nth-child(3){width:125px}.supplier-invoice-table th:nth-child(4){width:18%}.supplier-invoice-table th:nth-child(5),.supplier-invoice-table th:nth-child(6){width:100px}.supplier-invoice-table th:nth-child(7),.supplier-invoice-table th:nth-child(8),.supplier-invoice-table th:nth-child(9){width:105px}.supplier-invoice-table th:nth-child(10){width:80px}.supplier-invoice-table th:nth-child(11){width:120px}.supplier-invoice-table th:nth-child(12){width:90px}.supplier-invoice-status-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px}.supplier-invoice-status-strip article{border:1px solid #dce7e0;background:#fff;border-radius:12px;padding:10px 12px;min-height:70px;display:flex;flex-direction:column;justify-content:center}.supplier-invoice-status-strip span{font-size:9px;color:#748179}.supplier-invoice-status-strip b,.supplier-invoice-status-strip a{font-size:12px;margin-top:4px}.supplier-invoice-main-panel,.supplier-invoice-items-panel,.supplier-invoice-doc-panel{padding:16px;margin-bottom:12px}.supplier-invoice-head-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.supplier-invoice-head-grid .span-2{grid-column:span 2}.supplier-invoice-head-grid .field label{display:block;margin-bottom:5px;font-size:10.5px}.supplier-invoice-head-grid .field em{color:#c5453b;font-style:normal}.supplier-invoice-head-grid input,.supplier-invoice-head-grid textarea,.supplier-invoice-head-grid .searchable-select-trigger{width:100%;border:1px solid #cbdcd3;border-radius:9px;background:#fff;font:500 13px Cairo,sans-serif}.supplier-invoice-head-grid input,.supplier-invoice-head-grid .searchable-select-trigger{height:42px;padding:0 10px}.supplier-invoice-head-grid textarea{min-height:62px;padding:9px 10px;resize:vertical}.supplier-invoice-head-grid input:focus,.supplier-invoice-head-grid textarea:focus{outline:none;border-color:#4f9b70;box-shadow:0 0 0 3px rgba(79,155,112,.10)}.supplier-invoice-lines-title{align-items:center}.supplier-invoice-lines-table{table-layout:fixed;min-width:1280px}.supplier-invoice-lines-table th:nth-child(1){width:38px}.supplier-invoice-lines-table th:nth-child(2){width:210px}.supplier-invoice-lines-table th:nth-child(3){width:225px}.supplier-invoice-lines-table th:nth-child(4){width:165px}.supplier-invoice-lines-table th:nth-child(5){width:80px}.supplier-invoice-lines-table th:nth-child(6),.supplier-invoice-lines-table th:nth-child(7){width:100px}.supplier-invoice-lines-table th:nth-child(8){width:82px}.supplier-invoice-lines-table th:nth-child(9),.supplier-invoice-lines-table th:nth-child(10),.supplier-invoice-lines-table th:nth-child(11){width:100px}.supplier-invoice-lines-table th:last-child{width:48px}.supplier-invoice-lines-table td{padding:6px 5px}.supplier-invoice-lines-table input,.supplier-invoice-lines-table .searchable-select-trigger{width:100%;height:42px;border:1px solid #cbdcd3;border-radius:8px;background:#fff;padding:0 8px;font:500 12.5px Cairo,sans-serif}.supplier-invoice-lines-table .money-input{text-align:center;direction:ltr}.supplier-invoice-lines-table .line-net,.supplier-invoice-lines-table .line-vat,.supplier-invoice-lines-table .line-total{text-align:center}.supplier-invoice-totals{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}.supplier-invoice-totals>div{border:1px solid #dce7e0;border-radius:10px;background:#fafcfb;padding:9px 11px;display:flex;justify-content:space-between;align-items:center}.supplier-invoice-totals span{font-size:9.5px;color:#718078}.supplier-invoice-totals b{font-size:12px}.supplier-invoice-totals .grand{background:#eff8ef;border-color:#cfe1cf}.supplier-invoice-totals .grand b{font-size:14px;color:#17602d}.supplier-invoice-command-bar{display:flex;gap:8px;justify-content:flex-start;align-items:center;padding:4px 0 14px}.supplier-invoice-command-bar .supplier-invoice-post-blocked:disabled{opacity:.48;cursor:not-allowed;filter:saturate(.45);box-shadow:none}.supplier-invoice-command-bar .supplier-invoice-post-blocked:disabled:hover{transform:none}.supplier-invoice-upload-form{display:grid;grid-template-columns:170px minmax(260px,1fr) minmax(240px,1fr) 110px;gap:8px;align-items:center;margin:10px 0}.supplier-invoice-upload-form>input,.supplier-invoice-upload-form .searchable-select-trigger{height:42px;border:1px solid #cbdcd3;border-radius:9px;padding:0 10px}.supplier-invoice-upload-form>.btn{height:42px}.supplier-invoice-doc-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.supplier-invoice-doc-list article{border:1px solid #dfe9e2;border-radius:10px;padding:10px;background:#fbfdfb;display:flex;justify-content:space-between;gap:10px;align-items:center}.supplier-invoice-doc-list article b,.supplier-invoice-doc-list article a,.supplier-invoice-doc-list article small{display:block}.supplier-invoice-doc-list article a{margin-top:3px;color:#1e6844;font-weight:700}.supplier-invoice-doc-list article small{margin-top:3px;color:#77847d;font-size:9px}.supplier-invoice-doc-list article p{margin:4px 0 0;font-size:9px;color:#52645b}.supplier-invoice-void-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(440px,.8fr);gap:14px;align-items:center;padding:14px;margin-bottom:12px}.supplier-invoice-void-panel>div small{display:block;margin-top:3px;color:#77847d}.supplier-invoice-void-panel form{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:8px}.supplier-invoice-void-panel input{height:42px;border:1px solid #e0b9b2;border-radius:9px;padding:0 10px}.crm-action-btn.print{color:#246348;border-color:#cfe0d5;background:#fff}.crm-action-btn.danger{color:#b63e35;border-color:#efc6c1;background:#fff5f4}
@media(max-width:1500px){.supplier-invoice-filter-bar{grid-template-columns:auto minmax(230px,1.4fr) minmax(170px,1fr) 140px 145px 145px auto}.supplier-invoice-head-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.supplier-invoice-head-grid .span-2{grid-column:span 2}.supplier-invoice-status-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.supplier-invoice-totals{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.supplier-invoice-filter-bar{grid-template-columns:1fr 1fr}.supplier-invoice-filter-bar>.btn{width:100%}.supplier-invoice-summary{grid-template-columns:1fr}.supplier-invoice-head-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.supplier-invoice-status-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.supplier-invoice-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.supplier-invoice-upload-form{grid-template-columns:1fr}.supplier-invoice-doc-list{grid-template-columns:1fr}.supplier-invoice-void-panel{grid-template-columns:1fr}.supplier-invoice-void-panel form{grid-template-columns:1fr}}

/* ==========================================================================
   V21.3.4 - Supplier payments / payment vouchers
   ========================================================================== */
.supplier-payment-heading{margin-bottom:14px}.supplier-payment-summary{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.supplier-payment-list-panel{padding:14px}.supplier-payment-filter-bar{display:grid;grid-template-columns:auto minmax(250px,1.5fr) minmax(180px,1fr) 135px 150px 145px 145px auto auto;gap:8px;align-items:center;margin-bottom:12px}.supplier-payment-filter-bar>.btn,.supplier-payment-filter-bar>input,.supplier-payment-filter-bar>.searchable-select-combo,.supplier-payment-filter-bar>.search-box{height:42px;min-height:42px}.supplier-payment-filter-bar>input{border:1px solid #cbdcd3;border-radius:9px;padding:0 10px;background:#fff;font:500 12.5px Cairo,sans-serif}.supplier-payment-table{table-layout:fixed}.supplier-payment-table th:nth-child(1){width:38px}.supplier-payment-table th:nth-child(2){width:135px}.supplier-payment-table th:nth-child(3){width:100px}.supplier-payment-table th:nth-child(4){width:18%}.supplier-payment-table th:nth-child(5){width:120px}.supplier-payment-table th:nth-child(6){width:105px}.supplier-payment-table th:nth-child(7){width:15%}.supplier-payment-table th:nth-child(8){width:125px}.supplier-payment-table th:nth-child(9){width:75px}.supplier-payment-table th:nth-child(10){width:120px}.supplier-payment-table th:nth-child(11){width:90px}.supplier-payment-status-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px}.supplier-payment-status-strip article{border:1px solid #dce7e0;background:#fff;border-radius:12px;padding:10px 12px;min-height:70px;display:flex;flex-direction:column;justify-content:center}.supplier-payment-status-strip span{font-size:9px;color:#748179}.supplier-payment-status-strip b,.supplier-payment-status-strip a{font-size:12px;margin-top:4px}.supplier-payment-main-panel,.supplier-payment-doc-panel{padding:16px;margin-bottom:12px}.supplier-payment-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.supplier-payment-grid .span-2{grid-column:span 2}.supplier-payment-grid .field label{display:block;margin-bottom:5px;font-size:10.5px}.supplier-payment-grid .field em{color:#c5453b;font-style:normal}.supplier-payment-grid input,.supplier-payment-grid textarea,.supplier-payment-grid .searchable-select-trigger{width:100%;border:1px solid #cbdcd3;border-radius:9px;background:#fff;font:500 13px Cairo,sans-serif}.supplier-payment-grid input,.supplier-payment-grid .searchable-select-trigger{height:42px;padding:0 10px}.supplier-payment-grid textarea{min-height:62px;padding:9px 10px;resize:vertical}.supplier-payment-grid .is-hidden{display:none!important}.supplier-payment-balance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}.supplier-payment-balance-grid article{border:1px solid #dce7e0;border-radius:11px;background:#f9fcf8;padding:11px 14px;display:grid;grid-template-columns:1fr auto;align-items:center}.supplier-payment-balance-grid article span{font-size:10px;color:#6f7d74}.supplier-payment-balance-grid article b{font-size:16px;color:#205f30}.supplier-payment-balance-grid article small{grid-column:1/-1;font-size:9px;color:#859087;margin-top:2px}.supplier-payment-command-bar{display:flex;gap:8px;justify-content:flex-start;align-items:center;padding:4px 0 14px}.supplier-payment-upload-form{display:grid;grid-template-columns:170px minmax(260px,1fr) minmax(240px,1fr) 110px;gap:8px;align-items:center;margin:10px 0}.supplier-payment-upload-form>input{height:42px;border:1px solid #cbdcd3;border-radius:9px;padding:0 10px}.supplier-payment-upload-form>.btn{height:42px}.supplier-payment-doc-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.supplier-payment-doc-list article{border:1px solid #dfe9e2;border-radius:10px;padding:10px;background:#fbfdfb;display:flex;justify-content:space-between;gap:10px;align-items:center}.supplier-payment-doc-list article b,.supplier-payment-doc-list article a,.supplier-payment-doc-list article small{display:block}.supplier-payment-doc-list article a{margin-top:3px;color:#1e6844;font-weight:700}.supplier-payment-doc-list article small{margin-top:3px;color:#77847d;font-size:9px}.supplier-payment-void-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(440px,.8fr);gap:14px;align-items:center;padding:14px;margin-bottom:12px}.supplier-payment-void-panel>div small{display:block;margin-top:3px;color:#77847d}.supplier-payment-void-panel form{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:8px}.supplier-payment-void-panel form.supplier-payment-reversal-form{grid-template-columns:minmax(190px,.55fr) minmax(260px,1fr) 120px;align-items:end}.supplier-payment-void-panel form.supplier-payment-reversal-form .field label{display:block;margin-bottom:5px;font-size:10.5px}.supplier-payment-void-panel form.supplier-payment-reversal-form .field em{color:#c5453b;font-style:normal}.supplier-payment-void-panel form.supplier-payment-reversal-form .field small{display:block;margin-top:4px;color:#77847d;font-size:9px}.supplier-payment-void-panel input{height:42px;border:1px solid #e0b9b2;border-radius:9px;padding:0 10px}
@media(max-width:1500px){.supplier-payment-filter-bar{grid-template-columns:auto minmax(220px,1.3fr) minmax(160px,1fr) 125px 135px 135px 135px auto auto}.supplier-payment-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.supplier-payment-status-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.supplier-payment-filter-bar{grid-template-columns:1fr 1fr}.supplier-payment-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.supplier-payment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.supplier-payment-status-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.supplier-payment-upload-form{grid-template-columns:1fr}.supplier-payment-doc-list{grid-template-columns:1fr}.supplier-payment-void-panel{grid-template-columns:1fr}.supplier-payment-void-panel form,.supplier-payment-void-panel form.supplier-payment-reversal-form{grid-template-columns:1fr}}
@media(max-width:700px){.supplier-payment-summary,.supplier-payment-grid,.supplier-payment-status-strip,.supplier-payment-balance-grid{grid-template-columns:1fr}.supplier-payment-grid .span-2{grid-column:span 1}.supplier-payment-filter-bar{grid-template-columns:1fr}.supplier-payment-command-bar{flex-wrap:wrap}.supplier-payment-command-bar .btn{flex:1}}

/* V21.4.0 — دورة المشتريات */
.purchase-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 16px}.purchase-kpi-grid article{background:#fff;border:1px solid #dfe8df;border-radius:18px;padding:20px;min-height:112px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 8px 25px rgba(35,72,47,.05)}.purchase-kpi-grid span{font-size:12px;color:#6d776f}.purchase-kpi-grid b{font-size:27px;margin-top:6px;color:#132118}.purchase-kpi-grid small{font-size:11px;color:#8a958d;margin-top:4px}.purchase-filters{display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding:16px 18px;border-bottom:1px solid #e5ece5}.purchase-filters .field{min-width:150px}.purchase-filters .field.grow{flex:1;min-width:260px}.purchase-table th,.purchase-table td{white-space:nowrap}.purchase-head-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding-top:14px}.purchase-head-grid .span-2{grid-column:span 2}.purchase-head-grid .span-3{grid-column:span 3}.purchase-lines-panel{margin-top:14px}.purchase-lines-table,.purchase-order-lines-table,.purchase-receipt-lines-table{min-width:1180px}.purchase-lines-table input,.purchase-order-lines-table input,.purchase-receipt-lines-table input{min-width:86px}.purchase-lines-table td:nth-child(2) input,.purchase-order-lines-table td:nth-child(3) input{min-width:220px}.purchase-status-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.purchase-status-strip article{background:#fff;border:1px solid #dfe8df;border-radius:14px;padding:13px 15px;min-height:70px}.purchase-status-strip article span{display:block;font-size:10.5px;color:#79847b;margin-bottom:5px}.purchase-status-strip article b,.purchase-status-strip article a{font-size:13px}.purchase-total-bar{display:flex;justify-content:space-between;align-items:center;border:1px solid #d8e5d8;background:#f1f8ef;border-radius:12px;padding:12px 16px;margin-top:12px}.purchase-total-bar span{font-size:11px;color:#6d776f}.purchase-total-bar b{font-size:17px;color:#126b3d}.purchase-totals{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}.purchase-totals>div{border:1px solid #dfe8df;border-radius:11px;padding:10px 12px;background:#fbfdfb}.purchase-totals span{display:block;color:#7b867d;font-size:10px}.purchase-totals b{display:block;margin-top:4px;font-size:14px}.purchase-totals .grand{background:#eef8ed;border-color:#c9dfc9}.purchase-totals .grand b{color:#096c35;font-size:16px}.purchase-command-bar{display:flex;justify-content:flex-end;gap:9px;margin:16px 0}.purchase-inline-action{display:flex;justify-content:flex-end;margin-top:-58px;margin-inline-end:300px;pointer-events:auto}.purchase-heading{align-items:flex-start}.empty-cell{text-align:center!important;padding:34px!important;color:#8a948c!important}.pill.blue{background:#e9f1ff;color:#255eac}.pill.red{background:#fdeceb;color:#b33b31}.table-actions{display:flex;gap:6px;justify-content:center}.purchase-source-note{display:flex;align-items:center;gap:8px;margin:0 0 14px;padding:10px 13px;border:1px solid #cfe0cf;background:#eff8ef;border-radius:11px;font-size:12px;color:#315b3b}.purchase-source-note a{font-weight:800;color:#126b3d;text-decoration:none}
@media(max-width:1100px){.purchase-kpi-grid{grid-template-columns:1fr}.purchase-head-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-head-grid .span-3{grid-column:span 2}.purchase-status-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-inline-action{margin:0;justify-content:flex-end}}

/* ========================================================================== */
/* V21.4.1 — Purchase screens compact layout + unified controls               */
/* ========================================================================== */
.purchase-heading{margin-bottom:14px}
.purchase-heading h1{font-size:24px}
.purchase-heading p{font-size:11.5px;line-height:1.55}
.purchase-editor-panel{padding:0 14px 14px}
.purchase-editor-panel>.section-title-row{margin:0 -14px 10px;padding:9px 14px;min-height:48px}
.purchase-editor-panel>.section-title-row b{font-size:12.5px}
.purchase-editor-panel>.section-title-row small{font-size:9px;line-height:1.45}
.purchase-head-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:9px 10px;padding:0}
.purchase-head-grid .col-2{grid-column:span 2}.purchase-head-grid .col-3{grid-column:span 3}.purchase-head-grid .col-4{grid-column:span 4}.purchase-head-grid .col-5{grid-column:span 5}.purchase-head-grid .col-6{grid-column:span 6}.purchase-head-grid .col-10{grid-column:span 10}.purchase-head-grid .col-12{grid-column:span 12}
.purchase-editor .field{gap:4px;min-width:0}
.purchase-editor .field label{font-size:10.5px;line-height:1.35}
.purchase-editor .field input,.purchase-editor .field textarea{height:42px;min-height:42px;border:1px solid #cbdcd3;border-radius:10px;padding:8px 10px;font-size:13px;background:#fff}
.purchase-editor .field textarea{height:70px;min-height:70px;max-height:110px;resize:vertical;line-height:1.55}
.purchase-editor .field input[readonly],.purchase-editor .field textarea[readonly]{background:color-mix(in srgb, var(--canvas) 55%, var(--surface));color:#4f5d55}
.purchase-editor .field .searchable-select-combo,.purchase-editor .field .searchable-select-trigger{width:100%;min-width:0}
.purchase-editor .field .searchable-select-trigger{height:42px!important;min-height:42px!important;border:1px solid #cbdcd3!important;border-radius:10px!important;padding:0 10px!important;font-size:13px!important}
.purchase-editor .searchable-select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.purchase-lines-panel{margin-top:10px}
.purchase-lines-wrap{overflow:visible}
.purchase-lines-table,.purchase-order-lines-table,.purchase-receipt-lines-table{width:100%;min-width:0!important;table-layout:fixed;border-collapse:separate;border-spacing:0}
.purchase-lines-table th,.purchase-order-lines-table th,.purchase-receipt-lines-table th{padding:8px 5px!important;text-align:center!important;font-size:9.5px!important;line-height:1.25}
.purchase-lines-table td,.purchase-order-lines-table td,.purchase-receipt-lines-table td{padding:6px 5px!important;text-align:center;vertical-align:middle}
.purchase-lines-table input,.purchase-order-lines-table input,.purchase-receipt-lines-table input{width:100%;min-width:0!important;height:42px;min-height:42px;border:1px solid #cbdcd3;border-radius:9px;background:#fff;padding:0 8px;font-size:12px;outline:none}
.purchase-lines-table input:focus,.purchase-order-lines-table input:focus,.purchase-receipt-lines-table input:focus{border-color:#75a95f;box-shadow:0 0 0 3px rgba(75,139,60,.10)}
.purchase-lines-table .searchable-select-combo,.purchase-order-lines-table .searchable-select-combo,.purchase-receipt-lines-table .searchable-select-combo{width:100%;min-width:0}
.purchase-lines-table .searchable-select-trigger,.purchase-order-lines-table .searchable-select-trigger,.purchase-receipt-lines-table .searchable-select-trigger{width:100%;height:42px;min-height:42px;border:1px solid #cbdcd3;border-radius:9px;padding:0 7px;font-size:11.5px}
.purchase-lines-table .searchable-select-label,.purchase-order-lines-table .searchable-select-label,.purchase-receipt-lines-table .searchable-select-label{text-align:center!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.purchase-lines-table td:nth-child(2) input,.purchase-order-lines-table td:nth-child(3) input{min-width:0!important;text-align:right}
.purchase-number-input{text-align:center!important;direction:ltr;font-variant-numeric:tabular-nums}
.purchase-number-input::-webkit-inner-spin-button,.purchase-number-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.purchase-number-input{-moz-appearance:textfield;appearance:textfield}
.purchase-action-cell{width:40px!important;min-width:40px!important;padding-inline:3px!important}
.purchase-action-cell .crm-action-btn{width:30px;height:30px;min-width:30px;margin:auto}
.purchase-total-bar{margin-top:8px;padding:9px 12px;min-height:44px}
.purchase-totals{gap:6px;margin-top:8px}
.purchase-totals>div{padding:8px 10px;min-height:58px;display:flex;flex-direction:column;justify-content:center}
.purchase-totals span{font-size:9.5px}.purchase-totals b{font-size:13px}.purchase-totals .grand b{font-size:15px}
.purchase-command-bar{margin:12px 0 4px;gap:7px}
.purchase-command-bar .btn{min-height:40px;padding:9px 15px}
.purchase-status-strip{gap:8px;margin-bottom:10px}.purchase-status-strip article{padding:10px 12px;min-height:62px}
.po-line-total-cell{line-height:1.25}.po-line-total-cell>.line-total{display:block;font-size:12.5px;color:#173c2b}.po-line-total-cell>small{display:block;margin-top:3px;font-size:8px;color:#7c8880;white-space:normal}.po-line-total-cell>small span{font-weight:700;color:#55665c}
/* Request columns */
.purchase-lines-table th:nth-child(1){width:34px}.purchase-lines-table th:nth-child(2){width:20%}.purchase-lines-table th:nth-child(3){width:20%}.purchase-lines-table th:nth-child(4){width:15%}.purchase-lines-table th:nth-child(5){width:10%}.purchase-lines-table th:nth-child(6){width:9%}.purchase-lines-table th:nth-child(7){width:11%}.purchase-lines-table th:nth-child(8){width:10%}.purchase-lines-table th:last-child{width:40px}
/* Order columns: calculated net/VAT are folded into total to avoid horizontal scrolling */
.purchase-order-lines-table th:nth-child(1){width:32px}.purchase-order-lines-table th:nth-child(2){width:18%}.purchase-order-lines-table th:nth-child(3){width:18%}.purchase-order-lines-table th:nth-child(4){width:13%}.purchase-order-lines-table th:nth-child(5){width:9%}.purchase-order-lines-table th:nth-child(6){width:7.5%}.purchase-order-lines-table th:nth-child(7){width:9%}.purchase-order-lines-table th:nth-child(8){width:8%}.purchase-order-lines-table th:nth-child(9){width:7%}.purchase-order-lines-table th:nth-child(10){width:11%}.purchase-order-lines-table th:last-child{width:40px}
/* Receipt columns */
.purchase-receipt-lines-table th:nth-child(1){width:34px}.purchase-receipt-lines-table th:nth-child(2){width:25%}.purchase-receipt-lines-table th:nth-child(3){width:12%}.purchase-receipt-lines-table th:nth-child(4),.purchase-receipt-lines-table th:nth-child(5),.purchase-receipt-lines-table th:nth-child(6){width:10%}.purchase-receipt-lines-table th:nth-child(7){width:12%}.purchase-receipt-lines-table th:nth-child(8){width:21%}
.purchase-receipt-lines-table td:nth-child(2){text-align:right}.purchase-receipt-lines-table td:nth-child(2) b{font-size:11.5px}
@media(max-width:1200px){.purchase-head-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.purchase-head-grid .col-2{grid-column:span 2}.purchase-head-grid .col-3{grid-column:span 3}.purchase-head-grid .col-4,.purchase-head-grid .col-5,.purchase-head-grid .col-6{grid-column:span 3}.purchase-head-grid .col-10,.purchase-head-grid .col-12{grid-column:span 6}.purchase-lines-wrap{overflow:auto}.purchase-lines-table{min-width:980px!important}.purchase-order-lines-table{min-width:1080px!important}.purchase-receipt-lines-table{min-width:900px!important}}
@media(max-width:760px){.purchase-head-grid{grid-template-columns:1fr}.purchase-head-grid>[class*="col-"]{grid-column:1/-1!important}.purchase-editor-panel{padding-inline:10px}.purchase-editor-panel>.section-title-row{margin-inline:-10px;padding-inline:10px}.purchase-totals{grid-template-columns:1fr 1fr}.purchase-totals .grand{grid-column:1/-1}}


/* ========================================================================== */
/* V21.4.2 — Simplified purchasing workflow + approval badge                 */
/* ========================================================================== */
.nav-count-badge{margin-right:auto;margin-left:0;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#e34f47;color:#fff;display:inline-grid;place-items:center;font-size:10px;font-weight:800;line-height:1;box-shadow:0 0 0 3px rgba(255,255,255,.08)}
.purchase-request-nav-item.selected .nav-count-badge,.purchase-request-nav-item:hover .nav-count-badge{background:#fff;color:#b8322c;box-shadow:none}
.purchase-command-bar-unified{display:flex!important;align-items:center!important;justify-content:flex-end!important;flex-wrap:wrap;gap:8px!important;margin:12px 0 0!important;padding:0!important;min-height:42px}
.purchase-command-bar-unified .btn{height:42px!important;min-height:42px!important;padding:0 16px!important;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;font-size:12px;line-height:1}
.purchase-inline-action{display:none!important}
.purchase-request-head-grid{align-items:end}
.purchase-request-lines-clean th:nth-child(1){width:38px}.purchase-request-lines-clean th:nth-child(2){width:42%}.purchase-request-lines-clean th:nth-child(3){width:14%}.purchase-request-lines-clean th:nth-child(4){width:12%}.purchase-request-lines-clean th:nth-child(5){width:15%}.purchase-request-lines-clean th:nth-child(6){width:13%}.purchase-request-lines-clean th:last-child{width:42px}
.purchase-order-lines-clean th:nth-child(1){width:38px}.purchase-order-lines-clean th:nth-child(2){width:34%}.purchase-order-lines-clean th:nth-child(3){width:12%}.purchase-order-lines-clean th:nth-child(4){width:10%}.purchase-order-lines-clean th:nth-child(5){width:13%}.purchase-order-lines-clean th:nth-child(6){width:10%}.purchase-order-lines-clean th:nth-child(7){width:9%}.purchase-order-lines-clean th:nth-child(8){width:14%}.purchase-order-lines-clean th:last-child{width:42px}
.purchase-request-lines-clean td:nth-child(2) input,.purchase-order-lines-clean td:nth-child(2) input{text-align:right!important}
.purchase-editor-panel{margin-bottom:10px}
.purchase-editor-panel .purchase-head-grid{row-gap:8px!important}
.purchase-editor-panel .field textarea{min-height:64px!important;height:64px!important}
.purchase-lines-panel .section-title-row{margin-bottom:8px!important}
.purchase-lines-table td,.purchase-order-lines-table td,.purchase-receipt-lines-table td{padding:6px 6px!important}
.purchase-lines-table th,.purchase-order-lines-table th,.purchase-receipt-lines-table th{padding:9px 6px!important}
@media(max-width:1200px){.purchase-request-lines-clean{min-width:760px!important}.purchase-order-lines-clean{min-width:900px!important}}

/* V21.4.2 - Supplier invoice shares the unified purchase unit catalog */
.supplier-invoice-lines-table{min-width:1380px}
.supplier-invoice-lines-table th:nth-child(1){width:38px}
.supplier-invoice-lines-table th:nth-child(2){width:195px}
.supplier-invoice-lines-table th:nth-child(3){width:205px}
.supplier-invoice-lines-table th:nth-child(4){width:105px}
.supplier-invoice-lines-table th:nth-child(5){width:145px}
.supplier-invoice-lines-table th:nth-child(6){width:78px}
.supplier-invoice-lines-table th:nth-child(7),.supplier-invoice-lines-table th:nth-child(8){width:96px}
.supplier-invoice-lines-table th:nth-child(9){width:78px}
.supplier-invoice-lines-table th:nth-child(10),.supplier-invoice-lines-table th:nth-child(11),.supplier-invoice-lines-table th:nth-child(12){width:92px}
.supplier-invoice-lines-table .custom-select-trigger,.supplier-invoice-lines-table .invoice-unit{height:42px;min-height:42px;width:100%}


/* V21.4.3 - Supplier invoice 3-way matching */
.supplier-invoice-match-panel{padding:14px 16px;margin:0 0 12px;border:1px solid #d9e6dc;background:#fff}.supplier-invoice-match-panel.matched{border-inline-start:4px solid #2d8a46}.supplier-invoice-match-panel.difference{border-inline-start:4px solid #d05b4d}.supplier-invoice-match-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.supplier-invoice-match-head b{display:block;font-size:13px}.supplier-invoice-match-head small{display:block;margin-top:2px;color:#748179;font-size:9.5px}.match-status{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:30px;padding:4px 10px;border-radius:999px;font-size:10.5px;font-weight:800;white-space:nowrap}.match-status.ok,.match-line-status.ok{background:#e8f6e9;color:#17632f}.match-status.warn,.match-line-status.warn{background:#fff0ed;color:#a53e32}.supplier-invoice-match-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin-bottom:10px}.supplier-invoice-match-summary article{border:1px solid #dce7e0;border-radius:9px;background:#fafcfb;padding:8px 10px;min-height:56px;display:flex;flex-direction:column;justify-content:center}.supplier-invoice-match-summary article span{font-size:8.8px;color:#738078}.supplier-invoice-match-summary article b,.supplier-invoice-match-summary article a{margin-top:3px;font-size:11px;font-weight:800}.supplier-invoice-match-summary .match-total-ok{background:#f1f8f1}.supplier-invoice-match-summary .match-total-diff{background:#fff5f2;border-color:#efcbc4}.supplier-invoice-match-table-wrap{border:1px solid #e1e9e3;border-radius:9px}.supplier-invoice-match-table{table-layout:fixed;min-width:1220px}.supplier-invoice-match-table th,.supplier-invoice-match-table td{padding:7px 6px;text-align:center}.supplier-invoice-match-table th:nth-child(1){width:38px}.supplier-invoice-match-table th:nth-child(2){width:220px}.supplier-invoice-match-table th:nth-child(3){width:80px}.supplier-invoice-match-table th:nth-child(4),.supplier-invoice-match-table th:nth-child(5),.supplier-invoice-match-table th:nth-child(6){width:82px}.supplier-invoice-match-table th:nth-child(7),.supplier-invoice-match-table th:nth-child(8),.supplier-invoice-match-table th:nth-child(9),.supplier-invoice-match-table th:nth-child(10){width:94px}.supplier-invoice-match-table th:nth-child(11){width:170px}.supplier-invoice-match-table .text-cell{text-align:right}.supplier-invoice-match-table .match-line-diff{background:#fffaf8}.match-line-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:3px 8px;font-size:9px;font-weight:800;line-height:1.4}.supplier-invoice-match-note{margin-top:8px;border-radius:8px;padding:8px 10px;font-size:9.5px}.supplier-invoice-match-note.ok{background:#eef8ef;color:#27643a}.supplier-invoice-match-note.warn{background:#fff3ef;color:#944337}.supplier-invoice-match-panel+ .supplier-invoice-main-panel{margin-top:0}
@media(max-width:1500px){.supplier-invoice-match-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.supplier-invoice-match-head{align-items:flex-start;flex-direction:column}.supplier-invoice-match-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}



/* V21.6.0 - Supplier RFQ & quotation comparison */
.required-mark{color:#d64236;font-weight:900;margin-inline-start:2px}
.rfq-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.rfq-kpi-grid article{background:#fff;border:1px solid #dfe8df;border-radius:17px;padding:18px 20px;min-height:106px;box-shadow:0 8px 24px rgba(35,72,47,.05)}.rfq-kpi-grid span{display:block;color:#6f7a72;font-size:11px}.rfq-kpi-grid b{display:block;font-size:25px;margin-top:6px}.rfq-kpi-grid small{display:block;color:#89948c;font-size:9.5px;margin-top:4px}.rfq-list-panel{overflow:visible}.rfq-filters .field input{height:42px;border:1px solid #cbdcd3;border-radius:10px;padding:0 11px;font-family:inherit;font-size:12px}.rfq-table td{vertical-align:middle}.rfq-purpose-cell{white-space:normal!important;min-width:220px;max-width:330px}.rfq-subtotal,.rfq-code-note{display:block;color:#7f8b82;font-size:9px;margin-top:3px}.rfq-picker-panel{width:100%;max-width:none;margin:0 0 10px;overflow:visible}.rfq-picker-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;width:100%}.rfq-picker-form .field{min-width:0;margin:0}.rfq-picker-form .field label{margin-bottom:6px}.rfq-picker-form .searchable-select-combo{width:100%;min-width:0}.rfq-picker-form .searchable-select-trigger{width:100%;height:42px!important;min-height:42px!important;border-radius:10px!important;padding-inline:10px!important;font-size:13px!important}.rfq-picker-actions{display:flex;align-items:center;gap:8px;direction:ltr;white-space:nowrap}.rfq-picker-actions .btn{height:42px;min-height:42px;padding:0 18px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:12px}.inline-info-box{margin-top:10px;padding:12px 14px;border:1px solid #d8e4d8;border-radius:10px;background:#f7fbf7;color:#667269;font-size:11px;line-height:1.6}.rfq-status-strip{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px!important;margin-bottom:14px!important}.rfq-status-strip article{padding:12px 14px!important;min-height:66px}.supplier-quote-status-strip{gap:12px!important;margin-bottom:14px!important}.supplier-quote-status-strip article{padding:12px 14px!important;min-height:66px}.rfq-status-strip article small{display:block;font-size:9px;color:#7d897f;margin-top:3px}.rfq-head-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.rfq-head-grid .col-2{grid-column:span 2}.rfq-head-grid .col-3{grid-column:span 3}.rfq-head-grid .col-6{grid-column:span 6}.rfq-head-grid .col-12{grid-column:1/-1}.rfq-requirements-panel,.rfq-suppliers-panel{margin-bottom:14px!important}.rfq-requirements-table{min-width:840px}.rfq-requirements-table .rfq-desc,.rfq-supplier-table td:nth-child(2),.rfq-comparison-lines .rfq-desc{white-space:normal;min-width:220px}.rfq-add-supplier{display:grid;grid-template-columns:minmax(320px,1fr) auto;gap:8px;align-items:end;padding:2px 0 12px}.rfq-add-supplier .field{min-width:0}.rfq-add-supplier .searchable-select-trigger{height:42px!important;min-height:42px!important;border-radius:10px!important}.rfq-supplier-table{min-width:1120px}.rfq-winner-row{background:#eef8ed!important}.rfq-lowest-row{background:#f6fbef!important}.rfq-best-note{display:block;color:#2f7a32;font-size:8.5px;margin-top:2px}.rfq-bottom-actions{margin-bottom:14px!important}.supplier-quote-head-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.supplier-quote-head-grid .col-2{grid-column:span 2}.supplier-quote-head-grid .col-3{grid-column:span 3}.supplier-quote-head-grid .col-12{grid-column:1/-1}.supplier-quote-lines{min-width:1180px}.supplier-quote-lines td{vertical-align:middle}.supplier-quote-lines .quote-number-input{height:42px;min-height:42px;width:118px;border:1px solid #cbdcd3;border-radius:10px;padding:0 10px;text-align:center;font-family:inherit;font-size:12px;background:#fff}.supplier-quote-lines .quote-number-input[readonly]{background:#f7faf7;color:#657168}.supplier-quote-lines .custom-select-trigger,.supplier-quote-lines .searchable-select-trigger{height:42px!important;min-height:42px!important}.supplier-quote-totals{grid-template-columns:repeat(5,minmax(0,1fr))}.rfq-comparison-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.rfq-comparison-kpis article{background:#fff;border:1px solid #dfe8df;border-radius:14px;padding:13px 15px;min-height:72px}.rfq-comparison-kpis span{display:block;color:#7c877f;font-size:10px}.rfq-comparison-kpis b,.rfq-comparison-kpis a{display:block;margin-top:5px;font-size:13px}.rfq-comparison-summary{min-width:1100px}.rfq-comparison-lines{min-width:1050px}.rfq-suppliers-panel .crm-action-btn{width:34px;height:34px;min-width:34px}.rfq-suppliers-panel .btn.small,.rfq-comparison-summary .btn.small{height:34px;min-height:34px;padding:0 11px;font-size:10px}.rfq-suppliers-panel .pill,.rfq-comparison-summary .pill{white-space:nowrap}
@media(max-width:1200px){.rfq-kpi-grid,.rfq-comparison-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.rfq-status-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.rfq-head-grid .col-3{grid-column:span 6}.rfq-head-grid .col-6{grid-column:1/-1}.supplier-quote-head-grid .col-3{grid-column:span 6}.supplier-quote-head-grid .col-2{grid-column:span 4}}
@media(max-width:760px){.rfq-kpi-grid,.rfq-comparison-kpis,.rfq-status-strip{grid-template-columns:1fr}.rfq-picker-form,.rfq-add-supplier{grid-template-columns:1fr}.rfq-picker-actions{justify-content:flex-start}.rfq-head-grid,.supplier-quote-head-grid{grid-template-columns:1fr}.rfq-head-grid>[class*="col-"],.supplier-quote-head-grid>[class*="col-"]{grid-column:1/-1!important}.supplier-quote-totals{grid-template-columns:1fr 1fr}.supplier-quote-totals .grand{grid-column:1/-1}}


/* ========================================================================== */
/* V21.6.0.4 — Purchasing UI polish                                           */
/* Unified action spacing + centered grid controls + 15% VAT default visuals  */
/* ========================================================================== */
.purchase-command-bar-unified,
.supplier-invoice-command-bar,
.supplier-return-command-bar,
.supplier-return-picker-actions,
.rfq-picker-actions,
.supplier-return-toolbar-actions{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    flex-wrap:wrap!important;
    gap:12px!important;
}
.purchase-command-bar-unified{margin:14px 0 16px!important;padding:0 2px!important;min-height:42px!important}
.rfq-bottom-actions{margin-top:14px!important;margin-bottom:16px!important}
.supplier-invoice-command-bar,.supplier-return-command-bar{margin:14px 0 16px!important;padding:0 2px!important}
.rfq-picker-actions,.supplier-return-picker-actions{gap:12px!important}
.purchase-command-bar-unified .btn,
.supplier-invoice-command-bar .btn,
.supplier-return-command-bar .btn,
.rfq-picker-actions .btn,
.supplier-return-picker-actions .btn{
    height:42px!important;
    min-height:42px!important;
    padding-inline:16px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
}
/* Keep a visible breathing space when an action row sits between two panels. */
.purchase-editor-panel + .purchase-command-bar-unified,
.purchase-command-bar-unified + .purchase-editor-panel,
.purchase-command-bar-unified + .panel,
.supplier-invoice-command-bar + .panel,
.supplier-return-command-bar + .panel{margin-top:14px!important}

/* Every editable control placed inside purchasing tables is visually centered. */
.purchase-lines-table input,
.purchase-order-lines-table input,
.purchase-receipt-lines-table input,
.supplier-quote-lines input,
.supplier-invoice-lines-table input,
.supplier-return-lines-table input{
    text-align:center!important;
    direction:ltr;
    font-variant-numeric:tabular-nums;
}
.purchase-lines-table .searchable-select-label,
.purchase-order-lines-table .searchable-select-label,
.purchase-receipt-lines-table .searchable-select-label,
.supplier-quote-lines .searchable-select-label,
.supplier-invoice-lines-table .searchable-select-label,
.supplier-return-lines-table .searchable-select-label,
.purchase-lines-table .custom-select-trigger,
.purchase-order-lines-table .custom-select-trigger,
.purchase-receipt-lines-table .custom-select-trigger,
.supplier-quote-lines .custom-select-trigger,
.supplier-invoice-lines-table .custom-select-trigger,
.supplier-return-lines-table .custom-select-trigger{
    text-align:center!important;
    justify-content:center!important;
}
.purchase-lines-table th,.purchase-lines-table td,
.purchase-order-lines-table th,.purchase-order-lines-table td,
.purchase-receipt-lines-table th,.purchase-receipt-lines-table td,
.supplier-quote-lines th,.supplier-quote-lines td,
.supplier-invoice-lines-table th,.supplier-invoice-lines-table td,
.supplier-return-lines-table th,.supplier-return-lines-table td,
.rfq-requirements-table th,.rfq-requirements-table td,
.rfq-supplier-table th,.rfq-supplier-table td,
.rfq-comparison-summary th,.rfq-comparison-summary td,
.rfq-comparison-lines th,.rfq-comparison-lines td{
    vertical-align:middle!important;
}
/* Descriptions are still RTL text, but their input box itself follows the centered table standard. */
.purchase-request-lines-clean td:nth-child(2) input,
.purchase-order-lines-clean td:nth-child(2) input,
.supplier-invoice-lines-table .invoice-description{
    text-align:center!important;
    direction:rtl!important;
}
.supplier-quote-lines .custom-select-combo,
.purchase-order-lines-table .custom-select-combo,
.supplier-invoice-lines-table .custom-select-combo,
.purchase-lines-table .custom-select-combo,
.purchase-receipt-lines-table .custom-select-combo{margin-inline:auto!important}

@media(max-width:760px){
    .purchase-command-bar-unified,.supplier-invoice-command-bar,.supplier-return-command-bar,.rfq-picker-actions,.supplier-return-picker-actions{gap:10px!important}
    .purchase-command-bar-unified .btn,.supplier-invoice-command-bar .btn,.supplier-return-command-bar .btn{min-width:110px}
}

/* ========================================================================== */
/* V22.0.0.3 — Inventory & warehouses UI alignment                           */
/* Same density, toolbar rhythm, KPI cards and modal language as the system.  */
/* ========================================================================== */
.inventory-page-heading{margin-bottom:12px!important;align-items:center!important}
.inventory-page-heading h1{font-size:22px!important;margin-bottom:3px!important}
.inventory-page-heading p{font-size:11px!important;line-height:1.7!important}

.inventory-kpi-strip{gap:10px!important;margin-bottom:12px!important}
.inventory-kpi-strip.inventory-kpi-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.inventory-kpi-strip.inventory-kpi-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.inventory-kpi-strip.inventory-kpi-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.inventory-kpi-strip .employee-kpi{min-height:64px!important;padding:10px 13px!important}
.inventory-kpi-strip .employee-kpi b{font-size:20px!important;margin:0!important}
.inventory-kpi-strip .employee-kpi span{font-size:10px!important}

.inventory-dashboard-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;justify-content:flex-start;direction:rtl}
.inventory-dashboard-actions .btn{height:40px;min-height:40px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center}
.inventory-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}
.inventory-dashboard-panel{min-width:0}
.inventory-panel-head{padding:11px 13px!important;min-height:58px!important}
.inventory-panel-head h2{font-size:13px!important}
.inventory-panel-head p{font-size:9px!important;margin-top:2px!important}
.inventory-panel-head .text-link{font-size:10px;font-weight:800;color:var(--green-700);white-space:nowrap}
.inventory-dashboard-table-wrap{overflow:hidden!important}
.inventory-dashboard-table{min-width:0!important;table-layout:fixed!important}
.inventory-dashboard-table th,.inventory-dashboard-table td{padding:9px 7px!important;white-space:normal!important}
.inventory-dashboard-table th{font-size:10px!important}
.inventory-dashboard-table td{font-size:10.5px!important}
.inventory-empty-state{padding:34px 12px!important;min-height:155px;justify-content:center}
.inventory-empty-state b{font-size:14px!important}
.inventory-empty-state span{font-size:9px!important}

.inventory-master-panel{margin-bottom:12px!important;overflow:visible!important}
.inventory-toolbar{padding:10px 12px!important;gap:10px!important;align-items:center!important;flex-wrap:wrap!important}
.inventory-toolbar-actions{gap:8px!important;flex:0 0 auto;flex-wrap:wrap}
.inventory-toolbar-actions .btn{height:42px;min-height:42px;padding-inline:14px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.inventory-filter-bar{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;flex:1 1 560px!important;min-width:0!important;padding:0!important;flex-wrap:nowrap!important}
.inventory-filter-bar .inventory-search-box{height:42px!important;min-height:42px!important;min-width:220px!important;flex:1 1 280px!important}
.inventory-filter-bar .inventory-search-box input{height:auto!important;min-height:0!important;border:0!important;border-radius:0!important;padding:0!important;font-size:12px!important;background:transparent!important}
.inventory-filter-bar>.custom-select-combo,.inventory-filter-bar>.searchable-select-combo{flex:0 1 165px;min-width:130px;width:auto!important}
.inventory-filter-bar .custom-select-trigger,.inventory-filter-bar .searchable-select-trigger{height:42px!important;min-height:42px!important;border-radius:10px!important;width:100%!important;padding-inline:10px!important;font-size:12px!important}
.inventory-filter-bar>.btn{height:42px!important;min-height:42px!important;padding-inline:13px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;white-space:nowrap}
/* V24.1.0.5 — Inventory Cost Ledger uses the system date component, never a visible native date input. */
.inventory-filter-bar>.inventory-filter-date{flex:0 0 142px!important;width:142px!important;min-width:132px!important;height:42px!important;min-height:42px!important}
.inventory-filter-date>input[data-gregorian-date]{width:100%!important;height:42px!important;min-height:42px!important;text-align:center!important;direction:ltr!important;border:1px solid var(--border)!important;border-radius:10px!important;background:#fff!important;padding:0 40px 0 8px!important;font-size:12px!important;appearance:none!important;-webkit-appearance:none!important}
.inventory-filter-date>.date-picker-button{pointer-events:none!important}
.inventory-filter-date>.date-picker-proxy{position:absolute!important;z-index:3!important;right:0!important;top:0!important;left:auto!important;width:42px!important;height:42px!important;min-height:42px!important;opacity:0!important;pointer-events:auto!important;cursor:pointer!important;border:0!important;padding:0!important;margin:0!important}
.inventory-filter-bar-short{flex:0 1 430px!important}
.inventory-filter-bar-short>.searchable-select-combo{flex:1 1 260px!important;max-width:320px}
.inventory-filter-bar-warehouse{flex:0 1 650px!important}
.inventory-filter-bar-warehouse .inventory-search-box{flex:1 1 310px!important}
.inventory-filter-bar-warehouse>.custom-select-combo{flex:0 1 160px!important}

.inventory-table-wrap{padding:8px 12px 12px!important}
.inventory-table{min-width:960px}
.inventory-table th,.inventory-table td{text-align:center!important;vertical-align:middle!important}
.inventory-table th{padding:11px 8px!important;font-size:10.5px!important}
.inventory-table td{padding:10px 8px!important;font-size:10.5px!important}
.inventory-table td b{font-weight:800}
.inventory-table .subtle{display:block;margin-top:2px;font-size:8.8px;color:#819087}
.inventory-table .crm-row-actions{justify-content:center!important;gap:6px!important}
.inventory-table .crm-action-btn{margin:0!important}
.inventory-table .inventory-name-cell{text-align:right!important}
.inventory-table .empty-cell{padding:34px 14px!important}
.inventory-items-table{min-width:1080px}
.inventory-warehouse-table{min-width:980px}
.inventory-stock-card-table{min-width:1020px}

.inventory-modal-card{width:min(780px,94vw)!important;max-height:88vh!important;overflow:visible!important;border-radius:15px!important}
.inventory-category-modal-card{width:min(650px,94vw)!important}
.inventory-modal-card>form{display:flex;flex-direction:column;max-height:88vh;min-height:0}
.inventory-modal-head{padding:12px 14px!important;flex:0 0 auto}
.inventory-modal-head h2{font-size:14px!important}
.inventory-modal-head span{font-size:8.5px!important;margin-top:2px!important;color:var(--muted)!important}
.inventory-modal-head .close-btn{width:32px;height:32px;font-size:20px}
.inventory-modal-body{padding:12px 14px!important;max-height:calc(88vh - 112px)!important;overflow:auto!important}
.inventory-modal-grid{padding:0!important;gap:10px 12px!important}
.inventory-modal-grid .field{gap:5px!important;min-width:0}
.inventory-modal-grid .field label{font-size:10.5px!important}
.inventory-modal-grid .field input,.inventory-modal-grid .field textarea{font-size:13px!important;border-color:#cbdcd3!important}
.inventory-modal-grid .field input{height:42px!important;min-height:42px!important;padding:0 10px!important}
.inventory-modal-grid .field textarea{min-height:66px!important;padding:8px 10px!important}
.inventory-modal-grid .custom-select-trigger,.inventory-modal-grid .searchable-select-trigger{height:42px!important;min-height:42px!important;border-radius:9px!important;font-size:13px!important}
.inventory-toggle-grid{justify-content:flex-end}
.inventory-toggle-grid .toggle-option{min-height:38px!important;height:38px!important;padding:0 10px!important;border-radius:9px!important}
/* V22.1.1.3 - inventory controls: no browser-native checkboxes and centered numeric values. */
.inventory-check-option{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;min-height:42px;width:100%;padding:0 11px;border:1px solid #cbdcd3;border-radius:10px;background:#fff;color:#34463a;font-size:11px;font-weight:700;cursor:pointer;user-select:none;transition:.15s ease}
.inventory-check-option:hover{border-color:#a8cdb0;background:#f9fcf9}
.inventory-check-option input[type="checkbox"]{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;min-height:1px!important;margin:0!important}
.inventory-check-box{display:inline-grid;place-items:center;width:18px;height:18px;flex:0 0 18px;border:1.5px solid #aabbb0;border-radius:5px;background:#fff;color:transparent;font-size:12px;font-weight:900;line-height:1;transition:.15s ease}
.inventory-check-option input:checked + .inventory-check-box{background:var(--green-700);border-color:var(--green-700);color:#fff}
.inventory-check-option input:focus-visible + .inventory-check-box{outline:2px solid rgba(45,138,52,.18);outline-offset:2px}
.inventory-numeric-field input,.inventory-modal-card input[inputmode="decimal"],.inventory-modal-card input[inputmode="numeric"],.inventory-form-grid input[inputmode="decimal"],.inventory-form-grid input[inputmode="numeric"]{text-align:center!important;direction:ltr!important;font-variant-numeric:tabular-nums}
.inventory-centered-select .searchable-select-trigger{justify-content:center!important;text-align:center!important}
.inventory-centered-select .searchable-select-label{width:100%;text-align:center!important}
.inventory-centered-select .searchable-select-arrow{margin-inline-start:auto}
.inventory-date-field input[data-gregorian-date],.stock-transfer-date-filter input[data-gregorian-date]{text-align:center!important;direction:ltr!important;font-variant-numeric:tabular-nums}
.inventory-modal-footer{padding:10px 14px!important;gap:12px!important;flex:0 0 auto;background:#fff!important}
.inventory-modal-footer .btn{height:42px;min-height:42px;padding-inline:16px;display:inline-flex;align-items:center;justify-content:center}

/* Do not hard-code a required asterisk in Razor. app.js appends exactly one. */
.inventory-modal-card .required,.inventory-modal-card .required-mark{display:none!important}

.inventory-link-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:10px 13px;border:1px solid #cae0cf;border-inline-start:4px solid #2d8a34;border-radius:10px;background:#f4faf4;color:#315d3e;font-size:10.5px}
.inventory-link-banner b{font-size:11.5px}.inventory-link-banner .latin-numbers{font-weight:800}
.inventory-form-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:10px 12px}.inventory-form-grid .col-3{grid-column:span 3}.inventory-form-grid .col-4{grid-column:span 4}.inventory-form-grid .col-6{grid-column:span 6}.inventory-form-grid .col-12{grid-column:1/-1}
.inventory-form-grid .field{min-width:0;margin:0}.inventory-form-grid input,.inventory-form-grid textarea{width:100%;border:1px solid #cbdcd3;border-radius:10px;font-family:inherit;font-size:13px}.inventory-form-grid input{height:42px;padding:0 11px}.inventory-form-grid textarea{min-height:76px;padding:9px 11px;resize:vertical}.inventory-form-grid .custom-select-trigger,.inventory-form-grid .searchable-select-trigger{height:42px!important;min-height:42px!important}
.inventory-modal-actions,.inventory-page-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;flex-wrap:wrap!important;gap:12px!important;margin-top:14px!important}.inventory-modal-actions .btn,.inventory-page-actions .btn{height:42px!important;min-height:42px!important;padding-inline:16px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
.inventory-stock-pill{display:inline-flex;align-items:center;justify-content:center;min-height:24px;border-radius:999px;padding:3px 8px;font-size:9px;font-weight:800;white-space:nowrap}.inventory-stock-pill.stock{background:#e7f5e8;color:#26743a}.inventory-stock-pill.direct{background:#eef2f0;color:#68756c}
.purchase-receipt-inventory-field{margin-bottom:12px}.purchase-receipt-inventory-field .searchable-select-trigger{height:42px!important;min-height:42px!important}

@media(max-width:1350px){
  .inventory-toolbar{align-items:stretch!important}
  .inventory-toolbar-actions{width:100%;justify-content:flex-start}
  .inventory-filter-bar{flex-basis:100%!important;width:100%}
  .inventory-filter-bar .inventory-search-box{flex:1 1 300px!important}
}
@media(max-width:1000px){
  .inventory-dashboard-grid{grid-template-columns:1fr}
  .inventory-kpi-strip.inventory-kpi-4,.inventory-kpi-strip.inventory-kpi-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .inventory-filter-bar{flex-wrap:wrap!important}
  .inventory-filter-bar .inventory-search-box{flex:1 1 100%!important;max-width:none}
  .inventory-filter-bar>.custom-select-combo,.inventory-filter-bar>.searchable-select-combo{flex:1 1 180px!important;max-width:none!important}
  .inventory-form-grid .col-3,.inventory-form-grid .col-4,.inventory-form-grid .col-6{grid-column:span 6}
}
@media(max-width:650px){
  .inventory-kpi-strip.inventory-kpi-4,.inventory-kpi-strip.inventory-kpi-3,.inventory-kpi-strip.inventory-kpi-2{grid-template-columns:1fr 1fr}
  .inventory-toolbar-actions{gap:7px!important}
  .inventory-toolbar-actions .btn{flex:1 1 auto}
  .inventory-filter-bar>*{flex:1 1 100%!important;max-width:none!important;width:100%!important}
  .inventory-dashboard-actions .btn{flex:1 1 auto}
  .inventory-modal-card{width:calc(100vw - 10px)!important;max-height:calc(100dvh - 10px)!important}
  .inventory-modal-card>form{max-height:calc(100dvh - 10px)!important}
  .inventory-modal-body{max-height:calc(100dvh - 122px)!important}
  .inventory-modal-grid{grid-template-columns:1fr!important}
  .inventory-modal-grid .span-2{grid-column:span 1!important}
  .inventory-form-grid{grid-template-columns:1fr}.inventory-form-grid>[class*="col-"]{grid-column:1/-1!important}
}

/* ========================================================================== */
/* V22.1.1.8 — Supplier invoice high-volume entry + validation cleanup         */
/* One posting account at invoice header, custom dates, no repeated account.   */
/* ========================================================================== */
.supplier-invoice-head-grid .span-4{grid-column:span 4}
.supplier-invoice-head-grid .date-entry{width:100%}
.supplier-invoice-head-grid .date-entry>input[data-gregorian-date]{width:100%!important;text-align:center!important;direction:ltr!important;appearance:none!important;-webkit-appearance:none!important}
.invoice-default-account-field small{display:block;margin-top:5px;color:#728078;font-size:9px;line-height:1.55}
.supplier-invoice-lines-table{min-width:1040px!important}
.supplier-invoice-lines-table th:nth-child(1){width:36px!important}
.supplier-invoice-lines-table th:nth-child(2){width:210px!important}
.supplier-invoice-lines-table th:nth-child(3){width:90px!important}
.supplier-invoice-lines-table th:nth-child(4){width:130px!important}
.supplier-invoice-lines-table th:nth-child(5){width:70px!important}
.supplier-invoice-lines-table th:nth-child(6),.supplier-invoice-lines-table th:nth-child(7){width:88px!important}
.supplier-invoice-lines-table th:nth-child(8){width:70px!important}
.supplier-invoice-lines-table th:nth-child(9),.supplier-invoice-lines-table th:nth-child(10),.supplier-invoice-lines-table th:nth-child(11){width:85px!important}
.supplier-invoice-lines-table th:last-child{width:44px!important}
.supplier-invoice-editor .server-invalid-field,
.supplier-invoice-editor .server-invalid-field.searchable-select-trigger,
.supplier-invoice-editor .server-invalid-field.custom-select-trigger{border-color:#d94b43!important;box-shadow:0 0 0 3px rgba(217,75,67,.10)!important;background:#fff9f8!important}
.supplier-invoice-editor .supplier-invoice-line.has-server-validation-error>td{background:rgba(217,75,67,.018)!important}
.supplier-invoice-filter-date{height:42px;min-height:42px;width:100%}
.supplier-invoice-filter-date>input[data-gregorian-date]{height:42px!important;min-height:42px!important;width:100%!important;border:1px solid #cbdcd3!important;border-radius:9px!important;padding:0 38px 0 10px!important;background:#fff!important;font:500 12.5px Cairo,sans-serif!important;text-align:center!important;direction:ltr!important;appearance:none!important;-webkit-appearance:none!important}
@media(max-width:1500px){.supplier-invoice-head-grid .span-4{grid-column:1/-1}}
@media(max-width:1100px){.supplier-invoice-head-grid .span-4{grid-column:1/-1}}
@media(max-width:760px){.supplier-invoice-head-grid .span-4,.supplier-invoice-head-grid .span-2{grid-column:1/-1!important}}

/* ========================================================================== */
/* V22.1.1.10 — Purchase receipt density + receipt warehouse visibility       */
/* ========================================================================== */
.purchase-head-grid .col-1{grid-column:span 1}
.purchase-receipt-date-field{min-width:0}
.purchase-receipt-date-field input{padding-inline:7px!important;text-align:center!important;direction:ltr!important;font-variant-numeric:tabular-nums}
.purchase-receipt-delivery-note-field{min-width:0}
.purchase-receipt-notes-field textarea{min-height:74px!important;height:74px!important}
.purchase-receipt-lines-table th:nth-child(2){width:24%}
.purchase-receipt-lines-table th:nth-child(3){width:9%}
.purchase-receipt-lines-table th:nth-child(4){width:9%}
.purchase-receipt-lines-table th:nth-child(5),.purchase-receipt-lines-table th:nth-child(6){width:8%}
.purchase-receipt-lines-table th:nth-child(7){width:9%}
.purchase-receipt-lines-table th:nth-child(8){width:11%}
.purchase-receipt-lines-table th:nth-child(9){width:17%}
.purchase-receipt-lines-table td:nth-child(9) input{width:100%!important;min-width:0!important;direction:rtl!important;text-align:right!important}
@media(max-width:1200px){
  .purchase-head-grid .col-1{grid-column:span 1}
  .purchase-receipt-date-field{grid-column:span 1!important}
  .purchase-receipt-delivery-note-field{grid-column:span 2!important}
}
@media(max-width:760px){
  .purchase-receipt-date-field,.purchase-receipt-delivery-note-field{grid-column:1/-1!important}
}


/* ========================================================================== */
/* V23.0.0 — Sales Core: direct retail + optional order/delivery             */
/* ========================================================================== */
.sales-heading{margin-bottom:12px!important;align-items:center!important}
.sales-heading h1{font-size:22px!important;margin-bottom:3px!important}
.sales-heading p{font-size:10.5px!important;line-height:1.75!important;color:var(--muted)!important}
.sales-editor{min-width:0}
.sales-main-panel,.sales-lines-panel,.sales-notes-panel,.sales-list-panel{margin-bottom:12px!important;overflow:visible!important}
.sales-main-panel .section-title-row,.sales-lines-panel .section-title-row{padding:11px 13px!important}
.sales-main-panel .section-title-row b,.sales-lines-panel .section-title-row b{font-size:13px!important}
.sales-main-panel .section-title-row small,.sales-lines-panel .section-title-row small{font-size:9px!important;color:var(--muted)!important}

.sales-status-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:0 0 12px}
.sales-status-strip article{min-width:0;min-height:58px;border:1px solid #dce8e0;border-radius:10px;background:#fff;padding:8px 10px;display:flex;flex-direction:column;justify-content:center}
.sales-status-strip article span:first-child{font-size:8.8px;color:#718078}
.sales-status-strip article b,.sales-status-strip article a{margin-top:3px;font-size:11px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sales-source-note{margin:0 0 12px!important;padding:9px 12px!important;display:flex!important;align-items:center!important;gap:7px!important;flex-wrap:wrap!important;font-size:10px!important}
.sales-source-note span{color:#65756c}

.sales-head-grid,.sales-invoice-head-grid,.sales-delivery-head-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px 12px;padding:12px 14px 14px;align-items:end}
.sales-head-grid .span-2,.sales-invoice-head-grid .span-2,.sales-delivery-head-grid .span-2{grid-column:span 2}
.sales-head-grid .span-3,.sales-invoice-head-grid .span-3,.sales-delivery-head-grid .span-3{grid-column:span 3}
.sales-head-grid .field,.sales-invoice-head-grid .field,.sales-delivery-head-grid .field{min-width:0;gap:5px!important}
.sales-head-grid .field label,.sales-invoice-head-grid .field label,.sales-delivery-head-grid .field label{font-size:10.5px!important}
.sales-head-grid input,.sales-invoice-head-grid input,.sales-delivery-head-grid input{height:42px!important;min-height:42px!important;font-size:13px!important}
.sales-head-grid .custom-select-trigger,.sales-head-grid .searchable-select-trigger,
.sales-invoice-head-grid .custom-select-trigger,.sales-invoice-head-grid .searchable-select-trigger,
.sales-delivery-head-grid .custom-select-trigger,.sales-delivery-head-grid .searchable-select-trigger{height:42px!important;min-height:42px!important;border-radius:9px!important;font-size:13px!important}
.sales-date-field{min-width:0}
.sales-date-field .date-entry{width:100%}
.sales-date-field input[data-gregorian-date]{height:42px!important;min-height:42px!important;width:100%!important;text-align:center!important;direction:ltr!important;font-variant-numeric:tabular-nums;padding-inline:36px 8px!important;appearance:none!important;-webkit-appearance:none!important}
.sales-date-field .date-picker-proxy{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;min-height:1px!important;padding:0!important;border:0!important}

.sales-lines-panel .table-wrap{padding:0 12px 12px!important;overflow:auto}
.sales-lines-table,.sales-delivery-table{width:100%;table-layout:fixed;min-width:1080px}
.sales-lines-table th,.sales-lines-table td,.sales-delivery-table th,.sales-delivery-table td{text-align:center!important;vertical-align:middle!important;padding:8px 6px!important}
.sales-lines-table th,.sales-delivery-table th{font-size:10px!important;white-space:nowrap}
.sales-lines-table td,.sales-delivery-table td{font-size:10.5px!important}
.sales-lines-table input,.sales-delivery-table input{height:42px!important;min-height:42px!important;width:100%!important;text-align:center!important}
.sales-lines-table .custom-select-trigger,.sales-lines-table .searchable-select-trigger{height:42px!important;min-height:42px!important;width:100%!important;font-size:11.5px!important}
.sales-lines-table th:nth-child(1){width:34px}
.sales-lines-table th:nth-child(2){width:250px}
.sales-lines-table th:nth-child(3){width:105px}
.sales-lines-table th:nth-child(4){width:85px}
.sales-lines-table th:nth-child(5){width:95px}
.sales-lines-table th:nth-child(6){width:85px}
.sales-lines-table th:nth-child(7){width:78px}
.sales-lines-table th:nth-child(8){width:128px}
.sales-lines-table th:nth-child(9){width:42px}
.sales-line-sub{display:block;margin-top:2px;font-size:8.2px!important;color:#77857d;white-space:nowrap}
.sales-invoice-line .line-total,.sales-order-line .line-total{font-size:11px}

.sales-delivery-table{min-width:1120px}
.sales-delivery-table th:nth-child(1){width:34px}
.sales-delivery-table th:nth-child(2){width:220px}
.sales-delivery-table th:nth-child(3){width:90px}
.sales-delivery-table th:nth-child(4),.sales-delivery-table th:nth-child(5),.sales-delivery-table th:nth-child(6),.sales-delivery-table th:nth-child(7){width:88px}
.sales-delivery-table th:nth-child(8){width:96px}
.sales-delivery-table th:nth-child(9){width:190px}
.sales-delivery-table .delivery-note{text-align:right!important;direction:rtl!important;padding-inline:9px!important}
.sales-delivery-table input.themed-table-input{
  -webkit-appearance:none!important;appearance:none!important;-moz-appearance:none!important;
  height:42px!important;min-height:42px!important;width:100%!important;margin:0!important;
  border:1px solid #cbdcd3!important;border-radius:9px!important;background:#fff!important;color:#162d22!important;
  padding:0 10px!important;font:500 12.5px Cairo,Tahoma,Arial,sans-serif!important;outline:none!important;box-shadow:none!important;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease!important;
}
.sales-delivery-table input.themed-table-input:hover{border-color:#acc8b7!important}
.sales-delivery-table input.themed-table-input:focus{border-color:#66a879!important;box-shadow:0 0 0 3px rgba(58,139,84,.10)!important;background:#fcfffd!important}
.sales-delivery-table input.themed-table-input[readonly]{background:#f5f8f6!important;color:#596a61!important;cursor:default!important}
.sales-delivery-table .available-cell{font-weight:800;color:#29633a}

.sales-totals{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;padding:0 12px 12px}
.sales-totals article{min-height:57px;border:1px solid #dce8e0;border-radius:9px;background:#fbfdfb;padding:8px 10px;display:flex;flex-direction:column;justify-content:center;text-align:center}
.sales-totals article span{font-size:8.8px;color:#748179}
.sales-totals article b{margin-top:3px;font-size:12px;font-weight:800}
.sales-totals article.grand{background:#eef8f0;border-color:#bad9c0}
.sales-totals article.grand b{color:var(--green-700);font-size:14px}
.sales-notes-panel{padding:12px 14px!important}
.sales-notes-panel textarea{min-height:76px!important;height:76px!important;font-size:12.5px!important}

.sales-filter-bar{display:flex;align-items:end;gap:8px;flex-wrap:wrap;padding:10px 12px!important}
.sales-filter-bar .field{min-width:125px;flex:0 1 165px;gap:4px!important}
.sales-filter-bar .field:first-child{flex:1 1 250px;min-width:220px}
.sales-filter-bar input,.sales-filter-bar .custom-select-trigger,.sales-filter-bar .searchable-select-trigger{height:42px!important;min-height:42px!important;font-size:12px!important}
.sales-filter-date{width:145px!important;min-width:130px!important}
.sales-filter-date input[data-gregorian-date]{height:42px!important;min-height:42px!important;text-align:center!important;direction:ltr!important;padding-inline:35px 7px!important}
.sales-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 12px}
.sales-summary article{border:1px solid #dce8e0;border-radius:10px;background:#fff;padding:9px 12px;min-height:56px;display:flex;flex-direction:column;justify-content:center}
.sales-summary span{font-size:8.8px;color:#748179}.sales-summary b{margin-top:2px;font-size:15px}
.sales-list-panel .table-wrap{padding:8px 12px 12px!important}
.sales-table{min-width:980px;table-layout:fixed}
.sales-table th,.sales-table td{text-align:center!important;vertical-align:middle!important;padding:9px 7px!important;font-size:10.5px!important}
.sales-table th{font-size:10px!important}

.sales-editor .server-invalid-field,.sales-editor .server-invalid-field.searchable-select-trigger,.sales-editor .server-invalid-field.custom-select-trigger{border-color:#d94b43!important;box-shadow:0 0 0 3px rgba(217,75,67,.10)!important;background:#fff9f8!important}
.sales-editor tr.has-server-validation-error>td{background:rgba(217,75,67,.018)!important}

@media(max-width:1500px){
  .sales-status-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sales-head-grid,.sales-invoice-head-grid,.sales-delivery-head-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
}
@media(max-width:1050px){
  .sales-head-grid,.sales-invoice-head-grid,.sales-delivery-head-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sales-head-grid .span-2,.sales-invoice-head-grid .span-2,.sales-delivery-head-grid .span-2{grid-column:span 1}
  .sales-totals{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .sales-status-strip,.sales-summary,.sales-totals{grid-template-columns:1fr 1fr}
  .sales-head-grid,.sales-invoice-head-grid,.sales-delivery-head-grid{grid-template-columns:1fr}
  .sales-head-grid .span-2,.sales-invoice-head-grid .span-2,.sales-delivery-head-grid .span-2{grid-column:1/-1}
  .sales-filter-bar .field,.sales-filter-bar .field:first-child{flex:1 1 100%;width:100%;min-width:100%}
}

/* ========================================================================== */
/* V23.0.0.3 — Sales list layout + non-native visible controls + EF page fix */
/* ========================================================================== */
.sales-list-panel{padding:12px!important;overflow:visible!important}
.sales-filter-bar{display:grid!important;gap:8px!important;align-items:center!important;padding:0!important;margin:0 0 10px!important;overflow:visible!important}
.sales-invoice-filter-bar{grid-template-columns:auto minmax(220px,1.45fr) minmax(170px,1fr) 135px 125px 155px auto}
.sales-order-filter-bar{grid-template-columns:auto minmax(220px,1.35fr) minmax(165px,1fr) 145px 142px 142px auto}
.sales-delivery-filter-bar{grid-template-columns:auto minmax(260px,1.7fr) 145px 142px 142px auto}
.sales-filter-cell{min-width:0!important;width:100%!important;position:relative}
.sales-filter-cell>.searchable-select-combo,.sales-filter-cell>.custom-select-combo{width:100%!important;min-width:0!important}
.sales-filter-bar>.searchable-select-combo,.sales-filter-bar>.custom-select-combo{width:100%!important;min-width:0!important}
.sales-filter-search{height:42px!important;min-height:42px!important;width:100%!important;margin:0!important}
.sales-filter-search input{height:40px!important;min-height:40px!important;width:100%!important;font-size:12px!important}
.sales-filter-bar .searchable-select-trigger,.sales-filter-bar .custom-select-trigger{height:42px!important;min-height:42px!important;width:100%!important;border-radius:10px!important;font-size:12px!important;padding-inline:10px!important}
.sales-filter-bar .searchable-select-label{text-align:right!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.sales-filter-date{display:block!important;position:relative!important;width:100%!important;min-width:0!important;height:42px!important;min-height:42px!important;direction:ltr!important}
.sales-filter-date>input[data-gregorian-date]{display:block!important;position:relative!important;inset:auto!important;width:100%!important;max-width:none!important;height:42px!important;min-height:42px!important;margin:0!important;padding:0 38px 0 8px!important;border:1px solid #cbdcd3!important;border-radius:10px!important;background:#fff!important;color:#24392e!important;text-align:center!important;direction:ltr!important;font:500 12px Cairo,Tahoma,Arial,sans-serif!important;letter-spacing:.15px!important;box-shadow:none!important;outline:none!important;appearance:none!important;-webkit-appearance:none!important}
.sales-filter-date>input[data-gregorian-date]:focus{border-color:#78aa69!important;box-shadow:0 0 0 3px rgba(75,139,60,.09)!important}
.sales-filter-date>.date-picker-button{position:absolute!important;right:5px!important;left:auto!important;top:5px!important;bottom:auto!important;width:32px!important;height:32px!important;min-height:32px!important;border:0!important;border-radius:8px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;z-index:3!important}
.sales-filter-date>.date-picker-proxy,.sales-date-field .date-picker-proxy{position:fixed!important;left:-10000px!important;right:auto!important;top:-10000px!important;width:1px!important;min-width:1px!important;max-width:1px!important;height:1px!important;min-height:1px!important;max-height:1px!important;margin:0!important;padding:0!important;border:0!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important}
.sales-filter-action,.sales-filter-submit{height:42px!important;min-height:42px!important;white-space:nowrap!important;padding-inline:14px!important}
.sales-list-panel .table-wrap{padding:0!important;overflow:auto!important}
.sales-summary{margin-bottom:10px!important}
.sales-summary .summary-card{min-height:88px!important}
.sales-order-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
@media(max-width:1250px){
  .sales-invoice-filter-bar{grid-template-columns:auto minmax(210px,1.4fr) minmax(160px,1fr) 125px 115px 145px auto}
  .sales-order-filter-bar{grid-template-columns:auto minmax(205px,1.3fr) minmax(150px,1fr) 135px 132px 132px auto}
  .sales-delivery-filter-bar{grid-template-columns:auto minmax(230px,1.5fr) 135px 132px 132px auto}
}
@media(max-width:1000px){
  .sales-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .sales-filter-search{grid-column:span 2}
  .sales-filter-action,.sales-filter-submit{width:100%!important}
}
@media(max-width:650px){.sales-filter-bar{grid-template-columns:1fr!important}.sales-filter-search{grid-column:auto}}



/* ========================================================================== */
/* V23.0.0.4 — hard runtime sales fix                                         */
/* ========================================================================== */
.sales-filter-date>.date-picker-proxy,.sales-date-field .date-picker-proxy{
  position:fixed!important;left:-10000px!important;top:-10000px!important;right:auto!important;
  width:1px!important;height:1px!important;min-width:1px!important;min-height:1px!important;
  max-width:1px!important;max-height:1px!important;opacity:0!important;pointer-events:none!important;
  border:0!important;padding:0!important;margin:0!important;overflow:hidden!important;
}
.sales-filter-date>.date-picker-button,.sales-date-field .date-picker-button{pointer-events:auto!important;cursor:pointer!important}

/* ========================================================================== */
/* V23.0.0.5 — Direct sales invoice retail UX / system currency / live lines */
/* ========================================================================== */
/* Header is intentionally a single desktop row: type + payment + customer(2) + warehouse + date. */
.sales-invoice-head-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important;align-items:end!important}
.sales-invoice-head-grid>.field{margin:0!important}
.sales-invoice-head-grid>.field.span-2{grid-column:span 2!important}
.sales-invoice-head-grid .date-entry{height:42px!important;min-height:42px!important}

/* Numeric sales cells are custom text controls (never native number inputs/spinners). */
.sales-lines-table .sales-number-input{
  -webkit-appearance:none!important;appearance:none!important;
  height:42px!important;min-height:42px!important;width:100%!important;
  border:1px solid #cbdcd3!important;border-radius:9px!important;
  background:#fff!important;color:#162d22!important;
  padding:0 9px!important;margin:0!important;
  font:600 12.5px Cairo,Tahoma,Arial,sans-serif!important;
  text-align:center!important;direction:ltr!important;font-variant-numeric:tabular-nums!important;
  outline:none!important;box-shadow:none!important;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease!important;
}
.sales-lines-table .sales-number-input:hover{border-color:#acc8b7!important}
.sales-lines-table .sales-number-input:focus{border-color:#66a879!important;box-shadow:0 0 0 3px rgba(58,139,84,.10)!important;background:#fcfffd!important}
.sales-lines-table .sales-number-input[readonly]{background:#f5f8f6!important;color:#596a61!important;cursor:default!important}
.sales-invoice-line .searchable-select-trigger,.sales-invoice-line .custom-select-trigger{
  border:1px solid #cbdcd3!important;border-radius:9px!important;background:#fff!important;box-shadow:none!important;
}
.sales-invoice-line .searchable-select-trigger:focus,.sales-invoice-line .custom-select-trigger:focus{
  border-color:#66a879!important;box-shadow:0 0 0 3px rgba(58,139,84,.10)!important;
}
/* Scanner-focused product field gets a subtle visual cue while its dropdown/search is open. */
.sales-invoice-line .searchable-select-combo.is-open>.searchable-select-trigger{border-color:#4c9b67!important;box-shadow:0 0 0 3px rgba(58,139,84,.11)!important}

@media(max-width:1050px){
  .sales-invoice-head-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .sales-invoice-head-grid>.field.span-2{grid-column:span 2!important}
}
@media(max-width:760px){
  .sales-invoice-head-grid{grid-template-columns:1fr!important}
  .sales-invoice-head-grid>.field.span-2{grid-column:1/-1!important}
}

/* ========================================================================== */
/* V23.0.0.6 — locked default warehouse + scanner-first retail line workflow */
/* ========================================================================== */
.sales-warehouse-readonly{
  height:42px;min-height:42px;width:100%;display:flex;align-items:center;gap:8px;
  border:1px solid #cbdcd3;border-radius:10px;background:#f5f8f6;color:#294236;
  padding:0 10px;overflow:hidden;cursor:not-allowed;
}
.sales-warehouse-readonly strong{font-size:12.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sales-warehouse-readonly small{margin-inline-start:auto;color:#78877f;font-size:9.5px;white-space:nowrap}
.sales-warehouse-lock{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:7px;background:#e7f1e9;color:#39724a;font-size:11px;flex:0 0 auto}
.sales-warehouse-hint{display:block;margin-top:4px!important;color:#748179!important;font-size:8.6px!important;line-height:1.45!important}
.sales-warehouse-readonly.server-invalid-field{border-color:#d94b43!important;box-shadow:0 0 0 3px rgba(217,75,67,.10)!important;background:#fff9f8!important}

/* Product is presented as a text/scanner field. The native/searchable select stays underneath
   only as the data/list engine. Programmatic focus does NOT open the dropdown; a real click does. */
.sales-product-scanner-combo{position:relative!important;width:100%!important;min-width:0!important;height:42px!important;min-height:42px!important}
.sales-product-scanner-combo>.searchable-select-trigger{
  position:absolute!important;inset:0!important;width:100%!important;height:42px!important;min-height:42px!important;
  opacity:0!important;pointer-events:none!important;z-index:1!important;margin:0!important;
}
.sales-product-scanner-combo>.si-product-scanner{
  position:relative!important;z-index:2!important;width:100%!important;height:42px!important;min-height:42px!important;
  border:1px solid #cbdcd3!important;border-radius:9px!important;background:#fff!important;color:#173126!important;
  padding:0 28px 0 9px!important;font:600 12px Cairo,Tahoma,Arial,sans-serif!important;text-align:right!important;direction:rtl!important;
  outline:none!important;box-shadow:none!important;cursor:text!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
.sales-product-scanner-combo>.si-product-scanner::placeholder{font-weight:500;color:#8c9891}
.sales-product-scanner-combo::after{content:'⌄';position:absolute;z-index:3;right:8px;top:50%;transform:translateY(-52%);font-size:12px;color:#607268;pointer-events:none}
.sales-product-scanner-combo>.si-product-scanner:hover{border-color:#acc8b7!important}
.sales-product-scanner-combo>.si-product-scanner:focus{border-color:#4c9b67!important;box-shadow:0 0 0 3px rgba(58,139,84,.10)!important;background:#fcfffd!important}
.sales-product-scanner-combo.is-open>.si-product-scanner{border-color:#4c9b67!important;box-shadow:0 0 0 3px rgba(58,139,84,.11)!important}
.sales-product-scanner-combo.is-disabled>.si-product-scanner{background:#f5f8f6!important;color:#66736c!important;cursor:default!important}


/* ========================================================================== */
/* V23.0.0.7 — sales invoice header alignment + action padding               */
/* ========================================================================== */
/* The locked warehouse is a single 42px field; no helper row below it. */
.sales-invoice-head-grid .sales-warehouse-locked{align-self:end!important}
.sales-invoice-head-grid .sales-warehouse-readonly{margin:0!important}
.sales-invoice-head-grid .sales-warehouse-hint{display:none!important}

/* Give the invoice command area breathing room instead of sticking to edges. */
.sales-invoice-actions{
  display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important;
  padding:14px 16px 18px!important;margin:0!important;
}
.sales-invoice-actions>.btn{
  min-height:42px!important;padding:0 18px!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
}
@media(max-width:700px){
  .sales-invoice-actions{padding:12px!important}
  .sales-invoice-actions>.btn{flex:1 1 auto!important}
}

/* ========================================================================== */
/* V24 POS & Retail Sales                                                     */
/* ========================================================================== */
.pos-page{display:flex;flex-direction:column;gap:12px;min-width:0}
.pos-heading{margin-bottom:0!important;align-items:center}
.pos-heading-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pos-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-inline-start:5px;border-radius:999px;background:#e7f1e9;color:#2f7b3b;font-size:10px;font-weight:800}
.pos-topbar{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(300px,1.5fr) auto auto;gap:10px;align-items:end;padding:12px!important;overflow:visible!important}
.pos-warehouse-box{height:42px;border:1px solid #cbdcd3;border-radius:10px;background:#f5faf6;display:flex;align-items:center;gap:7px;padding:0 10px;min-width:0;position:relative}
.pos-warehouse-box>span{font-size:9px;color:#718078;position:absolute;top:-18px;right:1px}
.pos-warehouse-box strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pos-warehouse-box small{margin-inline-start:auto;color:#708078;font-size:9px;white-space:nowrap}
.pos-warehouse-box i{font-style:normal;color:#3d8751;background:#e6f3e8;width:23px;height:23px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.pos-customer-field{margin:0!important;min-width:0}
.pos-customer-field>.searchable-select-combo{width:100%!important}
.pos-customer-field .searchable-select-trigger{height:42px!important;min-height:42px!important}
.pos-print-choice{height:42px;display:flex;align-items:center;gap:3px;border:1px solid #cbdcd3;border-radius:10px;padding:3px;background:#fff;position:relative}
.pos-print-choice>span{position:absolute;top:-18px;right:1px;font-size:9px;color:#718078}
.pos-segment{height:34px;border:0;border-radius:7px;background:transparent;padding:0 11px;font-family:inherit;font-size:10.5px;color:#5d6d64;cursor:pointer;white-space:nowrap}
.pos-segment.active{background:#e7f3e9;color:#267a38;font-weight:800}
.pos-clock{height:42px;min-width:130px;border:1px solid #cbdcd3;border-radius:10px;background:#fff;display:flex;align-items:center;justify-content:center;position:relative;padding:0 12px}
.pos-clock span{position:absolute;top:-18px;right:1px;font-size:9px;color:#718078}.pos-clock b{font-size:11.5px}
.pos-resume-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border:1px solid #c7dfca;border-radius:11px;background:#eef8ef}.pos-resume-banner>div{display:flex;align-items:center;gap:8px}.pos-resume-banner span{font-size:10px;color:#5d7463}.pos-resume-transient{transition:opacity .22s ease,transform .22s ease,max-height .22s ease,padding .22s ease,margin .22s ease;overflow:hidden}.pos-resume-transient.hide{opacity:0;transform:translateY(-5px);max-height:0;padding-top:0;padding-bottom:0;margin:0;border-width:0}.pos-resume-actions{display:flex!important;align-items:center;gap:6px}.pos-resume-actions .btn{height:32px!important;padding:0 10px!important;font-size:9px!important}.pos-resume-actions .icon-btn{width:32px;height:32px}
.pos-workspace{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;align-items:start}
.pos-cart-panel{padding:0!important;overflow:visible!important;min-width:0}
.pos-scan-zone{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;border-bottom:1px solid #e0e9e3;background:linear-gradient(180deg,#fbfefc,#f7fbf8);border-radius:14px 14px 0 0}
.pos-scan-icon{width:44px;height:44px;border-radius:11px;background:#e8f4ea;color:#2f833f;font-size:21px;display:flex;align-items:center;justify-content:center}
.pos-scan-input-wrap{position:relative;min-width:0}.pos-scan-input-wrap label{display:block;font-size:9.5px;color:#5d6d64;margin-bottom:4px}.pos-scan-input-wrap input{height:44px;width:100%;border:1.5px solid #9fc4a8;border-radius:11px;background:#fff;padding:0 14px;font:600 14px Cairo,Arial,sans-serif;color:#183624;outline:none;direction:rtl}.pos-scan-input-wrap input:focus{border-color:#36894b;box-shadow:0 0 0 4px rgba(54,137,75,.10)}
.pos-search-results{position:absolute;z-index:150;top:69px;right:0;left:0;background:#fff;border:1px solid #cadbd0;border-radius:11px;box-shadow:0 12px 28px rgba(27,63,39,.16);max-height:330px;overflow:auto;padding:5px}
.pos-search-item{width:100%;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(150px,.8fr);gap:10px;align-items:center;text-align:right;border:0;border-bottom:1px solid #edf2ee;background:#fff;padding:8px 9px;border-radius:7px;cursor:pointer;font-family:inherit}.pos-search-item:hover,.pos-search-item:focus{background:#eef8f0;outline:none}.pos-search-item>span{display:flex;flex-direction:column;gap:2px;min-width:0}.pos-search-item b{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pos-search-item small{font-size:8.5px;color:#738179}.pos-search-item>span:last-child{text-align:left}.pos-search-empty{padding:15px;text-align:center;color:#78857d;font-size:10px}
.pos-shortcut-hint{display:grid;grid-template-columns:auto auto;gap:3px 6px;align-items:center;color:#718078;font-size:8.5px}.pos-shortcut-hint kbd{font-family:Arial,sans-serif;border:1px solid #cad8cf;background:#fff;border-radius:5px;padding:2px 5px;color:#3d5e49;font-size:8px;box-shadow:0 1px 0 #d8e1db}
.pos-cart-table-wrap{min-height:350px;position:relative;overflow:auto!important}.pos-cart-table{table-layout:fixed;min-width:900px}.pos-cart-table th,.pos-cart-table td{text-align:center!important;vertical-align:middle!important;padding:8px 6px!important;font-size:10px!important}.pos-cart-table th:nth-child(1){width:42px}.pos-cart-table th:nth-child(2){width:27%}.pos-cart-table th:nth-child(3){width:105px}.pos-cart-table th:nth-child(4){width:80px}.pos-cart-table th:nth-child(5),.pos-cart-table th:nth-child(6),.pos-cart-table th:nth-child(7){width:88px}.pos-cart-table th:nth-child(8){width:70px}.pos-cart-table th:nth-child(9){width:95px}.pos-cart-table th:nth-child(10){width:48px}
.pos-product-cell{text-align:right!important}.pos-product-cell b{display:block;font-size:10.5px}.pos-product-cell small{display:block;color:#7a877f;font-size:8.3px;margin-top:2px}.pos-line-input{width:100%;height:36px;border:1px solid #c5d8cc;border-radius:8px;background:#fff;padding:0 6px;text-align:center;font:600 11px Cairo,Arial,sans-serif;outline:none;appearance:none;-webkit-appearance:none}.pos-line-input:focus{border-color:#4e9d62;box-shadow:0 0 0 3px rgba(58,139,84,.10)}.pos-line-input[readonly]{background:#f3f6f4;color:#69756e}.pos-stock{font-size:10px;font-weight:700;color:#39764a}.pos-stock.low{color:#bd3f38;background:#fff1f0;padding:3px 6px;border-radius:6px}
.pos-empty-cart{position:absolute;inset:95px 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#809087;pointer-events:none}.pos-empty-cart[hidden]{display:none!important}.pos-empty-cart b{font-size:15px;color:#617269}.pos-empty-cart span{font-size:9.5px}
.pos-summary-panel{padding:14px!important;position:sticky;top:74px}.pos-summary-title{display:flex;align-items:center;justify-content:space-between;padding-bottom:10px;margin-bottom:6px;border-bottom:1px solid #e1e9e3}.pos-summary-title b{font-size:13px}.pos-summary-title span{font-size:9px;color:#6f7f76}
.pos-total-row{display:flex;align-items:center;justify-content:space-between;padding:7px 2px;font-size:10px}.pos-total-row b{font-size:12px}.pos-total-row.discount b{color:#b54a42}.pos-grand-total{margin:8px -4px 12px;padding:12px;border-radius:12px;background:linear-gradient(135deg,#e8f6ea,#f1faf2);border:1px solid #c7e3cb;display:flex;flex-direction:column;gap:4px}.pos-grand-total span{font-size:10px;color:#4e6d56}.pos-grand-total strong{font-size:24px;color:#187330;direction:ltr;text-align:right;line-height:1.1}
.pos-payment-caption{font-size:10px;font-weight:800;margin:9px 0 6px;color:#4b6253}.pos-payment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.pos-pay-btn{min-height:58px;border:1px solid #cbdad0;border-radius:10px;background:#fff;display:grid;grid-template-columns:24px 1fr auto;gap:6px;align-items:center;padding:7px 8px;font-family:inherit;cursor:pointer;color:#2d4435}.pos-pay-btn:hover{border-color:#70a77c;background:#f8fcf9}.pos-pay-btn span{font-size:17px;color:#3f8650}.pos-pay-btn b{font-size:11px;text-align:right}.pos-pay-btn small{font-size:8px;color:#8a968f}.pos-pay-btn.multi{grid-column:1/-1;background:#f4f8f5}.pos-pay-btn.cash{border-color:#b8d8bf}.pos-pay-btn.card{border-color:#c9c8e9}.pos-pay-btn.credit{border-color:#ead3bb}
.pos-hold-main{width:100%;height:42px!important;margin-top:8px;display:flex!important;align-items:center;justify-content:center;gap:8px}.pos-hold-main span{font-size:8px;color:#78877e}.pos-safety-note{font-size:8.3px;line-height:1.6;color:#7a867f;margin-top:9px;text-align:center}
.pos-modal.show{display:flex!important}.pos-modal-card{width:min(620px,calc(100vw - 28px));padding:16px!important}.pos-modal-card.compact{width:min(520px,calc(100vw - 28px))}.pos-modal .modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.pos-modal .modal-header>div{display:flex;flex-direction:column;gap:3px}.pos-modal .modal-header b{font-size:15px}.pos-modal .modal-header span{font-size:9px;color:#758279}.pos-multi-total{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid #d2e1d7;background:#f5faf6;border-radius:10px;margin-bottom:10px}.pos-multi-total span{font-size:10px}.pos-multi-total b{font-size:18px;color:#26773b}.pos-multi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.pos-multi-grid .field{margin:0!important}.pos-multi-grid input{height:42px!important;text-align:center!important;font-size:12px!important}.pos-multi-grid label small{font-size:8px;font-weight:500;color:#819087;margin-inline-start:5px}.pos-multi-cash{padding:8px;border:1px solid #cfe1d4;border-radius:10px;background:#f7fbf8}.pos-multi-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.pos-multi-summary>div{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:9px;background:#f6f8f6;color:#53645a}.pos-multi-summary>div>b{font-size:12px}.pos-multi-balance{margin:0!important;background:#fff5ef!important;color:#9c5329!important}.pos-multi-balance b.ok{color:#26773b}.pos-multi-balance b.over{color:#c8433e}.pos-multi-note{margin-top:8px;padding:7px 9px;border-radius:8px;background:#f8faf8;color:#6f7d74;font-size:8.5px;line-height:1.7}.pos-modal .form-actions{padding:14px 0 0!important;margin:0!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:12px!important;flex-wrap:wrap!important}.pos-modal .form-actions button:disabled{opacity:.5;cursor:not-allowed}.pos-single-amount-field{margin:0!important}.pos-single-amount-field input{height:48px!important;text-align:center!important;font-size:18px!important;font-weight:800}.pos-single-pay-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.pos-single-pay-summary>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border-radius:9px;background:#f6f8f6;color:#53645a}.pos-single-pay-summary b{font-size:13px}.pos-single-pay-summary b.ok{color:#26773b}.pos-single-pay-summary b.over{color:#c8433e}.pos-single-pay-card .pos-multi-note{font-size:9px}
.pos-held-card{width:min(780px,calc(100vw - 28px));padding:16px!important;max-height:min(80vh,680px);overflow:auto}.pos-held-list{display:flex;flex-direction:column;gap:7px}.pos-held-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;border:1px solid #d8e4dc;border-radius:10px;padding:10px;background:#fff}.pos-held-item>div:first-child{display:flex;flex-direction:column;gap:3px}.pos-held-item>div:first-child b{font-size:11.5px}.pos-held-item>div:first-child span{font-size:8.5px;color:#748179}.pos-held-meta{display:flex;flex-direction:column;gap:2px;text-align:center}.pos-held-meta b{font-size:11px}.pos-held-meta span{font-size:8px;color:#79877e}.pos-held-actions{display:flex;gap:5px}.pos-held-actions .btn{height:36px!important;min-height:36px!important;padding-inline:10px!important}.danger-text{color:#b8443c!important;border-color:#efc7c4!important}
.pos-busy-overlay{position:fixed;inset:0;z-index:99999;background:rgba(17,35,24,.32);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(1px)}.pos-busy-overlay>div{background:#fff;border-radius:12px;padding:16px 20px;box-shadow:0 18px 50px rgba(0,0,0,.2);display:flex;align-items:center;gap:10px}.pos-busy-overlay b{font-size:11px}.pos-spinner{width:21px;height:21px;border:3px solid #d7e7da;border-top-color:#2e8a42;border-radius:50%;animation:posSpin .7s linear infinite}@keyframes posSpin{to{transform:rotate(360deg)}}
@media(max-width:1250px){.pos-workspace{grid-template-columns:1fr}.pos-summary-panel{position:static}.pos-topbar{grid-template-columns:repeat(2,minmax(0,1fr))}.pos-payment-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.pos-pay-btn.multi{grid-column:auto}.pos-summary-panel{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.pos-summary-title,.pos-payment-caption,.pos-payment-grid,.pos-hold-main,.pos-safety-note{grid-column:1/-1}.pos-grand-total{margin:0}}
@media(max-width:760px){.pos-topbar{grid-template-columns:1fr}.pos-scan-zone{grid-template-columns:38px 1fr}.pos-shortcut-hint{display:none}.pos-workspace{display:block}.pos-summary-panel{margin-top:10px;display:block}.pos-payment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pos-pay-btn.multi{grid-column:1/-1}.pos-multi-grid{grid-template-columns:1fr}.pos-held-item{grid-template-columns:1fr}.pos-held-actions{justify-content:flex-start}}


/* ========================================================================== */
/* V24.1.0.7 Unified invoice workspace + themed line scrollbars               */
/* POS / Sales Invoice / Supplier Invoice                                     */
/* ========================================================================== */
.theme-scrollbar{
  scrollbar-width:thin;
  scrollbar-color:#7fa98a #eef4ef;
  scrollbar-gutter:stable;
}
.theme-scrollbar::-webkit-scrollbar{width:9px;height:9px}
.theme-scrollbar::-webkit-scrollbar-track{background:#eef4ef;border-radius:999px}
.theme-scrollbar::-webkit-scrollbar-thumb{background:#8fb69a;border:2px solid #eef4ef;border-radius:999px;min-height:38px}
.theme-scrollbar::-webkit-scrollbar-thumb:hover{background:#5f9370}
.theme-scrollbar::-webkit-scrollbar-corner{background:#eef4ef}

.invoice-lines-scroll{
  position:relative;
  overflow:auto!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.invoice-lines-scroll>.data-table thead th{
  position:sticky;
  top:0;
  z-index:8;
  background:#f8faf7;
  box-shadow:0 1px 0 var(--border);
}

/* POS: line count never stretches the page; only the cart gets vertical scroll. */
.pos-cart-table-wrap.invoice-lines-scroll{
  height:clamp(310px,calc(100vh - 345px),640px);
  min-height:310px;
  max-height:640px;
}
.pos-cart-panel{min-height:0}
.pos-workspace{min-height:0}
.pos-summary-panel{align-self:start}

/* Standard entry invoices: header/totals/actions keep their size while lines scroll. */
.sales-lines-panel .invoice-lines-scroll{
  max-height:clamp(230px,calc(100vh - 500px),480px);
  min-height:180px;
}
.supplier-invoice-items-panel .invoice-lines-scroll{
  max-height:clamp(230px,calc(100vh - 535px),460px);
  min-height:180px;
}

/* Keep totals visually attached to the fixed invoice frame, not to the moving rows. */
.sales-totals,.supplier-invoice-totals{
  position:relative;
  z-index:9;
  background:#fff;
}

@media(max-width:1250px){
  .pos-cart-table-wrap.invoice-lines-scroll{height:clamp(290px,calc(100vh - 390px),540px);min-height:290px}
}
@media(max-width:760px){
  .pos-cart-table-wrap.invoice-lines-scroll,.sales-lines-panel .invoice-lines-scroll,.supplier-invoice-items-panel .invoice-lines-scroll{
    height:auto;
    max-height:50vh;
    min-height:220px;
  }
  .theme-scrollbar::-webkit-scrollbar{width:7px;height:7px}
}

/* V24.2 Sales Returns + Credit Notes */
.readonly-box{min-height:42px;display:flex;align-items:center;padding:0 12px;border:1px solid var(--border,#d9e3dc);border-radius:10px;background:#f7faf7;font-size:13px;font-weight:700;color:#24372c}
.sales-return-page .invoice-lines-scroll,.sales-lines-panel .invoice-lines-scroll{scrollbar-width:thin;scrollbar-color:#8dbb96 #eef5ef}
.sales-return-page .invoice-lines-scroll::-webkit-scrollbar,.sales-lines-panel .invoice-lines-scroll::-webkit-scrollbar{width:9px;height:9px}
.sales-return-page .invoice-lines-scroll::-webkit-scrollbar-track,.sales-lines-panel .invoice-lines-scroll::-webkit-scrollbar-track{background:#eef5ef;border-radius:10px}
.sales-return-page .invoice-lines-scroll::-webkit-scrollbar-thumb,.sales-lines-panel .invoice-lines-scroll::-webkit-scrollbar-thumb{background:#8dbb96;border:2px solid #eef5ef;border-radius:10px}
.sales-return-page .invoice-lines-scroll::-webkit-scrollbar-thumb:hover,.sales-lines-panel .invoice-lines-scroll::-webkit-scrollbar-thumb:hover{background:#5f9c6c}

/* ========================================================================== */
/* V24.2.0.4 — Unified return-document UI + project-wide smart Back          */
/* ========================================================================== */
.global-smart-back{
  height:40px!important;min-height:40px!important;padding:0 12px!important;border-radius:10px!important;
  display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;font-size:11.5px!important;
  flex:0 0 auto;
}
.global-smart-back[hidden]{display:none!important}
@media(max-width:700px){.global-smart-back{width:40px!important;min-width:40px!important;padding:0!important}.global-smart-back span{display:none}}

.document-source-picker{width:100%;max-width:none;padding:0!important;overflow:visible!important;margin-bottom:12px}
.document-source-picker>.section-title-row{margin:0;padding:12px 14px;border-bottom:1px solid #e6ede7}
.document-source-picker>.section-title-row b{font-size:13px}.document-source-picker>.section-title-row small{font-size:9.5px;color:var(--muted)}
.document-source-picker-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;padding:14px}
.document-source-picker-field{min-width:0;margin:0}.document-source-picker-field label{margin-bottom:5px;font-size:10.5px}
.document-source-picker-field .searchable-select-combo{width:100%;min-width:0}
.document-source-picker-field .searchable-select-trigger{height:42px!important;min-height:42px!important;border-radius:10px!important;font-size:13px!important}
.document-source-picker-actions{display:flex;align-items:center;gap:8px;direction:ltr}
.document-source-picker-actions .btn{height:42px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;padding:0 16px;white-space:nowrap}

.sales-return-main-panel{padding:0!important;overflow:visible!important;margin-bottom:10px!important}
.sales-return-main-panel>.section-title-row{margin:0;padding:12px 14px;border-bottom:1px solid #e6ede7}
.sales-return-head-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px 10px;padding:12px 14px 14px;align-items:end}
.sales-return-head-grid>.field{min-width:0;margin:0;gap:5px!important}
.sales-return-head-grid>.field label{font-size:10.5px!important;margin:0!important}
.sales-return-head-grid input,.sales-return-head-grid textarea,.sales-return-head-grid .readonly-box,
.sales-return-head-grid .custom-select-trigger,.sales-return-head-grid .searchable-select-trigger{height:42px!important;min-height:42px!important;font-size:12.5px!important;border-radius:10px!important}
.sales-return-head-grid textarea{padding:9px 10px!important;resize:vertical!important;overflow:auto!important}
.sales-return-head-grid .date-entry{height:42px!important;min-height:42px!important}
.sales-return-head-grid .date-entry>input[data-gregorian-date]{height:42px!important;min-height:42px!important;text-align:center!important;direction:ltr!important;padding-inline:38px 8px!important}
.sales-return-reason-field{grid-column:1/span 3!important}
.sales-return-notes-field{grid-column:4/span 3!important}
.sales-return-number-input{
  width:100%!important;height:42px!important;min-height:42px!important;border:1px solid #cbdcd3!important;border-radius:9px!important;
  background:#fff!important;color:#162d22!important;padding:0 8px!important;text-align:center!important;direction:ltr!important;
  font:600 12.5px Cairo,Tahoma,Arial,sans-serif!important;font-variant-numeric:tabular-nums!important;outline:none!important;appearance:none!important;-webkit-appearance:none!important;
}
.sales-return-number-input:hover{border-color:#acc8b7!important}
.sales-return-number-input:focus{border-color:#66a879!important;box-shadow:0 0 0 3px rgba(58,139,84,.10)!important}
.sales-return-number-input[readonly]{background:#f5f8f6!important;color:#596a61!important;cursor:default!important}
.sales-return-page .sales-lines-panel{margin-bottom:10px!important}
.sales-return-page .invoice-lines-scroll{max-height:clamp(250px,calc(100vh - 470px),500px)!important;min-height:210px!important}
.sales-return-page .data-table thead th{position:sticky;top:0;z-index:5;background:#f7faf7}

/* Return forms use the same information rule: reason and notes share one row. */
.supplier-return-header-grid .reason-field{grid-column:1/span 6!important}
.supplier-return-header-grid .notes-field{grid-column:7/span 6!important}
.supplier-return-header-grid .notes-field textarea{height:42px!important;min-height:42px!important}

@media(max-width:1050px){
  .sales-return-head-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sales-return-reason-field,.sales-return-notes-field{grid-column:auto!important}
  .document-source-picker-form{grid-template-columns:1fr}
  .document-source-picker-actions{justify-content:flex-start}
}
@media(max-width:760px){
  .sales-return-head-grid{grid-template-columns:1fr}
  .sales-return-reason-field,.sales-return-notes-field{grid-column:1/-1!important}
  .supplier-return-header-grid .reason-field,.supplier-return-header-grid .notes-field{grid-column:1/-1!important}
  .sales-return-page .invoice-lines-scroll{max-height:50vh!important;min-height:220px!important}
}

/* Guaranteed same-row composition for reason + notes in every return document. */
.return-reason-notes-row{grid-column:1/-1!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;align-items:end!important;min-width:0}
.return-reason-notes-row>.field{min-width:0!important;margin:0!important}
.sales-return-reason-field,.sales-return-notes-field,.supplier-return-header-grid .reason-field,.supplier-return-header-grid .notes-field{grid-column:auto!important}
.supplier-return-header-grid .supplier-return-reason-notes-row{grid-column:1/-1!important}
.return-reason-notes-row textarea{height:42px!important;min-height:42px!important}
@media(max-width:760px){.return-reason-notes-row{grid-template-columns:1fr!important}}


/* V24.2.0.5 — Required-field markers and Sales Return validation feedback. */
form label > em{color:#d9433c!important;font-style:normal!important;font-weight:900!important}
.sales-return-validation-summary:empty{display:none}
.sales-return-validation-summary:not(:empty){margin:10px 14px 0;padding:10px 12px;border:1px solid #efc4c0;border-radius:10px;background:#fff7f6;color:#b63f39;font-weight:700}
.sales-return-page .sales-return-reason-field.field-invalid input{border-color:#dc5148!important;background:#fff7f6!important;box-shadow:0 0 0 3px rgba(220,81,72,.14)!important}
.sales-return-page .sales-return-reason-field.field-invalid label{color:#b63f39!important}
.sales-return-page .sales-return-reason-field .field-error:empty{display:none}


/* ========================================================================== */
/* V24.2.0.6 — Comfortable sidebar padding + warehouse-name-only UI          */
/* ========================================================================== */
/* Main navigation must stay readable and never look clipped. The sidebar may
   scroll vertically; therefore we prefer comfortable item padding over
   squeezing labels to save a few pixels. */
.side-nav .nav-item,
.side-nav .nav-group-title{
  box-sizing:border-box;
  line-height:1.55!important;
}
.side-nav > .nav-item,
.side-nav .nav-group-title{
  min-height:42px!important;
  padding:9px 14px!important;
  margin:3px 2px!important;
}
.side-nav .nav-group{
  padding:4px!important;
  margin:3px 1px!important;
}
.side-nav .nav-group > .nav-group-items{
  padding:2px 0 5px!important;
}
.side-nav .nav-group .nav-group-items .nav-item{
  min-height:38px!important;
  margin:2px 5px!important;
  padding:8px 16px 8px 42px!important;
  line-height:1.55!important;
  overflow:visible!important;
}
.side-nav .nav-item > span,
.side-nav .nav-group-title .nav-group-label{
  min-width:0;
  line-height:1.55!important;
}
@media (min-width:1101px) and (max-width:1440px){
  .side-nav > .nav-item,.side-nav .nav-group-title{min-height:39px!important;padding:8px 11px!important}
  .side-nav .nav-group{padding:3px!important}
  .side-nav .nav-group .nav-group-items .nav-item{min-height:36px!important;margin:2px 4px!important;padding:7px 13px 7px 35px!important;font-size:11px!important}
}
@media (min-width:961px) and (max-width:1100px){
  .side-nav > .nav-item,.side-nav .nav-group-title{min-height:36px!important;padding:7px 9px!important}
  .side-nav .nav-group .nav-group-items .nav-item{min-height:34px!important;margin:2px 3px!important;padding:6px 11px 6px 31px!important;font-size:10.5px!important}
}

/* ========================================================================== */
/* V24.2.0.7 — global UI QA: legacy dates + unified document commands         */
/* ========================================================================== */
.bs-legacy-date-entry{width:100%;min-width:0;position:relative}
.bs-legacy-date-entry>.bs-upgraded-date{
  width:100%!important;height:42px!important;min-height:42px!important;
  text-align:center!important;direction:ltr!important;font-variant-numeric:tabular-nums;
  padding-inline:38px 9px!important;border:1px solid #cbdcd3!important;border-radius:9px!important;
  background:#fff!important;color:#20372c!important;font:500 12.5px Cairo,Tahoma,Arial,sans-serif!important;
  appearance:none!important;-webkit-appearance:none!important;box-shadow:none!important;outline:none!important;
}
.bs-legacy-date-entry>.bs-upgraded-date:focus{border-color:#75a95f!important;box-shadow:0 0 0 3px rgba(75,139,60,.10)!important}
.bs-legacy-date-entry>.date-picker-button{pointer-events:auto!important;cursor:pointer!important}

.document-command-panel{
  width:100%;margin:12px 0 0;padding:12px 14px;border:1px solid #dce7e0;border-radius:13px;
  background:#fff;box-shadow:0 8px 24px rgba(31,70,48,.045);display:flex;flex-direction:column;gap:10px;
}
.document-command-row{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-wrap:wrap;min-width:0}
.document-command-row>.btn,.document-command-inline>.btn{height:42px!important;min-height:42px!important;padding:0 15px!important;white-space:nowrap}
.document-command-inline{display:inline-flex!important;align-items:center!important;width:auto!important;max-width:none!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important}
.document-command-void{
  width:100%!important;max-width:none!important;margin:0!important;padding:10px!important;border:1px solid #f0d7d4!important;
  border-radius:11px!important;background:#fffafa!important;display:grid!important;grid-template-columns:minmax(240px,520px) auto!important;
  gap:9px!important;align-items:end!important;box-shadow:none!important;
}
.document-command-void>.field{margin:0!important;max-width:none!important}
.document-command-void>.btn{height:42px!important;min-height:42px!important;align-self:end!important}
.sales-document-command-panel{margin-bottom:12px}

/* Invoice-like document tables use one visual workspace across sales/purchase/warehouse screens. */
.invoice-lines-scroll.theme-scrollbar{max-height:clamp(270px,46vh,560px);overflow:auto!important;overscroll-behavior:contain;scrollbar-gutter:stable}
.invoice-lines-scroll.theme-scrollbar>.data-table thead th{position:sticky;top:0;z-index:4;background:#f7faf8}

@media(max-width:760px){
  .document-command-panel{padding:10px}
  .document-command-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .document-command-row>.btn,.document-command-inline,.document-command-inline>.btn{width:100%!important}
  .document-command-void{grid-template-columns:1fr!important}
  .document-command-void>.btn{width:100%!important}
}

/* Global action-row baseline for legacy forms. POS modals keep their scoped override. */
.form-actions:not(.pos-modal .form-actions){
  display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-wrap:wrap;
  width:100%;min-width:0;padding:12px 0 4px;margin:0;
}
.form-actions:not(.pos-modal .form-actions)>.btn,
.form-actions:not(.pos-modal .form-actions)>button,
.form-actions:not(.pos-modal .form-actions)>a{
  min-height:42px;display:inline-flex;align-items:center;justify-content:center;
}

/* ========================================================================== */
/* V24.3.0.0 — Sales numeric controls + warehouse picking pilot               */
/* ========================================================================== */
.sales-lines-table input.money-input,
.sales-lines-table input.sales-number-input,
.sales-delivery-table input.money-input,
.sales-delivery-table input.sales-number-input{
  -webkit-appearance:none!important;appearance:none!important;-moz-appearance:textfield!important;
  height:42px!important;min-height:42px!important;width:100%!important;
  border:1px solid #cbdcd3!important;border-radius:9px!important;background:#fff!important;color:#162d22!important;
  padding:0 9px!important;margin:0!important;font:600 12.5px Cairo,Tahoma,Arial,sans-serif!important;
  text-align:center!important;direction:ltr!important;font-variant-numeric:tabular-nums!important;outline:none!important;box-shadow:none!important;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease!important;
}
.sales-lines-table input.money-input:hover,.sales-delivery-table input.money-input:hover{border-color:#acc8b7!important}
.sales-lines-table input.money-input:focus,.sales-delivery-table input.money-input:focus{border-color:#66a879!important;box-shadow:0 0 0 3px rgba(58,139,84,.10)!important;background:#fcfffd!important}
.sales-lines-table input.money-input[readonly],.sales-delivery-table input.money-input[readonly]{background:#f5f8f6!important;color:#596a61!important;cursor:default!important}
.sales-lines-table input.money-input::-webkit-inner-spin-button,.sales-lines-table input.money-input::-webkit-outer-spin-button,
.sales-delivery-table input.money-input::-webkit-inner-spin-button,.sales-delivery-table input.money-input::-webkit-outer-spin-button{-webkit-appearance:none!important;margin:0!important}

.warehouse-picking-panel{margin-bottom:12px!important;overflow:visible!important}
.warehouse-picking-panel .section-title-row{padding:11px 13px!important}
.warehouse-picking-grid{display:block;padding:12px 14px 14px}
.warehouse-scan-field{margin:0!important;gap:5px!important}.warehouse-scan-field>label{font-size:10.5px!important}
.warehouse-picking-row{display:grid;grid-template-columns:minmax(420px,1.6fr) minmax(390px,1fr);gap:8px;align-items:center;width:100%;min-width:0}
.warehouse-scan-input{display:grid;grid-template-columns:36px minmax(0,1fr) 120px;align-items:center;height:42px;min-height:42px;border:1px solid #a9cab2;border-radius:9px;background:#fff;overflow:hidden;box-shadow:0 0 0 3px rgba(58,139,84,.04)}
.warehouse-scan-input>span{display:grid;place-items:center;height:100%;background:#eef7f0;color:#2f7e44;font-size:17px;border-inline-end:1px solid #d8e8dc}
.warehouse-scan-input>input{height:40px!important;min-height:40px!important;border:0!important;border-radius:0!important;outline:none!important;box-shadow:none!important;padding:0 12px!important;margin:0!important;font:600 13px Cairo,Tahoma,Arial,sans-serif!important;direction:ltr!important;text-align:left!important;background:#fff!important;-webkit-appearance:none!important;appearance:none!important}
.warehouse-scan-input>.btn{height:34px!important;min-height:34px!important;margin:3px!important;border-radius:7px!important;padding-inline:10px!important;white-space:nowrap}
.warehouse-scan-field>small{min-height:17px;font-size:9.5px;color:#6d7c73}.warehouse-scan-field>small.error{color:#c3453d;font-weight:700}
.warehouse-picking-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0}
.warehouse-picking-stats article{height:42px;min-height:42px;border:1px solid #cbdcd3;border-radius:9px;background:#fbfdfb;padding:0 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:center;overflow:hidden}
.warehouse-picking-stats span{font-size:8.7px;color:#77857d;white-space:nowrap}.warehouse-picking-stats b{font-size:10.7px;margin:0;color:#234d33;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sales-delivery-line.warehouse-scan-hit>td{animation:warehouseScanHit .7s ease}
@keyframes warehouseScanHit{0%{background:#dff4e4}100%{background:transparent}}
.warehouse-camera-modal[hidden]{display:none!important}.warehouse-camera-modal{position:fixed;inset:0;z-index:5000;background:rgba(17,36,27,.66);display:grid;place-items:center;padding:18px}
.warehouse-camera-card{width:min(620px,94vw);background:#fff;border-radius:16px;border:1px solid #d9e7dc;box-shadow:0 24px 70px rgba(0,0,0,.28);padding:12px}
.warehouse-camera-card .section-title-row{padding:3px 3px 10px!important}.warehouse-camera-card video{display:block;width:100%;max-height:62vh;object-fit:cover;background:#101814;border-radius:12px}.warehouse-camera-card>small{display:block;text-align:center;color:#6c7a72;font-size:10px;padding:9px 4px 2px}
@media(max-width:1100px){.warehouse-picking-row{grid-template-columns:1fr}.warehouse-picking-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.warehouse-picking-grid{padding:10px}.warehouse-picking-row{grid-template-columns:1fr}.warehouse-scan-input{grid-template-columns:34px minmax(0,1fr)}.warehouse-scan-input>.btn{grid-column:1/-1;width:100%!important;margin:6px 0 0!important}.warehouse-scan-input{height:auto;overflow:visible;border:0;background:transparent;box-shadow:none}.warehouse-scan-input>span,.warehouse-scan-input>input{border:1px solid #a9cab2!important}.warehouse-scan-input>span{border-radius:0 9px 9px 0}.warehouse-scan-input>input{border-radius:9px 0 0 9px!important}.warehouse-picking-stats{grid-template-columns:1fr}.warehouse-picking-stats article{height:42px}.warehouse-camera-card{padding:9px}}
.native-free-number-input{-webkit-appearance:none!important;appearance:none!important;-moz-appearance:textfield!important;direction:ltr!important;font-variant-numeric:tabular-nums!important}
.native-free-number-input::-webkit-inner-spin-button,.native-free-number-input::-webkit-outer-spin-button{-webkit-appearance:none!important;margin:0!important}


/* ========================================================================== */
/* V24.3.0.2 — Sales Order save + centered line controls + sidebar text QA    */
/* ========================================================================== */
/* Sales-order line rule: product stays naturally RTL/right aligned; all other
   editable values are visually centered and use the same 42px control rhythm. */
.sales-order-line td:not(:nth-child(2)){
  text-align:center!important;
  vertical-align:middle!important;
}
.sales-order-line td:nth-child(2){text-align:right!important}
.sales-order-line td:nth-child(2) .searchable-select-trigger,
.sales-order-line td:nth-child(2) .searchable-select-label{
  text-align:right!important;
}
.sales-order-line td:not(:nth-child(2)) input{
  text-align:center!important;
  direction:ltr!important;
  margin-inline:auto!important;
}
.sales-order-line td:nth-child(3) .searchable-select-trigger,
.sales-order-line td:nth-child(7) .searchable-select-trigger{
  position:relative!important;
  justify-content:center!important;
  text-align:center!important;
  padding-inline:30px!important;
}
.sales-order-line td:nth-child(3) .searchable-select-label,
.sales-order-line td:nth-child(7) .searchable-select-label{
  width:100%!important;
  text-align:center!important;
  direction:rtl!important;
}
.sales-order-line td:nth-child(3) .searchable-select-arrow,
.sales-order-line td:nth-child(7) .searchable-select-arrow{
  position:absolute!important;
  inset-inline-start:10px!important;
  margin:0!important;
}

/* Sidebar RTL padding fix: the child bullet/tree line lives on the RIGHT.
   Previous shorthand reserved space on the left, which let the bullet overlap
   long Arabic labels. Keep comfortable vertical padding and let the sidebar
   scroll instead of squeezing labels. */
.side-nav .nav-group .nav-group-items .nav-item{
  min-height:40px!important;
  padding:9px 42px 9px 12px!important;
  margin:3px 4px!important;
  align-items:flex-start!important;
  line-height:1.7!important;
  overflow:visible!important;
}
.side-nav .nav-group .nav-group-items .nav-item>span:first-child{
  flex:1 1 auto!important;
  min-width:0!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  line-height:1.7!important;
  overflow-wrap:break-word!important;
}
.side-nav .nav-group .nav-group-items .nav-item::before{
  top:18px!important;
  transform:none!important;
}
.side-nav .nav-group.expanded>.nav-group-items::after{
  right:21px!important;
}
@media (min-width:1101px) and (max-width:1440px){
  .side-nav .nav-group .nav-group-items .nav-item{
    min-height:38px!important;
    padding:8px 36px 8px 10px!important;
    margin:3px!important;
    font-size:11px!important;
  }
  .side-nav .nav-group .nav-group-items .nav-item::before{right:17px!important;top:16px!important}
  .side-nav .nav-group.expanded>.nav-group-items::after{right:18px!important}
}
@media (min-width:961px) and (max-width:1100px){
  .side-nav .nav-group .nav-group-items .nav-item{
    min-height:36px!important;
    padding:7px 32px 7px 9px!important;
    margin:2px 3px!important;
    font-size:10.5px!important;
  }
  .side-nav .nav-group .nav-group-items .nav-item::before{right:15px!important;top:15px!important}
  .side-nav .nav-group.expanded>.nav-group-items::after{right:16px!important}
}

/* V24.3.0.3 — Product-unit dependent sales pricing + warehouse picking unit consistency */


/* V24.3.0.4 — readable metadata separator; internal entity codes stay hidden from UI */
.ui-text-separator{display:inline-block;margin:0 7px;color:#9aaba1;font-weight:500}


/* ========================================================================== */
/* V24.3.0.6 — stock-aware sales orders + Cairo/alignment consistency         */
/* ========================================================================== */
.sales-heading,.sales-editor,.sales-main-panel,.sales-lines-panel,.sales-notes-panel,.sales-list-panel,
.sales-status-strip,.sales-document-command-panel,.warehouse-picking-panel,.sales-delivery-table,
.sales-lines-table,.sales-head-grid,.sales-delivery-head-grid{font-family:'Cairo',Tahoma,Arial,sans-serif!important}
.sales-lines-table input.money-input,.sales-lines-table input.sales-number-input,
.sales-delivery-table input.money-input,.sales-delivery-table input.sales-number-input,
.warehouse-scan-input>input{font-family:'Cairo',Tahoma,Arial,sans-serif!important}
.sales-lines-table{min-width:1160px}
.sales-lines-table th:nth-child(1){width:34px}.sales-lines-table th:nth-child(2){width:245px}.sales-lines-table th:nth-child(3){width:100px}
.sales-lines-table th:nth-child(4){width:82px}.sales-lines-table th:nth-child(5){width:85px}.sales-lines-table th:nth-child(6){width:95px}.sales-lines-table th:nth-child(7){width:85px}.sales-lines-table th:nth-child(8){width:78px}.sales-lines-table th:nth-child(9){width:128px}.sales-lines-table th:nth-child(10){width:42px}
.sales-lines-table .so-available-cell{text-align:center!important}.sales-lines-table .so-available{display:grid;place-items:center;min-height:34px;width:100%;font-weight:800;color:#28643a;text-align:center!important}
.sales-lines-table .so-qty.server-invalid-field{border-color:#dc5148!important;background:#fff7f6!important;box-shadow:0 0 0 3px rgba(220,81,72,.12)!important}
.warehouse-scan-input>input{text-align:center!important;direction:ltr!important}
.warehouse-scan-input>.btn{display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important}
.warehouse-picking-stats article{flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:1px!important;text-align:center!important}
.warehouse-picking-stats article span,.warehouse-picking-stats article b{width:100%;text-align:center!important}
.sales-delivery-table th,.sales-delivery-table td,.sales-delivery-table .latin-numbers,.sales-delivery-table .available-cell{font-family:'Cairo',Tahoma,Arial,sans-serif!important;text-align:center!important}
.sales-delivery-table .delivery-qty{display:block;margin-inline:auto!important;text-align:center!important}

.sales-delivery-table .available-cell.low{color:#bd3f38!important;background:#fff4f2!important;border-radius:7px;font-weight:900!important}
.sales-lines-table .so-available.low{color:#bd3f38!important;background:#fff4f2!important;border-radius:7px}


/* ========================================================================== */
/* V24.3.0.7 — Global action-button centering                                */
/* Every actionable button uses real flex centering. Navigation/tree items are
   intentionally excluded because their label alignment is part of navigation. */
button:not(.nav-item):not(.nav-group-title):not(.tree-node):not(.finance-tree-node),
input[type="submit"],input[type="button"],input[type="reset"],
a.btn,.btn,.mini-btn,.icon-btn,.crm-action-btn,.contract-action-btn,
.crm-print-button,.sales-filter-action,.sales-filter-submit,.statement-back-btn,
.service-category-action,.service-new-button,.service-print-button,
.quotation-print-btn,.quotation-contract-btn,.quotation-send-btn,.quotation-accept-btn,.quotation-reject-btn,
.pos-pay-btn,.pos-hold-main,.pos-remove,.field-add-btn,.permission-link-btn,.password-eye-btn,
.global-smart-back,.standalone-smart-back,.date-picker-button,.close-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  vertical-align:middle!important;
  line-height:1.2!important;
}
button:not(.nav-item):not(.nav-group-title):not(.tree-node):not(.finance-tree-node)>svg,
button:not(.nav-item):not(.nav-group-title):not(.tree-node):not(.finance-tree-node)>i,
button:not(.nav-item):not(.nav-group-title):not(.tree-node):not(.finance-tree-node)>span,
.btn>svg,.btn>i,.btn>span,.mini-btn>svg,.mini-btn>i,.mini-btn>span,
.crm-action-btn>svg,.crm-action-btn>i,.crm-action-btn>span{
  align-self:center;
}
/* keep full-width buttons full width while centering their contents */
button[style*="width:100%"],.btn[style*="width:100%"],.btn.full-width{display:flex!important}
/* Additional button-shaped action links discovered in the full View audit. */
.contract-payment-collect-btn,.contract-service-open-btn,.finance-create-choice,
.ledger-entry-link,.sync-due-btn,.text-action{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;vertical-align:middle!important;line-height:1.2!important
}

/* ========================================================================== */
/* V24.4.0.5 — free-text cancellation reasons + compact same-row action     */
/* Keep the project's existing .btn.danger visual style untouched.          */
/* RTL desktop layout: reason field grows; action stays at the far LEFT.     */
/* ========================================================================== */
.document-command-void{
  display:flex!important;
  flex-direction:row!important;
  direction:rtl!important;
  gap:12px!important;
  align-items:flex-end!important;
}
.document-command-void>.field{
  flex:1 1 auto!important;
  width:auto!important;min-width:0!important;max-width:none!important;
}
.document-command-void>.field>textarea,
.document-command-void>.field>input[type="text"]{
  width:100%!important;height:42px!important;min-height:42px!important;max-height:42px!important;resize:none!important;
  padding:0 12px!important;font:500 12.5px/1.45 'Cairo',sans-serif!important;
  text-align:right!important;direction:rtl!important;box-sizing:border-box!important;overflow:auto!important;
}
.document-command-void>.btn{
  flex:0 0 auto!important;
  width:auto!important;min-width:0!important;max-width:none!important;
  height:42px!important;min-height:42px!important;padding:0 16px!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;
  white-space:nowrap!important;
}
.sales-return-reason-field>textarea,
.sales-return-notes-field>textarea{
  width:100%!important;min-height:76px!important;resize:vertical!important;
  font:500 12.5px/1.7 'Cairo',sans-serif!important;text-align:right!important;direction:rtl!important;
}
.sales-return-page .sales-return-reason-field.field-invalid textarea{
  border-color:#dc5148!important;background:#fff7f6!important;box-shadow:0 0 0 3px rgba(220,81,72,.14)!important
}

@media(max-width:760px){
  .document-command-void{flex-direction:column!important;align-items:stretch!important}
  .document-command-void>.field{width:100%!important}
  .document-command-void>.btn{width:100%!important;min-width:0!important;max-width:none!important}
}

/* Project-wide free-text cancellation / return reason standard */
.document-reason-textarea{
  width:100%!important;min-height:76px!important;max-height:180px!important;resize:vertical!important;
  padding:10px 12px!important;font:500 12.5px/1.7 'Cairo',sans-serif!important;
  text-align:right!important;direction:rtl!important;box-sizing:border-box!important;
}
.document-reason-form{
  margin:10px 0 0!important;padding:12px 14px!important;border:1px solid #e2e8e3!important;
  border-radius:12px!important;background:#fbfdfb!important;display:grid!important;grid-template-columns:minmax(320px,760px)!important;
  justify-content:start!important;gap:8px!important;
}
.document-reason-form .document-reason-field{margin:0!important;width:100%!important}
@media(max-width:760px){.document-reason-form{grid-template-columns:1fr!important;padding:10px!important}}

/* V24.4.0.5 — global workflow counters */
.nav-group-title .nav-group-count-badge{margin-right:auto;margin-left:4px;min-width:21px;height:21px;padding:0 6px;border-radius:999px;background:#f0b429;color:#2d2514;display:inline-grid;place-items:center;font-size:10px;font-weight:900;line-height:1;box-shadow:0 0 0 2px rgba(255,255,255,.07)}
.nav-item.selected .nav-count-badge,.nav-item:hover .nav-count-badge{background:#fff;color:#b8322c;box-shadow:none}


/* ========================================================================== */
/* V24.4.0.6 — Sidebar fit + circular workflow counters                       */
/* ========================================================================== */
/* Keep the current visual language, but make the navigation reliably fit and
   let the sidebar itself own the vertical scrolling instead of clipping a
   long expanded group. */
.side-nav{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding-top:8px!important;
  padding-bottom:18px!important;
  scroll-padding-block:12px 24px;
  scrollbar-width:thin!important;
  scrollbar-color:rgba(255,255,255,.18) transparent!important;
}
.side-nav::-webkit-scrollbar{display:block!important;width:4px!important;height:4px!important}
.side-nav::-webkit-scrollbar-track{background:transparent!important}
.side-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.16)!important;border-radius:999px!important}
.side-nav:hover::-webkit-scrollbar-thumb{background:rgba(255,255,255,.27)!important}
.side-nav .nav-group{padding:3px!important;margin:2px 1px!important}
.side-nav > .nav-item,.side-nav .nav-group-title{min-height:39px!important;padding:7px 11px!important;margin:2px!important}
.side-nav .nav-group .nav-group-items .nav-item{
  min-height:34px!important;
  margin:1px 4px!important;
  padding:6px 13px 6px 36px!important;
  line-height:1.45!important;
}
/* The previous 360px cap clipped groups such as CRM after counters were added. */
.side-nav .nav-group.expanded > .nav-group-items{max-height:1000px!important;overflow:visible!important}
.sidebar-footer{margin-top:7px!important}

/* Equal width/height: true circles, smaller than the previous pills. */
.nav-count-badge,
.nav-group-title .nav-group-count-badge{
  box-sizing:border-box!important;
  width:20px!important;
  min-width:20px!important;
  max-width:20px!important;
  height:20px!important;
  min-height:20px!important;
  max-height:20px!important;
  padding:0!important;
  border-radius:50%!important;
  background:#fff!important;
  display:inline-grid!important;
  place-items:center!important;
  flex:0 0 20px!important;
  font-size:8.8px!important;
  font-weight:900!important;
  line-height:20px!important;
  font-variant-numeric:tabular-nums;
  box-shadow:0 0 0 1px rgba(255,255,255,.18),0 2px 7px rgba(0,0,0,.08)!important;
}
.nav-count-badge{color:#cf413a!important;margin-right:auto!important;margin-left:0!important}
.nav-group-title .nav-group-count-badge{color:#215b43!important;margin-right:auto!important;margin-left:3px!important}
.nav-item.selected .nav-count-badge,.nav-item:hover .nav-count-badge{background:#fff!important;color:#b8322c!important}

@media (min-width:1101px) and (max-width:1440px){
  .side-nav > .nav-item,.side-nav .nav-group-title{min-height:37px!important;padding:6px 9px!important}
  .side-nav .nav-group .nav-group-items .nav-item{min-height:32px!important;padding:5px 11px 5px 32px!important;font-size:10.8px!important}
}
@media (min-width:961px) and (max-width:1100px){
  .side-nav > .nav-item,.side-nav .nav-group-title{min-height:35px!important;padding:6px 8px!important}
  .side-nav .nav-group .nav-group-items .nav-item{min-height:30px!important;padding:5px 9px 5px 28px!important;font-size:10.2px!important}
  .nav-count-badge,.nav-group-title .nav-group-count-badge{width:18px!important;min-width:18px!important;max-width:18px!important;height:18px!important;min-height:18px!important;max-height:18px!important;flex-basis:18px!important;font-size:8px!important;line-height:18px!important}
}

/* V24.5.0.0 — document barcode lookup, aligned with the approved site design */
.document-barcode-lookup{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;padding:12px 14px;margin:0 0 12px;border:1px solid #e0e9e2;border-radius:12px;background:#fff;box-shadow:0 4px 14px rgba(20,60,36,.035)}
.document-barcode-lookup-copy{display:flex;align-items:center;gap:10px;min-width:0}.document-barcode-lookup-icon{width:38px;height:38px;border-radius:10px;background:#eef7ee;color:#126b3d;display:inline-flex;align-items:center;justify-content:center;font-size:19px;flex:0 0 auto}.document-barcode-lookup-copy b{display:block;font-size:12.5px;color:#1e3426}.document-barcode-lookup-copy small{display:block;margin-top:2px;color:#748078;font-size:10px;line-height:1.45}
.document-barcode-lookup-form{display:grid;grid-template-columns:minmax(220px,330px) auto;gap:8px;align-items:center;direction:rtl}.document-barcode-lookup-form input{height:42px!important;min-height:42px!important;border:1px solid #cbdcd3!important;border-radius:10px!important;background:#fff!important;padding:0 12px!important;font:600 12.5px 'Cairo',Tahoma,Arial,sans-serif!important;direction:ltr!important;text-align:left!important;outline:none!important;min-width:0}.document-barcode-lookup-form input:focus{border-color:#75a95f!important;box-shadow:0 0 0 3px rgba(75,139,60,.10)!important}.document-barcode-lookup-form .btn{height:42px!important;min-height:42px!important;padding:0 16px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;white-space:nowrap!important}
.document-barcode-inline{margin:0 16px 14px;padding:12px 0 0;border-top:1px solid #edf1ed}.document-barcode-inline .document-barcode-lookup{margin:0;border:0;box-shadow:none;padding:0;background:transparent}
@media(max-width:780px){.document-barcode-lookup{grid-template-columns:1fr}.document-barcode-lookup-form{grid-template-columns:1fr}.document-barcode-lookup-form input{width:100%!important}.document-barcode-lookup-form .btn{width:100%!important}}

/* V24.5.0.1 — document scanner feedback without changing normal Arabic search. */
.document-barcode-lookup-form input.barcode-scan-active,input[data-document-scan-search].barcode-scan-active{direction:ltr!important;text-align:left!important;font-variant-numeric:tabular-nums!important;letter-spacing:.25px!important;border-color:#5f9f65!important;box-shadow:0 0 0 3px rgba(45,138,52,.10)!important}


/* ========================================================================== */
/* V24.5.0.4 — Responsive collapsible sidebar + visible submenu indicators   */
/* ========================================================================== */
:root{
  --bs-sidebar-open-width:292px;
  --bs-sidebar-compact-width:74px;
}

/* Desktop: slightly wider so Arabic labels and child markers have breathing room. */
@media (min-width:1101px){
  .sidebar{
    width:var(--bs-sidebar-open-width)!important;
    padding:20px 14px 14px!important;
    transition:width .22s ease,padding .22s ease,transform .25s ease!important;
  }
  .main-area{
    width:calc(100% - var(--bs-sidebar-open-width))!important;
    margin-right:var(--bs-sidebar-open-width)!important;
    transition:width .22s ease,margin-right .22s ease!important;
  }
}

/* 1366px with 125% scaling commonly lands here. Keep desktop behavior but wider
   than the old 196px rail, which clipped long Arabic labels. */
@media (min-width:961px) and (max-width:1100px){
  :root{--bs-sidebar-open-width:224px;--bs-sidebar-compact-width:68px}
  .sidebar{
    width:var(--bs-sidebar-open-width)!important;
    padding:12px 8px 10px!important;
    transform:none!important;
    transition:width .22s ease,padding .22s ease!important;
  }
  .main-area{
    width:calc(100% - var(--bs-sidebar-open-width))!important;
    margin-right:var(--bs-sidebar-open-width)!important;
    transition:width .22s ease,margin-right .22s ease!important;
  }
}

/* The toggle is available on every application screen. */
.sidebar-toggle{
  display:inline-grid!important;
  place-items:center!important;
  flex:0 0 40px!important;
  font-size:18px!important;
  color:#215b43!important;
  transition:background .18s ease,border-color .18s ease,transform .18s ease!important;
}
.sidebar-toggle:hover{background:#f1f7f1!important;border-color:#c6d9c9!important}
.sidebar-toggle-icon{display:inline-block;line-height:1;transition:transform .22s ease}
body.sidebar-collapsed .sidebar-toggle-icon{transform:rotate(180deg)}

/* Child bullets/tree line: deliberately visible on the dark green sidebar. */
.side-nav .nav-group .nav-group-items .nav-item::before{
  width:7px!important;
  height:7px!important;
  right:18px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  background:#d8f4c9!important;
  border:1px solid rgba(255,255,255,.72)!important;
  box-shadow:0 0 0 2px rgba(216,244,201,.08)!important;
  z-index:2!important;
}
.side-nav .nav-group .nav-group-items .nav-item:hover::before,
.side-nav .nav-group .nav-group-items .nav-item.selected::before{
  background:#fff!important;
  border-color:#fff!important;
  box-shadow:0 0 0 3px rgba(185,236,152,.18)!important;
}
.side-nav .nav-group.expanded>.nav-group-items::after{
  right:21px!important;
  width:1px!important;
  background:linear-gradient(180deg,rgba(216,244,201,.46),rgba(216,244,201,.10))!important;
}
.side-nav .nav-group .nav-group-items .nav-item{
  padding-right:39px!important;
  padding-left:10px!important;
}

/* Desktop compact rail. The page expands instead of leaving unused space. */
@media (min-width:961px){
  body.sidebar-collapsed .sidebar{
    width:var(--bs-sidebar-compact-width)!important;
    padding-right:7px!important;
    padding-left:7px!important;
  }
  body.sidebar-collapsed .main-area{
    width:calc(100% - var(--bs-sidebar-compact-width))!important;
    margin-right:var(--bs-sidebar-compact-width)!important;
  }
  body.sidebar-collapsed .sidebar .brand{
    justify-content:center!important;
    padding:3px 0 12px!important;
    gap:0!important;
  }
  body.sidebar-collapsed .sidebar .brand-mark{
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    border-radius:12px!important;
    font-size:23px!important;
  }
  body.sidebar-collapsed .sidebar .brand>div:last-child,
  body.sidebar-collapsed .sidebar .nav-group-label,
  body.sidebar-collapsed .sidebar .nav-chevron,
  body.sidebar-collapsed .sidebar .nav-group-count-badge,
  body.sidebar-collapsed .sidebar .nav-count-badge,
  body.sidebar-collapsed .sidebar .nav-item>span:not(.nav-symbol),
  body.sidebar-collapsed .sidebar .nav-item>small,
  body.sidebar-collapsed .sidebar .sidebar-footer>div:last-child{
    display:none!important;
  }
  body.sidebar-collapsed .sidebar .side-nav{
    padding-top:10px!important;
    overflow-x:hidden!important;
  }
  body.sidebar-collapsed .sidebar .nav-group{
    padding:2px!important;
    margin:3px 0!important;
    border-color:transparent!important;
  }
  body.sidebar-collapsed .sidebar .nav-group-title,
  body.sidebar-collapsed .sidebar .side-nav>.nav-item{
    width:100%!important;
    min-width:0!important;
    min-height:44px!important;
    padding:7px!important;
    margin:2px 0!important;
    justify-content:center!important;
    gap:0!important;
  }
  body.sidebar-collapsed .sidebar .nav-symbol{
    width:30px!important;
    min-width:30px!important;
    font-size:18px!important;
    text-align:center!important;
  }
  body.sidebar-collapsed .sidebar .nav-group-items{
    display:none!important;
    max-height:0!important;
    opacity:0!important;
    pointer-events:none!important;
  }
  body.sidebar-collapsed .sidebar .sidebar-footer{
    min-height:46px!important;
    padding:10px!important;
    justify-content:center!important;
    border-radius:12px!important;
  }
  body.sidebar-collapsed .sidebar .status-dot{margin:0!important}
}

/* Mobile/tablet: the same button controls a real drawer, not the desktop rail. */
.sidebar-backdrop{display:none;border:0;padding:0;margin:0;background:transparent}
@media (max-width:960px){
  :root{--bs-sidebar-open-width:min(300px,88vw)}
  body{overflow-x:hidden}
  body.sidebar-collapsed .sidebar{width:var(--bs-sidebar-open-width)!important}
  .sidebar{
    width:var(--bs-sidebar-open-width)!important;
    max-width:88vw!important;
    padding:16px 11px 12px!important;
    transform:translateX(105%)!important;
    transition:transform .25s ease!important;
    box-shadow:-16px 0 42px rgba(0,35,23,.28)!important;
  }
  .sidebar.open{transform:translateX(0)!important}
  .main-area,
  body.sidebar-collapsed .main-area{width:100%!important;margin-right:0!important}
  .sidebar-toggle{display:inline-grid!important;flex-basis:38px!important;width:38px!important;height:38px!important}
  .sidebar-backdrop{
    display:block!important;
    position:fixed!important;
    inset:0!important;
    z-index:45!important;
    background:rgba(3,28,20,.38)!important;
    backdrop-filter:blur(1.5px)!important;
    opacity:0!important;
    pointer-events:none!important;
    transition:opacity .2s ease!important;
  }
  body.sidebar-drawer-open .sidebar-backdrop{opacity:1!important;pointer-events:auto!important}
  body.sidebar-drawer-open{overflow:hidden!important}
  .side-nav .nav-group .nav-group-items .nav-item{
    padding-right:38px!important;
    padding-left:9px!important;
  }
  .side-nav .nav-group .nav-group-items .nav-item::before{right:17px!important;width:6px!important;height:6px!important}
  .side-nav .nav-group.expanded>.nav-group-items::after{right:20px!important}
}

@media (max-width:520px){
  :root{--bs-sidebar-open-width:min(292px,91vw)}
  .sidebar{max-width:91vw!important;padding:13px 9px 10px!important}
  .brand strong{font-size:13px!important}
  .brand span{font-size:9px!important}
  .side-nav .nav-group-title,.side-nav>.nav-item{font-size:11.5px!important}
  .side-nav .nav-group .nav-group-items .nav-item{font-size:10.8px!important;line-height:1.55!important}
}

@media print{
  .sidebar-toggle,.sidebar-backdrop{display:none!important}
}

/* ========================================================================== */
/* V24.6.0.0 — POS Cashier Shift, Close Report & Payment Reconciliation       */
/* ========================================================================== */
.shift-cutoff-chip{display:flex;align-items:center;gap:9px;padding:9px 13px;border:1px solid #f1d6a4;background:#fff8e8;border-radius:12px;color:#8b641c;font-size:11px}.shift-cutoff-chip b{font-size:16px;color:#6f4d10}
.shift-open-panel{max-width:980px;margin-inline:auto}.shift-open-form{padding-bottom:0}.shift-open-grid{padding-top:22px}.shift-money-input{position:relative}.shift-money-input input{padding-left:50px!important}.shift-money-input>span{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:11px;font-weight:800;color:var(--green-700);pointer-events:none}.shift-open-rule{align-self:end;min-height:78px;border:1px solid #d9ead6;background:#f6fbf4;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;justify-content:center;gap:5px}.shift-open-rule b{font-size:11px;color:var(--green-800)}.shift-open-rule span,.shift-lock-note{font-size:10px;line-height:1.7;color:#66746a}.shift-open-footer{gap:16px}
.shift-summary-grid,.shift-financial-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.pill.amber{background:#fff2d8;color:#9a6413}.shift-filter-bar{flex-wrap:wrap}.shift-filter-fields{flex-wrap:wrap}.shift-date-filter{height:42px;display:flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:11px;background:#fff;padding:0 10px}.shift-date-filter span{font-size:10px;color:var(--muted)}.shift-date-filter input{border:0;outline:0;background:transparent;min-width:130px;font-size:11px}.shift-list-table{min-width:1420px}.shift-auto-flag,.shift-close-mode,.shift-cell-note{display:block;font-size:8.5px;color:#a56b0f;margin-top:3px;white-space:nowrap}.shift-close-mode{color:var(--muted)}.shift-variance{font-weight:800}.shift-variance.short,.shift-diff.short{color:#c8453d}.shift-variance.over,.shift-diff.over{color:#1e7c43}
.shift-reconcile-heading .code{font-size:15px;margin-right:7px}.shift-meta-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}.shift-meta-card{background:#fff;border:1px solid var(--border);border-radius:13px;padding:11px 13px;min-width:0}.shift-meta-card>span{display:block;color:var(--muted);font-size:9px;margin-bottom:5px}.shift-meta-card>b{display:block;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shift-meta-card small{margin-top:4px}.shift-financial-summary{margin-bottom:14px}.shift-close-panel,.shift-reconcile-panel,.shift-invoices-panel{margin-bottom:14px}.shift-close-form .form-grid{padding-bottom:12px}.shift-approved-seal{display:inline-flex;align-items:center;gap:6px;border:1px solid #b7d8b2;background:#edf8ea;color:#287137;border-radius:11px;padding:8px 13px;font-size:11px;font-weight:800}.shift-recon-table{min-width:1180px}.shift-recon-table th,.shift-recon-table td{text-align:center}.shift-recon-table th:first-child,.shift-recon-table td:first-child,.shift-recon-table th:last-child,.shift-recon-table td:last-child{text-align:right}.shift-actual-input,.shift-reason-input{height:36px;border:1px solid #dfe6dd;border-radius:8px;padding:6px 8px;background:#fff;outline:none;font-size:11px}.shift-actual-input{width:115px}.shift-reason-input{min-width:190px;width:100%}.shift-actual-input:focus,.shift-reason-input:focus{border-color:#75a95f;box-shadow:0 0 0 3px rgba(75,139,60,.08)}.shift-reason-input.needs-reason{border-color:#dc5148;background:#fff7f6}.shift-diff{font-weight:900}.shift-diff.matched{color:#607064}.shift-variance-pill.matched{background:#e8f5e7;color:#2d7935}.shift-variance-pill.short{background:#fdebea;color:#c64e46}.shift-variance-pill.over{background:#e9f7ee;color:#1e7c43}.shift-diff.pending{color:#9a7b2f}.shift-variance-pill.pending{background:#fff5d8;color:#8a6817}.shift-not-counted{font-size:9px;color:var(--muted);white-space:nowrap}.shift-recon-footer-grid{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(360px,1.3fr);gap:14px;padding:15px 20px;border-top:1px solid var(--border);background:#fbfcfa}.shift-accountant-notes textarea{min-height:62px}.shift-reconcile-actions{gap:16px}.shift-reconcile-actions>span{font-size:10px;color:var(--muted)}.shift-locked-text{font-size:9px;color:var(--muted);font-weight:700}.shift-notes-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.shift-note-card{padding:15px 18px}.shift-note-card>b{font-size:11px;color:var(--green-800)}.shift-note-card>p{font-size:10.5px;color:#59665e;line-height:1.8;margin:6px 0 0;white-space:pre-wrap}
.shift-reclass-panel{max-width:980px;margin-inline:auto}.shift-invoice-total{text-align:left}.shift-invoice-total span,.shift-invoice-total b{display:block}.shift-invoice-total span{font-size:9px;color:var(--muted)}.shift-invoice-total b{font-size:16px;color:var(--green-800);margin-top:2px}.shift-reclass-warning{display:flex;gap:10px;align-items:flex-start;margin:14px 18px 0;padding:11px 13px;border:1px solid #dce9f7;border-radius:11px;background:#f5f9ff}.shift-reclass-warning b{font-size:10px;color:#2f69b3;white-space:nowrap}.shift-reclass-warning span{font-size:9.5px;line-height:1.8;color:#596b7d}.shift-reclass-grid{padding-top:16px}
.pos-shift-chip{display:flex;align-items:center;gap:8px;border:1px solid #d7e7d4;background:#f4faf2;border-radius:11px;padding:7px 10px;min-height:40px}.pos-shift-chip>span{font-size:9px;color:#6a796e}.pos-shift-chip>b{font-size:11px;color:var(--green-800)}.pos-shift-chip>small{font-size:8.5px;color:var(--muted);white-space:nowrap}.pos-shift-chip a{font-size:9px;font-weight:800;color:var(--green-700);border-right:1px solid #d7e7d4;padding-right:8px}.pos-heading-actions{flex-wrap:wrap}
@media(max-width:1180px){.shift-meta-grid{grid-template-columns:repeat(3,1fr)}.shift-recon-footer-grid{grid-template-columns:1fr}.shift-summary-grid,.shift-financial-summary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.shift-meta-grid,.shift-summary-grid,.shift-financial-summary,.shift-notes-grid{grid-template-columns:1fr}.shift-open-footer,.shift-reconcile-actions{align-items:stretch;flex-direction:column}.shift-reconcile-actions .toolbar-actions{width:100%;flex-direction:column}.shift-reconcile-actions .btn{width:100%}.shift-filter-bar{align-items:stretch}.shift-filter-fields{width:100%}.shift-date-filter{flex:1;min-width:170px}}
@media print{.sidebar,.topbar,.page-heading .toolbar-actions,.shift-filter-bar,.shift-reconcile-actions,.shift-close-panel,.shift-invoices-panel .actions-cell{display:none!important}.main-area{width:100%!important;margin:0!important}.content{padding:0!important}.panel,.summary-card,.shift-meta-card{box-shadow:none!important}.shift-recon-table{min-width:0!important;font-size:9px}.shift-recon-table th,.shift-recon-table td{padding:7px 5px!important}.shift-actual-input,.shift-reason-input{border:0!important;padding:0!important}.shift-financial-summary{grid-template-columns:repeat(3,1fr)!important}}
.shift-current-payments{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 18px 0}.shift-current-payments>span{font-size:9px;color:var(--muted);font-weight:800}.shift-current-payments>div{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--border);border-radius:10px;background:#fbfcfa}.shift-current-payments b{font-size:9.5px}.shift-current-payments strong{font-size:11px;color:var(--green-800)}


/* V24.6.0.1 — Shift opening is user-bound; report filters stay on one row. */
.shift-current-user-strip{
    display:grid;grid-template-columns:150px minmax(220px,1.4fr) minmax(180px,1fr) minmax(210px,1.15fr);
    gap:10px;padding:14px 20px;border-bottom:1px solid var(--border);background:#fbfcfa
}
.shift-current-user-strip>div{min-width:0;border:1px solid #dce7df;border-radius:11px;background:#fff;padding:9px 11px}
.shift-current-user-strip span{display:block;font-size:9.5px;color:var(--muted);margin-bottom:4px}
.shift-current-user-strip b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.shift-current-user-strip .shift-user-lock{background:#f2f8ef;border-color:#d2e4ce}
.shift-current-user-strip .shift-user-lock b{color:#2c7237}
.shift-filter-bar{display:block!important;padding:16px 20px!important}
.shift-filter-fields{
    display:grid!important;
    grid-template-columns:minmax(250px,1.35fr) minmax(180px,.8fr) minmax(180px,.8fr) auto;
    gap:10px;align-items:end;width:100%;flex-wrap:nowrap!important
}
.shift-filter-fields .field{min-width:0;margin:0}
.shift-filter-fields .field>label{display:block;margin:0 0 5px;font-size:10.5px;font-weight:700;color:#596a60}
.shift-filter-fields .custom-select,.shift-filter-fields .custom-select-trigger,
.shift-filter-fields select,.shift-filter-fields input[type="date"]{height:42px;min-height:42px}
.shift-filter-fields input[type="date"]{
    box-sizing:border-box;width:100%;border:1px solid #cbdcd3;border-radius:10px;background:#fff;color:#20372c;
    padding:0 11px;font-family:'Cairo',Tahoma,Arial,sans-serif;font-size:13px;font-weight:500;direction:ltr;text-align:center;outline:none
}
.shift-filter-fields input[type="date"]:focus{border-color:#75a95f;box-shadow:0 0 0 3px rgba(75,139,60,.10)}
.shift-date-filter{height:auto!important;display:block!important;border:0!important;border-radius:0!important;background:transparent!important;padding:0!important}
.shift-filter-actions{height:42px;display:flex;gap:8px;align-items:stretch;white-space:nowrap}
.shift-filter-actions .btn{height:42px;min-width:92px}
@media(max-width:980px){
    .shift-filter-fields{grid-template-columns:1fr 1fr!important}
    .shift-filter-actions{grid-column:1/-1}
    .shift-current-user-strip{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
    .shift-filter-fields,.shift-current-user-strip{grid-template-columns:1fr!important}
    .shift-filter-actions{grid-column:auto;flex-direction:column;height:auto}
    .shift-filter-actions .btn{width:100%}
}

/* V24.6.0.2 Authentication */
.support-session-banner{position:relative;z-index:1000;min-height:48px;background:#fff4d8;border-bottom:1px solid #e7c875;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:7px 18px;font-size:13px;color:#654b00}.support-session-banner form{margin:0}.support-session-banner .btn{height:32px;padding:4px 12px}.topbar-logout-form{margin:0;display:inline-flex}.user-chip{text-decoration:none;color:inherit}.user-chip:hover{background:var(--surface-soft,#f6faf8)}


/* V24.6.0.2 — Compact POS shift opening popup; default cashbox is fixed. */
.shift-open-modal-page{position:fixed;inset:0;z-index:1500;display:grid;place-items:center;padding:28px;direction:rtl}
.shift-open-modal-backdrop{position:absolute;inset:0;background:rgba(24,44,34,.24);backdrop-filter:blur(2px)}
.shift-open-modal-card{position:relative;z-index:1;width:min(900px,calc(100vw - 40px));max-height:calc(100vh - 40px);overflow:auto;background:#fff;border:1px solid #dce7df;border-radius:18px;box-shadow:0 24px 70px rgba(20,55,35,.20)}
.shift-open-modal-head{height:62px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#fff,#fbfdfb)}
.shift-open-modal-head h1{margin:0;font-size:18px;line-height:1.2;color:#20372c}
.shift-open-modal-close{display:grid;place-items:center;width:34px;height:34px;border:1px solid #d9e4dc;border-radius:10px;background:#fff;color:#6a796e;font-size:23px;line-height:1;text-decoration:none;transition:.15s ease}
.shift-open-modal-close:hover{border-color:#b8cdbc;background:#f7faf7;color:#23452f}
.shift-open-modal-form{margin:0}
.shift-current-user-strip-modal{padding:14px 18px;background:#f8fbf8;border-bottom:1px solid var(--border);grid-template-columns:130px minmax(220px,1.35fr) minmax(180px,1fr) minmax(170px,.9fr)}
.shift-current-user-strip-modal>div{min-height:58px;padding:9px 11px;display:flex;flex-direction:column;justify-content:center}
.shift-open-modal-body{padding:18px 20px 8px}
.shift-open-modal-row{display:grid;gap:14px;align-items:end}.shift-open-modal-row.two-cols{grid-template-columns:1.25fr .75fr}
.shift-open-modal-body .field{margin:0 0 14px}.shift-open-modal-body .field>label{display:block;margin:0 0 6px;font-size:10.5px;font-weight:800;color:#51645a}
.shift-readonly-control{height:42px;display:flex;align-items:center;gap:9px;border:1px solid #d4e2d7;border-radius:10px;background:#f7faf7;padding:0 11px;color:#20372c}
.shift-readonly-control .shift-readonly-icon{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#eaf4e7;color:#2e7338;font-size:12px;flex:0 0 auto}
.shift-readonly-control b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shift-readonly-control em{margin-inline-start:auto;font-style:normal;font-size:9px;font-weight:800;color:#6f8175;background:#edf3ee;border-radius:999px;padding:3px 8px}
.shift-readonly-control.missing{border-color:#e7c3c0;background:#fff8f7;color:#a84942}.shift-readonly-control.missing .shift-readonly-icon{background:#fdeceb;color:#b94b45}
.shift-modal-money-input input{height:42px!important;border-radius:10px!important}.shift-open-notes-field textarea{min-height:78px!important;resize:vertical}
.shift-open-validation:empty{display:none}.shift-open-validation:not(:empty){margin:14px 18px 0;padding:10px 12px;border:1px solid #edc4c1;border-radius:10px;background:#fff7f6;color:#a74740;font-size:10.5px}
.shift-open-modal-footer{display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:14px 20px 18px;border-top:1px solid var(--border);background:#fbfcfa}
.shift-open-modal-footer .btn{min-width:118px;height:40px}
@media(max-width:780px){.shift-open-modal-page{padding:12px}.shift-open-modal-card{width:100%;max-height:calc(100vh - 24px)}.shift-current-user-strip-modal{grid-template-columns:1fr 1fr}.shift-open-modal-row.two-cols{grid-template-columns:1fr}.shift-open-modal-head{height:56px}.shift-open-modal-body{padding:14px 14px 4px}.shift-open-modal-footer{padding:12px 14px 14px}}
@media(max-width:520px){.shift-current-user-strip-modal{grid-template-columns:1fr}.shift-open-modal-footer{flex-direction:column-reverse}.shift-open-modal-footer .btn{width:100%}}

/* V24.6.0.3 - simple authenticated landing page */
.home-welcome-panel{min-height:220px;display:flex;align-items:center;justify-content:center}
.compact-empty-state{gap:8px;text-align:center}
.compact-empty-state strong{font-size:20px;color:#17352a}
.compact-empty-state span{font-size:13px;color:#77837e}

/* ========================================================================== */
/* V24.6.0.4 — Accountant shift modal + user-first list                       */
/* ========================================================================== */
.shift-accountant-list-table{min-width:1180px}
.shift-accountant-user-row{cursor:pointer;transition:background .14s ease}
.shift-accountant-user-row:hover{background:#f7fbf6}
.shift-user-link{border:0;background:transparent;padding:0;color:var(--green-700);font:inherit;font-weight:800;cursor:pointer;direction:ltr;unicode-bidi:isolate}
.shift-user-link:hover{text-decoration:underline}
.shift-accountant-modal{z-index:1700}
.shift-accountant-modal-card{width:min(1120px,95vw)!important;max-height:92vh!important;overflow:hidden!important;border-radius:18px!important}
.shift-accountant-modal-card>#shiftReconcileModalBody,
.shift-accountant-modal-card>#dailyShiftDetailsBody{
  height:min(860px,92vh);
  max-height:92vh;
  min-height:0;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
  background:#fff;
}
.shift-accountant-modal-content{direction:rtl}
.shift-accountant-modal-head{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--border);background:rgba(255,255,255,.97);backdrop-filter:blur(8px)}
.shift-accountant-user-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.shift-accountant-user-line>b{font-size:15px;color:#20372c}.shift-accountant-user-line>span:not(.pill){font-size:10px;color:var(--muted)}
.shift-accountant-modal-head small{display:block;margin-top:5px;font-size:9.5px;color:var(--muted)}
.shift-accountant-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px 18px;background:#f8fbf8;border-bottom:1px solid var(--border)}
.shift-accountant-kpis>div{border:1px solid #dce8de;border-radius:11px;background:#fff;padding:10px 12px;min-width:0}.shift-accountant-kpis span{display:block;font-size:9px;color:var(--muted);margin-bottom:4px}.shift-accountant-kpis b{font-size:13px;color:#20372c}
.shift-modal-state-note{margin:14px 18px 0;padding:10px 12px;border:1px solid #ead8ae;border-radius:10px;background:#fff9ea;color:#805f1d;font-size:10px}
.shift-modal-payment-wrap,.shift-modal-invoice-wrap{margin:14px 18px 0;border:1px solid var(--border);border-radius:12px;overflow:auto}
.shift-modal-payment-table{min-width:900px}.shift-modal-payment-table th,.shift-modal-payment-table td{text-align:center}.shift-modal-payment-table td:first-child,.shift-modal-payment-table th:first-child{text-align:right}.shift-modal-payment-table td:first-child small{display:block;font-size:8px;color:var(--muted);margin-top:2px}
.shift-modal-actual,.shift-modal-reason{height:35px;border:1px solid #dfe6dd;border-radius:8px;padding:5px 8px;background:#fff;outline:none;font-size:10.5px}.shift-modal-actual{width:110px}.shift-modal-reason{width:100%;min-width:165px}.shift-modal-actual:focus,.shift-modal-reason:focus{border-color:#75a95f;box-shadow:0 0 0 3px rgba(75,139,60,.08)}.shift-modal-reason.needs-reason{border-color:#dc5148;background:#fff7f6}
.shift-modal-diff{font-weight:900}.shift-modal-diff.short{color:#c8453d}.shift-modal-diff.over{color:#1e7c43}.shift-modal-diff.matched{color:#607064}.shift-modal-variance.short{background:#fdebea;color:#c64e46}.shift-modal-variance.over{background:#e9f7ee;color:#1e7c43}.shift-modal-variance.matched{background:#e8f5e7;color:#2d7935}
.shift-modal-accountant-row{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(340px,1.2fr);gap:12px;padding:14px 18px 0}.shift-modal-accountant-row .field{margin:0}.shift-modal-accountant-row input{height:40px}
.shift-accountant-modal-actions{display:flex;justify-content:flex-start;gap:8px;padding:14px 18px;border-top:1px solid var(--border);margin-top:14px;background:#fbfcfa}.shift-accountant-modal-actions .btn{min-width:135px}
.shift-modal-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 18px 0}.shift-modal-section-head>div{display:flex;align-items:baseline;gap:9px}.shift-modal-section-head b{font-size:12px;color:#253c31}.shift-modal-section-head small{font-size:9px;color:var(--muted)}
.shift-modal-invoice-table{min-width:780px}.shift-modal-reclass-details{margin:12px 18px 18px;border:1px solid var(--border);border-radius:11px;background:#fbfcfa;overflow:hidden}.shift-modal-reclass-details summary{cursor:pointer;padding:10px 12px;font-size:10px;font-weight:800;color:#365543}.shift-modal-reclass-details .table-wrap{border-top:1px solid var(--border);max-height:240px;overflow:auto}.shift-modal-reclass-details table{margin:0;min-width:720px}
.shift-modal-loading{display:grid;place-items:center;min-height:260px;padding:30px;color:var(--muted);font-size:11px}.shift-modal-loading.error{color:#b34943}
@media(max-width:800px){.shift-accountant-kpis{grid-template-columns:1fr 1fr}.shift-modal-accountant-row{grid-template-columns:1fr}.shift-accountant-modal-card{width:96vw!important}.shift-accountant-modal-actions{flex-direction:column}.shift-accountant-modal-actions .btn{width:100%}}


/* ========================================================================== */
/* V24.6.0.5 — shift reconciliation alignment + plain numeric actual inputs   */
/* ========================================================================== */
.shift-accountant-modal-content{padding-inline:18px!important}
.shift-accountant-modal-head{margin-inline:-18px!important;padding-inline:36px!important}
.shift-accountant-kpis{margin-inline:-18px!important;padding-inline:36px!important}
.shift-modal-state-note,.shift-modal-payment-wrap,.shift-modal-invoice-wrap,.shift-modal-reclass-details{margin-inline:0!important}
.shift-modal-accountant-row{padding-inline:0!important}
.shift-accountant-modal-actions{margin-inline:-18px!important;padding-inline:36px!important}
.shift-modal-section-head{padding-inline:0!important}
.shift-modal-actual,.shift-actual-input{direction:ltr;text-align:center;font-variant-numeric:tabular-nums}
.shift-modal-open-state{display:flex;align-items:center;justify-content:space-between;gap:12px}
.shift-end-accountant-form{margin:0;display:inline-flex}
.shift-recon-table{min-width:980px!important}
.shift-modal-payment-table{min-width:760px!important}
.shift-modal-payment-table .shift-modal-actual,.shift-recon-table .shift-actual-input{width:120px!important}
@media(max-width:800px){.shift-accountant-modal-content{padding-inline:12px!important}.shift-accountant-modal-head,.shift-accountant-kpis,.shift-accountant-modal-actions{margin-inline:-12px!important;padding-inline:24px!important}.shift-modal-open-state{align-items:stretch;flex-direction:column}.shift-end-accountant-form .btn{width:100%}}

/* V24.6.0.5 — daily shift sales report */
.shift-daily-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.shift-daily-filter-bar{display:flex;align-items:end;gap:10px;flex-wrap:nowrap;padding:12px 16px!important}
.shift-daily-filter-bar .field{margin:0;min-width:180px}.shift-daily-filter-bar .shift-daily-employee-filter{min-width:290px;flex:1;max-width:440px}
.shift-daily-sales-table{min-width:1450px}.shift-daily-sales-table th,.shift-daily-sales-table td{text-align:center}.shift-daily-sales-table .name-cell{text-align:right}
.shift-daily-variance{font-weight:900}.shift-daily-variance.short{color:#c8453d}.shift-daily-variance.over{color:#1e7c43}.shift-daily-variance.matched{color:#607064}
.shift-daily-payment-table{min-width:900px!important}.shift-modal-diff.pending{color:var(--muted)}
@media(max-width:900px){.shift-daily-summary{grid-template-columns:1fr 1fr}.shift-daily-filter-bar{flex-wrap:wrap}.shift-daily-filter-bar .field,.shift-daily-filter-bar .shift-daily-employee-filter{min-width:calc(50% - 5px);max-width:none}.shift-daily-filter-bar .btn{width:100%}}
@media(max-width:560px){.shift-daily-summary{grid-template-columns:1fr}.shift-daily-filter-bar .field,.shift-daily-filter-bar .shift-daily-employee-filter{min-width:100%}}

/* ========================================================================== */
/* V24.6.0.6 — Daily shift filters + full shift activity modal/print polish   */
/* ========================================================================== */
.shift-daily-filter-bar{
  justify-content:flex-start!important;
  gap:10px!important;
  padding:12px 16px!important;
}
.shift-daily-filter-bar>.field{
  flex:0 0 220px!important;
  min-width:220px!important;
  max-width:220px!important;
}
.shift-daily-filter-bar>.shift-daily-employee-filter{
  flex:0 0 390px!important;
  min-width:320px!important;
  max-width:390px!important;
}
.shift-daily-filter-bar>.btn{
  flex:0 0 auto!important;
  min-width:84px!important;
  height:42px!important;
  align-self:end!important;
}
.shift-daily-details-content{
  padding-bottom:24px!important;
}
.shift-daily-modal-head-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}
.shift-daily-print-btn{
  min-width:118px;
  height:34px!important;
  padding:0 12px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  white-space:nowrap!important;
}
.shift-modal-return-wrap{
  margin:14px 0 0!important;
  border:1px solid var(--border);
  border-radius:12px;
  overflow:auto;
}
.shift-modal-return-table{min-width:980px!important}
.shift-modal-return-table th,.shift-modal-return-table td{text-align:center}
.shift-modal-return-table td:last-child{text-align:right;min-width:180px}
.shift-daily-details-content>.shift-modal-invoice-wrap:last-child,
.shift-daily-details-content>.shift-modal-return-wrap:last-child{
  margin-bottom:0!important;
}
@media(max-width:900px){
  .shift-daily-filter-bar{flex-wrap:wrap!important}
  .shift-daily-filter-bar>.field,
  .shift-daily-filter-bar>.shift-daily-employee-filter{
    flex:1 1 calc(50% - 5px)!important;
    min-width:calc(50% - 5px)!important;
    max-width:none!important;
  }
  .shift-daily-filter-bar>.btn{width:100%!important;flex:1 1 100%!important}
}
@media(max-width:560px){
  .shift-daily-filter-bar>.field,
  .shift-daily-filter-bar>.shift-daily-employee-filter{
    flex:1 1 100%!important;
    min-width:100%!important;
  }
  .shift-daily-modal-head-actions{gap:5px}
  .shift-daily-print-btn{min-width:auto;padding:0 9px!important}
}


/* V24.6.0.7 — shift modal scrolling + optional reclassification reason */
.shift-accountant-modal-card{display:flex!important;flex-direction:column!important;min-height:0!important;}
#dailyShiftDetailsBody .shift-daily-details-content{min-height:0;padding-bottom:34px!important;}
.optional-label{font-size:8.5px;font-weight:600;color:var(--muted);margin-inline-start:5px;}

/* V24.7.0.0 - Accounting cycle close */
.accounting-close-panel{padding:18px 20px 22px}
.accounting-close-filter{display:grid;grid-template-columns:minmax(260px,420px) minmax(240px,1fr) auto;gap:12px;align-items:end;margin-bottom:16px}
.accounting-close-range{height:42px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line,#dfe8df);border-radius:10px;background:#fafcf9;font-size:12px}
.accounting-close-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 16px}
.accounting-close-stat{border:1px solid var(--line,#dfe8df);border-radius:12px;background:#fff;padding:13px 14px;min-height:72px;display:flex;flex-direction:column;gap:7px}
.accounting-close-stat small{font-size:10.5px;color:#728078}.accounting-close-stat b{font-size:13px}.close-ok{color:#2f8736}.close-fail{color:#c9473d}
.accounting-close-checks{border:1px solid var(--line,#dfe8df);border-radius:12px;overflow:hidden}
.accounting-close-check-head,.accounting-close-check-row{display:grid;grid-template-columns:minmax(180px,.9fr) 120px minmax(300px,1.5fr) minmax(170px,.7fr);align-items:center;gap:12px;padding:11px 14px}
.accounting-close-check-head{background:#f5f8f4;font-size:11px;font-weight:800;border-bottom:1px solid var(--line,#dfe8df)}
.accounting-close-check-row{font-size:11.5px;border-bottom:1px solid #e8eee8}.accounting-close-check-row:last-child{border-bottom:0}.accounting-close-check-row.failed{background:#fffafa}
.close-check-title{display:flex;align-items:center;gap:9px}.close-check-icon{width:25px;height:25px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:#e6f4e6;color:#2f8736;font-weight:900}.failed .close-check-icon{background:#fdeaea;color:#c9473d}
.close-check-details{line-height:1.8;color:#536159}.close-check-values{display:flex;flex-direction:column;gap:3px;font-size:10.5px}
.accounting-close-check-row.has-details{cursor:pointer;transition:background .16s ease,box-shadow .16s ease}.accounting-close-check-row.has-details:hover{background:#fff4f3;box-shadow:inset 3px 0 0 #d6574e}.accounting-close-check-row.has-details:focus-visible{outline:2px solid #c9473d;outline-offset:-2px}.close-check-open-details{color:#b9433b;font-weight:800;font-size:10px;margin-top:2px}
.accounting-close-blocker-card{width:min(900px,94vw);overflow:hidden}.accounting-close-blocker-body{padding:18px 20px;display:flex;flex-direction:column;gap:14px}.accounting-close-blocker-current{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;border:1px solid #dfe8df;border-radius:11px;background:#f8fbf7;padding:11px 13px}.accounting-close-blocker-current span,.accounting-close-blocker-current small{font-size:10px;color:#6f7c73}.accounting-close-blocker-current b{font-size:12px}.accounting-close-blocker-list{display:flex;flex-direction:column;gap:10px}.accounting-close-blocker-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;border:1px solid #f0d6d3;border-radius:12px;background:#fffafa;padding:14px}.accounting-close-blocker-info{min-width:0;display:flex;flex-direction:column;gap:10px}.accounting-close-blocker-title{display:flex;align-items:center;gap:9px}.accounting-close-blocker-title>div{display:flex;flex-direction:column;gap:2px}.accounting-close-blocker-title b{font-size:13px}.accounting-close-blocker-title small{font-size:10px;color:#748078}.accounting-close-blocker-meta{display:grid;grid-template-columns:1.2fr .5fr 1fr;gap:9px}.accounting-close-blocker-meta>span{display:flex;flex-direction:column;gap:4px;min-width:0}.accounting-close-blocker-meta small{font-size:9px;color:#7e8982}.accounting-close-blocker-meta b{font-size:10.5px;line-height:1.6}.accounting-close-go-btn{white-space:nowrap}.accounting-close-blocker-hint{margin-inline-end:auto;font-size:10px;color:#6c786f}
.accounting-close-actions{display:flex;align-items:center;gap:12px;justify-content:flex-start;margin-top:16px;padding-top:14px;border-top:1px solid var(--line,#dfe8df)}
.accounting-close-action-note,.accounting-close-closed-note{font-size:11px;color:#68756d}.accounting-reopen-form{display:grid;grid-template-columns:minmax(300px,520px) auto;align-items:end;gap:10px;width:100%}.accounting-reopen-form .field{margin:0}
@media(max-width:900px){.accounting-close-filter,.accounting-close-summary{grid-template-columns:1fr}.accounting-close-check-head{display:none}.accounting-close-check-row{grid-template-columns:1fr}.accounting-reopen-form{grid-template-columns:1fr}.accounting-close-actions{align-items:stretch;flex-direction:column}.accounting-close-blocker-current{grid-template-columns:1fr}.accounting-close-blocker-item{grid-template-columns:1fr}.accounting-close-blocker-meta{grid-template-columns:1fr}.accounting-close-go-btn{width:100%;text-align:center}.accounting-close-blocker-hint{width:100%;margin:0 0 6px}}

/* =============================================================
   V24.8.0.2 - Global Action Icon Standard
   Operational actions use a clear SVG + visible text. Compact
   table actions expand to a short labeled action instead of an
   ambiguous glyph-only control. Close buttons remain icon-only.
   ============================================================= */
.bs-action-with-icon{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    vertical-align:middle;
}
.bs-action-icon{
    width:15px;
    height:15px;
    min-width:15px;
    flex:0 0 15px;
    display:block;
    pointer-events:none;
}
.btn.bs-action-with-icon .bs-action-icon{width:16px;height:16px;min-width:16px;flex-basis:16px}
.crm-action-btn.bs-action-labeled,
.mini-btn.bs-action-labeled{
    width:auto!important;
    min-width:64px!important;
    height:34px!important;
    min-height:34px!important;
    padding:0 10px!important;
    gap:5px!important;
    white-space:nowrap!important;
    line-height:1!important;
}
.crm-action-btn.bs-action-labeled .bs-action-label,
.mini-btn.bs-action-labeled .bs-action-label{
    display:inline-block;
    font-size:10px;
    font-weight:700;
    line-height:1;
}
.crm-row-actions,
.table-actions,
.row-actions{
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
}
.actions-cell.table-actions-column,
.table-actions-column,
.purchase-action-cell{
    width:auto!important;
    min-width:150px;
}
.close-btn[aria-label]{cursor:pointer}
@media(max-width:700px){
    .crm-action-btn.bs-action-labeled,
    .mini-btn.bs-action-labeled{min-width:58px!important;padding-inline:8px!important}
    .actions-cell.table-actions-column,.table-actions-column,.purchase-action-cell{min-width:132px}
}
.bs-date-picker-icon{display:grid!important;place-items:center!important}
.bs-date-picker-icon .bs-action-icon{width:16px;height:16px;min-width:16px}

/* ========================================================================== */
/* V24.8.0.3 — Global Action Density + Responsive Page Shell Standard          */
/* ========================================================================== */
/*
   قاعدة معتمدة على مستوى المشروع:
   1) Save / Post فقط = SVG + نص ظاهر.
   2) باقي الإجراءات = SVG فقط + Tooltip/aria-label.
   3) الإجراءات داخل الجداول لا تلتف ولا تكسر عرض الصف.
   4) الـSidebar والـMain Area يشتركان في متغير عرض واحد حتى لا يظهر فراغ
      بين محتوى الصفحة والقائمة الجانبية على الشاشات العريضة.
*/

:root{
  --bs-sidebar-open-width:270px;
  --bs-sidebar-compact-width:72px;
  --bs-action-size:38px;
  --bs-table-action-size:32px;
}

/* Shell: margin owns the sidebar reservation; width:auto prevents flex-width drift. */
@media (min-width:1101px){
  .app-shell{display:block!important}
  .sidebar{width:var(--bs-sidebar-open-width)!important}
  .main-area{
    width:auto!important;
    min-width:0!important;
    margin-right:var(--bs-sidebar-open-width)!important;
  }
  body.sidebar-collapsed .main-area{
    width:auto!important;
    margin-right:var(--bs-sidebar-compact-width)!important;
  }
}
@media (min-width:961px) and (max-width:1100px){
  :root{--bs-sidebar-open-width:224px;--bs-sidebar-compact-width:68px}
  .app-shell{display:block!important}
  .sidebar{width:var(--bs-sidebar-open-width)!important}
  .main-area{
    width:auto!important;
    min-width:0!important;
    margin-right:var(--bs-sidebar-open-width)!important;
  }
  body.sidebar-collapsed .main-area{
    width:auto!important;
    margin-right:var(--bs-sidebar-compact-width)!important;
  }
}
@media (max-width:960px){
  .main-area,body.sidebar-collapsed .main-area{width:100%!important;margin-right:0!important}
}

.topbar,.content{width:100%;max-width:none;min-width:0}
.content{overflow-x:clip}
.panel,.department-management-panel{width:100%;max-width:100%;min-width:0}
.table-wrap,.comfortable-table-wrap{max-width:100%;min-width:0}

/* Page header follows the same content edge on every module. */
.page-heading{
  width:100%;
  min-width:0;
  align-items:flex-start;
}
.page-heading>div:first-child{min-width:0}
.page-heading h1{overflow-wrap:anywhere}
.page-heading .breadcrumbs{
  max-width:min(46vw,620px);
  overflow:hidden;
  text-overflow:ellipsis;
}
@media(max-width:900px){
  .page-heading{display:flex;flex-direction:column!important;align-items:stretch!important;gap:6px!important}
  .page-heading .breadcrumbs{order:-1;max-width:100%;white-space:normal}
}

/* Keep department tree and table aligned without allowing either pane to push the page. */
.departments-layout,.departments-layout-v5{
  grid-template-columns:minmax(245px,285px) minmax(0,1fr)!important;
  width:100%;
  min-width:0;
}
.department-tree-panel,.department-table-panel{min-width:0}
@media(max-width:1100px){
  .departments-layout,.departments-layout-v5{grid-template-columns:1fr!important}
}

/* -------------------------------------------------------------------------- */
/* Action buttons                                                              */
/* -------------------------------------------------------------------------- */
.bs-action-with-icon{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  vertical-align:middle!important;
}
.bs-action-icon{
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  flex:0 0 16px!important;
  display:block!important;
  pointer-events:none!important;
}

/* All secondary/global actions: compact icon button. */
.bs-icon-action{
  box-sizing:border-box!important;
  width:var(--bs-action-size)!important;
  min-width:var(--bs-action-size)!important;
  max-width:var(--bs-action-size)!important;
  height:var(--bs-action-size)!important;
  min-height:var(--bs-action-size)!important;
  max-height:var(--bs-action-size)!important;
  padding:0!important;
  gap:0!important;
  flex:0 0 var(--bs-action-size)!important;
  line-height:1!important;
  overflow:visible!important;
}
.btn.bs-icon-action,
a.btn.bs-icon-action{
  border-radius:10px!important;
}
.bs-icon-action .bs-action-label{display:none!important}

/* Save/Post remain intentionally readable because they commit business state. */
.bs-action-primary-text{
  min-height:40px!important;
  height:40px!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  padding:0 14px!important;
  gap:7px!important;
  white-space:nowrap!important;
  flex:0 0 auto!important;
}
.bs-action-primary-text .bs-action-label{display:inline!important}

/* Table rows are always compact and never wrap into a second line. */
.actions-cell,
.crm-row-actions,
.table-actions,
.row-actions,
.purchase-action-cell{
  white-space:nowrap!important;
}
.crm-row-actions,
.table-actions,
.row-actions{
  display:inline-flex!important;
  align-items:center!important;
  gap:5px!important;
  flex-wrap:nowrap!important;
  width:auto!important;
  max-width:none!important;
}
.actions-cell .inline-form,
.crm-row-actions .inline-form,
.table-actions .inline-form,
.row-actions .inline-form{
  display:inline-flex!important;
  margin:0!important;
}
.actions-cell .bs-icon-action,
.crm-row-actions .bs-icon-action,
.table-actions .bs-icon-action,
.row-actions .bs-icon-action,
.purchase-action-cell .bs-icon-action,
.actions-cell .mini-btn.bs-icon-action,
.actions-cell .crm-action-btn.bs-icon-action{
  width:var(--bs-table-action-size)!important;
  min-width:var(--bs-table-action-size)!important;
  max-width:var(--bs-table-action-size)!important;
  height:var(--bs-table-action-size)!important;
  min-height:var(--bs-table-action-size)!important;
  max-height:var(--bs-table-action-size)!important;
  flex-basis:var(--bs-table-action-size)!important;
  padding:0!important;
  border-radius:8px!important;
}
.actions-cell .bs-action-icon,
.crm-row-actions .bs-action-icon,
.table-actions .bs-action-icon,
.row-actions .bs-action-icon{width:14px!important;height:14px!important;min-width:14px!important;flex-basis:14px!important}

/* Do not reserve a text-sized column after switching to icons. */
.actions-cell.table-actions-column,
.table-actions-column,
.purchase-action-cell{
  width:1%!important;
  min-width:0!important;
  max-width:none!important;
}

/* Toolbars can wrap filters, while action buttons themselves remain compact. */
.toolbar,.compact-toolbar,.employee-toolbar,.security-toolbar,.crm-toolbar{
  min-width:0;
}
.toolbar-actions{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  flex-wrap:nowrap!important;
  flex:0 0 auto;
}
.filter-bar{
  min-width:0;
  max-width:100%;
  flex-wrap:wrap!important;
}
.search-box{min-width:min(310px,100%)}

/* Existing mobile rule made every footer button full width; only Save/Post keep it. */
@media(max-width:700px){
  .form-footer .btn.bs-icon-action,
  .modal-footer .btn.bs-icon-action,
  .confirm-actions .btn.bs-icon-action{
    width:var(--bs-action-size)!important;
    min-width:var(--bs-action-size)!important;
    max-width:var(--bs-action-size)!important;
    align-self:flex-start!important;
  }
  .form-footer .bs-action-primary-text,
  .modal-footer .bs-action-primary-text{
    width:100%!important;
  }
}
.confirm-actions .btn.bs-icon-action{
  min-width:var(--bs-action-size)!important;
  width:var(--bs-action-size)!important;
}

/* Date button stays an icon control and must not inherit generic text button sizing. */
.date-picker-button.bs-date-picker-icon{
  width:38px!important;
  min-width:38px!important;
  max-width:38px!important;
  height:auto!important;
  min-height:0!important;
  padding:0!important;
}

/* Floating project tooltip. Appended to BODY so panel overflow never clips it. */
.bs-action-tooltip{
  position:fixed!important;
  z-index:60000!important;
  max-width:240px;
  padding:7px 10px;
  border-radius:8px;
  background:#17352a;
  color:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.18);
  font:700 10px/1.45 'Cairo',Tahoma,Arial,sans-serif;
  text-align:center;
  pointer-events:none;
  white-space:nowrap;
  direction:rtl;
}
.bs-action-tooltip[hidden]{display:none!important}

/* A focused icon action must remain understandable without a mouse. */
.bs-icon-action:focus-visible{
  outline:0!important;
  box-shadow:0 0 0 3px rgba(47,125,50,.18)!important;
}

/* Dense desktop: avoid toolbar/action text pushing the content toward the sidebar. */
@media (min-width:961px) and (max-width:1440px){
  :root{--bs-action-size:36px;--bs-table-action-size:30px}
  .bs-action-primary-text{height:38px!important;min-height:38px!important;padding-inline:12px!important}
}

/* ========================================================================== */
/* V24.8.0.4 — Table Action Alignment + Overflow Menus + Employee Details     */
/* ========================================================================== */
:root{
  --bs-table-action-size:32px;
  --bs-table-action-gap:5px;
  --bs-table-action-column-width:132px;
}

/* Main shell must touch the viewport top. A real support banner remains above
   the shell by normal document flow; ordinary pages never reserve blank space. */
body > .app-shell:first-of-type{
  margin-top:0!important;
  padding-top:0!important;
}
.main-area{padding-top:0!important;margin-top:0!important}
.topbar{
  top:0!important;
  margin-top:0!important;
  transform:none!important;
}

/* One visual baseline for every row action in the project. */
th.table-actions-column,
td.table-actions-column,
td.actions-cell,
td.purchase-action-cell{
  vertical-align:middle!important;
}
th.table-actions-column{
  width:var(--bs-table-action-column-width)!important;
  min-width:var(--bs-table-action-column-width)!important;
  max-width:var(--bs-table-action-column-width)!important;
  text-align:left!important;
  padding-left:10px!important;
  padding-right:8px!important;
}
td.table-actions-column,
td.actions-cell,
td.purchase-action-cell{
  width:var(--bs-table-action-column-width)!important;
  min-width:var(--bs-table-action-column-width)!important;
  max-width:var(--bs-table-action-column-width)!important;
  text-align:left!important;
  padding-left:10px!important;
  padding-right:8px!important;
  white-space:nowrap!important;
  overflow:visible!important;
}

/* RTL page, but action groups are intentionally anchored to the physical left
   side of the action column with a small breathing space from the border. */
.actions-cell > .crm-row-actions,
.actions-cell > .quotation-actions,
.actions-cell > .table-actions,
.actions-cell > .row-actions,
.actions-cell > .bs-row-action-set,
.table-actions-column > .crm-row-actions,
.table-actions-column > .quotation-actions,
.table-actions-column > .bs-row-action-set{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:var(--bs-table-action-gap)!important;
  flex-wrap:nowrap!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  line-height:1!important;
}

.actions-cell > a,
.actions-cell > button,
.actions-cell > form,
.table-actions-column > a,
.table-actions-column > button,
.table-actions-column > form{
  vertical-align:middle!important;
  margin-top:0!important;
  margin-bottom:0!important;
}
.actions-cell .inline-form,
.table-actions-column .inline-form,
.actions-cell .bs-action-menu-form,
.table-actions-column .bs-action-menu-form{
  margin:0!important;
}

.actions-cell .bs-icon-action,
.table-actions-column .bs-icon-action,
.purchase-action-cell .bs-icon-action,
.actions-cell .mini-btn,
.table-actions-column .mini-btn,
.actions-cell .crm-action-btn,
.table-actions-column .crm-action-btn{
  box-sizing:border-box!important;
  width:var(--bs-table-action-size)!important;
  min-width:var(--bs-table-action-size)!important;
  max-width:var(--bs-table-action-size)!important;
  height:var(--bs-table-action-size)!important;
  min-height:var(--bs-table-action-size)!important;
  max-height:var(--bs-table-action-size)!important;
  padding:0!important;
  margin:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:8px!important;
  line-height:1!important;
  overflow:hidden!important;
  flex:0 0 var(--bs-table-action-size)!important;
}
.actions-cell .bs-action-icon,
.table-actions-column .bs-action-icon,
.purchase-action-cell .bs-action-icon{
  width:14px!important;
  height:14px!important;
  min-width:14px!important;
  flex-basis:14px!important;
  margin:0!important;
}

/* Compact overflow control. It keeps dense CRM / quotation / invoice rows
   inside the table instead of letting four or six buttons spill outside. */
.bs-action-menu-wrap{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 var(--bs-table-action-size)!important;
  margin:0!important;
  padding:0!important;
}
.bs-action-menu-panel{
  display:none;
  position:fixed!important;
  z-index:65000!important;
  width:210px!important;
  max-width:calc(100vw - 16px)!important;
  padding:6px!important;
  border:1px solid #dfe8df!important;
  border-radius:11px!important;
  background:#fff!important;
  box-shadow:0 18px 46px rgba(20,50,32,.18)!important;
  direction:rtl!important;
  text-align:right!important;
}
.bs-action-menu-panel.show{
  display:flex!important;
  flex-direction:column!important;
  gap:3px!important;
}
.bs-action-menu-form{
  display:block!important;
  width:100%!important;
}
.bs-action-menu-item,
a.bs-action-menu-item,
button.bs-action-menu-item,
.bs-action-menu-panel .bs-action-primary-text{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:36px!important;
  min-height:36px!important;
  padding:0 10px!important;
  margin:0!important;
  border:0!important;
  border-radius:8px!important;
  background:transparent!important;
  color:#26382d!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
  font:700 10.5px/1.2 'Cairo',Tahoma,Arial,sans-serif!important;
  text-align:right!important;
  white-space:nowrap!important;
  cursor:pointer!important;
  transform:none!important;
  box-shadow:none!important;
}
.bs-action-menu-item:hover,
a.bs-action-menu-item:hover,
button.bs-action-menu-item:hover{
  background:#f2f8f1!important;
  color:#1f6b34!important;
}
.bs-action-menu-item.danger{color:#bd4b44!important}
.bs-action-menu-item.danger:hover{background:#fff1f0!important;color:#a93933!important}
.bs-action-menu-item .bs-action-icon{width:15px!important;height:15px!important;min-width:15px!important;flex-basis:15px!important}

/* Employee read-only file popup — V24.13.0.1 balanced readable profile layout. */
.employee-details-card{
  width:min(1180px,94vw)!important;
  height:min(860px,92vh)!important;
  max-height:92vh!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
.employee-details-head{align-items:center!important;padding:16px 18px!important;flex:0 0 auto;border-bottom:1px solid #e8eee7}
.employee-details-identity{display:flex;align-items:center;gap:14px;min-width:0}
.employee-details-identity>div:last-child{min-width:0}
.employee-details-identity h2{font-size:20px!important;line-height:1.35!important;margin:0!important;font-weight:800!important}
.employee-details-avatar{
  width:64px;height:64px;min-width:64px;border-radius:16px;overflow:hidden;
  display:grid;place-items:center;background:#edf7ea;color:#2f7d32;font-weight:900;font-size:16px;
  border:1px solid #dbe9d8;
}
.employee-details-avatar img{width:100%;height:100%;object-fit:cover}
.employee-details-code-row{display:flex;align-items:center;gap:8px;margin-top:5px;font-size:13px}
.employee-details-summary-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:7px;color:#69766d;font-size:11.5px;font-weight:600}
.employee-details-summary-line i{font-style:normal;color:#b6c0b8}
.employee-details-body{padding:14px 16px 16px;overflow:auto;flex:1 1 auto;min-height:0;max-height:none!important;display:flex;flex-direction:column;gap:12px;background:#fbfcfa}
.employee-details-section{border:1px solid #dfe8de;border-radius:13px;background:#fff;overflow:hidden;box-shadow:0 1px 0 rgba(32,74,46,.025);flex:0 0 auto}
.employee-details-section-title{padding:11px 14px;border-bottom:1px solid #e8eee8;background:#f7faf6;display:flex;align-items:baseline;gap:9px}
.employee-details-section-title b{font-size:13.5px;font-weight:800}.employee-details-section-title small{font-size:10.5px;color:#78847c}
.employee-details-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:11px}
.employee-details-personal-grid{grid-template-columns:repeat(12,minmax(0,1fr))}
.employee-details-personal-grid .personal-code{grid-column:span 2}
.employee-details-personal-grid .personal-name{grid-column:span 5}
.employee-details-personal-grid .personal-third{grid-column:span 4}
.employee-details-field{padding:11px 13px;min-height:66px;border:1px solid #e1e9e0;border-radius:10px;background:#fbfdfb;min-width:0;display:flex;flex-direction:column;justify-content:center}
.employee-details-grid .span-2{grid-column:span 2}.employee-details-grid .span-3{grid-column:1/-1}.employee-details-grid .span-4{grid-column:1/-1}
.employee-details-grid>div small,.employee-details-notes small,.employee-details-doc-expiry small{display:block;color:#75827a;font-size:10.5px;font-weight:600;margin-bottom:5px;line-height:1.35}
.employee-details-grid>div b{display:block;font-size:13.5px;font-weight:800;line-height:1.65;color:#26332a;overflow-wrap:anywhere}
.employee-details-grid>div b[dir="ltr"]{text-align:left}
.employee-details-wide{grid-column:1/-1!important}
.employee-details-notes{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:11px}
.employee-details-notes>div{padding:12px 13px;min-width:0;border:1px solid #e1e9e0;border-radius:10px;background:#fbfdfb}
.employee-details-notes p{margin:0;font-size:12.5px;font-weight:650;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;color:#303c33}
.employee-details-documents{padding:9px 11px}
.employee-details-doc-list{display:flex;flex-direction:column}
.employee-details-doc-row{display:grid;grid-template-columns:minmax(0,1fr) 125px 38px;align-items:center;gap:10px;padding:10px 7px;border-bottom:1px solid #edf1ed}
.employee-details-doc-row:last-child{border-bottom:0}
.employee-details-doc-main{min-width:0}.employee-details-doc-main b,.employee-details-doc-main small{display:block;overflow-wrap:anywhere}.employee-details-doc-main b{font-size:12.5px}.employee-details-doc-main small{font-size:10.5px;color:#7a867e;margin-top:3px}
.employee-details-doc-expiry b{font-size:12px}.employee-details-footer{align-items:center!important;gap:8px!important;padding:11px 16px!important;flex:0 0 auto;border-top:1px solid #e8eee7;background:#fff}
.employee-details-footer .btn{font-size:12px!important;min-height:38px!important}

@media(max-width:980px){
  .employee-details-grid{grid-template-columns:1fr 1fr}
  .employee-details-grid .span-3,.employee-details-grid .span-4{grid-column:1/-1}
  .employee-details-personal-grid{grid-template-columns:1fr 1fr}
  .employee-details-personal-grid .personal-code,.employee-details-personal-grid .personal-name,.employee-details-personal-grid .personal-third{grid-column:auto}
}
@media(max-width:760px){
  :root{--bs-table-action-column-width:118px;--bs-table-action-size:30px}
  .employee-details-card{width:97vw!important;height:95vh!important;max-height:95vh!important}
  .employee-details-body{padding-inline:10px}
  .employee-details-grid{grid-template-columns:1fr}
  .employee-details-grid .span-2,.employee-details-grid .span-3,.employee-details-grid .span-4{grid-column:1/-1}
  .employee-details-personal-grid{grid-template-columns:1fr}
  .employee-details-personal-grid .personal-code,.employee-details-personal-grid .personal-name,.employee-details-personal-grid .personal-third{grid-column:1/-1}
  .employee-details-notes{grid-template-columns:1fr}
  .employee-details-doc-row{grid-template-columns:minmax(0,1fr) 96px 34px}
  .employee-details-footer{flex-wrap:wrap}.employee-details-footer .btn{flex:1 1 auto}
}

/* V24.8.0.4 legacy action-cell normalization */
td.row-actions{
  vertical-align:middle!important;
  width:var(--bs-table-action-column-width)!important;
  min-width:var(--bs-table-action-column-width)!important;
  max-width:var(--bs-table-action-column-width)!important;
  text-align:left!important;
  padding-left:10px!important;
  padding-right:8px!important;
  white-space:nowrap!important;
}
td.row-actions{
  align-items:center!important;
  justify-content:flex-end!important;
  gap:var(--bs-table-action-gap)!important;
}

/* ========================================================================== */
/* V24.8.0.4 FINAL — Unified toolbars, textual selects, table action geometry */
/* ========================================================================== */
/* Approved UI contract:
   - Add/New/Create + Save/Draft/Post = SVG + visible label outside row tables.
   - Row actions = fixed icon-only buttons + accessible project tooltip.
   - Select/dropdown choices always keep readable text.
   - Filter toolbars consume the full available row without dead gaps.
*/

html,body{margin:0!important;padding:0!important}
body>.app-shell{margin-block-start:0!important;padding-block-start:0!important;inset-block-start:0!important}
.main-area{margin-top:0!important;padding-top:0!important;align-self:flex-start!important}
.topbar{margin-block-start:0!important;top:0!important;inset-block-start:0!important}

/* Full-width application toolbars. The action area owns only what it needs;
   the filter/search area receives every remaining pixel. */
.panel>.toolbar,
.crm-toolbar,
.compact-toolbar,
.inventory-toolbar,
.employee-toolbar,
.contract-toolbar,
.activity-toolbar,
.service-toolbar,
.financial-one-line-toolbar{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  padding:12px 14px!important;
}

.toolbar>.toolbar-actions,
.crm-toolbar>.toolbar-actions,
.inventory-toolbar>.inventory-toolbar-actions,
.employee-toolbar>.toolbar-actions{
  flex:0 0 auto!important;
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  margin:0!important;
  padding:0!important;
  white-space:nowrap!important;
}

.toolbar>form[class*="filter"],
.toolbar>.filter-bar,
.crm-toolbar>.crm-filter-bar,
.inventory-toolbar>.inventory-filter-bar,
.contract-toolbar>.contract-filter-bar,
.activity-toolbar>.activity-filter-bar,
.service-toolbar>.service-filter-bar,
.financial-one-line-toolbar>.journal-filter-bar{
  flex:1 1 0!important;
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
  flex-wrap:nowrap!important;
}

/* Search gets the largest share; selects/dates stretch proportionally. */
.toolbar>form[class*="filter"]>.search-box,
.toolbar>.filter-bar>.search-box,
.crm-filter-bar>.search-box,
.inventory-filter-bar>.search-box,
.contract-filter-bar>.search-box,
.activity-filter-bar>.search-box,
.service-filter-bar>.search-box,
.journal-filter-bar>.search-box{
  flex:2 1 260px!important;
  width:auto!important;
  max-width:none!important;
  min-width:180px!important;
}

.toolbar>form[class*="filter"]>.custom-select-combo,
.toolbar>form[class*="filter"]>.searchable-select-combo,
.toolbar>.filter-bar>.custom-select-combo,
.toolbar>.filter-bar>.searchable-select-combo,
.crm-filter-bar>.custom-select-combo,
.crm-filter-bar>.searchable-select-combo,
.inventory-filter-bar>.custom-select-combo,
.inventory-filter-bar>.searchable-select-combo,
.contract-filter-bar>.custom-select-combo,
.contract-filter-bar>.searchable-select-combo,
.activity-filter-bar>.custom-select-combo,
.activity-filter-bar>.searchable-select-combo,
.service-filter-bar>.custom-select-combo,
.service-filter-bar>.searchable-select-combo,
.journal-filter-bar>.custom-select-combo,
.journal-filter-bar>.searchable-select-combo{
  flex:1 1 150px!important;
  width:auto!important;
  max-width:none!important;
  min-width:115px!important;
}

.toolbar>form[class*="filter"]>input:not([type="hidden"]),
.toolbar>.filter-bar>input:not([type="hidden"]),
.crm-filter-bar>input:not([type="hidden"]),
.contract-filter-bar>input:not([type="hidden"]),
.journal-filter-bar>input:not([type="hidden"]){
  flex:1 1 138px!important;
  width:auto!important;
  min-width:120px!important;
  max-width:none!important;
}

.toolbar>form[class*="filter"]>.btn,
.toolbar>.filter-bar>.btn,
.crm-filter-bar>.btn,
.inventory-filter-bar>.btn,
.contract-filter-bar>.btn,
.activity-filter-bar>.btn,
.service-filter-bar>.btn,
.journal-filter-bar>.btn{
  flex:0 0 auto!important;
  margin:0!important;
}

/* Native and custom select surfaces are content controls, never action icons. */
.custom-select-trigger,
.searchable-select-trigger,
.crm-activity-select-trigger{
  justify-content:space-between!important;
  gap:9px!important;
  text-align:right!important;
  white-space:nowrap!important;
  overflow:hidden!important;
}
.custom-select-trigger .custom-select-label,
.searchable-select-trigger .searchable-select-label,
.crm-activity-select-trigger .crm-activity-select-label{
  min-width:0!important;
  flex:1 1 auto!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.custom-select-option,
.searchable-select-option,
.searchable-select-add-button,
.crm-activity-result,
[role="listbox"] [role="option"]{
  direction:rtl!important;
  text-align:right!important;
  justify-content:flex-start!important;
  white-space:normal!important;
}
.custom-select-option .bs-action-icon,
.searchable-select-option .bs-action-icon,
.searchable-select-add-button .bs-action-icon,
.crm-activity-result .bs-action-icon,
[role="listbox"] [role="option"] .bs-action-icon{
  display:none!important;
}

/* Creation actions in page/tool bars are deliberately labeled. */
.toolbar-actions .bs-action-primary-text,
.toolbar>a.bs-action-primary-text,
.toolbar>button.bs-action-primary-text,
.page-heading .bs-action-primary-text,
.form-footer .bs-action-primary-text,
.modal-footer .bs-action-primary-text{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  white-space:nowrap!important;
}

/* Row-action column: physical-left alignment in RTL, fixed geometry, no wrap. */
th.table-actions-column,
td.table-actions-column,
td.actions-cell,
td.purchase-action-cell,
td.row-actions{
  box-sizing:border-box!important;
  width:var(--bs-table-action-column-width)!important;
  min-width:var(--bs-table-action-column-width)!important;
  max-width:var(--bs-table-action-column-width)!important;
  text-align:left!important;
  vertical-align:middle!important;
  white-space:nowrap!important;
  padding-top:8px!important;
  padding-bottom:8px!important;
  padding-left:10px!important;
  padding-right:8px!important;
}
th.table-actions-column{padding-left:12px!important;padding-right:8px!important}

td.actions-cell>.bs-row-action-set,
td.table-actions-column>.bs-row-action-set,
td.purchase-action-cell>.bs-row-action-set,
td.row-actions>.bs-row-action-set,
.actions-cell>.crm-row-actions,
.actions-cell>.quotation-actions,
.actions-cell>.contract-row-actions,
.actions-cell>.table-actions,
.actions-cell>.row-actions,
.table-actions-column>.crm-row-actions,
.table-actions-column>.quotation-actions,
.table-actions-column>.contract-row-actions,
.table-actions-column>.table-actions,
.table-actions-column>.row-actions,
.actions-cell>.manager-decision-actions,
.table-actions-column>.manager-decision-actions{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  min-height:var(--bs-table-action-size)!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  align-content:center!important;
  gap:var(--bs-table-action-gap)!important;
  flex-wrap:nowrap!important;
  direction:ltr!important;
  margin:0!important;
  padding:0!important;
  line-height:0!important;
}

/* Legacy direct children become visually identical while JS normalizes them. */
td.actions-cell>a,td.actions-cell>button,td.actions-cell>form,
td.table-actions-column>a,td.table-actions-column>button,td.table-actions-column>form,
td.purchase-action-cell>a,td.purchase-action-cell>button,td.purchase-action-cell>form,
td.row-actions>a,td.row-actions>button,td.row-actions>form{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  vertical-align:middle!important;
  margin:0!important;
  line-height:1!important;
}

.actions-cell .bs-icon-action,
.table-actions-column .bs-icon-action,
.purchase-action-cell .bs-icon-action,
td.row-actions .bs-icon-action,
.actions-cell .mini-btn,
.table-actions-column .mini-btn,
.purchase-action-cell .mini-btn,
td.row-actions .mini-btn,
.actions-cell .crm-action-btn,
.table-actions-column .crm-action-btn,
.actions-cell .contract-action-btn,
.table-actions-column .contract-action-btn{
  box-sizing:border-box!important;
  width:var(--bs-table-action-size)!important;
  min-width:var(--bs-table-action-size)!important;
  max-width:var(--bs-table-action-size)!important;
  height:var(--bs-table-action-size)!important;
  min-height:var(--bs-table-action-size)!important;
  max-height:var(--bs-table-action-size)!important;
  flex:0 0 var(--bs-table-action-size)!important;
  padding:0!important;
  margin:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  vertical-align:middle!important;
  line-height:1!important;
  border-radius:8px!important;
  overflow:hidden!important;
}
.actions-cell .bs-action-icon,
.table-actions-column .bs-action-icon,
.purchase-action-cell .bs-action-icon,
td.row-actions .bs-action-icon{
  display:block!important;
  width:14px!important;
  height:14px!important;
  min-width:14px!important;
  max-width:14px!important;
  margin:0!important;
  flex:0 0 14px!important;
}
.actions-cell form,.table-actions-column form,.purchase-action-cell form,td.row-actions form{direction:ltr!important}
.bs-action-menu-panel{direction:rtl!important;line-height:normal!important}

/* The table owns its action buttons. Horizontal scrolling is a fallback only,
   never a reason for action buttons to render outside the table box. */
.table-wrap,.comfortable-table-wrap,.crm-table-wrap{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:auto!important;
}
.data-table{max-width:none!important}

/* Dense widths: let filters wrap in complete controls, never overlap tables. */
@media(max-width:1280px){
  .panel>.toolbar,.crm-toolbar,.compact-toolbar,.inventory-toolbar,.employee-toolbar,.contract-toolbar{
    flex-wrap:wrap!important;
  }
  .toolbar>form[class*="filter"],.toolbar>.filter-bar,.crm-toolbar>.crm-filter-bar,
  .inventory-toolbar>.inventory-filter-bar,.contract-toolbar>.contract-filter-bar{
    flex:1 1 100%!important;
    width:100%!important;
    flex-wrap:wrap!important;
  }
  .toolbar>form[class*="filter"]>.search-box,.toolbar>.filter-bar>.search-box,
  .crm-filter-bar>.search-box,.inventory-filter-bar>.search-box,.contract-filter-bar>.search-box{
    flex:2 1 260px!important;
  }
  .toolbar>form[class*="filter"]>.custom-select-combo,
  .toolbar>form[class*="filter"]>.searchable-select-combo,
  .toolbar>.filter-bar>.custom-select-combo,.toolbar>.filter-bar>.searchable-select-combo,
  .crm-filter-bar>.custom-select-combo,.crm-filter-bar>.searchable-select-combo,
  .inventory-filter-bar>.custom-select-combo,.inventory-filter-bar>.searchable-select-combo,
  .contract-filter-bar>.custom-select-combo,.contract-filter-bar>.searchable-select-combo{
    flex:1 1 150px!important;
  }
}
@media(max-width:700px){
  .panel>.toolbar,.crm-toolbar,.compact-toolbar,.inventory-toolbar,.employee-toolbar,.contract-toolbar{
    padding:10px!important;
  }
  .toolbar>.toolbar-actions,.crm-toolbar>.toolbar-actions,.inventory-toolbar>.inventory-toolbar-actions{
    width:100%!important;
    justify-content:flex-start!important;
  }
  .toolbar>form[class*="filter"]>*,.toolbar>.filter-bar>*,.crm-filter-bar>*,
  .inventory-filter-bar>*,.contract-filter-bar>*{
    flex:1 1 100%!important;
    width:100%!important;
    max-width:none!important;
  }
}

/* ========================================================================== */
/* V24.8.0.5 — Header flow + semantic action consistency                     */
/* ========================================================================== */
/* The support-session indicator now lives below the topbar inside main-area.
   It remains visible and auditable without reserving an empty strip above the
   application header. */
.support-session-banner.support-session-banner-inline{
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  box-sizing:border-box!important;
  border-left:0!important;
  border-right:0!important;
}

/* Reinforce the invariant: application header starts at the viewport top. */
.app-shell,.main-area,.topbar{
  margin-block-start:0!important;
  padding-block-start:0!important;
}
.topbar{inset-block-start:0!important;top:0!important}

/* ========================================================================== */
/* V24.8.0.6 — Regression-safe shell, finance toolbars, row actions, POS UX  */
/* ========================================================================== */
/*
   Approved invariants:
   - Topbar physically starts at viewport y=0. No invisible strip may precede it.
   - Table cells remain table-cells; flex is allowed only inside a row-action wrapper.
   - Row actions are icon-only, same geometry, physical-left aligned in RTL.
   - Add/Create + Save/Draft/Post + Shift Open remain icon + visible label.
   - Financial filters never overlap; they wrap as complete controls.
   - POS payment controls are owned by POS and are never collapsed by global icons.
*/
:root{--bs-topbar-height:68px}
@media (min-width:1101px) and (max-width:1440px){:root{--bs-topbar-height:60px}}
@media (min-width:961px) and (max-width:1100px){:root{--bs-topbar-height:56px}}
@media (max-width:960px){:root{--bs-topbar-height:56px}}

/* Hard shell fix: the header is fixed to the viewport, while main-area reserves
   exactly its height. This removes the recurring blank band above the header. */
html,body{margin:0!important;padding:0!important}
body>.app-shell{margin:0!important;padding:0!important;min-height:100vh!important}
.main-area{
  position:relative!important;
  padding-top:var(--bs-topbar-height)!important;
  margin-top:0!important;
}
.topbar{
  position:fixed!important;
  top:0!important;
  bottom:auto!important;
  left:0!important;
  right:var(--bs-sidebar-open-width)!important;
  width:auto!important;
  height:var(--bs-topbar-height)!important;
  min-height:var(--bs-topbar-height)!important;
  max-height:var(--bs-topbar-height)!important;
  margin:0!important;
  transform:none!important;
  z-index:40!important;
}
body.sidebar-collapsed .topbar{right:var(--bs-sidebar-compact-width)!important}
@media(max-width:960px){.topbar{right:0!important}}
.support-session-banner.support-session-banner-inline{margin:0!important}
@media print{
  .main-area{padding-top:0!important}
  .topbar{position:static!important;right:auto!important;left:auto!important;height:auto!important;min-height:0!important;max-height:none!important}
}

/* Table semantics: never turn TD into flex. The inner wrapper owns flex layout.
   This specifically prevents actions from intruding into the adjacent status cell. */
td.actions-cell,
td.table-actions-column,
td.purchase-action-cell,
td.row-actions{
  display:table-cell!important;
  position:relative!important;
  box-sizing:border-box!important;
  width:var(--bs-table-action-column-width)!important;
  min-width:var(--bs-table-action-column-width)!important;
  max-width:var(--bs-table-action-column-width)!important;
  vertical-align:middle!important;
  text-align:left!important;
  white-space:nowrap!important;
  padding:8px 10px 8px 8px!important;
}
th.table-actions-column{
  box-sizing:border-box!important;
  width:var(--bs-table-action-column-width)!important;
  min-width:var(--bs-table-action-column-width)!important;
  max-width:var(--bs-table-action-column-width)!important;
  text-align:left!important;
  padding-left:10px!important;
  padding-right:8px!important;
}
td.actions-cell>.bs-row-action-set,
td.table-actions-column>.bs-row-action-set,
td.purchase-action-cell>.bs-row-action-set,
td.row-actions>.bs-row-action-set,
td.actions-cell>.crm-row-actions,
td.actions-cell>.quotation-actions,
td.actions-cell>.contract-row-actions,
td.actions-cell>.table-actions,
td.table-actions-column>.crm-row-actions,
td.table-actions-column>.quotation-actions,
td.table-actions-column>.contract-row-actions,
td.table-actions-column>.table-actions{
  display:flex!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  min-height:var(--bs-table-action-size)!important;
  align-items:center!important;
  justify-content:flex-start!important;
  align-content:center!important;
  flex-flow:row nowrap!important;
  gap:var(--bs-table-action-gap)!important;
  direction:ltr!important;
  margin:0!important;
  padding:0!important;
  line-height:1!important;
}

/* Contract service requests: two actions only, so reserve exactly their footprint
   and keep status fully separate. */
.service-case-table .service-case-status-cell{min-width:96px!important;white-space:nowrap!important}
.service-case-table th.table-actions-column,
.service-case-table td.service-case-actions-cell{
  width:94px!important;
  min-width:94px!important;
  max-width:94px!important;
}
.service-case-table td.service-case-actions-cell>.bs-row-action-set{justify-content:flex-start!important}

/* Collections: same visual language for quick collection, contract, journal and print. */
.collection-table th.table-actions-column,
.collection-table td.collection-actions-cell{
  width:94px!important;
  min-width:94px!important;
  max-width:94px!important;
}
.collection-receipts-table th.table-actions-column,
.collection-receipts-table td.collection-receipt-actions-cell{
  width:132px!important;
  min-width:132px!important;
  max-width:132px!important;
}
.collection-table td.collection-actions-cell>.bs-row-action-set,
.collection-receipts-table td.collection-receipt-actions-cell>.bs-row-action-set{justify-content:flex-start!important}

/* Customer/Supplier subledgers: one shared geometry, no overlapping labels/fields. */
body[data-controller="CustomerReceivables"] .receivable-toolbar,
body[data-controller="SupplierPayables"] .receivable-toolbar{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  padding:12px 14px!important;
  gap:12px!important;
  align-items:end!important;
}
body[data-controller="CustomerReceivables"] .receivable-toolbar{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
}
body[data-controller="SupplierPayables"] .receivable-toolbar{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
}
body[data-controller="CustomerReceivables"] .receivable-filter-grid,
body[data-controller="SupplierPayables"] .receivable-filter-grid{
  display:grid!important;
  grid-template-columns:minmax(280px,1fr) minmax(170px,220px) auto!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  gap:9px!important;
  align-items:end!important;
  margin:0!important;
}
body[data-controller="CustomerReceivables"] .receivable-filter-grid>.field,
body[data-controller="SupplierPayables"] .receivable-filter-grid>.field{min-width:0!important;width:100%!important}
body[data-controller="CustomerReceivables"] .receivable-filter-grid .search-box,
body[data-controller="SupplierPayables"] .receivable-filter-grid .search-box,
body[data-controller="CustomerReceivables"] .receivable-currency-field .searchable-select-combo,
body[data-controller="SupplierPayables"] .receivable-currency-field .searchable-select-combo,
body[data-controller="CustomerReceivables"] .receivable-currency-field .custom-select-combo,
body[data-controller="SupplierPayables"] .receivable-currency-field .custom-select-combo{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
}
body[data-controller="CustomerReceivables"] .receivable-filter-actions,
body[data-controller="SupplierPayables"] .receivable-filter-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:7px!important;
  height:42px!important;
  min-width:max-content!important;
  direction:rtl!important;
}
body[data-controller="CustomerReceivables"] .sync-receivables-form{
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:176px auto!important;
  align-items:end!important;
  gap:8px!important;
  width:auto!important;
  min-width:0!important;
  margin:0!important;
  padding:0 12px 0 0!important;
  border-right:1px solid #e6ece4!important;
}
body[data-controller="CustomerReceivables"] .sync-date-field{width:176px!important;min-width:176px!important}
body[data-controller="CustomerReceivables"] .sync-due-btn{height:42px!important;min-height:42px!important;white-space:nowrap!important}
@media(max-width:1250px){
  body[data-controller="CustomerReceivables"] .receivable-toolbar{grid-template-columns:1fr!important}
  body[data-controller="CustomerReceivables"] .sync-receivables-form{
    justify-self:start!important;
    padding:10px 0 0!important;
    border-right:0!important;
    border-top:1px solid #e6ece4!important;
    width:100%!important;
    grid-template-columns:minmax(176px,240px) auto!important;
  }
  body[data-controller="CustomerReceivables"] .receivable-filter-grid,
  body[data-controller="SupplierPayables"] .receivable-filter-grid{
    grid-template-columns:minmax(240px,1fr) minmax(160px,210px) auto!important;
  }
}
@media(max-width:720px){
  body[data-controller="CustomerReceivables"] .receivable-filter-grid,
  body[data-controller="SupplierPayables"] .receivable-filter-grid{grid-template-columns:1fr!important}
  body[data-controller="CustomerReceivables"] .receivable-filter-actions,
  body[data-controller="SupplierPayables"] .receivable-filter-actions{width:100%!important;height:auto!important}
  body[data-controller="CustomerReceivables"] .receivable-filter-actions>* ,
  body[data-controller="SupplierPayables"] .receivable-filter-actions>*{flex:1 1 0!important}
  body[data-controller="CustomerReceivables"] .sync-receivables-form{grid-template-columns:1fr!important}
  body[data-controller="CustomerReceivables"] .sync-date-field{width:100%!important;min-width:0!important}
  body[data-controller="CustomerReceivables"] .sync-due-btn{width:100%!important}
}

/* Finance module sweep: toolbars may wrap, but controls never overlap or shrink
   below a usable width. Existing report grids keep their domain-specific layout. */
body[data-controller="FinancialAccounts"] .finance-account-toolbar,
body[data-controller="JournalEntries"] .financial-one-line-toolbar,
body[data-controller="CostCenters"] .financial-one-line-toolbar,
body[data-controller="Banks"] .toolbar,
body[data-controller="FiscalYears"] .toolbar,
body[data-controller="Cashboxes"] .toolbar,
body[data-controller="PosPaymentMethods"] .toolbar,
body[data-controller="FinancialReports"] .toolbar,
body[data-controller="PosShifts"] form.toolbar{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  gap:9px!important;
  flex-wrap:wrap!important;
}
body[data-controller="FinancialAccounts"] .finance-account-filter,
body[data-controller="JournalEntries"] .journal-filter-bar,
body[data-controller="CostCenters"] .filter-bar,
body[data-controller="Banks"] .filter-bar{
  flex:1 1 620px!important;
  min-width:0!important;
  max-width:none!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
}
body[data-controller="FinancialAccounts"] .finance-account-filter>.search-box,
body[data-controller="JournalEntries"] .journal-filter-bar>.search-box,
body[data-controller="CostCenters"] .filter-bar>.search-box,
body[data-controller="Banks"] .filter-bar>.search-box{
  flex:2 1 260px!important;
  min-width:220px!important;
  max-width:none!important;
}
body[data-controller="FinancialAccounts"] .finance-account-filter>.custom-select-combo,
body[data-controller="FinancialAccounts"] .finance-account-filter>.searchable-select-combo,
body[data-controller="JournalEntries"] .journal-filter-bar>.custom-select-combo,
body[data-controller="JournalEntries"] .journal-filter-bar>.searchable-select-combo,
body[data-controller="CostCenters"] .filter-bar>.custom-select-combo,
body[data-controller="Banks"] .filter-bar>.custom-select-combo{
  flex:1 1 145px!important;
  min-width:130px!important;
  max-width:none!important;
}
body[data-controller="JournalEntries"] .journal-filter-bar>input[type="date"]{
  flex:1 1 145px!important;
  min-width:135px!important;
  max-width:190px!important;
}
body[data-controller="PosShifts"] .shift-filter-fields{
  flex:1 1 620px!important;
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
}

/* POS owns these controls: explicit SVG + readable payment method names. */
.pos-payment-grid{align-items:stretch!important}
.pos-pay-btn{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:auto!important;
  min-height:58px!important;
  display:grid!important;
  grid-template-columns:28px minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:7px!important;
  padding:8px 9px!important;
  overflow:hidden!important;
}
.pos-pay-btn b{min-width:0!important;text-align:right!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.pos-payment-icon-wrap{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;color:#3f8650}
.pos-payment-icon{width:18px;height:18px;display:block;flex:0 0 18px}
.pos-pay-btn.card .pos-payment-icon-wrap{color:#5650a8}.pos-pay-btn.transfer .pos-payment-icon-wrap{color:#276d7d}.pos-pay-btn.credit .pos-payment-icon-wrap{color:#9a671e}
.pos-hold-main{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:42px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  padding:0 12px!important;
}
.pos-hold-main b{font-size:11px}.pos-hold-main>span:last-child{margin-inline-start:auto;font-size:9px;color:#7a867e}
.pos-inline-action-icon{width:16px;height:16px;display:block;flex:0 0 16px;color:#4a7258}

/* Shift-open is a primary operational action: its text is intentionally visible. */
.shift-open-modal-footer button[data-bs-icon="shiftopen"],
.shift-open-footer button[data-bs-icon="shiftopen"]{
  min-width:132px!important;
  justify-content:center!important;
}

/* Keep action-column headers and cells visually on the same baseline in finance. */
body[data-controller="FinancialAccounts"] td.actions-cell,
body[data-controller="JournalEntries"] td.actions-cell,
body[data-controller="CustomerReceivables"] td.actions-cell,
body[data-controller="SupplierPayables"] td.actions-cell,
body[data-controller="PosShifts"] td.actions-cell,
body[data-controller="CostCenters"] td.actions-cell,
body[data-controller="Cashboxes"] td.actions-cell,
body[data-controller="Banks"] td.actions-cell{
  padding-top:8px!important;
  padding-bottom:8px!important;
}

/* ========================================================================== */
/* V24.8.0.6 — Final financial/UI regression sweep                            */
/* ========================================================================== */
/* One shell geometry. Fixed topbar means no DOM node, banner or old margin can
   push the visible header away from the physical top edge. */
body{overflow-x:hidden!important}
.main-area>.topbar:first-child{inset-block-start:0!important;top:0!important}
.content{margin-top:0!important}
.pos-summary-panel{top:calc(var(--bs-topbar-height) + 8px)!important}

/* Shared table-action contract. Keep the cell as a table-cell and align the
   inner action row to the physical left in RTL. */
.data-table th.table-actions-column,
.data-table td.table-actions-column,
.data-table td.actions-cell,
.data-table td.purchase-action-cell,
.data-table td.row-actions{
  direction:ltr!important;
}
.data-table td.table-actions-column>.bs-row-action-set,
.data-table td.actions-cell>.bs-row-action-set,
.data-table td.purchase-action-cell>.bs-row-action-set,
.data-table td.row-actions>.bs-row-action-set,
.data-table td.table-actions-column>.crm-row-actions,
.data-table td.actions-cell>.crm-row-actions,
.data-table td.table-actions-column>.quotation-actions,
.data-table td.actions-cell>.quotation-actions,
.data-table td.table-actions-column>.contract-row-actions,
.data-table td.actions-cell>.contract-row-actions{
  justify-content:flex-start!important;
  margin-left:0!important;
  margin-right:auto!important;
}

/* Service cases: status and actions are deliberately isolated columns. */
.service-case-table{table-layout:auto!important}
.service-case-table th:nth-last-child(2),
.service-case-table td.service-case-status-cell{min-width:108px!important;width:108px!important;max-width:108px!important}
.service-case-table th:last-child,
.service-case-table td.service-case-actions-cell{min-width:88px!important;width:88px!important;max-width:88px!important}
.service-case-table td.service-case-actions-cell{overflow:hidden!important}
.service-case-table td.service-case-actions-cell>.bs-row-action-set{width:68px!important;max-width:68px!important}

/* Collections and receipts use the same 32px action geometry. */
.collection-table td.collection-actions-cell{overflow:hidden!important}
.collection-table td.collection-actions-cell>.bs-row-action-set{width:68px!important;max-width:68px!important}
.collection-receipts-table td.collection-receipt-actions-cell{overflow:hidden!important}
.collection-receipts-table td.collection-receipt-actions-cell>.bs-row-action-set{width:106px!important;max-width:106px!important}

/* Receivables/payables: filter controls form complete grid tracks and never
   overlap the due-sync controls. */
body[data-controller="CustomerReceivables"] .receivable-panel,
body[data-controller="SupplierPayables"] .receivable-panel{overflow:visible!important}
body[data-controller="CustomerReceivables"] .receivable-toolbar,
body[data-controller="SupplierPayables"] .receivable-toolbar{
  overflow:visible!important;
  align-items:end!important;
}
body[data-controller="CustomerReceivables"] .receivable-filter-grid,
body[data-controller="SupplierPayables"] .receivable-filter-grid{
  overflow:visible!important;
}
body[data-controller="CustomerReceivables"] .receivable-filter-grid .field,
body[data-controller="SupplierPayables"] .receivable-filter-grid .field,
body[data-controller="CustomerReceivables"] .receivable-filter-grid .search-box,
body[data-controller="SupplierPayables"] .receivable-filter-grid .search-box{
  min-width:0!important;
  max-width:none!important;
}
body[data-controller="CustomerReceivables"] .receivable-filter-grid .custom-select-shell,
body[data-controller="CustomerReceivables"] .receivable-filter-grid .searchable-select-shell,
body[data-controller="SupplierPayables"] .receivable-filter-grid .custom-select-shell,
body[data-controller="SupplierPayables"] .receivable-filter-grid .searchable-select-shell{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
}
body[data-controller="CustomerReceivables"] .receivable-filter-actions .bs-icon-action,
body[data-controller="SupplierPayables"] .receivable-filter-actions .bs-icon-action{
  width:42px!important;height:42px!important;min-width:42px!important;max-width:42px!important;
}

/* Customer/supplier statement filter bars share one responsive layout. */
body[data-controller="CustomerReceivables"] .statement-toolbar,
body[data-controller="SupplierPayables"] .statement-toolbar{
  display:flex!important;
  width:100%!important;
  min-width:0!important;
  align-items:end!important;
  gap:12px!important;
  flex-wrap:wrap!important;
}
body[data-controller="CustomerReceivables"] .statement-filter-grid,
body[data-controller="SupplierPayables"] .statement-filter-grid{
  flex:1 1 520px!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  display:grid!important;
  grid-template-columns:minmax(170px,220px) minmax(170px,220px) auto!important;
  gap:9px!important;
  align-items:end!important;
}
body[data-controller="CustomerReceivables"] .statement-account-info,
body[data-controller="SupplierPayables"] .statement-account-info{
  flex:0 0 auto!important;
  margin:0!important;
  min-width:0!important;
}

/* Financial reports: each control is a whole grid/flex item. This prevents
   labels, select triggers and dates from sharing the same pixels. */
body[data-controller="FinancialReports"] .toolbar.compact-toolbar{
  width:100%!important;
  min-width:0!important;
  overflow:visible!important;
  padding:12px 14px!important;
}
body[data-controller="FinancialReports"] .fin-report-filter,
body[data-controller="FinancialReports"] .trial-filter,
body[data-controller="FinancialReports"] .statement-filter,
body[data-controller="FinancialReports"] .vat-filter,
body[data-controller="FinancialReports"] .aging-filter{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  gap:9px!important;
  align-items:end!important;
}
body[data-controller="FinancialReports"] .fin-report-filter>.field,
body[data-controller="FinancialReports"] .trial-filter>.field,
body[data-controller="FinancialReports"] .statement-filter>.field,
body[data-controller="FinancialReports"] .vat-filter>.field,
body[data-controller="FinancialReports"] .aging-filter>.field{
  min-width:0!important;
}
body[data-controller="FinancialReports"] .fin-report-filter .custom-select-shell,
body[data-controller="FinancialReports"] .fin-report-filter .searchable-select-shell,
body[data-controller="FinancialReports"] .trial-filter .custom-select-shell,
body[data-controller="FinancialReports"] .trial-filter .searchable-select-shell,
body[data-controller="FinancialReports"] .statement-filter .custom-select-shell,
body[data-controller="FinancialReports"] .statement-filter .searchable-select-shell,
body[data-controller="FinancialReports"] .vat-filter .custom-select-shell,
body[data-controller="FinancialReports"] .vat-filter .searchable-select-shell{
  width:100%!important;min-width:0!important;max-width:none!important;
}
body[data-controller="FinancialReports"] .aging-filter{
  display:grid!important;
  grid-template-columns:minmax(170px,220px) minmax(150px,190px) auto auto!important;
}

/* Supplier payments are accounting-facing too and follow the same full-width
   filter geometry. */
body[data-controller="SupplierPayments"] .supplier-payment-filter-bar{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  display:grid!important;
  grid-template-columns:auto minmax(240px,1.6fr) minmax(150px,1fr) minmax(130px,.8fr) minmax(130px,.8fr) minmax(135px,.75fr) minmax(135px,.75fr) auto auto!important;
  gap:8px!important;
  align-items:center!important;
  padding:12px 14px!important;
}
body[data-controller="SupplierPayments"] .supplier-payment-filter-bar>.search-box,
body[data-controller="SupplierPayments"] .supplier-payment-filter-bar>.custom-select-shell,
body[data-controller="SupplierPayments"] .supplier-payment-filter-bar>.searchable-select-shell,
body[data-controller="SupplierPayments"] .supplier-payment-filter-bar>input{
  width:100%!important;min-width:0!important;max-width:none!important;
}

/* Shift finance screens. */
body[data-controller="PosShifts"] .shift-filter-bar,
body[data-controller="PosShifts"] .shift-daily-filter-bar{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
body[data-controller="PosShifts"] .shift-filter-fields{
  width:100%!important;
  flex:1 1 100%!important;
}
body[data-controller="PosShifts"] .shift-filter-actions,
body[data-controller="PosShifts"] .shift-daily-filter-actions{
  display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:nowrap!important;
}

/* VAT drill-down actions stay compact, except the legacy VAT repair action,
   which intentionally keeps its warning text. */
.vat-movement-table td:last-child{min-width:118px!important}
.vat-row-actions{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:6px!important;flex-wrap:nowrap!important;direction:ltr!important}
.vat-row-actions .bs-icon-action{width:32px!important;height:32px!important;min-width:32px!important;max-width:32px!important;padding:0!important}
.vat-row-actions form{margin:0!important}
.vat-row-actions .repair.bs-action-primary-text{width:auto!important;min-width:0!important;height:32px!important;padding:0 10px!important;direction:rtl!important}

/* POS payment buttons are self-contained, aligned and immune to global action
   icon conversion. */
.pos-payment-grid{grid-auto-rows:minmax(58px,auto)!important}
.pos-pay-btn,.pos-hold-main{transform:none!important;box-shadow:none!important}
.pos-pay-btn:hover,.pos-hold-main:hover{transform:none!important}
.pos-pay-btn .pos-payment-icon-wrap{align-self:center!important;justify-self:center!important}
.pos-pay-btn small{justify-self:end!important;white-space:nowrap!important}

/* Medium widths: wrap complete finance controls rather than squeezing them. */
@media(max-width:1450px){
  body[data-controller="SupplierPayments"] .supplier-payment-filter-bar{
    grid-template-columns:auto minmax(260px,1.5fr) repeat(3,minmax(145px,1fr)) repeat(2,minmax(140px,.8fr)) auto!important;
  }
  body[data-controller="SupplierPayments"] .supplier-payment-filter-bar>a.btn.primary{grid-row:1!important}
}
@media(max-width:1250px){
  body[data-controller="CustomerReceivables"] .receivable-toolbar{grid-template-columns:1fr!important}
  body[data-controller="CustomerReceivables"] .sync-receivables-form{width:100%!important;justify-self:stretch!important}
  body[data-controller="FinancialReports"] .aging-filter{grid-template-columns:repeat(2,minmax(170px,1fr))!important}
  body[data-controller="SupplierPayments"] .supplier-payment-filter-bar{display:flex!important;flex-wrap:wrap!important}
  body[data-controller="SupplierPayments"] .supplier-payment-filter-bar>.search-box{flex:2 1 300px!important}
  body[data-controller="SupplierPayments"] .supplier-payment-filter-bar>.custom-select-shell,
  body[data-controller="SupplierPayments"] .supplier-payment-filter-bar>.searchable-select-shell,
  body[data-controller="SupplierPayments"] .supplier-payment-filter-bar>input{flex:1 1 145px!important;width:auto!important}
}
@media(max-width:760px){
  body[data-controller="CustomerReceivables"] .statement-filter-grid,
  body[data-controller="SupplierPayables"] .statement-filter-grid{grid-template-columns:1fr!important;flex-basis:100%!important}
  body[data-controller="CustomerReceivables"] .statement-account-info,
  body[data-controller="SupplierPayables"] .statement-account-info{width:100%!important}
  body[data-controller="FinancialReports"] .aging-filter{grid-template-columns:1fr!important}
  body[data-controller="SupplierPayments"] .supplier-payment-filter-bar>*{flex:1 1 100%!important;width:100%!important;max-width:none!important}
}


/* ========================================================================== */
/* V24.8.0.7 — Requested polish only: page Back, heading gap, Collections, GL */
/* ========================================================================== */
/* Main topbar no longer owns a Back control. Page content starts closer to it. */
.content{padding-top:14px!important}
.page-smart-back[hidden]{display:none!important}
.breadcrumbs-with-page-back{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important}
.breadcrumbs-with-page-back .page-smart-back{height:34px!important;min-height:34px!important;padding:0 10px!important;margin-inline-start:4px!important;flex:0 0 auto!important}
.page-heading-smart-back-host{display:flex;align-items:center;justify-content:flex-start;flex:0 0 auto}
.page-heading-smart-back-host .page-smart-back{height:34px!important;min-height:34px!important;padding:0 10px!important}

/* Collections only: same compact geometry, clearer modern SVG semantics. */
body[data-controller="Collections"] .collection-table td.collection-actions-cell .bs-action-icon,
body[data-controller="Collections"] .collection-receipts-table td.collection-receipt-actions-cell .bs-action-icon{
  width:15px!important;height:15px!important;min-width:15px!important;flex-basis:15px!important;
  stroke-width:1.9;
}
body[data-controller="Collections"] .collection-table td.collection-actions-cell .mini-btn,
body[data-controller="Collections"] .collection-receipts-table td.collection-receipt-actions-cell .mini-btn{
  border-radius:9px!important;
  background:#fff!important;
}

/* General Ledger only: distribute the search/filter row across the full panel. */
body[data-controller="FinancialReports"][data-action="GeneralLedger"] .toolbar.compact-toolbar{
  display:block!important;
  width:100%!important;
  box-sizing:border-box!important;
}
body[data-controller="FinancialReports"][data-action="GeneralLedger"] .fin-report-filter{
  display:grid!important;
  width:100%!important;
  max-width:none!important;
  grid-template-columns:minmax(340px,2.2fr) repeat(3,minmax(175px,1fr)) repeat(2,minmax(150px,.78fr)) auto!important;
  gap:9px!important;
  align-items:end!important;
}
body[data-controller="FinancialReports"][data-action="GeneralLedger"] .fin-report-filter>.field,
body[data-controller="FinancialReports"][data-action="GeneralLedger"] .fin-report-filter .searchable-select-shell,
body[data-controller="FinancialReports"][data-action="GeneralLedger"] .fin-report-filter .custom-select-shell{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
}
@media(max-width:1450px){
  body[data-controller="FinancialReports"][data-action="GeneralLedger"] .fin-report-filter{
    grid-template-columns:repeat(4,minmax(170px,1fr))!important;
  }
}
@media(max-width:900px){
  body[data-controller="FinancialReports"][data-action="GeneralLedger"] .fin-report-filter{grid-template-columns:1fr 1fr!important}
}
@media(max-width:620px){
  body[data-controller="FinancialReports"][data-action="GeneralLedger"] .fin-report-filter{grid-template-columns:1fr!important}
}

/* ========================================================================== */
/* V24.8.0.9 — Finance filter bars: full width + one 42px control baseline     */
/* ========================================================================== */
/* This is the final finance-toolbar contract. It intentionally comes last so
   older screen-specific flex rules cannot collapse a search/filter bar. */

/* All finance list/report filter surfaces consume the complete panel width. */
body[data-controller="FinancialAccounts"] .finance-account-toolbar,
body[data-controller="JournalEntries"] .financial-one-line-toolbar,
body[data-controller="CostCenters"] .financial-one-line-toolbar,
body[data-controller="Banks"] .toolbar.compact-toolbar,
body[data-controller="CustomerReceivables"] .receivable-toolbar,
body[data-controller="SupplierPayables"] .receivable-toolbar,
body[data-controller="SupplierPayments"] .supplier-payment-filter-bar,
body[data-controller="PosShifts"] .shift-filter-bar,
body[data-controller="PosShifts"] .shift-daily-filter-bar,
body[data-controller="FinancialReports"] .toolbar.compact-toolbar,
body[data-controller="FiscalYears"] .accounting-close-filter{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
}

/* One visual height for every control that belongs to a finance search bar. */
body[data-controller="FinancialAccounts"] .finance-account-toolbar .btn,
body[data-controller="FinancialAccounts"] .finance-account-toolbar .search-box,
body[data-controller="FinancialAccounts"] .finance-account-toolbar .custom-select-trigger,
body[data-controller="FinancialAccounts"] .finance-account-toolbar .searchable-select-trigger,
body[data-controller="JournalEntries"] .financial-one-line-toolbar .btn,
body[data-controller="JournalEntries"] .financial-one-line-toolbar .search-box,
body[data-controller="JournalEntries"] .financial-one-line-toolbar .custom-select-trigger,
body[data-controller="JournalEntries"] .financial-one-line-toolbar .searchable-select-trigger,
body[data-controller="JournalEntries"] .financial-one-line-toolbar input[type="date"],
body[data-controller="CostCenters"] .financial-one-line-toolbar .btn,
body[data-controller="CostCenters"] .financial-one-line-toolbar .search-box,
body[data-controller="CostCenters"] .financial-one-line-toolbar .custom-select-trigger,
body[data-controller="CostCenters"] .financial-one-line-toolbar .searchable-select-trigger,
body[data-controller="Banks"] .toolbar.compact-toolbar .btn,
body[data-controller="Banks"] .toolbar.compact-toolbar .search-box,
body[data-controller="Banks"] .toolbar.compact-toolbar .custom-select-trigger,
body[data-controller="Banks"] .toolbar.compact-toolbar .searchable-select-trigger,
body[data-controller="CustomerReceivables"] .receivable-toolbar .btn,
body[data-controller="CustomerReceivables"] .receivable-toolbar .search-box,
body[data-controller="CustomerReceivables"] .receivable-toolbar .custom-select-trigger,
body[data-controller="CustomerReceivables"] .receivable-toolbar .searchable-select-trigger,
body[data-controller="CustomerReceivables"] .receivable-toolbar .date-entry,
body[data-controller="SupplierPayables"] .receivable-toolbar .btn,
body[data-controller="SupplierPayables"] .receivable-toolbar .search-box,
body[data-controller="SupplierPayables"] .receivable-toolbar .custom-select-trigger,
body[data-controller="SupplierPayables"] .receivable-toolbar .searchable-select-trigger,
body[data-controller="SupplierPayments"] .supplier-payment-filter-bar .btn,
body[data-controller="SupplierPayments"] .supplier-payment-filter-bar .search-box,
body[data-controller="SupplierPayments"] .supplier-payment-filter-bar .custom-select-trigger,
body[data-controller="SupplierPayments"] .supplier-payment-filter-bar .searchable-select-trigger,
body[data-controller="SupplierPayments"] .supplier-payment-filter-bar input[type="date"],
body[data-controller="PosShifts"] .shift-filter-bar .btn,
body[data-controller="PosShifts"] .shift-filter-bar .custom-select-trigger,
body[data-controller="PosShifts"] .shift-filter-bar .searchable-select-trigger,
body[data-controller="PosShifts"] .shift-filter-bar input[type="date"],
body[data-controller="PosShifts"] .shift-daily-filter-bar .btn,
body[data-controller="PosShifts"] .shift-daily-filter-bar .custom-select-trigger,
body[data-controller="PosShifts"] .shift-daily-filter-bar .searchable-select-trigger,
body[data-controller="PosShifts"] .shift-daily-filter-bar input[type="date"],
body[data-controller="FinancialReports"] .toolbar.compact-toolbar .btn,
body[data-controller="FinancialReports"] .toolbar.compact-toolbar .custom-select-trigger,
body[data-controller="FinancialReports"] .toolbar.compact-toolbar .searchable-select-trigger,
body[data-controller="FinancialReports"] .toolbar.compact-toolbar input[type="date"],
body[data-controller="FinancialReports"] .toolbar.compact-toolbar input[name="currencyCode"],
body[data-controller="FiscalYears"] .accounting-close-filter .btn,
body[data-controller="FiscalYears"] .accounting-close-filter .custom-select-trigger,
body[data-controller="FiscalYears"] .accounting-close-filter .searchable-select-trigger,
body[data-controller="FiscalYears"] .accounting-close-filter select{
  box-sizing:border-box!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
}

/* Account directory: action buttons keep natural width, filters own the rest. */
body[data-controller="FinancialAccounts"] .finance-account-toolbar{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:end!important;
  gap:10px!important;
}
body[data-controller="FinancialAccounts"] .finance-account-filter{
  display:grid!important;
  grid-template-columns:minmax(300px,2fr) minmax(165px,1fr) minmax(145px,.85fr) auto!important;
  width:100%!important;min-width:0!important;max-width:none!important;
  gap:8px!important;align-items:end!important;
}
body[data-controller="FinancialAccounts"] .finance-account-filter>.search-box,
body[data-controller="FinancialAccounts"] .finance-account-filter>.custom-select-shell,
body[data-controller="FinancialAccounts"] .finance-account-filter>.searchable-select-shell{
  width:100%!important;min-width:0!important;max-width:none!important;
}

/* Journal entries: no dead area; search receives the largest track. */
body[data-controller="JournalEntries"] .financial-one-line-toolbar{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:end!important;
}
body[data-controller="JournalEntries"] .journal-filter-bar{
  display:grid!important;
  grid-template-columns:minmax(300px,2fr) minmax(170px,1fr) minmax(150px,.8fr) minmax(145px,.8fr) minmax(145px,.8fr) auto!important;
  width:100%!important;min-width:0!important;max-width:none!important;
  gap:8px!important;align-items:end!important;
}
body[data-controller="JournalEntries"] .journal-filter-bar>*{
  min-width:0!important;max-width:none!important;
}
body[data-controller="JournalEntries"] .journal-filter-bar>.search-box,
body[data-controller="JournalEntries"] .journal-filter-bar>.custom-select-shell,
body[data-controller="JournalEntries"] .journal-filter-bar>.searchable-select-shell,
body[data-controller="JournalEntries"] .journal-filter-bar>input[type="date"]{
  width:100%!important;max-width:none!important;
}

/* Cost centers and banks use the same fill-the-row pattern. */
body[data-controller="CostCenters"] .financial-one-line-toolbar,
body[data-controller="Banks"] .toolbar.compact-toolbar{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:end!important;
  gap:10px!important;
}
body[data-controller="CostCenters"] .financial-one-line-toolbar>.filter-bar,
body[data-controller="Banks"] .toolbar.compact-toolbar>.filter-bar{
  display:grid!important;
  grid-template-columns:minmax(320px,2fr) minmax(165px,1fr) auto!important;
  width:100%!important;min-width:0!important;max-width:none!important;
  gap:8px!important;align-items:end!important;
}
body[data-controller="CostCenters"] .financial-one-line-toolbar>.filter-bar>.search-box,
body[data-controller="CostCenters"] .financial-one-line-toolbar>.filter-bar>.custom-select-shell,
body[data-controller="Banks"] .toolbar.compact-toolbar>.filter-bar>.search-box,
body[data-controller="Banks"] .toolbar.compact-toolbar>.filter-bar>.custom-select-shell{
  width:100%!important;min-width:0!important;max-width:none!important;
}

/* AR/AP: occupy all available space while keeping the due-sync block separate. */
body[data-controller="CustomerReceivables"] .receivable-toolbar{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:end!important;
  gap:12px!important;
}
body[data-controller="SupplierPayables"] .receivable-toolbar{
  display:block!important;
}
body[data-controller="CustomerReceivables"] .receivable-filter-grid,
body[data-controller="SupplierPayables"] .receivable-filter-grid{
  display:grid!important;
  grid-template-columns:minmax(320px,2fr) minmax(180px,.8fr) auto!important;
  width:100%!important;min-width:0!important;max-width:none!important;
  gap:8px!important;align-items:end!important;
}
body[data-controller="CustomerReceivables"] .receivable-search-field,
body[data-controller="SupplierPayables"] .receivable-search-field,
body[data-controller="CustomerReceivables"] .receivable-currency-field,
body[data-controller="SupplierPayables"] .receivable-currency-field{
  width:100%!important;min-width:0!important;max-width:none!important;
}
body[data-controller="CustomerReceivables"] .sync-receivables-form{
  align-self:end!important;
}

/* Shift close report: restore GRID after the old flex !important regression. */
body[data-controller="PosShifts"][data-action="Index"] .shift-filter-bar{
  display:block!important;
  padding:12px 14px!important;
}
body[data-controller="PosShifts"][data-action="Index"] .shift-filter-fields{
  display:grid!important;
  grid-template-columns:minmax(280px,1.55fr) minmax(190px,1fr) minmax(190px,1fr) auto!important;
  width:100%!important;min-width:0!important;max-width:none!important;
  gap:9px!important;align-items:end!important;
}
body[data-controller="PosShifts"][data-action="Index"] .shift-status-field,
body[data-controller="PosShifts"][data-action="Index"] .shift-date-filter{
  width:100%!important;min-width:0!important;max-width:none!important;
}
body[data-controller="PosShifts"][data-action="Index"] .shift-filter-actions{
  height:42px!important;min-height:42px!important;
  display:flex!important;align-items:stretch!important;gap:8px!important;
}

/* Daily shift report follows the same baseline and uses the whole row. */
body[data-controller="PosShifts"][data-action="DailySales"] .shift-daily-filter-bar{
  display:flex!important;
  width:100%!important;
  align-items:end!important;
  gap:9px!important;
  flex-wrap:nowrap!important;
  padding:12px 14px!important;
}
body[data-controller="PosShifts"][data-action="DailySales"] .shift-daily-filter-bar>.field{
  flex:1 1 240px!important;min-width:0!important;max-width:none!important;
}
body[data-controller="PosShifts"][data-action="DailySales"] .shift-daily-employee-filter{
  flex:2 1 420px!important;
}
body[data-controller="PosShifts"][data-action="DailySales"] .shift-daily-filter-bar>.btn{
  flex:0 0 auto!important;
}

/* Financial reports: every filter form fills its panel; no fixed-width island. */
body[data-controller="FinancialReports"] .toolbar.compact-toolbar{
  display:block!important;
  padding:12px 14px!important;
}
body[data-controller="FinancialReports"] .fin-report-filter,
body[data-controller="FinancialReports"] .trial-filter,
body[data-controller="FinancialReports"] .statement-filter,
body[data-controller="FinancialReports"] .vat-filter,
body[data-controller="FinancialReports"] .aging-filter{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  align-items:end!important;
  gap:9px!important;
}
body[data-controller="FinancialReports"] .aging-filter{
  display:grid!important;
  grid-template-columns:minmax(250px,1.5fr) minmax(190px,1fr) auto auto!important;
}
body[data-controller="FinancialReports"] .aging-filter>.field{
  width:100%!important;min-width:0!important;max-width:none!important;
}
body[data-controller="FinancialReports"] .aging-filter>.field>input{
  box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:none!important;
}
body[data-controller="FinancialReports"] .fin-report-actions,
body[data-controller="FinancialReports"] .trial-actions,
body[data-controller="FinancialReports"] .statement-actions,
body[data-controller="FinancialReports"] .vat-actions{
  height:42px!important;min-height:42px!important;
  display:flex!important;align-items:stretch!important;gap:8px!important;
}
body[data-controller="FinancialReports"] .fin-report-actions>.btn,
body[data-controller="FinancialReports"] .trial-actions>.btn,
body[data-controller="FinancialReports"] .statement-actions>.btn,
body[data-controller="FinancialReports"] .vat-actions>.btn{
  height:42px!important;min-height:42px!important;
}

/* Period-close filter also reaches the panel edge with the same button height. */
body[data-controller="FiscalYears"][data-action="CloseChecklist"] .accounting-close-filter{
  display:grid!important;
  grid-template-columns:minmax(280px,1.25fr) minmax(260px,2fr) auto!important;
  width:100%!important;
  gap:9px!important;
  align-items:end!important;
}

/* Responsive: move whole controls, never squeeze them into each other. */
@media(max-width:1250px){
  body[data-controller="FinancialAccounts"] .finance-account-toolbar,
  body[data-controller="JournalEntries"] .financial-one-line-toolbar,
  body[data-controller="CostCenters"] .financial-one-line-toolbar,
  body[data-controller="Banks"] .toolbar.compact-toolbar,
  body[data-controller="CustomerReceivables"] .receivable-toolbar{
    grid-template-columns:1fr!important;
  }
  body[data-controller="FinancialAccounts"] .finance-account-toolbar>.toolbar-actions,
  body[data-controller="JournalEntries"] .financial-one-line-toolbar>.toolbar-actions,
  body[data-controller="CostCenters"] .financial-one-line-toolbar>.toolbar-actions,
  body[data-controller="Banks"] .toolbar.compact-toolbar>.toolbar-actions{
    justify-self:start!important;
  }
  body[data-controller="JournalEntries"] .journal-filter-bar{
    grid-template-columns:repeat(3,minmax(180px,1fr))!important;
  }
  body[data-controller="PosShifts"][data-action="Index"] .shift-filter-fields{
    grid-template-columns:repeat(2,minmax(220px,1fr))!important;
  }
  body[data-controller="PosShifts"][data-action="Index"] .shift-filter-actions{grid-column:1/-1!important}
  body[data-controller="CustomerReceivables"] .sync-receivables-form{width:100%!important;justify-content:flex-start!important}
}
@media(max-width:900px){
  body[data-controller="FinancialAccounts"] .finance-account-filter,
  body[data-controller="CostCenters"] .financial-one-line-toolbar>.filter-bar,
  body[data-controller="Banks"] .toolbar.compact-toolbar>.filter-bar,
  body[data-controller="CustomerReceivables"] .receivable-filter-grid,
  body[data-controller="SupplierPayables"] .receivable-filter-grid{
    grid-template-columns:1fr 1fr!important;
  }
  body[data-controller="JournalEntries"] .journal-filter-bar{grid-template-columns:1fr 1fr!important}
  body[data-controller="PosShifts"][data-action="DailySales"] .shift-daily-filter-bar{flex-wrap:wrap!important}
  body[data-controller="PosShifts"][data-action="DailySales"] .shift-daily-filter-bar>.field{flex:1 1 100%!important}
  body[data-controller="FinancialReports"] .aging-filter{grid-template-columns:1fr 1fr!important}
  body[data-controller="FiscalYears"][data-action="CloseChecklist"] .accounting-close-filter{grid-template-columns:1fr!important}
}
@media(max-width:640px){
  body[data-controller="FinancialAccounts"] .finance-account-filter,
  body[data-controller="JournalEntries"] .journal-filter-bar,
  body[data-controller="CostCenters"] .financial-one-line-toolbar>.filter-bar,
  body[data-controller="Banks"] .toolbar.compact-toolbar>.filter-bar,
  body[data-controller="CustomerReceivables"] .receivable-filter-grid,
  body[data-controller="SupplierPayables"] .receivable-filter-grid,
  body[data-controller="PosShifts"][data-action="Index"] .shift-filter-fields,
  body[data-controller="FinancialReports"] .aging-filter{
    grid-template-columns:1fr!important;
  }
  body[data-controller="CustomerReceivables"] .receivable-filter-actions,
  body[data-controller="SupplierPayables"] .receivable-filter-actions,
  body[data-controller="PosShifts"][data-action="Index"] .shift-filter-actions{
    grid-column:auto!important;width:100%!important;height:auto!important;flex-wrap:wrap!important;
  }
  body[data-controller="CustomerReceivables"] .receivable-filter-actions>* ,
  body[data-controller="SupplierPayables"] .receivable-filter-actions>* ,
  body[data-controller="PosShifts"][data-action="Index"] .shift-filter-actions>*{
    flex:1 1 140px!important;
  }
}

/* ========================================================================== */
/* V24.8.1.2 — Procurement UI cleanup                                        */
/* UI only: compact supplier documents, themed textareas, help hints, dates. */
/* ========================================================================== */

/* Free-text areas in procurement must look like project controls, not browser-native textareas. */
.bs-themed-textarea,
.document-reason-textarea.bs-themed-textarea{
  box-sizing:border-box!important;
  width:100%!important;
  min-height:42px!important;
  max-height:120px!important;
  padding:9px 11px!important;
  border:1px solid #cbdcd3!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#20372c!important;
  font:500 13px/1.65 'Cairo',Tahoma,Arial,sans-serif!important;
  text-align:right!important;
  direction:rtl!important;
  outline:none!important;
  box-shadow:none!important;
  resize:none!important;
  appearance:none!important;
  -webkit-appearance:none!important;
  overflow:auto!important;
  transition:border-color .18s,box-shadow .18s,background-color .18s!important;
}
.bs-themed-textarea:focus,
.document-reason-textarea.bs-themed-textarea:focus{
  border-color:#75a95f!important;
  box-shadow:0 0 0 3px rgba(75,139,60,.10)!important;
}
.bs-themed-textarea[readonly],
.document-reason-textarea.bs-themed-textarea[readonly]{
  background:#f7f9f6!important;
  color:#56635b!important;
}
.document-reason-form .document-reason-textarea.bs-themed-textarea,
.supplier-invoice-void-reason .document-reason-textarea,
.supplier-return-void-reason .document-reason-textarea{
  min-height:64px!important;
}
.supplier-return-header-grid .reason-field .bs-themed-textarea,
.supplier-return-header-grid .notes-field .bs-themed-textarea,
.supplier-invoice-secondary-row .invoice-notes-field .bs-themed-textarea{
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
}

/* Supplier invoice: warehouse + default posting account + notes share one compact row. */
.supplier-invoice-secondary-row{
  grid-column:1/-1!important;
  display:grid!important;
  grid-template-columns:minmax(220px,.9fr) minmax(320px,1.35fr) minmax(320px,2fr)!important;
  gap:10px!important;
  align-items:start!important;
  min-width:0!important;
}
.supplier-invoice-secondary-row>.field{min-width:0!important;margin:0!important}
.supplier-invoice-secondary-row .searchable-select-combo,
.supplier-invoice-secondary-row .searchable-select-trigger{width:100%!important;min-width:0!important;max-width:none!important}
.supplier-invoice-secondary-row small{display:block;margin-top:3px;color:#718078;font-size:9px;line-height:1.5}

/* Compact attachment blocks: keep upload controls visible without a large empty island. */
.supplier-invoice-doc-panel,
.supplier-return-doc-panel{
  padding:0!important;
  margin-bottom:10px!important;
}
.supplier-invoice-doc-panel>.section-title-row,
.supplier-return-doc-panel>.section-title-row{
  margin:0!important;
  padding:10px 14px!important;
  min-height:48px!important;
  border-bottom:1px solid #e7eee8!important;
}
.supplier-invoice-upload-form,
.supplier-return-upload-form{
  margin:0!important;
  padding:10px 14px!important;
}
.supplier-invoice-doc-list,
.supplier-return-doc-list{
  padding:0 14px 10px!important;
}
.supplier-invoice-doc-list>.empty-state,
.supplier-return-doc-list>.empty-state{
  grid-column:1/-1!important;
  min-height:0!important;
  padding:14px 10px!important;
  gap:3px!important;
  font-size:10.5px!important;
  border-top:1px solid #edf1ec!important;
}

/* Cancellation panels: explicit label + project textarea, no native resize handle. */
.supplier-invoice-void-panel form{align-items:end!important}
.supplier-invoice-void-reason{min-width:0!important}
.supplier-invoice-void-reason label{display:block;margin:0 0 5px;font-size:10.5px;color:#744b46;font-weight:800}
.supplier-invoice-void-reason label em{color:#d84b43;font-style:normal;font-weight:900}
.supplier-invoice-void-panel .bs-themed-textarea,
.supplier-return-void-panel .bs-themed-textarea{border-color:#e5c1bc!important}
.supplier-invoice-void-panel .bs-themed-textarea:focus,
.supplier-return-void-panel .bs-themed-textarea:focus{border-color:#d78b80!important;box-shadow:0 0 0 3px rgba(215,139,128,.12)!important}

/* Warehouse requirement is a contextual hint instead of permanent helper text. */
.field-label-with-help{display:flex!important;align-items:center!important;gap:5px!important;position:relative!important;width:max-content;max-width:100%}
.field-help-icon{
  position:relative!important;
  display:inline-grid!important;
  place-items:center!important;
  width:17px!important;height:17px!important;
  border:1px solid #a9bcae!important;
  border-radius:50%!important;
  background:#f5faf4!important;
  color:#2f6e3b!important;
  font:900 10px/1 Arial,sans-serif!important;
  cursor:help!important;
  outline:none!important;
  flex:0 0 auto!important;
}
.field-help-icon:hover,
.field-help-icon:focus{border-color:#75a95f!important;background:#edf7eb!important;box-shadow:0 0 0 3px rgba(75,139,60,.10)!important}
.field-help-icon::after{
  content:attr(data-hint);
  position:absolute;
  z-index:240;
  right:50%;
  bottom:calc(100% + 8px);
  transform:translateX(50%);
  width:max-content;
  max-width:min(320px,70vw);
  padding:7px 10px;
  border-radius:8px;
  background:#173c2c;
  color:#fff;
  box-shadow:0 8px 24px rgba(12,42,29,.18);
  font:500 10.5px/1.6 'Cairo',Tahoma,Arial,sans-serif;
  text-align:right;
  direction:rtl;
  white-space:normal;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .15s,visibility .15s;
}
.field-help-icon:hover::after,
.field-help-icon:focus::after{opacity:1;visibility:visible}

/* GRN receipt date: never collapse enough to clip yyyy-MM-dd. */
.purchase-receipt-date-field{min-width:150px!important}
.purchase-receipt-date-field>input[type="date"]{
  width:100%!important;
  min-width:145px!important;
  direction:ltr!important;
  text-align:center!important;
  font-variant-numeric:tabular-nums!important;
}

/* Main purchase-order approval is always a named primary workflow action. */
.purchase-command-bar button[form="approvePurchaseOrderForm"]{
  min-width:150px!important;
  white-space:nowrap!important;
}

@media(max-width:1200px){
  .supplier-invoice-secondary-row{grid-template-columns:1fr 1.35fr!important}
  .supplier-invoice-secondary-row .invoice-notes-field{grid-column:1/-1!important}
}
@media(max-width:760px){
  .supplier-invoice-secondary-row{grid-template-columns:1fr!important}
  .supplier-invoice-secondary-row .invoice-notes-field{grid-column:auto!important}
  .supplier-invoice-upload-form,.supplier-return-upload-form{padding:9px 10px!important}
  .supplier-invoice-doc-list,.supplier-return-doc-list{padding-inline:10px!important}
  .field-help-icon::after{right:0;transform:none;max-width:240px}
}

/* ========================================================================== */
/* V24.9.0.0 — Finance controls, full-width filters and shortage management   */
/* ========================================================================== */

/* Shared toolbar/search/filter shells must fill their panel width. */
.panel > .toolbar,
.panel > .toolbar > form,
form.toolbar{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}

/* Finance report/search bars must consume the whole content width. */
body[data-controller="FinancialReports"] .panel>.toolbar.compact-toolbar,
body[data-controller="FinancialReports"] .toolbar.compact-toolbar{
  display:block!important;
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}
body[data-controller="FinancialReports"] .fin-report-filter,
body[data-controller="FinancialReports"] .trial-filter,
body[data-controller="FinancialReports"] .statement-filter,
body[data-controller="FinancialReports"] .vat-filter,
body[data-controller="FinancialReports"] .aging-filter{
  display:grid!important;
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  gap:9px!important;
  align-items:end!important;
}
body[data-controller="FinancialReports"][data-action="GeneralLedger"] .fin-report-filter{
  grid-template-columns:minmax(220px,1.7fr) minmax(165px,1fr) minmax(180px,1.15fr) minmax(180px,1.15fr) minmax(140px,.8fr) minmax(140px,.8fr) auto!important;
}
body[data-controller="FinancialReports"][data-action="TrialBalance"] .trial-filter{
  grid-template-columns:minmax(160px,.9fr) minmax(180px,1fr) minmax(180px,1fr) minmax(150px,.85fr) minmax(150px,.85fr) minmax(170px,1fr) minmax(175px,1fr) auto!important;
}
body[data-controller="FinancialReports"][data-action="IncomeStatement"] .statement-filter,
body[data-controller="FinancialReports"][data-action="BalanceSheet"] .statement-filter,
body[data-controller="FinancialReports"] .statement-filter{
  grid-template-columns:minmax(170px,.9fr) minmax(180px,1fr) minmax(180px,1fr) minmax(175px,1fr) minmax(155px,.85fr) minmax(155px,.85fr) auto!important;
}
body[data-controller="FinancialReports"] .statement-filter.balance{
  grid-template-columns:minmax(180px,1fr) minmax(190px,1fr) minmax(190px,1fr) minmax(180px,1fr) minmax(170px,.9fr) auto!important;
}
body[data-controller="FinancialReports"][data-action="VatReport"] .vat-filter,
body[data-controller="FinancialReports"] .vat-filter{
  grid-template-columns:minmax(210px,1.35fr) minmax(210px,1.35fr) minmax(165px,.9fr) minmax(165px,.9fr) auto!important;
}
body[data-controller="FinancialReports"] .aging-filter{
  grid-template-columns:minmax(260px,2fr) minmax(200px,1.35fr) auto auto!important;
}
body[data-controller="FinancialReports"] .fin-report-filter>.field,
body[data-controller="FinancialReports"] .trial-filter>.field,
body[data-controller="FinancialReports"] .statement-filter>.field,
body[data-controller="FinancialReports"] .vat-filter>.field,
body[data-controller="FinancialReports"] .aging-filter>.field,
body[data-controller="FinancialReports"] .fin-report-filter .custom-select-shell,
body[data-controller="FinancialReports"] .fin-report-filter .searchable-select-shell,
body[data-controller="FinancialReports"] .trial-filter .custom-select-shell,
body[data-controller="FinancialReports"] .trial-filter .searchable-select-shell,
body[data-controller="FinancialReports"] .statement-filter .custom-select-shell,
body[data-controller="FinancialReports"] .statement-filter .searchable-select-shell,
body[data-controller="FinancialReports"] .vat-filter .custom-select-shell,
body[data-controller="FinancialReports"] .vat-filter .searchable-select-shell,
body[data-controller="FinancialReports"] .aging-filter input{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}

/* Native textarea sweep: use project theme and prevent browser resize handles. */
textarea:not([data-native-textarea]){
  box-sizing:border-box;
  width:100%;
  min-height:42px;
  max-height:160px;
  resize:none!important;
  appearance:none;
  -webkit-appearance:none;
  border:1px solid #cbdcd3;
  border-radius:10px;
  background:#fff;
  color:#20372c;
  padding:9px 11px;
  font:500 13px/1.6 'Cairo',Tahoma,Arial,sans-serif;
  outline:none;
  box-shadow:none;
}
textarea:not([data-native-textarea]):focus{
  border-color:#75a95f;
  box-shadow:0 0 0 3px rgba(75,139,60,.10);
}
textarea:not([data-native-textarea])[readonly],
textarea:not([data-native-textarea]):disabled{
  background:#f6f8f6;
  color:#59675f;
}
.bs-themed-textarea{height:42px!important;min-height:42px!important;max-height:42px!important;overflow-y:auto!important}

/* Supplier-payment secondary fields stay compact and aligned in one row. */
body[data-controller="SupplierPayments"] .supplier-payment-grid{
  align-items:end!important;
}
body[data-controller="SupplierPayments"] .supplier-payment-notes-field{
  min-width:0!important;
}
body[data-controller="SupplierPayments"] .supplier-payment-notes-field .bs-themed-textarea{
  width:100%!important;
}
body[data-controller="SupplierPayments"] .supplier-payment-upload-form{
  display:grid!important;
  grid-template-columns:minmax(150px,.8fr) minmax(260px,1.4fr) minmax(220px,1fr) auto!important;
  gap:8px!important;
  align-items:center!important;
}
body[data-controller="SupplierPayments"] .supplier-payment-doc-list .empty-state{
  min-height:0!important;
  padding:14px!important;
}

/* Approved table-row actions: fixed compact icon buttons, no wrapping. */
.data-table td.actions-cell .bs-row-action-set,
.data-table td.table-actions-column .bs-row-action-set,
.data-table .row-actions,
.data-table .table-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  flex-wrap:nowrap!important;
  white-space:nowrap!important;
}
.data-table .crm-action-btn,
.data-table .bs-icon-action{
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  max-width:34px!important;
  padding:0!important;
  border-radius:8px!important;
  background:#fff;
  border:1px solid #d6e1d7;
  display:inline-grid!important;
  place-items:center!important;
  flex:0 0 34px!important;
}

/* Employee shortage / overage management. */
.shortage-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.shortage-index-panel>.shortage-filter-bar,
.shortage-statement-panel>.shortage-statement-filter{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  display:grid!important;
  gap:9px!important;
  align-items:end!important;
}
.shortage-index-panel>.shortage-filter-bar{
  grid-template-columns:minmax(300px,2fr) minmax(190px,.8fr) auto!important;
}
.shortage-statement-panel>.shortage-statement-filter{
  grid-template-columns:minmax(210px,1fr) minmax(210px,1fr) auto auto!important;
}
.shortage-filter-bar .field,
.shortage-statement-filter .field,
.shortage-filter-bar .custom-select-shell,
.shortage-filter-bar .searchable-select-shell{
  min-width:0!important;
  width:100%!important;
  max-width:none!important;
}
.shortage-filter-bar input,
.shortage-statement-filter input{
  width:100%!important;
}
.shortage-balance-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  padding:12px 14px;
  border-top:1px solid #e4ebe4;
}
.shortage-balance-strip article{
  min-width:0;
  padding:12px 14px;
  border:1px solid #dce6dc;
  border-radius:12px;
  background:#f8fbf7;
}
.shortage-balance-strip span{display:block;font-size:10px;color:#728078;margin-bottom:5px}
.shortage-balance-strip b{font-size:16px;color:#173c2c}
.shortage-settlement-panel{margin-top:14px}
.shortage-settlement-form{
  display:grid!important;
  grid-template-columns:minmax(155px,.8fr) minmax(150px,.7fr) minmax(180px,.85fr) minmax(200px,1fr) minmax(180px,.9fr) minmax(180px,.9fr) minmax(280px,1.5fr) auto!important;
  gap:9px!important;
  align-items:end!important;
  padding:0 14px 14px!important;
}
.shortage-settlement-form>.field{min-width:0!important}
.shortage-settlement-form .custom-select-shell,
.shortage-settlement-form .searchable-select-shell,
.shortage-settlement-form input{width:100%!important;min-width:0!important;max-width:none!important}
.shortage-table .table-actions-column{width:58px!important;min-width:58px!important;max-width:58px!important}
.is-hidden{display:none!important}

@media(max-width:1400px){
  body[data-controller="FinancialReports"] .fin-report-filter,
  body[data-controller="FinancialReports"] .trial-filter,
  body[data-controller="FinancialReports"] .statement-filter,
  body[data-controller="FinancialReports"] .statement-filter.balance,
  body[data-controller="FinancialReports"] .vat-filter{grid-template-columns:repeat(4,minmax(170px,1fr))!important}
  .shortage-settlement-form{grid-template-columns:repeat(4,minmax(170px,1fr))!important}
  .shortage-settlement-form>.btn{grid-column:auto!important}
}
@media(max-width:950px){
  body[data-controller="FinancialReports"] .fin-report-filter,
  body[data-controller="FinancialReports"] .trial-filter,
  body[data-controller="FinancialReports"] .statement-filter,
  body[data-controller="FinancialReports"] .statement-filter.balance,
  body[data-controller="FinancialReports"] .vat-filter,
  body[data-controller="FinancialReports"] .aging-filter{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .shortage-summary-grid,.shortage-balance-strip{grid-template-columns:1fr 1fr!important}
  .shortage-index-panel>.shortage-filter-bar,
  .shortage-statement-panel>.shortage-statement-filter,
  .shortage-settlement-form{grid-template-columns:1fr 1fr!important}
  body[data-controller="SupplierPayments"] .supplier-payment-upload-form{grid-template-columns:1fr 1fr!important}
}
@media(max-width:640px){
  body[data-controller="FinancialReports"] .fin-report-filter,
  body[data-controller="FinancialReports"] .trial-filter,
  body[data-controller="FinancialReports"] .statement-filter,
  body[data-controller="FinancialReports"] .statement-filter.balance,
  body[data-controller="FinancialReports"] .vat-filter,
  body[data-controller="FinancialReports"] .aging-filter,
  .shortage-summary-grid,.shortage-balance-strip,
  .shortage-index-panel>.shortage-filter-bar,
  .shortage-statement-panel>.shortage-statement-filter,
  .shortage-settlement-form,
  body[data-controller="SupplierPayments"] .supplier-payment-upload-form{grid-template-columns:1fr!important}
}

/* ========================================================================== */
/* V24.10.0.0 — Employee variance clearing + finance filter final pass        */
/* ========================================================================== */

/* Financial movement reports: filters always fill the available panel width. */
body[data-controller="FinancialReports"] .panel > .toolbar.compact-toolbar,
body[data-controller="FinancialReports"] .panel > .toolbar.compact-toolbar > form,
body[data-controller="JournalEntries"] .panel > .toolbar.compact-toolbar,
body[data-controller="JournalEntries"] .journal-filter-bar{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
body[data-controller="FinancialReports"] .fin-report-actions,
body[data-controller="FinancialReports"] .trial-actions,
body[data-controller="FinancialReports"] .statement-actions,
body[data-controller="FinancialReports"] .vat-actions{
  display:flex!important;
  align-items:end!important;
  gap:7px!important;
  width:auto!important;
  min-width:max-content!important;
}

/* Journal list exposes the requested From/To dates as real labelled fields. */
body[data-controller="JournalEntries"] .journal-filter-bar{
  grid-template-columns:minmax(300px,2.2fr) minmax(170px,1fr) minmax(150px,.85fr) minmax(155px,.9fr) minmax(155px,.9fr) auto!important;
}
body[data-controller="JournalEntries"] .journal-filter-bar > .journal-date-field{
  min-width:0!important;
  width:100%!important;
  margin:0!important;
}
body[data-controller="JournalEntries"] .journal-filter-bar > .journal-date-field label{
  display:block;
  margin:0 0 4px;
  font-size:10px;
  color:#627168;
  white-space:nowrap;
}
body[data-controller="JournalEntries"] .journal-filter-bar > .journal-date-field input{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
}

/* Manual shortage settlement: balanced spacing, larger reason, compact action. */
.shortage-settlement-panel{
  overflow:visible;
}
.shortage-settlement-panel > .section-heading{
  padding:15px 16px 10px!important;
  margin:0!important;
}
.shortage-settlement-form{
  grid-template-columns:minmax(145px,.85fr) minmax(120px,.7fr) minmax(165px,1fr) minmax(175px,1.05fr) minmax(150px,.9fr) minmax(300px,2.25fr) auto!important;
  column-gap:10px!important;
  row-gap:14px!important;
  padding:8px 16px 18px!important;
  align-items:end!important;
}
.shortage-settlement-form > .field{
  min-width:0!important;
  margin:0!important;
}
.shortage-settlement-form > .field > label{
  display:block;
  min-height:18px;
  margin-bottom:5px!important;
}
.shortage-settlement-reason{
  min-width:300px!important;
}
.shortage-settlement-reason input{
  width:100%!important;
}
.shortage-settlement-submit{
  display:flex;
  align-items:end;
  justify-content:flex-start;
  width:auto!important;
  min-width:0!important;
}
.shortage-settlement-submit > .btn{
  width:auto!important;
  min-width:145px!important;
  max-width:175px!important;
  padding-inline:16px!important;
  white-space:nowrap;
}
.shortage-statement-table .table-actions-column{
  width:58px!important;
  min-width:58px!important;
  max-width:58px!important;
  text-align:center!important;
}

@media(max-width:1400px){
  .shortage-settlement-form{
    grid-template-columns:repeat(4,minmax(160px,1fr))!important;
  }
  .shortage-settlement-reason{grid-column:span 2!important;min-width:0!important}
  .shortage-settlement-submit{grid-column:auto!important}
  body[data-controller="JournalEntries"] .journal-filter-bar{
    grid-template-columns:minmax(260px,2fr) repeat(2,minmax(145px,1fr)) repeat(2,minmax(150px,1fr)) auto!important;
  }
}
@media(max-width:950px){
  .shortage-settlement-form{grid-template-columns:1fr 1fr!important}
  .shortage-settlement-reason{grid-column:1 / -1!important}
  .shortage-settlement-submit{grid-column:1 / -1!important;justify-content:flex-end!important}
  body[data-controller="JournalEntries"] .journal-filter-bar{grid-template-columns:1fr 1fr!important}
  body[data-controller="JournalEntries"] .journal-filter-bar > .search-box{grid-column:1 / -1!important}
}
@media(max-width:640px){
  .shortage-settlement-form,
  body[data-controller="JournalEntries"] .journal-filter-bar{grid-template-columns:1fr!important}
  .shortage-settlement-reason,
  .shortage-settlement-submit,
  body[data-controller="JournalEntries"] .journal-filter-bar > .search-box{grid-column:auto!important}
  .shortage-settlement-submit > .btn{width:100%!important;max-width:none!important}
}

/* ========================================================================== */
/* V24.11.0.0 — Bank reconciliation + accounting finalization                */
/* ========================================================================== */
body[data-controller="BankReconciliations"] .bankrec-index-panel,
body[data-controller="BankReconciliations"] .bankrec-edit-panel{
  overflow:visible;
}
body[data-controller="BankReconciliations"] .bankrec-toolbar{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  display:flex!important;
  align-items:end!important;
  gap:10px!important;
  padding:12px 14px!important;
}
body[data-controller="BankReconciliations"] .bankrec-filter-bar{
  flex:1 1 auto!important;
  min-width:0!important;
  width:100%!important;
  max-width:none!important;
  display:grid!important;
  grid-template-columns:minmax(320px,2fr) minmax(170px,.9fr) minmax(170px,.9fr) auto!important;
  gap:9px!important;
  align-items:end!important;
}
body[data-controller="BankReconciliations"] .bankrec-filter-bar .field,
body[data-controller="BankReconciliations"] .bankrec-filter-bar .searchable-select-shell,
body[data-controller="BankReconciliations"] .bankrec-filter-bar .custom-select-shell,
body[data-controller="BankReconciliations"] .bankrec-filter-bar input,
body[data-controller="BankReconciliations"] .bankrec-filter-bar select{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}
body[data-controller="BankReconciliations"] .bankrec-new-btn{
  flex:0 0 auto!important;
  white-space:nowrap!important;
}
.bankrec-summary-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
.bankrec-head-grid{
  display:grid!important;
  grid-template-columns:minmax(290px,1.55fr) minmax(155px,.75fr) minmax(155px,.75fr) minmax(175px,.8fr) minmax(260px,1.35fr) auto!important;
  gap:10px!important;
  align-items:end!important;
  padding:14px 16px!important;
}
.bankrec-head-grid>.field,
.bankrec-head-grid .searchable-select-shell,
.bankrec-head-grid .custom-select-shell,
.bankrec-head-grid input,
.bankrec-head-grid select{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}
.bankrec-load-action{display:flex;align-items:end;white-space:nowrap}
.bankrec-kpis{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:9px;
  padding:0 16px 12px;
}
.bankrec-kpis article{
  min-width:0;
  border:1px solid #dce6dc;
  border-radius:12px;
  background:#f8fbf7;
  padding:11px 13px;
}
.bankrec-kpis span{display:block;font-size:10px;color:#6f7e74;margin-bottom:5px}
.bankrec-kpis b{font-size:16px;color:#173c2c}
.bankrec-kpis .bankrec-diff-ok{background:#eef8ec;border-color:#cfe5cc}
.bankrec-kpis .bankrec-diff-ok b{color:#1f7a35}
.bankrec-kpis .bankrec-diff-bad{background:#fff2ef;border-color:#f1d0c9}
.bankrec-kpis .bankrec-diff-bad b{color:#c53b32}

.bankrec-kpis .bankrec-matched{background:#f2f8ff;border-color:#d5e6f8}
.bankrec-kpis .bankrec-matched b{color:#1769a8}
.bankrec-selection-warning{
  margin:-2px 16px 12px;
  padding:9px 12px;
  border:1px solid #efd7a4;
  border-radius:10px;
  background:#fff8e9;
  color:#8a5a00;
  font-size:11px;
  font-weight:700;
}
.bankrec-selection-warning[hidden]{display:none!important}
.bankrec-help{
  margin:0 16px 12px;
  padding:10px 12px;
  border:1px solid #dbe6dc;
  border-radius:10px;
  background:#f7faf6;
  color:#56665c;
  font-size:11px;
}
.bankrec-lines .bankrec-check-cell{text-align:center!important;width:110px!important;min-width:110px!important}
.bankrec-check{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative}
.bankrec-check input{position:absolute;opacity:0;pointer-events:none}
.bankrec-check span{
  width:22px;height:22px;border-radius:6px;border:1px solid #bfcfc1;background:#fff;display:grid;place-items:center;transition:.15s ease;
}
.bankrec-check input:checked+span{background:#2f8b3a;border-color:#2f8b3a}
.bankrec-check input:checked+span:after{content:"✓";color:#fff;font-weight:800;font-size:14px;line-height:1}
.bankrec-check input:disabled+span{opacity:.65;cursor:not-allowed}
.bankrec-footer{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:12px 16px 16px;
  border-top:1px solid #e3ebe4;
}
.bankrec-footer-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bankrec-table .table-actions-column{width:64px!important;min-width:64px!important;max-width:64px!important}

@media(max-width:1400px){
  .bankrec-head-grid{grid-template-columns:repeat(3,minmax(180px,1fr))!important}
  .bankrec-notes-field{grid-column:span 2!important}
  body[data-controller="BankReconciliations"] .bankrec-filter-bar{grid-template-columns:minmax(260px,1.7fr) repeat(2,minmax(160px,1fr)) auto!important}
}
@media(max-width:950px){
  .bankrec-summary-grid,.bankrec-kpis{grid-template-columns:1fr 1fr!important}
  body[data-controller="BankReconciliations"] .bankrec-toolbar{flex-wrap:wrap!important}
  body[data-controller="BankReconciliations"] .bankrec-filter-bar{grid-template-columns:1fr 1fr!important}
  body[data-controller="BankReconciliations"] .bankrec-account-filter{grid-column:1 / -1!important}
  .bankrec-head-grid{grid-template-columns:1fr 1fr!important}
  .bankrec-bank-field,.bankrec-notes-field{grid-column:1 / -1!important}
}
@media(max-width:640px){
  .bankrec-summary-grid,.bankrec-kpis,
  body[data-controller="BankReconciliations"] .bankrec-filter-bar,
  .bankrec-head-grid{grid-template-columns:1fr!important}
  body[data-controller="BankReconciliations"] .bankrec-account-filter,
  .bankrec-bank-field,.bankrec-notes-field{grid-column:auto!important}
  body[data-controller="BankReconciliations"] .bankrec-new-btn{width:100%!important;justify-content:center!important}
  .bankrec-footer{align-items:stretch;flex-direction:column-reverse}
  .bankrec-footer-actions{display:grid;grid-template-columns:1fr;gap:8px;width:100%}
  .bankrec-footer .btn{width:100%!important;justify-content:center!important}
}

/* V24.11.0.6 - Accounting close warnings + explicit disabled state */
.accounting-close-check-row.warning{background:#fffaf1}
.accounting-close-check-row.warning .close-check-icon{background:#fff0c9;color:#986b00}
.accounting-close-check-row.warning.has-details:hover{background:#fff7e7;box-shadow:inset 3px 0 0 #d29a22}
.accounting-close-check-row.warning.has-details:focus-visible{outline-color:#d29a22}
.accounting-close-check-row.warning .close-check-open-details{color:#986b00}
.accounting-close-actions .btn.is-disabled,
.accounting-close-actions .btn:disabled{opacity:.5;cursor:not-allowed;filter:saturate(.55);box-shadow:none}

/* V24.11.0.6 - Bank reconciliation select-all */
.bankrec-check-all{gap:6px;margin-inline-start:8px;vertical-align:middle;font-weight:700;font-size:10px;color:#536159}
.bankrec-check-all small{font-size:9.5px;white-space:nowrap}
.bankrec-check input:indeterminate+span{background:#d8a327;border-color:#d8a327}
.bankrec-check input:indeterminate+span:after{content:"−";color:#fff;font-weight:900;font-size:14px;line-height:1}

/* ========================================================================== */
/* V24.11.0.7 Hotfix C — Chart hierarchy navigation + contained side tree      */
/* ========================================================================== */
body[data-controller="FinancialAccounts"] .finance-accounts-layout{
  display:grid!important;
  grid-template-columns:clamp(300px,22vw,360px) minmax(0,1fr)!important;
  align-items:stretch!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:visible!important;
}
body[data-controller="FinancialAccounts"] .finance-account-tree-panel{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:360px!important;
  align-self:stretch!important;
  height:auto!important;
  min-height:100%!important;
  overflow:visible!important;
  border-left:1px solid var(--border)!important;
  border-bottom:0!important;
  background:linear-gradient(180deg,#f9fcf8 0,#fff 100%)!important;
  position:relative!important;
  z-index:1!important;
}
body[data-controller="FinancialAccounts"] .finance-account-tree-scroll{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  max-height:none!important;
  min-height:0!important;
  height:auto!important;
  overflow:visible!important;
  scrollbar-gutter:auto!important;
  padding:7px 7px 18px!important;
}
body[data-controller="FinancialAccounts"] .finance-account-table-panel{
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  position:relative!important;
  z-index:0!important;
}
body[data-controller="FinancialAccounts"] .finance-account-table-wrap{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:auto!important;
}
body[data-controller="FinancialAccounts"] .finance-tree-list,
body[data-controller="FinancialAccounts"] .finance-tree-list .finance-tree-list{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
}
body[data-controller="FinancialAccounts"] .finance-tree-list .finance-tree-list{
  margin:1px 0 2px!important;
  padding-right:15px!important;
  border-right:1px solid #dce8d8!important;
}
body[data-controller="FinancialAccounts"] .finance-tree-item{
  min-width:0!important;
  max-width:100%!important;
}
body[data-controller="FinancialAccounts"] .finance-tree-node{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  min-height:34px!important;
  padding:6px 7px!important;
  margin:1px 0!important;
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  overflow:hidden!important;
  border:1px solid transparent!important;
  border-radius:8px!important;
  background:transparent!important;
  text-align:right!important;
}
/* Tree is navigation only: no + decoration on leaves or summary nodes. */
body[data-controller="FinancialAccounts"] .finance-tree-node::before,
body[data-controller="FinancialAccounts"] .finance-tree-node::after{
  content:none!important;
  display:none!important;
}
body[data-controller="FinancialAccounts"] .finance-tree-node:hover{
  background:#f0f7ed!important;
  border-color:#deebda!important;
}
body[data-controller="FinancialAccounts"] .finance-tree-node.selected{
  background:#e1f2dc!important;
  border-color:#b9d9b2!important;
  box-shadow:inset -3px 0 0 #3f8a3d!important;
}
body[data-controller="FinancialAccounts"] .finance-tree-node .finance-tree-name{
  flex:1 1 auto!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
body[data-controller="FinancialAccounts"] .finance-tree-node small{
  flex:0 0 auto!important;
  max-width:92px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  margin-right:auto!important;
}
body[data-controller="FinancialAccounts"] .finance-tree-pane-head{
  gap:8px!important;
  align-items:center!important;
}
body[data-controller="FinancialAccounts"] .finance-tree-pane-head>div{
  min-width:0!important;
}
body[data-controller="FinancialAccounts"] .finance-tree-reset{
  flex:0 0 auto!important;
  min-width:42px!important;
  height:30px!important;
  padding:0 9px!important;
  border:1px solid #cfe0cb!important;
  border-radius:9px!important;
  background:#f4faf2!important;
  color:#2f7532!important;
  font-weight:800!important;
  cursor:pointer!important;
}
body[data-controller="FinancialAccounts"] .finance-account-list-head{
  min-height:58px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
}
body[data-controller="FinancialAccounts"] .finance-account-list-head>div{
  min-width:0!important;
}
body[data-controller="FinancialAccounts"] .finance-account-list-head small{
  display:block!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
body[data-controller="FinancialAccounts"] .finance-scope-clear{
  flex:0 0 auto!important;
  height:34px!important;
  min-height:34px!important;
  padding:6px 11px!important;
}
@media(max-width:1100px){
  body[data-controller="FinancialAccounts"] .finance-accounts-layout{
    grid-template-columns:1fr!important;
    overflow:visible!important;
  }
  body[data-controller="FinancialAccounts"] .finance-account-tree-panel{
    max-width:none!important;
    border-left:0!important;
    border-bottom:1px solid var(--border)!important;
  }
  body[data-controller="FinancialAccounts"] .finance-account-tree-scroll{
    min-height:0!important;
    max-height:none!important;
    height:auto!important;
    overflow:visible!important;
  }
}


/* ==========================================================================
   V24.11.0.7 Hotfix E — Cost Centers hierarchical list
   ========================================================================== */
body[data-controller="CostCenters"] .cost-center-name-hierarchy{
  display:flex;align-items:center;gap:6px;min-width:0;position:relative;
}
body[data-controller="CostCenters"] .cost-center-name-hierarchy b{
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
body[data-controller="CostCenters"] .cost-center-hierarchy-arrow{
  color:#87a08c;font-size:12px;font-weight:900;flex:0 0 auto;
}
body[data-controller="CostCenters"] .cost-center-name-level-1{padding-right:0}
body[data-controller="CostCenters"] .cost-center-name-level-2{padding-right:18px}
body[data-controller="CostCenters"] .cost-center-name-level-3{padding-right:36px}
body[data-controller="CostCenters"] .cost-center-name-level-4{padding-right:54px}
body[data-controller="CostCenters"] .cost-center-name-level-5{padding-right:72px}
body[data-controller="CostCenters"] .cost-center-name-level-6{padding-right:90px}
body[data-controller="CostCenters"] .cost-center-row-level-1 td{background:#fbfdf9}
body[data-controller="CostCenters"] .cost-center-row-level-1 .cost-center-name-hierarchy b{font-weight:800;color:#285f30}
body[data-controller="CostCenters"] .cost-center-row-level-2 .cost-center-name-hierarchy b,
body[data-controller="CostCenters"] .cost-center-row-level-3 .cost-center-name-hierarchy b,
body[data-controller="CostCenters"] .cost-center-row-level-4 .cost-center-name-hierarchy b,
body[data-controller="CostCenters"] .cost-center-row-level-5 .cost-center-name-hierarchy b,
body[data-controller="CostCenters"] .cost-center-row-level-6 .cost-center-name-hierarchy b{font-weight:700}
@media(max-width:760px){
  body[data-controller="CostCenters"] .cost-center-name-level-2{padding-right:10px}
  body[data-controller="CostCenters"] .cost-center-name-level-3{padding-right:20px}
  body[data-controller="CostCenters"] .cost-center-name-level-4{padding-right:30px}
  body[data-controller="CostCenters"] .cost-center-name-level-5{padding-right:40px}
  body[data-controller="CostCenters"] .cost-center-name-level-6{padding-right:50px}
}

/* ==========================================================================
   V24.11.0.7 Hotfix F - Financial mapping clarity
   ========================================================================== */
.financial-settings-panel select.financial-value-accent{
    color:#c43b32;
    font-weight:800;
}
.financial-settings-panel .searchable-select-combo:has(select.financial-value-accent) .searchable-select-label{
    color:#c43b32;
    font-weight:800;
}
.financial-settings-panel .searchable-select-combo:has(select.financial-value-accent) .searchable-select-option.is-selected{
    color:#c43b32;
    font-weight:800;
}
.pos-payment-method-editor .payment-route-field[hidden]{display:none!important}
.pos-payment-method-editor .field-help{
    display:block;
    margin-top:5px;
    color:#758077;
    font-size:11px;
    line-height:1.55;
}
.pos-payment-method-editor .payment-accounting-route{margin-top:12px}
.mapping-auto{color:#4c6f52;font-weight:700}
.mapping-missing{color:#c43b32;font-weight:800}
.row-needs-mapping td{background:#fffaf9}
.pos-payment-mapping-warning b{color:#b9322b}


/* ==========================================================================
   V24.12.0.1 - Customer Voucher UX / required markers / native-free money
   ========================================================================== */
.required-star,.field>label>em,.field>label .required-star{color:#d4473f!important;font-style:normal!important;font-weight:900!important}
input[data-financial-input]{appearance:textfield!important;-webkit-appearance:none!important;font-variant-numeric:tabular-nums!important}
input[data-financial-input]::-webkit-outer-spin-button,input[data-financial-input]::-webkit-inner-spin-button{-webkit-appearance:none!important;margin:0!important}
/* V24.12.0.2: each action type owns a fixed mini-column across all receivable rows. */
body[data-controller="CustomerReceivables"] .receivables-table .receivable-action-grid{
  display:grid!important;
  grid-template-columns:34px 34px!important;
  grid-auto-flow:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  width:74px!important;
  min-width:74px!important;
  max-width:74px!important;
  margin:0 auto!important;
  padding:0!important;
  direction:rtl!important;
  line-height:0!important;
}
body[data-controller="CustomerReceivables"] .receivables-table .receivable-action-slot{
  width:34px!important;
  min-width:34px!important;
  max-width:34px!important;
  height:34px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0!important;
  padding:0!important;
}
body[data-controller="CustomerReceivables"] .receivables-table td.table-actions-column,
body[data-controller="CustomerReceivables"] .receivables-table th.table-actions-column{
  width:94px!important;
  min-width:94px!important;
  max-width:94px!important;
  text-align:center!important;
}


/* V24.13.0.0 — Supplier payment cancellation clean inline warning. */
.supplier-payment-void-panel{grid-template-columns:minmax(300px,.7fr) minmax(0,1.3fr)!important;align-items:end!important}
.supplier-payment-void-heading{align-self:stretch;display:flex;flex-direction:column;justify-content:flex-start;gap:8px;min-width:0}
.supplier-payment-void-alert{display:flex;align-items:flex-start;gap:8px;border:1px solid #f0d5a7;background:#fff9ec;border-radius:10px;padding:9px 10px;color:#7d5b1d;max-width:100%}
.supplier-payment-void-alert>span{width:24px;height:24px;min-width:24px;border-radius:50%;display:grid;place-items:center;background:#f6e4bd;color:#9a6812;font-weight:900;font-size:14px;line-height:1}
.supplier-payment-void-alert p{margin:1px 0 0;font-size:9.5px;line-height:1.65;color:#705b30}
.supplier-payment-void-panel form.supplier-payment-reversal-form{grid-template-columns:minmax(190px,.55fr) minmax(260px,1fr) 120px!important;align-items:end!important}
.supplier-payment-void-panel form.supplier-payment-reversal-form .field small{display:none!important}
@media(max-width:1100px){.supplier-payment-void-panel{grid-template-columns:1fr!important}.supplier-payment-void-panel form,.supplier-payment-void-panel form.supplier-payment-reversal-form{grid-template-columns:1fr!important}}

/* ============================================================================
   V24.14.0.0 - HR Work Schedules + employee details alignment standard
   ============================================================================ */
.employee-details-grid .employee-details-field > b{ text-align:center; }
.employee-details-grid .employee-details-field > b[dir="ltr"]{ text-align:center; }
#employeeDetailsNameAr,#employeeDetailsAddressAr{ text-align:right!important; }
#employeeDetailsNameEn{ text-align:left!important; }

.hr-schedule-stats{grid-template-columns:repeat(3,minmax(0,1fr));}
.hr-schedule-panel{overflow:visible;}
.hr-schedule-tabs{display:flex;gap:8px;padding:12px 14px 0;border-bottom:1px solid #e5ece5;background:#fff;}
.hr-schedule-tab{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 20px;border:1px solid transparent;border-bottom:0;border-radius:10px 10px 0 0;color:#66726a;text-decoration:none;font-weight:750;}
.hr-schedule-tab:hover{background:#f7faf6;color:#245f36;}
.hr-schedule-tab.active{background:#f3f8f1;color:#1f6d34;border-color:#dce8da;box-shadow:inset 0 -3px 0 #3d9346;}
.hr-inline-hint{display:flex;align-items:center;gap:8px;max-width:780px;color:#66736a;font-size:11.5px;line-height:1.7;}
.hr-hint-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:#edf5ea;color:#2f7b3e;font-weight:900;}
.hr-next-day-pill{margin-inline-start:6px;white-space:nowrap;}
.hr-weekly-summary{min-width:280px;max-width:520px;color:#4d5b52;line-height:1.75;font-size:11.5px;}
.table-sub{display:block;margin-top:3px;color:#859087;font-size:10px;line-height:1.4;}
.hr-shift-modal-card{max-width:1040px!important;}
.hr-employee-schedule-modal-card{max-width:1120px!important;}
.hr-duration-preview{display:flex;align-items:center;justify-content:center;min-height:42px;padding:8px 12px;border:1px solid #dce6dc;border-radius:9px;background:#f8faf8;color:#2d3931;font-weight:800;direction:ltr;}
.hr-duration-preview.overnight{background:#eef5fb;border-color:#d6e6f4;color:#255d83;direction:rtl;}
.hr-schedule-lines-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 0 10px;padding-top:14px;border-top:1px solid #e6ece6;}
.hr-schedule-lines-head>div b,.hr-schedule-lines-head>div small{display:block;}
.hr-schedule-lines-head>div b{font-size:14px;}.hr-schedule-lines-head>div small{font-size:10.5px;color:#7e8981;margin-top:3px;}
.hr-schedule-line-list{display:flex;flex-direction:column;gap:8px;}
.hr-schedule-line{display:grid;grid-template-columns:36px minmax(150px,.55fr) minmax(340px,1.45fr) 40px;gap:10px;align-items:end;padding:10px;border:1px solid #e0e8e0;border-radius:11px;background:#fbfdfb;}
.hr-schedule-line-order{display:flex;align-items:center;justify-content:center;align-self:center;width:30px;height:30px;border-radius:8px;background:#eff5ee;color:#356641;font-weight:800;}
.hr-schedule-line .field{margin:0;}
.hr-schedule-shift-field{min-width:0;}
.hr-remove-schedule-line{align-self:center;justify-self:center;}
.hr-schedule-lines-empty{margin-top:8px;}
.hr-schedule-lines-empty[hidden]{display:none!important;}
.hr-schedule-notes-grid{margin-top:14px;align-items:end;}
.hr-schedule-notes-grid .toggle-option{min-height:42px;}

@media (max-width:900px){
  .hr-schedule-stats{grid-template-columns:1fr;}
  .hr-inline-hint{max-width:none;}
  .hr-schedule-line{grid-template-columns:32px 1fr 40px;}
  .hr-schedule-line .hr-schedule-shift-field{grid-column:2/3;}
}
@media (max-width:640px){
  .hr-schedule-tabs{padding-inline:8px;}.hr-schedule-tab{flex:1;padding-inline:8px;}
  .hr-schedule-line{grid-template-columns:30px 1fr 36px;}
}

/* ============================================================================
   V24.14.1.0 - HR weekly roster drag & drop
   ============================================================================ */
.hr-roster-heading .breadcrumbs a{color:#2f7b3e;text-decoration:none;font-weight:700}
.hr-roster-filters{padding:14px;margin-bottom:12px}
.hr-roster-filters .form-grid.six{grid-template-columns:1.35fr repeat(4,minmax(150px,.8fr)) 110px;gap:10px;align-items:end}
.hr-roster-filter-action .btn{width:100%}
.hr-roster-range-hint{margin:0 0 12px;padding:9px 12px;border:1px solid #dce8da;border-radius:10px;background:#f7fbf5;max-width:none}
.hr-roster-layout{display:grid;grid-template-columns:minmax(220px,260px) minmax(0,1fr);gap:12px;align-items:start}
.hr-roster-palette-panel{padding:12px;position:sticky;top:76px;max-height:calc(100vh - 92px);overflow:auto}
.hr-roster-palette-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:2px 2px 10px;border-bottom:1px solid #e7ede7;margin-bottom:10px}
.hr-roster-palette-head b,.hr-roster-palette-head small{display:block}.hr-roster-palette-head b{font-size:14px}.hr-roster-palette-head small{font-size:10px;color:#7b877f;margin-top:3px}
.hr-roster-palette-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.hr-roster-palette-card{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:center;border:1px solid #dce5dc;border-radius:10px;padding:9px 10px;background:#fff;cursor:grab;user-select:none;box-shadow:0 1px 2px rgba(20,55,29,.03)}
.hr-roster-palette-card:active,.hr-roster-shift-chip:active{cursor:grabbing}.hr-roster-palette-card.dragging,.hr-roster-shift-chip.dragging{opacity:.5}
.hr-roster-drag-handle{display:grid;place-items:center;width:24px;height:28px;border-radius:7px;background:rgba(255,255,255,.72);font-size:17px;color:#607066}
.hr-roster-palette-card b,.hr-roster-palette-card small,.hr-roster-palette-card em{display:block}.hr-roster-palette-card b{font-size:11px;line-height:1.45}.hr-roster-palette-card small{font-size:10px;color:#5f6b63;margin-top:2px}.hr-roster-palette-card em{font-style:normal;font-size:9px;color:#75568d;margin-top:2px}
.hr-roster-palette-panel .btn.full{width:100%;justify-content:center}
.hr-roster-board-panel{min-width:0;overflow:hidden}
.hr-roster-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-bottom:1px solid #e7ede7}
.hr-roster-toolbar-info b,.hr-roster-toolbar-info span{display:block}.hr-roster-toolbar-info b{font-size:14px}.hr-roster-toolbar-info span{font-size:10px;color:#7b877f;margin-top:2px}
.hr-roster-table-wrap{max-height:calc(100vh - 335px);overflow:auto;position:relative}
.hr-roster-table{min-width:1280px;table-layout:fixed}
.hr-roster-table thead th{position:sticky;top:0;z-index:5;background:#f7faf6;text-align:center;min-width:145px}
.hr-roster-table thead th small{display:block;font-size:9px;color:#859087;margin-top:3px;font-weight:500}
.hr-roster-table .hr-roster-employee-column{position:sticky;right:0;z-index:8;width:220px;min-width:220px;background:#f7faf6;border-left:1px solid #e4ebe4}
.hr-roster-employee-cell{position:sticky;right:0;z-index:4;width:220px;min-width:220px;background:#fff;border-left:1px solid #e4ebe4;text-align:right!important;vertical-align:top!important;padding:11px!important}
.hr-roster-employee-row.dirty .hr-roster-employee-cell{box-shadow:inset -4px 0 0 #3b9148;background:#fbfefb}
.hr-roster-employee-cell b,.hr-roster-employee-cell span,.hr-roster-employee-cell small,.hr-roster-employee-cell em{display:block}.hr-roster-employee-cell b{font-size:12px}.hr-roster-employee-cell span{font-size:10px;color:#287238;font-weight:800;margin-top:2px}.hr-roster-employee-cell small{font-size:9px;color:#737f77;margin-top:3px}.hr-roster-employee-cell em{font-style:normal;font-size:8.5px;color:#8c958f;margin-top:5px}
.hr-roster-drop-cell{padding:6px!important;vertical-align:top!important;height:104px;min-width:145px;background:#fff;transition:background .12s,border-color .12s}
.hr-roster-drop-cell.drag-over{background:#eef8ed!important;box-shadow:inset 0 0 0 2px #68a86f}
.hr-roster-chip-list{display:flex;flex-direction:column;gap:5px;min-height:0}
.hr-roster-shift-chip{position:relative;border:1px solid transparent;border-radius:8px;padding:7px 22px 7px 7px;min-height:42px;cursor:grab;text-align:center;user-select:none}
.hr-roster-shift-chip b,.hr-roster-shift-chip small,.hr-roster-shift-chip em{display:block}.hr-roster-shift-chip b{font-size:10.5px;line-height:1.25}.hr-roster-shift-chip small{font-size:8.5px;line-height:1.25;margin-top:2px;color:#5f6962}.hr-roster-shift-chip em{font-style:normal;font-size:8px;margin-top:2px;color:#765b86}
.hr-roster-chip-remove{position:absolute;top:3px;right:4px;width:17px;height:17px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.78);color:#6e7670;line-height:16px;font-size:13px;cursor:pointer}
.hr-roster-chip-remove:hover{background:#fff;color:#c84545}
.hr-roster-empty-hint{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:76px;border:1px dashed #dfe7df;border-radius:8px;color:#a0aaa3;background:color-mix(in srgb, var(--canvas) 55%, var(--surface));font-size:9px;pointer-events:none}
.hr-roster-empty-hint b{font-size:10px;color:#89938d}.hr-roster-empty-hint.hidden{display:none!important}
.hr-shift-color-1{background:#eaf4ff;border-color:#cfe4fb;color:#245a83}.hr-shift-color-2{background:#edf8ea;border-color:#d3ebcc;color:#2c6b35}.hr-shift-color-3{background:#f3ecff;border-color:#dfd0fa;color:#65418b}.hr-shift-color-4{background:#fff0f1;border-color:#f4d5d9;color:#98424b}.hr-shift-color-5{background:#fff7e9;border-color:#f2dfb9;color:#805f21}
.hr-roster-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-top:1px solid #e7ede7;background:#fff}
.hr-roster-page-size{display:flex;align-items:center;gap:8px;font-size:10px;color:#6f7c73}.hr-roster-page-size select{min-width:70px;height:34px;border:1px solid #dce5dc;border-radius:8px;background:#fff;padding:0 8px}
.hr-roster-pagination{display:flex;align-items:center;gap:6px}.hr-roster-pagination a,.hr-roster-pagination span{min-width:34px;height:34px;display:grid;place-items:center;border:1px solid #dce5dc;border-radius:8px;text-decoration:none;color:#48554d;background:#fff}.hr-roster-pagination span.active{background:#2f873b;color:#fff;border-color:#2f873b}

@media(max-width:1200px){
  .hr-roster-filters .form-grid.six{grid-template-columns:repeat(3,1fr)}
  .hr-roster-layout{grid-template-columns:220px minmax(0,1fr)}
}
@media(max-width:900px){
  .hr-roster-layout{grid-template-columns:1fr}.hr-roster-palette-panel{position:static;max-height:none}.hr-roster-palette-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .hr-roster-table-wrap{max-height:60vh}.hr-roster-filters .form-grid.six{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .hr-roster-filters .form-grid.six{grid-template-columns:1fr}.hr-roster-palette-list{grid-template-columns:1fr}.hr-roster-toolbar{align-items:flex-start;flex-direction:column}.hr-roster-toolbar .toolbar-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.hr-roster-footer{align-items:flex-start;flex-direction:column}
}

/* V24.15.0.0 - HR Time-off types */
.timeoff-stats{grid-template-columns:repeat(4,minmax(0,1fr));}
.timeoff-panel{overflow:hidden;}
.timeoff-types-table td,.timeoff-types-table th{vertical-align:middle;}
.timeoff-type-modal-card{width:min(900px,calc(100vw - 32px));}
.timeoff-policy-note{display:flex;gap:10px;align-items:flex-start;margin-top:14px;padding:11px 13px;border:1px solid var(--border,#dfe5ec);border-radius:12px;background:#f8fafc;}
.timeoff-policy-note>span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#e8f2ff;color:#2563eb;font-weight:800;flex:0 0 auto;}
.timeoff-policy-note div{display:flex;flex-direction:column;gap:2px;}
.timeoff-policy-note small{color:#687386;line-height:1.7;}
@media(max-width:900px){.timeoff-stats{grid-template-columns:repeat(2,minmax(0,1fr));}}
.timeoff-panel .pill.gray{background:#eef1f4;color:#677386;}

/* V24.15.1.0 - HR Leave Policies & Time-off field alignment */
.timeoff-type-modal-card .form-grid.three{align-items:start}
.timeoff-type-modal-card .field>input:not([type="checkbox"]),
.timeoff-type-modal-card .field>.custom-select-combo>.custom-select-trigger,
.timeoff-type-modal-card .field>.searchable-select-combo>.searchable-select-trigger,
.timeoff-type-modal-card .toggle-option{height:42px!important;min-height:42px!important}
.timeoff-type-modal-card .field>input:not([type="checkbox"]){padding:0 11px}
.timeoff-type-modal-card .toggle-option{display:flex;align-items:center;padding:0 11px;width:100%;box-sizing:border-box}
.timeoff-type-modal-card .field textarea{min-height:70px}

.leave-policy-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.leave-policy-panel,.leave-policy-editor,.leave-policy-lines-panel{overflow:hidden}
.leave-policy-editor,.leave-policy-lines-panel{margin-bottom:14px}
.leave-policy-section-title{padding:14px 18px;border-bottom:1px solid var(--border);background:#fbfcfa}
.leave-policy-section-title small{display:block;color:var(--muted);margin-top:3px}
.leave-policy-form-grid{padding:16px 18px;align-items:start}
.leave-policy-form-grid .field>input:not([type="checkbox"]),
.leave-policy-form-grid .field>.custom-select-combo>.custom-select-trigger,
.leave-policy-form-grid .field>.searchable-select-combo>.searchable-select-trigger,
.leave-policy-form-grid .date-entry,
.leave-policy-toggle{height:42px!important;min-height:42px!important}
.leave-policy-form-grid .date-entry>input[type="text"]{height:42px!important;min-height:42px!important}
.leave-policy-toggle{display:flex;align-items:center;padding:0 11px;width:100%;box-sizing:border-box}
.leave-policy-form-grid textarea{min-height:74px}
.leave-policies-table td,.leave-policies-table th{vertical-align:middle}
.leave-policy-lines-wrap{padding:0 12px 12px;overflow:auto}
.leave-policy-lines-table{min-width:1840px}
.leave-policy-lines-table th,.leave-policy-lines-table td{text-align:center;vertical-align:middle;padding:7px 6px}
.leave-policy-lines-table th:nth-child(2),.leave-policy-lines-table td:nth-child(2),.leave-policy-lines-table th:nth-child(15),.leave-policy-lines-table td:nth-child(15){text-align:right}
.leave-policy-lines-table input:not([type="checkbox"]),.leave-policy-lines-table .custom-select-trigger,.leave-policy-lines-table .searchable-select-trigger{height:38px!important;min-height:38px!important}
.leave-policy-number{width:82px!important;text-align:center!important;direction:ltr!important;font-variant-numeric:tabular-nums}
.leave-policy-note-input{min-width:170px;width:100%}
.leave-policy-help{margin:0 18px 16px}
.leave-policy-footer{position:sticky;bottom:0;z-index:8;background:#fff;border-top:1px solid var(--border);padding:12px 18px;display:flex;justify-content:flex-start;gap:10px}
.leave-policy-validation{margin-bottom:14px}
@media(max-width:1100px){.leave-policy-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.leave-policy-form-grid.form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.leave-policy-form-grid .span-4{grid-column:1/-1}}
@media(max-width:700px){.leave-policy-form-grid.form-grid.four{grid-template-columns:1fr}.leave-policy-form-grid .span-4{grid-column:span 1}.leave-policy-stats{grid-template-columns:1fr 1fr}}


/* V24.15.2.1 — Leave policy auto-grid + non-native controls */
.leave-policy-status-check{height:42px!important;min-height:42px!important;justify-content:flex-start!important}
.leave-policy-lines-table tbody tr{height:54px}
.leave-policy-type-display{height:38px;min-width:205px;border:1px solid #dbe5dd;border-radius:9px;background:#f9fbf8;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 10px;box-sizing:border-box;text-align:right}
.leave-policy-type-display b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:145px}
.leave-policy-type-display small{font-size:9px;color:var(--muted);white-space:nowrap}
.leave-policy-table-control{height:38px!important;min-height:38px!important;box-sizing:border-box}
.leave-policy-lines-table .toggle-cell{width:68px;min-width:68px}
.leave-policy-check{display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;cursor:pointer;position:relative;border:1px solid #dbe5dd;border-radius:9px;background:#fff;box-sizing:border-box;transition:.15s ease}
.leave-policy-check:hover{border-color:#a8cdb0;background:#f9fcf9}
.leave-policy-check input{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;min-height:1px!important;margin:0!important}
.leave-policy-check span{width:19px;height:19px;border:1.5px solid #aab8af;border-radius:5px;background:#fff;display:grid;place-items:center;box-sizing:border-box;transition:.15s ease}
.leave-policy-check input:checked+span{background:var(--green-700);border-color:var(--green-700)}
.leave-policy-check input:checked+span:after{content:"✓";color:#fff;font-weight:900;font-size:13px;line-height:1}
.leave-policy-check input:focus-visible+span{outline:2px solid rgba(45,138,52,.18);outline-offset:2px}
.leave-policy-lines-table td.actions-cell{width:58px;min-width:58px}



/* V24.15.2.2 — HR Leave Policy compact custom grid controls */
.leave-policy-lines-table{min-width:1510px!important;table-layout:fixed}
.leave-policy-lines-table th,.leave-policy-lines-table td{box-sizing:border-box}
.leave-policy-lines-table input:not([type="checkbox"]){
  height:36px!important;min-height:36px!important;
  border:1px solid #d5e1d7!important;border-radius:9px!important;
  background:#fff!important;color:#26352d!important;
  padding:0 8px!important;outline:none!important;
  box-shadow:none!important;font-family:inherit!important;font-size:11px!important;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.leave-policy-lines-table input:not([type="checkbox"]):hover{border-color:#b9cfbd!important}
.leave-policy-lines-table input:not([type="checkbox"]):focus{
  border-color:#70a877!important;
  box-shadow:0 0 0 3px rgba(57,129,68,.08)!important;
  background:#fff!important;
}
.leave-policy-lines-table input::placeholder{color:#9ca8a0;opacity:1}
.leave-policy-lines-table .custom-select-trigger,.leave-policy-lines-table .searchable-select-trigger{
  height:36px!important;min-height:36px!important;border-radius:9px!important;
  border-color:#d5e1d7!important;font-size:11px!important;padding-inline:9px!important;
}
.leave-policy-number{width:100%!important;min-width:0!important;max-width:none!important;padding-inline:5px!important}
.leave-policy-note-input{width:100%!important;min-width:0!important;text-align:right!important;direction:rtl!important}
.leave-policy-lines-table .lp-col-index{width:38px!important;min-width:38px!important;max-width:38px!important}
.leave-policy-lines-table .lp-col-type{width:205px!important;min-width:205px!important;max-width:205px!important}
.leave-policy-lines-table .lp-col-days{width:66px!important;min-width:66px!important;max-width:66px!important}
.leave-policy-lines-table .lp-col-occurrences{width:76px!important;min-width:76px!important;max-width:76px!important}
.leave-policy-lines-table .lp-col-cycle-count{width:62px!important;min-width:62px!important;max-width:62px!important}
.leave-policy-lines-table .lp-col-cycle-unit{width:112px!important;min-width:112px!important;max-width:112px!important}
.leave-policy-lines-table .lp-col-toggle{width:64px!important;min-width:64px!important;max-width:64px!important}
.leave-policy-lines-table .lp-col-max-request{width:76px!important;min-width:76px!important;max-width:76px!important}
.leave-policy-lines-table .lp-col-notes{width:175px!important;min-width:175px!important;max-width:175px!important;text-align:right!important}
.leave-policy-lines-table .lp-col-actions{width:72px!important;min-width:72px!important;max-width:72px!important;text-align:center!important;padding-inline:5px!important}
.leave-policy-lines-table th.lp-col-actions{text-align:center!important;white-space:nowrap}
.leave-policy-lines-table td.lp-col-actions{display:table-cell!important;vertical-align:middle!important}
.leave-policy-lines-table td.lp-col-actions .crm-action-btn{margin-inline:auto!important;display:grid!important}
.leave-policy-type-display{min-width:0!important;width:100%!important;height:36px!important}
.leave-policy-lines-table .toggle-cell{width:64px!important;min-width:64px!important;max-width:64px!important;padding-inline:4px!important}
.leave-policy-check{width:36px!important;height:36px!important}

/* ========================================================================== */
/* V24.16.0.0 - HR Contract Types + Leave Type Defaults UI                  */
/* ========================================================================== */
.contract-type-modal-card{width:min(980px,calc(100vw - 32px));}
.contract-type-grid{align-items:start}
.contract-type-modal-card .field>input:not([type="checkbox"]),
.contract-type-modal-card .field>.custom-select-combo>.custom-select-trigger,
.contract-type-modal-card .field>.searchable-select-combo>.searchable-select-trigger,
.timeoff-type-modal-card .input-suffix{height:42px;min-height:42px}
.contract-type-modal-card .toggle-option{height:42px!important;min-height:42px!important}
.contract-type-modal-card .field>input:not([type="checkbox"]){padding:0 11px}
.contract-type-modal-card .toggle-option{display:flex;align-items:center;padding:0 11px;width:100%;box-sizing:border-box}
.contract-type-modal-card .field textarea{min-height:70px}
.contract-types-table{table-layout:fixed}
.contract-types-table th:nth-child(1){width:48px}
.contract-types-table th:nth-child(2){width:110px}
.contract-types-table th:nth-child(4){width:125px}
.contract-types-table th:nth-child(5){width:120px}
.contract-types-table th:nth-child(7){width:85px}
.contract-types-table th:nth-child(8){width:78px}
.timeoff-types-table{table-layout:fixed}
.timeoff-types-table th:first-child{width:48px}
.timeoff-types-table th:nth-child(2){width:115px}
.timeoff-types-table th:last-child{width:78px}
@media (max-width:900px){
    .contract-type-modal-card,.timeoff-type-modal-card{width:min(720px,calc(100vw - 20px))}
    .contract-type-grid,.timeoff-basic-grid{grid-template-columns:1fr 1fr!important}
    .contract-type-grid .span-2,.contract-type-grid .span-3,.timeoff-basic-grid .span-3{grid-column:1/-1!important}
}
@media (max-width:640px){
    .contract-type-grid,.timeoff-basic-grid{grid-template-columns:1fr!important}
    .contract-type-grid .span-2,.contract-type-grid .span-3,.timeoff-basic-grid .span-3{grid-column:auto!important}
}

/* V24.17.0.0 - HR employee contracts / expiry alerts */
.readonly-field{min-height:42px;border:1px solid #d7e4dc;border-radius:9px;background:#f7faf8;padding:10px 12px;color:#53665b;font-weight:600;display:flex;align-items:center}
.hr-transition-banner{border-inline-start:4px solid #2d7a4a}
.toolbar-filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.toolbar-filters>input,.toolbar-filters>select{height:42px;min-width:190px;border:1px solid #cbdcd3;border-radius:9px;padding:0 10px;background:#fff;font:500 12.5px Cairo,sans-serif}
@media (max-width:1100px){.toolbar.compact-toolbar{align-items:stretch}.toolbar-filters{width:100%}.toolbar-filters>input,.toolbar-filters>select{flex:1 1 180px}}

/* ========================================================================== */
/* V24.17.1.0 - HR contracts UX + compensation history + day-based periods   */
/* ========================================================================== */
.contract-type-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
body[data-controller="EmployeeContracts"] .employee-contract-grid{gap:10px 12px;align-items:start}
body[data-controller="EmployeeContracts"] .employee-contract-grid .field>input:not([type="checkbox"]),
body[data-controller="EmployeeContracts"] .employee-contract-grid .field>.searchable-select-combo>.searchable-select-trigger,
body[data-controller="EmployeeContracts"] .employee-contract-grid .field>.custom-select-combo>.custom-select-trigger,
body[data-controller="EmployeeContracts"] .employee-contract-grid .input-suffix,
body[data-controller="EmployeeContracts"] .employee-contract-grid .date-entry,
body[data-controller="EmployeeContracts"] .employee-contract-grid .readonly-field{height:42px;min-height:42px;box-sizing:border-box}
body[data-controller="EmployeeContracts"] .employee-contract-grid .field>input:not([type="checkbox"]){padding:0 11px}
body[data-controller="EmployeeContracts"] .employee-contract-grid .input-suffix input{height:40px!important;min-height:40px!important}
body[data-controller="EmployeeContracts"] .employee-contract-grid .date-entry>input[type="text"]{height:42px!important;min-height:42px!important}
body[data-controller="EmployeeContracts"] .employee-contract-grid .date-picker-button{height:40px!important;min-height:40px!important}
body[data-controller="EmployeeContracts"] .employee-contract-grid .readonly-field{padding:0 12px}
body[data-controller="EmployeeContracts"] .employee-contract-grid textarea{min-height:76px}
body[data-controller="EmployeeContracts"] .employee-compensation-history{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
body[data-controller="EmployeeContracts"] .employee-compensation-history .comfortable-table-wrap{padding-inline:0}
body[data-controller="EmployeeContracts"] #CompensationTotal{justify-content:flex-start;direction:ltr}
@media(max-width:1000px){.contract-type-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.contract-type-stats{grid-template-columns:1fr}}


/* ========================================================================== */
/* V24.17.1.1 - HR employee contract layout / spacing hotfix                 */
/* ========================================================================== */
body[data-controller="EmployeeContracts"] form[data-smart-form] > .panel{
  margin-bottom:14px;
}
body[data-controller="EmployeeContracts"] .employee-contract-panel,
body[data-controller="EmployeeContracts"] .employee-compensation-panel{
  overflow:hidden;
}
body[data-controller="EmployeeContracts"] .employee-contract-panel > .section-title-row,
body[data-controller="EmployeeContracts"] .employee-compensation-panel > .section-title-row{
  margin:0!important;
  min-height:46px!important;
  padding:11px 16px!important;
  box-sizing:border-box;
  border-bottom:1px solid #e6ede7!important;
}
body[data-controller="EmployeeContracts"] .employee-contract-panel > .employee-contract-grid,
body[data-controller="EmployeeContracts"] .employee-compensation-panel > .employee-compensation-grid{
  padding:14px 16px 16px!important;
  gap:12px 14px!important;
  margin:0!important;
}
body[data-controller="EmployeeContracts"] .employee-contract-panel > .employee-contract-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
body[data-controller="EmployeeContracts"] .employee-compensation-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  align-items:start;
}
body[data-controller="EmployeeContracts"] .employee-compensation-grid .field{
  min-width:0;
}
body[data-controller="EmployeeContracts"] .employee-compensation-grid .field>input:not([type="checkbox"]),
body[data-controller="EmployeeContracts"] .employee-compensation-grid .date-entry,
body[data-controller="EmployeeContracts"] .employee-compensation-grid .readonly-field{
  width:100%;
  height:42px!important;
  min-height:42px!important;
  box-sizing:border-box;
}
body[data-controller="EmployeeContracts"] .employee-compensation-grid .field>input:not([type="checkbox"]){
  padding:0 11px!important;
}
body[data-controller="EmployeeContracts"] .employee-compensation-grid .date-entry>input[type="text"]{
  height:42px!important;
  min-height:42px!important;
}
body[data-controller="EmployeeContracts"] .employee-compensation-grid .date-picker-button{
  height:40px!important;
  min-height:40px!important;
}
body[data-controller="EmployeeContracts"] .employee-compensation-grid .readonly-field{
  padding:0 12px!important;
}
body[data-controller="EmployeeContracts"] .employee-compensation-history{
  margin:0 16px 16px;
  padding-top:14px;
}
body[data-controller="EmployeeContracts"] .employee-compensation-history > .section-title-row{
  margin:0 0 10px!important;
  padding:8px 0!important;
  min-height:auto!important;
}
body[data-controller="EmployeeContracts"] .form-footer{
  margin-top:0;
}
@media(max-width:1000px){
  body[data-controller="EmployeeContracts"] .employee-contract-panel > .employee-contract-grid,
  body[data-controller="EmployeeContracts"] .employee-compensation-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body[data-controller="EmployeeContracts"] .employee-contract-grid .span-3{
    grid-column:1/-1;
  }
}
@media(max-width:700px){
  body[data-controller="EmployeeContracts"] .employee-contract-panel > .employee-contract-grid,
  body[data-controller="EmployeeContracts"] .employee-compensation-grid{
    grid-template-columns:1fr!important;
  }
  body[data-controller="EmployeeContracts"] .employee-contract-grid .span-3{
    grid-column:auto;
  }
}

/* ========================================================================== */
/* V24.17.1.2 - HR contract monthly total alignment hotfix                    */
/* ========================================================================== */
body[data-controller="EmployeeContracts"] .employee-compensation-grid #CompensationTotal{
  justify-content:center!important;
  text-align:center!important;
  direction:ltr;
}

/* ========================================================================== */
/* V24.17.1.3 - HR contract renewal layout + print action hotfix              */
/* ========================================================================== */
body[data-controller="EmployeeContracts"] .hr-transition-banner{
  overflow:hidden;
  padding:0!important;
  margin-bottom:14px;
}
body[data-controller="EmployeeContracts"] .hr-transition-banner > .section-title-row{
  margin:0!important;
  min-height:46px!important;
  padding:11px 16px!important;
  box-sizing:border-box;
  border-bottom:1px solid #e6ede7!important;
}
body[data-controller="EmployeeContracts"] .hr-transition-banner > .employee-contract-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  padding:14px 16px 16px!important;
  gap:12px 14px!important;
  margin:0!important;
}
body[data-controller="EmployeeContracts"] .hr-transition-banner > .employee-contract-grid .field{
  min-width:0;
}
body[data-controller="EmployeeContracts"] .hr-transition-banner > .employee-contract-grid .readonly-field{
  width:100%;
  height:42px!important;
  min-height:42px!important;
  padding:0 12px!important;
  box-sizing:border-box;
}
@media(max-width:1000px){
  body[data-controller="EmployeeContracts"] .hr-transition-banner > .employee-contract-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:700px){
  body[data-controller="EmployeeContracts"] .hr-transition-banner > .employee-contract-grid{
    grid-template-columns:1fr!important;
  }
}

/* ========================================================================== */
/* V24.17.1.4 - HR contract actions, expiry stages and bidi period hotfix     */
/* ========================================================================== */
body[data-controller="EmployeeContracts"] .contract-period-range{
  display:inline-block!important;
  direction:ltr!important;
  unicode-bidi:isolate!important;
  white-space:nowrap!important;
  font-variant-numeric:tabular-nums;
}
body[data-controller="EmployeeContracts"] .employee-contracts-table th.table-actions-column,
body[data-controller="EmployeeContracts"] .employee-contracts-table td.table-actions-column{
  width:166px!important;
  min-width:166px!important;
  max-width:166px!important;
}
body[data-controller="EmployeeContracts"] .employee-contract-actions{
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  justify-content:flex-start!important;
  gap:6px!important;
}
body[data-controller="EmployeeContracts"] .employee-contracts-table tbody tr.contract-alert-row>td{
  background:#fff8e7!important;
  border-color:#f2dfad!important;
}
body[data-controller="EmployeeContracts"] .employee-contracts-table tbody tr.contract-notice-row>td{
  background:#fff0ed!important;
  border-color:#efc8c2!important;
}
body[data-controller="EmployeeContracts"] .employee-contracts-table tbody tr.contract-expired-row>td{
  background:#f8dddd!important;
  border-color:#e7b7b7!important;
}
body[data-controller="EmployeeContracts"] .employee-contracts-table tbody tr.contract-alert-row:hover>td{
  background:#fff3d3!important;
}
body[data-controller="EmployeeContracts"] .employee-contracts-table tbody tr.contract-notice-row:hover>td{
  background:#ffe6e1!important;
}
body[data-controller="EmployeeContracts"] .employee-contracts-table tbody tr.contract-expired-row:hover>td{
  background:#f3cccc!important;
}

/* V24.18.0.0 — HR leave balances & requests */
body[data-controller="LeaveBalances"] .leave-balance-filter-panel,
body[data-controller="LeaveBalances"] .leave-balance-employee-panel,
body[data-controller="LeaveRequests"] .leave-request-edit-panel{padding:16px 18px}
body[data-controller="LeaveBalances"] .leave-balance-filter-grid,
body[data-controller="LeaveBalances"] .leave-balance-summary-grid,
body[data-controller="LeaveRequests"] .leave-request-edit-grid{gap:12px 14px;align-items:start}
body[data-controller="LeaveBalances"] .leave-balance-filter-action .btn{width:100%;height:42px;justify-content:center}
body[data-controller="LeaveBalances"] .leave-balance-stats,
body[data-controller="LeaveRequests"] .leave-request-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
body[data-controller="LeaveBalances"] .leave-balance-table .contract-period-range,
body[data-controller="LeaveRequests"] .leave-requests-table .contract-period-range{display:inline-block;direction:ltr;unicode-bidi:isolate;white-space:nowrap}
body[data-controller="LeaveRequests"] .leave-request-toolbar{gap:12px;align-items:center}
body[data-controller="LeaveRequests"] .leave-request-toolbar .toolbar-filter-form{display:flex;gap:8px;align-items:center;flex:1;min-width:0}
body[data-controller="LeaveRequests"] .leave-request-toolbar .toolbar-search{flex:1;min-width:240px}
body[data-controller="LeaveRequests"] .leave-request-toolbar .toolbar-search input{width:100%;height:42px}
body[data-controller="LeaveRequests"] .leave-request-actions{display:flex;gap:6px;align-items:center;justify-content:flex-start;white-space:nowrap}
body[data-controller="LeaveRequests"] .leave-request-actions form{margin:0;display:inline-flex}
body[data-controller="LeaveRequests"] .leave-request-actions button.crm-action-btn{border:0;cursor:pointer}
body[data-controller="LeaveRequests"] .leave-request-edit-grid input[type="file"]{min-height:42px;padding:8px 10px}
body[data-controller="LeaveRequests"] .leave-request-edit-grid .readonly-field,
body[data-controller="LeaveRequests"] .leave-request-edit-grid .date-entry,
body[data-controller="LeaveRequests"] .leave-request-edit-grid .field>input:not([type="file"]),
body[data-controller="LeaveBalances"] .leave-balance-summary-grid .readonly-field,
body[data-controller="LeaveBalances"] .leave-balance-filter-grid .date-entry{height:42px;min-height:42px;box-sizing:border-box}
@media(max-width:1050px){
 body[data-controller="LeaveBalances"] .leave-balance-stats,
 body[data-controller="LeaveRequests"] .leave-request-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 body[data-controller="LeaveRequests"] .leave-request-toolbar{align-items:stretch;flex-direction:column}
}
@media(max-width:700px){
 body[data-controller="LeaveBalances"] .leave-balance-stats,
 body[data-controller="LeaveRequests"] .leave-request-stats{grid-template-columns:1fr}
 body[data-controller="LeaveRequests"] .leave-request-toolbar .toolbar-filter-form{flex-direction:column;align-items:stretch}
}
body[data-controller="LeaveRequests"] .leave-request-details-panel{padding:16px 18px}
body[data-controller="LeaveRequests"] .leave-request-details-grid{gap:12px 14px}
body[data-controller="LeaveRequests"] .leave-request-long-text{height:auto;min-height:76px;align-items:flex-start;padding-top:10px;white-space:pre-wrap}
body[data-controller="LeaveRequests"] .leave-request-documents{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
body[data-controller="LeaveRequests"] .leave-request-document{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--border);border-radius:10px;text-decoration:none;color:inherit;background:var(--surface)}
body[data-controller="LeaveRequests"] .leave-request-document:hover{border-color:var(--primary);box-shadow:0 4px 16px rgba(0,0,0,.05)}
body[data-controller="LeaveRequests"] .leave-request-decision-actions{justify-content:flex-start;gap:8px}
body[data-controller="LeaveRequests"] .leave-request-decision-actions form{margin:0}
@media(max-width:900px){body[data-controller="LeaveRequests"] .leave-request-documents{grid-template-columns:1fr}}

/* =====================================================================
   V24.19.0.1 - CRM Customer Document Renewals UI Hotfix
   ===================================================================== */
.crm-renewal-heading{align-items:center;margin-bottom:14px}
.crm-renewal-heading .toolbar-actions{flex:0 0 auto}
.crm-renewal-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:12px}
.crm-renewal-kpis .renewal-kpi{min-height:66px}
.crm-renewal-kpis .renewal-kpi.expired{border-right-color:#c84e46;background:#fffafa}
.crm-renewal-kpis .renewal-kpi.expired b,.crm-renewal-kpis .renewal-kpi.danger b{color:#b9443d}
.crm-renewal-kpis .renewal-kpi.danger{border-right-color:#df756d}
.crm-renewal-kpis .renewal-kpi.accent{border-right-color:#d9a03a}
.crm-renewal-tabs{display:inline-flex;align-items:center;gap:4px;padding:4px;background:#edf2ec;border:1px solid var(--border);border-radius:12px;margin:0 0 12px}
.crm-renewal-tab{border:0;background:transparent;color:#657168;border-radius:9px;min-height:36px;padding:0 16px;font-size:11px;font-weight:800;cursor:pointer}
.crm-renewal-tab.active{background:#fff;color:var(--green-700);box-shadow:0 2px 8px rgba(30,60,35,.08)}
.crm-renewal-main-panel{overflow:visible}
.crm-renewal-toolbar{padding:12px 14px}
.crm-renewal-filter-bar{width:100%;display:grid;grid-template-columns:minmax(260px,1fr) 190px auto auto;gap:9px;align-items:center}
.crm-renewal-search{min-width:0;width:100%}
.crm-renewal-period{width:100%;min-height:42px}
.crm-renewal-table-head{padding:14px 16px}
.crm-renewal-result-count{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);background:#f8faf7;border-radius:999px;padding:5px 10px;color:var(--muted);font-size:10px;white-space:nowrap}
.crm-renewal-result-count b{color:var(--ink);font-size:13px}
.crm-renewal-table{min-width:960px}
.crm-renewal-customer-cell{display:flex;align-items:center;gap:9px;min-width:170px}
.crm-renewal-customer-cell>div{min-width:0}
.crm-renewal-customer-cell b,.crm-renewal-customer-cell small,.crm-renewal-subtext{display:block}
.crm-renewal-customer-cell small,.crm-renewal-subtext{margin-top:3px;color:var(--muted);font-size:9px}
.crm-renewal-table .pill.amber{background:#fff3d9;color:#936214}
.crm-renewal-table .crm-action-btn{margin:0 auto}
.crm-renewal-empty{padding:42px 20px}
.crm-renewal-settings-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-bottom:12px}
.crm-renewal-rule-editor,.crm-renewal-template-panel,.crm-renewal-rules-panel{overflow:visible}
.crm-renewal-rule-form .form-grid{padding-bottom:12px}
.crm-renewal-days-input{display:flex;align-items:center;border:1px solid #dfe6dd;border-radius:10px;background:#fff;overflow:hidden}
.crm-renewal-days-input input{border:0!important;border-radius:0!important;min-width:0;box-shadow:none!important}
.crm-renewal-days-input span{padding:0 12px;color:var(--muted);font-size:10px;border-right:1px solid var(--border);white-space:nowrap}
.crm-renewal-options-field{grid-column:span 2}
.crm-renewal-options{display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-height:42px;border:1px solid #dfe6dd;border-radius:10px;padding:8px 11px;background:#fafcf9}
.crm-renewal-options label{display:flex;align-items:center;gap:6px;font-size:10px;color:#526057;font-weight:700;cursor:pointer}
.crm-renewal-options input{width:auto;min-height:auto}
.crm-renewal-form-footer{display:flex;justify-content:flex-end;padding:0 20px 18px}
.crm-renewal-token-list{display:flex;flex-wrap:wrap;gap:6px}
.crm-renewal-token-list span{direction:ltr;background:#f2f5f1;border:1px solid var(--border);border-radius:7px;padding:4px 7px;font:9px ui-monospace,SFMono-Regular,Consolas,monospace;color:#526057}
.crm-renewal-rules-tools{display:flex;justify-content:flex-start;padding:10px 14px;border-bottom:1px solid var(--border)}
.crm-renewal-rule-search{min-width:300px;max-width:420px}
.crm-renewal-rules-table{min-width:850px}
.crm-renewal-rules-table-wrap{max-height:430px;overflow:auto}
.crm-renewal-rules-table thead th{position:sticky;top:0;z-index:2}
.crm-renewal-days-badge{display:inline-flex;align-items:center;gap:4px;background:#f3f6f2;border:1px solid var(--border);border-radius:8px;padding:5px 8px;white-space:nowrap}
.crm-renewal-days-badge b{color:var(--green-700)}
[data-renewal-panel][hidden]{display:none!important}
@media(max-width:1100px){
  .crm-renewal-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .crm-renewal-settings-grid{grid-template-columns:1fr}
  .crm-renewal-filter-bar{grid-template-columns:minmax(220px,1fr) 170px auto}
  .crm-renewal-filter-bar>a{grid-column:1/-1;justify-self:start}
}
@media(max-width:700px){
  .crm-renewal-heading{align-items:stretch}
  .crm-renewal-heading .toolbar-actions,.crm-renewal-heading .toolbar-actions form,.crm-renewal-heading .toolbar-actions .btn{width:100%}
  .crm-renewal-kpis{grid-template-columns:1fr 1fr}
  .crm-renewal-tabs{display:flex;width:100%}
  .crm-renewal-tab{flex:1;padding:0 8px}
  .crm-renewal-filter-bar{grid-template-columns:1fr}
  .crm-renewal-filter-bar .btn,.crm-renewal-filter-bar>a{width:100%;grid-column:auto;justify-self:stretch;text-align:center}
  .crm-renewal-rule-search{min-width:0;width:100%;max-width:none}
  .crm-renewal-options-field{grid-column:span 1}
  .crm-renewal-options{align-items:flex-start;flex-direction:column}
}


/* V24.19.1.0 - CRM navigation grouping + customer document types master */
.crm-nav-grouped .nav-subsection-label{padding:12px 18px 5px;color:rgba(255,255,255,.55);font-size:9px;font-weight:800;letter-spacing:.02em;pointer-events:none}
.crm-nav-grouped .nav-subsection-label:not(:first-child){margin-top:4px;border-top:1px solid rgba(255,255,255,.08)}
.crm-nav-grouped .nav-subsection-label.settings{color:rgba(210,242,204,.78)}
.customer-document-type-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.customer-document-types-table{min-width:900px}
.customer-document-type-modal-card{max-width:760px}
.crm-renewal-rules-tools{gap:10px;align-items:center;flex-wrap:wrap}
@media(max-width:700px){.customer-document-type-stats{grid-template-columns:1fr}.crm-nav-grouped .nav-subsection-label{padding-inline:14px}}


/* V24.19.1.1 — CRM nested navigation hotfix */
.crm-nav-grouped{padding:3px 2px 5px!important}
.crm-nav-grouped::after{display:none!important}
.crm-nav-grouped .nav-subgroup{margin:2px 3px!important;border:1px solid rgba(255,255,255,.055)}
.crm-nav-grouped .nav-subgroup-title{min-height:37px;padding:7px 12px;color:#dcece2;font-size:11.5px;font-weight:800}
.crm-nav-grouped .nav-subgroup.expanded>.nav-subgroup-title{background:rgba(255,255,255,.045);color:#fff}
.crm-nav-grouped .nav-subgroup-items{padding:0 2px 3px!important}
.crm-nav-grouped .nav-subgroup.expanded>.nav-subgroup-items{max-height:250px!important}
.crm-nav-grouped .nav-sub-item{padding-right:34px!important;margin:1px 0!important;min-height:32px!important}
.crm-nav-grouped .nav-sub-item::before{right:19px!important}
@media (min-width:961px) and (max-width:1100px){.crm-nav-grouped .nav-subgroup-title{min-height:32px;font-size:10.5px}.crm-nav-grouped .nav-sub-item{min-height:29px!important;font-size:10px!important}}


/* V24.19.1.2 — Sidebar Tree Line Hotfix
   Keep sidebar scrolling/subgroup indentation, but remove the long visual tree connector line. */
.nav-group.expanded > .nav-group-items::after{
  display:none!important;
  content:none!important;
}


/* V24.19.1.3 — Unified nested sidebar pattern
   One visual contract for every nested submenu across the application. */
.nav-subgroup{
  margin:2px 3px!important;
  border:1px solid rgba(255,255,255,.055)!important;
  border-radius:10px;
  overflow:hidden;
}
.nav-subgroup-title{
  min-height:37px!important;
  padding:7px 12px!important;
  color:#dcece2!important;
  font-size:11.5px!important;
  font-weight:800!important;
  text-align:right!important;
}
.nav-subgroup-label{
  flex:1 1 auto;
  text-align:right;
}
.nav-sub-chevron{
  flex:0 0 17px;
  margin:0;
}
.nav-subgroup.expanded>.nav-subgroup-title{
  background:rgba(255,255,255,.045);
  color:#fff!important;
}
.nav-subgroup-items{padding:0 2px 3px!important}
.nav-subgroup.expanded>.nav-subgroup-items{max-height:300px!important}
.nav-group .nav-group-items .nav-subgroup .nav-sub-item{
  min-height:32px!important;
  padding-right:34px!important;
  margin:1px 0!important;
}
.nav-group .nav-group-items .nav-subgroup .nav-sub-item::before{right:19px!important}
@media (min-width:961px) and (max-width:1100px){
  .nav-subgroup-title{min-height:32px!important;font-size:10.5px!important}
  .nav-group .nav-group-items .nav-subgroup .nav-sub-item{min-height:29px!important;font-size:10px!important}
}

/* V24.19.2.0 - central email settings */
.email-settings-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.email-test-row td{background:var(--surface-soft,#f7faf7);padding:14px 16px}.email-test-form{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(280px,1.3fr) auto;gap:12px;align-items:end}.email-test-copy{align-self:center}.email-test-copy b{display:block;font-size:12px;color:var(--ink)}.email-test-copy small{display:block;margin-top:3px;font-size:9.5px;color:var(--muted)}.email-test-field{min-width:0}.email-test-field input{min-width:0}.email-test-button{height:42px;white-space:nowrap}.email-settings-options{align-self:end}.status-badge.muted{background:#f1f3f1;color:#59645c}.empty-state-cell{text-align:center;padding:28px;color:var(--muted,#7d877f)}@media(max-width:760px){.email-test-form{grid-template-columns:1fr}.email-test-button{width:100%}}
@media(min-width:1200px){.email-settings-grid{grid-template-columns:minmax(360px,.8fr) minmax(0,1.2fr)}}

/* V24.19.2.0 customer document UX */
.crm-inline-select-action{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;align-items:end}.crm-inline-add-btn{width:44px;height:44px;border:1px solid var(--border,#d9e2da);border-radius:11px;background:#fff;color:var(--primary,#2e8b36);font-size:24px;font-weight:700;cursor:pointer}.compact-reference-modal-card{max-width:650px}.customer-document-preview-card{width:min(1100px,94vw);max-width:1100px}.customer-document-preview-body{height:min(72vh,760px);min-height:420px;background:#f3f5f3;border-block:1px solid var(--border,#d9e2da)}.customer-document-preview-body iframe{width:100%;height:100%;border:0;background:#fff}@media(max-width:720px){.customer-document-preview-body{height:560px;min-height:360px}}
.customer-document-preview-unsupported{min-height:420px;display:flex;align-items:center;justify-content:center;text-align:center;padding:28px;color:var(--muted,#69766d);font-weight:700}.customer-document-preview-unsupported[hidden]{display:none}

/* =====================================================================
   V24.20.1.0 — HR workflow UX + manager approvals
   ===================================================================== */
body[data-controller="LeaveRequests"] .leave-request-stats{grid-template-columns:repeat(5,minmax(0,1fr))!important}
body[data-controller="LeaveRequests"] .leave-request-edit-grid .field label,
body[data-controller="LeaveBalances"] .leave-balance-filter-grid .field label,
body[data-controller="LeaveBalances"] .leave-balance-summary-grid .field label,
body[data-controller="HrAlerts"] .section-title-row b,
body[data-controller="HrAlerts"] .section-title-row small,
body[data-controller="HrApprovals"] .section-title-row b,
body[data-controller="HrApprovals"] .section-title-row small{font-size:12px;line-height:1.65}
body[data-controller="LeaveRequests"] .leave-request-edit-grid input,
body[data-controller="LeaveRequests"] .leave-request-edit-grid textarea,
body[data-controller="LeaveRequests"] .leave-request-edit-grid .readonly-field,
body[data-controller="LeaveRequests"] .leave-request-edit-grid .custom-select-trigger,
body[data-controller="LeaveRequests"] .leave-request-edit-grid .searchable-select-trigger,
body[data-controller="LeaveBalances"] .leave-balance-filter-grid input,
body[data-controller="LeaveBalances"] .leave-balance-filter-grid .searchable-select-trigger{font-size:13px;padding-inline:14px}
body[data-controller="LeaveRequests"] .readonly-input{background:#f6f9f6!important;color:#68766d!important;cursor:default}
body[data-controller="LeaveBalances"] .leave-balance-filter-grid{grid-template-columns:minmax(320px,1.5fr) minmax(230px,.7fr) minmax(160px,.35fr)!important;align-items:end}
body[data-controller="LeaveBalances"] .leave-balance-filter-grid .field{margin:0}
body[data-controller="LeaveBalances"] .leave-balance-filter-action label{display:none}
body[data-controller="LeaveBalances"] .leave-balance-filter-action .btn{margin:0}
.bs-file-upload{display:flex;align-items:center;gap:10px;min-height:44px;border:1px solid #cbdcd3;border-radius:10px;background:#fff;padding:6px 8px}
.bs-file-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.bs-file-button{height:34px!important;min-height:34px!important;white-space:nowrap}
.bs-file-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#637168;font-size:12px}
body[data-controller="Departments"] .department-table th,
body[data-controller="Departments"] .department-table td,
body[data-controller="HrAlerts"] .data-table th,
body[data-controller="HrAlerts"] .data-table td,
body[data-controller="HrApprovals"] .data-table th,
body[data-controller="HrApprovals"] .data-table td,
body[data-controller="LeaveRequests"] .leave-requests-table th,
body[data-controller="LeaveRequests"] .leave-requests-table td,
body[data-controller="LeaveBalances"] .leave-balance-table th,
body[data-controller="LeaveBalances"] .leave-balance-table td{padding:13px 16px!important;font-size:12px!important}
body[data-controller="HrAlerts"] .panel,
body[data-controller="HrApprovals"] .panel{padding:16px 18px}
body[data-controller="HrAlerts"] .section-title-row,
body[data-controller="HrApprovals"] .section-title-row{padding:2px 2px 12px}
body[data-controller="HrApprovals"] .hr-approval-stats{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px}
body[data-controller="HrApprovals"] .manager-decision-actions{display:flex;gap:6px;align-items:center;justify-content:flex-start;white-space:nowrap}
body[data-controller="HrApprovals"] .manager-decision-actions form{display:inline-flex;margin:0}
body[data-controller="HrApprovals"] .manager-decision-actions button{border:0;cursor:pointer}
body[data-controller="HrApprovals"] .hr-approvals-panel{margin-bottom:12px}
@media(max-width:1050px){
 body[data-controller="LeaveRequests"] .leave-request-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 body[data-controller="LeaveBalances"] .leave-balance-filter-grid{grid-template-columns:1fr 1fr!important}
 body[data-controller="LeaveBalances"] .leave-balance-filter-action{grid-column:1/-1}
}
@media(max-width:700px){
 body[data-controller="LeaveRequests"] .leave-request-stats,
 body[data-controller="LeaveBalances"] .leave-balance-filter-grid,
 body[data-controller="HrApprovals"] .hr-approval-stats{grid-template-columns:1fr!important}
}
body[data-controller="PermissionRequests"] .leave-request-edit-panel{padding:16px 18px}
body[data-controller="PermissionRequests"] .leave-request-edit-grid{gap:12px 14px;align-items:start}
body[data-controller="PermissionRequests"] .leave-request-edit-grid .field label{font-size:12px;line-height:1.65}
body[data-controller="PermissionRequests"] .leave-request-edit-grid input,
body[data-controller="PermissionRequests"] .leave-request-edit-grid textarea,
body[data-controller="PermissionRequests"] .leave-request-edit-grid .readonly-field,
body[data-controller="PermissionRequests"] .leave-request-edit-grid .custom-select-trigger,
body[data-controller="PermissionRequests"] .leave-request-edit-grid .searchable-select-trigger{font-size:13px;padding-inline:14px;min-height:42px}
body[data-controller="PermissionRequests"] .manager-decision-actions{display:flex;gap:6px;align-items:center;justify-content:flex-start}
body[data-controller="PermissionRequests"] .manager-decision-actions form{display:inline-flex;margin:0}


/* =====================================================================
   V24.20.1.1 — HR self balance scope + approvals access + UI consistency
   ===================================================================== */
body[data-controller="LeaveBalances"] .leave-balance-filter-panel,
body[data-controller="LeaveBalances"] .leave-balance-employee-panel,
body[data-controller="LeaveBalances"] .department-stats-strip,
body[data-controller="LeaveBalances"] .panel + .panel,
body[data-controller="LeaveBalances"] .leave-balance-stats + .panel{
  margin-bottom:16px;
}
body[data-controller="LeaveBalances"] .leave-balance-filter-grid{
  grid-template-columns:minmax(320px,1.6fr) minmax(220px,.9fr) minmax(150px,.55fr);
  gap:14px 16px;
  align-items:end;
}
body[data-controller="LeaveBalances"] .leave-balance-summary-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px 16px;
}
body[data-controller="LeaveBalances"] .leave-balance-filter-panel,
body[data-controller="LeaveBalances"] .leave-balance-employee-panel{
  padding:20px 22px;
}
body[data-controller="LeaveBalances"] .leave-balance-employee-panel .section-title-row{
  margin-bottom:14px;
  padding-bottom:12px;
  border-bottom:1px solid var(--border);
}
body[data-controller="LeaveBalances"] .field label,
body[data-controller="LeaveRequests"] .field label,
body[data-controller="HrApprovals"] .field label{
  font-size:12px;
  line-height:1.5;
}
body[data-controller="LeaveBalances"] .readonly-field,
body[data-controller="LeaveRequests"] .readonly-field,
body[data-controller="LeaveBalances"] .searchable-select-trigger,
body[data-controller="LeaveRequests"] .searchable-select-trigger,
body[data-controller="LeaveRequests"] .bs-filter-input{
  font-size:12px;
  padding-inline:14px;
}
body[data-controller="LeaveBalances"] .data-table th,
body[data-controller="LeaveBalances"] .data-table td,
body[data-controller="LeaveRequests"] .data-table th,
body[data-controller="LeaveRequests"] .data-table td,
body[data-controller="HrApprovals"] .data-table th,
body[data-controller="HrApprovals"] .data-table td{
  padding:13px 16px;
  font-size:11px;
}
body[data-controller="LeaveRequests"] .leave-request-stats{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
}
body[data-controller="LeaveRequests"] .leave-request-toolbar .toolbar-filter-form{
  display:grid;
  grid-template-columns:minmax(320px,1.6fr) minmax(220px,1fr) auto;
  gap:10px;
  align-items:center;
  width:100%;
}
body[data-controller="LeaveRequests"] .leave-request-toolbar .toolbar-search{
  min-width:0;
}
body[data-controller="LeaveRequests"] .leave-request-toolbar .toolbar-search input.bs-filter-input{
  width:100%;
  height:42px;
  min-height:42px;
  border:1px solid #dfe6dd;
  border-radius:10px;
  background:#fff;
  outline:none;
}
body[data-controller="LeaveRequests"] .leave-request-toolbar .toolbar-search input.bs-filter-input:focus{
  border-color:#75a95f;
  box-shadow:0 0 0 3px rgba(75,139,60,.1);
}
body[data-controller="LeaveRequests"] .employee-compact-name{
  white-space:nowrap;
}
body[data-controller="LeaveRequests"] select:not([multiple]),
body[data-controller="LeaveBalances"] select:not([multiple]),
body[data-controller="HrApprovals"] select:not([multiple]){
  appearance:none;
  -webkit-appearance:none;
}
body[data-controller="LeaveRequests"] .searchable-select-native,
body[data-controller="LeaveBalances"] .searchable-select-native,
body[data-controller="HrApprovals"] .searchable-select-native{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}
@media(max-width:1050px){
  body[data-controller="LeaveBalances"] .leave-balance-filter-grid,
  body[data-controller="LeaveBalances"] .leave-balance-summary-grid{
    grid-template-columns:1fr;
  }
  body[data-controller="LeaveRequests"] .leave-request-stats{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body[data-controller="LeaveRequests"] .leave-request-toolbar .toolbar-filter-form{
    grid-template-columns:1fr;
  }
}
@media(max-width:700px){
  body[data-controller="LeaveRequests"] .leave-request-stats{
    grid-template-columns:1fr;
  }
}


/* =====================================================================
   V24.20.2.0 — HR scope, cancellation, permission-time and spacing UX
   ===================================================================== */
body[data-controller="HrAlerts"] .contract-type-stats .department-stat small{font-size:11.5px;line-height:1.55;font-weight:700;color:#56645a}
body[data-controller="HrAlerts"] .contract-type-stats .department-stat b{display:block;min-width:44px;text-align:center;font-size:18px;line-height:1.2;margin-top:5px}
body[data-controller="HrAlerts"] .section-title-row small{font-size:10.5px;line-height:1.65}
body[data-controller="HrAlerts"] .section-title-row{padding:15px 18px;gap:16px}
body[data-controller="HrAlerts"] .panel{margin-bottom:16px}
body[data-controller="LeaveRequests"] .leave-request-details-panel,body[data-controller="LeaveRequests"] .leave-request-section-panel{margin-bottom:16px;padding:18px 20px}
body[data-controller="LeaveRequests"] .leave-request-details-panel .section-title-row,body[data-controller="LeaveRequests"] .leave-request-section-panel .section-title-row{margin-bottom:12px;padding-bottom:11px;border-bottom:1px solid var(--border)}
body[data-controller="LeaveRequests"] .leave-request-section-panel .table-wrap{margin-top:4px}
.operation-warning-box{background:#fff7e8;border:1px solid #efd9a8;color:#73571d;border-radius:10px;padding:11px 13px;margin-bottom:14px;font-size:11px;line-height:1.7}
body[data-controller="PermissionRequests"] .permission-requests-panel{padding:0;margin-bottom:16px}
body[data-controller="PermissionRequests"] .permission-clock{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:8px;align-items:center}
body[data-controller="PermissionRequests"] .permission-clock .searchable-select-combo{min-width:0}
body[data-controller="PermissionRequests"] .permission-hours-value{font-size:13px;font-weight:800;justify-content:flex-start;gap:5px}
body[data-controller="PermissionRequests"] .field-hint{font-size:10px;line-height:1.55;margin-top:2px}
body[data-controller="PermissionRequests"] .data-table th,body[data-controller="PermissionRequests"] .data-table td{padding:13px 16px}
body[data-controller="HrApprovals"] .hr-approvals-panel{margin-bottom:16px}
@media(max-width:800px){body[data-controller="PermissionRequests"] .permission-clock{grid-template-columns:1fr 82px}}


/* =====================================================================
   V24.20.2.3 — Leave details spacing + permission time/validation UX
   ===================================================================== */
body[data-controller="LeaveRequests"] .leave-request-details-panel,
body[data-controller="LeaveRequests"] .leave-request-section-panel{
  margin-bottom:16px;
  padding:20px 22px;
}
body[data-controller="LeaveRequests"] .leave-request-decision-panel{
  padding:20px 22px;
}
body[data-controller="LeaveRequests"] .leave-request-decision-panel .field{
  margin-top:14px;
}
body[data-controller="LeaveRequests"] .leave-request-decision-actions{
  margin-top:14px;
  padding:0;
}
body[data-controller="LeaveRequests"] .leave-request-page-footer{
  margin-top:0;
  padding:16px 20px 8px;
}
body[data-controller="PermissionRequests"] .permission-clock{
  display:grid;
  grid-template-columns:minmax(0,1fr) 84px;
  gap:10px;
  align-items:center;
}
body[data-controller="PermissionRequests"] .permission-time-input{
  width:100%;
  min-width:0;
  text-align:center;
  letter-spacing:.04em;
}
body[data-controller="PermissionRequests"] .permission-clock .custom-select-trigger,
body[data-controller="PermissionRequests"] .permission-clock .searchable-select-trigger{
  min-height:42px;
  height:42px;
}
body[data-controller="PermissionRequests"] .field-error-message{
  display:block;
  margin-top:5px;
  font-size:10.5px;
  line-height:1.45;
  color:#c9342f;
  font-weight:700;
}
body[data-controller="PermissionRequests"] .field-error-message[hidden]{display:none!important}
body[data-controller="PermissionRequests"] .field-has-error .permission-clock,
body[data-controller="PermissionRequests"] .field-has-error .date-entry{
  border-radius:10px;
}
body[data-controller="PermissionRequests"] .input-validation-error,
body[data-controller="PermissionRequests"] .field-has-error .custom-select-trigger,
body[data-controller="PermissionRequests"] .field-has-error .searchable-select-trigger{
  border-color:#d9534f!important;
  box-shadow:0 0 0 3px rgba(217,83,79,.10)!important;
}
@media(max-width:800px){
  body[data-controller="PermissionRequests"] .permission-clock{
    grid-template-columns:minmax(0,1fr) 78px;
    gap:8px;
  }
}

/* =====================================================================
   V24.20.2.4 — HR section spacing standard + leave-details normalization
   Every HR section must have both outer spacing and inner content padding.
   ===================================================================== */
.hr-section-panel{
  margin-bottom:18px!important;
  padding:20px 22px!important;
}
.hr-section-panel>.section-title-row{
  min-height:0!important;
  margin:0 0 14px!important;
  padding:0 0 13px!important;
  border-bottom:1px solid var(--border,#dfe7e1)!important;
  align-items:flex-start;
  gap:14px;
}
.hr-section-panel>.section-title-row>div{
  padding:0 2px;
}
.hr-section-panel>.section-title-row b{
  line-height:1.55;
}
.hr-section-panel>.section-title-row small{
  display:block;
  margin-top:3px;
  line-height:1.65;
}
body[data-controller="LeaveRequests"] .leave-request-details-grid{
  padding:2px 2px 0;
  gap:14px 16px;
}
body[data-controller="LeaveRequests"] .leave-request-section-panel>.table-wrap{
  margin:0!important;
  padding:0;
}
body[data-controller="LeaveRequests"] .leave-request-section-panel .data-table th,
body[data-controller="LeaveRequests"] .leave-request-section-panel .data-table td{
  padding:13px 16px;
}
body[data-controller="LeaveRequests"] .leave-request-documents{
  padding:2px 2px 0;
}
body[data-controller="LeaveRequests"] .leave-request-decision-panel>.field{
  margin:0!important;
  padding:2px 2px 0;
}
body[data-controller="LeaveRequests"] .leave-request-decision-actions{
  margin-top:14px!important;
  padding:0 2px!important;
}
body[data-controller="LeaveRequests"] .leave-request-page-footer{
  margin-top:2px!important;
  padding:0 2px 8px!important;
}
@media(max-width:700px){
  .hr-section-panel{padding:16px!important;margin-bottom:14px!important}
}


/* V24.20.2.5 — Global table action alignment hardening */
th.table-actions-column,
td.table-actions-column,
td.actions-cell,
td.purchase-action-cell,
td.row-actions{ text-align:left!important; }
.actions-cell>.manager-decision-actions,
.table-actions-column>.manager-decision-actions{
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:var(--bs-table-action-gap,6px)!important;
  direction:ltr!important;
  margin:0!important;
  padding:0!important;
  flex-wrap:nowrap!important;
}


/* ========================================================================== */
/* V24.20.2.6 — Unified table action column / fixed action slots              */
/* Scope: table action presentation only. No business or form layout changes. */
/* ========================================================================== */

/* The action-column title is always centered, regardless of RTL/LTR. */
.data-table th.table-actions-column,
.data-table thead td.table-actions-column,
th.table-actions-column,
thead td.table-actions-column{
  text-align:center!important;
  vertical-align:middle!important;
}

/* When every row exposes the same actions, center the complete action group. */
.data-table.bs-action-uniform td.actions-cell>.bs-row-action-set,
.data-table.bs-action-uniform td.table-actions-column>.bs-row-action-set,
.data-table.bs-action-uniform td.purchase-action-cell>.bs-row-action-set,
.data-table.bs-action-uniform td.row-actions>.bs-row-action-set,
.data-table.bs-action-uniform td.actions-cell>.crm-row-actions,
.data-table.bs-action-uniform td.table-actions-column>.crm-row-actions,
.data-table.bs-action-uniform td.actions-cell>.quotation-actions,
.data-table.bs-action-uniform td.table-actions-column>.quotation-actions,
.data-table.bs-action-uniform td.actions-cell>.contract-row-actions,
.data-table.bs-action-uniform td.table-actions-column>.contract-row-actions,
.data-table.bs-action-uniform td.actions-cell>.manager-decision-actions,
.data-table.bs-action-uniform td.table-actions-column>.manager-decision-actions{
  justify-content:center!important;
  margin-inline:auto!important;
}

/* Variable rows use fixed mini-columns (slots). Missing actions keep their
   physical place empty, so Edit/View/Delete/etc. stay exactly under each other. */
table.bs-action-variable .bs-row-action-set.bs-action-slot-grid{
  display:grid!important;
  grid-template-columns:repeat(var(--bs-action-slot-count,1),var(--bs-table-action-size))!important;
  grid-auto-rows:var(--bs-table-action-size)!important;
  align-items:center!important;
  justify-content:center!important;
  justify-items:center!important;
  column-gap:var(--bs-table-action-gap,5px)!important;
  row-gap:0!important;
  width:100%!important;
  direction:ltr!important;
}
.data-table .bs-row-action-set.bs-action-slot-grid>a,
.data-table .bs-row-action-set.bs-action-slot-grid>button,
.data-table .bs-row-action-set.bs-action-slot-grid>form,
.data-table .bs-row-action-set.bs-action-slot-grid>.inline-form,
.data-table .bs-row-action-set.bs-action-slot-grid>.bs-action-menu-wrap{
  margin:0!important;
  align-self:center!important;
  justify-self:center!important;
}


/* ========================================================================== */
/* V24.20.2.7 — table action slot identity + HR approval action normalization  */
/* Scope: action-column presentation only.                                    */
/* ========================================================================== */

/* HR approval/permission views had older controller-specific flex-start rules.
   The table contract wins: header centered; fixed/uniform action groups centered. */
body[data-controller="HrApprovals"] .data-table th.table-actions-column,
body[data-controller="PermissionRequests"] .data-table th.table-actions-column{
  text-align:center!important;
}
body[data-controller="HrApprovals"] .data-table td.table-actions-column>.manager-decision-actions,
body[data-controller="PermissionRequests"] .data-table td.table-actions-column>.manager-decision-actions{
  width:100%!important;
  justify-content:center!important;
  margin-inline:auto!important;
}

/* Keep the approved/reject/cancel controls on the same standard square chrome;
   older HR page rules removed the button border entirely. */
body[data-controller="HrApprovals"] .manager-decision-actions .crm-action-btn,
body[data-controller="PermissionRequests"] .manager-decision-actions .crm-action-btn{
  box-sizing:border-box!important;
  width:var(--bs-table-action-size)!important;
  min-width:var(--bs-table-action-size)!important;
  max-width:var(--bs-table-action-size)!important;
  height:var(--bs-table-action-size)!important;
  min-height:var(--bs-table-action-size)!important;
  max-height:var(--bs-table-action-size)!important;
  border:1px solid var(--border)!important;
  border-radius:8px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  margin:0!important;
  line-height:1!important;
}
body[data-controller="HrApprovals"] .manager-decision-actions .crm-action-btn.danger,
body[data-controller="PermissionRequests"] .manager-decision-actions .crm-action-btn.danger{
  border-color:#efd0cc!important;
}


/* ==========================================================================
   V24.20.2.8 — final fixed action-slot layout + HR permission duration text
   Scope: table action presentation and PermissionRequests duration display only.
   ========================================================================== */
/* Action headers are always centered. */
th.table-actions-column,
thead td.table-actions-column,
.data-table th.table-actions-column,
.data-table thead td.table-actions-column{
  text-align:center!important;
  vertical-align:middle!important;
}
/* Every action wrapper has one stable centered footprint. */
td.actions-cell>.bs-row-action-set,
td.table-actions-column>.bs-row-action-set,
td.purchase-action-cell>.bs-row-action-set,
td.row-actions>.bs-row-action-set,
td.actions-cell>.manager-decision-actions,
td.table-actions-column>.manager-decision-actions{
  margin-inline:auto!important;
}
/* Variable tables keep empty logical slots; visible controls never collapse left/right. */
table.bs-action-variable .bs-row-action-set.bs-action-slot-grid{
  display:grid!important;
  grid-template-columns:repeat(var(--bs-action-slot-count,1),var(--bs-table-action-size))!important;
  grid-auto-flow:row!important;
  justify-content:center!important;
  justify-items:center!important;
  align-items:center!important;
  gap:0 var(--bs-table-action-gap,6px)!important;
  width:max-content!important;
  min-width:calc((var(--bs-action-slot-count,1) * var(--bs-table-action-size)) + ((var(--bs-action-slot-count,1) - 1) * var(--bs-table-action-gap,6px)))!important;
  max-width:none!important;
  direction:ltr!important;
}
/* Uniform tables center the full group as one unit. */
table.bs-action-uniform .bs-row-action-set{
  justify-content:center!important;
  margin-inline:auto!important;
  width:max-content!important;
}

/* =====================================================================
   V24.21.0.1 — HR leave inquiry approved-only filter layout
   ===================================================================== */
body[data-controller="LeaveInquiry"] .leave-inquiry-panel,
body[data-controller="LeaveInquiry"] .leave-inquiry-results-panel{
  margin-bottom:18px;
}
body[data-controller="LeaveInquiry"] .leave-inquiry-filters{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px 18px;
  padding:2px 2px 0;
  align-items:end;
}
body[data-controller="LeaveInquiry"] .leave-inquiry-filters .field{margin:0;min-width:0}
body[data-controller="LeaveInquiry"] .leave-inquiry-filters .date-entry{width:100%}
body[data-controller="LeaveInquiry"] .leave-inquiry-search-field{grid-column:auto}
body[data-controller="LeaveInquiry"] .leave-inquiry-filter-actions{
  grid-column:auto;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:stretch;
  gap:6px;
  min-width:0;
}
body[data-controller="LeaveInquiry"] .leave-inquiry-filter-actions .btn{
  width:100%;
  min-width:0;
  justify-content:center;
  white-space:nowrap;
  padding-inline:8px;
  font-size:12px;
  gap:5px;
}
body[data-controller="LeaveInquiry"] .leave-inquiry-results-panel>.table-wrap{margin:0;padding:0}
body[data-controller="LeaveInquiry"] .leave-inquiry-table th,
body[data-controller="LeaveInquiry"] .leave-inquiry-table td{padding:13px 14px;vertical-align:middle}
body[data-controller="LeaveInquiry"] .leave-inquiry-table .table-subtext{display:block;margin-top:3px;color:var(--muted);font-size:11px}
body[data-controller="LeaveInquiry"] .leave-inquiry-table .table-actions-column{min-width:110px}
@media(max-width:1100px){
  body[data-controller="LeaveInquiry"] .leave-inquiry-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  body[data-controller="LeaveInquiry"] .leave-inquiry-filters{grid-template-columns:1fr}
  body[data-controller="LeaveInquiry"] .leave-inquiry-filter-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media print{
  body[data-controller="LeaveInquiry"] .sidebar,
  body[data-controller="LeaveInquiry"] .topbar,
  body[data-controller="LeaveInquiry"] .leave-inquiry-panel,
  body[data-controller="LeaveInquiry"] .breadcrumbs,
  body[data-controller="LeaveInquiry"] .table-actions-column{display:none!important}
  body[data-controller="LeaveInquiry"] .main-content{margin:0!important;padding:0!important}
  body[data-controller="LeaveInquiry"] .leave-inquiry-results-panel{border:0!important;box-shadow:none!important;padding:0!important}
}


/* =====================================================================
   V24.21.0.3 — Leave Inquiry administrative cancellation modal UX
   ===================================================================== */
body[data-controller="LeaveInquiry"] .leave-cancel-modal-card{
  width:min(720px,94vw);
  border-radius:18px;
  overflow:hidden;
}
body[data-controller="LeaveInquiry"] .leave-cancel-modal-head{
  padding:18px 20px 16px;
  gap:16px;
  align-items:flex-start;
}
body[data-controller="LeaveInquiry"] .leave-cancel-modal-head h2{
  font-size:18px;
  line-height:1.5;
  margin:0;
}
body[data-controller="LeaveInquiry"] .leave-cancel-modal-head small{
  display:block;
  margin-top:5px;
  font-size:11px;
  line-height:1.6;
  color:var(--muted);
}
body[data-controller="LeaveInquiry"] .leave-cancel-modal-body{
  padding:18px 20px 20px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
body[data-controller="LeaveInquiry"] .leave-cancel-warning{
  margin:0;
  padding:13px 15px;
  border-radius:12px;
  line-height:1.8;
}
body[data-controller="LeaveInquiry"] .leave-cancel-reason-field{
  margin:0;
  gap:7px;
}
body[data-controller="LeaveInquiry"] .leave-cancel-reason-field label{
  font-size:12px;
  font-weight:700;
}
body[data-controller="LeaveInquiry"] .leave-cancel-reason-field .bs-themed-textarea{
  height:92px!important;
  min-height:92px!important;
  max-height:150px!important;
  padding:12px 14px!important;
  line-height:1.8;
  resize:vertical;
}
body[data-controller="LeaveInquiry"] .leave-cancel-modal-footer{
  padding:14px 20px 18px;
  gap:10px;
  justify-content:flex-start;
}
body[data-controller="LeaveInquiry"] .leave-cancel-modal-footer .btn{
  min-height:42px;
  padding-inline:16px;
}
@media(max-width:700px){
  body[data-controller="LeaveInquiry"] .leave-cancel-modal-head{padding:15px 16px 13px}
  body[data-controller="LeaveInquiry"] .leave-cancel-modal-body{padding:15px 16px 17px;gap:13px}
  body[data-controller="LeaveInquiry"] .leave-cancel-modal-footer{padding:12px 16px 16px;flex-wrap:wrap}
  body[data-controller="LeaveInquiry"] .leave-cancel-modal-footer .btn{flex:1 1 140px}
}


/* V24.21.0.5 - HR approval workflow / bidi / reject modal */
.period-display{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;unicode-bidi:isolate}
.period-display bdi{font-variant-numeric:tabular-nums;unicode-bidi:isolate}
.duration-display{display:inline-block;white-space:nowrap;unicode-bidi:isolate}
body[data-controller="HrApprovals"] .manager-reject-modal-card{max-width:720px;width:min(720px,calc(100vw - 32px));overflow:hidden}
body[data-controller="HrApprovals"] .manager-reject-modal-body{padding:22px 24px 18px}
body[data-controller="HrApprovals"] .manager-reject-field{display:flex;flex-direction:column;gap:9px;margin:0}
body[data-controller="HrApprovals"] .manager-reject-field label{margin:0;font-weight:700;line-height:1.6}
body[data-controller="HrApprovals"] .manager-reject-textarea{min-height:110px;resize:vertical;padding:12px 14px;line-height:1.8}
body[data-controller="HrApprovals"] .manager-reject-textarea.is-invalid{border-color:#dc4c45!important;box-shadow:0 0 0 2px rgba(220,76,69,.08)}
body[data-controller="HrApprovals"] .manager-reject-validation{margin-top:0;color:#c93a34;font-size:12px;font-weight:600}
body[data-controller="HrApprovals"] .manager-reject-footer{padding:16px 24px 20px;gap:10px;border-top:1px solid var(--border,#e5ebe6)}

/* ========================================================================== */
/* V24.21.0.7 — Permission Center: Module > Screen > Actual Actions only      */
/* ========================================================================== */
.permission-center-v2{overflow:visible}
.permission-center-toolbar{
  display:grid;grid-template-columns:minmax(230px,320px) minmax(260px,1fr) minmax(220px,320px) auto;
  gap:10px;align-items:end;padding:14px;border-bottom:1px solid var(--border);background:#fbfdf9;
}
.permission-screen-search{height:42px;align-self:end}
.permission-toolbar-links{display:flex;align-items:center;gap:7px;white-space:nowrap}
.permission-module-list-v2{padding:14px;gap:10px}
.permission-module-card-v2{overflow:hidden}
.permission-module-head-v2{padding:0 12px;min-height:54px}
.permission-module-toggle{
  flex:1;display:flex;align-items:center;gap:10px;min-width:0;padding:11px 0;border:0;background:transparent;
  color:inherit;text-align:right;cursor:pointer;font-family:inherit;
}
.permission-module-chevron{width:24px;height:24px;display:grid;place-items:center;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:15px;transition:.16s}
.permission-module-card.is-collapsed .permission-module-chevron{transform:rotate(90deg)}
.permission-module-title-wrap{display:flex;align-items:center;gap:9px;min-width:0;flex-wrap:wrap}
.permission-module-title-wrap strong{font-size:13px}
.permission-module-title-wrap small{color:var(--muted);font-size:9px;font-weight:700}
.permission-module-body{display:flex;flex-direction:column}
.permission-module-card.is-collapsed .permission-module-body{display:none}
.permission-resource-row{
  display:grid;grid-template-columns:minmax(230px,310px) 1fr;gap:16px;align-items:center;
  padding:11px 14px;border-bottom:1px solid #edf1eb;background:#fff;
}
.permission-resource-row:last-of-type{border-bottom:0}
.permission-resource-row[hidden]{display:none!important}
.permission-resource-info{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.permission-resource-info b{display:block;font-size:10.5px}
.permission-resource-info small{display:block;color:var(--muted);font-size:8px;margin-top:2px;text-align:right}
.permission-resource-all{border:0;background:transparent;color:var(--green-700);font-size:8.5px;font-weight:800;cursor:pointer;white-space:nowrap}
.permission-resource-all:hover{text-decoration:underline}
.permission-action-list{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0}
.permission-action-toggle{
  position:relative;display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid #dbe4d9;
  border-radius:9px;background:#fff;cursor:pointer;user-select:none;transition:.15s;min-height:34px;
}
.permission-action-toggle:hover{border-color:#a9c6aa;background:#f8fbf7}
.permission-action-toggle input{position:absolute;opacity:0;pointer-events:none}
.permission-action-box{
  width:18px;height:18px;display:grid;place-items:center;border:1.4px solid #c7d3c5;border-radius:6px;background:#fff;transition:.15s;
}
.permission-action-mark{font-family:Arial,sans-serif;font-size:11px;font-weight:800;color:#fff;opacity:0;transform:scale(.6);transition:.15s}
.permission-action-name{font-size:9.5px;font-weight:800;color:#465249;white-space:nowrap}
.permission-action-toggle:has(input:checked){border-color:#b8d8b8;background:#f2f8f0}
.permission-action-toggle input:checked + .permission-action-box{background:var(--green-700);border-color:var(--green-700)}
.permission-action-toggle input:checked + .permission-action-box .permission-action-mark{opacity:1;transform:scale(1)}
.permission-action-toggle:has(input:disabled){opacity:.82;cursor:not-allowed}
.permission-module-no-results{padding:18px;text-align:center;color:var(--muted);font-size:10px;background:#fafcf9}
.permission-search-empty{margin:14px;min-height:140px}
.permission-center-v2 .permission-system-note{margin:12px 14px 0}
.permission-center-v2 .permission-footer-save{padding:12px 14px 14px;border-top:1px solid var(--border);margin-top:4px}
.permission-center-v2 .permission-selected-role-summary{min-height:42px}

@media(max-width:1200px){
  .permission-center-toolbar{grid-template-columns:1fr 1fr}.permission-toolbar-links{justify-content:flex-end}
}
@media(max-width:820px){
  .permission-center-toolbar{grid-template-columns:1fr}.permission-toolbar-links{justify-content:stretch;flex-wrap:wrap}
  .permission-resource-row{grid-template-columns:1fr;gap:8px}
  .permission-resource-info{align-items:flex-start}
}
@media(max-width:520px){
  .permission-action-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .permission-action-toggle{justify-content:flex-start}
}

/* V24.21.0.9 - General permission-driven Report Center */
.report-center-panel{display:grid;gap:18px}.report-center-summary{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:18px;border:1px solid var(--line,#e3e9e2);border-radius:16px;background:#fff}.report-center-summary>div:first-child{display:grid;gap:4px}.report-center-summary span{color:var(--muted,#68756e);font-size:13px}.report-center-summary b{font-size:28px;line-height:1}.report-center-search{width:min(420px,100%)}.report-center-group{display:grid;gap:12px}.report-center-group-head{display:flex;align-items:center;justify-content:space-between;padding:0 4px}.report-center-group-head h2{margin:0;font-size:18px}.report-center-group-head small{color:var(--muted,#68756e)}.report-center-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.report-center-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;min-height:118px;padding:18px;border:1px solid var(--line,#e3e9e2);border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(20,62,39,.04)}.report-center-card-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#f0f7f0;color:#1e7a35;font-size:22px;font-weight:700}.report-center-card-copy{min-width:0}.report-center-card-copy h3{margin:0 0 6px;font-size:16px}.report-center-card-copy p{margin:0;color:var(--muted,#68756e);font-size:12.5px;line-height:1.8}.report-center-open{white-space:nowrap}.report-center-card[hidden],.report-center-group[hidden]{display:none!important}@media(max-width:1100px){.report-center-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.report-center-summary{align-items:stretch;flex-direction:column}.report-center-search{width:100%}.report-center-grid{grid-template-columns:1fr}.report-center-card{grid-template-columns:auto 1fr}.report-center-open{grid-column:1/-1;width:100%}}


/* V24.21.0.10 — Section report management spacing */
.report-center-heading{margin-bottom:16px!important;padding-inline:2px!important}
.report-center-panel-section{padding:20px!important;gap:18px!important}
.report-center-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 0 16px;border-bottom:1px solid var(--line,#e3e9e2)}
.report-center-count{display:flex;align-items:center;gap:10px;white-space:nowrap}.report-center-count span{color:var(--muted,#68756e);font-size:13px}.report-center-count b{font-size:20px}
.report-center-panel-section .report-center-search{width:min(390px,100%)}
.report-center-card-compact{min-height:86px;padding:16px 18px;box-shadow:none}
.report-center-card-compact .report-center-card-copy h3{margin:0;font-size:15px}
.report-center-panel-section .report-center-grid{gap:12px}
@media(max-width:720px){.report-center-panel-section{padding:14px!important}.report-center-toolbar{align-items:stretch;flex-direction:column}.report-center-count{justify-content:space-between}.report-center-card-compact{min-height:82px;padding:14px}}

/* V24.21.0.11 — semantic modern icons for section report cards */
.report-center-card-icon{
  width:46px;height:46px;border-radius:14px;
  display:grid;place-items:center;
  background:linear-gradient(145deg,#f4f9f3,#edf6ed);
  border:1px solid #e0ebdf;
  color:var(--green-700,#1e7a35);
  box-shadow:0 5px 14px rgba(35,93,52,.06);
}
.report-center-card-icon svg{
  width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;
}
.report-center-card-icon-employees{background:linear-gradient(145deg,#f2f8f1,#eaf5ea)}
.report-center-card-icon-customers{background:linear-gradient(145deg,#f3f8f5,#ebf5ef)}
.report-center-card-icon-suppliers{background:linear-gradient(145deg,#f7f8f2,#f1f4e8)}
.report-center-card-compact{transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.report-center-card-compact:hover{border-color:#d4e2d3;box-shadow:0 10px 26px rgba(28,73,42,.06);transform:translateY(-1px)}
@media(max-width:720px){.report-center-card-icon{width:42px;height:42px;border-radius:12px}.report-center-card-icon svg{width:23px;height:23px}}


/* ========================================================================== */
/* V24.21.0.13 — Global Semantic Action Icon Standard                         */
/* Icons only: no page/layout redesign. Same action = same icon color.         */
/* Inventory row-action sizing is the project-wide reference.                  */
/* ========================================================================== */
:root{
  --bs-action-icon-neutral:#4f5f56;
  --bs-action-icon-view:#2f7d4b;
  --bs-action-icon-edit:#2f6fed;
  --bs-action-icon-create:#2f8a3f;
  --bs-action-icon-success:#27833d;
  --bs-action-icon-danger:#c8453c;
  --bs-action-icon-warning:#b97814;
  --bs-action-icon-info:#256f8f;
  --bs-action-icon-purple:#7656b5;
}

/* Semantic color is applied to the SVG only. Existing button backgrounds,
   borders, typography and page colors stay untouched. */
.bs-action-kind-delete .bs-action-icon,
.bs-action-kind-reject .bs-action-icon,
.bs-action-kind-cancel .bs-action-icon{color:var(--bs-action-icon-danger)!important}

.bs-action-kind-add .bs-action-icon,
.bs-action-kind-save .bs-action-icon,
.bs-action-kind-approve .bs-action-icon,
.bs-action-kind-post .bs-action-icon,
.bs-action-kind-receipt .bs-action-icon{color:var(--bs-action-icon-success)!important}

.bs-action-kind-edit .bs-action-icon{color:var(--bs-action-icon-edit)!important}
.bs-action-kind-view .bs-action-icon{color:var(--bs-action-icon-view)!important}
.bs-action-kind-print .bs-action-icon,
.bs-action-kind-thermal .bs-action-icon,
.bs-action-kind-more .bs-action-icon,
.bs-action-kind-back .bs-action-icon,
.bs-action-kind-close .bs-action-icon,
.bs-action-kind-menu .bs-action-icon{color:var(--bs-action-icon-neutral)!important}

.bs-action-kind-filter .bs-action-icon,
.bs-action-kind-search .bs-action-icon,
.bs-action-kind-calendar .bs-action-icon{color:var(--bs-action-icon-neutral)!important}

.bs-action-kind-send .bs-action-icon,
.bs-action-kind-download .bs-action-icon,
.bs-action-kind-upload .bs-action-icon,
.bs-action-kind-export .bs-action-icon,
.bs-action-kind-import .bs-action-icon,
.bs-action-kind-refresh .bs-action-icon{color:var(--bs-action-icon-info)!important}

.bs-action-kind-reverse .bs-action-icon,
.bs-action-kind-pause .bs-action-icon,
.bs-action-kind-lock .bs-action-icon,
.bs-action-kind-repair .bs-action-icon{color:var(--bs-action-icon-warning)!important}

.bs-action-kind-resume .bs-action-icon,
.bs-action-kind-unlock .bs-action-icon,
.bs-action-kind-select .bs-action-icon{color:var(--bs-action-icon-success)!important}

.bs-action-kind-copy .bs-action-icon,
.bs-action-kind-assign .bs-action-icon,
.bs-action-kind-compare .bs-action-icon,
.bs-action-kind-statement .bs-action-icon,
.bs-action-kind-journal .bs-action-icon,
.bs-action-kind-journalbook .bs-action-icon,
.bs-action-kind-contractfile .bs-action-icon,
.bs-action-kind-card .bs-action-icon,
.bs-action-kind-barcode .bs-action-icon{color:var(--bs-action-icon-purple)!important}

.bs-action-kind-payment .bs-action-icon,
.bs-action-kind-collectionpay .bs-action-icon{color:var(--bs-action-icon-success)!important}

.bs-action-kind-opportunity .bs-action-icon,
.bs-action-kind-quotation .bs-action-icon,
.bs-action-kind-contract .bs-action-icon,
.bs-action-kind-activity .bs-action-icon{color:var(--bs-action-icon-info)!important}

/* Final row-action chrome standard. This intentionally changes only the action
   control footprint/padding, not table columns or surrounding screen layout. */
.data-table tbody .actions-cell .bs-icon-action,
.data-table tbody .table-actions-column .bs-icon-action,
.data-table tbody .purchase-action-cell .bs-icon-action,
.data-table tbody td.row-actions .bs-icon-action,
.data-table tbody .actions-cell .mini-btn,
.data-table tbody .table-actions-column .mini-btn,
.data-table tbody .purchase-action-cell .mini-btn,
.data-table tbody .actions-cell .crm-action-btn,
.data-table tbody .table-actions-column .crm-action-btn,
.data-table tbody .purchase-action-cell .crm-action-btn,
.data-table tbody .table-actions .crm-action-btn,
.data-table tbody .crm-row-actions .crm-action-btn{
  box-sizing:border-box!important;
  width:var(--bs-table-action-size,32px)!important;
  min-width:var(--bs-table-action-size,32px)!important;
  max-width:var(--bs-table-action-size,32px)!important;
  height:var(--bs-table-action-size,32px)!important;
  min-height:var(--bs-table-action-size,32px)!important;
  max-height:var(--bs-table-action-size,32px)!important;
  padding:0!important;
  margin:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:8px!important;
  line-height:1!important;
  flex:0 0 var(--bs-table-action-size,32px)!important;
}
.data-table tbody .actions-cell .bs-action-icon,
.data-table tbody .table-actions-column .bs-action-icon,
.data-table tbody .purchase-action-cell .bs-action-icon,
.data-table tbody td.row-actions .bs-action-icon,
.data-table tbody .table-actions .bs-action-icon,
.data-table tbody .crm-row-actions .bs-action-icon{
  width:14px!important;
  height:14px!important;
  min-width:14px!important;
  flex:0 0 14px!important;
  margin:0!important;
}
.data-table tbody .table-actions,
.data-table tbody .crm-row-actions,
.data-table tbody .row-actions,
.data-table tbody .bs-row-action-set{
  align-items:center!important;
  gap:var(--bs-table-action-gap,6px)!important;
}

/* Purchase Orders used an older 30px/local rule. Make its actions use the same
   footprint as Inventory without changing columns, filters, cards or row data. */
body[data-controller="PurchaseOrders"] .purchase-table .table-actions{
  gap:var(--bs-table-action-gap,6px)!important;
  padding:0!important;
  margin:0!important;
  align-items:center!important;
}
body[data-controller="PurchaseOrders"] .purchase-table .table-actions>a,
body[data-controller="PurchaseOrders"] .purchase-table .table-actions>button,
body[data-controller="PurchaseOrders"] .purchase-table .table-actions>form{
  margin:0!important;
  padding:0!important;
}

/* ========================================================================== 
   V24.21.0.16 — BusinessSuite green visual refresh + user favorites
   تغييرات لونية فقط على الهيكل القائم + صندوق مفضلة عائم مستقل.
   ========================================================================== */
:root{
  --green-950:#073d2b;
  --green-900:#0a4a32;
  --green-800:#145c39;
  --green-700:#2f7a2f;
  --green-600:#4f8f2f;
  --green-100:#e9f2df;
  --green-50:#f4f8ef;
  --ink:#173021;
  --muted:#7c8b80;
  --border:#dfe8da;
  --canvas:#f3f6ef;
  --shadow:0 12px 28px rgba(39,74,42,.08);
}
body{background:linear-gradient(180deg,#f8faf5 0,#f3f6ef 100%)}
.sidebar{
  background:
    radial-gradient(circle at 18% 9%,rgba(139,191,82,.16),transparent 26%),
    linear-gradient(180deg,#0a4b33 0%,#093f2e 62%,#073426 100%);
  box-shadow:-10px 0 34px rgba(8,58,40,.14);
}
.brand-mark{background:linear-gradient(145deg,#edf6e4,#cfe6b7);color:#3f7d25}
.nav-item,.nav-group-title{color:#eff7f1}
.nav-group .nav-item{color:#dcebe1}
.nav-item:hover,.nav-item.selected{
  background:linear-gradient(90deg,#397c2c,#5a9634);
  box-shadow:0 8px 20px rgba(69,128,48,.26)
}
.sidebar-footer{background:rgba(255,255,255,.065)}
.topbar{background:rgba(255,255,255,.96);backdrop-filter:blur(9px)}
.panel,.summary-card{border-color:#e0e8db;box-shadow:0 10px 26px rgba(45,75,42,.065)}
.data-table th{background:#f4f8f0}
.data-table tbody tr:hover{background:#f8fbf5}
.global-search{background:#fbfcf9}
.icon-btn{background:#fff;border-color:#dde6d9}
.btn.primary{background:linear-gradient(135deg,#2f7a2f,#5a9432)}

/* المفضلة: صندوق على اليسار لا يغير عرض أو هيكل الصفحات الحالية. */
.quick-favorites{
  position:fixed;
  left:18px;
  top:94px;
  z-index:42;
  width:222px;
  max-height:calc(100vh - 118px);
  background:rgba(255,255,255,.96);
  border:1px solid #dce7d6;
  border-radius:16px;
  box-shadow:0 16px 38px rgba(22,68,37,.13);
  overflow:hidden;
  backdrop-filter:blur(10px);
  transition:width .2s ease,transform .2s ease;
}
.quick-favorites-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 13px;background:linear-gradient(135deg,#f3f8ed,#e8f1df);border-bottom:1px solid #dce7d6}
.quick-favorites-head b,.quick-favorites-head span{display:block}
.quick-favorites-head b{font-size:12px;color:#24552d}
.quick-favorites-head span{font-size:9px;color:#7c8c7e;margin-top:2px}
.quick-favorites-toggle{width:31px;height:31px;min-width:31px;border:1px solid #cfe0c5;border-radius:9px;background:#fff;color:#4f8f2f;cursor:pointer;font-size:15px}
.quick-favorites-body{padding:8px;overflow:auto;max-height:calc(100vh - 175px)}
.quick-favorites-list{display:flex;flex-direction:column;gap:5px}
.quick-favorite-item{display:flex;align-items:center;gap:8px;border:1px solid transparent;border-radius:10px;padding:7px 8px;background:#fff;transition:.15s}
.quick-favorite-item:hover{background:#f4f8ef;border-color:#dce8d6;transform:translateX(1px)}
.quick-favorite-link{display:flex;align-items:center;gap:7px;min-width:0;flex:1;color:#294a31;font-size:10.5px;font-weight:700}
.quick-favorite-icon{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:#eaf3e2;color:#497f30;flex:0 0 auto}
.quick-favorite-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.quick-favorite-remove{width:24px;height:24px;border:0;border-radius:7px;background:transparent;color:#a65d55;cursor:pointer;opacity:.66}
.quick-favorite-remove:hover{background:#fdeeed;color:#c4473e;opacity:1}
.quick-favorites-empty{font-size:9.5px;line-height:1.8;color:#879287;text-align:center;padding:12px 8px}
.quick-favorites.collapsed{width:48px}
.quick-favorites.collapsed .quick-favorites-head{padding:8px}
.quick-favorites.collapsed .quick-favorites-head>div,.quick-favorites.collapsed .quick-favorites-body{display:none}
.favorite-context-menu{display:none;position:fixed;z-index:150;background:#fff;border:1px solid #dce7d6;border-radius:10px;box-shadow:0 14px 34px rgba(22,68,37,.16);padding:5px;min-width:175px}
.favorite-context-menu.show{display:block}
.favorite-context-menu button{width:100%;border:0;background:#fff;border-radius:7px;padding:9px 10px;text-align:right;cursor:pointer;font-size:10.5px;color:#31563a}
.favorite-context-menu button:hover{background:#eef5e8}
@media(max-width:1350px){.quick-favorites{width:48px}.quick-favorites .quick-favorites-head{padding:8px}.quick-favorites .quick-favorites-head>div,.quick-favorites .quick-favorites-body{display:none}.quick-favorites.expanded{width:222px}.quick-favorites.expanded .quick-favorites-head{padding:12px 13px}.quick-favorites.expanded .quick-favorites-head>div,.quick-favorites.expanded .quick-favorites-body{display:block}}
@media(max-width:700px){.quick-favorites{left:10px;top:84px}.favorite-context-menu{min-width:165px}}
@media print{.quick-favorites,.favorite-context-menu{display:none!important}}

/* ========================================================================== 
   V24.21.0.16A — Favorites compact sizing + active section visual emphasis
   UI-only patch. No layout structure or business/permission logic changes.
   ========================================================================== */

/* Favorites: compact rows, content-driven width, vertical scroll only. */
.quick-favorites{
  width:max-content;
  min-width:190px;
  max-width:min(310px,calc(100vw - 36px));
}
.quick-favorites-head{
  gap:8px;
  padding:8px 10px;
}
.quick-favorites-head b{font-size:11.5px}
.quick-favorites-head span{font-size:8.5px;margin-top:1px}
.quick-favorites-toggle{
  width:29px;
  height:29px;
  min-width:29px;
  border-radius:8px;
  font-size:13px;
}
.quick-favorites-body{
  padding:5px 6px 6px;
  overflow-y:auto;
  overflow-x:hidden;
  max-height:calc(100vh - 160px);
}
.quick-favorites-list{
  display:flex;
  flex-direction:column;
  gap:2px;
  width:max-content;
  min-width:100%;
  max-width:100%;
}
.quick-favorite-item{
  width:100%;
  min-height:29px;
  gap:6px;
  padding:3px 5px;
  border-radius:8px;
  box-sizing:border-box;
}
.quick-favorite-link{
  gap:6px;
  min-width:0;
  flex:1 1 auto;
  font-size:10.25px;
  white-space:nowrap;
}
.quick-favorite-icon{
  width:19px;
  height:19px;
  min-width:19px;
  border-radius:6px;
  font-size:10px;
}
.quick-favorite-title{
  overflow:visible;
  text-overflow:clip;
  white-space:nowrap;
}
.quick-favorite-remove{
  width:20px;
  height:20px;
  min-width:20px;
  border-radius:6px;
  font-size:13px;
  line-height:20px;
  padding:0;
}
.quick-favorites-empty{font-size:9px;line-height:1.65;padding:9px 7px}

/* Global action icon decorator must never add a second business-action icon
   inside the quick-access links. The favorite owns its single icon slot. */
.quick-favorites .quick-favorite-link > .bs-action-icon,
.quick-favorites .quick-favorite-link > svg.bs-action-icon,
.quick-favorites .quick-favorite-link > i.bs-action-icon{
  display:none!important;
}

/* Content-size panel must still preserve the existing compact/collapsed mode. */
.quick-favorites.collapsed{width:46px;min-width:46px;max-width:46px}
@media(max-width:1350px){
  .quick-favorites{width:46px;min-width:46px;max-width:46px}
  .quick-favorites .quick-favorites-head{padding:7px}
  .quick-favorites.expanded{
    width:max-content;
    min-width:190px;
    max-width:min(310px,calc(100vw - 28px));
  }
  .quick-favorites.expanded .quick-favorites-head{padding:8px 10px}
}

/* Active module/section: stronger parent identity, while preserving the
   existing selected child treatment and the current sidebar structure. */
.side-nav .nav-group.active{
  border-color:rgba(183,229,151,.30)!important;
  background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.025))!important;
  box-shadow:inset 0 0 0 1px rgba(112,185,91,.06),0 8px 18px rgba(1,30,19,.10);
}
.side-nav .nav-group.active > .nav-group-title{
  position:relative;
  background:linear-gradient(90deg,rgba(75,142,55,.78),rgba(41,108,49,.50))!important;
  color:#fff!important;
  box-shadow:inset 0 0 0 1px rgba(217,244,197,.12),0 5px 14px rgba(0,31,19,.16);
}
.side-nav .nav-group.active > .nav-group-title::before{
  content:"";
  position:absolute;
  right:0;
  top:7px;
  bottom:7px;
  width:3px;
  border-radius:4px;
  background:#bce891;
  box-shadow:0 0 10px rgba(188,232,145,.30);
}
.side-nav .nav-group.active > .nav-group-title .nav-symbol{
  background:rgba(255,255,255,.11);
  border:1px solid rgba(220,246,204,.13);
  border-radius:7px;
  color:#e8f8dc;
}
.side-nav .nav-group.active > .nav-group-title .nav-chevron{color:#eaf8e1!important}
.side-nav .nav-group.active .nav-group-items .nav-item.selected{
  background:linear-gradient(90deg,#4b8f37,#327a35)!important;
  box-shadow:inset 0 0 0 1px rgba(219,246,201,.14),0 6px 14px rgba(3,43,25,.20)!important;
}
.side-nav .nav-group.active .nav-group-items .nav-item.selected::before{
  background:#d0f3ae!important;
  box-shadow:0 0 0 3px rgba(208,243,174,.12),0 0 9px rgba(208,243,174,.20)!important;
}

/* ========================================================================== 
   V24.21.0.16B — Active section cleanup + favorites breadcrumb clearance
   UI-only patch. No navigation structure, permission or business logic changes.
   ========================================================================== */

/* Keep the current section emphasis on its title only. The group wrapper must
   remain visually quiet so the sidebar does not look double-selected. */
.side-nav .nav-group.active{
  border-color:transparent!important;
  background:transparent!important;
  box-shadow:none!important;
}

/* Keep the favorites launcher clear of the breadcrumb/title row. */
.quick-favorites{
  top:132px;
}
@media(max-width:700px){
  .quick-favorites{top:118px}
}

/* ========================================================================== 
   V24.21.0.16C — Correct active-section frame + favorites clearance
   UI-only patch. No navigation structure, permission or business logic changes.
   ========================================================================== */

/* Remove ONLY the outer frame/background of any opened/current navigation
   group. Keep the inner title highlight intact so the active section is still
   visually clear without the double rounded rectangle. */
.side-nav .nav-group.expanded,
.side-nav .nav-group.active,
.side-nav .nav-group.expanded.active{
  border-color:transparent!important;
  background:transparent!important;
  box-shadow:none!important;
}

/* Preserve the inner active section treatment. */
.side-nav .nav-group.active > .nav-group-title{
  background:linear-gradient(90deg,rgba(75,142,55,.78),rgba(41,108,49,.50))!important;
  color:#fff!important;
  box-shadow:inset 0 0 0 1px rgba(217,244,197,.12),0 5px 14px rgba(0,31,19,.16)!important;
}

/* Keep the favorites launcher below the breadcrumb/page heading area. */
.quick-favorites{
  top:156px!important;
}
@media(max-width:700px){
  .quick-favorites{top:142px!important}
}


/* ==========================================================================
   V24.21.0.16D — Draggable favorites panel
   UI-only patch. Position is stored per signed-in user in this browser.
   ========================================================================== */
.quick-favorites-head{
  cursor:grab;
  user-select:none;
  touch-action:none;
}
.quick-favorites-head:active,
.quick-favorites.is-dragging .quick-favorites-head{cursor:grabbing}
.quick-favorites.is-dragging{
  transition:none!important;
  box-shadow:0 18px 44px rgba(22,68,37,.20);
}
.quick-favorites-head:focus-visible{
  outline:2px solid rgba(86,151,56,.55);
  outline-offset:-2px;
}
.quick-favorites-head button,
.quick-favorites-head a{cursor:pointer}

/* ========================================================================== 
   V24.21.0.16E — Active section = same visual language as Home
   UI-only patch. No navigation structure, permission or business logic changes.
   ========================================================================== */
/* The CURRENT section title should read exactly like the selected Home row:
   one clean green rounded highlight on the row itself, with NO outer group frame,
   NO side accent rail, and NO special icon capsule. */
.side-nav .nav-group.active,
.side-nav .nav-group.expanded.active{
  border-color:transparent!important;
  background:transparent!important;
  box-shadow:none!important;
}
.side-nav .nav-group.active > .nav-group-title{
  background:linear-gradient(90deg,#397c2c,#5a9634)!important;
  color:#fff!important;
  box-shadow:0 8px 20px rgba(69,128,48,.26)!important;
}
.side-nav .nav-group.active > .nav-group-title::before{
  content:none!important;
  display:none!important;
}
.side-nav .nav-group.active > .nav-group-title .nav-symbol{
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  color:inherit!important;
  box-shadow:none!important;
}
.side-nav .nav-group.active > .nav-group-title .nav-chevron{
  color:#fff!important;
}

/* ========================================================================== 
   V24.21.0.16G — Active section EXACTLY matches Home selected row
   UI-only patch. No navigation structure, permission or business logic changes.
   ========================================================================== */
/* Keep the group wrapper visually neutral. */
.side-nav .nav-group.active,
.side-nav .nav-group.expanded.active{
  border-color:transparent!important;
  background:transparent!important;
  box-shadow:none!important;
}

/* Current section uses the exact same visual treatment as .nav-item.selected
   (Home): same gradient and same shadow. */
.side-nav .nav-group.active > .nav-group-title{
  background:linear-gradient(90deg,#2d7b2d,#438c35)!important;
  color:#e7f4ed!important;
  box-shadow:0 8px 20px rgba(61,139,55,.22)!important;
}

/* Cancel all previous section-only decorations so there is one clean selected row. */
.side-nav .nav-group.active > .nav-group-title::before{
  content:none!important;
  display:none!important;
}
.side-nav .nav-group.active > .nav-group-title .nav-symbol{
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  color:inherit!important;
  box-shadow:none!important;
}
.side-nav .nav-group.active > .nav-group-title .nav-chevron{
  color:inherit!important;
}


/* ==========================================================================
   V24.21.0.16H — OPEN/EXPANDED section matches Home selected row
   UI-only patch. No navigation structure, permission or business logic changes.
   ========================================================================== */
/* The user asked for the section that is OPEN, not only the route-active group.
   Therefore both .expanded and .active parent titles receive the exact same
   selected-row treatment as Home, while the outer nav-group stays neutral. */
.side-nav .nav-group.expanded,
.side-nav .nav-group.active,
.side-nav .nav-group.expanded.active{
  border-color:transparent!important;
  background:transparent!important;
  box-shadow:none!important;
}
.side-nav .nav-group.expanded > .nav-group-title,
.side-nav .nav-group.active > .nav-group-title{
  background:linear-gradient(90deg,#2d7b2d,#438c35)!important;
  color:#e7f4ed!important;
  box-shadow:0 8px 20px rgba(61,139,55,.22)!important;
}
.side-nav .nav-group.expanded > .nav-group-title::before,
.side-nav .nav-group.active > .nav-group-title::before{
  content:none!important;
  display:none!important;
}
.side-nav .nav-group.expanded > .nav-group-title .nav-symbol,
.side-nav .nav-group.active > .nav-group-title .nav-symbol{
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  color:inherit!important;
  box-shadow:none!important;
}
.side-nav .nav-group.expanded > .nav-group-title .nav-chevron,
.side-nav .nav-group.active > .nav-group-title .nav-chevron{
  color:inherit!important;
}

/* ========================================================================== 
   V24.21.0.16I — Restore approved sidebar section styling
   Restores the sidebar group/expanded/active appearance to the pre-highlight
   baseline requested by the user. Favorites dragging and all other 16H/16F
   behavior remain unchanged.
   ========================================================================== */
.side-nav .nav-group,
.side-nav .nav-group.expanded,
.side-nav .nav-group.active,
.side-nav .nav-group.expanded.active{
  border:1px solid transparent!important;
  border-radius:13px!important;
  padding:3px!important;
  margin:2px 0!important;
  box-shadow:none!important;
}
.side-nav .nav-group.expanded{
  border-color:rgba(255,255,255,.08)!important;
  background:rgba(255,255,255,.025)!important;
}
.side-nav .nav-group.active{
  border-color:rgba(111,196,104,.18)!important;
  background:rgba(255,255,255,.035)!important;
}
.side-nav .nav-group.expanded.active{
  border-color:rgba(111,196,104,.18)!important;
  background:rgba(255,255,255,.035)!important;
}
.side-nav .nav-group > .nav-group-title,
.side-nav .nav-group.expanded > .nav-group-title,
.side-nav .nav-group.active > .nav-group-title,
.side-nav .nav-group.expanded.active > .nav-group-title{
  position:relative!important;
  background:transparent!important;
  color:#eef8f2!important;
  box-shadow:none!important;
  border:0!important;
  border-radius:10px!important;
}
.side-nav .nav-group > .nav-group-title:hover,
.side-nav .nav-group.expanded > .nav-group-title:hover,
.side-nav .nav-group.active > .nav-group-title:hover{
  background:rgba(255,255,255,.055)!important;
}
.side-nav .nav-group > .nav-group-title::before,
.side-nav .nav-group.expanded > .nav-group-title::before,
.side-nav .nav-group.active > .nav-group-title::before,
.side-nav .nav-group.expanded.active > .nav-group-title::before{
  content:none!important;
  display:none!important;
}
.side-nav .nav-group > .nav-group-title .nav-symbol,
.side-nav .nav-group.expanded > .nav-group-title .nav-symbol,
.side-nav .nav-group.active > .nav-group-title .nav-symbol,
.side-nav .nav-group.expanded.active > .nav-group-title .nav-symbol{
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  color:inherit!important;
  box-shadow:none!important;
}
.side-nav .nav-group > .nav-group-title .nav-chevron,
.side-nav .nav-group.active > .nav-group-title .nav-chevron{
  color:#9fc6b2!important;
}
.side-nav .nav-group.expanded > .nav-group-title .nav-chevron,
.side-nav .nav-group.expanded.active > .nav-group-title .nav-chevron{
  color:#dff2e6!important;
}
.side-nav .nav-group .nav-group-items .nav-item.selected{
  background:linear-gradient(90deg,rgba(48,127,47,.95),rgba(61,140,53,.92))!important;
  color:#fff!important;
  box-shadow:none!important;
}
.side-nav .nav-group .nav-group-items .nav-item.selected::before{
  background:#b9ec98!important;
  box-shadow:0 0 0 3px rgba(185,236,152,.10)!important;
}
@media (min-width:1101px) and (max-width:1440px){
  .side-nav .nav-group,
  .side-nav .nav-group.expanded,
  .side-nav .nav-group.active,
  .side-nav .nav-group.expanded.active{border-radius:10px!important;padding:2px!important}
}
@media (min-width:961px) and (max-width:1100px){
  .side-nav .nav-group,
  .side-nav .nav-group.expanded,
  .side-nav .nav-group.active,
  .side-nav .nav-group.expanded.active{border-radius:9px!important;padding:2px!important}
}

/* =========================================================
   V24.21.0.17 — Permission-aware Home Dashboard
   Visual-only dashboard layer; existing page/layout structure is unchanged.
   ========================================================= */
.home-dashboard{display:grid;gap:16px;padding-bottom:18px}.home-hero{position:relative;overflow:hidden;display:flex;align-items:stretch;justify-content:space-between;gap:24px;min-height:170px;padding:26px 28px;border-radius:20px;background:linear-gradient(115deg,#0a4f39 0%,#0e6542 58%,#4d912f 100%);color:#fff;box-shadow:0 12px 28px rgba(18,74,43,.12)}.home-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 120%,rgba(255,255,255,.12),transparent 34%),repeating-linear-gradient(135deg,transparent 0 34px,rgba(255,255,255,.018) 34px 35px);pointer-events:none}.home-hero-copy,.home-today-card{position:relative;z-index:1}.home-hero-copy{display:flex;flex-direction:column;justify-content:center;min-width:0}.home-hero-eyebrow{font-size:12px;font-weight:700;color:#d8efd0;margin-bottom:8px}.home-hero h1{margin:0 0 8px;font-size:27px;line-height:1.35;color:#fff}.home-hero p{margin:0 0 8px;color:#e0eee4;font-size:13px}.home-hero-note{font-size:11.5px;color:#cae1d1}.home-today-card{align-self:center;min-width:340px;padding:15px 17px;border:1px solid rgba(255,255,255,.14);border-radius:15px;background:rgba(7,54,37,.22);backdrop-filter:blur(5px)}.home-today-card>span{display:block;margin-bottom:11px;font-size:12px;font-weight:700}.home-today-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.home-today-grid div{display:grid;gap:3px;padding-inline:10px;border-inline-start:1px solid rgba(255,255,255,.12)}.home-today-grid div:first-child{border-inline-start:0}.home-today-grid b{font-size:21px}.home-today-grid small{font-size:9.5px;color:#d9e9de;white-space:nowrap}.home-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:minmax(108px,auto);align-items:stretch;gap:12px}.home-stat-card{position:relative;display:flex;align-items:center;gap:12px;min-width:0;min-height:108px;height:100%;box-sizing:border-box;padding:15px 16px;border:1px solid #dfe8dc;border-radius:16px;background:#fff;color:#163323;text-decoration:none;box-shadow:0 8px 22px rgba(37,73,42,.055);overflow:hidden;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.home-stat-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(37,73,42,.09);text-decoration:none}.home-stat-card::before{content:"";position:absolute;inset-block:14px;inset-inline-start:0;width:3px;border-radius:0 4px 4px 0;background:#4f8f2f}.home-stat-icon{flex:0 0 44px;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#edf6e8;color:#357c2a;font-size:21px;font-weight:800}.home-stat-copy{display:grid;gap:4px;min-width:0;flex:1 1 auto}.home-stat-card small{font-size:10.5px;font-weight:700;color:#64746a;white-space:normal;line-height:1.45}.home-stat-card b{font-size:24px;line-height:1;color:#10291b}.home-stat-card em{font-size:9.5px;font-style:normal;color:#89958d;white-space:normal}.home-stat-card.home-tone-blue::before{background:#2687b6}.home-stat-card.home-tone-blue .home-stat-icon{background:#e7f2f8;color:#267ba2}.home-stat-card.home-tone-red::before{background:#d94a46}.home-stat-card.home-tone-red .home-stat-icon{background:#faeceb;color:#c7433f}.home-stat-card.home-tone-amber::before{background:#d48a18}.home-stat-card.home-tone-amber .home-stat-icon{background:#fbf1df;color:#b97716}.home-stat-card.home-tone-teal::before{background:#25917c}.home-stat-card.home-tone-teal .home-stat-icon{background:#e6f4f0;color:#247c6b}.home-main-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);align-items:start;gap:14px}.home-panel{padding:18px;border:1px solid #dfe8dc;border-radius:18px;background:#fff;box-shadow:0 9px 24px rgba(37,73,42,.05)}.home-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:11px;border-bottom:1px solid #edf1ea}.home-panel-head>div{display:flex;align-items:center;gap:8px}.home-section-mark{width:4px;height:18px;border-radius:4px;background:#4f8f2f}.home-panel h2{margin:0;font-size:16px;color:#193526}.home-panel-head small{font-size:10px;color:#88958d}.home-work-list{display:grid;gap:7px}.home-work-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto 18px;align-items:center;gap:10px;padding:10px 11px;border:1px solid #e5ece2;border-radius:12px;background:#fbfcfa;color:#193526;text-decoration:none;transition:background .15s ease,border-color .15s ease}.home-work-row:hover{background:#f5f9f2;border-color:#ccdec6;text-decoration:none}.home-work-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#ecf5e8;color:#47872d;font-weight:800}.home-work-copy{display:grid;gap:2px;min-width:0}.home-work-copy b{font-size:12px}.home-work-copy small{font-size:9.5px;color:#7b8980;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-work-row>strong{display:grid;place-items:center;min-width:31px;height:25px;padding:0 7px;border-radius:999px;background:#eaf3e5;color:#367525;font-size:11px}.home-work-arrow{color:#809087;font-size:19px}.home-work-row.tone-warning .home-work-icon{background:#fbf1df;color:#b97716}.home-work-row.tone-warning>strong{background:#fff0d8;color:#a86d13}.home-work-row.tone-danger .home-work-icon{background:#faeceb;color:#c7433f}.home-work-row.tone-danger>strong{background:#fde5e4;color:#bb3d39}.home-work-row.tone-info .home-work-icon{background:#e7f2f8;color:#267ba2}.home-work-row.tone-info>strong{background:#e8f4f8;color:#236f90}.home-empty-ok{display:flex;align-items:center;justify-content:center;gap:12px;min-height:110px;text-align:right;color:#496252}.home-empty-ok>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#edf6e8;color:#4d8c31;font-size:22px}.home-empty-ok>div{display:grid;gap:4px}.home-empty-ok b{font-size:13px}.home-empty-ok small{font-size:10px;color:#879389}.home-personal-panel{align-self:start}.home-personal-grid{display:grid;gap:7px}.home-personal-grid a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border-radius:10px;background:#f7faf5;color:#23442d;text-decoration:none}.home-personal-grid a:hover{background:#eef5e9;text-decoration:none}.home-personal-grid span{font-size:10.5px}.home-personal-grid b{font-size:16px;color:#3e7f2a}.home-permission-note{display:flex;align-items:flex-start;gap:9px;margin-top:11px;padding:10px 11px;border:1px solid #dfe9d9;border-radius:11px;background:#f4f8f0;color:#5d6f61}.home-permission-note>span{color:#4f8f2f;font-size:17px}.home-permission-note p{margin:0;font-size:9.2px;line-height:1.7}.home-permission-note b{font-size:10.2px;color:#2f5937}
@media(max-width:1250px){.home-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.home-main-grid{grid-template-columns:1fr}.home-today-card{min-width:320px}}
@media(max-width:860px){.home-hero{flex-direction:column;padding:21px}.home-today-card{width:100%;min-width:0}.home-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.home-hero h1{font-size:22px}.home-today-grid{grid-template-columns:1fr}.home-today-grid div{border-inline-start:0;border-top:1px solid rgba(255,255,255,.12);padding:8px 0}.home-today-grid div:first-child{border-top:0}.home-stat-grid{grid-template-columns:1fr}.home-panel{padding:13px}.home-panel-head{align-items:flex-start;flex-direction:column}.home-work-row{grid-template-columns:34px minmax(0,1fr) auto}.home-work-arrow{display:none}}

/* =========================================================
   V24.21.0.18A — Home KPI row hard layout fix
   Runtime screenshot showed a legacy/global height rule collapsing KPI anchors.
   Scope the override to Home only and lock the KPI row/card geometry.
   ========================================================= */
body[data-controller="Home"] .home-stat-grid{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  grid-auto-rows:112px!important;
  align-items:stretch!important;
  gap:12px!important;
  min-height:112px!important;
  height:auto!important;
  overflow:visible!important;
}
body[data-controller="Home"] .home-stat-grid > .home-stat-card{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  width:100%!important;
  min-width:0!important;
  height:112px!important;
  min-height:112px!important;
  max-height:none!important;
  margin:0!important;
  padding:15px 16px!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  line-height:normal!important;
}
body[data-controller="Home"] .home-stat-grid > .home-stat-card .home-stat-icon{
  flex:0 0 44px!important;
  width:44px!important;
  min-width:44px!important;
  height:44px!important;
  min-height:44px!important;
  max-height:44px!important;
  margin:0!important;
  padding:0!important;
}
body[data-controller="Home"] .home-stat-grid > .home-stat-card .home-stat-copy{
  display:grid!important;
  grid-template-rows:auto auto auto!important;
  align-content:center!important;
  gap:5px!important;
  min-width:0!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
}
body[data-controller="Home"] .home-stat-grid > .home-stat-card .home-stat-copy small,
body[data-controller="Home"] .home-stat-grid > .home-stat-card .home-stat-copy b,
body[data-controller="Home"] .home-stat-grid > .home-stat-card .home-stat-copy em{
  position:static!important;
  display:block!important;
  width:auto!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  transform:none!important;
}
@media(max-width:1250px){body[data-controller="Home"] .home-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:860px){body[data-controller="Home"] .home-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:560px){body[data-controller="Home"] .home-stat-grid{grid-template-columns:1fr!important}}


/* =========================================================
   V24.21.0.19 — Executive permission-aware home dashboard
   Modern SVG icons + cross-module KPIs + sales/contracts/tasks.
   ========================================================= */
.executive-home{gap:14px}.executive-hero{min-height:166px}.executive-glance{min-width:360px}.executive-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px}.executive-kpi{position:relative;display:flex;align-items:center;gap:12px;min-height:108px;padding:14px 15px;border:1px solid #dfe8dc;border-radius:16px;background:#fff;color:#173526;text-decoration:none;box-shadow:0 8px 22px rgba(37,73,42,.05);overflow:hidden;transition:transform .16s ease,box-shadow .16s ease}.executive-kpi:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(37,73,42,.09);text-decoration:none}.executive-kpi::before{content:"";position:absolute;inset-block:15px;inset-inline-start:0;width:3px;border-radius:4px;background:#4f8f2f}.executive-kpi-icon{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border-radius:13px;background:#edf6e8;color:#3b7f2c}.executive-kpi-icon svg,.home-work-icon svg,.personal-action-icon svg,.modern-check svg,.permission-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.executive-kpi-copy{display:grid;gap:4px;min-width:0}.executive-kpi-copy small{font-size:10px;font-weight:700;color:#69776e}.executive-kpi-copy b{font-size:19px;line-height:1.2;color:#112d1e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.executive-kpi-copy em{font-size:9px;font-style:normal;color:#8a958e}.executive-kpi.tone-emerald::before{background:#20875e}.executive-kpi.tone-emerald .executive-kpi-icon{background:#e6f5ed;color:#197651}.executive-kpi.tone-indigo::before{background:#5b67b6}.executive-kpi.tone-indigo .executive-kpi-icon{background:#eeeeFA;color:#525daa}.executive-kpi.tone-sky::before{background:#2789b9}.executive-kpi.tone-sky .executive-kpi-icon{background:#e8f4f9;color:#247aa3}.executive-kpi.tone-amber::before{background:#d58a18}.executive-kpi.tone-amber .executive-kpi-icon{background:#fbf1df;color:#b97918}.executive-kpi.tone-red::before{background:#d54d48}.executive-kpi.tone-red .executive-kpi-icon{background:#faeceb;color:#c74440}.static-kpi{cursor:default}.static-kpi:hover{transform:none}.executive-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:14px;align-items:start}.executive-dashboard-grid .home-panel{min-width:0}.panel-link{font-size:9.5px;font-weight:700;color:#3d7c2e;text-decoration:none}.panel-link:hover{text-decoration:underline}.sales-summary-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px}.sales-summary-row>div{display:grid;gap:4px;padding:10px 12px;border-radius:12px;background:#f7faf5}.sales-summary-row span{font-size:9.5px;color:#7c8a81}.sales-summary-row b{font-size:16px;color:#173526}.sales-trend{display:flex;align-items:flex-end;gap:10px;height:150px;padding:8px 6px 2px;border-top:1px solid #eef2eb}.sales-trend-col{flex:1;display:grid;grid-template-rows:1fr 18px;align-items:end;height:100%;min-width:0}.sales-trend-track{display:flex;align-items:flex-end;height:100%;border-radius:8px 8px 3px 3px;background:linear-gradient(to top,#f4f8f1,#fafcf9);overflow:hidden}.sales-trend-track i{display:block;width:100%;min-height:2px;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,#71a94b,#2f7d3d);transition:height .25s ease}.sales-trend-col small{text-align:center;font-size:8.5px;color:#8a968e}.contract-health-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}.contract-health-row>div{display:grid;gap:3px;padding:10px 11px;border-radius:11px;background:#f7faf5}.contract-health-row span{font-size:9px;color:#7e8b83}.contract-health-row b{font-size:18px;color:#24442d}.contract-health-row .warning{background:#fff8ea}.contract-health-row .warning b{color:#b87416}.contract-alert-list{display:grid;gap:6px}.contract-alert-list a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid #e8eee5;border-radius:10px;color:#1f3d29;text-decoration:none;background:#fcfdfb}.contract-alert-list a:hover{background:#f5f9f2}.contract-alert-list span{display:grid;gap:2px;min-width:0}.contract-alert-list b{font-size:10.5px}.contract-alert-list small{font-size:8.7px;color:#7c8981;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contract-alert-list em{flex:0 0 auto;padding:4px 7px;border-radius:999px;background:#fff0d8;color:#a86d13;font-size:9px;font-style:normal;font-weight:700}.compact-empty{padding:18px;text-align:center;border-radius:11px;background:#f7faf5;color:#7c8a81;font-size:10px}.executive-work-panel{grid-column:1/2}.executive-personal-panel{grid-column:2/3}.home-work-icon{font-size:0}.home-work-icon svg{width:19px;height:19px}.modern-check{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#edf6e8;color:#4d8c31}.personal-action-grid{display:grid;gap:7px}.personal-action-grid>a{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid #e6ede3;border-radius:11px;background:#fbfcfa;color:#23442d;text-decoration:none}.personal-action-grid>a:hover{background:#f4f8f1}.personal-action-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:9px;background:#edf6e8;color:#3f7f31}.personal-action-icon svg{width:18px;height:18px}.personal-action-grid>a>span:last-child{display:grid;gap:2px;min-width:0}.personal-action-grid b{font-size:10.5px}.personal-action-grid small{font-size:8.8px;color:#7d8b82}.permission-icon{display:grid;place-items:center;color:#4f8f2f}.permission-icon svg{width:18px;height:18px}
@media(max-width:1450px){.executive-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1050px){.executive-dashboard-grid{grid-template-columns:1fr}.executive-work-panel,.executive-personal-panel{grid-column:auto}.executive-glance{min-width:320px}}
@media(max-width:760px){.executive-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sales-summary-row,.contract-health-row{grid-template-columns:1fr}.sales-trend{height:125px}}
@media(max-width:520px){.executive-kpi-grid{grid-template-columns:1fr}.executive-kpi{min-height:96px}.executive-glance{min-width:0}}

/* V24.21.0.20 - Dense executive dashboard layout */
.executive-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:stretch}
.executive-kpi{min-height:104px;padding:13px 14px}.executive-kpi-copy b{font-size:18px}.executive-kpi-icon{flex-basis:44px;width:44px;height:44px}
.executive-dashboard-layout{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(340px,.92fr);gap:14px;align-items:start}
.executive-dashboard-column{display:grid;gap:14px;align-content:start;min-width:0}.executive-dashboard-column>.home-panel{min-width:0;margin:0}
.executive-work-panel,.executive-personal-panel{grid-column:auto}
.executive-action-distribution .home-panel-head{margin-bottom:10px}.action-distribution-list{display:grid;gap:8px}
.action-distribution-row{display:grid;gap:6px;padding:7px 9px;border-radius:10px;color:#24442d;text-decoration:none;background:#fbfcfa;border:1px solid #edf1ea}
.action-distribution-row:hover{background:#f5f9f2;text-decoration:none}.action-distribution-title{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:7px;align-items:center}
.action-distribution-title b{font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-distribution-title strong{font-size:10px;color:#173526}
.action-dot{width:7px;height:7px;border-radius:50%;background:#6f9270}.action-dot.tone-info{background:#3c8fb0}.action-dot.tone-warning{background:#d89420}.action-dot.tone-danger{background:#d6534d}
.action-distribution-track{display:block;height:5px;border-radius:999px;background:#edf2ea;overflow:hidden}.action-distribution-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#8fbd63,#3f8737)}
.executive-sales-panel .sales-trend{height:136px}.executive-contract-panel .compact-empty{padding:13px}.executive-personal-panel .home-permission-note{margin-top:8px}
@media(max-width:1180px){.executive-dashboard-layout{grid-template-columns:1fr}.executive-dashboard-side{grid-template-columns:repeat(2,minmax(0,1fr))}.executive-dashboard-side>.home-panel:last-child{grid-column:1/-1}}
@media(max-width:760px){.executive-dashboard-side{grid-template-columns:1fr}.executive-dashboard-side>.home-panel:last-child{grid-column:auto}.executive-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(155px,1fr))}}

/* V24.21.0.26 - Qe product/company branding */
.brand-mark{overflow:hidden}.brand-mark img{width:100%;height:100%;object-fit:contain;padding:5px;background:#fff;border-radius:inherit}.brand-mark-fallback{display:grid;place-items:center;width:100%;height:100%;font-size:inherit;font-weight:800}.brand-copy{min-width:0}.brand-copy strong{direction:ltr;unicode-bidi:isolate;text-align:right;white-space:nowrap}.brand-copy span{max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}


/* ========================================================================== */
/* V24.21.0.31 — Audit Trail workspace: single-row filters + full-height table */
/* ========================================================================== */
body[data-controller="AuditTrail"] .content{height:calc(100vh - var(--topbar-height,68px));overflow:hidden;display:flex;flex-direction:column}
body[data-controller="AuditTrail"] .audit-page-heading{flex:0 0 auto;margin-bottom:10px}
body[data-controller="AuditTrail"] .audit-page-shell{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px}
body[data-controller="AuditTrail"] .audit-filter-section{flex:0 0 auto;padding:12px 14px;overflow:visible}
body[data-controller="AuditTrail"] .audit-filter-row{display:grid;grid-template-columns:minmax(220px,1.35fr) minmax(150px,.78fr) minmax(150px,.78fr) minmax(140px,.7fr) minmax(165px,.82fr) minmax(165px,.82fr) auto;gap:10px;align-items:end}
body[data-controller="AuditTrail"] .audit-filter-row .field{min-width:0}
body[data-controller="AuditTrail"] .audit-filter-row label{white-space:nowrap}
body[data-controller="AuditTrail"] .audit-search-field input,
body[data-controller="AuditTrail"] .audit-filter-row select,
body[data-controller="AuditTrail"] .audit-date-field .date-entry{width:100%}
body[data-controller="AuditTrail"] .audit-filter-actions{display:flex;align-items:end;gap:8px;white-space:nowrap}
body[data-controller="AuditTrail"] .audit-filter-actions .btn{height:42px;min-height:42px;display:inline-flex;align-items:center;gap:7px}
body[data-controller="AuditTrail"] .audit-filter-actions .btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body[data-controller="AuditTrail"] .audit-date-error{margin-top:10px;padding:8px 11px}
body[data-controller="AuditTrail"] .audit-date-error[hidden]{display:none!important}
body[data-controller="AuditTrail"] .audit-table-section{flex:1;min-height:0;display:flex;flex-direction:column;padding:0;overflow:hidden}
body[data-controller="AuditTrail"] .audit-table-scroll{flex:1;min-height:0;overflow:auto;padding:12px}
body[data-controller="AuditTrail"] .audit-table{width:max-content;min-width:100%;margin:0;border-collapse:separate;border-spacing:0}
body[data-controller="AuditTrail"] .audit-table thead th{position:sticky;top:0;z-index:4;background:#f5f9f3;box-shadow:0 1px 0 #e2e9df;white-space:nowrap}
body[data-controller="AuditTrail"] .audit-table td{vertical-align:middle}
body[data-controller="AuditTrail"] .audit-datetime-cell{white-space:nowrap}
body[data-controller="AuditTrail"] .audit-description-column{min-width:420px}
body[data-controller="AuditTrail"] .audit-description-cell{min-width:420px;max-width:720px;line-height:1.7}
body[data-controller="AuditTrail"] .audit-table-footer{flex:0 0 auto;min-height:50px;border-top:1px solid var(--border);padding:8px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff}
body[data-controller="AuditTrail"] .audit-total{font-weight:700;color:var(--green-800)}
body[data-controller="AuditTrail"] .audit-pager{display:flex;align-items:center;gap:8px;margin:0}
@media(max-width:1350px){
  body[data-controller="AuditTrail"] .audit-filter-row{grid-template-columns:repeat(3,minmax(0,1fr))}
  body[data-controller="AuditTrail"] .audit-filter-actions{justify-content:flex-start}
  body[data-controller="AuditTrail"] .content{height:auto;min-height:calc(100vh - var(--topbar-height,68px));overflow:visible}
  body[data-controller="AuditTrail"] .audit-table-section{min-height:560px}
}

/* V24.21.0.38 Contract approvals layout */
body[data-controller="ContractApprovals"] .contract-approval-filter-panel{margin-bottom:18px;overflow:visible}
body[data-controller="ContractApprovals"] .contract-approval-filter-grid{display:grid;grid-template-columns:2fr repeat(3,minmax(150px,1fr)) auto;gap:14px;align-items:end;padding:18px 20px}
body[data-controller="ContractApprovals"] .contract-approval-filter-grid .span-2{grid-column:auto}
body[data-controller="ContractApprovals"] .contract-approval-filter-grid .search-box{min-width:0;width:100%}
body[data-controller="ContractApprovals"] .contract-approval-filter-actions{display:flex;gap:8px;align-items:center;padding-bottom:1px}
body[data-controller="ContractApprovals"] .contract-approval-table-panel{margin-bottom:20px}
body[data-controller="ContractApprovals"] .contract-approval-table .table-subtext{display:block;margin-top:4px;color:var(--muted)}
@media(max-width:1200px){body[data-controller="ContractApprovals"] .contract-approval-filter-grid{grid-template-columns:repeat(2,1fr)}body[data-controller="ContractApprovals"] .contract-approval-filter-actions{grid-column:1/-1}}
@media(max-width:720px){body[data-controller="ContractApprovals"] .contract-approval-filter-grid{grid-template-columns:1fr}}

/* V24.21.0.46 execution plan + payment summary */
.execution-plan-tools{display:flex;align-items:center;gap:8px}.execution-plan-table-wrap{overflow:auto}.execution-plan-table{width:100%;border-collapse:collapse;table-layout:fixed}.execution-plan-table th,.execution-plan-table td{padding:6px;border-bottom:1px solid #e5ece8;text-align:center;font-size:10px}.execution-plan-table th:nth-child(2){width:18%}.execution-plan-table th:nth-child(3){width:18%}.execution-plan-table th:nth-child(6){width:22%}.execution-plan-table input{width:100%;height:36px;border:1px solid #cbdcd3;border-radius:8px;padding:0 7px;font-family:Cairo,sans-serif}.execution-plan-table .plan-check input[type=checkbox]{width:18px;height:18px}.payment-head{align-items:flex-start}.payment-summary-inline{display:flex!important;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-start;color:#667b70!important;font-size:10px!important}.payment-summary-inline>span{margin:0!important}.payment-summary-inline b{font-size:12px;color:#173f2e}.payment-summary-progress{width:120px;height:7px;border-radius:10px;background:#e6eee9;overflow:hidden}.payment-summary-progress i{display:block;height:100%;background:#45956d;border-radius:inherit}.payment-summary-inline a{font-weight:700;color:#2b7554;text-decoration:none}


/* V24.21.0.47B Contract approvals compact UX + single search control */
body[data-controller="ContractApprovals"] .contract-approval-filter-panel{margin-bottom:12px}
body[data-controller="ContractApprovals"] .contract-approval-filter-panel .panel-head{padding:12px 16px}
body[data-controller="ContractApprovals"] .contract-approval-filter-panel .panel-head h2{font-size:15px}
body[data-controller="ContractApprovals"] .contract-approval-filter-grid{gap:10px;padding:12px 16px}
body[data-controller="ContractApprovals"] .contract-approval-filter-grid .field{gap:4px}
body[data-controller="ContractApprovals"] .contract-approval-filter-grid .search-box{height:42px;min-height:42px;padding:0 11px;border:1px solid var(--border);border-radius:10px;background:#fff;overflow:hidden}
body[data-controller="ContractApprovals"] .contract-approval-filter-grid .search-box input{height:auto!important;min-height:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:0!important;background:transparent!important;outline:0!important}
body[data-controller="ContractApprovals"] .contract-approval-table-panel{margin-bottom:14px;padding:0;overflow:hidden}
body[data-controller="ContractApprovals"] .contract-approval-table-panel>.section-title-row{min-height:48px;margin:0;padding:9px 14px;border-bottom:1px solid var(--border)}
body[data-controller="ContractApprovals"] .contract-approval-table-panel>.section-title-row b{font-size:12.5px}
body[data-controller="ContractApprovals"] .contract-approval-table-panel>.section-title-row small{font-size:9px;margin-top:2px}
body[data-controller="ContractApprovals"] .contract-approval-table-panel .table-wrap{padding:10px 12px 12px}
body[data-controller="ContractApprovals"] .contract-approval-table-panel .empty-state{padding:34px 16px}
body[data-controller="ContractApprovals"] .contract-approval-table-panel .empty-state b{font-size:15px}
body[data-controller="ContractApprovals"] .contract-decision-modal{width:min(520px,92vw)}
body[data-controller="ContractApprovals"] .contract-decision-body{padding:18px 20px}
body[data-controller="ContractApprovals"] .contract-decision-body p{margin:0;line-height:1.8}
body[data-controller="ContractApprovals"] #contractRejectModal .modal-body{padding:16px 20px}
body[data-controller="ContractApprovals"] #contractRejectModal textarea{min-height:100px}


/* V24.21.0.47C Contract approvals visual fix - isolated from generic field/search styles */
body[data-controller="ContractApprovals"] .contract-approval-filter-panel>.panel-head{min-height:0!important;padding:10px 14px!important}
body[data-controller="ContractApprovals"] .contract-approval-filter-panel>.panel-head h2{margin:0!important;font-size:15px!important;line-height:1.5!important}
body[data-controller="ContractApprovals"] .contract-approval-filter-panel>.panel-head p{margin:2px 0 0!important;font-size:10px!important;line-height:1.5!important}
body[data-controller="ContractApprovals"] form.contract-approval-filter-grid{padding:10px 14px!important;gap:10px!important}
body[data-controller="ContractApprovals"] .contract-approval-search-control{box-sizing:border-box!important;width:100%!important;height:42px!important;min-height:42px!important;border:1px solid #dfe6dd!important;border-radius:10px!important;background:#fff!important;display:flex!important;align-items:center!important;overflow:hidden!important;padding:0!important;box-shadow:none!important}
body[data-controller="ContractApprovals"] .contract-approval-search-control>input{box-sizing:border-box!important;flex:1 1 auto!important;width:100%!important;height:40px!important;min-height:40px!important;margin:0!important;padding:0 12px!important;border:0!important;border-radius:0!important;outline:0!important;box-shadow:none!important;background:transparent!important}
body[data-controller="ContractApprovals"] .contract-approval-search-control>input:focus{border:0!important;outline:0!important;box-shadow:none!important}
body[data-controller="ContractApprovals"] .contract-approval-search-icon{box-sizing:border-box!important;flex:0 0 38px!important;width:38px!important;height:40px!important;display:grid!important;place-items:center!important;border:0!important;border-right:1px solid #edf1eb!important;background:#fff!important;color:#294b3b!important;font-size:16px!important}
body[data-controller="ContractApprovals"] .contract-approval-table-panel>.section-title-row{min-height:0!important;margin:0!important;padding:8px 14px!important}
body[data-controller="ContractApprovals"] .contract-approval-table-panel .table-wrap{padding:8px 12px 10px!important}
body[data-controller="ContractApprovals"] .contract-approval-table-panel .empty-state{min-height:0!important;padding:26px 16px!important;gap:5px!important}
body[data-controller="ContractApprovals"] .contract-approval-table-panel .empty-state b{font-size:14px!important}
body[data-controller="ContractApprovals"] .contract-approval-table-panel .empty-state span{font-size:10px!important}

/* V24.21.0.49 Attendance module */
.attendance-kpis{display:grid;grid-template-columns:repeat(2,minmax(180px,260px));gap:12px;margin-bottom:16px}
.attendance-kpi{background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between}
.attendance-kpi span{font-size:11px;color:var(--muted)}
.attendance-kpi strong{font-size:22px;color:var(--green-700)}
.attendance-checkbox{display:flex;align-items:center;gap:8px;min-height:42px}
.attendance-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--green-700)}
.attendance-module-note{padding:10px 12px;border-radius:10px;background:#f7faf5;border:1px solid var(--border);font-size:11px;color:var(--muted)}
@media(max-width:720px){.attendance-kpis{grid-template-columns:1fr}}
.attendance-checkbox input[type=checkbox]{min-height:18px!important;padding:0!important;box-shadow:none!important}


/* ========================================================================== */
/* V24.21.0.49C — HR Attendance visual standard                              */
/* ========================================================================== */
.attendance-page{display:flex;flex-direction:column;gap:14px}
.attendance-page .page-header{margin:0;padding:0 2px;align-items:flex-end;gap:14px}
.attendance-page .page-header h1{margin:0 0 4px;font-size:25px;line-height:1.35}
.attendance-page .page-header p{margin:0;color:var(--muted);font-size:10.5px;line-height:1.75}
.attendance-page .attendance-card{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 7px 22px rgba(28,60,35,.035);overflow:hidden}
.attendance-page .attendance-card-head{min-height:58px;padding:13px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}
.attendance-page .attendance-card-head h2{margin:0;font-size:15px}
.attendance-page .attendance-card-head small{display:block;margin-top:3px;color:var(--muted);font-size:8.5px}
.attendance-page .attendance-card-body{padding:14px 16px}
.attendance-page .attendance-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px 12px;align-items:end}
.attendance-page .attendance-form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.attendance-page .field{margin:0}
.attendance-page .field label{display:block;margin-bottom:5px;font-size:9px;font-weight:800;color:#27432e}
.attendance-page .field input,.attendance-page .field select{width:100%;height:42px;min-height:42px;border-radius:10px;background:#fff}
.attendance-page .attendance-toggle{min-height:42px;border:1px solid var(--border);border-radius:10px;padding:8px 10px;background:#fbfdf9;display:flex;align-items:center;gap:8px}
.attendance-page .attendance-toggle input{width:17px!important;height:17px!important;min-height:17px!important;margin:0;accent-color:var(--green-700)}
.attendance-page .attendance-form-actions{padding:0 16px 14px;display:flex;align-items:center;justify-content:flex-start;gap:8px}
.attendance-page .attendance-table-wrap{padding:0 12px 12px;overflow:auto}
.attendance-page .attendance-table-wrap table{margin:0;min-width:850px}
.attendance-page .attendance-table-wrap thead th{background:#f6faf4;border-bottom:1px solid var(--border);height:44px;font-size:9px;white-space:nowrap}
.attendance-page .attendance-table-wrap tbody td{height:50px;vertical-align:middle;font-size:9.5px}
.attendance-page .attendance-table-wrap .empty-state{min-height:132px;padding:28px 18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.attendance-page .attendance-table-wrap .empty-state b{font-size:14px}
.attendance-page .attendance-table-wrap .empty-state small{font-size:9px;color:var(--muted)}
.attendance-page .attendance-kpi-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.attendance-page .attendance-kpi-card{background:#fff;border:1px solid var(--border);border-radius:14px;min-height:76px;padding:12px 15px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 5px 16px rgba(28,60,35,.03)}
.attendance-page .attendance-kpi-card span{font-size:9px;color:var(--muted)}
.attendance-page .attendance-kpi-card strong{font-size:22px;color:var(--green-700)}
.attendance-page .attendance-filter-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:10px 12px;align-items:end}
.attendance-page .attendance-filter-actions{display:flex;align-items:center;gap:8px;justify-content:flex-start;flex-wrap:wrap;margin-top:10px}
.attendance-page .attendance-filter-actions .attendance-toggle{margin-inline-start:auto}
.attendance-page .actions-cell{white-space:nowrap}
.attendance-page .pill{white-space:nowrap}
.operation-result-icon.is-error{background:#d74d45!important;color:#fff!important}
.operation-result-icon.is-warning{background:#c98a14!important;color:#fff!important}
.operation-result-icon:not(.is-error):not(.is-warning){background:var(--green-600)!important;color:#fff!important}
.confirm-icon.is-danger{background:#d74d45!important;color:#fff!important}
.confirm-icon.is-warning{background:#c98a14!important;color:#fff!important}
@media(max-width:1050px){.attendance-page .attendance-form-grid,.attendance-page .attendance-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.attendance-page .attendance-form-grid,.attendance-page .attendance-form-grid.two,.attendance-page .attendance-filter-grid,.attendance-page .attendance-kpi-strip{grid-template-columns:1fr}.attendance-page .attendance-card-body{padding:12px}.attendance-page .attendance-filter-actions .attendance-toggle{margin-inline-start:0}}

/* V24.21.0.49D — Attendance screens aligned to the native HR table/card language */
body[data-controller="HrAttendanceDevices"] .page-heading,
body[data-controller="HrAttendanceSync"] .page-heading,
body[data-controller="HrAttendancePunches"] .page-heading,
body[data-controller="HrAttendanceSettings"] .page-heading{margin-bottom:14px}
body[data-controller="HrAttendanceDevices"] .panel,
body[data-controller="HrAttendanceSync"] .panel,
body[data-controller="HrAttendancePunches"] .panel,
body[data-controller="HrAttendanceSettings"] .panel{margin-bottom:14px}
.attendance-standard-panel>.table-wrap,.attendance-filter-panel>.table-wrap{padding:12px 14px 14px}
.attendance-follow-panel{margin-top:14px}
.attendance-punch-stats{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:14px}
.attendance-punch-stats .department-stat{min-height:84px}
.attendance-filter-toolbar{padding:12px 14px!important}
.attendance-toolbar-filters{display:grid!important;grid-template-columns:minmax(260px,1.6fr) minmax(160px,.8fr) minmax(160px,.8fr) minmax(180px,.8fr) auto auto;gap:10px!important;align-items:end!important;width:100%}
.attendance-toolbar-filters>input,.attendance-toolbar-filters>select{min-width:0!important;width:100%}
.attendance-date-field{gap:4px!important}.attendance-date-field label{font-size:10px!important}.attendance-date-field input{height:42px!important}
.attendance-inline-toggle{min-height:42px!important;white-space:nowrap;margin:0!important;padding:8px 10px!important}
.attendance-settings-panel .form-grid{padding:16px 18px!important;gap:12px!important}
.attendance-settings-toggle{min-height:42px;margin:0!important}
.attendance-settings-note{font-size:10.5px;color:var(--muted)}
body[data-controller="HrAttendanceDevices"] .comfortable-table-wrap,
body[data-controller="HrAttendanceSync"] .comfortable-table-wrap,
body[data-controller="HrAttendancePunches"] .comfortable-table-wrap{padding:12px 14px 14px!important}
body[data-controller^="HrAttendance"] .data-table th,
body[data-controller^="HrAttendance"] .data-table td{padding:13px 16px!important}
body[data-controller^="HrAttendance"] .data-table tbody tr:last-child td{border-bottom:0}
body[data-controller^="HrAttendance"] .empty-state{padding:34px 18px!important}
body[data-controller^="HrAttendance"] .empty-state b{font-size:14px!important}
body[data-controller^="HrAttendance"] .empty-state span{font-size:10px!important;color:var(--muted)}
body[data-controller^="HrAttendance"] .crm-row-actions{display:flex;align-items:center;justify-content:center;gap:6px;direction:ltr}
body[data-controller^="HrAttendance"] .crm-row-actions form{display:inline-flex;margin:0}
/* colored status blocks always carry white foreground icons */
.confirm-icon.is-danger,.confirm-icon.is-warning,.delete-confirm-card .delete-icon{color:#fff!important}
.confirm-icon.is-danger{background:#d74d45!important}.confirm-icon.is-warning{background:#c98a14!important}.delete-confirm-card .delete-icon{background:#d74d45!important}
@media(max-width:1200px){.attendance-toolbar-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-toolbar-filters .btn{width:100%}}
@media(max-width:760px){.attendance-punch-stats,.attendance-toolbar-filters{grid-template-columns:1fr}.attendance-settings-panel .form-grid.four{grid-template-columns:1fr}}

/* ========================================================================== */
/* V24.21.0.50 — Central system theme + MAIN actions only                      */
/* Row/table actions are intentionally untouched in this phase.                */
/* ========================================================================== */
:root{
  --bs-theme-primary:#2f7a2f;
  --bs-theme-secondary:#5a9432;
  --bs-theme-success:#27833d;
  --bs-theme-danger:#c8453c;
  --bs-theme-warning:#b97814;
  --bs-theme-info:#256f8f;
}
/* Main action buttons are identified by .btn + semantic action class.
   Table action controls use mini-btn/crm-action-btn/bs-icon-action and are not changed. */
/* V24.21.0.50E — every .btn outside table rows is theme-controlled. */
.btn.bs-themed-main-action{border-width:1px!important;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}
.btn.bs-themed-main-action.bs-theme-role-primary{background:var(--bs-theme-primary)!important;border-color:var(--bs-theme-primary)!important;color:#fff!important}
.btn.bs-themed-main-action.bs-theme-role-success{background:var(--bs-theme-success)!important;border-color:var(--bs-theme-success)!important;color:#fff!important}
.btn.bs-themed-main-action.bs-theme-role-danger{background:var(--bs-theme-danger)!important;border-color:var(--bs-theme-danger)!important;color:#fff!important}
.btn.bs-themed-main-action.bs-theme-role-warning{background:var(--bs-theme-warning)!important;border-color:var(--bs-theme-warning)!important;color:#fff!important}
.btn.bs-themed-main-action.bs-theme-role-info{background:var(--bs-theme-info)!important;border-color:var(--bs-theme-info)!important;color:#fff!important}
.btn.bs-themed-main-action.bs-theme-role-secondary{background:var(--bs-theme-secondary)!important;border-color:var(--bs-theme-secondary)!important;color:#fff!important}
.btn.bs-themed-main-action.bs-theme-role-neutral{background:var(--surface)!important;border-color:var(--border)!important;color:var(--ink)!important}
.btn.bs-themed-main-action:not(.bs-theme-role-neutral):hover{filter:brightness(.93)}
.btn.bs-themed-main-action:not(.bs-theme-role-neutral):active{filter:brightness(.88);transform:translateY(1px)}
.btn.bs-themed-main-action.bs-theme-role-neutral:hover{background:color-mix(in srgb,var(--bs-theme-secondary) 7%,var(--surface))!important;border-color:color-mix(in srgb,var(--bs-theme-secondary) 35%,var(--border))!important}
.btn.bs-themed-main-action .bs-action-icon{color:currentColor!important}
.btn.bs-themed-main-action:disabled,.btn.bs-themed-main-action[aria-disabled="true"]{opacity:.55!important;cursor:not-allowed!important;transform:none!important;box-shadow:none!important}

.btn.bs-action-kind-add{background:var(--bs-theme-primary)!important;border-color:transparent!important;color:#fff!important}
.btn.bs-action-kind-save,.btn.bs-action-kind-approve,.btn.bs-action-kind-post{background:var(--bs-theme-success)!important;border-color:transparent!important;color:#fff!important}
.btn.bs-action-kind-delete,.btn.bs-action-kind-reject{background:var(--bs-theme-danger)!important;border-color:transparent!important;color:#fff!important}
.btn.bs-action-kind-print,.btn.bs-action-kind-export,.btn.bs-action-kind-download,.btn.bs-action-kind-send{background:var(--bs-theme-info)!important;border-color:transparent!important;color:#fff!important}
.btn.bs-action-kind-warning,.btn.bs-action-kind-reverse{background:var(--bs-theme-warning)!important;border-color:transparent!important;color:#fff!important}
.btn.bs-action-kind-back,.btn.bs-action-kind-cancel,.btn.bs-action-kind-reset{background:var(--surface)!important;border-color:var(--border)!important;color:var(--ink)!important}
.btn.bs-action-kind-add .bs-action-icon,.btn.bs-action-kind-save .bs-action-icon,.btn.bs-action-kind-approve .bs-action-icon,.btn.bs-action-kind-post .bs-action-icon,.btn.bs-action-kind-delete .bs-action-icon,.btn.bs-action-kind-reject .bs-action-icon,.btn.bs-action-kind-print .bs-action-icon,.btn.bs-action-kind-export .bs-action-icon,.btn.bs-action-kind-download .bs-action-icon,.btn.bs-action-kind-send .bs-action-icon,.btn.bs-action-kind-reverse .bs-action-icon{color:#fff!important}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.55!important;cursor:not-allowed!important;transform:none!important;box-shadow:none!important}

.system-colors-panel{overflow:visible}
.system-color-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:20px}
.system-color-field{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:700;color:#526057}
.system-color-control{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px;align-items:center}
.system-color-control input[type="color"]{width:48px;height:42px;padding:3px;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer}
.system-color-control input[type="text"],.system-color-control input:not([type]){height:42px;border:1px solid var(--border);border-radius:10px;padding:0 10px;background:var(--surface);color:var(--ink)}
.system-theme-preview{margin:0 20px 20px;padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--canvas)}
.system-theme-preview-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:14px}.system-theme-preview-head span{font-size:10px;color:var(--muted)}
.system-theme-preview-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.system-theme-preview-card{padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--ink)}.system-theme-preview-card span{display:block;color:var(--muted);font-size:11px;margin-top:5px}
.system-colors-footer{gap:16px;flex-wrap:wrap}.system-colors-footer .btn.danger{background:var(--bs-theme-danger);border-color:transparent;color:#fff}
@media(max-width:900px){.system-color-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.system-color-grid{grid-template-columns:1fr}}
.system-colors-footer .btn.bs-action-kind-reset{background:var(--bs-theme-danger)!important;border-color:transparent!important;color:#fff!important}
.system-colors-footer .btn.bs-action-kind-reset .bs-action-icon{color:#fff!important}
/* V24.21.0.50D - Attendance punch movement visual distinction */
body[data-controller="HrAttendancePunches"] .comfortable-table tbody tr.attendance-punch-in > td{background:color-mix(in srgb, var(--green-100) 60%, var(--surface))}
body[data-controller="HrAttendancePunches"] .comfortable-table tbody tr.attendance-punch-out > td{background:color-mix(in srgb, var(--amber) 8%, var(--surface))}
body[data-controller="HrAttendancePunches"] .comfortable-table tbody tr.attendance-punch-unknown > td{background:color-mix(in srgb, var(--canvas) 55%, var(--surface))}
body[data-controller="HrAttendancePunches"] .comfortable-table tbody tr:hover > td{filter:brightness(.992)}
body[data-controller="HrAttendancePunches"] .attendance-movement-pill{min-width:66px;display:inline-flex;justify-content:center;align-items:center;font-weight:800}
body[data-controller="HrAttendancePunches"] .attendance-movement-in{background:var(--green-100);color:var(--green-800);border:1px solid color-mix(in srgb, var(--green-600) 22%, var(--border))}
body[data-controller="HrAttendancePunches"] .attendance-movement-out{background:color-mix(in srgb, var(--amber) 16%, var(--surface));color:color-mix(in srgb, var(--amber) 75%, var(--ink));border:1px solid color-mix(in srgb, var(--amber) 28%, var(--border))}
body[data-controller="HrAttendancePunches"] .attendance-movement-unknown{background:var(--canvas);color:var(--muted);border:1px solid var(--border)}


/* V24.21.0.50G — breadcrumb home-only navigation + contextual back navigation. */
.breadcrumbs a,.breadcrumbs .breadcrumb-home-link{
  color:var(--green-700);
  font-weight:700;
  text-decoration:none;
  cursor:pointer;
  transition:opacity .18s ease,text-decoration-color .18s ease;
}
.breadcrumbs a:hover,.breadcrumbs .breadcrumb-home-link:hover{
  text-decoration:underline;
  text-underline-offset:3px;
}
.breadcrumbs a:focus-visible,.breadcrumbs .breadcrumb-home-link:focus-visible{
  outline:2px solid color-mix(in srgb,var(--green-700) 38%,transparent);
  outline-offset:3px;
  border-radius:4px;
}

/* V24.21.0.50H — Employee attendance profile */
.employee-attendance-config[hidden]{display:none!important;}
.employee-attendance-config small{display:block;margin-top:6px;color:var(--text-muted,#667085);line-height:1.5;}


/* V24.21.0.50I — compact employee attendance row */
.employee-attendance-row{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(135px,.8fr) minmax(145px,.9fr) minmax(210px,1.35fr) minmax(145px,.8fr) minmax(175px,1fr);
  gap:9px 11px;
  align-items:end;
  padding-top:10px;
  margin-top:1px;
  border-top:1px dashed #e1e9de;
}
.employee-attendance-row .field{min-width:0;margin:0;}
.employee-attendance-row .toggle-option{height:40px;min-height:40px;margin:0;padding:0 11px;display:flex;align-items:center;gap:8px;}
.employee-attendance-row .attendance-hours-input{height:40px;min-height:40px;}
.employee-attendance-row .attendance-hours-input span{min-width:34px;height:38px;padding:0 6px;font-size:8.5px;font-weight:700;}
.employee-attendance-hint{grid-column:1/-1;display:block;margin:-1px 0 0;color:var(--text-muted,#667085);font-size:8.5px;line-height:1.45;}
@media(max-width:1180px){
  .employee-attendance-row{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:820px){
  .employee-attendance-row{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:560px){
  .employee-attendance-row{grid-template-columns:1fr;}
}
