html,body{height:100%;margin:0;background:#f6f7fb}.frontend #map{position:fixed;inset:0}.topbar{position:fixed;top:calc(env(safe-area-inset-top) + 10px);left:10px;right:10px;z-index:1000;display:grid;grid-template-columns:1fr 1fr auto auto;gap:8px}.topbar .form-select,.map-refresh{border:0;border-radius:12px;box-shadow:0 8px 24px rgba(15,23,42,.18);font-weight:700}.map-refresh{width:34px;height:31px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#111827;line-height:1}.map-refresh svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.map-pin{border-radius:50%;border:3px solid #fff;box-shadow:0 5px 16px rgba(0,0,0,.35);display:flex!important;align-items:center;justify-content:center;font-weight:800;font-size:12px;color:#fff;line-height:1}.map-pin.acc{font-size:17px}.map-pin.walk{color:#111827;border-color:#0d6efd;font-size:18px}.map-pin.poi{letter-spacing:.2px}.leaflet-popup-content{margin:12px 14px}.popup-title{font-weight:800;font-size:15px;margin-bottom:2px}.popup-sub{font-size:13px;color:#6b7280;margin-bottom:10px}.popup-links{display:flex;gap:8px;margin-top:10px}.popup-links a{display:inline-flex;align-items:center;gap:4px;text-decoration:none;background:#f3f4f6;border-radius:999px;padding:6px 10px;font-weight:700;color:#111827}.admin-page{background:#f6f7fb}.admin-actions{flex-wrap:wrap;justify-content:flex-end}.admin-card{border:0;border-radius:16px;box-shadow:0 8px 30px rgba(15,23,42,.08)}.table td{vertical-align:middle}.modal-content{border:0;border-radius:18px;box-shadow:0 20px 70px rgba(15,23,42,.25)}@media (max-width:600px){.topbar{grid-template-columns:1fr auto;right:10px}.topbar #setSelect{grid-column:1 / -1}.leaflet-control-zoom{margin-bottom:18px!important}}
.admin-page .btn svg{width:15px;height:15px;vertical-align:-2px;margin-right:4px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.admin-page .icon-btn{width:31px;height:29px;padding:0;display:inline-flex;align-items:center;justify-content:center}.admin-page .icon-btn svg{margin-right:0}.admin-actions .btn{height:31px;padding:.25rem .5rem;display:inline-flex;align-items:center;gap:3px;font-size:.875rem;line-height:1.2}.admin-actions .btn svg{margin-right:2px}.admin-page form{margin:0}
.settings-accordion{display:grid;gap:14px}.settings-accordion .accordion-item{border:0;border-radius:16px;overflow:hidden}.settings-accordion .accordion-button{font-weight:800;background:#fff}.settings-accordion .accordion-button:not(.collapsed){background:#fff;color:#111827;box-shadow:none}.settings-accordion .accordion-body{background:#fff}.section-add-btn{flex-shrink:0}
.access-mode-list .list-group-item{border-color:#e5e7eb}.access-mode-list .list-group-item:has(input:checked){background:#f8fafc;border-color:#0d6efd}.access-mode-list strong{display:block}
.walk-stick-icon{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.walk-stick-icon .stick-shaft{stroke-width:2.8}.ip-whitelist-panel{background:#f8fafc}.settings-access-panel .section-title-inline h2{font-size:1rem}

.marker-settings-accordion{display:grid;gap:10px}.marker-settings-accordion .accordion-item{border:1px solid #e5e7eb;border-radius:14px;overflow:hidden}.marker-settings-accordion .accordion-button{font-size:.95rem;font-weight:700;background:#fff}.marker-settings-accordion .accordion-button:not(.collapsed){background:#f8fafc;color:#111827;box-shadow:none}.marker-settings-block{background:#fff}.marker-icon-options .list-group-item{border-color:#e5e7eb}.marker-icon-options .list-group-item:has(input:checked){background:#f8fafc;border-color:#0d6efd}.marker-option-preview{display:inline-flex;align-items:center;justify-content:center;min-width:32px}.form-control-color{max-width:52px;padding:.2rem}
.marker-mini{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 6px;border-radius:999px;border:1px solid rgba(0,0,0,.18);font-size:.78rem;font-weight:700;line-height:1;color:#111827;box-shadow:0 1px 2px rgba(0,0,0,.12)}
.map-pin .bi{font-size:1.05em;line-height:1}.map-pin.acc .bi{font-size:1.05em}.map-pin.walk .bi{font-size:1.05em}.marker-mini .bi{font-size:1.05rem;line-height:1}.icon-choice{display:flex;align-items:center;gap:.6rem;border:1px solid #dee2e6;border-radius:.75rem;padding:.5rem .65rem;background:#fff;cursor:pointer}.icon-choice:has(input:checked){border-color:#0d6efd;background:#eef5ff}.icon-choice .marker-option-preview{font-size:1.2rem;min-width:26px}

/* v26 marker settings cleanup */
.marker-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:1.25rem;align-items:start}.marker-icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:.55rem}.marker-icon-grid .icon-choice{display:grid;grid-template-columns:auto 28px minmax(0,1fr);align-items:center;gap:.55rem;min-height:48px}.icon-choice-label{font-size:.93rem;line-height:1.15;overflow-wrap:anywhere}.marker-editor-style{background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;padding:1rem;position:sticky;top:1rem}@media(max-width:900px){.marker-editor-grid{grid-template-columns:1fr}.marker-editor-style{position:static}.marker-icon-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr))}}

/* Admin compact location table */
.loc-type-icon{
  --loc-type-color:#64748b;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border-radius:999px;
  background:var(--loc-type-color);
  color:var(--loc-type-fg,#fff);
  font-size:1rem;
  box-shadow:0 1px 3px rgba(15,23,42,.18);
  border:1px solid rgba(15,23,42,.18);
}
.loc-type-icon i{line-height:1;}
.visibility-toggle{
  border:0;
  border-radius:999px;
  min-width:66px;
  height:30px;
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:3px 9px 3px 4px;
  font-size:.78rem;
  font-weight:700;
  line-height:1;
  transition:.15s ease;
}
.visibility-toggle.is-on{background:#dcfce7;color:#166534;}
.visibility-toggle.is-off{background:#e5e7eb;color:#475569;}
.visibility-knob{
  width:22px;
  height:22px;
  border-radius:999px;
  background:#fff;
  box-shadow:0 1px 3px rgba(15,23,42,.25);
  order:0;
}
.visibility-toggle.is-off{padding:3px 4px 3px 9px;}
.visibility-toggle.is-off .visibility-knob{order:2;}
.visibility-text{min-width:24px;text-align:center;}

.map-pin.walk .bi{color:#111827}

.location-address-fields[hidden],.location-coord-fields[hidden]{display:none!important}.frontend .map-refresh i{font-size:16px;line-height:1}.frontend a.map-refresh{text-decoration:none}

/* v38 iPhone / compact admin improvements */
.modal-visibility-btn{width:38px;height:38px;padding:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:1.15rem}
.modal-visibility-btn.is-visible{background:#dcfce7;color:#166534}
.modal-visibility-btn.is-hidden{background:#e5e7eb;color:#64748b}
@media (max-width:600px){
  .topbar{grid-template-columns:minmax(0,1fr) auto auto;gap:6px}
  .topbar #setSelect{grid-column:1 / -1}
  .topbar #accSelect{grid-column:1}
  .topbar a.map-refresh{grid-column:2}
  .topbar #refreshBtn{grid-column:3}
  .topbar .form-select{min-width:0;font-size:.78rem;padding-left:.55rem;padding-right:1.65rem}
  .map-refresh{width:36px;height:31px}
  .admin-page main.container-fluid{padding:.75rem!important}
  .admin-page .navbar .container-fluid{padding:.45rem .65rem;align-items:flex-start}
  .admin-page .navbar-brand{font-size:1rem;padding:.25rem 0}
  .admin-actions{gap:.3rem!important;max-width:72%;justify-content:flex-end}
  .admin-actions .btn{height:29px;padding:.2rem .42rem;font-size:.75rem}
  .admin-card{border-radius:12px}
  .admin-card .card-body{padding:.7rem}
  .admin-page .row.g-4{--bs-gutter-y:.75rem}
  .admin-page h2.h5{font-size:1rem}
  .admin-page .table{font-size:.75rem;white-space:nowrap}
  .admin-page .table>:not(caption)>*>*{padding:.35rem .4rem}
  .admin-page .modal-dialog{margin:0;min-height:100%;max-width:none}
  .admin-page .modal-content{min-height:100vh;border-radius:0}
  .admin-page .modal-header{padding:.65rem .75rem;position:sticky;top:0;background:#fff;z-index:2}
  .admin-page .modal-body{padding:.75rem}
  .admin-page .modal-footer{padding:.55rem .75rem;position:sticky;bottom:0;background:#fff;z-index:2}
  .admin-page .form-label{font-size:.78rem;margin-bottom:.2rem}
  .admin-page .form-control,.admin-page .form-select,.admin-page .input-group .btn{font-size:16px;min-height:40px}
  .location-mode-buttons .btn{font-size:.82rem;min-height:36px}
  .location-coord-fields{display:grid;grid-template-columns:1fr 1fr}
  .modal-visibility-btn{width:36px;height:36px}
}

/* v39 simplified location flow and compact iOS tables */
.admin-list-table th,.admin-list-table td{vertical-align:middle}
@media (max-width:600px){
  .admin-page .maps-url-input{min-width:100%}
  .admin-page .maps-url-input + .maps-url-parse{width:100%;border-radius:.375rem!important;margin-top:.4rem}
  .admin-page .input-group:has(.maps-url-input){display:block}
  .admin-list-table{white-space:normal!important;table-layout:auto}
  .admin-list-table th,.admin-list-table td{font-size:.72rem;padding:.32rem .28rem!important}
  .admin-list-table td:nth-last-child(1){white-space:nowrap}
  .visibility-toggle{min-width:42px;padding:3px 4px}
  .visibility-toggle .visibility-text{display:none}
  .location-coord-fields{display:grid;grid-template-columns:1fr 1fr}
}


/* v40 unified fetch controls, icon type selector and visibility eye */
.overview-visibility-btn{width:34px;height:32px;padding:0;border:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;transition:.15s ease}
.overview-visibility-btn.is-visible{background:#dcfce7;color:#166534}.overview-visibility-btn.is-hidden{background:#e5e7eb;color:#64748b}
.location-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:.5rem}.location-type-choice{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;min-height:74px;padding:.5rem;border:1px solid #dee2e6;border-radius:.75rem;background:#fff;cursor:pointer;text-align:center}.location-type-choice input{position:absolute;opacity:0;pointer-events:none}.location-type-choice:has(input:checked){border-color:#0d6efd;background:#eef5ff;box-shadow:0 0 0 1px #0d6efd}.location-type-choice-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;background:var(--type-color,#64748b);color:var(--type-fg,#fff);border:1px solid rgba(15,23,42,.15);font-size:1rem}.location-type-choice-name{font-size:.72rem;line-height:1.05;font-weight:700}.location-fetch-btn{min-width:42px}.location-fetch-btn i{line-height:1}.fetch-spin{display:inline-block;animation:fetchspin .8s linear infinite}@keyframes fetchspin{to{transform:rotate(360deg)}}
.frontend a.map-refresh .bi-gear-fill{font-size:15px}
@media(max-width:600px){.location-type-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem}.location-type-choice{min-height:68px;padding:.35rem .2rem}.location-type-choice-name{font-size:.66rem}.admin-page .fetch-input-group{display:flex!important;flex-wrap:nowrap}.admin-page .fetch-input-group .form-control{min-width:0!important}.admin-page .fetch-input-group .location-fetch-btn{width:42px!important;margin-top:0!important;border-radius:0 .375rem .375rem 0!important;font-size:16px}.overview-visibility-btn{width:32px;height:30px}}

/* v41: accommodation-focused backend overview */
.admin-overview-toolbar{display:flex;align-items:flex-end;gap:.75rem;flex-wrap:wrap}.admin-accommodation-filter{flex:1 1 320px;max-width:520px}.location-type-grid{display:flex;flex-wrap:wrap;gap:.45rem}.location-type-choice{min-height:auto;width:44px;height:44px;padding:.25rem;border-radius:.65rem}.location-type-choice-name{display:none}.location-type-choice-icon{width:32px;height:32px}.location-type-choice:has(input:checked){box-shadow:0 0 0 2px #0d6efd}
@media(max-width:600px){.admin-overview-toolbar{align-items:stretch}.admin-accommodation-filter{flex-basis:100%;max-width:none}.admin-overview-toolbar .ms-auto{margin-left:0!important}.location-type-grid{display:flex;grid-template-columns:none}.location-type-choice{width:42px;height:42px;min-height:42px;padding:.2rem}}

/* v42: accommodation rows as selector and softer placeholders */
.admin-page .location-form .form-control::placeholder,
.admin-page .location-form textarea::placeholder{
  color:#98a2ad;
  opacity:.58;
  font-style:italic;
  font-weight:400;
}
.accommodation-select-row{cursor:pointer;transition:background-color .12s ease,box-shadow .12s ease}
.accommodation-select-row:hover>td{background:#f4f8ff!important}
.accommodation-select-row.is-selected>td{background:#eaf3ff!important;font-weight:600}
.accommodation-select-row.is-selected{box-shadow:inset 4px 0 0 #0d6efd}
.selected-accommodation-indicator{display:inline-flex;align-items:center;margin-left:.35rem;color:#0d6efd;font-size:.8rem;vertical-align:middle}
@media(max-width:600px){
  .accommodation-select-row.is-selected{box-shadow:inset 3px 0 0 #0d6efd}
  .selected-accommodation-indicator{font-size:.72rem;margin-left:.2rem}
}

/* v44: clearer optional source vs required coordinates, and nicer distance switch */
.location-source-box,.location-coordinates-box{border:1px solid #dee2e6;border-radius:.75rem;padding:.75rem;background:#f8f9fa}
.location-coordinates-box{background:#fff;border-color:#cfd8e3}
.location-source-title{font-weight:700;font-size:.9rem;margin-bottom:.15rem}
.location-optional-badge{display:inline-block;margin-left:.3rem;padding:.1rem .4rem;border-radius:999px;background:#e9ecef;color:#6c757d;font-size:.68rem;font-weight:600;vertical-align:middle}
.location-source-or{display:flex;align-items:center;gap:.5rem;color:#8a939d;font-size:.72rem;text-transform:uppercase;margin:.25rem 0 .35rem}
.location-source-or::before,.location-source-or::after{content:"";height:1px;background:#d9dee4;flex:1}
.distance-calc-option{border:1px solid #dee2e6;border-radius:.65rem;padding:.65rem .75rem;background:#f8f9fa}
.distance-calc-option .form-switch{padding-left:2.75rem;margin:0}.distance-calc-option .form-check-label{font-weight:600}
@media(max-width:600px){.location-source-box,.location-coordinates-box{padding:.6rem}.distance-calc-option{padding:.55rem .65rem}}

/* v50: compacte acties voor het Google Maps URL-veld */
.maps-url-paste-btn,
.maps-url-clear-btn,
.location-fetch-btn {
  min-width: 2.65rem;
}
.maps-url-ios-readonly {
  cursor: default;
  background-color: var(--bs-body-bg);
}
@media (max-width: 575.98px) {
  .fetch-input-group .btn {
    padding-left: .65rem;
    padding-right: .65rem;
  }
}

/* v53: dark mode (default) + theme toggle */
html[data-bs-theme="dark"],
html[data-bs-theme="dark"] body,
html[data-bs-theme="dark"] .admin-page {
  background:#111827!important;
  color:#e5e7eb;
}
html[data-bs-theme="dark"] .admin-card,
html[data-bs-theme="dark"] .modal-content,
html[data-bs-theme="dark"] .settings-details,
html[data-bs-theme="dark"] .settings-subdetails,
html[data-bs-theme="dark"] .settings-details-body,
html[data-bs-theme="dark"] .settings-subbody,
html[data-bs-theme="dark"] .settings-summary,
html[data-bs-theme="dark"] .settings-subsummary,
html[data-bs-theme="dark"] .marker-settings-block,
html[data-bs-theme="dark"] .marker-editor-style,
html[data-bs-theme="dark"] .location-coordinates-box,
html[data-bs-theme="dark"] .location-source-box,
html[data-bs-theme="dark"] .distance-calc-option,
html[data-bs-theme="dark"] .ip-whitelist-panel {
  background:#1f2937!important;
  color:#e5e7eb!important;
  border-color:#374151!important;
}
html[data-bs-theme="dark"] .admin-page .modal-header,
html[data-bs-theme="dark"] .admin-page .modal-footer {
  background:#1f2937!important;
  border-color:#374151!important;
}
html[data-bs-theme="dark"] .settings-details-body,
html[data-bs-theme="dark"] .settings-subbody {
  border-top-color:#374151!important;
}
html[data-bs-theme="dark"] .settings-subsummary,
html[data-bs-theme="dark"] .marker-editor-style {
  background:#18212f!important;
}
html[data-bs-theme="dark"] .text-muted,
html[data-bs-theme="dark"] .popup-sub,
html[data-bs-theme="dark"] .form-text {
  color:#9ca3af!important;
}
html[data-bs-theme="dark"] .icon-choice,
html[data-bs-theme="dark"] .location-type-choice {
  background:#18212f!important;
  border-color:#4b5563!important;
  color:#e5e7eb!important;
}
html[data-bs-theme="dark"] .icon-choice:has(input:checked),
html[data-bs-theme="dark"] .location-type-choice:has(input:checked) {
  background:#172554!important;
  border-color:#3b82f6!important;
}
html[data-bs-theme="dark"] .accommodation-select-row:hover>td { background:#243044!important; }
html[data-bs-theme="dark"] .accommodation-select-row.is-selected>td { background:#1e3a5f!important; }
html[data-bs-theme="dark"] .location-optional-badge { background:#374151;color:#cbd5e1; }
html[data-bs-theme="dark"] .location-source-or { color:#9ca3af; }
html[data-bs-theme="dark"] .location-source-or::before,
html[data-bs-theme="dark"] .location-source-or::after { background:#4b5563; }
html[data-bs-theme="dark"] .popup-links a {
  background:#374151;
  color:#f3f4f6;
}
html[data-bs-theme="dark"] .leaflet-popup-content-wrapper,
html[data-bs-theme="dark"] .leaflet-popup-tip {
  background:#1f2937;
  color:#f3f4f6;
}
html[data-bs-theme="dark"] .leaflet-container a.leaflet-popup-close-button { color:#d1d5db; }
html[data-bs-theme="dark"] .leaflet-control-zoom a {
  background:#1f2937;
  color:#f3f4f6;
  border-color:#374151;
}
html[data-bs-theme="dark"] .leaflet-tile-pane {
  filter:brightness(.72) contrast(1.12) saturate(.78);
}
html[data-bs-theme="dark"] .topbar .form-select,
html[data-bs-theme="dark"] .map-refresh {
  background:#1f2937!important;
  color:#f3f4f6!important;
  border-color:#374151!important;
}
html[data-bs-theme="dark"] .topbar .form-select {
  --bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23cbd5e1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}
.theme-toggle i{pointer-events:none}.frontend .theme-toggle{font-size:16px;line-height:1}
@media(max-width:600px){
  .topbar{grid-template-columns:minmax(0,1fr) auto auto auto!important}
  .topbar #setSelect{grid-column:1 / -1!important}
  .topbar #accSelect{grid-column:1!important}
  .topbar a.map-refresh{grid-column:2!important}
  .topbar .theme-toggle{grid-column:3!important}
  .topbar #refreshBtn{grid-column:4!important}
}

/* v54: optional map notes/link in location popup */
.popup-map-notes{margin-top:.55rem;padding:.5rem .6rem;border-radius:.5rem;background:rgba(127,127,127,.10);font-size:.88rem;line-height:1.35;white-space:normal;overflow-wrap:anywhere}
.popup-map-link{margin-top:.45rem}.popup-map-link a{display:inline-flex;align-items:center;gap:.35rem;font-size:.88rem;text-decoration:none;font-weight:600}
