:root{font-family:system-ui,sans-serif;color:#17211d;background:#edf2ee}*{box-sizing:border-box}body{margin:0;min-width:320px}header{padding:1rem;background:#173d2b;color:#fff}header h1{font-size:1.35rem;margin:.25rem 0}header p{margin:.25rem 0}main{max-width:48rem;margin:auto;padding:.7rem}.card{background:white;border-radius:.7rem;padding:1rem;margin-bottom:.7rem;box-shadow:0 .2rem .8rem #173d2b17}h2{font-size:1.1rem;margin:.2rem 0 .7rem}label{display:grid;gap:.3rem;margin:.6rem 0}input,textarea,button{font:inherit}input,textarea{width:100%;padding:.65rem;border:1px solid #9caea4;border-radius:.4rem}button{border:0;border-radius:.45rem;padding:.7rem .8rem;background:#0d6958;color:white;font-weight:700;min-height:44px}button:disabled{opacity:.4}.secondary{background:#53665c}.danger{background:#a92d35}.row{display:flex;flex-wrap:wrap;gap:.5rem}.row>*{flex:1 1 8rem}#pointNav{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.4rem}#pointNav button{background:#e4eee8;color:#173d2b;text-align:left}#pointNav button.active{outline:3px solid #d1495b}#mapCanvas{width:100%;height:min(48vh,420px);min-height:260px;touch-action:none;background:#dde6df;border-radius:.5rem}.point-heading{display:flex;justify-content:space-between;gap:1rem}.hint{font-size:.85rem;color:#53665c}dl{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}dl div{background:#f0f5f1;padding:.55rem;border-radius:.4rem}dt{font-size:.75rem;color:#53665c}dd{margin:.2rem 0;font-weight:700;word-break:break-all}.check{display:flex;align-items:center;gap:.5rem;background:#fff2c8;padding:.6rem}.check input{width:auto}#warnings .warn,#permissionState.error{color:#9a4b00;background:#fff2d8;padding:.6rem;border-radius:.4rem}#permissionState.ok{color:#0d6958}.completed{color:#0d6958;font-weight:700}#banner{padding:.8rem;background:#fee;color:#8b1820}#toast{position:fixed;left:1rem;right:1rem;bottom:1rem;background:#17211d;color:white;padding:.8rem;border-radius:.5rem;opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1}@media(min-width:700px){main{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.setup,nav{grid-column:1/-1}.detail{grid-column:1}.measure{grid-column:2}}
