:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}body{margin:0;padding:0;min-width:320px;min-height:100vh;overflow-x:hidden}button{font-family:inherit}@media screen and (max-width:768px){body,input,select,textarea{font-size:16px}}button,a{touch-action:manipulation}body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}*{box-sizing:border-box}#root{max-width:100%;margin:0;padding:0;min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column;background-color:#f5f5f5}.app-header{background:linear-gradient(135deg,#4a90e2,#357abd);color:#fff;padding:1rem;text-align:center;box-shadow:0 2px 4px #0000001a}.app-header h1{margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.app-nav{display:flex;gap:.75rem;justify-content:center;margin-top:.25rem}.header-nav-btn{color:#fff;text-decoration:none;font-size:.85rem;padding:.3rem .9rem;border:1.5px solid rgba(255,255,255,.7);border-radius:20px;opacity:.9;transition:opacity .15s,background .15s}.header-nav-btn:hover{opacity:1;background:#ffffff26}.app-main{flex:1;padding:1rem;max-width:500px;width:100%;margin:0 auto}.status-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center}.spinner{width:60px;height:60px;border:4px solid #f3f3f3;border-top:4px solid #4A90E2;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.spinner.small{width:30px;height:30px;border-width:3px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.checkmark{width:80px;height:80px;border-radius:50%;background-color:#4caf50;color:#fff;display:flex;align-items:center;justify-content:center;font-size:3rem;margin-bottom:1rem;animation:scaleIn .3s ease-out}@keyframes scaleIn{0%{transform:scale(0)}50%{transform:scale(1.1)}to{transform:scale(1)}}.status-screen.success h2{color:#4caf50;margin:0 0 .5rem}.status-screen p{color:#666;font-size:1rem}.intake-form{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.intake-form h2{margin:0 0 1.5rem;color:#333;font-size:1.25rem}.scan-section{display:flex;flex-direction:column;gap:1rem;align-items:center}.scan-button{width:100%;padding:1rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.scan-button.primary{background:#4a90e2;color:#fff}.scan-button.primary:hover{background:#357abd}.scan-button.secondary{background:#f0f0f0;color:#333}.scan-button.secondary:hover{background:#e0e0e0}.or-text{color:#999;margin:.5rem 0;font-size:.9rem}.camera-view{position:relative}.camera-container{position:relative;overflow:hidden;border-radius:8px}.camera-video{width:100%;display:block;background:#000}.camera-flash{position:absolute;inset:0;background:#fff;animation:flash .15s ease-out forwards;pointer-events:none}.camera-controls{display:flex;gap:1rem;margin-top:1rem}.capture-button{flex:1;padding:1rem;background:#4caf50;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer}.capture-button:hover{background:#45a049}.cancel-button{padding:1rem;background:#f44336;color:#fff;border:none;border-radius:8px;font-size:1rem;cursor:pointer}.cancel-button:hover{background:#da190b}.image-preview{margin-bottom:1rem;position:relative}.image-preview img{width:100%;border-radius:8px;display:block}.retake-button{margin-top:.5rem;width:100%;padding:.75rem;background:#ff9800;color:#fff;border:none;border-radius:8px;font-size:.9rem;cursor:pointer}.retake-button:hover{background:#f57c00}.processing{display:flex;flex-direction:column;align-items:center;padding:1.5rem 0;gap:.5rem}.processing p{color:#666;margin:0}.form-fields{display:flex;flex-direction:column;gap:1rem}.field{display:flex;flex-direction:column;gap:.5rem}.field label{font-weight:600;color:#333;font-size:.9rem}.field input{padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;font-family:inherit}.field input:focus{outline:none;border-color:#4a90e2;box-shadow:0 0 0 3px #4a90e21a}.submit-button{width:100%;padding:1rem;background:#4caf50;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;margin-top:.5rem}.submit-button:hover{background:#45a049}.microscope-capture{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.microscope-capture h2{margin:0 0 1.5rem;color:#333;font-size:1.25rem;text-align:center}.selection-section{display:flex;flex-direction:column;gap:1.5rem}.instruction{text-align:center;font-weight:600;color:#333;margin:0}.button-group{display:flex;flex-direction:column;gap:1rem}.interval-group{flex-direction:row;justify-content:center;gap:.75rem}.interval-button{flex:1;padding:.75rem;background:#f0f0f0;color:#333;border:2px solid #ddd;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.interval-button:hover{background:#e0e0e0;border-color:#ccc}.interval-button.selected{background:#4a90e2;color:#fff;border-color:#4a90e2}.count-button{width:100%;padding:1.25rem;background:#4a90e2;color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .2s}.count-button:hover{background:#357abd;transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.back-button{width:100%;padding:1rem;background:#f0f0f0;color:#333;border:none;border-radius:8px;font-size:1rem;cursor:pointer}.back-button:hover{background:#e0e0e0}.capture-view{position:relative;width:100%}.video-container{position:relative;overflow:hidden;border-radius:8px}.microscope-video{width:100%;background:#000;display:block}.capture-flash{position:absolute;inset:0;background:#fff;animation:flash .15s ease-out forwards;pointer-events:none;z-index:10}@keyframes flash{0%{opacity:1}to{opacity:0}}.capture-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:1rem;background:linear-gradient(to bottom,rgba(0,0,0,.6) 0%,transparent 30%,transparent 70%,rgba(0,0,0,.6) 100%);border-radius:8px}.progress-container{background:#000c;padding:1rem;border-radius:8px;text-align:center}.progress-text{display:flex;align-items:baseline;justify-content:center;gap:.5rem;margin-bottom:.75rem}.current-count{font-size:3rem;font-weight:700;color:#4caf50;line-height:1}.separator{font-size:2rem;color:#fff;opacity:.6}.total-count{font-size:2rem;color:#fff;opacity:.8}.progress-bar{width:100%;height:8px;background:#fff3;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;background:linear-gradient(90deg,#4caf50,#8bc34a);transition:width .3s ease;border-radius:4px}.capture-message{color:#fff;font-size:.9rem;margin:0;opacity:.9}.cancel-capture-button{padding:.75rem 1.5rem;background:#f44336e6;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;align-self:center}.cancel-capture-button:hover{background:#f44336}.complete-section{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:2rem 0;text-align:center}.success-icon{width:80px;height:80px;border-radius:50%;background:#4caf50;color:#fff;display:flex;align-items:center;justify-content:center;font-size:3rem;animation:scaleIn .3s ease-out}.complete-section h3{margin:0;color:#333;font-size:1.5rem}.summary{color:#666;margin:0;font-size:1rem}.action-buttons{display:flex;flex-direction:column;gap:1rem;width:100%}.primary-button{width:100%;padding:1rem;background:#4caf50;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer}.primary-button:hover{background:#45a049}.secondary-button{width:100%;padding:1rem;background:#f0f0f0;color:#333;border:none;border-radius:8px;font-size:1rem;cursor:pointer}.secondary-button:hover{background:#e0e0e0}.review-dashboard{min-height:100vh;background:#f5f5f5}.review-header{background:#2c3e50;color:#fff;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.review-header h1{margin:0;font-size:1.5rem}.header-actions{display:flex;align-items:center;gap:1rem}.last-refresh{font-size:.85rem;opacity:.8}.refresh-btn{background:#3498db;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem}.refresh-btn:hover{background:#2980b9}.refresh-btn:disabled{opacity:.6;cursor:not-allowed}.billing-link{background:#27ae60;color:#fff;text-decoration:none;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;transition:background .2s}.billing-link:hover{background:#219a52}.review-main{max-width:1200px;margin:0 auto;padding:2rem}.cases-header{margin-bottom:1rem}.cases-header h2{margin:0;color:#2c3e50;font-size:1.25rem}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem;color:#666}.loading-state .spinner{width:40px;height:40px;border:3px solid #ddd;border-top-color:#3498db;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.error-banner{background:#e74c3c;color:#fff;padding:.75rem 2rem;display:flex;justify-content:space-between;align-items:center}.error-banner button{background:#fff;color:#e74c3c;border:none;padding:.25rem .75rem;border-radius:4px;cursor:pointer}.empty-state{text-align:center;padding:4rem 2rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.empty-state p{margin:0;color:#666;font-size:1.1rem}.empty-hint{margin-top:.5rem!important;font-size:.9rem!important;opacity:.7}.cases-table{width:100%;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;border-collapse:collapse;overflow:hidden}.cases-table th,.cases-table td{padding:1rem;text-align:left;border-bottom:1px solid #eee}.cases-table th{background:#f8f9fa;font-weight:600;color:#2c3e50;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.cases-table tbody tr:hover{background:#f8f9fa}.cases-table tbody tr:last-child td{border-bottom:none}.horse-name{font-weight:500;text-transform:capitalize}.cells-detected{color:#27ae60;font-weight:600}.cells-zero{color:#95a5a6}.actions-cell{display:flex;gap:.5rem}.review-btn{display:inline-block;background:#3498db;color:#fff;text-decoration:none;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;transition:background .2s}.review-btn:hover{background:#2980b9}.delete-btn{display:inline-block;background:#e74c3c;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;cursor:pointer;transition:background .2s}.delete-btn:hover{background:#c0392b}.cases-section{margin-bottom:2rem}.past-reports-section{margin-top:3rem}.past-reports-section .cases-header h2{color:#7f8c8d}.past-reports-table{opacity:.95}.download-btn{display:inline-block;background:#27ae60;color:#fff;text-decoration:none;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;cursor:pointer;transition:background .2s}.download-btn:hover{background:#1e8449}.no-report{color:#95a5a6;font-style:italic}.modal-content{background:#fff;padding:2rem;border-radius:8px;max-width:400px;width:90%;box-shadow:0 4px 20px #0003}.delete-modal h3{margin:0 0 1rem;color:#2c3e50}.delete-modal p{margin:.5rem 0;color:#555}.case-id-display{font-weight:600;text-transform:capitalize;color:#2c3e50!important;background:#f8f9fa;padding:.5rem;border-radius:4px;text-align:center}.warning-text{color:#e74c3c!important;font-size:.9rem}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.modal-actions .cancel-btn{background:#ecf0f1;color:#2c3e50;border:none;padding:.75rem 1.25rem;border-radius:4px;cursor:pointer;font-size:.95rem}.modal-actions .cancel-btn:hover{background:#bdc3c7}.modal-actions .confirm-delete-btn{background:#e74c3c;color:#fff;border:none;padding:.75rem 1.25rem;border-radius:4px;cursor:pointer;font-size:.95rem}.modal-actions .confirm-delete-btn:hover{background:#c0392b}.modal-actions button:disabled{opacity:.6;cursor:not-allowed}.case-review{min-height:100vh;background:#f5f5f5}.case-header{background:#2c3e50;color:#fff;padding:1rem 2rem;display:flex;align-items:center;gap:2rem}.case-header h1{margin:0;font-size:1.25rem;font-weight:500}.back-link{color:#fff;text-decoration:none;opacity:.8;font-size:.9rem}.back-link:hover{opacity:1}.loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem;color:#666}.error-state h2{color:#e74c3c;margin-bottom:.5rem}.error-state .back-link{color:#3498db;margin-top:1rem}.case-content{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;padding:1.5rem;max-width:1600px;margin:0 auto}@media(max-width:1200px){.case-content{grid-template-columns:1fr}}.left-panel,.right-panel{display:flex;flex-direction:column;gap:1rem}.form-section{background:#fff;border-radius:8px;padding:1.25rem;box-shadow:0 2px 4px #0000001a}.form-section h3{margin:0 0 1rem;font-size:1rem;color:#2c3e50;border-bottom:1px solid #eee;padding-bottom:.5rem}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.form-field{display:flex;flex-direction:column;gap:.25rem}.form-field.full-width{grid-column:1 / -1}.form-field label{font-size:.8rem;color:#666;font-weight:500}.form-field input,.form-field select,.form-field textarea{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2px #3498db33}.form-field textarea{resize:vertical;min-height:60px}.view-intake-btn{background:#95a5a6;color:#fff;border:none;padding:.75rem;border-radius:4px;cursor:pointer;font-size:.9rem}.view-intake-btn:hover{background:#7f8c8d}.intake-form-panel{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.intake-form-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#34495e;color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none}.intake-form-header:hover{background:#2c3e50}.intake-form-header h3{margin:0;font-size:.95rem;font-weight:500;display:flex;align-items:center;gap:.5rem}.collapse-icon{font-size:.75rem;transition:transform .2s}.popout-btn{background:#fff3;border:none;color:#fff;width:28px;height:28px;border-radius:4px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center}.popout-btn:hover{background:#ffffff4d}.intake-form-content{background:#1a1a1a;max-height:400px;overflow:auto}.intake-form-content img{width:100%;display:block;cursor:zoom-in}.intake-form-panel.collapsed .intake-form-content{display:none}.image-section{background:#fff;border-radius:8px;padding:1.25rem;box-shadow:0 2px 4px #0000001a}.image-section h3{margin:0 0 1rem;font-size:1rem;color:#2c3e50}.image-viewer{position:relative}.image-container{position:relative;display:flex;align-items:center;background:#000;border-radius:4px;overflow:hidden}.image-container img{width:100%;height:300px;object-fit:contain;cursor:pointer}.nav-btn{position:absolute;top:50%;transform:translateY(-50%);background:#ffffffe6;border:none;width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:1.2rem;z-index:10}.nav-btn.prev{left:10px}.nav-btn.next{right:10px}.nav-btn:hover{background:#fff}.image-info{display:flex;justify-content:space-between;align-items:center;margin-top:.75rem;font-size:.85rem;color:#666}.detection-info{font-size:.8rem;color:#27ae60}.no-images{text-align:center;color:#999;padding:2rem}.differential-section{background:#fff;border-radius:8px;padding:1.25rem;box-shadow:0 2px 4px #0000001a}.differential-section h3{margin:0 0 1rem;font-size:1rem;color:#2c3e50}.differential-table{width:100%;border-collapse:collapse}.differential-table th,.differential-table td{padding:.5rem;text-align:left;border-bottom:1px solid #eee}.differential-table th{font-size:.8rem;color:#666;font-weight:500}.differential-table input{width:70px;padding:.35rem;border:1px solid #ddd;border-radius:4px;text-align:right;font-size:.9rem}.differential-table input:focus{outline:none;border-color:#3498db}.pct-cell{text-align:right;color:#666;font-size:.9rem}.total-row{background:#f8f9fa}.total-row td{border-bottom:none}.extra-fields{display:flex;gap:1.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #eee}.form-field.inline{flex-direction:row;align-items:center;gap:.5rem}.form-field.inline input{width:70px}.form-field.calculated{background:#f8f9fa;padding:.5rem .75rem;border-radius:4px}.calculated-value{font-weight:600;color:#2c3e50}.action-buttons{display:flex;justify-content:flex-end;gap:1rem;padding:1rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.cancel-btn{background:#95a5a6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;text-decoration:none;font-size:.9rem}.cancel-btn:hover{background:#7f8c8d}.finalize-btn{background:#27ae60;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500}.finalize-btn:hover{background:#219a52}.finalize-btn:disabled{background:#95a5a6;cursor:not-allowed}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:8px;padding:1.5rem;max-width:400px;width:90%}.modal.large{max-width:800px;max-height:90vh;overflow:auto}.modal h3{margin:0 0 1rem;color:#2c3e50}.modal-details{background:#f8f9fa;padding:1rem;border-radius:4px;margin:1rem 0}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666}.intake-form-image{width:100%;max-height:70vh;object-fit:contain}.spinner{width:40px;height:40px;border:3px solid #ddd;border-top-color:#3498db;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.spinner.small{width:24px;height:24px;border-width:2px;margin-bottom:0}.success-modal{max-width:500px;width:95%}.success-header{text-align:center;margin-bottom:1.5rem}.success-icon{width:60px;height:60px;background:#27ae60;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;margin:0 auto 1rem}.success-header h3{margin:0;color:#27ae60;font-size:1.25rem}.success-content{display:flex;flex-direction:column;gap:1.25rem}.report-loading{display:flex;flex-direction:column;align-items:center;padding:2rem;color:#666}.report-loading p{margin:.75rem 0 0}.download-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;background:#3498db;color:#fff;text-decoration:none;padding:.875rem 1.5rem;border-radius:6px;font-size:1rem;font-weight:500;transition:background .2s}.download-btn:hover{background:#2980b9}.download-btn:before{content:"↓";font-size:1.2rem}.report-note{text-align:center;color:#666;font-size:.9rem;background:#f8f9fa;padding:1rem;border-radius:6px;margin:0}.email-section{display:flex;flex-direction:column;gap:.5rem}.email-section label{font-size:.9rem;font-weight:500;color:#2c3e50}.email-textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:.85rem;font-family:inherit;resize:vertical;min-height:200px;line-height:1.5}.email-textarea:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2px #3498db33}.copy-btn{align-self:flex-end;background:#95a5a6;color:#fff;border:none;padding:.625rem 1.25rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background .2s}.copy-btn:hover{background:#7f8c8d}.copy-btn.success{background:#27ae60}.primary-btn{background:#2c3e50;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:.95rem;font-weight:500;width:100%}.primary-btn:hover{background:#1a252f}.billing-page{min-height:100vh;background:#f5f5f5}.billing-header{background:#2c3e50;color:#fff;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.billing-header h1{margin:0;font-size:1.5rem}.back-link{color:#fff;text-decoration:none;padding:.5rem 1rem;background:#ffffff1a;border-radius:4px;font-size:.9rem;transition:background .2s}.back-link:hover{background:#fff3}.billing-main{max-width:900px;margin:0 auto;padding:2rem}.error-banner{background:#e74c3c;color:#fff;padding:.75rem 1rem;border-radius:8px;margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center}.error-banner button{background:#fff;color:#e74c3c;border:none;padding:.25rem .75rem;border-radius:4px;cursor:pointer;font-size:.85rem}.billing-section{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:1.5rem;overflow:hidden}.section-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:#f8f9fa;border-bottom:1px solid #eee}.step-number{width:28px;height:28px;background:#3498db;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem}.section-header h2{margin:0;font-size:1.1rem;color:#2c3e50}.section-content{padding:1.5rem}.file-upload-row{display:flex;align-items:center;gap:1rem}.file-upload-area{flex:1}.file-upload-area input[type=file]{display:none}.file-upload-label{display:block;padding:1.5rem;border:2px dashed #ddd;border-radius:8px;text-align:center;cursor:pointer;transition:all .2s}.file-upload-label:hover{border-color:#3498db;background:#f8f9fa}.file-placeholder,.file-selected{display:flex;align-items:center;justify-content:center;gap:.5rem;color:#666}.file-selected{color:#27ae60;font-weight:500}.file-icon{font-size:1.5rem}.template-link{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem;color:#3498db;text-decoration:none;border-radius:8px;transition:all .2s}.template-link:hover{background:#f0f7ff}.template-icon{font-size:1.5rem}.template-text{font-size:.7rem;text-transform:uppercase;letter-spacing:.5px}.customer-status{display:flex;align-items:center;gap:.75rem;padding:1rem;border-radius:8px;margin-bottom:1rem}.customer-status.loading{background:#f8f9fa;color:#666}.customer-status.success{background:#d4edda;color:#155724}.customer-status.warning{background:#fff3cd;color:#856404}.status-icon{font-size:1.25rem}.status-details{display:flex;flex-direction:column;gap:.25rem}.customer-count{font-weight:600}.last-synced{font-size:.85rem;opacity:.8}.customer-upload input[type=file]{display:none}.upload-btn{display:inline-block;background:#f8f9fa;color:#2c3e50;border:1px solid #ddd;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .2s}.upload-btn:hover:not(.disabled){background:#e9ecef}.upload-btn.disabled{opacity:.6;cursor:not-allowed}.process-section{text-align:center;margin:2rem 0}.process-btn{background:#27ae60;color:#fff;border:none;padding:1rem 3rem;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:background .2s;display:inline-flex;align-items:center;gap:.75rem}.process-btn:hover:not(:disabled){background:#219a52}.process-btn:disabled{background:#bdc3c7;cursor:not-allowed}.spinner{width:40px;height:40px;border:3px solid #ddd;border-top-color:#3498db;border-radius:50%;animation:spin 1s linear infinite}.spinner.small{width:20px;height:20px;border-width:2px}@keyframes spin{to{transform:rotate(360deg)}}.results-section{margin-top:2rem}.results-header{margin-bottom:1.5rem}.results-header h2{margin:0 0 .5rem;color:#2c3e50}.results-summary{color:#666;font-size:.9rem}.results-summary .separator{margin:0 .5rem;opacity:.5}.months-list{display:flex;flex-direction:column;gap:1rem}.month-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.month-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;cursor:pointer;transition:background .2s}.month-header:hover{background:#f8f9fa}.month-title{display:flex;align-items:center;gap:.75rem}.expand-icon{color:#999;font-size:.8rem;transition:transform .2s}.expand-icon.expanded{transform:rotate(90deg)}.month-title h3{margin:0;font-size:1.1rem;color:#2c3e50}.month-summary{display:flex;align-items:center;gap:1rem}.invoice-count{color:#27ae60;font-weight:500}.new-customer-count{color:#e67e22;font-weight:500}.new-customer-count.warning{background:#fff3cd;padding:.25rem .5rem;border-radius:4px}.month-total{font-weight:600;color:#2c3e50}.month-details{border-top:1px solid #eee;padding:1.5rem}.invoice-group{margin-bottom:1.5rem}.invoice-group:last-child{margin-bottom:0}.invoice-group.new-customers{background:#fff9e6;margin:1.5rem -1.5rem -1.5rem;padding:1.5rem}.group-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.group-header h4{margin:0;color:#2c3e50;font-size:1rem}.group-note{margin:0 0 1rem;color:#856404;font-size:.9rem;font-style:italic}.download-btn{background:#27ae60;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background .2s}.download-btn:hover{background:#219a52}.download-btn.secondary{background:#e67e22}.download-btn.secondary:hover{background:#d35400}.invoice-table{width:100%;border-collapse:collapse;font-size:.9rem}.invoice-table th,.invoice-table td{padding:.75rem;text-align:left;border-bottom:1px solid #eee}.invoice-table th{background:#f8f9fa;font-weight:600;color:#2c3e50;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px}.invoice-table tbody tr:hover{background:#f8f9fa}.invoice-table tbody tr:last-child td{border-bottom:none}.mismatch-section{border:2px solid #e67e22}.mismatch-section .section-header.warning-header{background:#fff9e6;border-bottom-color:#e67e22}.step-number.warning{background:#e67e22;font-size:1.1rem}.mismatch-intro{margin:0 0 1.5rem;color:#666;line-height:1.5}.mismatch-list{display:flex;flex-direction:column;gap:1rem}.mismatch-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f8f9fa;border-radius:8px;border:1px solid #e0e0e0}.mismatch-clinic{flex:0 0 auto;max-width:250px}.mismatch-clinic .clinic-name{display:block;font-weight:600;color:#2c3e50;word-break:break-word}.mismatch-clinic .sample-count{display:block;font-size:.85rem;color:#666;margin-top:.25rem}.mismatch-arrow{flex:0 0 auto;color:#999;font-size:1.25rem}.mismatch-select{flex:1;min-width:0}.mismatch-select select{width:100%;padding:.6rem .75rem;font-size:.95rem;border:1px solid #ccc;border-radius:6px;background:#fff;cursor:pointer;transition:border-color .2s,box-shadow .2s}.mismatch-select select:hover{border-color:#3498db}.mismatch-select select:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db26}.mismatch-actions{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #eee;display:flex;flex-direction:column;align-items:center;gap:.75rem}.save-aliases-btn{background:#e67e22;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s;display:flex;align-items:center;gap:.5rem}.save-aliases-btn:hover:not(:disabled){background:#d35400}.save-aliases-btn:disabled{background:#bdc3c7;cursor:not-allowed}.save-aliases-btn .alias-count{background:#fff3;padding:.15rem .5rem;border-radius:10px;font-size:.85rem}.alias-help{margin:0;font-size:.85rem;color:#666;text-align:center}@media(max-width:768px){.billing-header{flex-direction:column;gap:1rem;text-align:center}.billing-main{padding:1rem}.month-header{flex-direction:column;align-items:flex-start;gap:.75rem}.month-summary{flex-wrap:wrap;gap:.5rem}.group-header{flex-direction:column;align-items:flex-start;gap:.75rem}.invoice-table{font-size:.8rem}.invoice-table th,.invoice-table td{padding:.5rem}.mismatch-item{flex-direction:column;align-items:stretch;gap:.5rem}.mismatch-clinic{max-width:none}.mismatch-arrow{display:none}.mismatch-select select{font-size:16px}}
