:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#203b35;background:#f4f3ee;font-synthesis:none;--ink:#203b35;--green:#173c35;--accent:#d8ef83;--muted:#66756e;--line:#d9ded6;--red:#b53b32;--good:#26754c;--radius:20px}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{min-height:46px;padding:11px 17px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-weight:650;cursor:pointer}button:hover{border-color:#88988c}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #86a545;outline-offset:3px}.primary{background:var(--green);color:#fff;border-color:var(--green)}.wide{width:100%;display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:12px;letter-spacing:.17em;font-weight:750}.muted{color:var(--muted)}.small{font-size:13px;line-height:1.6}h1{font-size:clamp(32px,5vw,42px);letter-spacing:-.055em;line-height:1.12;font-weight:680}h2{font-size:25px;letter-spacing:-.035em;margin:8px 0 20px}p{line-height:1.6}label{display:block;font-size:14px;font-weight:650;margin:18px 0}input,textarea,select{display:block;width:100%;margin-top:8px;padding:14px;border:1px solid #cbd3c9;border-radius:12px;background:#fff;color:var(--ink);min-height:48px}textarea{min-height:140px;resize:vertical}.error{color:#a22b24;font-size:14px;min-height:20px}.login-page{min-height:100dvh;display:grid;place-items:center;padding:30px 20px;background:radial-gradient(ellipse at 90% 10%,#e4ead5,transparent 60%),#f4f3ee}.login-card{width:min(440px,100%);padding:30px 12px}.brand-symbol{margin:35px 0 20px;display:grid;place-items:center;background:var(--accent);border-radius:18px;width:58px;height:58px;font-size:32px}.segmented{display:flex;gap:4px;background:#e6e9e0;border-radius:14px;padding:4px;margin:28px 0}.segmented button{flex:1;border:0;background:transparent}.segmented button.selected{background:white;box-shadow:0 2px 5px #213b3510}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

.topbar{height:86px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1320px)/2));background:#fff}.wordmark{text-decoration:none;color:var(--green);display:flex;align-items:center;gap:9px;font-size:36px;font-weight:800}.wordmark>span{background:var(--accent);font-size:20px;border-radius:8px;padding:3px}.wordmark b{font-size:13px;letter-spacing:.12em;margin-left:6px}.wordmark small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.account{display:flex;gap:16px;align-items:center;font-size:14px}.page{max-width:1320px;margin:auto;padding:36px 24px 110px}.page-title{display:flex;justify-content:space-between;align-items:center;margin:8px 0 26px}.page-title h1{margin:12px 0 8px}.page-title p{margin:0}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.panel-heading{display:flex;justify-content:space-between;align-items:center;padding:18px 22px}.panel-heading h2{margin:0;font-size:20px}.map{height:530px;background:#e7e9e1;z-index:0}.map-caption{padding:15px 22px;display:flex;justify-content:space-between;gap:12px}.leaflet-control-zoom a{width:44px!important;height:44px!important;line-height:44px!important}.map-pin{width:38px;height:38px;border:3px solid white;border-radius:50% 50% 50% 6px;transform:rotate(-45deg);box-shadow:0 2px 7px #0005;display:grid;place-items:center;color:#fff;font-weight:800;background:var(--red)}.map-pin span{transform:rotate(45deg)}.map-pin.done{background:var(--good)}.map-pin-wrapper{background:none;border:none}#toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);padding:15px 22px;background:#173c35;color:white;border-radius:14px;z-index:3000;box-shadow:0 4px 30px #0003}.leaflet-popup-content{margin:14px;min-width:180px}.leaflet-popup-content button{width:100%;margin-top:10px}@media(max-width:650px){.topbar{height:72px;padding:0 16px}.account{gap:8px}.account>span{display:none}.account button{font-size:13px;padding:9px 12px}.page{padding:26px 16px 100px}.page-title h1{font-size:30px}.map{height:430px}.map-caption{display:block;padding:13px 16px}.map-caption>span{display:block}.panel-heading{padding:14px 16px}}
