/* Suoi Mo Ba Vi v2.2 — unified Vietnamese typography and colour-coded reservations */
:root { --font-ui:'Be Vietnam Pro','Segoe UI',Arial,sans-serif; }
html, body, button, input, select, textarea, option { font-family:var(--font-ui); }
body { font-size:14px; line-height:1.65; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
h1,h2,h3,h4,h5,h6, h1 em,h2 em,h3 em, .hero h1, .page-hero h1, .cms-public-hero h1, .brand strong,
.site-header .brand,.site-header .main-nav,.site-header .nav-actions { font-family:var(--font-ui); }
h1,h2,h3 { letter-spacing:-.03em; }
h1 em,h2 em { font-weight:600; letter-spacing:-.04em; }
.hero h1 { font-weight:700; }
.page-hero h1,.cms-public-hero h1 { font-weight:700; }
/* Improve the smallest admin and form labels without changing business layout. */
.admin-links a,.admin-links button { font-size:12.5px; font-weight:650; }
.admin-filters label,.field>span,.form-grid label>span,.stacked-form label>span { font-size:12px; font-weight:650; }
.admin-panel,.admin-shell, .data-table,.form-panel { font-family:var(--font-ui); }
.admin-shell .data-table th,.admin-shell .data-table td { font-family:var(--font-ui); }
.field input,.field select,.form-grid input,.form-grid select,.form-grid textarea,
.stacked-form input,.stacked-form textarea,.admin-filters input,.admin-filters select { font-size:14px; }
.input-helper { display:block; margin:2px 0 0; font-size:11px; font-weight:450; line-height:1.5; color:#647968; }
input[type=number] { font-variant-numeric:tabular-nums; }
input[type=number]:focus-visible, .cal-scroll:focus-visible { outline:2px solid #3f8157; outline-offset:2px; }

/* Calendar palette: distinct per service, for both a single-category filter and All services. */
.calendar-legend { display:flex; align-items:center; gap:10px 18px; flex-wrap:wrap; margin:10px 0 17px; padding:12px 16px;
  border:1px solid #e1e9e2; border-radius:12px; background:#fff; }
.calendar-legend-title { font-size:12px; font-weight:650; color:#526957; }
.calendar-legend-item { display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:650; white-space:nowrap; color:#374e41; }
.cal-dot { display:inline-block; flex:none; height:10px; width:10px; border-radius:50%; background:#9ba9a0; }
.cal-dot-ticket { background:#008b89; }
.cal-dot-room { background:#326bc4; }
.cal-dot-table { background:#d17a25; }
.cal-dot-camp { background:#8c53b7; }
.calendar-filters { margin-bottom:16px; gap:10px; }
.calendar-filters select { max-width:240px; }
.cal-cell { min-height:163px; padding:9px 7px; background:#fff; border-top:3px solid transparent; transition:background .15s; }
.cal-empty { background:#f5f7f3; }
.cal-cell-free { background:#fbfcfa; }
.cal-cell-booked { background:#f1f7f2; border-top-color:#7ca38b; }
.cal-cell-booked.cal-theme-ticket { background:#ecf8f8; border-top-color:#008b89; }
.cal-cell-booked.cal-theme-room { background:#eef4ff; border-top-color:#326bc4; }
.cal-cell-booked.cal-theme-table { background:#fff5e9; border-top-color:#d17a25; }
.cal-cell-booked.cal-theme-camp { background:#f6effb; border-top-color:#8c53b7; }
.cal-cell-booked.cal-theme-all { background:#f0f5f2; border-top-color:#478467; }
.cal-day-head { display:flex; min-height:27px; align-items:center; justify-content:space-between; gap:5px; }
.cal-day-markers { display:inline-flex; align-items:center; gap:4px; }
.cal-day-markers .cal-dot { width:9px; height:9px; }
.cal-num { line-height:1; font-size:14px; font-weight:700; margin-left:auto; }
.cal-num-booked { background:#1c6040; color:#fff; min-width:27px; height:27px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; }
.cal-theme-ticket .cal-num-booked { background:#007b79; }
.cal-theme-room .cal-num-booked { background:#326bc4; }
.cal-theme-table .cal-num-booked { background:#ad5a17; }
.cal-theme-camp .cal-num-booked { background:#7943a3; }
.cal-items { gap:5px; margin-top:8px; }
.cal-item { border-radius:8px; min-height:29px; display:flex; flex-wrap:wrap; align-items:center; gap:3px 6px;
  padding:7px 8px; font-size:11px; line-height:1.4; }
.cal-item>span { min-width:0; flex:1 1 75px; max-width:100%; overflow-wrap:anywhere; overflow:visible; text-overflow:clip; }
.cal-item b { margin-left:auto; text-align:right; font-size:11px; font-weight:750; white-space:nowrap; font-variant-numeric:tabular-nums; }
.cal-item-free { color:#6d7c70; background:#f0f2ef; }
.cal-item-booked { border:1px solid transparent; font-weight:600; }
.cal-service-ticket.cal-item-booked, .cal-service-ticket.cal-service-tag { color:#006d6c; background:#d6f1ef; border-color:#acdeda; }
.cal-service-room.cal-item-booked, .cal-service-room.cal-service-tag { color:#2456a0; background:#dce9ff; border-color:#bdd2f8; }
.cal-service-table.cal-item-booked, .cal-service-table.cal-service-tag { color:#a2520c; background:#ffead1; border-color:#f8c894; }
.cal-service-camp.cal-item-booked, .cal-service-camp.cal-service-tag { color:#6e339c; background:#ebd9f8; border-color:#dab6ef; }
.cal-service-tag { display:inline-block; margin:0 5px 3px 0; padding:2px 7px; border-radius:5px; font-size:11px; font-weight:700; border:1px solid transparent; }
.calendar-footnote { font-size:12px; margin:12px 0 0; color:#637b68; line-height:1.7; }
@media (max-width:680px) {
  .calendar-legend { gap:9px 12px; padding:11px; }
  .cal-item { font-size:11px; }
  .calendar-filters select { max-width:100%; }
}
