/* Farm Follow — shared styles */
:root{
  --df-dark-green:#1e5f3a;
  --df-dark-green-2:#164a2d;
  --df-mid-green:#2f9e5c;
  --df-mid-green-2:#278a4f;
  --df-light-green:#eaf7ee;
  --df-light-green-2:#dcf1e3;
  --df-amber:#f2a93b;
  --df-amber-2:#e0961f;
  --df-amber-light:#fff4e0;
  --df-ink:#1b2b22;
  --df-muted:#6b7d72;
  --df-border:#e1e9e3;
  --df-danger:#d64545;
  --df-radius-lg:16px;
  --df-radius:12px;
  --df-radius-sm:8px;
  --df-shadow:0 2px 14px rgba(20,60,38,.07);
  --df-shadow-sm:0 1px 4px rgba(20,60,38,.06);
  --df-sidebar-w:280px;
}

html,body{height:100%;overflow-x:hidden;}
body{
  font-family:"Tajawal","Segoe UI",Tahoma,sans-serif;
  background:#f4f8f5;
  color:var(--df-ink);
  font-size:.96rem;
}
a{color:var(--df-mid-green-2);text-decoration:none;}
a:hover{color:var(--df-dark-green);text-decoration:underline;}
h1,h2,h3,h4,h5,h6{font-weight:800;}
.text-muted-df{color:var(--df-muted)!important;}
.fw-800{font-weight:800;}

/* ---------- Sidebar ---------- */
.df-sidebar{
  position:fixed;
  right:0;
  top:0; bottom:0;
  width:var(--df-sidebar-w);
  background:linear-gradient(180deg,var(--df-dark-green) 0%,var(--df-dark-green-2) 100%);
  color:#fff;
  display:flex;
  flex-direction:column;
  padding:22px 16px;
  z-index:1040;
  transition:transform .25s ease;
}
.df-sidebar-brand{
  display:flex;align-items:center;gap:10px;
  padding:6px 10px 22px;
  border-bottom:1px solid rgba(255,255,255,.12);
  margin-bottom:18px;
}
.df-sidebar-brand .mark{
  width:38px;height:38px;border-radius:10px;
  background:var(--df-amber);
  display:flex;align-items:center;justify-content:center;
  color:var(--df-dark-green-2);font-size:1.05rem;flex:none;
}
.df-sidebar-brand .name{font-size:1.05rem;font-weight:800;line-height:1.15;}
.df-sidebar-brand .sub{font-size:.7rem;color:rgba(255,255,255,.65);}
.df-nav{
  display:flex;flex-direction:column;gap:4px;flex:1;overflow-y:auto;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent;
}
.df-nav::-webkit-scrollbar{width:5px;}
.df-nav::-webkit-scrollbar-track{background:transparent;}
.df-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25);border-radius:10px;}
.df-nav::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.4);}
.df-nav-link{
  display:flex;align-items:center;gap:12px;
  padding:11px 14px;border-radius:10px;
  color:rgba(255,255,255,.82);font-weight:600;font-size:.92rem;
}
.df-nav-link i{width:20px;text-align:center;color:rgba(255,255,255,.65);}
.df-nav-link:hover{background:rgba(255,255,255,.08);color:#fff;text-decoration:none;}
.df-nav-link.active{background:var(--df-mid-green);color:#fff;box-shadow:var(--df-shadow-sm);}
.df-nav-link.active i{color:#fff;}

.df-nav-header{
  padding:14px 14px 6px;
  font-size:.7rem;font-weight:800;letter-spacing:.03em;
  color:rgba(255,255,255,.42);text-transform:uppercase;
}
.df-nav-header:first-child{padding-top:0;}

.df-nav-toggle{
  display:flex;align-items:center;gap:12px;width:100%;
  padding:11px 14px;border-radius:10px;border:0;background:transparent;
  color:rgba(255,255,255,.82);font-weight:600;font-size:.92rem;
  cursor:pointer;
}
.df-nav-toggle i:not(.chevron){width:20px;text-align:center;color:rgba(255,255,255,.65);}
.df-nav-toggle:hover{background:rgba(255,255,255,.08);color:#fff;}
.df-nav-toggle.active{background:rgba(255,255,255,.08);color:#fff;}
.df-nav-toggle .chevron{font-size:.75rem;transition:transform .2s;color:rgba(255,255,255,.5);}
.df-nav-toggle[aria-expanded="true"] .chevron{transform:rotate(180deg);}

.df-nav-submenu{padding-inline-start:14px;margin-top:2px;display:flex;flex-direction:column;gap:2px;}
.df-nav-subheader{padding-block:8px 2px;padding-inline-start:46px;padding-inline-end:14px;font-size:.66rem;font-weight:800;color:rgba(255,255,255,.38);text-transform:uppercase;}
.df-nav-link.sub{padding-block:8px;padding-inline-start:46px;padding-inline-end:14px;font-size:.86rem;color:rgba(255,255,255,.72);}

.df-sidebar.df-collapsed .df-nav-header,
.df-sidebar.df-collapsed .df-nav-toggle .chevron,
.df-sidebar.df-collapsed .df-nav-submenu{display:none;}
.df-sidebar.df-collapsed .df-nav-toggle{justify-content:center;padding:11px 0;}
.df-sidebar.df-collapsed .df-nav-toggle i{width:auto;}
.df-sidebar-foot{
  border-top:1px solid rgba(255,255,255,.12);
  padding-top:14px;margin-top:8px;
  font-size:.75rem;color:rgba(255,255,255,.55);
}
.df-sidebar-close{display:none;}

.df-sidebar-backdrop{
  position:fixed;inset:0;background:rgba(10,30,18,.45);z-index:1035;
  opacity:0;pointer-events:none;transition:opacity .2s ease;
}
.df-sidebar-backdrop.show{opacity:1;pointer-events:auto;}

/* ---------- Main / Topbar ---------- */
.df-main{margin-right:var(--df-sidebar-w);min-height:100vh;display:flex;flex-direction:column;transition:margin-right .25s ease;}
.df-topbar{
  position:sticky;top:0;z-index:1020;
  background:#fff;border-bottom:1px solid var(--df-border);
  padding:14px 26px;display:flex;align-items:center;gap:14px;
}
.df-topbar h1{font-size:1.15rem;margin:0;font-weight:800;}
.df-topbar .subtitle{font-size:.8rem;color:var(--df-muted);}
.df-menu-btn{
  display:inline-flex;border:1px solid var(--df-border);background:#fff;
  width:40px;height:40px;border-radius:10px;align-items:center;justify-content:center;color:var(--df-dark-green);flex:none;
}
.df-menu-btn:hover{background:var(--df-light-green);border-color:var(--df-mid-green);}
.df-user-chip{
  display:flex;align-items:center;gap:8px;margin-inline-start:auto;
  padding:6px 12px;border-radius:999px;background:var(--df-light-green);font-size:.82rem;font-weight:700;color:var(--df-dark-green);
}
.df-content{padding:24px 26px 60px;flex:1;}

/* ---------- Cards ---------- */
.df-card{
  background:#fff;border:1px solid var(--df-border);border-radius:var(--df-radius-lg);
  box-shadow:var(--df-shadow-sm);
}
.df-card-body{padding:20px 22px;}
.df-section-title{
  display:flex;align-items:center;gap:10px;margin-bottom:16px;
}
.df-section-title .bar{width:5px;height:22px;border-radius:4px;background:var(--df-mid-green);}
.df-section-title h2{font-size:1.05rem;margin:0;}

.df-kpi{
  background:#fff;border:1px solid var(--df-border);border-radius:var(--df-radius-lg);
  padding:18px 20px;box-shadow:var(--df-shadow-sm);position:relative;overflow:hidden;
  min-height:152px;height:100%;
  display:flex;flex-direction:column;justify-content:center;
}
.df-kpi .icon{
  width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;
  background:var(--df-light-green);color:var(--df-mid-green-2);font-size:1.1rem;margin-bottom:10px;
}
.df-kpi .label{font-size:.8rem;color:var(--df-muted);font-weight:600;}
.df-kpi .value{font-size:1.5rem;font-weight:800;color:var(--df-ink);}
.df-kpi .delta{font-size:.74rem;font-weight:700;}
.df-kpi .delta.up{color:var(--df-mid-green-2);}
.df-kpi .delta.down{color:var(--df-danger);}
.df-kpi.amberline::before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:4px;background:var(--df-amber);}
.df-kpi.greenline::before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:4px;background:var(--df-mid-green);}
.df-kpi.darkline::before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:4px;background:var(--df-dark-green);}
.df-kpi.redline::before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:4px;background:var(--df-danger);}

/* ---------- Callout banner (amber) ---------- */
.df-callout{
  background:linear-gradient(90deg,var(--df-amber-light),#fff);
  border:1px solid #f4d99a;border-inline-start:5px solid var(--df-amber);
  border-radius:var(--df-radius);padding:14px 18px;display:flex;gap:12px;align-items:flex-start;
}
.df-callout i{color:var(--df-amber-2);font-size:1.2rem;margin-top:2px;}
.df-callout strong{color:var(--df-amber-2);}

/* ---------- Feature check list ---------- */
.df-check-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;}
.df-check-list li{display:flex;align-items:center;gap:10px;font-size:.88rem;}
.df-check-list i{color:var(--df-mid-green-2);}

/* ---------- Tables ---------- */
.df-table thead th{
  font-size:.8rem;font-family:"Tajawal","Segoe UI",Tahoma,sans-serif;color:var(--df-muted);
  background:var(--df-light-green);border-bottom:none;font-weight:700;padding:12px 14px;
  text-align:right;
}
.df-table thead tr th:first-child{border-start-start-radius:10px;border-end-start-radius:10px;}
.df-table thead tr th:last-child{border-start-end-radius:10px;border-end-end-radius:10px;}
.df-table tbody td{padding:13px 14px;vertical-align:middle;font-size:.88rem;border-bottom:1px solid var(--df-border);text-align:right;}
.df-table tbody tr:last-child td{border-bottom:none;}
.df-table tbody tr:hover{background:#fafdfb;}

/* ---------- DataTables (Arabic/RTL fixes) ---------- */
table.dataTable thead th,
table.dataTable thead td,
table.dataTable tbody th,
table.dataTable tbody td{
  text-align:right!important;
  font-family:"Tajawal","Segoe UI",Tahoma,sans-serif;
  text-transform:none;
  letter-spacing:normal;
}
table.dataTable thead > tr > th.dt-orderable-asc,
table.dataTable thead > tr > th.dt-orderable-desc,
table.dataTable thead > tr > th.dt-ordering-asc,
table.dataTable thead > tr > th.dt-ordering-desc{
  padding-right:14px!important;
  padding-left:30px!important;
}
table.dataTable .dt-column-order{
  right:auto!important;
  left:12px!important;
}
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate{
  text-align:right;
  font-family:"Tajawal","Segoe UI",Tahoma,sans-serif;
}
.dataTables_wrapper .dataTables_filter input{margin-inline-start:.5em;margin-right:0;}

/* ---------- Badges ---------- */
.df-badge{padding:5px 11px;border-radius:999px;font-size:.75rem;font-weight:700;display:inline-flex;align-items:center;gap:5px;}
.df-badge.paid{background:#e3f6ea;color:#1c7a44;}
.df-badge.unpaid{background:#fdeaea;color:#c53030;}
.df-badge.partial{background:#fff3da;color:#b1720b;}
.df-badge.market{background:#e8f0fe;color:#2856c9;}
.df-badge.cash{background:#e3f6ea;color:#1c7a44;}
.df-badge.credit{background:#f3e8fe;color:#6a2bb0;}
.df-badge.neutral{background:#eef2ee;color:#55655a;}

/* ---------- Filters chips ---------- */
.df-chip{
  border:1px solid var(--df-border);background:#fff;border-radius:999px;padding:7px 16px;
  font-size:.82rem;font-weight:700;color:var(--df-muted);
}
.df-chip.active{background:var(--df-dark-green);border-color:var(--df-dark-green);color:#fff;}
.df-chip:hover{text-decoration:none;border-color:var(--df-mid-green);color:var(--df-dark-green);}

/* ---------- Breadcrumb ---------- */
.df-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.86rem;color:var(--df-muted);font-weight:600;}
.df-breadcrumb .seg{color:var(--df-dark-green);}
.df-breadcrumb i{font-size:.65rem;color:var(--df-muted);}

/* ---------- Tree (farms page) ---------- */
.df-tree-farm{border:1px solid var(--df-border);border-radius:var(--df-radius);margin-bottom:14px;overflow:hidden;}
.df-tree-farm-head{
  background:var(--df-light-green);padding:14px 18px;display:flex;align-items:center;gap:12px;
}
.df-tree-farm-head i.fa-seedling{color:var(--df-mid-green-2);font-size:1.1rem;}
.df-tree-sprayers{padding:10px 18px 16px;display:flex;flex-direction:column;gap:8px;}
.df-tree-sprayer{
  display:flex;align-items:center;justify-content:between;gap:10px;
  background:#fff;border:1px solid var(--df-border);border-radius:var(--df-radius-sm);
  padding:10px 14px;display:flex;justify-content:space-between;align-items:center;
}
.df-tree-sprayer .name{display:flex;align-items:center;gap:8px;font-weight:700;}
.df-tree-sprayer .name i{color:var(--df-amber-2);}

/* ---------- Forms ---------- */
.form-label{font-weight:700;font-size:.85rem;color:var(--df-ink);}
.form-control,.form-select{border-radius:10px;border-color:var(--df-border);padding:10px 12px;font-size:.9rem;}
.form-control:focus,.form-select:focus{border-color:var(--df-mid-green);box-shadow:0 0 0 .2rem rgba(47,158,92,.15);}
.input-group-text{background:var(--df-light-green);border-color:var(--df-border);color:var(--df-dark-green);font-weight:700;}

.btn-df-primary{background:var(--df-mid-green);border-color:var(--df-mid-green);color:#fff;font-weight:700;}
.btn-df-primary:hover{background:var(--df-mid-green-2);border-color:var(--df-mid-green-2);color:#fff;}
.btn-df-dark{background:var(--df-dark-green);border-color:var(--df-dark-green);color:#fff;font-weight:700;}
.btn-df-dark:hover{background:var(--df-dark-green-2);border-color:var(--df-dark-green-2);color:#fff;}
.btn-outline-df{border:1px solid var(--df-mid-green);color:var(--df-mid-green-2);font-weight:700;background:#fff;}
.btn-outline-df:hover{background:var(--df-light-green);color:var(--df-dark-green);}
.btn-icon-sm{width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;}

/* ---------- Progress / compare bars ---------- */
.df-bar-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.df-bar-row .lbl{width:110px;font-size:.82rem;font-weight:700;flex:none;}
.df-bar-track{flex:1;height:10px;background:var(--df-light-green);border-radius:6px;overflow:hidden;}
.df-bar-fill{height:100%;border-radius:6px;background:var(--df-mid-green);}
.df-bar-fill.amber{background:var(--df-amber);}
.df-bar-row .val{width:96px;text-align:end;font-size:.82rem;font-weight:700;color:var(--df-muted);flex:none;}

/* ---------- Photo upload ---------- */
.df-upload{
  border:2px dashed var(--df-border);border-radius:var(--df-radius);
  padding:26px;text-align:center;color:var(--df-muted);background:#fbfdfb;
}
.df-upload i{font-size:1.6rem;color:var(--df-mid-green-2);margin-bottom:8px;display:block;}
.df-thumb{
  width:76px;height:76px;border-radius:10px;object-fit:cover;border:1px solid var(--df-border);
}
.df-thumb[data-df-image-modal]{cursor:pointer;transition:opacity .15s;}
.df-thumb[data-df-image-modal]:hover{opacity:.85;}

.df-icon-tile{
  width:48px;height:48px;border-radius:12px;flex:none;
  background:var(--df-light-green,#eaf6ec);color:var(--df-mid-green,#2f8f4e);
  display:flex;align-items:center;justify-content:center;font-size:1.2rem;
}
a.df-card{transition:box-shadow .15s,transform .15s;}
a.df-card:hover{box-shadow:0 6px 18px rgba(0,0,0,.08);transform:translateY(-1px);}

.df-collapse-toggle{cursor:pointer;}
.df-collapse-toggle .chevron{transition:transform .2s;}
.df-collapse-toggle[aria-expanded="false"] .chevron{transform:rotate(180deg);}

/* ---------- Toasts ---------- */
.toast{border-radius:12px;}
.toast.success{border-inline-start:4px solid var(--df-mid-green);}
.toast.error{border-inline-start:4px solid var(--df-danger);}
.toast.info{border-inline-start:4px solid #2856c9;}

/* ---------- Login page ---------- */
.df-login-wrap{
  min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;
  position:relative;overflow:hidden;
  background:linear-gradient(160deg,var(--df-dark-green),var(--df-mid-green-2) 60%,var(--df-dark-green-2));
}
.df-login-icons{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;}
.df-login-icons i{
  position:absolute;color:rgba(255,255,255,.16);animation:df-float 3s ease-in-out infinite;
  will-change:transform;
}
.df-login-icons i:nth-child(odd){animation-direction:alternate-reverse;}
@keyframes df-float{
  0%{transform:translateY(0) translateX(0) rotate(0deg);}
  50%{transform:translateY(-32px) translateX(14px) rotate(8deg);}
  100%{transform:translateY(0) translateX(0) rotate(0deg);}
}
.df-login-card{
  position:relative;z-index:1;width:100%;max-width:400px;background:#fff;border-radius:var(--df-radius-lg);
  box-shadow:0 20px 60px rgba(10,40,25,.35);padding:40px 32px;
}
@media (max-width:575px){.df-login-card{padding:30px 22px;}}
@media (prefers-reduced-motion: reduce){.df-login-icons i{animation:none;}}

/* ---------- Responsive ---------- */
/* ---------- Sidebar collapse (desktop) — mini icon rail ---------- */
.df-sidebar.df-collapsed{width:76px;padding-inline:10px;transform:none;}
.df-main.df-collapsed{margin-right:76px;}
.df-sidebar.df-collapsed .df-sidebar-brand{justify-content:center;padding-inline:0;}
.df-sidebar.df-collapsed .df-sidebar-brand .name,
.df-sidebar.df-collapsed .df-sidebar-brand .sub,
.df-sidebar.df-collapsed .df-nav-link span,
.df-sidebar.df-collapsed .df-sidebar-foot{display:none;}
.df-sidebar.df-collapsed .df-nav-link{justify-content:center;padding:11px 0;}
.df-sidebar.df-collapsed .df-nav-link i{width:auto;}

@media (max-width:767px){
  .df-sidebar{transform:translateX(100%);}
  html[dir="rtl"] .df-sidebar{transform:translateX(100%);}
  .df-sidebar.show{transform:translateX(0);}
  .df-sidebar.show.df-collapsed{width:var(--df-sidebar-w);}
  .df-main{margin-right:0;}
  .df-sidebar-close{display:inline-flex!important;}
}
@media (max-width:575px){
  .df-content{padding:18px 14px 50px;}
  .df-topbar{padding:12px 14px;}
}

/* ---------- Tom Select (inherit Arabic font) ---------- */
.ts-wrapper,
.ts-control,
.ts-control input,
.ts-dropdown,
.ts-dropdown .option,
.ts-dropdown .create{
  font-family:"Tajawal","Segoe UI",Tahoma,sans-serif;
}
.ts-wrapper.single .ts-control{
  padding:10px 12px;
  font-size:.9rem;
  border-radius:10px;
  border-color:var(--df-border);
  min-height:0;
  display:flex;
  align-items:center;
}
.ts-wrapper.single .ts-control > input{
  padding:0;
}
.input-group .ts-wrapper{
  flex:1 1 auto;
  width:1%;
}
