:root{--ink:#173c32;--green:#245743;--paper:#f6f4ed;--line:#d9dfd5;--muted:#52685d;--gold:#eaca6c}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 system-ui,-apple-system,sans-serif}button{font:inherit;font-weight:700;min-height:48px;padding:10px 18px;border-radius:9px;border:1px solid var(--green);background:var(--green);color:#fff;cursor:pointer}button:disabled{background:#e3e7e0;border-color:#cbd4c8;color:#52685d;cursor:default}.secondary{background:#fff;color:var(--ink)}.text-button{background:transparent;color:var(--ink);border-color:transparent;text-decoration:underline}[hidden]{display:none!important}:focus-visible{outline:3px solid #176dc1;outline-offset:4px}.header{max-width:1280px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:24px 32px;border-bottom:1px solid var(--line)}.brand{font-size:22px;letter-spacing:.06em;font-weight:900}.brand span{font-weight:500}.badge{font-size:12px;background:var(--gold);padding:5px 10px;border-radius:5px;font-weight:800}main{max-width:1280px;margin:auto;padding:0 32px}.intro{max-width:740px;padding:40px 0 28px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.13em}h1{font-size:clamp(34px,5vw,54px);line-height:1.08;letter-spacing:-.035em;margin:16px 0}h2{font-size:24px;line-height:1.3;margin:0 0 12px}h3{font-size:18px;margin:0 0 6px}.intro>p:last-child{font-size:18px;max-width:650px}.workspace{display:grid;grid-template-columns:1.5fr 1fr;gap:24px;align-items:start}.map-panel,.points-panel{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.toolbar{display:flex;gap:10px;padding:16px;flex-wrap:wrap}.status{margin:0;padding:0 16px 16px;font-size:14px;min-height:60px}#map{height:480px;background:#e5e9df}.map-note{padding:12px 16px;margin:0;font-size:13px}.blue-dot{color:#176dc1}.points-panel{padding:24px}.section-top{display:flex;justify-content:space-between;align-items:center}.section-top>span{border-radius:30px;padding:4px 12px;background:#e8eee5;font-weight:700}.muted{color:var(--muted);font-size:14px}.point-list{list-style:none;padding:0;margin:24px 0}.point-card{border-top:1px solid var(--line);padding:20px 0;position:relative;padding-left:44px}.number{position:absolute;left:0;top:20px;background:var(--paper);border:1px solid var(--line);width:30px;height:30px;display:grid;place-items:center;border-radius:50%;font-weight:700}.point-state{font-size:13px;font-weight:700}.point-card p{margin:8px 0 12px}.card-actions{display:flex;flex-wrap:wrap;gap:8px}.demo{margin:28px 0;padding:28px;background:#e8eee3;border:1px solid #cbd7c5;border-radius:16px;display:grid;grid-template-columns:1.4fr 1fr;gap:12px 32px}.demo p{margin:8px 0}.demo-actions{display:flex;flex-direction:column;gap:10px;align-self:center}.demo>p:last-child{grid-column:1/-1;font-weight:700;font-size:14px}footer{border-top:1px solid var(--line);padding:16px 0 28px;color:var(--muted);font-size:13px;max-width:900px}.pin{display:grid;place-items:center;background:#fff;color:var(--ink);border:2px solid var(--ink);border-radius:50%;width:38px;height:38px;font-size:15px;font-weight:800;box-shadow:0 2px 8px #0002}.pin.unlocked{background:var(--green);color:#fff}.error{padding:12px 16px;color:#8c301e;background:#fff0e8}dialog{width:min(560px,calc(100% - 32px));border:1px solid var(--line);border-radius:16px;padding:28px;color:var(--ink);max-height:85vh;overflow:auto}dialog::backdrop{background:#102d24a6}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.leaflet-container{font-family:inherit}.leaflet-control-attribution{font-size:11px!important}.leaflet-control-attribution a{color:#174f78!important}.leaflet-control-zoom a{width:40px!important;height:40px!important;line-height:40px!important}@media(max-width:800px){.header{padding:18px 16px}.brand{font-size:18px}main{padding:0 16px}.intro{padding:28px 0 20px}.workspace{grid-template-columns:1fr;gap:16px}#map{height:360px}.points-panel{padding:20px}.demo{grid-template-columns:1fr;padding:20px;gap:16px}.intro>p:last-child{font-size:16px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
