@import url("./airvaree-design-tokens.css");

html { min-height: 100%; background: var(--airvaree-bg); }
body {
  min-height: 100vh;
  background-color: var(--airvaree-bg) !important;
  color: var(--airvaree-text) !important;
  font-family: "Noto Sans Thai", Tahoma, "Leelawadee UI", system-ui, -apple-system, "Segoe UI", sans-serif;
  transition: background-color .2s ease, color .2s ease;
}

.card, .modal-content, .list-group-item, .dropdown-menu, .popover, .offcanvas,
.app-card {
  color: var(--airvaree-text);
  background-color: var(--airvaree-surface);
  border-color: var(--airvaree-border);
}
.card, .app-card { box-shadow: var(--airvaree-shadow); }
.text-muted, .form-text { color: var(--airvaree-muted) !important; }
.text-dark { color: var(--airvaree-text) !important; }
.bg-warning.text-dark, .text-dark.bg-warning, .btn-warning.text-dark, .badge.bg-warning.text-dark { color: #263342 !important; }
.btn-light.text-primary { color: #07577d !important; }
.bg-light, .bg-white, .table-light, .modal-footer.bg-light, .input-group-text.bg-light {
  color: var(--airvaree-text) !important;
  background-color: var(--airvaree-surface-raised) !important;
}
.border, .border-top, .border-bottom, .border-start, .border-end { border-color: var(--airvaree-border) !important; }
.table { --bs-table-color: var(--airvaree-text); --bs-table-bg: transparent; --bs-table-border-color: var(--airvaree-border); --bs-table-hover-bg: color-mix(in srgb, var(--airvaree-primary) 9%, var(--airvaree-surface)); }
.table-light { --bs-table-color: var(--airvaree-text) !important; --bs-table-bg: var(--airvaree-surface-raised) !important; --bs-table-border-color: var(--airvaree-border) !important; }
.table-light > tr > *, .table-light > :not(caption) > * > * { color: var(--airvaree-text) !important; background-color: var(--airvaree-surface-raised) !important; box-shadow: inset 0 0 0 9999px var(--airvaree-surface-raised) !important; }
.table thead th { color: var(--airvaree-text); }
.form-control, .form-select, .input-group-text {
  color: var(--airvaree-text);
  background-color: var(--airvaree-surface);
  border-color: var(--airvaree-border);
}
.form-control::placeholder { color: var(--airvaree-muted); opacity: .82; }
.form-control:focus, .form-select:focus {
  color: var(--airvaree-text);
  background-color: var(--airvaree-surface);
  border-color: var(--airvaree-brand-primary);
  box-shadow: var(--airvaree-focus-ring);
}
.form-select option { color: var(--airvaree-text); background: var(--airvaree-surface); }
.nav-pills .nav-link:not(.active) { color: var(--airvaree-muted); }
.nav-pills .nav-link:not(.active):hover { color: var(--airvaree-primary-strong); background: color-mix(in srgb, var(--airvaree-primary) 10%, transparent); }
.btn-primary {
  --bs-btn-color: var(--airvaree-text-on-brand);
  --bs-btn-bg: var(--airvaree-brand-primary);
  --bs-btn-border-color: var(--airvaree-brand-primary);
  --bs-btn-hover-color: #ffffff;
  --bs-btn-hover-bg: #1178bd;
  --bs-btn-hover-border-color: #1178bd;
  --bs-btn-active-color: #ffffff;
  --bs-btn-active-bg: #0d69a7;
  --bs-btn-active-border-color: #0d69a7;
}
.btn-outline-primary {
  --bs-btn-color: var(--airvaree-primary-strong);
  --bs-btn-border-color: var(--airvaree-brand-primary);
  --bs-btn-hover-bg: var(--airvaree-brand-primary);
  --bs-btn-hover-border-color: var(--airvaree-brand-primary);
  --bs-btn-hover-color: var(--airvaree-text-on-brand);
}
.bg-primary { --bs-bg-opacity: 1; color: #fff !important; background-color: #0b5683 !important; }
.alert { border-color: var(--airvaree-border); }
.modal-header, .modal-footer { border-color: var(--airvaree-border); }
.fc { --fc-page-bg-color: var(--airvaree-surface); --fc-neutral-bg-color: var(--airvaree-surface-raised); --fc-border-color: var(--airvaree-border); --fc-neutral-text-color: var(--airvaree-muted); --fc-today-bg-color: color-mix(in srgb, var(--airvaree-primary) 12%, transparent); --fc-button-bg-color: #087eaf; --fc-button-border-color: #087eaf; --fc-button-hover-bg-color: #06658f; --fc-button-hover-border-color: #06658f; --fc-button-active-bg-color: #064f73; --fc-button-active-border-color: #064f73; max-width: 100%; }
.fc .fc-col-header-cell-cushion, .fc .fc-daygrid-day-number { color: var(--airvaree-text); }
.fc .fc-list-day-cushion { background: var(--airvaree-surface-raised) !important; }
.fc .fc-list-day-text, .fc .fc-list-day-side-text { color: var(--airvaree-primary-strong) !important; }
.fc .fc-list-table { width: 100%; table-layout: fixed; }
.fc .fc-list-event-title { white-space: normal; overflow-wrap: anywhere; }
.fc .fc-list-event-title a { color: var(--airvaree-text) !important; white-space: normal; overflow-wrap: anywhere; }
.theme-toggle-inline { flex: 0 0 auto; min-width: 42px; min-height: 40px; }
.theme-toggle-inline:focus-visible { outline: 3px solid var(--airvaree-primary); outline-offset: 3px; }
@media (max-width: 767.98px) {
  .dashboard-brand-row { flex-direction: column; align-items: stretch !important; }
  .dashboard-brand-row .brand-title { font-size: 1.12rem !important; white-space: nowrap; }
  .dashboard-branch-select { width: 100% !important; min-height: 42px; }
  .dashboard-header-actions { flex-direction: column; align-items: stretch !important; gap: .65rem !important; padding-top: .7rem !important; }
  .dashboard-header-actions #userDisplay { width: 100%; margin: 0 !important; text-align: left !important; overflow-wrap: anywhere; }
  .dashboard-header-links { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(48px, 1fr)); gap: .5rem; width: 100%; }
  .dashboard-header-links .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .45rem !important; white-space: nowrap; }
  .dashboard-header-links .btn i { margin: 0 !important; font-size: 1.05rem; }
  .header-action-label { display: none; }
  .booking-header { flex-direction: column; align-items: stretch !important; gap: .65rem; padding: .85rem !important; }
  .booking-header-main { width: 100%; min-width: 0; gap: .55rem !important; }
  .booking-header-main > a { flex: 0 0 auto; min-height: 42px; display: inline-flex; align-items: center; justify-content: center; }
  .booking-title { min-width: 0; margin-left: 0 !important; font-size: 1rem !important; line-height: 1.35; overflow-wrap: anywhere; }
  .booking-title-en { display: none; }
  .booking-header-actions { display: grid !important; grid-template-columns: 42px minmax(0, 1fr) auto; gap: .55rem !important; width: 100%; }
  .booking-header-actions #airvareeThemeToggle { min-height: 40px; }
  .booking-user-display { min-width: 0; overflow-wrap: anywhere; font-size: .76rem !important; }
  .booking-parser-heading { align-items: flex-start !important; flex-direction: column; gap: .45rem; }
  .booking-parser-heading .badge { white-space: normal; text-align: left; }
  .booking-header-actions > .btn:last-child { white-space: nowrap; }
  .booking-header-actions .booking-logout-label { display: none; }
  .booking-calendar-label { display: none; }
  .booking-header-main > a { width: 42px; }
  .booking-header-main > a i { margin: 0 !important; }
  .booking-header + .card { padding: .85rem !important; }
  .container-fluid > .card.p-4 { padding: 1rem !important; }
  #contentArea .btn-group { display: flex; flex-wrap: wrap; width: 100%; }
  #contentArea .btn-group > .btn { flex: 1 1 120px; white-space: normal; }
  .users-page-header { align-items: flex-start !important; gap: .55rem; padding: .8rem !important; }
  .users-page-header-main { align-items: flex-start !important; min-width: 0; flex: 1 1 auto; gap: .55rem !important; }
  .users-page-title { min-width: 0; font-size: 1rem !important; line-height: 1.35; overflow-wrap: anywhere; }
  .users-page-title .users-page-title-en { display: none; }
  .users-page-header .btn { flex: 0 0 auto; white-space: nowrap; }
  .users-page-header > #airvareeThemeToggle { flex: 0 0 auto; }
  .users-page-card { padding: .75rem !important; }
  .users-page-summary { align-items: flex-start !important; }
  .users-page-summary h6 { line-height: 1.4; }
  .users-page-table thead { display: none; }
  .users-page-table tbody tr { display: block; margin: 0 0 .8rem; overflow: hidden; border: 1px solid var(--airvaree-border); border-radius: .8rem; background: var(--airvaree-surface); }
  .users-page-table tbody td { display: grid; grid-template-columns: minmax(6.2rem, 34%) minmax(0, 1fr); gap: .6rem; align-items: start; padding: .65rem .75rem; border: 0; border-bottom: 1px solid var(--airvaree-border); color: var(--airvaree-text); overflow-wrap: anywhere; }
  .users-page-table tbody td::before { content: attr(data-label); color: var(--airvaree-muted); font-size: .78rem; font-weight: 600; }
  .users-page-table tbody td:first-child { display: block; padding-top: .85rem; }
  .users-page-table tbody td:first-child::before { display: block; margin-bottom: .25rem; }
  .users-page-table tbody td:last-child { border-bottom: 0; }
  .users-page-table tbody td.text-end { text-align: left !important; }
  .fc .fc-toolbar { gap: .45rem; }
  .fc .fc-toolbar-chunk { max-width: 100%; }
  .fc .fc-toolbar-title { white-space: normal; text-align: center; font-size: 1rem !important; }
  .fc .fc-list-table td, .fc .fc-list-table th { white-space: normal; }
  .fc .fc-list-event-title { line-height: 1.4; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; } }
@media print { [data-theme-toggle], #airvareeThemeToggle { display: none !important; } }
