:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#19392f;background:#f6f7f2;font-size:15px;line-height:1.5;--green:#215e49;--light:#e9efe4;--line:#dbe2d7;--muted:#68796e}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,.button{border:1px solid var(--line);border-radius:11px;background:white;color:#19392f;min-height:46px;padding:10px 15px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;font-weight:600;text-align:center;touch-action:manipulation}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #d6983c;outline-offset:2px}.primary{background:var(--green);border-color:var(--green);color:#fff}.secondary{background:var(--light);border-color:#cbd8c4}.quiet{background:transparent;border-color:transparent}.button-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}a{color:#286c65}h1{font-size:29px;line-height:1.18;letter-spacing:-.7px;margin:8px 0 16px}h2{font-size:20px;line-height:1.3;margin:0 0 10px}p{margin:8px 0 15px}.muted,.hint{color:var(--muted)}.hint{font-size:13px;line-height:1.55}.eyebrow{font-size:11px;letter-spacing:1.7px;font-weight:700;color:#687f63}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:12px max(16px,calc((100vw - 1250px)/2));background:#fbfcf8;border-bottom:1px solid var(--line);gap:10px;position:relative;z-index:1001}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;font-size:15px;font-weight:700;letter-spacing:2px;color:#254c3d}.brand-symbol{font-size:35px;color:#789958}.brand small{display:block;font-size:11px;letter-spacing:.3px;font-weight:400;color:var(--muted)}.header-actions{display:flex;gap:3px;align-items:center}.sync-chip{border:0;font-size:12px;padding:6px 8px;background:transparent;gap:6px;font-weight:500;max-width:155px;text-align:left}.sync-chip span:first-child{height:7px;width:7px;flex:0 0 7px;background:#748d67;border-radius:50%}.sync-chip.pending span:first-child{background:#cc852f}.sync-chip.error span:first-child{background:#b64936}.connection-banner{padding:8px 18px;background:#fff0d3;color:#795617;font-size:13px;border-bottom:1px solid #e7d8b7}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:1100;display:flex;justify-content:center;gap:4px;background:#fbfcf8f5;border-top:1px solid var(--line);padding:5px 10px calc(5px + env(safe-area-inset-bottom))}.bottom-nav button{width:min(25%,180px);border:0;border-radius:8px;background:transparent;flex-direction:column;gap:0;font-size:12px;font-weight:500;min-height:58px}.bottom-nav button span{font-size:22px;line-height:1.15}.bottom-nav button.active{background:#e8efe2;color:#235c43;font-weight:700}main{padding-bottom:76px}.page[hidden],#app[hidden],#login[hidden],[hidden]{display:none!important}.map-page{height:calc(100dvh - 150px - var(--connection-height,0px) - env(safe-area-inset-bottom));min-height:320px;position:relative;isolation:isolate}#map{height:100%;width:100%;background:#d8e0cc}.map-tools{position:absolute;top:14px;left:14px;right:70px;z-index:500;display:flex;gap:6px;flex-wrap:wrap;pointer-events:none}.map-tools button{box-shadow:0 2px 12px #0d2c2c16;font-size:12px;padding:8px 12px;min-height:42px;pointer-events:auto}.map-caption{position:absolute;left:12px;bottom:calc(var(--selection-height,190px) + 34px);z-index:500;background:#f9fcf4e8;color:#384e3d;padding:5px 10px;border-radius:7px;font-size:11px;display:flex;align-items:center;gap:12px;max-width:calc(100% - 24px)}.map-caption label{display:flex;align-items:center;gap:3px;white-space:nowrap}.map-caption input{width:17px;height:17px;accent-color:var(--green)}.map-selection{position:absolute;left:12px;right:12px;bottom:25px;background:#fcfdf9f5;border:1px solid #d9e2d4;border-radius:16px;padding:15px;z-index:500;box-shadow:0 4px 24px #122e251a}.selection-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.map-selection h2{font-size:22px;margin:5px 0}.map-selection p{font-size:13px;margin:3px 0 12px}.map-selection .button-row{flex-wrap:nowrap}.map-selection .button-row .primary{flex:1}.map-selection .quiet{padding:10px}.status-badge{font-size:11px;background:#ecf0e7;padding:3px 8px;border-radius:6px;color:#607153;white-space:nowrap}.status-badge.done{background:#dceedd;color:#236035}.status-badge.problem{background:#fbebd0;color:#795924}.field-number{border-radius:50%;height:30px;width:30px;background:#fff;color:#204534;border:2px solid #376341;box-shadow:0 1px 5px #20342855;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px}.field-number.selected{background:#173f35;color:#fff;border-color:#e6f0a1;transform:scale(1.13)}.field-number.visited{background:#d0e9bd}.leaflet-control-attribution{font-size:9px!important;max-width:85%}.leaflet-control-zoom a{width:38px!important;height:38px!important;line-height:38px!important}.content-page{max-width:940px;margin:auto;padding:28px 24px 42px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.section-heading h1{margin-bottom:4px}.progress-label{background:#e9efdf;border-radius:20px;padding:9px 13px;white-space:nowrap;font-size:12px}.intro{max-width:660px;color:#627468;line-height:1.7;margin:14px 0 24px}.stops-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stop-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.stop-photo{height:152px;width:100%;object-fit:cover;background:#e3e9da;display:block}.stop-body{padding:14px}.stop-line{display:flex;align-items:center;justify-content:space-between;gap:6px}.stop-body h2{font-size:17px;margin:4px 0}.stop-body p{font-size:13px;margin:5px 0 12px}.stop-body .button-row{display:grid;grid-template-columns:1fr 1fr}.record-page{max-width:800px}.record-header{display:flex;gap:7px;align-items:center;margin:-10px -8px 18px}.field-picker{flex:1;font-size:10px;letter-spacing:1px;color:var(--muted)}.field-picker select{border:0;background:transparent;font-size:16px;font-weight:650;padding:4px 0;min-height:35px}.record-summary{display:flex;justify-content:space-between;align-items:center;gap:8px}.record-summary h1{font-size:25px;margin-bottom:5px}.record-summary p{font-size:13px}.visit-switch{display:flex;align-items:flex-end;gap:8px;margin:12px 0 7px}.visit-switch label{flex:1}.visit-switch button{font-size:12px;white-space:nowrap}.save-state{font-size:12px;color:#698167;margin:12px 0 18px;min-height:19px}.notice{border-radius:10px;padding:14px;margin-bottom:16px;background:#f9ebcf;color:#775127}.notice p{font-size:13px}label{display:block;font-size:13px;color:#475f50}input:not([type=checkbox]):not([type=file]),select,textarea{display:block;width:100%;min-height:46px;border:1px solid #cfd9ca;background:#fff;color:#19392f;padding:10px 11px;border-radius:9px;font-size:16px;margin-top:6px}textarea{resize:vertical;min-height:104px;line-height:1.55}textarea[name=notes]{min-height:180px}input[type=checkbox]{accent-color:var(--green)}.check-label{display:flex;gap:9px;align-items:flex-start;margin:13px 0}.check-label input{min-width:20px;width:20px;height:20px;margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid .wide{grid-column:1/-1}.form-section{border:1px solid var(--line);background:#fcfdf9;border-radius:13px;padding:18px;margin:14px 0}.form-section summary{cursor:pointer;font-weight:650;font-size:16px;min-height:30px;list-style-position:outside;margin-left:15px}.form-section details[open] summary{margin-bottom:18px}.form-section>summary{margin:0}.form-section[open]>summary{margin-bottom:18px}.form-section p{font-size:13px}.date-event{padding:13px 0;border-top:1px solid #e7ebe3}.date-event:first-of-type{border-top:0}.date-event>label{font-weight:600}.date-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.date-options label{font-size:11px}.date-options select{font-size:14px}.gps-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.gps-row .hint{flex:1;min-width:130px}.file-button{position:relative;overflow:hidden;font-size:13px}.file-button input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.photo-section{margin:26px 0}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:13px}.photo-item{min-width:0}.photo-item img{width:100%;height:120px;object-fit:cover;border-radius:8px;background:#e9eee5}.photo-item span{font-size:11px;display:block;color:var(--muted)}.save-actions{display:flex;align-items:center;gap:16px;padding:16px 0 5px}.save-actions .primary{min-width:140px}.guide-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:25px 0}.guide-summary div{border-left:2px solid #c9d7be;padding-left:14px}.guide-summary strong{display:block;font-size:23px;font-weight:650}.guide-summary span{font-size:12px;color:var(--muted)}.guide-block{padding:25px 0;border-top:1px solid var(--line)}.guide-block p{color:#526959}.guide-links{display:flex;flex-direction:column;gap:9px;margin:18px 0}.guide-links a{padding:12px 14px;background:#e8efdf;border-radius:8px;font-size:14px;text-decoration:none}.guide-checklist{padding-left:22px}.guide-checklist li{padding:0 0 17px 7px;color:#506857}.return-link{margin-left:15px;font-size:13px}.login-card{max-width:420px;margin:10vh auto;padding:30px 25px}.login-card h1{font-size:37px}.login-card .brand-mark{font-size:12px;letter-spacing:3px;color:#71915c;margin-bottom:30px}.login-card label{margin:16px 0}.login-card button{width:100%;margin-top:12px}.login-card p{color:var(--muted);font-size:14px}#login-error{color:#a34532}#toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(86px + env(safe-area-inset-bottom));padding:12px 18px;border-radius:10px;color:#fff;background:#193f35;z-index:2200;max-width:calc(100vw - 28px);width:max-content;font-size:13px;box-shadow:0 6px 25px #0b272544;pointer-events:none}@media(min-width:800px){.map-selection{left:auto;right:28px;bottom:40px;width:365px;padding:21px}.map-caption{bottom:26px;left:20px}.map-tools{left:24px;top:24px}.map-page{height:calc(100dvh - 150px - var(--connection-height,0px))}.map-selection .button-row{flex-wrap:wrap}.content-page{padding-top:36px}}@media(max-width:560px){.topbar{height:68px;padding:9px 12px}.brand{font-size:13px;letter-spacing:1.4px}.brand-symbol{font-size:28px}.header-actions .quiet{padding:9px 7px;font-size:12px}.sync-chip{max-width:119px;font-size:11px;padding:4px}.map-page{height:calc(100dvh - 142px - var(--connection-height,0px) - env(safe-area-inset-bottom))}.content-page{padding:23px 17px 30px}.stops-list{grid-template-columns:1fr}.stop-card{display:grid;grid-template-columns:100px 1fr}.stop-photo{height:100%;min-height:156px}.stop-body{padding:12px}.stop-body h2{font-size:16px}.stop-body .button-row button{min-height:40px;padding:8px;font-size:12px}.stop-line .status-badge{font-size:10px}.section-heading{align-items:flex-start}h1{font-size:27px}.progress-label{padding:7px 9px;font-size:11px}.form-section{padding:15px}.form-grid{gap:13px}.guide-summary strong{font-size:20px}.guide-summary div{padding-left:10px}.photo-grid{grid-template-columns:repeat(2,1fr)}.save-actions{align-items:flex-start}.save-actions .hint{font-size:12px}}@media(max-width:360px){.brand-symbol{display:none}.map-tools{gap:4px;left:8px;right:56px}.map-tools button{font-size:11px;padding:7px 8px}.map-selection .button-row{gap:3px}.map-selection button,.map-selection .button{font-size:12px;padding:9px}.form-grid{grid-template-columns:1fr}.guide-summary{gap:4px}.guide-summary strong{font-size:18px}.visit-switch{flex-wrap:wrap}}

.field-hit{display:flex;align-items:center;justify-content:center}.field-number.cluster{width:auto;min-width:45px;padding:0 8px;white-space:nowrap;border-radius:18px;font-size:11px}.map-selection .button-row .primary{white-space:nowrap;font-size:14px}.map-selection .button-row{gap:5px}

.map-selection .button-row{display:grid;grid-template-columns:1.35fr 1.2fr .7fr;gap:7px}.map-selection .button-row button,.map-selection .button-row a{font-size:13px;padding:10px 6px;white-space:nowrap}.bottom-nav button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

.record-summary h1{font-size:22px}.record-summary>button{white-space:nowrap;font-size:12px;padding:8px}.record-summary p{font-size:12px}

/* GPS field analysis, independently scrollable chart and map. */
.bottom-nav{grid-template-columns:repeat(5,1fr)}
.analyse-page{max-width:1100px}.walkin-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:24px}.walkin-heading h2{font-size:20px;margin:0}#walkin-map{height:390px;width:100%;border-radius:14px;z-index:0;background:#e7eee2}.walkin-progress{font-weight:650;margin-top:18px}#walkin-message{white-space:pre-wrap;overflow-wrap:anywhere}#walkin-proposals{margin:15px 0}.walkin-chart-section{margin:30px 0;padding-top:22px;border-top:1px solid #dce4d5}.walkin-chart{overflow-x:auto;width:100%;border:1px solid #dce4d5;border-radius:10px;background:#fbfcfa}.walkin-chart:empty{display:none}.walkin-chart svg{width:1600px;max-width:none;height:620px;display:block}.walkin-downloads{margin-top:24px}.analyse-page .section-heading{flex-wrap:wrap}.analyse-page [hidden]{display:none!important}@media(max-width:560px){#walkin-map{height:330px}.bottom-nav button{font-size:10px}.walkin-heading button{font-size:13px;padding:10px}.walkin-chart svg{width:1300px;height:504px}.analyse-page .button-row{flex-wrap:wrap}.walkin-downloads button{flex:1;min-width:125px}}
