/* Public Viewer uses the authenticated Viewer's workspace and card styles. */
.public-viewer .app-header { flex-shrink: 0; grid-template-columns: 1fr auto; }
.public-viewer .app-header [hidden], .public-viewer [hidden] { display: none !important; }
.public-search-row { display: flex; gap: .4rem; margin-top: .35rem; }
.public-search-row input { flex: 1; min-width: 0; }
.public-country-filter { margin: 1rem 0; }
.public-country-filter label { display: block; font-size: .85rem; color: var(--muted); margin-bottom: .4rem; }

.public-viewer .viewer-spatial-search label { margin: 0; }
.public-viewer #publicResultsStatus { color: var(--text); font-size: inherit; }
.public-viewer .viewer-layer-icon-slot { display: inline-flex; width: 16px; height: 16px; flex-shrink: 0; }
.public-viewer .viewer-layer-icon-slot svg { width: 16px; height: 16px; }
.public-record { display: block; width: 100%; text-align: left; cursor: pointer; font: inherit; color: var(--text); }
.public-record strong { display: block; font-size: .95rem; line-height: 1.4; margin: .25rem 0; overflow-wrap: anywhere; }
.public-record small { display: block; color: var(--muted); font-size: .8rem; }
.public-record.is-selected { border-color: var(--accent); background: var(--accent-soft); }
.public-type-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: .35rem; }
.public-paging { display: flex; justify-content: space-between; gap: .5rem; margin-top: 1rem; }
.public-viewer .map-pane-body { min-height: 160px; }
#publicMap { position: absolute; inset: 0; }
.public-map-tools { position: absolute; top: 10px; left: 10px; display: flex; align-items: center; gap: .4rem; max-width: calc(100% - 60px); }
.public-map-tools .form-control { width: auto; min-width: 0; padding: .4rem; background: white; }
.public-map-tools .action-btn { background: white; }
#publicMapError { position: absolute; left: 10px; right: 50px; top: 60px; padding: .8rem; background: #fff6e2; border: 1px solid #e9d39f; overflow-wrap: anywhere; }
.public-viewer .map-underbar { flex-shrink: 0; }
.public-viewer .map-interpretive-note { line-height: 1.4; }
#publicDetails .record-title { position: static; border-top: 3px solid var(--accent); margin: 0 0 1rem; padding: .8rem; }
#publicDetails .record-title small { display: block; color: var(--muted); margin-bottom: .4rem; }
#publicDetails .record-title h3 { overflow-wrap: anywhere; }
#publicDetails .group-stack { gap: 1rem; }
#publicDetails .detail-item { min-width: 0; border-radius: var(--caal-control-radius); box-shadow: none; background: transparent; border-color: var(--caal-view-field-border); }
#publicDetails .detail-value { white-space: pre-wrap; overflow-wrap: anywhere; }
#publicDetails .group-block { background: #fafcfb; border-color: #dfe6e2; }
.public-rel { display: block; width: 100%; text-align: left; margin: .5rem 0; }
.public-shape { display: block; width: 160px; height: 120px; object-fit: contain; background: white; border: 1px solid var(--border); margin: .7rem 0; }
.public-popup { font: 13px Arial, sans-serif; max-width: 220px; }
.public-popup strong { display: block; margin-bottom: .4rem; }
.public-popup img { display: block; width: 160px; height: 120px; background: white; }
.public-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media (max-width: 760px) {
  .public-viewer .viewer-layer-grid-two-column { grid-template-columns: 1fr; gap: .8rem; }
  .public-search-row { flex-wrap: wrap; }
  .public-search-row input { width: 100%; flex-basis: 100%; }
  #publicDetails .group-grid { grid-template-columns: 1fr; }
  .public-map-tools { flex-wrap: wrap; }
}
/* Advanced filters and map tools reuse the authenticated Viewer markup. */
.public-viewer #viewerFiltersPanel { margin: .75rem 0 1rem; }
.public-viewer .filter-action-row { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: .75rem 0; }
.public-viewer #publicAdvancedToggle { flex: 1 1 100%; }
.public-viewer .filter-action-row .clear-filters-btn { width: auto; margin-left: auto; font-size: .82rem; padding: .3rem .6rem; }
.public-viewer .filter-not-applicable { opacity: .55; }
.public-viewer .public-draw-actions { position: relative; }

.public-viewer #publicDrawMenu { min-width: 160px; z-index: 50; }
.public-viewer #publicActiveFilters { margin-top: .7rem; }
.public-viewer .public-monument-tree { max-height: 320px; overflow: auto; margin-top: .5rem; font-size: .85rem; }
.public-viewer .public-tree-node { padding: .25rem 0 .25rem .65rem; }
.public-viewer .public-tree-node summary { cursor: pointer; }
.public-viewer .public-tree-node summary > label { display: inline-flex; max-width: calc(100% - 1rem); }
.public-viewer .public-tree-node label { align-items: flex-start; gap: .4rem; }
.public-viewer .public-tree-node input { flex-shrink: 0; }
.public-viewer .public-map-key { background: white; padding: .65rem; font-size: .8rem; line-height: 1.8; }
.public-viewer .map-custom-control button:disabled, .public-viewer .maplibregl-ctrl-compass:disabled { opacity: .45; cursor: not-allowed; }
.public-viewer #publicDrawInstruction { right: 55px; left: 10px; max-width: 650px; flex-wrap: wrap; }
.public-viewer #publicDrawInstructionText { flex: 1 1 200px; }
.public-viewer #publicMapError { top: 10px; right: 60px; }
.public-viewer .viewer-measurement-panel { max-width: min(380px, calc(100% - 70px)); }
.public-viewer .map-pane-body .map-options-panel { max-width: min(340px, calc(100% - 70px)); }
.public-viewer .map-options-header .icon-btn { flex-shrink: 0; }
.public-viewer #viewerMeasurementPanel .action-btn:disabled { opacity: .45; cursor: not-allowed; }
.public-viewer .public-disabled-context { opacity: .45; cursor: not-allowed; }
.public-viewer #publicRetryResults { margin: .5rem 0; }

/* Match the authenticated toolbar; public access rules do not change its layout. */
.public-viewer .filter-action-row.caal-filter-action-row { display: grid; grid-template-columns: minmax(0,1fr); }
.public-viewer .filter-action-row .caal-advanced-toggle.has-active-filters { background: var(--accent-soft); border-color: var(--accent); }
.public-viewer .public-map-legend { width: auto; min-width: 0; padding: .6rem .75rem; text-align: right; }
.public-viewer .public-map-legend.legend-collapsed { background: transparent; box-shadow: none; border: 0; padding: 0; }
.public-viewer .public-map-legend .legend-show-btn { margin-left: auto; }
.public-viewer .public-map-key { background: transparent; padding: .5rem 0 0; text-align: left; }

.public-viewer .filter-live-results-actions button:disabled { opacity: .45; cursor: not-allowed; }

.public-map-picks { max-height: min(340px,50vh); overflow-y: auto; padding: .3rem; font: 13px/1.45 Arial,sans-serif; }
.public-map-picks > strong { display: block; margin-bottom: .5rem; }
.public-map-pick-group { border-top: 1px solid #dfe6e2; padding: .4rem 0; }
.public-map-pick-group summary { cursor: pointer; font-weight: 600; color: #29564d; }
.public-map-picks .public-map-pick { display: block; width: 100%; text-align: left; margin-top: .3rem; white-space: normal; overflow-wrap: anywhere; font-size: 12px; }

.public-map-picks .public-map-pick:hover, .public-map-picks .public-map-pick:focus-visible { background: #e5f8fa; border-color: #16859b; }
.public-map-picks .public-map-pick.is-selected { background: #e5f8fa; border-color: #16859b; }
.public-map-pick small, .public-popup small { display: block; font-size: 11px; color: #52635c; }

.public-highlight-key { border: .75px solid #fff1d6; box-shadow: 0 0 0 .5px #16859b; }

.public-key-selection-row { border-top: 1px solid #536b60; margin-top: .45rem; padding-top: .45rem; }
.public-popup-header { display: grid; grid-template-columns: 28px minmax(0,1fr) 32px; align-items: center; gap: .3rem; position: sticky; top: -.3rem; z-index: 1; padding: .2rem 0 .4rem; margin-bottom: .35rem; border-bottom: 1px solid #dfe6e2; background: #fff; }
.public-popup-header > strong { margin: 0; font-size: 14px; line-height: 1.3; }
.public-popup-drag-handle { display: flex; align-items: center; justify-content: center; width: 28px; height: 32px; padding: 0; margin: 0; border: 0; border-radius: 3px; background: transparent; color: #487061; font: inherit; cursor: grab; touch-action: none; user-select: none; }
.public-popup-close { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; margin: 0; padding: 0; border: 0; border-radius: 3px; background: transparent; color: #33443e; font: 26px/1 Arial,sans-serif; cursor: pointer; }
.public-popup-close:hover, .public-popup-drag-handle:hover { background: #edf3ef; }
.public-popup-close:focus-visible { outline: 2px solid #487061; outline-offset: -2px; }
.public-popup-drag-handle.is-dragging { cursor: grabbing; }
.public-popup-drag-handle:focus-visible { outline: 2px solid #487061; outline-offset: -2px; }
.public-popup-drag-grip { font-size: 19px; line-height: 1; }
.public-draggable-popup.is-moved .maplibregl-popup-tip { visibility: hidden; }

.public-list-shape-preview { position: fixed; z-index: 10000; width: 184px; box-sizing: border-box; padding: 10px; border: 1px solid #cbd8d0; border-radius: 4px; background: #fff; color: #25372f; box-shadow: 0 2px 8px #0002; pointer-events: none; font: 12px/1.4 Arial,sans-serif; }
.public-list-shape-preview strong { display: block; overflow-wrap: anywhere; }
.public-list-shape-preview small { display: block; margin: 2px 0 5px; color: #52635c; }
.public-list-shape-preview img { display: block; width: 160px; height: 120px; object-fit: contain; background: #fff; }
.public-list-shape-preview [hidden] { display: none !important; }
.public-preview-status { display: flex; align-items: center; justify-content: center; min-height: 120px; color: #52635c; }

/* Keep the header outside the scrolling list. */
.public-draggable-popup .maplibregl-popup-content { padding: 6px 10px 10px; }
.public-map-picks { display: flex; flex-direction: column; max-height: min(340px,50vh); overflow: hidden; padding: 0; }
.public-popup-header { position: static; flex: 0 0 auto; padding: 0 0 5px; margin: 0 0 3px; }
.public-popup-list { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding-right: 4px; }
.public-popup-list > .public-map-pick-group:first-child { border-top: 0; }
.public-popup-drag-handle { background: #f1f3f2; }

/* target button for results cards*/
.public-viewer .public-record {
  position: relative;
  display: block;
  padding-right: 3.25rem;
  box-sizing: border-box;
  cursor: default;
}

.public-viewer .public-record-target {
  position: absolute;
  top: .7rem;
  right: .7rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 5px;
  margin: 0;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: #f5f7f6;
  color: var(--muted);
  cursor: pointer;
}
.public-record-open { flex: 1; min-width: 0; border: 0; padding: 0; background: transparent; text-align: left; font: inherit; color: inherit; cursor: pointer; }
.public-record-target:hover { background: var(--accent-soft); }
.public-record-open:focus-visible, .public-record-target:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.public-record-target:disabled { opacity: .5; cursor: wait; }


/* Match the authenticated detail pane using its existing shared component styles. */
#publicDetails > .record-title { position: relative; top: auto; z-index: auto; margin: 0 0 1rem; padding: .65rem 0 .85rem; background: transparent; border: 0; border-bottom: 1px solid var(--accent); border-radius: 0; box-shadow: none; backdrop-filter: none; overflow-wrap: anywhere; display: flex; flex-wrap: wrap; align-items: flex-start; gap: .5rem .75rem; }
#publicDetails > .record-title > .record-title-main { order: 0; flex: 1 1 12rem; min-width: 0; }
#publicDetails > .record-title > .record-title-actions-topright { position: static; order: 1; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; max-width: 100%; margin-inline-start: auto; }
#publicDetails .group-stack { gap: 1rem; }
#publicDetails .group-block { background: #fafcfb; border-color: #dfe6e2; border-radius: var(--caal-panel-radius); }
#publicDetails .detail-value { white-space: pre-wrap; }
#publicDetails .public-detail-related-chip { white-space: normal; }
#publicDetails .detail-label { text-transform: uppercase; letter-spacing: .03em; }
#publicDetails .measurement-row-readonly { background: transparent; border-color: var(--caal-view-field-border); border-radius: var(--caal-control-radius); box-shadow: none; }
#publicDetails .detail-item.section-header { border-radius: 0; box-shadow: none; }
/* Public language control, independent of authenticated session controls. */
.public-language-selector{display:flex;align-items:center;gap:.5rem;margin-left:auto;font-size:.85rem;}
.public-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;}
.public-language-selector select{font:inherit;padding:.3rem .45rem;border:1px solid #aebbb5;border-radius:4px;background:#fff;color:#183d30;max-width:10rem;}
@media(max-width:600px){.public-language-selector>span{display:none;}.public-language-selector select{max-width:7rem;}}
#publicPreview {
  display: none !important;
}
/* Green checkbox and radio selections */
.public-viewer #publicSearch input {
  accent-color: var(--accent);
}

/* Selected filter options */
.public-viewer #publicSearch select option:checked {
  background: var(--accent) !important;
  background-image: linear-gradient(
    var(--accent), var(--accent)
  ) !important;
  color: #fff !important;
}

/* Green focus outlines */
.public-viewer #publicSearch
:is(input, select, button, summary):focus-visible {
  outline: 2px solid var(--accent) !important;
  outline-offset: 2px;
  box-shadow: none !important;
}

/* Selected filter chips */
.public-viewer #publicSearch .active-filter-chip {
  background: var(--accent-soft);
  border-color: var(--accent);
  color: var(--accent);
}

/* Highlighted text within the filters */
.public-viewer #publicSearch ::selection {
  background: var(--accent);
  color: #fff;
}
/* Public About / Feedback navigation and panels. Existing Viewer rules retained. */
.public-viewer .app-header { grid-template-columns: minmax(0,1fr) auto auto; gap: 1rem; }
.public-page-tabs { display:flex; gap:.35rem; align-items:center; flex-wrap:wrap; }
.public-page-tabs button { font:inherit; color:var(--muted); background:transparent; border:0; border-bottom:2px solid transparent; padding:.65rem .8rem; cursor:pointer; }
.public-page-tabs button[aria-selected="true"] { color:var(--accent); border-bottom-color:var(--accent); font-weight:600; }
.public-information-page { flex:1; overflow:auto; padding:2rem; background:var(--bg); }
.public-information-layout { display:grid; grid-template-columns:minmax(0,1fr) 245px; gap:2.5rem; max-width:1100px; margin:0 auto; }
.public-information-main { min-width:0; }
.public-information-main h2 { margin:0 0 1.2rem; font-size:1.65rem; }
.public-information-page p,.public-information-page li { line-height:1.7; }
.public-information-main p { margin:0 0 1.1rem; }
.public-information-page a { color:var(--accent); text-underline-offset:3px; }
.public-information-sidebar { border-left:1px solid var(--border); padding-left:1.5rem; }
.public-information-sidebar h3 { margin:0 0 .7rem; font-size:1rem; }
.public-information-sidebar h3:not(:first-child) { margin-top:2rem; }
.public-information-sidebar p,.public-information-sidebar li { color:var(--muted); font-size:.9rem; }
.public-information-sidebar ul { padding-left:1.2rem; }
.public-feedback-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:1rem; }
#publicFeedbackForm label { display:flex; flex-direction:column; gap:.45rem; margin-bottom:1rem; font-size:.9rem; }
#publicFeedbackForm input,#publicFeedbackForm select,#publicFeedbackForm textarea { box-sizing:border-box; width:100%; min-width:0; font:inherit; color:var(--text); background:var(--panel,#fff); border:1px solid var(--border); border-radius:var(--caal-control-radius,4px); padding:.65rem; }
#publicFeedbackForm textarea { resize:vertical; }
.public-feedback-subject,.public-feedback-privacy { font-size:.85rem; color:var(--muted); overflow-wrap:anywhere; }
.public-feedback-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
#feedbackStatus { margin-top:1rem; overflow-wrap:anywhere; }
#feedbackStatus[data-error="true"] { color:#a52f2f; }
.public-viewer.public-information-active .maplibregl-popup { display:none; }
@media(max-width:900px) { .public-viewer .app-header { grid-template-columns:minmax(0,1fr) auto; } .public-page-tabs { grid-row:2; grid-column:1/-1; } }
@media(max-width:650px) { .public-information-page { padding:1.25rem; } .public-information-layout,.public-feedback-row { grid-template-columns:minmax(0,1fr); gap:1rem; } .public-information-sidebar { border-left:0; border-top:1px solid var(--border); padding:1.25rem 0 0; } }

/* Viewport-aware map key, open by default with the popup's close-button style. */
.public-viewer .public-map-legend .public-map-key-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:.3rem; text-align:left; }
.public-viewer .public-map-legend .public-map-key-header strong { font-size:.9rem; flex:1; text-align:left; }
.public-viewer .public-map-legend button.public-map-key-close { display:flex; align-items:center; justify-content:center; flex:0 0 auto; width:24px; height:24px; min-width:0; min-height:0; padding:0; margin:0; border:0; border-radius:3px; background:transparent; color:#33443e; font:22px/1 Arial,sans-serif; box-shadow:none; }
.public-viewer .public-map-legend button.public-map-key-close:hover { background:#edf3ef; }
.public-viewer .public-map-legend .public-map-key-row { text-align:left; }
.public-viewer .public-map-legend [hidden] { display:none!important; }

/* Keep drawing instructions inside the map: remove the inherited centred transform. */
.public-viewer #publicDrawInstruction { left:12px; right:auto; width:max-content; max-width:min(560px,calc(100% - 68px)); transform:none; box-sizing:border-box; display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; padding:.5rem .65rem; }
.public-viewer #publicDrawInstructionText { min-width:0; flex:1 1 220px; white-space:normal; overflow-wrap:anywhere; line-height:1.45; }
.public-viewer #publicDrawInstruction .action-btn { flex:0 0 auto; width:auto; padding:.35rem .65rem; font-size:.82rem; line-height:1.3; }
.public-viewer .viewer-measurement-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.45rem; }
.public-viewer .viewer-measurement-action { display:flex; align-items:center; justify-content:center; width:100%; min-width:0; height:2.3rem; min-height:2.3rem; padding:0; font-size:0; line-height:1; }
.public-viewer .measurement-button-icon,.public-viewer .measurement-button-icon svg { display:block; width:1.3rem; height:1.3rem; }
.public-viewer #viewerMeasurementInstruction:empty,.public-viewer #viewerMeasurementResult:empty { display:none; }
@media(max-width:480px){.public-viewer #publicDrawInstructionText { flex-basis:100%; }}

/* Authenticated Viewer-style drawing banner and full-width measurement card. */
.public-viewer #publicDrawInstruction { left:50%; right:auto; width:max-content; max-width:calc(100% - 7rem); transform:translateX(-50%); flex-wrap:nowrap; gap:.65rem; }
.public-viewer #publicDrawInstructionText { flex:0 1 auto; min-width:0; }
.public-viewer #publicFinishDrawing { display:none!important; }
.public-viewer #publicCancelDrawing { width:auto; flex:0 0 auto; border:0; background:transparent; padding:0; color:inherit; font:inherit; font-weight:700; text-decoration:underline; }
.public-viewer #viewerMeasurementPanel { box-sizing:border-box; max-width:calc(100% - 65px); }
.public-viewer #viewerMeasurementPanel .viewer-measurement-actions { width:100%; }
.public-viewer #viewerMeasurementResult { box-sizing:border-box; display:block; width:100%; grid-column:1/-1; margin-top:.6rem; min-width:0; white-space:normal; padding:.75rem 2.6rem .75rem .85rem; }
.public-viewer #viewerMeasurementResult .viewer-measurement-placeholder { display:block; font-style:italic; line-height:1.5; }
.public-viewer #viewerMeasurementResult strong { display:block; margin-bottom:.2rem; }
.public-viewer #viewerMeasurementResult .viewer-measurement-result-label { display:block; line-height:1.5; }
.public-viewer #viewerMeasurementResult .viewer-measurement-clear-inline { position:absolute; top:.5rem; right:.5rem; width:24px; height:24px; color:var(--accent); }
@media(max-width:480px){.public-viewer #publicDrawInstruction { max-width:calc(100% - 2rem); flex-wrap:wrap; }.public-viewer #publicDrawInstructionText { flex:1 1 180px; }}

/* Filter availability preserves checked choices while suppressing unsupported layers. */
.public-viewer .viewer-layer-check.public-layer-filter-disabled {
  background: #f1f2f1; border-color: #d5d9d6; color: #737b76;
  opacity: .6; cursor: not-allowed; box-shadow: none;
}
.public-viewer .viewer-layer-check.public-layer-filter-disabled * { cursor: not-allowed; }
.public-filter-applicability-note { font-size: .85rem; color: #52655b; margin: .6rem 0; }
.public-sign-in { text-decoration: none; white-space: nowrap; }
