/* XENIA v30: automatically adapt typography to the available CSS viewport.
   Browser zoom and OS scaling remain respected; physical monitor quality / DPI
   is not a reliable input for physical text sizing on the Web. No JS controls. */
html {
  font-size:clamp(112.5%,calc(100% + .36vw),175%);
  text-size-adjust:100%;-webkit-text-size-adjust:100%;
}
body {line-height:1.5}

/* XENIA Connect 27: responsive layout and readable text.
   Adapt the layout to available CSS viewport width (including browser zoom)
   instead of scaling the whole application or hiding essential content. */

.enterprise-v5 .admin-content,
.enterprise-v5 .admin-main,
.enterprise-v5 .admin-heading > *,
.enterprise-v5 .admin-panel-header > *,
.public-wizard.enterprise-v5 .wizard-intro > *,
.public-wizard.enterprise-v5 .wizard-panel,
.public-wizard.enterprise-v5 .bandwidth-banner-content,
.public-wizard.enterprise-v5 .selection-checkout-left,
.public-wizard.enterprise-v5 .wizard-actions > * {min-width:0}

.enterprise-v5 :is(.admin-heading, .admin-panel-header, .admin-user, .topbar-breadcrumb),
.public-wizard.enterprise-v5 :is(.wizard-intro, .wizard-step, .page-section-head,
 .bandwidth-banner-content, .map-toolbar-text, .selection-summary, .public-footer) {
  overflow-wrap:anywhere;
}
.enterprise-v5 .admin-table td strong,
.enterprise-v5 .stand-row-companies span {
  max-width:none;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;
}
.enterprise-v5 :is(.admin-primary,.admin-secondary,.admin-danger,.admin-danger-outline) {
  max-width:100%;white-space:normal;min-width:0;text-align:center;
}
.public-wizard.enterprise-v5 :is(.submit-button,.back-link-button,.banner-more) {
  max-width:100%;white-space:normal;min-width:0;
}
.public-wizard.enterprise-v5 .wizard-step {white-space:normal;line-height:1.45}
.public-wizard.enterprise-v5 .wizard-number {flex-shrink:0}
.public-wizard.enterprise-v5 .wizard-intro .eyebrow {flex-wrap:wrap;line-height:1.5}
.public-wizard.enterprise-v5 .map-legend {flex-wrap:wrap;row-gap:9px}
.public-wizard.enterprise-v5 .map-legend .legend-icon {flex:0 0 11px}
.public-wizard.enterprise-v5 .generated-preview-password code,
.public-wizard.enterprise-v5 .completion-reference strong {overflow-wrap:anywhere;word-break:break-word}

/* Prevent 970px-tall maps from pushing the lower controls far below short screens.
   Full PDF map remains pan/zoomable at all resolutions. */
.public-wizard.enterprise-v5 .enlarged-map .hall-map-viewport {
  height:clamp(440px,74dvh,870px);
}

/* Small laptop/tablet: navigation becomes a full-width, readable grid instead
   of compressing the admin application into a narrow sidebar + clipped tables. */
@media(max-width:1100px) {
  .enterprise-v5 .admin-layout {display:block;min-width:0}
  .enterprise-v5 .admin-sidebar {
    position:static;height:auto;min-height:0;overflow:visible;
    padding:15px clamp(15px,3vw,30px);
  }
  .enterprise-v5 .admin-brand {margin:0 0 10px;padding:0;max-width:100%}
  .enterprise-v5 .admin-brand .brand-logo img {max-width:180px;width:clamp(135px,18vw,180px)}
  .enterprise-v5 .admin-sidebar .nav-section-title {display:none}
  .enterprise-v5 .admin-links {
    display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));
    gap:6px;max-width:100%;overflow:visible;padding:0;
  }
  .enterprise-v5 .admin-links > a {
    display:flex;align-items:center;min-width:0;white-space:normal;flex-shrink:1;
    gap:8px;padding:9px 10px;font-size:0.75rem;line-height:1.35;
  }
  .enterprise-v5 .admin-links > a > .ui-icon {flex:0 0 18px}
  .enterprise-v5 .admin-links > a > span {
    min-width:0;flex:1 1 auto;width:auto;font-size:0.75rem;white-space:normal;overflow-wrap:anywhere;
  }
  .enterprise-v5 .admin-side-bottom {
    display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;
    justify-content:flex-start;gap:15px;margin-top:12px;padding:10px 0 0;
  }
  .enterprise-v5 .admin-side-bottom form {width:auto;flex:0 1 auto;min-width:0}
  .enterprise-v5 .admin-side-bottom .view-site,
  .enterprise-v5 .admin-side-bottom .logout-button {width:auto;padding:8px 10px;line-height:1.4}
  .enterprise-v5 .admin-main {max-width:100%;padding:24px clamp(14px,3vw,32px) 60px}
  .enterprise-v5 .stats-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
  .enterprise-v5 .admin-heading {flex-wrap:wrap;align-items:flex-start;gap:13px}
  .enterprise-v5 .admin-heading > * {max-width:100%}
  .enterprise-v5 .admin-panel-header {flex-wrap:wrap;align-items:flex-start}
}

@media(max-width:860px) {
  .public-wizard.enterprise-v5 .wizard-progress {
    display:grid;grid-template-columns:minmax(0,1fr) minmax(7px,2vw) minmax(0,1fr) minmax(7px,2vw) minmax(0,1fr);
    gap:3px;align-items:stretch;
  }
  .public-wizard.enterprise-v5 .wizard-step {justify-content:center;text-align:center;flex-wrap:wrap;gap:6px;padding:7px 4px;font-size:.6875rem}
  .public-wizard.enterprise-v5 .wizard-progress-line {width:100%;align-self:center}
  .public-wizard.enterprise-v5 .summary-aside .summary-row {
    display:flex;grid-column:2;gap:10px;align-items:center;justify-content:space-between;
    min-width:0;flex-wrap:wrap;font-size:0.75rem;line-height:1.45;
  }
  .public-wizard.enterprise-v5 .summary-aside .summary-hint {
    display:block;grid-column:2;min-width:0;font-size:0.75rem;line-height:1.5;
  }
  .public-wizard.enterprise-v5 .summary-aside .summary-row b {min-width:0;overflow-wrap:anywhere}
  .public-wizard.enterprise-v5 .summary-aside .change-link {grid-column:2}
  .public-wizard.enterprise-v5 .map-bottom-note {font-size:.75rem}
}

@media(max-width:980px) {
  /* Admin tables become labeled rows/cards; no hidden rightmost columns or
     shortened company names on narrow and zoomed screens. */
  .enterprise-v5 :is(.table-scroll,.key-table-wrap) {overflow:visible;min-width:0}
  .enterprise-v5 .admin-table {display:block;width:100%;min-width:0;table-layout:auto}
  .enterprise-v5 .admin-table thead {
    position:absolute!important;width:1px!important;height:1px!important;
    padding:0!important;margin:-1px!important;overflow:hidden!important;
    clip-path:inset(50%);white-space:nowrap;
  }
  .enterprise-v5 .admin-table tbody {display:block;min-width:0}
  .enterprise-v5 .admin-table tbody tr {
    display:block;min-width:0;margin:10px 12px;border:1px solid #e1e9f1;
    background:#fff;border-radius:11px;overflow:hidden;
  }
  .enterprise-v5 .admin-table td {
    display:block;box-sizing:border-box;min-width:0;max-width:100%;width:auto;
    padding:10px 12px;border-top:1px solid #eef2f6;
    white-space:normal;overflow-wrap:anywhere;font-size:0.75rem;line-height:1.5;
  }
  .enterprise-v5 .admin-table td:first-child {border-top:0}
  .enterprise-v5 .admin-table td[data-column-label]:not([colspan])::before {
    content:attr(data-column-label);display:block;margin:0 0 3px;
    font-size:max(12px,0.625rem);line-height:1.4;font-weight:800;letter-spacing:.035em;
    color:#66809a;overflow-wrap:anywhere;
  }
  .enterprise-v5 .admin-table td strong {white-space:normal;max-width:none;overflow:visible;text-overflow:clip}
  .enterprise-v5 .admin-table td small {white-space:normal;overflow-wrap:anywhere}
  .enterprise-v5 .admin-table td[colspan] {display:block;white-space:normal}
  .enterprise-v5 .admin-table .request-row-actions {white-space:normal;flex-wrap:wrap;gap:10px}
  .enterprise-v5 .key-table .key-companies {min-width:0;max-width:none;white-space:normal}
  .enterprise-v5 .key-issue-form {
    display:grid;grid-template-columns:minmax(0,1fr);gap:8px;
    min-width:0;max-width:100%;width:100%;
  }
  .enterprise-v5 .key-issue-form :is(select,input,button) {
    box-sizing:border-box;min-width:0;max-width:100%;width:100%;
    height:auto;min-height:39px;
  }
  .enterprise-v5 .admin-table td .status-pill {white-space:normal}
  .enterprise-v5 .dashboard-request-filter {
    display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);
    align-items:end;gap:12px;
  }
  .enterprise-v5 .dashboard-request-filter .form-field,
  .enterprise-v5 .dashboard-request-filter .form-field:first-child {
    min-width:0;width:100%;max-width:100%;margin:0;
  }
  .enterprise-v5 .dashboard-request-filter .form-field :is(input,select) {
    box-sizing:border-box;min-width:0;width:100%;max-width:100%;
  }
  .enterprise-v5 .dashboard-request-filter .admin-secondary {width:max-content;min-height:40px}
  .enterprise-v5 .dashboard-clear-filter {align-self:center;margin:0}
  .enterprise-v5 .admin-heading h1 {font-size:clamp(1.5rem,5.3vw,2.125rem);overflow-wrap:anywhere}
  .enterprise-v5 .admin-topbar {flex-wrap:wrap;gap:8px;min-height:0;padding:13px 16px}
  .enterprise-v5 .topbar-breadcrumb {min-width:0;flex-wrap:wrap;gap:6px;letter-spacing:.02em}
  .enterprise-v5 .admin-topbar-actions,.enterprise-v5 .admin-user {min-width:0;max-width:100%;overflow-wrap:anywhere}
  .enterprise-v5 .admin-panel-header {gap:12px}
  .enterprise-v5 .dashboard-heading-actions {flex-wrap:wrap;max-width:100%}

  /* Public header keeps labels instead of hiding the administrator link. */
  .public-wizard.enterprise-v5 .public-nav {
    height:auto;min-height:0;display:flex;flex-wrap:wrap;
    padding:13px 0;gap:10px;
  }
  .public-wizard.enterprise-v5 .public-nav .identity.logo-identity {transform:none}
  .public-wizard.enterprise-v5 .public-nav .nav-right {
    display:flex;flex-wrap:wrap;gap:7px;margin-left:auto;
    justify-content:flex-end;max-width:100%;min-width:0;
  }
  .public-wizard.enterprise-v5 .admin-nav-link {min-width:0;white-space:normal;line-height:1.3;padding:9px 10px}
  .public-wizard.enterprise-v5 .admin-nav-link span {display:inline!important;font-size:.6875rem}
  .public-wizard.enterprise-v5 .map-search-caption {display:inline-flex;font-size:0.75rem;white-space:normal}
  .public-wizard.enterprise-v5 .hall-map-frame .map-toolbar {
    display:flex;flex-wrap:wrap;gap:9px;padding:10px;
  }
  .public-wizard.enterprise-v5 .hall-map-frame .map-toolbar-text {flex:1 1 145px;min-width:0;flex-wrap:wrap;font-size:0.75rem;line-height:1.5}
  .public-wizard.enterprise-v5 .hall-map-frame #activeHallCount {display:inline!important;white-space:normal}
  .public-wizard.enterprise-v5 .hall-map-frame .map-toolbar-divider {display:block!important}
  .public-wizard.enterprise-v5 .hall-map-frame .zoom-group {margin-left:auto;max-width:100%}
  .public-wizard.enterprise-v5 .hall-map-frame .map-help {font-size:0.6875rem;line-height:1.5}
  .public-wizard.enterprise-v5 .enlarged-map .map-legend {font-size:0.75rem;line-height:1.5}
  .public-wizard.enterprise-v5 .enlarged-map .hall-map-viewport {height:clamp(380px,68dvh,700px)}
  .public-wizard.enterprise-v5 .selection-checkout {gap:12px}
  .public-wizard.enterprise-v5 .wizard-actions {min-width:0}
  .public-wizard.enterprise-v5 .public-footer {flex-wrap:wrap;gap:12px;line-height:1.6}
  .public-wizard.enterprise-v5 .footer-links {flex-wrap:wrap}
}

@media(max-width:480px) {
  .enterprise-v5 .dashboard-request-filter {grid-template-columns:minmax(0,1fr);gap:12px;padding:16px}
  .enterprise-v5 .dashboard-request-filter .admin-secondary {width:100%}
  .enterprise-v5 .dashboard-clear-filter {justify-self:center;margin:0}
  .enterprise-v5 .cleanup-panel-heading {
    display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;
    align-items:start;
  }
  .enterprise-v5 .cleanup-panel-heading > div:nth-child(2) {grid-column:2;min-width:0}
  .enterprise-v5 .cleanup-panel-heading .table-count {grid-column:2;justify-self:start;margin:0}
  .enterprise-v5 .admin-links {grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
  .enterprise-v5 .admin-links > a {padding:10px 7px;font-size:0.75rem;align-items:flex-start}
  .enterprise-v5 .admin-links > a > span {font-size:0.75rem;line-height:1.35}
  .enterprise-v5 .admin-side-bottom {gap:6px}
  .enterprise-v5 .admin-main {padding:19px 12px 50px}
  .enterprise-v5 .admin-panel-header {padding:15px}
  .enterprise-v5 .stats-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .enterprise-v5 .stat-card {min-width:0;padding:14px}
  .enterprise-v5 .stat-card span,.enterprise-v5 .stat-card small {white-space:normal;overflow-wrap:anywhere}
  .enterprise-v5 .admin-table tbody tr {margin:10px 7px}
  .enterprise-v5 .admin-table td {padding:9px 11px}
  .enterprise-v5 .admin-user {font-size:.6875rem}
  .enterprise-v5 .topbar-breadcrumb {font-size:10px}
  .enterprise-v5 .admin-heading p {font-size:13px}
  .enterprise-v5 .dashboard-request-filter .form-field {min-width:0;width:100%}
  .enterprise-v5 .dashboard-request-filter .form-field :is(input,select) {min-width:0;width:100%;max-width:100%}

  .public-wizard.enterprise-v5 .page-shell {padding-left:12px;padding-right:12px}
  .public-wizard.enterprise-v5 .public-nav .brand-logo img {width:clamp(120px,38vw,153px);max-width:100%}
  .public-wizard.enterprise-v5 .public-nav .nav-right {flex:1 1 155px}
  .public-wizard.enterprise-v5 .wizard-intro .eyebrow {gap:6px;font-size:10px}
  .public-wizard.enterprise-v5 .wizard-intro h1 {font-size:clamp(25px,7vw,31px)}
  .public-wizard.enterprise-v5 .wizard-panel {padding:16px 12px}
  .public-wizard.enterprise-v5 .wizard-step {font-size:0.6875rem;overflow-wrap:anywhere;line-height:1.35}
  .public-wizard.enterprise-v5 .wizard-progress-line {width:100%}
  .public-wizard.enterprise-v5 .bandwidth-banner {
    display:grid;grid-template-columns:34px minmax(0,1fr);
    align-items:start;column-gap:10px;row-gap:10px;padding:13px;
  }
  .public-wizard.enterprise-v5 .bandwidth-banner-icon {grid-column:1;width:34px;height:34px}
  .public-wizard.enterprise-v5 .bandwidth-banner-content {grid-column:2;min-width:0}
  .public-wizard.enterprise-v5 .bandwidth-banner-content strong {font-size:0.8125rem;white-space:normal}
  .public-wizard.enterprise-v5 .bandwidth-banner-content span {font-size:0.75rem;line-height:1.5;white-space:normal}
  .public-wizard.enterprise-v5 .banner-more {grid-column:2;justify-self:start;margin:0!important;font-size:.75rem}
  .public-wizard.enterprise-v5 .enlarged-map .hall-map-viewport {height:clamp(350px,62dvh,610px)}
  .public-wizard.enterprise-v5 .generated-preview-password {flex-wrap:wrap;justify-content:flex-start}
  .public-wizard.enterprise-v5 .generated-preview-password code {flex:1 1 100%;font-size:16px}
  .public-wizard.enterprise-v5 .generated-preview-password .copy-preview {margin-left:auto}
  .public-wizard.enterprise-v5 .wizard-progress {padding:7px 4px}
  .public-wizard.enterprise-v5 .wizard-number {width:28px;height:28px}
  .public-wizard.enterprise-v5 .wizard-progress .wizard-step {padding:7px 2px}
}

@media(max-width:360px) {
  .public-wizard.enterprise-v5 .public-nav .nav-right {flex-basis:100%;justify-content:space-between}
  .public-wizard.enterprise-v5 .large-plan-grid {grid-template-columns:1fr}
  .public-wizard.enterprise-v5 .large-plan-grid .plan-option-content {
    min-height:0;display:grid;grid-template-columns:44px minmax(0,1fr);
    align-items:center;gap:6px 12px;padding:12px;
  }
  .public-wizard.enterprise-v5 .large-plan-grid .plan-symbol {grid-row:1/3}
  .public-wizard.enterprise-v5 .large-plan-grid .plan-name {grid-column:2}
  .public-wizard.enterprise-v5 .large-plan-grid .plan-detail {grid-column:2}
  .public-wizard.enterprise-v5 .map-toolbar .zoom-group {width:100%;justify-content:flex-end}
  .public-wizard.enterprise-v5 .hall-map-frame .map-toolbar-text {flex-basis:100%}
}

/* Keep navigation and login flexible as the automatic font size changes. */
.public-wizard.enterprise-v5 .nav-right{gap:9px;flex-wrap:wrap}
.enterprise-v5 .admin-topbar-actions{gap:12px;flex-wrap:wrap}
@media(max-width:480px){
  .enterprise-v5 .admin-topbar-actions{width:100%;justify-content:space-between}
  .login-body .login-card{padding:25px 19px;max-width:100%}
}

/* Keep essential admin descriptions readable even on compact screens. */
.enterprise-v5 :is(.admin-heading p,.admin-panel-header p){font-size:max(14px,.75rem)}

/* Do not make content disappear while awaiting scroll/reveal observers.
   Text must be readable even if animation observers are delayed on a device. */
.motion-ready:not(.motion-in){opacity:1;translate:none}

/* XENIA v31: international calling code and digits-only national phone input.
   The country selector and number field share one row without clipping, even
   when the user has increased OS/browser text scaling. */
.public-wizard.enterprise-v5 .phone-input-combo{
  display:grid;grid-template-columns:minmax(136px,47%) minmax(0,1fr);gap:8px;
  width:100%;min-width:0;align-items:center
}
.public-wizard.enterprise-v5 .phone-input-combo :is(select,input){
  box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:45px;
  min-height:45px;border:1px solid #d7e2df;border-radius:8px;background:#fff;
  color:#233c47;padding:0 9px;font:inherit;font-size:.8125rem;
}
.public-wizard.enterprise-v5 .phone-input-combo select{
  cursor:pointer;white-space:nowrap;padding-right:18px;text-overflow:ellipsis;
  font-size:.75rem;letter-spacing:-.01em
}
.public-wizard.enterprise-v5 .phone-input-combo :is(select,input):focus-visible{
  outline:2px solid #148f78;outline-offset:2px
}
.public-wizard.enterprise-v5 .phone-intl-preview{
  display:block;margin-top:8px;font-size:.75rem;color:#607e82;
  line-height:1.5;overflow-wrap:anywhere
}
.public-wizard.enterprise-v5 .phone-intl-preview strong{
  color:#176b5d;font-weight:800;font-variant-numeric:tabular-nums
}
@media(max-width:460px){
 .public-wizard.enterprise-v5 .phone-input-combo{grid-template-columns:minmax(120px,48%) minmax(0,1fr);gap:6px}
 .public-wizard.enterprise-v5 .phone-input-combo input{font-size:.8125rem;padding-left:7px}
 .public-wizard.enterprise-v5 .phone-input-combo select{font-size:.6875rem;padding-left:7px}
}

/* XENIA Connect v32: a real country flag beside the native dialing-code list. */
.public-wizard.enterprise-v5 .phone-input-combo .phone-country-picker{
  position:relative;min-width:0;width:100%
}
.public-wizard.enterprise-v5 .phone-input-combo .phone-country-flag{
  position:absolute;z-index:1;left:11px;top:50%;transform:translateY(-50%);
  display:inline-flex;align-items:center;justify-content:center;
  line-height:1;pointer-events:none;font-size:1.1rem
}
.public-wizard.enterprise-v5 .phone-input-combo .phone-country-picker select{
  padding-left:43px;padding-right:5px;max-width:100%;
  border-color:#cddce8;text-overflow:ellipsis
}
@media(max-width:460px){
 .public-wizard.enterprise-v5 .phone-input-combo .phone-country-flag{left:8px;font-size:1rem}
 .public-wizard.enterprise-v5 .phone-input-combo .phone-country-picker select{padding-left:36px}
}

/* Real offline flags: the sprite provides consistent rendering on Windows. */
.public-wizard.enterprise-v5 .phone-input-combo .phone-country-flag{
  width:32px;height:24px;border-radius:2px;background-repeat:no-repeat;
  background-image:url('../img/country-flags-v32.png');
  background-size:512px 360px;background-position:0 0;
  font-size:0;box-sizing:border-box;
}
.public-wizard.enterprise-v5 .phone-input-combo .phone-country-picker select{padding-left:49px}
@media(max-width:460px){
 .public-wizard.enterprise-v5 .phone-input-combo .phone-country-flag{left:7px}
 .public-wizard.enterprise-v5 .phone-input-combo .phone-country-picker select{padding-left:43px}
}
