:root{--ink:#193e36;--muted:#71817b;--green:#246a52;--green-light:#eaf2ed;--line:#e4e9e4;--sand:#f8f7f2;--white:#fff;--amber:#916719;--shadow:0 5px 22px #193e3612;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--sand);font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #52a483;outline-offset:3px}button{border:0;background:transparent}h1,h2,h3,p{margin:0}h1{font-size:22px;letter-spacing:-.5px;font-weight:650;margin:9px 0 12px}h2{font-size:14px;font-weight:650}h3{font-size:16px;margin:24px 0 15px}p{line-height:1.8}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:38px;padding:0 26px;position:relative;z-index:3}.brand{display:flex;align-items:center;gap:12px;white-space:nowrap;color:var(--ink)}.brand:hover{text-decoration:none}.brand-mark{display:grid;place-items:center;width:39px;height:42px;background:var(--green);color:#f1ecd0;border-radius:12px 3px 12px 3px;font-size:27px;font-family:serif}.brand strong{display:block;font-size:19px;font-weight:650;letter-spacing:1px}.brand small{display:block;font-size:8px;letter-spacing:1.35px;margin-top:4px;color:var(--muted)}nav{height:100%;display:flex;gap:28px}.nav-button{padding:0 1px;position:relative;color:var(--muted);font-size:13px}.nav-button.active{color:var(--green);font-weight:600}.nav-button.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--green)}.header-actions{margin-left:auto;display:flex;align-items:center;gap:18px}.version-label{font-size:11px;color:var(--muted);white-space:nowrap}.button{display:inline-flex;gap:24px;align-items:center;justify-content:center;border:1px solid #d4ded6;padding:10px 16px;border-radius:6px;background:#fff;font-size:12px;line-height:1.5;transition:background .15s}.button:hover{background:#eef4ef;text-decoration:none}.button.primary{background:var(--green);color:#fff;border-color:var(--green)}.button.primary:hover{background:#1d5744}.button.full{width:100%;justify-content:space-between}.workspace{display:grid;grid-template-columns:278px minmax(300px,1fr) 292px;height:calc(100dvh - 76px);min-height:540px}.sidebar,.inspector{overflow-y:auto;background:#fff;scrollbar-width:thin;scrollbar-color:#d2dcd5 transparent}.sidebar{border-right:1px solid var(--line);display:flex;flex-direction:column}.sidebar-section{padding:23px 21px 0}.sidebar-section.compact{padding-top:23px}.eyebrow{font-size:9px;font-weight:600;color:#799284;letter-spacing:1.5px}.muted{color:var(--muted)}.intro{font-size:12px;line-height:1.8}.service-list{display:grid;gap:4px;margin-top:13px}.service-button{display:flex;align-items:center;gap:12px;text-align:left;padding:10px 12px;border-radius:6px;font-size:12px;color:#5f736a;position:relative}.service-button.active{background:var(--green-light);color:var(--green);font-weight:650}.service-button:hover{background:#f3f6f2}.service-button.active:after{content:"";width:5px;height:5px;border-radius:50%;background:var(--green);position:absolute;right:13px}.service-symbol{font-size:18px;width:22px;text-align:center;font-weight:400}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.tiny{font-size:10px}.year-list{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:12px}.year-button{border:1px solid var(--line);border-radius:5px;padding:8px 3px;font-size:11px;background:#fff}.year-button.active{color:#fff;background:var(--green);border-color:var(--green)}.hint{font-size:11px;color:var(--muted);line-height:1.7;margin-top:9px}.layers-section{margin-top:21px;padding-top:20px;border-top:1px solid var(--line);padding-bottom:22px}.text-button{font-size:11px;color:var(--green);padding:4px}.text-button:hover{text-decoration:underline}.count{background:#eef3ed;padding:1px 6px;border-radius:4px;color:var(--muted);margin-left:5px;font-size:10px}.layer-list{display:grid;gap:9px;margin-top:14px}.layer-card{border:1px solid var(--line);border-radius:6px;padding:10px;background:#fff}.layer-card.selected{border-color:#8daf9c;background:#fbfdfb}.layer-card-top{display:flex;align-items:start;gap:7px}.layer-card input[type=checkbox]{accent-color:var(--green);margin:3px 0}.layer-title{font-size:11px;text-align:left;padding:1px 0;line-height:1.6;flex:1}.layer-type{font-size:9px;color:var(--muted);margin:3px 0 8px 20px}.layer-controls{display:flex;gap:2px;align-items:center}.layer-controls input[type=range]{width:75px;flex:1;accent-color:var(--green);height:12px}.layer-controls button{font-size:11px;width:22px;height:22px;border-radius:3px;color:var(--muted)}.layer-controls button:hover{background:#e9eee8;color:var(--ink)}.layer-controls output{font-size:9px;width:28px;color:var(--muted);margin-left:3px}.sidebar-footer{font-size:10px;color:var(--muted);padding:16px 21px;margin-top:auto;border-top:1px solid var(--line);display:flex;align-items:center;gap:7px}.status-dot{width:5px;height:5px;background:#6b9c7b;border-radius:50%}.map-region{position:relative;min-width:0;overflow:hidden;background:#eef0e7}#map{position:absolute;inset:0}.map-top{position:absolute;left:22px;right:18px;top:22px;display:flex;align-items:start;justify-content:space-between;pointer-events:none}.map-top>*{pointer-events:auto}.map-label{padding:13px 16px;background:#fffffff0;box-shadow:var(--shadow);border:1px solid #fff;border-radius:7px;max-width:calc(100% - 66px)}.map-label .eyebrow{font-size:8px;letter-spacing:1px;display:block}.map-label strong{font-size:16px;font-weight:600;display:block;margin:7px 0 3px}.map-label-sub{font-size:10px;color:var(--muted)}.map-button{display:flex;align-items:center;gap:7px;justify-content:center;padding:10px 11px;background:#fff;border:1px solid #e0e5dc;border-radius:6px;box-shadow:var(--shadow);font-size:16px}.map-button span{font-size:10px}.map-button:hover,.map-button.active{background:var(--green-light);border-color:#99b39b}.map-tools{position:absolute;right:18px;top:80px;display:grid;gap:7px}.map-tools .map-button{flex-direction:column;gap:4px;width:54px;padding:9px 4px}.map-bottom{position:absolute;left:18px;bottom:38px;right:18px;display:flex;align-items:end;justify-content:space-between;gap:10px;pointer-events:none}.map-bottom>*{pointer-events:auto}.basemap-switch{padding:7px 9px;background:#ffffffee;border-radius:5px;box-shadow:var(--shadow);font-size:10px;display:flex;align-items:center;gap:4px}.basemap-switch input{accent-color:var(--green)}.coordinates{font-size:9px;color:#53685c;background:#ffffffde;padding:6px;border-radius:3px}.map-banner{position:absolute;left:18px;bottom:78px;right:88px;font-size:10px;background:#fffcf2eF;border:1px solid #e4dbb5;padding:9px 11px;border-radius:5px;color:#7c6b3c;pointer-events:none;line-height:1.5}.measure-result{position:absolute;bottom:122px;left:18px;max-width:80%;background:var(--green);color:white;border-radius:5px;padding:9px 12px;font-size:12px}.ol-zoom{top:140px;left:20px;box-shadow:var(--shadow);background:white;border-radius:6px}.ol-zoom button{background:white;color:var(--ink);font-size:22px;width:30px;height:29px}.ol-zoom button:hover{background:#eaf2ed;color:var(--green)}.ol-attribution{font-size:9px;max-width:calc(100% - 90px)}.ol-attribution button{color:var(--green);background:white}.ol-scale-line{background:#ffffffdb;bottom:5px;left:18px}.ol-scale-line-inner{color:#4d6557;border-color:#4d6557;font-size:9px}.inspector{border-left:1px solid var(--line)}.result-summary{padding:25px 22px 22px;background:linear-gradient(150deg,#f6f8f2,#fff)}.badge{display:inline-block;border-radius:4px;padding:4px 7px;font-size:9px;color:var(--green);background:var(--green-light);font-weight:500;white-space:nowrap}.badge.amber{color:var(--amber);background:#f7efd9}.service-large-icon{font-size:30px;color:#7e9d84;margin:24px 0 13px}.result-summary h2{font-size:22px;font-weight:600;margin-bottom:10px}.year-tag{display:flex;gap:9px;align-items:center;font-size:10px;color:var(--muted);margin-bottom:15px}.year-tag span:first-child{font-size:15px;color:var(--green);font-weight:600}.result-summary>p{font-size:11px;line-height:1.9}.empty-result{margin:22px 0 18px;border:1px dashed #cfd8cb;border-radius:6px;padding:18px 13px;text-align:center;background:#fff8}.empty-result>span{display:block;font-size:25px;color:#a4b7a0;margin:0 0 10px}.empty-result strong{font-size:11px;font-weight:550;display:block;color:#5b7163}.empty-result p{font-size:10px;line-height:1.8;color:#8a978d;margin-top:8px}.inspector-section{padding:20px 22px;border-top:1px solid var(--line)}.meta-title{font-size:12px;font-weight:550;margin:12px 0 8px;line-height:1.6}.meta-list{margin:8px 0;font-size:10px;display:grid;grid-template-columns:53px 1fr;gap:8px 6px}.meta-list dt{color:var(--muted)}.meta-list dd{margin:0;overflow-wrap:anywhere;line-height:1.6}.legend{margin-top:15px;display:grid;grid-template-columns:1fr 1fr;gap:7px;font-size:9px}.legend-item{display:flex;align-items:center;gap:6px}.legend-color{width:11px;height:11px;border-radius:2px;border:1px solid #0001;flex:none}.gradient-legend{margin-top:12px}.gradient-bar{height:10px;background:linear-gradient(to right,#a87949,#e4d5a3,#c5db96,#74a16e,#246a52);border-radius:3px}.gradient-labels{display:flex;justify-content:space-between;font-size:9px;margin-top:5px;color:var(--muted)}.identify-title{font-size:11px;margin-top:15px;font-weight:600}.identify-value{font-size:10px;margin-top:6px;line-height:1.8;word-break:break-word}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);max-width:650px;padding:12px 22px;border-radius:7px;background:#193e36f5;color:#fff;box-shadow:0 5px 25px #0002;font-size:12px;z-index:100;line-height:1.6}.wide-dialog{width:min(1080px,calc(100vw - 40px));max-height:90dvh;border:none;border-radius:12px;padding:0;color:var(--ink);box-shadow:0 20px 100px #122d3050}.wide-dialog::backdrop{background:#122d3080;backdrop-filter:blur(3px)}.dialog-header{padding:24px 30px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:1}.dialog-header h2{font-size:23px;margin-top:6px;font-weight:600}.close-button{font-size:28px;color:var(--muted);width:34px;height:34px;line-height:1;border-radius:5px}.close-button:hover{background:var(--green-light)}.dialog-body{padding:23px 30px 32px}.dialog-body>p{font-size:12px}.library-heading{display:flex;align-items:center;justify-content:space-between}.data-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.data-card{border:1px solid var(--line);border-radius:8px;padding:18px}.data-card h4{font-size:13px;margin:10px 0;line-height:1.6}.data-card p{font-size:10px;color:var(--muted)}.data-card .actions{display:flex;gap:10px;margin-top:13px;align-items:center}.data-card .button{font-size:10px;padding:7px 10px}.data-card .source-link{font-size:10px}.downloads{display:grid;gap:9px}.download-item{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 0;font-size:12px}.notice{padding:13px 16px;background:#f8f5e9;border:1px solid #e9e1c4;border-radius:6px;color:#7a6a37;font-size:12px;line-height:1.8;margin-bottom:20px}.pill-tabs{display:flex;flex-wrap:wrap;gap:7px;margin:20px 0}.pill-tabs button{padding:9px 15px;border:1px solid var(--line);border-radius:20px;font-size:12px}.pill-tabs button.active{color:white;background:var(--green);border-color:var(--green)}.method-intro{font-size:13px;line-height:1.9}.table-scroll{overflow-x:auto;max-height:380px;margin:12px 0}.parameter-table{border-collapse:collapse;font-size:11px;width:100%}.parameter-table th,.parameter-table td{border:1px solid var(--line);padding:10px 12px;text-align:left;line-height:1.7;vertical-align:top}.parameter-table th{background:#f1f5ef;position:sticky;top:0;font-weight:550;white-space:nowrap}.parameter-table input{width:67px;padding:5px 6px;border:1px solid #d5ded4;border-radius:4px;font-size:11px;color:var(--ink)}.parameter-table td:first-child{white-space:nowrap}.parameter-table .value-cell{max-width:310px;overflow-wrap:anywhere}.source-list{padding-left:20px;font-size:11px;color:var(--muted)}.source-list li{padding:6px 0;line-height:1.8;overflow-wrap:anywhere}.form-row,.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}.form-grid{grid-template-columns:repeat(3,1fr)}label{font-size:12px}label select,label input:not([type=checkbox]):not([type=range]){display:block;width:100%;margin-top:7px;border:1px solid #d5ded4;border-radius:5px;padding:10px;background:white;color:var(--ink)}label small{display:block;font-size:10px;line-height:1.6;color:var(--muted);margin-top:6px}.form-actions{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 12px}details{border-top:1px solid var(--line);margin-top:24px;padding-top:18px}summary{cursor:pointer;font-size:12px}.result-box{margin-top:20px;padding:18px;border:1px solid var(--line);border-radius:7px;background:#f7faf6}.result-box h4{margin:0 0 8px;font-size:13px}.result-box p{font-size:12px}.result-box ul{font-size:12px;color:var(--muted);line-height:1.9;padding-left:20px}.result-box code{font-size:10px;overflow-wrap:anywhere}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:15px}.metric{padding:15px;background:white;border:1px solid var(--line);border-radius:6px}.metric span{display:block;font-size:11px;color:var(--muted)}.metric strong{display:block;font-size:22px;font-weight:550;margin:12px 0}.metric small{font-size:10px;color:var(--muted)}.login-form{max-width:400px;margin:20px 0}.auth-line{display:flex;gap:15px;align-items:center;justify-content:space-between;margin-bottom:15px;font-size:11px;color:var(--muted)}[hidden]{display:none!important}
@media(min-width:1600px){.workspace{grid-template-columns:300px minmax(300px,1fr) 320px}.sidebar-section{padding-left:25px;padding-right:25px}.inspector-section,.result-summary{padding-left:27px;padding-right:27px}.topbar{padding:0 30px;gap:60px}}
@media(max-width:1100px){.workspace{grid-template-columns:245px minmax(300px,1fr) 250px}.sidebar-section{padding-left:15px;padding-right:15px}.result-summary,.inspector-section{padding-left:17px;padding-right:17px}.topbar{gap:24px;padding:0 18px}nav{gap:16px}.version-label{display:none}.header-actions{gap:8px}.map-label .eyebrow{display:none}.coordinates{display:none}.result-summary h2{font-size:20px}}
@media(max-width:860px){.workspace{grid-template-columns:235px 1fr}.inspector{display:none}.topbar{gap:18px}.brand small{display:none}.brand strong{font-size:16px}.brand-mark{width:33px;height:36px}.brand{gap:8px}nav{gap:12px}.nav-button{font-size:11px}.header-actions .button{font-size:11px;padding:8px 10px;gap:8px}.form-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.topbar{height:100px;padding:12px 15px;flex-wrap:wrap;gap:8px;align-content:space-between}.brand{order:0}.header-actions{order:1}nav{order:2;width:100%;height:32px;justify-content:space-around;gap:10px}.workspace{grid-template-columns:1fr;height:auto;min-height:0}.sidebar{order:1;overflow:visible;display:grid;grid-template-columns:1fr 1fr;border:0}.sidebar-section:first-child{display:none}.sidebar-section{padding:17px 15px 0}.sidebar-section.compact{padding-top:18px}.service-list{gap:1px}.service-button{padding:8px;font-size:11px;gap:6px}.year-list{grid-template-columns:1fr 1fr}.layers-section{grid-column:1/-1;margin:18px 0 0;padding:16px 15px}.layer-list{grid-template-columns:1fr 1fr}.sidebar-footer{grid-column:1/-1;padding:15px}.map-region{height:58dvh;min-height:350px;order:0}.map-top{left:14px;top:14px;right:13px}.map-label{padding:10px 13px}.map-label strong{font-size:14px}.map-tools{right:13px;top:66px;gap:5px}.map-tools .map-button{padding:7px 3px}.map-banner{font-size:9px;left:13px;right:80px}.map-bottom{left:13px;right:13px}.map-top .map-button{padding:9px}.ol-zoom{left:14px;top:100px}.wide-dialog{width:calc(100vw - 16px);max-height:94dvh}.dialog-header{padding:18px}.dialog-body{padding:18px}.data-grid,.form-grid,.form-row,.metric-grid{grid-template-columns:1fr}.dialog-header h2{font-size:20px}.toast{width:90%;font-size:11px}.download-item{gap:15px}.metric strong{font-size:20px}}
.month-control{display:flex;align-items:center;gap:10px;font-size:10px;color:var(--muted);margin:4px 0 12px}.month-control select{margin:0;padding:3px 6px;width:auto;font-size:10px}
