:root{color:var(--text);--edge:24px;--green:#27654c;--text:#243a32;--text-secondary:#52655b;--text-muted:#64756b;--border:#dce3dd;--surface-muted:#f3f5f2;--shadow:0 2px 8px #0000000f;--panel-shadow:0 8px 24px #00000014;--ease:cubic-bezier(.22, 1, .36, 1);background:#eef1eb;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans KR,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}button,input,textarea,select{font:inherit}button{touch-action:manipulation}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--green);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.55}html,body{width:100%;height:100%;margin:0;overflow:hidden}#map{background:#eef1eb;width:100%;height:100dvh;position:fixed;inset:0}.page-title{z-index:1000;top:calc(var(--edge) + env(safe-area-inset-top,0px));left:calc(var(--edge) + env(safe-area-inset-left,0px));border:1px solid var(--border);box-shadow:var(--shadow);pointer-events:none;background:#fff;border-radius:12px;align-items:center;gap:12px;padding:12px 20px;display:flex;position:fixed}.page-title h1{letter-spacing:0;margin:0;font-size:20px;font-weight:600;line-height:1.25}.title-copy p{color:var(--text-secondary);letter-spacing:0;margin:4px 0 0;font-size:12px;font-weight:400;line-height:16px}.service-notice{z-index:1000;left:calc(var(--edge) + env(safe-area-inset-left,0px));bottom:calc(max(var(--edge), 32px) + env(safe-area-inset-bottom,0px));max-width:calc(100% - 120px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));border:1px solid var(--border);color:var(--text-secondary);box-shadow:var(--shadow);word-break:keep-all;pointer-events:none;background:#fff;border-radius:12px;align-items:center;gap:8px;margin:0;padding:8px 12px;font-size:12px;line-height:1.6;display:flex;position:fixed}.service-notice span{background:#7d8781;border-radius:2px;flex:0 0 8px;height:8px}.brand-mark{background:var(--green);border-radius:50%;width:12px;height:12px}.map-controls{z-index:1000;right:calc(var(--edge) + env(safe-area-inset-right,0px));bottom:calc(var(--edge) + env(safe-area-inset-bottom,0px));flex-direction:column;gap:12px;display:flex;position:fixed}.map-control-button{border:1px solid var(--border);width:52px;height:52px;color:var(--green);box-shadow:var(--shadow);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .16s var(--ease), transform .16s var(--ease);background:#fff;border-radius:12px;place-items:center;padding:0;display:grid}.map-control-button:focus-visible{outline:3px solid var(--green);outline-offset:4px}.map-control-button:active{transform:scale(.98)}.locate-button:disabled{cursor:wait}@media (hover:hover){.map-control-button:hover{background:#f0f6f2}}.locate-icon{stroke:currentColor;stroke-width:1.5px;width:20px;height:20px}.locate-icon-center{fill:currentColor;stroke:none}.spinner,.locate-button[aria-busy=true] .locate-icon{display:none}.locate-button[aria-busy=true] .spinner{border:2px solid #dce8e0;border-top-color:var(--green);border-radius:50%;width:23px;height:23px;animation:.8s linear infinite spin;display:block}@keyframes spin{to{transform:rotate(360deg)}}.status,.noscript-message{z-index:1100;left:50%;bottom:calc(104px + env(safe-area-inset-bottom,0px));color:#fff;width:max-content;max-width:min(440px,100% - 40px);box-shadow:var(--shadow);text-align:center;overflow-wrap:anywhere;pointer-events:none;background:#253d33;border-radius:12px;margin:0;padding:12px 16px;font-size:14px;line-height:1.6;position:fixed;transform:translate(-50%)}.status:empty{display:none}.position-dot{pointer-events:none;background:#3478db;border:3px solid #fff;border-radius:50%;width:16px;height:16px;display:block;box-shadow:0 1px 5px #192d2340}.position-dot-draft{background:#d38829;width:24px;height:24px}.add-place-button[aria-expanded=true]{color:#fff;background:var(--green)}.place-panel{z-index:1001;top:calc(104px + env(safe-area-inset-top,0px));right:calc(var(--edge) + env(safe-area-inset-right,0px));width:360px;max-width:calc(100% - 2 * var(--edge));max-height:calc(100dvh - 220px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overscroll-behavior:contain;border:1px solid var(--border);box-shadow:var(--panel-shadow);background:#fff;border-radius:16px;padding:24px;font-size:14px;position:fixed;overflow-y:auto}.panel-heading{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:24px;display:flex}.eyebrow{color:var(--text-muted);margin:0 0 8px;font-size:12px;font-weight:600}.panel-heading h2{letter-spacing:0;margin:0;font-size:20px;font-weight:600}.icon-button{height:36px;color:var(--text-secondary);background:var(--surface-muted);cursor:pointer;border:0;border-radius:50%;flex:0 0 36px;margin:-4px -4px 0 0;font-size:25px}.location-methods{gap:8px;display:flex}.location-methods button{border:1px solid var(--border);min-height:44px;color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:10px;flex:1;padding:8px 4px;font-size:13px}.location-methods button[aria-pressed=true]{border-color:var(--green);color:var(--green);background:#edf5ef;font-weight:600}.field-help{color:var(--text-secondary);word-break:keep-all;margin:16px 0 12px;line-height:1.7}.coordinates{color:var(--text-muted);overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin:16px 0;font-size:12px;line-height:1.7}.primary-button{background:var(--green);color:#fff;cursor:pointer;border:0;border-radius:8px;width:100%;min-height:48px;padding:12px;font-weight:600}.primary-button,.account-button,.icon-button,.location-methods button{transition:background .16s var(--ease), border-color .16s var(--ease)}@media (hover:hover){.primary-button:hover:not(:disabled){background:#20543f}.account-button:hover:not(:disabled),.icon-button:hover:not(:disabled){background:var(--surface-muted);border-color:var(--text-muted)}.location-methods button:hover:not(:disabled){border-color:var(--green)}}.text-button{min-height:36px;color:var(--green);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:5px 0;font-size:12px;text-decoration:underline}.local-storage-note{color:var(--text-muted);word-break:keep-all;border-top:1px solid #edf0eb;margin:20px 0 0;padding-top:16px;font-size:12px;line-height:1.7}.location-summary{background:var(--surface-muted);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:20px;padding:12px;display:flex}.location-summary .coordinates{margin:0}.location-summary .text-button{flex-shrink:0}#place-form label{margin:20px 0 8px;font-weight:600;display:block}.required-label,.optional-label{margin-left:4px;font-size:11px;font-weight:400}.required-label{color:var(--green)}.optional-label{color:var(--text-muted)}#place-form input,#place-form textarea,#place-form select{border:1px solid var(--border);width:100%;color:var(--text);background:#fff;border-radius:10px;padding:12px;font-size:16px;line-height:1.5;display:block}#place-form select{font-size:14px}.origin-help{margin-top:8px;font-size:12px}#place-form textarea{resize:vertical;min-height:90px;max-height:180px}#place-form input[type=file]{padding:8px;font-size:13px}#place-form input[type=file]::file-selector-button{min-height:36px;color:var(--green);font:inherit;cursor:pointer;background:#edf5ef;border:0;border-radius:6px;margin-right:8px;padding:6px 10px}.photo-help{color:var(--text-muted);margin:8px 0;font-size:12px;line-height:1.7}.photo-help:empty,#place-photo-error:empty{display:none}.photo-preview{margin-top:12px}.photo-preview img{object-fit:contain;background:var(--surface-muted);border-radius:10px;width:100%;max-height:180px;display:block}.photo-preview .text-button{color:#a53a2a}.photo-location-comparison{background:var(--surface-muted);color:#40594a;border:1px solid #d7e3d9;border-radius:10px;margin:16px 0;padding:16px;font-size:13px;line-height:1.7}.photo-location-comparison.is-distant{color:#74501f;background:#fdf8ee;border-color:#dec49d}.photo-location-comparison h3{margin:0 0 8px;font-size:14px}.photo-location-comparison p{margin:8px 0}#place-form .photo-location-confirmation{cursor:pointer;align-items:flex-start;gap:8px;margin:12px 0 0;display:flex}#place-form .photo-location-confirmation input{width:18px;height:18px;min-height:18px;accent-color:var(--green);flex:none;margin:3px 0 0}.form-error{color:#a53a2a;margin:12px 0;font-size:13px;line-height:1.6}.form-error:empty{margin:16px 0 0}.place-marker{cursor:pointer;background:var(--green);border:3px solid #fff;border-radius:50%;place-items:center;width:30px;height:30px;padding:0;display:grid;box-shadow:0 2px 9px #192d2359}.place-marker>span{background:#fff;border-radius:50%;width:8px;height:8px}.place-popup{width:280px;max-width:calc(100vw - 40px);max-height:320px;box-shadow:var(--panel-shadow);white-space:normal;background:#fff;border-radius:12px;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans KR,sans-serif;font-size:13px;position:relative;overflow-y:auto;transform:translateY(-24px)}.popup-close{width:32px;height:32px;color:var(--text-secondary);background:var(--surface-muted);cursor:pointer;border:0;border-radius:50%;font-size:22px;position:absolute;top:4px;right:4px}.place-popup h3{color:var(--text);overflow-wrap:anywhere;margin:4px 0 12px;padding-right:20px;font-size:18px;font-weight:600}.place-origin-tag{overflow-wrap:anywhere;border:1px solid;border-radius:4px;max-width:100%;margin-bottom:12px;padding:4px 8px;font-size:12px;font-weight:600;line-height:1.5;display:inline-block}.place-origin-public{color:#245da0;background:#edf4ff;border-color:#cadcf5}.place-origin-admin{color:#72459b;background:#f6effc;border-color:#e3d3f1}.place-origin-user{color:#27654c;background:#edf5ef;border-color:#ccdfd2}.place-popup-photo{object-fit:contain;background:var(--surface-muted);border-radius:8px;width:100%;height:auto;max-height:200px;margin-bottom:12px;display:block}.place-popup .place-description{color:var(--text-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 12px;line-height:1.7}.place-popup .popup-meta{color:var(--text-muted);font-variant-numeric:tabular-nums;margin:0 0 8px;font-size:11px}.delete-place-button{color:#a53a2a;cursor:pointer;background:0 0;border:0;min-height:36px;margin-right:12px;padding:5px 0;font-size:12px}@media (max-width:600px){:root{--edge:16px}.page-title{border-radius:12px;gap:12px;padding:12px 16px}.page-title h1{font-size:20px}.map-control-button{width:52px;height:52px}.place-panel{top:auto;bottom:calc(90px + env(safe-area-inset-bottom,0px));left:calc(var(--edge) + env(safe-area-inset-left,0px));right:calc(var(--edge) + env(safe-area-inset-right,0px));width:auto;max-width:none;max-height:calc(100dvh - 216px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));padding:20px}.panel-heading{margin-bottom:20px}.panel-heading h2{font-size:20px}.place-panel.is-selecting-location{max-height:min(52dvh, calc(100dvh - 340px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)))}}@media (prefers-reduced-motion:reduce){.map-control-button,.primary-button,.account-button,.icon-button,.location-methods button{transition:none}.spinner{animation-duration:1.8s!important}}.account-controls{z-index:1000;top:calc(var(--edge) + 12px + env(safe-area-inset-top,0px));right:calc(var(--edge) + env(safe-area-inset-right,0px));max-width:min(220px,100% - 240px);position:fixed}.account-button{border:1px solid var(--border);max-width:100%;min-height:44px;color:var(--green);box-shadow:var(--shadow);cursor:pointer;background:#fff;border-radius:12px;align-items:center;gap:8px;padding:12px 16px;font-size:14px;font-weight:600;display:flex}.account-button span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.account-button svg{stroke:currentColor;stroke-width:1.5px;flex:0 0 20px;width:20px;height:20px}.account-dialog{overscroll-behavior:contain;border:1px solid var(--border);width:400px;max-width:calc(100% - 36px);max-height:calc(100dvh - 48px);color:var(--text);box-shadow:var(--panel-shadow);background:#fff;border-radius:16px;padding:28px;font-size:14px;overflow-y:auto}.account-dialog::backdrop{background:#192d2373}.account-form fieldset{border:0;min-width:0;margin:0;padding:0}.account-form label{margin:20px 0 8px;font-weight:600;display:block}.account-form input{border:1px solid var(--border);width:100%;color:var(--text);background:#fff;border-radius:10px;padding:12px;font-size:16px;display:block}.account-switch{text-align:center;color:var(--text-muted);margin:20px 0 0;font-size:13px}.account-switch button{font-size:inherit;margin-left:4px}.account-details{background:var(--surface-muted);border-radius:10px;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:20px;display:grid}.account-details dt{color:var(--text-muted)}.account-details dd{overflow-wrap:anywhere;margin:0}.admin-link{color:var(--green);text-underline-offset:4px;margin:8px 0;font-weight:600;display:inline-block}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (max-width:380px){.title-copy p{font-size:11px}.account-controls{max-width:calc(100% - 212px)}.account-button{gap:4px;padding-inline:12px}}.admin-page{height:100%;padding:max(24px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));background:#f7f9f5;overflow:auto}.admin-shell{max-width:1000px;margin:0 auto}.admin-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.admin-heading h1{margin:8px 0}.admin-heading p{line-height:1.6}.admin-card{border:1px solid var(--border);box-shadow:var(--shadow);background:#fff;border-radius:18px;padding:24px}.admin-card h2{margin:0 0 12px;font-size:18px}.admin-table-scroll{overflow-x:auto}.admin-table{border-collapse:collapse;text-align:left;width:100%;font-size:14px}.admin-table th,.admin-table td{overflow-wrap:anywhere;border-bottom:1px solid #e5ece6;padding:16px 12px}.admin-table thead{color:var(--text-muted);background:var(--surface-muted);white-space:nowrap}.account-role{white-space:nowrap;color:var(--text-muted);background:var(--surface-muted);border-radius:6px;padding:5px 9px;display:inline-block}.account-role-admin{color:var(--green);background:#e8f3e7}.admin-role-button{border:1px solid var(--border);min-height:40px;color:var(--green);white-space:nowrap;cursor:pointer;background:#fff;border-radius:8px;padding:8px 12px}.admin-places{margin-bottom:24px}.admin-place-list{margin:0;padding:0;list-style:none}.admin-place-item{border-top:1px solid #e5ece6;flex-wrap:wrap;gap:20px;padding:24px 0;display:flex}.admin-place-item>a{max-width:100%}.admin-place-photo{border-radius:10px;max-width:100%;height:auto;display:block}.admin-place-details{overflow-wrap:anywhere;flex:240px;min-width:0}.admin-place-details h3{margin:0 0 12px}.admin-place-details p{font-size:14px;line-height:1.6}.admin-place-description{white-space:pre-wrap}.admin-review-actions{align-items:center;gap:12px;margin-top:12px;display:flex}.admin-approve-button{color:#fff;background:var(--green);border-color:var(--green)}
