.model-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;transition:transform .2s,box-shadow .2s}.model-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #00000026}.model-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #eee}.model-card-header h3{margin:0;color:#667eea}.model-version{background:#667eea;color:#fff;padding:.25rem .75rem;border-radius:20px;font-size:.9rem}.model-info{margin-bottom:1rem}.info-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid #f5f5f5}.info-row .label{color:#666}.info-row .value{font-weight:600}.model-card-actions{display:flex;gap:.5rem;flex-wrap:wrap}.model-card-actions button,.model-card-actions a{flex:1;min-width:60px;text-align:center;text-decoration:none;font-size:.9rem}.model-list-page{padding:2rem 0}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.filters{margin-bottom:2rem}.filters input{width:100%;max-width:400px}.models-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.model-upload-page{padding:2rem 0;max-width:600px;margin:0 auto}.upload-form{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600}.form-group input,.form-group select{width:100%}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.file-info{margin-top:.5rem;color:#2ecc71;font-size:.9rem}.error-message,.status-message{padding:1rem;border-radius:4px;margin-bottom:1rem}.error-message{background:#ffebee;color:#c62828}.status-message{background:#e8f5e9;color:#2e7d32}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.image-viewer{width:100%;overflow:auto;background:#f5f5f5;border-radius:4px;padding:1rem}.detection-canvas{max-width:100%;height:auto;display:block;margin:0 auto;border-radius:4px;box-shadow:0 2px 8px #0000001a}.detection-list{display:flex;flex-direction:column;gap:.75rem;max-height:600px;overflow-y:auto}.detection-item{padding:1rem;background:#f9f9f9;border-radius:6px;border:2px solid transparent;cursor:pointer;transition:all .2s}.detection-item:hover{background:#f0f0f0;border-color:#ddd}.detection-item.selected{background:#e3f2fd;border-color:#667eea}.detection-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.detection-index{font-weight:700;color:#667eea}.detection-confidence{padding:.25rem .75rem;border-radius:20px;font-size:.9rem;font-weight:600}.confidence-high{background:#c8e6c9;color:#2e7d32}.confidence-medium{background:#fff9c4;color:#f57f17}.confidence-low{background:#ffcdd2;color:#c62828}.detection-details{font-size:.9rem}.detail-row{display:flex;justify-content:space-between;padding:.25rem 0}.detail-label{color:#666;font-weight:600}.detail-value{color:#333}.detail-value.bbox{font-family:monospace;font-size:.85rem;text-align:right}.empty-state{padding:2rem;text-align:center;color:#999}.test-model-page{padding:2rem 0}.controls-section{background:#fff;padding:1.5rem;border-radius:8px;margin-bottom:2rem;box-shadow:0 2px 4px #0000001a}.control-group{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.control-group label{min-width:180px;font-weight:600}.control-group select,.control-group input{flex:1}.action-buttons{display:flex;gap:1rem;margin-bottom:2rem}.status{padding:1rem;background:#e8f5e9;border-radius:4px;margin-bottom:2rem}.status.error{background:#ffebee}.results-section{display:grid;grid-template-columns:2fr 1fr;gap:2rem}.image-section,.detections-section{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.placeholder{padding:3rem;text-align:center;color:#999;border:2px dashed #ddd;border-radius:8px}.history-page{padding:2rem 0}.history-table-container{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.history-table{width:100%;border-collapse:collapse}.history-table th,.history-table td{padding:1rem;text-align:left;border-bottom:1px solid #eee}.history-table th{background:#f5f5f5;font-weight:600}.history-table tbody tr:hover{background:#f9f9f9}.history-table .actions{display:flex;gap:.5rem}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:8px;padding:2rem;max-width:600px;width:90%;max-height:80vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #eee}.detection-info p{margin-bottom:.5rem}.detections-list{display:flex;flex-direction:column;gap:.5rem;max-height:300px;overflow-y:auto}.detection-item{display:flex;gap:1rem;padding:.5rem;background:#f5f5f5;border-radius:4px}.app{min-height:100vh;display:flex;flex-direction:column}.navbar{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem 2rem;box-shadow:0 2px 8px #0000001a}.nav-container{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.logo{font-size:1.5rem;font-weight:700}.nav-links{display:flex;gap:2rem}.nav-links a{color:#fff;text-decoration:none;font-weight:500;transition:opacity .2s}.nav-links a:hover{opacity:.8}.main-content{flex:1;max-width:1200px;width:100%;margin:2rem auto;padding:0 2rem}.footer{background:#333;color:#fff;text-align:center;padding:1rem;margin-top:2rem}.loading,.error,.empty-state{text-align:center;padding:3rem;font-size:1.2rem}.error{color:#e74c3c}button{padding:.5rem 1rem;border:none;border-radius:4px;background:#667eea;color:#fff;cursor:pointer;font-size:1rem;transition:background .2s}button:hover:not(:disabled){background:#5568d3}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#667eea}.btn-test{background:#3498db}.btn-download{background:#2ecc71}.btn-delete{background:#e74c3c}input,select,textarea{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}input:focus,select:focus,textarea:focus{outline:none;border-color:#667eea}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f5f5;color:#333}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
