:root{font-family:Arial,Noto Sans KR,Apple SD Gothic Neo,Malgun Gothic,sans-serif;color:#172033;background:#f5f7fb;font-synthesis:none;text-rendering:optimizeLegibility;--surface: #ffffff;--surface-soft: #f8faff;--ink: #172033;--muted: #68738a;--line: #dfe4ed;--line-strong: #cbd3df;--navy: #14213d;--blue: #3267e3;--blue-deep: #2454c2;--cyan: #50c7d9;--green: #238b66;--amber: #d98a16;--red: #c94b5f;--shadow: 0 18px 50px rgba(38, 54, 86, .09)}*{box-sizing:border-box}html{min-width:320px;background:#f5f7fb}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 88% 6%,rgba(80,199,217,.12),transparent 28rem),#f5f7fb}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100vh}.topbar{width:min(1440px,calc(100% - 48px));height:82px;margin:0 auto;display:flex;align-items:center;gap:13px;border-bottom:1px solid rgba(203,211,223,.75)}.brand-mark{width:36px;height:36px;display:grid;place-items:center;color:#fff;font-size:17px;font-weight:800;border-radius:11px;background:linear-gradient(145deg,var(--navy),var(--blue));box-shadow:0 8px 20px #3267e33d}.topbar h1,.topbar p{margin:0}.topbar h1{margin-top:2px;font-size:17px;letter-spacing:-.02em}.eyebrow{color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.16em}.privacy-chip{margin-left:auto;display:flex;align-items:center;gap:7px;padding:8px 12px;color:#4a566e;font-size:12px;font-weight:700;border:1px solid var(--line);border-radius:999px;background:#ffffffb3}.privacy-chip span{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #238b661a}main{width:min(1440px,calc(100% - 48px));margin:0 auto}.hero{max-width:1250px;padding:68px 0 36px}.section-kicker{margin:0 0 14px;color:var(--blue);font-size:11px;font-weight:800;letter-spacing:.15em}.hero h2{margin:0;color:var(--navy);font-size:clamp(36px,4.25vw,60px);line-height:1.08;letter-spacing:-.055em}.hero>p:last-child{max-width:670px;margin:24px 0 0;color:var(--muted);font-size:16px;line-height:1.75}.upload-section{padding-bottom:58px}.dropzone{position:relative;min-height:190px;padding:36px 40px;display:flex;align-items:center;gap:24px;overflow:hidden;border:1.5px dashed #aeb9cb;border-radius:22px;background:#ffffffd1;box-shadow:0 12px 40px #2636560e;outline:none;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease,background .18s ease}.dropzone:hover,.dropzone:focus-visible,.dropzone.is-dragging{border-color:var(--blue);background:#fbfdff;box-shadow:0 18px 54px #3267e321;transform:translateY(-2px)}.dropzone.is-dragging{border-style:solid}.dropzone.is-busy{cursor:progress}.dropzone-glow{position:absolute;width:250px;height:250px;right:-80px;top:-100px;border-radius:50%;background:radial-gradient(circle,rgba(80,199,217,.17),transparent 68%);pointer-events:none;transition:transform .26s ease}.dropzone.is-dragging .dropzone-glow{transform:scale(1.5)}.upload-icon{position:relative;flex:0 0 auto;width:68px;height:68px;display:grid;place-items:center;color:var(--blue);border:1px solid #d8e4ff;border-radius:20px;background:#edf3ff}.upload-icon svg,.primary-button svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.dropzone.is-busy .upload-icon{animation:float 1.5s ease-in-out infinite}.dropzone.is-ready .upload-icon{color:var(--green);border-color:#cfe9df;background:#edf9f4}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.dropzone-copy{position:relative;min-width:0;display:flex;flex:1 1 auto;flex-direction:column;gap:8px}.dropzone-copy strong{overflow:hidden;color:var(--ink);font-size:19px;text-overflow:ellipsis;white-space:nowrap}.dropzone-copy span{color:var(--muted);font-size:14px}.dropzone>button{position:relative;padding:11px 17px;color:var(--blue);font-weight:800;border:1px solid #cbd9fb;border-radius:11px;background:#fff}.progress-panel{margin-top:15px;padding:20px 22px 18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 10px 30px #2636560d}.progress-panel>div:first-child{display:flex;justify-content:space-between;gap:20px;color:var(--ink);font-size:13px}.progress-panel>div:first-child span{color:var(--blue);font-weight:800}.progress-track{height:7px;margin-top:13px;overflow:hidden;border-radius:999px;background:#edf0f5}.progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--cyan));transition:width .4s ease}.progress-track.is-indeterminate span{width:34%;animation:progress-scan 1.4s ease-in-out infinite}@keyframes progress-scan{0%{transform:translate(-105%)}to{transform:translate(295%)}}@media(prefers-reduced-motion:reduce){.progress-track.is-indeterminate span{width:100%;animation:none}}.progress-panel p{margin:10px 0 0;color:var(--muted);font-size:11px}.error-banner{margin-top:14px;padding:15px 18px;display:flex;gap:12px;color:#8f2639;font-size:13px;border:1px solid #f0c5cc;border-radius:13px;background:#fff5f6}.results{margin-bottom:60px;animation:reveal .42s ease both}@keyframes reveal{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.results-heading{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:30px;padding-top:36px;border-top:1px solid var(--line)}.results-heading h2{margin:0;color:var(--navy);font-size:30px;letter-spacing:-.04em}.results-heading p:last-child{margin:10px 0 0;color:var(--muted);font-size:13px}.result-actions{display:flex;flex-wrap:wrap;gap:10px}.tasks-export-panel{margin:20px 0;padding:24px;border:1px solid var(--line-strong);border-radius:16px;background:var(--surface);scroll-margin-top:24px}.tasks-export-panel h3,.tasks-unreviewed h4,.tasks-validation h4{margin:0 0 10px;color:var(--ink)}.tasks-export-help,.tasks-unreviewed p,.tasks-download-status,.tasks-validation p{color:var(--muted);font-size:13px;line-height:1.7}.tasks-export-panel fieldset{min-width:0;padding:0;margin:18px 0 0;border:0}.tasks-profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:18px}.tasks-profile-grid label,.tasks-city-override{display:flex;flex-direction:column;gap:7px;min-width:0;color:var(--ink);font-size:13px}.tasks-profile-grid input,.tasks-profile-grid select,.tasks-city-override input{width:100%;padding:10px 12px;color:var(--ink);border:1px solid var(--line-strong);border-radius:8px;background:var(--surface)}.tasks-export-panel small{color:var(--muted);font-size:11px;line-height:1.6}.tasks-export-panel :focus-visible,.row-address-approval input:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.tasks-confirmation,.row-address-approval{display:flex;align-items:flex-start;gap:8px;margin:20px 0 12px;color:var(--ink);font-size:13px;line-height:1.6}.tasks-confirmation input,.row-address-approval input{flex-shrink:0;margin-top:4px;accent-color:var(--blue)}.row-address-approval{margin:8px 0 0;font-size:11px}.tasks-validation{margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}.tasks-unreviewed{margin-top:24px;padding:18px;border:1px solid var(--amber);border-radius:10px;background:var(--surface-soft)}.tasks-download-status{padding:12px 16px;border-left:3px solid var(--blue);background:var(--surface-soft)}.tasks-validation-errors li{border-left-color:var(--red)}.tasks-validation ul{max-height:460px;overflow:auto;padding:0;list-style:none}.tasks-validation li{margin-bottom:12px;padding:14px;border:1px solid var(--line);border-left:3px solid var(--amber);border-radius:8px;background:var(--surface-soft)}.tasks-issue-heading{display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-size:13px}.focused-address-row>td{border-top:2px solid var(--blue);border-bottom:2px solid var(--blue)}.primary-button,.secondary-button{min-height:44px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:13px;font-weight:800;border-radius:11px}.primary-button{color:#fff;border:1px solid var(--blue);background:var(--blue);box-shadow:0 10px 22px #3267e338}.primary-button:hover{border-color:var(--blue-deep);background:var(--blue-deep)}.primary-button svg{width:18px;height:18px}.secondary-button{color:#48546b;border:1px solid var(--line-strong);background:var(--surface)}.summary-grid{margin:26px 0 18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.summary-grid article{padding:18px 20px;display:flex;align-items:baseline;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.summary-grid span{color:var(--muted);font-size:12px;font-weight:700}.summary-grid strong{color:var(--navy);font-size:24px}.summary-grid .success strong{color:var(--green)}.summary-grid .warning strong{color:var(--amber)}.table-toolbar{min-height:54px;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid var(--line);border-bottom:0;border-radius:14px 14px 0 0;background:var(--surface)}.table-tools{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.bulk-edit-toggle{display:inline-flex;align-items:center;gap:6px;color:var(--navy);font-size:12px;font-weight:700;cursor:pointer}.bulk-edit-toggle input{accent-color:var(--blue-deep)}.bulk-edit-help{padding:9px 12px;color:var(--muted);background:var(--surface);border:1px solid var(--line);font-size:12px;line-height:1.6}.bulk-edit-notice{color:var(--blue-deep);font-size:12px}.bulk-edit-notice:not(:empty){padding:9px 12px}.bulk-edit-count{margin-bottom:5px;color:var(--blue-deep);font-size:11px;font-weight:700}.address-conversion-badge{display:inline-flex;max-width:100%;margin-bottom:6px;padding:3px 7px;border:1px solid var(--line);border-radius:999px;color:var(--blue-deep);background:var(--surface-soft);font-size:11px;font-weight:700;line-height:1.4}.segmented-control{display:flex;padding:3px;border-radius:9px;background:#eef1f6}.segmented-control button{padding:7px 12px;color:#69748a;font-size:12px;font-weight:700;border:0;border-radius:7px;background:transparent}.segmented-control button.active{color:var(--navy);background:#fff;box-shadow:0 2px 8px #2636561a}.column-view-button{padding:8px 12px;color:#4f5d76;font-size:12px;font-weight:700;border:1px solid var(--line-strong);border-radius:9px;background:#fff}.column-view-button:hover,.column-view-button.active{color:var(--blue-deep);border-color:#adc1f5;background:#f3f7ff}.legend{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}.legend span{width:10px;height:10px;margin-left:9px;border-radius:3px}.legend-candidate{background:#fff0c8}.legend-none{background:#ffdfe4}.table-frame{overflow:hidden;border:1px solid var(--line);border-radius:0 0 15px 15px;background:var(--surface);box-shadow:var(--shadow)}.table-scroll{overflow:auto;max-height:660px}table{width:100%;min-width:1320px;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:12px}thead{position:sticky;z-index:4;top:0}th{height:44px;padding:0 12px;color:#4f5c74;font-size:11px;font-weight:800;text-align:left;letter-spacing:-.01em;border-right:1px solid #e4e8ef;border-bottom:1px solid var(--line-strong);background:#f5f7fb}td{height:62px;padding:9px 12px;vertical-align:top;border-right:1px solid #edf0f4;border-bottom:1px solid #edf0f4;background:#fff}tbody tr:hover td{background-color:#f9fbff}tbody tr[data-resolution=candidate] td:not(.editable-cell),tbody tr[data-resolution=review] td:not(.editable-cell){background:#fffaf0}tbody tr[data-resolution=unresolved] td:not(.editable-cell){background:#fff5f6}.cell-text{display:-webkit-box;overflow:hidden;color:#4b566b;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:3}.editable-cell{padding:6px;background:#fbfdff}.reference-name{display:block;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5;user-select:text}.reference-copy{margin-top:8px;display:grid;gap:5px}.reference-copy button{padding:5px 8px;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface);color:inherit;text-align:left;cursor:pointer}.reference-copy button:focus-visible{outline:2px solid var(--accent, #3267e3);outline-offset:2px}.reference-copy button:disabled{opacity:.5;cursor:default}.reference-copy [role=status]{font-size:11px}.reference-copy textarea{width:100%;min-height:90px;resize:vertical}.editable-cell input,.editable-cell textarea{width:100%;height:49px;padding:7px 8px;resize:none;color:#25304a;line-height:1.4;border:1px solid transparent;border-radius:7px;background:#fff;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.editable-cell input:focus,.editable-cell textarea:focus{border-color:#98b5f7;box-shadow:0 0 0 3px #3267e31a}.editable-cell.candidate-cell{min-width:210px;background:#fffaf0}.candidate-cell input,.candidate-cell textarea{color:#6e4a12;border-color:#e7c66e;border-style:dashed;background:#fffdf7}.candidate-meta{min-height:20px;margin:0 2px 4px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#8a5a0a;font-size:9px;font-weight:800}.candidate-meta button{padding:2px 7px;color:#7a4d00;font-size:9px;font-weight:800;border:1px solid #dfb957;border-radius:999px;background:#fff3cb;cursor:pointer}.candidate-meta button:hover,.candidate-meta button:focus-visible{border-color:#b77a08;background:#ffe9a0;outline:none}.candidate-detail-suggestion{margin-top:6px;padding:6px;border:1px dashed #e7c66e;border-radius:6px;background:#fffaf0}.edit-dot{display:inline-block;width:5px;height:5px;margin-left:6px;vertical-align:2px;border-radius:50%;background:var(--blue)}.confidence{display:inline-flex;padding:5px 8px;align-items:center;justify-content:center;font-size:10px;font-weight:800;border-radius:999px}.confidence.high{color:#176a4d;background:#e8f7f1}.confidence.medium{color:#2e5ebd;background:#eaf1ff}.confidence.low{color:#9a6111;background:#fff0c8}.confidence.none{color:#a43749;background:#ffdfe4}.resolution-status{display:inline-flex;padding:5px 8px;align-items:center;justify-content:center;white-space:nowrap;font-size:10px;font-weight:800;border-radius:999px}.resolution-status.confirmed{color:#176a4d;background:#e8f7f1}.resolution-status.candidate,.resolution-status.review{color:#8a5a0a;background:#fff0c8}.resolution-status.unresolved{color:#a43749;background:#ffdfe4}.pagination{min-height:54px;padding:9px 14px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--muted);font-size:12px;border-top:1px solid var(--line)}.pagination>div{display:flex;align-items:center;gap:11px}.pagination button{padding:7px 11px;color:#4a566e;font-size:11px;font-weight:700;border:1px solid var(--line);border-radius:8px;background:#fff}.pagination strong{min-width:55px;color:var(--ink);text-align:center}footer{width:min(1440px,calc(100% - 48px));min-height:70px;margin:0 auto;padding:20px 0;display:flex;justify-content:space-between;gap:20px;color:#8791a4;font-size:11px;border-top:1px solid var(--line)}@media(max-width:800px){.topbar,main,footer{width:min(100% - 28px,1440px)}.privacy-chip{display:none}.hero{padding-top:44px}.hero h2{font-size:39px}.dropzone{min-height:240px;padding:28px 22px;flex-direction:column;align-items:flex-start}.dropzone>button{width:100%}.results-heading{align-items:flex-start;flex-direction:column}.result-actions{width:100%}.result-actions button{flex:1 1 140px}.summary-grid{grid-template-columns:repeat(2,1fr)}.table-toolbar{align-items:flex-start;flex-direction:column}footer{flex-direction:column}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
