body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.medical-card{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin:0 auto;max-width:1400px;padding:20px}.medical-card.loading{color:#666;font-size:18px;padding:50px;text-align:center}.card-section{background:#f8f9fa;border-left:4px solid #007bff;border-radius:8px;margin-bottom:30px;padding:20px}.card-section h3{border-bottom:2px solid #dee2e6;color:#333;margin-bottom:15px;margin-top:0;padding-bottom:10px}.card-section h4{color:#495057;margin-bottom:10px;margin-top:15px}.personal-info-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.info-item{padding:10px}.info-item,.module-data{background:#fff;border:1px solid #dee2e6;border-radius:6px}.module-data{margin-bottom:15px;padding:15px}.biometry-results{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.result-item{background:#f8f9fa;border-left:3px solid #28a745;border-radius:4px;padding:10px}.interpretation{color:#6c757d;font-style:italic;margin-left:5px}.tooth-measurements{margin-top:15px}.measurements-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:10px}.jaw-measurements{background:#fff;border:1px solid #dee2e6;border-radius:6px;padding:15px}.jaw-measurements pre{background:#f8f9fa;border-radius:4px;font-size:12px;margin-top:10px;overflow-x:auto;padding:10px}.medical-table{border-collapse:collapse;margin-top:10px;width:100%}.medical-table th{background-color:#007bff;color:#fff;padding:12px;text-align:left}.medical-table td{border-bottom:1px solid #dee2e6;padding:10px}.medical-table tr:hover{background-color:#f5f5f5}.diagnoses-list{list-style-type:none;padding-left:0}.diagnosis-item{border-radius:4px;box-shadow:0 1px 3px #0000001a;margin-bottom:8px;padding:10px 15px}@media (max-width:768px){.biometry-results,.measurements-grid,.personal-info-grid{grid-template-columns:1fr}.medical-card{padding:10px}.card-section{padding:15px}.module-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:15px 0}.module-tab{align-items:center;background:#fff;border:2px solid #dee2e6;border-radius:8px;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:12px 20px;transition:all .3s}.module-tab:hover{border-color:#007bff;box-shadow:0 4px 8px #007bff1a;transform:translateY(-2px)}.module-tab.active{background:#007bff;border-color:#007bff;color:#fff}.tab-icon{font-size:18px}.module-badge{border-radius:4px;display:inline-block;font-size:11px;font-weight:700;padding:4px 8px;text-transform:uppercase}.module-biometry{background:#28a745;color:#fff}.module-cephalometry{background:#17a2b8;color:#fff}.module-photometry{background:#ffc107;color:#000}.module-ct{background:#dc3545;color:#fff}.module-modeling{background:#6f42c1;color:#fff}.module-data-viewer{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:15px}.module-data-viewer .section{border-bottom:1px solid #f0f0f0;margin-bottom:25px;padding-bottom:20px}.module-data-viewer .section:last-child{border-bottom:none}.module-data-viewer h4{border-bottom:2px solid #007bff;color:#333;margin-bottom:20px;padding-bottom:10px}.module-data-viewer h5{color:#495057;margin-bottom:15px}.module-data-viewer h6{color:#6c757d;margin-bottom:10px}.measurements-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.measurement-item{background:#f8f9fa;border-left:4px solid #28a745;border-radius:6px;padding:12px}.measurement-item .label{color:#495057;display:block;font-weight:700;margin-bottom:5px}.measurement-item .value{color:#333;display:block;font-size:18px;font-weight:700;margin-bottom:5px}.measurement-item .interpretation{color:#6c757d;display:block;font-style:italic}.measurements-table{border-collapse:collapse;margin-top:10px;width:100%}.measurements-table th{background:#007bff;color:#fff;font-weight:600;padding:12px;text-align:left}.measurements-table td{border-bottom:1px solid #dee2e6;padding:10px}.measurements-table tr:hover{background:#f5f5f5}.measurements-table .normal{color:#28a745;font-weight:500}.measurements-table .abnormal{color:#dc3545;font-weight:500}.tooth-table{border-collapse:collapse;margin-top:10px;width:100%}.tooth-table th{background:#6c757d;color:#fff;padding:10px;text-align:center}.tooth-table td{border:1px solid #dee2e6;padding:8px;text-align:center}.tooth-table tr:nth-child(2n){background:#f8f9fa}.analyses-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin-top:15px}.analysis-item{background:#fff;border:1px solid #dee2e6;border-radius:6px;box-shadow:0 2px 4px #0000000d;padding:12px}.analysis-item .label{color:#495057}.analysis-item .label,.analysis-item .value{display:block;font-weight:700;margin-bottom:5px}.analysis-item .value{color:#007bff;font-size:20px}.analysis-item .interpretation{color:#6c757d;display:block;font-size:13px}.treatment-phase{background:#f8f9fa;border-left:4px solid #6f42c1;border-radius:6px;margin-bottom:15px;padding:15px}.treatment-phase h6{color:#6f42c1;margin-bottom:10px}.treatment-phase ul{margin:0;padding-left:20px}.treatment-phase li{color:#495057;margin-bottom:5px}.diagnoses-by-module{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:15px}.module-diagnoses{background:#fff;border:1px solid #dee2e6;border-radius:6px;padding:15px}.module-diagnoses h5{margin-bottom:10px;margin-top:0}.module-tabs{flex-direction:column}.module-tab{justify-content:center;width:100%}.analyses-grid,.diagnoses-by-module,.measurements-grid{grid-template-columns:1fr}.jaw-measurements{margin-bottom:20px}}.anamnesis-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:15px}.anamnesis-item{background:#fff;border-left:4px solid #17a2b8;border-radius:6px;padding:12px}.photo-analysis-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:15px}.photo-analysis-category{background:#fff;border:1px solid #dee2e6;border-radius:6px;padding:15px}.photo-analysis-category h4{border-bottom:2px solid #f0f0f0;color:#007bff;margin-bottom:10px;padding-bottom:8px}.analysis-item{border-bottom:1px solid #f8f9fa;padding:8px 0}.analysis-item:last-child{border-bottom:none}.occlusion-categories{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:15px}.occlusion-category{background:#fff;border:1px solid #dee2e6;border-radius:6px;padding:15px}.occlusion-category h4{color:#28a745;margin-bottom:12px}.occlusion-item{border-bottom:1px solid #f8f9fa;margin-bottom:8px;padding:6px 0}.dental-formula-grid{grid-gap:30px;display:grid;gap:30px;grid-template-columns:1fr 1fr;margin-bottom:20px}.jaw-section{background:#f8f9fa;border-radius:6px;padding:15px}.jaw-section h5{color:#495057;margin-bottom:15px;text-align:center}.teeth-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(6,1fr)}.tooth-item{align-items:center;background:#fff;border:1px solid #dee2e6;border-radius:4px;display:flex;flex-direction:column;padding:8px}.tooth-number{color:#333;font-size:14px;font-weight:700}.tooth-size{color:#666;font-size:12px;margin-top:4px}.arch-dimensions{background:#fff;border:1px solid #dee2e6;border-radius:6px;margin:20px 0;padding:15px}.dimensions-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-top:10px}.dimension-item{background:#f8f9fa;border-radius:4px;padding:10px}.indices-section{background:#fff;border:1px solid #dee2e6;border-radius:6px;margin-top:20px;padding:15px}.indices-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:10px}.index-item{background:#f8f9fa;border-left:4px solid #28a745;border-radius:4px;padding:12px}.cephalometry-tabs{border-bottom:2px solid #dee2e6;display:flex;gap:10px;margin:15px 0;padding-bottom:10px}.cephalometry-tab{background:#f8f9fa;border:2px solid #0000;border-radius:6px;cursor:pointer;padding:10px 20px}.cephalometry-tab.active{background:#007bff;border-color:#0056b3;color:#fff}.measurement-item{background:#fff;border:1px solid #dee2e6;border-radius:6px;margin-bottom:10px;padding:12px}.measurement-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.measurement-value{color:#333;font-size:18px;font-weight:700}.measurement-details{display:flex;font-size:13px;justify-content:space-between}.measurement-norm{color:#6c757d}.measurement-interpretation{font-weight:500}.measurement-interpretation.normal{color:#28a745}.measurement-interpretation.abnormal{color:#dc3545}.optg-content{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin-top:15px}.optg-item{background:#fff;border-left:4px solid #17a2b8;border-radius:6px;padding:12px}.airway-grid,.sections-grid,.tmj-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin-top:10px}.airway-item,.section-item,.tmj-item{background:#fff;border:1px solid #dee2e6;border-radius:4px;padding:10px}.diagnoses-list{display:flex;flex-direction:column;gap:10px;margin-top:15px}.diagnosis-item{align-items:flex-start;background:#fff;border-left:4px solid #dc3545;border-radius:6px;display:flex;padding:12px}.diagnosis-number{color:#dc3545;font-weight:700;margin-right:10px;min-width:25px}.diagnosis-text{flex:1 1}.treatment-phases{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin:20px 0}.treatment-phase{background:#fff;border:1px solid #dee2e6;border-radius:6px;padding:15px}.phase-duration{color:#6c757d;font-size:14px;margin-bottom:10px}.procedures-list{margin:10px 0 0 20px;padding:0}.procedures-list li{color:#495057;margin-bottom:5px}.treatment-details{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:20px}.appliances-section,.retention-section{background:#f8f9fa;border-radius:6px;padding:15px}.appliances-list,.retention-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.appliance-item,.retention-item{background:#fff;border:1px solid #dee2e6;border-radius:4px;font-size:13px;padding:6px 12px}@media (max-width:768px){.anamnesis-grid,.dental-formula-grid,.dimensions-grid,.indices-grid,.occlusion-categories,.optg-content,.photo-analysis-grid,.treatment-details,.treatment-phases{grid-template-columns:1fr}.teeth-grid{grid-template-columns:repeat(3,1fr)}}.file-version-history{height:100%;left:0;position:fixed;top:0;width:100%;z-index:1000}.modal-overlay{height:100%;position:absolute;width:100%}.modal-content{box-shadow:0 4px 6px #0000001a;max-width:600px;padding:30px}.modal-content h3{color:#333;margin-top:0;text-align:center}.versions-list table{border-collapse:collapse;margin:20px 0;width:100%}.versions-list td,.versions-list th{border-bottom:1px solid #ddd;padding:12px;text-align:left}.versions-list th{background-color:#f8f9fa;font-weight:700}.versions-list tr:hover{background-color:#f5f5f5}.versions-list button{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px}.versions-list button:hover{background-color:#0056b3}.modal-content button{background-color:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;display:block;font-size:16px;margin:20px auto 0;padding:10px 20px}.modal-content button:hover{background-color:#545b62}.error{padding:20px}.presentation-generator{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin:0 auto;max-width:1200px;padding:20px}.presentation-generator.loading{color:#666;font-size:18px;padding:50px;text-align:center}.presentation-generator h2{border-bottom:2px solid #007bff;color:#333;margin-bottom:20px;padding-bottom:10px}.patient-info{background:#f8f9fa;border-radius:6px;padding:15px}.presentation-settings{margin-bottom:30px}.format-selection{margin-top:15px}.format-selection label{display:block;font-weight:700;margin-bottom:5px}.format-selection select{border:1px solid #ced4da;border-radius:4px;font-size:14px;padding:8px 12px;width:200px}.slides-selection{margin:30px 0}.slides-list{display:flex;flex-direction:column;gap:15px;margin-top:15px}.slide-item{background:#fff;border:1px solid #dee2e6;border-radius:6px;padding:15px;transition:all .2s}.slide-item:hover{border-color:#007bff;box-shadow:0 2px 8px #007bff1a}.slide-item label{align-items:center;color:#495057;cursor:pointer;display:flex;font-weight:700;gap:10px}.slide-item input[type=checkbox]{cursor:pointer;height:18px;width:18px}.slide-title{color:#333;font-size:16px}.slide-preview{background:#f8f9fa;border-left:3px solid #28a745;border-radius:4px;font-size:14px;margin-left:28px;margin-top:10px;padding:10px}.biometry-preview ul,.diagnosis-preview ul{margin:5px 0 0 20px;padding:0}.biometry-preview li,.diagnosis-preview li{color:#666;margin-bottom:3px}.generate-action{margin:40px 0}.generate-button{background:linear-gradient(135deg,#28a745,#20c997);border:none;border-radius:8px;box-shadow:0 4px 6px #28a74533;color:#fff;cursor:pointer;font-size:18px;padding:15px 40px;transition:all .3s}.generate-button:hover{background:linear-gradient(135deg,#20c997,#28a745);box-shadow:0 6px 12px #28a7454d;transform:translateY(-2px)}.generate-button:disabled{background:#6c757d;box-shadow:none;cursor:not-allowed;transform:none}.photo-type-selection{background-color:#f8f9fa;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin:0 auto;max-width:800px;padding:20px}.photo-type-selection h3{border-bottom:2px solid #007bff;color:#333;margin-bottom:30px;padding-bottom:10px;text-align:center}.photo-types-container{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:30px}.photo-type-card{background-color:#fff;border:1px solid #dee2e6;border-radius:6px;box-shadow:0 1px 5px #0000000d;min-height:250px;padding:20px;transition:all .2s ease}.photo-type-card.selected{border-color:#007bff;box-shadow:0 2px 10px #007bff33}.photo-type-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.photo-type-title{color:#495057;font-size:1.2em;margin:0}.photo-type-status{border-radius:4px;font-weight:500;padding:5px 10px}.photo-type-status.not-uploaded{background-color:#f8d7da;color:#721c24}.photo-type-status.uploaded{background-color:#d4edda;color:#155724}.photo-type-content{text-align:center}.upload-area{cursor:pointer;padding:30px}.upload-icon{color:#007bff;font-size:48px;margin-bottom:10px}.upload-text{color:#6c757d;margin-bottom:15px}.upload-button{background-color:#007bff;border-radius:4px;display:inline-block;font-weight:500;padding:10px 20px;transition:all .2s ease}.upload-button:hover{background-color:#0056b3;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.preview-container{margin-top:15px}.preview-image{border:1px solid #ddd;border-radius:4px;box-shadow:0 1px 3px #0000001a;max-height:200px;max-width:100%}.file-name{color:#6c757d;word-break:break-all}.file-name,.remove-button{font-size:14px;margin-top:10px}.remove-button{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 15px}.remove-button:hover{background-color:#c82333;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.all-photos-uploaded{background-color:#d4edda;border-radius:6px;color:#155724;margin-top:20px;padding:20px;text-align:center}.continue-button{background-color:#28a745;border:none;border-radius:5px;color:#fff;cursor:pointer;display:block;font-size:18px;font-weight:500;margin-top:20px;padding:15px 30px;transition:all .2s ease;width:100%}.continue-button:hover:not(:disabled){background-color:#218838;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.continue-button:disabled{background-color:#6c757d;box-shadow:none;cursor:not-allowed;transform:none}.instruction{color:#6c757d;font-size:14px;margin-top:15px;text-align:center}@media (max-width:768px){.photo-type-selection{padding:15px}.photo-types-container{grid-template-columns:1fr}.photo-type-card{min-height:auto;padding:15px}}@media (max-width:480px){.photo-type-selection{padding:10px}.photo-type-card{padding:12px}.upload-area{padding:20px}.upload-icon{font-size:36px}}.cephalometry-module{margin:0 auto;max-width:1400px;padding:20px}.cephalometry-module h2{border-bottom:2px solid #007bff;color:#333;padding-bottom:10px}.selected-images-container{display:flex;flex-wrap:wrap;gap:20px;margin:20px 0}.selected-image-box{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:5px;flex:1 1;min-width:300px;padding:15px}.selected-image-box h4{border-bottom:1px solid #dee2e6;color:#495057;margin-top:0;padding-bottom:10px}.image-preview-container{text-align:center}.selected-image-preview{border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 5px #0000001a;max-height:200px;max-width:100%}.image-file-name{color:#6c757d;font-size:14px;margin:10px 0 0;word-break:break-all}.form-group input:focus:not(:active),.form-group input:focus:not(:active):not(:focus),.form-group select:focus:not(:active),.form-group select:focus:not(:active):not(:focus){border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.upload-area{background-color:#f9f9f9;border:2px dashed #ccc;border-radius:5px;padding:40px;text-align:center;transition:all .3s ease}.upload-area:hover,.upload-area:hover:not(:active),.upload-area:hover:not(:active):not(:hover){background-color:#e9f7fe;border-color:#007bff}.upload-area input[type=file]{display:none}.upload-area label{background-color:#007bff;border-radius:5px;color:#fff;cursor:pointer;display:inline-block;padding:10px 20px;transition:all .2s ease}.upload-area label:hover{box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.upload-area label:hover:not(:active),.upload-area label:hover:not(:active):not(:hover){background-color:#0056b3;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.upload-area label:hover{background-color:#0056b3}.cephalometry-main{display:flex;gap:20px;margin-top:20px;min-height:80vh}.canvas-container:hover:not(:active),.canvas-container:hover:not(:active):not(:hover){box-shadow:0 5px 15px #0003}.delete-point-btn:hover:not(:active),.delete-point-btn:hover:not(:active):not(:hover){background-color:#c82333;transform:scale(1.05);transition:all .2s ease}.tools button:hover:not(.active),.tools button:hover:not(.active):not(:active),.tools button:hover:not(.active):not(:active):not(:hover){background-color:#e9ecef;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.tools button.active:hover:not(:active),.tools button.active:hover:not(:active):not(:hover){background-color:#0056b3;box-shadow:0 2px 5px #007bff66;transform:translateY(-2px)}.scale-control input{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;padding:8px;width:100%}.scale-control button:hover:not(:active),.scale-control button:hover:not(:active):not(:hover){background-color:#e0a800;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.zoom-controls{margin-top:20px}.zoom-controls h4{margin-bottom:10px;margin-top:0}.zoom-slider{align-items:center;display:flex;gap:10px;margin-bottom:10px}.zoom-slider button{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:5px 10px;transition:all .2s ease}.zoom-slider button:hover{box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.zoom-slider button:hover:not(:active),.zoom-slider button:hover:not(:active):not(:hover){background-color:#0056b3;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.zoom-slider button:hover{background-color:#0056b3}.zoom-slider span{font-weight:700;min-width:50px;text-align:center}.zoom-controls button{background-color:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 12px;transition:all .2s ease;width:100%}.zoom-controls button:hover{box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.zoom-controls button:hover:not(:active),.zoom-controls button:hover:not(:active):not(:hover){background-color:#218838;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.zoom-controls button:hover{background-color:#218838}.instructions{margin-top:20px}.instructions h4{margin-bottom:10px;margin-top:0}.instructions ul{margin:0;padding-left:20px}.instructions li{font-size:14px;margin-bottom:5px}.calibration-button{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 12px;transition:all .2s ease;width:100%}.calibration-button:hover:not(:disabled){background-color:#0056b3;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.calibration-button:disabled{background-color:#6c757d;box-shadow:none;cursor:not-allowed;transform:none}.point-item:hover:not(:active),.point-item:hover:not(:active):not(.placed),.point-item:hover:not(:active):not(.placed):not(:hover),.point-item:hover:not(:active):not(:hover),.point-item:hover:not(:active):not(:hover):not(.placed){background-color:#f8f9fa;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.point-item.placed:hover,.point-item.placed:hover:not(:active),.point-item.placed:hover:not(:active):not(:hover){background-color:#c3e6cb;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.point-item.selected:hover{background-color:#b3d9ff;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.measurements{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:5px;margin:30px 0}.measurements h3{color:#555}.measurements button{background-color:#17a2b8;border-radius:5px;margin-bottom:15px;margin-right:10px;padding:10px 15px;transition:all .2s ease}.measurements button:hover{box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.measurements button:hover:not(:active),.measurements button:hover:not(:active):not(:hover){background-color:#138496;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.measurements button:hover{background-color:#138496}.measurements th{color:#495057;font-size:.85em;letter-spacing:.5px;text-transform:uppercase}.measurements tr:hover{box-shadow:0 2px 5px #0000001a;transform:translateY(-2px);transition:all .2s ease}.measurements tr:hover:not(:active),.measurements tr:hover:not(:active):not(:hover){background-color:#f5f5f5;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px);transition:all .2s ease}.report{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:5px;margin:30px 0}.report h3{color:#555}.report button{background-color:#28a745;border-radius:5px;margin-bottom:15px;margin-right:10px;padding:10px 15px;transition:all .2s ease}.report button:hover{box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.report button:hover:not(:active),.report button:hover:not(:active):not(:hover){background-color:#218838;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.report button:hover{background-color:#218838}.report-content{margin-top:20px}.report-content table{margin-top:15px}.report-content td,.report-content th{border-bottom:1px solid #ddd;padding:12px}.report-content th{color:#495057;font-size:.85em;letter-spacing:.5px;text-transform:uppercase}.report-content tr:hover,.report-content tr:hover:not(:active),.report-content tr:hover:not(:active):not(:hover){background-color:#f5f5f5;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px);transition:all .2s ease}.actions{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:5px;padding:20px}.actions button{margin:0 10px;transition:all .2s ease}.actions button:hover:not(:disabled){box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.actions button:hover:not(:disabled):not(:active),.actions button:hover:not(:disabled):not(:active):not(:hover){background-color:#218838;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.error{border:1px solid #f5c6cb;color:#dc3545;margin:10px 0}.control-group label:hover:not(:active),.control-group label:hover:not(:active):not(:hover){color:#007bff}.modal-content{box-shadow:0 5px 15px #0000004d;max-height:80%;max-width:80%;overflow:auto}.export-buttons{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:5px;margin:20px 0;padding:20px;text-align:center}.export-buttons button{background-color:#6c757d;border:none;border-radius:5px;margin:0 10px;padding:10px 15px;transition:all .2s ease}.export-buttons button:hover{box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.export-buttons button:hover:not(:active),.export-buttons button:hover:not(:active):not(:hover){background-color:#5a6268;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.export-buttons button:hover{background-color:#5a6268}.visualization-controls p{margin:10px 0}.magnifier-controls{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:5px;margin-top:20px;padding:15px}.magnifier-controls h4{border-bottom:1px solid #dee2e6;color:#333;margin-bottom:15px;margin-top:0;padding-bottom:10px}.magnifier-controls .control-group{margin-bottom:15px}.magnifier-controls .control-group h5{color:#555;font-size:1.1em;margin-bottom:10px;margin-top:0}.magnifier-controls label{color:#333;cursor:pointer;display:block;font-size:14px;margin-bottom:8px;transition:color .2s ease}.magnifier-controls label:hover,.magnifier-controls label:hover:not(:active),.magnifier-controls label:hover:not(:active):not(:hover){color:#007bff}.magnifier-controls input[type=checkbox]{cursor:pointer;margin-right:8px;transform:scale(1.2)}.zoom-slider{margin-top:10px}.zoom-slider label{color:#333;display:block;font-size:14px;font-weight:700;margin-bottom:5px}.zoom-slider input[type=range]{-webkit-appearance:none;background:#ddd;border-radius:5px;height:10px;outline:none;width:100%}.zoom-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#007bff;border-radius:50%;cursor:pointer;height:20px;width:20px}.zoom-slider input[type=range]::-moz-range-thumb{background:#007bff;border-radius:50%;cursor:pointer;height:20px;width:20px}@media (max-width:768px){.cephalometry-main{flex-direction:column}.points-list{max-height:300px;width:100%}.image-container{flex-direction:column}.toolbar{width:100%}}.photometry-module{font-family:Arial,sans-serif;padding:20px}.photometry-module h2{color:#333;margin-bottom:20px}.photometry-main{display:flex;flex-direction:column;gap:20px}.patient-info{background-color:#f5f5f5;border-radius:8px;margin-bottom:20px}.patient-info h3{color:#333}.image-upload{background-color:#fff;border:1px solid #ddd;border-radius:8px}.image-upload h3{color:#333;margin-top:0}.image-container{margin-bottom:20px}.canvas-container{background-color:#f9f9f9;border:2px dashed #ccc;border-radius:8px;min-height:400px;overflow:hidden}.canvas-container canvas{display:block;height:100%;width:100%}.delete-point-btn{border-radius:4px;font-size:14px;padding:8px 16px}.toolbar{background-color:#f5f5f5;border:1px solid #ddd;border-radius:8px;width:300px}.toolbar h4{color:#333;margin-bottom:10px}.tools button{border:1px solid #ddd;flex:1 1;font-size:14px;padding:10px}.scale-control{margin-bottom:20px}.scale-control select{border:1px solid #ddd;margin-bottom:10px}.scale-instructions{background-color:#e9ecef;margin-top:10px}.visualization-controls h4{margin-bottom:10px;margin-top:20px}.control-group{background-color:#fff;border:1px solid #ddd;border-radius:8px;margin-bottom:20px;padding:15px}.control-group h5{color:#333}.control-buttons{margin-bottom:10px}.deselect-all-btn,.select-all-btn{background-color:#007bff;border:1px solid #007bff;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:6px 12px}.deselect-all-btn:hover,.select-all-btn:hover{background-color:#0056b3;border-color:#0056b3}.deselect-all-btn{background-color:#6c757d;border-color:#6c757d}.deselect-all-btn:hover{background-color:#545b62;border-color:#545b62}.control-group label{align-items:center;display:flex;gap:8px;margin-bottom:5px}.control-group input[type=checkbox]{height:16px;width:16px}.points-list{background-color:#f5f5f5;max-height:600px;padding:20px}.points-list,.selected-point-image{border:1px solid #ddd;border-radius:8px}.selected-point-image{background-color:#fff}.selected-point-image h4{color:#333}.calibration-section,.selected-point-image img{border:1px solid #ddd}.calibration-section{background-color:#fff;border-radius:8px}.calibration-section.hidden{display:none}.calibration-info p{color:#555;margin-bottom:10px}.calibration-status{border-radius:4px;font-weight:700;padding:10px}.calibrated{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.not-calibrated{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.points-grid{grid-gap:10px;display:grid;grid-template-columns:1fr}.point-item{transition:background-color .2s}.point-item:hover{background-color:#e9ecef}.point-item.selected{border-color:#99d6ff;box-shadow:inset 0 0 0 2px #007bff40}.point-item.next-point{border:2px solid #ffc107}.point-id{color:#333;font-size:16px}.point-name{color:#666;font-size:12px;margin-left:10px}.point-status{background-color:#28a745;border-radius:12px;color:#fff;font-size:12px}.point-next-indicator{background-color:#ffc107;border-radius:12px;color:#856404;font-size:12px}.measurements{background-color:#fff;border:1px solid #ddd;border-radius:8px;padding:20px}.measurements h3{color:#333;margin-top:0}.measurements button{background-color:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;margin-bottom:20px;padding:10px 20px}.measurements button:hover{background-color:#218838}.measurements table{margin-top:20px}.measurements td,.measurements th{padding:10px}.measurements th{background-color:#f8f9fa}.report{background-color:#fff;border:1px solid #ddd;border-radius:8px;padding:20px}.report h3{color:#333;margin-top:0}.report button{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;margin-bottom:20px;padding:10px 20px}.report button:hover{background-color:#0056b3}.report-content{border:1px solid #dee2e6;border-radius:8px}.report-content h4{color:#333;margin-top:0}.report-content p{color:#555;margin-bottom:10px}.report-content table{border-collapse:collapse;margin-top:20px;width:100%}.report-content td,.report-content th{border-bottom:1px solid #dee2e6;padding:10px;text-align:left}.report-content th{background-color:#e9ecef;font-weight:700}.export-buttons{gap:10px;margin-top:20px}.export-buttons button{background-color:#007bff;border:1px solid #007bff;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px}.export-buttons button:hover{background-color:#0056b3;border-color:#0056b3}.actions{margin-top:20px}.actions button{background-color:#17a2b8;border-radius:4px;font-size:16px;font-weight:700;padding:12px 24px}.actions button:hover{background-color:#138496}.loading{background-color:#d1ecf1;color:#0c5460}.error,.loading{border-radius:4px;margin-top:20px;padding:10px}.error{background-color:#f8d7da;color:#721c24;text-align:center}.modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background-color:#fff;border-radius:8px;max-height:80vh;max-width:800px;overflow-y:auto;padding:20px;width:90%}@media (max-width:1200px){.image-container{flex-direction:column}.toolbar{width:100%}}@media (max-width:768px){.photometry-module{padding:10px}.image-upload,.measurements,.patient-info,.report{padding:15px}.points-grid{grid-template-columns:1fr}.export-buttons{flex-direction:column}.export-buttons button{width:100%}}.calibration-methods{margin-bottom:20px}.calibration-methods h4{color:#333;margin:0 0 10px}.calibration-method{align-items:center;background:#fff;border:1px solid #ddd;border-radius:5px;display:flex;gap:10px;margin-bottom:10px;padding:10px}.calibration-method input[type=radio]{margin-right:5px}.calibration-method label{cursor:pointer;flex:1 1}.calibration-method label strong{color:#333;display:block}.calibration-method label span{color:#666;font-size:12px}.calibration-btn{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:8px 12px}.calibration-btn:hover{background:#0056b3}.calibration-btn:disabled{background:#6c757d;cursor:not-allowed}.known-object-settings,.magnification-settings{background:#f8f9fa;border:1px solid #e9ecef;border-radius:5px;margin-left:25px;padding:15px}.form-group label{color:#333}.form-group input,.form-group select{border:1px solid #ddd;font-size:14px}.form-group input[type=number]{width:200px}.hint{margin-left:10px}.calibration-points{background:#fff;border:1px solid #ddd;border-radius:4px;margin-bottom:15px;padding:10px}.calibration-points p{font-size:14px;margin:5px 0}.calibration-details{color:#666;display:flex;font-size:12px;gap:15px;margin-top:5px}.calibration-details span{background:#fff;border:1px solid #ddd;border-radius:3px;padding:2px 6px}.reset-calibration-btn{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;margin-top:10px;padding:10px 20px}.reset-calibration-btn:hover{background:#c82333}.scale-mode-controls{background:#f8f9fa;border:1px solid #e9ecef;border-radius:5px;margin-bottom:15px;padding:10px}.scale-mode-controls label{color:#333;display:block;font-weight:700;margin-bottom:5px}.scale-mode-controls select{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px;width:100%}.scale-instructions{background:#e9ecef;border-left:4px solid #007bff;margin-bottom:15px}.scale-instructions p{color:#495057}.scale-points-status{background:#fff;border:1px solid #ddd;border-radius:4px;margin-bottom:15px;padding:10px}.scale-points-status p{color:#333;font-size:14px;margin:5px 0}.scale-actions{display:flex;flex-wrap:wrap;gap:10px}.scale-actions button{background-color:#007bff;border:1px solid #007bff;border-radius:4px;color:#fff;cursor:pointer;flex:1 1;font-size:14px;font-weight:700;min-width:150px;padding:10px 15px}.scale-actions button:hover{background-color:#0056b3;border-color:#0056b3}.scale-actions button:disabled{background-color:#6c757d;border-color:#6c757d;cursor:not-allowed}.scale-actions button:last-child{background-color:#28a745;border-color:#28a745}.scale-actions button:last-child:hover{background-color:#218838;border-color:#1e7e34}.scale-actions button:last-child:disabled{background-color:#6c757d;border-color:#6c757d}.calibration-point-0{background-color:red;border:2px solid #000}.calibration-point-10,.calibration-point-30{background-color:#0f0;border:2px solid #000}.calibration-line{stroke:#ff0;stroke-width:2;stroke-dasharray:5,5}.toolbar.scale-mode-active{background-color:#e3f2fd;border-color:#90caf9}.toolbar.scale-mode-active h4{color:#1565c0}.point-item.scale-point-active{background-color:#fff3e0;border:2px solid #ff9800}.point-item.scale-point-active .point-id{color:#f57c00;font-weight:700}.archive-upload{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin:30px 0;padding:20px}.archive-upload h3{border-bottom:2px solid #007bff;color:#333;font-size:1.3em;margin-bottom:20px;margin-top:0;padding-bottom:8px}.archive-drop-area{background-color:#fff;border:2px dashed #ccc;border-radius:8px;cursor:pointer;margin-bottom:20px;padding:40px 20px;text-align:center;transition:all .3s ease}.archive-drop-area:hover{background-color:#f8f9ff;border-color:#007bff}.archive-drop-area.drag-active{background-color:#e3f2fd;border-color:#007bff;transform:scale(1.02)}.archive-drop-area.has-file{background-color:#f8fff8;border-color:#28a745}.drop-area-content{align-items:center;display:flex;flex-direction:column;gap:10px}.drop-icon{font-size:48px;margin-bottom:10px}.drop-area-content p{color:#666;margin:5px 0}.drop-hint{color:#888;font-size:14px;font-style:italic}.browse-button{background-color:#007bff;border-radius:5px;color:#fff;cursor:pointer;margin-top:10px;padding:10px 20px;transition:background-color .3s ease}.browse-button:hover{background-color:#0056b3}.selected-file{align-items:center;background-color:#fff;border:1px solid #28a745;border-radius:8px;display:flex;gap:15px;padding:20px}.file-icon{flex-shrink:0;font-size:36px}.file-info{flex:1 1;text-align:left}.file-name{color:#333;font-weight:700;margin:0 0 5px}.file-size{color:#666;font-size:14px;margin:0 0 10px}.archive-details{background-color:#f8f9fa;border-radius:4px;font-size:13px;padding:10px}.archive-details p{color:#555;margin:3px 0}.reset-button{align-items:center;background:none;border:none;border-radius:50%;color:#dc3545;cursor:pointer;display:flex;font-size:20px;height:30px;justify-content:center;padding:5px;transition:background-color .3s ease;width:30px}.reset-button:hover{background-color:#ffebee}.reset-button:disabled{cursor:not-allowed;opacity:.5}.upload-actions{margin:20px 0;text-align:center}.upload-button{align-items:center;background-color:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:16px;gap:10px;padding:12px 24px;transition:background-color .3s ease}.upload-button:hover:not(:disabled){background-color:#218838}.upload-button:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.7}.spinner{animation:spin 1s linear infinite;border:2px solid #fff;border-radius:50%;border-top-color:#0000;height:16px;width:16px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.archive-info{background-color:#e9f7fe;border-left:4px solid #007bff;border-radius:6px;margin-top:30px;padding:15px}.archive-info h4{color:#007bff;margin-bottom:10px;margin-top:0}.archive-info ul{margin:0;padding-left:20px}.archive-info li{color:#555;font-size:14px;margin-bottom:5px}@media (max-width:768px){.archive-upload{padding:15px}.archive-drop-area{padding:30px 15px}.selected-file{flex-direction:column;gap:10px}.file-info,.selected-file{text-align:center}.upload-button{font-size:14px;padding:10px 20px}}.archive-drop-area.has-file{animation:fileSelected .5s ease}@keyframes fileSelected{0%{border-color:#ccc;transform:scale(1)}50%{border-color:#007bff;transform:scale(1.05)}to{border-color:#28a745;transform:scale(1)}}.archive-drop-area.error{background-color:#ffebee;border-color:#dc3545}.archive-drop-area.error .drop-icon{color:#dc3545}.archive-drop-area.success{background-color:#f8fff8;border-color:#28a745}.archive-drop-area.success .drop-icon{color:#28a745}.biometry-module{margin:0 auto;max-width:1400px;padding:20px}.biometry-module h2{border-bottom:2px solid #007bff;color:#333;padding-bottom:10px}.patient-info{border:1px solid #dee2e6}.form-group{margin-bottom:15px}.form-group label{color:#495057;font-weight:700;margin-bottom:5px}.form-group input,.form-group select{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;padding:8px;transition:border-color .3s ease}.form-group input:focus,.form-group select:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.image-upload{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:5px;margin:30px 0;padding:20px}.image-upload h3{color:#555}.biometry-main{display:flex;gap:20px;margin-top:20px;min-height:80vh}.image-container{display:flex;flex:1 1;gap:20px;min-height:600px}.canvas-container{flex:1 1;position:relative;transition:box-shadow .3s ease}.canvas-container:hover{box-shadow:0 5px 15px #0003}.canvas-container canvas{border:1px solid #ddd;box-shadow:0 2px 10px #0000001a;cursor:crosshair;max-width:100%}.delete-point-btn{background-color:#dc3545;border:none;border-radius:3px;color:#fff;cursor:pointer;padding:5px 10px;position:absolute;right:10px;top:10px}.delete-point-btn:hover{background-color:#c82333;transform:scale(1.05);transition:all .2s ease}.toolbar{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:5px;padding:15px;width:250px}.toolbar h4{border-bottom:1px solid #dee2e6;color:#495057;margin-top:0;padding-bottom:10px}.tools{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.tools button{background-color:#fff;border:1px solid #ccc;border-radius:4px;cursor:pointer;padding:8px 12px;transition:all .2s ease}.tools button:hover{background-color:#e9ecef;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.tools button.active{background-color:#007bff;border-color:#007bff;box-shadow:0 2px 5px #007bff4d;color:#fff}.tools button.active:hover{background-color:#0056b3;box-shadow:0 2px 5px #007bff66;transform:translateY(-2px)}.tools button:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}.tools button:disabled:hover{background-color:#6c757d;box-shadow:none;transform:none}.scale-control{border-top:1px solid #dee2e6;margin-top:20px;padding-top:20px}.scale-control label{color:#495057;display:block;font-weight:700;margin-bottom:5px}.scale-control select{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;padding:8px;width:100%}.scale-control button{background-color:#ffc107;border:none;border-radius:4px;color:#212529;cursor:pointer;margin-top:10px;padding:8px 12px;transition:all .2s ease;width:100%}.scale-control button:hover{background-color:#e0a800;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.scale-instructions{background-color:#e9f7ef;border:1px solid #c3e6cb;border-radius:4px;margin-top:15px;padding:10px}.scale-instructions p{color:#155724;font-size:14px;margin:5px 0}.selected-point-image{background-color:#e9f7fe;border:1px solid #bee5eb;border-radius:5px;margin-bottom:20px;padding:15px;text-align:center}.selected-point-image h4{color:#007bff;margin-bottom:10px;margin-top:0}.selected-point-image img{border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 5px #0000001a;max-height:200px;max-width:100%}.points-list{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:5px;flex-shrink:0;height:-webkit-fit-content;height:fit-content;margin:0;max-height:100vh;overflow-y:auto;padding:15px;width:300px}.calibration-section{background-color:#e9f7fe;border:1px solid #bee5eb;border-radius:5px;margin-bottom:20px;padding:15px;transition:opacity .3s ease}.calibration-section.hidden{border:none;height:0;margin:0;opacity:0;overflow:hidden;padding:0}.calibration-section h3{border-bottom:1px solid #bee5eb;color:#007bff;margin-top:0;padding-bottom:8px}.calibration-info{margin-bottom:15px}.calibration-info p{color:#155724;font-size:14px;margin-top:0}.calibration-info ol{margin:10px 0;padding-left:20px}.calibration-info li{color:#155724;font-size:13px;margin-bottom:5px}.calibration-status{margin-bottom:15px}.calibrated{color:#28a745;font-weight:700}.not-calibrated{color:#dc3545;font-weight:700}.points-list h3{border-bottom:1px solid #dee2e6;color:#555;margin-top:0;padding-bottom:10px}.points-grid{display:flex;flex-direction:column;gap:10px;margin-top:15px;max-height:calc(100vh - 200px);overflow-y:auto;padding:5px}.point-item{align-items:center;background-color:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;display:flex;justify-content:space-between;padding:10px;transition:all .2s ease}.point-item:hover{background-color:#f8f9fa;box-shadow:0 2px 5px #0000001a;transform:translateY(-2px)}.point-item.selected{animation:highlight .5s ease;background-color:#cce5ff;border-color:#007bff;font-weight:700}.point-item.next-point{animation:pulse 1s infinite;background-color:#fff3cd;border-color:#ffc107;box-shadow:0 2px 5px #0003;font-weight:700;position:relative;transform:scale(1.02);z-index:10}.point-item.placed{animation:highlight .5s ease;background-color:#d4edda;border-color:#c3e6cb;font-weight:700}@keyframes highlight{0%{background-color:#fff3cd}to{background-color:#d4edda}}.point-id{background-color:#e9f7fe;border-radius:4px;color:#007bff;font-weight:700;min-width:30px;padding:2px 8px;text-align:center}.point-name{color:#495057;flex:1 1;font-size:.9em;padding:0 10px}.point-status{background-color:#d4edda;color:#28a745}.point-next-indicator,.point-status{border-radius:4px;font-weight:700;min-width:20px;padding:2px 8px;text-align:center}.point-next-indicator{animation:pulse 1s infinite;background-color:#fff3cd;color:#ffc107}.visualization-controls{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:5px;margin-top:20px;padding:15px}.visualization-controls h4{border-bottom:1px solid #dee2e6;color:#333;margin-bottom:15px;margin-top:0;padding-bottom:10px}.control-group{margin-bottom:15px}.control-group h5{color:#555;font-size:1.1em;margin-bottom:10px;margin-top:0}.control-group label{color:#333;cursor:pointer;display:block;font-size:14px;margin-bottom:8px;transition:color .2s ease}.control-group label:hover{color:#007bff}.control-group input[type=checkbox]{cursor:pointer;margin-right:8px;transform:scale(1.2)}.control-buttons{display:flex;gap:10px;margin-bottom:15px}.control-buttons button{border:none;border-radius:4px;cursor:pointer;flex:1 1;font-size:14px;padding:8px 12px;transition:all .2s ease}.select-all-btn{background-color:#28a745;color:#fff}.deselect-all-btn{background-color:#dc3545;color:#fff}.control-buttons button:hover{box-shadow:0 2px 5px #0000001a;opacity:.9;transform:translateY(-2px)}.hint{color:#666;font-size:12px;font-style:italic;margin-top:5px}.loading{padding:20px;text-align:center}.error-message{border:1px solid #f5c6cb;border-radius:4px;color:#dc3545}.magnifier-glass{border:2px solid #000;border-radius:50%;box-shadow:0 0 10px #00000080;cursor:none;height:100px;pointer-events:none;position:absolute;width:100px;z-index:1000}@media (max-width:768px){.biometry-module{padding:10px}.biometry-main{flex-direction:column}.points-list{max-height:300px;width:100%}.image-container{flex-direction:column}.toolbar{width:100%}}@media print{.biometry-module{padding:0}.delete-point-btn,.image-upload button,.scale-control,.toolbar,.tools,.visualization-controls{display:none}.canvas-container{height:300px}}.modeling-module{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0 auto;max-width:1400px;min-height:100vh;padding:30px}.modeling-module h2{color:#2c3e50;font-size:2.8em;font-weight:700;margin-bottom:40px;padding-bottom:20px;position:relative;text-align:center}.modeling-module h2:after{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:2px;bottom:0;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:100px}.step-progress{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff;border:1px solid #ffffff4d;border-radius:20px;box-shadow:0 10px 40px #0000001a;margin-bottom:40px;padding:30px}.step-progress h3{align-items:center;color:#2c3e50;display:flex;font-size:1.5em;font-weight:600;gap:12px;margin-bottom:25px}.step-progress h3:before{content:"📋";font-size:1.3em}.steps-container{display:flex;justify-content:space-between;margin-top:30px;position:relative}.steps-container:before{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:2px;content:"";height:4px;left:25px;opacity:.2;position:absolute;right:25px;top:25px;z-index:1}.step{flex:1 1;position:relative;text-align:center;z-index:2}.step.completed .step-number{background:linear-gradient(135deg,#27ae60,#2ecc71);border-color:#27ae60;box-shadow:0 5px 15px #27ae6066;color:#fff;transform:scale(1.1)}.step.current .step-number{background:linear-gradient(135deg,#3498db,#2980b9);border-color:#3498db;box-shadow:0 5px 15px #3498db66;color:#fff;transform:scale(1.1)}.step-number{align-items:center;background:#fff;border:3px solid #e0e0e0;border-radius:50%;display:flex;font-size:1.2em;font-weight:700;height:50px;justify-content:center;margin:0 auto 15px;position:relative;transition:all .3s ease;width:50px;z-index:2}.step-name{color:#2c3e50;font-size:.95em;font-weight:500;transition:color .3s ease}.step.completed .step-name{color:#27ae60;font-weight:600}.step.current .step-name{color:#3498db;font-weight:600}.step-check{align-items:center;background:#27ae60;border-radius:50%;box-shadow:0 3px 10px #27ae604d;color:#fff;display:flex;font-size:.9em;height:24px;justify-content:center;position:absolute;right:15px;top:-8px;width:24px}.section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff;border:1px solid #ffffff4d;border-radius:20px;box-shadow:0 8px 30px #00000014;margin-bottom:30px;overflow:hidden;padding:30px;position:relative;transition:all .3s ease}.section:before{background:linear-gradient(90deg,#667eea,#764ba2);content:"";height:4px;left:0;position:absolute;right:0;top:0}.section:hover{box-shadow:0 15px 40px #0000001f;transform:translateY(-5px)}.section h3{align-items:center;border-bottom:2px solid #f0f0f0;color:#2c3e50;display:flex;font-size:1.4em;font-weight:600;gap:12px;margin-bottom:25px;padding-bottom:15px}.patient-info h3:before{content:"👤"}.models-upload h3:before{content:"📁"}.modeling-parameters h3:before{content:"⚙️"}.model-viewer h3:before{content:"👁️"}.modeling-tools h3:before{content:"🛠️"}.modeling-actions h3:before{content:"🚀"}.export-section h3:before{content:"💾"}.save-section h3:before{content:"💿"}.status-indicators h3:before{content:"📊"}.form-group{margin-bottom:25px}.form-group label{color:#2c3e50;display:block;font-size:.95em;font-weight:600;margin-bottom:8px}.form-group input,.form-group select{background:#fff;border:2px solid #e0e0e0;border-radius:10px;font-family:inherit;font-size:1em;padding:14px 18px;transition:all .3s ease;width:100%}.form-group input:focus,.form-group select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.upload-controls{align-items:center;background:#f8f9fa;border:2px dashed #dee2e6;border-radius:12px;display:flex;gap:20px;margin-bottom:25px;padding:20px}.load-test-btn{align-items:center;background:linear-gradient(135deg,#27ae60,#2ecc71);border:none;border-radius:10px;box-shadow:0 4px 15px #27ae6033;color:#fff;cursor:pointer;display:flex;font-size:1em;font-weight:600;gap:10px;padding:14px 28px;transition:all .3s ease}.load-test-btn:hover:not(:disabled){box-shadow:0 8px 25px #27ae604d;transform:translateY(-2px)}.load-test-btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.upload-hint{color:#6c757d;flex:1 1;font-size:.9em}.models-grid{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:20px}.model-card{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:2px solid #0000;border-radius:15px;overflow:hidden;padding:25px;position:relative;text-align:center;transition:all .3s ease}.model-card:before{background:linear-gradient(90deg,#667eea,#764ba2);content:"";height:4px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.model-card:hover{border-color:#667eea;box-shadow:0 10px 30px #0000001a;transform:translateY(-5px)}.model-card:hover:before{opacity:1}.model-card h4{color:#2c3e50;font-size:1.2em;font-weight:600;margin-bottom:20px}.model-loaded{display:flex;flex-direction:column;gap:20px}.model-info{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000000d;padding:15px}.model-info p{color:#2c3e50;font-size:.9em;margin:8px 0}.remove-btn{background:linear-gradient(135deg,#e74c3c,#c0392b);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9em;font-weight:600;padding:12px 20px;transition:all .3s ease}.remove-btn:hover:not(:disabled){box-shadow:0 5px 15px #e74c3c4d;transform:translateY(-2px)}.remove-btn:disabled{background:#95a5a6;box-shadow:none;cursor:not-allowed;transform:none}.model-upload{display:flex;flex-direction:column;gap:20px}.file-input{display:none}.upload-btn{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;font-size:1em;font-weight:600;gap:10px;justify-content:center;padding:16px 24px;transition:all .3s ease}.upload-btn:hover:not(:disabled){box-shadow:0 8px 25px #667eea4d;transform:translateY(-2px)}.upload-btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.file-hint{color:#6c757d;font-size:.85em;margin-top:10px}.parameters-grid{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.parameter-group{margin-bottom:25px}.parameter-group label{color:#2c3e50;display:block;font-size:.95em;font-weight:600;margin-bottom:10px}.parameter-input,.parameter-select{background:#fff;border:2px solid #e0e0e0;border-radius:10px;font-family:inherit;font-size:1em;padding:14px 18px;transition:all .3s ease;width:100%}.parameter-input:focus,.parameter-select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.parameter-hint{color:#6c757d;display:block;font-size:.85em;font-style:italic;margin-top:8px}.slider-container{align-items:center;display:flex;gap:20px;margin-top:10px}.parameter-slider{-webkit-appearance:none;background:#e0e0e0;border-radius:4px;flex:1 1;height:8px;outline:none;transition:background .3s ease}.parameter-slider:hover{background:#d0d0d0}.parameter-slider::-webkit-slider-thumb{-webkit-appearance:none;background:linear-gradient(135deg,#667eea,#764ba2);border:3px solid #fff;border-radius:50%;box-shadow:0 3px 10px #0003;cursor:pointer;height:24px;-webkit-transition:all .3s ease;transition:all .3s ease;width:24px}.parameter-slider::-moz-range-thumb{background:linear-gradient(135deg,#667eea,#764ba2);border:3px solid #fff;border-radius:50%;box-shadow:0 3px 10px #0003;cursor:pointer;height:24px;-moz-transition:all .3s ease;transition:all .3s ease;width:24px}.parameter-slider::-webkit-slider-thumb:hover{box-shadow:0 5px 15px #667eea4d;transform:scale(1.1)}.slider-value{color:#2c3e50;font-size:1.1em;font-weight:600;min-width:50px;text-align:center}.checkbox-label{color:#2c3e50;font-size:1em;font-weight:500;gap:12px}.checkbox-input{accent-color:#667eea;height:22px;width:22px}.viewer-controls{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff;justify-content:space-between;margin-bottom:20px;padding:20px}.control-btn{background:#fff3;border:1px solid #ffffff4d;border-radius:8px;font-size:.95em;font-weight:600;gap:10px;padding:12px 24px;transition:all .3s ease}.control-btn:hover{background:#ffffff4d;box-shadow:0 5px 15px #0003}.viewer-info{flex-wrap:wrap;gap:20px}.viewer-info span{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border-radius:20px;font-size:.9em;padding:8px 16px}.tools-panel{background:#f8f9fa;border:2px solid #e9ecef;border-radius:15px;padding:25px}.tool-buttons{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:25px}.tool-buttons button{align-items:center;background:#fff;border:2px solid #dee2e6;border-radius:12px;cursor:pointer;display:flex;flex:1 1;font-size:1em;font-weight:500;gap:12px;justify-content:center;min-width:140px;padding:18px 20px;transition:all .3s ease}.tool-buttons button:hover{background:#f0f7ff;border-color:#667eea;box-shadow:0 5px 15px #667eea1a;transform:translateY(-2px)}.tool-buttons button.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#0000;box-shadow:0 5px 20px #667eea4d;color:#fff;transform:translateY(-2px)}.tool-icon{font-size:1.3em}.tool-settings{background:#fff;border:2px solid #f0f0f0;border-radius:12px;padding:25px}.setting-group{margin-bottom:25px}.setting-group label{color:#2c3e50;display:block;font-size:.95em;font-weight:600;margin-bottom:10px}.brush-slider{-webkit-appearance:none;background:#e0e0e0;border-radius:4px;height:8px;margin-top:10px;outline:none;width:100%}.brush-slider::-webkit-slider-thumb{-webkit-appearance:none;background:linear-gradient(135deg,#ff7e5f,#feb47b);border:3px solid #fff;border-radius:50%;box-shadow:0 3px 10px #0003;cursor:pointer;height:24px;width:24px}.setting-hint{background:#f8f9fa;border-left:4px solid #667eea;border-radius:8px;color:#6c757d;font-size:.9em;margin-top:20px;padding:15px;text-align:center}.actions-grid{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.action-btn{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:15px;color:#fff;cursor:pointer;display:flex;font-size:1.1em;font-weight:600;gap:12px;justify-content:center;overflow:hidden;padding:25px 20px;position:relative;transition:all .3s ease}.action-btn:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.action-btn:hover:not(:disabled):before{left:100%}.action-btn:hover:not(:disabled){box-shadow:0 10px 30px #667eea4d;transform:translateY(-3px)}.action-btn:disabled{background:linear-gradient(135deg,#95a5a6,#7f8c8d);box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.action-btn.completed{background:linear-gradient(135deg,#27ae60,#2ecc71)}.assembly-progress{background:#fff;border:2px solid #f0f0f0;border-radius:12px;box-shadow:0 5px 20px #0000000d;grid-column:1/-1;padding:25px}.progress-label{align-items:center;color:#2c3e50;display:flex;font-size:1.1em;font-weight:600;gap:10px;margin-bottom:15px}.progress-bar{background:#ecf0f1;border-radius:6px;height:12px;margin-bottom:10px}.progress-fill{background:linear-gradient(90deg,#3498db,#2ecc71);border-radius:6px}.progress-percent{color:#6c757d;font-size:.9em;font-weight:600;text-align:right}.export-options{display:flex;flex-direction:column;gap:25px}.format-selector{align-items:center;background:#f8f9fa;border-radius:12px;display:flex;gap:20px;padding:20px}.format-selector label{color:#2c3e50;font-size:1em;font-weight:600}.format-select{background:#fff;border:2px solid #dee2e6;border-radius:8px;font-size:1em;min-width:200px;padding:12px 20px}.export-buttons{display:flex;flex-wrap:wrap;gap:15px}.export-btn{align-items:center;background:linear-gradient(135deg,#3498db,#2980b9);border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;flex:1 1;font-size:1em;font-weight:600;gap:10px;justify-content:center;min-width:180px;padding:18px 30px;transition:all .3s ease}.export-btn:hover:not(:disabled){box-shadow:0 8px 25px #3498db4d;transform:translateY(-2px)}.export-btn:disabled{cursor:not-allowed;opacity:.6}.export-btn.secondary{background:linear-gradient(135deg,#95a5a6,#7f8c8d);flex:0 1}.export-info{background:#f8f9fa;border-left:4px solid #3498db;border-radius:12px;margin-top:20px;padding:20px}.export-info p{color:#6c757d;font-size:.95em;margin-bottom:15px}.export-success{align-items:center;color:#27ae60;display:flex;font-size:1.1em;font-weight:600;gap:10px}.save-section{background:linear-gradient(135deg,#e74c3c,#c0392b);border-radius:20px;color:#fff;padding:40px;text-align:center}.save-btn{align-items:center;background:#fff;border:none;border-radius:15px;box-shadow:0 8px 30px #0003;color:#e74c3c;cursor:pointer;display:inline-flex;font-size:1.3em;font-weight:700;gap:15px;padding:25px 50px;transition:all .3s ease}.save-btn:hover:not(:disabled){box-shadow:0 15px 40px #0000004d;transform:translateY(-3px)}.save-btn:disabled{background:#f8f9fa;box-shadow:none;color:#95a5a6;cursor:not-allowed;opacity:.6;transform:none}.save-hint{color:#fffc;font-size:.95em;line-height:1.6;margin:20px auto 0;max-width:600px}.status-list{display:flex;flex-direction:column;gap:20px}.status-item{background:#f8f9fa;border-left:5px solid #bdc3c7;border-radius:12px;gap:20px;overflow:hidden;padding:20px;position:relative;transition:all .3s ease}.status-item:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transform:translateX(-100%);transition:transform .6s}.status-item:hover:before{transform:translateX(100%)}.status-item.completed{background:#27ae601a;border-left-color:#27ae60}.status-item.pending{opacity:.7}.status-icon{align-items:center;background:#fff;border-radius:50%;box-shadow:0 3px 10px #0000001a;display:flex;flex-shrink:0;font-size:1.2em;font-weight:700;height:36px;justify-content:center;width:36px}.status-item.completed .status-icon{background:#27ae60;box-shadow:0 5px 15px #27ae604d;color:#fff}.loading-indicator{align-items:center;background:linear-gradient(135deg,#3498db,#2980b9);box-shadow:0 10px 30px #3498db4d;display:flex;font-weight:600;gap:15px;right:30px}.error-message,.loading-indicator{animation:slideIn .3s ease;border-radius:12px;color:#fff;padding:20px 30px;position:fixed;top:30px;z-index:1000}.error-message{background:linear-gradient(135deg,#e74c3c,#c0392b);box-shadow:0 10px 30px #e74c3c4d}.error-message,.success-message{left:50%;max-width:500px;text-align:center;transform:translateX(-50%)}.success-message{animation:slideIn .3s ease;background:linear-gradient(135deg,#27ae60,#2ecc71);border-radius:12px;box-shadow:0 10px 30px #27ae604d;color:#fff;padding:20px 30px;position:fixed;top:30px;z-index:1000}@keyframes slideIn{0%{opacity:0;transform:translateX(-50%) translateY(-20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@media (max-width:1024px){.modeling-module{padding:20px}.steps-container{flex-direction:column;gap:30px}.steps-container:before{display:none}.step{align-items:center;display:flex;gap:20px}.step-number{flex-shrink:0;margin:0}.step-name{flex:1 1;text-align:left}.step-check{margin-left:auto;position:static}}@media (max-width:768px){.modeling-module h2{font-size:2.2em}.actions-grid,.models-grid,.parameters-grid{grid-template-columns:1fr}.tool-buttons{flex-direction:column}.tool-buttons button{min-width:auto}.export-buttons{flex-direction:column}.export-btn{min-width:auto}.viewer-controls{align-items:flex-start;flex-direction:column;gap:15px}.viewer-info{justify-content:flex-start}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.section{animation:fadeInUp .5s ease forwards}.section:first-child{animation-delay:.1s}.section:nth-child(2){animation-delay:.2s}.section:nth-child(3){animation-delay:.3s}.section:nth-child(4){animation-delay:.4s}.section:nth-child(5){animation-delay:.5s}.section:nth-child(6){animation-delay:.6s}.section:nth-child(7){animation-delay:.7s}.section:nth-child(8){animation-delay:.8s}.section:nth-child(9){animation-delay:.9s}.instructions-overlay{align-items:center;animation:fadeIn .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:absolute;right:0;top:0;z-index:1000}.instructions-modal{animation:scaleIn .3s ease;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-height:80vh;max-width:600px;overflow-y:auto;padding:40px}.instructions-modal h3{color:#2c3e50;font-size:1.8em;margin-bottom:25px;text-align:center}.instructions-content{display:flex;flex-direction:column;gap:20px}.instruction-step{background:#f8f9fa;border-left:4px solid #667eea;border-radius:12px;padding:20px}.instruction-step h4{align-items:center;color:#2c3e50;display:flex;gap:10px;margin-bottom:10px}.instruction-step p{color:#6c757d;line-height:1.6;margin:0}.close-instructions{background:none;border:none;color:#6c757d;cursor:pointer;font-size:24px;position:absolute;right:20px;top:20px;transition:color .3s ease}.close-instructions:hover{color:#e74c3c}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.viewer-left{flex:0 0 250px}.brush-controls-panel,.viewer-controls-panel,.viewer-help-panel,.viewer-instructions-panel{background:#fffffff2;border:1px solid #ddd;border-radius:10px;box-shadow:0 4px 6px #0000001a;padding:15px}.brush-controls-panel h4,.viewer-controls-panel h4,.viewer-help-panel h4,.viewer-instructions-panel h4{border-bottom:1px solid #eee;color:#333;font-size:16px;margin-bottom:15px;margin-top:0;padding-bottom:8px}.brush-controls-group,.viewer-controls-group{gap:12px}.brush-control,.viewer-control{gap:5px}.brush-control label,.viewer-control label{font-size:13px}.camera-controls{display:flex;gap:10px;margin-top:15px}.control-btn.small{flex:1 1;font-size:13px;padding:6px 12px}.brush-mode-btn{background:#f0f0f0;border-radius:5px;font-size:13px;gap:5px}.brush-mode-btn:hover{background:#e0e0e0}.help-list,.instructions-list{font-size:13px}.help-list li,.instructions-list li{line-height:1.4;margin-bottom:8px;padding-left:0}.close-help-btn{background:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;margin-top:10px;padding:5px 10px}.viewer-header{padding:10px}.viewer-info{font-size:13px}.viewer-info span{background:#e9ecef;border-radius:4px;gap:5px;padding:4px 8px}.tool-hint{border-left:3px solid #4a90e2;border-radius:5px;font-size:13px;margin-top:10px;padding:10px}.instructions-btn{background:#4a90e2;border-radius:5px;box-shadow:0 2px 4px #0003;font-size:14px;gap:5px;padding:10px 15px}.instructions-btn:hover{background:#357ae8}@media (max-width:1200px){.viewer-container{flex-direction:column}.viewer-left{flex:none;width:100%}.viewer-help-panel,.viewer-instructions-panel{margin-top:20px;max-width:100%;position:relative;right:auto;top:auto}}.viewer-container{display:flex;gap:20px;margin-top:20px}.viewer-left{display:flex;flex:0 0 280px;flex-direction:column;gap:20px}.viewer-center{display:flex;flex:1 1;flex-direction:column;gap:20px}.brush-controls-panel,.viewer-controls-panel,.viewer-help-panel,.viewer-instructions-panel,.viewer-status-panel{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:20px}.brush-controls-panel h4,.viewer-controls-panel h4,.viewer-help-panel h4,.viewer-instructions-panel h4,.viewer-status-panel h4{border-bottom:1px solid #eee;color:#333;font-size:16px;font-weight:600;margin-bottom:16px;margin-top:0;padding-bottom:10px}.brush-controls-group,.viewer-controls-group{display:flex;flex-direction:column;gap:15px}.brush-control,.viewer-control{display:flex;flex-direction:column;gap:8px}.brush-control label,.viewer-control label{color:#555;font-size:14px;font-weight:500}.brush-control input[type=range],.viewer-control input[type=range]{-webkit-appearance:none;background:#e0e0e0;border-radius:3px;height:6px;outline:none;width:100%}.brush-control input[type=range]::-webkit-slider-thumb,.viewer-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:#4a90e2;border-radius:50%;cursor:pointer;height:18px;-webkit-transition:background .2s;transition:background .2s;width:18px}.brush-control input[type=range]::-webkit-slider-thumb:hover,.viewer-control input[type=range]::-webkit-slider-thumb:hover{background:#357ae8}.brush-control input[type=range]:disabled,.viewer-control input[type=range]:disabled{cursor:not-allowed;opacity:.5}.checkbox-label{align-items:center;cursor:pointer;display:flex;gap:8px;-webkit-user-select:none;user-select:none}.checkbox-input{cursor:pointer;height:16px;width:16px}.camera-controls{border-top:1px solid #eee;margin-top:20px;padding-top:15px}.control-btn.small{font-size:14px;margin-top:8px;padding:8px 16px;width:100%}.brush-mode-selector{gap:8px;margin-top:10px}.brush-mode-btn{align-items:center;background:#f5f5f5;border:1px solid #ddd;display:flex;font-size:14px;gap:8px;justify-content:center;padding:10px;transition:all .2s ease}.brush-mode-btn:hover{background:#e8e8e8}.brush-mode-btn.active{background:#4a90e2;border-color:#4a90e2;box-shadow:0 2px 4px #4a90e233;color:#fff}.brush-mode-btn:disabled{cursor:not-allowed;opacity:.5}.viewer-status-panel{background:#f8f9fa;border-color:#dee2e6}.status-item{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:8px 0}.status-item:last-child{border-bottom:none}.status-label{color:#666;font-size:14px}.status-value{font-size:14px;font-weight:500}.status-value.ready{color:#28a745}.status-value.loading{color:#ffc107}.status-value.active{color:#4a90e2}.status-value.editing{color:#fd7e14}.progress-bar{background:#e9ecef;border-radius:4px;flex:1 1;height:8px;margin:0 10px;position:relative}.progress-fill{background:linear-gradient(90deg,#4a90e2,#357ae8)}.progress-text{color:#fff;font-size:11px;position:absolute;right:5px;text-shadow:0 1px 1px #0000004d;top:50%;transform:translateY(-50%)}.viewer-help-panel,.viewer-instructions-panel{max-width:300px;position:absolute;right:20px;top:20px;z-index:100}.viewer-help-panel{background:#fff3cd;border-color:#ffeaa7}.help-list,.instructions-list{font-size:14px;line-height:1.5;list-style:none;margin:0;padding-left:0}.help-list li,.instructions-list li{margin-bottom:10px;padding-left:20px;position:relative}.help-list li:before,.instructions-list li:before{color:#4a90e2;content:"•";font-size:16px;left:0;position:absolute}.help-list li:before{color:#ff9800}.help-list strong,.instructions-list strong{color:#333;font-weight:600}.viewer-header{align-items:center;background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;display:flex;justify-content:space-between;padding:15px}.viewer-info{color:#495057;display:flex;font-size:14px;gap:15px}.viewer-info span{align-items:center;background:#fff;border:1px solid #dee2e6;border-radius:6px;display:flex;gap:8px;padding:6px 12px}.tool-hint{background:#e7f3ff;border-left:4px solid #4a90e2;border-radius:6px;color:#06c;font-size:14px;margin-top:15px;padding:12px}.instructions-btn{align-items:center;background:linear-gradient(135deg,#4a90e2,#357ae8);border:none;border-radius:8px;box-shadow:0 4px 6px #0000001a;color:#fff;cursor:pointer;display:flex;font-size:15px;font-weight:500;gap:8px;padding:12px 20px;position:fixed;right:20px;top:20px;transition:all .3s ease;z-index:1000}.instructions-btn:hover{box-shadow:0 6px 12px #00000026;transform:translateY(-2px)}@media (max-width:1200px){.viewer-container{flex-direction:column}.viewer-left{flex:none;width:100%}.viewer-help-panel,.viewer-instructions-panel{margin-top:20px;max-width:100%;position:relative;right:auto;top:auto}.instructions-btn{align-self:flex-end;margin-bottom:20px;position:relative;right:auto;top:auto}}.model-stats-info{background:#ffffff1a;border-radius:6px;color:#ddd;font-size:14px;padding:8px}.model-stats-info .warning{color:#ff9800;margin-left:10px}.model-warning{color:#ff9800;font-size:12px;font-style:italic;margin-top:5px}.model-quality-note{background:#0003;border-left:3px solid #4a90e2;border-radius:6px;font-size:13px;margin-top:15px;padding:10px}.model-quality-note p{margin:5px 0}.model-quality-note em{color:#4a90e2;font-style:italic}.model-quality-note .warning{color:#ff9800;font-weight:700}.viewer-info .model-count{background:#4a90e24d;border-radius:4px;font-size:13px;padding:4px 10px}.instructions-footer{border-top:1px solid #ffffff1a;margin-top:20px;padding-top:15px}.tip-btn{background:#ff980033;border:1px solid #ff980066;border-radius:6px;color:#ff9800;cursor:pointer;font-size:13px;padding:8px 15px;transition:all .3s}.tip-btn:hover{background:#ff98004d}.tip{background:#ffc1071a;border-left:3px solid #ffc107;border-radius:6px;margin:10px 0;padding:8px}.three-d-viewer-container{background:#1a1a2e;border:1px solid #444;border-radius:8px;height:600px;overflow:hidden;position:relative;width:100%}.three-d-viewer-header{align-items:center;background:#000000b3;border-bottom:1px solid #444;color:#fff;display:flex;justify-content:space-between;padding:10px 15px}.viewer-title{align-items:center;display:flex;font-size:16px;font-weight:700;gap:10px}.viewer-title-icon{font-size:18px}.model-counter{font-size:12px;margin-left:10px;opacity:.7}.viewer-status{display:flex;font-size:12px;gap:10px}.viewer-status-item{align-items:center;background:#ffffff1a;border:1px solid #444;border-radius:4px;display:flex;gap:6px;padding:4px 10px}.viewer-status-icon{background:#888;border-radius:50%;height:8px;width:8px}.viewer-status-item.loading .viewer-status-icon{animation:pulse 1.5s infinite;background:#ff9800}.viewer-status-item.ready .viewer-status-icon{background:#4caf50}.viewer-status-item.fitting .viewer-status-icon{background:#2196f3}.viewer-status-item.active .viewer-status-icon{background:#9c27b0}.viewer-status-item.editing-mode .viewer-status-icon{background:#ff9800}.viewer-status-item.sculpt-mode .viewer-status-icon{background:#9c27b0}.viewer-status-item.success .viewer-status-icon{background:#4caf50}.test-badge{background:#ff9800;border-radius:3px;color:#000;font-size:10px;margin-left:5px;padding:1px 4px}.progress-bar{background:#fff3;border-radius:2px;height:4px;margin-left:5px;overflow:hidden;width:60px}.progress-fill{background:#2196f3;height:100%;transition:width .3s ease}.viewer-instructions{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000c;border:1px solid #444;border-radius:8px;color:#fff;left:10px;padding:15px;position:absolute;top:60px;width:300px;z-index:1000}.viewer-instructions.hidden{display:none}.viewer-instructions h3{color:#ff9800;font-size:14px;margin:0 0 10px}.instructions-list{font-size:12px;line-height:1.4;margin:0;padding-left:20px}.instructions-list li{margin-bottom:5px}.instructions-list strong{color:#4caf50}.model-stats-info{border-top:1px solid #444;display:flex;flex-direction:column;font-size:11px;gap:5px;margin-top:10px;padding-top:10px}.warning{color:#ff9800}.success{color:#4caf50}.viewer-canvas{cursor:grab;height:calc(100% - 60px);width:100%}.viewer-canvas.editing{cursor:crosshair}.viewer-canvas.sculpting{cursor:crosshair!important}.viewer-controls{bottom:15px;display:flex;gap:10px;left:50%;position:absolute;transform:translateX(-50%);z-index:100}.control-btn{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000b3;border:1px solid #444;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:18px;height:40px;justify-content:center;transition:all .2s;width:40px}.control-btn:hover{background:#ff98004d;border-color:#ff9800;transform:translateY(-2px)}.control-btn:disabled{cursor:not-allowed;opacity:.5}.control-btn.active{background:#ff980080;border-color:#ff9800;box-shadow:0 0 10px #ff980080}.viewer-tooltip{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000e6;border:1px solid #444;border-radius:8px;bottom:70px;color:#fff;display:none;left:50%;padding:15px;position:absolute;transform:translateX(-50%);width:400px;z-index:1000}.viewer-tooltip.show{display:block}.viewer-tooltip h4{color:#ff9800;font-size:14px;margin:0 0 10px}.viewer-tooltip ul{font-size:12px;line-height:1.4;margin:0;padding-left:20px}.viewer-tooltip li{margin-bottom:8px}.viewer-tooltip strong{color:#4caf50}.viewer-error{align-items:center;background:#f443361a;border:1px solid #f44336;border-radius:8px;color:#fff;display:flex;flex-direction:column;height:100%;justify-content:center;padding:20px;width:100%}.viewer-error h4{color:#f44336;margin:0 0 10px}.viewer-error p{margin:0 0 15px;text-align:center}.error-close-btn{background:#f44336;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 20px;transition:background .2s}.error-close-btn:hover{background:#d32f2f}.sculpt-controls-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000e6;border:1px solid #444;border-radius:8px;color:#fff;padding:15px;position:absolute;right:10px;top:60px;width:350px;z-index:1000}.sculpt-controls-panel h4{color:#ff9800;font-size:14px;margin:0 0 15px;text-align:center}.sculpt-tools{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,1fr);margin-bottom:15px}.sculpt-tool-btn{align-items:center;background:#ffffff1a;border:1px solid #555;border-radius:6px;color:#fff;cursor:pointer;display:flex;flex-direction:column;font-size:11px;justify-content:center;min-height:50px;padding:8px 5px;transition:all .2s}.sculpt-tool-btn:hover{background:#fff3;transform:translateY(-1px)}.sculpt-tool-btn.active{background:#ff98004d;border-color:#ff9800;box-shadow:0 0 8px #ff98004d}.tool-icon{font-size:16px;margin-bottom:4px}.tool-name{font-size:10px;line-height:1.2;text-align:center}.brush-settings{background:#ffffff0d;border-radius:6px;gap:12px;margin-bottom:15px;padding:10px}.brush-setting,.brush-settings{display:flex;flex-direction:column}.brush-setting{gap:6px}.brush-setting label{color:#ccc;display:flex;font-size:12px;justify-content:space-between}.brush-setting input[type=range]{-webkit-appearance:none;background:#333;border-radius:3px;cursor:pointer;height:6px;outline:none;width:100%}.brush-setting input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:#ff9800;border-radius:50%;cursor:pointer;height:16px;-webkit-transition:all .2s;transition:all .2s;width:16px}.brush-setting input[type=range]::-webkit-slider-thumb:hover{background:#ffb74d;transform:scale(1.1)}.brush-mode-selector{display:flex;gap:10px;margin-top:5px}.brush-mode-btn{background:#ffffff1a;border:1px solid #555;border-radius:6px;color:#fff;cursor:pointer;flex:1 1;font-size:12px;padding:8px;text-align:center;transition:all .2s}.brush-mode-btn:hover{background:#fff3}.brush-mode-btn.active{background:#4caf504d;border-color:#4caf50;box-shadow:0 0 8px #4caf504d}.brush-mode-btn:nth-child(2).active{background:#f443364d;border-color:#f44336;box-shadow:0 0 8px #f443364d}.sculpt-actions{display:flex;gap:8px}.sculpt-actions .action-btn{align-items:center;background:#ffffff1a;border:1px solid #555;border-radius:6px;color:#fff;cursor:pointer;display:flex;flex:1 1;font-size:12px;gap:5px;justify-content:center;padding:8px 5px;transition:all .2s}.sculpt-actions .action-btn:hover{background:#fff3;transform:translateY(-1px)}.sculpt-actions .action-btn.undo:hover{background:#2196f34d;border-color:#2196f3}.sculpt-actions .action-btn.redo:hover{background:#4caf504d;border-color:#4caf50}.sculpt-actions .action-btn.auto-fix:hover{background:#ffc1074d;border-color:#ffc107}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@media (max-width:768px){.three-d-viewer-container{height:400px}.sculpt-controls-panel{width:300px}.sculpt-tools{grid-template-columns:repeat(2,1fr)}.viewer-instructions,.viewer-tooltip{width:300px}}.brush-visualization{pointer-events:none;position:absolute;z-index:100}.file-transfer-demo{margin:0 auto;max-width:800px;padding:20px}.file-transfer-demo h2{color:#333;margin-bottom:30px;text-align:center}.file-transfer-demo h3{color:#555;margin-bottom:15px;margin-top:25px}.transfer-section,.upload-section{background-color:#f8f9fa;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:25px;padding:20px}.transfer-section div,.upload-section div{margin-bottom:15px}.transfer-section label,.upload-section label{color:#444;display:block;font-weight:700;margin-bottom:5px}.transfer-section select,.upload-section input,.upload-section textarea{border:1px solid #ddd;border-radius:4px;box-sizing:border-box;font-size:14px;padding:10px;width:100%}.upload-section textarea{min-height:80px;resize:vertical}.transfer-section button,.upload-section button{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;padding:12px 20px;transition:background-color .3s}.transfer-section button:hover,.upload-section button:hover{background-color:#0056b3}.files-list{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:20px}.files-list ul{list-style-type:none;padding:0}.files-list li{border-bottom:1px solid #eee;padding:10px}.files-list li:last-child{border-bottom:none}.files-list strong{color:#333}.App{text-align:center}.App-header{background-color:#282c34;color:#fff;padding:20px}.App-header h1{margin:0}.App-header p{margin:10px 0 0}.login-container{border:1px solid #ccc;border-radius:5px;box-shadow:0 2px 10px #0000001a;margin:100px auto;max-width:400px;padding:20px}.login-container h2{margin-bottom:20px;text-align:center}.login-container form div{margin-bottom:15px}.login-container label{display:block;font-weight:700;margin-bottom:5px}.login-container input{border:1px solid #ccc;border-radius:3px;box-sizing:border-box;padding:8px;width:100%}.login-container button{background-color:#007bff;border:none;border-radius:3px;color:#fff;cursor:pointer;padding:10px;width:100%}.login-container button:hover{background-color:#0056b3}.dashboard{margin:0 auto;max-width:1200px;padding:20px}.dashboard h2{border-bottom:2px solid #007bff;color:#333;padding-bottom:10px}.actions,.modules{margin:30px 0}.actions h3,.modules h3{color:#555}.modules ul{list-style-type:none;padding:0}.modules li{background-color:#f8f9fa;border-left:4px solid #007bff;border-radius:5px;margin:10px 0;padding:15px}.actions button{background-color:#007bff;margin:10px;padding:10px 20px}.actions button:hover{background-color:#0056b3}.patient-directory{margin:0 auto;max-width:1200px;padding:20px}.patient-directory h2{border-bottom:2px solid #007bff;color:#333;padding-bottom:10px}.directory-actions{margin:20px 0}.directory-actions button{background-color:#007bff;border:none;border-radius:5px;color:#fff;cursor:pointer;padding:10px 20px}.directory-actions button:hover{background-color:#0056b3}.add-patient-form{background-color:#f8f9fa;border-radius:5px;margin:20px 0;padding:20px}.add-patient-form h3{margin-top:0}.add-patient-form form div{margin-bottom:15px}.add-patient-form label{display:block;font-weight:700;margin-bottom:5px}.add-patient-form input,.add-patient-form select{border:1px solid #ccc;border-radius:3px;box-sizing:border-box;padding:8px;width:100%}.add-patient-form button{background-color:#007bff;border:none;border-radius:5px;color:#fff;cursor:pointer;margin-right:10px;padding:10px 20px}.add-patient-form button:hover{background-color:#0056b3}.add-patient-form button[type=button]{background-color:#6c757d}.add-patient-form button[type=button]:hover{background-color:#545b62}.patient-list{margin-top:30px}.patient-list h3{color:#555}.patient-list table{border-collapse:collapse;width:100%}.patient-list td,.patient-list th{border-bottom:1px solid #ddd;padding:12px;text-align:left}.patient-list th{background-color:#f2f2f2;font-weight:700}.patient-list tr:hover{background-color:#f5f5f5}.patient-list button{background-color:#28a745;border:none;border-radius:3px;color:#fff;cursor:pointer;padding:5px 10px}.patient-list button:hover{background-color:#218838}.file-library{margin:0 auto;max-width:1200px;padding:20px}.file-library h2{border-bottom:2px solid #007bff;color:#333;padding-bottom:10px}.library-actions{margin:20px 0}.library-actions button{background-color:#007bff;border:none;border-radius:5px;color:#fff;cursor:pointer;padding:10px 20px}.library-actions button:hover{background-color:#0056b3}.upload-file-form{background-color:#f8f9fa;border-radius:5px;margin:20px 0;padding:20px}.upload-file-form h3{margin-top:0}.upload-file-form form div{margin-bottom:15px}.upload-file-form label{display:block;font-weight:700;margin-bottom:5px}.upload-file-form input,.upload-file-form select{border:1px solid #ccc;border-radius:3px;box-sizing:border-box;padding:8px;width:100%}.upload-file-form button{background-color:#007bff;border:none;border-radius:5px;color:#fff;cursor:pointer;margin-right:10px;padding:10px 20px}.upload-file-form button:hover{background-color:#0056b3}.upload-file-form button[type=button]{background-color:#6c757d}.upload-file-form button[type=button]:hover{background-color:#545b62}.file-list{margin-top:30px}.file-list h3{color:#555}.file-list table{border-collapse:collapse;width:100%}.file-list td,.file-list th{border-bottom:1px solid #ddd;padding:12px;text-align:left}.file-list th{background-color:#f2f2f2;font-weight:700}.file-list tr:hover{background-color:#f5f5f5}.file-list button{background-color:#28a745;border:none;border-radius:3px;color:#fff;cursor:pointer;margin-right:5px;padding:5px 10px}.file-list button:hover{background-color:#218838}.file-list button:last-child{background-color:#dc3545}.file-list button:last-child:hover{background-color:#c82333}.storage-info{background-color:#f9f9f9;border:1px solid #ddd;border-radius:4px;margin-bottom:15px;padding:10px}.storage-info p{margin:5px 0}.warning{color:#ff6b6b;font-weight:700}.medical-card-generator{margin:0 auto;max-width:1200px;padding:20px}.medical-card-generator h2{border-bottom:2px solid #007bff;color:#333;padding-bottom:10px}.generator-settings{background-color:#f8f9fa;border-radius:5px;margin:20px 0;padding:20px}.generator-settings div{margin-bottom:15px}.generator-settings label{display:block;font-weight:700;margin-bottom:5px}.generator-settings select{border:1px solid #ccc;border-radius:3px;box-sizing:border-box;padding:8px;width:100%}.generate-action{margin:30px 0;text-align:center}.generate-action button{background-color:#28a745;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:18px;padding:15px 30px}.generate-action button:hover{background-color:#218838}.ct-module{margin:0 auto;max-width:1200px;padding:20px}.ct-module ol,.ct-module ul{list-style:none;margin:0;padding:0}.ct-module li{list-style:none}.ct-module input[type=checkbox]{appearance:none;-webkit-appearance:none;-moz-appearance:none}.ct-module li:before,.ct-module ol li:before,.ct-module ul li:before{content:none}.ct-module h2{border-bottom:2px solid #007bff;color:#333;padding-bottom:10px}.module-description{background-color:#e9f7fe;border-left:4px solid #007bff;color:#333;font-size:14px;margin-bottom:20px;padding:15px}.patient-info{background-color:#f8f9fa;border-radius:5px;margin:20px 0;padding:20px}.patient-info h3{margin-top:0}.ct-upload{margin:30px 0}.ct-upload h3{color:#555}.ct-upload input[type=file]{display:none}.ct-upload label{background-color:#007bff;border-radius:5px;color:#fff;cursor:pointer;display:inline-block;padding:10px 20px}.ct-upload label:hover{background-color:#0056b3}.ct-upload button{background-color:#dc3545;border:none;border-radius:3px;color:#fff;cursor:pointer;margin-left:10px;padding:5px 10px}.ct-upload button:hover{background-color:#c82333}.ct-upload .hint{color:#666;font-size:12px;margin-top:5px}.ct-upload .hint.note{color:#888;font-style:italic;margin-top:10px}.upload-mode-selector{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin-bottom:25px;padding:20px}.upload-mode-selector h4{color:#333;font-size:1.1em;margin-bottom:15px;margin-top:0}.mode-buttons{display:flex;flex-wrap:wrap;gap:15px}.mode-buttons button{align-items:center;background-color:#e9ecef;border:2px solid #ced4da;border-radius:6px;cursor:pointer;display:flex;flex:1 1;font-size:14px;font-weight:500;gap:8px;justify-content:center;min-width:200px;padding:12px 20px;transition:all .3s ease}.mode-buttons button:hover{background-color:#dee2e6;border-color:#adb5bd}.mode-buttons button.active{background-color:#007bff;border-color:#007bff;color:#fff}.mode-buttons button.active:hover{background-color:#0056b3;border-color:#0056b3}.folder-upload{margin-top:20px}@media (max-width:768px){.mode-buttons{flex-direction:column}.mode-buttons button{min-width:auto;width:100%}.upload-mode-selector{padding:15px}}.loading{color:#007bff;font-style:italic}.error-message{background-color:#f8d7da;border-radius:5px;color:#721c24;margin:10px 0;padding:10px}.ct-viewer-container{border:1px solid #ddd;border-radius:5px;display:flex;margin:30px 0;overflow:hidden}.viewer-controls{background-color:#f8f9fa;border-right:1px solid #ddd;padding:15px;width:250px}.viewer-controls h4{color:#555;margin-bottom:10px;margin-top:0}.viewer-controls button{background-color:#e9ecef;border:1px solid #ced4da;border-radius:3px;cursor:pointer;display:block;margin:5px 0;padding:8px;width:100%}.viewer-controls button.active{background-color:#007bff;border-color:#007bff;color:#fff}.viewer-controls button:hover:not(.active){background-color:#dee2e6}.window-level-controls div{margin:10px 0}.window-level-controls label{display:block;margin-bottom:5px}.window-level-controls input[type=range]{width:100%}.zoom-controls{text-align:center}.zoom-controls span{display:inline-block;margin:0 10px;min-width:50px}.pan-controls{text-align:center}.pan-controls button{margin:5px;padding:5px 10px}.viewer-display{align-items:center;background-color:#000;display:flex;flex:1 1;justify-content:center;min-height:500px;overflow:hidden}.viewer-canvas{position:relative;transform-origin:center}.image-placeholder{align-items:center;background-color:#333;border:1px dashed #666;color:#fff;display:flex;flex-direction:column;height:400px;justify-content:center;width:400px}.image-placeholder p{margin:10px 0;text-align:center}.annotation-dot,.annotation-marker{position:absolute}.annotation-dot{background-color:red;border-radius:50%;height:8px;transform:translate(-50%,-50%);width:8px}.annotation-text{background-color:#000000b3;border-radius:3px;color:#fff;font-size:12px;padding:2px 5px;position:absolute;transform:translate(10px,-10px);white-space:nowrap}.measurements-section{margin:30px 0}.measurement-group{margin-bottom:30px}.measurement-group h4{border-bottom:1px solid #eee;color:#555;padding-bottom:5px}.measurements table{border-collapse:collapse;margin-top:10px;width:100%}.measurements td,.measurements th{border-bottom:1px solid #ddd;padding:12px;text-align:left}.measurements th{background-color:#f2f2f2;font-weight:700}.measurements tr:hover{background-color:#f5f5f5}.measurements input[type=number]{border:1px solid #ccc;border-radius:3px;padding:5px;width:80px}.measurement-description{color:#666;font-size:14px;font-style:italic;margin-top:10px}.report-section{margin:30px 0}.cornerstone-viewport{height:100%;width:100%}.report-section h3{color:#555}.report-content{background-color:#f8f9fa;border-radius:5px;padding:20px}.report-content button{background-color:#28a745;border:none;border-radius:5px;color:#fff;cursor:pointer;margin-top:10px;padding:10px 20px}.report-content button:hover{background-color:#218838}.actions{margin:30px 0;text-align:center}.actions button{background-color:#28a745;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:18px;padding:15px 30px}.actions button:disabled{background-color:#6c757d;cursor:not-allowed}.actions button:hover:not(:disabled){background-color:#218838}.uploaded-files-list{background-color:#e9f7ef;border:1px solid #d4edda;border-radius:5px;margin-top:20px;padding:15px}.uploaded-files-list h4{color:#155724;margin-bottom:10px;margin-top:0}.uploaded-files-list ul{margin:0;padding-left:20px}.uploaded-files-list li{color:#155724;font-size:14px;margin-bottom:5px}.plane-selector{border-top:1px solid #ddd;margin-top:20px;padding-top:15px}.plane-buttons{display:flex;flex-direction:column;gap:5px}.plane-buttons button{background-color:#e9ecef;border:1px solid #ced4da;border-radius:3px;cursor:pointer;padding:8px;text-align:left;width:100%}.plane-buttons button.active{background-color:#007bff;border-color:#007bff;color:#fff}.plane-buttons button:hover:not(.active){background-color:#dee2e6}