@font-face { font-family: "Vazirmatn"; src: url("../fonts/Vazirmatn-Regular.cdc140628f11.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Vazirmatn"; src: url("../fonts/Vazirmatn-Bold.7958481fe611.woff2") format("woff2"); font-weight: 700; font-display: swap; }
:root { --raya-blue: #0b3d91; --raya-bg: #f4f6fa; --raya-text: #111827; --raya-danger: #b00020; --raya-ok: #0a6b2f; }
html { font-size: 18px; }
body { font-family: "Vazirmatn", Tahoma, sans-serif; background: var(--raya-bg); color: var(--raya-text); line-height: 1.8; }
a { color: var(--raya-blue); }
.navbar-raya { background: var(--raya-blue); }
.navbar-raya .nav-link, .navbar-raya .navbar-brand { color: #fff; font-weight: 700; padding: .75rem 1rem; }
.navbar-raya .nav-link:hover, .navbar-raya .nav-link:focus { background: rgba(255,255,255,.18); border-radius: .5rem; }
.navbar-raya .navbar-toggler { border-color: #fff; color: #fff; }
.navbar-raya .navbar-toggler-icon { filter: invert(1); }
.btn { min-height: 48px; padding: .55rem 1.3rem; font-weight: 700; font-size: 1rem; }
.btn-lg { min-height: 56px; font-size: 1.15rem; }
.form-control, .form-select { min-height: 50px; font-size: 1.05rem; border: 2px solid #6b7280; }
.form-control:focus, .form-select:focus { border-color: var(--raya-blue); box-shadow: 0 0 0 .25rem rgba(11,61,145,.25); }
.form-check-input { width: 1.5rem; height: 1.5rem; border: 2px solid #6b7280; }
.form-check-label { padding-inline-start: .4rem; }
.form-label { font-weight: 700; margin-bottom: .25rem; }
.field-error { color: var(--raya-danger); font-weight: 700; margin-top: .25rem; }
.field-error::before { content: "⚠ "; }
.card { border: 1px solid #c7cdd8; border-radius: .9rem; }
.stat-card .stat-value { font-size: 1.6rem; font-weight: 700; color: var(--raya-blue); }
.stat-card .stat-label { font-size: 1rem; color: #374151; }
.page-title { font-weight: 700; font-size: 1.6rem; margin: 1rem 0; }
.money { direction: rtl; white-space: nowrap; font-weight: 700; }
.ltr { direction: ltr; unicode-bidi: embed; }
.table th { background: #e5e9f2; white-space: nowrap; }
.badge-status { display: inline-block; white-space: nowrap; font-size: .95rem; padding: .4rem .7rem; border-radius: .6rem; background: #e5e9f2; color: #111827; border: 2px solid #6b7280; }
.badge-status.ok { border-color: var(--raya-ok); color: var(--raya-ok); }
.badge-status.bad { border-color: var(--raya-danger); color: var(--raya-danger); }
.alert { font-size: 1.05rem; font-weight: 700; }
.btn-danger-outline { border: 2px solid var(--raya-danger); color: var(--raya-danger); background: #fff; }
.btn-danger-outline:hover { background: var(--raya-danger); color: #fff; }
.step-list { display: flex; gap: .5rem; flex-wrap: wrap; padding: 0; list-style: none; margin: 0 0 1rem; }
.step-list li { padding: .3rem .9rem; border: 2px solid #9ca3af; border-radius: 2rem; font-weight: 700; }
.step-list li.current { background: var(--raya-blue); border-color: var(--raya-blue); color: #fff; }
.step-list li.done { border-color: var(--raya-ok); color: var(--raya-ok); }
.choice-card { display: block; border: 2px solid #6b7280; border-radius: .9rem; padding: 1rem; cursor: pointer; background: #fff; }
.choice-card:hover, .choice-card:focus-within { border-color: var(--raya-blue); }
.skip-link { position: absolute; right: -999px; }
.skip-link:focus { right: 0; z-index: 9999; background: #fff; padding: .5rem; }
@media (max-width: 767px) {
  html { font-size: 17px; }
  .stat-card .stat-value { font-size: 1.15rem; }
  .stat-card .money { white-space: normal; }
  .page-title { font-size: 1.35rem; }
  .ltr { overflow-wrap: anywhere; }
  table.kv th { width: auto; }
  table.stack thead { display: none; }
  table.stack, table.stack tbody, table.stack tr, table.stack td { display: block; width: 100%; }
  table.stack tr { background: #fff; border: 1px solid #c7cdd8; border-radius: .8rem; margin-bottom: .8rem; padding: .4rem .6rem; }
  table.stack td { display: flex; justify-content: space-between; gap: 1rem; border: 0; border-bottom: 1px dashed #d1d5db; padding: .35rem 0; text-align: left; }
  table.stack td:last-child { border-bottom: 0; }
  table.stack td::before { content: attr(data-label); font-weight: 700; text-align: right; flex: 0 0 42%; }
  .btn-block-mobile { width: 100%; }
}
table.kv th { width: 55%; }
@media print {
  .no-print, .navbar, footer { display: none !important; }
  body { background: #fff; font-size: 12pt; }
  .card { border: 0; }
  @page { size: A4; margin: 15mm; }
}
