
:root{
  --bg:#f2f1ed;--panel:#fff;--text:#242825;--muted:#737871;--border:#dedfd8;
  --accent:#f26b21;--accent2:#d95416;--nature:#617456;--nature-soft:#eef2e9;
  --red:#b92222;--shadow:0 16px 42px rgba(35,39,35,.16)
}
*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font:14px/1.42 Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--text);background:var(--bg);overflow:hidden}button,input,select{font:inherit}
#app{display:flex}.brand{padding:18px 18px 16px;border-bottom:1px solid var(--border);background:linear-gradient(145deg,#fff 0%,#f6f4ee 100%)}
.brand-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dnscity-mark{display:flex;align-items:center;gap:9px;color:var(--text);font-weight:900;letter-spacing:.08em;font-size:13px}.dnscity-mark img{width:34px;height:34px;object-fit:contain}.dnscity-mark span{white-space:nowrap}.brand-kicker{font-size:9px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);font-weight:800}.brand-eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--accent);font-weight:900;margin-bottom:5px}.brand h1{font-size:26px;line-height:1.04;margin:0 0 6px;letter-spacing:-.035em}.brand-sub{color:var(--muted);font-size:12px;max-width:320px}
#sidebar{width:400px;min-width:400px;background:var(--panel);display:flex;flex-direction:column;z-index:1200;border-right:1px solid var(--border)}
.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 14px 8px}.stat{background:#f7f6f2;border:1px solid var(--border);border-radius:14px;padding:11px 12px}.stat.wide{grid-column:1/-1}.stat b{display:block;font-size:19px;letter-spacing:-.02em}.stat span{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.ps-card{margin:0 14px 10px;padding:11px 12px;border:1px solid #d6dccf;background:var(--nature-soft);border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.ps-card .label{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.ps-card strong{font-size:15px}.export-row{display:flex;gap:6px;flex-wrap:wrap}.export-row button{border:1px solid #d2d2ca;background:white;border-radius:999px;padding:6px 10px;cursor:pointer;font-weight:800;font-size:11px;transition:.15s}.export-row button:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.export-row.compact{flex-wrap:nowrap}
.toolbar{display:flex;gap:7px;padding:0 14px 10px}.toolbar input{width:100%;border:1px solid var(--border);border-radius:999px;padding:9px 13px;outline:none;background:#fbfbf9}.toolbar input:focus{border-color:#f3a174;box-shadow:0 0 0 3px rgba(242,107,33,.11)}.toolbar button{width:39px;border:1px solid var(--border);background:white;border-radius:50%;cursor:pointer;font-size:18px}
.legend{display:flex;gap:11px;flex-wrap:wrap;padding:0 15px 10px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.035em}.legend span{display:flex;align-items:center;gap:5px}.line{width:22px;height:0;border-top:3px solid}.line.ps{border-color:var(--nature)}.line.parcel{border-color:#2f6fdd;border-top-width:2px}.hatch{width:22px;height:11px;border:1px solid var(--red);background:repeating-linear-gradient(135deg,rgba(185,34,34,.07) 0 3px,rgba(185,34,34,.85) 3px 4px,rgba(185,34,34,.07) 4px 7px)}
.parcel-list{overflow:auto;flex:1;border-top:1px solid var(--border)}.parcel-item{padding:10px 14px;border-bottom:1px solid #efefe9;cursor:pointer;transition:.12s}.parcel-item:hover,.parcel-item.active{background:#faf1ea}.parcel-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.parcel-cad{font-weight:800;letter-spacing:.005em}.parcel-area{font-variant-numeric:tabular-nums;font-weight:800;color:var(--red);white-space:nowrap}.parcel-meta{font-size:11px;color:var(--muted);margin-top:3px}.sidebar-footer{padding:8px 14px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:10px}.link-button{border:0;background:none;color:var(--accent);padding:3px 0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;font-weight:700}
#mapWrap{position:relative;flex:1;min-width:0}#map{height:100%;width:100%;background:#dfe4dc}.mobile-toggle{display:none;position:absolute;z-index:1100;left:12px;top:12px;width:42px;height:42px;border:0;border-radius:50%;background:white;box-shadow:var(--shadow);font-size:20px}.coords{position:absolute;z-index:900;bottom:12px;left:12px;background:rgba(255,255,255,.94);border:1px solid var(--border);border-radius:999px;padding:6px 10px;font-size:10px;color:#4f554f;pointer-events:none;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.info-panel{position:absolute;right:14px;top:14px;z-index:1050;width:min(420px,calc(100% - 28px));max-height:calc(100% - 28px);overflow:auto;background:white;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:16px}.hidden{display:none!important}.info-close{position:absolute;right:10px;top:7px;border:0;background:none;font-size:24px;color:#72766f;cursor:pointer}.info-panel h2{font-size:19px;margin:0 30px 9px 0;letter-spacing:-.02em}.info-grid{display:grid;grid-template-columns:130px 1fr;gap:5px 10px;font-size:12px;margin:10px 0}.info-grid dt{color:var(--muted)}.info-grid dd{margin:0;overflow-wrap:anywhere}.info-section{border-top:1px solid var(--border);margin-top:10px;padding-top:10px}.info-section h3{font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px}.fragment-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:7px 0;border-top:1px dashed #e3e3dc}.fragment-row:first-of-type{border-top:0}.fragment-area{font-weight:800;color:var(--red);font-variant-numeric:tabular-nums}.mini-actions{display:flex;gap:4px}.mini-actions button{border:1px solid #d7d7d0;background:white;border-radius:999px;font-size:10px;padding:4px 7px;cursor:pointer}.mini-actions button:hover{border-color:var(--accent);color:var(--accent)}.zoom-link{border:0;background:none;color:var(--accent);padding:0;cursor:pointer;font-size:11px;font-weight:800}.difference-ok{color:#3e6d45;font-weight:800}.difference-warn{color:#a45700;font-weight:800}
.modal-backdrop{position:fixed;inset:0;z-index:3000;background:rgba(27,30,27,.42);display:flex;align-items:center;justify-content:center;padding:20px}.modal{position:relative;width:min(500px,100%);max-height:90vh;overflow:auto;background:white;border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.25);padding:20px}.verify-modal{width:min(960px,100%)}.modal h2{margin:0 32px 12px 0;letter-spacing:-.02em}.modal-close{position:absolute;right:10px;top:7px;border:0;background:none;font-size:27px;color:#73786f;cursor:pointer}.modal-object{padding:10px 12px;background:#f6f5f1;border:1px solid var(--border);border-radius:12px;margin-bottom:12px;font-weight:800;overflow-wrap:anywhere}.field{display:block;margin:11px 0}.field span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:800;margin-bottom:4px}.field input,.field select{width:100%;border:1px solid var(--border);border-radius:12px;padding:10px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.modal-actions button{padding:9px 15px;border-radius:999px;cursor:pointer;font-weight:800}.secondary{border:1px solid var(--border);background:white}.primary{border:1px solid var(--accent);background:var(--accent);color:white}.primary:hover{background:var(--accent2)}.table-wrap{overflow:auto;max-height:58vh;border:1px solid var(--border);border-radius:12px}table{border-collapse:collapse;width:100%;font-size:12px}th,td{padding:7px 8px;border-bottom:1px solid #e9e9e3;text-align:right;white-space:nowrap}th:first-child,td:first-child{text-align:left}thead th{position:sticky;top:0;background:#f5f4ef;z-index:1}.verify-summary{color:var(--muted)}.technical-note{margin-top:12px;padding:11px 13px;border-left:4px solid var(--nature);background:var(--nature-soft);font-size:12px;color:#50584c}
.leaflet-bar a{color:#30342f!important}.leaflet-control-layers{border:1px solid rgba(0,0,0,.12)!important;border-radius:12px!important;box-shadow:0 4px 18px rgba(0,0,0,.12)!important}.leaflet-tooltip.fragment-tip{background:#fff;border:1px solid #dadbd4;box-shadow:0 2px 8px rgba(0,0,0,.12);font-size:11px}.leaflet-tooltip.parcel-tip{font-weight:800}.leaflet-control-attribution{font-size:9px}
@media(max-width:850px){#sidebar{position:absolute;left:0;top:0;bottom:0;width:min(400px,92vw);min-width:0;transform:translateX(-102%);transition:transform .2s;box-shadow:var(--shadow)}#sidebar.open{transform:translateX(0)}.mobile-toggle{display:block}.coords{left:64px}.info-panel{top:66px}.brand h1{font-size:23px}.brand-topline{margin-bottom:12px}}

.leaflet-tooltip.parcel-label{background:rgba(255,255,255,.86);border:1px solid rgba(47,111,221,.35);border-radius:999px;box-shadow:0 1px 6px rgba(0,0,0,.08);color:#174ea6;font-size:10px;font-weight:800;padding:2px 7px;pointer-events:none;white-space:nowrap}.leaflet-tooltip.parcel-label:before{display:none}

.fragment-row.active{background:#fff4e8;border-radius:10px;padding:8px 6px;margin:0 -6px}.fragment-row.active .fragment-area,.fragment-row.active .zoom-link{color:#d86100}.leaflet-control-attribution a[href*="leaflet"]{display:none!important}
