:root{--status-auto:#2e7d32;--status-review:#ef6c00;--status-no-match:#c62828;--status-manual:#1565c0;--status-low:#6a1b9a;--dataset-zpin:#2e7d32;--dataset-habitats:#0d47a1;--dataset-birds:#8e24aa;--dataset-nature-park:#e65100;--dataset-public-forest:#33691e;--pota-map-info:#616161;--focus:#ffab00;--border:#ddd;--bg-muted:#f5f5f5;--text-muted:#666}*{box-sizing:border-box}[hidden]{display:none!important}body,html{height:100%;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:14px;color:#1a1a1a}#app{display:flex;height:100vh}#sidebar{width:380px;min-width:380px;height:100%;display:flex;flex-direction:column;border-right:1px solid var(--border);overflow:hidden}#sidebar-header{padding:14px 16px 10px;border-bottom:1px solid var(--border)}#sidebar-header-main{min-width:0}#mode-toggle{display:inline-flex;margin-top:8px;border:1px solid var(--border);border-radius:999px;overflow:hidden}#mode-toggle button{padding:4px 12px;border:none;background:#fff;font-size:11.5px;font-weight:600;color:var(--text-muted);cursor:pointer}#mode-toggle button:not(:last-child){border-right:1px solid var(--border)}#mode-toggle button:hover{background:var(--bg-muted)}#mode-toggle button[aria-pressed=true]{background:var(--status-manual);color:#fff}#mode-toggle button[aria-pressed=true]:hover{background:var(--status-manual)}#mobile-toggle-bar,.mobile-close-btn,.mobile-toggle-btn{display:none}#sidebar-header h1{font-size:17px;margin:0 0 2px}.site-logo{display:block;height:40px;width:auto;margin:0 0 2px}.subtitle{margin:0;font-size:12px;color:var(--text-muted)}#sidebar-footer{flex:none;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-top:1px solid var(--border);font-size:12px;color:var(--text-muted)}#sidebar-footer a,#sidebar-footer button{background:0 0;border:none;padding:0;font:inherit;color:#1565c0;cursor:pointer;text-decoration:none}#sidebar-footer a:hover,#sidebar-footer button:hover{text-decoration:underline}#about-dialog-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:2000;display:flex;align-items:center;justify-content:center;padding:16px}#about-dialog{position:relative;background:#fff;border-radius:10px;max-width:480px;width:100%;max-height:80vh;overflow-y:auto;padding:24px 20px 20px;box-shadow:0 4px 24px rgba(0,0,0,.25)}#about-dialog h2{font-size:17px;margin:0 0 10px}#about-dialog h3{font-size:13px;margin:16px 0 6px}#about-dialog li,#about-dialog p{font-size:13px;line-height:1.5;color:var(--text-muted)}#about-dialog ul{margin:0;padding-left:18px}#about-dialog li+li{margin-top:6px}#about-dialog-close{position:absolute;top:10px;right:10px;border:none;background:0 0;font-size:16px;line-height:1;color:var(--text-muted);cursor:pointer;padding:6px}#list-view{display:flex;flex-direction:column;min-height:0;flex:1}#search-box{padding:10px 16px 0}#search-input{width:100%;padding:7px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px}#departure-box{padding:8px 16px 0;display:flex;flex-direction:column;gap:4px}#departure-controls{display:flex;flex-wrap:wrap;gap:6px}#departure-controls button{padding:5px 10px;border-radius:6px;border:1px solid var(--border);background:#fff;cursor:pointer;font-size:11.5px}#departure-controls button:hover{background:var(--bg-muted)}#departure-status{font-size:11px;color:var(--text-muted);min-height:14px}#filters{padding:10px 16px;display:flex;flex-direction:column;gap:8px}.filter-group{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.filter-group-label{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);width:100%}.filter-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;border:1px solid var(--border);font-size:11px;cursor:pointer;user-select:none;background:#fff}.filter-chip input{margin:0}.filter-chip.status-auto_high_confidence{border-color:var(--status-auto)}.filter-chip.status-needs_review{border-color:var(--status-review)}.filter-chip.status-auto_low_confidence{border-color:var(--status-low)}.filter-chip.status-no_match{border-color:var(--status-no-match)}.filter-chip.status-manually_resolved{border-color:var(--status-manual)}.filter-chip.dataset-zpin_declarees{border-color:var(--dataset-zpin)}.filter-chip.dataset-natura2000_habitats_zsc{border-color:var(--dataset-habitats)}.filter-chip.dataset-natura2000_birds_zps{border-color:var(--dataset-birds)}.filter-chip.dataset-nature_parks_cdda{border-color:var(--dataset-nature-park)}.filter-chip.dataset-public_forests{border-color:var(--dataset-public-forest)}#list-toolbar{display:flex;align-items:center;justify-content:space-between;padding:4px 16px}#list-toolbar #park-count{padding:0}#sort-control{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-muted);cursor:pointer}#sort-control input:disabled{cursor:not-allowed}#park-count{padding:4px 16px;font-size:11px;color:var(--text-muted)}#park-list{list-style:none;margin:0;padding:0 8px 12px;overflow-y:auto;flex:1}.park-item{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:6px;cursor:pointer}.park-item:hover{background:var(--bg-muted)}.park-item.selected{background:#e3ecfb}.status-dot{width:9px;height:9px;border-radius:50%;flex:none}.status-dot.auto_high_confidence{background:var(--status-auto)}.status-dot.needs_review{background:var(--status-review)}.status-dot.auto_low_confidence{background:var(--status-low)}.status-dot.no_match{background:var(--status-no-match)}.status-dot.manually_resolved{background:var(--status-manual)}.park-item-ref{font-weight:600;font-size:12.5px;white-space:nowrap}.park-item-name{font-size:12.5px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.park-item-distance{font-size:11px;color:var(--text-muted);white-space:nowrap;flex:none}#detail-view{display:flex;flex-direction:column;min-height:0;flex:1;overflow:hidden}#back-button{margin:10px 16px 0;align-self:flex-start;border:none;background:0 0;color:#1565c0;cursor:pointer;font-size:13px;padding:4px 0}#detail-content{overflow-y:auto;padding:8px 16px 24px;flex:1}.detail-title{display:flex;align-items:baseline;gap:8px;margin:6px 0 2px}.detail-title h2{font-size:18px;margin:0}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;color:#fff}.badge.auto_high_confidence{background:var(--status-auto)}.badge.needs_review{background:var(--status-review)}.badge.auto_low_confidence{background:var(--status-low)}.badge.no_match{background:var(--status-no-match)}.badge.manually_resolved{background:var(--status-manual)}.automatic-status-note{font-size:11px;color:var(--text-muted);margin-top:2px}.detail-distance{font-size:12.5px;color:var(--text-muted);margin:4px 0 0}.park-reset-button{margin-top:8px;padding:5px 10px;border-radius:6px;border:1px solid var(--border);background:#fff;cursor:pointer;font-size:12px}.park-reset-button:hover{background:var(--bg-muted)}.detail-section{margin-top:16px}.detail-section h3{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin:0 0 8px}.layer-toggle{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:12.5px}.layer-swatch{width:22px;height:0;border-top-width:3px;border-top-style:solid;flex:none}.layer-swatch.point{width:12px;height:12px;border-radius:50%;border:2px solid #263238;background:#ff1744;box-shadow:0 0 0 2px #fff}.layer-swatch.best{border-top-width:4px;border-color:#455a64;box-shadow:0 -3px 0 -1.5px rgba(255,255,255,.9),0 3px 0 -1.5px rgba(255,255,255,.9)}.layer-swatch-icon{display:inline-flex;flex:none}.layer-swatch-icon svg{display:block}.amenities-note{margin:6px 0 0;font-size:11px;padding:5px 8px;border-radius:4px}.amenities-note-manual{background:#e8f5e9;color:#1b5e20}.amenities-note-auto{background:#fff3e0;color:#e65100}.osm-picnic-icon{width:18px;height:18px;background:#ffd600;border:2px solid #3e2723;box-shadow:0 0 0 3px #fff,0 1px 4px rgba(0,0,0,.6)}.osm-picnic-site-icon{filter:drop-shadow(0 1px 3px rgba(0, 0, 0, .6))}.osm-popup-tags{margin-top:4px;font-size:11px;color:var(--text-muted)}#review-panel{position:absolute;top:12px;left:12px;z-index:900;background:rgba(20,20,20,.92);color:#b9f6ca;font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:11px;line-height:1.6;padding:10px 14px;border-radius:6px;border:2px solid #ffab00;max-width:480px;min-width:260px;min-height:1em;pointer-events:none}.review-mode-banner{font-size:13px;font-weight:700;color:#ffab00;margin-bottom:2px}#review-panel b{color:#ffab00}.layer-note{color:var(--text-muted);font-size:11px}.candidate-card{border:1px solid var(--border);border-left-width:4px;border-radius:6px;padding:10px 12px;margin-bottom:10px;background:#fff;cursor:pointer;transition:box-shadow .15s ease,border-color .15s ease}.candidate-card.best{box-shadow:0 0 0 1px rgba(69,90,100,.5)}.candidate-card.hovering{box-shadow:0 0 0 2px var(--focus);border-color:var(--focus)}.candidate-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.candidate-name{font-weight:600;font-size:13px}.candidate-best-tag{font-size:10px;color:var(--status-auto);font-weight:700;text-transform:uppercase}.candidate-meta{font-size:11px;color:var(--text-muted);margin:2px 0 8px}.candidate-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;font-size:12px}.candidate-grid dt{color:var(--text-muted)}.candidate-grid dd{margin:0;font-variant-numeric:tabular-nums}.bool-true{color:var(--status-auto);font-weight:600}.bool-false{color:var(--status-no-match)}.review-actions{display:flex;gap:6px;margin-top:8px}.review-actions button{flex:1;padding:5px 6px;font-size:11px;font-weight:600;border-radius:4px;border:1px solid var(--border);cursor:pointer}.review-actions button:hover{filter:brightness(.96)}.review-actions .review-accept{background:#e8f5e9;border-color:var(--status-auto);color:#1b5e20}.review-actions .review-reject{background:#ffebee;border-color:var(--status-no-match);color:#b71c1c}.review-banner{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding:6px 10px;border-radius:4px;font-size:11.5px;font-weight:600}.review-banner-accepted{background:#e8f5e9;color:#1b5e20;border:1px solid var(--status-auto)}.review-banner-rejected{background:#ffebee;color:#b71c1c;border:1px solid var(--status-no-match)}.review-banner button{padding:3px 8px;font-size:10.5px;font-weight:600;border-radius:4px;border:1px solid currentColor;background:#fff;color:inherit;cursor:pointer;flex:none}.review-banner button:hover{filter:brightness(.96)}.badge-muted{color:var(--text-muted)}.source-changed-banner{margin-top:8px;padding:8px 10px;border-radius:6px;background:#fff8e1;border:1px solid var(--focus);font-size:11.5px}.source-changed-banner-title{font-weight:700;color:#7a4f00;margin-bottom:2px}.source-changed-banner-text{margin:0 0 6px;color:#6d4c25}.source-changed-banner-actions{display:flex;flex-wrap:wrap;gap:6px}.source-changed-banner-actions button{padding:4px 8px;border-radius:4px;border:1px solid var(--focus);background:#fff;color:#7a4f00;font-size:11px;font-weight:600;cursor:pointer}.source-changed-banner-actions button:hover{background:#fff3cd}.source-compare-panel{margin-top:6px;padding-top:6px;border-top:1px dashed var(--focus)}.candidate-card.orphaned{background:var(--bg-muted)}.candidate-orphan-note{font-size:10.5px;color:var(--text-muted);font-style:italic;margin:2px 0 8px}.empty-state{color:var(--text-muted);font-size:13px;padding:8px 0}.audit-overlap-item{border:1px solid var(--border);border-left-width:4px;border-radius:6px;padding:8px 10px;margin-bottom:8px}.audit-overlap-item.highlighted{background:#fff8e1;border-color:#ffab00}.audit-overlap-name{font-weight:600;font-size:13px}#map-container{position:relative;flex:1;height:100%}#map{width:100%;height:100%}#legend{position:absolute;bottom:16px;right:16px;z-index:500;background:rgba(255,255,255,.96);border:1px solid var(--border);border-radius:8px;padding:8px 12px 10px;font-size:11px;max-width:250px;max-height:calc(100% - 32px);overflow-y:auto;box-shadow:0 1px 4px rgba(0,0,0,.15)}#legend h4{margin:0 0 6px;font-size:11px;text-transform:uppercase;color:var(--text-muted)}#legend .legend-header{display:flex;align-items:center;justify-content:space-between}#legend .legend-header h4{margin:0}#legend .legend-section-label{margin:8px 0 3px;font-size:10px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);border-top:1px solid var(--border);padding-top:5px}#legend .legend-row{display:flex;align-items:center;gap:7px;margin-bottom:4px;line-height:1.25}#legend .legend-row svg{flex:none}.park-hover-popup{font-size:12.5px}.park-hover-popup-ref{font-weight:700}.park-hover-popup-name{margin:2px 0 0}.park-hover-popup .badge{margin-top:6px}.coord-popup{font-size:12.5px;min-width:190px}.coord-popup-line{font-variant-numeric:tabular-nums;white-space:nowrap}.coord-popup-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.coord-popup-actions a,.coord-popup-actions button{flex:1;padding:5px 6px;font-size:11px;font-weight:600;border-radius:4px;border:1px solid var(--border);background:var(--bg-muted);cursor:pointer;text-align:center;text-decoration:none;color:inherit}.coord-popup-actions a:hover,.coord-popup-actions button:hover{filter:brightness(.96)}.coord-popup-actions a.coord-popup-external{flex-basis:100%}.coord-popup-feedback{margin-top:6px;font-size:11px;color:var(--status-auto);font-weight:600}#basemap-selector{position:absolute;bottom:42px;right:16px;z-index:501;background:rgba(255,255,255,.96);border:1px solid var(--border);border-radius:6px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.15)}#basemap-selector select{border:none;background:#fff;padding:6px 10px;font-size:11px;cursor:pointer;max-width:45vw}#basemap-selector select:hover{background:var(--bg-muted)}#basemap-selector select option:disabled{color:var(--text-muted)}#legend{bottom:82px}#cursor-readout{position:absolute;top:8px;left:50%;transform:translateX(-50%);z-index:501;background:rgba(255,255,255,.85);border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:10.5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--text-muted);pointer-events:none;white-space:nowrap}#basemap-notice{position:absolute;top:12px;right:12px;z-index:900;max-width:320px;background:#fff3e0;color:#e65100;border:1px solid #e65100;border-radius:6px;padding:8px 12px;font-size:11.5px}#btn-open-audit-overview{display:block;margin-top:8px;padding:5px 10px;border-radius:6px;border:1px solid var(--border);background:#fff;cursor:pointer;font-size:12px}#btn-open-audit-overview:hover{background:var(--bg-muted)}.audit-status-row{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.audit-status-row select,.audit-task-form input,.audit-task-form select{padding:5px 6px;border-radius:6px;border:1px solid var(--border);font-size:12.5px}.audit-task-form{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.audit-task-form input{flex:1;min-width:140px}.audit-task-form button{padding:5px 10px;border-radius:6px;border:1px solid var(--status-auto);background:#e8f5e9;color:#1b5e20;font-weight:600;cursor:pointer;font-size:12px}.audit-task-form button:hover{filter:brightness(.96)}.audit-task-group{margin-bottom:12px}.audit-task-group h4{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin:0 0 6px}.audit-task-card{border:1px solid var(--border);border-left-width:4px;border-radius:6px;padding:8px 10px;margin-bottom:8px;background:#fff}.audit-task-todo{border-left-color:var(--status-no-match)}.audit-task-in_progress{border-left-color:var(--status-review)}.audit-task-done{border-left-color:var(--status-auto)}.audit-task-wont_fix{border-left-color:var(--text-muted);background:var(--bg-muted)}.audit-task-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.audit-task-category-badge{font-size:10.5px;text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted);font-weight:600}.audit-task-status-select{font-size:11px;padding:2px 4px;border-radius:4px;border:1px solid var(--border)}.audit-task-description{font-size:12.5px;margin-bottom:6px}.audit-task-note{width:100%;min-height:40px;font-size:11.5px;padding:5px 6px;border-radius:4px;border:1px solid var(--border);resize:vertical;font-family:inherit;margin-bottom:4px}.audit-task-save-note{padding:3px 8px;font-size:10.5px;font-weight:600;border-radius:4px;border:1px solid var(--border);background:#fff;cursor:pointer}.audit-task-save-note:hover{background:var(--bg-muted)}.audit-task-meta{font-size:10.5px;color:var(--text-muted);margin-top:4px}#audit-overview-view{display:flex;flex-direction:column;min-height:0;flex:1;overflow:hidden;padding:0 16px 16px}#audit-overview-view h2{font-size:16px;margin:4px 0 10px}#audit-overview-back{margin:10px 0 0;align-self:flex-start;border:none;background:0 0;color:#1565c0;cursor:pointer;font-size:13px;padding:4px 0}#audit-overview-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}.audit-overview-filter{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--text-muted)}.audit-overview-filter select{padding:4px 6px;border-radius:6px;border:1px solid var(--border);font-size:12px}.audit-overview-filter-checkbox{flex-direction:row;align-items:center;font-size:12px}#audit-overview-list{overflow-y:auto;flex:1}.audit-overview-row{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;margin-bottom:8px;cursor:pointer}.audit-overview-row:hover{background:var(--bg-muted)}.audit-overview-row-main{display:flex;align-items:baseline;gap:8px}.audit-overview-row-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:11px;color:var(--text-muted)}.audit-park-status-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:600;color:#fff}.audit-park-status-unreviewed{background:#757575}.audit-park-status-in_progress{background:var(--status-review)}.audit-park-status-reviewed{background:var(--status-auto)}.audit-park-status-has_open_issues{background:var(--status-no-match)}@media (max-width:700px),(max-height:480px) and (orientation:landscape){body,html{height:100vh;height:100dvh}#app{height:100vh;height:100dvh}#sidebar{display:none;position:fixed;inset:0;width:100%;min-width:0;z-index:1000;border-right:none;background:#fff}body.mobile-panel-open #sidebar{display:flex}#sidebar-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-top:calc(14px + env(safe-area-inset-top));flex:none}#sidebar-header-main{flex:1}#detail-view,#list-view{display:block;overflow-y:auto;-webkit-overflow-scrolling:touch}#park-list{padding-bottom:calc(12px + env(safe-area-inset-bottom))}#detail-content{padding-bottom:calc(24px + env(safe-area-inset-bottom))}#mobile-toggle-bar{display:flex;position:absolute;top:calc(12px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:600;gap:8px}.mobile-toggle-btn{display:flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:rgba(255,255,255,.96);box-shadow:0 1px 4px rgba(0,0,0,.2);font-size:13px;font-weight:600;color:#1a1a1a;cursor:pointer}body.mobile-legend-open #mobile-legend-toggle,body.mobile-panel-open #mobile-panel-toggle{display:none}.hamburger-icon{display:inline-flex;flex-direction:column;justify-content:space-between;width:15px;height:11px;flex:none}.hamburger-icon span{display:block;height:2px;border-radius:1px;background:#1a1a1a}.mobile-close-btn{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:none;background:0 0;font-size:18px;line-height:1;color:var(--text-muted);cursor:pointer;flex:none}#legend{display:none;position:fixed;inset:0;max-width:none;max-height:none;border-radius:0;z-index:1000;padding:calc(12px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));overflow-y:auto}body.mobile-legend-open #legend{display:block}#audit-overview-back,#back-button,#btn-open-audit-overview,#departure-controls button,#mode-toggle button,.audit-overview-row,.audit-task-form button,.audit-task-save-note,.park-reset-button,.review-actions button,.review-banner button,.source-changed-banner-actions button{min-height:44px}#mode-toggle{display:flex;width:100%}#mode-toggle button{flex:1;text-align:center}.park-item{padding:10px 8px}.filter-chip{padding:7px 10px;font-size:12px}#search-input{padding:10px;font-size:16px}#basemap-selector select{min-height:40px}#cursor-readout{top:calc(64px + env(safe-area-inset-top))}.coord-popup-actions a,.coord-popup-actions button{min-height:44px}.site-logo{height:32px}#sidebar-footer a,#sidebar-footer button{min-height:44px;display:inline-flex;align-items:center}#about-dialog{max-height:calc(80vh - env(safe-area-inset-bottom))}#about-dialog-close{min-width:44px;min-height:44px}}