/* ===========================================================
   base.css — فریم‌ورک سبک محلی جایگزین Bootstrap CDN
   شامل: Grid / Utilities / Buttons / Forms / Badge / Table /
   Alert / Pagination — کاملاً آفلاین و بدون وابستگی خارجی
   =========================================================== */
/* ---------- فونت ایرانسنس (لوکال — بدون CDN) ---------- */
@font-face{font-family:'IRANSansX';src:url('../fonts/IRANSansX-Light.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'IRANSansX';src:url('../fonts/IRANSansX-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'IRANSansX';src:url('../fonts/IRANSansX-Medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'IRANSansX';src:url('../fonts/IRANSansX-DemiBold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'IRANSansX';src:url('../fonts/IRANSansX-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'IRANSansX';src:url('../fonts/IRANSansX-ExtraBold.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:'IRANSansX';src:url('../fonts/IRANSansX-Heavy.woff2') format('woff2');font-weight:900;font-style:normal;font-display:swap}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0}

/* ---------- Container & Grid ---------- */
.container{width:100%;max-width:1200px;margin-inline:auto;padding-inline:16px}
.container-fluid{width:100%;padding-inline:0}
.row{display:flex;flex-wrap:wrap;margin-inline:-8px}
.row>*{padding-inline:8px;width:100%}
.g-0{margin-inline:0}.g-0>*{padding-inline:0}
.g-2{margin-inline:-6px}.g-2>*{padding-inline:6px;margin-bottom:12px}
.g-3{margin-inline:-8px}.g-3>*{padding-inline:8px;margin-bottom:16px}
.g-4{margin-inline:-10px}.g-4>*{padding-inline:10px;margin-bottom:20px}

/* 12-col grid, mobile-first */
.col-12{width:100%}
.col-6{width:50%}
.col-4{width:33.3333%}
@media(min-width:576px){
  .col-sm-6{width:50%}
}
@media(min-width:768px){
  .col-md-1{width:8.3333%} .col-md-2{width:16.6667%} .col-md-3{width:25%}
  .col-md-4{width:33.3333%} .col-md-6{width:50%}
}
@media(min-width:992px){
  .col-lg-2{width:16.6667%} .col-lg-3{width:25%} .col-lg-4{width:33.3333%}
  .col-lg-5{width:41.6667%} .col-lg-6{width:50%} .col-lg-7{width:58.3333%}
  .col-lg-8{width:66.6667%}
  .p-lg-5{padding:3rem}
  .d-lg-block{display:block}
}
@media(min-width:768px){ .d-md-block{display:block} }

/* ---------- Display / Flex utilities ---------- */
.d-flex{display:flex}
.d-grid{display:grid}
.d-none{display:none}
.flex-column{flex-direction:column}
.flex-wrap{flex-wrap:wrap}
.align-items-center{align-items:center}
.align-middle{vertical-align:middle}
.align-self-start{align-self:flex-start}
.justify-content-between{justify-content:space-between}
.justify-content-center{justify-content:center}
.gap-1{gap:.25rem} .gap-2{gap:.5rem} .gap-3{gap:1rem}
.w-100{width:100%}

/* ---------- Spacing ---------- */
.m-0{margin:0} .p-0{padding:0}
.mt-1{margin-top:.25rem} .mt-2{margin-top:.5rem} .mt-3{margin-top:1rem} .mt-4{margin-top:1.5rem} .mt-5{margin-top:3rem}
.mb-2{margin-bottom:.5rem} .mb-3{margin-bottom:1rem} .mb-4{margin-bottom:1.5rem}
.p-3{padding:1rem} .p-4{padding:1.5rem}
.py-2{padding-block:.5rem} .py-4{padding-block:1.5rem} .py-5{padding-block:3rem}

/* ---------- Text ---------- */
.text-center{text-align:center}
.text-muted{color:#6b7a90}
.text-dark{color:#14233e}
.text-danger{color:#c0392b}
.text-success{color:#1e8e5a}
.small{font-size:.8rem}
.opacity-75{opacity:.75}
.rounded-4{border-radius:1rem}
.rounded-circle{border-radius:50%}
.rounded-pill{border-radius:999px}
.border{border:1px solid #e5e8ef}
.bg-white{background:#fff}
.bg-light{background:#f4f6f9}
.bg-dark{background:#0b1e3a;color:#fff}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:.85rem;
  padding:8px 16px;border-radius:10px;border:1px solid transparent;cursor:pointer;
  background:#eef1f6;color:#14233e;transition:.2s;text-decoration:none;line-height:1.6}
.btn:hover{filter:brightness(.97)}
.btn-sm{padding:5px 10px;font-size:.75rem;border-radius:8px}
.btn-dark{background:#0b1e3a;color:#fff;border-color:#0b1e3a}
.btn-dark:hover{background:#12284a}
.btn-outline-dark{background:transparent;color:#0b1e3a;border-color:#0b1e3a}
.btn-outline-dark:hover{background:#0b1e3a;color:#fff}
.btn-outline-secondary{background:transparent;color:#6b7a90;border-color:#c9d2e0}
.btn-outline-danger{background:transparent;color:#c0392b;border-color:#e6b3ab}
.btn-outline-danger:hover{background:#c0392b;color:#fff}
.btn-outline-success{background:transparent;color:#1e8e5a;border-color:#a9d9c1}

/* ---------- Forms ---------- */
.form-control,.form-select{width:100%;font-size:.85rem;padding:9px 12px;border-radius:10px;
  border:1px solid #dfe4ee;background:#fff;color:#14233e;font-family:inherit}
.form-control:focus,.form-select:focus{outline:none;border-color:#c8a96a;box-shadow:0 0 0 3px rgba(200,169,106,.18)}
.form-label{display:block;font-size:.78rem;margin-bottom:4px;color:#3a4a66}
.form-check{display:flex;align-items:center;gap:6px;font-size:.85rem;cursor:pointer}
.form-check-input{width:16px;height:16px}

/* ---------- Badge / Alert ---------- */
.badge{display:inline-block;padding:.35em .65em;border-radius:6px;font-size:.72rem;font-weight:600}
.alert{padding:10px 14px;border-radius:10px;font-size:.85rem;border:1px solid transparent}
.alert-danger{background:#fdecea;color:#9c2b20;border-color:#f7c9c2}
.alert-success{background:#e8f8ef;color:#186a44;border-color:#b7e9cd}

/* ---------- Table ---------- */
table.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:8px 10px;border-bottom:1px solid #eef1f6;text-align:right}
.table-sm th,.table-sm td{padding:6px 8px}

/* ---------- Pagination ---------- */
.pagination{display:flex;gap:6px;list-style:none;padding:0;margin:0;justify-content:center;flex-wrap:wrap}
.page-item .page-link{display:block;padding:7px 13px;border-radius:8px;border:1px solid #e2e6ee;color:#0b1e3a;text-decoration:none;font-size:.8rem}
.page-item.active .page-link{background:#0b1e3a;color:#fff;border-color:#0b1e3a}

/* ---------- Misc ---------- */
a{color:inherit}
iframe{border:0}
[hidden]{display:none!important}
h1,h2,h3,h4,h5,h6{margin:0 0 .5rem}
p{margin:0 0 1rem}
hr{border:none;border-top:1px solid #e5e8ef;margin:12px 0}
input,select,textarea,button{font-family:inherit}
form{margin:0}
