:root{--paper:#f6f7f3;--ink:#192b26;--muted:#78847d;--green:#194a3b;--line:#e3e7df;--lime:#dcecbe;--error:#b83c35;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #9ab778;outline-offset:3px}[hidden]{display:none!important}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid var(--line);background:#fff;position:relative;z-index:500}.brand{display:flex;align-items:center;gap:10px}.brand strong{font-size:19px;letter-spacing:2px;display:flex;align-items:baseline;gap:12px}.brand strong span{font-size:10px;letter-spacing:1.9px;font-weight:500;color:var(--muted)}.header-actions{display:flex;align-items:center;gap:18px}.quiet{border:0;background:transparent;padding:10px 0;color:var(--green);font-size:12px}.quiet span{margin-left:8px}.service{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:7px}.service:before{content:"";width:6px;height:6px;background:#b9c0ba;border-radius:50%}.service.online:before{background:#6b9c52}.service.offline:before{background:var(--error)}.logout{color:var(--muted)}main{display:grid;grid-template-columns:365px 1fr;height:calc(100dvh - 76px)}.map-area{order:2;position:relative;min-width:0;background:#e5e9df;overflow:hidden}#map{height:100%;width:100%;z-index:0;background:#e7ece5}.panel{order:1;overflow-y:auto;padding:29px 26px 10px;scrollbar-width:thin}.eyebrow{font-size:9px;font-weight:600;letter-spacing:2.2px;color:#8b968f;margin:0 0 12px}.panel-title h1{font-weight:600;letter-spacing:-.6px;font-size:24px;line-height:1.4;margin:0 0 8px}.muted{color:var(--muted);font-size:12px;line-height:1.8;margin:0}.panel-title{margin-bottom:24px}.current-card{border:1px solid #d4dfcb;background:#edf2e5;border-radius:16px;padding:17px;margin-bottom:26px}.card-heading{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#6a7b5d}.tag{padding:4px 8px;border-radius:6px;background:#e0e6d7;font-size:10px}.tag.active{color:#244d25;background:#d4e7b7}.current-coordinates{font-variant-numeric:tabular-nums;font-size:16px;letter-spacing:.1px;font-weight:600;margin-top:14px}.current-card p{font-size:10px;color:#77866e;margin:8px 0 0;line-height:1.65}.section-heading{display:flex;align-items:baseline;justify-content:space-between;margin:0 0 17px}.section-heading h2{font-size:13px;font-weight:600;margin:0}.section-heading>span{font-size:9px;color:var(--muted)}.field-label,.coordinate-fields label{font-size:10px;color:#6f7c75;display:block;margin-bottom:7px}input,select{background:#fff;border:1px solid #dde3d9;border-radius:9px;min-height:42px;width:100%;padding:10px 12px;color:var(--ink);font-size:12px}input::placeholder{color:#a0aaa3}input[type=number]{font-variant-numeric:tabular-nums}select{appearance:auto;margin-bottom:13px}.coordinate-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 10px}.coordinate-fields input{display:block;margin-top:7px}.accuracy-row{display:flex;align-items:center;position:relative;margin-bottom:18px}.accuracy-row input{padding-right:45px}.accuracy-row>span{position:absolute;right:14px;font-size:11px;color:#8a968e}.primary,.secondary{display:flex;align-items:center;justify-content:center;gap:14px;padding:13px 17px;border-radius:10px;min-height:44px;font-size:12px;font-weight:500;border:1px solid transparent}.primary{background:var(--green);color:#fff}.primary:hover{background:#103d2f}.primary>span{margin-left:auto;font-size:16px}.secondary{background:transparent;color:#62736a;border-color:#d9e0d4;margin-top:9px}.secondary:disabled{cursor:default}.secondary:hover{background:#edf0e9}.full{width:100%}.hint{font-size:10px;color:#8b968f;line-height:1.8;margin:12px 0 0}.favorites-section,.diagnostics{border-top:1px solid var(--line);margin-top:23px;padding-top:21px}.favorite-form{display:flex;gap:7px}.square{width:42px;flex:none;border:1px solid #dde3d9;border-radius:9px;font-size:20px;background:#fff;color:var(--green)}.favorite-empty{font-size:11px;color:#98a196;margin:17px 0 0;text-align:center}.favorite{display:flex;align-items:center;gap:6px;border-bottom:1px solid #e5e9e1;padding:9px 0}.favorite-select{background:transparent;border:0;text-align:left;flex:1;min-width:0;padding:5px 0}.favorite-select strong{display:block;font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.favorite-select span{font-size:9px;color:#98a196;display:block;margin-top:4px}.favorite-delete{background:transparent;border:0;font-size:18px;padding:8px;color:#9ca79f}.metrics{display:grid;grid-template-columns:1fr 1fr 1fr}.metrics div{display:flex;flex-direction:column;gap:6px;border-right:1px solid var(--line);padding-left:15px}.metrics div:first-child{padding-left:0}.metrics div:last-child{border:0}.metrics strong{font-size:22px;font-weight:500;letter-spacing:-.7px}.metrics span{font-size:9px;color:#8b968f}.diagnostics details{margin-top:10px}.diagnostics summary{font-size:10px;color:#7b887e;cursor:pointer}.event-list{padding-left:12px;font-size:10px;line-height:1.8;color:#869180;max-height:160px;overflow:auto}.event-list li{margin-bottom:8px}footer{margin-top:30px;padding:16px 0 8px;display:flex;justify-content:space-between;gap:6px;font-size:9px;letter-spacing:.3px;color:#a0aaa0}footer span{font-size:8px}.search{position:absolute;top:24px;left:24px;display:flex;align-items:center;gap:8px;background:white;border:1px solid #e2e7dd;border-radius:13px;box-shadow:0 6px 22px #273f2920;min-height:51px;padding:6px 7px 6px 16px;width:min(410px,calc(100% - 90px));z-index:400}.search>span{font-size:25px;font-weight:300;color:#92a089}.search input{padding:7px 5px;background:transparent;border:0;min-width:0;flex:1;min-height:30px;outline:0;font-size:12px}.search button{background:#eef2e7;border:0;border-radius:7px;white-space:nowrap;padding:10px 15px;color:var(--green);font-size:11px}.results{position:absolute;z-index:450;left:24px;top:83px;width:min(410px,calc(100% - 90px));border-radius:12px;background:#fff;box-shadow:0 6px 22px #273f2920;overflow:hidden}.result{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid #edf0e8;background:#fff;padding:13px 16px;font-size:11px;line-height:1.6}.result:hover{background:#f1f5ea}.map-caption{position:absolute;z-index:300;bottom:25px;left:24px;background:#ffffffed;border:1px solid #e1e7da;border-radius:40px;padding:10px 15px;font-size:10px;color:#65745e;display:flex;align-items:center;gap:8px}.tiny-dot{width:6px;height:6px;border-radius:50%;background:#749a56}.map-center{position:absolute;z-index:300;right:24px;bottom:45px;width:43px;height:43px;border:1px solid #dbe2d5;border-radius:12px;background:#fff;color:#31532a;box-shadow:0 3px 10px #273f2912;font-size:24px}.leaflet-control-zoom{border:1px solid #dbe2d5!important;border-radius:10px!important;box-shadow:0 3px 10px #273f2912!important;overflow:hidden}.leaflet-control-zoom a{color:#44643a!important;font-size:20px!important}.leaflet-top.leaflet-right{top:15px;right:15px}.leaflet-control-attribution{font-size:8px!important;background:#ffffffd9!important}.target-pin{background:transparent;border:0}.pin{position:relative;display:block;width:34px;height:34px;background:#244e3a;border:4px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 3px 15px #153f3544}.pin:after{content:"";width:8px;height:8px;background:#deedc8;border-radius:50%;position:absolute;top:9px;left:9px}.tile-error{position:absolute;bottom:80px;left:24px;right:24px;padding:10px 14px;background:#fff8e6;border-radius:9px;color:#7d714c;font-size:11px;z-index:400}.toast{position:fixed;z-index:2000;bottom:26px;left:50%;transform:translateX(-50%);border-radius:11px;background:#153f35;color:white;padding:13px 22px;box-shadow:0 8px 30px #0002;font-size:12px;max-width:calc(100% - 32px);line-height:1.65;text-align:center}.toast.error{background:#8c3932}dialog{border:1px solid #e2e8dd;border-radius:22px;box-shadow:0 22px 100px #18312822;background:var(--paper);color:var(--ink);padding:32px;max-width:calc(100% - 28px)}dialog::backdrop{background:#e0e7ded9;backdrop-filter:blur(9px)}.login-dialog{width:395px}.login-dialog img{margin-bottom:26px}.login-dialog h1{font-size:24px;font-weight:600;letter-spacing:-.7px;margin:0 0 8px}.login-dialog .field-label{margin-top:27px}.login-dialog input{min-height:47px}.login-dialog .hint{text-align:center}.error{color:var(--error);font-size:11px;min-height:16px;margin:9px 0 12px}.setup-dialog{width:520px;max-height:calc(100dvh - 28px);overflow:auto}.setup-top{display:flex;justify-content:space-between;align-items:start}.setup-top h2{font-size:25px;letter-spacing:-.7px;margin:0 0 10px}.close{font-size:27px;border:0;padding:0 3px;line-height:1;background:transparent;color:#879381}.setup-steps{counter-reset:step;list-style:none;padding:0;margin:25px 0}.setup-steps li{position:relative;padding:0 0 24px 36px;counter-increment:step}.setup-steps li:before{content:counter(step);position:absolute;top:0;left:0;background:#e1ebd7;color:var(--green);width:23px;height:23px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700}.setup-steps strong{font-size:13px;font-weight:600}.setup-steps p,.setup-note p{font-size:11px;color:#7a8970;line-height:1.85;margin:8px 0 12px}.setup-note{background:#eaf0e1;border-radius:12px;padding:17px}.setup-note strong{font-size:12px}.setup-note p{margin-bottom:0}.text-link{font-size:11px;color:var(--green);text-decoration:underline;text-underline-offset:4px}.download{margin-top:12px}.setup-steps b{font-weight:600}
@media(min-width:1500px){main{grid-template-columns:390px 1fr}.panel{padding-left:34px;padding-right:34px}}
@media(max-width:760px){.topbar{height:64px;padding:0 17px}.brand strong{font-size:18px;letter-spacing:1px}.brand strong span{display:none}.header-actions{gap:14px}.service{font-size:9px}.quiet{font-size:10px}main{height:auto;display:flex;flex-direction:column}.map-area{order:1;height:40dvh;min-height:285px;max-height:420px}.panel{order:2;overflow:visible;padding:25px 22px 12px}.panel-title{margin-bottom:20px}.panel-title h1{font-size:25px}.current-card{margin-bottom:24px}.search{top:15px;left:14px;min-height:46px;width:calc(100% - 76px);padding-left:11px;border-radius:11px}.search input{font-size:12px}.search button{padding:9px 12px}.results{top:68px;left:14px;width:calc(100% - 76px)}.map-caption{bottom:16px;left:14px;font-size:9px;padding:8px 11px}.map-center{right:14px;bottom:30px;width:38px;height:38px}.leaflet-top.leaflet-right{top:5px;right:4px}.coordinate-fields{gap:12px}input,select{min-height:46px;font-size:16px}.coordinate-fields label,.field-label{font-size:11px}.primary,.secondary{min-height:47px;font-size:13px}.hint{font-size:11px}.section-heading h2{font-size:14px}.section-heading>span{font-size:10px}.favorite-form input{font-size:13px}.square{width:46px}.favorites-section,.diagnostics{margin-top:26px;padding-top:23px}.metrics strong{font-size:25px}.metrics span{font-size:10px}.current-coordinates{font-size:19px}.current-card p{font-size:11px}.current-card .card-heading{font-size:12px}.login-dialog{padding:29px}.setup-dialog{padding:26px}.setup-steps p,.setup-note p{font-size:12px}.toast{bottom:20px;width:max-content}footer{font-size:10px}.tile-error{left:14px;right:14px;font-size:10px}}
@media(prefers-reduced-motion:no-preference){button,a{transition:background .15s ease,opacity .15s ease}.toast{animation:arrive .18s ease}@keyframes arrive{from{opacity:0;translate:0 5px}to{opacity:1;translate:0 0}}}
