/* ===== FleetAcc - formal accounting theme (RTL) ===== */
@font-face { font-family: Vazirmatn; src: url(../fonts/Vazirmatn-Regular.woff2) format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: Vazirmatn; src: url(../fonts/Vazirmatn-Medium.woff2) format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: Vazirmatn; src: url(../fonts/Vazirmatn-Bold.woff2) format('woff2'); font-weight: 700; font-display: swap; }

:root {
  --navy: #1f3864; --navy-2: #2e5395; --navy-3: #16284a; --gold: #b8860b;
  --line: #d9e1ec; --bg: #f3f5f9; --ink: #1d2433; --muted: #6b7489;
  --bs-body-font-family: Vazirmatn, Tahoma, sans-serif; --bs-body-font-size: .9rem;
}
body { background: var(--bg); color: var(--ink); }
.num, .money { font-variant-numeric: tabular-nums; direction: ltr; unicode-bidi: embed; text-align: left; white-space: nowrap; }
.money.neg { color: #b02a37; }

/* layout */
.app-shell { display: flex; min-height: 100vh; }
.sidebar { width: 250px; background: var(--navy); color: #cfd8ea; flex-shrink: 0; position: sticky; top: 0; height: 100vh; overflow-y: auto; }
.sidebar .brand { padding: 1.1rem 1.2rem; background: var(--navy-3); color: #fff; font-weight: 700; font-size: 1.05rem; border-bottom: 1px solid rgba(255,255,255,.08); }
.sidebar .brand small { display: block; font-weight: 400; font-size: .72rem; color: #9fb0cf; margin-top: 2px; }
.sidebar .nav-section { font-size: .7rem; color: #8ea0c2; padding: 1rem 1.2rem .35rem; letter-spacing: .02em; }
.sidebar a.nav-link { color: #d6deee; padding: .5rem 1.2rem; display: flex; align-items: center; gap: .6rem; border-right: 3px solid transparent; font-size: .87rem; }
.sidebar a.nav-link:hover { background: rgba(255,255,255,.06); color: #fff; }
.sidebar a.nav-link.active { background: rgba(255,255,255,.1); color: #fff; border-right-color: var(--gold); font-weight: 500; }
.sidebar .badge { margin-right: auto; }
.main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.topbar { background: #fff; border-bottom: 1px solid var(--line); padding: .6rem 1.5rem; display: flex; align-items: center; gap: 1rem; }
.topbar .page-title { font-weight: 700; font-size: 1.05rem; color: var(--navy); margin: 0; }
.content { padding: 1.4rem 1.5rem 3rem; }

/* cards / panels */
.panel { background: #fff; border: 1px solid var(--line); border-radius: 6px; box-shadow: 0 1px 2px rgba(20,40,80,.04); }
.panel-header { padding: .75rem 1rem; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: .5rem; font-weight: 700; color: var(--navy); background: #fafbfd; border-radius: 6px 6px 0 0; }
.panel-body { padding: 1rem; }
.kpi { background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: .9rem 1rem; border-top: 3px solid var(--navy-2); height: 100%; }
.kpi .label { color: var(--muted); font-size: .8rem; }
.kpi .value { font-size: 1.25rem; font-weight: 700; margin-top: .2rem; }
.kpi .icon { font-size: 1.4rem; opacity: .35; }

/* tables */
.table-formal { font-size: .85rem; margin: 0; }
.table-formal thead th { background: var(--navy); color: #fff; font-weight: 500; border-color: var(--navy-2) !important; white-space: nowrap; vertical-align: middle; }
.table-formal td { vertical-align: middle; border-color: var(--line); }
.table-formal tfoot td, .table-formal tr.total td { background: #eef2f8; font-weight: 700; border-top: 2px solid var(--navy); }
.table-formal tr.opening td { background: #f7f9fc; font-style: italic; }
.table-hover tbody tr:hover { background: #f5f8fd; }

/* forms */
.form-label { font-weight: 500; color: #34405a; font-size: .82rem; margin-bottom: .25rem; }
.form-control, .form-select { font-size: .87rem; border-color: #c8d2e1; }
.form-control:focus, .form-select:focus { border-color: var(--navy-2); box-shadow: 0 0 0 .15rem rgba(46,83,149,.15); }
.btn-navy { background: var(--navy); color: #fff; border-color: var(--navy); }
.btn-navy:hover { background: var(--navy-3); color: #fff; }
.required::after { content: " *"; color: #b02a37; }

/* voucher entry grid */
.vgrid td { padding: .25rem !important; }
.vgrid .form-control, .vgrid .form-select { font-size: .82rem; padding: .3rem .45rem; }
.balance-box { font-weight: 700; padding: .5rem .9rem; border-radius: 4px; }
.balance-ok { background: #e6f4ea; color: #146c2e; border: 1px solid #b7dfc2; }
.balance-bad { background: #fdecea; color: #a61b1b; border: 1px solid #f3c1bc; }

/* status */
.status-draft { background: #e9ecef; color: #495057; }
.status-submitted { background: #fff3cd; color: #7a5b00; }
.status-posted { background: #d1e7dd; color: #0f5132; }
.status-rejected { background: #f8d7da; color: #842029; }
.status-voided { background: #e9ecef; color: #6c757d; text-decoration: line-through; }
.stamp { display: inline-block; border: 2px solid; padding: .15rem .6rem; border-radius: 4px; font-weight: 700; transform: rotate(-4deg); }

/* login */
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #16284a 0%, #1f3864 55%, #2e5395 100%); }
.login-card { width: 380px; background: #fff; border-radius: 8px; box-shadow: 0 20px 50px rgba(0,0,0,.25); overflow: hidden; }
.login-card .head { background: #fafbfd; border-bottom: 1px solid var(--line); padding: 1.4rem; text-align: center; }
.login-card .head h1 { font-size: 1.15rem; font-weight: 700; color: var(--navy); margin: .4rem 0 0; }

/* print */

/* ---------- phones & small tablets (desktop unchanged) ---------- */
.nav-toggle, .nav-backdrop { display: none; }
@media (max-width: 991.98px) {
  .sidebar { position: fixed; top: 0; right: 0; height: 100vh; z-index: 1045; transform: translateX(100%); transition: transform .25s ease; box-shadow: -4px 0 18px rgba(0,0,0,.25); }
  body.nav-open .sidebar { transform: translateX(0); }
  body.nav-open .nav-backdrop { display: block; position: fixed; inset: 0; background: rgba(0,0,0,.4); z-index: 1040; }
  body.nav-open { overflow: hidden; }
  .nav-toggle { display: inline-flex; align-items: center; padding: .25rem .55rem; font-size: 1.25rem; line-height: 1; }
  .topbar { padding: .5rem .75rem; gap: .5rem; flex-wrap: wrap; position: sticky; top: 0; z-index: 1030; }
  .topbar .page-title { font-size: .98rem; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .topbar-date, .topbar-role { display: none; }
  .content { padding: .75rem !important; }
  .panel-header { flex-wrap: wrap; gap: .4rem; }
  .panel-header .ms-auto { margin-right: 0 !important; }
  /* wide tables scroll inside themselves instead of widening the page */
  .content table.table { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .content table.table > thead, .content table.table > tbody, .content table.table > tfoot { display: table; width: 100%; }
  .table-responsive table.table { display: table; }
  .kpi .value, .kpi-value { font-size: 1.25rem; }
  .btn-group { flex-wrap: wrap; }
}
@media (max-width: 575.98px) {
  .topbar-user { display: none; }
  .content .d-flex.gap-2 { flex-wrap: wrap; }
}

@media print {
  .sidebar, .topbar, .no-print { display: none !important; }
  body { background: #fff; }
  .content { padding: 0; }
  .panel { border: 0; box-shadow: none; }
}
