/**
 * @file
 * Token + layout dung chung cho 5 trang booking B2C (Figma Vietnam.Travel).
 */

:root {
  --vn-main: #a5190e;
  --vn-primary: #951c1f;
  --vn-text: #0c2340;
  --vn-sub: #607898;
  --vn-radius: 4px;
  --vn-space: 12px;
  --vn-stroke: 1px;
  --vn-border: #e2e8f0;
  --vn-bg: #ffffff;
  --vn-bg-soft: #f5f7fa;
}

.vnat-app {
  max-width: 1200px;
  margin: 0 auto;
  padding: calc(var(--vn-space) * 2) var(--vn-space);
  color: var(--vn-text);
  font-size: 14px;
  line-height: 1.5;
}

.vnat-app__loading {
  padding: calc(var(--vn-space) * 3) 0;
  text-align: center;
  color: var(--vn-sub);
}

.vnat-layout {
  display: flex;
  gap: calc(var(--vn-space) * 2);
  align-items: flex-start;
}

.vnat-sidebar {
  flex: 0 0 216px;
  width: 216px;
}

.vnat-content {
  flex: 1 1 auto;
  min-width: 0;
}

.vnat-card {
  border: var(--vn-stroke) solid var(--vn-border);
  border-radius: var(--vn-radius);
  background: var(--vn-bg);
  padding: var(--vn-space);
}

.vnat-btn {
  display: inline-block;
  border: 0;
  border-radius: var(--vn-radius);
  background: var(--vn-main);
  color: #fff;
  padding: 10px 18px;
  font-size: 14px;
  cursor: pointer;
}

.vnat-btn--ghost {
  background: transparent;
  color: var(--vn-main);
  border: var(--vn-stroke) solid var(--vn-main);
}

.vnat-btn[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Skeleton loading */
.vnat-skeleton {
  position: relative;
  overflow: hidden;
  background: var(--vn-bg-soft);
  border-radius: var(--vn-radius);
  min-height: 16px;
}

.vnat-skeleton::after {
  content: '';
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.6), transparent);
  animation: vnat-shimmer 1.2s infinite;
}

@keyframes vnat-shimmer {
  100% { transform: translateX(100%); }
}

/* State banner */
.vnat-state {
  padding: calc(var(--vn-space) * 2);
  text-align: center;
  border: var(--vn-stroke) solid var(--vn-border);
  border-radius: var(--vn-radius);
  background: var(--vn-bg-soft);
}

.vnat-state__msg {
  margin: 0 0 var(--vn-space);
  color: var(--vn-sub);
}

.vnat-state__retry,
.vnat-state__clear {
  border: var(--vn-stroke) solid var(--vn-main);
  border-radius: var(--vn-radius);
  background: transparent;
  color: var(--vn-main);
  padding: 6px 14px;
  cursor: pointer;
}

/* Modal placeholder ("Sap ra mat") */
.vnat-modal {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(12, 35, 64, 0.5);
  z-index: 1000;
}

.vnat-modal__box {
  background: var(--vn-bg);
  border-radius: var(--vn-radius);
  padding: calc(var(--vn-space) * 2);
  max-width: 360px;
  text-align: center;
}

.vnat-modal__close {
  margin-top: var(--vn-space);
}

@media (max-width: 768px) {
  .vnat-layout {
    flex-direction: column;
  }
  .vnat-sidebar {
    flex-basis: auto;
    width: 100%;
  }
}
