:root{font:16px/1.45 system-ui,sans-serif;color:#192d25;background:#f4f6f2;--green:#176647;--border:#d9e3d9;--muted:#4d665a}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0}
header{min-height:64px;background:#142e24;color:#fff;display:flex;align-items:center;gap:1rem;padding:.8rem max(1rem,calc((100vw - 1180px)/2))}
.brand{display:flex;align-items:center;gap:.55rem;font-size:1.2rem;letter-spacing:.02em}
.brand-mark{display:grid;place-items:center;width:2rem;height:2rem;border-radius:.6rem;background:#c3eb8f;color:#142e24}
.brand-caption{font-size:.86rem;color:#d4e2d9}
main{max-width:1212px;padding:1.65rem 1rem 3rem;margin:auto;display:grid;gap:1rem}
h1,h2,p{margin:0}
h1{font-size:clamp(1.65rem,4vw,2.4rem);letter-spacing:-.04em}
h2{font-size:1.1rem}
p,.bar span{color:var(--muted)}
.intro,.bar,.actions,.paging,#search-form{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.intro,.bar{justify-content:space-between}
.intro p{margin:.35rem 0}
.panel{background:white;border:1px solid var(--border);border-radius:1rem;overflow:hidden;box-shadow:0 2px 8px #142e2408}
.bar{padding:.8rem 1rem}
#map{height:clamp(260px,48vh,530px);background:#e7efe5}
#edit-map{height:230px;margin-top:.75rem;border-radius:.55rem;background:#e7efe5}
button,input,select,textarea{font:inherit;color:inherit;border:1px solid #a8b9ae;border-radius:.5rem;background:white;padding:.55rem .7rem;min-height:44px}
button{cursor:pointer;font-weight:650}
button:hover:not(:disabled){background:#eaf2ea}
button:disabled{opacity:.5;cursor:default}
button.primary{background:var(--green);color:white;border-color:var(--green)}
button.primary:hover:not(:disabled){background:#0f5036}
:focus-visible{outline:3px solid #287ea3;outline-offset:2px}
.search-block{width:min(100%,42rem);display:flex;align-items:center;gap:clamp(.45rem,2vw,1rem)}
.search-block :is(h1,h2){font-size:clamp(1.1rem,3.5vw,1.7rem);flex:none}
#search-form{flex:1;min-width:0;flex-wrap:nowrap;gap:clamp(.3rem,1vw,.7rem)}
#search{flex:1;min-width:0}
.search-submit,.site-menu summary{display:grid;place-items:center;min-width:44px;min-height:44px}
#excel-status:empty{display:none}
.site-menu{position:relative;z-index:1100}
.site-menu summary{cursor:pointer;list-style:none;border:1px solid #668579;border-radius:.5rem;color:#fff}
.site-menu summary::-webkit-details-marker{display:none}
.site-menu-items{position:absolute;top:calc(100% + .45rem);left:0;min-width:12rem;display:grid;gap:.28rem;padding:.35rem;border-radius:.65rem;background:#142e24;box-shadow:0 .35rem 1rem #0005}
.site-menu:not([open]) .site-menu-items{display:none}
.site-menu-items button{text-align:left;color:#192d25}
.site-menu-items a{display:flex;align-items:center;min-height:44px;padding:.55rem .7rem;border:1px solid #a8b9ae;border-radius:.5rem;background:#fff;color:#192d25;text-decoration:none;font-weight:650}
.site-menu-items a:hover{background:#eaf2ea}
[data-theme="dark"] .site-menu-items a{background:#22352b;border-color:#657d70;color:#edf4ef}
[data-theme="dark"] .site-menu-items a:hover{background:#2c4538}
.plot-marker{border:0;background:transparent}
.plot-dot{display:grid;place-items:center;width:18px;height:18px;margin:5px;border-radius:50%;background:#176e3c;color:white;font:700 15px/1 system-ui,sans-serif}
.plot-dot.unspecified{background:#737d77}
.plot-dot.abandoned{background:#000;border-radius:0;clip-path:polygon(50% 0,100% 100%,0 100%)}
.plot-dot.no-debt{box-shadow:0 0 0 3px #a6ed41}
.plot-dot.debt{box-shadow:0 0 0 3px #780e35}
.plot-dot.water-off{box-shadow:0 0 0 3px #df2525}
.plot-dot.no-debt.water-off{box-shadow:0 0 0 2px #a6ed41,0 0 0 4px #df2525}
.plot-dot.debt.water-off{box-shadow:0 0 0 2px #780e35,0 0 0 4px #df2525}
.plot-tooltip span{display:block}
.leaflet-container a.plot-popup-action{display:inline-flex;align-items:center;min-height:44px;margin-top:.5rem;padding:.2rem .65rem;border:1px solid var(--border);border-radius:.5rem;color:#176647;text-decoration:none;font:650 .9rem system-ui,sans-serif}
.leaflet-container a.plot-popup-action:hover{background:#eaf2ea}
[data-theme="dark"] .leaflet-container a.plot-popup-action{color:#b9e9c7}
[data-theme="dark"] .leaflet-container a.plot-popup-action:hover{background:#2c4538}
[data-theme="dark"] .leaflet-tooltip:has(.plot-tooltip){background:#192821;color:#edf4ef;border-color:#40544a}
[data-theme="dark"] .leaflet-tooltip-top:has(.plot-tooltip)::before{border-top-color:#192821}
.login-panel{max-width:420px;width:100%;margin:2rem auto;padding:1.25rem}
.login-panel form{display:grid;gap:.8rem;margin-top:1rem}
.full-registry{max-width:none}
.full-registry .registry-toolbar{align-items:flex-end}
.full-registry .table-wrap{max-height:72vh;min-height:8rem}
.full-registry table{width:max-content;min-width:100%}
.full-registry th,.full-registry td{vertical-align:top;min-width:6rem;max-width:20rem;overflow-wrap:anywhere}
.full-registry th{position:sticky;top:0;z-index:1}
.full-registry td{white-space:pre-wrap}
.full-registry td pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:12rem;overflow:auto}
.full-registry td summary{cursor:pointer}
.back-to-map{color:#fff}
.fullscreen-map-page{margin:0;overflow:hidden}
#fullscreen-map{position:fixed;inset:0;background:#e7efe5}
[data-theme="dark"] #fullscreen-map{background:#24392f}
.fullscreen-map-tools{position:fixed;z-index:1100;top:.6rem;right:.6rem;min-height:0;max-width:calc(100% - 4rem);padding:.4rem .65rem;border-radius:.6rem;gap:.5rem;flex-wrap:wrap}
.fullscreen-map-tools a{color:#fff;font-weight:650}
.fullscreen-map-tools p{color:#d4e2d9;font-size:.86rem}
#list-status{padding:0 1rem .6rem}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;text-align:left}
td,th{padding:.65rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle}
th{background:#f0f5ef;font-size:.87rem}
.sort-button{display:inline-flex;align-items:center;gap:.35rem;background:transparent;border:0;padding:.2rem;min-height:44px;text-align:left;font:inherit;font-weight:700}
.sort-arrow{color:var(--muted);font-size:1rem}
[data-theme="dark"] .sort-button{background:transparent}
th[aria-sort] .sort-arrow{color:inherit}
.secondary{display:block;color:var(--muted);font-size:.87rem}
.row-actions{display:flex;gap:.4rem;flex-wrap:wrap}
.paging{justify-content:flex-end}
#plot-form{padding:0 1rem 1rem}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
label{display:grid;gap:.25rem;font-weight:600}
input,select,textarea{width:100%;min-width:0;font-weight:400}
.wide{grid-column:1/-1}
fieldset{min-width:0;border:1px solid var(--border);border-radius:.65rem;margin:1rem 0;padding:.75rem}
legend{font-weight:700;padding:0 .3rem}
#gps-status{margin:.5rem 0}
#form-status{color:#922f26}
.picking{cursor:crosshair!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:640px){
 main{padding-top:1rem}
 .intro .primary{width:100%}
 .fields{grid-template-columns:1fr}
 table,tbody,tr,td{display:block}
 thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 tbody tr{border-top:1px solid var(--border);padding:.45rem 0}
 td{border:0;padding:.22rem 1rem}
 td[data-label]:not([data-label=""])::before{content:attr(data-label) ": ";font-weight:600}
 .full-registry table{display:table}
 .full-registry thead{display:table-header-group;position:static;width:auto;height:auto;overflow:visible;clip-path:none}
 .full-registry tbody{display:table-row-group}
 .full-registry tr{display:table-row}
 .full-registry td{display:table-cell;padding:.65rem 1rem;border-bottom:1px solid var(--border)}
 .compact-registry thead{position:static;width:auto;height:auto;overflow:visible;clip-path:none;display:block}
 .compact-registry thead tr{display:flex;flex-wrap:wrap;gap:.3rem;padding:.35rem .75rem}
 .compact-registry thead th{padding:0 .3rem;border:0;border-radius:.4rem}
 .compact-registry thead th:not([data-sort]){display:none}
}
