:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:#102522;background:#eef6f4;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Segoe UI,system-ui,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}html{background:#eef6f4;min-width:320px}body{min-width:320px;min-height:100vh;margin:0}button{border:0}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #007e6f61}@media (prefers-color-scheme:dark){:root,html{color:#ecf7f3;background:#0d1817}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--ink:#102522;--ink-soft:#526a65;--ink-faint:#778b86;--canvas:#f3f8f7;--surface:#fff;--surface-subtle:#eef6f4;--line:#d9e7e3;--accent:#087668;--accent-dark:#075b51;--accent-soft:#d9f1eb;--success:#16734e;--success-soft:#e4f5eb;--warning:#a55a0a;--warning-soft:#fff1da;--danger:#b23a36;--danger-soft:#ffe7e5;--focus:#08766847;--shadow:0 8px 26px #164a420f;--radius:16px;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;background:var(--canvas);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Segoe UI,system-ui,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100vh}button,input{font:inherit}button,a,label{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.app-shell{width:min(100%,1080px);min-height:100dvh;padding:max(8px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(34px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));margin:0 auto}.app-header{justify-content:space-between;align-items:center;gap:16px;min-height:64px;display:flex}.brand-button{min-height:44px;color:var(--ink);cursor:pointer;letter-spacing:-.035em;background:0 0;border:0;align-items:center;gap:10px;padding:0;font-size:1.05rem;font-weight:750;display:inline-flex}.brand-mark{color:#fff;background:var(--accent);border-radius:10px;flex:none;place-items:center;width:34px;height:34px;display:inline-grid;box-shadow:0 5px 11px #0876682e}.brand-mark svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:20px;height:20px}.header-actions{align-items:center;gap:5px;display:flex}.header-link,.header-icon,.back-link,.text-button,.icon-button{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;text-decoration:none}.header-link{border-radius:10px;align-items:center;gap:7px;min-height:44px;padding:0 10px;font-size:.82rem;font-weight:650;display:inline-flex}.header-link:hover,.header-icon:hover,.back-link:hover,.text-button:hover,.icon-button:hover{color:var(--accent);background:var(--accent-soft)}.header-count{min-width:20px;height:20px;color:var(--accent-dark);background:var(--accent-soft);border-radius:999px;place-items:center;padding-inline:5px;font-size:.68rem;display:inline-grid}.header-icon{border-radius:10px;place-items:center;width:44px;height:44px;display:grid}.header-icon svg,.header-link svg,.back-link svg,.text-button svg,.icon-button svg,.button svg,.permission-note svg,.privacy-line svg,.inline-alert svg,.distance-check svg,.result-icon svg,.file-row-main>svg,.empty-state>svg,.help-note svg,.saved-marker svg,.notice-mark svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:18px;height:18px}.main-content{width:min(100%,760px);margin:0 auto;padding:42px 0 48px}.eyebrow{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;font-size:.68rem;font-weight:750;line-height:1.2;display:block}.page-intro{justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:25px;display:flex}.page-intro h1,.subpage-heading h1{color:var(--ink);letter-spacing:-.06em;margin:7px 0;font-size:clamp(1.9rem,5vw,2.55rem);font-weight:720;line-height:1.03}.page-intro p{color:var(--ink-soft);margin:0;font-size:.92rem;line-height:1.45}.distance-rule{color:var(--ink-soft);background:var(--surface-subtle);white-space:nowrap;border-radius:9px;flex:none;padding:8px 11px;font-size:.72rem}.distance-rule strong{color:var(--accent-dark)}.notice-banner{border:1px solid var(--line);min-height:43px;color:var(--ink-soft);border-radius:11px;align-items:center;gap:9px;margin-bottom:14px;padding:9px 12px;font-size:.78rem;line-height:1.35;display:flex}.notice-success{color:var(--success);background:var(--success-soft);border-color:#c9e9d6}.notice-error{color:var(--danger);background:var(--danger-soft);border-color:#f2c7c4}.notice-neutral{background:var(--surface)}.notice-mark{flex:none;place-items:center;width:20px;height:20px;display:grid}.compact-stage{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 24px}.stage-heading{margin-bottom:17px}.stage-heading h1,.result-stage-heading h1{color:var(--ink);letter-spacing:-.06em;margin:6px 0 5px;font-size:clamp(1.75rem,5vw,2.2rem);font-weight:720;line-height:1.04}.stage-heading p{max-width:38rem;color:var(--ink-soft);margin:0;font-size:.82rem;line-height:1.4}.result-stage-heading{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:14px;display:flex}.result-stage-heading h1{margin-bottom:0}.stage-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:2px;display:flex}.workflow-panel,.help-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.workflow-step{padding:24px 26px}.workflow-step+.workflow-step{border-top:1px solid var(--line)}.step-heading{align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.step-number{width:30px;height:30px;color:var(--accent-dark);background:var(--accent-soft);border-radius:9px;flex:none;place-items:center;font-size:.82rem;font-weight:750;display:grid}.workflow-step+.workflow-step .step-number{color:#fff;background:var(--accent)}.step-heading h2{color:var(--ink);letter-spacing:-.025em;margin:1px 0 4px;font-size:1.07rem;font-weight:700}.step-heading p{color:var(--ink-soft);margin:0;font-size:.8rem;line-height:1.4}.button{min-height:44px;color:var(--ink);background:var(--surface-subtle);cursor:pointer;border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:0 15px;font-size:.82rem;font-weight:700;line-height:1;text-decoration:none;transition:background .14s,border-color .14s,color .14s,transform .14s;display:inline-flex}.button:hover{transform:translateY(-1px)}.button:active{transform:scale(.985)}.button-primary{color:#fff;background:var(--accent);box-shadow:0 5px 12px #08766824}.button-primary:hover{background:var(--accent-dark)}.button-location{min-width:225px}.button-save{color:#fff;background:var(--success);width:100%}.button-save:hover{background:#105d40}.button-warning{color:#7d4707;background:var(--warning-soft);border-color:#f0d3a4;width:100%}.button-secondary{color:var(--ink-soft);background:var(--surface-subtle);border-color:var(--line)}.button-danger{color:var(--danger);background:var(--danger-soft)}.button:disabled,.text-button:disabled{cursor:not-allowed;opacity:.45;transform:none}.file-row{background:var(--surface-subtle);border-radius:11px;justify-content:space-between;align-items:center;gap:12px;min-height:49px;padding:6px 7px 6px 11px;display:flex}.file-row-main{min-width:0;color:var(--accent);align-items:center;gap:9px;display:flex}.file-row-main>svg{flex:none}.file-row-main>span{flex-direction:column;gap:2px;min-width:0;display:flex}.file-row-main strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.file-row-main small,.details-note{color:var(--ink-faint);font-size:.69rem}.file-row-actions{align-items:center;gap:3px;display:flex}.text-button{border-radius:9px;justify-content:center;align-items:center;gap:5px;min-height:40px;padding:0 9px;font-size:.74rem;font-weight:700;display:inline-flex}.danger-text{color:var(--danger)}.field-error{color:var(--danger);margin:10px 0 0;font-size:.76rem;line-height:1.4}.points-details{border-top:1px solid var(--line);margin-top:14px}.points-details summary{min-height:44px;color:var(--ink-soft);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;font-size:.75rem;font-weight:650;list-style:none;display:flex}.points-details summary::-webkit-details-marker{display:none}.points-details summary:after{content:"＋";color:var(--accent);font-size:1rem}.points-details[open] summary:after{content:"−"}.points-details summary span{color:var(--accent-dark);background:var(--accent-soft);border-radius:999px;margin-left:auto;padding:3px 7px;font-size:.66rem}.details-content{padding:0 0 7px}.checkbox-row{min-height:38px;color:var(--ink-soft);cursor:pointer;align-items:center;gap:8px;font-size:.74rem;display:inline-flex}.checkbox-row input{width:16px;height:16px;accent-color:var(--accent)}.compact-point-list{border-top:1px solid var(--line);max-height:210px;margin:4px 0 0;padding:0;list-style:none;overflow:auto}.compact-point-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;min-height:39px;display:flex}.compact-point-list span{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.73rem;overflow:hidden}.compact-point-list small{color:var(--ink-faint);flex:none;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.65rem}.details-note{margin-top:9px;display:block}.permission-note,.privacy-line{color:var(--ink-faint);align-items:center;gap:6px;font-size:.7rem;line-height:1.35;display:flex}.permission-note{margin:10px 0 0}.permission-note svg,.privacy-line svg{flex:none;width:14px;height:14px}.inline-alert{color:var(--danger);background:var(--danger-soft);border-radius:10px;align-items:flex-start;gap:8px;margin-top:16px;padding:11px 12px;font-size:.76rem;line-height:1.4;display:flex}.inline-alert svg{flex:none}.location-result{border:1px solid var(--line);background:var(--surface-subtle);border-radius:13px;margin-top:15px;padding:13px}.location-result.safe{background:var(--success-soft);border-color:#c5e5d2}.location-result.too-close{background:var(--warning-soft);border-color:#efd4aa}.result-title{align-items:center;gap:9px;display:flex}.result-icon{width:31px;height:31px;color:var(--accent);background:var(--accent-soft);border-radius:9px;flex:none;place-items:center;display:grid}.safe .result-icon{color:var(--success);background:#ccebd9}.too-close .result-icon{color:var(--warning);background:#ffe4b8}.result-title strong,.result-title small{display:block}.result-title strong{color:var(--ink);font-size:.83rem}.result-title small{color:var(--ink-faint);margin-top:3px;font-size:.68rem}.coordinate-line{background:#ffffff94;border-radius:9px;justify-content:space-between;align-items:center;gap:10px;min-height:41px;margin-top:13px;padding:0 10px;display:flex}.coordinate-line span{color:var(--ink);letter-spacing:-.03em;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem;overflow:hidden}.coordinate-line .text-button{flex:none;min-height:35px}.distance-check{border-radius:9px;align-items:center;gap:8px;min-height:39px;margin-top:8px;padding:8px 10px;font-size:.72rem;line-height:1.35;display:flex}.check-safe{color:var(--success);background:#d2f1dedb}.check-warning{color:var(--warning);background:#ffe7bfdb}.check-neutral{color:var(--accent-dark);background:var(--accent-soft)}.distance-check svg{flex:none;width:16px;height:16px}.result-actions{justify-content:flex-end;margin-top:4px;display:flex}.save-panel{border-top:1px solid #1952491f;flex-direction:column;gap:7px;margin-top:10px;padding-top:10px;display:flex}.save-panel label{color:var(--ink-soft);font-size:.72rem;font-weight:650}.save-panel label span{color:var(--ink-faint);font-weight:400}.save-panel input{width:100%;min-height:42px;color:var(--ink);border:1px solid var(--line);background:#ffffffb3;border-radius:9px;padding:0 11px;font-size:.78rem}.save-panel input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus);outline:none}.privacy-line{text-align:center;justify-content:center;margin:16px 0 0}.subpage{padding-top:4px}.back-link{border-radius:9px;align-items:center;min-height:40px;margin-bottom:24px;padding:0 8px;font-size:.78rem;font-weight:650;display:inline-flex}.subpage-heading{justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:22px;display:flex}.subpage-heading h1{margin-bottom:0}.saved-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin:0;padding:0;list-style:none}.saved-row{border-bottom:1px solid var(--line);align-items:center;gap:11px;min-height:72px;padding:10px 12px;display:flex}.saved-row:last-child{border-bottom:0}.saved-marker{width:34px;height:34px;color:var(--accent);background:var(--accent-soft);border-radius:10px;flex:none;place-items:center;display:grid}.saved-copy{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.saved-copy strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.saved-copy small{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;overflow:hidden}.saved-row-actions{flex:none;gap:2px;display:flex}.icon-button{border-radius:9px;place-items:center;width:40px;height:40px;display:grid}.danger-icon:hover{color:var(--danger);background:var(--danger-soft)}.empty-state{color:var(--ink-soft);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-align:center;flex-direction:column;align-items:center;padding:58px 20px;display:flex}.empty-state>svg{width:30px;height:30px;color:var(--accent)}.empty-state h2{color:var(--ink);margin:14px 0 6px;font-size:1.05rem}.empty-state p{max-width:300px;margin:0 0 18px;font-size:.78rem;line-height:1.45}.help-panel{padding:23px 25px}.help-list{counter-reset:help;gap:0;margin:0;padding:0;list-style:none;display:grid}.help-list li{border-bottom:1px solid var(--line);counter-increment:help;grid-template-columns:25px 1fr;gap:11px;padding:14px 0;display:grid}.help-list li:before{content:counter(help);width:25px;height:25px;color:var(--accent-dark);background:var(--accent-soft);border-radius:8px;place-items:center;font-size:.7rem;font-weight:750;display:grid}.help-list strong,.help-list span{display:block}.help-list strong{color:var(--ink);font-size:.8rem}.help-list span{color:var(--ink-soft);margin-top:3px;font-size:.74rem;line-height:1.4}.help-note{color:var(--ink-faint);align-items:flex-start;gap:8px;margin-top:17px;font-size:.72rem;line-height:1.4;display:flex}.help-note svg{flex:none;width:15px;height:15px}.help-actions{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.loading-screen{min-height:100dvh;color:var(--ink-soft);background:var(--canvas);align-content:center;place-items:center;gap:11px;font-size:.82rem;display:grid}.loading-screen p{margin:0}.visually-hidden{clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}@media (prefers-color-scheme:dark){:root{--ink:#edf8f4;--ink-soft:#b5c9c3;--ink-faint:#829a94;--canvas:#0e1918;--surface:#172725;--surface-subtle:#203633;--line:#2b4641;--accent:#56b9a6;--accent-dark:#a8ebdc;--accent-soft:#1b4c44;--success:#6ed7a4;--success-soft:#183e30;--warning:#f0b65d;--warning-soft:#493519;--danger:#ff8d86;--danger-soft:#4a2422;--focus:#56b9a659;--shadow:0 8px 26px #0003}.button-secondary,.coordinate-line,.save-panel input{background:#1c302d}.safe .result-icon{background:#22563e}.too-close .result-icon{background:#63461f}}@media (width<=600px){.app-shell{padding-inline:max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-left))}.main-content{padding-top:30px;padding-bottom:30px}.page-intro{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:19px}.page-intro h1,.subpage-heading h1{font-size:2rem}.distance-rule{padding:6px 9px}.workflow-step{padding:20px 17px}.compact-stage{padding:18px 16px}.result-stage-heading{flex-direction:column;align-items:flex-start;gap:7px}.stage-actions{justify-content:flex-start}.button,.button-location{width:100%}.file-row{align-items:flex-start}.file-row-actions{flex-direction:column;align-items:flex-end;margin-top:-4px}.compact-point-list li{flex-direction:column;justify-content:center;align-items:flex-start;gap:3px;padding:7px 0}.compact-point-list small{white-space:normal}.coordinate-line span{font-size:.67rem}.result-actions{justify-content:flex-start}.subpage-heading{flex-direction:column;align-items:flex-start;gap:10px}.subpage-heading>.text-button{align-self:flex-start}.saved-row{align-items:flex-start;padding-block:12px}.saved-row-actions{flex-direction:column;margin-top:-5px}.help-panel{padding:17px}.help-actions{flex-direction:column}.help-actions .button{width:100%}}@media (width>=601px){.privacy-line{margin-top:18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
