/* ================================================================
   Behi Center Dashboard — Professional Redesign
   ================================================================ */

@import url('https://cdn.jsdelivr.net/gh/rastikerdar/vazirmatn@v33.003/Vazirmatn-font-face.css');

:root {
  --bg:          #f1f5f9;
  --panel:       #ffffff;
  --text:        #0f172a;
  --muted:       #64748b;
  --border:      #e2e8f0;
  --border-soft: #f1f5f9;
  --primary:     #475569;
  --primary-h:   #334155;
  --primary-lit: #eef1f5;
  --green:       #16a34a;
  --green-lit:   #dcfce7;
  --amber:       #d97706;
  --amber-lit:   #fef3c7;
  --red:         #dc2626;
  --red-lit:     #fee2e2;
  --gray:        #94a3b8;
  --radius:      14px;
  --radius-sm:   9px;
  --shadow:      0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.04);
  --shadow-md:   0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);
  --sidebar-bg:     #0f172a;
  --sidebar-border: #1e293b;
  --sidebar-text:   #94a3b8;
  --sidebar-active: #ffffff;
  --sidebar-w:      239px;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background-color: var(--bg);
  background-image: linear-gradient(rgba(241,245,249,.94), rgba(241,245,249,.94)), url('behi.jpg');
  background-repeat: no-repeat;
  background-position: top center;
  background-size: 420px;
  background-attachment: fixed;
  color: var(--text);
  font-family: "Vazirmatn", "Segoe UI", Tahoma, sans-serif;
  font-size: 15px;
  line-height: 1.75;
}

a { color: var(--primary); text-decoration: none; }
a:hover { text-decoration: underline; }

/* Layout */
.container {
  max-width: none;
  margin: 0;
  padding: 28px 24px 72px;
}

/* App Shell / Sidebar */
.sidebar-toggle-input { display: none; }

.app-shell {
  display: flex;
  min-height: 100vh;
  align-items: stretch;
}

.sidebar {
  width: var(--sidebar-w);
  flex-shrink: 0;
  background: var(--sidebar-bg);
  border-left: 1px solid var(--sidebar-border);
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
  z-index: 200;
}
.sidebar-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 22px 20px;
  border-bottom: 1px solid rgba(255,255,255,.06);
  transition: background .15s;
}
.sidebar-brand:hover {
  background: rgba(255,255,255,.06);
  text-decoration: none;
}
.sidebar-logo {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  object-fit: cover;
  box-shadow: 0 0 0 2px rgba(255,255,255,.08);
}
.sidebar-brand-text {
  color: #fff;
  font-weight: 800;
  font-size: 1.05rem;
}
.sidebar-nav {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 14px 12px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.15) transparent;
}
.sidebar-nav::-webkit-scrollbar {
  width: 6px;
}
.sidebar-nav::-webkit-scrollbar-track {
  background: transparent;
}
.sidebar-nav::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,.15);
  border-radius: 6px;
}
.sidebar-nav::-webkit-scrollbar-thumb:hover {
  background: rgba(255,255,255,.3);
}
.sidebar-nav a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 14px;
  border-radius: 10px;
  color: var(--sidebar-text);
  font-size: 0.9rem;
  font-weight: 600;
  transition: background .15s, color .15s;
}
.sidebar-nav a:hover {
  background: rgba(255,255,255,.06);
  color: var(--sidebar-active);
  text-decoration: none;
}
.sidebar-nav a.active {
  background: var(--primary);
  color: #fff;
}
.nav-icon {
  font-size: 1.05rem;
  width: 22px;
  text-align: center;
  flex-shrink: 0;
}
.nav-group { position: relative; }
.nav-group > .nav-parent {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 14px;
  border-radius: 10px;
  color: var(--sidebar-text);
  font-size: 0.9rem;
  font-weight: 600;
  transition: background .15s, color .15s;
}
.nav-group:hover > .nav-parent {
  background: rgba(255,255,255,.06);
  color: var(--sidebar-active);
  text-decoration: none;
}
.nav-group > .nav-parent.active {
  background: var(--primary);
  color: #fff;
}
.nav-arrow { margin-inline-start: auto; font-size: 0.75rem; opacity: .6; }
.nav-submenu {
  display: none;
  position: fixed;
  min-width: 200px;
  background: var(--sidebar-bg);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  padding: 6px;
  box-shadow: var(--shadow-md);
  z-index: 300;
  flex-direction: column;
  gap: 2px;
}
.nav-submenu { max-height: calc(100vh - 16px); overflow-y: auto; }
.nav-submenu.open { display: flex; }
.nav-submenu a { white-space: nowrap; }
.sidebar-footer {
  padding: 14px 12px;
  border-top: 1px solid rgba(255,255,255,.06);
}
.sidebar-footer .nav-logout {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 14px;
  border-radius: 10px;
  color: #f87171;
  font-weight: 600;
  font-size: 0.9rem;
  transition: background .15s;
}
.sidebar-footer .nav-logout:hover {
  background: rgba(248,113,113,.1);
  color: #fca5a5;
  text-decoration: none;
}

.sidebar-overlay { display: none; }

.main-area {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

/* Mobile Topbar (sidebar toggle) */
.topbar {
  display: none;
  background: var(--panel);
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: var(--shadow);
}
.topbar-inner {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0 16px;
  min-height: 54px;
}
.sidebar-burger {
  display: none;
  font-size: 1.35rem;
  cursor: pointer;
  line-height: 1;
  padding: 4px 6px;
  border-radius: 8px;
}
.sidebar-burger:hover { background: var(--bg); }
.brand {
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--text);
}

/* Cards / Panels */
.panel {
  background: var(--panel);
  border-radius: var(--radius);
  padding: 22px 24px;
  margin-bottom: 20px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}
.panel h2 {
  margin: 0 0 16px;
  font-size: 1rem;
  font-weight: 700;
  color: var(--text);
  display: flex;
  align-items: center;
  gap: 8px;
}
.panel h2 .count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--bg);
  border-radius: 999px;
  padding: 1px 10px;
  font-size: 0.78rem;
  color: var(--muted);
  font-weight: 500;
  border: 1px solid var(--border);
}

/* Dashboard Grid */
.dashboard-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 20px;
  align-items: start;
}
.dashboard-col {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
}
.dashboard-col .panel { margin-bottom: 0; }

/* Page Hero */
.page-hero {
  background: linear-gradient(135deg, #1e293b, #0f172a);
  color: #fff;
  text-align: center;
  padding: 32px 24px;
}
.page-title {
  font-size: 1.4rem;
  font-weight: 800;
  margin: 0;
}
.rec-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #22c55e;
  animation: rec-pulse 1.6s infinite;
}
.rec-indicator-sm {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  font-size: 0.74rem;
  font-weight: 600;
  color: #86efac;
  margin-bottom: 4px;
}
@keyframes rec-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(34,197,94,.55); }
  70%  { box-shadow: 0 0 0 8px rgba(34,197,94,0); }
  100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); }
}

/* Announcement */
.announcement-panel { border-right: 5px solid var(--amber); }
.announcement-box {
  font-size: 1.1rem;
  font-weight: 800;
  line-height: 2;
  background: var(--amber-lit);
  color: #92400e;
  border: 1.5px solid #fcd34d;
  border-radius: 12px;
  padding: 18px 20px;
  white-space: pre-wrap;
}
.announcement-box.announcement-blink {
  animation: announcement-blink 1.4s ease-in-out infinite;
}
@keyframes announcement-blink {
  0%, 100% { background: var(--amber-lit); border-color: #fcd34d; }
  50%      { background: #fde68a; border-color: #f59e0b; }
}
.announcement-blink-title {
  animation: announcement-title-blink 1.4s ease-in-out infinite;
}
@keyframes announcement-title-blink {
  0%, 100% { opacity: 1; color: #0f172a; }
  50%      { opacity: 1; color: #dc2626; }
}

/* Login */
.login-wrap {
  min-height: 80vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.login-card {
  background: var(--panel);
  border-radius: 20px;
  padding: 40px 36px;
  width: 100%;
  max-width: 380px;
  text-align: center;
  box-shadow: var(--shadow-md);
  border: 1px solid var(--border);
}
.login-card h1 {
  font-size: 1.2rem;
  margin: 0 0 6px;
  color: var(--text);
}
.login-card .subtitle {
  color: var(--muted);
  margin: 0 0 24px;
  font-size: 0.9rem;
}
.login-card form {
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-align: right;
}
.login-card label {
  font-size: 0.82rem;
  color: var(--muted);
  font-weight: 600;
  margin-top: 4px;
}
.login-card input {
  padding: 11px 14px;
  border: 1.5px solid var(--border);
  border-radius: 10px;
  font-size: 0.95rem;
  font-family: inherit;
  transition: border-color .15s, box-shadow .15s;
  background: var(--bg);
}
.login-card input:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(71,85,105,.12);
  background: #fff;
}
.login-card button {
  margin-top: 16px;
  padding: 13px;
  border: none;
  border-radius: 10px;
  background: var(--primary);
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: background .15s, transform .1s;
}
.login-card button:hover { background: var(--primary-h); }
.login-card button:active { transform: scale(.98); }
.error-msg { color: var(--red); font-size: 0.88rem; background: var(--red-lit); padding: 8px 12px; border-radius: 8px; margin: 4px 0; }

/* Badges */
.badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 0.76rem;
  font-weight: 600;
  white-space: nowrap;
  letter-spacing: .02em;
}
.badge-secondary, .badge.info { background: var(--primary-lit); color: var(--primary); }
.badge-warning               { background: var(--amber-lit);   color: #92400e; }
.badge-success, .badge.success { background: var(--green-lit); color: #166534; }
.badge-muted, .badge.muted   { background: #f1f5f9;           color: var(--muted); }

/* Bot Control Panel */
.status-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}
.control-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}
.btn {
  flex: 1 1 160px;
  padding: 12px 14px;
  border: 1.5px solid var(--border);
  border-radius: 10px;
  background: var(--panel);
  color: var(--text);
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: filter .15s, box-shadow .15s;
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.btn-on    { border-color: #86efac; background: #f0fdf4; color: #166534; }
.btn-hours { border-color: #fcd34d; background: #fffbeb; color: #92400e; }
.btn-off   { border-color: #fca5a5; background: #fef2f2; color: #991b1b; }
.btn-ghost { border-color: var(--border); background: var(--bg); color: var(--muted); }
.btn-start { border-color: #86efac; background: #f0fdf4; color: #166534; }
.btn:hover { filter: brightness(.96); box-shadow: var(--shadow); text-decoration: none; }
.btn:active { transform: scale(.98); }

/* Summary Chips */
.summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
}
.summary-chip {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
  gap: 4px;
  padding: 18px 12px;
  border-radius: 12px;
  text-align: center;
  transition: transform .15s, box-shadow .15s;
  text-decoration: none !important;
  border: 1.5px solid transparent;
}
.summary-chip:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.summary-chip .icon { font-size: 1.5rem; }
.summary-chip .num { font-size: 1.6rem; font-weight: 800; line-height: 1.05; min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.summary-chip .lbl { font-size: 0.75rem; color: var(--muted); font-weight: 500; }
/* Override badge colors for chips */
.summary-chip.badge-secondary { background: var(--primary-lit); border-color: #cbd5e1; }
.summary-chip.badge-secondary .num { color: var(--primary); }
.summary-chip.badge-warning { background: var(--amber-lit); border-color: #fcd34d; }
.summary-chip.badge-warning .num { color: var(--amber); }
.summary-chip.badge-success { background: var(--green-lit); border-color: #86efac; }
.summary-chip.badge-success .num { color: var(--green); }
.summary-chip.badge-muted { background: #f8fafc; border-color: var(--border); }
.summary-chip.badge-muted .num { color: var(--muted); }

/* Order List */
.order-list { display: flex; flex-direction: column; gap: 10px; }
.order-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 12px;
}
.summary-chip.active { border-color: var(--primary); box-shadow: 0 0 0 2px rgba(71,85,105,.12); }
.order-card {
  display: block;
  border: 1.5px solid var(--border);
  border-radius: 12px;
  padding: 14px 18px;
  color: inherit;
  background: var(--panel);
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.order-card:hover {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(71,85,105,.08);
  background: #fafbff;
  text-decoration: none;
}
.order-card-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 6px;
}
.order-id { font-weight: 700; font-size: 0.95rem; }
.order-card-body {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}
.cust-name { font-size: 0.9rem; }
.order-card-extra { margin-top: 4px; font-size: 0.78rem; color: var(--muted); }
.muted { color: var(--muted); font-size: 0.85rem; }
.empty {
  color: var(--muted);
  font-size: 0.88rem;
  padding: 10px 0;
  display: flex;
  align-items: center;
  gap: 6px;
}
.empty::before { content: '—'; opacity: .5; }

/* Order Detail */
.back-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 16px;
  font-size: 0.88rem;
  color: var(--muted);
  padding: 7px 14px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--panel);
  transition: border-color .15s, color .15s;
}
.back-link:hover { border-color: var(--primary); color: var(--primary); text-decoration: none; }

.detail-card { border-right: 4px solid var(--primary); }
.detail-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.detail-head h1 { font-size: 1.25rem; margin: 0; }
.dk-status { margin-top: 6px; font-size: 0.9rem; }

.info-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.info-list li {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  padding: 8px 0;
  border-bottom: 1px solid var(--border-soft);
}
.info-list li:last-child { border-bottom: none; }
.info-list .k { color: var(--muted); min-width: 120px; font-size: 0.85rem; font-weight: 500; }
.info-list .v { font-weight: 600; font-size: 0.9rem; }

/* Item Grid */
.item-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 14px;
}
.item-card {
  border: 1.5px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow .15s;
}
.item-card:hover { box-shadow: var(--shadow-md); }
.item-card img { width: 100%; aspect-ratio: 1/1; object-fit: cover; background: var(--bg); }
.item-info { padding: 12px 14px; }
.item-title { margin: 0 0 6px; font-size: 0.88rem; line-height: 1.55; font-weight: 600; }

.item-grid.compact { grid-template-columns: 1fr; }
.item-card.compact { flex-direction: row; align-items: center; gap: 12px; padding: 8px 12px; }
.item-card.compact img { width: 60px; height: 60px; flex: none; border-radius: 10px; }
.item-card.compact .item-info { padding: 0; }

/* Alert Banner */
.alert-banner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  background: var(--red-lit);
  border: 1.5px solid #fca5a5;
  color: #991b1b;
  border-radius: 12px;
  padding: 14px 18px;
  margin-bottom: 16px;
  font-size: 0.9rem;
  font-weight: 500;
}
.alert-banner a { color: #991b1b; font-weight: 700; text-decoration: underline; }
.alert-banner .updated-at { color: #b45309; font-size: 0.78rem; opacity: .85; }

/* Collapsible How-to */
.howto {
  margin: 10px 0 18px;
  border: 1.5px solid var(--border);
  border-radius: 10px;
  padding: 12px 16px;
  font-size: 0.88rem;
  color: var(--muted);
  background: var(--panel);
}
.howto summary { cursor: pointer; color: var(--text); font-weight: 700; }
.howto ol { margin: 10px 0 0; padding-inline-start: 20px; display: flex; flex-direction: column; gap: 4px; }
.howto code { background: var(--bg); border-radius: 5px; padding: 2px 6px; font-size: 0.83em; direction: ltr; display: inline-block; border: 1px solid var(--border); }

/* SnappBox / Form Styles */
.sb-form { display: flex; flex-direction: column; gap: 10px; max-width: 380px; }
.sb-form label { font-size: 0.82rem; color: var(--muted); font-weight: 600; }
.sb-form input, .sb-form textarea {
  padding: 11px 14px;
  border: 1.5px solid var(--border);
  border-radius: 10px;
  font-size: 0.95rem;
  font-family: inherit;
  background: var(--bg);
  transition: border-color .15s, box-shadow .15s;
}
.sb-form input:focus, .sb-form textarea:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(71,85,105,.12);
  background: #fff;
}
.sb-form input { text-align: center; letter-spacing: 2px; }
.sb-form button {
  margin-top: 8px;
  padding: 12px;
  border: none;
  border-radius: 10px;
  background: var(--primary);
  color: #fff;
  font-size: 0.95rem;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: background .15s;
}
.sb-form button:hover { background: var(--primary-h); }
.sb-form .btn-cancel { background: var(--red); }
.sb-form .btn-cancel:hover { background: #b91c1c; }

.status-msg {
  padding: 14px 18px;
  border-radius: 12px;
  background: var(--primary-lit);
  color: var(--primary);
  font-size: 0.9rem;
  margin-bottom: 16px;
  font-weight: 500;
  border: 1px solid #cbd5e1;
}
.status-msg.success { background: var(--green-lit); color: #166534; border-color: #86efac; }
.status-msg.error   { background: var(--red-lit);   color: #991b1b; border-color: #fca5a5; }
.status-msg .updated-at { display: block; margin-top: 4px; font-size: 0.78rem; opacity: .75; }

/* Variant Management */
.vm-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
  align-items: center;
  padding: 16px;
  background: var(--bg);
  border-radius: 10px;
  border: 1px solid var(--border);
}
.vm-filters input, .vm-filters select {
  padding: 9px 12px;
  border: 1.5px solid var(--border);
  border-radius: 8px;
  font-size: 0.88rem;
  font-family: inherit;
  background: var(--panel);
  transition: border-color .15s;
}
.vm-filters input:focus, .vm-filters select:focus {
  outline: none;
  border-color: var(--primary);
}
.vm-filters input[type="number"], .vm-filters input[type="text"] { min-width: 130px; }
.vm-filters button {
  padding: 9px 18px;
  border: none;
  border-radius: 8px;
  background: var(--primary);
  color: #fff;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: background .15s;
}
.vm-filters button:hover { background: var(--primary-h); }
.vm-filters .reset { background: var(--panel); color: var(--text); border: 1.5px solid var(--border); }

.vm-card {
  border: 1.5px solid var(--border);
  border-radius: 12px;
  padding: 16px 18px;
  margin-bottom: 12px;
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  background: var(--panel);
  transition: box-shadow .15s;
}
.vm-card:hover { box-shadow: var(--shadow-md); }
.vm-thumb { width: 68px; height: 68px; border-radius: 10px; object-fit: cover; background: var(--bg); flex-shrink: 0; border: 1px solid var(--border); }
.vm-main { flex: 1 1 240px; min-width: 0; }
.vm-title { font-size: 0.9rem; font-weight: 700; margin: 0 0 6px; line-height: 1.5; }
.vm-title a { color: inherit; }
.vm-meta { display: flex; flex-wrap: wrap; gap: 6px; font-size: 0.76rem; color: var(--muted); margin-bottom: 8px; align-items: center; }
.vm-stats { display: flex; flex-wrap: wrap; gap: 16px; font-size: 0.82rem; color: var(--muted); }
.vm-stats b { color: var(--text); font-weight: 700; }
.vm-actions {
  flex: 1 1 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1.5px dashed var(--border);
  align-items: center;
}
.vm-edit { display: flex; align-items: center; gap: 8px; }
.vm-edit label { font-size: 0.78rem; color: var(--muted); font-weight: 600; }
.vm-edit input {
  width: 120px;
  padding: 8px 10px;
  border: 1.5px solid var(--border);
  border-radius: 8px;
  font-size: 0.88rem;
  font-family: inherit;
  text-align: center;
  background: var(--bg);
}
.vm-edit input:focus { outline: none; border-color: var(--primary); background: #fff; }
.vm-edit button {
  padding: 8px 14px;
  border: none;
  border-radius: 8px;
  background: var(--primary);
  color: #fff;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: background .15s;
}
.vm-edit button:hover { background: var(--primary-h); }
.vm-toggle {
  padding: 8px 14px;
  border: 1.5px solid var(--border);
  border-radius: 8px;
  background: var(--bg);
  color: var(--text);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: filter .15s;
}
.vm-toggle:hover { filter: brightness(.95); }
.vm-toggle.is-on  { border-color: #86efac; background: #f0fdf4; color: #166534; }
.vm-toggle.is-off { border-color: #fca5a5; background: #fef2f2; color: #991b1b; }
.vm-msg { font-size: 0.78rem; margin-inline-start: auto; font-weight: 600; }
.vm-msg.ok  { color: var(--green); }
.vm-msg.err { color: var(--red); }
.vm-pager {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 18px;
}
.vm-pager a, .vm-pager span {
  padding: 8px 15px;
  border: 1.5px solid var(--border);
  border-radius: 9px;
  font-size: 0.85rem;
  color: var(--text);
  background: var(--panel);
}
.vm-pager a:hover { border-color: var(--primary); color: var(--primary); text-decoration: none; }
.vm-pager .current { background: var(--primary); color: #fff; border-color: var(--primary); font-weight: 700; }

/* Inventory Management */
.inv-header { padding-bottom: 14px; }
.inv-title-row { margin-bottom: 14px; }
.inv-title { font-size: 1.05rem; font-weight: 800; margin: 0 0 4px; display: flex; align-items: center; gap: 8px; }
.inv-subtitle { font-size: 0.82rem; color: var(--muted); margin: 0; }
.inv-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  background: var(--bg);
  border-radius: 10px;
  padding: 4px;
  border: 1px solid var(--border);
  width: fit-content;
}
.inv-tab-btn {
  padding: 9px 18px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--muted);
  font-size: 0.86rem;
  font-family: inherit;
  cursor: pointer;
  font-weight: 600;
  white-space: nowrap;
  transition: background .15s, color .15s;
}
.inv-tab-btn:hover { color: var(--text); }
.inv-tab-btn.active {
  background: var(--panel);
  color: var(--primary);
  box-shadow: var(--shadow);
}
.inv-tab-panel { padding-top: 18px; }

/* HR Management */
.hr-tabs {
  display: flex;
  gap: 0;
  margin-bottom: 24px;
  background: var(--bg);
  border-radius: 10px;
  padding: 4px;
  border: 1px solid var(--border);
  width: fit-content;
}
.hr-tab {
  padding: 9px 22px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--muted);
  font-size: 0.9rem;
  font-family: inherit;
  cursor: pointer;
  font-weight: 600;
  transition: background .15s, color .15s;
}
.hr-tab.active {
  background: var(--panel);
  color: var(--primary);
  box-shadow: var(--shadow);
}
.hr-tab-content { display: none; }
.hr-tab-content.active { display: block; }

.hr-status-row { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.hr-person-chip {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 14px 18px;
  border-radius: 12px;
  border: 1.5px solid var(--border);
  min-width: 140px;
  text-align: center;
  background: var(--panel);
}
.hr-person-chip.chip-in  { background: #f0fdf4; border-color: #86efac; }
.hr-person-chip.chip-out { background: #fef2f2; border-color: #fca5a5; }
.chip-name   { font-weight: 700; font-size: 0.9rem; }
.chip-status { font-size: 0.78rem; font-weight: 600; }
.chip-time   { font-size: 0.76rem; color: var(--muted); }
.hr-person-chip.chip-in  .chip-status { color: #166534; }
.hr-person-chip.chip-out .chip-status { color: #991b1b; }

.hr-form-group { margin-bottom: 14px; }
.hr-label { display: block; font-size: 0.82rem; color: var(--muted); font-weight: 600; margin-bottom: 6px; }
.hr-select {
  width: 100%; max-width: 380px;
  padding: 11px 14px;
  border: 1.5px solid var(--border);
  border-radius: 10px;
  font-size: 0.95rem;
  font-family: inherit;
  background: var(--bg);
  transition: border-color .15s;
}
.hr-select:focus { outline: none; border-color: var(--primary); background: #fff; }
.hr-textarea {
  width: 100%; max-width: 500px;
  padding: 11px 14px;
  border: 1.5px solid var(--border);
  border-radius: 10px;
  font-size: 0.95rem;
  font-family: inherit;
  background: var(--bg);
  resize: vertical;
}
.hr-textarea:focus { outline: none; border-color: var(--primary); background: #fff; }
.hr-btn-row { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 8px; }
.hr-btn {
  padding: 12px 26px;
  border: 1.5px solid var(--border);
  border-radius: 10px;
  font-size: 0.92rem;
  font-family: inherit;
  cursor: pointer;
  font-weight: 700;
  transition: filter .15s, box-shadow .15s;
}
.hr-btn-in     { background: #f0fdf4; border-color: #86efac; color: #166534; }
.hr-btn-out    { background: #fef2f2; border-color: #fca5a5; color: #991b1b; }
.hr-btn-cargo  { background: var(--amber-lit); border-color: #fcd34d; color: #92400e; }
.hr-btn-report { background: var(--primary); border-color: var(--primary); color: #fff; }
.hr-btn-deposit { background: #f0fdf4; border-color: #86efac; color: #166534; }
.hr-btn-expense { background: #fff7ed; border-color: #fdba74; color: #c2410c; }
.hr-btn:hover { filter: brightness(.96); box-shadow: var(--shadow); }

.hr-section-title { font-size: 0.95rem; font-weight: 700; margin: 0 0 12px; }

.hr-cargo-box {
  margin-top: 20px;
  padding: 18px 20px;
  border: 1.5px solid #fcd34d;
  border-radius: 12px;
  background: #fffbeb;
}
.hr-cargo-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.hr-number-input {
  padding: 11px 14px;
  border: 1.5px solid var(--border);
  border-radius: 10px;
  font-size: 1rem;
  font-family: inherit;
  width: 140px;
  text-align: center;
  background: var(--panel);
}
.hr-number-input:focus { outline: none; border-color: var(--primary); }

.hr-report-box {
  margin-top: 24px;
  padding: 20px 22px;
  border: 1.5px solid var(--border);
  border-radius: 12px;
  background: var(--bg);
}
.hr-report-row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.hr-select-sm {
  padding: 10px 12px;
  border: 1.5px solid var(--border);
  border-radius: 9px;
  font-size: 0.9rem;
  font-family: inherit;
  background: var(--panel);
}
.hr-select-sm:focus { outline: none; border-color: var(--primary); }

.hr-fin-group {
  margin-bottom: 20px;
  padding: 18px 20px;
  border: 1.5px solid var(--border);
  border-radius: 12px;
  background: var(--panel);
}
.hr-fin-title { font-size: 0.95rem; font-weight: 700; margin: 0 0 12px; }
.hr-fin-row { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 6px; }
.hr-fin-field { display: flex; flex-direction: column; gap: 5px; flex: 1 1 130px; }
.hr-money-input, .hr-text-input {
  padding: 10px 12px;
  border: 1.5px solid var(--border);
  border-radius: 9px;
  font-size: 0.92rem;
  font-family: inherit;
  background: var(--bg);
  transition: border-color .15s;
}
.hr-money-input:focus, .hr-text-input:focus {
  outline: none;
  border-color: var(--primary);
  background: #fff;
}

/* ================== Finance Management (مدیریت مالی) ================== */
.fin-table-wrap { overflow-x: auto; }
.fin-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.fin-table thead tr { background: var(--bg); border-bottom: 2px solid var(--border); }
.fin-table tbody tr { border-bottom: 1px solid var(--border-soft); transition: background .12s; }
.fin-table tbody tr:hover { background: #f8faff; }
.fin-table td { padding: 10px 10px 10px 14px; }
.fin-table .num { font-family: inherit; font-weight: 700; }

.fin-empty {
  text-align: center;
  padding: 28px 12px;
  color: var(--muted);
  font-size: 0.88rem;
}

.fin-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.74rem;
  font-weight: 700;
  border: 1.5px solid;
  white-space: nowrap;
}
.fin-badge-success { background: var(--green-lit); border-color: #86efac; color: #166534; }
.fin-badge-warning { background: var(--amber-lit); border-color: #fcd34d; color: #92400e; }
.fin-badge-danger  { background: var(--red-lit);   border-color: #fca5a5; color: #991b1b; }
.fin-badge-muted   { background: #f8fafc; border-color: var(--border); color: var(--muted); }
.fin-badge-primary { background: var(--primary-lit); border-color: #cbd5e1; color: var(--primary); }

.fin-section-title { font-size: 0.95rem; font-weight: 700; margin: 0 0 12px; }
.fin-collapsible > summary.fin-section-title {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 6px;
  user-select: none;
}
.fin-collapsible > summary.fin-section-title::-webkit-details-marker { display: none; }
.fin-collapsible > summary.fin-section-title::before {
  content: '▸';
  font-size: 0.8rem;
  color: var(--muted);
  transition: transform .15s;
}
.fin-collapsible[open] > summary.fin-section-title::before { transform: rotate(90deg); }
.fin-collapsible[open] > summary.fin-section-title { margin-bottom: 12px; }
.fin-form-group { margin-bottom: 14px; }
.fin-form-row { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 6px; }
.fin-form-field { display: flex; flex-direction: column; gap: 5px; flex: 1 1 150px; }
.fin-form-field.grow-2 { flex: 2 1 220px; }
.fin-form-field.grow-3 { flex: 3 1 260px; }

.fin-items-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; margin-bottom: 10px; }
.fin-items-table th { padding: 6px 8px; text-align: right; font-size: 0.76rem; color: var(--muted); font-weight: 600; }
.fin-items-table td { padding: 4px 6px; }
.fin-items-table input {
  width: 100%;
  box-sizing: border-box;
  padding: 8px 10px;
  border: 1.5px solid var(--border);
  border-radius: 8px;
  font-size: 0.85rem;
  font-family: inherit;
  background: var(--bg);
}
.fin-items-table input:focus { outline: none; border-color: var(--primary); background: #fff; }
.fin-items-table .line-total { font-weight: 700; white-space: nowrap; padding: 0 6px; min-width: 90px; text-align: left; }

.fin-row-btn {
  border: 1.5px solid var(--border);
  background: var(--panel);
  border-radius: 8px;
  width: 32px;
  height: 32px;
  font-size: 1rem;
  cursor: pointer;
  color: var(--muted);
  transition: filter .15s;
}
.fin-row-btn:hover { filter: brightness(.95); }
.fin-row-add  { border-color: #86efac; background: #f0fdf4; color: #166534; }
.fin-row-del  { border-color: #fca5a5; background: #fef2f2; color: #991b1b; }

.fin-total-box {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px;
  border: 1.5px dashed var(--border);
  border-radius: 12px;
  background: var(--bg);
  margin-bottom: 14px;
  font-weight: 700;
}
.fin-total-box .amount { font-size: 1.15rem; color: var(--primary); }

.fin-card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; margin-bottom: 20px; }
.fin-card {
  border: 1.5px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
  background: var(--panel);
  transition: box-shadow .15s, border-color .15s;
}
.fin-card:hover { box-shadow: var(--shadow-md); border-color: var(--primary); }
.fin-card a { color: inherit; text-decoration: none; display: block; }
.fin-card-name { font-weight: 700; font-size: 0.95rem; margin-bottom: 6px; }
.fin-card-balance { font-size: 1.05rem; font-weight: 800; }
.fin-card-balance.positive { color: #166534; }
.fin-card-balance.negative { color: #991b1b; }
.fin-card-balance.zero { color: var(--muted); }

.fin-cal-nav { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.fin-cal-label { font-weight: 800; font-size: 1rem; }
.fin-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
.fin-cal-head {
  text-align: center;
  font-weight: 700;
  font-size: 0.8rem;
  color: var(--muted);
  padding: 4px 0;
}
.fin-cal-cell {
  min-height: 64px;
  border: 1px solid var(--border-soft);
  border-radius: 8px;
  padding: 4px;
  background: var(--bg);
}
.fin-cal-cell.empty { background: transparent; border-color: transparent; }
.fin-cal-cell.today { border-color: var(--primary); box-shadow: 0 0 0 2px rgba(71,85,105,.12); }
.fin-cal-daynum { font-size: 0.78rem; font-weight: 700; margin-bottom: 4px; }
.fin-cal-chip {
  font-size: 0.66rem;
  border-radius: 5px;
  padding: 2px 4px;
  margin-bottom: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.fin-cal-chip-issued { background: var(--amber-lit); color: #92400e; }
.fin-cal-chip-received { background: var(--green-lit); color: #166534; }
.fin-cal-chip-digikala { background: var(--green-lit); color: #166534; font-weight: 600; }

@media (max-width: 760px) {
  .fin-cal-grid { grid-template-columns: repeat(7, minmax(34px, 1fr)); gap: 2px; }
  .fin-cal-cell { min-height: 44px; font-size: 0.7rem; padding: 2px; }
  .fin-cal-chip { font-size: 0.6rem; }
}

.fin-link-btn {
  display: inline-block;
  padding: 9px 16px;
  border-radius: 9px;
  border: 1.5px solid var(--border);
  background: var(--panel);
  color: var(--text);
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  transition: filter .15s;
}
.fin-link-btn:hover { filter: brightness(.96); box-shadow: var(--shadow); text-decoration: none; }
.fin-link-btn.back { border-color: var(--border); color: var(--muted); }

.fin-trend {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  height: 140px;
  padding: 10px 4px 0;
  overflow-x: auto;
  border-bottom: 1.5px solid var(--border);
}
.fin-trend-bar {
  flex: 1 0 6px;
  min-width: 6px;
  min-height: 2px;
  background: var(--primary);
  border-radius: 3px 3px 0 0;
  transition: filter .15s;
  cursor: pointer;
}
.fin-trend-bar:hover { filter: brightness(1.3); background: var(--green); }

.fin-channel-row { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.fin-channel-label { width: 80px; font-size: 0.82rem; font-weight: 600; flex-shrink: 0; }
.fin-channel-track { flex: 1; background: var(--bg); border-radius: 6px; height: 18px; overflow: hidden; }
.fin-channel-fill { height: 100%; background: var(--primary); border-radius: 6px; transition: width .3s; }
.fin-channel-value { width: 120px; text-align: left; font-size: 0.8rem; font-weight: 700; flex-shrink: 0; }

/* Shared Table & Form Controls (price bot, inventory) */
.th {
  padding: 10px 10px 10px 14px;
  text-align: right;
  font-weight: 600;
  font-size: 0.8rem;
  color: var(--muted);
  white-space: nowrap;
}
.pb-row { border-bottom: 1px solid var(--border-soft); transition: background .12s; }
.pb-row:hover { background: #f8faff; }
.pb-row.expanded { background: #eef2ff; }
.pb-settings-row td { transition: none; }
.pb-toggle {
  padding: 5px 11px;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  border: 1.5px solid;
  font-family: inherit;
  transition: filter .15s;
  white-space: nowrap;
}
.pb-toggle.is-on  { border-color: #86efac; background: #f0fdf4; color: #166534; }
.pb-toggle.is-off { border-color: #e2e8f0; background: var(--bg); color: var(--muted); }
.pb-toggle:hover  { filter: brightness(.94); }
.set-label {
  font-size: 0.78rem;
  color: var(--muted);
  font-weight: 600;
  display: block;
}
.set-input {
  display: block;
  width: 100%;
  margin-top: 4px;
  padding: 8px 10px;
  border: 1.5px solid var(--border);
  border-radius: 8px;
  font-family: inherit;
  font-size: 0.87rem;
  background: var(--panel);
}
.set-input:focus { outline: none; border-color: var(--primary); }
.pf-btn {
  padding: 6px 12px;
  border: 1.5px solid var(--border);
  border-radius: 7px;
  background: var(--bg);
  color: var(--muted);
  font-size: 0.79rem;
  font-family: inherit;
  cursor: pointer;
  font-weight: 600;
  transition: all .13s;
  white-space: nowrap;
}
.pf-btn.active { background: var(--primary); border-color: var(--primary); color: #fff; }
.pf-btn:not(.active):hover { border-color: var(--primary); color: var(--primary); }

/* Misc */
.btn-cancel {
  padding: 9px 18px;
  border: 1.5px solid var(--border);
  border-radius: 9px;
  background: var(--bg);
  color: var(--muted);
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: filter .15s;
}
.btn-cancel:hover { filter: brightness(.96); }

/* Mobile */
@media (max-width: 900px) {
  .dashboard-grid { grid-template-columns: 1fr; }
  .sidebar {
    position: fixed;
    right: 0;
    top: 0;
    height: 100vh;
    transform: translateX(100%);
    transition: transform .25s ease;
    box-shadow: -8px 0 24px rgba(0,0,0,.25);
  }
  .sidebar-toggle-input:checked ~ .app-shell .sidebar {
    transform: translateX(0);
  }
  .sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(15,23,42,.45);
    z-index: 150;
  }
  .sidebar-toggle-input:checked ~ .app-shell .sidebar-overlay {
    display: block;
  }
  .topbar { display: block; }
  .sidebar-burger { display: inline-flex; align-items: center; justify-content: center; }
}

@media (max-width: 640px) {
  .container { padding: 16px 14px 60px; }
  .panel { padding: 16px 16px; border-radius: 12px; }
  .page-hero { padding: 24px 16px; }
  .page-title { font-size: 1.15rem; }
  .control-actions .btn { flex: 1 1 100%; }
  .info-list .k { min-width: 95px; font-size: 0.82rem; }
  .vm-card { flex-direction: column; }
  .vm-edit input { width: 90px; }
  .vm-msg { margin-inline-start: 0; }
  .summary-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .summary-chip { padding: 14px 8px; }
  .summary-chip .num { font-size: 1.15rem; }
  .hr-tabs { width: 100%; }
  .hr-tab { padding: 9px 16px; font-size: 0.85rem; flex: 1; text-align: center; }
  .hr-status-row { flex-direction: column; }
  .hr-person-chip { flex-direction: row; justify-content: space-between; }
  .hr-report-row { flex-direction: column; }
  .hr-select, .hr-select-sm { max-width: 100%; width: 100%; }
  .login-card { padding: 28px 22px; }
  .announcement-box { font-size: 1rem; }
  .fin-card-grid { grid-template-columns: 1fr; }
  .fin-total-box { flex-direction: column; align-items: flex-start; gap: 6px; }
}

/* کارتِ جمع‌شونده (ثبت چک) */
.fin-collapse-card > summary.fin-collapse-head {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text);
}
.fin-collapse-card > summary.fin-collapse-head::-webkit-details-marker { display: none; }
.fin-collapse-card[open] > summary .fin-collapse-arrow { transform: rotate(180deg); }
.fin-collapse-arrow { transition: transform .2s; color: var(--muted); font-size: 0.9rem; }
.fin-collapse-body { margin-top: 16px; }

/* ===== انتخابگر تاریخ شمسی ===== */
.jalali-date-input {
  cursor: pointer;
  background: var(--bg);
}
.jalali-dp-popup {
  display: none;
  position: absolute;
  z-index: 1000;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(15,23,42,.15);
  padding: 10px;
  width: 256px;
  font-size: 0.85rem;
}
.jalali-dp-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  font-weight: 600;
}
.jalali-dp-nav {
  border: none;
  background: var(--bg);
  color: var(--text);
  border-radius: 8px;
  width: 28px;
  height: 28px;
  font-size: 1rem;
  cursor: pointer;
}
.jalali-dp-nav:hover { background: var(--primary-lit); color: var(--primary); }
.jalali-dp-weekdays, .jalali-dp-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  text-align: center;
}
.jalali-dp-weekdays span {
  color: var(--muted);
  font-size: 0.75rem;
  padding: 4px 0;
}
.jalali-dp-day {
  border: none;
  background: transparent;
  color: var(--text);
  border-radius: 8px;
  padding: 6px 0;
  font-size: 0.8rem;
  font-family: inherit;
  cursor: pointer;
}
.jalali-dp-day:hover { background: var(--primary-lit); }
.jalali-dp-day.today { font-weight: 700; color: var(--primary); }
.jalali-dp-day.holiday { color: #dc2626; font-weight: 600; }
.jalali-dp-day.selected { background: var(--primary); color: #fff; }
.jalali-dp-footer {
  display: flex;
  justify-content: space-between;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--border-soft);
}
.jalali-dp-footer button {
  border: none;
  background: var(--bg);
  color: var(--primary);
  border-radius: 8px;
  padding: 6px 12px;
  font-size: 0.78rem;
  font-family: inherit;
  cursor: pointer;
}
.jalali-dp-footer button:hover { background: var(--primary-lit); }

/* قابلیتِ خاموشِ پنل — لینک منو خاکستری/قفل (فاز ۱ گیت واقعی) */
.nav-locked { opacity: .5; }
.nav-locked:hover { opacity: .62; }

.fin-cal-cell.clickable { cursor: pointer; transition: background 0.12s, box-shadow 0.12s; }
.fin-cal-cell.clickable:hover { background: var(--bg, #f3f4f6); box-shadow: inset 0 0 0 2px var(--accent, #2563eb); }

/* =================================================================
   Manual light/dark theme
   ================================================================= */

:root[data-theme="dark"] {
  color-scheme: dark;

  --bg: #0d1117;
  --panel: #0d1117;
  --text: rgba(148,163,184,.08);
  --muted: #232529;
  --border: #161b26;
  --border-soft: #0d1117;
  --primary: rgba(201,164,92,.16);
  --primary-h: rgba(201,164,92,.16);
  --primary-lit: rgba(204,120,92,.16);
  --green: rgba(111,174,134,.15);
  --green-lit:   rgba(126,183,127,.16);
  --amber: rgba(201,164,92,.15);
  --amber-lit:   rgba(212,168,83,.16);
  --red: rgba(207,115,115,.15);
  --red-lit:     rgba(217,119,120,.16);
  --gray: #232529;
  --shadow:      0 1px 2px rgba(0,0,0,.3);
  --shadow-md:   0 4px 12px rgba(0,0,0,.4);
  --sidebar-bg: #0d1117;
  --sidebar-border: #0d1117;

  /* Aliases used by individual templates. */
  --card:          var(--panel);
  --shadow-sm:     var(--shadow);
  --b2:            #2a2926;
  --t2:            #b8b6b0;
  --sf:            var(--panel);
  --mu:            var(--muted);
  --bo:            var(--border);
  --bl: #0d1117;
  --accent: rgba(201,164,92,.16);
  --text-muted:    var(--muted);
  --border-default:var(--border);
  --border-subtle: var(--border-soft);
  --bg-secondary: #0d1117;

  /* Basalam dashboard aliases and its formerly undefined variables. */
  --p: rgba(201,164,92,.16);
  --ph: rgba(201,164,92,.16);
  --a: rgba(201,164,92,.16);
  --tx:   var(--text);
  --ok: rgba(111,174,134,.15);
  --wn: rgba(201,164,92,.15);
  --er: rgba(207,115,115,.15);
  --inf: #232529;
  --v: rgba(148,163,184,.15);
  --mut:  var(--muted);
  --ink:  var(--text);
  --ink2: var(--text);
  --soft: #0d1117;
  --o: rgba(201,164,92,.16);
  --c: rgba(148,163,184,.15);
  --line: var(--border);
  --vi: rgba(148,163,184,.15);
  --gr: rgba(111,174,134,.15);
}


:root[data-theme="dark"] body {
  background-color: var(--bg);
  background-image: none;
}

/* Theme toggle */
.theme-toggle {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 500;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 38px;
  padding: 7px 12px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--panel);
  color: var(--text);
  box-shadow: var(--shadow-md);
  font: 600 .78rem/1.2 "Vazirmatn", "Segoe UI", Tahoma, sans-serif;
  cursor: pointer;
}
.theme-toggle:hover {
  border-color: var(--primary);
  background: var(--primary-lit);
}
.theme-toggle:focus-visible {
  outline: 3px solid rgba(204,120,92,.4);
  outline-offset: 2px;
}
.theme-toggle-icon { font-size: 1rem; line-height: 1; }

@media (max-width: 640px) {
  .theme-toggle {
    top: 9px;
    left: 10px;
    min-width: 38px;
    width: 38px;
    height: 38px;
    padding: 0;
  }
  .theme-toggle-label { display: none; }
}
@media print {
  .theme-toggle { display: none !important; }
}

/* Global hardcoded light surfaces */
:root[data-theme="dark"] .login-card input:focus,
:root[data-theme="dark"] .sb-form input:focus,
:root[data-theme="dark"] .sb-form textarea:focus,
:root[data-theme="dark"] .vm-edit input:focus,
:root[data-theme="dark"] .hr-select:focus,
:root[data-theme="dark"] .hr-textarea:focus,
:root[data-theme="dark"] .hr-money-input:focus,
:root[data-theme="dark"] .hr-text-input:focus,
:root[data-theme="dark"] .fin-items-table input:focus {
  background: var(--panel);
  color: var(--text);
}

:root[data-theme="dark"] .badge-muted,
:root[data-theme="dark"] .badge.muted,
:root[data-theme="dark"] .summary-chip.badge-muted,
:root[data-theme="dark"] .fin-badge-muted {
  background: #161b26;
}

:root[data-theme="dark"] .order-card:hover,
:root[data-theme="dark"] .fin-table tbody tr:hover,
:root[data-theme="dark"] .pb-row:hover,
:root[data-theme="dark"] .fin-cal-cell.clickable:hover {
  background: rgba(148,163,184,.15);
}
:root[data-theme="dark"] .pb-row.expanded {
  background: rgba(148,163,184,.15);
}

:root[data-theme="dark"] .btn-on,
:root[data-theme="dark"] .btn-start,
:root[data-theme="dark"] .vm-toggle.is-on,
:root[data-theme="dark"] .pb-toggle.is-on,
:root[data-theme="dark"] .hr-person-chip.chip-in,
:root[data-theme="dark"] .hr-btn-in,
:root[data-theme="dark"] .hr-btn-deposit,
:root[data-theme="dark"] .fin-row-add {
  background: var(--green-lit);
  border-color: #8e8f8e;
  color: #8e8f8e;
}

:root[data-theme="dark"] .btn-off,
:root[data-theme="dark"] .vm-toggle.is-off,
:root[data-theme="dark"] .hr-person-chip.chip-out,
:root[data-theme="dark"] .hr-btn-out,
:root[data-theme="dark"] .fin-row-del {
  background: var(--red-lit);
  border-color: #a2a0a0;
  color: #a2a0a0;
}

:root[data-theme="dark"] .btn-hours,
:root[data-theme="dark"] .hr-btn-cargo,
:root[data-theme="dark"] .hr-cargo-box {
  background: var(--amber-lit);
  border-color: #949391;
  color: #949391;
}

:root[data-theme="dark"] .hr-btn-expense {
  background: rgba(207,115,115,.15);
  border-color: #b0aeac;
  color: #949391;
}

:root[data-theme="dark"] .badge-warning,
:root[data-theme="dark"] .summary-chip.badge-warning,
:root[data-theme="dark"] .announcement-box,
:root[data-theme="dark"] .fin-badge-warning,
:root[data-theme="dark"] .fin-cal-chip-issued,
:root[data-theme="dark"] .attendance-announcement-message {
  color: #949391 !important;
  border-color: #949391 !important;
}

:root[data-theme="dark"] .badge-success,
:root[data-theme="dark"] .badge.success,
:root[data-theme="dark"] .summary-chip.badge-success,
:root[data-theme="dark"] .status-msg.success,
:root[data-theme="dark"] .fin-badge-success,
:root[data-theme="dark"] .fin-cal-chip-received,
:root[data-theme="dark"] .fin-cal-chip-digikala {
  color: #8e8f8e;
  border-color: #8e8f8e;
}

:root[data-theme="dark"] .alert-banner,
:root[data-theme="dark"] .status-msg.error,
:root[data-theme="dark"] .fin-badge-danger {
  color: #a2a0a0;
  border-color: #a2a0a0;
}
:root[data-theme="dark"] .alert-banner a { color: #a2a0a0; }
:root[data-theme="dark"] .alert-banner .updated-at { color: #949391; }

:root[data-theme="dark"] .fin-card-balance.positive { color: #8e8f8e; }
:root[data-theme="dark"] .fin-card-balance.negative { color: #a2a0a0; }
:root[data-theme="dark"] .jalali-dp-day.holiday { color: #a2a0a0; }

@keyframes announcement-blink-dark {
  0%, 100% { background: rgba(148,147,145,.15); border-color: #949391; }
  50% { background: rgba(148,147,145,.15); border-color: #949391; }
}
@keyframes announcement-title-blink-dark {
  0%, 100% { opacity: 1; color: var(--text); }
  50% { opacity: 1; color: #a2a0a0; }
}
:root[data-theme="dark"] .announcement-box.announcement-blink {
  animation-name: announcement-blink-dark;
}
:root[data-theme="dark"] .announcement-blink-title {
  animation-name: announcement-title-blink-dark;
}

/* Basalam dashboard and Basalam orders */
:root[data-theme="dark"] .bx-wrap {
  background: var(--bg);
  color: var(--text);
}
:root[data-theme="dark"] .bx-card,
:root[data-theme="dark"] .bx-dlg,
:root[data-theme="dark"] .bx-btn,
:root[data-theme="dark"] .bx-inp,
:root[data-theme="dark"] .bx-inp3,
:root[data-theme="dark"] .bx-chat,
:root[data-theme="dark"] .bx-chat-item,
:root[data-theme="dark"] .bx-sum .it,
:root[data-theme="dark"] .bs-card,
:root[data-theme="dark"] .bs-btn {
  background: var(--panel);
  color: var(--text);
  border-color: var(--border);
}
:root[data-theme="dark"] .bx-chat-bub.theirs,
:root[data-theme="dark"] .bx-prev .pimg {
  background: var(--panel);
  color: var(--text);
  border-color: var(--border);
}
:root[data-theme="dark"] .bx-chat-item {
  border-bottom-color: var(--border-soft);
}
:root[data-theme="dark"] .bx-chat-item:hover,
:root[data-theme="dark"] .bx-tbl tr:hover td {
  background: rgba(148,163,184,.15);
}
:root[data-theme="dark"] .bx-chat-item.selected {
  background: rgba(148,163,184,.15);
}
:root[data-theme="dark"] .bx-bulkbar {
  background: linear-gradient(135deg,rgba(148,147,145,.15),#161b26);
  border-color: #b0aeac;
}
:root[data-theme="dark"] .bx-msg.ok,
:root[data-theme="dark"] .bx-badge.ok,
:root[data-theme="dark"] .bx-badge.ok2,
:root[data-theme="dark"] .bx-badge.green,
:root[data-theme="dark"] .bx-tag.ok,
:root[data-theme="dark"] .bx-alert.ok,
:root[data-theme="dark"] .bs-msg.ok {
  background: var(--green-lit);
  color: #8e8f8e;
  border-color: #8e8f8e;
}
:root[data-theme="dark"] .bx-msg.er,
:root[data-theme="dark"] .bx-badge.er,
:root[data-theme="dark"] .bx-badge.red,
:root[data-theme="dark"] .bx-tag.er,
:root[data-theme="dark"] .bx-alert.er,
:root[data-theme="dark"] .bs-msg.er {
  background: var(--red-lit);
  color: #a2a0a0;
  border-color: #a2a0a0;
}
:root[data-theme="dark"] .bx-msg.info,
:root[data-theme="dark"] .bx-badge.inf,
:root[data-theme="dark"] .bx-badge.blue,
:root[data-theme="dark"] .bx-alert.inf {
  background: rgba(148,163,184,.15);
  color: #9fa2a8;
  border-color: #9fa2a8;
}
:root[data-theme="dark"] .bx-soon,
:root[data-theme="dark"] .bx-warn,
:root[data-theme="dark"] .bx-alert,
:root[data-theme="dark"] .bx-badge.wn,
:root[data-theme="dark"] .bx-badge.wn2,
:root[data-theme="dark"] .bx-badge.orange {
  background: var(--amber-lit);
  color: #949391;
  border-color: #949391;
}
:root[data-theme="dark"] .bx-ai,
:root[data-theme="dark"] .bx-badge.purple {
  background: rgba(148,163,184,.15);
  color: #9fa2a8;
  border-color: #9fa2a8;
}
:root[data-theme="dark"] .bx-ai:hover {
  background: rgba(148,163,184,.15);
  border-color: #9fa2a8;
}
:root[data-theme="dark"] .bx-badge.gray,
:root[data-theme="dark"] .bx-badge.vi,
:root[data-theme="dark"] .bx-badge.gr,
:root[data-theme="dark"] .bx-tag.vi {
  background: #161b26;
  color: #f3f6fa;
}
:root[data-theme="dark"] .bx-badge.pink {
  background: rgba(148,163,184,.15);
  color: #9fa2a8;
}
:root[data-theme="dark"] .bx-badge.teal {
  background: rgba(148,163,184,.15);
  color: #9fa2a8;
}

/* Consignment manager */
:root[data-theme="dark"] .cm-card {
  background: var(--panel);
  color: var(--text);
}

/* Consignment manager */
:root[data-theme="dark"] .cm-card,
:root[data-theme="dark"] .cm-req-card,
:root[data-theme="dark"] .cm-detail-result,
:root[data-theme="dark"] .cm-row,
:root[data-theme="dark"] .cm-dlg,
:root[data-theme="dark"] .cm-inp,
:root[data-theme="dark"] .cm-row-btn,
:root[data-theme="dark"] .cm-fld input,
:root[data-theme="dark"] .cm-fld select {
  background: var(--panel);
  color: var(--text);
  border-color: var(--border);
}
:root[data-theme="dark"] .cm-req-detail,
:root[data-theme="dark"] .cm-excel-panel,
:root[data-theme="dark"] .cm-hol-expired {
  background: rgba(148,163,184,.15);
  color: var(--text);
  border-color: var(--border);
}
:root[data-theme="dark"] .cm-st-pending,
:root[data-theme="dark"] .cm-st-probing,
:root[data-theme="dark"] .cm-st-canceled,
:root[data-theme="dark"] .cm-badge-pending,
:root[data-theme="dark"] .cm-badge-probing,
:root[data-theme="dark"] .cm-badge-canceled,
:root[data-theme="dark"] .cm-dkpc-chip,
:root[data-theme="dark"] .cm-dkpc-badge,
:root[data-theme="dark"] .cm-tag,
:root[data-theme="dark"] .cm-btn.gh,
:root[data-theme="dark"] .cm-prog {
  background: #161b26;
  color: #f3f6fa;
  border-color: var(--border);
}
:root[data-theme="dark"] .cm-req-done,
:root[data-theme="dark"] .cm-st-done,
:root[data-theme="dark"] .cm-badge-done,
:root[data-theme="dark"] .cm-hol-done,
:root[data-theme="dark"] .cm-tag.ok,
:root[data-theme="dark"] .cm-toast.ok {
  background: var(--green-lit);
  color: #8e8f8e;
  border-color: #8e8f8e;
}
:root[data-theme="dark"] .cm-req-failed,
:root[data-theme="dark"] .cm-st-failed,
:root[data-theme="dark"] .cm-badge-failed,
:root[data-theme="dark"] .cm-tag.er,
:root[data-theme="dark"] .cm-toast.er {
  background: var(--red-lit);
  color: #a2a0a0;
  border-color: #a2a0a0;
}
:root[data-theme="dark"] .cm-st-retrying,
:root[data-theme="dark"] .cm-badge-retrying,
:root[data-theme="dark"] .cm-badge-info,
:root[data-theme="dark"] .cm-hol-pending,
:root[data-theme="dark"] .cm-date-badge,
:root[data-theme="dark"] .cm-tag.vi,
:root[data-theme="dark"] .cm-badge-vi,
:root[data-theme="dark"] .cm-excel-toggle {
  background: rgba(148,163,184,.15);
  color: #9fa2a8;
  border-color: #9fa2a8;
}
:root[data-theme="dark"] .cm-warn-box,
:root[data-theme="dark"] .cm-badge-warn,
:root[data-theme="dark"] .cm-bulkbar {
  background: var(--amber-lit);
  color: #949391;
  border-color: #949391;
}
:root[data-theme="dark"] .cm-detail-title,
:root[data-theme="dark"] .cm-hd2 {
  color: var(--text);
}

/* Daily shipments */
:root[data-theme="dark"] .type-order,
:root[data-theme="dark"] .type-consignment {
  background: rgba(148,163,184,.15);
  color: #9fa2a8;
}
:root[data-theme="dark"] .order-card.consignment {
  background: #0d1117;
}
:root[data-theme="dark"] .ds-hour-box {
  background: rgba(148,163,184,.15);
}
:root[data-theme="dark"] .ds-hour-form input {
  background: var(--panel);
  color: var(--text);
  border-color: var(--border);
}
:root[data-theme="dark"] .ds-hour-cur,
:root[data-theme="dark"] .ds-hour-form label {
  color: var(--muted);
}
:root[data-theme="dark"] .st-received,
:root[data-theme="dark"] .ds-hour-msg.ok {
  color: #8e8f8e;
}
:root[data-theme="dark"] .st-partial { color: #949391; }
:root[data-theme="dark"] .ds-hour-msg.er {
  background: var(--red-lit);
  color: #a2a0a0;
}

/* HR reports */
:root[data-theme="dark"] .hr-session-manual {
  background: rgba(148,163,184,.15);
  color: #9fa2a8;
}
:root[data-theme="dark"] .hr-row-deposit,
:root[data-theme="dark"] .hr-calc-add {
  background: var(--green-lit);
  color: #8e8f8e;
}
:root[data-theme="dark"] .hr-row-expense,
:root[data-theme="dark"] .hr-calc-sub {
  background: var(--amber-lit);
  color: #949391;
}
:root[data-theme="dark"] .hr-row-bonus,
:root[data-theme="dark"] .hr-salary-section {
  background: rgba(148,163,184,.15);
  border-color: #9fa2a8;
}
:root[data-theme="dark"] .hr-time-in,
:root[data-theme="dark"] .deposit-color,
:root[data-theme="dark"] .net-positive {
  color: #8e8f8e;
}
:root[data-theme="dark"] .hr-time-out,
:root[data-theme="dark"] .net-negative {
  color: #a2a0a0;
}

/* Orders, operations and panel management */
@keyframes cardFlashDark {
  0% { background: rgba(201,164,92,.15); }
  100% { background: transparent; }
}
:root[data-theme="dark"] .order-card.just-updated {
  animation-name: cardFlashDark;
}
:root[data-theme="dark"] .op-excel-panel,
:root[data-theme="dark"] .op-amfix-panel,
:root[data-theme="dark"] .op-q-summary,
:root[data-theme="dark"] .op-suggested-pick,
:root[data-theme="dark"] .op-sugg-chip,
:root[data-theme="dark"] .op-sug-zone,
:root[data-theme="dark"] .op-badge.amfix,
:root[data-theme="dark"] .drj-subtab.active,
:root[data-theme="dark"] .drj-chip {
  background: rgba(148,163,184,.15);
  color: #9fa2a8;
  border-color: #9fa2a8;
}
:root[data-theme="dark"] .op-msg.ok,
:root[data-theme="dark"] .op-toast.ok,
:root[data-theme="dark"] .op-tag.ok,
:root[data-theme="dark"] .op-badge.money,
:root[data-theme="dark"] .drj-res-row.ok,
:root[data-theme="dark"] .drj-status.ok {
  background: var(--green-lit);
  color: #8e8f8e;
  border-color: #8e8f8e;
}
:root[data-theme="dark"] .op-msg.er,
:root[data-theme="dark"] .op-toast.er,
:root[data-theme="dark"] .op-tag.er,
:root[data-theme="dark"] .op-fail-box,
:root[data-theme="dark"] .op-danger-zone,
:root[data-theme="dark"] .drj-res-row.fail,
:root[data-theme="dark"] .drj-status.fail {
  background: var(--red-lit);
  color: #a2a0a0;
  border-color: #a2a0a0;
}
:root[data-theme="dark"] .op-danger-zone h4,
:root[data-theme="dark"] .op-danger-zone p {
  color: #a2a0a0;
}
:root[data-theme="dark"] .op-msg.warn,
:root[data-theme="dark"] .op-warn-box,
:root[data-theme="dark"] .op-badge.delivery,
:root[data-theme="dark"] .drj-status.wait {
  background: var(--amber-lit);
  color: #949391;
  border-color: #949391;
}

/* Price bot family */
:root[data-theme="dark"] .pb-row:hover td,
:root[data-theme="dark"] .pb-table .pb-row:hover td,
:root[data-theme="dark"] .rv-table tr:hover td {
  background: rgba(148,163,184,.15);
}
:root[data-theme="dark"] .pb-row.expanded td {
  background: rgba(148,163,184,.15);
}
:root[data-theme="dark"] .pb-preview,
:root[data-theme="dark"] .pb-cat-menu,
:root[data-theme="dark"] .pb-batch-bar,
:root[data-theme="dark"] .rv-detail {
  background: var(--panel);
  color: var(--text);
}
:root[data-theme="dark"] .pb-excel-panel,
:root[data-theme="dark"] .pb-q-summary,
:root[data-theme="dark"] .pb-sugg-box,
:root[data-theme="dark"] .pb-sugg-box2,
:root[data-theme="dark"] .pb-ref-chip,
:root[data-theme="dark"] .pb-cat-opt.active,
:root[data-theme="dark"] .pb-sugg-chip,
:root[data-theme="dark"] .pb-cat-chip,
:root[data-theme="dark"] .rv-st-open,
:root[data-theme="dark"] .rv-cat-opt.active {
  background: rgba(148,163,184,.15);
  color: #9fa2a8;
  border-color: #9fa2a8;
}
:root[data-theme="dark"] .pb-btn.full-cycle {
  background: rgba(148,163,184,.15);
  color: #9fa2a8;
  border-color: #9fa2a8;
}
:root[data-theme="dark"] .pb-btn.revoked,
:root[data-theme="dark"] .pb-pf-del,
:root[data-theme="dark"] .pb-status.off,
:root[data-theme="dark"] .pb-msg.er,
:root[data-theme="dark"] .pb-toast.er,
:root[data-theme="dark"] .pb-tag.er,
:root[data-theme="dark"] .pb-sug-er,
:root[data-theme="dark"] .pb-shgeft-ended,
:root[data-theme="dark"] .rv-st-error {
  background: var(--red-lit);
  color: #a2a0a0;
  border-color: #a2a0a0;
}
:root[data-theme="dark"] .pb-btn.add,
:root[data-theme="dark"] .pb-pf-add,
:root[data-theme="dark"] .pb-status.on,
:root[data-theme="dark"] .pb-msg.ok,
:root[data-theme="dark"] .pb-toast.ok,
:root[data-theme="dark"] .pb-tag.ok,
:root[data-theme="dark"] .pb-sug-ok,
:root[data-theme="dark"] .pb-ref-confirm,
:root[data-theme="dark"] .pb-shgeft-before,
:root[data-theme="dark"] .rv-ticket,
:root[data-theme="dark"] .rv-badge-ok {
  background: var(--green-lit);
  color: #8e8f8e;
  border-color: #8e8f8e;
}
:root[data-theme="dark"] .pb-btn.shgeft,
:root[data-theme="dark"] .pb-status.hold,
:root[data-theme="dark"] .pb-msg.warn,
:root[data-theme="dark"] .pb-tag.wn,
:root[data-theme="dark"] .pb-sug-warn,
:root[data-theme="dark"] .pb-shgeft-active,
:root[data-theme="dark"] .pb-btn-shgeft,
:root[data-theme="dark"] .rv-st-answered {
  background: var(--amber-lit);
  color: #949391;
  border-color: #949391;
}
:root[data-theme="dark"] .pb-tag.vi,
:root[data-theme="dark"] .pb-tag.purple {
  background: rgba(148,163,184,.15);
  color: #9fa2a8;
  border-color: #9fa2a8;
}
:root[data-theme="dark"] .pb-tag.teal {
  background: rgba(148,163,184,.15);
  color: #9fa2a8;
}
:root[data-theme="dark"] .pb-tag.orange {
  background: rgba(207,115,115,.15);
  color: #949391;
}
:root[data-theme="dark"] .pb-hl,
:root[data-theme="dark"] .pb-hl2 {
  background: rgba(201,164,92,.15);
  color: #949391;
}
:root[data-theme="dark"] .rv-st-closed {
  background: #161b26;
  color: #f3f6fa;
}
:root[data-theme="dark"] .rv-detail-title,
:root[data-theme="dark"] .rv-ticket-msg {
  color: var(--text);
}
:root[data-theme="dark"] .rv-cat-opt:hover,
:root[data-theme="dark"] .pb-cat-opt:hover,
:root[data-theme="dark"] .data-table tr:hover td {
  background: rgba(255,255,255,.05);
}

/* Variant management */
:root[data-theme="dark"] .vm-edit select,
:root[data-theme="dark"] .vm-cat-menu {
  background: var(--panel);
  color: var(--text);
}
:root[data-theme="dark"] .vm-ship-check:has(input:checked),
:root[data-theme="dark"] .vm-cat-opt.active,
:root[data-theme="dark"] .vm-excel-panel,
:root[data-theme="dark"] .vm-excel-toggle,
:root[data-theme="dark"] .vm-export-btn {
  background: rgba(148,163,184,.15);
  color: #9fa2a8;
  border-color: #9fa2a8;
}
:root[data-theme="dark"] .vm-cat-opt:hover {
  background: #161b26;
}
:root[data-theme="dark"] .vm-msg.ok,
:root[data-theme="dark"] .vm-toast.ok,
:root[data-theme="dark"] .vm-badge.ok {
  background: var(--green-lit);
  color: #8e8f8e;
}
:root[data-theme="dark"] .vm-msg.er,
:root[data-theme="dark"] .vm-toast.er,
:root[data-theme="dark"] .vm-badge.er {
  background: var(--red-lit);
  color: #a2a0a0;
}
:root[data-theme="dark"] .vm-badge.wn {
  background: var(--amber-lit);
  color: #949391;
}
:root[data-theme="dark"] .vm-badge.inf,
:root[data-theme="dark"] .vm-badge.vi,
:root[data-theme="dark"] .vm-cat-chip {
  background: rgba(148,163,184,.15);
  color: #9fa2a8;
}

/* Remaining page-specific hardcoded surfaces */
:root[data-theme="dark"] .qa-btn {
  background: var(--green-lit) !important;
  color: #8e8f8e !important;
  border-color: #8e8f8e !important;
}
:root[data-theme="dark"] .inv-toggle:hover {
  background: rgba(148,163,184,.15);
}
:root[data-theme="dark"] #pp-status {
  background: rgba(148,163,184,.15) !important;
}
:root[data-theme="dark"] .pp-modal > div {
  background: var(--panel) !important;
  color: var(--text);
}
:root[data-theme="dark"] #tracking {
  background: var(--panel);
  color: var(--text);
  border-color: var(--border) !important;
}
:root[data-theme="dark"] .attendance-announcement-card {
  background: var(--panel) !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}

/*
 * Normalize color-bearing inline styles and dynamically generated inline
 * markup. The #ssx application is excluded so its permanent dark theme is
 * never modified.
 */
:root[data-theme="dark"] body: not(#ssx):not(#ssx *):is(
  [style*="background: rgba(148,163,184,.08);"],
  [style$="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08);"],
  [style$="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08);"],
  [style$="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08)"]
) {
  background: var(--panel) !important;
  color: var(--text);
}

:root[data-theme="dark"] body: not(#ssx):not(#ssx *):is(
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08)"]
) {
  background: rgba(148,163,184,.15) !important;
}

:root[data-theme="dark"] body: not(#ssx):not(#ssx *):is(
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(111,174,134,.13)"],
  [style*="background: rgba(111,174,134,.13)"],
  [style*="background: rgba(148,163,184,.12)"]
) {
  background: var(--green-lit) !important;
}

:root[data-theme="dark"] body: not(#ssx):not(#ssx *):is(
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(207,115,115,.13)"]
) {
  background: var(--red-lit) !important;
}

:root[data-theme="dark"] body: not(#ssx):not(#ssx *):is(
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(201,164,92,.13)"],
  [style*="background: rgba(201,164,92,.13)"],
  [style*="background: rgba(201,164,92,.13)"]
) {
  background: var(--amber-lit) !important;
}

:root[data-theme="dark"] body: not(#ssx):not(#ssx *):is(
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.11)"],
  [style*="background: rgba(148,163,184,.11)"],
  [style*="background: rgba(148,163,184,.11)"],
  [style*="background: rgba(148,163,184,.08)"]
) {
  background: rgba(148,163,184,.15) !important;
}

:root[data-theme="dark"] body: not(#ssx):not(#ssx *):is(
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08)"],
  [style*="background: rgba(148,163,184,.08)"]
) {
  background: rgba(148,163,184,.15) !important;
}

:root[data-theme="dark"] body: not(#ssx):not(#ssx *):is(
  [style*="color: #8e8f8e"],
  [style*="color: #8e8f8e"],
  [style*="color: #8e8f8e"],
  [style*="color: #8e8f8e"]
) {
  color: #8e8f8e !important;
}

:root[data-theme="dark"] body: not(#ssx):not(#ssx *):is(
  [style*="color: #a2a0a0"],
  [style*="color: #a2a0a0"],
  [style*="color: #a2a0a0"],
  [style*="color: #a2a0a0"]
) {
  color: #a2a0a0 !important;
}

:root[data-theme="dark"] body: not(#ssx):not(#ssx *):is(
  [style*="color: #a2a0a0"],
  [style*="color: #949391"],
  [style*="color: #949391"],
  [style*="color: #a2a0a0"],
  [style*="color: #949391"]
) {
  color: #949391 !important;
}

:root[data-theme="dark"] body: not(#ssx):not(#ssx *):is(
  [style*="color: #9fa2a8"],
  [style*="color: #9fa2a8"],
  [style*="color: #9fa2a8"],
  [style*="color: #9fa2a8"],
  [style*="color: #9fa2a8"],
  [style*="color: #9fa2a8"]
) {
  color: #9fa2a8 !important;
}

:root[data-theme="dark"] body: not(#ssx):not(#ssx *):is(
  [style*="border: 1px solid rgba(148,163,184,.16)"],
  [style*="border: 1px solid rgba(148,163,184,.16)"],
  [style*="border: 1px solid rgba(148,163,184,.16)"],
  [style*="border: 1.5px solid rgba(148,163,184,.16)"]
) {
  border-color: var(--border) !important;
}

/* ================================================================
   Behi — چک و اقساط (بازطراحی حرفه‌ای ۱۴۰۵-۰۷-۱۵)
   ================================================================ */
.finx-hero {
  position: relative; overflow: hidden;
  display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap;
  background: linear-gradient(130deg, #0f172a 0%, #1e293b 45%, #3b4a5f 100%);
  color: #fff; border-radius: 18px; padding: 22px 24px; margin-bottom: 18px;
  box-shadow: 0 12px 32px rgba(15, 23, 42, .20);
}
.finx-hero::after {
  content: ""; position: absolute; inset-inline-end: -70px; bottom: -90px;
  width: 240px; height: 240px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,.14), transparent 70%);
}
.finx-hero-title { display: flex; align-items: center; gap: 10px; font-size: 1.28rem; font-weight: 800; letter-spacing: -.2px; }
.finx-hero-ico { font-size: 1.4rem; }
.finx-hero-sub { color: #cbd5e1; font-size: .82rem; margin-top: 5px; }
.finx-hero-actions { display: flex; gap: 8px; flex-wrap: wrap; position: relative; z-index: 1; }
.finx-hero-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 9px 16px; border-radius: 11px; cursor: pointer; font-family: inherit;
  font-size: .85rem; font-weight: 700; text-decoration: none;
  background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.3);
  transition: background .15s, transform .15s;
}
.finx-hero-btn:hover { background: rgba(255,255,255,.22); color: #fff; text-decoration: none; transform: translateY(-1px); }
.finx-hero-btn.solid { background: #fff; color: #0f172a; border-color: #fff; }
.finx-hero-btn.solid:hover { color: #0f172a; background: #f1f5f9; }

.finx-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(195px, 1fr)); gap: 12px; margin-bottom: 16px; }
.finx-kpi {
  position: relative; overflow: hidden; background: var(--panel);
  border: 1.5px solid var(--border); border-radius: 16px; padding: 15px 17px;
  box-shadow: var(--shadow); transition: transform .15s, box-shadow .15s;
}
.finx-kpi:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.finx-kpi::before { content: ""; position: absolute; top: 0; inset-inline-start: 0; width: 4px; height: 100%; background: var(--border); }
.finx-kpi.is-open::before { background: var(--amber); }
.finx-kpi.is-paid::before { background: var(--green); }
.finx-kpi.is-danger::before { background: var(--red); }
.finx-kpi.is-info::before { background: var(--primary); }
.finx-kpi-label { font-size: .77rem; color: var(--muted); font-weight: 700; }
.finx-kpi-value { font-size: 1.34rem; font-weight: 800; margin-top: 6px; letter-spacing: -.3px; }
.finx-kpi-value small { font-size: .7rem; font-weight: 600; color: var(--muted); }
.finx-kpi.is-open .finx-kpi-value { color: var(--amber); }
.finx-kpi.is-paid .finx-kpi-value { color: var(--green); }
.finx-kpi.is-danger .finx-kpi-value { color: var(--red); }
.finx-kpi.is-info .finx-kpi-value { color: var(--primary); }
.finx-kpi-foot { font-size: .72rem; color: var(--muted); margin-top: 3px; }

.finx-card { background: var(--panel); border: 1.5px solid var(--border); border-radius: 16px; padding: 16px 18px; margin-bottom: 16px; box-shadow: var(--shadow); }
.finx-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.finx-card-title { font-size: .98rem; font-weight: 800; margin: 0; }
.finx-card-summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; font-size: 1rem; font-weight: 800; }
.finx-card-summary::-webkit-details-marker { display: none; }
.finx-sum-arrow { transition: transform .2s; color: var(--muted); }
details[open] > .finx-card-summary .finx-sum-arrow { transform: rotate(180deg); }
details[open] > .finx-card-summary { margin-bottom: 14px; }
.finx-pill { background: var(--primary-lit); color: var(--primary); border: 1.5px solid #cbd5e1; border-radius: 999px; padding: 5px 13px; font-size: .76rem; font-weight: 700; }

.finx-mini-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.finx-mini { background: var(--bg); border: 1.5px dashed var(--border); border-radius: 13px; padding: 13px 15px; display: flex; flex-direction: column; gap: 6px; }
.finx-mini-lbl { font-size: .75rem; color: var(--muted); font-weight: 600; }
.finx-mini-val { font-size: 1.1rem; font-weight: 800; }
.finx-mini-val small { font-size: .68rem; font-weight: 600; color: var(--muted); }
.finx-mini-val.is-green, .finx-inst-rows b.is-green { color: var(--green); }
.finx-mini-val.is-amber { color: var(--amber); }
.finx-inst-rows b.is-danger { color: var(--red); }

.finx-form { display: block; }
.finx-form-row { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.finx-field { display: flex; flex-direction: column; gap: 6px; flex: 1 1 155px; min-width: 0; }
.finx-field.grow { flex: 2 1 240px; }
.finx-lbl { font-size: .79rem; color: var(--muted); font-weight: 700; }
.finx-input {
  width: 100%; padding: 10px 12px; border: 1.5px solid var(--border); border-radius: 11px;
  font-family: inherit; font-size: .88rem; background: var(--panel); color: var(--text);
  transition: border-color .15s, box-shadow .15s;
}
.finx-input:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(71,85,105,.10); }
.finx-file { padding: 8px 10px; background: var(--bg); }
.finx-hint { font-size: .73rem; color: var(--muted); min-height: 14px; }
.finx-money { font-weight: 700; letter-spacing: .3px; }
.finx-form-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-top: 6px; }
.finx-field.finx-actions { flex-direction: row; align-items: flex-end; gap: 8px; flex: 0 0 auto; }

.finx-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 10px 18px; border-radius: 11px; border: 1.5px solid var(--border);
  background: var(--panel); color: var(--text); font-family: inherit; font-size: .86rem;
  font-weight: 700; cursor: pointer; text-decoration: none; transition: filter .15s, box-shadow .15s;
}
.finx-btn:hover { filter: brightness(.97); box-shadow: var(--shadow); text-decoration: none; }
.finx-btn.primary { background: var(--primary); border-color: var(--primary); color: #fff; }
.finx-btn.primary:hover { background: var(--primary-h); }
.finx-btn.ghost { background: var(--bg); color: var(--muted); }
.finx-btn.danger { background: #fef2f2; border-color: #fca5a5; color: #991b1b; }
.finx-btn.sm { padding: 7px 12px; font-size: .78rem; border-radius: 9px; }

.finx-cal-nav { display: flex; align-items: center; gap: 10px; }
.finx-cal-label { font-weight: 800; font-size: .92rem; }
.finx-cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
.finx-cal-head { text-align: center; font-weight: 700; font-size: .78rem; color: var(--muted); padding: 4px 0; }
.finx-cal-cell {
  min-height: 74px; border: 1.5px solid var(--border-soft); border-radius: 11px;
  padding: 5px; background: var(--bg); transition: border-color .15s, box-shadow .15s;
}
.finx-cal-cell.empty { background: transparent; border-color: transparent; }
.finx-cal-cell.has { cursor: pointer; background: var(--panel); }
.finx-cal-cell.has:hover { border-color: var(--primary); box-shadow: var(--shadow); }
.finx-cal-cell.today { border-color: var(--primary); box-shadow: 0 0 0 2px rgba(71,85,105,.14); }
.finx-cal-daynum { font-size: .78rem; font-weight: 800; margin-bottom: 4px; color: var(--muted); }
.finx-cal-cell.today .finx-cal-daynum { color: var(--primary); }
.finx-cal-chip { font-size: .64rem; border-radius: 6px; padding: 2px 5px; margin-bottom: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.finx-cal-chip.issued { background: var(--amber-lit); color: #92400e; }
.finx-cal-chip.digi { background: var(--green-lit); color: #166534; }
.finx-cal-chip.over { background: var(--red-lit); color: #991b1b; }

.finx-filter-tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.finx-tab {
  padding: 7px 14px; border-radius: 999px; border: 1.5px solid var(--border); background: var(--bg);
  color: var(--muted); font-size: .79rem; font-weight: 700; text-decoration: none; transition: all .14s;
}
.finx-tab:hover { border-color: var(--primary); color: var(--primary); text-decoration: none; }
.finx-tab.active { background: var(--primary); border-color: var(--primary); color: #fff; }

.finx-table-wrap { overflow-x: auto; border-radius: 13px; border: 1.5px solid var(--border-soft); }
.finx-table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.finx-table thead tr { background: var(--bg); }
.finx-table th { padding: 11px 12px; text-align: right; font-size: .78rem; font-weight: 700; color: var(--muted); white-space: nowrap; border-bottom: 1.5px solid var(--border); }
.finx-table td { padding: 11px 12px; border-bottom: 1px solid var(--border-soft); vertical-align: middle; }
.finx-table tbody tr:last-child td { border-bottom: none; }
.finx-table tbody tr:hover { background: #f8fafc; }
.finx-table tr.row-over { background: #fff7f7; }
.finx-table .lft { text-align: left; }
.finx-table .ctr { text-align: center; }
.finx-cell-main { font-weight: 700; }
.finx-cell-sub { font-size: .73rem; color: var(--muted); margin-top: 2px; }
.finx-cell-link { font-size: .73rem; color: var(--primary); font-weight: 600; }
.finx-amount { font-weight: 800; white-space: nowrap; font-variant-numeric: tabular-nums; }
.finx-tag { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: .73rem; font-weight: 700; background: var(--primary-lit); color: var(--primary); border: 1.5px solid #cbd5e1; }
.finx-tag.bank { background: #eff6ff; color: #1d4ed8; border-color: #bfdbfe; }
.finx-tag.rent { background: #f5f3ff; color: #6d28d9; border-color: #ddd6fe; }
.finx-badge { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: .72rem; font-weight: 700; border: 1.5px solid var(--border); }
.finx-badge.ok { background: var(--green-lit); border-color: #86efac; color: #166534; }
.finx-badge.danger { background: var(--red-lit); border-color: #fca5a5; color: #991b1b; }
.finx-badge.muted { background: #f8fafc; color: var(--muted); }
.finx-row-actions { display: flex; gap: 6px; justify-content: center; align-items: center; flex-wrap: wrap; }
.finx-select-sm { padding: 6px 9px; border: 1.5px solid var(--border); border-radius: 9px; font-family: inherit; font-size: .76rem; background: var(--panel); cursor: pointer; }
.finx-select-sm:focus { outline: none; border-color: var(--primary); }
.finx-empty { text-align: center; color: var(--muted); font-size: .87rem; padding: 26px 10px; background: var(--bg); border-radius: 12px; border: 1.5px dashed var(--border); }
.finx-image-box { margin: 4px 0 14px; display: flex; flex-direction: column; gap: 8px; }
.finx-image-box img { max-width: 260px; border-radius: 12px; border: 1.5px solid var(--border); }

.finx-inst-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(285px, 1fr)); gap: 13px; }
.finx-inst-card { border: 1.5px solid var(--border); border-radius: 15px; padding: 15px 16px; background: var(--panel); transition: box-shadow .15s, transform .15s, border-color .15s; }
.finx-inst-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); border-color: #cbd5e1; }
.finx-inst-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 9px; }
.finx-inst-title { font-size: .98rem; font-weight: 800; color: var(--text); text-decoration: none; display: block; }
.finx-inst-title:hover { color: var(--primary); text-decoration: none; }
.finx-inst-sub { font-size: .76rem; color: var(--muted); margin-top: 3px; }
.finx-progress { height: 8px; background: var(--bg); border-radius: 999px; overflow: hidden; margin: 11px 0; border: 1px solid var(--border-soft); }
.finx-progress span { display: block; height: 100%; background: linear-gradient(90deg, #22c55e, #16a34a); border-radius: 999px; transition: width .35s; }
.finx-inst-rows { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; font-size: .75rem; }
.finx-inst-rows div { display: flex; flex-direction: column; gap: 2px; background: var(--bg); border-radius: 10px; padding: 8px 9px; }
.finx-inst-rows span { color: var(--muted); font-weight: 600; }
.finx-inst-rows b { font-size: .84rem; font-weight: 800; }
.finx-inst-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 12px; font-size: .75rem; color: var(--muted); }

@media (max-width: 760px) {
  .finx-hero { padding: 18px 16px; }
  .finx-hero-title { font-size: 1.08rem; }
  .finx-hero-actions { width: 100%; }
  .finx-hero-btn { flex: 1 1 auto; justify-content: center; }
  .finx-kpis { grid-template-columns: repeat(2, 1fr); gap: 9px; }
  .finx-kpi { padding: 12px 12px; border-radius: 14px; }
  .finx-kpi-value { font-size: 1.02rem; }
  .finx-card { padding: 13px 13px; border-radius: 14px; }
  .finx-cal { gap: 3px; }
  .finx-cal-cell { min-height: 52px; padding: 3px; border-radius: 8px; }
  .finx-cal-chip { font-size: .58rem; }
  .finx-inst-grid { grid-template-columns: 1fr; }
  .finx-field, .finx-field.grow { flex: 1 1 100%; }
  .finx-field.finx-actions { flex: 1 1 100%; }
}

/* اپ چک و اقساط — کارت‌های ورود */
.finx-app-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 14px; margin-top: 4px; }
.finx-app-card {
  display: flex; flex-direction: column; gap: 6px; text-decoration: none; color: inherit;
  background: var(--panel); border: 1.5px solid var(--border); border-radius: 18px;
  padding: 22px 20px; box-shadow: var(--shadow); transition: transform .15s, box-shadow .15s, border-color .15s;
}
.finx-app-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: var(--primary); text-decoration: none; color: inherit; }
.finx-app-ico { font-size: 2rem; }
.finx-app-title { font-size: 1.1rem; font-weight: 800; }
.finx-app-sub { font-size: .8rem; color: var(--muted); }

/* اپ چک و اقساط — کارت‌های کوچک‌تر و بدون توضیح (۱۴۰۵-۰۷-۱۶) */
.finx-app-grid { grid-template-columns: repeat(auto-fit, minmax(148px, 1fr)); gap: 12px; }
.finx-app-card { padding: 14px 16px; border-radius: 15px; gap: 4px; align-items: center; text-align: center; }
.finx-app-ico { font-size: 1.5rem; }
.finx-app-title { font-size: .95rem; }

/* اپ چک و اقساط — کارت‌های کوچک‌تر و بدون توضیح (۱۴۰۵-۰۷-۱۶) */
.finx-app-grid { grid-template-columns: repeat(auto-fit, minmax(148px, 1fr)); gap: 12px; }
.finx-app-card { padding: 14px 16px; border-radius: 15px; gap: 4px; align-items: center; text-align: center; }
.finx-app-ico { font-size: 1.5rem; }
.finx-app-title { font-size: .95rem; }

/* لیست‌های کارتی چک/اقساط (۱۴۰۵-۰۷-۱۶) */
.finx-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.finx-item { border: 1.5px solid var(--border); border-radius: 14px; padding: 13px 15px; background: var(--panel); display: flex; flex-direction: column; gap: 9px; transition: box-shadow .15s, transform .15s, border-color .15s; }
.finx-item:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); border-color: #cbd5e1; }
.finx-item.is-over { border-color: #fca5a5; background: #fff7f7; }
.finx-item-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.finx-item-title { font-weight: 800; font-size: .95rem; }
.finx-item-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.finx-item-rows { display: flex; flex-wrap: wrap; gap: 7px; }
.finx-item-rows > div { flex: 1 1 42%; min-width: 108px; display: flex; flex-direction: column; gap: 2px; background: var(--bg); border-radius: 10px; padding: 7px 9px; }
.finx-item-rows span { font-size: .7rem; color: var(--muted); font-weight: 600; }
.finx-item-rows b { font-size: .85rem; font-weight: 800; }
.finx-item-note { font-size: .78rem; color: var(--muted); background: var(--bg); border-radius: 10px; padding: 7px 9px; }
.finx-item-actions { display: flex; gap: 7px; flex-wrap: wrap; align-items: center; margin-top: auto; }
@media (max-width: 640px) {
  .finx-list { grid-template-columns: 1fr; }
  .finx-item-rows > div { flex: 1 1 100%; }
}

/* هدر فشردهتر + کارت چک (۱۴۰۵-۰۷-۱۶) */
.finx-hero { padding: 13px 17px; border-radius: 15px; margin-bottom: 13px; }
.finx-hero-title { font-size: 1.06rem; }
.finx-hero-btn { padding: 8px 13px; font-size: .8rem; }
.finx-item-meta { font-size: .78rem; font-weight: 600; color: var(--muted); }
.finx-item-rows > div.finx-amt, .finx-item-rows > div.finx-date { flex: 1 1 44%; align-items: center; justify-content: center; text-align: center; padding: 11px 8px; }
.finx-item-rows > div.finx-amt b { font-size: 1.28rem; font-weight: 800; letter-spacing: -.4px; }
.finx-item-rows > div.finx-amt small { font-size: .66rem; color: var(--muted); font-weight: 600; }
.finx-item-rows > div.finx-date b { font-size: 1.02rem; font-weight: 800; }

/* هدر جمع‌تر + جعبهٔ جمع ماه (۱۴۰۵-۰۷-۱۶) */
.finx-hero { padding: 10px 14px; margin-bottom: 11px; border-radius: 14px; }
.finx-hero-title { font-size: .98rem; }
.finx-hero-btn { padding: 7px 11px; font-size: .76rem; border-radius: 9px; }
.finx-month-box { display: flex; flex-direction: column; align-items: center; gap: 4px; background: var(--bg); border: 1.5px dashed var(--border); border-radius: 14px; padding: 16px 14px; }
.finx-month-box b { font-size: 1.75rem; font-weight: 800; letter-spacing: -.6px; }
.finx-month-box small { font-size: .72rem; color: var(--muted); font-weight: 600; }
.finx-amt b { font-size: 1.42rem; }

/* نوار فشردهٔ بالای چک/اقساط (۱۴۰۵-۰۷-۱۶) */
.finx-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; background: linear-gradient(130deg, #0f172a, #1e293b 60%, #334155); color: #fff; border-radius: 14px; padding: 10px 13px; margin-bottom: 12px; box-shadow: 0 6px 18px rgba(15,23,42,.16); }
.finx-bar-title { display: flex; align-items: center; gap: 8px; font-size: .98rem; font-weight: 800; }
.finx-bar-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.finx-bar-btn { display: inline-flex; align-items: center; gap: 5px; padding: 7px 11px; border-radius: 9px; font-family: inherit; font-size: .76rem; font-weight: 700; cursor: pointer; text-decoration: none; background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.3); }
.finx-bar-btn:hover { background: rgba(255,255,255,.22); color: #fff; text-decoration: none; }
.finx-bar-btn.solid { background: #fff; color: #0f172a; border-color: #fff; }
.finx-bar-btn.solid:hover { background: #f1f5f9; color: #0f172a; }
.finx-item > .finx-amt { display: flex; align-items: center; justify-content: center; background: var(--bg); border-radius: 11px; padding: 13px 10px; }
.finx-item > .finx-amt b { font-size: 1.45rem; font-weight: 800; letter-spacing: -.5px; }

/* نوار فشردهٔ بالای چک/اقساط (۱۴۰۵-۰۷-۱۶) */
.finx-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; background: linear-gradient(130deg, #0f172a, #1e293b 60%, #334155); color: #fff; border-radius: 14px; padding: 10px 13px; margin-bottom: 12px; box-shadow: 0 6px 18px rgba(15,23,42,.16); }
.finx-bar-title { display: flex; align-items: center; gap: 8px; font-size: .98rem; font-weight: 800; }
.finx-bar-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.finx-bar-btn { display: inline-flex; align-items: center; gap: 5px; padding: 7px 11px; border-radius: 9px; font-family: inherit; font-size: .76rem; font-weight: 700; cursor: pointer; text-decoration: none; background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.3); }
.finx-bar-btn:hover { background: rgba(255,255,255,.22); color: #fff; text-decoration: none; }
.finx-bar-btn.solid { background: #fff; color: #0f172a; border-color: #fff; }
.finx-bar-btn.solid:hover { background: #f1f5f9; color: #0f172a; }
.finx-item > .finx-amt { display: flex; align-items: center; justify-content: center; background: var(--bg); border-radius: 11px; padding: 13px 10px; }
.finx-item > .finx-amt b { font-size: 1.45rem; font-weight: 800; letter-spacing: -.5px; }

/* تاریخ سررسید در کارت چک + کارت «ماه» فشرده (۱۴۰۵-۰۷-۱۶) */
.finx-item-date { font-size: 1.05rem; font-weight: 800; color: #8b5cf6; }
.finx-card-tight { padding: 10px 12px; }
.finx-card-tight .finx-card-head { margin-bottom: 8px; }
.finx-card-tight .finx-month-box { flex-direction: row; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 12px; }
.finx-card-tight .finx-month-box b { font-size: 1.22rem; }

/* خط دوم کارت «سررسید ماه جاری» (۱۴۰۵-۰۷-۱۶) */
.finx-kpi-sub { font-size: .92rem; font-weight: 800; color: var(--muted); margin-top: 1px; }
.finx-kpi-sub small { font-size: .66rem; font-weight: 600; }

/* دکمهٔ سبز پرداخت + کارت کلیک‌شدنی + کارت سررسیدگذشته (۱۴۰۵-۰۷-۱۶) */
.finx-btn.success { background: #16a34a; border-color: #16a34a; color: #fff; }
.finx-btn.success:hover { background: #15803d; }
a.finx-kpi-link { display: block; color: inherit; text-decoration: none; }
a.finx-kpi-link:hover { color: inherit; text-decoration: none; }
.finx-item.is-over { border-color: #dc2626; background: #fef2f2; }
.finx-item.is-over .finx-amt { background: #fee2e2; }
.finx-item.is-over .finx-amt b { color: #991b1b; }
.finx-item.is-over .finx-item-date { color: #b91c1c; }

/* ===== کارت‌های چک/قسط: ظاهر شیشه‌ای + رنگ وضعیت (۱۴۰۵-۰۷-۱۷) ===== */
.finx-newform { display: none; }
.finx-newform-head { font-size: 1rem; font-weight: 800; margin-bottom: 12px; }
.finx-list { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 10px; }
.finx-item { position: relative; overflow: hidden; gap: 7px; padding: 11px 13px; border-radius: 16px; border: 1px solid rgba(255,255,255,.75); background: linear-gradient(180deg, #ffffff 0%, #f4f7fb 100%); box-shadow: 0 4px 10px rgba(15,23,42,.07), 0 1px 0 rgba(255,255,255,.85) inset, 0 -1px 0 rgba(15,23,42,.04) inset; transition: transform .15s, box-shadow .15s; }
.finx-item::after { content: ""; position: absolute; inset: 0 0 auto 0; height: 46%; pointer-events: none; background: linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,0)); }
.finx-item:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(15,23,42,.12); }
.finx-item > * { position: relative; z-index: 1; }
.finx-item-top { gap: 6px; }
.finx-item-title { font-size: .9rem; }
.finx-item-date { font-size: .95rem; }
.finx-item .finx-amt { padding: 9px 8px; border-radius: 11px; background: rgba(241,245,249,.85); }
.finx-item .finx-amt b { font-size: 1.3rem; }
.finx-item .finx-btn.sm { padding: 6px 11px; font-size: .74rem; }
.finx-item.is-future { border-color: #86efac; background: linear-gradient(135deg,#f0fdf4 0%,#eff6ff 100%); }
.finx-item.is-future .finx-amt { background: linear-gradient(135deg, rgba(220,252,231,.9), rgba(219,234,254,.9)); }
.finx-item.is-future .finx-amt b, .finx-item.is-future .finx-item-date { color: #0e7490; }
.finx-item.is-today { border-color: #fcd34d; background: linear-gradient(180deg,#ffffff 0%,#fffaea 100%); }
.finx-item.is-today .finx-amt { background: rgba(254,243,199,.9); }
.finx-item.is-today .finx-amt b, .finx-item.is-today .finx-item-date { color: #b45309; }
.finx-item.is-over { border-color: #fca5a5; background: linear-gradient(135deg,#fff5f5 0%,#fffbe8 100%); }
.finx-item.is-over .finx-amt { background: linear-gradient(135deg, rgba(255,228,228,.9), rgba(254,243,199,.9)); }
.finx-item.is-over .finx-amt b, .finx-item.is-over .finx-item-date { color: #b45309; }
.finx-item.is-future::before, .finx-item.is-today::before, .finx-item.is-over::before { content: ""; position: absolute; top: 0; inset-inline-start: 0; width: 4px; height: 100%; opacity: .85; z-index: 2; }
.finx-item.is-future::before { background: linear-gradient(180deg,#22c55e,#38bdf8); }
.finx-item.is-today::before { background: #f59e0b; }
.finx-item.is-over::before { background: linear-gradient(180deg,#ef4444,#f59e0b); }
.finx-item .finx-item-actions { display: none; }
.finx-item.menu-open .finx-item-actions { display: flex; animation: finxpop .18s ease-out; }
.finx-item.menu-open { box-shadow: 0 12px 26px rgba(15,23,42,.16); }
@keyframes finxpop { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
.finx-money { font-size: .95rem; padding: 7px 10px; }
.finx-kpis { gap: 10px; }
.finx-kpi { padding: 11px 13px; border-radius: 14px; }
.finx-kpi-label { font-size: .74rem; }
.finx-kpi-value { font-size: 1.12rem; margin-top: 3px; }
.finx-kpi-foot { font-size: .68rem; }
.finx-kpi-sub { font-size: .84rem; }

/* ریزتنظیم کارت‌ها: تاریخ درشت‌تر + کادر مبلغ ۲۰٪ باریک‌تر (۱۴۰۵-۰۷-۱۷) */
.finx-item-date { font-size: 1.1rem; }
.finx-list { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.finx-item .finx-amt { width: 80%; margin-inline: auto; padding: 8px 8px; }
.finx-item .finx-amt b { font-size: 1.18rem; }

/* ارتفاع کارت‌ها کمتر (۱۴۰۵-۰۷-۱۷) */
.finx-list { gap: 8px; }
.finx-item { gap: 5px; padding: 9px 12px; }
.finx-item-title { font-size: .88rem; line-height: 1.6; }
.finx-item .finx-amt { width: auto; margin-inline: 0; padding: 6px 8px; }
.finx-item .finx-amt b { font-size: 1.22rem; }
.finx-item-tags .finx-tag, .finx-item-tags .finx-badge { padding: 2px 8px; font-size: .68rem; }
.finx-item-note { padding: 5px 8px; font-size: .74rem; }

/* تقویم یکنواخت + پاپ‌آپ روز + کادر شیشه‌ای جمع ماه (۱۴۰۵-۰۷-۱۷) */
.finx-cal { gap: 4px; }
.finx-cal-cell { min-height: 38px; height: 38px; padding: 2px 4px; border-radius: 9px; display: flex; align-items: center; justify-content: center; position: relative; }
.finx-cal-daynum { font-size: .82rem; font-weight: 700; margin: 0; }
.finx-cal-cell.has { cursor: pointer; background: #fff; border-color: var(--border); }
.finx-cal-cell.has:hover { border-color: var(--primary); }
.finx-cal-dot { position: absolute; top: 2px; inset-inline-end: 2px; min-width: 15px; height: 15px; border-radius: 999px; background: #f59e0b; color: #fff; font-size: .6rem; font-weight: 800; display: flex; align-items: center; justify-content: center; padding: 0 3px; }
.finx-cal-cell.today .finx-cal-dot { background: #16a34a; }
.finx-day-pop { position: fixed; inset: 0; z-index: 99999; display: none; align-items: center; justify-content: center; background: rgba(15,23,42,.45); padding: 18px; }
.finx-day-pop.open { display: flex; }
.finx-day-pop-box { background: var(--panel); border-radius: 16px; padding: 16px; width: 100%; max-width: 420px; box-shadow: 0 20px 50px rgba(15,23,42,.3); display: flex; flex-direction: column; gap: 8px; max-height: 80vh; overflow: auto; }
.finx-day-pop-head { font-weight: 800; font-size: .95rem; border-bottom: 1px solid var(--border-soft); padding-bottom: 8px; }
.finx-day-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: var(--bg); border-radius: 10px; padding: 8px 10px; font-size: .82rem; }
.finx-day-row b { font-weight: 800; white-space: nowrap; }
.finx-day-pop-box .finx-btn { align-self: flex-end; }
.finx-card-tight { background: linear-gradient(135deg, #eef2ff 0%, #e0f2fe 55%, #ecfeff 100%); border: 1px solid rgba(255,255,255,.9); box-shadow: 0 10px 26px rgba(56,189,248,.18), 0 1px 0 rgba(255,255,255,.9) inset; position: relative; overflow: hidden; }
.finx-card-tight::after { content: ""; position: absolute; inset: -40% -20% auto auto; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.85), transparent 65%); pointer-events: none; }
.finx-card-tight .finx-card-title { color: #0e7490; }
.finx-month-box { background: rgba(255,255,255,.6); border: 1px solid rgba(255,255,255,.9); box-shadow: 0 4px 14px rgba(14,116,144,.12); }
.finx-month-box b { color: #0e7490; }
.finx-item { gap: 4px; padding: 8px 11px; }
.finx-item .finx-amt { padding: 5px 8px; }
.finx-item .finx-amt b { font-size: 1.2rem; }

/* کادر میزبان کارت‌ها + KPIهای جمع‌وجور (۱۴۰۵-۰۷-۱۷) */
.finx-card-pattern { position: relative; background-color: #fdfefe; background-image: radial-gradient(rgba(15,23,42,.055) 1px, transparent 1px), linear-gradient(180deg, #ffffff 0%, #f6f9fc 100%); background-size: 16px 16px, auto; border: 1px solid rgba(255,255,255,.95); box-shadow: 0 10px 26px rgba(15,23,42,.07), 0 1px 0 rgba(255,255,255,.9) inset; overflow: hidden; }
.finx-card-pattern::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 90px; background: linear-gradient(180deg, rgba(56,189,248,.10), transparent); pointer-events: none; }
.finx-card-pattern > * { position: relative; z-index: 1; }
.finx-kpis { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 9px; }
.finx-kpi { padding: 10px 12px; border-radius: 14px; border: 1px solid rgba(255,255,255,.8); background: linear-gradient(180deg, #ffffff 0%, #f7f9fd 100%); box-shadow: 0 3px 9px rgba(15,23,42,.06), 0 1px 0 rgba(255,255,255,.9) inset; }
.finx-kpi::before { width: 3px; }
.finx-kpi-label { font-size: .72rem; }
.finx-kpi-value { font-size: 1.03rem; margin-top: 2px; }
.finx-kpi-value small { font-size: .64rem; }
.finx-kpi-foot { font-size: .65rem; margin-top: 1px; }
.finx-kpi.finx-kpi-dark .finx-kpi-value { color: var(--text); }

/* کارت‌های آماری: ظاهر حرفه‌ای‌تر (۱۴۰۵-۰۷-۱۷) */
.finx-kpi { padding: 12px 13px 11px; border-radius: 17px; border: 1px solid rgba(255,255,255,.9); background: linear-gradient(180deg, #ffffff 0%, #f7fafd 100%); box-shadow: 0 8px 20px rgba(15,23,42,.07), 0 1px 0 rgba(255,255,255,.95) inset; overflow: hidden; }
.finx-kpi::before { width: 4px; border-radius: 0 4px 4px 0; opacity: 1; }
.finx-kpi::after { content: ""; position: absolute; inset: -62% -34% auto auto; width: 165px; height: 165px; border-radius: 50%; pointer-events: none; background: radial-gradient(circle, rgba(148,163,184,.20), transparent 66%); }
.finx-kpi > * { position: relative; z-index: 1; }
.finx-kpi-label { display: flex; align-items: center; gap: 7px; font-size: .74rem; font-weight: 700; }
.finx-kpi-ico { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 9px; font-size: .82rem; background: rgba(148,163,184,.16); box-shadow: 0 1px 0 rgba(255,255,255,.9) inset; }
.finx-kpi-value { font-size: 1.12rem; font-weight: 800; letter-spacing: -.4px; margin-top: 4px; }
.finx-kpi-foot { font-size: .66rem; }
.finx-kpi.is-open { background: linear-gradient(180deg, #ffffff 0%, #fff9ec 100%); border-color: rgba(252,211,77,.6); }
.finx-kpi.is-open .finx-kpi-ico { background: rgba(245,158,11,.16); }
.finx-kpi.is-open::after { background: radial-gradient(circle, rgba(245,158,11,.22), transparent 66%); }
.finx-kpi.is-danger { background: linear-gradient(180deg, #ffffff 0%, #fff5f5 100%); border-color: rgba(252,165,165,.6); }
.finx-kpi.is-danger .finx-kpi-ico { background: rgba(239,68,68,.14); }
.finx-kpi.is-danger::after { background: radial-gradient(circle, rgba(239,68,68,.20), transparent 66%); }
.finx-kpi.is-info { background: linear-gradient(180deg, #ffffff 0%, #f3f8ff 100%); border-color: rgba(147,197,253,.6); }
.finx-kpi.is-info .finx-kpi-ico { background: rgba(59,130,246,.14); }
.finx-kpi.is-info::after { background: radial-gradient(circle, rgba(59,130,246,.20), transparent 66%); }
.finx-kpi.is-paid { background: linear-gradient(180deg, #ffffff 0%, #f2fdf5 100%); border-color: rgba(134,239,172,.6); }
.finx-kpi.is-paid .finx-kpi-ico { background: rgba(22,163,74,.14); }

/* دکمه‌های ماه قبل/بعد (۱۴۰۵-۰۷-۱۷) */
.finx-monthnav { display: flex; gap: 6px; align-items: center; }
.finx-monthnav-btn { display: inline-flex; align-items: center; gap: 4px; padding: 7px 13px; border-radius: 999px; font-size: .78rem; font-weight: 700; text-decoration: none; color: #475569; background: linear-gradient(180deg, #ffffff, #eef2f8); border: 1px solid rgba(148,163,184,.45); box-shadow: 0 2px 6px rgba(15,23,42,.06), 0 1px 0 rgba(255,255,255,.9) inset; transition: transform .14s, box-shadow .14s, color .14s, border-color .14s; }
.finx-monthnav-btn:hover { color: var(--primary); border-color: var(--primary); transform: translateY(-1px); box-shadow: 0 6px 14px rgba(15,23,42,.12); text-decoration: none; }
.finx-monthnav-btn.next { color: #0e7490; border-color: rgba(14,116,144,.35); background: linear-gradient(180deg, #ffffff, #e6f6fb); }
.finx-monthnav-btn.next:hover { color: #155e75; border-color: #0e7490; }

/* دکمه‌های ماه قبل/بعد (۱۴۰۵-۰۷-۱۷) */
.finx-monthnav { display: flex; gap: 6px; align-items: center; }
.finx-monthnav-btn { display: inline-flex; align-items: center; gap: 4px; padding: 7px 13px; border-radius: 999px; font-size: .78rem; font-weight: 700; text-decoration: none; color: #475569; background: linear-gradient(180deg, #ffffff, #eef2f8); border: 1px solid rgba(148,163,184,.45); box-shadow: 0 2px 6px rgba(15,23,42,.06), 0 1px 0 rgba(255,255,255,.9) inset; transition: transform .14s, box-shadow .14s, color .14s, border-color .14s; }
.finx-monthnav-btn:hover { color: var(--primary); border-color: var(--primary); transform: translateY(-1px); box-shadow: 0 6px 14px rgba(15,23,42,.12); text-decoration: none; }
.finx-monthnav-btn.next { color: #0e7490; border-color: rgba(14,116,144,.35); background: linear-gradient(180deg, #ffffff, #e6f6fb); }
.finx-monthnav-btn.next:hover { color: #155e75; border-color: #0e7490; }

/* جلوگیری از سلکت‌شدن متن هنگام نگه‌داشتن روی کارت (۱۴۰۵-۰۷-۱۷) */
.finx-item, .finx-item *, .finx-cal-cell, .finx-kpi { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-touch-callout: none; }

/* خواناتر شدن کادر جمع ماه (۱۴۰۵-۰۷-۱۷) */
.finx-card-tight > * { position: relative; z-index: 1; }
.finx-card-tight::after { z-index: 0; }
.finx-month-box .finx-mini-lbl { color: #0f172a; font-weight: 800; }
.finx-month-box small { color: #334155; font-weight: 700; }
.finx-month-box b { color: #0e7490; font-weight: 800; }

/* خواناتر شدن کادر جمع ماه (۱۴۰۵-۰۷-۱۷) */
.finx-card-tight > * { position: relative; z-index: 1; }
.finx-card-tight::after { z-index: 0; }
.finx-month-box .finx-mini-lbl { color: #0f172a; font-weight: 800; }
.finx-month-box small { color: #334155; font-weight: 700; }
.finx-month-box b { color: #0e7490; font-weight: 800; }


/* ==================================================================
   تم شب اختصاصی بخش چک/اقساط (۱۴۰۵-۰۷-۱۸)
   پالت هم‌خانواده: سرمهٔ عمیق + طلایی + فیروزه‌ای
   فقط رنگ/سایه — هیچ اندازه، فاصله یا چیدمانی تغییر نمی‌کند.
   ================================================================== */

/* پس‌زمینهٔ میزبان کارت‌ها */
[data-theme="dark"] .finx-card-pattern{ background-color:#0e1626; background-image: radial-gradient(rgba(148,163,184,.15) 1px, transparent 1px), linear-gradient(180deg,#131d31 0%,#0c1424 100%); border-color: rgba(148,163,184,.16); box-shadow: 0 14px 34px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.04); }
[data-theme="dark"] .finx-card-pattern::before{ background: linear-gradient(180deg, rgba(247,198,90,.10), transparent); }

/* نوار بالای صفحه */
[data-theme="dark"] .finx-bar{ background: linear-gradient(130deg,#0a1120,#152238 58%,#1e2c46); border: 1px solid rgba(247,198,90,.16); box-shadow: 0 10px 26px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.05); }
[data-theme="dark"] .finx-bar-btn{ background: rgba(247,198,90,.10); border-color: rgba(247,198,90,.32); color:#f6dfae; }
[data-theme="dark"] .finx-bar-btn:hover{ background: rgba(247,198,90,.20); color:#fff3d6; }
[data-theme="dark"] .finx-bar-btn.solid{ background: linear-gradient(180deg,#f9cd6b,#dfa62c); color:#20180a; border-color: rgba(255,255,255,.32); }
[data-theme="dark"] .finx-bar-btn.solid:hover{ background: linear-gradient(180deg,#ffdc8a,#eab23c); color:#20180a; }

/* کارت‌های آماری (KPI) */
[data-theme="dark"] .finx-kpi{ background: linear-gradient(180deg,#182236 0%,#111a2b 100%); border-color: rgba(148,163,184,.18); box-shadow: 0 10px 24px rgba(0,0,0,.40), inset 0 1px 0 rgba(255,255,255,.045); color:#eaf1ff; }
[data-theme="dark"] .finx-kpi::after{ background: radial-gradient(circle, rgba(148,163,184,.13), transparent 66%); }
[data-theme="dark"] .finx-kpi-label{ color:#9db0cd; }
[data-theme="dark"] .finx-kpi-ico{ background: rgba(148,163,184,.14); box-shadow: inset 0 1px 0 rgba(255,255,255,.07); }
[data-theme="dark"] .finx-kpi-value{ color:#eef4ff; }
[data-theme="dark"] .finx-kpi-foot,[data-theme="dark"] .finx-kpi-sub{ color:#8fa2c0; }
[data-theme="dark"] .finx-kpi.finx-kpi-dark .finx-kpi-value{ color:#eef4ff; }
[data-theme="dark"] .finx-kpi.is-open{ background: linear-gradient(180deg,#2a2412 0%,#141d2f 100%); border-color: rgba(247,198,90,.42); }
[data-theme="dark"] .finx-kpi.is-open::after{ background: radial-gradient(circle, rgba(247,198,90,.22), transparent 66%); }
[data-theme="dark"] .finx-kpi.is-open .finx-kpi-ico{ background: rgba(247,198,90,.18); }
[data-theme="dark"] .finx-kpi.is-open .finx-kpi-value{ color:#f7c65a; }
[data-theme="dark"] .finx-kpi.is-danger{ background: linear-gradient(180deg,#2c1620 0%,#141d2f 100%); border-color: rgba(251,113,133,.42); }
[data-theme="dark"] .finx-kpi.is-danger::after{ background: radial-gradient(circle, rgba(251,113,133,.22), transparent 66%); }
[data-theme="dark"] .finx-kpi.is-danger .finx-kpi-ico{ background: rgba(251,113,133,.18); }
[data-theme="dark"] .finx-kpi.is-danger .finx-kpi-value{ color:#fda4b0; }
[data-theme="dark"] .finx-kpi.is-info{ background: linear-gradient(180deg,#0d2438 0%,#141d2f 100%); border-color: rgba(56,189,248,.40); }
[data-theme="dark"] .finx-kpi.is-info::after{ background: radial-gradient(circle, rgba(56,189,248,.22), transparent 66%); }
[data-theme="dark"] .finx-kpi.is-info .finx-kpi-ico{ background: rgba(56,189,248,.18); }
[data-theme="dark"] .finx-kpi.is-info .finx-kpi-value{ color:#7dd3fc; }
[data-theme="dark"] .finx-kpi.is-paid{ background: linear-gradient(180deg,#0c2a23 0%,#141d2f 100%); border-color: rgba(52,211,153,.40); }
[data-theme="dark"] .finx-kpi.is-paid .finx-kpi-ico{ background: rgba(52,211,153,.18); }
[data-theme="dark"] .finx-kpi.is-paid .finx-kpi-value{ color:#6ee7b7; }

/* کادرهای محتوا */
[data-theme="dark"] .finx-card{ background: linear-gradient(180deg,#131d31 0%,#0f1728 100%); border-color: rgba(148,163,184,.16); box-shadow: 0 12px 30px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.04); color:#e6eefc; }
[data-theme="dark"] .finx-card-title{ color:#e9f1ff; }
[data-theme="dark"] .finx-card-summary{ color:#e9f1ff; }
[data-theme="dark"] .finx-sum-arrow{ color:#8fa2c0; }
[data-theme="dark"] .finx-pill{ background: rgba(56,189,248,.14); color:#7dd3fc; border-color: rgba(56,189,248,.30); }
[data-theme="dark"] .finx-mini{ background: rgba(148,163,184,.08); border-color: rgba(148,163,184,.30); color:#e6eefc; }
[data-theme="dark"] .finx-mini-lbl{ color:#93a4bf; }
[data-theme="dark"] .finx-mini-val small{ color:#8fa2c0; }

/* کارت «جمع ماه» */
[data-theme="dark"] .finx-card-tight{ background: linear-gradient(135deg,#112a3b 0%,#12203a 55%,#101c33 100%); border-color: rgba(56,189,248,.28); box-shadow: 0 14px 32px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.06); }
[data-theme="dark"] .finx-card-tight::after{ background: radial-gradient(circle, rgba(56,189,248,.16), transparent 66%); }
[data-theme="dark"] .finx-card-tight .finx-card-title{ color:#7dd3fc; }
[data-theme="dark"] .finx-month-box{ background: rgba(148,163,184,.10); border-color: rgba(255,255,255,.10); box-shadow: inset 0 1px 0 rgba(255,255,255,.06); }
[data-theme="dark"] .finx-month-box .finx-mini-lbl,[data-theme="dark"] .finx-month-box small{ color:#cfe0f5; }
[data-theme="dark"] .finx-month-box b{ color:#f7c65a; }

/* دکمه‌های ماه قبل/بعد */
[data-theme="dark"] .finx-monthnav-btn{ background: linear-gradient(180deg,#1b2740,#141d2f); border-color: rgba(148,163,184,.28); color:#cbd8ec; box-shadow: 0 2px 8px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.05); }
[data-theme="dark"] .finx-monthnav-btn:hover{ color:#f7c65a; border-color: rgba(247,198,90,.5); box-shadow: 0 8px 18px rgba(0,0,0,.45); }
[data-theme="dark"] .finx-monthnav-btn.next{ background: linear-gradient(180deg,#12303f,#0e2232); border-color: rgba(56,189,248,.34); color:#7dd3fc; }
[data-theme="dark"] .finx-monthnav-btn.next:hover{ color:#a5e4ff; border-color:#38bdf8; }

/* کارت‌های چک/قسط */
[data-theme="dark"] .finx-item{ background: linear-gradient(180deg,#182135 0%,#121b2c 100%); border-color: rgba(148,163,184,.20); box-shadow: 0 8px 20px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.05); }
[data-theme="dark"] .finx-item::after{ background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,0)); }
[data-theme="dark"] .finx-item:hover{ box-shadow: 0 14px 30px rgba(0,0,0,.5); border-color: rgba(148,163,184,.34); }
[data-theme="dark"] .finx-item.menu-open{ box-shadow: 0 16px 34px rgba(0,0,0,.55); }
[data-theme="dark"] .finx-item-title{ color:#eaf1ff; }
[data-theme="dark"] .finx-item-meta{ color:#9db0cd; }
[data-theme="dark"] .finx-item .finx-amt,[data-theme="dark"] .finx-item > .finx-amt{ background: rgba(148,163,184,.12); }
[data-theme="dark"] .finx-item .finx-amt b{ color:#eef4ff; }
[data-theme="dark"] .finx-item .finx-amt small,[data-theme="dark"] .finx-item-rows span{ color:#8fa2c0; }
[data-theme="dark"] .finx-item-rows > div{ background: rgba(148,163,184,.10); }
[data-theme="dark"] .finx-item-rows b{ color:#e6eefc; }
[data-theme="dark"] .finx-item-note{ background: rgba(148,163,184,.10); color:#a7b7d0; }
[data-theme="dark"] .finx-item-date{ color:#c4b5fd; }
[data-theme="dark"] .finx-item.is-future{ background: linear-gradient(135deg,#0f2630 0%,#0f2233 100%); border-color: rgba(56,189,248,.45); }
[data-theme="dark"] .finx-item.is-future .finx-amt{ background: linear-gradient(135deg, rgba(52,211,153,.14), rgba(56,189,248,.16)); }
[data-theme="dark"] .finx-item.is-future .finx-amt b,[data-theme="dark"] .finx-item.is-future .finx-item-date,[data-theme="dark"] .finx-item.is-future .finx-amt small{ color:#5eead4; }
[data-theme="dark"] .finx-item.is-future::before{ background: linear-gradient(180deg,#22c55e,#38bdf8); }
[data-theme="dark"] .finx-item.is-today{ background: linear-gradient(180deg,#2a2412 0%,#141d2f 100%); border-color: rgba(247,198,90,.45); }
[data-theme="dark"] .finx-item.is-today .finx-amt{ background: rgba(247,198,90,.15); }
[data-theme="dark"] .finx-item.is-today .finx-amt b,[data-theme="dark"] .finx-item.is-today .finx-item-date,[data-theme="dark"] .finx-item.is-today .finx-amt small{ color:#f7c65a; }
[data-theme="dark"] .finx-item.is-today::before{ background:#f7c65a; }
[data-theme="dark"] .finx-item.is-over{ background: linear-gradient(135deg,#2a1a20 0%,#252014 100%); border-color: rgba(251,113,133,.48); }
[data-theme="dark"] .finx-item.is-over .finx-amt{ background: linear-gradient(135deg, rgba(251,113,133,.16), rgba(247,198,90,.14)); }
[data-theme="dark"] .finx-item.is-over .finx-amt b,[data-theme="dark"] .finx-item.is-over .finx-item-date,[data-theme="dark"] .finx-item.is-over .finx-amt small{ color:#f7b28c; }
[data-theme="dark"] .finx-item.is-over::before{ background:linear-gradient(180deg,#fb7185,#f7c65a); }

/* برچسب‌ها */
[data-theme="dark"] .finx-tag{ background: rgba(56,189,248,.14); color:#7dd3fc; border-color: rgba(56,189,248,.30); }
[data-theme="dark"] .finx-tag.bank{ background: rgba(96,165,250,.14); color:#93c5fd; border-color: rgba(96,165,250,.32); }
[data-theme="dark"] .finx-tag.rent{ background: rgba(167,139,250,.14); color:#c4b5fd; border-color: rgba(167,139,250,.32); }
[data-theme="dark"] .finx-badge.ok{ background: rgba(52,211,153,.14); border-color: rgba(52,211,153,.38); color:#6ee7b7; }
[data-theme="dark"] .finx-badge.danger{ background: rgba(251,113,133,.14); border-color: rgba(251,113,133,.38); color:#fda4b0; }
[data-theme="dark"] .finx-badge.muted{ background: rgba(148,163,184,.12); color:#a7b7d0; }

/* تقویم */
[data-theme="dark"] .finx-cal-head{ color:#8fa2c0; }
[data-theme="dark"] .finx-cal-cell{ background:#111a2b; border-color: rgba(148,163,184,.14); }
[data-theme="dark"] .finx-cal-cell.empty{ background:transparent; border-color:transparent; }
[data-theme="dark"] .finx-cal-cell.has{ background:#17223a; border-color: rgba(56,189,248,.30); }
[data-theme="dark"] .finx-cal-cell.has:hover{ border-color:#38bdf8; box-shadow: 0 6px 16px rgba(0,0,0,.45); }
[data-theme="dark"] .finx-cal-cell.today{ border-color:#f7c65a; box-shadow: 0 0 0 2px rgba(247,198,90,.18); }
[data-theme="dark"] .finx-cal-daynum{ color:#93a4bf; }
[data-theme="dark"] .finx-cal-cell.today .finx-cal-daynum{ color:#f7c65a; }
[data-theme="dark"] .finx-cal-dot{ background:#38bdf8; color:#06121f; }
[data-theme="dark"] .finx-cal-cell.today .finx-cal-dot{ background:#f7c65a; color:#20180a; }
[data-theme="dark"] .finx-cal-chip.issued{ background: rgba(247,198,90,.18); color:#f7c65a; }
[data-theme="dark"] .finx-cal-chip.digi{ background: rgba(52,211,153,.18); color:#6ee7b7; }
[data-theme="dark"] .finx-cal-chip.over{ background: rgba(251,113,133,.18); color:#fda4b0; }
[data-theme="dark"] .finx-day-pop{ background: rgba(3,7,15,.72); }
[data-theme="dark"] .finx-day-pop-box{ background: linear-gradient(180deg,#15203a,#0f1728); border: 1px solid rgba(148,163,184,.22); color:#e6eefc; box-shadow: 0 24px 60px rgba(0,0,0,.65); }
[data-theme="dark"] .finx-day-pop-head{ color:#eaf1ff; border-color: rgba(148,163,184,.18); }
[data-theme="dark"] .finx-day-row{ background: rgba(148,163,184,.10); color:#dbe6f7; }

/* دکمه‌ها */
[data-theme="dark"] .finx-btn:hover{ filter: brightness(1.14); box-shadow: 0 8px 18px rgba(0,0,0,.4); }
[data-theme="dark"] .finx-btn.primary{ background: linear-gradient(180deg,#f9cd6b,#dfa62c); border-color:#f0bd52; color:#20180a; }
[data-theme="dark"] .finx-btn.primary:hover{ background: linear-gradient(180deg,#ffdc8a,#eab23c); }
[data-theme="dark"] .finx-btn.success{ background:#15803d; border-color:#16a34a; color:#eafff3; }
[data-theme="dark"] .finx-btn.success:hover{ background:#166534; }
[data-theme="dark"] .finx-btn.ghost{ background: rgba(148,163,184,.10); color:#a7b7d0; }
[data-theme="dark"] .finx-btn.danger{ background: rgba(251,113,133,.14); border-color: rgba(251,113,133,.40); color:#fda4b0; }
[data-theme="dark"] .finx-newform-head{ color:#e9f1ff; }

/* فرم‌ها */
[data-theme="dark"] .finx-input,[data-theme="dark"] .finx-select-sm,[data-theme="dark"] .finx-file{ background:#101a2b; border-color: rgba(148,163,184,.24); color:#e8eefc; }
[data-theme="dark"] .finx-input:focus,[data-theme="dark"] .finx-select-sm:focus{ outline:none; border-color:#f7c65a; box-shadow: 0 0 0 3px rgba(247,198,90,.16); }
[data-theme="dark"] .finx-lbl,[data-theme="dark"] .finx-hint{ color:#8fa2c0; }
[data-theme="dark"] .finx-empty{ background: rgba(148,163,184,.07); border-color: rgba(148,163,184,.22); color:#93a4bf; }

/* اقساط: پرونده، پیشرفت و ردیف‌ها */
[data-theme="dark"] .finx-inst-card{ background: linear-gradient(180deg,#16202f,#101928); border-color: rgba(148,163,184,.18); }
[data-theme="dark"] .finx-inst-card:hover{ border-color: rgba(148,163,184,.34); box-shadow: 0 14px 30px rgba(0,0,0,.5); }
[data-theme="dark"] .finx-inst-title{ color:#eaf1ff; }
[data-theme="dark"] .finx-inst-sub{ color:#8fa2c0; }
[data-theme="dark"] .finx-inst-foot{ color:#8fa2c0; }
[data-theme="dark"] .finx-progress{ background: rgba(148,163,184,.14); border-color: rgba(148,163,184,.18); }
[data-theme="dark"] .finx-inst-rows div{ background: rgba(148,163,184,.10); }
[data-theme="dark"] .finx-inst-rows b{ color:#e6eefc; }

/* جدول‌های باقی‌مانده */
[data-theme="dark"] .finx-table-wrap{ border-color: rgba(148,163,184,.18); }
[data-theme="dark"] .finx-table thead tr{ background: rgba(148,163,184,.08); }
[data-theme="dark"] .finx-table th{ color:#93a4bf; border-color: rgba(148,163,184,.20); }
[data-theme="dark"] .finx-table td{ border-color: rgba(148,163,184,.12); }
[data-theme="dark"] .finx-table tbody tr:hover{ background: rgba(148,163,184,.07); }
[data-theme="dark"] .finx-table tr.row-over{ background: rgba(251,113,133,.08); }
[data-theme="dark"] .finx-cell-link{ color:#7dd3fc; }
[data-theme="dark"] .finx-cell-sub{ color:#8fa2c0; }
[data-theme="dark"] .finx-tab{ background:#141d2f; border-color: rgba(148,163,184,.24); color:#a7b7d0; }
[data-theme="dark"] .finx-tab.active{ background: linear-gradient(180deg,#f9cd6b,#dfa62c); border-color:#f0bd52; color:#20180a; }

/* کارت‌های لانچر (اگر جایی مانده) */
[data-theme="dark"] .finx-app-card{ background: linear-gradient(180deg,#16202f,#101928); border-color: rgba(148,163,184,.18); color:#eaf1ff; }
[data-theme="dark"] .finx-app-sub{ color:#8fa2c0; }

/* ==================================================================
   تم شب یکدست و کم‌رنگ کل سایت بهی (۱۴۰۵-۰۷-۱۸ / نسخهٔ ۲)
   یک لهجهٔ طلایی + سه رنگ وضعیت کم‌اشباع + سطح‌های سرمه‌ای خنثی
   تم روز دست‌نخورده • بخش چت از این فایل استفاده نمی‌کند
   بخش چک/اقساط استایل اختصاصی خودش را دارد و تغییر نمی‌کند
   ================================================================== */

:root[data-theme="dark"]{
  color-scheme: dark;

  --bg:            #0d1117;
  --panel:         #161b26;
  --text:          #f7f9fc;
  --muted:         #aab3c0;
  --border:        rgba(148,163,184,.16);
  --border-soft:   rgba(148,163,184,.09);
  --primary:       #b9c6d8;
  --primary-h:     #cfd9e6;
  --primary-lit:   rgba(185,198,216,.12);
  --green:         #8e8f8e;
  --green-lit:     rgba(111,174,134,.14);
  --amber:         #949391;
  --amber-lit:     rgba(201,164,92,.14);
  --red:           #a2a0a0;
  --red-lit:       rgba(207,115,115,.14);
  --gray:          #aab3c0;
  --shadow:        0 1px 2px rgba(0,0,0,.40);
  --shadow-md:     0 8px 22px rgba(0,0,0,.50);
  --sidebar-bg:    #0a0e14;
  --sidebar-border:rgba(148,163,184,.12);

  --card:          var(--panel);
  --shadow-sm:     var(--shadow);
  --b2:            rgba(148,163,184,.10);
  --t2:            #aab3c0;
  --sf:            var(--panel);
  --mu:            var(--muted);
  --bo:            var(--border);
  --bl:            rgba(148,163,184,.10);
  --accent:        #b9c6d8;
  --text-muted:    var(--muted);
  --border-default:var(--border);
  --border-subtle: var(--border-soft);
  --bg-secondary:  #12171f;

  --p:   #b9c6d8;  --ph: #cfd9e6;  --a:  #cfd9e6;  --tx: var(--text);
  --ok:  #8e8f8e;  --wn: #949391;  --er: #a2a0a0;  --inf:#9fa2a8;
  --v:   #9fa2a8;  --mut:var(--muted);  --ink:var(--text);  --ink2:var(--text);
  --soft:rgba(148,163,184,.08);  --o:#b9c6d8;  --c:#9fa2a8;
  --line:var(--border);  --vi:#9fa2a8;  --gr:#8e8f8e;
}

/* سطح‌ها */
:root[data-theme="dark"] body { background-color: var(--bg); color: var(--text); }

:root[data-theme="dark"] body :not(#ssx):not(#ssx *):is(
  .card,.panel,.panel-body,.box,.tile,.widget,.section,.section-box,
  .modal,.modal-box,.modal-content,.dropdown-menu,.list-group,.form-box,
  .info-box,.notice,.alert,.summary,.summary-box,.content-box,.white-box
) {
  background-color: var(--panel);
  border-color: var(--border);
  color: var(--text);
}

/* فرم‌ها */
:root[data-theme="dark"] body :not(#ssx):not(#ssx *):is(input,select,textarea) {
  background-color: #12171f;
  color: var(--text);
  border-color: var(--border);
}
:root[data-theme="dark"] body :not(#ssx):not(#ssx *):is(input,select,textarea):focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(217,177,104,.16);
}
:root[data-theme="dark"] body :not(#ssx):not(#ssx *):is(input,textarea)::placeholder { color: #797d82; }

/* جدول‌ها */
:root[data-theme="dark"] body :not(#ssx):not(#ssx *):is(thead) { background-color: rgba(161,165,171,.06); }
:root[data-theme="dark"] body :not(#ssx):not(#ssx *):is(th) { color: var(--muted); border-color: var(--border); }
:root[data-theme="dark"] body :not(#ssx):not(#ssx *):is(td) { border-color: var(--border-soft); }
:root[data-theme="dark"] body :not(#ssx):not(#ssx *):is(tr:hover) { background-color: rgba(161,165,171,.05); }

/* اسکرول‌بار و انتخاب متن */
:root[data-theme="dark"] ::-webkit-scrollbar { width: 11px; height: 11px; }
:root[data-theme="dark"] ::-webkit-scrollbar-track { background: #0d1117; }
:root[data-theme="dark"] ::-webkit-scrollbar-thumb { background: #2a2d31; border-radius: 8px; border: 2px solid #0d1117; }
:root[data-theme="dark"] ::-webkit-scrollbar-thumb:hover { background: #36393e; }
:root[data-theme="dark"] ::selection { background: rgba(162,161,159,.26); color: #fff; }
