:root{--ink:#17211c;--forest:#163d2b;--moss:#557342;--cream:#f4f1e7;--paper:#fffdf7;--line:#d9dccf;--blue:#237da6;--shadow:0 16px 40px rgba(19,36,27,.16)}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:"Trebuchet MS",Verdana,sans-serif;color:var(--ink);background:var(--cream);overflow:hidden}.topbar{height:64px;background:linear-gradient(105deg,#10271e,#254735);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:relative;z-index:1001;box-shadow:0 4px 16px rgba(0,0,0,.2)}.brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none}.brand-mark{width:38px;height:38px;border:1px solid #b8d289;border-radius:50%;display:grid;place-items:center;font:700 20px Georgia}.brand strong,.brand small{display:block}.brand strong{font:700 18px Georgia}.brand small{font-size:12px;opacity:.76;margin-top:2px}.top-actions{display:flex;gap:8px}.top-actions a,.top-actions button,.details-header button{border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.1);color:inherit;border-radius:999px;padding:9px 14px;text-decoration:none;cursor:pointer}.app-shell{height:calc(100% - 64px);display:grid;grid-template-columns:320px 1fr}.sidebar{background:var(--paper);border-right:1px solid var(--line);overflow:auto;z-index:800;transition:transform .25s ease}.sidebar-heading{position:sticky;top:0;background:rgba(255,253,247,.96);backdrop-filter:blur(12px);display:flex;justify-content:space-between;align-items:center;padding:18px;border-bottom:1px solid var(--line);z-index:2}.sidebar-heading h1{margin:2px 0 0;font:700 24px Georgia}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:10px;color:#607065}.sidebar-heading button{border:0;background:none;font-size:18px;cursor:pointer}.status-card{margin:16px;display:flex;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f7f8f1}.status-card strong,.status-card small{display:block}.status-card strong{font-size:13px}.status-card small{color:#6e766f;margin-top:3px}.status-dot{width:10px;height:10px;border-radius:50%;margin-top:3px;background:#60a152;box-shadow:0 0 0 4px #dcebd6}.status-dot.loading{background:#d7982f;box-shadow:0 0 0 4px #f7e8c8}.status-dot.error{background:#bd4438;box-shadow:0 0 0 4px #f4d7d3}.sidebar section{padding:0 16px 17px}.sidebar h2{font:700 16px Georgia;margin:8px 0 10px}.section-title{display:flex;align-items:center;justify-content:space-between}.section-title button{border:0;background:none;color:var(--forest);font-weight:700;font-size:11px;cursor:pointer}.layer-list{display:grid;gap:6px}.layer-row{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:8px;padding:8px;border-radius:8px;background:#f6f5ed;border:1px solid transparent}.layer-row:hover{border-color:#becbad}.layer-row input{accent-color:var(--forest)}.layer-row span{font-size:13px}.layer-row small{font-size:10px;color:#727c74}.legend{display:grid;grid-template-columns:1fr 1fr;gap:7px}.legend-item{display:flex;align-items:flex-start;gap:6px;font-size:10px;line-height:1.2}.legend-swatch{width:12px;height:12px;border-radius:3px;flex:none}.support-layers label{display:block;padding:5px 0;font-size:13px}.support-layers input{accent-color:var(--forest)}.funding{padding:14px 16px 20px;border-top:1px solid var(--line)}.funding p{font-size:9px;line-height:1.45;color:#69716b}.funding div{display:flex;align-items:center;justify-content:center;gap:24px}.funding img{height:55px;max-width:90px;object-fit:contain}.map-workspace{position:relative;min-width:0}.map-workspace #map{height:calc(100% - 220px);background:#dfe7d7}.leaflet-pane.leaflet-corine-pane{mix-blend-mode:multiply}.loading-overlay{position:absolute;left:50%;top:36%;z-index:900;transform:translate(-50%,-50%);background:rgba(255,253,247,.95);box-shadow:var(--shadow);border-radius:14px;padding:18px 28px;display:grid;justify-items:center;gap:8px}.loading-overlay.hidden{display:none}.spinner{width:28px;height:28px;border:3px solid #dfe4da;border-top-color:var(--forest);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay small{color:#667068}.details-panel{height:220px;background:#fff;box-shadow:0 -5px 18px rgba(27,43,34,.12);position:relative;z-index:700}.details-header{height:64px;background:#213b31;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:10px 18px}.details-header h2{font:700 17px Georgia;margin:3px 0 0}.details-header .eyebrow{color:#bcd09e}.details-header button:disabled{opacity:.42}.table-wrap{height:156px;overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;padding:9px 12px;border-bottom:1px solid #e2e5df}th{position:sticky;top:0;background:#eef1eb;z-index:1}.empty{text-align:center;color:#778078;padding:38px}.mobile-layers{display:none;position:absolute;left:12px;top:12px;z-index:750;border:0;border-radius:999px;padding:10px 14px;background:var(--forest);color:#fff;box-shadow:var(--shadow)}.parcel-label{background:#fff;border:1px solid #426338;color:#233a27;border-radius:10px;padding:2px 6px;box-shadow:0 2px 7px rgba(0,0,0,.18);font-weight:700}.place-label{background:transparent;border:0;box-shadow:none;color:#142c20;font-weight:800;text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff}.leaflet-tooltip.place-label:before{display:none}
.parcel-id-label{display:none;background:rgba(255,253,247,.9);border:0;color:#17211c;border-radius:8px;padding:1px 4px;box-shadow:0 1px 4px rgba(0,0,0,.22);font:700 10px Georgia;pointer-events:none}.show-parcel-labels .parcel-id-label{display:block}.leaflet-tooltip.parcel-id-label:before{display:none}
@media(max-width:760px){.topbar{height:56px;padding:0 12px}.top-actions button{display:none}.top-actions a{padding:7px 11px}.app-shell{height:calc(100% - 56px);display:block}.sidebar{position:absolute;left:0;top:56px;bottom:0;width:min(88vw,340px);transform:translateX(-105%);box-shadow:var(--shadow)}.sidebar.open{transform:translateX(0)}.map-workspace{height:100%}.map-workspace #map{height:calc(100% - 190px)}.details-panel{height:190px}.details-header{height:58px;padding:8px 12px}.details-header h2{font-size:14px}.details-header #export-csv{display:none}.table-wrap{height:132px}.mobile-layers{display:block;left:52px}.legend{grid-template-columns:1fr}.brand strong{font-size:16px}}
