:root,:host{--ol-background-color:white;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color);border-radius:2px}.ol-mouse-position{position:absolute;top:8px;right:8px}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;padding:2px;position:absolute;bottom:8px;left:8px}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-align:center;will-change:contents, width;border-top:none;margin:1px;font-size:10px;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{background-color:var(--ol-foreground-color);float:right;z-index:10;width:1px;height:15px}.ol-scale-step-text{z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:10px;position:absolute;bottom:-5px}.ol-scale-text{text-align:center;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:12px;position:absolute;bottom:25px}.ol-scale-singlebar{z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color);height:10px;position:relative}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{background-color:var(--ol-subtle-background-color);border-radius:4px;position:absolute}.ol-rotate{transition:opacity .25s linear,visibility linear;top:.5em;right:.5em}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{top:.5em;right:.5em}.ol-control button{color:var(--ol-subtle-foreground-color);font-weight:700;font-size:inherit;text-align:center;background-color:var(--ol-background-color);border:none;border-radius:2px;width:1.375em;height:1.375em;margin:1px;padding:0;line-height:.4em;text-decoration:none;display:block}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{will-change:transform;font-weight:400;display:block}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-decoration:none}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;flex-flow:row-reverse;align-items:center;max-width:calc(100% - 1.3em);display:flex;bottom:.5em;right:.5em}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);margin:0;padding:1px .5em;font-size:12px}.ol-attribution li{list-style:none;display:inline}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{border-radius:4px 0 0;bottom:0;right:0}.ol-attribution.ol-uncollapsible img{max-height:1.6em;margin-top:-.2em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{height:200px;top:4.5em;left:.5em}.ol-zoomslider button{height:10px;position:relative}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{bottom:.5em;left:.5em}.ol-overviewmap.ol-uncollapsible{border-radius:0 4px 0 0;bottom:0;left:0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);width:150px;height:150px}.ol-overviewmap:not(.ol-collapsed) button{position:absolute;bottom:0;left:0}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}:root{color:#173f3a;font-synthesis:none;text-rendering:optimizelegibility;--forest:#173f3a;--teal:#2f766d;--cream:#f3f0e8;--paper:#fffdf8;--ink-soft:#59706c;--line:#d9ded7;--coral:#d85d4f;background:#f3f0e8;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{color:inherit}.app-shell{background:var(--cream);min-height:100vh}.topbar{background:var(--paper);border-bottom:1px solid var(--line);z-index:20;align-items:center;gap:28px;height:72px;padding:0 28px;display:flex;position:relative}.brand{color:var(--forest);letter-spacing:-1px;align-items:center;gap:10px;font-size:23px;text-decoration:none;display:flex}.brand strong{font-weight:750}.brand-mark{border:2px solid var(--forest);border-radius:50% 50% 50% 12%;place-items:center;width:31px;height:31px;display:grid;transform:rotate(-18deg)}.brand-mark span{background:var(--coral);border-radius:50%;width:8px;height:8px}.prototype-badge{color:var(--teal);letter-spacing:.03em;text-transform:uppercase;background:#e7f0ec;border-radius:999px;align-items:center;gap:8px;padding:7px 11px;font-size:12px;font-weight:700;display:flex}.prototype-badge span,.live-dot{background:#43a06f;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #43a06f1f}.user-menu{align-items:center;gap:8px;margin-left:auto;display:flex}.user-menu>span{color:var(--ink-soft);align-items:center;gap:7px;margin-right:4px;font-size:12px;display:flex}.user-menu>span i,.user-list i{background:#43a06f;border-radius:50%;width:7px;height:7px}.user-menu button{border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:6px;padding:7px 9px;font-size:10px}.user-menu button:hover{border-color:var(--teal);color:var(--teal)}.workspace{grid-template-columns:minmax(340px,420px) 1fr;height:calc(100vh - 72px);display:grid}.control-panel{background:var(--paper);border-right:1px solid var(--line);z-index:10;padding:35px 34px 28px;overflow-y:auto}.intro h1{letter-spacing:-1.5px;margin:5px 0 12px;font-family:Georgia,Times New Roman,serif;font-size:clamp(31px,3vw,43px);font-weight:500;line-height:1.02}.intro>p:last-child{max-width:340px;color:var(--ink-soft);margin:0;font-size:14px;line-height:1.55}.eyebrow{color:var(--coral);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:10px;font-weight:800;line-height:1}.demo-notice{color:#765d26;background:#fff3d7;border:1px solid #f0d794;border-radius:8px;align-items:center;gap:9px;margin:24px 0 7px;padding:11px 12px;font-size:11px;line-height:1.35;display:flex}.demo-notice span{color:#44330c;text-transform:uppercase;background:#e8be54;border-radius:4px;padding:3px 6px;font-weight:800}.filter-section{border:0;border-bottom:1px solid var(--line);margin:0;padding:22px 0}.filter-section legend{letter-spacing:.02em;align-items:center;gap:10px;width:100%;padding:0;font-size:12px;font-weight:750;display:flex}.filter-section legend span{color:var(--teal);font-size:10px}.field-label{color:var(--ink-soft);margin:15px 0 7px;font-size:11px;display:block}select{width:100%;color:var(--forest);border:1px solid var(--line);background:#f8f7f2;border-radius:7px;outline:none;padding:11px 12px}select:focus{border-color:var(--teal);box-shadow:0 0 0 3px #2f766d1a}.secondary-button{border:1px solid var(--teal);width:100%;color:var(--teal);cursor:pointer;background:0 0;border-radius:7px;justify-content:center;align-items:center;gap:9px;margin-top:9px;padding:10px 12px;font-size:12px;font-weight:700;display:flex}.secondary-button:hover,.secondary-button.active{background:#e7f0ec}.draw-icon{border:1.5px dashed;width:14px;height:11px}.filter-section>small{color:#84928f;text-align:right;margin-top:7px;font-size:10px;display:block}.range-heading{justify-content:space-between;align-items:baseline;margin-top:16px;font-size:12px;display:flex}.range-heading output{color:var(--teal);font-weight:800}input[type=range]{width:100%;accent-color:var(--teal)}.switch-row{cursor:pointer;grid-template-columns:1fr auto;align-items:center;gap:12px;margin-top:13px;font-size:12px;display:grid}.switch-row small{color:#84928f;margin-top:3px;font-size:10px;display:block}.switch-row input{opacity:0;pointer-events:none;position:absolute}.switch-row i{background:#c8d1cf;border-radius:20px;width:38px;height:21px;padding:3px;transition:all .2s}.switch-row i:after{content:"";background:#fff;border-radius:50%;width:15px;height:15px;transition:all .2s;display:block;box-shadow:0 1px 3px #0003}.switch-row input:checked+i{background:var(--teal)}.switch-row input:checked+i:after{transform:translate(17px)}.chip-list{flex-wrap:wrap;gap:7px;margin-top:14px;display:flex}.chip{border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;background:#fff;border-radius:20px;align-items:center;gap:7px;padding:7px 9px;font-size:10px;display:flex}.chip>span{opacity:.45;border-radius:50%;width:7px;height:7px}.chip.selected{border-color:var(--forest);color:var(--forest);box-shadow:inset 0 0 0 1px var(--forest)}.chip.selected>span{opacity:1}.search-button{background:var(--forest);color:#fff;cursor:pointer;border:0;border-radius:7px;justify-content:space-between;width:100%;margin-top:21px;padding:14px 16px;font-size:13px;font-weight:750;display:flex;box-shadow:0 8px 20px #173f3a29}.search-button:hover{background:#225a53}.search-button:disabled{opacity:.55;cursor:wait}.error-message{color:#8a3128;background:#fae3df;border-radius:6px;margin-top:11px;padding:10px;font-size:11px;line-height:1.4}.map-panel{min-width:0;position:relative;overflow:hidden}.map{background:#d7ded9;width:100%;height:100%}.map-caption{color:var(--ink-soft);white-space:nowrap;background:#fffdf8f0;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:10px;display:flex;position:absolute;top:15px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #173f3a1f}.results-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffdf8f5;border:1px solid #d9ded7e6;border-radius:10px;flex-direction:column;width:min(420px,100% - 34px);max-height:48%;display:flex;position:absolute;bottom:17px;right:17px;overflow:hidden;box-shadow:0 12px 35px #173f3a30}.results-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;padding:15px 17px 11px;display:flex}.results-heading h2{margin:4px 0 0;font-family:Georgia,serif;font-size:22px;font-weight:500}.results-heading>span{color:var(--ink-soft);font-size:9px}.results-list{overflow-y:auto}.result-card{text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #e8ebe6;grid-template-columns:29px 1fr auto;align-items:start;gap:10px;width:100%;padding:13px 16px;display:grid}.result-card:hover{background:#f1f4ef}.result-index{color:var(--coral);font-family:Georgia,serif;font-size:13px}.result-main{flex-direction:column;min-width:0;display:flex}.result-main strong{font-size:12px}.result-main>small{color:var(--ink-soft);margin-top:2px;font-size:9px}.result-tags{flex-wrap:wrap;gap:4px;margin-top:7px;display:flex}.result-tags i{color:#687a77;background:#edf1ed;border-radius:3px;padding:3px 5px;font-size:8px;font-style:normal}.result-area{color:var(--teal);white-space:nowrap;flex-direction:column;align-items:flex-end;font-size:12px;font-weight:800;display:flex}.result-area small{color:#91a09d;text-transform:uppercase;margin-top:2px;font-size:7px;font-weight:500}.empty-state{color:var(--ink-soft);text-align:center;margin:0;padding:24px 18px;font-size:11px;line-height:1.5}.ol-zoom{top:16px;left:16px}.ol-control button{background:var(--forest)}.auth-page{background:var(--paper);grid-template-columns:minmax(360px,520px) 1fr;min-height:100vh;display:grid}.auth-card{width:min(390px,100vw - 44px);margin:auto;padding:38px 0}.auth-brand{color:var(--forest);letter-spacing:-1px;align-items:center;gap:10px;margin-bottom:68px;font-size:25px;display:flex}.auth-card h1{letter-spacing:-1.8px;margin:8px 0 10px;font-family:Georgia,Times New Roman,serif;font-size:48px;font-weight:500;line-height:1}.auth-intro{color:var(--ink-soft);margin:0 0 28px;font-size:14px;line-height:1.55}.auth-card form{flex-direction:column;display:flex}.auth-card label,.admin-panel label,.invitation-result label{color:var(--ink-soft);margin:13px 0 6px;font-size:11px;font-weight:650}.auth-card input,.admin-panel input,.invitation-result input{border:1px solid var(--line);width:100%;color:var(--forest);background:#f9f8f3;border-radius:7px;outline:none;padding:12px 13px}.auth-card input:focus,.admin-panel input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #2f766d1a}.auth-card .search-button{margin-top:23px}.auth-footnote{color:#91a09d;text-align:center;margin-top:22px;font-size:10px;display:block}.auth-visual{background:var(--forest);place-items:center;display:grid;position:relative;overflow:hidden}.auth-visual:before{content:"";opacity:.18;background-image:linear-gradient(#fff1 1px,#0000 1px),linear-gradient(90deg,#fff1 1px,#0000 1px);background-size:52px 52px;position:absolute;inset:0}.auth-visual>p{color:#d9e7df;margin:0;font-family:Georgia,serif;font-size:30px;line-height:1.08;position:absolute;bottom:42px;left:48px}.auth-pin{z-index:2;border:2px solid #e6e1ce;border-radius:50% 50% 50% 12%;place-items:center;width:125px;height:125px;display:grid;position:relative;transform:rotate(-18deg)}.auth-pin i{background:var(--coral);border-radius:50%;width:26px;height:26px;box-shadow:0 0 0 14px #d85d4f26}.contour{border:1px solid #e6e1ce33;border-radius:48% 52% 63% 37%;width:420px;height:330px;position:absolute;transform:rotate(25deg)}.contour-two{width:610px;height:520px;transform:rotate(-12deg)}.modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0a201d9e;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.admin-panel{background:var(--paper);border-radius:12px;width:min(560px,100%);max-height:calc(100vh - 40px);padding:32px;position:relative;overflow-y:auto;box-shadow:0 26px 70px #071c1955}.admin-panel h2{margin:7px 0;font-family:Georgia,serif;font-size:30px;font-weight:500}.admin-panel>p:not(.eyebrow){color:var(--ink-soft);margin:0 0 21px;font-size:12px}.modal-close{width:32px;height:32px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;font-size:25px;position:absolute;top:14px;right:16px}.invite-row{grid-template-columns:1fr auto;gap:8px;display:grid}.invite-row button,.invitation-result button{background:var(--forest);color:#fff;cursor:pointer;border:0;border-radius:7px;padding:0 16px;font-size:11px;font-weight:700}.invite-row button:disabled{opacity:.55}.invitation-result{background:#e7f0ec;border-radius:8px;margin-top:18px;padding:14px}.invitation-result input{background:#fff;margin:6px 0 8px;font-family:ui-monospace,monospace;font-size:10px}.invitation-result button{background:var(--teal);width:100%;padding:10px}.user-list{border-top:1px solid var(--line);margin-top:25px}.user-list h3{text-transform:uppercase;letter-spacing:.09em;margin:20px 0 8px;font-size:11px}.user-list>div{border-bottom:1px solid #e8ebe6;justify-content:space-between;align-items:center;padding:10px 0;font-size:12px;display:flex}.user-list span{align-items:center;gap:8px;display:flex}.user-list small{color:var(--ink-soft);font-size:9px}@media (width<=860px){.topbar{height:60px;padding:0 16px}.prototype-badge,.user-menu>span{display:none}.workspace{grid-template-columns:1fr;height:auto;min-height:calc(100vh - 60px)}.control-panel{border-right:0;max-height:none;padding:27px 22px}.map-panel{height:72vh;min-height:540px}.results-panel{max-height:43%}.auth-page{grid-template-columns:1fr}.auth-card{flex-direction:column;justify-content:center;min-height:100vh;display:flex}.auth-brand{margin-bottom:45px}.auth-visual{display:none}.invite-row{grid-template-columns:1fr}.invite-row button{padding:11px}}
