.task-pin{box-sizing:border-box;display:grid;place-items:center;width:40px;height:40px;margin:2px;background:#b94b16;color:white;border:3px solid white;border-radius:10px;box-shadow:0 3px 8px #14294566}.task-pin.person{background:#08786c;border-radius:50%}.task-pin.picked{background:#162543}.task-pin svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.pin-gender{box-sizing:border-box;position:absolute;right:-5px;bottom:-5px;display:grid;place-items:center;width:22px;height:22px;border:2px solid white;border-radius:50%;font:bold 15px/1 sans-serif;box-shadow:0 1px 4px #14294555;color:white}.gender-male{background:#285bc2}.gender-female{background:#b33169}.gender-undisclosed{background:#596574}.tabs{gap:8px;background:transparent;padding:0}.tabs button{display:flex;align-items:center;gap:8px;border:2px solid transparent!important;min-height:52px;padding:7px 12px!important;box-shadow:none!important}.browse-symbol{display:grid;place-items:center;width:30px;height:30px;border-radius:7px;background:#fff0e5;color:#b94b16;flex:none}.browse-symbol svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}#people .browse-symbol{border-radius:50%;background:#dff3ee;color:#08786c}.browse-label{text-align:left;line-height:1.25}.browse-label small{display:block;font-size:11px;font-weight:400;margin-top:3px}.tabs #jobs{color:#86380f;background:#fff5ed}.tabs #people{color:#075f56;background:#eef9f5}.tabs #jobs[aria-pressed=true]{background:#b94b16;color:white;border-color:#80320c!important}.tabs #people[aria-pressed=true]{background:#08786c;color:white;border-color:#03594f!important}.tabs button[aria-pressed=true] .browse-symbol{background:#ffffff25!important;color:white!important}.tabs button[aria-pressed=true] .browse-label:after{content:'✓';margin-left:8px}.tabs button:hover{filter:brightness(.96)}body[data-browse-kind=job] .search-panel{border-bottom:3px solid #b94b16}body[data-browse-kind=person] .search-panel{border-bottom:3px solid #08786c}body[data-browse-kind=person] .list-heading h1{color:#075f56}body[data-browse-kind=job] .list-heading h1{color:#86380f}.card.person{border-left:4px solid #08786c}.card.job{border-left:4px solid #b94b16}.card.person.active{border-color:#08786c;background:#f0fbf7}.person .badge{color:#075f56;background:#e2f4ee}.marker-legend{position:relative;padding:7px 10px;display:block}.marker-legend summary{display:flex;gap:10px;align-items:center;cursor:pointer;list-style:none}.marker-legend summary::-webkit-details-marker{display:none}.legend-type{display:flex;align-items:center;gap:4px}.legend-shape{width:13px;height:13px;background:#b94b16;border-radius:3px;display:inline-block}.legend-shape.person{border-radius:50%;background:#08786c}.gender-key{display:flex;gap:9px;flex-wrap:wrap;margin-top:10px;border-top:1px solid #e3e9f1;padding-top:8px}.gender-key span{display:flex;align-items:center;gap:3px}.gender-key i{display:inline-grid;place-items:center;width:19px;height:19px;border-radius:50%;color:white;font-style:normal}.legend-more{color:#65758e}.marker-legend[open]{max-width:310px}@media(max-width:720px){.tabs{width:100%}.tabs button{flex:1;justify-content:center;padding:6px!important;min-width:0;font-size:14px}.browse-label small{font-size:10px}.map-top .marker-legend{font-size:11px;padding:7px 8px}.marker-legend summary{gap:7px}.gender-key{gap:6px;font-size:11px}.marker-legend[open]{max-width:230px}.browse-symbol{width:26px;height:26px}}

.tabs button{position:relative;padding-right:24px!important}.tabs button[aria-pressed=true] .browse-label:after{content:none}.tabs button[aria-pressed=true]:after{content:"✓";position:absolute;right:7px;top:7px;font-size:12px}

.task-pin.gender-male{background:#285bc2}.task-pin.gender-female{background:#b33169}.task-pin.gender-undisclosed{background:#596574}.task-pin.picked{background:#162543}.legend-shape,.legend-shape.person{background:#687589}

.task-share{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:76px;margin:4px 8px 0 0;padding:10px 20px;border:1px solid #dde5ef;border-radius:10px;background:#eef3f8;color:#263e5b;font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.task-share:hover{background:#e0e9f3;border-color:#b6c6d9}.task-share:active{background:#d6e2ef}.task-share:focus-visible{outline:2px solid #315da8;outline-offset:3px}#shared-task-content{overflow-wrap:anywhere}#shared-task-content .publisher{margin-top:12px}

.task-cluster{border:3px solid white;border-radius:50%;background:#263e59;color:white;box-shadow:0 0 0 5px #263e5930,0 3px 10px #14294544;display:grid;place-items:center;font:bold 15px/1 sans-serif;box-sizing:border-box}.task-cluster:focus-visible{outline:3px solid #ffad57;outline-offset:4px}

.marker-time{position:absolute;inset:0;pointer-events:none;z-index:2;--time-color:#007f78}.marker-time-ring{position:absolute;inset:-2px;width:48px;height:48px;overflow:visible;fill:none;stroke-width:4;stroke-linecap:butt;filter:drop-shadow(0 1px 2px #10263d70)}.time-track{stroke:#253c53}.time-progress{stroke:var(--time-color);transition:stroke-dasharray .4s linear,stroke-dashoffset .4s linear}.time-soon{--time-color:#c05a00}.time-urgent{--time-color:#c92532}.marker-time-label{position:absolute;top:43px;left:50%;transform:translateX(-50%);padding:3px 5px;border-radius:5px;background:var(--time-color);color:#fff;font:700 10px/1.2 sans-serif;white-space:nowrap;box-shadow:0 1px 4px #14294566}.map-pin:has(.marker-time) .task-pin{border-color:#253c53}@media(prefers-reduced-motion:reduce){.time-progress{transition:none}}
/* Lucide map-pin, ISC (vendor/lucide-LICENSE.txt), adapted with local styling. */
.selected-location-marker{background:none;border:0;cursor:grab}.selected-location-marker:active{cursor:grabbing}.selected-location-drop{position:absolute;left:8px;top:0;width:48px;height:48px;transform-origin:50% 92%;animation:location-drop .38s linear both;filter:drop-shadow(0 3px 3px #152b4766)}.selected-location-drop svg{display:block;width:48px;height:48px;stroke:#991b1b;stroke-width:1.3;overflow:visible}.selected-location-drop path{fill:#ef3636}.selected-location-drop circle{fill:white;stroke:#b91c1c}.selected-location-ground,.selected-location-ripple{pointer-events:none;position:absolute;left:32px;top:44px;transform:translate(-50%,-50%);border-radius:50%;box-sizing:border-box}.selected-location-ground{width:28px;height:12px;background:#0e749033;border:2px solid #0891b2;box-shadow:0 0 0 2px #fff9}.selected-location-ripple{width:28px;height:12px;border:2px solid #0891b2;animation:location-ripple .95s .35s ease-out 3 both}.leaflet-dragging .selected-location-drop,.leaflet-dragging .selected-location-ripple{animation:none}.selected-location-marker:focus-visible{outline:3px solid #315dbc;outline-offset:4px;border-radius:12px}
@keyframes location-drop{0%{transform:translateY(-24px);opacity:0}55%{transform:translateY(0);opacity:1}76%{transform:translateY(-4px)}100%{transform:translateY(0);opacity:1}}
@keyframes location-ripple{0%{transform:translate(-50%,-50%) scale(.8);opacity:.9}100%{transform:translate(-50%,-50%) scale(2.5);opacity:0}}
@media(prefers-reduced-motion:reduce){.selected-location-drop,.selected-location-ripple{animation:none}.selected-location-ripple{display:none}}



.task-marker-visual{display:block;position:relative;width:44px;height:44px;transform-origin:22px 22px;transition:transform .18s ease-out}
.task-selected-raised .task-marker-visual{transform:translateY(-10px) scale(1.22)}
.task-selected-raised .task-pin{box-shadow:0 10px 12px #10263d66}
.task-selected-raised::before{content:'';position:absolute;left:8px;top:35px;width:28px;height:9px;border-radius:50%;background:#10263d40;pointer-events:none}
@media(prefers-reduced-motion:reduce){.task-marker-visual{transition:none}}

.task-marker-visual{position:absolute;left:0;top:0;transform:scale(.78);transform-origin:22px 22px}
.task-marker-visual>.task-pin{position:absolute;left:2px;top:2px;margin:0}
.task-marker-visual>.marker-time{left:0;top:0;right:auto;bottom:auto;width:44px;height:44px}
.marker-time-label{display:none;left:22px;top:48px;margin:0;transform:translateX(-50%)}
.task-selected-raised .task-marker-visual{transform:translateY(-8px) scale(1.08)}
.task-selected-raised .marker-time-label,.map-pin:focus-visible .marker-time-label{display:block}
@media(hover:hover){.map-pin:hover .marker-time-label{display:block}}
