@font-face{font-family:NanumBarunpenR;src:url(/assets/NanumBarunpenR-599919ce.otf) format("opentype"),url(/assets/NanumBarunpenR-f5bd6993.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{font-family:NanumBarunpenR,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;--color-background: #121212;--color-surface: #1e1e1e;--color-surface-muted: #252525;--color-text: #f5f5f5;--color-text-strong: #ffffff;--color-text-muted: #cfcfcf;--color-highlight: #fdd835;--color-border: #3a3a3a;--color-hover: #2f2f2f;--color-link: #8ab4ff;--color-link-hover: #a3c4ff;--color-button: #1a1a1a;--color-button-hover-border: #8ab4ff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:var(--color-link);text-decoration:inherit}a:hover{color:var(--color-link-hover)}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--color-background);color:var(--color-text)}h1{font-size:3.2em;line-height:1.1;font-weight:700;color:var(--color-text-strong)}h2,h3{font-weight:700;color:var(--color-text-strong)}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--color-button);cursor:pointer;transition:border-color .25s}button:hover{border-color:var(--color-button-hover-border)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{--color-background: #f3f4f6;--color-surface: #ffffff;--color-surface-muted: #f1f5f9;--color-text: #1f2933;--color-text-strong: #111827;--color-text-muted: #4b5563;--color-highlight: #2357ff;--color-border: #d1d5db;--color-hover: #e2e8f0;--color-link: #3b82f6;--color-link-hover: #2563eb;--color-button: #f3f4ff;--color-button-hover-border: #2563eb}}.app-container{max-width:960px;margin:0 auto;padding:16px;min-height:100vh;box-sizing:border-box;width:100%;background-color:var(--color-surface);color:var(--color-text)}.app-header{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;margin-bottom:20px;text-align:center}.app-logo{height:140px;width:auto;object-fit:contain;max-width:100%}.app-title{font-size:1.8rem;margin:0;text-align:center;color:var(--color-highlight);font-weight:700}.map-container{width:100%;height:360px;border-radius:8px;border:1px solid var(--color-border);margin-bottom:20px;background-color:var(--color-surface)}.map-loading,.map-error{width:100%;height:360px;border-radius:8px;border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;background-color:var(--color-surface-muted);text-align:center;color:var(--color-text-muted)}.map-error{background-color:#f8d7da;color:#721c24}.map-coords{margin-top:8px;font-size:14px;color:var(--color-text-muted)}.form-container{margin-top:16px}.input-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:16px}.input-group{display:flex;flex-direction:column}.input-group label{margin-bottom:4px;font-weight:500;color:var(--color-highlight)}.input-group input[type=number]{width:100%;padding:8px;border-radius:4px;border:1px solid var(--color-border);font-size:16px;box-sizing:border-box}.radio-group{display:flex;gap:20px;margin-top:4px;justify-content:center;flex-wrap:wrap}.radio-option{display:flex;align-items:center;gap:8px;cursor:pointer}.radio-option input[type=radio]{margin:0}.waypoints-section{margin-bottom:16px}.waypoints-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;flex-wrap:wrap;gap:8px}.waypoints-title{font-weight:500;color:var(--color-highlight)}.waypoints-subtitle{font-size:12px;color:var(--color-text-muted);margin-top:2px}.add-waypoint-btn{padding:4px 12px;background-color:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;white-space:nowrap}.add-waypoint-btn:hover{background-color:#218838}.waypoint-item{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding:8px;width:flex;cursor:move;transition:all .2s ease;min-height:10px}.waypoint-item:hover{background-color:var(--color-hover)}.waypoint-item.dragging{background-color:#e3f2fd;border:2px dashed #2196f3;opacity:.7}.waypoint-order{min-width:20px;font-weight:700;color:var(--color-text-muted);display:flex;align-items:center;gap:4px}.drag-handle{font-size:16px;color:var(--color-text-muted);font-weight:700;cursor:grab;-webkit-user-select:none;user-select:none}.drag-handle:active{cursor:grabbing}.waypoint-input{flex:1;padding:8px;border-radius:4px;border:1px solid var(--color-border);font-size:16px}.waypoint-input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}@media (hover: none) and (pointer: coarse){.waypoint-item{padding:12px;touch-action:none}.add-waypoint-btn,.remove-waypoint-btn,.submit-btn{min-height:44px;padding:12px 16px}.radio-option{min-height:44px;padding:8px}.waypoint-input,.input-group input[type=number]{min-height:44px;font-size:16px}.drag-handle{font-size:20px;padding:8px}}.remove-waypoint-btn{padding:4px 8px;background-color:transparent;color:var(--color-text);border:none;border-radius:4px;cursor:pointer;font-size:20px;font-weight:700;line-height:1;min-width:30px;min-height:30px;display:flex;align-items:center;justify-content:center}.remove-waypoint-btn:hover{background-color:var(--color-hover);color:#dc3545}.submit-container{text-align:center;margin:20px 0}.submit-btn{padding:12px 24px;background-color:#007bff;color:#fff;border:none;border-radius:4px;font-size:16px;cursor:pointer;transition:background-color .2s ease}.submit-btn:hover:not(:disabled){background-color:#0056b3}.submit-btn:disabled{background-color:#ccc;cursor:not-allowed}.error-message{color:#dc3545;margin-top:12px;padding:12px;background-color:#f8d7da;border-radius:4px;border:1px solid #f5c6cb}.result-container{margin-top:16px;padding:16px;background-color:var(--color-surface);border-radius:8px;border:1px solid var(--color-border)}.result-title{margin:0 0 8px;color:var(--color-text-strong);font-size:1.2rem}.result-summary{font-size:16px;color:#007bff;font-weight:700;margin-bottom:12px}.waypoint-result{margin-bottom:12px;padding:12px;background-color:var(--color-surface);border-radius:4px;border:1px solid var(--color-border)}.waypoint-result-title{font-size:16px;font-weight:700;margin-bottom:4px;color:var(--color-text-strong)}.waypoint-result-theme{font-size:14px;color:var(--color-text-muted);margin-bottom:4px}.waypoint-result-address{font-size:12px;color:var(--color-text-muted);margin-bottom:4px}.waypoint-result-phone{font-size:12px;color:var(--color-text-muted)}.candidates-info{font-size:12px;color:var(--color-text-muted);margin-top:8px}.route-link{display:inline-block;padding:8px 16px;background-color:#007bff;color:#fff;text-decoration:none;border-radius:4px;font-size:14px;margin-top:12px;transition:background-color .2s ease}.route-link:hover{background-color:#0056b3;color:#fff}@media (max-width: 479px){.app-container{padding:12px}.app-header{margin-bottom:16px;gap:12px}.app-logo{height:60px}.app-title{font-size:1.5rem;margin:0}.map-container,.map-loading,.map-error{height:300px}.waypoints-header{flex-direction:column;align-items:flex-start;gap:8px}.waypoint-item{flex-direction:column;align-items:stretch;gap:8px;min-height:auto}.waypoint-order{justify-content:center;order:1}.waypoint-input{order:2}.remove-waypoint-btn{order:3;align-self:flex-end;margin-top:4px}.radio-group{justify-content:center;gap:16px}.submit-btn{width:100%;padding:16px;font-size:18px}}@media (min-width: 480px){.input-grid{grid-template-columns:1fr 1fr}.radio-group{justify-content:flex-start}.waypoint-item{flex-direction:row}}@media (min-width: 768px){.app-container{padding:24px}.app-header{margin-bottom:24px;gap:20px}.app-logo{height:100px}.app-title{font-size:2.2rem}.waypoints-header{flex-wrap:nowrap}.waypoint-item{gap:12px}.submit-btn{width:auto;padding:12px 24px;font-size:16px}}@media (min-width: 1024px){.app-container{padding:32px;margin:0 auto;display:block}.app-header{margin-bottom:32px;gap:24px}.app-logo{height:120px}.map-container,.map-loading,.map-error{height:400px}.waypoint-item{gap:16px}}@media (min-width: 1200px){.app-container{padding:40px;margin:0 auto}}
