:root,
[data-bs-theme="light"] {
  --shadow-color: rgba(5, 52, 77, 0.24);
  --shadow-hover-color: rgba(16, 184, 208, 0.28);
  --bs-primary: #10b8cf;
  --bs-primary-rgb: 16, 184, 207;
  --bs-link-color: #06778d;
  --bs-link-color-rgb: 6, 119, 141;
  --bs-link-hover-color: #045b70;
  --bs-link-hover-color-rgb: 4, 91, 112;

  --vivu-primary: #10b8cf;
  --vivu-primary-rgb: 16, 184, 207;
  --vivu-primary-strong: #06778d;
  --vivu-primary-deep: #056b91;
  --vivu-bg: #eaf2f6;
  --vivu-frame: #dbe8ef;
  --vivu-surface: #ffffff;
  --vivu-soft: #f4f9fb;
  --vivu-text: #0b3b50;
  --vivu-text-rgb: 11, 59, 80;
  --vivu-muted: #6e8793;
  --vivu-border: #dce9ef;
  --vivu-border-rgb: 220, 233, 239;
  --vivu-deep: #06374f;
  --vivu-articles-hero-bg: #06374f;
  --vivu-success: #13744a;
  --vivu-warning: #8a5a00;
      --vivu-error: #b02a37;
      --vivu-scrollbar-track: #e6f0f4;
      --vivu-scrollbar-thumb: #06778d;
      --vivu-scrollbar-thumb-hover: #056b91;
  --vivu-gradient: linear-gradient(135deg, #0bc6df 0%, #0a9fc2 48%, #056b91 100%);
  --vivu-gradient-hover: linear-gradient(135deg, #25d7ed 0%, #0bb2d0 45%, #075b7c 100%);
  --vivu-shadow: 0 22px 65px rgba(6, 55, 79, .13);
  --vivu-radius-xl: 16px;
  --vivu-radius-lg: 22px;
  --vivu-radius-md: 16px;

  --aq-primary: #10b8cf;
  --aq-primary-2: #06778d;
  --aq-bg: #eaf2f6;
  --aq-frame: #dbe8ef;
  --aq-surface: #ffffff;
  --aq-soft: #f4f9fb;
  --aq-text: #0b3b50;
  --aq-muted: #6e8793;
  --aq-border: #dce9ef;
  --aq-border-rgb: 220, 233, 239;
  --aq-dark-blue: #06374f;
  --aq-shadow: 0 22px 65px rgba(6, 55, 79, .13);
  --aq-radius-xl: 32px;
  --aq-radius-lg: 22px;
  --aq-radius-md: 16px;
  --aq-gradient: linear-gradient(135deg, #0bc6df 0%, #0a9fc2 48%, #056b91 100%);
  --aq-gradient-hover: linear-gradient(135deg, #25d7ed 0%, #0bb2d0 45%, #075b7c 100%);
  --gradient-text: linear-gradient(to right, #056b91, #0bc6df);
  --grad-start: #0bc6df;
  --grad-end: #056b91;
}

[data-bs-theme="dark"] {
  --shadow-color: rgba(6, 86, 128, 0.24);
  --shadow-hover-color: rgba(16, 184, 208, 0.28);
  --bs-primary: #25d7ed;
  --bs-primary-rgb: 37, 215, 237;
  --bs-link-color: #74eaff;
  --bs-link-color-rgb: 116, 234, 255;
  --bs-link-hover-color: #b6f5ff;
  --bs-link-hover-color-rgb: 182, 245, 255;

  --vivu-primary: #25d7ed;
  --vivu-primary-rgb: 37, 215, 237;
  --vivu-primary-strong: #72eaff;
  --vivu-primary-deep: #b6f5ff;
  --vivu-bg: #061720;
  --vivu-frame: #102a36;
  --vivu-surface: #0b2532;
  --vivu-soft: #102f3d;
  --vivu-text: #e9fbff;
  --vivu-text-rgb: 233, 251, 255;
  --vivu-muted: #9eb7c2;
  --vivu-border: #214758;
  --vivu-border-rgb: 33, 71, 88;
  --vivu-deep: #e9fbff;
  --vivu-articles-hero-bg: #0b2532;
  --vivu-success: #6ee7a8;
  --vivu-warning: #ffd27a;
  --vivu-error: #ff9ca8;
  --vivu-scrollbar-track: #102f3d;
  --vivu-scrollbar-thumb: #25d7ed;
  --vivu-scrollbar-thumb-hover: #72eaff;
  --vivu-gradient: linear-gradient(135deg, #37e6f6 0%, #12c6e8 48%, #0b86b1 100%);
  --vivu-gradient-hover: linear-gradient(135deg, #7cf5ff 0%, #25d7ed 48%, #0ba0c8 100%);
  --vivu-shadow: 0 24px 80px rgba(0, 0, 0, .42);
  --vivu-radius-xl: 16px;
  --vivu-radius-lg: 22px;
  --vivu-radius-md: 16px;

  --aq-primary: #25d7ed;
  --aq-primary-2: #72eaff;
  --aq-bg: #054251;
  --aq-frame: #102a36;
  --aq-surface: #0b2532;
  --aq-soft: #102f3d;
  --aq-text: #e9fbff;
  --aq-muted: #9eb7c2;
  --aq-border: #214758;
  --aq-border-rgb: 33, 71, 88;
  --aq-dark-blue: #e9fbff;
  --aq-shadow: 0 24px 80px rgba(0, 0, 0, .42);
  --aq-gradient: linear-gradient(135deg, #37e6f6 0%, #12c6e8 48%, #0b86b1 100%);
  --aq-gradient-hover: linear-gradient(135deg, #7cf5ff 0%, #25d7ed 48%, #0ba0c8 100%);
  --gradient-text: linear-gradient(to right, #0b86b1, #37e6f6);
  --grad-start: #37e6f6;
  --grad-end: #0b86b1;
}

body {
  --fs-ssm: 11px;
  --fs-sm: 12px;
  --fs-nm: 14px;
  --nav-height: 3rem;
  --modal-border-width: 8px;
  min-height: 100vh;
  margin: 0;
  overflow-x: hidden;
  background: radial-gradient(circle at 12% 8%, rgba(var(--bs-primary-rgb), .14), transparent 28rem),
radial-gradient(circle at 88% 18%, rgba(6, 55, 79, .08), transparent 26rem),
var(--vivu-bg);
  color: var(--aq-text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html {
  scrollbar-color: var(--vivu-scrollbar-thumb) var(--vivu-scrollbar-track);
  scrollbar-width: thin;
}

::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

::-webkit-scrollbar-track {
  background: var(--vivu-scrollbar-track);
}

::-webkit-scrollbar-thumb {
  min-height: 42px;
  border: 2px solid var(--vivu-scrollbar-track);
  border-radius: 999px;
  background: var(--vivu-scrollbar-thumb);
}

::-webkit-scrollbar-thumb:hover {
  background: var(--vivu-scrollbar-thumb-hover);
}

::-webkit-scrollbar-corner {
  background: var(--vivu-scrollbar-track);
}
.fs-ssm {
  font-size: var(--fs-ssm);
}
.fs-sm {
  font-size: var(--fs-sm);
}
.fs-nm {
  font-size: var(--fs-nm);
}
textarea {resize: none;}
.btn {min-width: 80px;}
.btn.rounded-circle {min-width: auto;}
.btn i.bi {margin-right: 0.5rem;}
i#themeIcon, .btn.theme-btn i.bi {margin: 0}

a:focus-visible {
  outline: 0!important;
  box-shadow: none!important;
}

.vivu-skip-link {
  position: absolute;
  z-index: 1090;
  top: -60px;
  left: 0px;
  padding: 10px 16px;
  border: 2px solid var(--vivu-primary-deep);
  border-radius: 10px;
  background: var(--vivu-surface);
  color: var(--vivu-deep);
  font-weight: 800;
  transition: top 0.3s;
}

.vivu-skip-link:focus {
  top: 0;
}

:where(button, [role="button"], input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: 3px solid var(--vivu-primary-deep);
  outline-offset: 3px;
}

:where(input, select, textarea)[aria-invalid="true"] {
  border-color: var(--vivu-error, #b02a37) !important;
  box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--vivu-error, #b02a37) 18%, transparent) !important;
}

.form-control::placeholder {
  color: color-mix(in srgb, var(--vivu-deep) 72%, var(--vivu-surface));
  opacity: 1;
}

[data-bs-theme="dark"] .form-control::placeholder {
  color: color-mix(in srgb, var(--vivu-deep) 78%, var(--vivu-surface));
}
img[src=""] {
  display: none!important;
}

.dropdown-menu:hover > :not(.custom-menu-item:hover) {
  transition: 300ms;
  filter: blur(1px);
  transform: scale(0.95,0.95);
}

.dropdown-item.active,
.dropdown-item:active {
  background: var(--vivu-gradient);
  color: #fff;
}

.dropdown-item.active i,
.dropdown-item:active i {
  color: inherit;
}

.nav-user-dropdown #layoutUserDropdown {
min-height: 36px;
padding: .125rem .25rem !important;
border: 1px solid transparent !important;
border-radius: 999px;
color: var(--vivu-text);
transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.nav-user-dropdown #layoutUserDropdown:hover,
.nav-user-dropdown #layoutUserDropdown[aria-expanded="true"] {
border-color: var(--vivu-border) !important;
background: var(--vivu-soft) !important;
}

.nav-user-dropdown #layoutUserDropdown:focus-visible {
outline: 0;
border-color: var(--vivu-primary) !important;
box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .14);
}

.nav-user-dropdown #layoutUserDropdown img {
border: 2px solid color-mix(in srgb, var(--vivu-primary) 42%, var(--vivu-border));
background: var(--vivu-soft);
}

.nav-user-menu {
min-width: 260px;
margin-top: .55rem !important;
padding: .5rem;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-lg);
background: var(--vivu-surface);
box-shadow: 0 22px 55px rgba(5, 52, 77, .2);
color: var(--vivu-text);
}

.nav-user-menu .dropdown-item {
display: flex;
min-height: 42px;
align-items: center;
padding: .62rem .72rem;
border-radius: 12px;
background: transparent;
color: var(--vivu-text);
font-size: .86rem;
font-weight: 750;
transition: background-color .16s ease, color .16s ease;
}

.nav-user-menu .dropdown-item i {
width: 1.2rem;
margin-right: .65rem !important;
color: var(--vivu-primary-strong);
font-size: 1rem;
text-align: center;
}

.nav-user-menu .dropdown-item:hover,
.nav-user-menu .dropdown-item:focus-visible,
.nav-user-menu .dropdown-item.active,
.nav-user-menu .dropdown-item:active {
outline: 0;
background: color-mix(in srgb, var(--vivu-primary) 11%, var(--vivu-soft));
color: var(--vivu-primary-deep);
}

.nav-user-menu .dropdown-divider {
margin: .4rem .3rem;
border-color: var(--vivu-border);
opacity: 1;
}

.nav-user-menu .dropdown-item.text-danger {
color: #bd3038 !important;
}

.nav-user-menu .dropdown-item.text-danger i {
color: inherit;
}

.nav-user-menu .dropdown-item.text-danger:hover,
.nav-user-menu .dropdown-item.text-danger:focus-visible {
background: color-mix(in srgb, #bd3038 10%, var(--vivu-soft));
color: #a5232b !important;
}

[data-bs-theme="dark"] .nav-user-menu {
box-shadow: 0 22px 55px rgba(0, 12, 18, .42);
}

[data-bs-theme="dark"] .nav-user-menu .dropdown-item.text-danger {
color: #ff8f96 !important;
}

.btn-primary {
  --bs-btn-bg: transparent;
  --bs-btn-border-color: transparent;
  --bs-btn-hover-bg: transparent;
  --bs-btn-hover-border-color: transparent;
  --bs-btn-active-bg: transparent;
  --bs-btn-active-border-color: transparent;
  --bs-btn-color: #fff;
  --bs-btn-hover-color: #fff;
  --bs-btn-active-color: #fff;

  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 0;
  background: linear-gradient(135deg, #087f99 0%, #056b91 100%) !important;
  box-shadow: 0 10px 24px rgba(var(--bs-primary-rgb), .28);
}

.btn-primary::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: 0;
  background: linear-gradient(135deg, #06778d 0%, #064f70 100%);
  transition: opacity .25s ease;
}

.btn-primary:hover::before,
.btn-primary:focus-visible::before {
  opacity: 1;
}

.btn-primary:active {
  transform: translateY(1px);
}

[data-bs-theme="dark"] .btn-primary {
  --bs-btn-color: #04232d;
  --bs-btn-hover-color: #04232d;
  --bs-btn-active-color: #04232d;
  box-shadow: 0 10px 26px rgba(37, 215, 237, .22);
}

[data-bs-theme="dark"] .btn-primary {
  background: #06778d !important;
  color: #ffffff;
}
[data-bs-theme="dark"] .btn-primary:hover {
background: #056b91 !important;
}

.btn-outline-primary {
  --bs-btn-color: var(--vivu-primary-deep);
  --bs-btn-border-color: color-mix(in srgb, var(--vivu-primary-deep) 62%, var(--vivu-surface));
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--vivu-primary-deep);
  --bs-btn-hover-border-color: var(--vivu-primary-deep);
  --bs-btn-focus-shadow-rgb: var(--vivu-primary-rgb);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--vivu-primary-deep);
  --bs-btn-active-border-color: var(--vivu-primary-deep);
  --bs-btn-disabled-color: var(--vivu-muted);
  --bs-btn-disabled-bg: var(--vivu-soft);
  --bs-btn-disabled-border-color: var(--vivu-border);
}

[data-bs-theme="dark"] .btn-outline-primary {
  --bs-btn-hover-color: #04232d;
  --bs-btn-active-color: #04232d;
}

.btn-outline-secondary,
.btn-light {
  --bs-btn-color: var(--vivu-deep);
  --bs-btn-bg: var(--vivu-surface);
  --bs-btn-border-color: var(--vivu-border);
  --bs-btn-hover-color: var(--vivu-primary-deep);
  --bs-btn-hover-bg: var(--vivu-soft);
  --bs-btn-hover-border-color: var(--vivu-primary);
  --bs-btn-focus-shadow-rgb: var(--vivu-primary-rgb);
  --bs-btn-active-color: var(--vivu-primary-deep);
  --bs-btn-active-bg: var(--vivu-soft);
  --bs-btn-active-border-color: var(--vivu-primary);
  --bs-btn-disabled-color: var(--vivu-muted);
  --bs-btn-disabled-bg: var(--vivu-soft);
  --bs-btn-disabled-border-color: var(--vivu-border);
}

.btn-outline-success {
  --bs-btn-color: var(--vivu-success);
  --bs-btn-border-color: var(--vivu-success);
  --bs-btn-hover-bg: var(--vivu-success);
  --bs-btn-hover-border-color: var(--vivu-success);
  --bs-btn-active-bg: var(--vivu-success);
  --bs-btn-active-border-color: var(--vivu-success);
}

.btn-success {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--vivu-success);
  --bs-btn-border-color: var(--vivu-success);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: color-mix(in srgb, var(--vivu-success) 86%, #061720);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--vivu-success) 86%, #061720);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: color-mix(in srgb, var(--vivu-success) 78%, #061720);
  --bs-btn-active-border-color: color-mix(in srgb, var(--vivu-success) 78%, #061720);
}

[data-bs-theme="dark"] .btn-success {
  --bs-btn-color: #061720;
  --bs-btn-hover-color: #061720;
  --bs-btn-active-color: #061720;
}

.btn-outline-warning {
  --bs-btn-color: var(--vivu-warning);
  --bs-btn-border-color: var(--vivu-warning);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--vivu-warning);
  --bs-btn-hover-border-color: var(--vivu-warning);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--vivu-warning);
  --bs-btn-active-border-color: var(--vivu-warning);
}

.btn-outline-danger {
  --bs-btn-color: var(--vivu-error);
  --bs-btn-border-color: var(--vivu-error);
  --bs-btn-hover-bg: var(--vivu-error);
  --bs-btn-hover-border-color: var(--vivu-error);
  --bs-btn-active-bg: var(--vivu-error);
  --bs-btn-active-border-color: var(--vivu-error);
}

.btn-outline-success,
.btn-outline-danger {
  --bs-btn-hover-color: #fff;
  --bs-btn-active-color: #fff;
}

[data-bs-theme="dark"] .btn-outline-success,
[data-bs-theme="dark"] .btn-outline-warning,
[data-bs-theme="dark"] .btn-outline-danger {
  --bs-btn-hover-color: #061720;
  --bs-btn-active-color: #061720;
}

.btn-link {
  --bs-btn-color: var(--bs-link-color);
  --bs-btn-hover-color: var(--bs-link-hover-color);
  --bs-btn-active-color: var(--bs-link-hover-color);
  text-underline-offset: .18em;
}

.btn:disabled,
.btn.disabled {
  box-shadow: none;
  transform: none;
}

.bg-primary {
  background-color: var(--bs-primary) !important;
}

.text-primary {
  color: var(--vivu-primary-deep) !important;
}

.form-control:focus,
.form-select:focus {
  border-color: rgba(var(--bs-primary-rgb), .45);
  box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .14);
}

.form-check-input {
  width: 1.05em;
  height: 1.05em;
  border-color: rgba(var(--vivu-border-rgb), .95);
  background-color: var(--vivu-surface);
  accent-color: var(--vivu-primary);
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.form-check-input:hover {
  border-color: rgba(var(--bs-primary-rgb), .62);
}

.form-check-input:checked {
  border-color: var(--vivu-primary);
  background-color: var(--vivu-primary);
}

.form-check-input:focus {
  border-color: var(--vivu-primary);
  box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .18);
}

.form-check-input:active {
  filter: none;
}

.form-check-input:disabled,
.form-check-input[disabled] {
  border-color: rgba(var(--vivu-border-rgb), .75);
  background-color: var(--vivu-soft);
  cursor: not-allowed;
  opacity: .68;
}

.form-check-input:disabled ~ .form-check-label,
.form-check-input[disabled] ~ .form-check-label {
  color: var(--vivu-muted);
  cursor: not-allowed;
  opacity: .78;
}

.presentation-title {
  width: min(92vw, 760px);
  margin: 28px auto 18px;
  text-align: center;
}

.presentation-title h2 {
  margin: 0;
  color: var(--aq-text);
  font-size: clamp(24px, 4vw, 38px);
  font-weight: 900;
  letter-spacing: -2px;
  line-height: .84;
}

.presentation-title p {
  width: 270px;
  max-width: 100%;
  margin: 8px auto 0;
  color: var(--aq-muted);
  font-size: var(--fs-sm);
  line-height: 1.2;
}
.modal .modal-content {
  border: var(--modal-border-width) solid rgba(var(--bs-primary-rgb), .16)!important;
}
.device {
  --bs-gutter-x: 1.5rem;

  position: relative;
  width: 100%;
  box-sizing: border-box;
  margin: 0 auto 70px;
  padding: 18px;
  border: 18px solid rgba(191, 213, 224, .5);
  border-radius: 34px;
  background: rgba(255, 255, 255, .24);
  box-shadow: var(--aq-shadow);
}

[data-bs-theme="dark"] .device {
  background: rgba(255, 255, 255, .04);
  border-color: rgba(37, 215, 237, .11);
}

.site {
  position: relative;
  border-radius: 22px;
  background: var(--aq-soft);
}

.section-pad {
  padding: 64px 32px;
  background: var(--aq-soft);
}

.section-white {
  background: var(--aq-surface);
}

.mini-label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  margin-bottom: 10px;
  border: 1px solid rgba(var(--bs-primary-rgb), .25);
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), .08);
  color: var(--aq-primary-2);
  font-size: var(--fs-sm);
  font-weight: 800;
}

[data-bs-theme="dark"] .mini-label {
  color: var(--aq-primary);
}

.section-title {
  margin: 10px 0 0;
  color: var(--aq-text);
  font-size: clamp(24px, 4vw, 32px);
  font-weight: 900;
  letter-spacing: -1.7px;
  line-height: .98;
}

.section-desc {
  color: var(--aq-muted);
  font-size: var(--fs-nm);
  line-height: 1.55;
}

.nav-glass {
  height: var(--nav-height);
  position: absolute;
  z-index: 20;
  top: 22px;
  left: 28px;
  right: 28px;
  padding: 8px 4px;
  border: 1px solid rgba(255, 255, 255, .6);
  border-radius: 999px;
  background: rgba(255, 255, 255, .5);
  backdrop-filter: blur(18px);
  box-shadow: 0 12px 32px rgba(5, 52, 77, .09);
}

[data-bs-theme="dark"] .nav-glass {
  border-color: rgba(255, 255, 255, .1);
  background: rgba(7, 25, 35, .5);
}

.navbar-brand {
  color: var(--aq-text);
  font-size: var(--fs-nm);
  font-weight: 900;
  letter-spacing: -.5px;
}

.navbar-brand:hover {
  color: var(--aq-text);
}

.vivu-brand-icon {
  width: 1.45em;
  height: 1.45em;
  flex: 0 0 auto;
  object-fit: contain;
  vertical-align: -.18em;
}

.nav-link {
  color: var(--aq-muted);
  font-size: var(--fs-sm);
  font-weight: 700;
}

.nav-link:hover,
.nav-link.active {
  color: var(--aq-text);
}

.nav-home, .nav-menu {
  padding: 4px 12px !important;
  border: 1px solid rgba(var(--bs-primary-rgb), .35);
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), .08);
  color: var(--aq-text) !important;
}

.nav-search {
  width: 132px;
  border: 0;
  border-radius: 999px;
  background: rgba(235, 245, 248, .9);
  font-size: var(--fs-sm);
}

[data-bs-theme="dark"] .nav-search {
  background: rgba(255, 255, 255, .08);
}
.nav-search input {
  padding: 0;
}

.theme-btn {
  width: 30px;
  min-width: 30px!important;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 50%;
}

.hero {
  position: relative;
  min-height: 720px;
  margin-top: calc(var(--nav-height) * -1);
  border-radius: 1.375rem 1.375rem 0 0;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(248, 253, 255, .65) 0%, rgba(248, 253, 255, .22) 28%, rgba(6, 55, 79, .48) 100%),
    url("/images/home-beach.jpg") center / cover no-repeat;
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 61% 18%, rgba(255, 255, 255, .78), transparent 120px),
    linear-gradient(180deg, rgba(255, 255, 255, .72), transparent 28%),
    linear-gradient(145deg, rgba(0, 194, 220, .08), rgba(0, 55, 82, .54));
  pointer-events: none;
}

.hero-big {
  position: absolute;
  z-index: 2;
  top: 90px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255, 255, 255, .66);
  font-size: clamp(74px, 15vw, 132px);
  font-weight: 950;
  letter-spacing: -8px;
  line-height: .72;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
}

.hero-copy {
  position: absolute;
  z-index: 5;
  top: 255px;
  left: 32px;
  width: 165px;
}

.hero-copy p {
  margin-bottom: 10px;
  color: #073a51;
  font-size: var(--fs-sm);
  font-weight: 700;
  line-height: 1.25;
}

[data-bs-theme="dark"] .hero-copy p {
  color: #edfbff;
  text-shadow: 0 3px 18px rgba(0, 0, 0, .5);
}

.social-dots {
  position: absolute;
  z-index: 7;
  left: 32px;
  top: 380px;
  display: grid;
  gap: 12px;
}

.social-dots a {
  width: 23px;
  height: 23px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, .4);
  border-radius: 50%;
  color: #fff;
  background: rgba(7, 55, 78, .24);
  font-size: var(--fs-sm);
  text-decoration: none;
  backdrop-filter: blur(10px);
}

.hero-tags {
  position: absolute;
  z-index: 8;
  left: 32px;
  bottom: 62px;
  max-width: 260px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.hero-tags span {
  padding: 7px 11px;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 999px;
  color: #fff;
  background: rgba(5, 40, 58, .40);
  font-size: var(--fs-sm);
  font-weight: 700;
  backdrop-filter: blur(5px);
}

.traveler-pill {
  position: absolute;
  z-index: 9;
  right: 38px;
  bottom: 80px;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 9px 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 16px 38px rgba(5, 52, 77, .14);
  backdrop-filter: blur(16px);
}

[data-bs-theme="dark"] .traveler-pill {
  background: rgba(10, 37, 50, .9);
}

.avatar-stack {
  display: flex;
}

.avatar-stack img {
  width: 28px;
  height: 28px;
  object-fit: cover;
  border: 2px solid var(--aq-surface);
  border-radius: 50%;
}

.avatar-stack img:not(:first-child) {
  margin-left: -9px;
}

.traveler-pill strong {
  display: block;
  color: var(--aq-text);
  font-size: var(--fs-sm);
  line-height: 1;
}

.traveler-pill small {
  color: var(--aq-muted);
  font-size: var(--fs-ssm);
}

.designer-pill {
  position: absolute;
  z-index: 50;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 6px 10px;
  border: 1px solid rgba(var(--bs-primary-rgb), .18);
  border-radius: 999px;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 14px 34px rgba(5, 52, 77, .14);
  backdrop-filter: blur(16px);
  color: var(--aq-text);
  font-size: var(--fs-sm);
  font-weight: 800;
  line-height: 1.05;
}

[data-bs-theme="dark"] .designer-pill {
  background: rgba(10, 37, 50, .9);
}

.designer-pill img {
  width: 30px;
  height: 30px;
  object-fit: cover;
  border-radius: 50%;
}

.designer-pill small {
  color: var(--aq-primary-2);
  font-size: var(--fs-ssm);
  font-weight: 800;
}

.designer-1 { right: -15px; top: 245px; }
.designer-2 { left: -46px; top: 870px; }
.designer-3 { right: -42px; top: 1235px; }
.designer-4 { left: -55px; top: 1610px; }

.image-card {
  position: relative;
  overflow: hidden;
  min-height: 205px;
  border-radius: var(--aq-radius-lg);
  background-position: center;
  background-size: cover;
  isolation: isolate;
}

.image-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(0, 0, 0, .04) 20%, rgba(5, 38, 56, .78) 100%);
}

.image-card .top-chip {
  position: absolute;
  top: 12px;
  right: 12px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .15);
  color: #06374f;
  font-size: var(--fs-sm);
  font-weight: 900;
  backdrop-filter: blur(5px);
}

.image-card .card-caption {
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 14px;
  color: #fff;
}

.image-card h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: -.4px;
}

.image-card p {
  margin: 4px 0 10px;
  color: rgba(255, 255, 255, .72);
  font-size: var(--fs-sm);
  line-height: 1.25;
}

.round-link {
  width: 27px;
  height: 27px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, .42);
  border-radius: 50%;
  color: #fff;
  background: rgba(255, 255, 255, .12);
  text-decoration: none;
}

.feature-panel {
  padding: 16px;
  border: 1px solid var(--aq-border);
  border-radius: var(--aq-radius-xl);
  background: var(--aq-surface);
  box-shadow: 0 18px 45px rgba(5, 52, 77, .07);
}

.feature-img {
  min-height: 420px;
  border-radius: 22px;
  background: url("/images/home-landscape.jpg") center / cover no-repeat;
}

.feature-list .list-group-item {
  padding: 13px 0;
  border-color: var(--aq-border);
  background: transparent;
  color: var(--aq-text);
  font-size: var(--fs-nm);
  font-weight: 800;
}

.feature-list i {
  color: var(--bs-primary);
}

.feature-list .list-group-item.gradient-row {
  margin-bottom: 8px;
  padding: 13px 14px;
  border: 0;
  border-radius: 999px;
  background: var(--aq-gradient);
  color: #fff;
  box-shadow: 0 12px 28px rgba(var(--bs-primary-rgb), .22);
}

.feature-list .list-group-item.gradient-row i {
  color: #fff;
}
.gradient-text {
    background: var(--gradient-text);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
}

[data-bs-theme="dark"] .feature-list .list-group-item.gradient-row,
[data-bs-theme="dark"] .feature-list .list-group-item.gradient-row i {
  color: #04232d;
}

.wide-strip-wrap {
  position: relative;
  width: 100vw;
  margin-left: calc((100vw - 100%) / -2);
}

.wide-strip {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 1rem 0.5rem 0.5rem;
  scroll-padding-inline: 110px;
  overscroll-behavior-x: contain;
  cursor: grab;
  user-select: none;
  -webkit-overflow-scrolling: touch;
}

.wide-strip.dragging {
  cursor: grabbing;
  scroll-snap-type: none;
  scroll-behavior: auto;
}

.wide-strip.dragging * {
  pointer-events: none;
}

.wide-strip::-webkit-scrollbar {
  height: 7px;
}

.wide-strip::-webkit-scrollbar-track {
  border-radius: 999px;
  background: var(--vivu-scrollbar-track);
}

.wide-strip::-webkit-scrollbar-thumb {
  border: 1px solid var(--vivu-scrollbar-track);
  border-radius: 999px;
  background: var(--vivu-scrollbar-thumb);
}

.wide-strip::-webkit-scrollbar-thumb:hover {
  background: var(--vivu-scrollbar-thumb-hover);
}

.destination-card {
  flex: 0 0 174px;
  overflow: hidden;
  scroll-snap-align: center;
  scroll-snap-stop: always;
  border: 1px solid var(--aq-border);
  border-radius: 18px;
  background: var(--aq-surface);
  box-shadow: 0 12px 34px rgba(5, 52, 77, .07);
  transition: transform .25s ease, box-shadow .25s ease;
}

.destination-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 44px rgba(5, 52, 77, .12);
}

.destination-card .thumb {
  min-height: 126px;
  background-position: center;
  background-size: cover;
}

.destination-card .body {
  padding: 10px;
}

.destination-card h3 {
  margin: 0 0 3px;
  font-size: var(--fs-nm);
  font-weight: 900;
}

.destination-card p {
  margin: 0 0 7px;
  color: var(--aq-muted);
  font-size: var(--fs-ssm);
  line-height: 1.25;
}

.price-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: var(--fs-sm);
  font-weight: 800;
}

.strip-nav {
  position: absolute;
  z-index: 5;
  top: 50%;
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(var(--bs-primary-rgb), .28);
  border-radius: 50%;
  background: rgba(255, 255, 255, .88);
  color: var(--aq-text);
  box-shadow: 0 12px 28px rgba(5, 52, 77, .12);
  backdrop-filter: blur(14px);
  transform: translateY(-50%);
}

.strip-nav:disabled {
  opacity: .38;
  cursor: not-allowed;
}

.strip-prev { left: 82px; }
.strip-next { right: 82px; }

[data-bs-theme="dark"] .strip-nav {
  background: rgba(10, 37, 50, .88);
}

.gallery-grid {
  display: grid;
  grid-template-columns: 1.1fr .85fr .85fr;
  grid-template-rows: 150px 140px 140px;
  gap: 12px;
}

.gallery-item {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  background-position: center;
  background-size: cover;
}

.gallery-wide {
  grid-column: 1 / 3;
}

.gallery-tall {
  grid-row: 2 / 4;
}

.gallery-play {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
}

.play-btn {
  width: 46px;
  height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 50%;
  background: rgba(255, 255, 255, .75);
  color: #06374f;
  backdrop-filter: blur(12px);
}

.tour-panel {
  overflow: hidden;
  border: 1px solid var(--aq-border);
  border-radius: var(--aq-radius-xl);
  background: var(--aq-surface);
  box-shadow: 0 18px 50px rgba(5, 52, 77, .07);
}
.tour-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.tour-tab {
  padding: 7px 14px;
  border: 1px solid var(--aq-border);
  border-radius: 999px;
  background: var(--aq-soft);
  color: var(--aq-muted);
  font-size: var(--fs-sm);
  font-weight: 800;
}

.tour-tab.active {
  border-color: transparent;
  background: var(--aq-dark-blue);
  color: #fff;
  box-shadow: 0 10px 24px rgba(var(--bs-primary-rgb), .2);
}

[data-bs-theme="dark"] .tour-tab.active {
  color: #04232d;
}

.form-mini label {
  color: var(--aq-muted);
  font-size: var(--fs-sm);
  font-weight: 800;
}

.form-mini .form-control,
.form-mini .form-select,
.form-mini .input-group-text {
  min-height: 34px;
  border-color: var(--aq-border);
  background-color: var(--aq-soft);
  color: var(--aq-text);
  font-size: var(--fs-sm);
}

.map-box {
  position: relative;
  min-height: 365px;
  overflow: hidden;
  background:
    radial-gradient(circle at 20% 42%, rgba(var(--bs-primary-rgb), .17) 0 4px, transparent 5px),
    radial-gradient(circle at 62% 48%, rgba(var(--bs-primary-rgb), .15) 0 5px, transparent 6px),
    var(--aq-soft);
}

.map-word {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: rgba(7, 55, 79, .08);
  font-size: clamp(70px, 16vw, 150px);
  font-weight: 950;
  letter-spacing: -12px;
  pointer-events: none;
}

[data-bs-theme="dark"] .map-word {
  color: rgba(255, 255, 255, .045);
}

.map-dot {
  position: absolute;
  width: 13px;
  height: 13px;
  border: 3px solid var(--aq-surface);
  border-radius: 50%;
  background: var(--bs-primary);
  box-shadow: 0 0 0 7px rgba(var(--bs-primary-rgb), .18);
}

.d1 { left: 18%; top: 62%; }
.d2 { left: 31%; top: 47%; }
.d3 { left: 44%; top: 55%; }
.d4 { left: 57%; top: 42%; }
.d5 { left: 74%; top: 58%; }
.d6 { left: 84%; top: 38%; }

.support-card {
  position: absolute;
  left: 30px;
  top: 38px;
  width: 150px;
  padding: 12px;
  border: 1px solid var(--aq-border);
  border-radius: 17px;
  background: rgba(255, 255, 255, .82);
  box-shadow: 0 14px 34px rgba(5, 52, 77, .11);
  backdrop-filter: blur(14px);
}

[data-bs-theme="dark"] .support-card {
  background: rgba(10, 37, 50, .86);
}

.support-card h4 {
  margin-bottom: 7px;
  font-size: var(--fs-nm);
  font-weight: 900;
}

.support-card div {
  color: var(--aq-muted);
  font-size: var(--fs-sm);
  font-weight: 700;
}

.quote-card {
  height: 100%;
  padding: 28px;
  border: 1px solid var(--aq-border);
  border-radius: var(--aq-radius-lg);
  background: var(--aq-surface);
  box-shadow: 0 14px 36px rgba(5, 52, 77, .06);
}

.quote-icon {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  border-radius: 50%;
  background: rgba(var(--bs-primary-rgb), .1);
  color: var(--bs-primary);
}

.quote-card blockquote {
  margin: 0 0 22px;
  color: var(--aq-text);
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -.45px;
  line-height: 1.32;
}

.cta {
  min-height: 330px;
  overflow: hidden;
  border-radius: var(--aq-radius-xl);
  background:
    linear-gradient(90deg, rgba(5, 38, 56, .82), rgba(5, 38, 56, .13)),
    url("/images/home-landscape.jpg") center / cover no-repeat;
  color: #fff;
}

.cta h2 {
  font-size: clamp(26px, 5vw, 42px);
  font-weight: 900;
  letter-spacing: -2px;
  line-height: .98;
}

.footer-wrap {
  position: relative;
  padding-bottom: 35px;
  background: var(--aq-soft);
  border-bottom-left-radius: 1rem;
  border-bottom-right-radius: 1rem;
}

.footer-card {
  position: relative;
  z-index: 3;
  padding: 34px;
  border: 1px solid var(--aq-border);
  border-radius: var(--aq-radius-xl);
  background: var(--aq-surface);
  box-shadow: 0 24px 60px rgba(5, 52, 77, .13);
}

.footer-card p,
.footer-card a,
.footer-card small {
  color: var(--aq-muted);
  font-size: var(--fs-sm);
}

.footer-card a {
  display: block;
  margin-bottom: 7px;
  text-decoration: none;
}

.footer-card a:hover {
  color: var(--bs-primary);
}

.footer-card h4 {
  color: var(--aq-text);
  font-size: var(--fs-nm);
  font-weight: 900;
}

.footer-big {
  position: relative;
  z-index: 1;
  margin-top: -44px;
  color: rgba(7, 55, 79, .2);
  font-size: clamp(72px, 17vw, 150px);
  font-weight: 950;
  letter-spacing: -11px;
  line-height: .7;
  text-align: center;
}

[data-bs-theme="dark"] .footer-big {
  color: rgba(255, 255, 255, .06);
}


footer a {
  color: var(--vivu-muted);
  transition: all 0.5s ease;
  position: relative;
  width: fit-content;
}
footer a::before {
  position: absolute;
  content: "";
  width: 0%;
  height: 1px;
  background-color: var(--bs-primary);
  bottom: -2px;
  right: 0;
  transition: all 0.3s ease-in-out;
}
footer a:hover {
  color: var(--bs-primary)!important;
  background-color: transparent;
  transform: translateX(5px);
}
footer a:hover::before {
  width: 100%;
  left: 0;
  background-color: var(--bs-primary);
}


/* PC >= 1200px */
@media (min-width: 1200px) {
  .device {
    width: 100%;
    padding: 18px;
    border-width: 18px;
  }

  .hero {
    min-height: 720px;
  }

  .destination-card {
    flex-basis: 174px;
  }
}

/* Tablets: >= 768px and < 1200px */
@media (min-width: 768px) and (max-width: 1199.98px) {
  .device {
    width: 100%;
    --bs-gutter-x: 0;
    padding: 14px;
    border-width: 14px;
    border-radius: 28px;
  }

  .nav-glass {
    border-radius: 20px;
  }

  .nav-search {
    width: 100%;
  }

  .hero {
    min-height: 680px;
  }

  .hero-big {
    top: 110px;
    font-size: 84px;
  }

  .hero-copy {
    top: 245px;
  }

  .wide-strip-wrap {
    width: calc(100% + 120px);
    margin-left: -60px;
  }

  .wide-strip {
    padding-inline: 60px;
    scroll-padding-inline: 60px;
  }

  .strip-prev {
    left: 42px;
  }

  .strip-next {
    right: 42px;
  }

  .destination-card {
    flex-basis: 190px;
  }

  .gallery-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 150px 140px 140px 140px;
  }

  .gallery-wide {
    grid-column: 1 / 3;
  }

  .gallery-tall {
    grid-row: auto;
  }

  .designer-pill {
    display: none;
  }
}

/* Mobiles < 768px */
@media (max-width: 767.98px) {
  .presentation-title {
    margin-top: 18px;
  }

  .device {
    width: 100%;
    --bs-gutter-x: 0;
    padding: 6px;
    border-width: 8px;
    border-radius: 22px;
  }

  .site {
    border-radius: 16px;
  }

  .section-pad {
    padding: 48px 18px;
  }

  .nav-glass {
    top: 12px;
    left: 12px;
    right: 12px;
    border-radius: 18px;
    padding: 0 10px;
  }
  .navbar .navbar-brand, .navbar .navbar-toggler {
      padding: 0;
  }
  .navbar .navbar-collapse {
      background: var(--vivu-surface);
      margin: 1rem -0.5rem;
      padding: 0 0.5rem;
      border-radius: 0.5rem;
  }
  
  .nav-search {
    width: 100%;
  }

  .hero {
    min-height: 650px;
  }

  .hero-big {
    top: 118px;
    font-size: 58px;
    letter-spacing: -4px;
  }

  .hero-copy {
    left: 20px;
    top: 240px;
  }

  .social-dots {
    left: 20px;
  }

  .hero-tags {
    left: 20px;
    right: 20px;
  }

  .traveler-pill {
    left: 20px;
    right: auto;
    bottom: 116px;
  }

  .wide-strip-wrap {
    width: 100%;
    margin-left: 0;
  }

  .wide-strip {
    padding-inline: 18px;
    scroll-padding-inline: 18px;
    margin-inline: -18px;
  }

  .destination-card {
    flex-basis: 76vw;
    max-width: 185px;
  }

  .strip-nav {
    display: none;
  }

  .gallery-grid {
    display: block;
  }

  .gallery-item {
    min-height: 180px;
    margin-bottom: 12px;
  }

  .map-box {
    min-height: 310px;
  }
.support-card {
    position: static;
    margin: 18px;
  }

  .designer-pill {
    display: none;
  }

  .footer-card {
    padding: 24px;
  }
}
.glass-bg {
-webkit-backdrop-filter: blur(20px);
backdrop-filter: blur(20px);
background: rgba(47, 53, 56, .2);
}

/* review workflows start */
.public-section-heading, .public-review-meta, .review-operation-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.public-section-heading p { margin: .25rem 0 0; color: var(--vivu-muted); }
.public-review-score { flex: 0 0 auto; padding: .55rem .8rem; border-radius: 12px; background: var(--vivu-soft); color: var(--vivu-deep); }
.public-review-list { display: flex; flex-direction: column; }
.public-review-item { padding: 1.25rem 0; border-bottom: 1px solid var(--vivu-border); }
.public-review-item:last-child { border-bottom: 0; }
.public-review-meta strong, .public-review-meta span { display: block; }
.public-review-meta span { margin-top: .18rem; color: var(--vivu-muted); font-size: .78rem; }
.public-review-stars, .review-stars { color: #f5b301; white-space: nowrap; }
.public-review-item > p { max-width: 68ch; margin: .8rem 0 0; color: var(--vivu-text); line-height: 1.7; white-space: pre-wrap; }
.public-owner-reply { max-width: 68ch; margin-top: 1rem; padding: .9rem 1rem; border: 1px solid var(--vivu-border); border-radius: 12px; background: var(--vivu-soft); }
.public-owner-reply strong { color: var(--vivu-deep); font-size: .84rem; }
.public-owner-reply p { margin: .4rem 0 0; color: var(--vivu-text); white-space: pre-wrap; }
.public-review-empty { padding: 1.3rem 0; color: var(--vivu-muted); }
.public-review-loading { display: grid; gap: .75rem; padding-top: 1rem; }
.public-review-loading span, .review-operation-skeleton { min-height: 110px; border-radius: 14px; background: linear-gradient(100deg, var(--vivu-soft) 30%, var(--vivu-surface) 50%, var(--vivu-soft) 70%); background-size: 220% 100%; animation: search-shimmer 1.3s linear infinite; }
.public-review-loading[hidden] { display: none; }
.review-toolbar { display: flex; justify-content: flex-end; }
.review-toolbar .form-select { width: min(100%, 250px); }
.review-operation-list { display: flex; flex-direction: column; gap: 1rem; }
.review-operation-item { padding: 1.25rem; border: 1px solid var(--vivu-border); border-radius: var(--vivu-radius-lg); background: var(--vivu-surface); }
.review-operation-head h2 { margin: .55rem 0 .2rem; color: var(--vivu-deep); font-size: 1rem; }
.review-operation-head small { color: var(--vivu-muted); }
.review-status { display: inline-flex; padding: .3rem .55rem; border-radius: 999px; background: var(--vivu-soft); color: var(--vivu-text); font-size: .72rem; font-weight: 800; }
.review-status.is-approved, .review-status.is-active { background: rgba(19,116,74,.12); color: var(--vivu-success); }
.review-status.is-rejected { background: rgba(181,50,50,.1); color: #9c2929; }
.review-status.is-pending { background: rgba(183,119,0,.12); color: #875800; }
.review-content { max-width: 70ch; margin: 1rem 0; color: var(--vivu-text); line-height: 1.65; white-space: pre-wrap; }
.review-existing-reply, .review-moderation-note { margin: .8rem 0; padding: .75rem .9rem; border-radius: 12px; background: var(--vivu-soft); }
.review-existing-reply p, .review-moderation-note { white-space: pre-wrap; }
.review-existing-reply p { margin: .3rem 0 0; }
.review-reply-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .65rem; padding-top: 1rem; border-top: 1px solid var(--vivu-border); }
.review-reply-form label { grid-column: 1 / -1; color: var(--vivu-deep); font-size: .82rem; font-weight: 800; }
.review-reply-form textarea, .review-moderation-actions textarea { border-color: var(--vivu-border); background: var(--vivu-soft); color: var(--vivu-text); resize: vertical; }
.review-reply-form .btn, .review-moderation-actions .btn { border-radius: 999px; font-weight: 750; }
.review-moderation-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .65rem; padding-top: 1rem; border-top: 1px solid var(--vivu-border); }
.review-moderation-actions > div { display: flex; gap: .5rem; }
.review-pagination { display: flex; align-items: center; justify-content: center; gap: .75rem; margin-top: 1.25rem; }
.review-pagination .btn { border-radius: 999px; }
.user-rating-status.is-reviewed.is-pending { background: rgba(183,119,0,.12); color: #875800; }
.user-rating-status.is-reviewed.is-rejected { background: rgba(181,50,50,.1); color: #9c2929; }
.user-rating-moderation-note { margin: .75rem 0; padding: .7rem .85rem; border-radius: 10px; background: rgba(181,50,50,.08); color: var(--vivu-text); }
@media (max-width: 767.98px) {
.review-operation-head, .public-section-heading { align-items: stretch; flex-direction: column; }
.public-review-score { align-self: flex-start; }
.review-reply-form, .review-moderation-actions { grid-template-columns: 1fr; }
.review-reply-form label { grid-column: auto; }
.review-moderation-actions > div, .review-moderation-actions .btn, .review-reply-form .btn { width: 100%; }
.review-moderation-actions .btn { flex: 1; }
}
@media (prefers-reduced-motion: reduce) { .public-review-loading span, .review-operation-skeleton { animation: none; } }
/* review workflows end */



.waves {
position:relative;
width: 100%;
height:15vh;
margin-bottom:-7px; /*Fix for safari gap*/
min-height:100px;
max-height:150px;
}


.parallax > use {
animation: move-forever 25s cubic-bezier(.55,.5,.45,.5)     infinite;
}
.parallax > use:nth-child(1) {
animation-delay: -2s;
animation-duration: 7s;
}
.parallax > use:nth-child(2) {
animation-delay: -3s;
animation-duration: 10s;
}
.parallax > use:nth-child(3) {
animation-delay: -4s;
animation-duration: 13s;
}
.parallax > use:nth-child(4) {
animation-delay: -5s;
animation-duration: 20s;
}
@keyframes move-forever {
0% {
transform: translate3d(-90px,0,0);
}
100% {
transform: translate3d(85px,0,0);
}
}
@media (max-width: 768px) {
.waves {
height:40px;
min-height:40px;
}
}
.hide-scrollbar {
scrollbar-width: none;
-ms-overflow-style: none;
}

.hide-scrollbar::-webkit-scrollbar {
display: none;
}
.top-1 {
top: 0.5rem;
}
.auto-rotate span {
display: inline-block;
transform: rotate(0deg);
white-space: pre;
}



/*Circke Expand*/
.btn--circle-expand {
width: 9rem;
height: 2.2rem;
background: transparent;
border: none;
padding: 0;
overflow: visible;
justify-content: flex-start;
align-items: center;
position: relative;
}

.btn-ce__circle {
display: flex;
align-items: center;
justify-content: center;
position: relative;
flex-shrink: 0;
width: 2.25rem;
height: 2.25rem;
border-radius: 10rem;
background: linear-gradient(135deg, var(--grad-start), var(--grad-end));
transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
}

.btn-ce__arrow {
position: absolute;
left: 0.85rem;
top: calc(50% - 0.25rem);
width: 0.5rem;
height: 0.5rem;
border-top: 2px solid white;
border-right: 2px solid white;
transform: rotate(45deg);
}

.btn-ce__text {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: 0;
padding-left: 1.6rem;
display: flex;
align-items: center;
justify-content: center;
color: var(--aq-text);
font-family: 'Poppins', sans-serif;
font-size: 0.78rem;
font-weight: 600;
letter-spacing: 0.02em;
white-space: nowrap;
transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
width: fit-content;
padding-left: 2.75rem;
}

.btn--circle-expand:hover .btn-ce__circle,
.btn--circle-expand:focus-visible .btn-ce__circle {
width: 100%;
}


.btn--circle-expand:hover .btn-ce__text,
.btn--circle-expand:focus-visible .btn-ce__text {
color: white;
}

.btn--circle-expand:active {
transform: scale(0.96);
}
/*End Circle Expand*/
/*Loading*/
/*loader-cỉcle*/
.loader-circle {
width: 100px;
display: grid;
background: radial-gradient(farthest-side, #056b91 98%, #0000) center/30px 100%
no-repeat;
--mask:
radial-gradient(12px at left 15px top 50%, #0000 95%, #000),
radial-gradient(12px at center, #0000 95%, #000),
radial-gradient(12px at right 15px top 50%, #0000 95%, #000);
-webkit-mask: var(--mask);
      mask: var(--mask);
-webkit-mask-composite: source-in;
      mask-composite: intersect;
animation: l2 1s infinite alternate;
}
.loader-circle:before,
.loader-circle:after {
content: "";
grid-area: 1/1;
height: 30px;
aspect-ratio: 1;
background: var(--grad-end);
border-radius: 50%;
}
.loader-circle:after {
margin-left: auto;
}
@keyframes l2 {
to {
width: 50px;
}
}
/*end loader-circle*/

.loader {
--color-1: #f4f9fb;
--color-2: #0a9fc2;
--color-3: #056b91;
--size: 1px;

width: calc(64 * var(--size));
height: calc(64 * var(--size));
position: relative;
background: var(--color-1);
border-radius: calc(4 * var(--size));
overflow: hidden;
display: block;
}
.loader:before {
content: '';
position: absolute;
left: 0;
bottom: 0;
width: calc(40 * var(--size));
height: calc(40 * var(--size));
transform: rotate(45deg) translate(30%, 40%);
background: var(--color-2);
box-shadow: calc(32 * var(--size)) calc(-34 * var(--size)) 0 calc(5 * var(--size)) var(--color-3);
animation: slide 2s infinite ease-in-out alternate;
}
.loader:after {
content: '';
position: absolute;
left: calc(10 * var(--size));
top: calc(10 * var(--size));
width: calc(16 * var(--size));
height: calc(16 * var(--size));
border-radius: 50%;
background: var(--color-3);
transform: rotate(0deg);
transform-origin: calc(35 * var(--size)) calc(145 * var(--size));
animation: rotate 2s infinite ease-in-out;
}

@keyframes slide {
0%,
100% {
bottom: calc(-35 * var(--size));
}
25%,
75% {
bottom: calc(-2 * var(--size));
}
20%,
80% {
bottom: calc(2 * var(--size));
}
}
@keyframes rotate {
0% {
transform: rotate(-15deg);
}
25%,
75% {
transform: rotate(0deg);
}
100% {
transform: rotate(25deg);
}
}

/*End Loading*/
.effect {
transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}
.effect img {
transition: transform 0.3s ease-in-out;
}

.effect-rotate {
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
transform: rotate(0deg);
}
.effect-rotate:hover {
transform: rotate(2.5deg) scale(1.025);
}
.effect-zoom:hover {
transform: scale(1.025);
}
.effect-glass {
position: relative;
overflow: hidden;
}
.effect-glass:after {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}
.effect-glass:hover:after {
left: 100%;
}
.effect-translate-y{
transform: translateY(0px);
}
.effect-translate-y:hover{
transform: translateY(-3px);
}
.effect-translate-x{
transition: all 0.3s ease;
transform: translateX(0px);
}
.effect-translate-x:hover {
transform: translateX(5px);
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
.effect-shadow {
box-shadow: 0px 10px 24px var(--shadow-color,  rgba(5, 52, 77, 0.24));
}
.effect-shadow:hover {
box-shadow: 0 10px 24px var(--shadow-hover-color, rgba(16, 184, 208, 0.28));
}
.effect-border-shadow {
box-shadow: 0 0.25rem 0.375rem rgba(var(--aq-border-rgb), 0.375);
border: 1px solid var(--aq-border);
}
.effect-border-shadow:hover {
box-shadow: 0 0.375rem 0.5rem rgba(var(--bs-primary-rgb), 0.375);
border: 1px solid var(--bs-primary);
}
.alarm-notify {
width: 8px;
height: 8px;
background-color: var(--danger-600);
inset-block-start: 2px;
inset-inline-start: inherit;
border-radius: 50%;
pointer-events: none;
z-index: 1;
}
.alarm-notify:after,.alarm-notify:before {
position: absolute;
content: "";
background-color: inherit;
opacity: .8;
inset-block-start: 0;
inset-inline-start: 0;
inset-inline-end: 0;
inset-block-end: 0;
border-radius: 50px;
transform: scale(1);
animation-name: transformScale;
animation-duration: 2s;
animation-iteration-count: infinite;
z-index: -1
}

.alarm-notify:after {
animation-delay: .75s
}

@keyframes transformScale {
0% {
    transform: scale(1);
    opacity: .9
}

60% {
    transform: scale(2.5);
    opacity: .2
}

to {
    transform: scale(3);
    opacity: 0
}
}
.btn-rounded-arrow {
--btn-h: 37px;
--btn-bg: #102e3cbf;
--btn-bg-hover: #102e3c;
--btn-text: #e9fbff;
position: relative;
display: inline-flex;
align-items: center;
height: var(--btn-h);
min-width: 205px;
padding: 2px;
border-radius: 999px;
background: var(--btn-bg);
color: var(--btn-text);
font-weight: 700;
font-size: 1rem;
line-height: 1;
text-decoration: none;
overflow: visible;
transition: transform .2s ease, box-shadow .2s ease;
border: none;
}
.btn-rounded-arrow span {
display: flex;
color: var(--btn-text);
background: color-mix(in oklab, var(--btn-bg) 75%, var(--btn-text) 25%);
border-radius: 999px;
width: 100%;
height: 100%;
justify-content: center;
align-items: center;
}
.btn-rounded-arrow i {
color: var(--btn-text);
padding: 0 2px;
}
.btn-rounded-arrow:hover {
transform: translateY(-1px);
box-shadow: 0 8px 20px rgba(0, 0, 0, .12);
background: var(--btn-bg-hover);
}

/* Not found page */
.notfound-page {
min-height: 100dvh;
background:
radial-gradient(circle at 14% 12%, rgba(var(--bs-primary-rgb), .18), transparent 24rem),
radial-gradient(circle at 86% 78%, rgba(6, 55, 79, .12), transparent 28rem),
linear-gradient(180deg, var(--vivu-soft) 0%, var(--vivu-bg) 100%);
color: var(--vivu-text);
}

.notfound-shell {
position: relative;
display: grid;
min-height: 100dvh;
place-items: center;
padding: clamp(1.25rem, 4vw, 3rem);
isolation: isolate;
}

.notfound-shell::before,
.notfound-shell::after {
content: "";
position: absolute;
z-index: -1;
border-radius: 999px;
background: rgba(var(--bs-primary-rgb), .11);
filter: blur(2px);
}

.notfound-shell::before {
width: clamp(12rem, 22vw, 22rem);
aspect-ratio: 1;
inset-block-start: 8%;
inset-inline-start: 7%;
}

.notfound-shell::after {
width: clamp(9rem, 18vw, 18rem);
aspect-ratio: 1;
inset-block-end: 9%;
inset-inline-end: 8%;
background: rgba(6, 55, 79, .08);
}

.notfound-card {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(18rem, .88fr);
gap: clamp(2rem, 6vw, 5rem);
align-items: center;
width: min(100%, 68rem);
padding: clamp(1.25rem, 3vw, 2rem);
border: 1px solid rgba(var(--vivu-border-rgb), .82);
border-radius: var(--vivu-radius-xl);
background: rgba(255, 255, 255, .78);
box-shadow: var(--vivu-shadow);
}

[data-bs-theme="dark"] .notfound-card {
background: rgba(11, 37, 50, .82);
}

.notfound-content {
padding: clamp(.25rem, 2vw, 1.5rem);
}

.notfound-brand {
display: inline-flex;
align-items: center;
gap: .45rem;
margin-bottom: clamp(1.75rem, 4vw, 3.25rem);
color: var(--vivu-deep);
font-size: .95rem;
font-weight: 800;
text-decoration: none;
}

.notfound-brand i {
color: var(--vivu-primary);
}

.notfound-code {
display: inline-flex;
align-items: center;
gap: .65rem;
margin-bottom: 1rem;
padding: .48rem .86rem;
border: 1px solid rgba(var(--bs-primary-rgb), .22);
border-radius: 999px;
background: rgba(var(--bs-primary-rgb), .08);
color: var(--vivu-primary-strong);
font-size: .9rem;
font-weight: 800;
}

.notfound-title {
max-width: 11ch;
margin: 0;
color: var(--vivu-deep);
font-size: clamp(3.35rem, 8vw, 5.8rem);
font-weight: 900;
line-height: .92;
letter-spacing: 0;
text-wrap: balance;
}

.notfound-desc {
max-width: 36rem;
margin: 1.35rem 0 0;
color: var(--vivu-muted);
font-size: clamp(1rem, 1.8vw, 1.12rem);
line-height: 1.75;
text-wrap: pretty;
}

.notfound-actions {
display: flex;
flex-wrap: wrap;
gap: .75rem;
margin-top: 2rem;
}

.notfound-actions .btn {
min-height: 44px;
}

.notfound-link {
--bs-btn-color: var(--vivu-deep);
--bs-btn-border-color: rgba(var(--vivu-border-rgb), .95);
--bs-btn-hover-color: var(--vivu-deep);
--bs-btn-hover-bg: var(--vivu-soft);
--bs-btn-hover-border-color: rgba(var(--bs-primary-rgb), .45);
}

.notfound-visual {
position: relative;
min-height: clamp(19rem, 42vw, 31rem);
border-radius: calc(var(--vivu-radius-xl) - 8px);
overflow: hidden;
background:
linear-gradient(180deg, rgba(255, 255, 255, .86), rgba(244, 249, 251, .5)),
linear-gradient(145deg, rgba(var(--bs-primary-rgb), .16), rgba(6, 55, 79, .18));
}

[data-bs-theme="dark"] .notfound-visual {
background:
linear-gradient(180deg, rgba(16, 47, 61, .7), rgba(6, 23, 32, .72)),
linear-gradient(145deg, rgba(var(--bs-primary-rgb), .16), rgba(114, 234, 255, .08));
}

.notfound-visual::before {
content: "404";
position: absolute;
inset-inline: 0;
inset-block-start: 6%;
color: rgba(6, 55, 79, .08);
font-size: clamp(6rem, 18vw, 15rem);
font-weight: 900;
line-height: 1;
text-align: center;
}

[data-bs-theme="dark"] .notfound-visual::before {
color: rgba(233, 251, 255, .07);
}

.notfound-compass {
position: absolute;
inset-block-start: 11%;
inset-inline-end: 11%;
display: grid;
width: 4.25rem;
aspect-ratio: 1;
place-items: center;
border: 1px solid rgba(var(--bs-primary-rgb), .2);
border-radius: 50%;
background: rgba(255, 255, 255, .7);
color: var(--vivu-primary-strong);
box-shadow: 0 16px 36px rgba(6, 55, 79, .1);
animation: notfoundFloat 5s ease-in-out infinite;
}

[data-bs-theme="dark"] .notfound-compass {
background: rgba(11, 37, 50, .76);
}

.notfound-island {
position: absolute;
inset-inline: 12%;
inset-block-end: 14%;
height: 38%;
border-radius: 55% 45% 16% 18% / 66% 58% 22% 20%;
background:
radial-gradient(circle at 72% 18%, rgba(255, 255, 255, .58), transparent 4rem),
linear-gradient(135deg, #0bc6df 0%, #0a9fc2 42%, #056b91 100%);
box-shadow: 0 34px 70px rgba(6, 55, 79, .22);
}

.notfound-island::before,
.notfound-island::after {
content: "";
position: absolute;
border-radius: 999px;
background: rgba(255, 255, 255, .55);
}

.notfound-island::before {
width: 42%;
height: .42rem;
inset-inline-start: 9%;
inset-block-start: 34%;
}

.notfound-island::after {
width: 25%;
height: .36rem;
inset-inline-end: 12%;
inset-block-start: 52%;
opacity: .72;
}

.notfound-marker {
position: absolute;
inset-block-start: 33%;
inset-inline-start: 46%;
display: grid;
width: 4rem;
aspect-ratio: 1;
place-items: center;
border-radius: 50% 50% 50% 12%;
background: var(--vivu-surface);
color: var(--vivu-primary);
box-shadow: 0 20px 48px rgba(6, 55, 79, .18);
transform: rotate(-45deg);
animation: notfoundMarker 4s ease-in-out infinite;
}

.notfound-marker i {
transform: rotate(45deg);
font-size: 1.45rem;
}

.notfound-wave {
position: absolute;
inset-inline: -8%;
inset-block-end: -7%;
height: 28%;
border-radius: 50% 50% 0 0;
background:
radial-gradient(ellipse at 20% 0%, rgba(255, 255, 255, .7) 0 15%, transparent 16%),
radial-gradient(ellipse at 50% 0%, rgba(255, 255, 255, .55) 0 14%, transparent 15%),
radial-gradient(ellipse at 80% 0%, rgba(255, 255, 255, .65) 0 15%, transparent 16%),
rgba(var(--bs-primary-rgb), .2);
}

@keyframes notfoundFloat {
0%,
100% {
transform: translateY(0);
}
50% {
transform: translateY(-.55rem);
}
}

@keyframes notfoundMarker {
0%,
100% {
transform: translateY(0) rotate(-45deg);
}
50% {
transform: translateY(-.45rem) rotate(-45deg);
}
}

@media (max-width: 860px) {
.notfound-card {
grid-template-columns: 1fr;
}

.notfound-visual {
order: -1;
min-height: 18rem;
}
}

@media (max-width: 575.98px) {
.notfound-shell {
place-items: stretch;
}

.notfound-card {
padding: 1rem;
border-radius: 24px;
}

.notfound-title {
max-width: 9ch;
}

.notfound-actions {
display: grid;
}
}

@media (prefers-reduced-motion: reduce) {
.notfound-compass,
.notfound-marker {
animation: none;
}
}

.notfound-page.notfound-sample {
min-height: 100dvh;
background: linear-gradient(0deg, var(--vivu-deep), var(--vivu-bg));
}

.notfound-sample ::selection {
background: var(--vivu-border);
color: var(--vivu-deep);
}

.notfound-sample .page {
position: absolute;
top: 50%;
left: 50%;
z-index: 1;
width: 800px;
max-width: calc(100vw - 2rem);
height: 600px;
max-height: calc(100dvh - 2rem);
overflow: hidden;
border: 1px solid rgba(var(--vivu-border-rgb), .42);
border-radius: 10px;
background: var(--vivu-deep);
box-shadow: 0 22px 65px rgba(6, 55, 79, .24);
color: var(--vivu-soft);
font-family: Roboto, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
transform: translate(-50%, -50%);
}

.notfound-sample header {
padding: 30px;
}

.notfound-sample header nav {
position: relative;
float: left;
width: 18px;
height: 18px;
cursor: pointer;
}

.notfound-sample header nav::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 2px;
border-radius: 2px;
background: rgba(var(--bs-primary-rgb), .7);
box-shadow:
0 5px 0 rgba(var(--bs-primary-rgb), .7),
0 10px 0 rgba(var(--bs-primary-rgb), .7);
}

.notfound-sample .content {
text-align: center;
color: var(--vivu-soft);
}

.notfound-sample .content h1 {
margin-bottom: -10px;
color: var(--vivu-primary);
font-size: 165px;
font-weight: 900;
line-height: 1;
opacity: .72;
}

.notfound-sample .content h2 {
margin-bottom: 6px;
color: var(--vivu-soft);
font-size: 34px;
font-weight: 700;
opacity: .95;
}

.notfound-sample .content p {
margin-bottom: 140px;
color: var(--vivu-border);
font-size: 14px;
font-weight: 300;
opacity: .8;
}

.notfound-sample .content a {
display: inline-block;
padding: 8px 14px;
border: 1px solid rgba(var(--bs-primary-rgb), .85);
border-radius: 4px;
color: var(--vivu-soft);
background: rgba(var(--bs-primary-rgb), .12);
font-size: 12px;
font-weight: 300;
text-decoration: none;
text-transform: uppercase;
opacity: .78;
cursor: pointer;
transition: opacity .2s ease, background-color .2s ease, transform .2s ease;
}

.notfound-sample .content a:hover,
.notfound-sample .content a:focus-visible {
background: rgba(var(--bs-primary-rgb), .22);
opacity: 1;
transform: translateY(-1px);
}

.notfound-sample .page img {
position: absolute;
top: 0;
left: 0;
z-index: -1;
width: 100%;
height: auto;
min-height: 100%;
object-fit: cover;
opacity: .34;
transform: scale(1.1);
}

@media (max-width: 575.98px) {
.notfound-sample .page {
height: 520px;
}

.notfound-sample header {
padding: 24px;
}

.notfound-sample .content h1 {
font-size: 118px;
}

.notfound-sample .content h2 {
font-size: 28px;
}

.notfound-sample .content p {
margin-bottom: 96px;
padding: 0 1.5rem;
}
}

.notfound-page.notfound-login {
min-height: 100dvh;
background:
radial-gradient(circle at 18% 12%, rgba(var(--bs-primary-rgb), .16), transparent 28rem),
radial-gradient(circle at 84% 88%, rgba(var(--bs-primary-rgb), .12), transparent 24rem),
var(--vivu-bg);
}

.notfound-login .login-page {
display: flex;
min-height: 100dvh;
align-items: center;
padding-block: 28px;
}

.notfound-login .notfound-section {
position: relative;
z-index: 2;
display: flex;
min-height: calc(100dvh - 112px);
align-items: center;
padding: 32px;
}

.notfound-login .notfound-section > .container-xxl {
max-width: 900px;
}

.notfound-stack {
margin-inline: auto;
}

.notfound-login-visual {
position: relative;
min-height: 360px;
overflow: hidden;
border-radius: var(--vivu-radius-xl);
background:
linear-gradient(180deg, rgba(255, 255, 255, .36), rgba(5, 55, 79, .42)),
var(--vivu-deep);
box-shadow: 0 24px 70px rgba(5, 52, 77, .16);
isolation: isolate;
}

.notfound-login-visual::before {
content: "";
position: absolute;
inset: 0;
z-index: 1;
background:
radial-gradient(circle at 64% 18%, rgba(255, 255, 255, .68), transparent 8rem),
linear-gradient(145deg, rgba(0, 194, 220, .04), rgba(0, 55, 82, .64));
pointer-events: none;
}

.notfound-login-visual img {
position: absolute;
inset: 0;
z-index: 0;
width: 100%;
height: 100%;
object-fit: cover;
opacity: .58;
transform: scale(1.1);
will-change: transform;
}

.notfound-login-visual .hero-big {
z-index: 2;
color: rgba(255, 255, 255, .76);
letter-spacing: 0;
}

.notfound-login-visual .visual-copy {
position: absolute;
left: 34px;
bottom: 36px;
z-index: 4;
max-width: 410px;
color: #fff;
}

.notfound-login-visual .visual-copy .mini-label {
border-color: rgba(255, 255, 255, .28);
background: rgba(5, 40, 58, .48);
color: #fff;
backdrop-filter: blur(12px);
}

.notfound-login-visual .visual-copy h1 {
margin: 0 0 18px;
font-size: clamp(32px, 4vw, 52px);
font-weight: 950;
letter-spacing: 0;
line-height: .96;
text-wrap: balance;
}

.notfound-login-visual .visual-copy p {
max-width: 330px;
margin: 0;
color: rgba(255, 255, 255, .82);
font-size: 13px;
font-weight: 700;
line-height: 1.45;
}

.notfound-login-card {
position: relative;
min-height: auto;
overflow: hidden;
padding: clamp(28px, 4vw, 46px);
border: 1px solid rgba(var(--bs-primary-rgb), .14);
border-radius: var(--vivu-radius-xl);
background:
linear-gradient(180deg, rgba(255, 255, 255, .92), rgba(255, 255, 255, .76)),
var(--vivu-surface);
box-shadow: 0 24px 70px rgba(5, 52, 77, .12);
}

[data-bs-theme="dark"] .notfound-login-card {
background:
linear-gradient(180deg, rgba(11, 37, 50, .92), rgba(11, 37, 50, .72)),
var(--vivu-surface);
box-shadow: 0 24px 80px rgba(0, 0, 0, .3);
}

.notfound-login-card::before,
.notfound-login-card::after {
content: "";
position: absolute;
border-radius: 50%;
background: rgba(var(--bs-primary-rgb), .12);
pointer-events: none;
}

.notfound-login-card::before {
top: -70px;
right: -70px;
width: 180px;
height: 180px;
}

.notfound-login-card::after {
bottom: -42px;
left: -42px;
width: 110px;
height: 110px;
background: rgba(var(--bs-primary-rgb), .08);
}

.notfound-login .login-card-inner {
position: relative;
z-index: 2;
}

.notfound-login .notfound-brand {
margin-bottom: 34px;
}

.notfound-login .login-title {
margin: 18px 0 8px;
color: var(--vivu-deep);
font-size: clamp(30px, 4vw, 46px);
font-weight: 950;
letter-spacing: 0;
line-height: .98;
}

.notfound-login-title {
max-width: 11ch;
color: var(--vivu-deep);
text-wrap: balance;
}

.notfound-login .login-muted {
color: var(--vivu-muted);
font-size: 12px;
font-weight: 650;
line-height: 1.65;
}

.notfound-login .login-form {
margin-top: 30px;
}

.notfound-login .form-label {
color: var(--vivu-deep);
font-size: 13px;
}

.notfound-login .input-soft {
overflow: hidden;
border: 1px solid var(--vivu-border);
border-radius: 999px;
background: var(--vivu-soft);
}

.notfound-login .input-soft .input-group-text {
padding-inline: 18px 8px;
border: 0;
background: transparent;
color: var(--vivu-primary);
}

.notfound-login .input-soft .form-control {
min-height: 52px;
border: 0;
background: transparent;
color: var(--vivu-text);
box-shadow: none;
font-size: 14px;
font-weight: 650;
}

.notfound-login .input-soft .form-control::placeholder {
color: color-mix(in srgb, var(--vivu-muted), transparent 12%);
}

.notfound-login .input-soft:focus-within {
border-color: rgba(var(--bs-primary-rgb), .55);
box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .14);
}

.notfound-login .notfound-link {
--bs-btn-color: var(--vivu-primary-strong);
--bs-btn-border-color: rgba(var(--bs-primary-rgb), .4);
--bs-btn-hover-color: #fff;
--bs-btn-hover-bg: var(--vivu-primary);
--bs-btn-hover-border-color: var(--vivu-primary);
}

.notfound-login .notfound-note {
display: flex;
gap: 10px;
margin-top: 28px;
padding: 0;
border: none;
background: transparent;
color: var(--vivu-muted);
font-size: 12px;
font-weight: 650;
line-height: 1.5;
}

.notfound-login .notfound-note i {
color: var(--vivu-primary);
}

@media (max-width: 991.98px) {
.notfound-login-card {
min-height: auto;
}
}

@media (max-width: 768px) {
.notfound-login .notfound-section {
padding: 28px 28px 56px;
}

.notfound-login-visual {
min-height: 420px;
}
}

@media (max-width: 575.98px) {
.notfound-login .device {
padding: 10px;
border-width: 10px;
border-radius: 26px;
}

.notfound-login .notfound-section {
padding: 28px 14px;
}

.notfound-login-visual {
min-height: 360px;
border-radius: 24px;
}

.notfound-login-visual .visual-copy {
left: 22px;
right: 22px;
bottom: 24px;
}

.notfound-login-card {
padding: 28px 20px;
border-radius: 24px;
}
.notfound-search {
margin-bottom: 5rem;
}
}

.notfound-login .notfound-section {
min-height: calc(100dvh - 112px);
padding: 0;
border-radius: 25px;
margin-top: calc(-1 * var(--nav-height));
}

.notfound-login-visual {
width: 100%;
min-height: calc(100dvh - 112px);
border-radius: inherit;
}

.notfound-login-visual::before {
/*background:
radial-gradient(circle at 72% 18%, rgba(255, 255, 255, .42), transparent 9rem),
linear-gradient(90deg, rgba(3, 28, 42, .46) 0%, rgba(6, 55, 79, .32) 44%, rgba(6, 55, 79, .2) 100%),
linear-gradient(180deg, rgba(6, 55, 79, .05), rgba(6, 55, 79, .6));*/
}

.notfound-login-visual .hero-big {
top: clamp(1.75rem, 6vw, 4.5rem);
left: auto;
right: clamp(1.25rem, 5vw, 4rem);
transform: none;
color: rgba(255, 255, 255, .18);
font-size: clamp(6rem, 21vw, 16rem);
line-height: .8;
}

.notfound-overlay {
position: relative;
z-index: 4;
display: flex;
min-height: calc(100dvh - 112px);
width: min(100%, 42rem);
flex-direction: column;
justify-content: center;
padding: clamp(1.5rem, 5vw, 4.5rem);
color: #fff;
}

.notfound-overlay .notfound-brand {
width: fit-content;
margin-bottom: clamp(1.25rem, 3vw, 2.5rem);
color: #fff;
}

.notfound-overlay .mini-label {
width: fit-content;
margin-bottom: 1rem;
border-color: rgba(255, 255, 255, .28);
background: rgba(5, 40, 58, .48);
color: #fff;
backdrop-filter: blur(12px);
}

.notfound-overlay-title {
max-width: 11ch;
margin: 0;
color: #fff;
font-size: clamp(2.75rem, 7vw, 5.75rem);
font-weight: 950;
line-height: .94;
letter-spacing: 0;
text-wrap: balance;
}

.notfound-overlay-desc {
max-width: 36rem;
margin: 1.25rem 0 0;
color: rgba(255, 255, 255, .82);
font-size: clamp(.95rem, 1.5vw, 1.08rem);
font-weight: 650;
line-height: 1.7;
text-wrap: pretty;
}

.notfound-overlay .notfound-search {
margin-top: clamp(1.5rem, 3vw, 2rem);
}

.notfound-overlay .form-label {
color: rgba(255, 255, 255, .9);
font-size: 13px;
}

.notfound-overlay .input-soft {
border-color: rgba(255, 255, 255, .36);
background: rgba(255, 255, 255, .9);
}

.notfound-overlay .input-soft .form-control {
color: var(--vivu-text);
}

.notfound-overlay .input-soft .form-control::placeholder {
color: var(--vivu-muted);
}

.notfound-overlay .notfound-link {
--bs-btn-color: #fff;
--bs-btn-border-color: rgba(255, 255, 255, .55);
--bs-btn-hover-color: var(--vivu-deep);
--bs-btn-hover-bg: rgba(255, 255, 255, .9);
--bs-btn-hover-border-color: rgba(255, 255, 255, .9);
}

.notfound-overlay .notfound-note {
margin-top: 1.25rem;
border-color: rgba(255, 255, 255, .22);
background: transparent;
color: rgba(255, 255, 255, .84);
backdrop-filter: blur(14px);
position: absolute;
bottom: 32px;
}

.notfound-overlay .notfound-note i {
color: var(--vivu-primary);
}

@media (max-width: 768px) {
.notfound-login .notfound-section,
.notfound-login-visual,
.notfound-overlay {
min-height: calc(100dvh - 72px);
}

.notfound-login-visual .hero-big {
top: 1.5rem;
right: 1rem;
}
}

@media (max-width: 575.98px) {
.notfound-login .notfound-section {
padding: 0;
}

.notfound-login-visual {
border-radius: 18px;
}

.notfound-login-visual::before {
background:
  linear-gradient(180deg, rgba(3, 28, 42, .46) 0%, rgba(6, 55, 79, .38) 62%, rgba(6, 55, 79, .18) 100%);
}

.notfound-overlay {
justify-content: flex-end;
width: 100%;
padding: 1.25rem;
}
}

.vivu-login-page {
min-height: 100dvh;
overflow-x: hidden;
background:
radial-gradient(circle at 18% 12%, rgba(var(--bs-primary-rgb), .16), transparent 28rem),
radial-gradient(circle at 84% 88%, rgba(var(--bs-primary-rgb), .12), transparent 24rem),
var(--vivu-bg);
color: var(--vivu-text);
}

.vivu-login-page .login-page {
display: flex;
min-height: 100dvh;
align-items: center;
padding-block: 28px;
}

.vivu-login-section {
position: relative;
z-index: 2;
display: flex;
min-height: calc(100dvh - 92px);
align-items: center;
padding: 32px;
}

.vivu-login-visual {
position: relative;
min-height: 620px;
overflow: hidden;
border-radius: var(--vivu-radius-xl);
background:
linear-gradient(180deg, rgba(255, 255, 255, .38), rgba(5, 55, 79, .3)),
url("/images/home-beach.jpg") center / cover no-repeat;
box-shadow: 0 24px 70px rgba(5, 52, 77, .16);
isolation: isolate;
}

.vivu-login-visual::before {
content: "";
position: absolute;
inset: 0;
z-index: -1;
background:
radial-gradient(circle at 64% 18%, rgba(255, 255, 255, .75), transparent 8rem),
linear-gradient(145deg, rgba(0, 194, 220, .04), rgba(0, 55, 82, .62));
}

.vivu-login-visual .visual-copy {
position: absolute;
z-index: 4;
left: 34px;
bottom: 36px;
max-width: 400px;
color: #fff;
}

.vivu-login-visual .visual-copy .mini-label {
margin-bottom: 14px;
border-color: rgba(255, 255, 255, .28);
background: rgba(5, 40, 58, .48);
color: #fff;
backdrop-filter: blur(12px);
}

.vivu-login-visual .visual-copy h1 {
margin: 0 0 32px;
font-size: clamp(32px, 4vw, 52px);
font-weight: 950;
line-height: .92;
letter-spacing: 0;
text-wrap: balance;
}

.vivu-login-visual .visual-copy p {
max-width: 300px;
margin: 0;
color: rgba(255, 255, 255, .82);
font-size: 13px;
font-weight: 700;
line-height: 1.45;
}

.vivu-login-stat {
position: absolute;
right: 24px;
bottom: 34px;
z-index: 5;
display: flex;
align-items: center;
gap: 10px;
padding: 10px 14px;
border-radius: 999px;
background: rgba(255, 255, 255, .88);
color: var(--vivu-text);
box-shadow: 0 16px 38px rgba(5, 52, 77, .14);
backdrop-filter: blur(16px);
}

[data-bs-theme="dark"] .vivu-login-stat {
background: rgba(10, 37, 50, .9);
}

.vivu-login-stat strong {
display: block;
font-size: 11px;
line-height: 1;
}

.vivu-login-stat small {
color: var(--vivu-muted);
font-size: 9px;
font-weight: 700;
}

.vivu-login-card {
position: relative;
min-height: 620px;
overflow: hidden;
padding: clamp(28px, 4vw, 46px);
border: 1px solid rgba(var(--bs-primary-rgb), .14);
border-radius: var(--vivu-radius-xl);
background:
linear-gradient(180deg, rgba(255, 255, 255, .92), rgba(255, 255, 255, .76)),
var(--vivu-surface);
box-shadow: 0 24px 70px rgba(5, 52, 77, .12);
backdrop-filter: blur(18px);
}

[data-bs-theme="dark"] .vivu-login-card {
background:
linear-gradient(180deg, rgba(11, 37, 50, .92), rgba(11, 37, 50, .72)),
var(--vivu-surface);
box-shadow: 0 24px 80px rgba(0, 0, 0, .3);
}

.vivu-login-card::before,
.vivu-login-card::after {
content: "";
position: absolute;
border-radius: 50%;
background: rgba(var(--bs-primary-rgb), .12);
pointer-events: none;
}

.vivu-login-card::before {
top: -70px;
right: -70px;
width: 180px;
height: 180px;
}

.vivu-login-card::after {
bottom: -42px;
left: -42px;
width: 110px;
height: 110px;
background: rgba(var(--bs-primary-rgb), .08);
}

.vivu-login-page .login-card-inner {
position: relative;
z-index: 2;
}

.vivu-login-brand {
margin-bottom: 18px;
}

.vivu-login-page .login-title {
margin: 18px 0 8px;
color: var(--vivu-deep);
font-size: clamp(30px, 4vw, 46px);
font-weight: 950;
line-height: .98;
letter-spacing: 0;
}

.vivu-login-page .login-muted {
color: var(--vivu-muted);
font-size: 12px;
font-weight: 650;
line-height: 1.55;
}

.vivu-login-page .login-form {
margin-top: 28px;
}

.vivu-login-page .form-label {
color: var(--vivu-deep);
font-size: 13px;
}

.vivu-login-page .input-soft {
overflow: hidden;
border: 1px solid var(--vivu-border);
border-radius: 999px;
background: var(--vivu-soft);
}

.vivu-login-page .input-soft .input-group-text {
padding-inline: 18px 8px;
border: 0;
background: transparent;
color: var(--vivu-primary);
}

.vivu-login-page .input-soft .form-control {
min-height: 52px;
border: 0;
background: transparent;
color: var(--vivu-text);
box-shadow: none;
font-size: 14px;
font-weight: 650;
}

.vivu-login-page .input-soft .form-control::placeholder {
color: color-mix(in srgb, var(--vivu-muted), transparent 12%);
}

.vivu-login-page .input-soft:focus-within {
border-color: rgba(var(--bs-primary-rgb), .55);
box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .14);
}

.vivu-login-page .social-login-btn {
min-height: 48px;
border: 1px solid var(--vivu-border);
border-radius: 999px;
background: rgba(255, 255, 255, .5);
color: var(--vivu-text);
font-size: 13px;
font-weight: 800;
}

.vivu-login-page .social-login-btn:hover,
.vivu-login-page .social-login-btn:focus-visible {
background: var(--vivu-soft);
}

[data-bs-theme="dark"] .vivu-login-page .social-login-btn {
background: rgba(255, 255, 255, .05);
}

.vivu-login-page .social-login-btn img {
width: 18px;
height: 18px;
margin-right: 8px;
}

.vivu-login-page .divider {
display: flex;
align-items: center;
gap: 14px;
margin: 24px 0;
color: var(--vivu-muted);
font-size: 12px;
font-weight: 800;
}

.vivu-login-page .divider::before,
.vivu-login-page .divider::after {
content: "";
height: 1px;
flex: 1;
background: var(--vivu-border);
}

.vivu-login-page .security-note {
display: flex;
gap: 10px;
margin-top: 20px;
padding: 12px 14px;
border: 1px solid rgba(var(--bs-primary-rgb), .14);
border-radius: 18px;
background: rgba(var(--bs-primary-rgb), .07);
color: var(--vivu-muted);
font-size: 12px;
font-weight: 700;
line-height: 1.4;
}

.vivu-login-page .security-note i {
color: var(--vivu-primary);
font-size: 18px;
line-height: 1;
}

.vivu-login-page .btn[disabled],
.vivu-code-modal .btn[disabled] {
cursor: not-allowed;
opacity: .72;
}

.vivu-login-feedback {
display: block;
padding: .85rem 1rem;
border-radius: var(--vivu-radius-md);
font-size: 12px;
font-weight: 700;
line-height: 1.45;
opacity: 0;
}

.vivu-login-feedback.is-visible {
display: block;
}

.vivu-login-feedback.is-success {
border: 1px solid rgba(var(--bs-primary-rgb), .22);
background: rgba(var(--bs-primary-rgb), .09);
color: var(--vivu-primary-strong);
opacity: 1;
}

.vivu-login-feedback.is-error {
border: 1px solid rgba(220, 53, 69, .22);
background: rgba(220, 53, 69, .08);
color: #b02a37;
opacity: 1;
}

.telegram-link-body .vivu-login-feedback.is-error {margin-top: 1rem;}

.vivu-code-modal .modal-content {
overflow: hidden;
border: 1px solid rgba(var(--bs-primary-rgb), .16);
border-radius: var(--vivu-radius-xl);
background:
linear-gradient(180deg, rgba(255, 255, 255, .96), rgba(255, 255, 255, .86)),
var(--vivu-surface);
box-shadow: var(--vivu-shadow);
}

[data-bs-theme="dark"] .vivu-code-modal .modal-content {
background:
linear-gradient(180deg, rgba(11, 37, 50, .96), rgba(11, 37, 50, .86)),
var(--vivu-surface);
}

.vivu-code-modal .modal-header,
.vivu-code-modal .modal-body,
.vivu-code-modal .modal-footer {
padding-inline: clamp(1.25rem, 4vw, 2rem);
}

.vivu-code-modal .modal-header {
padding-top: clamp(1.25rem, 4vw, 2rem);
}

.vivu-code-modal .modal-title {
color: var(--vivu-deep);
font-size: clamp(1.5rem, 3vw, 2rem);
font-weight: 950;
line-height: 1;
letter-spacing: 0;
}

.vivu-code-modal .btn-close:focus {
box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .16);
}

.vivu-code-input .form-control {
letter-spacing: .12em;
}

@media (min-width: 1200px) {
.vivu-login-card {
max-width: 560px;
margin-inline: auto;
}
}

@media (min-width: 768px) and (max-width: 1199.98px) {
.vivu-login-section {
padding: 28px 28px 56px;
}

.vivu-login-visual {
min-height: 420px;
}

.vivu-login-visual .hero-big {
top: 70px;
font-size: 82px;
}

.vivu-login-stat {
right: 22px;
bottom: 24px;
}
}

@media (max-width: 767.98px) {
.vivu-login-page .login-page {
padding-block: 8px;
}

.vivu-login-section {
padding: 28px 14px;
}

.vivu-login-visual {
min-height: 360px;
border-radius: 24px;
}

.vivu-login-visual .hero-big {
top: 70px;
font-size: 56px;
letter-spacing: 0;
}

.vivu-login-visual .visual-copy {
left: 22px;
right: 22px;
bottom: 26px;
}

.vivu-login-visual .visual-copy h1 {
font-size: 34px;
}

.vivu-login-stat {
display: none;
}

.vivu-login-card {
padding: 28px 20px;
border-radius: 24px;
}

.vivu-login-page .login-title {
font-size: 34px;
}
}

.vivu-profile-page {
min-height: 100dvh;
overflow-x: hidden;
background:
radial-gradient(circle at 18% 12%, rgba(var(--bs-primary-rgb), .16), transparent 28rem),
radial-gradient(circle at 84% 88%, rgba(var(--bs-primary-rgb), .12), transparent 24rem),
var(--vivu-bg);
color: var(--vivu-text);
}

.vivu-profile-page .profile-page {
min-height: 100dvh;
display: flex;
align-items: center;
padding-block: 28px;
}

.profile-shell {
position: relative;
z-index: 2;
min-height: calc(100dvh - 92px);
padding: 24px 32px 32px;
}

.profile-heading {
margin-bottom: 24px;
}

.profile-heading h1 {
margin: 10px 0 8px;
color: var(--vivu-deep);
font-size: 2.4rem;
font-weight: 950;
line-height: 1;
letter-spacing: 0;
}

.profile-heading p {
max-width: 48rem;
margin: 0;
color: var(--vivu-muted);
font-size: .95rem;
font-weight: 650;
line-height: 1.65;
}

.profile-status-strip {
display: flex;
flex-wrap: wrap;
gap: .5rem;
align-content: flex-start;
justify-content: flex-start;
}

.profile-status-strip span {
display: inline-flex;
min-height: 36px;
align-items: center;
gap: .45rem;
padding: .45rem .75rem;
border: 1px solid rgba(var(--bs-primary-rgb), .18);
border-radius: 999px;
background: rgba(var(--bs-primary-rgb), .07);
color: var(--vivu-primary-strong);
font-size: .78rem;
font-weight: 800;
}

.profile-summary,
.profile-panel {
border: 1px solid rgba(var(--bs-primary-rgb), .14);
border-radius: var(--vivu-radius-xl);
background:
linear-gradient(180deg, rgba(255, 255, 255, .92), rgba(255, 255, 255, .78)),
var(--vivu-surface);
box-shadow: 0 20px 56px rgba(5, 52, 77, .1);
}

[data-bs-theme="dark"] .profile-summary,
[data-bs-theme="dark"] .profile-panel {
background:
linear-gradient(180deg, rgba(11, 37, 50, .94), rgba(11, 37, 50, .78)),
var(--vivu-surface);
}

.profile-summary {
position: sticky;
top: 94px;
padding: 28px;
}

.avatar-upload-placeholder {
width: 38px;
height: 38px;
border-radius: 999px;
object-fit: cover;
}

.profile-avatar {
position: relative;
display: grid;
width: 120px;
aspect-ratio: 1;
place-items: center;
margin-bottom: 18px;
overflow: hidden;
border: 1px solid rgba(var(--bs-primary-rgb), .18);
border-radius: 50rem;
background: var(--vivu-gradient);
color: #fff;
box-shadow: 0 18px 42px rgba(var(--bs-primary-rgb), .22);
}

.profile-avatar img {
display: none;
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
}

.profile-avatar.has-image img {
display: block;
}

.profile-avatar span {
font-size: 2rem;
font-weight: 950;
}

.avatar-upload-field {
display: flex;
min-height: 46px;
align-items: center;
gap: .65rem;
padding: .35rem;
border: 1px solid var(--vivu-border);
border-radius: 999px;
background: var(--vivu-soft);
}

input[type="file"][data-avatar-file-input],
input[type="file"][data-agent-identity-upload],
input[type="file"][data-owner-thumb-upload],
input[type="file"][data-owner-gallery-upload],
input[type="file"][data-owner-video-upload] {
display: none !important;
}

.avatar-upload-field input[type="file"],
[data-avatar-file-input] {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0 0 0 0);
clip-path: inset(50%);
border: 0;
opacity: 0;
pointer-events: none;
white-space: nowrap;
}

.avatar-upload-field .btn {
flex: 0 0 auto;
white-space: nowrap;
}

.avatar-upload-field span {
min-width: 0;
overflow: hidden;
color: var(--vivu-muted);
font-size: .82rem;
font-weight: 750;
text-overflow: ellipsis;
white-space: nowrap;
}

.profile-summary h2 {
margin: 0;
color: var(--vivu-deep);
font-size: 1.35rem;
font-weight: 950;
line-height: 1.1;
}

.profile-summary > p {
margin: .35rem 0 .25rem;
color: var(--vivu-muted);
font-size: .85rem;
font-weight: 700;
word-break: break-word;
}

.profile-meta-list {
display: grid;
gap: .75rem;
}

.profile-meta-list div {
display: grid;
gap: .2rem;
padding: .85rem 0;
border-top: 1px solid var(--vivu-border);
}

.profile-meta-list span {
color: var(--vivu-muted);
font-size: .72rem;
font-weight: 800;
}

.profile-meta-list strong {
color: var(--vivu-text);
font-size: .9rem;
font-weight: 850;
word-break: break-word;
}

.profile-tip {
display: flex;
gap: .65rem;
margin-top: 1.25rem;
padding: .9rem 1rem;
border: 1px solid rgba(var(--bs-primary-rgb), .16);
border-radius: var(--vivu-radius-md);
background: rgba(var(--bs-primary-rgb), .07);
color: var(--vivu-muted);
font-size: .78rem;
font-weight: 700;
line-height: 1.45;
}

.profile-tip i {
color: var(--vivu-primary);
}

.profile-form {
display: grid;
gap: 1rem;
}

.profile-panel {
padding: clamp(1.25rem, 3vw, 2rem);
}

.profile-panel-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 1rem;
margin-bottom: 1.25rem;
}

.profile-panel-head .btn, .owner-topbar .btn {min-width: 160px;}

.profile-panel-head h2 {
margin: 0 0 .35rem;
color: var(--vivu-deep);
font-size: 1.2rem;
font-weight: 950;
}

.profile-panel-head p {
margin: 0;
color: var(--vivu-muted);
font-size: .82rem;
font-weight: 650;
line-height: 1.5;
}

.telegram-link-panel {overflow: hidden;}
.telegram-link-panel .profile-panel-head h2 {display:flex;align-items:center;gap:.55rem;}
.telegram-link-panel .profile-panel-head h2 i {color:var(--vivu-primary,#22d3ee);}
.telegram-link-status {display:inline-flex;align-items:center;min-height:2rem;padding:.35rem .8rem;border:1px solid rgba(34,211,238,.35);border-radius:999px;background:rgba(34,211,238,.1);color:var(--vivu-primary,#22d3ee);font-size:.82rem;font-weight:800;white-space:nowrap;}
.telegram-link-status[data-state="LINKED"] {border-color:rgba(34,197,94,.4);background:rgba(34,197,94,.12);color:#4ade80;}
.telegram-link-status[data-state="EXPIRED"],.telegram-link-status[data-state="ERROR"] {border-color:rgba(248,113,113,.4);background:rgba(248,113,113,.12);color:#fca5a5;}
.telegram-link-body {display:grid;gap:1rem;}
.telegram-link-body>p {margin:0;color:var(--vivu-text-muted,#9fb7c5);}
.telegram-link-steps {margin:0;padding-left:1.35rem;display:grid;gap:.55rem;color:var(--vivu-text-muted,#b7cad5);}
.telegram-link-steps a {color:var(--vivu-primary,#22d3ee);font-weight:800;}
.telegram-copy-target {display:inline-flex;align-items:center;gap:.3rem;}
.telegram-copy-target button {display:inline-grid;width:1.65rem;height:1.65rem;padding:0;border:1px solid rgba(34,211,238,.3);border-radius:.5rem;background:transparent;color:var(--vivu-primary,#22d3ee);place-items:center;}
.telegram-copy-target button:hover,.telegram-copy-target button:focus-visible {background:rgba(34,211,238,.12);}
.telegram-link-steps code,.telegram-link-command code {color:#e6fbff;background:rgba(6,24,34,.72);border:1px solid rgba(34,211,238,.22);border-radius:.55rem;padding:.18rem .42rem;}
.telegram-link-command {display:flex;align-items:center;gap:.75rem;padding:.75rem;border:1px solid rgba(34,211,238,.24);border-radius:1rem;background:rgba(8,31,43,.5);}
.telegram-link-command code {flex:1;overflow-wrap:anywhere;padding:.55rem .7rem;}
.telegram-link-expiry {font-size:.88rem;}
.telegram-link-actions {display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;}
.telegram-confirmation-modal .modal-content {overflow:hidden;border:1px solid var(--vivu-border)!important;border-radius:var(--vivu-radius-md);background:var(--vivu-surface);box-shadow:0 24px 64px rgba(6,55,79,.22);color:var(--vivu-text);}
.telegram-confirmation-modal .modal-header,.telegram-confirmation-modal .modal-footer {border-color:var(--vivu-border);background:var(--vivu-soft);}
.telegram-confirmation-modal .modal-header {padding:1.1rem 1.25rem;align-items:flex-start;}
.telegram-confirmation-modal .modal-header h2 {color:var(--vivu-deep);font-weight:900;}
.telegram-confirmation-modal .modal-header p {color:var(--vivu-muted)!important;}
.telegram-confirmation-modal .modal-body {padding:1.25rem;color:var(--vivu-text);line-height:1.6;}
.telegram-confirmation-modal .modal-footer {padding:.9rem 1.25rem;}
body.telegram-confirmation-open .modal-backdrop.show {background:#06374f;opacity:.48;}
[data-bs-theme="dark"] .telegram-confirmation-modal .modal-content {box-shadow:none;}
[data-bs-theme="dark"] body.telegram-confirmation-open .modal-backdrop.show {background:#020b10;opacity:.72;}
@media (max-width:575.98px){.telegram-link-command{align-items:stretch;flex-direction:column}.telegram-link-command .btn,.telegram-link-actions .btn{width:100%}.telegram-link-status{align-self:flex-start}}

.vivu-profile-page .form-label {
color: var(--vivu-deep);
font-size: .82rem;
}

.vivu-profile-page .input-soft {
overflow: hidden;
border: 1px solid var(--vivu-border);
border-radius: 999px;
background: var(--vivu-soft);
}

.vivu-profile-page .input-soft .input-group-text {
padding-inline: 18px 8px;
border: 0;
background: transparent;
color: var(--vivu-primary);
}

.vivu-profile-page .input-soft .form-control {
min-height: 52px;
border: 0;
background: transparent;
color: var(--vivu-text);
box-shadow: none;
font-size: .9rem;
font-weight: 650;
}

.vivu-profile-page .form-control {
border-color: var(--vivu-border);
border-radius: var(--vivu-radius-md);
background-color: var(--vivu-soft);
color: var(--vivu-text);
font-weight: 650;
}

.vivu-profile-page .form-control:focus,
.vivu-profile-page .input-soft:focus-within {
border-color: rgba(var(--bs-primary-rgb), .55);
box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .14);
}

.profile-textarea {
min-height: 132px;
resize: vertical;
}

.user-ratings-panel {
display: grid;
gap: 1rem;
}

.user-ratings-stats span {
gap: .35rem;
}

.user-ratings-stats strong {
color: var(--vivu-deep);
font-size: .9rem;
font-weight: 950;
}

.user-ratings-filter {
display: inline-flex;
flex-wrap: wrap;
gap: .35rem;
padding: .35rem;
border: 1px solid var(--vivu-border);
border-radius: 999px;
background: var(--vivu-soft);
}

.user-ratings-filter button {
min-height: 36px;
padding: .45rem .85rem;
border: 0;
border-radius: 999px;
background: transparent;
color: var(--vivu-muted);
font-size: .8rem;
font-weight: 850;
white-space: nowrap;
}

.user-ratings-filter button:hover,
.user-ratings-filter button:focus-visible,
.user-ratings-filter button.active {
background: rgba(var(--bs-primary-rgb), .12);
color: var(--vivu-primary-strong);
outline: 0;
}

.user-ratings-loading {
display: inline-flex;
width: fit-content;
align-items: center;
gap: .55rem;
padding: .65rem .9rem;
border: 1px solid rgba(var(--bs-primary-rgb), .14);
border-radius: 999px;
background: rgba(var(--bs-primary-rgb), .07);
color: var(--vivu-primary-strong);
font-size: .84rem;
font-weight: 850;
}

.user-ratings-loading[hidden] {
display: none;
}

.user-ratings-list {
display: grid;
gap: .9rem;
}

.user-rating-card {
display: grid;
gap: .9rem;
padding: 1rem;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-lg);
background: rgba(255, 255, 255, .72);
}

[data-bs-theme="dark"] .user-rating-card {
background: rgba(11, 37, 50, .62);
}

.user-rating-card-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 1rem;
}

.user-rating-card h3 {
margin: 0 0 .3rem;
color: var(--vivu-deep);
font-size: 1rem;
font-weight: 950;
line-height: 1.2;
}

.user-rating-card p {
margin: 0;
color: var(--vivu-muted);
font-size: .82rem;
font-weight: 650;
line-height: 1.55;
}

.user-rating-meta {
display: flex;
flex-wrap: wrap;
gap: .45rem;
}

.user-rating-meta span,
.user-rating-status {
display: inline-flex;
min-height: 30px;
align-items: center;
gap: .35rem;
padding: .35rem .65rem;
border-radius: 999px;
background: var(--vivu-soft);
color: var(--vivu-muted);
font-size: .74rem;
font-weight: 850;
}

.user-rating-status.is-reviewed {
background: rgba(var(--bs-primary-rgb), .12);
color: var(--vivu-primary-strong);
}

.user-rating-status.is-pending {
background: rgba(245, 158, 11, .13);
color: #9a5b00;
}

.user-rating-stars {
display: inline-flex;
align-items: center;
gap: .15rem;
color: #f5a400;
font-size: .95rem;
}

.user-rating-content {
padding: .85rem 1rem;
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
color: var(--vivu-text);
font-size: .9rem;
font-weight: 650;
line-height: 1.6;
}

.user-rating-actions {
display: flex;
flex-wrap: wrap;
gap: .55rem;
}

.user-rating-check {
display: flex;
min-height: 46px;
align-items: center;
gap: .6rem;
margin: 0;
padding: .65rem .8rem;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
color: var(--vivu-text);
font-size: .84rem;
font-weight: 800;
}

[data-user-rating-form] {
max-height: calc(100dvh - 2rem);
overflow: hidden;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-xl);
background: var(--vivu-surface);
color: var(--vivu-text);
box-shadow: 0 28px 80px rgba(5, 52, 77, .22);
}

[data-user-rating-form] .modal-header,
[data-user-rating-form] .modal-footer {
flex-shrink: 0;
border-color: var(--vivu-border);
background: color-mix(in srgb, var(--vivu-soft) 72%, var(--vivu-surface));
}

[data-user-rating-form] .modal-header {padding: 1.2rem 1.35rem;align-items: start;justify-content: space-between;}

[data-user-rating-form] .modal-body {
min-height: 0;
overflow-y: auto;
padding: 1.35rem;
background: var(--vivu-surface);
overscroll-behavior: contain;
}

[data-user-rating-form] .modal-footer {
padding: 1rem 1.35rem;
}

[data-user-rating-form] .modal-title,
[data-user-rating-form] .form-label {
color: var(--vivu-deep);
}

[data-user-rating-form] .form-control,
[data-user-rating-form] .form-select {
min-height: 46px;
border-color: var(--vivu-border);
border-radius: var(--vivu-radius-md);
background-color: var(--vivu-soft);
color: var(--vivu-text);
font-weight: 700;
}

[data-user-rating-form] textarea.form-control {
min-height: 108px;
}

[data-user-rating-form] .form-control::placeholder {
color: var(--vivu-muted);
opacity: .78;
}

[data-user-rating-form] .form-control:hover,
[data-user-rating-form] .form-select:hover {
border-color: color-mix(in srgb, var(--vivu-primary) 55%, var(--vivu-border));
}

[data-user-rating-form] .form-control:focus,
[data-user-rating-form] .form-select:focus {
border-color: var(--vivu-primary);
background-color: var(--vivu-surface);
color: var(--vivu-text);
box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .14);
}

[data-user-rating-form] .form-select option {
background: var(--vivu-surface);
color: var(--vivu-text);
}

[data-user-rating-form] .user-rating-check:hover {
border-color: color-mix(in srgb, var(--vivu-primary) 55%, var(--vivu-border));
background: color-mix(in srgb, var(--vivu-primary) 7%, var(--vivu-soft));
}

[data-user-rating-form] .form-check-input {
border-color: var(--vivu-border);
background-color: var(--vivu-surface);
}

[data-user-rating-form] .form-check-input:checked {
border-color: var(--vivu-primary);
background-color: var(--vivu-primary);
}

[data-user-rating-form] .user-rating-images {
padding: 1rem;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
}

[data-user-rating-form] .user-rating-image-list figure {
position: relative;
display: block;
overflow: hidden;
aspect-ratio: 1;
margin: 0;
border: 1px solid rgba(var(--bs-primary-rgb), .18);
border-radius: 12px;
background: var(--vivu-surface);
}

[data-user-rating-form] .user-rating-image-list:empty {
display: none;
}

[data-user-rating-form] .btn-light {
border-color: var(--vivu-border);
background: var(--vivu-soft);
color: var(--vivu-text);
}

[data-user-rating-form] .btn-light:hover,
[data-user-rating-form] .btn-light:focus-visible {
border-color: var(--vivu-primary);
background: color-mix(in srgb, var(--vivu-primary) 10%, var(--vivu-soft));
color: var(--vivu-primary-deep);
}

[data-user-rating-form] .btn-close {
width: 38px;
height: 38px;
padding: 0;
border: 1px solid var(--vivu-border);
border-radius: 50%;
background-color: var(--vivu-soft);
background-size: 12px;
opacity: 1;
}

[data-user-rating-form] .btn-close:hover,
[data-user-rating-form] .btn-close:focus-visible {
border-color: var(--vivu-primary);
background-color: color-mix(in srgb, var(--vivu-primary) 12%, var(--vivu-soft));
box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .14);
opacity: 1;
}

[data-bs-theme="dark"] [data-user-rating-form] .btn-close {
filter: invert(1) grayscale(1) brightness(1.7);
}

@media (max-width: 575.98px) {
[data-user-rating-form] {
max-height: calc(100dvh - 1rem);
border-radius: var(--vivu-radius-lg);
}

[data-user-rating-form] .modal-header,
[data-user-rating-form] .modal-body,
[data-user-rating-form] .modal-footer {
padding-inline: 1rem;
}
}

.user-ratings-empty[hidden] {
display: none;
}

.user-saved-panel {
display: grid;
gap: 1rem;
}

.user-saved-stats strong {
color: var(--vivu-deep);
font-size: .9rem;
font-weight: 950;
}

.user-saved-toolbar {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(180px, .32fr);
gap: .75rem;
align-items: center;
}

.user-saved-toolbar .form-select {
min-height: 52px;
border-color: var(--vivu-border);
border-radius: 999px;
background-color: var(--vivu-soft);
color: var(--vivu-text);
font-weight: 750;
}

.user-saved-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 1rem;
}

.user-saved-card {
display: grid;
overflow: hidden;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-lg);
background: rgba(255, 255, 255, .72);
box-shadow: 0 16px 38px rgba(5, 52, 77, .08);
}

[data-bs-theme="dark"] .user-saved-card {
background: rgba(11, 37, 50, .62);
}

.user-saved-thumb {
position: relative;
display: grid;
min-height: 168px;
place-items: center;
overflow: hidden;
background: linear-gradient(135deg, rgba(var(--bs-primary-rgb), .14), rgba(var(--bs-primary-rgb), .04));
color: var(--vivu-primary);
}

.user-saved-thumb img {width: 100%;height: 100%;min-height: 168px;object-fit: cover;}

.user-saved-thumb i {font-size: 1.75rem;}

.user-saved-heart {
position: absolute;
top: .75rem;
right: .75rem;
display: inline-grid;
width: 38px;
height: 38px;
place-items: center;
border: 1px solid rgba(255, 255, 255, .62);
border-radius: 999px;
background: rgba(255, 255, 255, .88);
color: var(--vivu-primary);
box-shadow: 0 12px 28px rgba(5, 52, 77, .16);
}

.user-saved-body {
display: grid;
gap: .8rem;
padding: 1rem;
}

.user-saved-body h3 {
margin: 0;
color: var(--vivu-deep);
font-size: 1rem;
font-weight: 950;
line-height: 1.25;
}

.user-saved-address {
display: flex;
gap: .4rem;
color: var(--vivu-muted);
font-size: .8rem;
font-weight: 700;
line-height: 1.45;
}

.user-saved-address i {
flex: 0 0 auto;
color: var(--vivu-primary);
}

.user-saved-meta {
display: flex;
flex-wrap: wrap;
gap: .45rem;
}

.user-saved-meta span {
display: inline-flex;
min-height: 30px;
align-items: center;
gap: .35rem;
padding: .35rem .6rem;
border-radius: 999px;
background: var(--vivu-soft);
color: var(--vivu-muted);
font-size: .74rem;
font-weight: 850;
}

.user-saved-actions {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: .55rem;
align-items: center;
}

.user-saved-empty[hidden] {
display: none;
}

.user-notifications-panel {
display: grid;
gap: 1rem;
}

.user-notifications-stats strong {
color: var(--vivu-deep);
font-size: .9rem;
font-weight: 950;
}

.user-notifications-toolbar {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(180px, .32fr);
gap: .75rem;
align-items: center;
}

.user-notifications-toolbar .form-select {
min-height: 48px;
border-color: var(--vivu-border);
border-radius: 999px;
background-color: var(--vivu-soft);
color: var(--vivu-text);
font-weight: 750;
}

.user-notifications-list {
display: grid;
gap: .75rem;
}

.user-notification-card {
position: relative;
display: grid;
grid-template-columns: auto minmax(0, 1fr);
gap: .85rem;
padding: 1rem;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-lg);
background: rgba(255, 255, 255, .72);
box-shadow: 0 14px 34px rgba(5, 52, 77, .07);
}

[data-bs-theme="dark"] .user-notification-card {
background: rgba(11, 37, 50, .62);
}

.user-notification-card.is-unread {
border-color: rgba(var(--bs-primary-rgb), .28);
background:
linear-gradient(90deg, rgba(var(--bs-primary-rgb), .09), rgba(255, 255, 255, .72));
}

[data-bs-theme="dark"] .user-notification-card.is-unread {
background:
linear-gradient(90deg, rgba(var(--bs-primary-rgb), .14), rgba(11, 37, 50, .62));
}

.user-notification-icon {
display: grid;
width: 42px;
height: 42px;
place-items: center;
border-radius: 999px;
background: rgba(var(--bs-primary-rgb), .12);
color: var(--vivu-primary);
font-size: 1rem;
}

.user-notification-body {
display: grid;
gap: .55rem;
min-width: 0;
}

.user-notification-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: .75rem;
}

.user-notification-title {
margin: 0;
color: var(--vivu-deep);
font-size: .98rem;
font-weight: 950;
line-height: 1.25;
}

.user-notification-card p {
margin: 0;
color: var(--vivu-muted);
font-size: .82rem;
font-weight: 650;
line-height: 1.55;
}

.user-notification-meta {
display: flex;
flex-wrap: wrap;
gap: .4rem;
}

.user-notification-meta span {
display: inline-flex;
min-height: 28px;
align-items: center;
gap: .35rem;
padding: .3rem .58rem;
border-radius: 999px;
background: var(--vivu-soft);
color: var(--vivu-muted);
font-size: .72rem;
font-weight: 850;
}

.user-notification-status {
flex: 0 0 auto;
display: inline-flex;
min-height: 28px;
align-items: center;
gap: .32rem;
padding: .3rem .58rem;
border-radius: 999px;
background: rgba(var(--bs-primary-rgb), .12);
color: var(--vivu-primary-strong);
font-size: .72rem;
font-weight: 900;
}

.user-notification-status.is-read {
background: var(--vivu-soft);
color: var(--vivu-muted);
}

.user-notification-actions {
display: flex;
flex-wrap: wrap;
gap: .5rem;
}

.user-notifications-empty[hidden] {
display: none;
}

@media (max-width: 991.98px) {
.agent-register-summary {
position: static;
}

.agent-register-panel-head {
flex-direction: column;
}

.profile-summary {
position: static;
}

.user-ratings-filter {
width: 100%;
border-radius: var(--vivu-radius-lg);
}

.user-saved-toolbar,
.user-saved-grid {
grid-template-columns: 1fr;
}

.user-notifications-toolbar {
grid-template-columns: 1fr;
}
}

@media (max-width: 575.98px) {
.user-notification-card {
grid-template-columns: 1fr;
}

.user-notification-icon {
width: 38px;
height: 38px;
}
}

@media (max-width: 767.98px) {
.vivu-agent-register-page .agent-register-page {
padding-block: 8px;
}

.agent-register-shell {
padding: 84px 14px 24px;
}

.agent-register-heading h1 {
font-size: 2rem;
}

.agent-register-steps {
justify-content: flex-start;
}

.agent-identity-upload {
align-items: stretch;
flex-direction: column;
}

.agent-identity-upload .btn {
width: 100%;
}

.vivu-profile-page .profile-page {
padding-block: 8px;
}

.profile-shell {
padding: 24px 14px 24px;
}

.profile-heading h1 {
font-size: 2rem;
}

.profile-status-strip {
justify-content: flex-start;
}
}

.vivu-login-page .vivu-login-section {
padding-top: 96px;
}

.vivu-agent-register-page {
min-height: 100dvh;
overflow-x: hidden;
background:
radial-gradient(circle at 16% 10%, rgba(var(--bs-primary-rgb), .16), transparent 28rem),
radial-gradient(circle at 86% 24%, rgba(6, 55, 79, .1), transparent 24rem),
var(--vivu-bg);
color: var(--vivu-text);
}

.vivu-agent-register-page .agent-register-page {
min-height: 100dvh;
padding-block: 28px;
}

.agent-register-shell {
position: relative;
z-index: 2;
min-height: calc(100dvh - 92px);
padding: 96px 32px 32px;
}

.agent-register-heading {
margin-bottom: 24px;
}

.agent-register-heading h1 {
margin: 10px 0 8px;
color: var(--vivu-deep);
font-size: 2.35rem;
font-weight: 950;
line-height: 1.04;
letter-spacing: 0;
}

.agent-register-heading p {
max-width: 48rem;
margin: 0;
color: var(--vivu-muted);
font-size: .95rem;
font-weight: 650;
line-height: 1.65;
}

.agent-register-steps {
display: flex;
flex-wrap: wrap;
gap: .5rem;
align-content: flex-start;
justify-content: flex-start;
}

.agent-register-steps span {
display: inline-flex;
min-height: 36px;
align-items: center;
gap: .45rem;
padding: .45rem .75rem;
border: 1px solid rgba(var(--bs-primary-rgb), .18);
border-radius: 999px;
background: rgba(var(--bs-primary-rgb), .07);
color: var(--vivu-primary-strong);
font-size: .78rem;
font-weight: 850;
}

.agent-register-summary,
.agent-register-panel {
border: 1px solid rgba(var(--bs-primary-rgb), .14);
border-radius: var(--vivu-radius-xl);
background:
linear-gradient(180deg, rgba(255, 255, 255, .94), rgba(255, 255, 255, .82)),
var(--vivu-surface);
box-shadow: 0 20px 56px rgba(5, 52, 77, .1);
}

[data-bs-theme="dark"] .agent-register-summary,
[data-bs-theme="dark"] .agent-register-panel {
background:
linear-gradient(180deg, rgba(11, 37, 50, .94), rgba(11, 37, 50, .78)),
var(--vivu-surface);
}

.agent-register-summary {
position: sticky;
top: 94px;
padding: 28px;
}

.agent-register-badge {
display: grid;
width: 64px;
aspect-ratio: 1;
place-items: center;
margin-bottom: 18px;
border-radius: 24px;
background: var(--vivu-gradient);
color: #fff;
box-shadow: 0 18px 42px rgba(var(--bs-primary-rgb), .22);
font-size: 1.55rem;
}

.agent-register-summary h2 {
margin: 0 0 .6rem;
color: var(--vivu-deep);
font-size: 1.35rem;
font-weight: 950;
line-height: 1.15;
}

.agent-register-summary p {
margin: 0;
color: var(--vivu-muted);
font-size: .88rem;
font-weight: 650;
line-height: 1.6;
}

.agent-register-checklist {
display: grid;
gap: .75rem;
margin-top: 1.25rem;
}

.agent-register-checklist div {
display: flex;
gap: .65rem;
align-items: flex-start;
padding-top: .75rem;
border-top: 1px solid var(--vivu-border);
color: var(--vivu-text);
font-size: .86rem;
font-weight: 800;
}

.agent-register-checklist i {
color: #13744a;
font-size: 1rem;
}

.agent-register-note {
display: flex;
gap: .65rem;
margin-top: 1.25rem;
padding: .9rem 1rem;
border: 1px solid rgba(var(--bs-primary-rgb), .16);
border-radius: var(--vivu-radius-md);
background: rgba(var(--bs-primary-rgb), .07);
color: var(--vivu-muted);
font-size: .78rem;
font-weight: 700;
line-height: 1.45;
}

.agent-register-note i {
color: var(--vivu-primary);
}

.agent-register-form {
display: grid;
gap: 1rem;
}

.agent-register-panel {
padding: clamp(1.25rem, 3vw, 2rem);
}

.agent-register-panel-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 1rem;
margin-bottom: 1.25rem;
}

.agent-register-panel-head h2 {
margin: 0 0 .35rem;
color: var(--vivu-deep);
font-size: 1.2rem;
font-weight: 950;
}

.agent-register-panel-head p {
margin: 0;
color: var(--vivu-muted);
font-size: .82rem;
font-weight: 650;
line-height: 1.5;
}

.vivu-agent-register-page .form-label {
color: var(--vivu-deep);
font-size: .82rem;
}

.vivu-agent-register-page .input-soft {
overflow: hidden;
border: 1px solid var(--vivu-border);
border-radius: 999px;
background: var(--vivu-soft);
}

.vivu-agent-register-page .input-soft .input-group-text {
padding-inline: 18px 8px;
border: 0;
background: transparent;
color: var(--vivu-primary);
}

.vivu-agent-register-page .input-soft .form-control {
min-height: 52px;
border: 0;
background: transparent;
color: var(--vivu-text);
box-shadow: none;
font-size: .9rem;
font-weight: 650;
}

.vivu-agent-register-page .form-control,
.vivu-agent-register-page .form-select {
min-height: 32px;
border-color: var(--vivu-border);
border-radius: var(--vivu-radius-md);
background-color: var(--vivu-soft);
color: var(--vivu-text);
font-weight: 650;
}

.vivu-agent-register-page .form-select {
border-radius: 999px;
}

.vivu-agent-register-page .form-control:focus,
.vivu-agent-register-page .form-select:focus,
.vivu-agent-register-page .input-soft:focus-within {
border-color: rgba(var(--bs-primary-rgb), .55);
box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .14);
}

.agent-register-textarea {
min-height: 132px;
resize: vertical;
}

.agent-register-textarea-sm {
min-height: 96px;
resize: vertical;
}

.agent-identity-upload {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
padding: 14px;
border: 1px dashed rgba(var(--bs-primary-rgb), .35);
border-radius: var(--vivu-radius-lg);
background: rgba(var(--bs-primary-rgb), .045);
}

.agent-identity-upload h3 {
margin: 0 0 .25rem;
color: var(--vivu-deep);
font-size: .98rem;
font-weight: 950;
}

.agent-identity-upload p {
margin: 0;
color: var(--vivu-muted);
font-size: .8rem;
font-weight: 700;
}

.agent-identity-upload input[type="file"],
[data-agent-identity-upload] {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0 0 0 0);
clip-path: inset(50%);
border: 0;
opacity: 0;
pointer-events: none;
white-space: nowrap;
}

.agent-identity-list {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
gap: 10px;
margin-top: 12px;
}

.agent-identity-empty {
display: grid;
min-height: 76px;
place-items: center;
grid-column: 1 / -1;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
color: var(--vivu-muted);
font-weight: 800;
}

.agent-identity-item {
position: relative;
overflow: hidden;
aspect-ratio: 4 / 3;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
}

.agent-identity-item img {
width: 100%;
height: 100%;
object-fit: cover;
}

.agent-identity-item button {
position: absolute;
top: 6px;
right: 6px;
width: 30px;
height: 30px;
display: inline-grid;
place-items: center;
border: 0;
border-radius: 999px;
background: rgba(255, 255, 255, .9);
color: var(--vivu-deep);
box-shadow: 0 8px 18px rgba(5, 52, 77, .16);
}

.admin-settings-form {
display: grid;
gap: 18px;
}

.admin-settings-options {
display: grid;
gap: 12px;
}

.admin-settings-actions {
align-items: center;
display: flex;
flex-wrap: wrap;
gap: 12px;
justify-content: flex-end;
padding-bottom: 18px;
}

.admin-app-config-actions {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 10px;
}

.admin-app-config-toolbar {
display: grid;
gap: 14px;
}

.admin-app-config-tabs {
display: flex;
gap: 8px;
overflow-x: auto;
padding-bottom: 2px;
-webkit-overflow-scrolling: touch;
scrollbar-width: none;
}

.admin-app-config-tabs::-webkit-scrollbar {
width: 0;
height: 0;
}

.admin-app-config-tabs button {
display: inline-flex;
min-height: 42px;
align-items: center;
gap: 8px;
border: 1px solid var(--vivu-border);
border-radius: 999px;
background: var(--vivu-surface);
color: var(--vivu-muted);
font-size: .84rem;
font-weight: 900;
padding: 0 16px;
white-space: nowrap;
transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}

.admin-app-config-tabs button:hover,
.admin-app-config-tabs button.active {
border-color: rgba(var(--bs-primary-rgb), .25);
background: rgba(var(--bs-primary-rgb), .1);
color: var(--vivu-primary-strong);
}

.admin-app-config-tabs button:active {
transform: translateY(1px);
}

.admin-app-config-filters {
grid-template-columns: minmax(0, 1fr) 220px;
}

.admin-app-config-table {
min-width: 920px;
}

.admin-app-config-modal-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-app-config-content {
min-height: 180px;
}

@media (max-width: 991.98px) {
.agent-register-summary {
position: static;
}

.agent-register-panel-head {
flex-direction: column;
}
}

@media (max-width: 767.98px) {
.vivu-agent-register-page .agent-register-page {
padding-block: 8px;
}

.agent-register-shell {
padding: 84px 14px 24px;
}

.agent-register-heading h1 {
font-size: 2rem;
}

.agent-register-steps {
justify-content: flex-start;
}

.agent-identity-upload {
align-items: stretch;
flex-direction: column;
}

.agent-identity-upload .btn {
width: 100%;
}
}

.footer-wrap {
background: var(--vivu-soft);
}

.footer-card {
border-color: var(--vivu-border);
background: var(--vivu-surface);
box-shadow: 0 18px 50px rgba(5, 52, 77, .08);
}

.footer-card h4,
.footer-card .navbar-brand {
color: var(--vivu-deep);
}

.footer-card p,
.footer-card a,
.footer-card small {
color: var(--vivu-muted);
}

.footer-card a:hover,
.footer-card a:focus-visible {
color: var(--vivu-primary-strong);
}

.footer-card .form-control {
border-color: var(--vivu-border);
color: var(--vivu-text);
}

.footer-card .form-control::placeholder {
color: color-mix(in srgb, var(--vivu-muted), transparent 10%);
}

.footer-big {
color: rgba(6, 55, 79, .16);
}

[data-bs-theme="dark"] .footer-card {
background: color-mix(in srgb, var(--vivu-surface), #ffffff 3%);
}

[data-bs-theme="dark"] .footer-big {
color: rgba(255, 255, 255, .06);
}

.vivu-owner-page {
min-height: 100dvh;
overflow-x: hidden;
background:
radial-gradient(circle at 12% 8%, rgba(var(--bs-primary-rgb), .14), transparent 28rem),
radial-gradient(circle at 88% 18%, rgba(6, 55, 79, .08), transparent 26rem),
var(--vivu-bg);
color: var(--vivu-text);
}

.vivu-owner-page .owner-page {
min-height: 100dvh;
padding-block: 28px;
}

.owner-shell {
position: relative;
z-index: 2;
min-height: calc(100dvh - 92px);
padding: 2rem 1rem 2rem;
}

.vivu-owner-page.modal-open .owner-shell {
z-index: auto;
}

.owner-layout {
display: grid;
grid-template-columns: 260px minmax(0, 1fr);
gap: 20px;
align-items: start;
}

.owner-sidebar,
.owner-topbar,
.owner-stats > div,
.owner-toolbar,
.owner-homestay-card,
.owner-calendar-panel,
.owner-empty {
border: 1px solid rgba(var(--bs-primary-rgb), .14);
background:
linear-gradient(180deg, rgba(255, 255, 255, .94), rgba(255, 255, 255, .82)),
var(--vivu-surface);
box-shadow: 0 18px 50px rgba(5, 52, 77, .08);
}

[data-bs-theme="dark"] .owner-sidebar,
[data-bs-theme="dark"] .owner-topbar,
[data-bs-theme="dark"] .owner-stats > div,
[data-bs-theme="dark"] .owner-toolbar,
[data-bs-theme="dark"] .owner-homestay-card,
[data-bs-theme="dark"] .owner-calendar-panel,
[data-bs-theme="dark"] .owner-empty {
background:
linear-gradient(180deg, rgba(11, 37, 50, .94), rgba(11, 37, 50, .8)),
var(--vivu-surface);
}

.owner-sidebar {
position: sticky;
top: 96px;
padding: 18px;
border-radius: var(--vivu-radius-xl);
transition: padding .2s ease;
}

.owner-sidebar-toggle {
display: grid;
width: 36px;
min-width: 36px;
height: 36px;
margin-left: auto;
padding: 0;
place-items: center;
border: 1px solid var(--vivu-border);
border-radius: 10px;
background: var(--vivu-soft);
color: var(--vivu-primary-deep);
transition: color .18s ease, border-color .18s ease, background-color .18s ease, transform .18s ease;
}

.owner-sidebar-toggle:hover,
.owner-sidebar-toggle:focus-visible {
border-color: var(--vivu-primary);
background: color-mix(in srgb, var(--vivu-primary) 10%, var(--vivu-surface));
color: var(--vivu-primary-deep);
}

.owner-sidebar-toggle:active {
transform: translateY(1px);
}

.owner-layout {
transition: grid-template-columns .2s ease;
}

.owner-layout.is-sidebar-collapsed {
grid-template-columns: 76px minmax(0, 1fr);
}

.owner-sidebar.is-collapsed {
padding: 10px;
}

.owner-sidebar.is-collapsed .owner-sidebar-toggle {
margin: 0;
}

.owner-sidebar.is-collapsed .owner-sidebar-head > .owner-avatar,
.owner-sidebar.is-collapsed .owner-sidebar-head > div {
display: none;
}

.owner-sidebar.is-collapsed .owner-sidebar-head {
justify-content: center;
padding-bottom: 10px;
}

.owner-sidebar.is-collapsed .owner-menu a {
justify-content: center;
width: 48px;
min-height: 48px;
padding: 0;
font-size: 0;
gap: 0;
}

.owner-sidebar.is-collapsed .owner-menu a i {
font-size: 1.05rem;
}

.owner-sidebar-head {
display: flex;
align-items: center;
gap: 12px;
padding-bottom: 16px;
border-bottom: 1px solid var(--vivu-border);
}

.owner-avatar {
display: grid;
width: 44px!important;
aspect-ratio: 1;
place-items: center;
border-radius: 999px!important;
background: var(--vivu-gradient);
color: var(--vivu-deep);
font-weight: 950;
}

.owner-avatar-image {
display: block;
width: 100%;
height: 100%;
border-radius: inherit;
object-fit: cover;
}

.owner-sidebar-head strong {
display: block;
color: var(--vivu-deep);
font-size: .95rem;
font-weight: 900;
line-height: 1.1;
}

.owner-sidebar-head small {
color: var(--vivu-muted);
font-size: .78rem;
font-weight: 750;
}

.owner-menu {
display: grid;
gap: 6px;
padding-top: 16px;
}

.owner-menu a {
display: flex;
min-height: 42px;
align-items: center;
gap: 10px;
padding: 9px 12px;
border-radius: 999px;
color: var(--vivu-muted);
font-size: .86rem;
font-weight: 800;
text-decoration: none;
transition: color .18s ease, background-color .18s ease, transform .18s ease;
}

.owner-menu a:hover,
.owner-menu a:focus-visible,
.owner-menu a.active {
background: rgba(var(--bs-primary-rgb), .1);
color: var(--vivu-primary-strong);
}

.owner-menu a:active {
transform: translateY(1px);
}

.owner-main {
display: grid;
gap: 16px;
min-width: 0;
}

.owner-topbar {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
padding: clamp(1.25rem, 3vw, 1.8rem);
border-radius: var(--vivu-radius-xl);
}

.owner-topbar h1 {
margin: 10px 0 8px;
color: var(--vivu-deep);
font-size: 2.1rem;
font-weight: 950;
line-height: 1.05;
letter-spacing: 0;
}

.owner-topbar p {
max-width: 55rem;
margin: 0;
color: var(--vivu-muted);
font-size: .93rem;
font-weight: 650;
line-height: 1.6;
}

.owner-stats {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 12px;
}

.owner-stats > div {
display: grid;
gap: 4px;
min-height: 92px;
padding: 16px;
border-radius: var(--vivu-radius-lg);
}

.owner-stats span {
color: var(--vivu-muted);
font-size: .78rem;
font-weight: 800;
}

.owner-stats strong {
color: var(--vivu-deep);
font-size: 1.65rem;
font-weight: 950;
line-height: 1;
}

.owner-toolbar {
padding: 14px;
border-radius: var(--vivu-radius-lg);
}

.vivu-admin-page .admin-sidebar .owner-avatar {
background: linear-gradient(135deg, var(--vivu-primary), var(--vivu-accent));
}

.admin-topbar .btn {
flex: 0 0 auto;
}

.admin-stats strong {
color: var(--vivu-primary-strong);
}

.admin-dashboard-grid {
display: grid;
grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
gap: 16px;
}

.admin-panel {
border: 1px solid rgba(var(--bs-primary-rgb), .14);
border-radius: var(--vivu-radius-xl);
background:
linear-gradient(180deg, rgba(255, 255, 255, .94), rgba(255, 255, 255, .84)),
var(--vivu-surface);
box-shadow: 0 18px 50px rgba(5, 52, 77, .08);
padding: clamp(1.1rem, 2.4vw, 1.45rem);
}

[data-bs-theme="dark"] .admin-panel {
background:
linear-gradient(180deg, rgba(11, 37, 50, .94), rgba(11, 37, 50, .82)),
var(--vivu-surface);
}

.admin-panel-head {
display: flex;
flex-direction: row;
align-items: flex-start;
justify-content: space-between;
gap: 12px;
margin-bottom: 16px;
}
.ads-analytics-filters {
    display: flex;
    gap: 12px;
}

.admin-panel-head h2 {
margin: 8px 0 0;
color: var(--vivu-deep);
font-size: 1.15rem;
font-weight: 950;
line-height: 1.2;
}

.admin-status-pill {
/*display: inline-flex;*/
display: none;
min-height: 34px;
align-items: center;
border-radius: 999px;
background: rgba(var(--bs-primary-rgb), .1);
color: var(--vivu-primary-strong);
font-size: .78rem;
font-weight: 850;
padding: 6px 12px;
white-space: nowrap;
}

.admin-quick-actions {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
}

.admin-quick-action {
display: flex;
min-height: 82px;
align-items: center;
gap: 12px;
padding: 14px;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-lg);
color: var(--vivu-deep);
background: rgba(255, 255, 255, .64);
text-decoration: none;
transition: border-color .18s ease, background-color .18s ease, transform .18s ease;
}

.admin-quick-action:hover,
.admin-quick-action:focus-visible {
border-color: rgba(var(--bs-primary-rgb), .32);
background: rgba(var(--bs-primary-rgb), .08);
transform: translateY(-1px);
}

.admin-quick-action > i {
display: grid;
flex: 0 0 42px;
width: 42px;
aspect-ratio: 1;
place-items: center;
border-radius: 14px;
background: rgba(var(--bs-primary-rgb), .1);
color: var(--vivu-primary-strong);
font-size: 1.1rem;
}

.admin-quick-action strong,
.admin-quick-action small {
display: block;
}

.admin-quick-action strong {
font-size: .94rem;
font-weight: 950;
line-height: 1.2;
}

.admin-quick-action small {
margin-top: 4px;
color: var(--vivu-muted);
font-size: .78rem;
font-weight: 700;
line-height: 1.35;
}

.admin-health-list {
display: grid;
gap: 10px;
}

.admin-health-list > div {
display: grid;
grid-template-columns: 34px minmax(0, 1fr);
gap: 2px 10px;
align-items: center;
padding: 12px;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-lg);
background: rgba(255, 255, 255, .58);
}

.admin-health-list i {
grid-row: span 2;
color: var(--vivu-primary-strong);
font-size: 1.2rem;
}

.admin-health-list span {
color: var(--vivu-muted);
font-size: .78rem;
font-weight: 800;
}

.admin-health-list strong {
color: var(--vivu-deep);
font-size: .92rem;
font-weight: 900;
}

.admin-users-filters {
display: grid;
grid-template-columns: minmax(0, 1fr) 180px 220px;
gap: 12px;
}

.admin-homestays-filters {
grid-template-columns: minmax(0, 1fr) 220px;
}

.admin-owners-filters {
grid-template-columns: minmax(0, 1fr) 220px;
}

.admin-users-panel {
overflow: hidden;
}

.admin-users-table-wrap {
width: 100%;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}

.admin-users-table {
width: 100%;
min-width: 860px;
border-collapse: collapse;
}

.admin-users-table th,
.admin-users-table td {
padding: 10px 6px;
border-bottom: 1px solid var(--vivu-border);
vertical-align: middle;
}

.admin-users-table th {
color: var(--vivu-muted);
font-size: .76rem;
font-weight: 900;
}

.admin-users-table td {
color: var(--vivu-deep);
font-size: .88rem;
font-weight: 750;
}

.admin-user-cell {
display: flex;
min-width: 0;
align-items: center;
gap: 12px;
}

.admin-homestay-cell {
display: flex;
min-width: 300px;
align-items: center;
gap: 12px;
}

.admin-homestay-cell > div {
min-width: 0;
}

.admin-user-cell .owner-avatar,
.admin-user-modal-summary .owner-avatar {
width: 42px;
border-radius: 14px;
font-size: .86rem;
}

.admin-homestay-thumb {
display: inline-grid;
width: 52px;
min-width: 52px;
aspect-ratio: 1 / 1;
place-items: center;
overflow: hidden;
border: 1px solid rgba(var(--bs-primary-rgb), .18);
border-radius: 16px;
background:
linear-gradient(135deg, rgba(var(--bs-primary-rgb), .12), rgba(255, 255, 255, .92)),
var(--vivu-soft);
background-position: center;
background-size: cover;
color: var(--vivu-primary-strong);
font-size: 1.2rem;
}

.admin-user-cell strong,
.admin-user-cell small,
.admin-user-modal-summary strong,
.admin-user-modal-summary small,
.admin-homestay-cell strong,
.admin-homestay-cell small,
.admin-homestay-cell em,
.admin-homestay-modal-summary strong,
.admin-homestay-modal-summary small {
display: block;
}

.admin-user-cell strong,
.admin-user-modal-summary strong,
.admin-homestay-cell strong,
.admin-homestay-modal-summary strong {
color: var(--vivu-deep);
font-weight: 950;
}

.admin-user-cell small,
.admin-user-modal-summary small,
.admin-homestay-cell small,
.admin-homestay-cell em,
.admin-homestay-modal-summary small,
.admin-user-date {
color: var(--vivu-muted);
font-size: .78rem;
font-weight: 750;
}

.admin-homestay-cell em {
max-width: 30rem;
overflow: hidden;
font-style: normal;
text-overflow: ellipsis;
white-space: nowrap;
}

.admin-user-status,
.admin-homestay-status {
display: inline-flex;
min-height: 30px;
align-items: center;
border-radius: 999px;
background: rgba(var(--bs-primary-rgb), .1);
color: var(--vivu-primary-strong);
font-size: .76rem;
font-weight: 900;
padding: 5px 10px;
white-space: nowrap;
}

.admin-user-status.is-banned {
background: rgba(220, 53, 69, .1);
color: #b42318;
}

.admin-user-status.is-newreg {
background: rgba(255, 193, 7, .16);
color: #8a5a00;
}

.admin-homestay-status.is-active {
background: rgba(25, 135, 84, .1);
color: #13744a;
}

.admin-homestay-status.is-pending,
.admin-homestay-status.is-paused {
background: rgba(255, 193, 7, .16);
color: #8a5a00;
}

.admin-homestay-status.is-rejected,
.admin-homestay-status.is-deleted {
background: rgba(220, 53, 69, .1);
color: #b42318;
}

.admin-homestay-price {
color: var(--vivu-primary-strong);
font-size: .86rem;
font-weight: 950;
white-space: nowrap;
}

.admin-owner-detail-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
}

.admin-owner-detail-grid div {
min-width: 0;
padding: 12px;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background: rgba(255, 255, 255, .58);
}

.admin-owner-detail-grid span,
.admin-owner-detail-grid strong {
display: block;
}

.admin-owner-detail-grid span {
color: var(--vivu-muted);
font-size: .74rem;
font-weight: 850;
}

.admin-owner-detail-grid strong {
margin-top: 4px;
overflow: hidden;
color: var(--vivu-deep);
font-size: .88rem;
font-weight: 900;
text-overflow: ellipsis;
white-space: nowrap;
}

.admin-owner-role-option {
margin: 0;
}

.admin-role-chip-list {
display: flex;
flex-wrap: wrap;
gap: 6px;
max-width: 34rem;
}

.admin-role-chip-list span {
display: inline-flex;
min-height: 28px;
align-items: center;
border-radius: 999px;
background: rgba(var(--bs-primary-rgb), .1);
color: var(--vivu-primary-strong);
font-size: .74rem;
font-weight: 850;
padding: 4px 9px;
}

.admin-role-chip-list em {
color: var(--vivu-muted);
font-size: .78rem;
font-style: normal;
font-weight: 750;
}

.admin-users-loading td {
padding: 20px 12px;
}

.admin-users-loading span {
display: block;
height: 14px;
max-width: 100%;
margin-block: 8px;
border-radius: 999px;
background: linear-gradient(90deg, rgba(var(--bs-primary-rgb), .08), rgba(var(--bs-primary-rgb), .18), rgba(var(--bs-primary-rgb), .08));
background-size: 220% 100%;
animation: ownerSkeleton 1.2s ease-in-out infinite;
}

.admin-users-loading span:nth-child(1) {
width: 42%;
}

.admin-users-loading span:nth-child(2) {
width: 72%;
}

.admin-users-loading span:nth-child(3) {
width: 56%;
}

.admin-users-empty {
display: grid;
justify-items: center;
gap: 6px;
padding: 34px 16px;
text-align: center;
}

.admin-users-empty i {
color: var(--vivu-primary-strong);
font-size: 2rem;
}

.admin-users-empty strong {
color: var(--vivu-deep);
font-size: 1rem;
font-weight: 950;
}

.admin-users-empty span {
max-width: 34rem;
color: var(--vivu-muted);
font-size: .88rem;
font-weight: 700;
}

.admin-users-pagination {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 10px;
padding-top: 16px;
}

.admin-users-pagination span {
color: var(--vivu-muted);
font-size: .82rem;
font-weight: 850;
}

.admin-user-modal-summary {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 16px;
padding: 14px;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-lg);
background: var(--vivu-soft);
}

.admin-homestay-modal-summary {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 16px;
padding: 14px;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-lg);
background: var(--vivu-soft);
}

.admin-homestay-modal-summary .admin-homestay-thumb {
width: 64px;
min-width: 64px;
border-radius: 18px;
}

.admin-homestay-detail-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
}

.admin-homestay-detail-grid div,
.admin-homestay-read-block {
min-width: 0;
padding: 12px;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background: rgba(255, 255, 255, .62);
}

.admin-homestay-read-block {
margin-top: 10px;
}

.admin-homestay-detail-grid span,
.admin-homestay-detail-grid strong,
.admin-homestay-read-block > span,
.admin-homestay-read-block > strong,
.admin-homestay-read-block > p {
display: block;
}

.admin-homestay-detail-grid span,
.admin-homestay-read-block > span {
color: var(--vivu-muted);
font-size: .74rem;
font-weight: 850;
}

.admin-homestay-detail-grid strong,
.admin-homestay-read-block > strong,
.admin-homestay-read-block > p {
margin: 4px 0 0;
color: var(--vivu-deep);
font-size: .88rem;
font-weight: 900;
}

.admin-homestay-detail-grid strong {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

.admin-homestay-read-block > p {
font-weight: 750;
line-height: 1.55;
white-space: pre-line;
}

.admin-homestay-chip-list {
display: flex;
flex-wrap: wrap;
gap: 7px;
margin-top: 8px;
}

.admin-homestay-chip-list span,
.admin-homestay-chip-list em,
.admin-homestay-stack-list em,
.admin-homestay-media-list em {
display: inline-flex;
min-height: 28px;
align-items: center;
border-radius: 999px;
padding: 4px 10px;
background: rgba(16, 184, 207, .1);
color: var(--vivu-primary-strong);
font-size: .76rem;
font-style: normal;
font-weight: 850;
}

.admin-homestay-stack-list {
display: grid;
gap: 8px;
margin-top: 8px;
}

.admin-homestay-stack-list div,
.admin-homestay-stack-list a {
display: grid;
gap: 3px;
padding: 10px 12px;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
color: var(--vivu-deep);
font-size: .82rem;
font-weight: 850;
text-decoration: none;
}

.admin-homestay-stack-list small {
color: var(--vivu-muted);
font-size: .76rem;
font-weight: 750;
}

.admin-homestay-media-list {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(74px, 1fr));
gap: 8px;
margin-top: 8px;
}

.admin-homestay-media-list a {
min-height: 74px;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background-color: var(--vivu-soft);
background-position: center;
background-size: cover;
}

@media (max-width: 575.98px) {
.admin-homestay-detail-grid {
grid-template-columns: 1fr;
}
}

.admin-user-role-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
}

.admin-user-role-option {
display: flex;
align-items: flex-start;
gap: 10px;
min-height: 68px;
padding: 12px;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-lg);
background: rgba(255, 255, 255, .58);
cursor: pointer;
}

.admin-user-role-option:hover,
.admin-user-role-option:has(input:checked) {
border-color: rgba(var(--bs-primary-rgb), .34);
background: rgba(var(--bs-primary-rgb), .08);
}

.admin-user-role-option input {
margin-top: 2px;
}

.admin-user-role-option strong,
.admin-user-role-option small {
display: block;
}

.admin-user-role-option strong {
color: var(--vivu-deep);
font-size: .88rem;
font-weight: 900;
}

.admin-user-role-option small {
margin-top: 3px;
color: var(--vivu-muted);
font-size: .72rem;
font-weight: 800;
}

.owner-search {
display: grid;
grid-template-columns: minmax(0, 1fr) 220px;
gap: 12px;
}

.owner-agent-filters {
display: grid;
grid-template-columns: minmax(220px, .7fr) minmax(0, 1fr) 190px;
gap: 12px;
}

.vivu-agent-page .owner-agent-filters {
grid-template-columns: minmax(240px, 1fr) 190px minmax(150px, .36fr) minmax(150px, .36fr);
}

.agent-availability-field {
display: flex;
flex-direction: column;
gap: 4px;
margin: 0;
}

.agent-availability-field span {
color: var(--vivu-muted);
font-size: .72rem;
font-weight: 850;
}

.owner-calendar-toolbar {
display: grid;
grid-template-columns: minmax(220px, .65fr) minmax(240px, 1fr) auto;
gap: 12px;
align-items: center;
}

.owner-calendar-nav {
display: flex;
min-height: 48px;
align-items: center;
justify-content: center;
gap: 12px;
padding: 6px 12px;
border: 1px solid var(--vivu-border);
border-radius: 999px;
background: var(--vivu-soft);
}

.owner-calendar-nav strong {
min-width: 150px;
color: var(--vivu-deep);
font-size: .92rem;
font-weight: 950;
text-align: center;
}

.owner-calendar-nav .btn,
.owner-calendar-toolbar .btn-light {
display: inline-grid;
width: 36px;
height: 36px;
place-items: center;
padding: 0;
border: 1px solid var(--vivu-border);
color: var(--vivu-primary-strong);
}

.vivu-owner-page .input-soft {
overflow: hidden;
border: 1px solid var(--vivu-border);
border-radius: 999px;
background: var(--vivu-soft);
}

.vivu-owner-page .input-soft .input-group-text {
padding-inline: 18px 8px;
border: 0;
background: transparent;
color: var(--vivu-primary);
}

.vivu-owner-page .input-soft .form-control,
.vivu-owner-page .form-select {
min-height: 38px;
border-color: var(--vivu-border);
background-color: var(--vivu-soft);
color: var(--vivu-text);
box-shadow: none;
font-size: .88rem;
font-weight: 700;
}

.vivu-owner-page .input-soft .form-control {
border: 0;
background: transparent;
}

.vivu-owner-page .form-select {
border-radius: 999px;
padding-inline: 16px 42px;
}
.vivu-owner-page .form-select[multiple] {
border-radius: var(--bs-border-radius);
}

.owner-feedback {
display: none;
padding: 12px 14px;
border-radius: var(--vivu-radius-md);
font-size: .85rem;
font-weight: 800;
}

.owner-feedback.is-visible {
display: block;
}

.owner-feedback.is-error {
border: 1px solid rgba(220, 53, 69, .25);
background: rgba(220, 53, 69, .08);
color: #b02a37;
}

.owner-feedback.is-success {
border: 1px solid rgba(25, 135, 84, .22);
background: rgba(25, 135, 84, .08);
color: #13744a;
}

.vivu-owner-toast-stack {
position: fixed;
top: 18px;
right: 18px;
z-index: 1090;
width: min(380px, calc(100vw - 28px));
pointer-events: none;
}

.vivu-owner-toast {
display: grid;
grid-template-columns: 34px minmax(0, 1fr) 30px;
gap: 10px;
align-items: start;
padding: 12px;
border: 1px solid rgba(220, 53, 69, .22);
border-radius: var(--vivu-radius-lg);
background: var(--vivu-surface);
color: var(--vivu-text);
box-shadow: 0 18px 52px rgba(5, 52, 77, .22);
pointer-events: auto;
animation: vivuOwnerToastIn .18s ease-out both;
}

.vivu-owner-toast.is-leaving {
animation: vivuOwnerToastOut .18s ease-in both;
}

.vivu-owner-toast-icon {
display: grid;
width: 34px;
height: 34px;
place-items: center;
border-radius: 999px;
background: rgba(220, 53, 69, .1);
color: #b02a37;
}

.vivu-owner-toast-message {
padding-top: 6px;
color: var(--vivu-text);
font-size: .86rem;
font-weight: 800;
line-height: 1.4;
}

.vivu-owner-toast-close {
display: inline-grid;
width: 30px;
height: 30px;
place-items: center;
border: 0;
border-radius: 999px;
background: transparent;
color: var(--vivu-muted);
}

.vivu-owner-toast-close:hover,
.vivu-owner-toast-close:focus-visible {
background: rgba(220, 53, 69, .08);
color: #b02a37;
}

@keyframes vivuOwnerToastIn {
from {
opacity: 0;
transform: translateY(-8px);
}
to {
opacity: 1;
transform: translateY(0);
}
}

@keyframes vivuOwnerToastOut {
to {
opacity: 0;
transform: translateY(-6px);
}
}

.owner-list {
display: grid;
gap: 12px;
}

.owner-calendar-panel {
padding: 14px;
border-radius: var(--vivu-radius-xl);
}

.owner-calendar-weekdays,
.owner-calendar-grid {
display: grid;
grid-template-columns: repeat(7, minmax(0, 1fr));
gap: 8px;
}

.owner-calendar-weekdays {
margin-bottom: 8px;
}

.owner-calendar-weekdays span {
color: var(--vivu-muted);
font-size: .78rem;
font-weight: 900;
text-align: center;
}

.owner-calendar-day {
position: relative;
display: grid;
min-height: 116px;
align-content: space-between;
gap: 10px;
padding: 10px;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background: var(--vivu-surface);
color: var(--vivu-text);
text-align: left;
transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.owner-calendar-day:hover,
.owner-calendar-day:focus-visible {
border-color: rgba(var(--bs-primary-rgb), .45);
box-shadow: 0 14px 34px rgba(5, 52, 77, .1);
transform: translateY(-1px);
}

.owner-calendar-day.is-outside {
opacity: .48;
}

.owner-calendar-day.is-today {
border-color: var(--vivu-primary);
box-shadow: inset 0 0 0 1px rgba(var(--bs-primary-rgb), .28);
}

.owner-calendar-day.is-available {
border-color: rgba(25, 135, 84, .2);
background:
linear-gradient(135deg, rgba(25, 135, 84, .08), rgba(255, 255, 255, .92)),
var(--vivu-surface);
}

.owner-calendar-day.is-blocked {
border-color: rgba(220, 53, 69, .26);
background: rgba(220, 53, 69, .07);
}

.owner-calendar-day.is-booked {
border-color: rgba(245, 158, 11, .38);
background:
linear-gradient(135deg, rgba(245, 158, 11, .18), rgba(255, 247, 237, .72)),
var(--vivu-surface);
}

.owner-calendar-day.is-priced {
background:
linear-gradient(180deg, rgba(var(--bs-primary-rgb), .08), rgba(var(--bs-primary-rgb), .03)),
var(--vivu-surface);
}

.owner-calendar-day-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}

.owner-calendar-day-number {
color: var(--vivu-deep);
font-size: .95rem;
font-weight: 950;
}

.owner-calendar-day-badge {
display: inline-flex;
min-height: 24px;
align-items: center;
padding: 3px 8px;
border-radius: 999px;
background: rgba(25, 135, 84, .1);
color: #13744a;
font-size: .7rem;
font-weight: 900;
}

.owner-calendar-day.is-available .owner-calendar-day-badge {
background: rgba(25, 135, 84, .12);
color: #13744a;
}

.owner-calendar-day.is-blocked .owner-calendar-day-badge {
background: rgba(220, 53, 69, .1);
color: #b02a37;
}

.owner-calendar-day.is-booked .owner-calendar-day-badge {
background: rgba(245, 158, 11, .18);
color: #a16207;
}

.owner-calendar-day-price,
.owner-calendar-day-note {
display: block;
overflow: hidden;
color: var(--vivu-muted);
font-size: .74rem;
font-weight: 800;
line-height: 1.35;
text-overflow: ellipsis;
white-space: nowrap;
}

.owner-calendar-day-price {
color: var(--vivu-primary-strong);
}

.owner-calendar-day.is-loading {
min-height: 116px;
background: linear-gradient(90deg, var(--vivu-soft), rgba(var(--bs-primary-rgb), .12), var(--vivu-soft));
background-size: 220% 100%;
animation: ownerSkeleton 1.2s ease-in-out infinite;
}

.owner-calendar-legend {
display: flex;
flex-wrap: wrap;
gap: 10px;
align-items: center;
color: var(--vivu-muted);
font-size: .8rem;
font-weight: 800;
}

.owner-calendar-legend span {
display: inline-flex;
align-items: center;
gap: 7px;
}

.owner-calendar-legend i {
display: inline-block;
width: 12px;
height: 12px;
border-radius: 999px;
border: 1px solid var(--vivu-border);
background: var(--vivu-surface);
}

.owner-calendar-legend i.is-available {
background: rgba(25, 135, 84, .16);
border-color: rgba(25, 135, 84, .28);
}

.owner-calendar-legend i.is-blocked {
background: rgba(220, 53, 69, .16);
border-color: rgba(220, 53, 69, .28);
}

.owner-calendar-legend i.is-booked {
background: rgba(245, 158, 11, .22);
border-color: rgba(245, 158, 11, .38);
}

.owner-calendar-legend i.is-priced {
background: rgba(var(--bs-primary-rgb), .2);
border-color: rgba(var(--bs-primary-rgb), .35);
}

.owner-calendar-legend i.is-today {
background: var(--vivu-surface);
border-color: var(--vivu-primary);
box-shadow: 0 0 0 2px rgba(var(--bs-primary-rgb), .16);
}

[data-bs-theme="dark"] .owner-calendar-panel {
border-color: var(--vivu-border);
background: var(--vivu-surface);
}

[data-bs-theme="dark"] .owner-calendar-day {
border-color: var(--vivu-border);
background: var(--vivu-surface);
color: var(--vivu-text);
}

[data-bs-theme="dark"] .owner-calendar-day:hover,
[data-bs-theme="dark"] .owner-calendar-day:focus-visible {
border-color: color-mix(in srgb, var(--vivu-primary) 62%, var(--vivu-border));
background: color-mix(in srgb, var(--vivu-primary) 8%, var(--vivu-surface));
box-shadow: 0 14px 34px rgba(0, 0, 0, .28);
}

[data-bs-theme="dark"] .owner-calendar-day.is-available {
border-color: color-mix(in srgb, var(--vivu-success) 42%, var(--vivu-border));
background: color-mix(in srgb, var(--vivu-success) 12%, var(--vivu-surface));
}

[data-bs-theme="dark"] .owner-calendar-day.is-blocked {
border-color: color-mix(in srgb, var(--vivu-error) 48%, var(--vivu-border));
background: color-mix(in srgb, var(--vivu-error) 12%, var(--vivu-surface));
}

[data-bs-theme="dark"] .owner-calendar-day.is-booked {
border-color: color-mix(in srgb, #f5a623 52%, var(--vivu-border));
background: color-mix(in srgb, #f5a623 13%, var(--vivu-surface));
}

[data-bs-theme="dark"] .owner-calendar-day.is-priced {
background: color-mix(in srgb, var(--vivu-primary) 12%, var(--vivu-surface));
}

[data-bs-theme="dark"] .owner-calendar-day.is-today {
border-color: var(--vivu-primary);
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--vivu-primary) 55%, transparent);
}

[data-bs-theme="dark"] .owner-calendar-day.is-available .owner-calendar-day-badge {
background: color-mix(in srgb, var(--vivu-success) 24%, var(--vivu-surface));
color: #82e5b7;
}

[data-bs-theme="dark"] .owner-calendar-day.is-blocked .owner-calendar-day-badge {
background: color-mix(in srgb, var(--vivu-error) 24%, var(--vivu-surface));
color: #ffadb4;
}

[data-bs-theme="dark"] .owner-calendar-day.is-booked .owner-calendar-day-badge {
background: color-mix(in srgb, #f5a623 24%, var(--vivu-surface));
color: #ffd478;
}

[data-bs-theme="dark"] .owner-calendar-legend i.is-available { background: color-mix(in srgb, var(--vivu-success) 42%, var(--vivu-surface)); }
[data-bs-theme="dark"] .owner-calendar-legend i.is-blocked { background: color-mix(in srgb, var(--vivu-error) 42%, var(--vivu-surface)); }
[data-bs-theme="dark"] .owner-calendar-legend i.is-booked { background: color-mix(in srgb, #f5a623 46%, var(--vivu-surface)); }
[data-bs-theme="dark"] .owner-calendar-legend i.is-priced { background: color-mix(in srgb, var(--vivu-primary) 42%, var(--vivu-surface)); }
[data-bs-theme="dark"] .owner-calendar-legend i.is-today { background: var(--vivu-surface); }

.owner-agent-list {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 12px;
}

.agent-homestay-list {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(310px, 1fr));
gap: 12px;
}

.agent-homestay-card {
display: grid;
grid-template-rows: auto 1fr;
overflow: hidden;
border: 1px solid rgba(var(--bs-primary-rgb), .14);
border-radius: var(--vivu-radius-lg);
background:
linear-gradient(180deg, rgba(255, 255, 255, .94), rgba(255, 255, 255, .84)),
var(--vivu-surface);
box-shadow: 0 18px 50px rgba(5, 52, 77, .08);
}

[data-bs-theme="dark"] .agent-homestay-card {
background:
linear-gradient(180deg, rgba(11, 37, 50, .94), rgba(11, 37, 50, .8)),
var(--vivu-surface);
}

.agent-homestay-thumb {
position: relative;
display: grid;
min-height: 168px;
place-items: center;
overflow: hidden;
background:
linear-gradient(135deg, rgba(var(--bs-primary-rgb), .18), rgba(6, 55, 79, .14)),
var(--vivu-soft);
color: var(--vivu-primary-strong);
font-size: 2rem;
}

.agent-homestay-thumb img {
width: 100%;
height: 100%;
min-height: 168px;
object-fit: cover;
}

.agent-homestay-thumb .owner-status {
position: absolute;
top: 12px;
left: 12px;
box-shadow: 0 10px 24px rgba(5, 52, 77, .12);
}

.agent-homestay-body {
display: grid;
gap: 12px;
padding: 16px;
}

.agent-homestay-title {
display: grid;
gap: 5px;
}

.agent-homestay-title h2 {
margin: 0;
color: var(--vivu-deep);
font-size: 1.08rem;
font-weight: 950;
line-height: 1.2;
}

.agent-homestay-title p {
margin: 0;
color: var(--vivu-muted);
font-size: .84rem;
font-weight: 650;
line-height: 1.45;
}

.agent-card-price strong {
color: var(--vivu-deep);
font-weight: 950;
}

.agent-card-price del {
color: var(--vivu-muted);
font-weight: 700;
opacity: .62;
text-decoration-line: line-through;
text-decoration-thickness: 1.5px;
}

.agent-homestay-actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
justify-content: flex-end;
margin-top: 4px;
}

.agent-price-warning {
display: flex;
gap: 10px;
align-items: flex-start;
padding: 12px 14px;
border: 1px solid rgba(245, 158, 11, .34);
border-radius: var(--vivu-radius-md);
background: rgba(245, 158, 11, .12);
color: #8a5a00;
font-size: .84rem;
font-weight: 800;
line-height: 1.45;
}

.agent-price-warning[hidden] {
display: none;
}

.agent-price-warning i {
flex: 0 0 auto;
margin-top: 2px;
color: #b77900;
}

.booking-duplicate-actions {
display: grid;
gap: 10px;
}

.booking-duplicate-actions .btn {
justify-content: center;
min-height: 44px;
white-space: normal;
}

[data-bs-theme="dark"] .agent-price-warning {
border-color: rgba(245, 158, 11, .34);
background: rgba(245, 158, 11, .16);
color: #ffd38a;
}

[data-bs-theme="dark"] .agent-price-warning i {
color: #ffc760;
}

.agent-homestay-card.is-loading .agent-homestay-thumb,
.agent-homestay-card.is-loading .agent-homestay-body > span,
.agent-homestay-card.is-loading h2,
.agent-homestay-card.is-loading p,
.agent-homestay-card.is-loading .owner-card-meta i {
border-radius: 999px;
background: linear-gradient(90deg, var(--vivu-soft), rgba(var(--bs-primary-rgb), .12), var(--vivu-soft));
background-size: 220% 100%;
animation: ownerSkeleton 1.2s ease-in-out infinite;
}

.agent-homestay-card.is-loading .agent-homestay-thumb {
border-radius: 0;
}

.support-toolbar {
display: flex;
justify-content: space-between;
gap: 12px;
}

.support-toolbar label {
width: min(100%, 280px);
}

.user-support-panel {
display: grid;
gap: 16px;
}

.user-support-panel .support-stats {
margin: 0;
}

.support-ticket-list {
display: grid;
gap: 12px;
}

.support-ticket-item {
display: grid;
gap: 14px;
padding: 18px;
border: 1px solid rgba(var(--bs-primary-rgb), .16);
border-radius: var(--vivu-radius-lg);
background: var(--vivu-surface);
box-shadow: 0 14px 36px rgba(5, 52, 77, .07);
}

.support-ticket-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
}

.support-ticket-head h2 {
margin: 5px 0 0;
color: var(--vivu-deep);
font-size: 1.02rem;
font-weight: 950;
line-height: 1.35;
text-wrap: pretty;
}

.support-ticket-type,
.support-ticket-status,
.support-ticket-meta span {
display: inline-flex;
align-items: center;
gap: 6px;
}

.support-ticket-type {
color: var(--vivu-primary);
font-size: .8rem;
font-weight: 850;
}

.support-ticket-status {
flex: 0 0 auto;
min-height: 30px;
padding: 5px 10px;
border-radius: 999px;
font-size: .76rem;
font-weight: 900;
}

.support-ticket-status.is-open {
background: rgba(245, 158, 11, .14);
color: #8a4b00;
}

.support-ticket-status.is-resolved {
background: rgba(16, 185, 129, .14);
color: #087653;
}

.support-ticket-content {
max-width: 72ch;
margin: 0;
color: var(--vivu-text);
font-size: .9rem;
font-weight: 650;
line-height: 1.65;
white-space: pre-wrap;
overflow-wrap: anywhere;
}

.support-ticket-images,
.support-image-list {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(82px, 1fr));
gap: 8px;
}

.support-ticket-images a,
.support-image-list > div {
position: relative;
display: block;
overflow: hidden;
aspect-ratio: 1;
border: 1px solid rgba(var(--bs-primary-rgb), .14);
border-radius: 12px;
background: var(--vivu-soft);
}

.support-ticket-images img,
.support-image-list img {
width: 100%;
height: 100%;
object-fit: cover;
}

.support-image-list button {
position: absolute;
top: 5px;
right: 5px;
display: grid;
width: 28px;
height: 28px;
padding: 0;
place-items: center;
border: 0;
border-radius: 999px;
background: rgba(5, 31, 43, .8);
color: #fff;
}

.support-upload-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-bottom: 9px;
}

.support-upload-head small,
.support-upload-status {
display: block;
color: var(--vivu-muted);
font-size: .76rem;
font-weight: 700;
}

.support-upload-status {
margin-top: 7px;
}

.modal-content:has([data-support-form]) {
max-height: calc(100dvh - 2rem);
overflow: hidden;
border: 1px solid var(--vivu-border) !important;
border-radius: var(--vivu-radius-xl);
background: var(--vivu-surface);
color: var(--vivu-text);
box-shadow: 0 28px 80px rgba(5, 52, 77, .2);
}

[data-support-form] {
display: flex;
min-height: 0;
flex-direction: column;
}

[data-support-form] .modal-header {
align-items: flex-start;
justify-content: space-between;
padding: 1.25rem 1.25rem 1rem;
border-bottom: 1px solid var(--vivu-border) !important;
background: var(--vivu-surface);
}

[data-support-form] .modal-title {
color: var(--vivu-deep);
font-size: 1.35rem;
font-weight: 950;
}

[data-support-form] .modal-body {
min-height: 0;
padding: 1.25rem;
overflow-y: auto;
background: var(--vivu-surface);
}

[data-support-form] .modal-footer {
flex-shrink: 0;
padding: 1rem 1.25rem 1.25rem;
border-top: 1px solid var(--vivu-border) !important;
background: var(--vivu-soft);
}

[data-support-form] .form-label {
margin-bottom: .45rem;
color: var(--vivu-deep);
font-size: .8rem;
font-weight: 850 !important;
}

[data-support-form] .form-control,
[data-support-form] .form-select {
min-height: 46px;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background-color: var(--vivu-soft);
color: var(--vivu-text);
font-weight: 700;
caret-color: var(--vivu-primary-deep);
}

[data-support-form] .form-control:hover,
[data-support-form] .form-select:hover {
border-color: color-mix(in srgb, var(--vivu-primary-deep) 48%, var(--vivu-border));
}

[data-support-form] .form-control:focus,
[data-support-form] .form-select:focus {
border-color: var(--vivu-primary-deep);
background-color: var(--vivu-surface);
box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--vivu-primary) 18%, transparent);
}

[data-support-form] .support-upload-head {
padding: 12px;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
}

[data-user-rating-form] .btn-close,
[data-support-form] .btn-close {position: relative;display: grid;width: 38px;height: 38px;margin: 0;padding: 0;place-items: center;border: 1px solid var(--vivu-border);border-radius: 999px;background-color: var(--vivu-soft);background-image: none;color: var(--vivu-deep);opacity: 1;}

[data-user-rating-form] .btn-close::before,
[data-user-rating-form] .btn-close::after,
[data-support-form] .btn-close::before,
[data-support-form] .btn-close::after {position: absolute;width: 16px;height: 2px;border-radius: 999px;background: currentColor;content: "";}

[data-user-rating-form] .btn-close::before,
[data-support-form] .btn-close::before {transform: rotate(45deg);}

[data-user-rating-form] .btn-close::after,
[data-support-form] .btn-close::after {transform: rotate(-45deg);}

[data-user-rating-form] .btn-close:hover,
[data-support-form] .btn-close:hover {border-color: var(--vivu-primary);background-color: color-mix(in srgb, var(--vivu-primary) 12%, var(--vivu-surface));color: var(--vivu-primary-deep);}

[data-user-rating-form] .btn-close:focus-víible,
[data-support-form] .btn-close:focus-visible {outline: 3px solid color-mix(in srgb, var(--vivu-primary) 34%, transparent);outline-offset: 2px;box-shadow: none;}

@media (max-width: 575.98px) {
.modal-content:has([data-support-form]) {
max-height: calc(100dvh - 1rem);
}
}

.modal-content:has([data-admin-support-form]) {
max-height: calc(100dvh - 2rem);
overflow: hidden;
border: 1px solid var(--vivu-border) !important;
border-radius: var(--vivu-radius-xl);
background: var(--vivu-surface);
color: var(--vivu-text);
box-shadow: 0 28px 80px rgba(5, 52, 77, .2);
}

[data-admin-support-form] {
display: flex;
min-height: 0;
flex-direction: column;
}

[data-admin-support-form] .modal-header,
[data-admin-support-form] .modal-body {
background: var(--vivu-surface);
}

[data-admin-support-form] .modal-header {
align-items: flex-start;
padding: 1.25rem 1.25rem 1rem;
border-bottom: 1px solid var(--vivu-border) !important;
}

[data-admin-support-form] .modal-title {
color: var(--vivu-deep);
font-size: 1.35rem;
font-weight: 950;
}

[data-admin-support-form] .modal-body {
min-height: 0;
padding: 1.25rem;
overflow-y: auto;
}

[data-admin-support-form] .modal-footer {
flex-shrink: 0;
padding: 1rem 1.25rem 1.25rem;
border-top: 1px solid var(--vivu-border) !important;
background: var(--vivu-soft);
}

[data-admin-support-form] .form-label,
[data-admin-support-form] .admin-support-workflow label {
color: var(--vivu-deep);
}

[data-admin-support-form] .form-control,
[data-admin-support-form] .form-select {
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background-color: var(--vivu-soft);
color: var(--vivu-text);
caret-color: var(--vivu-primary-deep);
}

[data-admin-support-form] .form-control:hover,
[data-admin-support-form] .form-select:hover {
border-color: color-mix(in srgb, var(--vivu-primary-deep) 48%, var(--vivu-border));
}

[data-admin-support-form] .form-control:focus,
[data-admin-support-form] .form-select:focus {
border-color: var(--vivu-primary-deep);
background-color: var(--vivu-surface);
box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--vivu-primary) 18%, transparent);
}

[data-admin-support-form] .admin-support-original,
[data-admin-support-form] .admin-support-workflow {
border-color: var(--vivu-border);
background: var(--vivu-soft);
}

[data-admin-support-form] .btn-close {
position: relative;
display: grid;
width: 38px;
height: 38px;
margin: 0;
padding: 0;
place-items: center;
border: 1px solid var(--vivu-border);
border-radius: 999px;
background-color: var(--vivu-soft);
background-image: none;
color: var(--vivu-deep);
opacity: 1;
}

[data-admin-support-form] .btn-close::before,
[data-admin-support-form] .btn-close::after {
position: absolute;
width: 16px;
height: 2px;
border-radius: 999px;
background: currentColor;
content: "";
}

[data-admin-support-form] .btn-close::before { transform: rotate(45deg); }
[data-admin-support-form] .btn-close::after { transform: rotate(-45deg); }

[data-admin-support-form] .btn-close:hover {
border-color: var(--vivu-primary);
background-color: color-mix(in srgb, var(--vivu-primary) 12%, var(--vivu-surface));
color: var(--vivu-primary-deep);
}

@media (max-width: 575.98px) {
.modal-content:has([data-admin-support-form]) {
max-height: calc(100dvh - 1rem);
}
}

.support-ticket-resolution,
.support-owner-resolution {
padding: 13px;
border-radius: var(--vivu-radius-md);
background: rgba(16, 185, 129, .09);
}

.support-ticket-resolution strong,
.support-owner-resolution label {
display: block;
margin-bottom: 7px;
color: var(--vivu-deep);
font-size: .8rem;
font-weight: 900;
}

.support-ticket-resolution p {
margin: 0;
white-space: pre-wrap;
}

.support-owner-resolution {
display: grid;
gap: 9px;
}

.support-owner-resolution .btn {
justify-self: end;
}

.support-reply-upload {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
}

.support-reply-upload span {
color: var(--vivu-muted);
font-size: .76rem;
font-weight: 700;
}

.support-reply-images:empty {
display: none;
}

.support-conversation {
display: grid;
gap: 9px;
padding-top: 12px;
border-top: 1px solid var(--vivu-border);
}

.support-conversation > strong {
color: var(--vivu-deep);
font-size: .84rem;
font-weight: 900;
}

.support-message {
max-width: min(88%, 680px);
padding: 10px 12px;
border: 1px solid var(--vivu-border);
border-radius: 14px;
background: var(--vivu-soft);
}

.support-message.is-requester {
justify-self: end;
background: color-mix(in srgb, var(--vivu-primary) 10%, var(--vivu-surface));
}

.support-message > div {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-bottom: 5px;
}

.support-message b {
color: var(--vivu-deep);
font-size: .76rem;
}

.support-message time {
color: var(--vivu-muted);
font-size: .7rem;
font-weight: 650;
}

.support-message p {
margin: 0;
color: var(--vivu-text);
font-size: .86rem;
line-height: 1.55;
white-space: pre-wrap;
overflow-wrap: anywhere;
}

.support-reopen {
justify-self: end;
}

.admin-support-workflow {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
padding: 14px;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
}

.admin-support-workflow label {
display: grid;
gap: 5px;
color: var(--vivu-deep);
font-size: .76rem;
font-weight: 850;
}

.admin-support-workflow .btn {
grid-column: 1 / -1;
justify-self: end;
}

@media (max-width: 575.98px) {
.admin-support-workflow {
grid-template-columns: 1fr;
}

.support-message {
max-width: 100%;
}
}

.support-ticket-meta {
display: flex;
flex-wrap: wrap;
gap: 8px 14px;
color: var(--vivu-muted);
font-size: .76rem;
font-weight: 750;
}

.support-ticket-meta span:last-child {
overflow-wrap: anywhere;
}

.support-ticket-item.is-loading {
min-height: 146px;
border-color: transparent;
background: linear-gradient(90deg, var(--vivu-soft), rgba(var(--bs-primary-rgb), .12), var(--vivu-soft));
background-size: 220% 100%;
animation: ownerSkeleton 1.2s ease-in-out infinite;
}

.admin-support-toolbar {
display: grid;
grid-template-columns: repeat(2, minmax(0, 280px));
gap: 12px;
}

.admin-support-toolbar label {
display: grid;
gap: 6px;
color: var(--vivu-deep);
font-size: .78rem;
font-weight: 850;
}

.admin-support-ticket-actions {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 8px;
}

.admin-support-detail {
display: grid;
gap: 14px;
margin-bottom: 18px;
}

.admin-support-detail-meta {
display: flex;
flex-wrap: wrap;
gap: 8px 14px;
color: var(--vivu-muted);
font-size: .8rem;
font-weight: 750;
}

.admin-support-detail-meta span {
display: inline-flex;
align-items: center;
gap: 6px;
overflow-wrap: anywhere;
}

.admin-support-original {
padding: 14px;
border: 1px solid rgba(var(--bs-primary-rgb), .14);
border-radius: var(--vivu-radius-md);
background: rgba(var(--bs-primary-rgb), .06);
}

.admin-support-original strong {
display: block;
margin-bottom: 7px;
color: var(--vivu-deep);
font-size: .82rem;
font-weight: 900;
}

.admin-support-original p {
margin: 0;
color: var(--vivu-text);
font-size: .9rem;
font-weight: 650;
line-height: 1.65;
white-space: pre-wrap;
overflow-wrap: anywhere;
}

[data-admin-support-resolution] small {
display: block;
margin-top: 7px;
color: var(--vivu-muted);
font-size: .76rem;
font-weight: 700;
}

[data-bs-theme="dark"] .support-ticket-status.is-open {
color: #ffd38a;
}

[data-bs-theme="dark"] .support-ticket-status.is-resolved {
color: #8df0ce;
}

@media (max-width: 575.98px) {
.admin-support-toolbar {
grid-template-columns: 1fr;
}

.support-toolbar,
.support-ticket-head {
align-items: stretch;
flex-direction: column;
}

.support-toolbar label,
.support-toolbar .btn {
width: 100%;
}

.support-ticket-status {
align-self: flex-start;
}
}

@media (prefers-reduced-motion: reduce) {
.support-ticket-item.is-loading {
animation: none;
}
}

.agent-homestay-card.is-loading .agent-homestay-body > span {
width: 120px;
height: 24px;
}

.agent-homestay-card.is-loading h2 {
width: min(260px, 82%);
height: 22px;
}

.agent-homestay-card.is-loading p {
width: min(420px, 96%);
height: 16px;
}

.agent-homestay-card.is-loading .owner-card-meta i {
width: 88px;
height: 28px;
}

.agent-performance-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 14px;
}

.agent-performance-panel {
display: grid;
gap: 16px;
padding: 18px;
border: 1px solid rgba(var(--bs-primary-rgb), .14);
border-radius: var(--vivu-radius-xl);
background:
linear-gradient(180deg, rgba(255, 255, 255, .94), rgba(255, 255, 255, .84)),
var(--vivu-surface);
box-shadow: 0 18px 50px rgba(5, 52, 77, .08);
}

[data-bs-theme="dark"] .agent-performance-panel {
background:
linear-gradient(180deg, rgba(11, 37, 50, .94), rgba(11, 37, 50, .8)),
var(--vivu-surface);
}

.agent-performance-panel-wide {
grid-column: 1 / -1;
}

.agent-performance-panel-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 12px;
}

.agent-performance-panel-head h2 {
margin: 8px 0 0;
color: var(--vivu-deep);
font-size: 1.08rem;
font-weight: 950;
line-height: 1.2;
}

.agent-performance-panel-head > strong {
display: inline-flex;
min-height: 34px;
align-items: center;
padding: 6px 12px;
border-radius: 999px;
background: rgba(var(--bs-primary-rgb), .1);
color: var(--vivu-primary-strong);
font-size: .82rem;
font-weight: 950;
white-space: nowrap;
}

.agent-performance-bars {
display: grid;
gap: 12px;
}

.agent-performance-bar {
display: grid;
gap: 7px;
}

.agent-performance-bar-top {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
color: var(--vivu-text);
font-size: .82rem;
font-weight: 850;
}

.agent-performance-track {
overflow: hidden;
height: 10px;
border-radius: 999px;
background: rgba(var(--bs-primary-rgb), .09);
}

.agent-performance-fill {
width: 0;
height: 100%;
border-radius: inherit;
background: var(--vivu-gradient);
transition: width .24s ease;
}

.agent-performance-bar.is-danger .agent-performance-fill {
background: linear-gradient(135deg, #dc3545, #f59f00);
}

.agent-performance-bar.is-loading,
.agent-performance-actions article.is-loading {
min-height: 54px;
border-radius: var(--vivu-radius-md);
background: linear-gradient(90deg, var(--vivu-soft), rgba(var(--bs-primary-rgb), .12), var(--vivu-soft));
background-size: 220% 100%;
animation: ownerSkeleton 1.2s ease-in-out infinite;
}

.agent-benchmark-list {
display: grid;
gap: 10px;
}

.agent-benchmark-list div {
display: flex;
min-height: 48px;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 10px 12px;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
}

.agent-benchmark-list span {
color: var(--vivu-muted);
font-size: .8rem;
font-weight: 800;
}

.agent-benchmark-list strong {
color: var(--vivu-deep);
font-size: .95rem;
font-weight: 950;
text-align: right;
}

.agent-performance-actions {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
}

.agent-performance-actions article {
display: grid;
grid-template-columns: 38px minmax(0, 1fr);
gap: 10px;
align-items: start;
padding: 14px;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-lg);
background: var(--vivu-soft);
}

.agent-performance-actions i {
display: grid;
width: 38px;
height: 38px;
place-items: center;
border-radius: 999px;
background: rgba(var(--bs-primary-rgb), .1);
color: var(--vivu-primary-strong);
font-size: 1rem;
}

.agent-performance-actions strong {
display: block;
margin-bottom: 4px;
color: var(--vivu-deep);
font-size: .9rem;
font-weight: 950;
line-height: 1.25;
}

.agent-performance-actions span {
color: var(--vivu-muted);
font-size: .8rem;
font-weight: 700;
line-height: 1.45;
}

.owner-agent-card {
display: grid;
gap: 12px;
align-content: start;
min-height: 210px;
padding: 16px;
border: 1px solid rgba(var(--bs-primary-rgb), .14);
border-radius: var(--vivu-radius-lg);
background:
linear-gradient(180deg, rgba(255, 255, 255, .94), rgba(255, 255, 255, .82)),
var(--vivu-surface);
box-shadow: 0 18px 50px rgba(5, 52, 77, .08);
}

[data-bs-theme="dark"] .owner-agent-card {
background:
linear-gradient(180deg, rgba(11, 37, 50, .94), rgba(11, 37, 50, .8)),
var(--vivu-surface);
}

.owner-agent-card-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 8px;
}

.owner-agent-identity {
display: flex;
min-width: 0;
align-items: center;
gap: 12px;
}

.owner-agent-avatar {
width: 46px;
height: 46px;
flex: 0 0 46px;
overflow: hidden;
display: grid;
place-items: center;
border-radius: 50%;
background: linear-gradient(135deg, rgba(var(--bs-primary-rgb), .18), rgba(var(--bs-primary-rgb), .06));
color: var(--vivu-primary);
font-size: .85rem;
font-weight: 950;
box-shadow: inset 0 0 0 1px rgba(var(--bs-primary-rgb), .14);
}

.owner-agent-avatar img {
width: 100%;
height: 100%;
object-fit: cover;
}

.owner-agent-card-head small {
color: var(--vivu-muted);
font-size: .74rem;
font-weight: 800;
}

.owner-agent-card h2 {
margin: 0;
color: var(--vivu-deep);
font-size: 1.08rem;
font-weight: 950;
line-height: 1.2;
overflow-wrap: anywhere;
}

.owner-agent-card p {
margin: 0;
color: var(--vivu-muted);
font-size: .84rem;
font-weight: 650;
line-height: 1.45;
}

.owner-agent-contact,
.owner-agent-timeline {
display: flex;
flex-wrap: wrap;
gap: 8px;
}

.owner-agent-contact span,
.owner-agent-timeline span {
display: inline-flex;
max-width: 100%;
align-items: center;
gap: 6px;
min-height: 28px;
padding: 5px 9px;
border: 1px solid rgba(var(--bs-primary-rgb), .1);
border-radius: 999px;
background: rgba(var(--bs-primary-rgb), .045);
color: var(--vivu-deep);
font-size: .76rem;
font-weight: 800;
overflow-wrap: anywhere;
}

.owner-agent-contact i,
.owner-agent-timeline i {
color: var(--vivu-primary);
}

.owner-agent-detail-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
}

.owner-agent-detail-grid span {
display: grid;
gap: 2px;
min-width: 0;
padding: 10px;
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
}

.owner-agent-detail-grid b {
color: var(--vivu-muted);
font-size: .72rem;
font-weight: 800;
}

.owner-agent-detail-grid strong {
color: var(--vivu-deep);
font-size: .82rem;
font-weight: 950;
line-height: 1.25;
overflow-wrap: anywhere;
}

.owner-agent-timeline span {
background: transparent;
color: var(--vivu-muted);
}

.owner-agent-card-actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
justify-content: flex-end;
margin-top: auto;
}

.owner-agent-switch {
min-height: 46px;
display: flex;
align-items: center;
gap: 10px;
padding: 10px 14px 10px 46px;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
}

.owner-agent-multi-select {
min-height: 132px;
border-radius: var(--vivu-radius-md) !important;
padding: 10px 12px;
}

.owner-agent-multi-select option {
margin: 2px 0;
padding: 8px 10px;
border-radius: 10px;
}

.owner-agent-multi-select option:hover,
.owner-agent-multi-select option:focus {
background-color: rgba(var(--vivu-primary-rgb), .14);
color: var(--vivu-primary-strong);
}

.owner-agent-multi-select option:checked {
background-color: var(--vivu-primary);
color: #fff;
}

.owner-field-hint {
display: block;
margin-top: 6px;
color: var(--vivu-muted);
font-size: .78rem;
font-weight: 700;
}

.owner-agent-card.is-loading span,
.owner-agent-card.is-loading h2,
.owner-agent-card.is-loading p,
.owner-agent-card.is-loading .owner-card-meta i {
border-radius: 999px;
background: linear-gradient(90deg, var(--vivu-soft), rgba(var(--bs-primary-rgb), .12), var(--vivu-soft));
background-size: 220% 100%;
animation: ownerSkeleton 1.2s ease-in-out infinite;
}

.owner-agent-card.is-loading span {
width: 120px;
height: 24px;
}

.owner-agent-card.is-loading h2 {
width: min(260px, 80%);
height: 22px;
}

.owner-agent-card.is-loading p {
width: min(420px, 96%);
height: 16px;
}

.owner-agent-card.is-loading .owner-card-meta i {
width: 88px;
height: 28px;
}

.owner-homestay-card {
display: grid;
grid-template-columns: 168px minmax(0, 1fr) auto;
gap: 16px;
align-items: center;
padding: 14px;
border-radius: var(--vivu-radius-lg);
}

.owner-homestay-thumb {
display: grid;
width: 168px;
aspect-ratio: 16 / 10;
place-items: center;
overflow: hidden;
border-radius: var(--vivu-radius-md);
background:
linear-gradient(135deg, rgba(var(--bs-primary-rgb), .18), rgba(6, 55, 79, .14)),
var(--vivu-soft);
}

.owner-homestay-thumb img {
width: 100%;
height: 100%;
object-fit: cover;
}

.owner-thumb-fallback {
display: grid;
width: 100%;
height: 100%;
place-items: center;
color: var(--vivu-primary-strong);
font-size: 2rem;
}

.owner-homestay-body {
min-width: 0;
}

.owner-card-title-row {
display: flex;
flex-wrap: wrap;
gap: 8px;
align-items: center;
justify-content: space-between;
margin-bottom: 8px;
}

.owner-card-title-row small {
color: var(--vivu-muted);
font-size: .74rem;
font-weight: 800;
}

.owner-status {
display: inline-flex;
min-height: 28px;
align-items: center;
padding: 4px 10px;
border-radius: 999px;
background: var(--vivu-soft);
color: var(--vivu-muted);
font-size: .74rem;
font-weight: 900;
}

.owner-status.is-active {
border: 1px solid color-mix(in srgb, var(--vivu-success) 34%, var(--vivu-border));
background: color-mix(in srgb, var(--vivu-success) 12%, var(--vivu-surface));
color: var(--vivu-success);
}

.owner-status.is-pending {
border: 1px solid color-mix(in srgb, var(--vivu-warning) 34%, var(--vivu-border));
background: color-mix(in srgb, var(--vivu-warning) 12%, var(--vivu-surface));
color: var(--vivu-warning);
}

.owner-status.is-paused {
border: 1px solid var(--vivu-border);
background: var(--vivu-soft);
color: var(--vivu-text);
}

.owner-status.is-rejected {
border: 1px solid color-mix(in srgb, var(--vivu-error) 34%, var(--vivu-border));
background: color-mix(in srgb, var(--vivu-error) 10%, var(--vivu-surface));
color: var(--vivu-error);
}

.owner-homestay-body h2 {
margin: 0 0 6px;
color: var(--vivu-deep);
font-size: 1.08rem;
font-weight: 950;
line-height: 1.2;
}

.owner-homestay-body p {
margin: 0 0 12px;
color: var(--vivu-muted);
font-size: .84rem;
font-weight: 650;
line-height: 1.45;
}

.owner-card-meta {
display: flex;
flex-wrap: wrap;
gap: 8px;
}

.owner-card-meta span,
.owner-card-meta i {
display: inline-flex;
align-items: center;
gap: 6px;
}

.owner-card-meta span {
min-height: 30px;
padding: 4px 10px;
border-radius: 999px;
background: rgba(var(--bs-primary-rgb), .08);
color: var(--vivu-text);
font-size: .78rem;
font-weight: 800;
}

.owner-card-meta i {
color: var(--vivu-primary);
}

.owner-card-prices {
display: flex;
flex: 1 1 360px;
gap: 6px;
min-width: min(100%, 360px);
margin: 0;
}

.owner-card-prices > div {
display: flex;
flex: 1 1 0;
gap: 8px;
min-width: 0;
padding: 6px 10px;
border: 1px solid rgba(var(--bs-primary-rgb), .14);
border-radius: 12px;
background: rgba(var(--bs-primary-rgb), .06);
}

.owner-card-prices dt,
.owner-card-prices dd {
margin: 0;
}

.owner-card-prices dt {
display: flex;
gap: 5px;
align-items: center;
color: var(--vivu-muted);
font-size: .68rem;
font-weight: 750;
line-height: 1.25;
}

.owner-card-prices dd {
overflow: hidden;
color: var(--vivu-deep);
font-size: .78rem;
font-weight: 900;
font-variant-numeric: tabular-nums;
line-height: 1.35;
text-overflow: ellipsis;
white-space: nowrap;
}

.owner-card-actions {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 8px;
min-width: 190px;
}

.owner-card-actions .btn-light {
border: 1px solid var(--vivu-border);
color: var(--vivu-text);
}

.owner-empty {
display: grid;
place-items: center;
padding: 44px 24px;
border-radius: var(--vivu-radius-xl);
text-align: center;
}

.owner-empty[hidden] {
display: none;
}

.owner-empty i {
color: var(--vivu-primary-deep);
font-size: 1.25rem;
}

.owner-empty h2 {
margin: 12px 0 6px;
color: var(--vivu-deep);
font-size: 1.25rem;
font-weight: 950;
}

.owner-empty p {
max-width: 28rem;
margin: 0 0 18px;
color: var(--vivu-muted);
font-weight: 650;
}

.vivu-owner-modal .modal-content {
max-height: calc(100dvh - 2rem);
overflow: hidden;
border: 1px solid rgba(var(--bs-primary-rgb), .16);
border-radius: var(--vivu-radius-xl);
background:
linear-gradient(180deg, rgba(255, 255, 255, .96), rgba(255, 255, 255, .9)),
var(--vivu-surface);
color: var(--vivu-text);
box-shadow: 0 28px 80px rgba(5, 52, 77, .2);
}

.vivu-owner-modal .modal-content > form,
.vivu-owner-modal form[data-owner-homestay-form],
.vivu-owner-modal form[data-owner-agent-form],
.vivu-owner-modal form[data-owner-agent-invite-form],
.vivu-owner-modal form[data-admin-user-form],
.vivu-owner-modal form[data-admin-user-role-form],
.vivu-owner-modal form[data-admin-homestay-form],
.vivu-owner-modal form[data-admin-app-config-form],
.vivu-owner-modal form[data-admin-destination-form],
.vivu-owner-modal form[data-admin-owner-form] {
display: flex;
min-height: 0;
flex: 1 1 auto;
flex-direction: column;
}

.vivu-owner-modal .modal-body {
min-height: 0;
overflow-y: auto;
overscroll-behavior: contain;
-ms-overflow-style: none;
scrollbar-width: none;
}

.vivu-owner-modal .modal-body::-webkit-scrollbar {
width: 0;
height: 0;
}

.vivu-home .nav-glass {
position: absolute;
}

.vivu-home-hero {
min-height: 760px;
background:
linear-gradient(180deg, rgba(248, 253, 255, .74) 0%, rgba(248, 253, 255, .26) 28%, rgba(6, 55, 79, .54) 100%),
url("/images/home-bedroom.jpg") center / cover no-repeat;
}

.vivu-home-hero-copy {
width: 210px;
}

.vivu-home-search {
position: absolute;
z-index: 12;
left: 50%;
bottom: 150px;
width: min(900px, calc(100% - 64px));
padding: 14px;
border: 1px solid rgba(255, 255, 255, .62);
border-radius: var(--vivu-radius-lg);
background: rgba(255, 255, 255, .9);
box-shadow: 0 24px 70px rgba(5, 52, 77, .2);
transform: translateX(-50%);
backdrop-filter: blur(18px);
}

[data-bs-theme="dark"] .vivu-home-search {
border-color: rgba(255, 255, 255, .13);
background: rgba(8, 30, 41, .9);
}

.vivu-home-search-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-bottom: 12px;
}

.vivu-home-search-head strong {
color: var(--vivu-deep);
font-size: 1rem;
font-weight: 950;
}

.vivu-home-search-grid {
display: grid;
grid-template-columns: minmax(180px, 1fr) minmax(150px, .65fr) minmax(150px, .65fr) minmax(110px, .35fr) auto;
gap: 10px;
align-items: end;
}

.vivu-home-search label {
display: grid;
gap: 5px;
min-width: 0;
}

.vivu-home-search label span {
color: var(--vivu-muted);
font-size: .75rem;
font-weight: 850;
}

.vivu-home-search .form-control,
.vivu-home-search .form-select {
min-height: 42px;
border-color: rgba(var(--vivu-border-rgb), .9);
border-radius: 999px;
background-color: var(--vivu-soft);
color: var(--vivu-text);
font-size: .86rem;
font-weight: 750;
}

.home-date-button {
display: inline-flex;
align-items: center;
gap: 8px;
width: 100%;
min-height: 42px;
padding: 8px 13px;
border: 1px solid rgba(var(--vivu-border-rgb), .9);
border-radius: 999px;
background-color: var(--vivu-soft);
color: var(--vivu-text);
font-size: .86rem;
font-weight: 750;
text-align: left;
transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.home-date-button i {
color: var(--vivu-primary);
font-size: .95rem;
}

.home-date-button strong {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

.home-date-button:hover,
.home-date-button:focus-visible,
.home-date-button.is-active {
border-color: rgba(var(--vivu-primary-rgb), .58);
background-color: #fff;
box-shadow: 0 0 0 .18rem rgba(var(--vivu-primary-rgb), .14);
outline: none;
}

[data-bs-theme="dark"] .home-date-button:hover,
[data-bs-theme="dark"] .home-date-button:focus-visible,
[data-bs-theme="dark"] .home-date-button.is-active {
background-color: rgba(255, 255, 255, .08);
}

.home-date-picker {
position: fixed;
z-index: 1095;
top: var(--home-date-picker-top, 0);
left: var(--home-date-picker-left, 0);
width: min(322px, calc(100vw - 32px));
padding: 12px;
border: 1px solid rgba(var(--vivu-border-rgb), .88);
border-radius: 18px;
background: rgba(255, 255, 255, .98);
box-shadow: 0 24px 58px rgba(5, 52, 77, .22);
}

[data-bs-theme="dark"] .home-date-picker {
border-color: rgba(255, 255, 255, .12);
background: rgba(8, 30, 41, .98);
}

.home-date-picker-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
margin-bottom: 10px;
}

.home-date-picker-head strong {
color: var(--vivu-deep);
font-size: .94rem;
font-weight: 950;
}

[data-bs-theme="dark"] .home-date-picker-head strong {
color: #fff;
}

.home-date-picker-nav {
display: inline-flex;
align-items: center;
gap: 6px;
}

.home-date-picker-nav button {
display: inline-grid;
place-items: center;
width: 32px;
height: 32px;
border: 1px solid rgba(var(--vivu-border-rgb), .9);
border-radius: 50%;
background: var(--vivu-soft);
color: var(--vivu-deep);
}

.home-date-picker-nav .home-date-today {
width: auto;
min-width: 68px;
padding: 0 10px;
border-radius: 999px;
color: var(--vivu-primary);
font-size: .74rem;
font-weight: 900;
}

.home-date-picker-nav .home-date-today:disabled {
cursor: not-allowed;
opacity: .42;
}

.home-date-picker-nav button:hover,
.home-date-picker-nav button:focus-visible {
border-color: rgba(var(--vivu-primary-rgb), .55);
color: var(--vivu-primary);
outline: none;
}

.home-date-week,
.home-date-days {
display: grid;
grid-template-columns: repeat(7, minmax(0, 1fr));
gap: 5px;
}

.home-date-week {
margin-bottom: 6px;
color: var(--vivu-muted);
font-size: .68rem;
font-weight: 850;
text-align: center;
}

.home-date-day {
display: grid;
place-items: center;
aspect-ratio: 1;
border: 0;
border-radius: 12px;
background: transparent;
color: var(--vivu-text);
font-size: .78rem;
font-weight: 850;
}

.home-date-day:hover,
.home-date-day:focus-visible {
background: rgba(var(--vivu-primary-rgb), .12);
color: var(--vivu-primary);
outline: none;
}

.home-date-day.is-today {
box-shadow: inset 0 0 0 1px rgba(var(--vivu-primary-rgb), .38);
}

.home-date-day.is-selected {
background: var(--vivu-primary);
color: #fff;
}

.home-date-day.is-muted {
color: rgba(var(--vivu-text-rgb), .34);
}

.home-date-day:disabled {
cursor: not-allowed;
color: rgba(var(--vivu-text-rgb), .22);
text-decoration: line-through;
}

.vivu-home-search .btn {
min-height: 42px;
white-space: nowrap;
}

.vivu-home-feature-img {
background:
linear-gradient(180deg, rgba(5, 38, 56, .02), rgba(5, 38, 56, .2)),
url("/images/home-villa.jpg") center / cover no-repeat;
}

.vivu-home-feature .section-title {
max-width: 12em;
}

.vivu-home .cta {
background:
linear-gradient(90deg, rgba(5, 38, 56, .82), rgba(5, 38, 56, .18)),
url("/images/home-house.jpg") center / cover no-repeat;
}

@media (min-width: 768px) and (max-width: 1199.98px) {
.vivu-home-search {
bottom: 138px;
width: min(680px, calc(100% - 48px));
}

.vivu-home-search-grid {
grid-template-columns: minmax(0, 1fr) minmax(150px, .8fr);
}
}

@media (max-width: 767.98px) {
.vivu-home-hero {
min-height: 760px;
}

.vivu-home-hero-copy {
width: 200px;
}

.vivu-home-search {
left: 14px;
right: 14px;
bottom: 154px;
width: auto;
padding: 12px;
border-radius: 18px;
transform: none;
}

.vivu-home-search-head {
display: grid;
justify-items: start;
}

.vivu-home-search-grid {
grid-template-columns: 1fr;
}

.vivu-home-search .btn {
width: 100%;
}

.home-date-picker {
width: min(322px, calc(100vw - 24px));
}

.vivu-home .traveler-pill {
bottom: 92px;
}
}

.vivu-owner-modal .modal-footer {
flex-shrink: 0;
}

[data-bs-theme="dark"] .vivu-owner-modal .modal-content {
background:
linear-gradient(180deg, rgba(11, 37, 50, .98), rgba(11, 37, 50, .9)),
var(--vivu-surface);
}

.vivu-owner-modal .modal-title {
color: var(--vivu-deep);
font-size: 1.35rem;
font-weight: 950;
}

.owner-modal-grid {
display: grid;
gap: 14px;
}

.owner-modal-section {
padding: 16px;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-lg);
background: rgba(var(--bs-primary-rgb), .04);
margin-bottom: 1rem;
}

.owner-modal-section h3 {
margin: 0 0 12px;
color: var(--vivu-deep);
font-size: .98rem;
font-weight: 950;
}

.vivu-owner-modal .form-label {
color: var(--vivu-deep);
font-size: .8rem;
}

.vivu-owner-modal .form-control,
.vivu-owner-modal .form-select {
min-height: 46px;
border-color: var(--vivu-border);
border-radius: var(--vivu-radius-md);
background-color: var(--vivu-soft);
color: var(--vivu-text);
font-weight: 700;
}

.vivu-owner-modal .form-control:focus,
.vivu-owner-modal .form-select:focus {
border-color: rgba(var(--bs-primary-rgb), .55);
box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .14);
}

.owner-modal-textarea {
min-height: 108px;
resize: vertical;
}

.owner-modal-section-wide {
background: var(--vivu-surface);
}

.agent-receipt-field {
display: grid;
gap: .45rem;
margin: 0;
}

.agent-receipt-upload {
display: flex;
align-items: center;
gap: .65rem;
min-height: 46px;
padding: .35rem;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.agent-receipt-upload:focus-within {
border-color: color-mix(in srgb, var(--vivu-primary) 58%, var(--vivu-border));
box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--vivu-primary) 16%, transparent);
}

.agent-receipt-upload.is-uploading {
border-color: color-mix(in srgb, var(--vivu-primary) 45%, var(--vivu-border));
background: color-mix(in srgb, var(--vivu-primary) 7%, var(--vivu-soft));
}

.agent-receipt-upload.is-success {
border-color: color-mix(in srgb, var(--vivu-success) 42%, var(--vivu-border));
}

.agent-receipt-upload.is-error {
border-color: color-mix(in srgb, var(--vivu-error) 48%, var(--vivu-border));
box-shadow: 0 0 0 .18rem color-mix(in srgb, var(--vivu-error) 12%, transparent);
}

.agent-receipt-trigger {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
justify-content: center;
gap: .45rem;
min-height: 38px;
padding: .5rem .75rem;
border: 1px solid color-mix(in srgb, var(--vivu-primary-strong) 55%, var(--vivu-border));
border-radius: 12px;
background: var(--vivu-surface);
color: var(--vivu-primary-strong);
font-size: .78rem;
font-weight: 850;
cursor: pointer;
transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.agent-receipt-trigger:hover {
border-color: var(--vivu-primary);
background: color-mix(in srgb, var(--vivu-primary) 10%, var(--vivu-surface));
color: var(--vivu-primary-deep);
}

.agent-receipt-trigger:active { transform: translateY(1px); }

.agent-receipt-summary {
display: flex;
min-width: 0;
align-items: center;
gap: .55rem;
color: var(--vivu-text);
font-size: .76rem;
font-weight: 750;
line-height: 1.35;
}

.agent-receipt-summary img {
width: 38px;
height: 38px;
flex: 0 0 38px;
border: 1px solid var(--vivu-border);
border-radius: 10px;
background: var(--vivu-surface);
object-fit: cover;
}

.agent-receipt-upload.is-success .agent-receipt-summary { color: var(--vivu-success); }
.agent-receipt-upload.is-error .agent-receipt-summary { color: var(--vivu-error); }

@media (max-width: 575.98px) {
.agent-receipt-upload { align-items: stretch; flex-direction: column; }
.agent-receipt-trigger { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
.agent-receipt-upload,
.agent-receipt-trigger { transition: none; }
}

.owner-section-title-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-bottom: 12px;
}

.owner-section-title-row h3 {
margin: 0;
}

.owner-section-title-row span {
color: var(--vivu-muted);
font-size: .82rem;
font-weight: 700;
}

.owner-upload-grid {
display: grid;
grid-template-columns: minmax(220px, .42fr) minmax(0, 1fr);
gap: 14px;
}

.owner-upload-box {
display: grid;
min-height: 244px;
align-content: center;
justify-items: center;
gap: 8px;
padding: 14px;
border: 1px dashed rgba(var(--bs-primary-rgb), .42);
border-radius: var(--vivu-radius-lg);
background: linear-gradient(180deg, rgba(var(--bs-primary-rgb), .08), rgba(var(--bs-primary-rgb), .03));
color: var(--vivu-deep);
cursor: pointer;
text-align: center;
transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.owner-upload-box:hover {
border-color: var(--vivu-primary);
box-shadow: 0 14px 34px rgba(5, 52, 77, .1);
transform: translateY(-1px);
}

.owner-upload-box input[type="file"],
.owner-gallery-tools input[type="file"],
.owner-video-tools input[type="file"],
[data-owner-thumb-upload],
[data-owner-gallery-upload],
[data-owner-video-upload] {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0 0 0 0);
clip-path: inset(50%);
border: 0;
opacity: 0;
pointer-events: none;
white-space: nowrap;
}

.owner-upload-box strong {
font-size: .95rem;
font-weight: 950;
}

.owner-upload-box small {
max-width: 15rem;
color: var(--vivu-muted);
font-weight: 700;
}

.owner-upload-preview {
width: min(100%, 220px);
aspect-ratio: 4 / 3;
display: grid;
place-items: center;
overflow: hidden;
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
color: var(--vivu-primary-strong);
font-size: 2rem;
}

.owner-upload-preview img,
.owner-gallery-item img {
width: 100%;
height: 100%;
object-fit: cover;
}

.media-upload-status,
.media-upload-progress {
width: 100%;
color: var(--vivu-deep);
font-size: .82rem;
font-weight: 800;
}

.media-upload-status:not([hidden]) {
display: block;
padding: 7px 10px;
border-radius: 999px;
background: rgba(var(--bs-primary-rgb), .1);
}

.media-upload-progress {
position: relative;
min-height: 54px;
margin-top: 10px;
padding: 10px 12px 10px 48px;
overflow: hidden;
border: 1px solid rgba(var(--bs-primary-rgb), .16);
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
}

.media-upload-progress::before {
content: "";
position: absolute;
inset: 0;
width: var(--media-progress, 0%);
background: rgba(var(--bs-primary-rgb), .1);
transition: width .2s ease-out;
}

.media-upload-progress::after {
content: "";
position: absolute;
left: 12px;
top: 12px;
width: 26px;
height: 26px;
border-radius: 8px;
background: linear-gradient(100deg, rgba(var(--bs-primary-rgb), .12) 30%, rgba(var(--bs-primary-rgb), .28) 50%, rgba(var(--bs-primary-rgb), .12) 70%);
background-size: 220% 100%;
animation: search-shimmer 1.3s linear infinite;
}

.media-upload-progress > * { position: relative; z-index: 1; }
.media-upload-progress strong { display: block; }
.media-upload-progress span { display: block; margin-top: 2px; color: var(--vivu-muted); font-size: .76rem; }
.owner-upload-box.is-uploading { cursor: wait; pointer-events: none; }
.owner-upload-preview.is-processing { background: linear-gradient(100deg, var(--vivu-soft) 30%, var(--vivu-surface) 50%, var(--vivu-soft) 70%); background-size: 220% 100%; animation: search-shimmer 1.3s linear infinite; }

@media (prefers-reduced-motion: reduce) {
.media-upload-progress::before { transition: none; }
.media-upload-progress::after,
.owner-upload-preview.is-processing { animation: none; }
}

.owner-gallery-tools {
min-width: 0;
}

.owner-video-tools {
display: grid;
gap: 12px;
min-width: 0;
grid-column: 1 / -1;
}

.owner-video-method[hidden] {
display: none !important;
}

.owner-video-entry-row {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 10px;
align-items: center;
}

.owner-video-link-field {
min-width: 0;
}

.owner-video-actions {
display: flex;
flex-wrap: wrap;
gap: 10px;
justify-content: flex-end;
}

.owner-video-actions .btn {
min-height: 48px;
}

.owner-video-link-row {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 10px;
align-items: center;
}

.owner-gallery-list,
.owner-video-list {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(116px, 1fr));
gap: 10px;
margin-top: 12px;
}

.owner-video-list {
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.owner-gallery-empty {
min-height: 88px;
display: grid;
place-items: center;
grid-column: 1 / -1;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
color: var(--vivu-muted);
font-weight: 800;
}

.owner-gallery-item {
position: relative;
overflow: hidden;
aspect-ratio: 4 / 3;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
}

.owner-gallery-item button {
position: absolute;
top: 6px;
right: 6px;
width: 30px;
height: 30px;
display: inline-grid;
place-items: center;
border: 0;
border-radius: 999px;
background: rgba(255, 255, 255, .9);
color: #102f3d;
box-shadow: 0 8px 18px rgba(5, 52, 77, .16);
}

.owner-video-item {
display: grid;
grid-template-columns: 34px minmax(0, 1fr) 30px;
gap: 8px;
align-items: center;
min-height: 50px;
padding: 8px;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
}

.owner-video-item > i {
display: grid;
width: 34px;
height: 34px;
place-items: center;
border-radius: 999px;
background: rgba(var(--bs-primary-rgb), .12);
color: var(--vivu-primary-strong);
font-size: 1.1rem;
}

.owner-video-item a {
overflow: hidden;
color: var(--vivu-text);
font-size: .82rem;
font-weight: 800;
text-overflow: ellipsis;
text-decoration: none;
white-space: nowrap;
}

.owner-video-item button {
width: 30px;
height: 30px;
display: inline-grid;
place-items: center;
border: 0;
border-radius: 999px;
background: rgba(255, 255, 255, .9);
color: var(--vivu-deep);
box-shadow: 0 8px 18px rgba(5, 52, 77, .12);
}

.owner-surcharge-list {
display: grid;
gap: 10px;
}

.owner-surcharge-row {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(150px, .55fr) minmax(0, 1fr) 38px;
gap: 10px;
align-items: end;
padding: 12px;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-lg);
background: rgba(var(--bs-primary-rgb), .035);
}

.owner-surcharge-row > .btn {
width: 38px;
height: 38px;
color: var(--vivu-deep);
}

.owner-homestay-card.is-loading .owner-homestay-thumb,
.owner-homestay-card.is-loading .owner-homestay-body > span,
.owner-homestay-card.is-loading h2,
.owner-homestay-card.is-loading p,
.owner-homestay-card.is-loading .owner-card-meta i {
border-radius: 999px;
background: linear-gradient(90deg, var(--vivu-soft), rgba(var(--bs-primary-rgb), .12), var(--vivu-soft));
background-size: 220% 100%;
animation: ownerSkeleton 1.2s ease-in-out infinite;
}

.owner-homestay-card.is-loading .owner-homestay-body > span {
display: block;
width: 120px;
height: 24px;
}

.owner-homestay-card.is-loading h2 {
width: min(320px, 80%);
height: 22px;
}

.owner-homestay-card.is-loading p {
width: min(520px, 96%);
height: 16px;
}

.owner-homestay-card.is-loading .owner-card-meta i {
width: 88px;
height: 28px;
}

@keyframes ownerSkeleton {
0% {
background-position: 100% 0;
}
100% {
background-position: -100% 0;
}
}

@media (prefers-reduced-motion: reduce) {
.owner-layout,
.owner-sidebar,
.owner-sidebar-toggle {
transition: none;
}

.vivu-owner-toast,
.vivu-owner-toast.is-leaving {
animation: none;
}

.owner-homestay-card.is-loading .owner-homestay-thumb,
.owner-homestay-card.is-loading .owner-homestay-body > span,
.owner-homestay-card.is-loading h2,
.owner-homestay-card.is-loading p,
.owner-homestay-card.is-loading .owner-card-meta i,
.owner-agent-card.is-loading span,
.owner-agent-card.is-loading h2,
.owner-agent-card.is-loading p,
.owner-agent-card.is-loading .owner-card-meta i {
animation: none;
}
}

@media (max-width: 1199.98px) {
.owner-sidebar-toggle {
display: none;
}

.owner-layout {
grid-template-columns: 1fr;
min-width: 0;
}

.owner-sidebar {
position: static;
max-width: 100%;
min-width: 0;
overflow: hidden;
}

.owner-menu {
display: flex;
flex-direction: column;
max-width: 100%;
min-width: 0;
overflow-x: auto;
overflow-y: hidden;
padding-bottom: 2px;
-webkit-overflow-scrolling: touch;
}

.owner-menu a {
flex: 0 0 auto;
white-space: nowrap;
}
}

@media (max-width: 991.98px) {
.owner-menu {flex-direction: row;}
.admin-dashboard-grid {
grid-template-columns: 1fr;
}

.admin-users-filters {
grid-template-columns: 1fr;
}

.admin-app-config-modal-grid {
grid-template-columns: 1fr;
}

.owner-stats {
grid-template-columns: repeat(2, minmax(0, 1fr));
}

.owner-homestay-card {
grid-template-columns: 140px minmax(0, 1fr);
}

.owner-homestay-thumb {
width: 140px;
}

.owner-card-actions {
grid-column: 1 / -1;
justify-content: flex-start;
min-width: 0;
}
}

@media (max-width: 767.98px) {
.vivu-owner-toast-stack {
top: 12px;
right: 14px;
left: 14px;
width: auto;
}

.vivu-owner-modal .modal-dialog {
margin: .5rem;
}

.vivu-owner-modal .modal-content {
max-height: calc(100dvh - 1rem);
}

.vivu-owner-page .owner-page {
padding-block: 8px;
}

.owner-shell {
padding: 24px 14px 24px;
}

.owner-topbar {
flex-direction: column;
}

.admin-quick-actions {
grid-template-columns: 1fr;
}

.admin-user-role-grid {
grid-template-columns: 1fr;
}

.admin-users-pagination {
justify-content: space-between;
}

.owner-topbar .btn {
width: 100%;
}

.owner-search {
grid-template-columns: 1fr;
}

.owner-agent-filters,
.owner-calendar-toolbar {
grid-template-columns: 1fr;
}

.owner-agent-card-head {
display: grid;
}

.owner-agent-detail-grid {
grid-template-columns: 1fr;
}

.owner-calendar-nav {
justify-content: space-between;
}

.owner-calendar-toolbar > .btn {
width: 100%;
}

.owner-homestay-card {
grid-template-columns: 1fr;
}

.owner-homestay-thumb {
width: 100%;
}

.owner-card-prices {
flex-basis: 100%;
min-width: 100%;
}

.owner-section-title-row {
display: grid;
align-items: start;
}

.owner-upload-grid,
.owner-video-entry-row,
.owner-video-link-row,
.owner-surcharge-row {
grid-template-columns: 1fr;
}

.owner-video-actions {
justify-content: stretch;
}

.owner-video-actions .owner-video-method,
.owner-video-actions .btn,
.owner-video-actions label.btn {
width: 100%;
}

.owner-calendar-panel {
padding: 10px;
overflow-x: auto;
}

.owner-calendar-weekdays,
.owner-calendar-grid {
min-width: 680px;
}

.owner-calendar-day {
min-height: 104px;
}

.agent-performance-grid,
.agent-performance-actions {
grid-template-columns: 1fr;
}

.agent-performance-panel-head {
display: grid;
}

.owner-surcharge-row > .btn {
width: 100%;
border-radius: var(--vivu-radius-md) !important;
}
}

@media (max-width: 575.98px) {
.owner-stats {
grid-template-columns: 1fr;
}
}

@media (max-width: 1199.98px) {
.vivu-login-page .vivu-login-section {
padding-top: 88px;
}
}

@media (max-width: 575.98px) {
.vivu-login-page .vivu-login-section {
padding-top: 76px;
}
}

/* vivu vietnam map start */
.vietnam-map-inline {
--brand-primary: #00A7E4;
--brand-accent: #00D4D8;
--brand-dark: #003050;
--brand-muted: #396E81;
--page-bg: #eefbff;
--card-bg: #ffffff;
--map-fill: var(--brand-primary);
--map-hover: var(--brand-accent);
--map-stroke: var(--brand-dark);
--tooltip-bg: var(--brand-dark);
--tooltip-text: #ffffff;
position: relative;
color: var(--brand-dark);
}

.map-card {
  position: relative;
  overflow: hidden;
  padding: 20px;
  border: 1px solid rgba(0, 167, 228, 0.18);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 24px 70px rgba(0, 48, 80, 0.14);
  isolation: isolate;
}

.map-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.map-title {
  margin: 0;
  font-size: clamp(24px, 3vw, 36px);
  line-height: 1.15;
}

.map-desc {
  margin: 8px 0 0;
  color: var(--brand-muted);
  font-size: 15px;
}

.map-badge {
  flex: 0 0 auto;
  padding: 9px 13px;
  border-radius: 999px;
  color: var(--brand-dark);
  background: rgba(0, 212, 216, 0.12);
  border: 1px solid rgba(0, 167, 228, 0.24);
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}

.map-wrap {
  --map-shift-y: 16px;
  position: relative;
  display: grid;
  place-items: center;
  min-height: 520px;
  border-radius: 22px;
  background:
    linear-gradient(180deg, rgba(0, 212, 216, 0.08), rgba(255, 255, 255, 0.96));
  overflow: hidden;
  contain: layout paint style;
  touch-action: pan-x pan-y;
}

.map-wrap svg {
  position: relative;
  top: var(--map-shift-y);
  width: min(100%, 760px);
  height: auto;
  display: block;
  user-select: none;
  pointer-events: auto;
  transform: translateZ(0);
}

.map-dots {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
}

.map-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  margin: -4px 0 16px;
  color: var(--brand-muted);
  font-size: 13px;
  font-weight: 700;
}

.map-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  border: 1px solid rgba(0, 167, 228, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
}

.map-legend-dot {
  width: 10px;
  height: 10px;
  border: 2px solid #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(0, 212, 216, 0.16);
}

.map-legend-dot.city {
  background: var(--brand-primary);
}

.map-legend-dot.travel {
  background: var(--brand-accent);
}

.map-dot {
  --dot-size: 8px;
  --dot-border: 2px;
  --dot-glow: 5px;
  position: absolute;
  width: var(--dot-size);
  height: var(--dot-size);
  border: var(--dot-border) solid #ffffff;
  border-radius: 50%;
  cursor: pointer;
  padding: 0;
  transform: translate(-50%, -50%);
  pointer-events: auto;
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.map-dot--city {
  background: var(--brand-primary);
  box-shadow: 0 0 0 var(--dot-glow) rgba(0, 167, 228, 0.18);
}

.map-dot--travel {
  background: var(--brand-accent);
  box-shadow: 0 0 0 var(--dot-glow) rgba(0, 212, 216, 0.18);
}

.map-dot::before {
  content: "";
  position: absolute;
  inset: -10px;
  border-radius: 50%;
}

.map-dot::after {
  content: "";
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 1px solid rgba(0, 212, 216, 0.32);
  opacity: 0;
}

.map-dot:hover,
.map-dot:focus-visible,
.map-dot.is-active {
  outline: none;
  transform: translate(-50%, -50%) scale(1.18);
}

.map-dot:hover::after,
.map-dot:focus-visible::after,
.map-dot.is-active::after {
  animation: dotPulse 1.8s ease-out infinite;
}

.map-dot--city:hover,
.map-dot--city:focus-visible,
.map-dot--city.is-active {
  box-shadow: 0 0 0 6px rgba(0, 167, 228, 0.2), 0 6px 14px rgba(0, 48, 80, 0.22);
}

.map-dot--travel:hover,
.map-dot--travel:focus-visible,
.map-dot--travel.is-active {
  box-shadow: 0 0 0 6px rgba(0, 212, 216, 0.22), 0 6px 14px rgba(0, 48, 80, 0.22);
}

.map-dot-label {
  position: absolute;
  left: 14px;
  top: 50%;
  z-index: 2;
  max-width: 120px;
  padding: 5px 8px;
  border-radius: 999px;
  color: #ffffff;
  background: rgba(0, 48, 80, 0.92);
  box-shadow: 0 8px 20px rgba(0, 48, 80, 0.18);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.1;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transform: translate(4px, -50%);
  transition: opacity 150ms ease, visibility 150ms ease, transform 150ms ease;
}

.map-dot:hover .map-dot-label,
.map-dot:focus-visible .map-dot-label,
.map-dot.is-active .map-dot-label {
  opacity: 1;
  visibility: visible;
  transform: translate(0, -50%);
}

@media (max-width: 576px) {
  .map-dot {
    --dot-size: 6px;
    --dot-border: 1.5px;
    --dot-glow: 4px;
  }

  .map-dot::before {
    inset: -9px;
  }

  .map-dot::after {
    inset: -5px;
  }

  .map-dot-label {
    display: none;
  }
}

@keyframes dotPulse {
  0% {
    opacity: 0.7;
    transform: scale(0.72);
  }

  100% {
    opacity: 0;
    transform: scale(1.9);
  }
}

.map-wrap svg path,
.map-wrap svg polygon,
.map-wrap svg polyline {
  vector-effect: non-scaling-stroke;
}

.province {
  fill: var(--map-fill) !important;
  fill-opacity: 0.48 !important;
  stroke: rgba(0, 48, 80, 0.42) !important;
  stroke-width: 0.16px !important;
  cursor: pointer;
  transition: fill 140ms ease, fill-opacity 140ms ease, stroke 140ms ease;
  transform-box: fill-box;
  transform-origin: center;
}

.province:hover,
.province.is-active {
  fill: var(--map-hover) !important;
  fill-opacity: 0.96 !important;
  stroke: var(--map-stroke) !important;
  stroke-width: 0.42px !important;
}

.map-tooltip {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 30;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transform: translate3d(var(--tooltip-x, 0), calc(var(--tooltip-y, 0) + 8px), 0) scale(0.96);
  padding: 10px 13px;
  border-radius: 12px;
  color: var(--tooltip-text);
  background: var(--tooltip-bg);
  box-shadow: 0 14px 35px rgba(0, 48, 80, 0.28);
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
  will-change: transform, opacity;
  transition: opacity 150ms ease, visibility 150ms ease, transform 150ms ease;
}

.map-tooltip {
  --arrow-x: 50%;
  --arrow-size: 8px;
}

.map-tooltip::after {
  content: "";
  position: absolute;
  left: var(--arrow-x);
  width: 0;
  height: 0;
  border-left: var(--arrow-size) solid transparent;
  border-right: var(--arrow-size) solid transparent;
  transform: translateX(-50%);
}

.map-tooltip[data-placement="below"]::after {
  top: calc(var(--arrow-size) * -1);
  border-bottom: var(--arrow-size) solid var(--tooltip-bg);
}

.map-tooltip[data-placement="above"]::after {
  bottom: calc(var(--arrow-size) * -1);
  border-top: var(--arrow-size) solid var(--tooltip-bg);
}

.map-tooltip.show {
  opacity: 1;
  visibility: visible;
  transform: translate3d(var(--tooltip-x, 0), var(--tooltip-y, 0), 0) scale(1);
}

.map-tooltip.is-rich {
  width: max-content;
  max-width: min(270px, calc(100vw - 32px));
  white-space: normal;
}

.map-tooltip-title {
  display: block;
  font-size: 14px;
  line-height: 1.25;
}

.map-tooltip-meta {
  display: block;
  margin-top: 3px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.3;
}

.map-tooltip-desc {
  display: block;
  margin-top: 7px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.45;
}

@media (max-width: 768px) {


  .map-card {
    padding: 14px;
    border-radius: 22px;
  }

  .map-header {
    display: block;
  }

  .map-badge {
    display: inline-flex;
    margin-top: 12px;
  }

  .map-wrap {
    min-height: auto;
  }
}
.map-hotspots {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
}

.map-hotspot {
  position: absolute;
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  border-radius: 18px;
  pointer-events: auto;
  cursor: pointer;
}

.map-hotspot:focus-visible {
  outline: 2px dashed rgba(0, 48, 80, 0.45);
  outline-offset: 2px;
  background: rgba(0, 167, 228, 0.06);
}

@media (prefers-reduced-motion: reduce) {
  .map-dot,
  .map-dot-label,
  .map-tooltip,
  .province {
    transition-duration: 0.01ms !important;
  }

  .map-dot::after,
  .map-dot:hover::after,
  .map-dot:focus-visible::after,
  .map-dot.is-active::after {
    animation: none !important;
  }
}
/* vivu vietnam map end */

/* search page start */
.search-page { min-height: 100vh; padding-block: 28px; }
.search-shell { padding: 2.4rem clamp(1rem, 3vw, 1.5rem) 4rem; }
.search-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.4rem; }
.search-heading h1 { max-width: max(25ch, 75%); margin: .55rem 0 .4rem; color: var(--vivu-deep); font-size: clamp(2rem, 4vw, 3.6rem); font-weight: 800; letter-spacing: -.035em; line-height: 1.04; text-wrap: balance; }
.search-heading p, .search-filter-drawer p { margin: 0; color: var(--vivu-muted); }
.search-back { color: var(--vivu-primary-strong); font-weight: 700; text-decoration: none; }
.search-filter-toggle { display: none; border-radius: 999px; font-weight: 700; }
.search-filter-count { display: inline-grid; min-width: 1.25rem; min-height: 1.25rem; place-items: center; border-radius: 999px; background: var(--vivu-primary); color: #fff; font-size: .72rem; }
.search-command { --search-command-control-height: 2.675rem; display: grid; grid-template-columns: minmax(230px, 1.6fr) repeat(3, minmax(135px, .7fr)) auto; gap: .65rem; padding: .75rem; border: 1px solid var(--vivu-border); border-radius: var(--vivu-radius-lg); background: var(--vivu-surface); box-shadow: var(--vivu-shadow); }
.search-command label { display: flex; min-width: 0; flex-direction: column; gap: .28rem; margin: 0; }
.search-command label > span { color: var(--vivu-muted); font-size: .76rem; font-weight: 700; }
.search-command .form-control { width: 100%; height: var(--search-command-control-height); min-height: var(--search-command-control-height); padding: .7rem .85rem; border: 1px solid var(--vivu-border); border-radius: 999px; background: var(--vivu-soft); color: var(--vivu-text); box-shadow: none; font-weight: 650; transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease; }
.search-command .form-control:hover { border-color: color-mix(in srgb, var(--vivu-primary) 58%, var(--vivu-border)); background: var(--vivu-surface); }
.search-command .form-control:focus { border-color: var(--vivu-primary); background: var(--vivu-surface); box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .14); }
.search-command .form-control::placeholder { color: var(--vivu-muted); opacity: .85; }
.search-command .btn { align-self: end; min-width: 3.4rem; height: var(--search-command-control-height); min-height: var(--search-command-control-height); margin-top: auto; border-radius: 999px; font-weight: 800; }
.search-command-actions {display:flex;align-self:end;gap:.5rem;}
.search-command-actions .btn {white-space:nowrap;}
.search-command-actions [data-search-nearby].active {border-color:var(--vivu-primary);background:var(--vivu-primary);color:#fff;}
.search-nearby-status {margin:.65rem .75rem 0;color:var(--vivu-error);font-size:.82rem;font-weight:700;}
.search-date-control { position: relative; min-width: 0; }
.search-date-control .form-control { padding-right: 2.35rem; }
.search-date-control:not(.has-value):not(:focus-within) .form-control { color: transparent; }
.search-date-placeholder { position: absolute; top: 50%; right: 2.35rem; left: .85rem; overflow: hidden; color: var(--vivu-muted); font-weight: 650; line-height: 1.2; pointer-events: none; text-overflow: ellipsis; white-space: nowrap; transform: translateY(-50%); }
.search-date-control.has-value .search-date-placeholder,
.search-date-control:focus-within .search-date-placeholder { display: none; }
.search-layout { display: grid; grid-template-columns: minmax(220px, 280px) minmax(0, 1fr); gap: 1.5rem; margin-top: 1.7rem; }
.search-filters { align-self: start; position: sticky; top: 4.5rem; padding: 1.25rem; border: 1px solid var(--vivu-border); border-radius: var(--vivu-radius-lg); background: var(--vivu-surface); }
.search-filter-section + .search-filter-section { margin-top: 1.3rem; padding-top: 1.3rem; border-top: 1px solid var(--vivu-border); }
.search-filter-section h3 { margin: 0 0 .75rem; color: var(--vivu-deep); font-size: .96rem; font-weight: 800; }
.search-filter-section .form-label { color: var(--vivu-muted); font-size: .78rem; }
.search-price-inputs { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.search-price-inputs .form-control, .search-filter-section .form-select { border-color: var(--vivu-border); background-color: var(--vivu-soft); color: var(--vivu-text); }
.search-amenities { display: flex; max-height: 15rem; flex-direction: column; gap: .6rem; overflow: auto; }
.search-amenities label { display: flex; align-items: center; gap: .55rem; color: var(--vivu-text); font-size: .88rem; }
.search-amenities .form-check-input { flex: 0 0 auto; margin: 0; }
.search-results-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.search-results-toolbar h2 { margin: 0 0 .22rem; color: var(--vivu-deep); font-size: 1.15rem; font-weight: 800; }
.search-results-toolbar p { margin: 0; color: var(--vivu-muted); font-size: .88rem; }
.search-view-actions { display: flex; align-items: center; gap: .55rem; }
.search-view-switch .btn { min-width: 2.65rem; }
.search-view-switch .active { background: var(--vivu-primary); color: #fff; }
.search-view-actions .form-select { width: auto; min-width: 175px; border-color: var(--vivu-border); background-color: var(--vivu-surface); color: var(--vivu-text); }
.search-active-filters { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: .9rem; }
.search-filter-chip { display: inline-flex; align-items: center; gap: .35rem; padding: .42rem .7rem; border: 1px solid var(--vivu-border); border-radius: 999px; background: var(--vivu-surface); color: var(--vivu-text); font-size: .78rem; font-weight: 700; }
.search-filter-chip button { padding: 0; border: 0; background: transparent; color: var(--vivu-muted); }
.search-results-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1rem; }
.search-card { min-width: 0; overflow: hidden; border: 1px solid var(--vivu-border); border-radius: var(--vivu-radius-lg); background: var(--vivu-surface); transition: transform .2s cubic-bezier(.22,1,.36,1), box-shadow .2s cubic-bezier(.22,1,.36,1); }
.search-card:hover, .search-card:focus-within { transform: translateY(-3px); box-shadow: 0 18px 46px rgba(6,55,79,.14); }
.search-card-media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--vivu-soft); }
.search-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s cubic-bezier(.22,1,.36,1); }
.search-card:hover .search-card-media img { transform: scale(1.025); }
.search-card-capacity { position: absolute; right: .7rem; bottom: .65rem; padding: .3rem .58rem; border-radius: 999px; background: rgba(6,55,79,.88); color: #fff; font-size: .73rem; font-weight: 750; }
.search-card-body { padding: 1rem; }
.search-card-place { margin: 0 0 .25rem; color: var(--vivu-primary-strong); font-size: .76rem; font-weight: 750; }
.search-card h3 { margin: 0; color: var(--vivu-deep); font-size: 1.05rem; font-weight: 800; line-height: 1.3; }
.search-card h3 a { color: inherit; text-decoration: none; }
.search-card-address { min-height: 2.5em; margin: .45rem 0 .65rem; color: var(--vivu-muted); font-size: .82rem; }
.search-card-amenities { display: flex; min-height: 1.6rem; flex-wrap: wrap; gap: .35rem; }
.search-card-amenities span { padding: .26rem .48rem; border-radius: 7px; background: var(--vivu-soft); color: var(--vivu-text); font-size: .7rem; }
.search-card-footer { display: flex; align-items: end; justify-content: space-between; gap: .75rem; margin-top: .85rem; padding-top: .8rem; border-top: 1px solid var(--vivu-border); }
.search-card-price small { display: block; color: var(--vivu-muted); font-size: .7rem; }
.search-card-price strong { color: var(--vivu-deep); font-size: 1rem; }
.search-card-footer .btn { border-radius: 999px; font-weight: 750; }
.search-loading { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.search-skeleton { min-height: 340px; border-radius: var(--vivu-radius-lg); background: linear-gradient(100deg, var(--vivu-soft) 30%, var(--vivu-surface) 50%, var(--vivu-soft) 70%); background-size: 220% 100%; animation: search-shimmer 1.3s linear infinite; }
@keyframes search-shimmer { to { background-position-x: -220%; } }
.search-feedback { padding: 4rem 1.2rem; border: 1px dashed var(--vivu-border); border-radius: var(--vivu-radius-lg); background: var(--vivu-surface); text-align: center; }
.search-feedback > i { display: block; margin-bottom: .7rem; color: var(--vivu-primary); font-size: 2rem; }
.search-feedback h2 { color: var(--vivu-deep); font-size: 1.15rem; }
.search-feedback p { color: var(--vivu-muted); }
.search-map { min-height: 620px; overflow: hidden; border: 1px solid var(--vivu-border); border-radius: var(--vivu-radius-lg); background: var(--vivu-soft); }
.search-map-fallback { display: grid; min-height: 620px; place-items: center; padding: 2rem; color: var(--vivu-muted); text-align: center; }
.search-pagination { display: flex; justify-content: center; gap: .4rem; margin-top: 1.5rem; }
.search-pagination button { min-width: 2.5rem; min-height: 2.5rem; border: 1px solid var(--vivu-border); border-radius: 10px; background: var(--vivu-surface); color: var(--vivu-text); font-weight: 750; }
.search-pagination button[aria-current="page"] { border-color: var(--vivu-primary); background: var(--vivu-primary); color: #fff; }
.search-filter-drawer { background: var(--vivu-surface); color: var(--vivu-text); }
.search-filter-drawer .offcanvas-header { align-items: start; border-bottom: 1px solid var(--vivu-border); }
.search-filter-drawer h2 { margin: 0 0 .2rem; color: var(--vivu-deep); font-size: 1.25rem; }
.search-filter-drawer-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border-top: 1px solid var(--vivu-border); }
.leaflet-container { font-family: inherit; }
.search-map-popup strong { color: #06374f; }

@media (max-width: 991.98px) {
.search-shell { padding-top: 1.5rem; }
.search-filter-toggle { display: inline-flex; align-items: center; gap: .45rem; }
.search-layout { grid-template-columns: 1fr; }
.search-command { grid-template-columns: 1fr 1fr; }
.search-command-keyword { grid-column: 1 / -1; }
.search-command label { border: 0; }
}
@media (max-width: 575.98px) {
.search-heading { align-items: center; }
.search-heading h1 { font-size: 2rem; }
.search-heading p { display: none; }
.search-command { grid-template-columns: 1fr; }
.search-command-keyword { grid-column: auto; }
.search-command-actions {display:grid;grid-template-columns:1fr 1fr;}
.search-results-toolbar { align-items: stretch; flex-direction: column; }
.search-view-actions { justify-content: space-between; }
.search-view-actions .form-select { min-width: 0; flex: 1; }
.search-results-grid { grid-template-columns: 1fr; }
.search-loading { grid-template-columns: 1fr; }
.search-loading .search-skeleton:nth-child(n+2) { display: none; }
.search-map { min-height: 70vh; }
}
@media (prefers-reduced-motion: reduce) {
.search-card, .search-card-media img { transition: none; }
.search-skeleton { animation: none; }
}
/* search page end */

/* public homestay listing */
.homestays-page { min-height: 100vh; padding-block: 28px; }
.homestays-shell { padding: clamp(1.25rem, 3vw, 2.5rem) clamp(1rem, 3vw, 1.75rem) 4rem; }
.homestays-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1.5rem; }
.homestays-heading > div { max-width: 50rem; }
.homestays-heading h1 { margin: .65rem 0 .6rem; color: var(--vivu-deep); font-size: clamp(2.15rem, 4.5vw, 4.5rem); font-weight: 850; letter-spacing: -.04em; line-height: 1.02; text-wrap: balance; }
.homestays-heading p { margin: 0; color: var(--vivu-muted); font-size: 1rem; line-height: 1.65; text-wrap: pretty; }
.homestays-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .65rem; border: 1px solid var(--vivu-border); border-radius: var(--vivu-radius-lg); background: var(--vivu-surface); box-shadow: var(--vivu-shadow); }
.homestays-sort { display: flex; flex-wrap: wrap; gap: .35rem; }
.homestays-sort button { min-height: 42px; padding: .65rem 1rem; border: 0; border-radius: 999px; background: transparent; color: var(--vivu-muted); font-weight: 800; transition: background-color .18s ease, color .18s ease; }
.homestays-sort button:hover, .homestays-sort button:focus-visible, .homestays-sort button.active { outline: 0; background: color-mix(in srgb, var(--vivu-primary) 12%, var(--vivu-soft)); color: var(--vivu-primary-deep); }
.homestays-sort button .bi-star-fill { color: #e5a100; }
.homestays-nearby-note { display: flex; align-items: flex-start; gap: .65rem; margin-top: 1rem; padding: .85rem 1rem; border: 1px solid color-mix(in srgb, var(--vivu-primary) 32%, var(--vivu-border)); border-radius: var(--vivu-radius-md); background: color-mix(in srgb, var(--vivu-primary) 8%, var(--vivu-surface)); color: var(--vivu-text); font-size: .86rem; }
.homestays-nearby-note i { color: var(--vivu-primary-strong); }
.homestays-summary { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin: 1.7rem 0 1rem; }
.homestays-summary h2 { margin: 0; color: var(--vivu-deep); font-size: 1.2rem; font-weight: 850; }
.homestays-summary p { margin: 0; color: var(--vivu-muted); font-size: .86rem; }
.homestays-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: stretch; gap: 1.1rem; }
.homestay-list-card { display: flex; flex-direction: column; }
.homestay-list-card .search-card-body { display: flex; flex: 1; flex-direction: column; }
.homestay-list-card .search-card-footer { margin-top: auto; }
.homestay-card-kicker { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.homestay-card-kicker .search-card-place { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.homestay-distance { flex: 0 0 auto; color: var(--vivu-primary-strong); font-size: .74rem; font-weight: 800; }
.homestay-rating { display: flex; align-items: center; gap: .55rem; margin: .7rem 0 .85rem; color: var(--vivu-text); }
.homestay-rating span { font-size: .84rem; font-weight: 850; }
.homestay-rating span i { color: #e5a100; }
.homestay-rating small { color: var(--vivu-muted); font-size: .74rem; }
.homestays-page [data-homestays-loading][hidden] { display: none; }

@media (max-width: 767.98px) {
.homestays-heading { align-items: flex-start; flex-direction: column; gap: 1rem; }
.homestays-heading h1 { font-size: 2.35rem; }
.homestays-toolbar { align-items: stretch; flex-direction: column; }
.homestays-sort { display: grid; grid-template-columns: repeat(3, 1fr); }
.homestays-sort button { padding-inline: .5rem; font-size: .78rem; }
.homestays-toolbar > .btn { width: 100%; }
.homestays-summary { align-items: flex-start; flex-direction: column; gap: .25rem; }
.homestays-grid { grid-template-columns: 1fr; }
}

@media (min-width: 768px) and (max-width: 991.98px) {
.homestays-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
.homestays-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 420px) {
.homestays-sort { grid-template-columns: 1fr; }
.homestays-sort button { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
.homestays-sort button { transition: none; }
}
/* public homestay listing end */

/* contact page */
.contact-page { min-height: 100vh; padding-block: 28px; }
.contact-shell { padding: clamp(1.25rem, 3vw, 2.5rem) clamp(1rem, 3vw, 1.75rem) 4rem; }
.contact-heading { padding-bottom: 1.7rem; border-bottom: 1px solid var(--vivu-border); }
.contact-heading-row { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-top: .75rem; }
.contact-heading-row > div:first-child { max-width: 49rem; }
.contact-heading h1 { margin: 0 0 .65rem; color: var(--vivu-deep); font-size: clamp(2.25rem, 5vw, 4.8rem); font-weight: 850; letter-spacing: -.04em; line-height: 1.02; text-wrap: balance; }
.contact-heading p { max-width: 68ch; margin: 0; color: var(--vivu-muted); line-height: 1.65; text-wrap: pretty; }
.contact-response-note { display: flex; max-width: 19rem; align-items: flex-start; gap: .7rem; padding: .9rem 1rem; border: 1px solid var(--vivu-border); border-radius: var(--vivu-radius-md); background: var(--vivu-soft); color: var(--vivu-text); }
.contact-response-note > i { color: var(--vivu-primary-strong); font-size: 1.15rem; }
.contact-response-note span, .contact-response-note strong { display: block; }
.contact-response-note strong { margin-bottom: .18rem; color: var(--vivu-deep); font-size: .82rem; }
.contact-response-note span { color: var(--vivu-muted); font-size: .76rem; line-height: 1.45; }
.contact-layout { display: grid; grid-template-columns: minmax(240px, .72fr) minmax(0, 1.65fr); gap: 1.25rem; margin-top: 1.5rem; align-items: start; }
.contact-channels, .contact-form-panel { border: 1px solid var(--vivu-border); border-radius: var(--vivu-radius-xl); background: var(--vivu-surface); box-shadow: var(--vivu-shadow); }
.contact-channels { display: grid; gap: .55rem; padding: 1rem; }
.contact-channel-lead { padding: .5rem .4rem .9rem; }
.contact-channel-lead > i { display: inline-grid; width: 42px; height: 42px; margin-bottom: .8rem; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--vivu-primary) 12%, var(--vivu-soft)); color: var(--vivu-primary-strong); font-size: 1.15rem; }
.contact-channel-lead h2 { margin: 0 0 .4rem; color: var(--vivu-deep); font-size: 1.15rem; font-weight: 850; }
.contact-channel-lead p { margin: 0; color: var(--vivu-muted); font-size: .84rem; line-height: 1.55; }
.contact-channel { display: flex; min-height: 68px; align-items: center; gap: .75rem; padding: .8rem; border: 1px solid var(--vivu-border); border-radius: var(--vivu-radius-md); background: var(--vivu-soft); color: var(--vivu-text); text-decoration: none; transition: border-color .18s ease, background-color .18s ease, transform .18s cubic-bezier(.22,1,.36,1); }
.contact-channel:hover, .contact-channel:focus-visible { outline: 0; border-color: var(--vivu-primary); background: color-mix(in srgb, var(--vivu-primary) 8%, var(--vivu-surface)); color: var(--vivu-text); transform: translateY(-2px); }
.contact-channel > i:first-child { color: var(--vivu-primary-strong); font-size: 1.15rem; }
.contact-channel > i:last-child { margin-left: auto; color: var(--vivu-muted); }
.contact-channel span, .contact-channel strong, .contact-channel small { display: block; }
.contact-channel strong { color: var(--vivu-deep); font-size: .88rem; }
.contact-channel small { margin-top: .14rem; color: var(--vivu-muted); font-size: .72rem; }
.contact-socials { display: flex; flex-wrap: wrap; gap: .5rem; padding: .45rem .35rem 0; }
.contact-socials a { display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid var(--vivu-border); border-radius: 50%; background: var(--vivu-soft); color: var(--vivu-primary-strong); }
.contact-socials a:hover, .contact-socials a:focus-visible { outline: 0; border-color: var(--vivu-primary); background: color-mix(in srgb, var(--vivu-primary) 10%, var(--vivu-soft)); }
.contact-form-panel { padding: clamp(1.1rem, 2.5vw, 1.75rem); }
.contact-form-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.contact-form-head h2, .contact-guest h2 { margin: 0 0 .35rem; color: var(--vivu-deep); font-size: 1.35rem; font-weight: 900; }
.contact-form-head p, .contact-guest p { margin: 0; color: var(--vivu-muted); }
.contact-form-head > span { flex: 0 0 auto; padding: .4rem .65rem; border-radius: 999px; background: color-mix(in srgb, var(--vivu-primary) 10%, var(--vivu-soft)); color: var(--vivu-primary-strong); font-size: .72rem; font-weight: 800; }
.contact-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; }
.contact-form-grid label { display: flex; min-width: 0; flex-direction: column; gap: .38rem; color: var(--vivu-deep); font-size: .8rem; font-weight: 800; }
.contact-form-grid label b { color: #bd3038; }
.contact-form-grid .form-control, .contact-form-grid .form-select { min-height: 46px; border-color: var(--vivu-border); border-radius: var(--vivu-radius-md); background-color: var(--vivu-soft); color: var(--vivu-text); font-weight: 650; }
.contact-form-grid textarea.form-control { min-height: 150px; resize: vertical; }
.contact-form-grid .form-control:focus, .contact-form-grid .form-select:focus { border-color: var(--vivu-primary); background-color: var(--vivu-surface); box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .14); }
.contact-form-grid .form-control:disabled { background: color-mix(in srgb, var(--vivu-soft) 78%, var(--vivu-border)); color: var(--vivu-muted); opacity: 1; }
.contact-form-wide { grid-column: 1 / -1; }
.contact-privacy { display: flex; align-items: flex-start; gap: .45rem; margin: .9rem 0 0; color: var(--vivu-muted); font-size: .76rem; }
.contact-privacy i { color: var(--vivu-primary-strong); }
.contact-form-actions { display: flex; justify-content: flex-end; margin-top: 1rem; }
.contact-guest { display: grid; min-height: 390px; align-content: center; justify-items: center; gap: .75rem; text-align: center; }
.contact-guest > i { display: grid; width: 64px; height: 64px; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--vivu-primary) 12%, var(--vivu-soft)); color: var(--vivu-primary-strong); font-size: 1.65rem; }
.contact-guest p { max-width: 42ch; line-height: 1.6; }

@media (max-width: 991.98px) {
.contact-heading-row { align-items: flex-start; flex-direction: column; }
.contact-response-note { max-width: none; }
.contact-layout { grid-template-columns: 1fr; }
.contact-channels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.contact-channel-lead, .contact-socials { grid-column: 1 / -1; }
}

@media (max-width: 575.98px) {
.contact-heading h1 { font-size: 2.35rem; }
.contact-channels, .contact-form-grid { grid-template-columns: 1fr; }
.contact-channel-lead, .contact-socials, .contact-form-wide { grid-column: auto; }
.contact-form-head { flex-direction: column; }
.contact-form-actions .btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
.contact-channel { transition: none; }
}
/* contact page end */

/* public homestay detail */
.public-homestay-shell {
display: grid;
gap: 1.5rem;
padding: clamp(1rem, 2.6vw, 2rem);
background: linear-gradient(180deg, rgba(244, 249, 251, .96), rgba(255, 255, 255, .98));
}

[data-bs-theme="dark"] .public-homestay-shell {
background: linear-gradient(180deg, rgba(16, 47, 61, .96), rgba(11, 37, 50, .98));
}

.public-homestay-loading {
display: grid;
gap: .85rem;
padding: 2rem;
}

.public-homestay-loading[hidden],
.public-homestay-error[hidden],
.public-homestay-content[hidden] {
display: none;
}

.public-homestay-loading span {
min-height: 20px;
border-radius: 999px;
background: linear-gradient(90deg, rgba(16, 184, 207, .08), rgba(16, 184, 207, .18), rgba(16, 184, 207, .08));
background-size: 220% 100%;
animation: ownerSkeleton 1.4s ease-in-out infinite;
}

.public-homestay-loading span:first-child {
width: min(520px, 80%);
min-height: 42px;
}

.public-homestay-loading span:nth-child(2) {
width: min(720px, 100%);
}

.public-homestay-loading span:nth-child(3) {
min-height: 280px;
}

.public-homestay-error {
display: grid;
justify-items: center;
gap: .8rem;
padding: clamp(2rem, 6vw, 4rem) 1rem;
text-align: center;
}

.public-homestay-error i {
display: grid;
width: 76px;
height: 76px;
place-items: center;
border-radius: 999px;
background: rgba(16, 184, 207, .1);
color: var(--vivu-primary);
font-size: 2rem;
}

.public-homestay-error h1 {
margin: 0;
color: var(--vivu-deep);
font-size: clamp(1.8rem, 4vw, 2.8rem);
font-weight: 950;
}

.public-homestay-error p {
max-width: 42rem;
margin: 0;
color: var(--vivu-muted);
font-weight: 700;
line-height: 1.6;
}

.public-homestay-content {
display: grid;
gap: 1.25rem;
}

.public-homestay-breadcrumb {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: .45rem;
color: var(--vivu-muted);
font-size: .82rem;
font-weight: 800;
}

.public-homestay-breadcrumb a,
.public-section-link {
color: var(--vivu-primary-strong);
text-decoration: none;
}

.public-homestay-hero {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 1rem;
}

.public-homestay-hero-copy {
display: grid;
gap: .75rem;
min-width: 0;
}

.public-homestay-hero h1 {
max-width: 820px;
margin: 0;
color: var(--vivu-deep);
font-size: clamp(2rem, 5vw, 3.8rem);
font-weight: 950;
line-height: 1.02;
}

.public-homestay-code {
width: fit-content;
display: inline-flex;
min-height: 36px;
align-items: center;
gap: .45rem;
padding: .42rem .78rem;
border: 1px solid rgba(16, 184, 207, .28);
border-radius: 999px;
background: color-mix(in srgb, var(--vivu-primary) 9%, var(--vivu-surface));
color: var(--vivu-primary-strong);
font: inherit;
font-size: .82rem;
font-weight: 850;
line-height: 1.2;
cursor: pointer;
box-shadow: 0 12px 26px rgba(6, 55, 79, .08);
transition: transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
}

.public-homestay-code:hover,
.public-homestay-code:focus-visible {
border-color: rgba(16, 184, 207, .48);
background: color-mix(in srgb, var(--vivu-primary) 14%, var(--vivu-surface));
color: var(--vivu-deep);
box-shadow: 0 16px 30px rgba(16, 184, 207, .16);
transform: translateY(-1px);
}

.public-homestay-code:focus-visible {
outline: 3px solid rgba(16, 184, 207, .22);
outline-offset: 2px;
}

.public-homestay-code:active {
transform: translateY(1px);
}

.public-homestay-code strong {
color: var(--vivu-deep);
font-weight: 950;
}

.public-homestay-code.is-copied {
border-color: rgba(19, 116, 74, .3);
background: color-mix(in srgb, var(--vivu-success) 10%, var(--vivu-surface));
color: var(--vivu-success);
}

[data-bs-theme="dark"] .public-homestay-code {
background: color-mix(in srgb, var(--vivu-primary) 12%, var(--vivu-surface));
box-shadow: 0 18px 36px rgba(0, 0, 0, .22);
}

@media (prefers-reduced-motion: reduce) {
.public-homestay-code {
transition: none;
}

.public-homestay-code:hover,
.public-homestay-code:focus-visible,
.public-homestay-code:active {
transform: none;
}
}

.public-homestay-hero p {
display: flex;
align-items: flex-start;
gap: .45rem;
margin: 0;
color: var(--vivu-muted);
font-size: .96rem;
font-weight: 750;
line-height: 1.5;
}

.public-homestay-hero p i,
.public-homestay-quick-meta i {
color: var(--vivu-primary);
}

.public-homestay-quick-meta,
.public-homestay-hero-actions {
display: flex;
flex-wrap: wrap;
gap: .6rem;
}

.public-homestay-quick-meta span {
display: inline-flex;
min-height: 34px;
align-items: center;
gap: .4rem;
padding: .42rem .75rem;
border: 1px solid var(--vivu-border);
border-radius: 999px;
background: rgba(255, 255, 255, .7);
color: var(--vivu-muted);
font-size: .78rem;
font-weight: 850;
}

[data-bs-theme="dark"] .public-homestay-quick-meta span {
background: rgba(11, 37, 50, .7);
}

.public-homestay-quick-meta strong {
color: var(--vivu-deep);
}

.public-homestay-hero-actions {
flex: 0 0 auto;
}

.public-homestay-hero-actions .btn {
min-height: 42px;
padding-inline: 1rem;
}

.public-homestay-hero-actions .is-saved {
color: var(--vivu-primary-strong);
}

.public-homestay-gallery {
display: grid;
grid-template-columns: minmax(0, 1.55fr) minmax(220px, .65fr);
gap: .75rem;
border-radius: var(--vivu-radius-lg);
}

.public-gallery-main,
.public-gallery-side div {
display: grid;
min-height: 230px;
place-items: center;
overflow: hidden;
background: linear-gradient(135deg, rgba(16, 184, 207, .14), rgba(16, 184, 207, .04));
color: var(--vivu-primary);
}

.public-gallery-main {
min-height: clamp(320px, 42vw, 520px);
}

.public-gallery-side {
display: grid;
gap: .75rem;
}

.public-gallery-main img,
.public-gallery-side img {
width: 100%;
height: 100%;
object-fit: cover;
}

.public-gallery-main i,
.public-gallery-side i {
font-size: 2.4rem;
}

.public-homestay-layout {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
gap: 1.2rem;
align-items: start;
}

.public-homestay-main {
display: grid;
gap: 1rem;
min-width: 0;
}

.public-homestay-section,
.public-booking-panel {
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-lg);
background: rgba(255, 255, 255, .78);
box-shadow: 0 18px 44px rgba(5, 52, 77, .07);
}

[data-bs-theme="dark"] .public-homestay-section,
[data-bs-theme="dark"] .public-booking-panel {
background: rgba(11, 37, 50, .72);
}

.public-homestay-section {
display: grid;
gap: .9rem;
padding: clamp(1rem, 2vw, 1.4rem);
}

.public-homestay-section h2 {
margin: 0;
color: var(--vivu-deep);
font-size: 1.12rem;
font-weight: 950;
}

.public-homestay-section p {
margin: 0;
color: var(--vivu-text);
font-size: .95rem;
font-weight: 650;
line-height: 1.7;
white-space: pre-line;
}

.public-section-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
}

.public-section-head span,
.public-section-link {
font-size: .8rem;
font-weight: 850;
}

.public-homestay-amenities,
.public-homestay-rules {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: .65rem;
}

.public-homestay-amenities span,
.public-homestay-rules span {
display: flex;
min-height: 42px;
align-items: center;
gap: .5rem;
padding: .65rem .75rem;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
color: var(--vivu-text);
font-size: .84rem;
font-weight: 800;
}

.public-homestay-amenities i,
.public-homestay-rules i {
color: var(--vivu-primary);
}

.public-homestay-amenities em,
.public-homestay-rules em,
.public-homestay-surcharges em,
.public-similar-empty {
color: var(--vivu-muted);
font-size: .86rem;
font-style: normal;
font-weight: 750;
}

.public-homestay-surcharges {
display: grid;
gap: .65rem;
}

.public-homestay-surcharges div {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: .25rem .75rem;
padding: .75rem;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
}

.public-homestay-surcharges strong,
.public-homestay-surcharges span {
color: var(--vivu-deep);
font-size: .86rem;
font-weight: 900;
}

.public-homestay-surcharges small {
grid-column: 1 / -1;
color: var(--vivu-muted);
font-size: .78rem;
font-weight: 700;
}

.public-homestay-location {
display: flex;
align-items: flex-start;
gap: .8rem;
padding: .9rem;
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
}

.public-homestay-location > i {
display: grid;
width: 42px;
height: 42px;
flex: 0 0 auto;
place-items: center;
border-radius: 999px;
background: rgba(16, 184, 207, .12);
color: var(--vivu-primary-strong);
}

.public-homestay-location strong,
.public-homestay-location small {
display: block;
}

.public-homestay-location strong {
color: var(--vivu-deep);
font-size: .94rem;
font-weight: 900;
}

.public-homestay-location small {
margin-top: .25rem;
color: var(--vivu-muted);
font-size: .78rem;
font-weight: 750;
}

.public-booking-panel {
position: sticky;
top: 1rem;
display: grid;
gap: 1rem;
padding: 1rem;
}

.public-price-head {
display: flex;
align-items: baseline;
gap: .35rem;
margin-bottom: .9rem;
}

.public-price-head span,
.public-price-head small {
color: var(--vivu-muted);
font-size: .8rem;
font-weight: 800;
}

.public-price-head strong {
color: var(--vivu-deep);
font-size: 1.45rem;
font-weight: 950;
}

.public-booking-grid {
display: grid;
gap: .75rem;
margin-bottom: 1rem;
}

.public-booking-grid label {
display: grid;
gap: .35rem;
margin: 0;
}

.public-booking-grid span {
color: var(--vivu-muted);
font-size: .78rem;
font-weight: 850;
}

.public-booking-grid .form-control,
.public-booking-grid .form-select {
min-height: 48px;
border-color: var(--vivu-border);
border-radius: var(--vivu-radius-md);
background-color: var(--vivu-soft);
color: var(--vivu-text);
font-weight: 800;
}

.public-quote-box {
display: grid;
gap: .65rem;
padding: .9rem;
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
}

.public-quote-box div {
display: flex;
justify-content: space-between;
gap: .75rem;
color: var(--vivu-muted);
font-size: .84rem;
font-weight: 800;
}

.public-quote-box strong {
color: var(--vivu-deep);
font-weight: 950;
}

.public-quote-box .is-total {
padding-top: .65rem;
border-top: 1px solid var(--vivu-border);
color: var(--vivu-deep);
font-size: .95rem;
}

.public-similar-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: .75rem;
}

.public-similar-card {
display: grid;
gap: .45rem;
min-width: 0;
padding: .65rem;
border: 1px solid var(--vivu-border);
border-radius: var(--vivu-radius-md);
background: var(--vivu-soft);
color: var(--vivu-text);
text-decoration: none;
}

.public-similar-card span {
display: grid;
min-height: 112px;
place-items: center;
overflow: hidden;
border-radius: calc(var(--vivu-radius-md) - 4px);
background: rgba(16, 184, 207, .1);
color: var(--vivu-primary);
}

.public-similar-card img {
width: 100%;
height: 112px;
object-fit: cover;
}

.public-similar-card strong {
overflow: hidden;
color: var(--vivu-deep);
font-size: .9rem;
font-weight: 950;
text-overflow: ellipsis;
white-space: nowrap;
}

.public-similar-card small {
display: -webkit-box;
overflow: hidden;
color: var(--vivu-muted);
font-size: .76rem;
font-weight: 750;
line-height: 1.35;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}

.public-similar-card em {
color: var(--vivu-primary-strong);
font-size: .82rem;
font-style: normal;
font-weight: 950;
}

@media (max-width: 1199.98px) {
.public-homestay-layout {
grid-template-columns: 1fr;
}

.public-booking-panel {
position: static;
}
}

@media (max-width: 767.98px) {
.public-homestay-hero {
align-items: flex-start;
flex-direction: column;
}

.public-homestay-gallery {
grid-template-columns: 1fr;
}

.public-gallery-side {
grid-template-columns: repeat(2, minmax(0, 1fr));
}

.public-gallery-side div {
min-height: 120px;
}

.public-homestay-amenities,
.public-homestay-rules,
.public-similar-grid {
grid-template-columns: 1fr;
}
}
/* public homestay detail end */

.public-homestay-layout.is-booking-hidden {
grid-template-columns: 1fr;
}

.public-booking-panel[hidden] {
display: none;
}

.public-homestay-gallery {
position: relative;
display: block;
width: 100%;
min-height: clamp(360px, 48vw, 560px);
border: 1px solid rgba(255, 255, 255, .5);
border-radius: var(--vivu-radius-lg);
background: var(--vivu-soft);
box-shadow: 0 28px 70px rgba(5, 52, 77, .14);
margin: 1rem auto 2.5rem;
}

.public-slider-slide {
position: absolute;
inset: 0;
}

.public-slider-item {
position: absolute;
top: 65%;
left: 60%;
width: 150px;
height: 200px;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, .5);
border-radius: 20px;
background: linear-gradient(135deg, rgba(16, 184, 207, .14), rgba(16, 184, 207, .04));
box-shadow: 0 24px 52px rgba(6, 55, 79, .28);
color: #fff;
opacity: .62;
transform: translate(0, -50%);
transition:
left 520ms ease,
top 520ms ease,
width 520ms ease,
height 520ms ease,
border-radius 520ms ease,
opacity 220ms ease,
transform 520ms ease;
}

.public-slider-item:hover, o-1 {
opacity: 1;
}

.public-slider-item:nth-child(n + 3) {
cursor: pointer;
}

.public-slider-item:nth-child(1),
.public-slider-item:nth-child(2) {
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 20px;
opacity: 1;
transform: translate(0, 0);
}

.public-slider-item:nth-child(3) {
left: 58%;
}

.public-slider-item:nth-child(4) {
left: calc(58% + 165px);
}

.public-slider-item:nth-child(5) {
left: calc(58% + 330px);
}

.public-slider-item:nth-child(n + 6) {
left: calc(58% + 495px);
opacity: 0;
}

.public-slider-item:nth-child(6) {
opacity: 0.35;
}

.public-slider-item img {
width: 100%;
height: 100%;
object-fit: cover;
}

.public-slider-item::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(45deg, rgba(6, 55, 79, .18), rgba(6, 55, 79, .1) 48%, rgba(6, 55, 79, 0));
opacity: 0;
pointer-events: none;
transition: opacity 360ms ease;
}

.public-slider-item:nth-child(2)::after {
opacity: 1;
}

.public-slider-content {
position: absolute;
bottom: 0;
left: clamp(1rem, 6vw, 4rem);
z-index: 2;
display: none;
width: min(450px, 70%);
color: #fff;
transform: translateY(-50%);
}

.public-slider-item:nth-child(2) .public-slider-content {
display: grid;
gap: .55rem;
}

.public-slider-item.is-empty .public-slider-content,
.public-slider-item:nth-child(1):last-child .public-slider-content {
display: grid;
gap: .55rem;
}

.public-slider-content strong,
.public-slider-content span {
opacity: 0;
animation: publicSliderContent 820ms ease forwards;
}

.public-slider-content strong {
font-size: clamp(1.8rem, 4vw, 3.2rem);
font-weight: 950;
line-height: 1.05;
text-shadow: 0 12px 24px rgba(var(--vivu-text-rgb), .28);
}

.public-slider-content span {
color: rgba(255, 255, 255, .86);
font-size: .95rem;
font-weight: 800;
line-height: 1.45;
animation-delay: 160ms;
text-shadow: 0 6px 12px rgba(var(--vivu-text-rgb), .28);
}

.public-slider-actions {
position: absolute;
right: clamp(1rem, 3vw, 1.5rem);
bottom: clamp(1rem, 3vw, 1.5rem);
z-index: 3;
display: flex;
gap: .55rem;
}

.public-slider-actions button {
display: grid;
width: 42px;
height: 42px;
place-items: center;
border: 1px solid rgba(255, 255, 255, .7);
border-radius: var(--vivu-radius-sm);
background: rgba(255, 255, 255, .9);
color: var(--vivu-primary-strong);
box-shadow: 0 14px 34px rgba(5, 52, 77, .16);
transition:
background 180ms ease,
color 180ms ease,
transform 180ms ease;
}

.public-slider-actions button:hover,
.public-slider-actions button:focus-visible {
background: var(--vivu-primary);
color: #fff;
transform: translateY(-1px);
}

.public-slider-actions button:active {
transform: translateY(1px);
}

.public-homestay-gallery.is-single [data-public-gallery-prev],
.public-homestay-gallery.is-single [data-public-gallery-next] {
display: none;
}

.public-slider-item.is-empty {
display: grid;
place-items: center;
}

.public-slider-item.is-empty > i {
color: var(--vivu-primary);
font-size: 3rem;
}

@keyframes publicSliderContent {
from {
opacity: 0;
filter: blur(20px);
transform: translateY(42px);
}
to {
opacity: 1;
filter: blur(0);
transform: translateY(0);
}
}

@media (max-width: 991.98px) {
.public-slider-item:nth-child(3) {
left: 54%;
}

.public-slider-item:nth-child(4) {
left: calc(54% + 150px);
}

.public-slider-item:nth-child(n + 5) {
left: calc(54% + 300px);
opacity: 0;
}
}

@media (max-width: 767.98px) {
.public-homestay-gallery {
min-height: 430px;
}

.public-slider-item {
top: auto;
bottom: 78px;
left: 1rem;
width: 116px;
height: 148px;
transform: none;
}

.public-slider-item:nth-child(1),
.public-slider-item:nth-child(2) {
top: 0;
bottom: auto;
left: 0;
width: 100%;
height: 100%;
}

.public-slider-item:nth-child(3) {
left: 1rem;
}

.public-slider-item:nth-child(4) {
left: calc(1rem + 128px);
}

.public-slider-item:nth-child(n + 5) {
left: calc(1rem + 256px);
opacity: 0;
}

.public-slider-content {
top: 32%;
left: 1rem;
width: calc(100% - 2rem);
}
}

@media (prefers-reduced-motion: reduce) {
.public-slider-item,
.public-slider-actions button {
transition: none;
}

.public-slider-content strong,
.public-slider-content span {
opacity: 1;
animation: none;
filter: none;
transform: none;
}
}

input.form-control[type="date"],
input.form-control[data-vivu-date-native-type="date"],
.vivu-owner-page input.form-control[type="date"],
.vivu-owner-page input.form-control[data-vivu-date-native-type="date"],
.vivu-owner-modal input.form-control[type="date"],
.vivu-owner-modal input.form-control[data-vivu-date-native-type="date"],
.public-booking-grid input.form-control[type="date"] {
min-height: 42px;
padding-inline: 14px 12px;
border: 1px solid rgba(var(--vivu-border-rgb), .9);
border-radius: 999px;
background-color: var(--vivu-soft);
color: var(--vivu-text);
font-size: .86rem;
font-weight: 750;
line-height: 1.2;
color-scheme: light;
box-shadow: none;
}

input.form-control[type="date"]:hover,
input.form-control[type="date"]:focus,
input.form-control[data-vivu-date-native-type="date"]:hover,
input.form-control[data-vivu-date-native-type="date"]:focus {
border-color: rgba(var(--vivu-primary-rgb), .58);
background-color: #fff;
box-shadow: 0 0 0 .18rem rgba(var(--vivu-primary-rgb), .14);
}

input.form-control[type="date"]::-webkit-calendar-picker-indicator {
width: 18px;
height: 18px;
cursor: pointer;
opacity: .72;
filter: invert(48%) sepia(71%) saturate(1174%) hue-rotate(144deg) brightness(91%) contrast(88%);
}

input.form-control[type="date"]::-webkit-calendar-picker-indicator:hover {
opacity: 1;
}

input.form-control[data-vivu-date-native-type="date"]::-webkit-calendar-picker-indicator {
display: none;
}

.form-select:not([multiple]),
.vivu-owner-page .form-select:not([multiple]),
.vivu-owner-modal .form-select:not([multiple]),
.public-booking-grid .form-select:not([multiple]) {
min-height: 42px;
padding: 8px 42px 8px 14px;
border: 1px solid rgba(var(--vivu-border-rgb), .9);
border-radius: 999px;
background-color: var(--vivu-soft);
background-image:
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2310b8cf' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
background-position: right 14px center;
background-size: 14px 14px;
color: var(--vivu-text);
font-size: .86rem;
font-weight: 750;
line-height: 1.2;
box-shadow: none;
}

.form-select:not([multiple]):hover,
.form-select:not([multiple]):focus {
border-color: rgba(var(--vivu-primary-rgb), .58);
background-color: #fff;
box-shadow: 0 0 0 .18rem rgba(var(--vivu-primary-rgb), .14);
}

.vivu-native-select:not([multiple]) {
position: absolute !important;
width: 1px !important;
height: 1px !important;
min-height: 0 !important;
margin: 0 !important;
padding: 0 !important;
border: 0 !important;
opacity: 0 !important;
pointer-events: none !important;
}

.vivu-select {
display: block;
min-width: 0;
width: 100%;
}

.vivu-select-toggle {
position: relative;
display: flex;
width: 100%;
min-height: 42px;
align-items: center;
justify-content: space-between;
gap: 10px;
padding: 8px 42px 8px 14px;
border: 1px solid rgba(var(--vivu-border-rgb), .9);
border-radius: 999px;
background: var(--vivu-soft);
color: var(--vivu-text);
font-size: .86rem;
font-weight: 750;
line-height: 1.2;
text-align: left;
box-shadow: none;
transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.vivu-select-toggle::after {
position: absolute;
top: 50%;
right: 16px;
width: 9px;
height: 9px;
border-right: 2px solid var(--vivu-primary);
border-bottom: 2px solid var(--vivu-primary);
content: "";
transform: translateY(-65%) rotate(45deg);
transition: transform .18s ease;
}

.vivu-select-toggle:hover,
.vivu-select-toggle:focus-visible,
.vivu-select-toggle.is-open {
border-color: rgba(var(--vivu-primary-rgb), .58);
background: #fff;
box-shadow: 0 0 0 .18rem rgba(var(--vivu-primary-rgb), .14);
outline: none;
}

.vivu-select-toggle.is-open::after {
transform: translateY(-35%) rotate(225deg);
}

.vivu-select-label {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: var(--vivu-text)!important;
}

.vivu-select-toggle.is-empty .vivu-select-label {
color: var(--vivu-muted);
}

.vivu-select-menu {
position: fixed;
z-index: 1096;
top: var(--vivu-select-top, 0);
left: var(--vivu-select-left, 0);
display: grid;
max-height: min(300px, calc(100dvh - 32px));
gap: 3px;
overflow: auto;
padding: 6px;
border: 1px solid rgba(var(--vivu-border-rgb), .9);
border-radius: 16px;
background: rgba(255, 255, 255, .98);
box-shadow: 0 24px 58px rgba(5, 52, 77, .22);
}

.vivu-select-menu::-webkit-scrollbar {
width: 0;
height: 0;
}

.vivu-select-option {
display: flex;
width: 100%;
min-height: 34px;
align-items: center;
padding: 8px 11px;
border: 0;
border-radius: 10px;
background: transparent;
color: var(--vivu-text);
font-size: .86rem;
font-weight: 800;
line-height: 1.2;
text-align: left;
}

.vivu-select-option:hover,
.vivu-select-option:focus-visible {
background: rgba(var(--vivu-primary-rgb), .14);
color: var(--vivu-primary-strong);
outline: none;
}

.vivu-select-option.is-selected {
background: var(--vivu-primary);
color: #fff;
}

.vivu-select-option:disabled {
cursor: not-allowed;
background: var(--vivu-soft);
color: var(--vivu-muted);
}

.vivu-select-group {
padding: 8px 11px 4px;
color: var(--vivu-deep);
font-size: .72rem;
font-weight: 950;
}

.form-select option,
.form-select optgroup {
background-color: #fff;
color: var(--vivu-text);
font-size: .86rem;
font-weight: 750;
}

.form-select option {
min-height: 36px;
padding: 9px 12px;
border-radius: 10px;
margin: 2px 4px;
}

.form-select option:hover,
.form-select option:focus {
background-color: rgba(var(--vivu-primary-rgb), .14);
color: var(--vivu-primary-strong);
}

.form-select option:checked {
background-color: var(--vivu-primary);
color: #fff;
}

.form-select option:disabled {
background-color: var(--vivu-soft);
color: var(--vivu-muted);
}

.form-select optgroup {
color: var(--vivu-deep);
font-weight: 900;
}

[data-bs-theme="dark"] input.form-control[type="date"],
[data-bs-theme="dark"] input.form-control[data-vivu-date-native-type="date"],
[data-bs-theme="dark"] .form-select:not([multiple]) {
background-color: rgba(255, 255, 255, .08);
color: #fff;
color-scheme: dark;
}

[data-bs-theme="dark"] input.form-control[type="date"]:hover,
[data-bs-theme="dark"] input.form-control[type="date"]:focus,
[data-bs-theme="dark"] input.form-control[data-vivu-date-native-type="date"]:hover,
[data-bs-theme="dark"] input.form-control[data-vivu-date-native-type="date"]:focus,
[data-bs-theme="dark"] .form-select:not([multiple]):hover,
[data-bs-theme="dark"] .form-select:not([multiple]):focus {
background-color: rgba(255, 255, 255, .12);
}

[data-bs-theme="dark"] .vivu-select-toggle {
background: rgba(255, 255, 255, .08);
color: #fff;
}

[data-bs-theme="dark"] .vivu-select-toggle:hover,
[data-bs-theme="dark"] .vivu-select-toggle:focus-visible,
[data-bs-theme="dark"] .vivu-select-toggle.is-open {
background: rgba(255, 255, 255, .12);
}

[data-bs-theme="dark"] .vivu-select-menu {
border-color: rgba(255, 255, 255, .12);
background: rgba(8, 30, 41, .98);
}

[data-bs-theme="dark"] .vivu-select-option {
color: #fff;
}

[data-bs-theme="dark"] .vivu-select-option:hover,
[data-bs-theme="dark"] .vivu-select-option:focus-visible {
background: rgba(var(--vivu-primary-rgb), .22);
color: #fff;
}

[data-bs-theme="dark"] .vivu-select-option.is-selected {
background: var(--vivu-primary);
color: #052633;
}

[data-bs-theme="dark"] .vivu-select-option:disabled {
background: rgba(255, 255, 255, .08);
color: rgba(255, 255, 255, .52);
}

[data-bs-theme="dark"] .vivu-select-group {
color: #fff;
}

[data-bs-theme="dark"] .form-select option,
[data-bs-theme="dark"] .form-select optgroup {
background-color: #0b2532;
color: #fff;
}

[data-bs-theme="dark"] .form-select option:hover,
[data-bs-theme="dark"] .form-select option:focus {
background-color: rgba(var(--vivu-primary-rgb), .22);
color: #fff;
}

[data-bs-theme="dark"] .form-select option:checked {
background-color: var(--vivu-primary);
color: #052633;
}

[data-bs-theme="dark"] .form-select option:disabled {
background-color: rgba(255, 255, 255, .08);
color: rgba(255, 255, 255, .52);
}

.vivu-public-reveal {
opacity: 0;
transform: translateY(18px);
transition:
opacity 520ms ease,
transform 520ms ease;
will-change: opacity, transform;
}

.vivu-public-reveal.is-visible {
opacity: 1;
transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
.vivu-public-reveal {
opacity: 1;
transform: none;
transition: none;
will-change: auto;
}
}

.vivu-booking-page {
min-height: 100dvh;
overflow-x: hidden;
background:
radial-gradient(circle at 16% 10%, rgba(var(--vivu-primary-rgb), .16), transparent 27rem),
linear-gradient(180deg, rgba(var(--vivu-primary-rgb), .08), transparent 34rem),
var(--vivu-bg);
color: var(--vivu-text);
}

.vivu-booking-page .booking-page {
min-height: 100dvh;
padding-block: 24px;
}

.booking-shell {
position: relative;
padding: clamp(1.25rem, 3vw, 2.5rem);
}

.booking-loading,
.booking-error,
.booking-success {
display: grid;
min-height: 420px;
place-items: center;
text-align: center;
}

.booking-loading {
grid-template-columns: repeat(3, 13px);
justify-content: center;
align-content: center;
gap: 10px;
}

.booking-loading span {
width: 13px;
height: 13px;
border-radius: 50%;
background: var(--vivu-primary);
animation: vivuBookingPulse 780ms ease-in-out infinite alternate;
}

.booking-loading span:nth-child(2) {
animation-delay: 120ms;
}

.booking-loading span:nth-child(3) {
animation-delay: 240ms;
}

@keyframes vivuBookingPulse {
from {
opacity: .35;
transform: translateY(0);
}

to {
opacity: 1;
transform: translateY(-9px);
}
}

.booking-error,
.booking-success {
max-width: 620px;
margin-inline: auto;
padding: clamp(2rem, 5vw, 4rem);
}

.booking-error > i,
.booking-success > i {
display: grid;
width: 72px;
height: 72px;
place-items: center;
margin-bottom: 1rem;
border-radius: 24px;
background: rgba(var(--vivu-primary-rgb), .13);
color: var(--vivu-primary);
font-size: 34px;
}

.booking-error h1,
.booking-success h1 {
margin: 0 0 .75rem;
color: var(--vivu-deep);
font-size: clamp(2rem, 4vw, 3.35rem);
font-weight: 950;
letter-spacing: 0;
}

.booking-error p,
.booking-success p {
margin: 0 0 1.35rem;
color: var(--vivu-muted);
font-weight: 650;
line-height: 1.7;
}

.booking-success-actions {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: .75rem;
}

.booking-head {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 1rem;
margin: clamp(1.25rem, 3vw, 2.25rem) 0;
}

.booking-head h1 {
max-width: 780px;
margin: .75rem 0 .65rem;
color: var(--vivu-deep);
font-size: clamp(1.8rem, 4.5vw, 3.4rem);
font-weight: 950;
line-height: .96;
letter-spacing: 0;
text-wrap: balance;
}

.booking-head p {
max-width: 640px;
margin: 0;
color: var(--vivu-muted);
font-size: 1rem;
font-weight: 650;
line-height: 1.7;
}

.booking-layout {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
gap: clamp(1rem, 2.4vw, 1.75rem);
align-items: start;
}

.booking-form {
display: grid;
gap: 1rem;
}

.booking-panel,
.booking-summary {
border: 1px solid rgba(var(--vivu-primary-rgb), .13);
border-radius: 8px;
background: rgba(255, 255, 255, .84);
box-shadow: 0 20px 60px rgba(7, 48, 64, .08);
backdrop-filter: blur(16px);
}

.booking-panel {
padding: clamp(1rem, 2vw, 1.35rem);
}

.booking-panel-head {
display: flex;
gap: .85rem;
align-items: flex-start;
margin-bottom: 1rem;
}

.booking-panel-head > span {
display: grid;
width: 38px;
height: 38px;
flex: 0 0 auto;
place-items: center;
border-radius: 14px;
background: rgba(var(--vivu-primary-rgb), .13);
color: var(--vivu-primary);
font-weight: 950;
}

.booking-panel-head h2,
.booking-homestay-card h2 {
margin: 0;
color: var(--vivu-deep);
font-size: 1.1rem;
font-weight: 900;
letter-spacing: 0;
}

.booking-panel-head p {
margin: .2rem 0 0;
color: var(--vivu-muted);
font-size: .9rem;
font-weight: 650;
line-height: 1.5;
}

.booking-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: .9rem;
}

.booking-grid label {
display: grid;
gap: .45rem;
}

.booking-grid label > span,
.booking-payment-list label > span {
color: var(--vivu-text);
font-size: .9rem;
font-weight: 800;
}

.booking-grid-wide {
grid-column: 1 / -1;
}

.booking-guest-group {
display: grid;
gap: .55rem;
}

.booking-guest-group > span {
color: var(--vivu-text);
font-size: .9rem;
font-weight: 800;
}

.booking-guest-group small {
color: var(--vivu-muted);
font-size: .82rem;
font-weight: 750;
}

.booking-guest-controls {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: .75rem;
}

.booking-guest-controls label {
display: grid;
gap: .4rem;
}

.booking-guest-controls label > span {
color: var(--vivu-muted);
font-size: .78rem;
font-weight: 800;
}

.booking-payment-list {
display: grid;
gap: .75rem;
}

.booking-payment-list label {
display: flex;
align-items: center;
gap: .75rem;
min-height: 52px;
padding: .75rem .9rem;
border: 1px solid rgba(var(--vivu-primary-rgb), .14);
border-radius: 8px;
background: rgba(var(--vivu-primary-rgb), .04);
cursor: pointer;
}

.booking-payment-list input {
accent-color: var(--vivu-primary);
}

.booking-payment-list i {
margin-right: .35rem;
color: var(--vivu-primary);
}

.booking-submit {
width: 100%;
min-height: 48px;
margin-top: 1rem;
}

.booking-summary {
position: sticky;
top: 92px;
display: grid;
gap: 1rem;
padding: 1rem;
}

.booking-homestay-card {
display: grid;
grid-template-columns: 118px minmax(0, 1fr);
gap: .9rem;
}

.booking-homestay-image {
display: grid;
aspect-ratio: 1;
place-items: center;
overflow: hidden;
border-radius: 8px;
background: linear-gradient(135deg, rgba(var(--vivu-primary-rgb), .12), rgba(255, 255, 255, .62));
color: var(--vivu-primary);
font-size: 2rem;
}

.booking-homestay-image img {
width: 100%;
height: 100%;
object-fit: cover;
}

.booking-homestay-card p {
margin: .45rem 0 .7rem;
color: var(--vivu-muted);
font-size: .88rem;
font-weight: 650;
line-height: 1.45;
}

.booking-meta {
display: flex;
flex-wrap: wrap;
gap: .45rem;
}

.booking-meta span {
display: inline-flex;
align-items: center;
gap: .35rem;
padding: .35rem .55rem;
border-radius: 999px;
background: rgba(var(--vivu-primary-rgb), .1);
color: var(--vivu-text);
font-size: .78rem;
font-weight: 800;
}

.booking-price-box {
display: grid;
gap: .7rem;
padding: 1rem 0;
border-block: 1px solid rgba(var(--vivu-primary-rgb), .12);
}

.booking-price-box div {
display: flex;
justify-content: space-between;
gap: 1rem;
color: var(--vivu-muted);
font-weight: 750;
}

.booking-price-box strong {
color: var(--vivu-text);
}

.booking-price-box .is-total {
margin-top: .25rem;
padding-top: .85rem;
border-top: 1px dashed rgba(var(--vivu-primary-rgb), .22);
color: var(--vivu-deep);
font-size: 1.05rem;
}

.booking-price-box .is-total strong {
color: var(--vivu-primary);
font-size: 1.18rem;
}

.booking-contact-price {
display: grid;
gap: .5rem;
padding: 1rem;
border-radius: 8px;
background: rgba(var(--vivu-primary-rgb), .1);
color: var(--vivu-text);
}

.booking-contact-price i {
color: var(--vivu-primary);
font-size: 1.65rem;
}

.booking-contact-price strong {
color: var(--vivu-deep);
}

.booking-contact-price p {
margin: 0;
color: var(--vivu-muted);
font-size: .9rem;
font-weight: 650;
line-height: 1.55;
}

.booking-policy {
display: grid;
gap: .6rem;
color: var(--vivu-muted);
font-size: .86rem;
font-weight: 650;
line-height: 1.45;
}

.booking-policy span {
display: flex;
gap: .5rem;
}

.booking-policy i {
color: var(--vivu-primary);
}

[data-bs-theme="dark"] .booking-panel,
[data-bs-theme="dark"] .booking-summary {
border-color: rgba(255, 255, 255, .1);
background: rgba(8, 31, 43, .82);
box-shadow: 0 20px 60px rgba(0, 0, 0, .28);
}

[data-bs-theme="dark"] .booking-payment-list label,
[data-bs-theme="dark"] .booking-homestay-image,
[data-bs-theme="dark"] .booking-contact-price {
border-color: rgba(255, 255, 255, .12);
background: rgba(255, 255, 255, .06);
}

@media (max-width: 1199.98px) {
.booking-layout {
grid-template-columns: 1fr;
}

.booking-summary {
position: static;
}
}

@media (max-width: 767.98px) {
.booking-shell {
padding: 1rem;
}

.booking-head {
align-items: flex-start;
flex-direction: column;
}

.booking-grid {
grid-template-columns: 1fr;
}

.booking-guest-controls {
grid-template-columns: 1fr;
}

.booking-homestay-card {
grid-template-columns: 92px minmax(0, 1fr);
}
}

.user-bookings-panel {
display: grid;
gap: 1rem;
}

.user-bookings-stats strong {
color: var(--vivu-primary);
}

.user-bookings-toolbar {
display: grid;
grid-template-columns: minmax(0, 1fr) auto minmax(155px, auto);
gap: .75rem;
align-items: center;
}

.user-bookings-archive-filter {
min-height: 42px;
border-color: var(--vivu-border);
background-color: var(--vivu-soft);
color: var(--vivu-text);
font-weight: 750;
}

.user-bookings-toolbar .input-soft {
overflow: hidden;
border: 1px solid var(--vivu-border);
border-radius: 999px;
background: var(--vivu-soft);
}

.user-bookings-toolbar .input-group-text {
border: 0;
background: transparent;
color: var(--vivu-primary);
}

.user-bookings-toolbar .form-control {
min-height: 42px;
border: 0;
background: transparent;
color: var(--vivu-text);
font-size: .88rem;
font-weight: 700;
box-shadow: none;
}

.user-bookings-list {
display: grid;
gap: .85rem;
}

.user-booking-card {
display: grid;
gap: .9rem;
padding: 1rem;
border: 1px solid var(--vivu-border);
border-radius: 8px;
background: var(--vivu-surface);
box-shadow: 0 14px 34px rgba(5, 52, 77, .07);
transition:
border-color 180ms ease,
box-shadow 180ms ease,
transform 180ms ease;
}

.user-booking-card:hover {
border-color: rgba(var(--vivu-primary-rgb), .3);
box-shadow: 0 18px 46px rgba(5, 52, 77, .11);
transform: translateY(-1px);
}

[data-bs-theme="dark"] .user-booking-card {
background: rgba(11, 37, 50, .72);
box-shadow: 0 14px 34px rgba(0, 0, 0, .22);
}

.user-booking-card-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: .85rem;
}

.user-booking-card-head small {
display: block;
margin-bottom: .28rem;
color: var(--vivu-muted);
font-size: .74rem;
font-weight: 850;
}

.user-booking-card-head h3 {
margin: 0;
color: var(--vivu-deep);
font-size: 1.05rem;
font-weight: 950;
line-height: 1.2;
overflow-wrap: anywhere;
}

.user-booking-card-head p {
display: flex;
align-items: flex-start;
gap: .4rem;
margin: .38rem 0 0;
color: var(--vivu-muted);
font-size: .82rem;
font-weight: 700;
line-height: 1.45;
}

.user-booking-card-head p i {
color: var(--vivu-primary);
}

.user-booking-status {
flex: 0 0 auto;
display: inline-flex;
min-height: 30px;
align-items: center;
gap: .38rem;
padding: .35rem .65rem;
border-radius: 999px;
background: rgba(var(--vivu-primary-rgb), .12);
color: var(--vivu-primary-strong);
font-size: .74rem;
font-weight: 950;
}

.user-booking-status i {
font-size: .48rem;
}

.user-booking-status.is-completed {
background: rgba(25, 135, 84, .15);
color: #13744a;
}

.user-booking-status.is-canceled {
background: rgba(220, 53, 69, .12);
color: #b02a37;
}

.user-booking-meta {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: .65rem;
}

.user-booking-meta span {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
gap: .1rem .5rem;
min-width: 0;
padding: .75rem;
border-radius: 8px;
background: var(--vivu-soft);
}

.user-booking-meta i {
grid-row: span 2;
margin-top: .1rem;
color: var(--vivu-primary);
}

.user-booking-meta b {
color: var(--vivu-muted);
font-size: .72rem;
font-weight: 850;
}

.user-booking-meta strong {
color: var(--vivu-deep);
font-size: .86rem;
font-weight: 950;
line-height: 1.25;
overflow-wrap: anywhere;
}

.user-booking-note {
display: flex;
gap: .5rem;
margin: 0;
padding: .75rem .85rem;
border-radius: 8px;
background: rgba(var(--vivu-primary-rgb), .07);
color: var(--vivu-muted);
font-size: .82rem;
font-weight: 700;
line-height: 1.5;
}

.user-booking-note i {
color: var(--vivu-primary);
}

.user-booking-actions {
display: flex;
flex-wrap: wrap;
gap: .5rem;
}

.user-bookings-empty[hidden] {
display: none;
}

.agent-booking-filters {
display: grid;
grid-template-columns: minmax(260px, 1fr) 210px 180px;
gap: .75rem;
width: 100%;
}

.agent-booking-list {
display: grid;
gap: .9rem;
}

.agent-booking-card {
display: grid;
gap: .9rem;
padding: 1rem;
border: 1px solid var(--vivu-border);
border-radius: 8px;
background: var(--vivu-surface);
box-shadow: 0 14px 36px rgba(5, 52, 77, .07);
transition:
border-color 180ms ease,
box-shadow 180ms ease,
transform 180ms ease;
}

.agent-booking-card:hover {
border-color: rgba(var(--vivu-primary-rgb), .3);
box-shadow: 0 18px 48px rgba(5, 52, 77, .12);
transform: translateY(-1px);
}

[data-bs-theme="dark"] .agent-booking-card {
background: rgba(11, 37, 50, .72);
box-shadow: 0 14px 36px rgba(0, 0, 0, .22);
}

.agent-booking-card.is-loading {
pointer-events: none;
}

.agent-booking-card.is-loading > span,
.agent-booking-card.is-loading h2,
.agent-booking-card.is-loading p,
.agent-booking-card.is-loading i {
display: block;
min-height: 16px;
border-radius: 999px;
background: linear-gradient(90deg, rgba(var(--vivu-primary-rgb), .08), rgba(var(--vivu-primary-rgb), .18), rgba(var(--vivu-primary-rgb), .08));
background-size: 220% 100%;
animation: ownerSkeleton 1.4s ease-in-out infinite;
}

.agent-booking-card.is-loading h2 {
width: 62%;
min-height: 24px;
}

.agent-booking-card.is-loading p {
width: 86%;
}

.agent-booking-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: .85rem;
}

.agent-booking-head span {
display: block;
margin-bottom: .25rem;
color: var(--vivu-muted);
font-size: .75rem;
font-weight: 850;
}

.agent-booking-head h2 {
margin: 0;
color: var(--vivu-deep);
font-size: 1.08rem;
font-weight: 950;
line-height: 1.2;
overflow-wrap: anywhere;
}

.agent-booking-head p {
display: flex;
align-items: flex-start;
gap: .4rem;
margin: .38rem 0 0;
color: var(--vivu-muted);
font-size: .82rem;
font-weight: 700;
line-height: 1.45;
}

.agent-booking-head p i {
color: var(--vivu-primary);
}

.agent-booking-meta,
.agent-booking-detail {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: .65rem;
}

.agent-booking-meta span,
.agent-booking-detail div {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
gap: .1rem .5rem;
min-width: 0;
padding: .75rem;
border-radius: 8px;
background: var(--vivu-soft);
}

.agent-booking-detail div {
grid-template-columns: 1fr;
}

.agent-booking-meta i {
grid-row: span 2;
margin-top: .1rem;
color: var(--vivu-primary);
}

.agent-booking-meta b,
.agent-booking-detail span {
color: var(--vivu-muted);
font-size: .72rem;
font-weight: 850;
}

.agent-booking-meta strong,
.agent-booking-detail strong {
color: var(--vivu-deep);
font-size: .86rem;
font-weight: 950;
line-height: 1.25;
overflow-wrap: anywhere;
}

.agent-booking-note {
display: flex;
gap: .5rem;
margin: 0;
padding: .75rem .85rem;
border-radius: 8px;
background: rgba(var(--vivu-primary-rgb), .07);
color: var(--vivu-muted);
font-size: .82rem;
font-weight: 700;
line-height: 1.5;
}

.agent-booking-amounts {
padding: .85rem;
border: 1px solid rgba(var(--vivu-primary-rgb), .16);
border-radius: 8px;
}

.agent-booking-history {
padding: .85rem;
border: 1px solid rgba(var(--vivu-primary-rgb), .12);
border-radius: 8px;
background: var(--vivu-soft);
}

.agent-booking-history-list {
display: grid;
gap: .65rem;
}

.agent-booking-history-item {
display: grid;
gap: .5rem;
padding: .7rem;
border: 1px solid var(--vivu-border);
border-radius: 8px;
background: var(--vivu-surface);
}

.agent-booking-history-item header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: .75rem;
}

.agent-booking-history-item h4 {
margin: 0;
color: var(--vivu-deep);
font-size: .9rem;
font-weight: 950;
}

.agent-booking-history-item time,
.agent-booking-history-item small {
color: var(--vivu-muted);
font-size: .75rem;
font-weight: 750;
}

.agent-booking-history-diff {
display: grid;
gap: .35rem;
}

.agent-booking-history-diff span {
display: grid;
grid-template-columns: minmax(110px, .55fr) minmax(0, 1fr);
gap: .5rem;
color: var(--vivu-muted);
font-size: .78rem;
font-weight: 750;
}

.agent-booking-history-diff b {
color: var(--vivu-deep);
}

.agent-booking-amounts-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 1rem;
margin-bottom: .75rem;
}

.agent-booking-amounts-head h3 {
margin: 0;
color: var(--vivu-deep);
font-size: 1rem;
font-weight: 950;
}

.agent-booking-amounts-head strong {
color: var(--vivu-primary);
font-size: 1rem;
font-weight: 950;
white-space: nowrap;
}

.agent-booking-amount-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: .75rem;
}

.agent-booking-amount-grid label {
margin: 0;
}

.agent-booking-homestay-field {
grid-column: 1 / -1;
}

.agent-booking-amount-grid span {
display: block;
margin-bottom: .35rem;
color: var(--vivu-muted);
font-size: .74rem;
font-weight: 850;
}

.agent-booking-note i {
color: var(--vivu-primary);
}

.agent-booking-actions {
display: flex;
flex-wrap: wrap;
gap: .5rem;
}

.agent-reconciliation {
padding: 1rem;
border: 1px solid var(--vivu-border);
border-radius: 16px;
background: var(--vivu-soft);
}

.agent-reconciliation-updated {
color: var(--vivu-muted);
font-size: .78rem;
font-weight: 750;
}

.agent-reconciliation-prices {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
margin-top: 1rem;
border: 1px solid var(--vivu-border);
border-radius: 12px;
background: var(--vivu-surface);
}

.agent-reconciliation-prices > div {
display: grid;
gap: .3rem;
padding: .85rem 1rem;
}

.agent-reconciliation-prices > div + div {
border-left: 1px solid var(--vivu-border);
}

.agent-reconciliation-prices span,
.agent-reconciliation .form-label small {
color: var(--vivu-muted);
font-size: .78rem;
font-weight: 650;
}

.agent-reconciliation-prices strong {
color: var(--vivu-deep);
font-size: 1rem;
font-weight: 900;
}

.agent-reconciliation-breakdown {
display: grid;
gap: .5rem;
margin-top: .75rem;
}

.agent-reconciliation-breakdown > div {
display: grid;
grid-template-columns: 100px repeat(3, minmax(0, 1fr));
gap: .5rem;
align-items: center;
padding: .65rem .75rem;
border: 1px solid var(--vivu-border);
border-radius: 10px;
background: var(--vivu-surface);
color: var(--vivu-muted);
font-size: .78rem;
}

.agent-reconciliation-breakdown > div > strong,
.agent-reconciliation-breakdown b {
color: var(--vivu-deep);
}

.agent-reconciliation .form-label {
display: grid;
gap: .4rem;
margin: 0;
}

.agent-reconciliation-result {
display: flex;
flex-wrap: wrap;
gap: .55rem 1rem;
align-items: center;
margin-top: 1rem;
padding-top: 1rem;
border-top: 1px solid var(--vivu-border);
color: var(--vivu-text);
}

.agent-reconciliation-result span {
display: inline-flex;
gap: .4rem;
align-items: center;
}

.agent-reconciliation-result i {
color: var(--vivu-primary-strong);
}

.agent-reconciliation-result p {
flex-basis: 100%;
margin: 0;
padding: .75rem .9rem;
border: 1px solid color-mix(in srgb, var(--vivu-primary) 26%, var(--vivu-border));
border-radius: 10px;
background: color-mix(in srgb, var(--vivu-primary) 8%, var(--vivu-surface));
color: var(--vivu-deep);
}

.agent-reconciliation-result p b {
color: var(--vivu-primary-strong);
}

@media (max-width: 767.98px) {
.agent-reconciliation-prices {
grid-template-columns: 1fr;
}

.agent-reconciliation-prices > div + div {
border-top: 1px solid var(--vivu-border);
border-left: 0;
}

.agent-reconciliation-breakdown > div {
grid-template-columns: 1fr;
}
}

.owner-booking-filters {
display: grid;
grid-template-columns: minmax(260px, 1fr) 210px 180px;
gap: .75rem;
width: 100%;
}

.owner-booking-list {
display: grid;
gap: .9rem;
}

.owner-pagination {
display: flex;
align-items: center;
justify-content: center;
gap: 12px;
}
.owner-pagination[hidden] { display: none; }

.owner-pagination span { color: var(--vivu-muted); font-weight: 800; }

.owner-booking-card {
display: grid;
gap: .9rem;
padding: 1rem;
border: 1px solid var(--vivu-border);
border-radius: 8px;
background: var(--vivu-surface);
box-shadow: 0 14px 36px rgba(5, 52, 77, .07);
transition:
border-color 180ms ease,
box-shadow 180ms ease,
transform 180ms ease;
}

.owner-booking-card:hover {
border-color: rgba(var(--vivu-primary-rgb), .3);
box-shadow: 0 18px 48px rgba(5, 52, 77, .12);
transform: translateY(-1px);
}

[data-bs-theme="dark"] .owner-booking-card {
background: rgba(11, 37, 50, .72);
box-shadow: 0 14px 36px rgba(0, 0, 0, .22);
}

.owner-booking-card.is-loading {
pointer-events: none;
}

.owner-booking-card.is-loading > span,
.owner-booking-card.is-loading h2,
.owner-booking-card.is-loading p,
.owner-booking-card.is-loading i {
display: block;
min-height: 16px;
border-radius: 999px;
background: linear-gradient(90deg, rgba(var(--vivu-primary-rgb), .08), rgba(var(--vivu-primary-rgb), .18), rgba(var(--vivu-primary-rgb), .08));
background-size: 220% 100%;
animation: ownerSkeleton 1.4s ease-in-out infinite;
}

.owner-booking-card.is-loading h2 {
width: 62%;
min-height: 24px;
}

.owner-booking-card.is-loading p {
width: 86%;
}

.owner-booking-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: .85rem;
}

.owner-booking-head span {
display: block;
margin-bottom: .25rem;
color: var(--vivu-muted);
font-size: .75rem;
font-weight: 850;
}

.owner-booking-head h2 {
margin: 0;
color: var(--vivu-deep);
font-size: 1.08rem;
font-weight: 950;
line-height: 1.2;
overflow-wrap: anywhere;
}

.owner-booking-head p {
display: flex;
align-items: flex-start;
gap: .4rem;
margin: .38rem 0 0;
color: var(--vivu-muted);
font-size: .82rem;
font-weight: 700;
line-height: 1.45;
}

.owner-booking-head p i {
color: var(--vivu-primary);
}

.owner-booking-meta,
.owner-booking-detail {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: .65rem;
}

.owner-booking-meta span,
.owner-booking-detail div {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
gap: .1rem .5rem;
min-width: 0;
padding: .75rem;
border-radius: 8px;
background: var(--vivu-soft);
}

.owner-booking-detail div {
grid-template-columns: 1fr;
}

.owner-booking-meta i {
grid-row: span 2;
margin-top: .1rem;
color: var(--vivu-primary);
}

.owner-booking-meta b,
.owner-booking-detail span {
color: var(--vivu-muted);
font-size: .72rem;
font-weight: 850;
}

.owner-booking-meta strong,
.owner-booking-detail strong {
color: var(--vivu-deep);
font-size: .86rem;
font-weight: 950;
line-height: 1.25;
overflow-wrap: anywhere;
}

.owner-booking-note {
display: flex;
gap: .5rem;
margin: 0;
padding: .75rem .85rem;
border-radius: 8px;
background: rgba(var(--vivu-primary-rgb), .07);
color: var(--vivu-muted);
font-size: .82rem;
font-weight: 700;
line-height: 1.5;
}

.owner-booking-note i {
color: var(--vivu-primary);
}

.owner-booking-actions {
display: flex;
flex-wrap: wrap;
gap: .5rem;
}

@media (max-width: 991.98px) {
.user-bookings-toolbar {
grid-template-columns: 1fr;
}

.agent-booking-filters,
.owner-booking-filters {
grid-template-columns: 1fr;
}
}

@media (max-width: 575.98px) {
.user-booking-card-head {
flex-direction: column;
}

.user-booking-status {
width: fit-content;
}

.user-booking-meta {
grid-template-columns: 1fr;
}

.agent-booking-head,
.owner-booking-head {
flex-direction: column;
}

.agent-booking-meta,
.agent-booking-detail,
.agent-booking-amount-grid,
.owner-booking-meta,
.owner-booking-detail {
grid-template-columns: 1fr;
}

.agent-booking-amounts-head {
flex-direction: column;
}
}
.finance-console .finance-stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.finance-console .admin-panel{margin-top:1.25rem}.finance-row{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--bs-border-color);align-items:flex-start}.finance-row:last-child{border-bottom:0}.finance-row small,.finance-row p{display:block;color:var(--bs-secondary-color);margin:.25rem 0 0}.finance-row .text-end{display:grid;gap:.35rem;justify-items:end}.finance-withdraw .owner-feedback{margin-top:.75rem;min-height:1.5rem}@media(max-width:575.98px){.finance-row{flex-direction:column}.finance-row .text-end{justify-items:start;text-align:left!important}}
.finance-revenue-panel{overflow:hidden}.finance-revenue-table-wrap{margin-top:1rem;border:1px solid var(--vivu-border);border-radius:14px;background:var(--vivu-surface)}.finance-revenue-table{min-width:760px;margin:0;--bs-table-bg:transparent;--bs-table-color:var(--vivu-text);--bs-table-border-color:var(--vivu-border);--bs-table-hover-bg:color-mix(in srgb,var(--vivu-primary) 7%,var(--vivu-surface));--bs-table-hover-color:var(--vivu-deep)}.finance-revenue-table thead{background:var(--vivu-soft)}.finance-revenue-table thead th{padding:.85rem 1rem;border-bottom-color:var(--vivu-border);color:var(--vivu-deep);font-size:.76rem;font-weight:900;white-space:nowrap}.finance-revenue-table tbody td{padding:1rem;border-bottom-color:var(--vivu-border);color:var(--vivu-text);font-size:.86rem;vertical-align:middle}.finance-revenue-table tbody tr:last-child td{border-bottom:0}.finance-revenue-table tbody tr:hover{background:color-mix(in srgb,var(--vivu-primary) 7%,var(--vivu-surface))}.finance-revenue-table td:nth-child(2){color:var(--vivu-deep);font-weight:800}.finance-revenue-table td small{display:inline-block;max-width:220px;margin-top:.18rem;color:var(--vivu-muted);font-size:.72rem;font-weight:650;overflow-wrap:anywhere}.finance-revenue-amount{color:var(--vivu-deep)!important;font-variant-numeric:tabular-nums;white-space:nowrap}.finance-direction{display:inline-flex;gap:.4rem;align-items:center;min-height:30px;padding:.3rem .65rem;border:1px solid var(--vivu-border);border-radius:999px;font-size:.75rem;font-weight:850;white-space:nowrap}.finance-direction.is-credit{border-color:color-mix(in srgb,var(--vivu-success) 32%,var(--vivu-border));background:color-mix(in srgb,var(--vivu-success) 10%,var(--vivu-surface));color:var(--vivu-success)}.finance-direction.is-debit{border-color:color-mix(in srgb,var(--vivu-warning) 32%,var(--vivu-border));background:color-mix(in srgb,var(--vivu-warning) 10%,var(--vivu-surface));color:var(--vivu-warning)}[data-bs-theme="dark"] .finance-revenue-table-wrap{background:var(--vivu-surface)}[data-bs-theme="dark"] .finance-revenue-table thead{background:var(--vivu-soft)}[data-bs-theme="dark"] .finance-revenue-table tbody tr:hover{background:color-mix(in srgb,var(--vivu-primary) 9%,var(--vivu-surface))}@media(max-width:575.98px){.finance-revenue-panel{padding-inline:.85rem}.finance-revenue-table-wrap{margin-inline:-.85rem;border-right:0;border-left:0;border-radius:0}.finance-revenue-table thead th,.finance-revenue-table tbody td{padding-inline:.8rem}}

[data-audit-filter] {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: .75rem;
align-items: center;
}

.audit-filter-submit {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: .75rem;
align-items: center;
}

[data-audit-filter] .form-control,
[data-audit-filter] .form-select,
[data-audit-filter] .btn {
min-height: 48px;
}

@media(max-width:991.98px) {
[data-audit-filter] {
grid-template-columns: 1fr;
gap: .75rem;
}
}

@media(max-width:575.98px) {
.audit-filter-submit {
grid-template-columns: 1fr;
gap: .75rem;
}

.audit-filter-submit .btn {
width: 100%;
}
}

/* Admin observability */
.observability-header{align-items:flex-end}.observability-actions{display:flex;align-items:center;gap:.75rem}.observability-actions small{color:var(--bs-secondary-color);white-space:nowrap}.observability-actions .is-loading i{animation:observability-spin .8s linear infinite}.observability-health{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-top:1.25rem}.observability-metric{position:relative;min-height:132px;padding:1rem;border:1px solid var(--bs-border-color);border-radius:var(--vivu-radius-lg);background:var(--vivu-surface);overflow:hidden}.observability-metric::before{position:absolute;inset:0 auto 0 0;width:4px;background:var(--bs-border-color);content:""}.observability-metric.is-healthy::before{background:#139c72}.observability-metric.is-warning::before{background:#dc8b15}.observability-metric.is-danger::before{background:#dc3545}.observability-metric span,.observability-metric small{display:block;color:var(--bs-secondary-color)}.observability-metric span{font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.observability-metric strong{display:block;margin:.65rem 0 .3rem;color:var(--vivu-deep);font-size:clamp(1.3rem,2vw,1.75rem);line-height:1.1}.observability-metric small{font-size:.78rem}.observability-skeleton{min-height:132px;border-radius:var(--vivu-radius-lg);background:linear-gradient(100deg,var(--vivu-soft) 30%,var(--vivu-surface) 50%,var(--vivu-soft) 70%);background-size:220% 100%;animation:search-shimmer 1.3s linear infinite}.observability-alerts{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.observability-alerts span{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .75rem;border:1px solid rgba(220,139,21,.28);border-radius:.7rem;background:rgba(220,139,21,.1);color:var(--vivu-deep);font-size:.82rem;font-weight:750}.observability-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}.observability-console .admin-panel-head p{margin:.35rem 0 0;color:var(--bs-secondary-color);font-size:.84rem}.observability-table{margin-bottom:0}.observability-table code,.observability-error code{color:var(--vivu-primary-strong);font-size:.78rem}.observability-errors{display:grid}.observability-error{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,.5fr);gap:1rem;padding:1rem 0;border-bottom:1px solid var(--bs-border-color)}.observability-error:first-child{padding-top:0}.observability-error:last-child{padding-bottom:0;border-bottom:0}.observability-error strong{color:var(--vivu-deep)}.observability-error p{margin:.3rem 0;color:var(--bs-body-color);font-size:.9rem;overflow-wrap:anywhere}.observability-error small{color:var(--bs-secondary-color)}.observability-error dl,.observability-error dl div{margin:0}.observability-error dl{display:grid;gap:.55rem}.observability-error dl div{min-width:0}.observability-error dt{color:var(--bs-secondary-color);font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}.observability-error dd{margin:.12rem 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.observability-console .owner-empty.compact{min-height:180px;padding:2rem 1rem}
@keyframes observability-spin{to{transform:rotate(360deg)}}
@media(max-width:991.98px){.observability-health{grid-template-columns:repeat(2,minmax(0,1fr))}.observability-grid{grid-template-columns:1fr}}
@media(max-width:575.98px){.observability-header{align-items:flex-start}.observability-actions{width:100%;justify-content:space-between}.observability-health{grid-template-columns:1fr}.observability-error{grid-template-columns:1fr}.observability-metric{min-height:116px}.observability-table{min-width:520px}}
@media(prefers-reduced-motion:reduce){.observability-skeleton,.observability-actions .is-loading i{animation:none}}

/* Blog / Handbook CMS */
.article-cms-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) minmax(170px,.3fr) minmax(150px,.25fr) auto;gap:.75rem;align-items:center}.article-list-panel{margin-top:1rem}.article-list-panel .admin-panel-head p{margin:.3rem 0 0;color:var(--vivu-muted)}.article-title-cell{display:grid;gap:.2rem;min-width:230px}.article-title-cell strong{color:var(--vivu-deep)}.article-title-cell small{color:var(--vivu-muted);overflow-wrap:anywhere}.article-status{display:inline-flex;align-items:center;min-height:28px;padding:.25rem .65rem;border:1px solid var(--vivu-border);border-radius:999px;background:var(--vivu-soft);color:var(--vivu-deep);font-size:.75rem;font-weight:800;white-space:nowrap}.article-status.is-review,.article-status.is-scheduled{border-color:rgba(138,90,0,.24);background:rgba(255,193,7,.11);color:#795000}.article-status.is-published{border-color:rgba(19,116,74,.22);background:rgba(19,116,74,.1);color:#11663f}.article-status.is-archived{color:var(--vivu-muted)}.article-editor{margin-top:1rem;scroll-margin-top:1rem}.article-editor-head{align-items:flex-start;justify-content: space-between;}.article-editor-head h2{margin-top:.5rem}.article-editor-head p{margin:.25rem 0 0;color:var(--vivu-muted)}.article-editor-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:1rem;margin-top:1rem}.article-compose{display:grid;gap:1rem;min-width:0}.article-fields-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.article-content-label{display:flex;align-items:center;justify-content:space-between;gap:1rem}.article-format-tools{display:flex;gap:.25rem}.article-format-tools button{display:grid;width:36px;height:36px;padding:0;place-items:center;border:1px solid var(--vivu-border);border-radius:8px;background:var(--vivu-surface);color:var(--vivu-deep)}.article-format-tools button:hover,.article-format-tools button:focus-visible{border-color:var(--vivu-primary);background:color-mix(in srgb,var(--vivu-primary) 10%,var(--vivu-surface))}.article-content-input{min-height:390px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.85rem;line-height:1.6;resize:vertical}.article-compose small{display:block;margin-top:.35rem;color:var(--vivu-muted)}.article-compose .field-error{color:var(--vivu-error,#b02a37);font-weight:700}.article-settings{padding:1rem;border:1px solid var(--vivu-border);border-radius:16px;background:var(--vivu-soft)}.article-settings summary{cursor:pointer;color:var(--vivu-deep);font-weight:850}.article-settings[open] summary{margin-bottom:1rem}.article-preview{position:sticky;top:1rem;align-self:start;overflow:hidden;border:1px solid var(--vivu-border);border-radius:16px;background:var(--vivu-surface)}.article-preview-head{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid var(--vivu-border);background:var(--vivu-soft)}.article-preview-head span{color:var(--vivu-muted);font-size:.8rem}.article-preview iframe{display:block;width:100%;height:640px;border:0;background:#fff}.article-editor-actions{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--vivu-border)}.article-schedule{display:flex;gap:.5rem;align-items:center}.article-schedule .form-control{min-width:220px}.article-editor [hidden]{display:none!important}.article-editor [aria-invalid="true"]{border-color:#b02a37;box-shadow:0 0 0 .2rem rgba(176,42,55,.12)}
.article-news-lifecycle{padding:1rem;border:1px solid var(--vivu-border);border-radius:16px;background:var(--vivu-soft)}.article-news-lifecycle-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.article-news-lifecycle-head h3{margin:0;color:var(--vivu-deep);font-size:1rem;font-weight:900}.article-news-lifecycle-head p{max-width:62ch;margin:.3rem 0 0;color:var(--vivu-muted);font-size:.85rem}.article-fields-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.article-freshness{display:inline-flex;gap:.4rem;align-items:center;min-height:30px;padding:.3rem .65rem;border:1px solid var(--vivu-border);border-radius:999px;font-size:.75rem;font-weight:850;white-space:nowrap}.article-freshness.is-ready{border-color:rgba(19,116,74,.24);background:rgba(19,116,74,.09);color:#11663f}.article-freshness.is-warning,.article-freshness.is-incomplete{border-color:rgba(138,90,0,.25);background:rgba(255,193,7,.11);color:#795000}.article-freshness.is-expired{border-color:rgba(176,42,55,.24);background:rgba(176,42,55,.08);color:#962430}.article-news-lifecycle-help{display:flex;gap:.55rem;align-items:flex-start;margin:1rem 0 0;color:var(--vivu-text);font-size:.82rem;line-height:1.5}.article-news-lifecycle-help i{margin-top:.1rem;color:var(--vivu-primary-strong)}
[data-bs-theme="dark"] .article-freshness.is-ready{color:#82e5b7}[data-bs-theme="dark"] .article-freshness.is-warning,[data-bs-theme="dark"] .article-freshness.is-incomplete{color:#ffd478}[data-bs-theme="dark"] .article-freshness.is-expired{color:#ffadb4}
@media(max-width:1199.98px){.article-editor-layout{grid-template-columns:1fr}.article-preview{position:static}.article-preview iframe{height:480px}.article-fields-three{grid-template-columns:1fr}}
@media(max-width:767.98px){.article-cms-toolbar{grid-template-columns:1fr}.article-fields-two{grid-template-columns:1fr}.article-content-label,.article-news-lifecycle-head{align-items:flex-start;flex-direction:column}.article-editor-actions,.article-schedule{align-items:stretch;flex-direction:column}.article-editor-actions .btn,.article-schedule,.article-schedule .form-control{width:100%}.article-preview iframe{height:420px}}
@media(prefers-reduced-motion:reduce){.article-editor{scroll-behavior:auto}}

.article-editor-modal .modal-dialog {
max-width: min(1320px, calc(100vw - 2rem));
}

.article-editor-modal .modal-content.article-editor {
max-height: calc(100dvh - 2rem);
margin: 0;
padding: 0;
overflow: hidden;
scroll-margin-top: 0;
}

.article-editor-modal .modal-header {
flex: 0 0 auto;
padding: 1rem 1.25rem;
border-bottom: 1px solid var(--vivu-border);
background: var(--vivu-surface);
}

.article-editor-modal .modal-header > div {
min-width: 0;
}

.article-editor-title-row {
display: flex;
flex-wrap: wrap;
align-items: baseline;
gap: .35rem 1rem;
min-width: 0;
}

.article-editor-title-row h2,
.article-editor-title-row p {
margin-top: .5rem;
}

.article-editor-title-row h2 {
min-width: 0;
overflow-wrap: anywhere;
}

.article-editor-title-row p {
flex: 0 0 auto;
}

.article-editor-modal .modal-body {
padding: 1.25rem;
background: var(--vivu-surface);
}

.article-editor-modal .article-editor-layout {
margin-top: 0;
}

.article-editor-modal .article-editor-actions {
position: sticky;
z-index: 2;
bottom: -1.25rem;
margin-inline: -1.25rem;
padding: 1rem 1.25rem;
border-top: 1px solid var(--vivu-border);
background: var(--vivu-surface);
box-shadow: 0 -12px 28px rgba(6, 55, 79, .08);
}

.article-topbar-actions {
display: flex;
flex-wrap: wrap;
gap: .65rem;
justify-content: flex-end;
max-width: 380px;
}

.handbook-import-modal .modal-header {
align-items: flex-start;
}

.handbook-import-modal .modal-header h2 {
margin: .5rem 0 .35rem;
color: var(--vivu-deep);
font-size: 1.35rem;
font-weight: 900;
}

.handbook-import-modal .modal-header p {
max-width: 70ch;
margin: 0;
color: var(--vivu-muted);
font-size: .86rem;
line-height: 1.55;
}

.handbook-import-form {
display: grid;
gap: 1rem;
}

.handbook-import-drop {
display: grid;
min-height: 190px;
padding: 1.5rem;
place-items: center;
align-content: center;
gap: .5rem;
border: 1px dashed var(--vivu-primary);
border-radius: 16px;
background: color-mix(in srgb, var(--vivu-primary) 7%, var(--vivu-surface));
color: var(--vivu-deep);
text-align: center;
cursor: pointer;
transition: border-color .18s ease, background-color .18s ease;
}

.handbook-import-drop:hover,
.handbook-import-drop:focus-within {
border-color: var(--vivu-primary-deep);
background: color-mix(in srgb, var(--vivu-primary) 11%, var(--vivu-surface));
}

.handbook-import-drop > i {
color: var(--vivu-primary-deep);
font-size: 2rem;
}

.handbook-import-drop > span,
.handbook-import-selection {
color: var(--vivu-muted);
font-size: .82rem;
}

.handbook-import-drop input {
width: min(100%, 420px);
margin-top: .5rem;
color: var(--vivu-text);
}

.handbook-import-results {
padding: 1rem;
border: 1px solid var(--vivu-border);
border-radius: 16px;
background: var(--vivu-soft);
}

.handbook-import-results h3 {
margin: 0;
color: var(--vivu-deep);
font-size: 1rem;
font-weight: 900;
}

.handbook-import-row {
display: grid;
grid-template-columns: 24px minmax(0, 1fr) auto;
gap: .75rem;
align-items: center;
padding: .75rem 0;
border-bottom: 1px solid var(--vivu-border);
}

.handbook-import-row:last-child {
border-bottom: 0;
}

.handbook-import-row > i {
color: var(--vivu-success);
}

.handbook-import-row strong,
.handbook-import-row small {
display: block;
overflow-wrap: anywhere;
}

.handbook-import-row strong {
color: var(--vivu-deep);
font-size: .88rem;
}

.handbook-import-row small {
margin-top: .2rem;
color: var(--vivu-muted);
font-size: .75rem;
}

.handbook-import-row > span {
color: var(--vivu-primary-deep);
font-size: .72rem;
font-weight: 850;
}

.handbook-import-row.is-skipped > i,
.handbook-import-row.is-skipped > span {
color: var(--vivu-warning);
}

.handbook-import-row.is-error > i,
.handbook-import-row.is-error > span {
color: var(--vivu-error);
}

[data-bs-theme="dark"] .article-editor-modal .article-editor-actions {
box-shadow: 0 -12px 28px rgba(0, 0, 0, .22);
}

@media(max-width:767.98px){
.article-topbar-actions{width:100%;justify-content:stretch}
.article-topbar-actions .btn{flex:1 1 100%}
.article-editor-title-row{align-items:flex-start;flex-direction:column;gap:.2rem}
.article-editor-title-row p{margin-top:0}
.article-editor-modal .modal-dialog{max-width:none;margin:.5rem}
.article-editor-modal .modal-content.article-editor{max-height:calc(100dvh - 1rem)}
.article-editor-modal .modal-header{align-items:flex-start;gap:.75rem;padding:1rem}
.article-editor-modal .modal-header .btn{min-width:44px;padding-inline:.75rem}
.article-editor-modal .modal-body{padding:1rem}
.article-editor-modal .article-editor-actions{bottom:-1rem;margin-inline:-1rem;padding:1rem}
.handbook-import-row{grid-template-columns:22px minmax(0,1fr)}
.handbook-import-row>span{grid-column:2}
}

/* Admin destination media and map picker */
.owner-location-title-row{align-items:flex-start;margin-bottom:12px}.owner-location-title-row h3{margin-bottom:4px}.owner-location-title-row small,.owner-homestay-map-help,.owner-homestay-map-coordinate{margin:0;color:var(--vivu-muted);font-size:.78rem;font-weight:650;line-height:1.5}.owner-location-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.owner-homestay-map{height:min(62vh,620px);min-height:420px;margin-block:12px;overflow:hidden;border:1px solid var(--vivu-border);border-radius:var(--vivu-radius-lg);background:var(--vivu-soft)}.owner-homestay-map:focus-visible{outline:3px solid rgba(var(--bs-primary-rgb),.32);outline-offset:2px}
.admin-destination-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.admin-destination-section-head h3{margin-bottom:4px}
.admin-destination-section-head p,.admin-destination-map-help,.admin-destination-map-coordinate{margin:0;color:var(--vivu-muted);font-size:.78rem;font-weight:650;line-height:1.5}
.admin-destination-location-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.admin-destination-upload-status{margin-bottom:12px;color:var(--vivu-muted);font-size:.78rem;font-weight:750}
.admin-destination-media-section.is-invalid{border-color:var(--vivu-error,#b02a37);background:color-mix(in srgb,var(--vivu-error,#b02a37) 7%,var(--vivu-surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--vivu-error,#b02a37) 14%,transparent)}.admin-destination-media-section.is-invalid .admin-destination-upload-status{color:var(--vivu-error,#b02a37)}
.admin-destination-images{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.admin-destination-image-item{position:relative;overflow:hidden;border:1px solid var(--vivu-border);border-radius:var(--vivu-radius-md);background:var(--vivu-surface);transition:border-color .18s ease,box-shadow .18s ease}
.admin-destination-image-item.is-thumbnail{border-color:var(--vivu-primary);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb),.14)}
.admin-destination-image-item img{display:block;width:100%;aspect-ratio:16/10;background:var(--vivu-soft);object-fit:cover}
.admin-destination-image-item>div{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:8px}
.admin-destination-thumb-button{min-width:0;padding-inline:4px;color:var(--vivu-primary-strong);font-size:.72rem;font-weight:850;text-align:left}
.admin-destination-map{height:min(62vh,620px);min-height:420px;margin-block:12px;overflow:hidden;border:1px solid var(--vivu-border);border-radius:var(--vivu-radius-lg);background:var(--vivu-soft)}
.admin-destination-map:focus-visible{outline:3px solid rgba(var(--bs-primary-rgb),.32);outline-offset:2px}
@media(max-width:767.98px){.owner-location-title-row,.owner-location-actions,.admin-destination-section-head,.admin-destination-location-actions{align-items:stretch;flex-direction:column}.owner-location-actions .btn,.admin-destination-section-head .btn,.admin-destination-location-actions .btn{width:100%}.admin-destination-images{grid-template-columns:1fr}.owner-homestay-map,.admin-destination-map{height:55vh;min-height:340px}}
@media(prefers-reduced-motion:reduce){.admin-destination-image-item{transition:none}}

/* Shared sticky navbar */
.nav-glass{position:sticky!important;z-index:1020}
.nav-partner-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;white-space:nowrap}
.nav-mobile-controls{display:none;align-items:center;gap:.35rem}
.nav-user-partner-item{display:none}
@media(max-width:991.98px){
.nav-mobile-controls{display:flex;margin-left:auto}
.nav-mobile-controls .theme-btn{width:38px;min-width:38px!important;height:38px}
.nav-desktop-theme,.nav-partner-standalone{display:none!important}
.navbar>.container-xxl{flex-wrap:wrap}
.navbar .navbar-collapse{flex-basis:100%;width:100%}
.navbar .nav-actions{width:100%;min-width:0;flex-wrap:wrap}
.navbar .nav-actions:has([data-authenticated-user]) .nav-search{order:1;width:100%;flex:0 0 100%;min-height:44px}
.navbar .nav-actions:has([data-authenticated-user]) .nav-user-dropdown{order:2;width:100%}
.navbar .nav-actions:has([data-authenticated-user]) #layoutUserDropdown{width:100%;justify-content:flex-start;padding:.45rem .55rem!important}
.navbar .nav-actions:has([data-authenticated-user]) .nav-user-name{display:inline!important;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.navbar .nav-actions:has([data-authenticated-user]) .nav-user-menu{width:100%;min-width:0}
.nav-user-partner-item{display:list-item}
}
.articles-page .site,.article-detail-page .site{overflow:clip!important}
[data-bs-theme="dark"] .admin-quick-action,[data-bs-theme="dark"] .admin-health-list>div{border-color:var(--vivu-border);background:var(--vivu-soft)}
[data-bs-theme="dark"] .admin-quick-action:hover,[data-bs-theme="dark"] .admin-quick-action:focus-visible{border-color:var(--vivu-primary);background:color-mix(in srgb,var(--vivu-primary) 12%,var(--vivu-soft))}

/* Shared form surfaces */
.form-control,.form-select,.input-group-text{border-color:var(--vivu-border);background-color:var(--vivu-soft);color:var(--vivu-text)}
.form-control:hover,.form-select:hover{border-color:color-mix(in srgb,var(--vivu-primary) 42%,var(--vivu-border))}
.form-control:focus,.form-select:focus{border-color:var(--vivu-primary);background-color:var(--vivu-surface);color:var(--vivu-text);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--vivu-primary) 16%,transparent)}
.form-control:disabled,.form-select:disabled,.form-control[readonly]{border-color:var(--vivu-border);background-color:color-mix(in srgb,var(--vivu-soft) 82%,var(--vivu-surface));color:var(--vivu-muted);cursor:not-allowed;opacity:.78}
[data-bs-theme="dark"] .form-control,[data-bs-theme="dark"] .form-select,[data-bs-theme="dark"] .input-group-text{color-scheme:dark;background-color:var(--vivu-soft)}
[data-bs-theme="dark"] .form-control:focus,[data-bs-theme="dark"] .form-select:focus{background-color:color-mix(in srgb,var(--vivu-primary) 7%,var(--vivu-surface))}
[data-bs-theme="dark"] .articles-search .form-control:focus {background: transparent;box-shadow: none;}
/* Observability data table */
.observability-table{--bs-table-bg:var(--vivu-surface);--bs-table-color:var(--vivu-text);--bs-table-border-color:var(--vivu-border);background:var(--vivu-surface);color:var(--vivu-text)}
.observability-table thead th{border-bottom-color:var(--vivu-border);background:var(--vivu-soft);color:var(--vivu-deep)}
.observability-table tbody td{border-color:var(--vivu-border);background:var(--vivu-surface);color:var(--vivu-text)}
.observability-table tbody tr:hover td{background:color-mix(in srgb,var(--vivu-primary) 7%,var(--vivu-surface))}
.observability-table code{color:var(--vivu-primary-strong)}

/* Article preview without iframe */
.article-preview-document{display:block;width:100%;height:640px;overflow:auto;padding:24px;background:var(--vivu-surface);color:var(--vivu-text);font-family:Inter,system-ui,sans-serif;line-height:1.65}.article-preview-document h1{margin:0 0 20px;color:var(--vivu-deep);font-size:28px;line-height:1.2}.article-preview-document h2{margin-top:28px;color:var(--vivu-deep);font-size:21px}.article-preview-document img{max-width:100%;height:auto;border-radius:12px}.article-preview-document a{color:var(--vivu-primary-strong)}.article-preview-document p{max-width:70ch}@media(max-width:1199.98px){.article-preview-document{height:480px}}@media(max-width:767.98px){.article-preview-document{height:420px}}

/* Advertising */
.ads-campaign-filters{display:grid;grid-template-columns:repeat(2,minmax(180px,240px));gap:.75rem;margin-top:1rem}.ads-campaign-filters label{display:grid;gap:.3rem;color:var(--vivu-deep);font-size:.78rem;font-weight:800}.ads-records-empty{margin:1rem 0 0;padding:1rem;border:1px dashed var(--vivu-border);border-radius:12px;background:var(--vivu-soft);color:var(--vivu-muted);text-align:center}@media(max-width:575.98px){.ads-campaign-filters{grid-template-columns:1fr}}
.ads-image-field{display:grid;gap:.3rem;min-width:0;color:var(--vivu-deep);font-size:.78rem;font-weight:800}.ads-image-url-control{display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:.5rem}.ads-image-upload-button{width:48px;min-width:48px;height:48px;padding:0}.ads-image-field>small{color:var(--vivu-muted);font-size:.75rem;font-weight:650;line-height:1.35}
.ads-image-upload{display:grid;align-content:end;gap:.35rem;min-width:0}.ads-image-upload .btn{min-height:48px;justify-content:center}.ads-image-upload small{color:var(--vivu-muted);font-size:.75rem;line-height:1.35}.content-slot .content-slot-internal{grid-template-columns: 1fr}.content-slot-gallery{width:100%;min-width:0;overflow-x:auto;overflow-y:hidden}.content-slot-gallery[data-swiper-active="true"]{overflow:hidden}.content-slot-gallery .swiper-wrapper{display:flex;flex-wrap:nowrap}.content-slot-gallery .swiper-slide{display:block;flex:0 0 220px;width:220px}.content-slot-gallery .swiper-slide:only-child{flex-basis:100%;width:100%}.content-slot-internal .content-slot-gallery img{display:block;width:100%;height:110px;object-fit:cover}.content-slot-copy:empty{display:none}@media(max-width:767.98px){.content-slot .content-slot-internal{grid-template-columns:1fr}.content-slot-gallery .swiper-slide{flex-basis:min(78vw,280px);width:min(78vw,280px)}.content-slot-gallery .swiper-slide:only-child{flex-basis:100%;width:100%}.content-slot-internal .content-slot-gallery img{height:180px}.ads-image-upload{grid-column:auto}}
.content-slot>.content-slot-label{position:static}
.content-slot{max-width:1120px;min-height:90px;margin:1.5rem auto;padding:0 1rem}.content-slot-internal{display:grid;grid-template-columns:minmax(120px,220px) minmax(0,1fr);gap:1rem;align-items:center;padding:1rem;border:1px solid var(--vivu-border);border-radius:16px;background:var(--vivu-surface);color:var(--vivu-text);text-decoration:none}.content-slot-internal:hover,.content-slot-internal:focus-visible{border-color:var(--vivu-primary);color:var(--vivu-text)}.content-slot-internal img{width:100%;height:110px;border-radius:12px;object-fit:cover}.content-slot-internal strong,.content-slot-internal small{display:block}.content-slot-internal strong{color:var(--vivu-deep);font-size:1rem}.content-slot-internal small{margin-top:.35rem;color:var(--vivu-muted);line-height:1.5}.content-slot-label{display:block;margin-bottom:.35rem;color:var(--vivu-muted);font-size:.7rem;font-weight:750}.ads-console{--ads-gap:1rem}.ads-console .owner-main{display:grid;gap:var(--ads-gap)}.ads-analytics .admin-panel-head label{display:grid;gap:.25rem;color:var(--vivu-deep);font-size:.78rem;font-weight:800}.ads-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:1rem}.ads-form label{display:grid;gap:.3rem;color:var(--vivu-deep);font-size:.78rem;font-weight:800}.ads-form .ads-wide{grid-column:1/-1}.ads-form button{align-self:end;min-height:48px}.ads-form.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.ads-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.ads-records{display:grid;margin-top:1rem}.ads-records article{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--vivu-border)}.ads-records strong,.ads-records small{display:block}.ads-records small{margin-top:.2rem;color:var(--vivu-muted)}.ads-records button{border:0;background:transparent;color:var(--vivu-primary-strong);font-weight:800}.ads-records button[data-ads-delete]{color:#b02a37}@media(max-width:991.98px){.ads-form,.ads-grid{grid-template-columns:1fr}.ads-form .ads-wide{grid-column:auto}}@media(max-width:767.98px){.content-slot-internal{grid-template-columns:1fr}.content-slot-internal img{height:180px}.ads-form.compact{grid-template-columns:1fr}}

/* Tin tức & Cẩm nang public */
.articles-hero{background:var(--vivu-soft)!important}
.articles-page,.article-detail-page{min-height: 100dvh;padding-block: 28px;}.articles-page .site,.article-detail-page .site{overflow:hidden}.articles-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.55fr);gap:clamp(2rem,6vw,6rem);align-items:end;padding:clamp(2.5rem,6vw,6rem) clamp(1rem,3vw,3rem) clamp(2rem,4vw,4rem);background:var(--vivu-soft);color:var(--vivu-deep); margin-top: calc(-1 * var(--nav-height));}.articles-hero nav,.article-story-head nav{display:flex;align-items:center;gap:.5rem;margin-bottom:1.25rem;font-size:.82rem;font-weight:700}.articles-hero nav a,.articles-hero nav span{color:var(--vivu-primary-deep)}.articles-hero h1{max-width:12ch;margin:0;font-size:clamp(2rem,6vw,3.5rem);font-weight:950;letter-spacing:-.03em;line-height:1.02;text-wrap:balance}.articles-hero p{max-width:58ch;margin:1rem 0 0;color:var(--vivu-text);font-size:1.04rem}.articles-search label{display:block;margin-bottom:.55rem;color:var(--vivu-text);font-size:.82rem;font-weight:800}.articles-search>div{display:flex;padding:.35rem;border-radius:999px;background:#fff}.articles-search .form-control{border:0;background:transparent;color:#0b3b50}.articles-search .btn{flex:0 0 auto;border-radius:999px}.articles-sections{display:flex;gap:.35rem;padding:1rem;overflow-x:auto;border-bottom:1px solid var(--vivu-border);background:var(--vivu-surface)}.articles-sections a{padding:.45rem 1rem;border-radius:999px;color:var(--vivu-deep);font-weight:800;white-space:nowrap;text-decoration:none}.articles-sections a:hover,.articles-sections a.active,.articles-sections a:focus-visible{background:var(--vivu-soft);color:var(--vivu-primary-strong)}.articles-toolbar{display:flex;justify-content:space-between;gap:1.5rem;align-items:flex-start;padding:1.5rem 1rem 0}.articles-toolbar>div{display:grid;gap:.6rem;min-width:0}.articles-toolbar>label{display:grid;flex:0 0 170px;gap:.35rem;color:var(--vivu-deep);font-size:.78rem;font-weight:800}.articles-taxonomy{display:flex;gap:.45rem;overflow-x:auto;padding-bottom:.1rem}.articles-taxonomy button{min-height:38px;padding:.45rem .8rem;border:1px solid var(--vivu-border);border-radius:999px;background:var(--vivu-surface);color:var(--vivu-deep);font-size:.78rem;font-weight:750;white-space:nowrap}.articles-taxonomy button:hover,.articles-taxonomy button:focus-visible,.articles-taxonomy button.active{border-color:var(--vivu-primary);background:color-mix(in srgb,var(--vivu-primary) 10%,var(--vivu-surface));color:var(--vivu-primary-strong)}.articles-tags button{min-height:32px;padding:.3rem .7rem;font-size:.73rem}.articles-results-head{display:flex;justify-content:space-between;gap:1rem;align-items:end;padding:2rem 1rem 1rem}.articles-results-head h2{margin:0;color:var(--vivu-deep);font-size:1.45rem;font-weight:900}.articles-results-head span{color:var(--vivu-muted);font-weight:750}.articles-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2.5vw,2rem);padding:0 1rem 2rem}.article-public-card{display:grid;grid-template-columns:minmax(150px,.42fr) minmax(0,.58fr);overflow:hidden;border:1px solid var(--vivu-border);border-radius:18px;background:var(--vivu-surface);box-shadow:0 12px 28px rgba(6,55,79,.06)}.article-public-card.is-lead{grid-column:1/-1;grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr)}.article-public-image{display:block;min-height:250px;overflow:hidden;background:var(--vivu-soft)}.article-public-card.is-lead .article-public-image{min-height:430px}.article-public-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s cubic-bezier(.22,1,.36,1)}.article-public-card:hover .article-public-image img{transform:scale(1.025)}.article-public-copy{display:flex;min-width:0;padding:clamp(1rem,3vw,2rem);flex-direction:column}.article-public-meta,.article-public-foot{display:flex;justify-content:space-between;gap:1rem;align-items:center;color:var(--vivu-muted);font-size:.76rem;font-weight:750}.article-public-meta span{color:var(--vivu-primary-strong)}.article-public-copy h2{margin:1rem 0 .65rem;font-size:clamp(1.15rem,2vw,1.65rem);font-weight:900;line-height:1.18;text-wrap:balance}.article-public-card.is-lead h2{font-size:clamp(1.8rem,4vw,3.25rem)}.article-public-copy h2 a{color:var(--vivu-deep);text-decoration:none}.article-public-copy p{display:-webkit-box;margin:0 0 1.5rem;color:var(--vivu-text);line-height:1.65;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.article-public-foot{margin-top:auto}.article-public-foot a{color:var(--vivu-primary-strong);font-weight:850;text-decoration:none}.article-public-foot a i{transition:transform .2s ease}.article-public-foot a:hover i{transform:translateX(3px)}.article-card-skeleton{min-height:300px;border-radius:18px;background:linear-gradient(100deg,var(--vivu-soft) 30%,var(--vivu-surface) 50%,var(--vivu-soft) 70%);background-size:220% 100%;animation:search-shimmer 1.3s linear infinite}.articles-feedback{display:flex;gap:1rem;align-items:center;margin:1.5rem clamp(1rem,5vw,5rem) 0;padding:1rem;border:1px solid rgba(176,42,55,.2);border-radius:14px;background:rgba(176,42,55,.06);color:#8c2430}.articles-feedback .btn{margin-left:auto}.articles-page .search-pagination{padding:0 clamp(1rem,5vw,5rem) 3rem}.articles-page .owner-empty{margin:0 1rem 2rem}
.article-reading-progress{position:fixed;z-index:1040;top:0;right:0;left:0;height:4px;transform:scaleX(0);transform-origin:left;background:var(--vivu-primary)}.article-story{padding-bottom:clamp(3rem,7vw,6rem)}.article-story-head{max-width:930px;margin:0 auto;padding:clamp(2.5rem,7vw,6rem) 1rem 2rem;text-align:center}.article-story-head nav{justify-content:center;color:var(--vivu-muted)}.article-story-head nav a{color:var(--vivu-primary-strong);text-decoration:none}.article-story-type{display:inline-flex;padding:.45rem .8rem;border-radius:999px;background:color-mix(in srgb,var(--vivu-primary) 11%,var(--vivu-surface));color:var(--vivu-primary-strong);font-size:.78rem;font-weight:850}.article-story-head h1{margin:1.2rem 0 1rem;color:var(--vivu-deep);font-size:clamp(2.15rem,6vw,4.85rem);font-weight:950;letter-spacing:-.035em;line-height:1.04;text-wrap:balance;overflow-wrap:anywhere}.article-story-head>p{max-width:68ch;margin:0 auto;color:var(--vivu-text);font-size:1.08rem;line-height:1.7;text-wrap:pretty}.article-story-meta{display:flex;justify-content:center;gap:1rem;align-items:center;flex-wrap:wrap;margin-top:1.5rem;color:var(--vivu-muted);font-size:.82rem;font-weight:750}.article-story-meta button{padding:.4rem .65rem;border:0;border-radius:8px;background:transparent;color:var(--vivu-primary-strong);font-weight:800}.article-story-meta button:hover,.article-story-meta button:focus-visible{background:var(--vivu-soft)}.article-story-cover{max-width:1180px;margin:0 auto clamp(2rem,5vw,4rem);padding:0 clamp(1rem,3vw,2rem)}.article-story-cover img{display:block;width:100%;max-height:680px;aspect-ratio:16/8.5;object-fit:cover;border-radius:22px;background:var(--vivu-soft)}.article-story-layout{display:grid;grid-template-columns:minmax(0,74ch) minmax(220px,280px);gap:clamp(2rem,6vw,5rem);justify-content:center;padding:0 clamp(1rem,5vw,5rem)}.article-story-body{min-width:0;color:var(--vivu-text);font-size:1.03rem;line-height:1.82}.article-story-body h2,.article-story-body h3{margin:2.2rem 0 .8rem;color:var(--vivu-deep);font-weight:900;line-height:1.2;text-wrap:balance}.article-story-body h2{font-size:1.65rem}.article-story-body h3{font-size:1.3rem}.article-story-body p,.article-story-body ul,.article-story-body ol,.article-story-body blockquote{margin:0 0 1.35rem}.article-story-body img{max-width:100%;height:auto;margin:1rem 0 1.5rem;border-radius:16px}.article-story-body a{color:var(--vivu-primary-strong)}.article-story-body blockquote{padding:1rem 1.25rem;border:1px solid var(--vivu-border);border-radius:14px;background:var(--vivu-soft);color:var(--vivu-deep);font-weight:650}.article-story-body table{display:block;max-width:100%;overflow-x:auto}.article-story-aside{position:sticky;top:1rem;align-self:start;display:grid;gap:1rem}.article-story-aside>div{padding:1.25rem;border:1px solid var(--vivu-border);border-radius:16px;background:var(--vivu-surface)}.article-story-aside strong{color:var(--vivu-deep);font-size:1.05rem}.article-story-aside p{margin:.5rem 0 1rem;color:var(--vivu-muted);line-height:1.55}.article-story-aside>button{justify-self:start;border:0;background:transparent;color:var(--vivu-primary-strong);font-weight:800}
@media(max-width:991.98px){.articles-hero{grid-template-columns:1fr}.articles-grid{grid-template-columns:1fr}.article-public-card.is-lead{grid-template-columns:minmax(0,1fr) minmax(300px,.85fr)}.article-story-layout{grid-template-columns:minmax(0,74ch)}.article-story-aside{position:static;grid-template-columns:1fr auto;align-items:end}}
@media(max-width:767.98px){.articles-hero{padding-top:2.25rem}.articles-hero h1{font-size:2.65rem}.articles-search>div{display:grid;gap:.35rem}.articles-toolbar{flex-direction:column}.articles-toolbar>label{width:100%;flex-basis:auto}.article-public-card,.article-public-card.is-lead{grid-template-columns:1fr}.article-public-image,.article-public-card.is-lead .article-public-image{min-height:230px;max-height:330px}.article-public-card.is-lead h2{font-size:1.65rem}.article-story-head{text-align:left}.article-story-head nav,.article-story-meta{justify-content:flex-start}.article-story-cover img{aspect-ratio:4/3;border-radius:16px}.article-story-aside{grid-template-columns:1fr}.article-story-body{font-size:1rem}}
@media(prefers-reduced-motion:reduce){.article-card-skeleton{animation:none}.article-public-image img,.article-public-foot a i{transition:none}.article-public-card:hover .article-public-image img,.article-public-foot a:hover i{transform:none}}

.article-taxonomy-panel{margin-top:1rem}.article-taxonomy-panel>summary{cursor:pointer;color:var(--vivu-deep);font-weight:850}.article-taxonomy-panel[open]>summary{padding-bottom:1rem;border-bottom:1px solid var(--vivu-border)}.article-taxonomy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;padding-top:1rem}.article-taxonomy-grid h2{font-size:1rem}.article-taxonomy-grid form{display:flex;gap:.5rem;align-items:end;flex-wrap:wrap}.article-taxonomy-grid form label{display:grid;flex:1 1 150px;gap:.3rem;color:var(--vivu-deep);font-size:.76rem;font-weight:800}.article-taxonomy-list{display:grid;margin-top:1rem}.article-taxonomy-list>div{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.65rem 0;border-bottom:1px solid var(--vivu-border)}.article-taxonomy-list>div>span{display:flex;gap:.5rem;align-items:center}.article-taxonomy-list small{color:var(--vivu-muted)}.article-taxonomy-list button{border:0;background:transparent;color:var(--vivu-primary-strong);font-size:.78rem;font-weight:800}.article-taxonomy-list button[data-taxonomy-delete]{color:#b02a37}@media(max-width:767.98px){.article-taxonomy-grid{grid-template-columns:1fr}.article-taxonomy-list>div{align-items:flex-start;flex-direction:column}}
.observability-health{grid-template-columns:repeat(auto-fit,minmax(292px,1fr))}

/* Search map discovery */
.search-map-layout{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:1rem;align-items:start}.search-map-layout.is-loading{cursor:progress}.search-map-layout.is-loading .search-map-cards{opacity:.55}.search-map-panel{min-width:0;max-height:calc(100vh - 6rem);overflow:hidden;border:1px solid var(--vivu-border);border-radius:var(--vivu-radius-lg);background:var(--vivu-surface)}.search-map-panel-head{display:flex;justify-content:space-between;gap:.75rem;align-items:center;padding:1rem;border-bottom:1px solid var(--vivu-border)}.search-map-panel-head strong{color:var(--vivu-deep)}.search-map-panel-head span{color:var(--vivu-muted);font-size:.76rem;font-weight:750}.search-map-coordinate-note{margin:0;padding:.75rem 1rem;border-bottom:1px solid var(--vivu-border);background:color-mix(in srgb,var(--vivu-primary) 8%,var(--vivu-surface));color:var(--vivu-text);font-size:.76rem;line-height:1.45}.search-map-cards{display:grid;gap:.75rem;max-height:calc(100vh - 10rem);padding:.75rem;overflow-y:auto;transition:opacity .2s ease}.search-map-card{border-radius:14px}.search-map-card .search-card-body{padding:.8rem}.search-map-card .search-card-media{aspect-ratio:16/8}.search-map-card .search-card-address,.search-map-card .search-card-amenities{display:none}.search-map-card .search-card-footer{margin-top:.55rem;padding-top:.55rem}.search-map-card.is-map-active{border-color:var(--vivu-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--vivu-primary) 16%,transparent);transform:translateY(-2px)}.search-map-sticky{position:sticky;top:4.5rem;min-width:0}.search-map-sticky .search-map{height:calc(100vh - 7rem);min-height:540px;touch-action:none}.search-map-gesture{margin:.5rem 0 0;color:var(--vivu-muted);font-size:.72rem;text-align:center}.search-map-price-wrap{width:auto!important;height:auto!important;border:0!important;background:transparent!important}.search-map-price{display:block;padding:.38rem .58rem;border:2px solid #fff;border-radius:999px;background:var(--vivu-deep);box-shadow:0 4px 14px rgba(6,55,79,.28);color:var(--vivu-soft);font-size:.7rem;font-weight:300;white-space:nowrap;transform:translate(-50%,-50%);transition:background .15s ease,transform .15s ease}.search-map-price-wrap.is-map-active .search-map-price{background:var(--vivu-primary-strong);transform:translate(-50%,-50%) scale(1.08)}.search-map-layout .marker-cluster div{background:var(--vivu-primary-strong);color:#fff;font-weight:850}.search-map-layout .marker-cluster-small,.search-map-layout .marker-cluster-medium,.search-map-layout .marker-cluster-large{background:color-mix(in srgb,var(--vivu-primary) 28%,transparent)}@media(max-width:1199.98px){.search-map-layout{grid-template-columns:minmax(230px,285px) minmax(0,1fr)}}@media(max-width:767.98px){.search-map-layout{grid-template-columns:1fr}.search-map-sticky{position:sticky;top:4rem;grid-row:1}.search-map-sticky .search-map{height:62vh;min-height:420px}.search-map-panel{max-height:none}.search-map-cards{max-height:none;grid-template-columns:1fr}.search-map-gesture{padding-inline:.5rem}.search-map-card .search-card-media{aspect-ratio:16/9}}@media(prefers-reduced-motion:reduce){.search-map-cards,.search-map-price,.search-map-card.is-map-active{transition:none}}

/* Search map panel follows the desktop filters */
.search-sidebar-column{align-self:start;position:sticky;top:4.5rem;gap:1.25rem;min-width:0}.search-sidebar-column .search-filters{position:static}.search-sidebar-column .search-map-panel{margin:0}.search-map-layout{grid-template-columns:minmax(0,1fr)}@media(max-width:1199.98px){.search-map-layout{grid-template-columns:minmax(0,1fr)}}
.search-map-panel-empty{display:grid;justify-items:center;gap:.4rem;padding:1.5rem .85rem;color:var(--vivu-muted);text-align:center}.search-map-panel-empty i{color:var(--vivu-primary);font-size:1.5rem}.search-map-panel-empty strong{color:var(--vivu-deep);font-size:.86rem}.search-map-panel-empty span{font-size:.75rem;line-height:1.45}.search-map-territory-wrap{width:auto!important;height:auto!important;border:0!important;background:transparent!important}.search-map-territory{display:block;padding:0;border:0;background:transparent;color:#334b55;font-size:.68rem;font-weight:650;line-height:1;letter-spacing:.01em;white-space:nowrap;text-shadow:0 1px 1px rgba(255,255,255,.95),1px 0 1px rgba(255,255,255,.9),-1px 0 1px rgba(255,255,255,.9);transform:translate(-50%,-50%);pointer-events:none}
.search-map-price.is-contact{display:grid;width:2.25rem;height:2.25rem;padding:0;place-items:center}.search-map-price.is-contact i{font-size:1rem;line-height:1}

/* Article CMS EasyMDE and featured image upload */
.article-editor-mode{color:var(--vivu-muted);font-size:.78rem;font-weight:800}.article-featured-upload{display:grid;gap:.35rem}.article-featured-upload>div{display:grid;grid-template-columns:minmax(0,1fr) 80px;gap:.5rem}.article-featured-upload .btn{display:grid;width:48px;height:48px;padding:0;place-items:center}.article-featured-upload>small{color:var(--vivu-muted);font-size:.75rem}.article-editor .EasyMDEContainer{color:var(--vivu-text)}.article-editor .EasyMDEContainer .CodeMirror{min-height:360px;border-color:var(--vivu-border);border-radius: 0 0 12px 12px;background:var(--vivu-surface);color:var(--vivu-text)}.article-editor .editor-toolbar{border-color:var(--vivu-border);border-radius:12px 12px 0 0;background:var(--vivu-soft)}.article-editor .editor-toolbar button{color:var(--vivu-deep);max-width: 36px;}.article-editor .editor-toolbar button:hover,.article-editor .editor-toolbar button.active{border-color:var(--vivu-primary);background:color-mix(in srgb,var(--vivu-primary) 10%,var(--vivu-surface))}.article-editor .editor-preview,.article-editor .editor-preview-side{background:var(--vivu-surface);color:var(--vivu-text)}.article-title-cell .bi-pin-angle-fill{color:var(--vivu-primary-strong)}
.article-fields-two>div {
    display: grid;
    grid-template-columns: 1fr;
    gap: .5rem;
    align-content: start;
}
.article-fields-two>div>input {
    min-height: 48px;
}

/* Public guide reader */
.guide-detail-page{min-height:100dvh;padding-block:28px}.guide-shell{display:grid;grid-template-columns:minmax(230px,300px) minmax(0,820px);gap:clamp(2rem,5vw,5rem);justify-content:center;padding:clamp(2.5rem,6vw,5.5rem) clamp(1rem,4vw,4rem) clamp(4rem,8vw,7rem)}.guide-directory{position:sticky;top:calc(var(--nav-height) + 2rem);align-self:start;max-height:calc(100dvh - var(--nav-height) - 4rem)}.guide-directory details{overflow:hidden;border:1px solid var(--vivu-border);border-radius:18px;background:var(--vivu-surface);box-shadow:0 14px 35px rgba(6,55,79,.07)}.guide-directory summary{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 1.1rem;color:var(--vivu-deep);font-size:.84rem;font-weight:900;list-style:none;cursor:pointer}.guide-directory summary::-webkit-details-marker{display:none}.guide-directory summary span{display:flex;gap:.55rem;align-items:center}.guide-directory details[open] summary{border-bottom:1px solid var(--vivu-border)}.guide-directory details[open] summary>i{transform:rotate(180deg)}.guide-directory nav{max-height:calc(100dvh - var(--nav-height) - 9rem);overflow-y:auto;padding:.55rem}.guide-directory ol{display:grid;gap:.2rem;margin:0;padding:0;list-style:none}.guide-directory a{display:grid;grid-template-columns:1.65rem minmax(0,1fr);gap:.55rem;align-items:start;padding:.7rem;border-radius:12px;color:var(--vivu-text);font-size:.8rem;font-weight:750;line-height:1.4;text-decoration:none}.guide-directory a>span:first-child{display:grid;width:1.5rem;height:1.5rem;border-radius:7px;background:var(--vivu-soft);color:var(--vivu-muted);font-size:.68rem;place-items:center}.guide-directory a:hover,.guide-directory a:focus-visible{background:var(--vivu-soft);color:var(--vivu-primary-strong)}.guide-directory a.active{background:color-mix(in srgb,var(--vivu-primary) 11%,var(--vivu-surface));color:var(--vivu-primary-strong)}.guide-directory a.active>span:first-child{background:var(--vivu-primary-strong);color:#fff}.guide-article{min-width:0}.guide-breadcrumb{display:flex;gap:.5rem;align-items:center;margin-bottom:1.25rem;color:var(--vivu-muted);font-size:.8rem;font-weight:750}.guide-breadcrumb a{color:var(--vivu-primary-strong);text-decoration:none}.guide-article-head h1{margin:1rem 0 .8rem;color:var(--vivu-deep);font-size:clamp(2rem,5vw,3.65rem);font-weight:950;letter-spacing:-.035em;line-height:1.05;text-wrap:balance;overflow-wrap:anywhere}.guide-article-head>p{max-width:65ch;margin:0;color:var(--vivu-text);font-size:1.05rem;line-height:1.7}.guide-article-head .article-story-meta{justify-content:flex-start}.guide-cover{margin:2rem 0}.guide-cover img{display:block;width:100%;max-height:520px;aspect-ratio:16/9;border-radius:20px;background:var(--vivu-soft);object-fit:cover}.guide-scroll-top{display:inline-flex;gap:.45rem;align-items:center;margin-top:2rem;padding:.55rem .8rem;border:0;border-radius:10px;background:var(--vivu-soft);color:var(--vivu-primary-strong);font-weight:850}.guide-scroll-top:hover,.guide-scroll-top:focus-visible{background:color-mix(in srgb,var(--vivu-primary) 14%,var(--vivu-surface))}
@media(max-width:991.98px){.guide-shell{grid-template-columns:1fr;gap:1.5rem;padding-top:2rem}.guide-directory{position:static;max-height:none}.guide-directory nav{max-height:320px}.guide-article{max-width:74ch;margin-inline:auto}.guide-directory{width:100%;max-width:74ch;margin-inline:auto}}
@media(max-width:767.98px){.guide-detail-page{padding-block:12px}.guide-shell{padding-inline:.8rem;padding-bottom:3rem}.guide-directory nav{max-height:260px}.guide-article-head h1{font-size:2.2rem}.guide-cover{margin:1.5rem 0}.guide-cover img{aspect-ratio:4/3;border-radius:15px}.guide-article .article-story-body{font-size:1rem}}
@media(prefers-reduced-motion:reduce){.guide-directory summary>i{transition:none}}
/* Home travel handbook */
.home-handbook{position:relative}.home-handbook-head{display:flex;justify-content:space-between;gap:2rem;align-items:end;margin-bottom:1.5rem}.home-handbook-head>div{max-width:680px}.home-handbook-head .section-desc{margin:.75rem 0 0}.home-handbook-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.home-handbook-card{display:flex;min-width:0;overflow:hidden;border:1px solid var(--vivu-border);border-radius:18px;background:var(--vivu-surface);box-shadow:0 12px 28px rgba(6,55,79,.06);flex-direction:column}.home-handbook-image{display:block;overflow:hidden;aspect-ratio:16/10;background:var(--vivu-soft)}.home-handbook-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s cubic-bezier(.22,1,.36,1)}.home-handbook-card:hover .home-handbook-image img{transform:scale(1.025)}.home-handbook-copy{display:flex;min-height:220px;padding:1.15rem;flex-direction:column}.home-handbook-meta{display:flex;justify-content:space-between;gap:1rem;color:var(--vivu-muted);font-size:.74rem;font-weight:750}.home-handbook-meta span{color:var(--vivu-primary-strong)}.home-handbook-copy h3{margin:.75rem 0 .55rem;font-size:1.12rem;font-weight:900;line-height:1.25}.home-handbook-copy h3 a{color:var(--vivu-deep);text-decoration:none}.home-handbook-copy p{display:-webkit-box;margin:0 0 1rem;color:var(--vivu-text);font-size:.9rem;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.home-handbook-read{margin-top:auto;color:var(--vivu-primary-strong);font-size:.82rem;font-weight:850;text-decoration:none}.home-handbook-read i{transition:transform .2s ease}.home-handbook-read:hover i{transform:translateX(3px)}.home-handbook-skeleton{min-height:410px;border-radius:18px;background:linear-gradient(100deg,var(--vivu-soft) 30%,var(--vivu-surface) 50%,var(--vivu-soft) 70%);background-size:220% 100%;animation:search-shimmer 1.3s linear infinite}.home-handbook-empty{padding:2rem;border:1px dashed var(--vivu-border);border-radius:18px;background:var(--vivu-soft);color:var(--vivu-muted);text-align:center}.home-handbook-empty i{display:block;margin-bottom:.5rem;color:var(--vivu-primary);font-size:1.8rem}.home-handbook-empty p{margin:0 0 .35rem}.home-handbook-empty a{color:var(--vivu-primary-strong);font-weight:800}@media(max-width:991.98px){.home-handbook-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-handbook-card:last-child{display:none}}@media(max-width:767.98px){.home-handbook-head{align-items:flex-start;flex-direction:column}.home-handbook-head .btn{width:100%}.home-handbook-grid{grid-template-columns:1fr}.home-handbook-card:last-child{display:flex}.home-handbook-copy{min-height:0}.home-handbook-skeleton{min-height:360px}}@media(prefers-reduced-motion:reduce){.home-handbook-skeleton{animation:none}.home-handbook-image img,.home-handbook-read i{transition:none}.home-handbook-card:hover .home-handbook-image img,.home-handbook-read:hover i{transform:none}}

/* Public destination detail */
.destination-detail-shell{padding:24px 32px 64px}.destination-detail-breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:18px;color:var(--vivu-muted);font-size:.82rem;font-weight:750}.destination-detail-breadcrumb a{color:var(--vivu-primary-strong);text-decoration:none}.destination-detail-breadcrumb i{font-size:.68rem}.destination-detail-hero{position:relative;isolation:isolate;min-height:440px;overflow:hidden;border-radius:22px;background:var(--vivu-soft)}.destination-detail-hero>img{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover}.destination-detail-hero::after{position:absolute;z-index:-1;inset:0;content:"";background:linear-gradient(180deg,rgba(6,55,79,.04) 28%,rgba(6,55,79,.86) 100%)}.destination-detail-hero-copy{position:absolute;right:clamp(20px,5vw,64px);bottom:clamp(24px,5vw,56px);left:clamp(20px,5vw,64px);max-width:720px;color:#fff}.destination-detail-hero-copy p{display:flex;align-items:center;gap:7px;margin:0 0 9px;font-size:.88rem;font-weight:850}.destination-detail-hero-copy h1{margin:0 0 10px;font-size:clamp(2.3rem,5vw,4.5rem);font-weight:950;line-height:1.02;text-wrap:balance}.destination-detail-hero-copy span{font-size:1rem;font-weight:650}.destination-detail-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:40px;margin-top:40px}.destination-detail-main{display:grid;gap:48px;min-width:0}.destination-detail-description h2,.destination-detail-section-head h2{margin:0;color:var(--vivu-deep);font-size:1.45rem;font-weight:950;text-wrap:balance}.destination-detail-prose{max-width:72ch;margin-top:18px;color:var(--vivu-text);font-size:.95rem;line-height:1.75}.destination-detail-prose>:last-child{margin-bottom:0}.destination-detail-prose h1,.destination-detail-prose h2,.destination-detail-prose h3{margin:1.6em 0 .6em;color:var(--vivu-deep);font-size:1.15rem;font-weight:900}.destination-detail-prose img{max-width:100%;height:auto;border-radius:16px}.destination-detail-prose a{color:var(--vivu-primary-strong)}.destination-detail-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.destination-detail-section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.destination-detail-section-head p{margin:5px 0 0;color:var(--vivu-muted);font-size:.84rem}.destination-detail-section-head>a{flex:0 0 auto;color:var(--vivu-primary-strong);font-size:.84rem;font-weight:850;text-decoration:none}.destination-stays-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.destination-stays-loading{grid-template-columns:repeat(2,minmax(0,1fr))}.destination-stays-empty,.destination-stays-error{padding:40px 20px}.destination-detail-gallery{align-self:start;position:sticky;top:88px}.destination-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.destination-gallery-grid a{display:block;min-width:0;overflow:hidden;border-radius:16px;background:var(--vivu-soft);aspect-ratio:1}.destination-gallery-grid a:first-child{grid-column:1/-1;aspect-ratio:16/11}.destination-gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.destination-gallery-grid a:hover img{transform:scale(1.025)}
@media(max-width:991.98px){.destination-detail-layout{grid-template-columns:1fr}.destination-detail-gallery{position:static}.destination-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.destination-gallery-grid a:first-child{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}.destination-stays-grid,.destination-stays-loading{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){.destination-detail-shell{padding:16px 14px 48px}.destination-detail-hero{min-height:390px;border-radius:18px}.destination-detail-hero-copy h1{font-size:2.5rem}.destination-detail-layout{gap:36px;margin-top:30px}.destination-detail-main{gap:40px}.destination-stays-grid,.destination-stays-loading{grid-template-columns:1fr}.destination-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.destination-gallery-grid a:first-child{grid-column:1/-1;grid-row:auto;aspect-ratio:16/11}.destination-detail-section-head{align-items:start}.destination-detail-actions .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.destination-gallery-grid img{transition:none}.destination-gallery-grid a:hover img{transform:none}}

/* Public destinations index */
.destinations-shell{padding:clamp(28px,5vw,64px) 32px 72px}.destinations-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.destinations-heading>div{max-width:700px}.destinations-heading h1{margin:0;color:var(--vivu-deep);font-size:clamp(2.25rem,5vw,4.3rem);font-weight:950;line-height:1.03;text-wrap:balance}.destinations-heading p{max-width:75ch;margin:14px 0 0;color:var(--vivu-text);font-size:1rem;line-height:1.65}.destinations-command{display:grid;grid-template-columns:minmax(240px,1fr) auto auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--vivu-border);border-radius:20px;background:var(--vivu-surface);box-shadow:0 14px 38px color-mix(in srgb,var(--vivu-deep) 7%,transparent)}.destinations-command>label{display:flex;align-items:center;min-width:0;padding-left:14px;border-radius:14px;background:var(--vivu-soft)}.destinations-command>label i{color:var(--vivu-primary-strong)}.destinations-command input{min-width:0;border:0;background:transparent;box-shadow:none}.destinations-type-filter{display:flex;gap:4px;padding:4px;border-radius:14px;background:var(--vivu-soft)}.destinations-type-filter button{min-height:40px;padding:8px 12px;border:0;border-radius:10px;background:transparent;color:var(--vivu-muted);font-size:.78rem;font-weight:850;white-space:nowrap}.destinations-type-filter button:hover,.destinations-type-filter button:focus-visible{color:var(--vivu-primary-strong)}.destinations-type-filter button.active{background:var(--vivu-surface);color:var(--vivu-primary-strong);box-shadow:0 4px 14px color-mix(in srgb,var(--vivu-deep) 8%,transparent)}.destinations-summary{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin:32px 0 16px}.destinations-summary h2{margin:0;color:var(--vivu-deep);font-size:1.2rem;font-weight:950}.destinations-summary p{margin:0;color:var(--vivu-muted);font-size:.82rem}.destinations-grid,.destinations-loading{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.destinations-loading>div{min-height:390px;border-radius:20px;background:linear-gradient(100deg,var(--vivu-soft) 30%,var(--vivu-surface) 50%,var(--vivu-soft) 70%);background-size:220% 100%;animation:search-shimmer 1.3s linear infinite}.destinations-card{display:flex;min-width:0;overflow:hidden;border:1px solid var(--vivu-border);border-radius:20px;background:var(--vivu-surface);box-shadow:0 14px 34px color-mix(in srgb,var(--vivu-deep) 6%,transparent);flex-direction:column}.destinations-card-media{position:relative;display:block;overflow:hidden;aspect-ratio:16/11;background:var(--vivu-soft)}.destinations-card-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s cubic-bezier(.22,1,.36,1)}.destinations-card:hover .destinations-card-media img{transform:scale(1.025)}.destinations-card-media span{position:absolute;top:12px;left:12px;padding:6px 10px;border-radius:999px;background:var(--vivu-surface);color:var(--vivu-primary-strong);font-size:.7rem;font-weight:900}.destinations-card-copy{display:flex;min-height:224px;padding:18px;flex-direction:column}.destinations-card-copy>p{margin:0;color:var(--vivu-primary-strong);font-size:.75rem;font-weight:800}.destinations-card-copy h2{margin:7px 0 9px;font-size:1.3rem;font-weight:950;line-height:1.18}.destinations-card-copy h2 a{color:var(--vivu-deep);text-decoration:none}.destinations-card-copy>div{display:-webkit-box;margin:0 0 18px;color:var(--vivu-text);font-size:.86rem;line-height:1.6;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.destinations-card-link{display:inline-flex;gap:6px;align-items:center;margin-top:auto;color:var(--vivu-primary-strong);font-size:.82rem;font-weight:900;text-decoration:none}.destinations-pagination{margin-top:30px}.destinations-empty,.destinations-error{margin-top:18px;padding:52px 20px}
@media(max-width:1099.98px){.destinations-command{grid-template-columns:1fr auto}.destinations-type-filter{grid-column:1/-1;grid-row:2}.destinations-grid,.destinations-loading{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){.destinations-shell{padding:28px 14px 52px}.destinations-heading{align-items:flex-start;flex-direction:column}.destinations-heading h1{font-size:2.5rem}.destinations-heading .btn{width:100%}.destinations-command{grid-template-columns:1fr}.destinations-type-filter{grid-column:auto;grid-row:auto;overflow-x:auto}.destinations-command>.btn{width:100%}.destinations-summary{align-items:flex-start;flex-direction:column;gap:5px}.destinations-grid,.destinations-loading{grid-template-columns:1fr}.destinations-card-copy{min-height:0}}
@media(prefers-reduced-motion:reduce){.destinations-loading>div{animation:none}.destinations-card-media img{transition:none}.destinations-card:hover .destinations-card-media img{transform:none}}
/* Privacy policy: readable public document using the shared theme. */
.privacy-shell{padding:clamp(28px,5vw,64px) 32px 64px;color:var(--vivu-text)}
.privacy-heading{max-width:90ch;margin-bottom:36px}
.privacy-heading-nav{display:flex;align-items:center;justify-content:start;gap:8px 16px;margin-bottom:24px}
.privacy-heading-nav .search-back{display:inline-flex;align-items:center;gap:4px;min-height:44px;flex-shrink:0}
.privacy-eyebrow{margin:0;color:var(--vivu-primary-strong);font-weight:750;line-height:1.5;text-align:right}
.privacy-heading h1{color:var(--vivu-deep);font-size:clamp(2rem,4vw,3.5rem);font-weight:850;line-height:1.15;text-wrap:balance}
.privacy-heading>p{line-height:1.7}
.privacy-updated{margin:0 0 8px;font-size:.875rem;color: var(--bs-secondary-color) !important;}
.privacy-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:clamp(12px,4vw,40px);align-items:start}
.privacy-toc{padding:20px;border:1px solid var(--vivu-border);border-radius:16px;background:var(--vivu-soft)}
.privacy-toc h2{font-size:1rem;color:var(--vivu-deep);font-weight:800;margin:0 0 12px}
.privacy-toc ol{padding-left:20px;margin:0}
.privacy-toc li{padding:5px 0;line-height:1.5}
.privacy-shell a{color:var(--vivu-primary-strong);text-underline-offset:3px}
.privacy-shell a:focus-visible{outline:2px solid var(--vivu-primary-strong);outline-offset:4px;border-radius:2px}
.privacy-content{max-width:95ch;min-width:0;line-height:1.8;overflow-wrap:anywhere}
.privacy-content section{scroll-margin-top:100px;margin-bottom:32px}
.privacy-content section+section{padding-top:28px;border-top:1px solid var(--vivu-border)}
.privacy-content h2{margin:0 0 16px;color:var(--vivu-deep);font-size:1.35rem;font-weight:800;line-height:1.4}
.privacy-content li{margin-bottom:10px}
.privacy-content ul{padding-left:22px}
.privacy-note{padding:18px 20px;border-left:3px solid var(--vivu-primary-strong);background:var(--vivu-soft);border-radius:0 12px 12px 0}
.privacy-note strong{color:var(--vivu-deep)}
.privacy-note p{margin:6px 0 0}
@media(max-width:991.98px){.privacy-layout{grid-template-columns:1fr}.privacy-toc{max-width:75ch}}
@media(max-width:575.98px){.privacy-shell{padding:28px 16px 40px}.privacy-heading{margin-bottom:24px}.privacy-content h2{font-size:1.2rem}}
/* Admin user details and linked Telegram action. */
.admin-user-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0}
.admin-user-detail-grid>div{min-width:0;padding:12px 14px;border:1px solid var(--vivu-border);border-radius:12px;background:var(--vivu-soft)}
.admin-user-detail-grid .admin-user-detail-wide{grid-column:1/-1}
.admin-user-detail-grid dt{margin-bottom:4px;color:var(--vivu-muted);font-size:.78rem;font-weight:750}
.admin-user-detail-grid dd{margin:0;color:var(--vivu-deep);font-weight:700;overflow-wrap:anywhere}
.admin-user-telegram-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.admin-user-telegram-head h3{margin-bottom:4px}
.admin-user-telegram-head p{margin:0;color:var(--vivu-muted);font-size:.875rem}
.admin-user-telegram-head>i{color:var(--vivu-primary-strong);font-size:1.5rem}
@media(max-width:575.98px){.admin-user-detail-grid{grid-template-columns:1fr}.admin-user-detail-grid .admin-user-detail-wide{grid-column:auto}}
.admin-user-row-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.5rem}
