:root { --primary-color: #3f51b5; --primary-light: #7986cb; --primary-dark: #303f9f; --secondary-color: #f50057; --background-color: #f5f7fa; --card-color: #ffffff; --text-primary: #333333; --text-secondary: #6c757d; --success-color: #43a047; --warning-color: #ff9800; --danger-color: #e53935; --info-color: #039be5; --border-radius: 8px; --box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); --transition: all 0.3s ease; } /* Base styles */ body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; background-color: var(--background-color); color: var(--text-primary); margin: 0; padding: 0; line-height: 1.6; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .container { padding: 20px; max-width: 1400px; margin: 0 auto; } /* Navbar */ .navbar { background-color: var(--card-color); box-shadow: var(--box-shadow); padding: 15px 0; } .navbar-brand { font-size: 1.5rem; font-weight: 700; color: var(--primary-color); } /* Cards */ .card { background-color: var(--card-color); border-radius: var(--border-radius); box-shadow: var(--box-shadow); border: none; margin-bottom: 20px; transition: var(--transition); overflow: hidden; } .card:hover { box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15); transform: translateY(-3px); } .card-header { background-color: var(--card-color); border-bottom: 1px solid rgba(0, 0, 0, 0.1); font-weight: 600; padding: 20px; } .card-body { padding: 20px; } /* Dashboard sections */ .dashboard-header { margin-bottom: 25px; } .dashboard-title { font-size: 1.8rem; font-weight: 700; margin-bottom: 10px; color: var(--primary-dark); } .dashboard-subtitle { font-size: 1rem; color: var(--text-secondary); } /* Buttons */ .btn { border-radius: var(--border-radius); font-weight: 500; padding: 10px 20px; transition: var(--transition); border: none; cursor: pointer; } .btn-primary { background-color: var(--primary-color); color: white; } .btn-primary:hover { background-color: var(--primary-dark); transform: translateY(-2px); } .btn-outline-primary { background-color: transparent; color: var(--primary-color); border: 1px solid var(--primary-color); } .btn-outline-primary:hover { background-color: var(--primary-color); color: white; } /* Upload zone */ .upload-zone { border: 2px dashed #ccc; border-radius: var(--border-radius); padding: 40px; text-align: center; transition: var(--transition); background-color: rgba(63, 81, 181, 0.05); cursor: pointer; } .upload-zone:hover, .upload-zone.dragover { border-color: var(--primary-color); background-color: rgba(63, 81, 181, 0.1); } .upload-icon { font-size: 48px; color: var(--primary-color); margin-bottom: 15px; } .upload-text { margin-bottom: 10px; } .upload-text .main-text { font-weight: 600; font-size: 1.1rem; } .upload-text .sub-text { color: var(--text-secondary); font-size: 0.9rem; } .file-input { position: absolute; width: 100%; height: 100%; top: 0; left: 0; opacity: 0; cursor: pointer; } /* Loading indicator */ .loading { display: none; text-align: center; padding: 20px; } .loading.active { display: block; } /* History cards */ .history-card { display: flex; justify-content: space-between; align-items: center; padding: 15px; border-bottom: 1px solid rgba(0, 0, 0, 0.1); transition: var(--transition); } .history-card:last-child { border-bottom: none; } .history-card:hover { background-color: rgba(0, 0, 0, 0.02); } .history-meta { flex: 1; } .history-title { font-weight: 600; margin-bottom: 5px; } .history-timestamp { font-size: 0.8rem; color: var(--text-secondary); } .history-score { display: flex; align-items: center; margin-right: 15px; } .cadrads-label { font-weight: 700; padding: 5px 12px; border-radius: 20px; font-size: 0.9rem; color: white; display: inline-block; } /* Add styling for modifier badge */ .modifier-badge { display: inline-block; font-size: 0.9rem; color: white; padding: 5px 12px; border-radius: 20px; font-weight: 700; margin-left: 6px; } /* Add simple styling for P1-P4 modifier badges */ span.modifier-badge:not([style*="background"]) { background-color: var(--primary-color); } /* Report view styles */ .report-content { background-color: var(--card-color); border-radius: var(--border-radius); padding: 20px; white-space: pre-wrap; font-family: 'Courier New', monospace; font-size: 0.9rem; line-height: 1.6; max-height: 600px; overflow-y: auto; border: 1px solid rgba(0, 0, 0, 0.1); } .prediction-badge { font-size: 1.2rem; padding: 8px 16px; border-radius: var(--border-radius); background-color: var(--primary-color); color: white; display: inline-block; margin-bottom: 20px; } /* Alerts */ .alert { border-radius: var(--border-radius); border: none; padding: 15px 20px; margin-bottom: 20px; } .alert-success { background-color: rgba(67, 160, 71, 0.15); color: var(--success-color); } .alert-danger { background-color: rgba(229, 57, 53, 0.15); color: var(--danger-color); } .alert-warning { background-color: rgba(255, 152, 0, 0.15); color: var(--warning-color); } .alert-info { background-color: rgba(3, 155, 229, 0.15); color: var(--info-color); } /* Responsive adjustments */ @media (max-width: 768px) { .container { padding: 15px; } .upload-zone { padding: 25px; } .history-card { flex-direction: column; align-items: flex-start; } .history-actions { margin-top: 15px; width: 100%; display: flex; justify-content: flex-end; } .history-score { margin-bottom: 10px; } }