:root{--color-primary: #2563eb;--color-bg: #f8fafc;--color-surface: #ffffff;--color-border: #e2e8f0;--color-text: #0f172a;--color-muted: #64748b;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;color:var(--color-text);background:var(--color-bg)}*{box-sizing:border-box}body{margin:0;min-height:100dvh}#root{min-height:100dvh}button,input,select,textarea{font:inherit}.app-shell{display:flex;flex-direction:column;height:100dvh}.app-loading{align-items:center;justify-content:center;color:var(--color-muted)}.sync-local-banner{background:#fef3c7;color:#92400e}.top-bar{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:1000}.top-bar h1{font-size:1.125rem;margin:0;color:var(--color-primary)}.top-bar input[type=search]{flex:1;max-width:320px;padding:.4rem .75rem;border:1px solid var(--color-border);border-radius:8px}.main-layout{flex:1;display:flex;min-height:0}.map-wrap{flex:1;min-width:0;position:relative}.side-panel{width:min(420px,100%);background:var(--color-surface);border-left:1px solid var(--color-border);overflow:auto;padding:1rem}.view-switch{display:inline-flex;border:1px solid var(--color-border);border-radius:999px;padding:.15rem;background:var(--color-bg);gap:.15rem}.view-switch button{border:none;background:transparent;color:var(--color-muted);padding:.3rem .85rem;border-radius:999px;cursor:pointer;font-size:.875rem}.view-switch button.active{background:var(--color-surface);color:var(--color-primary);font-weight:600;box-shadow:0 1px 2px #0f172a14}.btn{border:none;border-radius:8px;padding:.45rem .85rem;cursor:pointer;background:var(--color-primary);color:#fff}.btn.secondary{background:#e2e8f0;color:var(--color-text)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.danger{background:#dc2626;color:#fff}.btn.danger:disabled{background:#fca5a5;color:#fff}.btn.danger-outline{background:#fff;color:#dc2626;border:1px solid #dc2626}.field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.75rem}.field label{font-size:.8rem;color:var(--color-muted)}.required-mark{color:#dc2626;font-weight:700}.field input,.field select,.field textarea{padding:.45rem .6rem;border:1px solid var(--color-border);border-radius:8px}.tabs{display:flex;gap:.25rem;margin-bottom:1rem;flex-wrap:wrap}.tabs button{border:1px solid var(--color-border);background:var(--color-bg);border-radius:999px;padding:.35rem .75rem;cursor:pointer}.tabs button.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.list-wrap{flex:1;min-width:0;overflow:auto;padding:1rem;background:var(--color-bg)}.list-toolbar{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.5rem}.list-summary{font-size:.875rem;color:var(--color-muted)}.list-summary strong{color:var(--color-text)}.column-filter-box{width:min(360px,100%)}.column-filter-title{margin:0 0 .25rem;font-size:1.05rem}.column-filter-subtitle{margin:0 0 .75rem;font-size:.85rem;color:var(--color-muted)}.column-filter-quick{display:flex;gap:.5rem;margin-bottom:.75rem}.column-filter-quick .btn{padding:.3rem .65rem;font-size:.8rem}.column-filter-list{list-style:none;margin:0 0 .5rem;padding:0;display:flex;flex-direction:column;gap:.4rem}.column-filter-option{display:flex;align-items:center;gap:.5rem;font-size:.9rem;cursor:pointer}.column-filter-actions{margin-top:.75rem}.link-btn{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:.8rem;padding:0;margin-left:.5rem}.link-btn:hover{text-decoration:underline}.th-inner{display:inline-flex;align-items:center;gap:.25rem}.th-inner.num{justify-content:flex-end;width:100%}.th-label{font-weight:600}.th-filter-btn{border:none;background:transparent;color:var(--color-muted);padding:0 .25rem;border-radius:4px;cursor:pointer;font-size:.7rem;line-height:1}.th-filter-btn:hover{background:#0f172a0f;color:var(--color-text)}.th-filter-btn.active{color:var(--color-primary);font-size:.55rem}.column-filter-popover{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 12px 40px #0000002e;padding:.75rem;font-size:.875rem;max-height:70vh;overflow:auto}.filter-shell{display:flex;flex-direction:column;gap:.5rem}.filter-shell-header{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.filter-shell-title{font-weight:600;font-size:.85rem;color:var(--color-text)}.filter-check-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem;max-height:240px;overflow:auto}.filter-check-option{display:flex;align-items:center;gap:.5rem;cursor:pointer}.filter-range{display:flex;align-items:center;gap:.35rem}.filter-range input{flex:1;min-width:0;padding:.35rem .5rem;border:1px solid var(--color-border);border-radius:6px;font-size:.875rem}.filter-range-sep{color:var(--color-muted)}.filter-text-input{width:100%;padding:.35rem .5rem;border:1px solid var(--color-border);border-radius:6px;font-size:.875rem}.filter-hint{margin:0;font-size:.75rem;color:var(--color-muted)}.filter-empty-hint{margin:0;font-size:.85rem;color:var(--color-muted)}.list-empty-cell{text-align:center;color:var(--color-muted);padding:1.5rem .5rem}.list-empty{background:var(--color-surface);border:1px dashed var(--color-border);border-radius:10px;padding:2rem 1rem;text-align:center;color:var(--color-muted)}.list-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.875rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;overflow:hidden}.list-table thead{background:var(--color-bg);position:sticky;top:0;z-index:1}.list-table th,.list-table td{padding:.55rem .75rem;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle;white-space:nowrap}.list-table th{font-size:.78rem;color:var(--color-muted);font-weight:600;text-transform:none}.list-table tbody tr{cursor:pointer}.list-table tbody tr:nth-child(2n){background:#0f172a04}.list-table tbody tr:hover{background:#eff6ff}.list-table tbody tr.selected{background:#dbeafe}.list-table tbody tr:last-child td{border-bottom:none}.list-table .num{text-align:right;font-variant-numeric:tabular-nums}.list-table .addr{max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-pill{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600;background:#e2e8f0;color:#334155;white-space:nowrap}.status-pill.status-sourcing{background:#e0f2fe;color:#075985}.status-pill.status-reviewing{background:#fef3c7;color:#92400e}.status-pill.status-ic_passed{background:#ddd6fe;color:#5b21b6}.status-pill.status-invested{background:#dcfce7;color:#166534}.status-pill.status-dropped{background:#fee2e2;color:#991b1b}.offline-banner{background:#fef3c7;color:#92400e;text-align:center;padding:.35rem;font-size:.85rem}.empty-hint{color:var(--color-muted);font-size:.9rem}.address-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.35rem}.geocode-hint{margin:.35rem 0 0;font-size:.8rem}.geocode-hint--ok{color:#059669}.geocode-hint--error{color:#b45309}.geocode-hint--loading{color:var(--color-muted)}.geocode-coords{margin:.25rem 0 0;font-size:.75rem;color:var(--color-muted)}.review-prompt-banner{margin-bottom:.75rem;padding:.75rem 1rem;border-radius:10px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a5f}.review-prompt-banner p{margin:.35rem 0 0;font-size:.875rem}.review-form-section{margin-top:.5rem;padding-top:.75rem;border-top:2px solid var(--color-primary)}.review-form-heading{margin:0 0 .75rem;font-size:1rem;color:var(--color-primary)}.review-period-label{font-size:.9rem;font-weight:600;color:var(--color-muted)}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.panel-header-title{margin:0;min-width:0;flex:1}.panel-header-actions{display:flex;flex-wrap:wrap;gap:.5rem;flex-shrink:0;justify-content:flex-end;max-width:100%}.delete-picker-box{width:min(440px,100%)}.delete-picker-title{margin:0 0 .25rem;font-size:1.05rem;color:#991b1b}.delete-picker-subtitle{margin:0 0 .75rem;font-size:.9rem;font-weight:600}.delete-picker-actions{margin-top:1rem}.delete-section-hint{margin:0 0 .5rem;font-size:.8rem;color:var(--color-muted)}.delete-review-list{list-style:none;margin:0 0 .75rem;padding:0;display:flex;flex-direction:column;gap:.35rem}.delete-review-option,.delete-place-option{display:flex;align-items:center;gap:.5rem;font-size:.875rem;cursor:pointer}.delete-review-option input:disabled+.delete-review-label{opacity:.5}.delete-review-label{flex:1}.delete-review-status{font-size:.75rem;color:var(--color-muted)}.delete-place-option{margin-top:.5rem;padding:.5rem 0 0;border-top:1px dashed var(--color-border)}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0f172a73}.confirm-box{width:min(400px,100%);padding:1.25rem;border-radius:12px;background:var(--color-surface);box-shadow:0 12px 40px #0000002e}.confirm-message{margin:0 0 1.25rem;font-size:.95rem;line-height:1.55;white-space:pre-line}.confirm-actions{display:flex;justify-content:flex-end;gap:.5rem}@media(max-width:768px){.main-layout.panel-open .map-wrap,.main-layout.panel-open .list-wrap{display:none}.side-panel{width:100%;border-left:none}.top-bar input[type=search]{max-width:none}.top-bar{flex-wrap:wrap}.list-table .addr{max-width:160px}}.kakao-map-container{height:100%;width:100%}.map-error{display:flex;flex-direction:column;gap:.5rem;height:100%;align-items:center;justify-content:center;padding:2rem;text-align:center;background:var(--color-bg);color:var(--color-text)}.map-error-hint{color:var(--color-muted);font-size:.85rem;max-width:32rem}.map-error code{background:#0f172a14;padding:0 .25rem;border-radius:4px}.roadview-section{margin-top:.75rem;border:1px solid var(--color-border);border-radius:10px;overflow:hidden;background:var(--color-surface)}.roadview-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.55rem .85rem;border:none;background:var(--color-bg);color:var(--color-text);cursor:pointer;font-weight:600;font-size:.9rem}.roadview-toggle:hover{background:#e2e8f0}.roadview-toggle-chevron{color:var(--color-muted);font-size:.85rem}.roadview-wrap{position:relative}.roadview-canvas{width:100%;height:240px;background:#0f172a}.roadview-hint{margin:0;padding:.5rem .85rem;font-size:.85rem;background:var(--color-surface);color:var(--color-muted)}.roadview-hint--warn{background:#fef3c7;color:#92400e}.roadview-hint--error{background:#fee2e2;color:#991b1b}
