:root{--bg:#f4f5f7;--card:#fff;--text:#19191d;--muted:#6b7280;--border:#e5e7eb;--primary:#1a56db;--primary-dark:#1544b5;--danger:#dc2626;--original:#9ca3af;--local-painted:#fb923c;--painted:#3f82c6;--replaced:#ff573d}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.container{max-width:1320px;margin:0 auto;padding:2rem 1rem}header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}h1{margin:0;font-size:1.5rem}.btn{cursor:pointer;border:none;border-radius:8px;padding:.55rem 1rem;font-size:.9rem;font-weight:600}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-icon{border:1px solid var(--border);background:0 0;border-radius:6px;padding:.35rem .7rem;font-size:.8rem;font-weight:500}.btn-icon:hover{background:var(--bg)}.btn-danger{color:var(--danger);border-color:#fecaca}.btn-danger:hover{background:#fef2f2}.table-card{background:var(--card);border-radius:12px;overflow-x:auto;box-shadow:0 1px 3px #00000014}table{border-collapse:collapse;width:100%;min-width:1080px}th,td{text-align:left;padding:.75rem 1rem;font-size:.9rem}thead th{border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap;background:#f9fafb;font-size:.78rem}tbody td{border-bottom:1px solid var(--border);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#fafafa}a.link{color:var(--primary);white-space:nowrap;text-decoration:none}a.link:hover{text-decoration:underline}.empty{text-align:center;color:var(--muted);padding:3rem}.actions{white-space:nowrap;gap:.4rem;display:flex}.actions svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px;display:block}.body-summary{color:#374151;max-width:250px;line-height:1.35}.diagram-view-btn{color:var(--primary);border-color:#bfdbfe;font-size:1rem;line-height:1}.diagram-view-btn:hover{background:#eff6ff}.link-action{color:#7c3aed;border-color:#ddd6fe;font-size:1rem;line-height:1}.link-action:hover{background:#f5f3ff}.edit-action{color:#ca8a04;border-color:#fde68a;font-size:1rem;line-height:1}.edit-action:hover{background:#fefce8}.delete-action{color:var(--danger);border-color:#fecaca;font-size:1rem;line-height:1}.delete-action:hover{background:#fef2f2}th[data-sort]{cursor:pointer;user-select:none}th[data-sort]:hover{color:var(--primary)}th[data-sort]:after{content:" ↕";color:#9ca3af;font-size:.7rem}th[data-sort].sort-asc:after{content:" ↑";color:var(--primary)}th[data-sort].sort-desc:after{content:" ↓";color:var(--primary)}.overlay{z-index:50;background:#00000073;justify-content:center;align-items:flex-start;padding:2rem 1rem;display:none;position:fixed;inset:0;overflow-y:auto}.overlay.open{display:flex}.modal{background:var(--card);border-radius:12px;width:100%;max-width:1040px;padding:1.5rem;box-shadow:0 10px 40px #0003}.modal h2{margin:0 0 1rem;font-size:1.15rem}.field{margin-bottom:.9rem}.field label{margin-bottom:.3rem;font-size:.82rem;font-weight:600;display:block}.field input{border:1px solid var(--border);border-radius:8px;width:100%;padding:.55rem .75rem;font-size:.9rem}.field input:focus{outline:2px solid var(--primary);border-color:var(--primary)}.field select{border:1px solid var(--border);background:#fff;border-radius:8px;width:100%;padding:.55rem .75rem;font-size:.9rem}.field select:focus{outline:2px solid var(--primary);border-color:var(--primary)}.city-picker{position:relative}.city-trigger{border:1px solid var(--border);color:#6b7280;text-align:left;cursor:pointer;background:#fff;border-radius:8px;justify-content:space-between;align-items:center;width:100%;padding:.55rem .75rem;font-size:.9rem;display:flex}.city-trigger.has-value{color:var(--text)}.city-trigger:focus{outline:2px solid var(--primary);border-color:var(--primary)}.city-chevron{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.city-dropdown{z-index:10;border:1px solid var(--border);background:#fff;border-radius:8px;padding:.5rem;display:none;position:absolute;top:calc(100% + 6px);left:0;right:0;box-shadow:0 8px 20px #0000001f}.city-dropdown.open{display:block}.city-dropdown input{margin-bottom:.45rem}.city-dropdown select{border:0;outline:0;height:170px;padding:0}.city-dropdown option{border-radius:5px;padding:.45rem .55rem}.city-dropdown option:checked,.city-dropdown option:hover{color:var(--primary);background:#eff6ff}.row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.modal-grid{grid-template-columns:minmax(0,1fr) 440px;align-items:start;gap:1.25rem;display:grid}.view-only .modal-grid{display:block}.view-only .details-panel,.view-only .status-options,.view-only .condition-help,.view-only #saveBtn{display:none}.view-only .condition-box{max-width:560px;margin:0 auto}.modal-footer{justify-content:flex-end;gap:.5rem;margin-top:1.25rem;display:flex}.btn-ghost{border:1px solid var(--border);color:var(--text);background:0 0}.error-msg{color:var(--danger);margin:.5rem 0 0;font-size:.85rem;display:none}.condition-box{border:1px solid var(--border);background:#fffdf2;border-radius:12px;padding:1rem}.condition-title{margin:0 0 .75rem;font-size:.92rem;font-weight:700}.status-options{grid-template-columns:1fr 1fr;gap:.45rem;margin-bottom:1rem;display:grid}.status-option{border:1px solid var(--border);color:#374151;cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:.45rem;min-height:36px;padding:.45rem .6rem;font-weight:700;display:flex}.status-option.active{outline:2px solid var(--text);border-color:var(--text)}.swatch{border-radius:3px;flex:none;width:18px;height:18px}.swatch.original{background:var(--original)}.swatch.localPainted{background:var(--local-painted)}.swatch.painted{background:var(--painted)}.swatch.replaced{background:var(--replaced)}.car-map{background:#faf6e6;border-radius:14px;align-items:center;width:100%;min-height:470px;padding:.75rem;display:flex;overflow:hidden}.car-svg{width:100%;height:auto;display:block}.legacy-car-svg{display:none}.reference-car-svg{width:100%;display:block;transform:rotate(90deg)}.reference-car-svg [data-part]{cursor:pointer}.view-only .reference-car-svg [data-part]{cursor:default}.reference-car-svg [data-part] path,.reference-car-svg [data-part] polygon,.reference-car-svg [data-part] ellipse,.reference-car-svg [data-part] circle{transition:fill .15s}.reference-car-svg [data-part]:hover path,.reference-car-svg [data-part]:hover polygon,.reference-car-svg [data-part]:hover ellipse,.reference-car-svg [data-part]:hover circle{fill:#b0d3eb!important}.reference-car-svg [data-status=original]{fill:#d1d5db!important}.reference-car-svg [data-status=localPainted]{fill:var(--local-painted)!important}.reference-car-svg [data-status=painted]{fill:var(--painted)!important}.reference-car-svg [data-status=replaced]{fill:var(--replaced)!important}.diagram-tooltip{z-index:5;pointer-events:none;color:#fff;background:#111827;border-radius:7px;max-width:190px;padding:.45rem .65rem;font-size:.75rem;line-height:1.3;display:none;position:fixed;transform:translate(12px,12px);box-shadow:0 4px 12px #0003}.diagram-tooltip.visible{display:block}.car-shell{fill:#f7f7f7;stroke:#d8d8d8;stroke-width:6px}.glass{fill:#d1d5db;stroke:#bfc2c7;stroke-width:4px}.lamp{fill:#fff;stroke:#c8c8c8;stroke-width:2px}.wheel-shape{fill:#d1d5db;stroke:#f7f7f7;stroke-width:5px}.map-text{fill:#6b7280;letter-spacing:.03em;font:700 8px Arial,sans-serif}.map-text.rotated{writing-mode:vertical-rl}.part{cursor:pointer}.body-panel{stroke:#fff;stroke-width:4px;transition:filter .12s,stroke-width .12s}.part:hover .body-panel{filter:drop-shadow(0 3px 4px #00000038);stroke-width:5px}.part[data-status=original] .body-panel{fill:#d1d5db}.part[data-status=localPainted] .body-panel{fill:var(--local-painted)}.part[data-status=painted] .body-panel{fill:var(--painted)}.part[data-status=replaced] .body-panel{fill:var(--replaced)}.part-label{fill:#fff;text-anchor:middle;dominant-baseline:middle;pointer-events:none;font:800 18px Arial,sans-serif}.part[data-status=original] .part-label{fill:#4b5563}.condition-help{color:var(--muted);margin:.75rem 0 0;font-size:.78rem;line-height:1.4}@media (width<=840px){.modal-grid{grid-template-columns:1fr}.condition-box{width:100%;max-width:460px;margin:0 auto}}@media (width<=560px){.row{grid-template-columns:1fr}.modal{padding:1rem}}
