/* تم کلی سامانه — ساده، سبز ملایم، بدون شلوغی */

:root {
  --app-green-900: #143d28;
  --app-green-800: #1b4d32;
  --app-green-700: #276341;
  --app-green-600: #338552;
  --app-green-500: #4ea765;
  --app-green-400: #66b67b;
  --app-green-100: #d4ead9;
  --app-green-50: #e8f4ec;
  --app-surface: #f5fbf7;
  --app-surface-soft: #edf6f0;
  --app-border: #9dccb0;
  --app-border-strong: #7eb892;
  --app-text: #1f2937;
  --app-text-muted: #5b6b63;
  --app-shadow-sm: 0 2px 10px rgba(27, 77, 50, 0.08);
  --app-shadow-md: 0 8px 24px rgba(27, 77, 50, 0.12);
  --app-radius-lg: 20px;
  --app-radius: 16px;
  --app-radius-sm: 12px;
  --app-radius-xs: 10px;
  --app-nav-header-bg: linear-gradient(135deg, #143d28 0%, #1b4d32 45%, #276341 100%);
  --app-nav-header-solid: #1b4d32;
  --app-nav-header-border: #143d28;
  --app-table-header-bg: #246344;
  --app-table-header-border: #20563a;

  --bs-primary: #2f7a4d;
  --bs-primary-rgb: 47, 122, 77;
  --bs-success: #3d9a5c;
  --bs-success-rgb: 61, 154, 92;
  --bs-body-color: var(--app-text);
  --bs-body-bg: transparent;
  --bs-border-color: var(--app-border);
  --bs-link-color: var(--app-green-700);
  --bs-link-hover-color: var(--app-green-900);
  --bs-border-radius: 12px;
  --bs-border-radius-sm: 10px;
  --bs-border-radius-lg: 16px;
  --bs-border-radius-xl: 20px;
}

/* گوشه گرد یکدست همه باکس‌ها */
.card,
.alert,
.filter-box,
.excel-box,
.sheet-page-panel,
.app-home-wrap,
.search-page-panel,
.search-hero,
.login-card,
.summary-card,
.route-card,
.sheet-card,
.coupes-table,
.table,
.table-responsive,
.reservations-report-wrap,
.dropdown-menu,
.modal-content,
.list-group,
.input-group,
.input-group-text,
.passenger-card,
.tourism-summary-card,
.sticky-action,
.search-step-item,
textarea.form-control,
.form-check-input,
.badge,
.pagination .page-link,
.delete-cell {
  border-radius: var(--app-radius-sm);
}

.app-home-wrap,
.search-page-panel,
.login-card,
.sheet-page-panel,
.filter-box {
  border-radius: var(--app-radius-lg) !important;
}

.search-hero,
.card.p-3,
.card.p-4,
form.card,
.passenger-card,
.route-card,
.sheet-card {
  border-radius: var(--app-radius) !important;
}

.passenger-card .card-head {
  border-radius: var(--app-radius) var(--app-radius) 0 0 !important;
}

.table-responsive,
.coupes-table,
.sheet-page-panel .table-responsive {
  overflow: hidden;
}

.trips-grid-table .form-control,
.trips-grid-table .form-select,
.trips-grid-table .btn,
.filter-box .form-control,
.filter-box .form-select,
.filter-box .btn,
.search-hero .form-control,
.search-hero .form-select {
  border-radius: var(--app-radius-xs);
}

html {
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  color: var(--app-text);
  background:
    radial-gradient(ellipse 85% 60% at 88% -5%, rgba(78, 167, 101, 0.38) 0%, transparent 55%),
    radial-gradient(ellipse 75% 55% at 8% 100%, rgba(39, 99, 65, 0.32) 0%, transparent 50%),
    linear-gradient(165deg, #d4ead9 0%, #e2f0e6 38%, #c8e0d0 100%);
  background-attachment: fixed;
}

/* نوار بالا */
.app-navbar {
  background: linear-gradient(135deg, var(--app-green-900) 0%, var(--app-green-800) 45%, var(--app-green-700) 100%) !important;
  box-shadow: 0 4px 18px rgba(20, 61, 40, 0.28);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  padding-block: 0.55rem;
}

.app-navbar .navbar-brand,
.app-navbar .nav-link {
  color: rgba(255, 255, 255, 0.92) !important;
  font-weight: 500;
  transition: color 0.15s ease, background 0.15s ease;
}

.app-navbar .nav-link:hover,
.app-navbar .nav-link:focus {
  color: #fff !important;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 8px;
}

.app-navbar .nav-link.text-light {
  color: rgba(255, 255, 255, 0.75) !important;
  cursor: default;
}

.app-navbar .nav-link.text-light:hover {
  background: transparent !important;
}

.app-navbar .nav-link-app {
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 10px;
  padding: 0.35rem 0.85rem !important;
  font-weight: 700;
}

.app-navbar .nav-link-reserve {
  background: linear-gradient(135deg, #f59e0b 0%, #ea580c 100%);
  border: 1px solid #c2410c;
  border-radius: 10px;
  padding: 0.35rem 1rem !important;
  font-weight: 800;
  color: #fff !important;
  box-shadow: 0 3px 12px rgba(234, 88, 12, 0.35);
  margin-inline: 0.35rem;
}

.app-navbar .nav-link-reserve:hover,
.app-navbar .nav-link-reserve:focus {
  background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%) !important;
  color: #fff !important;
  transform: translateY(-1px);
}

.app-navbar .nav-link:not(.nav-link-app):not(.nav-link-reserve):not(.text-light) {
  border-radius: 8px;
  padding: 0.35rem 0.65rem !important;
}

/* محتوای صفحات */
.app-main {
  position: relative;
}

.page-header > h1,
.page-header > h2,
.page-header > .page-header-title {
  color: var(--app-green-900);
  font-weight: 800;
  letter-spacing: -0.02em;
}

/* کارت‌ها و باکس‌ها */
.card {
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius);
  box-shadow: var(--app-shadow-sm);
  background: var(--app-surface);
}

.card-header {
  background: var(--app-green-50);
  border-bottom: 1px solid var(--app-border);
  font-weight: 700;
  color: var(--app-green-800);
}

.filter-box {
  border-radius: var(--app-radius-lg) !important;
  background: linear-gradient(180deg, #d8edde 0%, #c5e2cd 100%) !important;
  border: 2px solid #8fbf9a !important;
  box-shadow: var(--app-shadow-sm) !important;
  overflow: hidden;
}

.filter-box .form-control,
.filter-box .form-select,
.filter-box .btn {
  border-radius: var(--app-radius-xs);
}

.excel-box {
  border-radius: var(--app-radius-sm);
  background: var(--app-surface-soft);
  border: 1px solid var(--app-border);
}

/* دکمه‌ها */
.btn {
  border-radius: var(--app-radius-xs);
  font-weight: 600;
}

.btn-primary {
  background: linear-gradient(135deg, var(--app-green-600) 0%, var(--app-green-700) 100%);
  border-color: var(--app-green-800);
  box-shadow: 0 2px 8px rgba(39, 99, 65, 0.25);
}

.btn-primary:hover,
.btn-primary:focus {
  background: linear-gradient(135deg, var(--app-green-500) 0%, var(--app-green-600) 100%);
  border-color: var(--app-green-700);
  box-shadow: 0 3px 10px rgba(39, 99, 65, 0.32);
}

.btn-save-changes {
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
  border: 1px solid #1d4ed8;
  color: #fff !important;
  font-weight: 700;
  box-shadow: 0 2px 10px rgba(37, 99, 235, 0.32);
}

.btn-save-changes:hover,
.btn-save-changes:focus {
  background: linear-gradient(135deg, #60a5fa 0%, #3b82f6 100%);
  border-color: #2563eb;
  color: #fff !important;
  box-shadow: 0 3px 12px rgba(37, 99, 235, 0.4);
}

.btn-stops-link {
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
  border: 1px solid #1d4ed8;
  color: #fff !important;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.28);
}

.btn-stops-link:hover,
.btn-stops-link:focus {
  background: linear-gradient(135deg, #60a5fa 0%, #3b82f6 100%);
  border-color: #2563eb;
  color: #fff !important;
  box-shadow: 0 3px 10px rgba(37, 99, 235, 0.38);
}

.btn-success {
  background: linear-gradient(135deg, #3d9a5c 0%, #2f7a4d 100%);
  border-color: #256b42;
}

.btn-outline-secondary {
  border-color: #b8c4be;
  color: #4b5c54;
  background: rgba(255, 255, 255, 0.75);
}

.btn-outline-secondary:hover {
  background: #fff;
  border-color: #9aaea4;
  color: var(--app-green-800);
}

/* فرم‌ها */
.form-control,
.form-select {
  border-color: var(--app-border-strong);
  border-radius: var(--app-radius-xs);
  background-color: rgba(255, 255, 255, 0.92);
}

.form-control:focus,
.form-select:focus {
  border-color: var(--app-green-400);
  box-shadow: 0 0 0 0.2rem rgba(102, 182, 123, 0.22);
}

/* جدول عمومی */
.table {
  background: var(--app-surface);
  border-radius: var(--app-radius-sm);
  overflow: hidden;
}

.table > thead > tr > th,
.table > thead.table-light > tr > th,
.table thead th {
  background: var(--app-table-header-bg) !important;
  background-color: var(--app-table-header-bg) !important;
  color: #fff !important;
  border-color: var(--app-table-header-border) !important;
  font-weight: 700;
  --bs-table-bg: #246344;
  --bs-table-color: #fff;
  --bs-table-border-color: #20563a;
}

/* هشدارها */
.alert {
  border-radius: var(--app-radius-sm);
  border-width: 1px;
}

.alert-info {
  background: #edf7f1;
  border-color: #b8dcc4;
  color: #1e4d34;
}

.alert-success {
  background: #e8f6ec;
  border-color: #a8d4b6;
  color: #14532d;
}

.alert-danger {
  background: #fef2f2;
  border-color: #fecaca;
}

/* صفحه ورود */
.login-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding: 2rem 0;
}

.login-card {
  border: 2px solid #7eb892;
  border-radius: 18px;
  box-shadow: 0 12px 32px rgba(27, 77, 50, 0.22);
  overflow: hidden;
  background: linear-gradient(160deg, #f0f9f3 0%, #e3f2e8 100%);
}

.login-card .card-body {
  padding: 2rem !important;
}

.login-card .card-title {
  color: var(--app-green-900);
  font-weight: 800;
  text-align: center;
}

.login-brand {
  text-align: center;
  margin-bottom: 1.25rem;
  color: var(--app-green-700);
  font-size: 0.9rem;
  font-weight: 600;
}

/* صفحه اصلی برنامه */
.app-home-page {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: calc(100vh - 5.5rem);
  padding: 1.25rem 0.75rem;
}

.app-home-wrap {
  width: 100%;
  max-width: 920px;
  margin: 0 auto;
  background: linear-gradient(160deg, #f0f9f3 0%, #e3f2e8 55%, #d6ebdd 100%);
  border: 2px solid #7eb892;
  border-radius: 20px;
  box-shadow: 0 14px 36px rgba(27, 77, 50, 0.22);
}

.app-home-title {
  color: var(--app-green-900);
  font-weight: 800;
  font-size: clamp(1.15rem, 2.4vw, 1.55rem);
  text-align: center;
  margin: 0 0 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid #9dccb0;
}

.app-home-summary {
  text-align: center;
  margin-bottom: 1.35rem;
}

.app-home-summary-title {
  color: var(--app-green-800);
  font-weight: 800;
  font-size: 1rem;
  margin: 0 0 0.85rem;
}

.app-home-summary-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 0.7rem;
  margin-inline: auto;
  max-width: 52rem;
}

.app-home-summary-grid .summary-card {
  flex: 0 1 11.75rem;
  min-width: 10.5rem;
  max-width: 12.5rem;
}

.summary-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: .35rem;
  border: 2px solid #9dccb0 !important;
  border-radius: 12px !important;
  background: linear-gradient(180deg, #ffffff 0%, #edf7f0 100%) !important;
  box-shadow: 0 4px 14px rgba(27, 77, 50, 0.14) !important;
  padding: .75rem .8rem;
  text-align: center;
  min-height: 95px;
}

.sheet-card {
  border: 1px solid var(--app-border) !important;
}

/* شیت‌های برنامه */
.sheet-page-panel {
  background: linear-gradient(180deg, #eef7f1 0%, #e2f0e6 100%);
  border: 2px solid #8fbf9a;
  border-radius: var(--app-radius-lg);
  box-shadow: 0 6px 20px rgba(27, 77, 50, 0.16);
  padding: 1rem;
}

.sheet-page-panel .table-responsive {
  border-radius: var(--app-radius-sm);
}

/* صفحه کوپه */
.coupes-table {
  border-radius: var(--app-radius-sm);
  overflow: hidden;
  box-shadow: var(--app-shadow-sm);
}

/* متن کم‌رنگ */
.text-muted {
  color: var(--app-text-muted) !important;
}

/* صفحه‌بندی */
.pagination .page-link {
  border-radius: 8px;
  margin-inline: 2px;
  border-color: var(--app-border);
  color: var(--app-green-700);
}

.pagination .page-item.active .page-link {
  background: var(--app-green-600);
  border-color: var(--app-green-700);
}

/* فرم ویرایش / افزودن کاربر */
.user-form-page {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: calc(100vh - 5.5rem);
  padding: 1rem 0.75rem;
}

.user-form-wrap {
  width: 100%;
  max-width: 560px;
}

.user-form-wrap .card {
  border-radius: var(--app-radius-lg);
}

/* صفحه رزرو آنلاین */
.search-page {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: calc(100vh - 5.5rem);
  padding: 1rem 0.75rem;
}

.search-page-panel {
  width: 100%;
  max-width: 960px;
  background: linear-gradient(160deg, #f0f9f3 0%, #e3f2e8 55%, #d6ebdd 100%);
  border: 2px solid #7eb892;
  border-radius: 20px;
  box-shadow: 0 14px 36px rgba(27, 77, 50, 0.22);
  padding: 1.25rem 1.35rem;
}

.search-page-title {
  color: var(--app-green-900);
  font-weight: 800;
  font-size: clamp(1.2rem, 2.5vw, 1.6rem);
  text-align: center;
  margin: 0 0 1rem;
  padding-bottom: 0.85rem;
  border-bottom: 2px solid #9dccb0;
}

.search-step-bar {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1.1rem;
  flex-wrap: wrap;
  justify-content: center;
}

.search-step-item {
  padding: 0.4rem 0.95rem;
  border-radius: 2rem;
  font-size: 0.84rem;
  background: #d4ead9;
  color: #2a4f38;
  border: 1px solid #9dccb0;
  font-weight: 600;
}

.search-step-item.active {
  background: linear-gradient(135deg, #2f7a4d 0%, #1b4d32 100%);
  color: #fff;
  border-color: #143d28;
  box-shadow: 0 3px 10px rgba(27, 77, 50, 0.28);
}

.search-hero {
  background: linear-gradient(135deg, #1b4d32 0%, #2f7a4d 52%, #40916c 100%);
  color: #fff;
  border-radius: 16px;
  padding: 1.25rem 1.35rem;
  border: 2px solid #7eb892;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.search-hero .form-label {
  color: #e8f8ec;
  font-weight: 600;
  font-size: 0.88rem;
}

.search-form-layout {
  display: flex;
  align-items: stretch;
  gap: 1rem;
}

.search-form-fields {
  flex: 1;
  min-width: 0;
}

.search-form-action {
  display: flex;
  align-items: flex-end;
  flex-shrink: 0;
}

.btn-search-train {
  background: linear-gradient(180deg, #f59e0b 0%, #ea580c 100%);
  border: 1px solid #c2410c;
  color: #fff !important;
  font-weight: 800;
  font-size: 1rem;
  padding: 0.85rem 1.35rem;
  border-radius: 12px;
  box-shadow: 0 4px 16px rgba(234, 88, 12, 0.48);
  white-space: nowrap;
  min-height: 3.25rem;
  text-shadow: 0 1px 2px rgba(120, 53, 15, 0.35);
}

.btn-search-train:hover,
.btn-search-train:focus {
  background: linear-gradient(180deg, #fbbf24 0%, #f59e0b 100%);
  border-color: #ea580c;
  color: #fff !important;
  box-shadow: 0 6px 18px rgba(234, 88, 12, 0.55);
  transform: translateY(-1px);
}

.search-leg-toggle {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 0.75rem;
  align-items: center;
}

.search-leg-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  padding: 0.4rem 0.95rem;
  color: #fff;
  font-weight: 600;
  cursor: pointer;
  flex: 0 0 auto;
  white-space: nowrap;
}

.search-leg-pill input {
  transform: scale(1.15);
}

.search-results-wrap {
  margin-top: 1.25rem;
}

.route-card {
  border: 2px solid #9dccb0;
  border-radius: 12px;
  background: linear-gradient(180deg, #fff 0%, #edf7f0 100%);
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(27, 77, 50, 0.1);
}

.route-card:hover {
  border-color: #52b788;
  transform: translateY(-1px);
}

.route-card.selected {
  border-color: #1b4d32;
  box-shadow: 0 0 0 3px rgba(45, 106, 79, 0.22);
  background: linear-gradient(180deg, #f0fff5 0%, #dff5e8 100%);
}

.route-card input[type=radio] {
  transform: scale(1.2);
}

.sticky-action {
  position: sticky;
  bottom: 0;
  background: linear-gradient(180deg, rgba(240, 249, 243, 0.92) 0%, #e3f2e8 100%);
  border-top: 2px solid #9dccb0;
  border-radius: 0 0 14px 14px;
  padding: 1rem 0.25rem;
  margin: 1rem -0.25rem -0.25rem;
  z-index: 10;
  text-align: end;
}

.btn-continue-reserve {
  background: linear-gradient(135deg, #3d9a5c 0%, #1b4d32 100%);
  border: 2px solid #143d28;
  color: #fff !important;
  font-weight: 800;
  padding: 0.75rem 1.75rem;
  border-radius: 12px;
  box-shadow: 0 4px 14px rgba(27, 77, 50, 0.32);
}

.btn-continue-reserve:hover,
.btn-continue-reserve:focus {
  background: linear-gradient(135deg, #4ea765 0%, #2f7a4d 100%);
  border-color: #1b4d32;
  color: #fff !important;
  box-shadow: 0 6px 16px rgba(27, 77, 50, 0.38);
}

@media (max-width: 767.98px) {
  .search-form-layout {
    flex-direction: column;
  }

  .search-form-action {
    order: 1;
    justify-content: stretch;
  }

  .btn-search-train {
    width: 100%;
  }
}
