:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#15241f;background:#f7f9f8;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #308b65;outline-offset:2px}[hidden]{display:none!important}.login{position:fixed;inset:0;display:grid;place-items:center;background:#f4f7f5;z-index:9999}.login form{background:white;border:1px solid #e8ecea;border-radius:25px;padding:35px;width:min(390px,90vw);box-shadow:0 20px 55px #13291a12}.logo{font-weight:800;font-size:32px;letter-spacing:-1.8px}.logo span,.brand span{color:#42a978}.login p{color:#81908a;margin:5px 0 28px}.login input{display:block;width:100%;padding:14px;margin:10px 0;border:1px solid #e3eae6;border-radius:13px;background:#fafcfa}.login button{width:100%;background:#1c3026;border:0;color:white;padding:14px;border-radius:13px;margin-top:12px}.error{color:#c23838;margin-top:12px}header{height:62px;position:absolute;top:0;left:0;right:0;z-index:600;display:flex;align-items:center;justify-content:space-between;padding:0 20px;pointer-events:none}.brand{font-size:25px;font-weight:850;letter-spacing:-1.4px;pointer-events:auto}.toolbar{display:flex;gap:8px;pointer-events:auto}.toolbar button{border:1px solid #e4eae6;background:white;width:39px;height:39px;border-radius:50%;font-size:21px;box-shadow:0 2px 10px #1d302015}.searchbar{position:absolute;top:66px;left:18px;right:18px;z-index:601;display:flex;gap:8px;max-width:650px}.searchbar input{flex:1;min-width:0;border:1px solid #e5ebe7;background:white;box-shadow:0 3px 18px #15241a12;border-radius:16px;padding:14px 17px;outline:none}.searchbar select{max-width:116px;border:1px solid #e5ebe7;background:white;border-radius:14px;padding:0 10px;color:#41534b}main,main section,#map{position:absolute;inset:0}#map{background:#e9eeeb}#schemeview{background:#f5f8f6;overflow:auto;padding:132px 15px 115px}.schemewrap{max-width:650px;margin:auto}.sectiontitle{font-size:11px;letter-spacing:1.3px;color:#809087;text-align:center;font-weight:700;margin:16px}.arrow{text-align:center;color:#9caaa2;font-size:23px;margin:10px}.node{border:1px solid #e2eae5;background:white;border-radius:17px;padding:15px 17px;display:flex;align-items:center;gap:12px;width:100%;text-align:left;margin:8px 0;box-shadow:0 3px 15px #15241b06}.node .dot,.pin{border-radius:12px;width:37px;height:37px;display:grid;place-items:center;background:#e4f3ea;color:#23774d;font-weight:800;flex-shrink:0}.node .content{flex:1;min-width:0}.node strong{display:block;font-size:14px;overflow-wrap:anywhere}.node small{display:block;color:#83928b;margin-top:5px}.node.focus{border:2px solid #3a9870;background:#f1faf5;box-shadow:0 8px 28px #287f4214}.node:hover{border-color:#8dbca0}.node .chev{color:#8a9b90;font-size:22px}.empty{padding:18px;text-align:center;color:#9aa9a0;background:white;border:1px dashed #dce7df;border-radius:14px}.maphelp{position:absolute;bottom:91px;left:16px;right:16px;margin:auto;max-width:480px;text-align:center;background:#ffffffd9;backdrop-filter:blur(9px);border-radius:12px;padding:10px;color:#53665b;font-size:12px;pointer-events:none}.leaflet-control-zoom{margin-top:135px!important}nav{position:absolute;bottom:0;left:0;right:0;z-index:610;background:#fff;border-top:1px solid #e7eee8;display:flex;justify-content:center;gap:4px;padding:10px 12px calc(10px + env(safe-area-inset-bottom))}nav button{width:min(150px,32%);padding:9px;border:0;border-radius:13px;background:transparent;color:#85938a;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:22px}nav button span{font-size:11px}nav button.active{background:#e7f3ec;color:#23744c}.detail{position:absolute;z-index:620;bottom:85px;left:14px;right:14px;margin:auto;max-width:550px;max-height:min(65vh,630px);overflow:auto;background:white;border-radius:22px;padding:20px;box-shadow:0 12px 50px #15291d29;border:1px solid #e6ede8}.detail h2{font-size:18px;margin:4px 30px 6px 0;overflow-wrap:anywhere}.detail p{margin:7px 0;color:#66796d}.detail .close{position:absolute;right:16px;top:13px;border:0;background:#f3f6f3;border-radius:50%;width:31px;height:31px;font-size:20px}.pill{display:inline-block;background:#eaf5ef;color:#29724d;border-radius:20px;padding:5px 9px;font-size:11px;font-weight:700}.meta{padding:12px 0;border-bottom:1px solid #edf1ed;font-size:13px}.meta b{display:block;margin-bottom:5px}.detail .buttons{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}.detail .buttons button{background:#f0f5f1;border:1px solid #e0e9e2;border-radius:11px;padding:10px 12px;color:#284b36}.detail .buttons button.primary{background:#234c36;color:white}.connection{display:block;border:1px solid #e6ece7;border-radius:12px;background:#fff;padding:11px 13px;text-align:left;width:100%;margin:7px 0}.connection strong{display:block;font-size:13px;overflow-wrap:anywhere}.connection small{color:#748479;display:block;margin-top:4px}.detail img{width:95px;height:95px;object-fit:cover;border-radius:10px;margin:4px}#results{position:absolute;top:123px;left:18px;z-index:625;background:white;border:1px solid #e4eae6;border-radius:15px;box-shadow:0 8px 40px #132c1a24;width:min(460px,calc(100% - 36px));max-height:50vh;overflow:auto;padding:8px}#results button{display:block;border:0;background:white;width:100%;text-align:left;padding:12px;border-radius:10px}#results button:hover{background:#eff5f0}#results small{display:block;color:#89978f;margin-top:4px}dialog{border:0;border-radius:23px;width:min(470px,95vw);max-height:90vh;overflow:auto;box-shadow:0 22px 90px #16281c44;padding:25px}dialog::backdrop{background:#10251d77}dialog h2{margin-top:0}dialog label{display:block;color:#50675a;font-size:12px;font-weight:600;margin:12px 0}dialog input,dialog select,dialog textarea{display:block;width:100%;border:1px solid #dfe8e1;border-radius:10px;padding:11px;margin-top:5px;background:#fff;color:#243b2b}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:12px}.actions{display:flex;gap:8px;justify-content:flex-end}.actions button{padding:11px 18px;border:0;border-radius:11px;background:#edf2ee}.actions button:last-child{background:#234b36;color:white}.hint{font-size:12px;color:#849188}@media(min-width:900px){.detail{right:20px;left:auto;bottom:94px;width:390px;max-height:75vh}.searchbar{left:20px}.maphelp{left:20px;right:auto}.schemewrap{padding-top:0}}
