:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;padding:0;width:100vw;height:100vh;overflow:hidden}#root{width:100%;height:100%}#root{margin:0;padding:0;width:100vw;height:100vh}.app-container{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden}.main-content{display:flex;flex:1;min-height:0;overflow:hidden}.sidebar{width:450px;box-sizing:border-box;background:#f5f5f5;padding:20px;overflow-y:auto;border-right:1px solid #ddd}.comp-analysis-section{margin-top:20px;margin-bottom:20px}.sidebar h1{margin-top:0;font-size:1.5rem;color:#333}.property-search{margin-bottom:20px;padding:15px;background:#fff;border-radius:8px;border:1px solid #ddd}.property-search label{display:block;margin-bottom:8px;font-weight:600;color:#333;font-size:14px}.search-input-wrapper{display:flex;gap:8px}.search-input-wrapper input{flex:1;padding:8px 12px;border:1px solid #ccc;border-radius:4px;font-size:13px;font-family:monospace}.search-input-wrapper input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.search-input-wrapper button{padding:8px 16px;background:#667eea;color:#fff;border:none;border-radius:4px;font-weight:600;cursor:pointer;transition:background .2s}.search-input-wrapper button:hover:not(:disabled){background:#5568d3}.search-input-wrapper button:disabled{background:#ccc;cursor:not-allowed}.search-error{margin-top:8px;padding:8px;background:#ffebee;color:#c62828;border-radius:4px;font-size:13px}.file-selector{margin-bottom:20px}.file-selector label{display:block;margin-bottom:8px;font-weight:600;color:#555}.file-selector select{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px;background:#fff;font-size:14px}.status{padding:10px;background:#e3f2fd;border-radius:4px;color:#1976d2;margin-bottom:10px}.error{padding:10px;background:#ffebee;border-radius:4px;color:#c62828;margin-bottom:10px}.file-info{background:#fff;padding:15px;border-radius:4px;border:1px solid #ddd}.file-info h2{margin-top:0;font-size:1.2rem;color:#333}.file-info h3{margin-top:15px;font-size:1rem;color:#555}.file-info p{margin:8px 0;font-size:14px;color:#666}.file-info strong{color:#333}.properties{background:#f8f8f8;padding:10px;border-radius:4px;border:1px solid #e0e0e0;font-size:12px;max-height:300px;overflow-y:auto;text-align:left;white-space:pre-wrap;word-break:break-word}.map-container{flex:1;position:relative;background:#e0e0e0;min-height:0}.map-container canvas{width:100%!important;height:100%!important}.map-placeholder{display:flex;align-items:center;justify-content:center;height:100%;background:#f0f0f0}.map-placeholder p{color:#666;font-size:1.1rem}.attribution{position:absolute;bottom:10px;right:10px;background:#fffc;padding:4px 8px;font-size:12px;border-radius:4px}.attribution a{color:#06c;text-decoration:none}.attribution a:hover{text-decoration:underline}.validation-status{margin-top:15px;padding:10px;background:#f0f8ff;border-radius:4px;border:1px solid #d0e0f0}.validation-status h3{margin-top:0;margin-bottom:10px;color:#2c5282}.validation-status p{margin:5px 0;font-size:13px}.validation-status .valid{color:#22543d}.validation-status .invalid{color:#742a2a}.hovered-property-info{margin-top:20px;background:#fff;padding:15px;border-radius:4px;border:2px solid #4caf50;box-shadow:0 2px 4px #0000001a}.hovered-property-info h2{margin-top:0;font-size:1.1rem;color:#2e7d32;border-bottom:1px solid #e0e0e0;padding-bottom:8px;margin-bottom:12px}.property-details{font-size:14px}.geometry-info{margin-top:10px;padding-top:10px;border-top:1px solid #e0e0e0}.geometry-info p{margin:5px 0;font-size:13px;color:#555}.geometry-info strong{color:#333}.distance-control{margin:20px 0;padding:15px;background:#fff;border-radius:4px;border:1px solid #ddd}.distance-control label{display:flex;align-items:center;margin-bottom:10px;font-weight:600;color:#333;font-size:14px;cursor:pointer}.distance-control input[type=checkbox]{margin-right:8px;cursor:pointer;width:16px;height:16px}.distance-control input[type=range]{width:100%;height:6px;border-radius:3px;background:#ddd;outline:none;-webkit-appearance:none;appearance:none}.distance-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#4caf50;cursor:pointer;box-shadow:0 2px 4px #0003}.distance-control input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#4caf50;cursor:pointer;box-shadow:0 2px 4px #0003}.distance-control input[type=range]:hover::-webkit-slider-thumb{background:#45a049}.distance-control input[type=range]:hover::-moz-range-thumb{background:#45a049}.distance-info{margin-top:8px}.distance-info small{color:#666;font-size:12px}.nearby-count{margin:10px 0;padding:8px;background:#e3f2fd;border-radius:4px;color:#1565c0;font-size:14px;border:1px solid #90caf9}.nearby-count strong{color:#0d47a1;font-weight:700}.street-control{margin:20px 0;padding:15px;background:#fff;border-radius:4px;border:1px solid #ddd}.street-control label{display:flex;align-items:center;font-weight:600;color:#333;font-size:14px;cursor:pointer}.street-control input[type=checkbox]{margin-right:8px;cursor:pointer;width:16px;height:16px}.street-info{margin-top:8px;padding-left:24px}.street-info small{color:#666;font-size:12px}.hovered-street-info{margin-top:20px;background:#fff;padding:15px;border-radius:4px;border:2px solid #ffc107;box-shadow:0 2px 4px #0000001a}.hovered-street-info h2{margin-top:0;font-size:1.1rem;color:#f57c00;border-bottom:1px solid #e0e0e0;padding-bottom:8px;margin-bottom:12px}.street-details{font-size:14px}.street-details p{margin:5px 0;color:#555}.street-details strong{color:#333}.comps-control{margin:20px 0;padding:15px;background:#fff;border-radius:4px;border:1px solid #ddd}.comps-control label{display:flex;align-items:center;font-weight:600;color:#333;font-size:14px;cursor:pointer}.comps-control input[type=checkbox]{margin-right:8px;cursor:pointer;width:16px;height:16px}.comps-control input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.comps-info{margin-top:8px;padding-left:24px}.comps-info small{color:#666;font-size:12px}.comps-list{margin-top:20px;background:#fff;padding:15px;border-radius:4px;border:2px solid #2196f3;box-shadow:0 2px 4px #0000001a;max-height:600px;overflow-y:auto}.comps-list h2{margin-top:0;font-size:1.1rem;color:#1976d2;border-bottom:2px solid #e3f2fd;padding-bottom:8px;margin-bottom:12px}.comps-list h3{font-size:.95rem;color:#555;margin-top:15px;margin-bottom:8px}.selected-property-info{background:#f0f8ff;padding:10px;border-radius:4px;margin-bottom:15px}.selected-property-info p{margin:5px 0;font-size:13px;color:#333}.comp-criteria{background:#f5f5f5;padding:10px;border-radius:4px;margin-bottom:15px}.comp-criteria ul{margin:0;padding-left:20px;list-style:none}.comp-criteria li{font-size:13px;color:#4caf50;margin:4px 0}.comp-properties-list{margin-top:15px}.comp-items{max-height:300px;overflow-y:auto}.comp-item{padding:8px;margin-bottom:8px;background:#fafafa;border:1px solid #e0e0e0;border-radius:4px;font-size:13px;transition:background-color .2s}.comp-item:hover{background:#e3f2fd;border-color:#90caf9}.comp-address{font-weight:500;color:#333;margin-bottom:4px}.comp-match-details{font-size:12px;color:#666;display:flex;align-items:center;gap:8px}.parcel-id{color:#888;font-size:11px}.match-indicator{display:inline-block;padding:2px 6px;border-radius:3px;margin-right:8px}.match-indicator.match{background:#e8f5e9;color:#2e7d32;border:1px solid #a5d6a7}.match-indicator.no-match{background:#ffebee;color:#c62828;border:1px solid #ef9a9a}.more-comps{margin-top:10px;font-size:12px;color:#666;font-style:italic;text-align:center;padding:8px;background:#f5f5f5;border-radius:4px}.comparison-table-bottom{flex:0 0 280px;overflow-y:auto;border-top:2px solid #ddd;background:#fff;box-shadow:0 -4px 16px #00000026}.main-content.with-comparison-table{flex:1;min-height:0}.map-options-section{margin-top:20px;padding:15px;background:#f0f0f0;border-radius:8px;border:1px solid #ddd}.map-options-section h3{margin:0 0 15px;font-size:14px;color:#666;text-transform:uppercase;letter-spacing:.5px}.map-options-section .distance-control,.map-options-section .street-control,.map-options-section .comps-control{margin:0 0 10px;padding:10px;background:#fff}
