.theme-selector{display:flex;align-items:center;gap:8px}.theme-select-label{font-size:14px;color:var(--text-secondary);font-weight:500}.theme-select{padding:6px 12px;border:1px solid var(--border-color);border-radius:4px;background-color:var(--bg-secondary);color:var(--text-primary);font-size:14px;cursor:pointer;transition:all .2s}.theme-select:hover{border-color:var(--primary-color)}.theme-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px var(--primary-color-alpha)}.layout{min-height:100vh;display:flex;flex-direction:column}.navbar{background-color:var(--navbar-bg);color:var(--text-primary);padding:1rem 0;box-shadow:0 2px 4px var(--shadow);transition:background-color .3s ease}.nav-container{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.nav-right{display:flex;align-items:center;gap:2rem}.nav-logo{display:flex;align-items:center;gap:.75rem;font-size:1.5rem;font-weight:700;color:var(--text-primary);text-decoration:none;transition:opacity .2s}.nav-logo:hover{opacity:.8}.nav-logo-img{height:40px;width:40px;object-fit:contain}.nav-logo-text{display:inline-block}@media (max-width: 768px){.nav-logo-text{display:none}.nav-logo-img{height:32px;width:32px}}.nav-links{display:flex;gap:2rem}.nav-links a{color:var(--text-primary);text-decoration:none;padding:.5rem 1rem;border-radius:4px;transition:background-color .2s}.nav-links a:hover,.nav-links a.active{background-color:var(--navbar-hover)}.main-content{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:2rem}@media (max-width: 768px){.nav-container{flex-direction:column;gap:1rem}.nav-links{gap:1rem}.main-content{padding:1rem}}.btn{padding:.5rem 1rem;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:all .2s;font-weight:500}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--primary-color-hover)}.btn-secondary{background-color:var(--secondary-color);color:#fff}.btn-secondary:hover:not(:disabled){background-color:var(--secondary-color-hover)}.btn-danger{background-color:var(--danger-color);color:#fff}.btn-danger:hover:not(:disabled){background-color:var(--danger-color-hover)}.inspections-page{width:100%}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.sort-controls{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem;background:var(--card-bg);border-radius:8px;box-shadow:0 2px 4px var(--shadow);transition:background-color .3s ease}.sort-controls label{font-weight:500;color:var(--text-primary)}.sort-button{padding:.5rem 1rem;border:1px solid var(--border-color);border-radius:4px;background:var(--card-bg);color:var(--text-primary);cursor:pointer;font-size:.9rem;transition:all .2s}.sort-button:hover{background:var(--bg-tertiary);border-color:var(--primary-color)}.sort-button.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.inspections-list{display:grid;gap:1.5rem}.inspection-card{background:var(--card-bg);padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px var(--shadow);transition:background-color .3s ease,box-shadow .3s ease}.inspection-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.inspection-header h3{margin:0}.inspection-header h3 a{color:var(--primary-color);text-decoration:none}.inspection-header h3 a:hover{text-decoration:underline}.inspection-actions{display:flex;gap:.5rem}.inspection-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem;color:var(--text-secondary)}.inspection-details p{margin:0}.observations-preview{color:var(--text-secondary);font-style:italic}.map-view-container{width:100%;height:600px;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a;margin:1rem 0}.map-view-container .leaflet-container{height:100%;width:100%;z-index:0}.map-view-container .leaflet-popup-content-wrapper{border-radius:4px}.map-view-container .leaflet-popup-content{margin:12px;font-size:14px}.map-view-container .leaflet-popup-content strong{font-weight:600}.inspection-detail-page{width:100%}.inspection-detail-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}.inspection-content{display:flex;flex-direction:column;gap:1.5rem}.map-sidebar-header{padding:1rem 1.5rem;border-bottom:1px solid var(--input-border)}.inspection-info,.sections-section{background:var(--card-bg);padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px var(--shadow);margin-bottom:2rem;transition:background-color .3s ease,box-shadow .3s ease}.sections-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-actions{display:flex;gap:.5rem}.inspection-info h2,.sections-section h2{color:var(--text-primary);margin-bottom:1rem}.info-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.sections-list{display:grid;gap:1rem}.section-card{display:flex;gap:1rem;padding:1rem;background:var(--bg-tertiary);border-radius:4px;border-left:4px solid var(--primary-color);align-items:flex-start;transition:background-color .3s ease,border-color .3s ease;cursor:pointer}.section-card:hover{background:var(--bg-secondary)}.section-card.selected{border-left-color:var(--primary-color);border-left-width:6px;background:var(--bg-secondary);box-shadow:0 2px 8px var(--shadow)}.section-order{font-size:1.5rem;font-weight:700;color:var(--primary-color);min-width:3rem;display:flex;align-items:center;justify-content:center}.section-details{flex:1}.section-details h3{margin:0 0 .5rem;color:var(--text-primary)}.section-title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.section-title-row h3{margin:0}.observation-count{color:var(--primary-color);font-weight:500}.section-controls{display:flex;flex-direction:column;gap:.5rem;align-items:flex-end}.move-buttons{display:flex;gap:.25rem}.move-buttons button{min-width:2.5rem;padding:.25rem .5rem}.empty{color:var(--text-secondary);font-style:italic}@media (max-width: 1024px){.inspection-detail-layout{grid-template-columns:1fr}.map-sidebar{position:relative;top:0;height:500px}}.observation-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .75rem;border-radius:12px;border:1px solid;font-size:.875rem;font-weight:500;white-space:nowrap}.observation-badge.clickable{cursor:pointer;transition:all .2s}.observation-badge.clickable:hover{opacity:.8;transform:translateY(-1px)}.badge-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;border-radius:10px;color:#fff;font-size:.75rem;font-weight:600}.inspection-map-page{padding:1rem}.map-page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;flex-wrap:wrap;gap:1rem}.map-header-left{display:flex;align-items:center;gap:1rem;flex:1}.map-header-left h1{margin:0;font-size:1.5rem}.map-header-right{display:flex;align-items:center}.map-legend{display:flex;gap:1.5rem;flex-wrap:wrap;padding:.75rem;background:var(--card-bg, #f8f9fa);border-radius:4px;border:1px solid var(--border-color, #dee2e6)}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem}.legend-line{width:30px;height:3px;border-radius:2px}.legend-line.pipe-line{background-color:#06c}.legend-line.selected-line{background-color:red}.legend-marker{width:16px;height:16px;border-radius:50%;border:2px solid #fff}.legend-marker.visible-leak-marker{background-color:#0d6efd}.legend-marker.audible-leak-marker{background-color:#ffc107}.legend-marker.investigate-marker{background-color:#fd7e14}.legend-marker.note-marker{background-color:#6c757d}.map-info{display:flex;gap:2rem;margin-bottom:1rem;padding:.75rem;background:var(--card-bg, #f8f9fa);border-radius:4px;border:1px solid var(--border-color, #dee2e6);flex-wrap:wrap}.map-info p{margin:0;font-size:.875rem}.section-info-panel{margin-top:1.5rem;padding:1.5rem;background:var(--card-bg, #ffffff);border-radius:8px;border:1px solid var(--border-color, #dee2e6);box-shadow:0 2px 8px #0000001a}.section-info-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid var(--border-color, #dee2e6)}.section-info-header h2{margin:0;color:var(--text-primary);font-size:1.25rem}.section-info-content{display:flex;flex-direction:column;gap:1.5rem}.section-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.section-info-grid .full-width{grid-column:1 / -1}.section-info-grid p{margin:.5rem 0 0;color:var(--text-secondary)}.section-observations{padding-top:1rem;border-top:1px solid var(--border-color, #dee2e6)}.section-observations h3{margin:0 0 1rem;color:var(--text-primary);font-size:1rem}.observations-list{display:flex;flex-direction:column;gap:1rem}.observation-item{display:flex;align-items:flex-start;gap:1rem;padding:.75rem;background:var(--bg-tertiary, #f8f9fa);border-radius:4px;border-left:3px solid var(--primary-color)}.observation-item p{margin:0;flex:1;color:var(--text-primary)}.no-observations{padding:1rem;text-align:center;background:var(--bg-tertiary, #f8f9fa);border-radius:4px;border:1px dashed var(--border-color, #dee2e6)}.no-observations p{margin:0 0 1rem;color:var(--text-secondary)}.map-instructions{margin-top:1rem;padding:.75rem;background:var(--info-bg, #e7f3ff);border-radius:4px;border:1px solid var(--info-border, #b3d9ff)}.map-instructions p{margin:0;font-size:.875rem;color:var(--info-text, #004085)}@media (max-width: 768px){.map-page-header{flex-direction:column}.map-header-left{flex-direction:column;align-items:flex-start}.map-legend{width:100%;justify-content:flex-start}.map-info{flex-direction:column;gap:.5rem}}.inspection-form{background:var(--card-bg);padding:2rem;border-radius:8px;box-shadow:0 2px 8px var(--shadow);max-width:800px;transition:background-color .3s ease,box-shadow .3s ease}.form-group input,.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--input-border);border-radius:4px;font-size:1rem;font-family:inherit;background-color:var(--input-bg);color:var(--text-primary);transition:border-color .2s,background-color .3s}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-color-alpha)}.form-group input.error,.form-group textarea.error{border-color:var(--error-color)}.location-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.field-hint{margin-top:.25rem;font-size:.875rem;color:var(--text-secondary);font-style:italic}@media (max-width: 768px){.form-row{grid-template-columns:1fr}}.rotational-preview{margin-top:.75rem;padding:1rem;background:var(--bg-secondary);border:1px solid var(--input-border);border-radius:4px}.preview-label{font-weight:500;color:var(--text-primary);margin-bottom:.5rem;font-size:.875rem}.preview-content{display:flex;align-items:center;gap:1rem}.straight-preview{display:flex;flex-direction:column;align-items:center;gap:.5rem}.straight-line{font-size:1.5rem;color:var(--text-secondary);letter-spacing:.2rem}.preview-note{font-size:.875rem;color:var(--text-secondary);font-style:italic;margin:0}.bend-preview{display:flex;flex-direction:column;align-items:center;gap:.75rem}.bend-svg{border:1px solid var(--input-border);border-radius:4px;background:var(--card-bg)}.direction-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem}.direction-label strong{color:var(--primary-color);font-size:1rem}.angle-display{color:var(--text-secondary);font-size:.875rem}.direction-reference{display:grid;grid-template-columns:1fr 1fr;gap:.25rem;font-size:.75rem;color:var(--text-secondary);margin-top:.25rem}.direction-reference div{padding:.125rem .25rem}.angular-offset-preview{margin-top:.75rem;padding:1rem;background:var(--bg-secondary);border:1px solid var(--input-border);border-radius:4px}.angular-offset-preview .preview-label{font-weight:500;color:var(--text-primary);margin-bottom:.5rem;font-size:.875rem}.angular-offset-preview .preview-content,.offset-preview{display:flex;flex-direction:column;align-items:center;gap:.75rem}.offset-svg{border:1px solid var(--input-border);border-radius:4px;background:var(--card-bg)}.offset-label{display:flex;flex-direction:column;align-items:center;gap:.25rem;font-size:.875rem}.offset-label strong{color:var(--primary-color);font-size:1rem}.offset-label span{color:var(--text-secondary);font-size:.875rem}.perfect-join strong{color:var(--success-color, #28a745)}.positive-offset strong{color:var(--primary-color)}.negative-offset strong{color:var(--warning-color, #ffc107)}.offset-reference{display:grid;grid-template-columns:1fr 1fr;gap:.25rem;font-size:.75rem;color:var(--text-secondary);margin-top:.25rem;text-align:left}.offset-reference div{padding:.125rem .25rem}@media (max-width: 768px){.offset-reference{grid-template-columns:1fr}}.section-form{background:var(--card-bg);padding:2rem;border-radius:8px;box-shadow:0 2px 8px var(--shadow);max-width:800px;transition:background-color .3s ease,box-shadow .3s ease}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.75rem;border:1px solid var(--input-border);border-radius:4px;font-size:1rem;font-family:inherit;background-color:var(--input-bg);color:var(--text-primary);transition:border-color .2s,background-color .3s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-color-alpha)}.form-group input.error,.form-group textarea.error,.form-group select.error{border-color:var(--error-color)}.family-info,.field-hint{margin-top:.5rem;font-size:.875rem;color:var(--text-secondary);font-style:italic}.input-with-slider{display:flex;gap:1rem;align-items:center}.orientation-slider,.offset-slider{flex:1;height:6px;border-radius:3px;background:var(--input-bg);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.orientation-slider::-webkit-slider-thumb,.offset-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--primary-color);cursor:pointer;border:2px solid white;box-shadow:0 2px 4px #0003}.orientation-slider::-moz-range-thumb,.offset-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--primary-color);cursor:pointer;border:2px solid white;box-shadow:0 2px 4px #0003}.orientation-input,.offset-input{width:80px;padding:.5rem;border:1px solid var(--input-border);border-radius:4px;font-size:1rem;font-family:inherit;background-color:var(--input-bg);color:var(--text-primary);transition:border-color .2s,background-color .3s;text-align:center}.orientation-input:focus,.offset-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-color-alpha)}.orientation-input.error,.offset-input.error{border-color:var(--error-color)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 768px){.form-row{grid-template-columns:1fr}.input-with-slider{flex-direction:column;gap:.5rem}.orientation-input,.offset-input{width:100%}}.section-form-page{width:100%}.section-form-header{margin-bottom:1.5rem}.section-form-header h1{color:var(--text-primary);margin:0}.section-form-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}.section-form-content{min-width:0}.map-sidebar{position:sticky;top:1rem;background:var(--card-bg);border-radius:8px;box-shadow:0 2px 8px var(--shadow);overflow:hidden;height:calc(100vh - 2rem);display:flex;flex-direction:column}.map-sidebar-header{padding:1rem 1.5rem;border-bottom:1px solid var(--input-border);display:flex;justify-content:space-between;align-items:center}.map-sidebar-header h3{margin:0;color:var(--text-primary);font-size:1.1rem}.map-hint{font-size:.875rem;color:var(--text-secondary);font-weight:500}.map-sidebar .map-view-container{flex:1;min-height:0}.map-loading{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:1rem}@media (max-width: 1024px){.section-form-layout{grid-template-columns:1fr}.map-sidebar{position:relative;top:0;height:500px}}.observation-list{width:100%}.observation-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.observation-list-header h3{margin:0;color:var(--text-primary)}.observations{display:flex;flex-direction:column;gap:1rem}.observation-item{background:var(--card-bg);padding:1rem;border-radius:8px;box-shadow:0 2px 4px var(--shadow);border-left:4px solid var(--primary-color);transition:background-color .3s ease,box-shadow .3s ease}.observation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.observation-date{font-size:.875rem;color:var(--text-secondary)}.observation-description{color:var(--text-primary);line-height:1.6;margin-bottom:.75rem;white-space:pre-wrap}.observation-actions{display:flex;gap:.5rem;justify-content:flex-end}.empty-state{text-align:center;padding:2rem;color:var(--text-secondary)}.empty-state p{margin-bottom:1rem}.loading,.error{text-align:center;padding:1rem;color:var(--text-secondary)}.observation-form{background:var(--card-bg);padding:2rem;border-radius:8px;box-shadow:0 2px 8px var(--shadow);max-width:800px;transition:background-color .3s ease,box-shadow .3s ease}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-primary)}.type-selector{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem}.type-option{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border:2px solid var(--border-color);border-radius:4px;background:var(--card-bg);color:var(--text-primary);cursor:pointer;transition:all .2s;font-size:.9rem;text-align:left}.type-option:hover{border-color:var(--primary-color);background:var(--bg-tertiary)}.type-option.active{font-weight:600}.type-indicator{width:12px;height:12px;border-radius:50%;flex-shrink:0}.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--input-border);border-radius:4px;font-size:1rem;font-family:inherit;resize:vertical;background-color:var(--input-bg);color:var(--text-primary);transition:border-color .2s,background-color .3s}.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-color-alpha)}.form-group textarea.error{border-color:var(--error-color)}.field-error{display:block;color:var(--error-color);font-size:.875rem;margin-top:.25rem}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.error-message{background-color:var(--bg-tertiary);color:var(--error-color);padding:1rem;border-radius:4px;margin-bottom:1rem;border:1px solid var(--error-color)}@media (max-width: 768px){.type-selector{grid-template-columns:1fr}}.section-detail-page{width:100%}.detail-header{margin-bottom:2rem}.detail-header a{color:var(--primary-color);text-decoration:none;margin-bottom:1rem;display:inline-block}.detail-header a:hover{text-decoration:underline}.detail-header h1{color:var(--text-primary);margin-top:.5rem}.section-info,.observations-section,.observation-form-section{background:var(--card-bg);padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px var(--shadow);margin-bottom:2rem;transition:background-color .3s ease,box-shadow .3s ease}.section-info h2,.observations-section h2,.observation-form-section h2{color:var(--text-primary);margin-bottom:1rem}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.info-grid .full-width{grid-column:1 / -1}.info-grid p{margin:.5rem 0 0;color:var(--text-secondary)}.loading,.error{text-align:center;padding:3rem;color:var(--text-secondary)}.pipe-families-page{width:100%}.page-header h1{color:var(--text-primary)}.families-list{display:grid;gap:1.5rem}.family-card{background:var(--card-bg);padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px var(--shadow);transition:background-color .3s ease,box-shadow .3s ease}.family-card h3{color:var(--text-primary);margin-bottom:1rem}.family-details{margin-bottom:1rem;color:var(--text-secondary)}.family-details p{margin:.5rem 0}.family-actions{display:flex;gap:.5rem}.family-actions a{text-decoration:none}.loading,.error,.empty-state{text-align:center;padding:3rem;color:var(--text-secondary)}.error{color:var(--error-color)}.plot-point-editor{border:1px solid var(--input-border);border-radius:4px;padding:1rem;background:var(--card-bg)}.editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.editor-header h3{margin:0;color:var(--text-primary);font-size:1.125rem}.editor-controls{display:flex;gap:.5rem}.editor-content{display:grid;grid-template-columns:1.2fr 1fr;gap:1.5rem}.svg-container{border:1px solid var(--input-border);border-radius:4px;background:#fff;overflow:hidden}.plot-svg{width:100%;height:400px;display:block;cursor:crosshair}.points-list{border:1px solid var(--input-border);border-radius:4px;padding:1.25rem;background:var(--bg-secondary);max-height:400px;overflow-y:auto;min-width:0}.points-list h4{margin:0 0 1rem;color:var(--text-primary);font-size:1rem}.empty-message{color:var(--text-secondary);font-style:italic;text-align:center;padding:2rem}.points-table{display:flex;flex-direction:column;gap:.5rem}.points-header{display:grid;grid-template-columns:60px 1.3fr 1.3fr auto;gap:.75rem;font-weight:600;color:var(--text-primary);padding-bottom:.75rem;border-bottom:1px solid var(--input-border);font-size:.9rem}.point-row{display:grid;grid-template-columns:60px 1.3fr 1.3fr auto;gap:.75rem;align-items:center;padding:.75rem;border-radius:4px;background:var(--card-bg);font-size:.9rem}.coord-input{width:100%;padding:.5rem .75rem;border:1px solid var(--input-border);border-radius:4px;font-size:.9rem;background:var(--input-bg);color:var(--text-primary);min-width:0}.coord-field{display:flex;flex-direction:column;gap:.25rem}.coord-inline{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.coord-inline .coord-input{flex:0 0 100px;max-width:70px}.coord-value{font-size:.85rem;color:var(--text-primary);line-height:1.2;white-space:nowrap}.coord-input:focus{outline:none;border-color:var(--primary-color)}.point-actions{display:flex;gap:.5rem;align-items:center}.order-select{padding:.5rem .75rem;border:1px solid var(--input-border);border-radius:4px;font-size:.9rem;background:var(--input-bg);color:var(--text-primary);min-width:60px}.delete-btn{padding:.25rem .5rem;font-size:.75rem}@media (max-width: 768px){.editor-content{grid-template-columns:1fr}.points-header,.point-row{grid-template-columns:50px 1fr 1fr auto;gap:.5rem}.point-actions{grid-column:1 / -1;margin-top:.5rem}}@media (min-width: 1024px){.editor-content{grid-template-columns:1fr 1fr;gap:2rem}.points-header,.point-row{grid-template-columns:70px 1.4fr 1.4fr auto;gap:1rem}.coord-input{padding:.6rem .85rem;font-size:.95rem}.point-row{padding:.85rem}}.pipe-family-form{max-width:1200px;margin:0 auto;padding:20px}.pipe-family-form .form-group{margin-bottom:20px}.pipe-family-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.pipe-family-form label{display:block;margin-bottom:8px;font-weight:500;color:var(--text-primary)}.pipe-family-form input[type=text],.pipe-family-form input[type=number]{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;font-size:14px;box-sizing:border-box}.pipe-family-form input[type=text]:focus,.pipe-family-form input[type=number]:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px var(--primary-color-alpha)}.pipe-family-form input.error{border-color:var(--error-color)}.pipe-family-form .field-error{display:block;color:var(--error-color);font-size:12px;margin-top:4px}.pipe-family-form .field-hint{font-size:12px;color:var(--text-secondary);margin-bottom:8px;margin-top:-4px}.pipe-family-form .shapes-selector{display:flex;flex-wrap:wrap;gap:16px;margin-top:8px;padding:16px;border:1px solid var(--border-color);border-radius:4px;background-color:var(--bg-tertiary)}.pipe-family-form .shape-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer;padding:8px 12px;border:1px solid var(--border-color);border-radius:4px;background-color:var(--card-bg);transition:all .2s;-webkit-user-select:none;user-select:none}.pipe-family-form .shape-checkbox:hover{border-color:var(--primary-color);background-color:var(--bg-tertiary)}.pipe-family-form .shape-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;margin:0}.pipe-family-form .shape-checkbox input[type=checkbox]:checked+span{font-weight:600;color:var(--primary-color)}.pipe-family-form .shape-checkbox span{font-size:14px;color:var(--text-primary)}.pipe-family-form .form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:20px;border-top:1px solid #eee}.pipe-family-form .shape-plotpoints-container{margin-top:12px;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-tertiary);overflow:hidden}.pipe-family-form .shape-plotpoints-tabs{display:flex;gap:4px;padding:8px;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);overflow-x:auto;flex-wrap:wrap}.pipe-family-form .shape-plotpoints-tab{display:flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid transparent;border-radius:6px;background-color:transparent;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.pipe-family-form .shape-plotpoints-tab:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.pipe-family-form .shape-plotpoints-tab.active{background-color:var(--card-bg);color:var(--primary-color);border-color:var(--primary-color);font-weight:600}.pipe-family-form .tab-point-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:20px;padding:0 6px;background-color:var(--bg-tertiary);color:var(--text-secondary);border-radius:10px;font-size:12px;font-weight:500}.pipe-family-form .shape-plotpoints-tab.active .tab-point-count{background-color:var(--primary-color-alpha);color:var(--primary-color)}.pipe-family-form .shape-plotpoints-content{padding:20px;width:100%;box-sizing:border-box}.pipe-family-form .plotpoint-editor-compact .plot-svg{height:350px}.pipe-family-form .plotpoint-editor-compact .points-list{max-height:350px}.pipe-family-form .shape-plotpoints-item{padding:0;border:none;border-radius:0;background-color:transparent}.pipe-family-form .shape-plotpoints-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border-color)}.pipe-family-form .shape-plotpoints-header strong{color:var(--text-primary);font-size:16px}.pipe-family-form .point-count{font-size:12px;color:var(--text-secondary);background-color:var(--card-bg);padding:4px 8px;border-radius:4px}.pipe-family-form .loading-plotpoints{padding:12px;text-align:center;color:var(--text-secondary);font-size:14px;background-color:var(--bg-tertiary);border-radius:4px;margin-bottom:16px}@media (max-width: 768px){.pipe-family-form .form-row{grid-template-columns:1fr}.pipe-family-form .shapes-selector{flex-direction:column}.pipe-family-form .shape-plotpoints-header{flex-direction:column;align-items:flex-start;gap:8px}.pipe-family-form .shape-plotpoints-tabs{padding:6px;gap:4px}.pipe-family-form .shape-plotpoints-tab{padding:8px 12px;font-size:13px}.pipe-family-form .shape-plotpoints-content{padding:16px}}.pipe-family-form-page{padding:20px}.pipe-family-form-page .page-header{margin-bottom:24px}.pipe-family-form-page .page-header h1{margin:12px 0;color:var(--text-primary)}.pipe-family-form-page .page-header a{color:var(--primary-color);text-decoration:none;font-size:14px}.pipe-family-form-page .page-header a:hover{text-decoration:underline}.section-specifications-page{padding:2rem;max-width:1200px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-header h1{margin:0;color:var(--text-primary)}.filter-section{margin-bottom:1.5rem;padding:1rem;background:var(--card-bg);border-radius:4px;border:1px solid var(--input-border)}.filter-section label{display:flex;align-items:center;gap:1rem;font-weight:500;color:var(--text-primary)}.family-filter{padding:.5rem;border:1px solid var(--input-border);border-radius:4px;background:var(--input-bg);color:var(--text-primary);font-size:1rem}.empty-state{text-align:center;padding:3rem;color:var(--text-secondary);background:var(--card-bg);border-radius:4px;border:1px solid var(--input-border)}.specifications-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.specification-card{background:var(--card-bg);border:1px solid var(--input-border);border-radius:8px;padding:1.5rem;transition:box-shadow .2s,transform .2s}.specification-card:hover{box-shadow:0 4px 12px var(--shadow);transform:translateY(-2px)}.specification-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--input-border)}.specification-header h3{margin:0;color:var(--text-primary);font-size:1.25rem}.specification-badge{padding:.25rem .75rem;background:var(--primary-color);color:#fff;border-radius:12px;font-size:.875rem;font-weight:500}.specification-details{margin-bottom:1rem}.specification-details p{margin:.5rem 0;color:var(--text-primary);font-size:.875rem}.specification-details strong{color:var(--text-secondary);margin-right:.5rem}.specification-actions{display:flex;gap:.5rem;flex-wrap:wrap}.loading{text-align:center;padding:3rem;color:var(--text-secondary);font-size:1.1rem}.error{padding:2rem;background:var(--card-bg);border-radius:4px;border:1px solid var(--input-border);color:var(--text-primary)}.error p{margin:0 0 1rem;color:#dc3545;font-weight:500}.error button{padding:.5rem 1rem;background:var(--primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem}.error button:hover{opacity:.9}@media (max-width: 768px){.specifications-list{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start;gap:1rem}}.section-specification-detail-page{padding:2rem;max-width:1200px;margin:0 auto}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid var(--input-border)}.back-link{display:inline-block;margin-bottom:.5rem;color:var(--primary-color);text-decoration:none;font-size:.875rem;transition:color .2s}.back-link:hover{color:var(--primary-color-dark);text-decoration:underline}.detail-header h1{margin:.5rem 0;color:var(--text-primary)}.specification-meta{display:flex;gap:1rem;align-items:center;margin-top:.5rem}.type-badge{padding:.25rem .75rem;background:var(--primary-color);color:#fff;border-radius:12px;font-size:.875rem;font-weight:500}.family-name{color:var(--text-secondary);font-size:.875rem}.detail-actions{display:flex;gap:.5rem}.detail-content{display:flex;flex-direction:column;gap:2rem}.detail-section{background:var(--card-bg);border:1px solid var(--input-border);border-radius:8px;padding:1.5rem}.detail-section h2{margin:0 0 1rem;color:var(--text-primary);font-size:1.25rem}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.detail-item{display:flex;flex-direction:column;gap:.25rem}.detail-item label{font-weight:500;color:var(--text-secondary);font-size:.875rem}.detail-item span{color:var(--text-primary);font-size:1rem}.empty-message{text-align:center;padding:2rem;color:var(--text-secondary)}.empty-message p{margin-bottom:1rem}.error-container{padding:2rem;text-align:center}.error-container .error{margin-bottom:1rem;color:var(--error-color)}@media (max-width: 768px){.detail-header{flex-direction:column;gap:1rem}.detail-actions{width:100%}.detail-actions button{flex:1}}.section-specification-form{background:var(--card-bg);padding:2rem;border-radius:8px;box-shadow:0 2px 8px var(--shadow);max-width:1200px;transition:background-color .3s ease,box-shadow .3s ease}.section-specification-form .form-group{margin-bottom:1.5rem}.section-specification-form .form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-primary)}.section-specification-form .form-group input,.section-specification-form .form-group select{width:100%;padding:.75rem;border:1px solid var(--input-border);border-radius:4px;font-size:1rem;font-family:inherit;background-color:var(--input-bg);color:var(--text-primary);transition:border-color .2s,background-color .3s}.section-specification-form .form-group input:focus,.section-specification-form .form-group select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-color-alpha)}.section-specification-form .form-group input.error,.section-specification-form .form-group select.error{border-color:var(--error-color)}.section-specification-form .field-error{display:block;color:var(--error-color);font-size:.875rem;margin-top:.25rem}.section-specification-form .field-hint{margin-top:.5rem;font-size:.875rem;color:var(--text-secondary);font-style:italic}.section-specification-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.section-specification-form .form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.section-specification-form .error-message{background-color:var(--bg-tertiary);color:var(--error-color);padding:1rem;border-radius:4px;margin-bottom:1rem;border:1px solid var(--error-color)}@media (max-width: 768px){.section-specification-form .form-row{grid-template-columns:1fr}}.section-specification-form-page{padding:2rem;max-width:1200px;margin:0 auto}.form-page-header{margin-bottom:2rem}.form-page-header h1{margin:0;color:var(--text-primary)}.home-page{text-align:center}.home-page h1{font-size:2.5rem;margin-bottom:1rem;color:var(--text-primary)}.subtitle{font-size:1.2rem;color:var(--text-secondary);margin-bottom:3rem}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-top:3rem}.action-card{background:var(--card-bg);padding:2rem;border-radius:8px;box-shadow:0 2px 8px var(--shadow);text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s,background-color .3s}.action-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px var(--shadow-hover)}.action-card h2{color:var(--primary-color);margin-bottom:.5rem}.action-card p{color:var(--text-secondary)}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-tertiary: #e9ecef;--text-primary: #2c3e50;--text-secondary: #7f8c8d;--text-tertiary: #95a5a6;--border-color: #ddd;--border-color-light: #e9ecef;--shadow: rgba(0, 0, 0, .1);--shadow-hover: rgba(0, 0, 0, .15);--primary-color: #3498db;--primary-color-hover: #2980b9;--primary-color-alpha: rgba(52, 152, 219, .25);--secondary-color: #95a5a6;--secondary-color-hover: #7f8c8d;--danger-color: #e74c3c;--danger-color-hover: #c0392b;--success-color: #27ae60;--warning-color: #f39c12;--info-color: #3498db;--navbar-bg: #2c3e50;--navbar-hover: #34495e;--card-bg: #ffffff;--input-bg: #ffffff;--input-border: #ddd;--error-color: #dc3545}[data-theme=dark]{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--bg-tertiary: #3a3a3a;--text-primary: #e0e0e0;--text-secondary: #b0b0b0;--text-tertiary: #808080;--border-color: #404040;--border-color-light: #333333;--shadow: rgba(0, 0, 0, .3);--shadow-hover: rgba(0, 0, 0, .4);--primary-color: #5dade2;--primary-color-hover: #3498db;--primary-color-alpha: rgba(93, 173, 226, .25);--secondary-color: #7f8c8d;--secondary-color-hover: #95a5a6;--danger-color: #ec7063;--danger-color-hover: #e74c3c;--success-color: #58d68d;--warning-color: #f7dc6f;--info-color: #5dade2;--navbar-bg: #1e1e1e;--navbar-hover: #2d2d2d;--card-bg: #2d2d2d;--input-bg: #2d2d2d;--input-border: #404040;--error-color: #ec7063}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-secondary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}
