/* Floorplan label visibility, persistent move tool, selection feedback and public viewport modes. */
.floor-canvas.hide-booth-codes .map-booth-label>.map-booth-code,
.editor-canvas.hide-booth-codes .map-booth-label>.map-booth-code{display:none!important}
.floor-canvas.hide-booth-names .map-booth-label>.map-booth-name,
.editor-canvas.hide-booth-names .map-booth-label>.map-booth-name{display:none!important}
.floor-canvas.hide-booth-names .map-booth-label>.map-booth-participants,
.editor-canvas.hide-booth-names .map-booth-label>.map-booth-participants{display:none!important}
.floor-canvas.hide-booth-codes.hide-booth-names .map-booth-label,
.editor-canvas.hide-booth-codes.hide-booth-names .map-booth-label{display:none!important}
[data-map-label]{position:relative}
[data-map-label].active{border-color:var(--brand-blue,#0e6eb8)!important;background:#fff!important;color:var(--brand-blue,#0e6eb8)!important;box-shadow:inset 0 -3px 0 var(--brand-blue,#0e6eb8)!important}
[data-map-label]:not(.active){opacity:.54;box-shadow:none!important}
.drawing-mode .editor-map-toolbar [data-editor-tool="move"],.editor-map-toolbar [data-editor-tool="move"]{position:sticky;z-index:55;left:0;display:inline-flex!important;border-color:#bfd0df;background:#fff;color:var(--brand-blue,#0e6eb8);box-shadow:0 3px 12px rgba(18,40,68,.14)}
.editor-item.selected:not(.landmark){filter:none!important;outline:3px solid var(--brand-red,#c30e23)!important;outline-offset:3px!important;box-shadow:0 0 0 6px rgba(195,14,35,.18),0 8px 22px rgba(51,19,25,.2)!important}
.editor-item.selected:not(.landmark)::before{position:absolute;z-index:8;right:-12px;top:-14px;display:grid;width:23px;height:23px;place-items:center;border:2px solid #fff;border-radius:50%;background:var(--brand-red,#c30e23);color:#fff;content:"✓";font-size:13px;font-weight:900;line-height:1;box-shadow:0 3px 9px rgba(51,19,25,.3);pointer-events:none}
.editor-item.landmark.selected .editor-landmark-pin{filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 5px var(--brand-red,#c30e23))!important}
.editor-overlays .floorplan-decoration-text.selected{outline:3px solid var(--brand-red,#c30e23)!important;outline-offset:3px!important;box-shadow:0 0 0 6px rgba(195,14,35,.16)!important}
.editor-overlays .floorplan-decoration-text.selected::after{position:absolute;right:-12px;top:-14px;display:grid;width:22px;height:22px;place-items:center;border:2px solid #fff;border-radius:50%;background:var(--brand-red,#c30e23);color:#fff;content:"✓";font:900 12px/1 system-ui;box-shadow:0 3px 9px rgba(51,19,25,.3)}
.editor-overlays .floorplan-decoration-line.selected{stroke:var(--brand-red,#c30e23)!important;filter:drop-shadow(0 0 1px #fff) drop-shadow(0 0 3px var(--brand-red,#c30e23))!important}
.floorplan-calibration-canvas [data-floorplan-overlay][data-design-selected="true"]{outline:3px solid var(--brand-red,#c30e23)!important;outline-offset:4px!important;box-shadow:0 0 0 7px rgba(195,14,35,.16),0 8px 20px rgba(51,19,25,.16)!important}
.floorplan-calibration-canvas.public-scope-noncustom [data-floorplan-overlay="extent"]{display:none!important}
[data-floorplan-public-display-control]{display:grid;gap:6px;margin-bottom:10px}
[data-floorplan-custom-range-fields]{display:grid;gap:8px}
.map-viewport.floorplan-max-width-mode,.booth-map-viewport.floorplan-max-width-mode{height:80vh;max-height:80vh;min-height:320px}
@media(max-width:700px){.editor-map-toolbar [data-editor-tool="move"]{left:0}.map-viewport.floorplan-max-width-mode,.booth-map-viewport.floorplan-max-width-mode{height:80vh!important;max-height:80vh!important;min-height:320px!important}}

/* Booth names, multi-exhibitor wrapping and inherited booth-number colour. */
.map-booth-code{background:var(--booth-color,var(--editor-color,#374151))!important}
.map-booth-participants{display:grid;width:100%;max-width:100%;min-width:0;gap:1px;color:inherit;font-size:max(8px,.82em);font-weight:650;line-height:1.08;text-align:center;white-space:normal}
.map-booth-participant-line{display:block;width:100%;max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.map-booth-hover-participants{display:block;width:100%;max-width:270px;color:#5b2130;font-weight:650;line-height:1.2;white-space:normal;overflow-wrap:anywhere;word-break:break-word}

/* Compact exhibition studio and predictable floor-plan sizing. */
.admin-floorplan-shell{width:min(1380px,calc(100% - 24px))!important;margin-top:14px}
.admin-floorplan-shell>.page-head{margin-bottom:12px}
.admin-floorplan-shell>.page-head h1{font-size:27px}
.admin-floorplan-shell .stack{gap:10px}
.admin-floorplan-shell .panel{padding:14px}
.admin-floorplan-shell .admin-nav{padding:6px}
.admin-floorplan-shell .admin-workspace-head{gap:10px;margin-bottom:10px}
.admin-floorplan-shell .admin-workspace-head h2,.admin-floorplan-shell .admin-workspace-head h3{margin-block:0 3px}
.admin-floorplan-shell .admin-workspace-head p{margin:0}
.admin-floorplan-shell .field{gap:3px}
.admin-floorplan-shell .field>span,.admin-floorplan-shell fieldset>legend{font-size:12px;font-weight:850}
.admin-floorplan-shell .field input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),.admin-floorplan-shell .field select{min-height:36px;height:36px;padding:6px 9px;border-radius:8px}
.admin-floorplan-shell .field input[type="color"]{width:62px;padding:3px}
.admin-floorplan-shell .field textarea{min-height:64px;padding:7px 9px;border-radius:8px;line-height:1.4}
.admin-floorplan-shell .button{min-height:36px;padding:7px 11px;border-radius:8px}
.admin-floorplan-shell .form-grid,.admin-floorplan-shell .bilingual-fields,.admin-floorplan-shell .bilingual-long-fields,.admin-floorplan-shell .floorplan-field-grid,.admin-floorplan-shell .floorplan-calibration-grid,.admin-floorplan-shell .floorplan-overlay-grid,.admin-floorplan-shell .editor-form-grid{gap:8px 10px}
.admin-floorplan-shell .floorplan-field-grid{grid-template-columns:repeat(4,minmax(150px,1fr))}
.admin-floorplan-shell .floorplan-overlay-grid{grid-template-columns:repeat(4,minmax(180px,1fr))}
.admin-floorplan-shell .editor-form-grid{grid-template-columns:repeat(4,minmax(150px,1fr))}
.admin-floorplan-shell .floorplan-calibration-grid fieldset,.admin-floorplan-shell .floorplan-overlay-grid fieldset,.admin-floorplan-shell .editor-map-settings-grid fieldset,.admin-floorplan-shell .editor-display-settings-grid fieldset{padding:10px}
.admin-floorplan-shell .check{min-height:34px}
.admin-floorplan-shell .notice{padding:9px 11px}
.editor-plan-bar{display:block;max-width:430px;margin:10px 0}
.editor-display-settings-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.editor-display-settings-head h3,.editor-display-settings-head p{margin:0}
.editor-display-settings-grid{display:grid;grid-template-columns:minmax(210px,.8fr) minmax(280px,1fr) minmax(320px,1.2fr);gap:10px}
.editor-display-settings-grid fieldset{min-width:0;margin:0;border:1px solid var(--line);border-radius:10px;background:#f8fafc}
.editor-display-settings-grid legend{padding:0 5px;font-weight:900}
.editor-display-settings-grid p{margin:7px 0 0}
.editor-display-settings-grid .editor-form-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}
.editor-display-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:2px}
.editor-display-save-status,.editor-sync-status{color:var(--muted);font-size:12px}
.landmark-display-setting[hidden],.frame-display-setting[hidden]{display:none!important}
.floorplan-calibration-canvas [data-floorplan-overlay][hidden]{display:none!important}
#map .map-workspace>.map-viewport,.booth-map-viewport{width:100%!important;height:var(--floorplan-viewport-height,480px)!important;min-height:0!important;max-height:none!important}
.public-map-toolbar>button,.booth-map-actions>button{display:inline-grid!important;width:38px!important;min-width:38px!important;height:38px!important;padding:0!important;place-items:center!important;font-size:0!important;line-height:1!important}
.public-map-toolbar>button .ui-icon,.booth-map-actions>button .ui-icon{width:20px;height:20px}
@media(max-width:1050px){.admin-floorplan-shell .floorplan-field-grid,.admin-floorplan-shell .floorplan-overlay-grid,.admin-floorplan-shell .editor-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-display-settings-grid{grid-template-columns:1fr 1fr}.editor-display-settings-grid>fieldset:first-child{grid-column:1/-1}}
@media(max-width:700px){.admin-floorplan-shell{width:calc(100% - 14px)!important}.admin-floorplan-shell .panel{padding:11px}.admin-floorplan-shell .floorplan-field-grid,.admin-floorplan-shell .floorplan-overlay-grid,.admin-floorplan-shell .editor-form-grid,.editor-display-settings-grid{grid-template-columns:1fr}.editor-display-settings-grid>fieldset:first-child{grid-column:auto}.editor-display-settings-head{align-items:stretch;flex-direction:column}.editor-display-settings-head .button{width:100%}#map .map-workspace>.map-viewport,.booth-map-viewport{height:var(--floorplan-viewport-height,380px)!important;min-height:0!important;max-height:none!important}}

/* Grouped exhibition navigation and compact plan selection. */
.admin-floorplan-shell .admin-function-tabs{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:6px!important;padding:7px!important;overflow:visible!important}
.admin-tab-group-switches{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;min-width:0}
.admin-floorplan-shell .admin-tab-group-switches>button{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box!important;width:100%!important;max-width:none!important;min-width:0!important;min-height:42px;padding:8px 30px 8px 12px!important;overflow:visible!important;border:1px solid var(--line);border-radius:10px;background:#f7f9fc;color:var(--ink);font-size:13px!important;font-weight:900;text-overflow:clip!important;white-space:nowrap!important;flex:none!important}
.admin-floorplan-shell .admin-tab-group-switches>button::after{position:absolute;right:12px;top:50%;color:var(--muted);content:"⌄";font-size:16px;line-height:1;transform:translateY(-58%);transition:transform .15s ease}
.admin-floorplan-shell .admin-tab-group-switches>button.active{border-color:#f1bcc4;background:var(--brand-red-soft);color:var(--brand-red)}
.admin-floorplan-shell .admin-tab-group-switches>button.active::after{color:var(--brand-red);transform:translateY(-42%) rotate(180deg)}
.admin-tab-group-panel{grid-column:1/-1;display:flex;align-items:center;gap:6px;flex-wrap:wrap;width:100%;min-width:0;box-sizing:border-box;padding:7px;border:1px solid #e3e9f0;border-radius:10px;background:#fbfcfe;box-shadow:0 5px 16px rgba(22,34,54,.06)}
.admin-tab-group-panel[hidden]{display:none!important}
.admin-floorplan-shell .admin-tab-group-panel>button{flex:0 0 auto!important;width:auto!important;max-width:none!important;min-width:max-content!important;min-height:36px;padding:7px 12px!important;overflow:visible!important;border-radius:8px;font-size:12px!important;text-overflow:clip!important;white-space:nowrap!important}
.admin-floorplan-shell .admin-tab-group-panel>button.active{background:#fff0f2;color:var(--brand-red);box-shadow:inset 0 0 0 1px #f0c4cb}
.admin-floorplan-shell [data-requires-published].locked{opacity:.52;cursor:not-allowed}
.admin-tab-publish-hint{margin-left:auto;padding:0 6px;color:var(--muted);font-size:12px;white-space:nowrap}
.admin-floorplan-shell .editor-plan-bar{display:flex!important;align-items:center!important;gap:8px!important;width:100%!important;margin:8px 0!important}
.admin-floorplan-shell .editor-plan-picker{display:grid!important;grid-template-columns:max-content minmax(280px,680px)!important;align-items:center!important;gap:8px!important;width:min(100%,780px)!important;max-width:none!important}
.admin-floorplan-shell .editor-plan-picker>span{white-space:nowrap}
.admin-floorplan-shell .editor-plan-picker>select{height:36px;min-height:36px}

/* Content-aware exhibition-admin form density. */
.admin-floorplan-shell :is(.field,.check,fieldset,details){min-width:0}
.admin-floorplan-shell :is(input,select,textarea){box-sizing:border-box;max-width:100%}
.admin-floorplan-shell .field>span{overflow-wrap:anywhere}
.admin-floorplan-shell textarea{min-height:96px;resize:vertical;line-height:1.55}
.admin-floorplan-shell .bilingual-long-fields textarea{min-height:146px}
.admin-floorplan-shell .exhibition-basic-form textarea:is([name="descriptionZh"],[name="descriptionEn"]){min-height:196px}
.admin-floorplan-shell .exhibition-basic-form textarea:is([name="importantInfo"],[name="importantInfoEn"]){min-height:158px}
.admin-floorplan-shell .floorplan-color-palette{display:none!important}
.admin-floorplan-shell .floorplan-color-compact{display:grid!important;grid-template-columns:minmax(112px,160px) 36px;gap:6px;align-items:center;width:min(100%,202px);margin-top:0}
.admin-floorplan-shell .floorplan-color-select,
.admin-floorplan-shell .floorplan-color-compact-custom{box-sizing:border-box;height:36px!important;min-height:36px!important;border-radius:8px}
.admin-floorplan-shell .floorplan-color-select{width:100%;padding-block:5px}
.admin-floorplan-shell .floorplan-color-compact-custom{width:36px!important;min-width:36px!important;padding:2px!important}
.admin-floorplan-shell .field:has(>.floorplan-color-palette){container-type:normal}
@media(min-width:1101px){
  .admin-floorplan-shell :is(.form-grid,.floorplan-upload-form,.floorplan-field-grid,.floorplan-canvas-size-grid){
    display:grid;
    grid-template-columns:repeat(16,minmax(0,1fr));
    align-items:end;
    gap:8px 10px
  }
  .admin-floorplan-shell :is(.form-grid,.floorplan-upload-form,.floorplan-field-grid,.floorplan-canvas-size-grid)>.field{grid-column:span 4;min-width:0}
  .admin-floorplan-shell :is(.form-grid,.floorplan-upload-form,.floorplan-field-grid,.floorplan-canvas-size-grid)>.field:has(input:is([type="number"],[type="date"],[type="time"],[type="color"])){grid-column:span 3}
  .admin-floorplan-shell :is(.form-grid,.floorplan-upload-form)>.field:has(input[type="file"]){grid-column:span 8}
  .admin-floorplan-shell .floorplan-upload-form>.field.wide:has(input:not([type="file"])){grid-column:span 8}
  .admin-floorplan-shell :is(.form-grid,.floorplan-upload-form)>.field:has(input:is([type="email"],[type="url"])){grid-column:span 4}
  .admin-floorplan-shell :is(.form-grid,.floorplan-upload-form,.floorplan-field-grid)>.field:has(textarea),
  .admin-floorplan-shell :is(.form-grid,.floorplan-upload-form,.floorplan-field-grid)>:is(fieldset,details,.notice,pre){grid-column:1/-1}
  .admin-floorplan-shell :is(.form-grid,.floorplan-upload-form)>.bilingual-fields{grid-column:span 8}
  .admin-floorplan-shell :is(.form-grid,.floorplan-upload-form)>.bilingual-long-fields{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-floorplan-shell :is(.form-grid,.floorplan-upload-form)>.identifier-field{grid-column:span 8}
  .admin-floorplan-shell :is(.form-grid,.floorplan-upload-form,.floorplan-field-grid)>.button.wide{grid-column:span 4;justify-self:start;width:auto;min-width:180px}
  .admin-floorplan-shell .floorplan-upload-form>.field:has(select[name="exhibitionId"]){grid-column:span 4}
  .admin-floorplan-shell .floorplan-upload-form>.field:has(input[name="planCode"]){grid-column:span 2}
  .admin-floorplan-shell .floorplan-upload-form>.field:has(select[name="sourceType"]){grid-column:span 3}
  .admin-floorplan-shell .floorplan-upload-form>.field:has(select[name="displayBaseMode"]){grid-column:span 4}
  .admin-floorplan-shell .floorplan-upload-form>.field:has(input:is([name="buildingCode"],[name="floorCode"])){grid-column:span 2}
  .admin-floorplan-shell .floorplan-upload-form>.field:has(input:is([name="buildingNameZh"],[name="buildingNameEn"],[name="floorNameZh"],[name="floorNameEn"])){grid-column:span 3}
  .admin-floorplan-shell .floorplan-canvas-size-grid>.field.wide:has(select){grid-column:span 6}
  .admin-floorplan-shell .floorplan-canvas-size-grid>.check.wide{grid-column:span 4;align-self:end}
  .admin-floorplan-shell .form-grid>.field.wide:has(select){grid-column:span 4}
  .admin-floorplan-shell .form-grid>.field.wide:has(input:not([type="file"])){grid-column:span 8}
  .admin-floorplan-shell .zone-group-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-floorplan-shell .zone-group-form .form-grid>.field{grid-column:auto}
  .admin-floorplan-shell .zone-group-form .form-grid>:is(.bilingual-fields,.bilingual-long-fields){grid-column:1/-1}
  .admin-floorplan-shell .zone-group-form .bilingual-long-fields{grid-template-columns:1fr}
  .admin-floorplan-shell .editor-form-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:8px 10px}
  .admin-floorplan-shell .editor-form-grid>.field{min-width:0}
}
@media(min-width:701px) and (max-width:1100px){
  .admin-floorplan-shell .floorplan-color-compact{grid-template-columns:minmax(100px,1fr) 36px;width:min(100%,220px)}
  .admin-floorplan-shell .bilingual-long-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-floorplan-shell :is(.form-grid,.floorplan-upload-form)>.button.wide{justify-self:start;width:auto;min-width:180px}
}
@media(max-width:700px){
  .admin-floorplan-shell .editor-plan-picker{grid-template-columns:max-content minmax(0,1fr)!important;width:100%!important}
  .admin-floorplan-shell .floorplan-color-compact{grid-template-columns:minmax(0,1fr) 36px;width:100%}
  .admin-floorplan-shell .bilingual-long-fields{grid-template-columns:1fr}
  .admin-floorplan-shell :is(.form-grid,.floorplan-upload-form)>.button.wide{width:100%}
  .admin-tab-publish-hint{width:100%;margin-left:0}
}

/* Stable two-level admin navigation and zone summary cards. */
.admin-floorplan-shell .admin-function-tabs{justify-items:start}
.admin-floorplan-shell .admin-tab-group-switches{grid-template-columns:repeat(3,minmax(126px,150px));justify-content:start;width:max-content;max-width:100%}
.admin-floorplan-shell .admin-tab-group-switches>button{width:150px!important;max-width:150px!important}
.admin-floorplan-shell .admin-tab-group-panel{justify-content:flex-start}
.admin-floorplan-shell .zone-group-card{grid-template-columns:13px minmax(220px,1fr) minmax(270px,auto) auto}
.admin-floorplan-shell .zone-group-card.is-hidden{border-style:dashed;background:#f5f7fa;color:#667085}
.admin-floorplan-shell .zone-group-card.is-hidden .zone-group-swatch{filter:saturate(.35);opacity:.55}
.admin-floorplan-shell .zone-group-info{display:grid;gap:3px;min-width:0}
.admin-floorplan-shell .zone-group-stats{display:grid!important;grid-template-columns:repeat(3,minmax(76px,1fr));gap:6px;min-width:270px}
.admin-floorplan-shell .zone-group-stats>span{display:grid;gap:1px;min-width:0;padding:7px 9px;border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc;text-align:center}
.admin-floorplan-shell .zone-group-stats strong{overflow:hidden;color:var(--ink);font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.admin-floorplan-shell .zone-group-stats small{color:var(--muted);font-size:11px;white-space:nowrap}
@media(max-width:900px){
  .admin-floorplan-shell .zone-group-card{grid-template-columns:11px minmax(0,1fr) auto}
  .admin-floorplan-shell .zone-group-stats{grid-column:2/4;grid-row:2;min-width:0}
  .admin-floorplan-shell .zone-group-actions{grid-column:3;grid-row:1}
}
@media(max-width:700px){
  .admin-floorplan-shell .admin-function-tabs{overflow-x:auto!important}
  .admin-floorplan-shell .admin-tab-group-switches{grid-template-columns:repeat(3,132px);width:max-content}
  .admin-floorplan-shell .admin-tab-group-switches>button{width:132px!important;max-width:132px!important}
  .admin-floorplan-shell .admin-tab-group-panel{width:max-content;min-width:100%;flex-wrap:nowrap}
  .admin-floorplan-shell .zone-group-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .admin-floorplan-shell .zone-group-stats>span{padding-inline:5px}
}
@media(max-width:520px){
  .admin-floorplan-shell .admin-tab-group-switches{grid-template-columns:1fr}
  .admin-floorplan-shell .admin-tab-group-switches>button{justify-content:flex-start;padding-inline:12px 30px!important;font-size:12px!important}
  .admin-floorplan-shell .editor-plan-picker{grid-template-columns:1fr!important;gap:4px!important}
}

/* Readable overlay settings and bilingual zone-legend matrix. */
.admin-floorplan-shell .floorplan-overlay-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr))}
.admin-floorplan-shell .floorplan-overlay-grid fieldset .floorplan-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:end}
.admin-floorplan-shell .floorplan-overlay-grid fieldset .floorplan-field-grid>.field{grid-column:auto!important}
.admin-floorplan-shell .floorplan-overlay-grid fieldset .floorplan-field-grid.two>.field:has(input[type="color"]),
.admin-floorplan-shell .floorplan-overlay-grid fieldset .floorplan-field-grid.two>.field:has(input[type="range"]){grid-column:1/-1}
.admin-floorplan-shell .floorplan-overlay-grid .floorplan-color-compact{width:min(100%,240px)}
.zone-legend-array-help{grid-column:1/-1;margin:2px 0 0;line-height:1.45}
.floorplan-zone-legend{width:max-content!important;min-width:0!important;max-width:none!important;grid-template-columns:repeat(var(--zone-legend-columns,1),max-content);grid-template-rows:repeat(var(--zone-legend-rows,6),auto);grid-auto-flow:row;column-gap:10px;row-gap:5px}
.floorplan-zone-row{grid-template-columns:10px max-content!important}
.floorplan-zone-row>.floorplan-zone-copy{position:relative;display:grid;gap:2px;min-width:max-content!important}
.floorplan-zone-row b,.floorplan-zone-row small{overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important}
.floorplan-zone-name-measure{display:grid;height:0;overflow:hidden;visibility:hidden;white-space:nowrap}
.floorplan-zone-name-measure>i{grid-area:1/1;font-style:normal;font-weight:800;white-space:nowrap}

/* Give frame-style booth labels almost the full booth width. */
.floor-canvas .map-booth:not(.landmark),.booth-floor-canvas .map-booth:not(.landmark),.editor-canvas .editor-item:not(.landmark){padding:1px!important}
.map-booth:not(.landmark)>.map-booth-label,.editor-item:not(.landmark)>.map-booth-label{width:calc(100% + 2px);max-width:calc(100% + 2px);height:calc(100% + 2px);max-height:calc(100% + 2px);margin:-1px;overflow:hidden;align-content:center;grid-auto-rows:max-content}
.map-booth:not(.landmark)>.map-booth-label>.map-booth-name,.editor-item:not(.landmark)>.map-booth-label>.map-booth-name{padding:0 1px;line-height:1.02;-webkit-line-clamp:8}

/* Mixed mode keeps frame booth labels available while landmark labels stay hover-only. */
.floor-canvas.landmark-mode:not(.hide-booth-codes.hide-booth-names) .map-booth:not(.landmark)>.map-booth-label{display:grid!important}

/* Tool hints must paint above the following map viewport instead of being covered by it. */
.public-map-toolbar,.booth-map-actions{position:relative;z-index:2147483500;overflow:visible!important}
.public-map-toolbar>button:is(:hover,:focus-visible),.booth-map-actions>button:is(:hover,:focus-visible){z-index:2147483600}
.public-map-toolbar>button::after,.booth-map-actions>button::after{z-index:2147483640!important}
.public-map-toolbar>button::before,.booth-map-actions>button::before{z-index:2147483641!important}

/* Public booth hero: show the complete exhibitor list on its own wrapping line. */
.booth-page-participants{display:block;max-width:min(100%,960px);margin:0 0 7px!important;color:rgba(255,255,255,.92);font-size:clamp(13px,1.35vw,16px);font-weight:700;line-height:1.4;overflow-wrap:anywhere}
.booth-page-participants[hidden]{display:none!important}

/* Exhibition hero dates and external calls-to-action stay explicit and readable on any banner. */
.marketing-proof .online-period-label{font-weight:900;white-space:nowrap}
.marketing-hero .campaign-links{align-items:center;gap:9px;margin-top:14px}
.marketing-hero .campaign-links .campaign-link-button{display:inline-flex;min-height:42px;align-items:center;gap:7px;padding:9px 15px;border-radius:999px;text-decoration:none!important}
.marketing-hero .campaign-links .campaign-link-primary{border:1px solid rgba(255,255,255,.7);color:#fff!important}
.marketing-hero .campaign-links .campaign-link-secondary{border:1px solid #fff;background:#fff;color:var(--brand-red-deep,#8f0b1d)!important}
.marketing-hero .campaign-links .campaign-link-button .ui-icon{width:17px;height:17px}

/* Fixed top-centre booth codes and responsive long names 2026-09-11. */
.map-booth:not(.landmark)>.map-booth-label,.editor-item:not(.landmark)>.map-booth-label{position:relative!important;box-sizing:border-box!important;padding:20px 2px 2px!important;align-content:center!important;justify-items:center!important}
.map-booth:not(.landmark)>.map-booth-label>.map-booth-code,.editor-item:not(.landmark)>.map-booth-label>.map-booth-code{position:absolute!important;z-index:3;top:2px!important;left:50%!important;right:auto!important;transform:translateX(-50%)!important;margin:0!important;max-width:calc(100% - 4px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.map-booth:not(.landmark)>.map-booth-label>.map-booth-name,.editor-item:not(.landmark)>.map-booth-label>.map-booth-name{display:-webkit-box!important;width:100%;max-width:100%;min-width:0;overflow:hidden!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important;text-align:center;-webkit-box-orient:vertical;-webkit-line-clamp:5}
.map-booth:not(.landmark)>.map-booth-label>.map-booth-primary-name,.editor-item:not(.landmark)>.map-booth-label>.map-booth-primary-name{font-size:clamp(7px,1.14em,14px)!important;line-height:1.06!important}
.map-booth[data-label-density="dense"]>.map-booth-label>.map-booth-primary-name,.editor-item[data-label-density="dense"]>.map-booth-label>.map-booth-primary-name{font-size:clamp(6px,.96em,12px)!important}
.map-booth[data-label-density="very-dense"]>.map-booth-label>.map-booth-primary-name,.editor-item[data-label-density="very-dense"]>.map-booth-label>.map-booth-primary-name{font-size:clamp(5px,.8em,10px)!important;-webkit-line-clamp:4}
.map-booth:not(.landmark)>.map-booth-label>.map-booth-exhibitors,.editor-item:not(.landmark)>.map-booth-label>.map-booth-exhibitors{width:100%;max-width:100%;min-width:0;overflow:hidden;overflow-wrap:anywhere;word-break:break-word}
@media(max-width:700px){.floor-canvas .map-booth:not(.landmark)>.map-booth-label,.booth-floor-canvas .map-booth:not(.landmark)>.map-booth-label{grid-template-rows:minmax(0,1fr)!important;padding:17px 1px 1px!important}.floor-canvas .map-booth:not(.landmark)>.map-booth-label>.map-booth-code,.booth-floor-canvas .map-booth:not(.landmark)>.map-booth-label>.map-booth-code{top:1px!important}}

/* Multi-exhibitor links always use their physical booth colour. */
.map-booth-exhibitors{color:var(--booth-color,var(--editor-color,var(--brand-blue,#0e6eb8)))}
.map-booth-exhibitors :is(.map-booth-primary-name,.map-booth-exhibitor-link,.map-booth-exhibitor-name),.map-booth-exhibitors :is(.map-booth-exhibitor-link:link,.map-booth-exhibitor-link:visited,.map-booth-exhibitor-link:hover,.map-booth-exhibitor-link:focus-visible){color:var(--booth-color,var(--editor-color,var(--brand-blue,#0e6eb8)))!important;text-decoration:none!important}
.map-booth-page-link,.map-booth-page-link:link,.map-booth-page-link:visited{color:inherit!important;text-decoration:none!important;cursor:pointer}.map-booth-page-link:hover,.map-booth-page-link:focus-visible,.map-booth-exhibitor-link:hover,.map-booth-exhibitor-link:focus-visible{text-decoration:underline!important;text-underline-offset:2px}
.map-booth-exhibitor-separator,.booth-hero-exhibitor-separator{display:inline-block;padding:0!important;overflow:hidden;white-space:nowrap}
.map-booth-exhibitor-separator{flex:0 0 .65em;width:.65em;font-size:.72em}
.booth-hero-exhibitor-separator{flex:0 0 .8em;width:.8em;font-size:.78em}
.map-booth:not(.landmark)>.map-booth-label>.map-booth-exhibitors,.editor-item:not(.landmark)>.map-booth-label>.map-booth-exhibitors{align-content:center;column-gap:0;row-gap:0;line-height:1.02}
.map-booth-exhibitors>:is(.map-booth-exhibitor-link,.map-booth-exhibitor-name){font-size:.96em!important;font-weight:500!important;line-height:1!important}
.map-booth-exhibitors>.map-booth-primary-name{font-weight:750!important;line-height:1.02!important}
.map-booth[data-label-density="dense"]>.map-booth-label>.map-booth-exhibitors,.editor-item[data-label-density="dense"]>.map-booth-label>.map-booth-exhibitors{font-size:.82em!important}
.map-booth[data-label-density="very-dense"]>.map-booth-label>.map-booth-exhibitors,.editor-item[data-label-density="very-dense"]>.map-booth-label>.map-booth-exhibitors{font-size:.76em!important;line-height:1!important}
.booth-hero-related a{font-size:.92em;font-weight:500}
.sub-booth-card,.sub-booth-card:link,.sub-booth-card:visited,.sub-booth-card:hover,.sub-booth-card:focus-visible{text-decoration:none!important}

/* V1.1.14: show a shared booth code once and keep vendor links compact. */
.sub-booth-grid{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 8px;min-width:0}.sub-booth-shared-code{flex:0 0 auto}.sub-booth-links{display:flex;flex:1 1 280px;min-width:0;align-items:baseline;flex-wrap:wrap}.sub-booth-link-item{display:inline-flex;max-width:100%;min-width:0;align-items:baseline}.sub-booth-separator{flex:0 0 auto;padding:0 .34em;color:#64748b;font-weight:700}.sub-booth-link-item .sub-booth-card{display:inline;min-width:0;padding:0;border:0;border-radius:0;background:transparent;color:var(--brand-blue,#0e6eb8);box-shadow:none;transform:none;overflow-wrap:anywhere;text-wrap:balance}.sub-booth-link-item .sub-booth-card:hover,.sub-booth-link-item .sub-booth-card:focus-visible{border:0;box-shadow:none;transform:none}

/* Balance short CJK labels so a single trailing character is not orphaned. */
.map-booth:not(.landmark)>.map-booth-label>.map-booth-name,.editor-item:not(.landmark)>.map-booth-label>.map-booth-name,.map-booth-exhibitors>:is(.map-booth-primary-name,.map-booth-exhibitor-link,.map-booth-exhibitor-name){text-wrap:balance}.map-booth-exhibitors>:is(.map-booth-primary-name,.map-booth-exhibitor-link,.map-booth-exhibitor-name){display:inline-block;max-width:100%;vertical-align:middle}
.map-booth-exhibitor-separator.is-line-boundary{visibility:hidden}
@media(max-width:700px){.floor-canvas .map-booth:not(.landmark)>.map-booth-label>:is(.map-booth-name,.map-booth-exhibitors),.booth-floor-canvas .map-booth:not(.landmark)>.map-booth-label>:is(.map-booth-name,.map-booth-exhibitors){font-size:clamp(7px,.7em,9px)!important;line-height:1.02!important}.floor-canvas .map-booth-exhibitors>:is(.map-booth-primary-name,.map-booth-exhibitor-link,.map-booth-exhibitor-name),.booth-floor-canvas .map-booth-exhibitors>:is(.map-booth-primary-name,.map-booth-exhibitor-link,.map-booth-exhibitor-name){font-size:inherit!important;line-height:inherit!important}}
@media(max-width:700px){.floor-canvas .map-booth[data-label-density="dense"]>.map-booth-label>.map-booth-exhibitors,.booth-floor-canvas .map-booth[data-label-density="dense"]>.map-booth-label>.map-booth-exhibitors{font-size:clamp(6.75px,.66em,8.5px)!important}.floor-canvas .map-booth[data-label-density="very-dense"]>.map-booth-label>.map-booth-exhibitors,.booth-floor-canvas .map-booth[data-label-density="very-dense"]>.map-booth-label>.map-booth-exhibitors{font-size:clamp(6.5px,.62em,8px)!important;line-height:1!important}.floor-canvas .map-booth-exhibitors>:is(.map-booth-exhibitor-link,.map-booth-exhibitor-name),.booth-floor-canvas .map-booth-exhibitors>:is(.map-booth-exhibitor-link,.map-booth-exhibitor-name){font-size:.96em!important;font-weight:500!important;line-height:1!important}.map-booth-exhibitor-separator{flex-basis:.5em;width:.5em}}

/* Keep every public exhibitor label centred with one consistent visual axis. */
.floor-canvas .map-booth-label,.booth-floor-canvas .map-booth-label{justify-items:center!important;text-align:center!important}
.floor-canvas .map-booth-label>:is(.map-booth-name,.map-booth-participants,.map-booth-exhibitors),.booth-floor-canvas .map-booth-label>:is(.map-booth-name,.map-booth-participants,.map-booth-exhibitors){justify-self:center!important;width:100%;max-width:100%;text-align:center!important}
.floor-canvas .map-booth-participants,.booth-floor-canvas .map-booth-participants{justify-items:center!important}
.floor-canvas :is(.map-booth-participant-line,.map-booth-primary-name,.map-booth-exhibitor-link,.map-booth-exhibitor-name),.booth-floor-canvas :is(.map-booth-participant-line,.map-booth-primary-name,.map-booth-exhibitor-link,.map-booth-exhibitor-name){text-align:center!important}
.floor-canvas .map-booth-exhibitors,.booth-floor-canvas .map-booth-exhibitors{align-content:center!important;align-items:center!important;justify-content:center!important}

.floor-canvas .map-booth[data-booth]{cursor:pointer}

/* Keep booth codes complete inside narrow frames and tighten the following line. */
.map-booth:not(.landmark)>.map-booth-label,.editor-item:not(.landmark)>.map-booth-label{padding:18px 1px 1px!important}
.map-booth:not(.landmark)>.map-booth-label>.map-booth-code,.editor-item:not(.landmark)>.map-booth-label>.map-booth-code{box-sizing:border-box!important;top:1px!important;max-width:calc(100% - 2px)!important;padding:1px 2px!important;font-size:clamp(6px,.76em,10px)!important;letter-spacing:-.035em!important;line-height:1!important;text-overflow:clip!important}
@media(max-width:700px){.floor-canvas .map-booth:not(.landmark)>.map-booth-label,.booth-floor-canvas .map-booth:not(.landmark)>.map-booth-label{padding:15px 1px 1px!important}.floor-canvas .map-booth:not(.landmark)>.map-booth-label>.map-booth-code,.booth-floor-canvas .map-booth:not(.landmark)>.map-booth-label>.map-booth-code{padding-inline:1px!important;font-size:clamp(6px,.7em,9px)!important}}
