/* Shared responsive and iOS compatibility fixes for all interactive pages. */
body.role-admin .owner-staff-sidebar {
  background: radial-gradient(ellipse at 0 100%, #a0192855, transparent 40%), linear-gradient(140deg, #10171b, #0c1014) !important;
}
@media(max-width:720px){.admin-app-sidebar.mobile-open nav a [data-admin-message-count]{display:flex}}

body.role-client .dashboard-shell > aside.portal-restored-sidebar {
  background: radial-gradient(ellipse at 0 100%, #a0192855, transparent 40%), linear-gradient(140deg, #10171b, #0c1014) !important;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: max(1rem, env(safe-area-inset-top, 0px));
}

body {
  min-height: 100vh;
  min-height: 100svh;
  overflow-wrap: anywhere;
}

/* Let nested grid panels shrink before their content is scrolled locally. */
.admin-app-shell *,
.owner-management-dashboard *,
.dashboard-shell * {
  min-width: 0;
}

:is(.admin-app-main, .owner-staff-content, .dashboard-main, .boarder-page-main) :is(.table-wrap, .admin-table-wrap, .payments-table-wrap, .current-boarders-table-wrap, .report-table-scroll, .boarder-page-table-wrap, .boarder-history-scroll) {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

:is(.admin-app-main, .owner-staff-content, .dashboard-main, .boarder-page-main) :is(.table-wrap, .admin-table-wrap, .payments-table-wrap, .current-boarders-table-wrap, .report-table-scroll, .boarder-page-table-wrap, .boarder-history-scroll) > table {
  min-width: max-content;
}

:is(.admin-account-modal, .owner-room-form-modal, .boarder-account-modal, [role="dialog"]) {
  max-width: 100vw;
  max-height: 100dvh;
}

:is(.admin-account-panel, .owner-room-form-panel, .boarder-account-panel, [role="dialog"] > section) {
  max-width: min(95vw, 48rem);
  max-height: 90dvh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

img,
video,
iframe,
canvas,
svg {
  max-width: 100%;
}

input,
select,
textarea,
button {
  font: inherit;
}

input,
select,
textarea {
  max-width: 100%;
}

button,
[role="button"],
input[type="button"],
input[type="submit"],
input[type="reset"] {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

@supports (height: 100dvh) {
  .admin-app-shell,
  .admin-dashboard-page,
  .role-client.dashboard-page,
  .role-client.dashboard-page .dashboard-shell,
  .role-admin .owner-management-dashboard,
  .role-admin .owner-available-shell {
    min-height: 100dvh;
  }
}

@media (max-width: 1023px) {
  :is(.admin-app-main, .owner-staff-content, .dashboard-main, .boarder-page-main) :is(.admin-metric-grid, .owner-dashboard-stats, .portal-stats, .reports-summary, .reports-charts, .reports-bottom, .portal-main-grid, .portal-bottom-grid) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  :is(.admin-app-main, .owner-staff-content, .dashboard-main, .boarder-page-main) :is(.admin-room-workspace, .admin-account-workspace, .owner-admin-workspace) {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 767px) {
  .responsive-auth-header {
    padding-left: max(10px, env(safe-area-inset-left, 0px));
    padding-right: max(10px, env(safe-area-inset-right, 0px));
  }

  .responsive-auth-header .home-header-actions {
    flex-shrink: 1;
    gap: 4px;
    margin-right: 10px;
  }

  .responsive-auth-header .user-auth {
    gap: 4px;
  }

  .responsive-auth-header .user-auth button {
    padding-inline: 7px !important;
    font-size: 13px !important;
    min-height: 44px;
  }

  .role-admin .reports-metrics,
  .role-client .portal-booking-content {
    grid-template-columns: minmax(0, 1fr);
  }

  .role-client .portal-booking-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
    overflow-x: clip;
  }

  :is(.admin-app-main, .owner-staff-content, .dashboard-main, .boarder-page-main) :is(.admin-metric-grid, .owner-dashboard-stats, .portal-stats, .reports-summary, .reports-charts, .reports-bottom, .portal-main-grid, .portal-bottom-grid) {
    grid-template-columns: minmax(0, 1fr);
  }

  :is(.admin-app-main, .owner-staff-content, .dashboard-main, .boarder-page-main) :is(.admin-app-topbar, .payments-panel-heading, .report-card > header, .portal-heading) {
    flex-wrap: wrap;
  }

  :is(.admin-app-main, .owner-staff-content, .dashboard-main, .boarder-page-main) :is(.admin-app-topbar, .payments-panel-heading) > * {
    max-width: 100%;
  }

  :is(.admin-account-panel, .owner-room-form-panel, .boarder-account-panel, [role="dialog"] > section) {
    width: 95vw;
    max-width: 95vw;
    max-height: calc(100dvh - 2rem - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
    padding: clamp(1rem, 4vw, 1.5rem);
  }

  :is(.admin-app-main, .owner-staff-content, .dashboard-main, .boarder-page-main) :is(.property-card, .room-card, .owner-room-card, .portal-card) img {
    width: 100%;
    object-fit: cover;
  }

  .admin-dashboard-page .admin-app-shell,
  .role-client.dashboard-page .dashboard-shell,
  .role-admin .owner-management-dashboard,
  .role-admin .owner-available-shell {
    width: 100%;
    min-width: 0;
  }

  .admin-dashboard-page .admin-app-sidebar,
  .role-client .dashboard-shell > .portal-restored-sidebar,
  .role-client:not([data-dashboard-page="dashboard"]) .dashboard-sidebar,
  .role-admin .owner-management-dashboard > .owner-staff-sidebar {
    box-sizing: border-box;
    height: 100vh;
    height: 100dvh;
    padding-bottom: max(1rem, env(safe-area-inset-bottom, 0px));
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .admin-dashboard-page .admin-app-main,
  .role-admin .owner-staff-content,
  .role-client .dashboard-main,
  .role-client .boarder-page-main {
    min-width: 0;
    max-width: 100%;
    padding-left: max(14px, env(safe-area-inset-left, 0px));
    padding-right: max(14px, env(safe-area-inset-right, 0px));
    padding-bottom: max(28px, env(safe-area-inset-bottom, 0px));
  }

  .admin-dashboard-page .admin-mobile-menu-toggle,
  .role-admin .portal-mobile-menu-toggle,
  .role-client .portal-mobile-menu-toggle {
    top: env(safe-area-inset-top, 0px);
  }

  .admin-dashboard-page :is(table, .table-wrap, .admin-table-wrap, .admin-room-list, .admin-room-workspace, .admin-message-workspace),
  .role-admin :is(table, .table-wrap, .owner-table-wrap, .owner-room-availability-list),
  .role-client :is(table, .table-wrap, .boarder-page-table-wrap, .boarder-history-scroll) {
    max-width: 100%;
  }

  .admin-dashboard-page :is(.admin-app-main, .admin-panel, .admin-room-detail, .admin-message-workspace) > *,
  .role-admin .owner-staff-content > *,
  .role-client .boarder-account-content > * {
    min-width: 0;
  }
}

@media (max-width: 600px) {
  /* iOS Safari zooms focused controls below 16px, shifting the viewport. */
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
  select,
  textarea,
  .boardease-home .featured-houses-search input {
    font-size: 16px !important;
  }

  .property-details-page .header,
  .ems-detail-page .header {
    padding-left: max(12px, env(safe-area-inset-left, 0px));
    padding-right: max(12px, env(safe-area-inset-right, 0px));
  }

  .property-details-page .ems-property-shell,
  .ems-detail-page .ems-property-shell {
    padding-bottom: max(3rem, env(safe-area-inset-bottom, 0px));
  }
}

@media (max-width: 374px) {
  .responsive-auth-header {
    flex-wrap: wrap !important;
    height: auto !important;
    min-height: 112px;
    align-content: center;
  }

  .responsive-auth-header .home-header-actions {
    flex: 1 0 100%;
    justify-content: center;
    margin-right: 0;
  }

  .responsive-auth-header + .home,
  .responsive-auth-header ~ .home {
    padding-top: 112px;
  }

  .role-client .portal-booking-actions {
    grid-template-columns: minmax(0, 1fr);
  }
  :is(.admin-app-main, .owner-staff-content, .dashboard-main, .boarder-page-main) {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  :is(.admin-app-main, .owner-staff-content, .dashboard-main, .boarder-page-main) :is(h1, h2, h3) {
    overflow-wrap: anywhere;
  }
}

@media (hover: none) and (pointer: coarse) {
  a,
  button,
  input[type="button"],
  input[type="submit"],
  input[type="reset"],
  select,
  summary {
    -webkit-tap-highlight-color: transparent;
  }

  button,
  input[type="button"],
  input[type="submit"],
  input[type="reset"] {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* Keep owner portal content legible at the same scale as Reports & Analytics.
   The report page already defines its own matched sizes. */
body.role-admin .owner-management-dashboard {
  align-content: start !important;
}

/* These two pages have short summary rows that must not absorb spare viewport height. */
body.role-admin:is(.owner-available-page, .owner-dashboard-refresh) .owner-management-dashboard {
  grid-template-rows: max-content max-content max-content !important;
  grid-auto-rows: max-content !important;
}

body.role-admin.owner-available-page .owner-management-dashboard > .owner-available-content {
  margin-top:-20px !important;
  padding-top:0 !important;
}

@media (max-width: 1100px) {
  body.role-admin.owner-available-page .owner-management-dashboard > .owner-available-content {
    margin-top:20px !important;
  }
}

body.role-admin:not(.owner-reports-page) .owner-management-dashboard > :not(.owner-staff-sidebar) :is(h2, h3) {
  font-size: max(17px, 1em);
}

body.role-admin:not(.owner-reports-page) .owner-management-dashboard > :not(.owner-staff-sidebar) :is(p, label, dt, dd, li, figcaption) {
  font-size: max(13px, 1em);
}

body.role-admin:not(.owner-reports-page) .owner-management-dashboard > :not(.owner-staff-sidebar) :is(input, select, textarea, button) {
  font-size: max(13px, 1em);
}

body.role-admin:not(.owner-reports-page) .owner-management-dashboard > :not(.owner-staff-sidebar) :is(th, td) {
  font-size: max(12px, 1em);
}

body.role-admin:not(.owner-reports-page) .owner-management-dashboard > :not(.owner-staff-sidebar) small {
  font-size: max(11px, 1em);
}

.table-scroll-hint {
  margin: .4rem 0 .8rem;
  color: #aebed0;
  font-size: 12px;
  line-height: 1.4;
}
body.role-client:is([data-dashboard-page="ledger"], [data-dashboard-page="payments"]) .table-scroll-hint {
  color: #52627b;
}

/* Shared portal improvements for narrow touch screens. */
:is(.admin-app-main, .dashboard-main, .boarder-page-main)
  :is(.tenant-table-wrap, .owner-bookings-scroll, .owner-light-table-wrap,
      .reference-payments-scroll, .stats-table, .admin-reservation-table-wrap,
      .approval-table, .owner-table-wrap, .ledger-table-wrap,
      .ledger-table-scroll, .ledger-modal-scroll) {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

:is(.admin-app-main, .dashboard-main, .boarder-page-main)
  :is(.tenant-table-wrap, .owner-bookings-scroll, .owner-light-table-wrap,
      .reference-payments-scroll, .stats-table, .admin-reservation-table-wrap,
      .approval-table, .owner-table-wrap, .ledger-table-wrap,
      .ledger-table-scroll, .ledger-modal-scroll):focus-visible {
  outline: 2px solid #ff6259;
  outline-offset: 2px;
}

@media (max-width: 1100px) {
  /* The tenant page must use the same drawer as the other owner pages. */
  body.role-admin.owner-tenants-page .tenants-shell > .owner-staff-sidebar {
    position: fixed !important;
    inset: 0 auto 0 0;
    width: min(84vw, 28rem) !important;
    max-width: min(84vw, 28rem);
  }
  body.role-admin.owner-tenants-page .tenants-shell > .owner-staff-sidebar:not(.mobile-open) {
    transform: translateX(-105%);
  }
  body.role-admin.owner-tenants-page .tenants-shell > .owner-staff-sidebar.mobile-open {
    transform: translateX(0);
  }
}

@media (max-width: 760px) {
  body.role-admin .owner-management-dashboard > [data-owner-summary-cards] {
    overflow: visible;
    width: 100%;
  }
  body.role-admin [data-owner-summary-cards] .owner-payment-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    gap: .75rem !important;
  }
  body.role-admin [data-owner-summary-cards] .owner-payment-metrics article {
    min-width: 0;
    min-height: 5.5rem !important;
    padding: .85rem !important;
  }
  :is(.admin-dashboard-page, .role-admin, .role-client) :is(.admin-app-main, .dashboard-main, .boarder-page-main)
    :is(.table-wrap, .admin-table-wrap, .tenant-table-wrap, .payments-table-wrap,
        .current-boarders-table-wrap, .report-table-scroll, .owner-bookings-scroll,
        .owner-light-table-wrap, .reference-payments-scroll, .stats-table,
        .admin-reservation-table-wrap, .approval-table, .boarder-page-table-wrap,
        .boarder-history-scroll, .ledger-table-wrap, .ledger-table-scroll) > table {
    width: max-content;
    min-width: 100%;
  }
  dialog[open]:not(.fullscreen-dialog) {
    max-width: calc(100vw - 24px) !important;
    max-height: calc(100dvh - 24px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)) !important;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  :is(.admin-dashboard-page, .role-admin, .role-client) :is(.modal-actions, .dialog-actions, .form-actions) {
    flex-wrap: wrap;
  }
  :is(.admin-dashboard-page, .role-admin, .role-client) :is(.modal-actions, .dialog-actions, .form-actions) > :is(button, a) {
    min-height: 44px;
  }
}

@media (max-width: 600px) {
  body.role-admin [data-owner-summary-cards] .owner-payment-metrics {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  :is(.role-admin, .role-client, .admin-dashboard-page)
    :is(.tenant-add-grid, .tenant-add-compact-grid, .boarder-add-fields,
        .erp-fields, .owner-room-form-grid, .admin-account-form-grid,
        .boarder-settings-grid, .payment-detail-grid) {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  :is(.role-admin, .role-client, .admin-dashboard-page)
    :is(.tenant-add-grid, .tenant-add-compact-grid, .boarder-add-fields,
        .erp-fields, .owner-room-form-grid, .admin-account-form-grid,
        .boarder-settings-grid, .payment-detail-grid) > * {
    max-width: 100%;
    min-width: 0;
  }
  :is(.role-admin, .role-client, .admin-dashboard-page) :is(button, .button, [role="button"]):not(.icon-only) {
    overflow-wrap: anywhere;
  }
  :is(.role-admin, .role-client, .admin-dashboard-page) :is(.portal-card, .owner-overview-card, .report-card, .admin-panel) {
    min-width: 0;
  }
}

/* Keep text readable without changing the rem scale used by existing layouts. */
body { font-size:16px; line-height:1.5; }
body:not(:is(.admin-dashboard-page,.admin-account-page)) :is(p, label, input, select, textarea, button, td, th, li, dt, dd, figcaption) {
  font-size:16px !important;
}
body:not(:is(.admin-dashboard-page,.admin-account-page)) :is(div, section, article, form, fieldset, ul, ol, dl):not([aria-hidden="true"]) {
  font-size:16px;
}
body:not(:is(.admin-dashboard-page,.admin-account-page)) :is(span, strong, b, em, a):not(:is(.fas, .far, .fab, .fa, [aria-hidden="true"])) {
  font-size:inherit !important;
}
body:not(:is(.admin-dashboard-page,.admin-account-page)) :is(small, .eyebrow, .bh-eyebrow, .destination-eyebrow, .results-kicker,
    .admin-account-card-meta, .tracked-account-header>span,
    .admin-account-card-content>span, .admin-app-topbar p,
    .admin-panel-heading p, .admin-detail-heading p, .admin-account-heading p,
    .user-status, .email-user-role, .email-sent-stats, .email-sent-stats span, .ao-activity-columns) {
  font-size:14px !important;
}
body:not(:is(.admin-dashboard-page,.admin-account-page)) :is(.admin-app-sidebar nav a, .owner-staff-nav a, .portal-restored-sidebar nav a) {
  font-size:16px !important;
  min-height:44px;
}
body .admin-app-sidebar nav a { display:grid; grid-template-columns:20px minmax(0,1fr) auto; }
body .admin-app-sidebar nav a span { line-height:1.4; white-space:normal !important; overflow-wrap:anywhere; }
body:not(:is(.admin-dashboard-page,.admin-account-page)) .admin-app-sidebar nav b { font-size:14px !important; min-width:24px; height:24px; }
/* Keep the shared Admin sidebar typography identical on every sidebar page. */
body.admin-dashboard-page .admin-app-sidebar nav a,
body.admin-dashboard-page .admin-sidebar-logout { font-size:1.08rem; }
body .admin-app-sidebar { overflow-y:auto; overflow-x:hidden; min-height:0; }
body .admin-sidebar-card { margin-top:24px; }
body:not(:is(.admin-dashboard-page,.admin-account-page)) .admin-sidebar-card p { color:#b7bec6; font-size:14px !important; }
body:not(:is(.admin-dashboard-page,.admin-account-page)) :is(.admin-app-main, .owner-staff-content, .dashboard-main, .boarder-page-main) h1 { font-size:32px !important; line-height:1.25; }
body:not(:is(.admin-dashboard-page,.admin-account-page)) :is(.admin-app-main, .owner-staff-content, .dashboard-main, .boarder-page-main) h2 { font-size:24px !important; line-height:1.3; }
body:not(:is(.admin-dashboard-page,.admin-account-page)) :is(.admin-app-main, .owner-staff-content, .dashboard-main, .boarder-page-main) h3 { font-size:20px !important; line-height:1.35; }
body:not(:is(.admin-dashboard-page,.admin-account-page)) :is(.admin-app-main, .owner-staff-content, .dashboard-main, .boarder-page-main) h4 { font-size:18px !important; }
body :is(h1, h2, h3, h4) :is(span, a, strong) { font-size:inherit !important; }
body:not(:is(.admin-dashboard-page,.admin-account-page)) :is(.admin-metric-grid, .owner-admin-summary, .users-summary, .portal-stats, .owner-dashboard-stats) strong {
  font-size:28px !important;
  line-height:1.3;
}
body:not(:is(.admin-dashboard-page,.admin-account-page)) :is(.admin-profile-chip>span, .admin-account-avatar, .tracked-account-avatar, [data-avatar-initial]) { font-size:24px !important; }
body :is(.admin-account-card-content p, .owner-detail-head p, .tracked-account-header p) {
  color:#b5bdc8;
  white-space:normal;
  overflow-wrap:anywhere;
}
body :is(input, select, textarea) { line-height:1.5; text-transform:none; }
body :is(input, select):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]) { min-height:44px; }
body :is(input, select, textarea, button, a):focus-visible { outline:2px solid #ff796f; outline-offset:3px; }
body :is(.admin-account-heading, .admin-account-tools, .admin-top-actions) { flex-wrap:wrap; gap:16px; }
body .image-unavailable { object-fit:contain !important; background:#242a30; }

body [data-feedback]:not(:empty) {
  display:block;
  padding:12px 14px;
  border:1px solid transparent;
  border-radius:10px;
  line-height:1.5;
  text-transform:none;
  font-size:16px !important;
}
body [data-feedback="error"]:not(:empty) { background:#fff0ef; border-color:#eabbb7; color:#8c2820 !important; }
body [data-feedback="success"]:not(:empty) { background:#e9f8ef; border-color:#a9d9be; color:#1d633d !important; }
body [data-feedback="loading"]:not(:empty) { background:#edf2f7; border-color:#c8d3df; color:#344558 !important; }
.password-reset-modal section { width:520px; max-width:calc(100vw - 24px); max-height:calc(100dvh - 32px); overflow-y:auto; }
.password-reset-modal h2 { font-size:28px !important; }
.password-reset-modal small { display:block; color:#b9c1cd; text-transform:none; line-height:1.5; }
.password-reset-modal :is(input, .btn) { min-height:48px; }
.password-reset-modal [data-password-reset-result] { text-align:left; }
.auth-modal .btn { min-height:48px; background:#ff5349 !important; color:#fff !important; border-color:#ff5349 !important; font-weight:600; }
.auth-modal .btn:disabled { opacity:.65; cursor:wait; }
@media (max-width:600px) {
  body .auth-modal .form-box h2,
  body .auth-modal .form-box .auth-reset-link,
  body .auth-modal .form-box .switch-link,
  body .auth-modal .form-box .switch-link a,
  body .auth-modal .form-box .auth-role-trigger,
  body .auth-modal .form-box .auth-role-options,
  body .auth-modal .form-box .auth-role-options button {
    font-size:10px !important;
  }
  body .auth-modal .form-box.login #login-form > .auth-reset-link {
    font-size:10px !important;
  }
  body .auth-modal .form-box form .input-box input:not([type="checkbox"]),
  body .auth-modal .form-box form .input-box select {
    font-size:10px !important;
  }
  body .auth-modal .form-box form > button[type="submit"].btn {
    display:block;
    width:min(100%,150px);
    min-height:32px !important;
    height:32px;
    margin:8px auto 0;
    padding:6px 10px;
    font-size:10px !important;
    line-height:1.2;
  }
}
.password-success-notice {
  position:fixed; inset:0; margin:auto; width:460px;
  max-width:calc(100vw - 32px); max-height:calc(100dvh - 32px);
  overflow-y:auto; padding:32px; border:1px solid #ffffff25;
  border-radius:20px; background:#1f252a; color:#f8fafc;
  box-shadow:0 24px 80px #0008; text-align:center; text-transform:none;
}
.password-success-notice::backdrop { background:#071019b8; backdrop-filter:blur(4px); }
.password-success-notice .password-success-icon { display:grid; place-items:center; width:64px; height:64px; margin:0 auto 20px; border-radius:50%; background:#254536; color:#9be6b9; font-size:36px; }
.password-success-notice h2 { font-size:26px !important; line-height:1.3; margin:0 0 12px; text-transform:none; }
.password-success-notice p { color:#c4cdd7; margin-bottom:24px; line-height:1.6; text-transform:none; }
.password-success-notice button { width:100%; min-height:48px; padding:12px 20px; border-radius:10px; background:#ff5349; color:#fff; cursor:pointer; font-weight:600; }
@media(max-width:1100px) { .admin-account-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) {
  body:not(:is(.admin-dashboard-page,.admin-account-page)) :is(.admin-app-main, .owner-staff-content, .dashboard-main, .boarder-page-main) h1 { font-size:28px !important; }
  .admin-account-grid { grid-template-columns:minmax(0,1fr); }
  .password-success-notice { padding:26px 20px; }
}
@media(max-width:600px) {
  .ems-detail-page .header { gap:8px; padding:10px 12px; }
  .ems-detail-page .header #menu-btn { flex:0 0 auto; }
  .ems-detail-page .header .brand-link { flex:0 1 auto; min-width:0; margin-right:auto; }
  .ems-detail-page .header .brand-link img { max-width:80px; height:auto; }
  .ems-detail-page .header .user-auth { flex:0 0 auto; gap:6px; min-width:0; }
  .ems-detail-page .header .user-auth :is(.login-btn-modal,.register-btn-modal) {
    display:inline-flex; align-items:center; justify-content:center;
    width:auto; min-width:0; height:36px; padding:0 10px;
    font-size:14px !important; line-height:1; white-space:nowrap;
  }
  .ems-detail-page .other-houses-popup { bottom:calc(8px + env(safe-area-inset-bottom, 0px)); }
}
/* Keep the signed-in header state visible at every viewport size. */
.header .user-auth .register-btn-modal[hidden] { display:none !important; }
@media(max-width:980px) {
  body .admin-app-sidebar { padding:56px 16px 24px; }
  body .admin-app-sidebar .admin-app-logo { flex:0 0 auto; height:64px; margin:0 0 20px; width:150px; }
  body .admin-app-sidebar .admin-app-logo img { height:64px; width:150px; }
  body .admin-app-sidebar nav { grid-template-columns:minmax(0,1fr) !important; }
  body .admin-app-sidebar.mobile-open nav a span { display:block !important; }
  body .admin-app-sidebar.mobile-open .admin-sidebar-logout { display:block !important; }
}

/* Align the admin mobile menu with the owner account drawer. */
.admin-sidebar-close, .admin-sidebar-welcome, .admin-sidebar-foot { display:none; }
@media(min-width:768px) {
  body.admin-dashboard-page .admin-metric-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media(max-width:980px) {
  body .admin-app-sidebar { box-sizing:border-box; display:flex; flex-direction:column; width:min(330px,calc(100vw - 48px)); max-width:330px; height:100dvh; padding:0; overflow-y:auto; background:#1c1c1b; border:0; border-radius:0; box-shadow:16px 0 48px #0008; scrollbar-width:none; }
  body .admin-app-sidebar::-webkit-scrollbar { display:none; }
  body .admin-app-sidebar .admin-app-logo { box-sizing:border-box; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; flex:0 0 116px; width:100%; height:116px; min-height:116px; margin:0; padding:12px 22px; border-bottom:1px solid #363636; }
  body .admin-app-sidebar .admin-app-logo::after { content:"ADMIN PORTAL"; display:block; margin:2px 0 0 5px; color:#777f89; font-size:12px; font-weight:700; letter-spacing:.13em; line-height:1.4; }
  body .admin-app-sidebar .admin-app-logo img { width:98px; height:48px; object-fit:contain; object-position:left center; }
  body .admin-app-sidebar .admin-sidebar-welcome { display:flex; align-items:center; min-height:52px; margin:8px 20px 12px; padding:12px 10px 0; color:#f6f6f6; }
  body .admin-app-sidebar .admin-sidebar-welcome strong { font-size:15px; line-height:1.3; }
  body .admin-app-sidebar .admin-sidebar-welcome strong span { color:#ff5349; }
  body .admin-app-sidebar nav { box-sizing:border-box; display:grid; gap:3px; width:100%; padding:8px 16px 12px; }
  body .admin-app-sidebar nav a, body .admin-app-sidebar .admin-sidebar-logout { box-sizing:border-box; display:flex !important; align-items:center; justify-content:flex-start; gap:16px; width:100%; min-height:48px; margin:0; padding:10px 16px; border:0; border-radius:9px; background:transparent; color:#e8e8eb !important; font-size:15px; font-weight:650; line-height:1.3; text-align:left; }
  body .admin-app-sidebar.mobile-open .admin-sidebar-logout { display:flex !important; }
  body .admin-app-sidebar nav a i, body .admin-app-sidebar .admin-sidebar-logout i { flex:0 0 20px; width:20px; font-size:18px; text-align:center; margin:0; }
  body .admin-app-sidebar nav a span { display:block !important; }
  body .admin-app-sidebar nav a:is(.active,[aria-current="page"]), body .admin-app-sidebar nav a:hover, body .admin-app-sidebar .admin-sidebar-logout:hover { background:#3b2524; color:#ff6159 !important; }
  body .admin-app-sidebar nav a:is(.active,[aria-current="page"]) { color:#fff !important; }
  body .admin-app-sidebar .admin-sidebar-logout { width:calc(100% - 32px); margin:4px 16px 0; border-top:1px solid #363636; border-radius:0; }
  body .admin-app-sidebar .admin-sidebar-foot { box-sizing:border-box; display:grid; flex:none; gap:6px; width:100%; margin-top:auto; padding:22px 26px 28px; border-top:1px solid #363636; background-image:linear-gradient(90deg,rgba(20,20,22,.86),rgba(20,20,22,.68)),url('../images/homepage-hero-background.webp'); background-position:left center; background-size:cover; }
  body .admin-app-sidebar .admin-sidebar-foot strong { max-width:220px; color:#ff6159; font-size:15px; line-height:1.3; }
  body .admin-app-sidebar .admin-sidebar-foot span { max-width:240px; color:#b8b8bd; font-size:12px; line-height:1.5; }
  body .admin-app-sidebar .admin-sidebar-close { position:absolute; top:16px; right:16px; display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; background:transparent; color:#fff; font-size:20px; cursor:pointer; }
  body.admin-dashboard-page .admin-mobile-menu-toggle { display:grid; place-items:center; box-sizing:border-box; top:max(12px,env(safe-area-inset-top,0px)); left:auto; right:max(12px,env(safe-area-inset-right,0px)); width:44px; height:44px; padding:0; border:0; border-radius:0; background:transparent; color:#fff; font-size:21px; }
  body .admin-mobile-menu-toggle span { display:none; }
  body.admin-menu-open .admin-mobile-menu-toggle { display:none; }
  body.admin-dashboard-page .admin-metric-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media(max-width:767px) {
  body.admin-dashboard-page .admin-metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; overflow:visible; }
  body.admin-dashboard-page .admin-metric-grid>article { grid-template-columns:2.5rem minmax(0,1fr); align-items:center; column-gap:.7rem; min-height:6.5rem; padding:.8rem; }
  body.admin-dashboard-page .admin-metric-grid>article>span { width:2.5rem; height:2.5rem; min-width:2.5rem; font-size:1.1rem; }
  body.admin-dashboard-page .admin-metric-grid>article small { font-size:.8rem; }
  body.admin-dashboard-page .admin-metric-grid>article strong { margin:.1rem 0; font-size:1.5rem; }
  body.admin-dashboard-page .admin-metric-grid>article p { font-size:.7rem; }
  body.admin-dashboard-page .admin-app-main > .admin-account-workspace { padding:1rem; }
  body.admin-dashboard-page .admin-account-heading { gap:.8rem; margin-bottom:.9rem; }
  body.admin-dashboard-page .admin-account-heading h2 { font-size:1.6rem; }
  body.admin-dashboard-page .admin-account-heading > div > span { font-size:.9rem; }
  body.admin-dashboard-page .admin-account-tools { width:100%; gap:.5rem; }
  body.admin-dashboard-page .admin-account-filters { padding:.2rem; }
  body.admin-dashboard-page .admin-account-filters button { padding:.5rem .7rem; font-size:.85rem; }
  body.admin-dashboard-page .admin-account-view { padding:.2rem; }
  body.admin-dashboard-page .admin-account-view button { min-width:2.5rem; height:2.5rem; }
  body.admin-dashboard-page .account-tracker-view-all { margin-left:auto; padding:.3rem 0; font-size:.95rem; }
  body.admin-dashboard-page .admin-account-grid.is-list { gap:.5rem; }
  body.admin-dashboard-page .admin-account-grid.is-list .admin-account-open { grid-template-columns:4.5rem minmax(0,1fr); gap:.4rem; }
  body.admin-dashboard-page .admin-account-grid.is-list .admin-account-cover { min-height:5.5rem; padding:.4rem; }
  body.admin-dashboard-page .admin-account-grid.is-list .admin-account-avatar { width:3.2rem; height:3.2rem; font-size:1.1rem; }
  body.admin-dashboard-page .admin-account-grid.is-list .admin-account-card-content { padding:.4rem 0; line-height:1.2; }
  body.admin-dashboard-page .admin-account-grid.is-list .admin-account-card-content > span { font-size:.7rem; }
  body.admin-dashboard-page .admin-account-grid.is-list .admin-account-card-content h3 { font-size:1.1rem; margin:.1rem 0; }
  body.admin-dashboard-page .admin-account-grid.is-list .admin-account-card-content p { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.8rem; }
  body.admin-dashboard-page .admin-account-grid.is-list .admin-account-card-meta { gap:.5rem; margin:.2rem 0 0; }
  body.admin-dashboard-page .admin-account-grid.is-list .admin-account-card-meta span { font-size:.75rem; }
  body.admin-dashboard-page .admin-account-grid.is-list .admin-account-actions { padding:.3rem .5rem; }
  body.admin-dashboard-page .admin-account-grid.is-list .admin-account-delete { min-height:2.6rem; padding:.3rem .5rem; gap:.3rem; font-size:.8rem; }
  body.admin-dashboard-page .admin-account-grid:not(.is-list) { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; }
  body.admin-dashboard-page .admin-account-grid:not(.is-list) .admin-account-card { display:flex; flex-direction:column; min-width:0; }
  body.admin-dashboard-page .admin-account-grid:not(.is-list) .admin-account-cover { height:4rem; padding:0 .6rem; }
  body.admin-dashboard-page .admin-account-grid:not(.is-list) .admin-account-avatar { width:3rem; height:3rem; border-width:.2rem; transform:translateY(1.2rem); font-size:1.1rem; }
  body.admin-dashboard-page .admin-account-grid:not(.is-list) .admin-account-card-content { min-width:0; padding:1.5rem .6rem .4rem; }
  body.admin-dashboard-page .admin-account-grid:not(.is-list) .admin-account-card-content > span { font-size:.7rem; }
  body.admin-dashboard-page .admin-account-grid:not(.is-list) .admin-account-card-content h3 { font-size:1.05rem; margin:.1rem 0; overflow-wrap:anywhere; }
  body.admin-dashboard-page .admin-account-grid:not(.is-list) .admin-account-card-content p { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.75rem; }
  body.admin-dashboard-page .admin-account-grid:not(.is-list) .admin-account-card-meta { flex-wrap:wrap; gap:.3rem .6rem; margin:.4rem 0 0; }
  body.admin-dashboard-page .admin-account-grid:not(.is-list) .admin-account-card-meta span { font-size:.7rem; }
  body.admin-dashboard-page .admin-account-grid:not(.is-list) .admin-account-actions { margin-top:auto; padding:.3rem .6rem .6rem; }
  body.admin-dashboard-page .admin-account-grid:not(.is-list) .admin-account-delete { min-height:2.5rem; padding:.3rem .5rem; gap:.3rem; font-size:.8rem; }
}

@media(max-width:600px) {
  body.admin-users-page .users-summary { gap:7px; margin-bottom:14px; }
  body.admin-users-page .users-summary article { padding:10px; border-radius:10px; }
  body.admin-users-page .users-summary small { font-size:12px; line-height:1.2; }
  body.admin-users-page .users-summary strong { margin-top:3px; font-size:21px; line-height:1.2; }
  body.admin-users-page .admin-app-main > .users-directory { padding:12px; }
  body.admin-users-page .users-directory-heading { align-items:flex-start; flex-direction:row; gap:8px; }
  body.admin-users-page .users-directory-heading > div { min-width:0; }
  body.admin-users-page .users-directory-heading h2 { margin-bottom:3px; font-size:18px; line-height:1.2; }
  body.admin-users-page .users-directory-heading p { font-size:12px; line-height:1.35; }
  body.admin-users-page .users-directory-heading [data-user-refresh] { flex:0 0 auto; min-height:32px; padding:5px 8px; font-size:12px; }
  body.admin-users-page .users-filters { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:12px 0; }
  body.admin-users-page .users-filters .users-search { grid-column:1/-1; }
  body.admin-users-page .users-filters label { min-width:0; gap:4px; font-size:12px; }
  body.admin-users-page .users-filters :is(input,select) { min-height:36px; padding:7px 8px; font-size:13px; }
  body.admin-users-page .users-directory :is(h2,p,label,input,select,button,th,td,td strong,td small) { font-size:10px !important; }
  body.admin-users-page .users-search input,
  body.admin-users-page .users-search input::placeholder { font-size:10px !important; line-height:1.2; }
  body.admin-users-page .users-search input { min-height:32px; padding:6px 8px; }
  body.admin-users-page .users-table :is(th,td) { padding:8px; }
}

@media(max-width:600px) {
  body[data-system-statistics] .stats-main :is(button,select,input,label,p,small,.stats-tools,.stats-key,.stats-table) { font-size:10px!important; }
  body[data-system-statistics] .stats-main input[type="date"]::-webkit-datetime-edit { font-size:10px; }
  body[data-system-statistics] .stats-main input[type="date"]::-webkit-calendar-picker-indicator { width:12px; height:12px; }
  body[data-system-statistics] .stats-main h1 { font-size:18px; }
  body[data-system-statistics] .stats-main h2 { font-size:12px; }
  body[data-system-statistics] .stats-metric strong { font-size:16px; }
  body[data-system-statistics] .stats-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
  body[data-system-statistics] .stats-metrics > .stats-metric { display:grid; grid-template-columns:3rem minmax(0,1fr); align-items:center; gap:7px; min-height:7rem; padding:8px; }
  body[data-system-statistics] .stats-metrics > .stats-metric > i { width:3rem; height:3rem; min-width:3rem; flex-basis:3rem; padding:0; font-size:14px; }
  body[data-system-statistics] .stats-metrics > .stats-metric > div { min-width:0; font-size:10px; line-height:1.25; overflow-wrap:anywhere; }
  body[data-system-statistics] .stats-metrics > .stats-metric small { font-size:9px!important; }
  body[data-system-statistics] .stats-main :is(button,select,input) { min-height:32px; padding:6px 8px; }
  body[data-system-statistics] .stats-range { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin:10px 0; }
  body[data-system-statistics] .stats-range label { display:grid; width:auto; min-width:0; gap:4px; }
  body[data-system-statistics] .stats-range input[type="date"] { box-sizing:border-box; width:100%; min-width:0; }
  body[data-system-statistics] .stats-range button { grid-column:1/-1; justify-self:start; }
}

@media(max-width:600px) {
  body.admin-reports-page .reports-main :is(p,span,small,label,input,select,button,th,td) { font-size:10px!important; }
  body.admin-reports-page .reports-main input[type="month"]::-webkit-datetime-edit { font-size:10px; }
  body.admin-reports-page .reports-header h1 { font-size:18px; }
  body.admin-reports-page .report-title h2 { font-size:12px; }
  body.admin-reports-page .reports-metrics article strong { font-size:16px; }
  body.admin-reports-page .reports-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
  body.admin-reports-page .reports-metrics article { min-width:0; gap:6px; padding:7px; }
  body.admin-reports-page .reports-metrics article > div { min-width:0; overflow-wrap:anywhere; }
  body.admin-reports-page .reports-actions :is(input,button),
  body.admin-reports-page .report-card :is(select,button) { min-height:32px; padding:6px 8px; }
  body.admin-reports-page .reports-metrics article > i { min-width:28px; height:28px; font-size:13px; }
  body.admin-reports-page .revenue-chart text { font-size:10px; }
}

@media(max-width:767px) {
  body[data-admin-settings] .admin-identity-box { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  body[data-admin-settings] .admin-identity-box .admin-profile-card { grid-column:1; grid-row:1; }
  body[data-admin-settings] .admin-identity-box .admin-security-card { grid-column:2; grid-row:1; }
  body[data-admin-settings] .admin-identity-box .admin-settings-card { min-width:0; padding:9px; }
  body[data-admin-settings] .admin-identity-box .admin-settings-card header { align-items:flex-start; gap:5px; margin-bottom:12px; }
  body[data-admin-settings] .admin-settings-card header > i { width:25px; height:25px; flex-basis:25px; font-size:12px; }
  body[data-admin-settings] .admin-identity-box .admin-settings-card header h2,
  body[data-admin-settings] .admin-identity-box .admin-settings-card header p { font-size:10px; line-height:1.25; }
  body[data-admin-settings] .admin-identity-box .admin-settings-card label { margin-bottom:9px; font-size:10px; }
  body[data-admin-settings] .settings-input-wrap { margin-top:4px; }
  body[data-admin-settings] .settings-input-wrap > i { left:7px; font-size:11px; }
  body[data-admin-settings] .admin-identity-box .admin-settings-card input { box-sizing:border-box; min-width:0; width:160%; height:51.2px; min-height:51.2px; padding:9.6px 35.2px; font-size:16px!important; line-height:1.2; zoom:.625; }
  body[data-admin-settings] .admin-identity-box .admin-settings-card input::placeholder { font-size:16px!important; line-height:1.2; }
  body[data-admin-settings] .admin-identity-box .admin-profile-card input { font:400 16px/1.2 Arial,sans-serif!important; padding:9.6px 11.2px!important; }
  body[data-admin-settings] .admin-identity-box .admin-profile-card .settings-input-wrap > i { display:none; }
  body[data-admin-settings] .settings-password-toggle { right:2px; width:20px; height:26px; font-size:10px; }
  body[data-admin-settings] .admin-identity-box .admin-settings-card > button { min-height:30px; padding:6px; font-size:10px; }
}

