@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700&display=swap');
:root{--forest:#173d30;--forest-2:#245744;--mint:#e9f1eb;--cream:#f5f3ed;--paper:#fffefa;--ink:#17221c;--muted:#6c766f;--line:#e4e3dc;--orange:#c96f3b;--blue:#557f96;--shadow:0 12px 35px #173d3017}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden;font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--cream);-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit}button,a,label{touch-action:manipulation}button{cursor:pointer}.top{height:72px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(120deg,#15392d,#1e4b3a);color:#fff;box-shadow:0 2px 18px #112c2360;position:relative;z-index:30}.brand{display:flex;align-items:center;gap:12px}.brand>span{width:42px;height:42px;display:grid;place-items:center;border:1px solid #ffffff3d;border-radius:13px;background:#ffffff10;color:#c9decf;font-size:20px}.brand b{display:block;font:700 17px 'Manrope',sans-serif;letter-spacing:-.02em}.brand small{display:block;margin-top:2px;color:#b6cabe;font-size:11px}.mobile-list{display:none;min-width:44px;min-height:44px;border:0;border-radius:12px;background:#ffffff12;color:#fff;font-size:23px}main{height:calc(100% - 72px);display:grid;grid-template-columns:390px 1fr}aside{min-height:0;display:flex;flex-direction:column;background:var(--paper);border-right:1px solid var(--line);z-index:20}.aside-head{position:relative;padding:28px 24px 18px}.aside-head p,.dialog header p{margin:0 0 6px;color:#7a897f;font-size:10px;font-weight:700;letter-spacing:.14em}.aside-head h1{margin:0;font:700 27px 'Manrope',sans-serif;letter-spacing:-.04em}.aside-head span{display:block;margin-top:7px;color:var(--muted);font-size:12px}.aside-head button{display:none}.search-wrap{height:48px;margin:0 24px 14px;padding:0 13px;display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 3px 12px #173d3008;color:#8a938d}.search{min-width:0;flex:1;height:100%;padding:0;border:0;background:transparent;outline:0;font-size:14px}.search:focus::placeholder{color:#b2b8b4}.filters{display:flex;gap:8px;overflow:auto;padding:0 24px 15px;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filters button{min-height:38px;white-space:nowrap;padding:0 14px;border:1px solid var(--line);border-radius:20px;background:#fff;color:#59655d;font-size:12px;font-weight:600}.filters button:hover{border-color:#b9c9bf}.filters button.active{border-color:var(--forest);background:var(--forest);color:#fff;box-shadow:0 5px 13px #173d3024}.data-actions{display:flex;gap:8px;padding:0 24px 15px;border-bottom:1px solid #ebe9e2}.data-actions a,.data-actions button{min-height:42px;flex:1;display:grid;place-items:center;padding:0 8px;text-decoration:none;border:1px solid var(--line);border-radius:11px;background:#fff;color:#526158;font-size:11px;font-weight:700}.data-actions a:hover,.data-actions button:hover{background:var(--mint)}.places{flex:1;overflow:auto;padding:10px 14px}.place-row{width:100%;min-height:76px;padding:12px;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:11px;border:1px solid transparent;border-radius:14px;background:transparent;text-align:left;transition:.18s ease}.place-row+.place-row{margin-top:3px}.place-row:hover{background:#f4f6f2}.place-row.active{border-color:#cfddd3;background:var(--mint);box-shadow:0 4px 12px #173d300c}.place-row>i{width:42px;height:42px;display:grid;place-items:center;overflow:hidden;border-radius:13px;background:#dce9df;color:var(--forest);font-style:normal;font-size:12px;font-weight:800;text-transform:uppercase}.place-row span{min-width:0}.place-row strong,.place-row em,.place-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.place-row strong{font:700 13px 'Manrope',sans-serif}.place-row em{margin-top:3px;color:#647068;font-size:10px;font-style:normal}.place-row small{margin-top:6px;color:#8a938d;font-size:10px}.place-row time{align-self:start;margin-top:4px;color:#949b96;font-size:9px;white-space:nowrap}.new-place{min-height:50px;margin:13px 24px 18px;padding:0 16px;border:0;border-radius:13px;background:var(--forest);color:#fff;font-size:13px;font-weight:700;box-shadow:0 8px 20px #173d302b}.new-place:hover{background:var(--forest-2)}.map{position:relative;overflow:hidden;background:#d6ddd4}.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.6) contrast(.91)}.map-shade{position:absolute;inset:0;pointer-events:none}.map-shade.picking{z-index:8;pointer-events:auto;cursor:crosshair;background:#173d3020}.pin{position:absolute;z-index:4;min-width:44px;min-height:52px;padding:6px;border:0;background:transparent;transform:translate(-50%,-100%)}.pin span{width:35px;height:41px;display:grid;place-items:center;border:3px solid white;border-radius:50% 50% 50% 5px;background:var(--forest);color:white;box-shadow:0 5px 13px #19372a55;font:700 12px 'Manrope',sans-serif;transform:rotate(-45deg);transition:.15s}.pin:hover span,.pin.active span{background:var(--orange);scale:1.14}.pin b{position:absolute;right:-3px;top:-4px;min-width:22px;height:22px;padding:0 5px;display:grid;place-items:center;border-radius:11px;background:white;color:var(--forest);font-size:9px;box-shadow:0 3px 8px #0002}.legend{position:absolute;left:20px;bottom:20px;display:flex;gap:14px;padding:11px 14px;border:1px solid #fff;border-radius:12px;background:#fffffff0;box-shadow:var(--shadow);font-size:10px}.legend span{display:flex;gap:6px;align-items:center}.legend i{width:8px;height:8px;border-radius:50%;background:var(--forest)}.legend .supply{background:var(--orange)}.legend .tech{background:var(--blue)}.add-map{position:absolute;right:20px;bottom:20px;min-height:50px;padding:0 19px;border:0;border-radius:14px;background:var(--forest);color:white;box-shadow:0 9px 24px #173d3040;font-size:13px;font-weight:700}.add-map:hover{background:var(--forest-2)}.detail{position:absolute;right:22px;top:20px;width:290px;padding:20px;border:1px solid #ffffffc9;border-radius:18px;background:#fffefaf5;box-shadow:0 16px 45px #173d3028;backdrop-filter:blur(12px)}.detail h2{margin:0;font:700 19px 'Manrope',sans-serif;letter-spacing:-.03em}.detail p{margin:13px 0 0;color:#637067;font-size:12px;line-height:1.55}.detail .tags span{display:inline-block;margin:10px 5px 0 0;padding:6px 9px;border-radius:16px;background:var(--mint);color:var(--forest);font-size:10px;font-weight:700}.detail .delete{min-height:42px;margin-top:13px;padding:0;border:0;background:transparent;color:#a64c39;font-size:11px;font-weight:700}.backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:#10271ebb;backdrop-filter:blur(6px)}.dialog{width:min(580px,100%);max-height:calc(100dvh - 40px);overflow:auto;border:1px solid #ffffff80;border-radius:22px;background:var(--paper);box-shadow:0 28px 90px #0b1c1580}.dialog header{padding:23px 25px 18px;display:flex;justify-content:space-between;border-bottom:1px solid var(--line)}.dialog h2{margin:0;font:700 23px 'Manrope',sans-serif;letter-spacing:-.035em}.dialog header button{width:44px;height:44px;margin:-8px -8px 0 0;border:0;border-radius:12px;background:#f1f2ee;color:#536158;font-size:26px}.position{margin:18px 24px;padding:12px 14px;display:flex;align-items:center;gap:5px;border-radius:12px;background:var(--mint);color:#42604e;font-size:12px}.position button{min-height:38px;margin-left:auto;padding:0 10px;border:0;border-radius:9px;background:#fff;color:var(--forest);font-weight:700}.dialog label,.dialog fieldset{display:block;margin:17px 24px;color:#3d4941;font-size:12px;font-weight:700}.dialog input,.dialog select,.dialog textarea{display:block;width:100%;min-height:48px;margin-top:8px;padding:11px 13px;border:1px solid #d8d8d0;border-radius:12px;background:#fff;outline:0;font-size:14px}.dialog input:focus,.dialog select:focus,.dialog textarea:focus{border-color:#71917c;box-shadow:0 0 0 4px #587b641b}.dialog textarea{height:76px;resize:vertical}.dialog fieldset{padding:0;border:0}.dialog legend small{margin-left:6px;color:#929891;font-weight:400}.types{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.types label{min-height:58px;margin:0;padding:9px 5px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #dddcd4;border-radius:12px;background:#fff;text-align:center;font-size:10px;cursor:pointer}.types label:has(input:checked){border-color:#6f8f7a;background:var(--mint);color:var(--forest);box-shadow:inset 0 0 0 1px #6f8f7a}.types input{width:18px;height:18px;min-height:0;margin:0 0 6px;accent-color:var(--forest)}.add-type{display:flex;gap:8px;margin-top:10px}.add-type input{margin:0}.add-type button{min-height:48px;padding:0 13px;white-space:nowrap;border:1px solid #d7d6cf;border-radius:12px;background:#fff;color:var(--forest);font-size:11px;font-weight:700}.dialog footer{display:flex;justify-content:flex-end;gap:9px;padding:17px 24px 23px;border-top:1px solid var(--line)}.dialog footer button{min-height:48px;padding:0 18px;border:0;border-radius:12px;background:var(--forest);color:#fff;font-size:12px;font-weight:700}.dialog footer .secondary{border:1px solid #d4d3cc;background:#fff;color:#556159}.place-hint{position:absolute;left:50%;top:20px;z-index:9;transform:translateX(-50%);padding:12px 16px;border-radius:12px;background:#17392c;color:#fff;box-shadow:var(--shadow);font-size:12px;font-weight:600}.toast{position:fixed;z-index:80;left:50%;bottom:24px;transform:translateX(-50%);padding:13px 18px;border-radius:12px;background:#17392c;color:#fff;box-shadow:var(--shadow);font-size:12px}.hidden{display:none!important}
@media(max-width:760px){.top{height:64px;padding:0 14px}.brand>span{width:40px;height:40px}.brand b{font-size:16px}.mobile-list{display:block}main{height:calc(100% - 64px);grid-template-columns:1fr}aside{position:fixed;inset:64px 0 0;transform:translateX(-105%);transition:transform .25s ease;box-shadow:14px 0 45px #0004}aside.open{transform:none}.aside-head{padding:23px 20px 16px}.aside-head button{display:block;position:absolute;right:16px;top:18px;width:44px;height:44px;border:0;border-radius:12px;background:#f0f1ed;font-size:25px}.search-wrap{margin-left:20px;margin-right:20px}.filters,.data-actions{padding-left:20px;padding-right:20px}.places{padding:8px}.place-row{min-height:80px}.new-place{margin:12px 20px 16px;min-height:52px}.detail{left:12px;right:12px;top:12px;width:auto}.legend{display:none}.add-map{right:14px;bottom:16px;width:54px;height:54px;min-height:54px;padding:0;border-radius:18px;font-size:22px}.add-map span{display:none}.backdrop{padding:10px;align-items:end}.dialog{max-height:calc(100dvh - 20px);border-radius:22px 22px 12px 12px}.dialog header{padding:20px}.position,.dialog label,.dialog fieldset{margin-left:18px;margin-right:18px}.types{grid-template-columns:repeat(3,1fr)}.dialog footer{position:sticky;bottom:0;padding:14px 18px 18px;background:var(--paper)}.dialog footer button{flex:1}.add-type{flex-direction:column}.add-type button{width:100%}}
#baseMap{position:absolute;inset:0;z-index:0;touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none}.boundary-label{position:absolute;left:20px;top:20px;z-index:500;padding:10px 13px;border:1px solid #ffffffbd;border-radius:11px;background:#fffefae8;color:var(--forest);box-shadow:var(--shadow);font-size:11px;font-weight:800}.legend{z-index:500}.legend i.boundary{width:17px;height:9px;border:2px solid #d55d35;border-radius:2px;background:#d9774522}.add-map,.detail,.place-hint{z-index:500}.leaflet-control-zoom a{width:44px!important;height:44px!important;line-height:44px!important}.leaflet-control-attribution{font-size:9px}.leaflet-container.picking{cursor:crosshair}.facility-marker{background:transparent;border:0}.facility-marker span{width:38px;height:44px;display:grid;place-items:center;overflow:hidden;border:3px solid white;border-radius:50% 50% 50% 6px;background:var(--forest);color:#fff;box-shadow:0 5px 14px #173d3060;font:800 12px 'Manrope',sans-serif;transform:rotate(-45deg);text-transform:uppercase}.facility-marker b{position:absolute;right:-6px;top:-7px;min-width:22px;height:22px;padding:0 5px;display:grid;place-items:center;border-radius:12px;background:#fff;color:var(--forest);box-shadow:0 3px 8px #0002;font-size:9px}.facility-marker:hover span{background:var(--orange)}
@media(max-width:760px){.boundary-label{left:12px;top:12px;max-width:calc(100% - 72px)}.leaflet-control-zoom{margin-right:12px!important;margin-bottom:82px!important}}
.header-actions{display:flex;align-items:center;gap:8px}.header-actions>button{min-height:44px;padding:0 14px;border:1px solid #ffffff29;border-radius:12px;background:#ffffff0f;color:#fff;font-size:12px;font-weight:700}.map-message{position:absolute;left:50%;top:50%;z-index:3;transform:translate(-50%,-50%);max-width:300px;padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:#fffefaf2;color:var(--forest);box-shadow:var(--shadow);text-align:center;font-size:13px;font-weight:700}.place-row{grid-template-columns:44px minmax(0,1fr)}.place-row>i{color:#fff}.settings-dialog{width:min(620px,100%)}.settings-help{margin:8px 0 12px;color:var(--muted);font-size:12px;font-weight:400;line-height:1.5}.boundary-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.boundary-actions button{min-height:44px;padding:0 10px;border:1px solid #d6d8d1;border-radius:11px;background:#fff;color:var(--forest);font-size:11px;font-weight:700}.boundary-actions button:first-child{grid-column:1/-1;background:var(--mint);border-color:#b9cdbf}.settings-dialog label>small{display:block;margin-top:6px;color:var(--muted);font-size:10px;font-weight:400}.type-icon{width:30px;height:30px;display:grid;place-items:center;margin-bottom:5px;border-radius:9px;background:var(--type-color);color:#fff;font-size:12px;font-weight:800}.types label{min-height:82px}.types input{position:absolute;opacity:0;pointer-events:none}.types label:has(input:checked) .type-icon{box-shadow:0 0 0 3px #fff,0 0 0 5px #6f8f7a}
@media(max-width:760px){.header-actions>button:first-child{width:44px;padding:0;font-size:18px}.header-actions>button:first-child span{display:none}.header-actions .mobile-list{display:block}.settings-dialog{max-height:calc(100dvh - 20px)}.boundary-actions{grid-template-columns:1fr}.boundary-actions button:first-child{grid-column:auto}}
.brand{gap:0}.brand b{font-size:18px}
.svg-marker{background:transparent;border:0}
.dialog input[type=hidden]{display:none}
.dialog label>small{margin-left:5px;color:var(--muted);font-weight:400}.detail-actions{display:flex;align-items:center;gap:12px;margin-top:14px}.detail-actions button{min-height:42px;padding:0;border:0;background:transparent;color:var(--forest);font-size:11px;font-weight:700}.detail-actions .delete{margin-top:0;color:#a64c39}
.filters{flex-wrap:wrap;overflow:visible;row-gap:8px}.filters button{min-height:44px;display:inline-flex;align-items:center;gap:8px;font-size:.875rem}.filters button:focus-visible{outline:3px solid #71917c55;outline-offset:2px}
.filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;min-height:22px;padding:2px 6px;border-radius:999px;background:var(--mint);color:var(--forest);font-size:.75rem;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums;flex-shrink:0}.filters button.active .filter-count{background:#ffffff26;color:#fff}
.detail{padding-right:54px}.detail-close{position:absolute;right:12px;top:12px;width:38px;height:38px;padding:0;border:0;border-radius:11px;background:#eef1ec;color:#526158;font-size:24px;line-height:1}.detail-close:hover{background:#e2e9e3;color:var(--forest)}

/* Local SVG icons: color follows the surrounding control. */
.app-icon{display:inline-block;width:20px;height:20px;flex:0 0 auto;vertical-align:middle;background-color:currentColor;-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat;pointer-events:none}
.icon-settings{--icon:url('asset.php?file=settings.svg&v=20260928-2')}
.icon-menu{--icon:url('asset.php?file=menu.svg&v=20260928-2')}
.icon-close{--icon:url('asset.php?file=close.svg&v=20260928-2')}
.icon-search{--icon:url('asset.php?file=search.svg&v=20260928-2')}
.icon-download{--icon:url('asset.php?file=download.svg&v=20260928-2')}
.icon-heat{--icon:url('asset.php?file=heat.svg&v=20260928-2')}
.icon-harvest{--icon:url('asset.php?file=harvest.svg&v=20260928-2')}
.icon-check{--icon:url('asset.php?file=check.svg&v=20260928-2')}
.icon-layers{--icon:url('asset.php?file=layers.svg&v=20260928-2')}
.icon-more{--icon:url('asset.php?file=more.svg&v=20260928-2')}
.icon-refresh{--icon:url('asset.php?file=refresh.svg&v=20260928-2')}
.icon-plus{--icon:url('asset.php?file=plus.svg&v=20260928-2')}
.icon-minus{--icon:url('asset.php?file=minus.svg&v=20260928-2')}
.icon-position{--icon:url('asset.php?file=position.svg&v=20260928-2')}
.icon-edit{--icon:url('asset.php?file=edit.svg&v=20260928-2')}
.icon-trash{--icon:url('asset.php?file=trash.svg&v=20260928-2')}
.icon-share{--icon:url('asset.php?file=share.svg&v=20260928-2')}
.icon-boundary{--icon:url('asset.php?file=boundary.svg&v=20260928-2');color:#d55d35}
.icon-pin{--icon:url('asset.php?file=pin.svg&v=20260928-2');color:var(--forest)}
.facility-glyph{display:block;filter:brightness(0) invert(1);pointer-events:none}
.header-actions>button:not(.mobile-list),.data-actions a,.data-actions button,.new-place,.add-type button,.detail-actions button{display:flex;align-items:center;justify-content:center;gap:8px}
.dialog header button,.detail-close{display:grid;place-items:center;flex-shrink:0}
.aside-head .app-icon{margin:0;color:inherit}
.detail{padding-right:20px}.detail h2{padding-right:34px}.detail-close{width:44px;height:44px;right:8px;top:8px}
.detail-actions{flex-wrap:wrap}.detail-actions .app-icon{width:17px;height:17px}
.legend .app-icon{width:16px;height:16px}
.leaflet-control-zoom a{display:grid!important;place-items:center}
.leaflet-control-layers-toggle{background-image:url('asset.php?file=layers.svg&v=20260928-2')!important;background-size:24px 24px!important}
.marker-art{display:block;transform-origin:24px 53px;filter:drop-shadow(0 3px 4px #102c2360);transition:transform .2s ease,opacity .2s ease;user-select:none}
.svg-marker.is-muted .marker-art{opacity:.4;filter:grayscale(.65) drop-shadow(0 2px 3px #102c2320)}
.svg-marker.is-active .marker-art{transform:scale(1.25);filter:drop-shadow(0 0 3px #fff) drop-shadow(0 5px 6px #102c2370);animation:marker-select .24s ease-out}
.svg-marker:focus-visible{outline:3px solid #e4a85a;outline-offset:4px;border-radius:20px}
@keyframes marker-select{from{transform:scale(1)}to{transform:scale(1.25)}}
@media(prefers-reduced-motion:reduce){.marker-art{transition:none}.svg-marker.is-active .marker-art{animation:none}}
@media(max-width:760px){.header-actions>button:first-child .app-icon{display:inline-block}.header-actions .mobile-list,#closeList{display:grid;place-items:center}.position{flex-wrap:wrap}.position button{margin-left:auto}}

/* Boundary editing: transparent touch targets around visible path handles. */
.boundary-node,.boundary-midpoint{display:grid;place-items:center;background:transparent;border:0;touch-action:none}
.boundary-node span{display:grid;place-items:center;width:28px;height:28px;border:3px solid white;border-radius:50%;background:#ef5d32;color:white;box-shadow:0 2px 8px #173d3050;font:700 12px 'DM Sans',sans-serif;cursor:grab}
.boundary-node.is-selected span{background:var(--forest);box-shadow:0 0 0 3px #ffc885,0 3px 9px #173d3050}
.boundary-node:active span{cursor:grabbing}
.boundary-midpoint .app-icon{width:20px;height:20px;color:var(--forest);background-color:currentColor}
.boundary-midpoint::before{content:'';position:absolute;inset:6px;border:2px solid #ef5d32;border-radius:50%;background:#fffefa;box-shadow:0 2px 6px #173d3020;z-index:-1}
.boundary-node:focus-visible,.boundary-midpoint:focus-visible{outline:3px solid #ffc885;outline-offset:1px;border-radius:50%}
.boundary-editor{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);z-index:800;width:min(620px,calc(100% - 32px));padding:16px;border:1px solid var(--line);border-radius:16px;background:#fffefaf5;box-shadow:var(--shadow)}
.boundary-editor-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px}
.boundary-editor-heading strong{font-size:15px}.boundary-editor-heading span{font-size:11px;color:var(--muted)}
.boundary-editor p{margin:9px 0 12px;font-size:12px;line-height:1.5;color:#526158}
.boundary-editor-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.boundary-editor-actions button{min-height:44px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--forest);font-size:12px;font-weight:700}
.boundary-editor-actions button.primary{background:var(--forest);color:white;border-color:var(--forest)}
.boundary-editor-actions button:disabled{opacity:.4;cursor:not-allowed}
.boundary-editing #sidebar,.boundary-editing .header-actions{pointer-events:none;opacity:.45}
.boundary-editing .legend,.boundary-editing .detail{display:none}
.boundary-editing .leaflet-container{cursor:crosshair}
@media(max-width:760px){.boundary-editor{bottom:32px;padding:12px;width:calc(100% - 20px)}.boundary-editor-actions{grid-template-columns:1fr 1fr}.boundary-editor p{font-size:11px}.boundary-editor-heading{align-items:flex-start;flex-direction:column}}

/* Accounts and per-revier permissions. No account data is stored in the browser. */
.icon-user{--icon:url('asset.php?file=user.svg&v=20260928-2')}
.auth-required>.top,.auth-required>main{visibility:hidden}
.auth-gate{position:fixed;inset:0;z-index:1000;overflow:auto;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--cream)}
.auth-card{width:min(440px,100%);margin:auto;padding:30px;border:1px solid var(--line);border-radius:22px;background:var(--paper);box-shadow:var(--shadow)}
.auth-card>img{border-radius:15px}.auth-card h1{font:700 26px 'Manrope',sans-serif;margin:20px 0 8px}.auth-card p{font-size:13px;line-height:1.5;color:var(--muted)}
.auth-card label{display:block;font-size:13px;font-weight:700;margin-top:18px}
.auth-card input{display:block;width:100%;min-height:48px;padding:12px;margin-top:7px;border:1px solid #d8d8d0;border-radius:11px;background:white;font:inherit;font-size:16px}
.auth-card input:focus{outline:2px solid #71917c;outline-offset:2px}
.auth-card button,.access-section button{min-height:44px;padding:10px 14px;border:0;border-radius:10px;background:var(--forest);color:white;font:inherit;font-size:13px;font-weight:700}
.auth-card button{width:100%;margin-top:14px}.auth-card #setupHelp{font-size:12px}
button:disabled{opacity:.45;cursor:not-allowed}
.form-error{color:#9a3c28!important;font-size:13px;line-height:1.5}.form-error:empty{display:none}.access-dialog>.form-error{margin:18px 24px}
.brand{flex:1;min-width:0;flex-direction:column;align-items:flex-start;gap:3px;margin-right:12px}
#revierSelect{width:100%;max-width:460px;min-height:38px;padding:5px 28px 5px 9px;border:1px solid #ffffff30;border-radius:9px;background:#173d30;color:white;font:700 15px 'Manrope',sans-serif;text-overflow:ellipsis}
.header-actions{flex-shrink:0}
.no-revier{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:700;width:min(380px,calc(100% - 32px));padding:24px;border-radius:18px;background:var(--paper);box-shadow:var(--shadow)}
.no-revier h2{font-size:20px;margin:0 0 12px}.no-revier p{font-size:13px;line-height:1.5;color:var(--muted)}
.access-dialog{width:min(700px,100%)}.access-dialog header p{letter-spacing:0;text-transform:none;overflow-wrap:anywhere;font-size:11px}
.access-section{padding:20px 24px;border-bottom:1px solid var(--line)}.access-section h3{margin:0 0 10px;font-size:17px}.access-section h4{margin:22px 0 10px;font-size:14px}
.access-section>p,.invite-result p{font-size:12px;line-height:1.5;color:var(--muted)}
.access-section label{margin:14px 0}.access-section form>button{margin:4px 0 0}
.access-section>button{min-height:46px;padding:10px 14px;border:0;border-radius:11px;background:var(--forest);color:#fff;font-size:13px;font-weight:700}
.member-row{display:grid;grid-template-columns:minmax(0,1fr) 122px 44px;align-items:center;gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}
.member-row strong,.member-row small{display:block;overflow-wrap:anywhere;font-size:12px}.member-row small{color:var(--muted);margin-top:4px;font-size:11px}
.member-row select{font-size:12px;min-height:44px;margin:0;padding:8px;max-width:100%}.member-row .icon-button{padding:10px;background:#f2eee8;color:#9a3c28;display:grid;place-items:center}
.invitation-row{grid-template-columns:minmax(0,1fr) auto}.invitation-row button{background:var(--mint);color:var(--forest);font-size:11px}
.invite-result{margin:18px 0;padding:16px;border:1px solid #bdd1c2;border-radius:12px;background:var(--mint);font-size:13px}.invite-result input{font-size:12px;margin-bottom:10px}
.boundary-editing .brand{pointer-events:none;opacity:.45}
@media(max-width:760px){.header-actions>#accountButton{width:44px;padding:0}.header-actions>#accountButton>span:not(.app-icon){display:none}#revierSelect{font-size:13px}.access-section{padding:18px}.member-row{grid-template-columns:minmax(0,1fr) 112px 40px;gap:5px}.member-row .icon-button{width:40px}.auth-gate{padding:14px}.auth-card{padding:24px}.brand{margin-right:8px}}

/* Revier toolbar: one clear name and grouped actions. */
.types label:has(input:focus-visible){outline:3px solid #71917c;outline-offset:3px}
.legacy-type-warning{margin-top:14px;padding:14px;border:1px solid #dec49c;border-radius:12px;background:#fff3dd}
.legacy-type-warning p{margin:0;font-size:13px;font-weight:400;line-height:1.5;color:#775321}
.dialog .legacy-type-warning label{display:flex;align-items:flex-start;gap:9px;margin:12px 0 0;font-size:13px;line-height:1.5}
.dialog .legacy-type-warning input[type=checkbox]{display:block;flex:0 0 20px;width:20px;height:20px;min-height:20px;margin:0;padding:0;accent-color:var(--forest)}
.place-row .occupancy-badge{display:inline-flex;width:fit-content;margin-top:6px;padding:4px 8px;border-radius:8px;background:#fae5de;color:#943b25;font-size:12px;font-weight:700}
.occupancy-sonar{position:absolute;left:24px;top:53px;width:20px;height:12px;transform:translate(-50%,-50%);z-index:-1;pointer-events:none}
.occupancy-sonar::before,.occupancy-sonar::after{content:"";position:absolute;inset:0;border:2px solid #b52f27;border-radius:50%;box-shadow:0 0 0 1px #ffffffb3;opacity:0;animation:occupancy-sonar 2.8s ease-out infinite;pointer-events:none}
.occupancy-sonar::after{animation-delay:-1.4s}
@keyframes occupancy-sonar{0%{transform:scale(.6);opacity:0}15%{opacity:.8}100%{transform:scale(4);opacity:0}}
@media(prefers-reduced-motion:reduce){.occupancy-sonar::before,.occupancy-sonar::after{animation:none;transform:scale(2);opacity:.4}.occupancy-sonar::after{display:none}}
.svg-marker.has-occupancy .marker-art{position:relative;opacity:1;filter:drop-shadow(0 3px 4px #102c2360)}
.svg-marker.is-inactive .marker-art{filter:grayscale(1) opacity(.58) drop-shadow(0 3px 4px #102c2360)}
.place-row.is-inactive>i{filter:grayscale(1);opacity:.65}.place-row .inactive-badge{display:inline-flex;width:fit-content;margin-top:6px;padding:4px 8px;border-radius:8px;background:#f3dfdd;color:#91362f;font-size:12px;font-weight:700}
.booking-card.is-inactive{border-color:#e2aaa4;background:#fbe8e6}.booking-card.is-inactive strong{color:#8f3029}.detail-actions .status-toggle{color:#8f3029}
.booking-card{margin-top:16px;padding:13px;border:1px solid #cbded1;border-radius:12px;background:#edf5ef}
.booking-card strong{display:block;color:#23553a;font-size:14px;line-height:1.4}
.detail .booking-card p{margin:8px 0 0;font-size:12px;line-height:1.5;color:#526658}
.booking-card button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px;margin-top:10px;padding:10px;border:0;border-radius:10px;background:var(--forest);color:white;font-size:14px;font-weight:700}
.booking-card .share-checkin{border:1px solid #b9cdc0;background:#fff;color:var(--forest)}.booking-card .share-checkin:hover{background:var(--mint)}
.booking-card button:focus-visible{outline:3px solid #d69947;outline-offset:3px}
.booking-card.is-occupied{border-color:#ecc6b9;background:#fff0e9}.booking-card.is-occupied strong{color:#943b25}
.detail{max-height:calc(100% - 40px);overflow-y:auto;overscroll-behavior:contain}
.usage-statistics{padding-top:16px!important;border-top:1px solid var(--line)!important;min-width:0}
.usage-statistics>label{margin:12px 0;font-size:14px}.usage-statistics h3{margin:22px 0 10px;font-size:15px}
.statistics-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.statistics-summary>div{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.statistics-summary strong,.statistics-summary span{display:block}.statistics-summary strong{font-size:17px;color:var(--forest)}.statistics-summary span{margin-top:4px;font-size:12px;color:var(--muted);font-weight:400}
.statistics-table{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.statistics-table table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.4;text-align:left}
.statistics-table th,.statistics-table td{padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top;min-width:90px}
.statistics-table th:first-child{min-width:130px;overflow-wrap:anywhere}.statistics-table th{font-weight:600}
.statistics-table thead{background:var(--mint);color:var(--forest)}.statistics-table small{display:block;margin-top:4px;font-size:12px;color:var(--muted);font-weight:400}
.statistics-empty{font-size:13px;color:var(--muted);font-weight:400}
.statistics-pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:14px;font-size:12px}
.statistics-pagination button{min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--forest);font-weight:700}
.statistics-reset{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}.statistics-reset button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px;padding:10px 14px;border:1px solid #d8aaa4;border-radius:11px;background:#fff;color:#9a3c32;font-size:14px;font-weight:700}.statistics-reset button:hover{background:#faece9}.statistics-reset button:disabled{opacity:.55}.statistics-reset small{display:block;margin-top:8px;color:var(--muted);font-size:12px;font-weight:400;line-height:1.45}
@media(max-width:760px){.detail{max-height:calc(100% - 24px)}.statistics-summary strong{font-size:15px}}
.position-picker{display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(520px,calc(100% - 32px));top:16px;padding:14px 16px;border:1px solid #ffffff50;border-radius:16px;z-index:800}
.position-picker>div{min-width:0}.position-picker strong{font-size:16px;line-height:1.4}
.position-picker p{margin:4px 0 0;font-size:14px;line-height:1.4;color:#d3e2d8;font-weight:400}
.position-picker button{flex:0 0 auto;min-height:44px;padding:10px 12px;border:1px solid #ffffff45;border-radius:10px;background:#ffffff12;color:white;font-size:14px;font-weight:700}
.position-picker button:focus-visible{outline:3px solid #e8ba72;outline-offset:3px}
.position-picking #sidebar,.position-picking .header-actions,.position-picking .brand{pointer-events:none;opacity:.45}
.position-picking .detail,.position-picking .legend{display:none}
.position-picking .leaflet-container{cursor:crosshair}
.position-picking .svg-marker{opacity:.5}
.position b{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
@media(max-width:760px){.position-picker{top:10px;width:calc(100% - 20px);padding:12px;gap:10px}.position-picker strong{font-size:15px}.position-picker p{font-size:13px}.position button{min-height:44px}}
.settings-export{padding-top:16px!important;border-top:1px solid var(--line)!important}
.settings-export a{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:10px 14px;border:1px solid #cbd5cc;border-radius:11px;background:var(--mint);color:var(--forest);font-size:14px;font-weight:700;text-decoration:none}
.settings-export a:hover{background:#dce9df}
.settings-export a:focus-visible{outline:3px solid #71917c;outline-offset:3px}
.sync-status{display:block;margin-top:8px;color:#925029;font-size:12px;line-height:1.5}
body{display:flex;flex-direction:column}
body>main{flex:1;min-height:0;height:auto;position:relative}
body>main>.map{isolation:isolate}
.top{
    flex:0 0 auto;height:auto;min-height:84px;padding:16px 24px;gap:24px;
    background:linear-gradient(115deg,#112f26 0%,#1c4636 100%);
    border-bottom:1px solid #ffffff18;box-shadow:0 3px 16px #10271e24;
}
.top .brand{flex:1;flex-direction:row;align-items:center;gap:12px;min-width:0;margin:0}
.revier-picker{position:relative;flex:1;min-width:0;max-width:480px}
.top #revierSelect{
    appearance:none;-webkit-appearance:none;display:block;width:100%;max-width:none;
    min-height:48px;margin:0;padding:10px 42px 10px 14px;
    border:1px solid #ffffff26;border-radius:12px;background:#ffffff09;
    color:#fff;font:700 18px/1.4 'Manrope',sans-serif;letter-spacing:-.025em;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;
    transition:background .16s ease,border-color .16s ease;
}
.top #revierSelect option{background:#173d30;color:#fff}
.icon-chevron-down{--icon:url('asset.php?file=chevron-down.svg&v=20260928-2')}
.revier-picker>.app-icon{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:#bed3c5}
.top .header-actions{
    display:flex;align-items:center;gap:8px;margin:0;padding-left:24px;
    border-left:1px solid #ffffff20;
}
.top .header-actions>button{
    min-width:44px;min-height:48px;width:auto;padding:11px 14px;
    gap:9px;border:1px solid transparent;border-radius:12px;
    background:transparent;color:#e1eae4;font-size:14px;font-weight:600;line-height:1.4;
    transition:background .16s ease,border-color .16s ease,color .16s ease;
}
.top .header-actions>#accountButton{border-color:#ffffff22;background:#ffffff0c;color:#fff}
.top .header-actions .label-short{display:none}
.top .header-actions>.mobile-list{display:none}
.top .header-actions>button[aria-expanded="true"]{background:#e4eee7;color:#173d30;border-color:#e4eee7}
.top :is(button,select):focus-visible{outline:3px solid #e8ba72;outline-offset:3px}
.top #revierSelect:disabled{cursor:default;opacity:.6}
@media(hover:hover){
    .top #revierSelect:not(:disabled):hover{background:#ffffff12;border-color:#ffffff55}
    .top .header-actions>button:not(:disabled):hover{background:#ffffff18;border-color:#ffffff30;color:#fff}
}
@media(max-width:1000px) and (min-width:761px){
    .top{gap:16px;padding:14px 20px}
    .top .header-actions{padding-left:16px}
    .top #revierSelect{font-size:16px}
    .top .header-actions>button{padding:11px}
}
@media(max-width:760px){
    .top{min-height:0;flex-wrap:wrap;gap:10px;padding:12px 14px}
    .top .brand{flex-basis:100%;gap:10px}
    .revier-picker{max-width:none}
    .top #revierSelect{min-height:46px;font-size:16px;padding:10px 36px 10px 12px}
    .revier-picker>.app-icon{right:10px}
    .top .header-actions{width:100%;gap:8px;padding:0;border:0}
    .top .header-actions>button,.top .header-actions>#accountButton{
        flex:1;display:flex;align-items:center;justify-content:center;width:auto;
        min-height:44px;padding:10px 8px;gap:7px;border-color:#ffffff1f;background:#ffffff08;font-size:14px;
    }
    .top .header-actions .label-long{display:none}
    .top .header-actions>button .label-short,.top .header-actions>#accountButton>.label-short,.top .header-actions>.mobile-list>span{display:inline-block}
    .top .header-actions>button .app-icon{display:inline-block;width:18px;height:18px}
    .top .header-actions>.mobile-list{display:flex}
    .top .header-actions>button[aria-expanded="true"]{background:#e4eee7;color:#173d30;border-color:#e4eee7}
    body>main>aside{position:absolute;inset:0}
}
@media(prefers-reduced-motion:reduce){
    .top #revierSelect,.top .header-actions>button{transition:none}
}
.map.weather-visible .legend{display:none}
.weather-card{
    position:absolute;left:16px;bottom:26px;z-index:500;width:min(360px,calc(100% - 76px));
    padding:16px;border:1px solid #ffffffdd;border-radius:17px;
    background:#fffefaf2;box-shadow:0 10px 28px #102d2436;backdrop-filter:blur(12px);
    color:var(--forest);font-size:12px;line-height:1.35;
}
.weather-icon{display:inline-block;flex:0 0 auto;width:17px;height:17px;background:currentColor;mask:var(--weather-svg) center/contain no-repeat;-webkit-mask:var(--weather-svg) center/contain no-repeat}
.weather-icon--clear{--weather-svg:url('asset.php?file=weather-clear.svg&v=20260928-2')}.weather-icon--partly{--weather-svg:url('asset.php?file=weather-partly.svg&v=20260928-2')}
.weather-icon--cloud{--weather-svg:url('asset.php?file=weather-cloud.svg&v=20260928-2')}.weather-icon--fog{--weather-svg:url('asset.php?file=weather-fog.svg&v=20260928-2')}
.weather-icon--rain{--weather-svg:url('asset.php?file=weather-rain.svg&v=20260928-2')}.weather-icon--snow{--weather-svg:url('asset.php?file=weather-snow.svg&v=20260928-2')}
.weather-icon--thunder{--weather-svg:url('asset.php?file=weather-thunder.svg&v=20260928-2')}.weather-icon--wind{--weather-svg:url('asset.php?file=weather-wind.svg&v=20260928-2')}
.weather-icon--drop{--weather-svg:url('asset.php?file=weather-drop.svg&v=20260928-2')}.weather-icon--sunrise{--weather-svg:url('asset.php?file=weather-sunrise.svg&v=20260928-2')}
.weather-icon--sunset{--weather-svg:url('asset.php?file=weather-sunset.svg&v=20260928-2')}.weather-icon--crosshair{--weather-svg:url('asset.php?file=weather-crosshair.svg&v=20260928-2')}
.weather-toggle{display:none;align-items:center;justify-content:center;width:48px;height:48px;min-height:48px;padding:0;border:0;border-radius:11px;background:transparent;color:#315c42;touch-action:manipulation}
.weather-toggle .weather-icon{width:27px;height:27px}
.weather-card.weather-collapsed{width:58px;height:58px;padding:4px;border-radius:13px}
.weather-collapsed .weather-toggle{display:flex}
.weather-toggle:focus-visible,.weather-panel-head button:focus-visible,.weather-meta a:focus-visible{outline:3px solid #71917c;outline-offset:2px;border-radius:5px}
.weather-details{max-height:400px;overflow:hidden;opacity:1;visibility:visible;transition:max-height .22s ease,opacity .18s ease,visibility .18s ease}
.weather-collapsed .weather-details{max-height:0;opacity:0;visibility:hidden}
.weather-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-5px -5px 2px 0}
.weather-panel-head>strong{font:800 13px 'Manrope',sans-serif;letter-spacing:.04em;text-transform:uppercase}
.weather-panel-head button{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:0;border-radius:10px;background:#edf2ec;color:#315c42;touch-action:manipulation}
.weather-panel-head button .app-icon{width:18px;height:18px}
.weather-current{display:flex;align-items:center;gap:8px;margin:2px 0 12px}
.weather-current>.weather-icon{width:36px;height:36px;color:#a66c35}
.weather-current strong{font:800 36px/1 'Manrope',sans-serif;letter-spacing:-.05em}
.weather-current>span:last-child{min-width:0;color:#526858;font-size:15px;font-weight:700}
.weather-facts{display:flex;flex-wrap:wrap;gap:7px 16px;padding:12px 0;border-top:1px solid var(--line);font-size:13px;font-weight:700}
.weather-facts>span,.weather-sun>div>span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.weather-facts .weather-icon,.weather-sun .weather-icon{width:18px;height:18px;color:#64806e}
.weather-sun{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 0 9px;border-top:1px solid var(--line)}
.weather-sun>div{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:13px}
.weather-sun>div+div{padding-left:10px;border-left:1px solid var(--line)}
.weather-sun b{font-variant-numeric:tabular-nums;font-size:14px}.weather-sun small{font-variant-numeric:tabular-nums;font-size:13px}
.weather-sun small{color:#566c5e}
.weather-trend{margin-top:3px;padding:10px 0 3px;border-top:1px solid var(--line)}
.weather-trend>strong{display:block;margin-bottom:9px;color:#546759;font-size:11px;font-weight:800;letter-spacing:.025em}
.weather-trend-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;min-height:76px;padding-top:9px;border-top:1px solid #dce5db}
.weather-trend-item{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;text-align:center;font-variant-numeric:tabular-nums}
.weather-trend-item time{color:#516a59;font-size:11px;font-weight:700}
.weather-trend-item .weather-icon{width:22px;height:22px;color:#9b7345}
.weather-trend-item b{font-size:15px}.weather-trend-item small{font-size:11px;color:#66796a}
.weather-meta{display:flex;justify-content:space-between;gap:8px;min-height:12px;margin-top:11px;color:#77867b;font-size:10px;line-height:1.3}
.weather-meta a{margin-left:auto;color:#718174;text-decoration:none}
.weather-meta a:hover{text-decoration:underline}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.position-picking .weather-card,.boundary-editing .weather-card{display:none}
@media(max-width:760px){
    .weather-card:not(.weather-collapsed){left:0;bottom:0;width:100%;max-height:min(68dvh,490px);overflow-y:auto;overscroll-behavior:contain;padding:16px 18px calc(15px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;animation:weather-sheet-in .2s ease-out}
    .weather-card.weather-collapsed{left:10px;bottom:calc(12px + env(safe-area-inset-bottom))}
    .weather-details{max-height:none}
}
@keyframes weather-sheet-in{from{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}
@media(max-width:360px){.weather-sun{gap:5px}.weather-sun>div{font-size:12px}.weather-sun b{font-size:13px}.weather-sun small{font-size:12px}}
@media(prefers-reduced-motion:reduce){.weather-details{transition:none}.weather-card:not(.weather-collapsed){animation:none}}
.harvest-dialog{width:min(720px,100%)}
.harvest-content{padding:18px 22px 24px}
.harvest-toolbar{display:flex;gap:9px}
.harvest-toolbar button,.harvest-toolbar a{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:46px;padding:9px 13px;border:1px solid #cbd7cc;border-radius:11px;background:#fff;color:var(--forest);font-size:13px;font-weight:700;text-decoration:none}
.harvest-toolbar button{background:var(--forest);border-color:var(--forest);color:#fff}
.harvest-toolbar .app-icon{width:17px;height:17px}
.harvest-period{display:flex;align-items:center;gap:9px;margin-top:12px;padding:8px 10px;border:1px solid #d6e0d6;border-radius:11px;background:#f7f9f6;color:#526359}
.harvest-period label{font-size:11px;font-weight:800}.harvest-period select{min-width:0;min-height:38px;padding:7px 30px 7px 9px;border:1px solid #c9d6cb;border-radius:9px;background:#fff;color:var(--forest);font-size:13px;font-weight:700}.harvest-period small{margin-left:auto;color:#718078;font-size:10px;white-space:nowrap}
.harvest-content>#harvestStatus:not(:empty){margin:10px 0;color:#7d552d}
.harvest-form{margin:16px 0;padding:16px;border:1px solid #cbdccd;border-radius:15px;background:#f3f7f2}
.harvest-form-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.harvest-form-heading h3{margin:0;font:800 17px 'Manrope',sans-serif}
.harvest-form-heading button{min-height:40px;padding:8px 10px;border:0;border-radius:9px;background:#e1e9e1;color:var(--forest);font-size:12px;font-weight:700}
.harvest-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.harvest-dialog .harvest-form label{display:block;margin:0 0 14px;color:#3d4941;font-size:12px;font-weight:700}
.harvest-form label small{color:var(--muted);font-weight:400}
.harvest-dialog .harvest-form :is(input,select,textarea){display:block;width:100%;min-height:44px;margin-top:6px;padding:9px 11px;border:1px solid #d3ddd2;border-radius:9px;background:#fff;color:var(--ink);font-size:14px}
.harvest-dialog .harvest-form textarea{height:70px;resize:vertical}
.harvest-dialog .harvest-form .harvest-portal-check{display:flex;align-items:flex-start;gap:11px;margin:2px 0 16px;padding:12px;border:1px solid #cbd9cc;border-radius:11px;background:#fff;cursor:pointer}
.harvest-dialog .harvest-form .harvest-portal-check input{flex:0 0 22px;width:22px;height:22px;min-height:22px;margin:0;padding:0;accent-color:var(--forest)}
.harvest-portal-check span{min-width:0}.harvest-portal-check strong,.harvest-portal-check small{display:block}.harvest-portal-check strong{color:var(--forest);font-size:13px}.harvest-portal-check small{margin-top:3px;line-height:1.35}
.harvest-location{margin:0 0 14px;padding:11px;border:1px solid #d3ddd2;border-radius:10px;background:#fff;font-size:12px}
.harvest-location b{font-variant-numeric:tabular-nums}
.harvest-location>div{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.harvest-location button{min-height:44px;padding:8px 11px;border:1px solid #b9cdbf;border-radius:9px;background:var(--mint);color:var(--forest);font-size:12px;font-weight:700}
.harvest-location button:disabled{opacity:.45}
.harvest-form-actions{display:flex;justify-content:flex-end}
.harvest-form-actions button{min-height:46px;padding:9px 14px;border:0;border-radius:10px;background:var(--forest);color:#fff;font-size:13px;font-weight:800}
.harvest-form-actions button:disabled{opacity:.55}
.harvest-summary{margin-top:16px;padding:16px;border:1px solid #cad9cc;border-radius:16px;background:linear-gradient(145deg,#f8faf7,#edf4ed);color:var(--forest);box-shadow:0 8px 24px #173d300d}
.harvest-summary:empty{display:none}
.harvest-overview-head{display:flex;align-items:end;justify-content:space-between;gap:12px}.harvest-overview-head span,.harvest-list-head span{display:block;margin-bottom:3px;color:#718278;font-size:10px;font-weight:800;letter-spacing:.1em}.harvest-overview-head h3{margin:0;font:800 17px 'Manrope',sans-serif}.harvest-overview-head>small{color:#718278;font-size:10px;white-space:nowrap}
.harvest-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:14px}.harvest-kpis>div{min-width:0;padding:10px;border:1px solid #d9e3da;border-radius:11px;background:#fff}.harvest-kpis>div>*{display:block}.harvest-kpis span{color:#718278;font-size:10px;font-weight:700}.harvest-kpis strong{margin-top:2px;font:800 22px 'Manrope',sans-serif}.harvest-kpis small{margin-top:1px;color:#718278;font-size:9px}.harvest-kpis .is-primary{border-color:#bcd1bf;background:#e7f0e7}
.harvest-portal-summary{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 10px;margin-top:10px;padding:11px;border:1px solid #d7e1d7;border-radius:11px;background:#fff;font-size:11px}.harvest-portal-summary>div:first-child span,.harvest-portal-summary>div:first-child strong{display:block}.harvest-portal-summary>div:first-child span{color:#718278;font-size:10px;font-weight:700}.harvest-portal-summary>div:first-child strong{margin-top:2px;color:#42564a}.harvest-portal-summary>small{padding:4px 7px;border-radius:7px;font-weight:800}.harvest-portal-summary .is-open{background:#f8ead3;color:#855923}.harvest-portal-summary .is-complete{background:#dcecdf;color:#315e3e}.harvest-portal-progress{grid-column:1/-1;height:5px;margin-top:6px;overflow:hidden;border-radius:4px;background:#e7ece7}.harvest-portal-progress i{display:block;height:100%;border-radius:inherit;background:#527b5d;transition:width .25s ease}
.harvest-breakdown{margin-top:14px;padding-top:13px;border-top:1px solid #cfdbd0}.harvest-breakdown-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.harvest-breakdown-head strong{font:800 12px 'Manrope',sans-serif}.harvest-breakdown-head small{color:#718278;font-size:10px}.harvest-breakdown>p{margin:9px 0 0;color:#718278;font-size:11px}
.harvest-summary-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:9px}
.harvest-summary-items>div{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:8px 9px;border:1px solid #e1e8e1;border-radius:9px;background:#fff;color:#42564a;font-size:11px}
.harvest-summary-items span{min-width:0;line-height:1.3;overflow-wrap:anywhere}.harvest-summary-items b{display:grid;place-items:center;flex:0 0 auto;min-width:25px;height:25px;padding:0 6px;border-radius:8px;background:var(--mint);color:var(--forest);font:800 12px 'Manrope',sans-serif}
.harvest-list{margin-top:18px}
.harvest-empty{padding:18px;border:1px dashed #d5dfd5;border-radius:12px;color:var(--muted);font-size:13px;text-align:center}
.harvest-list-head{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:9px}.harvest-list-head strong{font:800 15px 'Manrope',sans-serif}.harvest-list-head>small{color:#718278;font-size:10px}
.harvest-list-filters{display:flex;gap:6px;margin-bottom:10px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.harvest-list-filters::-webkit-scrollbar{display:none}.harvest-list-filters button{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;min-height:34px;padding:6px 9px;border:1px solid #d5dfd5;border-radius:9px;background:#fff;color:#53665a;font-size:10px;font-weight:800;white-space:nowrap}.harvest-list-filters button b{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:6px;background:#edf2ed;color:#53665a;font-size:9px}.harvest-list-filters button.active{border-color:var(--forest);background:var(--forest);color:#fff}.harvest-list-filters button.active b{background:#ffffff26;color:#fff}
.portal-favicon{display:block;width:22px;height:22px;object-fit:contain;pointer-events:none}
.harvest-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:7px;padding:11px 12px;border:1px solid #dfe7df;border-radius:12px;background:#fff}
.harvest-row-verkehr{border-color:#e8c7c2;background:#fff5f3}
.harvest-row-main{min-width:0;flex:1}.harvest-row-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.harvest-row-date{color:var(--muted);font-size:10px;font-weight:700;font-variant-numeric:tabular-nums}
.harvest-row-status{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:5px}
.harvest-row-title{margin-top:5px}.harvest-row-title strong{font:800 14px 'Manrope',sans-serif;line-height:1.25}
.harvest-row-meta{display:flex;flex-wrap:wrap;gap:2px 7px;margin-top:5px;color:#65736a;font-size:10px;line-height:1.35}.harvest-row-meta span+span::before{content:'·';margin-right:7px;color:#a3afa7}
.harvest-origin{display:inline-flex;align-items:center;min-height:28px;padding:4px 7px;border-radius:7px;font-size:10px;font-weight:800;line-height:1}
.harvest-origin-erlegt{background:#e3efe5;color:#315e3e}.harvest-origin-fallwild{background:#f8ead3;color:#855923}.harvest-origin-verkehr{background:#f5d9d5;color:#9a342e}.harvest-origin-sonstige{background:#e8ece9;color:#526159}
.harvest-row-main .harvest-portal-state{position:relative;display:grid;place-items:center;flex:0 0 38px;width:38px;height:32px;min-height:32px;padding:0;border:2px solid;border-radius:9px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.harvest-portal-state .portal-favicon{width:23px;height:23px}.harvest-portal-state.is-open{border-color:#d7ddd8;background:#f1f3f0;box-shadow:none}.harvest-portal-state.is-open .portal-favicon{filter:grayscale(1);opacity:.34}.harvest-portal-state.is-reported{border-color:#2d7846;background:#2d7846;box-shadow:0 3px 9px #2d78463d}.harvest-portal-state.is-reported .portal-favicon{filter:saturate(1.25) brightness(1.14);opacity:1}.harvest-portal-state:focus-visible{outline:3px solid #71917c;outline-offset:2px}.harvest-portal-state:disabled{cursor:wait;opacity:.55}
.harvest-row-main p{margin:7px 0 0;padding-top:7px;border-top:1px solid #e6ebe6;color:#4f5f55;font-size:10px;line-height:1.4;overflow-wrap:anywhere}
.harvest-row-actions{display:flex;gap:6px;flex:0 0 auto}
.harvest-row-actions button{min-height:36px;padding:7px 9px;border:1px solid #d8e1d7;border-radius:8px;background:#fff;color:var(--forest);font-size:10px;font-weight:800}
.harvest-row-actions button:last-child{color:#9b463d}
.harvest-picking .weather-card,.harvest-picking .detail,.harvest-picking .legend{display:none}
.harvest-picking #sidebar,.harvest-picking .header-actions,.harvest-picking .brand{pointer-events:none;opacity:.45}
.harvest-picking .leaflet-container{cursor:crosshair}
.harvest-heat-active .svg-marker,.harvest-heat-active .facility-marker{opacity:.2;filter:saturate(.35);transition:opacity .18s ease,filter .18s ease}
.harvest-heat-active .occupancy-sonar{display:none}
.harvest-heat-panel{position:absolute;left:50%;top:14px;z-index:700;transform:translateX(-50%);display:flex;align-items:center;gap:10px;width:max-content;max-width:calc(100% - 90px);min-height:52px;padding:7px 7px 7px 13px;border:1px solid #ffffffd6;border-radius:14px;background:#fffefaf2;color:var(--forest);box-shadow:0 10px 28px #102d2436;backdrop-filter:blur(12px)}
.harvest-heat-panel>div{min-width:0}.harvest-heat-panel strong,.harvest-heat-panel small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.harvest-heat-panel strong{font:800 12px 'Manrope',sans-serif}.harvest-heat-panel small{margin-top:2px;color:#607067;font-size:10px}
.harvest-heat-scale{flex:0 0 46px;width:46px;height:7px;border-radius:5px;background:linear-gradient(90deg,#e6a735,#df6a2e,#b72f29)}
.harvest-heat-panel button{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;border:0;border-radius:10px;background:#edf2ec;color:var(--forest)}
.harvest-heat-panel button .app-icon{width:18px;height:18px}
@media(max-width:760px){
    .harvest-content{padding:14px 16px 20px}
    .harvest-toolbar>*{flex:1;padding:8px!important;font-size:11px!important}
    .harvest-period{display:grid;grid-template-columns:auto 1fr;gap:3px 9px}.harvest-period select{font-size:16px}.harvest-period small{grid-column:2;margin:0;white-space:normal}
    .harvest-form{padding:13px}
    .harvest-form-grid{grid-template-columns:1fr;gap:0}
    .harvest-dialog .harvest-form :is(input,select,textarea){font-size:16px}
    .harvest-kpis{gap:5px}.harvest-kpis>div{padding:9px 8px}.harvest-kpis strong{font-size:20px}
    .harvest-summary-items{grid-template-columns:1fr}
    .harvest-list-filters button{min-height:42px;padding-inline:11px}
    .harvest-row{align-items:stretch;flex-direction:column;gap:9px}.harvest-row-top{align-items:flex-start}.harvest-row-status{max-width:70%}.harvest-row-main .harvest-portal-state{flex-basis:44px;width:44px;height:38px}.harvest-row-meta{font-size:11px}
    .harvest-row-actions{width:100%}.harvest-row-actions button{flex:1;min-height:44px}
    .harvest-heat-panel{top:10px;max-width:calc(100% - 20px)}
    .harvest-heat-scale{display:none}
}
.settings-dialog>.settings-section{margin:0 24px!important;padding:20px 0!important;border:0!important;border-top:1px solid var(--line)!important}
.settings-dialog>.settings-basics{border-top:0!important}
.settings-dialog>.settings-section>legend{padding:0;color:var(--forest);font:800 15px 'Manrope',sans-serif;letter-spacing:-.015em}
.settings-dialog>.settings-section>label{margin:12px 0 0}
.settings-dialog>.settings-section>.settings-help{margin:7px 0 13px}
.settings-dialog>.settings-boundary>#boundaryCount{margin:10px 0 0;color:var(--muted);font-size:11px}
.settings-dialog>.settings-export a{margin-top:1px}
.settings-people>button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 14px;border:1px solid #cbd5cc;border-radius:11px;background:var(--mint);color:var(--forest);font-size:14px;font-weight:700}
.mobile-nav,.mobile-more-backdrop{display:none}
@media(max-width:760px){
    .settings-dialog>.settings-section{margin:0 18px!important;padding:17px 0!important}
    .top .header-actions{gap:6px}
    .top .header-actions>button,.top .header-actions>#accountButton{padding:9px 5px;gap:5px;font-size:12px}
}

/* Mobile app navigation: map-first, with account and administration separated. */
@media(max-width:760px){
    body>main{margin-bottom:calc(64px + env(safe-area-inset-bottom))}
    .top{min-height:68px;flex-wrap:nowrap;gap:10px;padding:10px 12px}
    .top .brand{flex:1 1 auto;flex-basis:auto;min-width:0;margin:0}
    .top #revierSelect{min-height:46px;font-size:16px}
    .top .header-actions{display:none}
    .top .header-actions>#settingsButton,.top .header-actions>#harvestButton,.top .header-actions>#mobileList{display:none!important}
    .mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;min-height:64px;padding:5px 7px calc(5px + env(safe-area-inset-bottom));border-top:1px solid #d9e1da;background:#fffefaed;box-shadow:0 -6px 24px #10271e16;backdrop-filter:blur(14px)}
    .mobile-nav>button{min-width:0;min-height:54px;padding:5px 3px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;border-radius:11px;background:transparent;color:#728078;font-size:10px;font-weight:700}
    .mobile-nav>button .app-icon,.mobile-nav>button .weather-icon{width:21px;height:21px}
    .mobile-nav>button.active{background:#e7f0e9;color:var(--forest)}
    .mobile-nav>button:focus-visible{outline:3px solid #71917c;outline-offset:-2px}
    .auth-required>.mobile-nav{visibility:hidden}
    body>main>aside{position:fixed;inset:max(8px,env(safe-area-inset-top)) 0 calc(64px + env(safe-area-inset-bottom));height:auto;z-index:35;border:1px solid #ffffffdd;border-radius:20px 20px 0 0;box-shadow:0 -10px 36px #102d2436;transform:translateY(calc(100% + 18px));transition:transform .22s ease;overflow:hidden}
    body>main>aside.open{transform:translateY(0)}
    body>main>aside .aside-head{padding:17px 18px 11px}
    body>main>aside .aside-head p{display:none}
    body>main>aside .aside-head h1{font-size:22px;letter-spacing:-.03em}
    body>main>aside .aside-head>span{margin-top:3px}
    body>main>aside .aside-head button{right:12px;top:11px}
    body>main>aside .search-wrap{height:46px;margin:0 16px 10px}
    body>main>aside .filters{padding:0 16px 10px}
    body>main>aside .filters button{min-height:36px}
    body>main>aside .places{padding:5px 9px}
    body>main>aside .place-row{min-height:68px;padding:9px 10px}
    body>main>aside .new-place{min-height:48px;margin:9px 16px 12px}
    .mobile-more-backdrop{position:fixed;inset:max(8px,env(safe-area-inset-top)) 0 calc(64px + env(safe-area-inset-bottom));z-index:45;display:flex;align-items:flex-end;padding:0;background:transparent;backdrop-filter:none}
    .mobile-more-panel{width:100%;height:100%;max-height:none;overflow-y:auto;overscroll-behavior:contain;padding:16px 18px;border:1px solid #ffffffdd;border-radius:20px 20px 0 0;background:var(--paper);box-shadow:0 -10px 36px #102d2436;animation:weather-sheet-in .2s ease-out}
    .mobile-more-panel header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-5px -5px 2px 0;padding:0}
    .mobile-more-panel h2{margin:0;font:800 13px 'Manrope',sans-serif;letter-spacing:.04em;text-transform:uppercase}
    .mobile-more-panel header button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:11px;background:#edf1ec;color:var(--forest)}
    .mobile-more-panel>button{width:100%;min-height:64px;padding:10px 7px;display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:12px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--forest);text-align:left}
    .mobile-more-panel>button>.app-icon,.mobile-more-panel>button>.weather-icon{width:25px;height:25px;justify-self:center}
    .mobile-more-panel>button strong,.mobile-more-panel>button small{display:block}
    .mobile-more-panel>button strong{font-size:14px}.mobile-more-panel>button small{margin-top:3px;color:var(--muted);font-size:11px;font-weight:400}
    .weather-card.weather-collapsed{display:none}
    .detail{left:8px;right:8px;top:auto;bottom:8px;width:auto;max-height:min(68%,520px);overflow:auto;padding:20px;border-radius:20px;box-shadow:0 18px 48px #10271e55}
    :is(#harvestDialog,#settingsDialog,#accessDialog,#managementDialog){inset:max(8px,env(safe-area-inset-top)) 0 calc(64px + env(safe-area-inset-bottom));padding:0;align-items:end;background:transparent;backdrop-filter:none}
    :is(#harvestDialog,#settingsDialog,#accessDialog,#managementDialog)>.dialog{width:100%;height:100%;max-height:none;border-radius:20px 20px 0 0;box-shadow:0 -10px 36px #102d2436;animation:weather-sheet-in .2s ease-out}
}
@media(max-width:760px) and (prefers-reduced-motion:reduce){body>main>aside{transition:none}.mobile-more-panel,:is(#harvestDialog,#settingsDialog,#accessDialog,#managementDialog)>.dialog{animation:none}}

/* Desktop app shell: the same four destinations as mobile, arranged as a rail. */
@media(min-width:761px){
    .top .header-actions{display:none}
    .top .brand{max-width:560px}
    body>main{margin-left:84px;display:block}
    body>main>.map{width:100%;height:100%}
    .mobile-nav{position:fixed;left:0;top:84px;bottom:0;z-index:40;display:flex;width:84px;padding:12px 8px;flex-direction:column;gap:7px;border-right:1px solid #d9e1da;background:#fffefaed;box-shadow:6px 0 24px #10271e10;backdrop-filter:blur(14px)}
    .mobile-nav>button{width:100%;min-height:64px;padding:8px 3px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:0;border-radius:13px;background:transparent;color:#728078;font-size:10px;font-weight:700;line-height:1.1}
    .mobile-nav>button .app-icon,.mobile-nav>button .weather-icon{width:23px;height:23px}
    .mobile-nav>button.active{background:#e7f0e9;color:var(--forest)}
    .mobile-nav>button:focus-visible{outline:3px solid #71917c;outline-offset:-2px}
    .auth-required>.mobile-nav{visibility:hidden}
    body>main>aside{position:fixed;left:84px;top:84px;bottom:0;z-index:35;width:min(390px,calc(100vw - 84px));border:0;border-right:1px solid var(--line);border-radius:0 18px 18px 0;box-shadow:10px 0 34px #102d2428;transform:translateX(calc(-100% - 12px));transition:transform .22s ease;overflow:hidden}
    body>main>aside.open{transform:translateX(0)}
    body>main>aside .aside-head button{display:grid;place-items:center;position:absolute;right:16px;top:18px;width:44px;height:44px;border:0;border-radius:12px;background:#f0f1ed;color:var(--forest)}
    .weather-card.weather-collapsed{display:none}
    .mobile-more-backdrop{position:fixed;left:84px;top:84px;bottom:0;z-index:45;display:flex;width:min(390px,calc(100vw - 84px));align-items:stretch;padding:0;background:transparent;backdrop-filter:none}
    .mobile-more-panel{width:100%;height:100%;overflow-y:auto;overscroll-behavior:contain;padding:20px;border:1px solid #ffffffdd;border-left:0;border-radius:0 18px 18px 0;background:var(--paper);box-shadow:10px 0 34px #102d2430;animation:desktop-panel-in .2s ease-out}
    .mobile-more-panel header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 8px}
    .mobile-more-panel h2{margin:0;font:800 17px 'Manrope',sans-serif}
    .mobile-more-panel header button{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;border:0;border-radius:11px;background:#edf1ec;color:var(--forest)}
    .mobile-more-panel>button{width:100%;min-height:68px;padding:11px 7px;display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:12px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--forest);text-align:left}
    .mobile-more-panel>button>.app-icon{width:25px;height:25px;justify-self:center}
    .mobile-more-panel>button strong,.mobile-more-panel>button small{display:block}
    .mobile-more-panel>button strong{font-size:14px}.mobile-more-panel>button small{margin-top:3px;color:var(--muted);font-size:11px;font-weight:400}
    :is(#harvestDialog,#settingsDialog,#accessDialog,#managementDialog){inset:84px auto 0 84px;width:min(720px,calc(100vw - 84px));padding:0;place-items:stretch;background:transparent;backdrop-filter:none}
    :is(#harvestDialog,#settingsDialog,#accessDialog,#managementDialog)>.dialog{width:100%;height:100%;max-height:none;border:0;border-right:1px solid #ffffffdd;border-radius:0 18px 18px 0;box-shadow:12px 0 40px #102d2438;animation:desktop-panel-in .2s ease-out}
}
@keyframes desktop-panel-in{from{transform:translateX(-18px);opacity:0}to{transform:translateX(0);opacity:1}}
@media(min-width:761px) and (prefers-reduced-motion:reduce){body>main>aside{transition:none}.mobile-more-panel,:is(#harvestDialog,#settingsDialog,#accessDialog,#managementDialog)>.dialog{animation:none}}

/* Neutral controls use explicit app colors instead of Safari defaults. */
.place-row{color:var(--ink)}
button{color:inherit}
:is(#closeList,.dialog header button,.detail-close,.mobile-more-panel header button,#weatherClose,#harvestHeatClose){background:#edf1ec;color:var(--forest);border-radius:11px}
:is(#closeList,.dialog header button,.detail-close,.mobile-more-panel header button,#weatherClose,#harvestHeatClose):hover{background:#e1e9e1;color:var(--forest)}
:is(#closeList,.dialog header button,.detail-close,.mobile-more-panel header button,#weatherClose,#harvestHeatClose):focus-visible{outline:3px solid #71917c;outline-offset:2px}
