:root {
  --pd-font: "B Nazanin", "BNazanin", "Nazanin", Tahoma, Arial, sans-serif;
  --pd-brand: #087454;
  --pd-brand-strong: #073b2d;
  --pd-brand-soft: #ecfaf4;
  --pd-success: #067647;
  --pd-warning: #b54708;
  --pd-danger: #b42318;
  --pd-info: #175cd3;
  --pd-ink: #10231c;
  --pd-muted: #667970;
  --pd-line: #dce8e2;
  --pd-surface: #ffffff;
  --pd-radius-sm: 12px;
  --pd-radius-md: 18px;
  --pd-radius-lg: 26px;
  --pd-shadow-sm: 0 8px 28px rgba(5, 39, 31, .07);
  --pd-shadow-md: 0 18px 50px rgba(5, 39, 31, .12);
}

html, body, button, input, select, textarea { font-family: var(--pd-font) !important; }
body { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
.numeric, [data-numeric], .money, .amount, .balance-amount, .kpi strong {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1, "ss01" 1;
}

.pd-status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 28px;
  padding: 5px 10px;
  border: 1px solid var(--pd-line);
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 700;
  background: var(--pd-surface);
}
.pd-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.pd-status.success { color: var(--pd-success); background: #ecfdf3; border-color: #abefc6; }
.pd-status.warning { color: var(--pd-warning); background: #fffaeb; border-color: #fedf89; }
.pd-status.danger { color: var(--pd-danger); background: #fef3f2; border-color: #fecdca; }
.pd-status.info { color: var(--pd-info); background: #eff8ff; border-color: #b2ddff; }

.pd-skeleton {
  position: relative;
  overflow: hidden;
  min-height: 18px;
  border-radius: 9px;
  background: #eaf1ed;
}
.pd-skeleton::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(100%);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.72), transparent);
  animation: pd-shimmer 1.25s infinite;
}
@keyframes pd-shimmer { to { transform: translateX(-100%); } }

.pd-empty, .pd-error, .pd-empty-state, .pd-error-state {
  display: grid;
  place-items: center;
  gap: 8px;
  min-height: 150px;
  padding: 24px;
  border: 1px dashed var(--pd-line);
  border-radius: var(--pd-radius-md);
  color: var(--pd-muted);
  text-align: center;
  background: #fbfdfc;
}
.pd-error, .pd-error-state { color: var(--pd-danger); border-color: #fecdca; background: #fff8f7; }

.pd-metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.pd-metric {
  padding: 17px;
  border: 1px solid var(--pd-line);
  border-radius: var(--pd-radius-md);
  background: var(--pd-surface);
  box-shadow: var(--pd-shadow-sm);
}
.pd-metric span { color: var(--pd-muted); font-size: .78rem; }
.pd-metric strong { display: block; margin-top: 5px; color: var(--pd-ink); font-size: 1.35rem; }

.pd-list { display: grid; gap: 10px; }
.pd-list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 13px 15px;
  border: 1px solid var(--pd-line);
  border-radius: var(--pd-radius-sm);
  background: var(--pd-surface);
}
.pd-list-item > div:first-child { min-width: 0; }
.pd-list-item strong { display: block; color: var(--pd-ink); }
.pd-list-item small { display: block; color: var(--pd-muted); margin-top: 3px; }

.pd-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.pd-form-grid .full { grid-column: 1 / -1; }

@media (max-width: 900px) {
  .pd-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .pd-metric-grid, .pd-form-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .pd-skeleton::after { animation: none; }
}
