/* Booth Planner public foundations. Administrative editor/tooling rules intentionally excluded. */
.bp-wrap .bp-cards{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px;margin:18px 0}.bp-cards>div{background:#fff;border:1px solid #ccd0d4;border-radius:8px;padding:16px}.bp-cards strong{display:block;color:#50575e}.bp-cards span{display:block;font-size:24px;font-weight:700;margin-top:8px}.bp-small-table{max-width:900px}.bp-toolbar{margin:14px 0;display:flex;gap:8px;flex-wrap:wrap}.bp-map-card{background:#fff;border:1px solid #ccd0d4;border-radius:8px;padding:14px;margin:18px 0}.bp-map-card h2{margin-top:0}.bp-map-actions{margin-bottom:10px;display:flex;gap:8px;flex-wrap:wrap}.bp-map-stage{position:relative;width:100%;height:72vh;min-height:520px;border:1px solid #ccd0d4;overflow:auto;background:#f6f7f7}.bp-map-image-wrap{position:relative;display:inline-block;min-width:100%}.bp-map-img{display:block;width:100%;height:auto;max-width:none}.bp-overlay-layer{position:absolute;inset:0}.bp-no-bg{height:520px;display:flex;align-items:center;justify-content:center;color:#646970}.bp-booth{position:absolute;border:2px solid rgba(0,0,0,.55);border-radius:3px;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:.88;color:#111;text-shadow:0 1px 0 rgba(255,255,255,.45);padding:0;min-height:0}.bp-booth:hover{opacity:1;outline:3px solid #2271b1;z-index:5}.bp-drawing .bp-overlay-layer{cursor:crosshair}.bp-drawing .bp-booth{pointer-events:none}.bp-draw-box{position:absolute;border:2px dashed #2271b1;background:rgba(34,113,177,.18);z-index:10}.bp-draw-help{position:sticky;top:10px;left:10px;display:inline-block;margin:10px;background:#1d2327;color:#fff;padding:8px 10px;border-radius:4px;z-index:20}.bp-modal{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:99999;display:flex;align-items:center;justify-content:center}.bp-modal-inner{background:#fff;max-width:760px;width:calc(100% - 40px);max-height:85vh;overflow:auto;border-radius:8px;padding:20px;position:relative}.bp-close{position:absolute;right:12px;top:8px;border:0;background:transparent;font-size:28px;cursor:pointer}.bp-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.bp-form-row{margin:10px 0}.bp-form-row label{display:block;font-weight:600;margin-bottom:4px}.bp-form-row input,.bp-form-row select,.bp-form-row textarea{width:100%}.bp-vendor-search{width:100%;margin:0 0 10px}.bp-vendor-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddd;padding:8px 0;gap:10px}.bp-public-maps .bp-map-actions,.bp-public-maps .bp-edit-map,.bp-public-maps .bp-add-booth,.bp-public-maps .bp-draw-booth{display:none}.bp-public-maps .bp-map-stage{height:80vh}.bp-public-maps .bp-map-card{border:0;padding:0}.bp-public-maps .bp-booth{cursor:default}
@media (max-width:900px){.bp-wrap .bp-cards{grid-template-columns:1fr 1fr}.bp-map-stage{height:70vh}.bp-form-grid{grid-template-columns:1fr}}
.bp-booth.bp-moving{opacity:.75;outline:3px dashed #2271b1;z-index:50;cursor:move}
.bp-map-card:not(.bp-drawing) .bp-booth{cursor:move}
.bp-snap-control{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid #ccd0d4;border-radius:4px;padding:3px 8px}
.bp-snap-control input[type="number"]{width:70px}
.bp-mode-label{display:inline-flex;align-items:center;font-weight:700;background:#f0f6fc;border:1px solid #72aee6;border-radius:4px;padding:4px 10px}
.bp-wrap:not(.bp-layout-editing) .bp-layout-only,
.bp-wrap:not(.bp-layout-editing) .bp-map-actions{display:none}
.bp-wrap:not(.bp-layout-editing) .bp-booth{cursor:pointer}
.bp-layout-editing .bp-booth{cursor:move}
.bp-layout-editing .bp-mode-label{background:#fff4e5;border-color:#f0b849;color:#1d2327}

.bp-has-note{box-shadow:inset 0 0 0 2px rgba(0,0,0,.25)}
.bp-note-dot{position:absolute;right:-8px;top:-8px;width:16px;height:16px;line-height:16px;border-radius:50%;background:#d63638;color:#fff;font-size:11px;text-shadow:none;border:1px solid #fff}
.bp-space-note{background:#fff8e5;border-left:4px solid #dba617;margin:10px 0 14px;padding:10px 12px}
.bp-category-chip{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid rgba(0,0,0,.25);vertical-align:-1px;margin-right:6px}

.bp-booth{flex-direction:column;gap:1px;line-height:1.05;overflow:hidden;text-align:center}
.bp-booth-vendor{display:none;font-size:10px;font-weight:600;line-height:1.05;max-width:100%;padding:0 2px;white-space:normal;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 0 rgba(255,255,255,.55)}
.bp-preview-vendor-names .bp-booth{font-size:11px;padding:2px}
.bp-preview-vendor-names .bp-booth-vendor{display:block}
.bp-preview-vendor-names .bp-booth-code{font-size:10px;opacity:.85}
.bp-settings-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;align-items:start}
.bp-settings-side{background:#fff;border:1px solid #ccd0d4;border-radius:8px;padding:16px;margin-top:10px}
.bp-settings-side h2{margin-top:0}.bp-settings-side code{background:#f0f0f1;padding:2px 4px;border-radius:3px}.bp-revision-list{margin-left:18px;list-style:disc}
@media (max-width:1000px){.bp-settings-grid{grid-template-columns:1fr}}

.bp-public-maps .bp-booth{cursor:default;text-decoration:none;color:#111}
.bp-public-maps .bp-booth[href]{cursor:pointer}
.bp-public-maps .bp-booth-vendor{display:block;font-size:10px;line-height:1.05;padding:0 2px;max-width:100%}
.bp-public-maps .bp-booth-code{font-size:10px;opacity:.85}
.bp-vendor-thumb{display:block;max-width:80%;max-height:60%;object-fit:contain;background:rgba(255,255,255,.65);border-radius:2px;padding:1px;box-sizing:border-box}
.bp-public-maps .bp-has-vendor-image .bp-booth-vendor{display:none}
.bp-public-maps .bp-has-vendor-image:hover .bp-booth-vendor{display:block;position:absolute;left:0;right:0;bottom:0;background:rgba(255,255,255,.85);padding:2px;text-shadow:none}

.bp-map-legend{background:#fff;border:1px solid #ccd0d4;border-radius:8px;padding:12px 14px;margin:0 0 12px}
.bp-map-legend h3{margin:0 0 8px;font-size:16px}
.bp-legend-grid{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
.bp-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:14px;line-height:1.2;white-space:nowrap}
.bp-legend-swatch{display:inline-block;width:16px;height:16px;border:1px solid rgba(0,0,0,.35);border-radius:3px;box-sizing:border-box}
.bp-public-admin-tools{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px;padding:8px 0;border-bottom:1px solid #ddd}
.bp-print-title{display:none}

@media print{
  body.bp-printing *{visibility:hidden!important}
  .bp-print-target,
  .bp-print-target *{visibility:visible!important}
  .bp-print-target{position:absolute!important;left:0!important;top:0!important;width:100%!important;margin:0!important;padding:0!important;border:0!important;background:#fff!important}
  .bp-print-target>h2,
  .bp-public-admin-tools{display:none!important}
  .bp-print-target .bp-print-title{display:block!important;margin:0 0 10px!important;font-size:22px!important;color:#000!important}
  .bp-print-target .bp-map-print-area{display:block!important;width:100%!important;background:#fff!important}
  .bp-print-target .bp-map-stage{height:auto!important;min-height:0!important;overflow:visible!important;border:1px solid #999!important;page-break-inside:avoid!important}
  .bp-print-target .bp-map-image-wrap{display:block!important;width:100%!important;min-width:0!important}
  .bp-print-target .bp-map-img{width:100%!important;height:auto!important;max-width:100%!important}
  .bp-print-target .bp-map-legend{break-inside:avoid!important;page-break-inside:avoid!important;border:1px solid #999!important;margin-bottom:10px!important}
  .bp-print-target .bp-booth{print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}
  .bp-public-map-card:not(.bp-print-target){display:none!important}
  @page{size:landscape;margin:.35in}
}

.bp-checkline{display:inline-flex!important;align-items:center;gap:6px;margin:4px 14px 4px 0;font-weight:500!important}
.bp-checkline input{width:auto!important}
.bp-space-warning{background:#fff4e5;border-left:4px solid #d63638;margin:10px 0 14px;padding:10px 12px;color:#1d2327}
.bp-space-warning ul{margin:6px 0 0 18px;list-style:disc}
.bp-vendor-row-warning{background:#fffaf0}
.bp-warning-triangle{position:absolute;right:3px;top:3px;color:#d63638;font-size:16px;line-height:1;text-shadow:0 1px 1px #fff;z-index:6;pointer-events:none}
.bp-has-warning{box-shadow:inset 0 0 0 2px rgba(214,54,56,.42)}
.bp-vendor-row-main{flex:1;min-width:0}.bp-vendor-meta-line{color:#3c434a}.bp-vendor-req-line{margin-top:6px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.bp-req-badges{display:inline-flex;gap:4px;flex-wrap:wrap;vertical-align:middle}.bp-req-badge{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:12px;font-weight:700;line-height:1;color:#fff;border:1px solid rgba(0,0,0,.18);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15)}.bp-req-indoor{background:#2271b1}.bp-req-outdoor{background:#d63638}.bp-req-corner{background:#8e44ad}.bp-req-power{background:#b8860b}.bp-req-canopy{background:#008a20}.bp-req-wall{background:#50575e}.bp-req-none{color:#646970;font-style:italic}.bp-vendor-row-warning .bp-req-badge{outline:2px solid rgba(214,54,56,.35)}

.bp-booth-attrs{position:absolute;left:2px;bottom:2px;display:flex;gap:2px;z-index:4;pointer-events:none}
.bp-booth-attrs span,.bp-attr-badge{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;font-size:10px;font-weight:700;line-height:1;color:#fff;text-shadow:none;border:1px solid rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15)}
.bp-booth-attrs span:nth-child(1){background:#50575e}.bp-booth-attrs span:nth-child(2){background:#8e44ad}.bp-booth-attrs span:nth-child(3){background:#b8860b}.bp-booth-attrs span:nth-child(4){background:#008a20}
.bp-booth-attribute-summary{background:#f6f7f7;border-left:4px solid #2271b1;margin:10px 0 14px;padding:10px 12px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.bp-attr-wall{background:#50575e}.bp-attr-corner{background:#8e44ad}.bp-attr-power{background:#b8860b}.bp-attr-canopy{background:#008a20}.bp-attr-none{color:#646970;font-style:italic}.bp-attr-sep{color:#8c8f94}

/* v1.9.5 Navigation Boxes */
.bp-map-card[data-map-type="overview"] .bp-add-booth {
    background: #0a4b78 !important;
    border-color: #0a4b78 !important;
    color: #fff !important;
}
.bp-map-link-booth {
    cursor: pointer;
    border: 2px solid #0a4b78 !important;
    background: #d7f0ff !important;
    color: #0a4b78 !important;
    font-weight: 800 !important;
    text-align: center;
}
.bp-map-link-booth .bp-booth-vendor {
    font-size: 1.05em;
    padding: 2px 5px;
}
.bp-map-link-booth .bp-booth-vendor::after {
    content: " →";
    font-weight: 900;
}
.bp-map-link-booth:hover {
    box-shadow: 0 0 0 4px rgba(10,75,120,.22);
    transform: translateY(-1px);
}
.bp-nav-box-help {
    display: inline-block;
    margin-right: 10px;
    color: #0a4b78;
    font-weight: 600;
}


/* v1.9.6 Navigation Box polish */
.bp-map-link-booth {
    background: rgba(215,240,255,.78) !important;
    border: 3px solid #0a4b78 !important;
    color: #0a4b78 !important;
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.55), 0 2px 7px rgba(0,0,0,.18);
    backdrop-filter: blur(1px);
}
.bp-map-link-booth .bp-nav-box-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    margin-right: 5px;
    border-radius: 50%;
    background: #0a4b78;
    color: #fff;
    font-weight: 900;
    line-height: 1;
}
.bp-map-link-booth .bp-booth-vendor {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 2;
    font-size: clamp(12px, 1.2vw, 18px);
    font-weight: 900;
    text-shadow: 0 1px 0 rgba(255,255,255,.85);
}
.bp-map-link-booth .bp-booth-vendor::after {
    content: "";
}
.bp-map-link-booth:hover {
    background: rgba(215,240,255,.92) !important;
}
.bp-nav-box-form .bp-checkline[style*="display: none"] {
    display: none !important;
}


/* v1.9.8 Navigation label/image visibility */
.bp-map-link-booth {
    opacity: .96 !important;
    gap: 4px;
    flex-direction: row !important;
    flex-wrap: wrap;
}
.bp-map-link-booth .bp-booth-vendor {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: #0a4b78 !important;
    min-width: 0;
    max-width: calc(100% - 36px);
    overflow-wrap: anywhere;
}
.bp-map-link-booth .bp-vendor-thumb.bp-nav-box-image,
.bp-map-link-booth .bp-nav-box-image {
    display: inline-block !important;
    position: relative !important;
    width: 28px !important;
    height: 28px !important;
    object-fit: contain !important;
    border-radius: 4px;
    margin: 0 4px 0 0 !important;
    z-index: 3;
}
.bp-map-link-booth.bp-has-vendor-image .bp-nav-box-icon {
    display: none !important;
}
.bp-nav-image-row input {
    width: min(420px, 70%);
}


/* v1.9.9 Overview Map Phase 4 polish */
.bp-map-link-booth.bp-has-vendor-image {
    justify-content: center !important;
    align-items: center !important;
    padding: 2px !important;
}
.bp-map-link-booth .bp-vendor-thumb.bp-nav-box-image,
.bp-map-link-booth .bp-nav-box-image {
    width: min(80%, 72px) !important;
    height: min(80%, 72px) !important;
    max-width: 90% !important;
    max-height: 90% !important;
    margin: 0 !important;
    object-fit: contain !important;
}
.bp-public-overview-help {
    margin: 0 0 10px;
    padding: 8px 12px;
    background: #e8f5ff;
    border-left: 4px solid #0a4b78;
    color: #0a4b78;
    font-weight: 600;
}
.bp-public-back-overview {
    margin: 0 0 10px;
}
.bp-public-back-overview a {
    display: inline-block;
    padding: 6px 10px;
    border: 1px solid #0a4b78;
    border-radius: 4px;
    text-decoration: none;
    font-weight: 600;
}
.bp-public-back-overview a:hover {
    background: #e8f5ff;
}


/* v2.0.0 Navigation Box transparent click targets */
.bp-map-link-booth.bp-nav-transparent {
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    opacity: 1 !important;
}
.bp-map-link-booth.bp-nav-transparent:hover,
.bp-map-link-booth.bp-nav-transparent:focus {
    background: rgba(215,240,255,.18) !important;
    box-shadow: 0 0 0 3px rgba(10,75,120,.35) !important;
}
.bp-map-link-booth.bp-nav-transparent .bp-vendor-thumb.bp-nav-box-image,
.bp-map-link-booth.bp-nav-transparent .bp-nav-box-image,
.bp-map-link-booth .bp-vendor-thumb.bp-nav-box-image,
.bp-map-link-booth .bp-nav-box-image {
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
    object-fit: contain !important;
}
.bp-map-link-booth.bp-nav-transparent .bp-nav-box-icon,
.bp-map-link-booth.bp-nav-transparent .bp-booth-vendor {
    background: rgba(255,255,255,.72);
    border-radius: 4px;
    padding: 2px 5px;
}
.bp-map-link-booth.bp-nav-transparent.bp-has-vendor-image .bp-booth-vendor {
    display: none !important;
}
.bp-nav-image-row .bp-checkline {
    margin-top: 6px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}


/* v2.0.1 Navigation image fit modes */
.bp-map-link-booth.bp-nav-fit-contain .bp-vendor-thumb.bp-nav-box-image,
.bp-map-link-booth.bp-nav-fit-contain .bp-nav-box-image {
    object-fit: contain !important;
}
.bp-map-link-booth.bp-nav-fit-cover .bp-vendor-thumb.bp-nav-box-image,
.bp-map-link-booth.bp-nav-fit-cover .bp-nav-box-image {
    object-fit: cover !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    border-radius: 0 !important;
}
.bp-map-link-booth.bp-nav-fit-cover {
    overflow: hidden !important;
}
.bp-nav-fit-line select {
    margin-left: 6px;
}


/* v2.0.4 Navigation image centering and public timestamp cleanup */
.bp-map-link-booth {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.bp-map-link-booth.bp-has-vendor-image {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.bp-map-link-booth .bp-vendor-thumb.bp-nav-box-image,
.bp-map-link-booth .bp-nav-box-image {
    position: static !important;
    display: block !important;
    margin: auto !important;
    background: transparent !important;
    transform: none !important;
    left: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
}
.bp-map-link-booth.bp-nav-fit-contain .bp-vendor-thumb.bp-nav-box-image,
.bp-map-link-booth.bp-nav-fit-contain .bp-nav-box-image {
    width: 92% !important;
    height: 92% !important;
    max-width: 92% !important;
    max-height: 92% !important;
    object-fit: contain !important;
}
.bp-map-link-booth.bp-nav-fit-cover .bp-vendor-thumb.bp-nav-box-image,
.bp-map-link-booth.bp-nav-fit-cover .bp-nav-box-image {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: cover !important;
}
.bp-public-map-wrap .bp-current-as-of,
.bp-public-map-wrap .bp-as-of,
.bp-public-map-wrap .bp-public-current-as-of {
    display: none !important;
}


/* v2.0.8 Public map cleanup */
.bp-public-map-wrap .bp-public-back-overview,
.bp-public-map-wrap .bp-current-as-of,
.bp-public-map-wrap .bp-as-of,
.bp-public-map-wrap .bp-public-current-as-of,
.bp-public-map-card .bp-current-as-of,
.bp-public-map-card .bp-as-of {
    display: none !important;
}


