/* Main Styles for Omani Arabic Speech Interface */ :root { --primary-color: #3498db; --secondary-color: #2980b9; --accent-color: #e74c3c; --text-color: #333; --light-bg: #f5f5f5; --white: #ffffff; --success: #2ecc71; --danger: #e74c3c; --warning: #f39c12; --gray: #7f8c8d; --light-gray: #eee; --box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); --transition: all 0.3s ease; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; background-color: var(--light-bg); color: var(--text-color); line-height: 1.6; } h1, h2, h3 { color: var(--secondary-color); } h1 { text-align: center; margin-bottom: 30px; font-size: 2.2rem; } .container { background-color: var(--white); border-radius: 8px; padding: 20px; box-shadow: var(--box-shadow); } /* Recording Controls */ .record-container { display: flex; flex-direction: column; align-items: center; gap: 20px; margin-bottom: 30px; } .record-button { background-color: var(--accent-color); color: var(--white); border: none; border-radius: 50%; width: 80px; height: 80px; font-size: 16px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: var(--transition); } .record-button:hover { background-color: #c0392b; transform: scale(1.05); } .record-button.recording { animation: pulse 1.5s infinite; } @keyframes pulse { 0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.7); } 70% { transform: scale(1.05); box-shadow: 0 0 0 10px rgba(231, 76, 60, 0); } 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(231, 76, 60, 0); } } .status { font-size: 18px; color: var(--gray); text-align: center; min-height: 27px; } /* Transcript Section */ .transcript-container { margin-top: 20px; border-top: 1px solid var(--light-gray); padding-top: 20px; } .transcript { background-color: #f9f9f9; border-radius: 4px; padding: 15px; min-height: 100px; border-left: 4px solid var(--primary-color); } /* Audio Controls */ .audio-controls { margin-top: 20px; display: flex; justify-content: center; } .audio-player { width: 100%; margin-top: 10px; } /* Instructions */ .instructions { margin-top: 30px; padding: 15px; background-color: #f0f7ff; border-radius: 4px; border-left: 4px solid var(--primary-color); } .instructions h3 { margin-top: 0; color: var(--primary-color); } /* Connection Status */ .connection-status { position: fixed; top: 10px; right: 10px; padding: 5px 10px; border-radius: 4px; font-size: 14px; } .connected { background-color: var(--success); color: var(--white); } .disconnected { background-color: var(--danger); color: var(--white); } /* Utility Classes */ .hidden { display: none; } /* Responsive Adjustments */ @media (max-width: 600px) { body { padding: 10px; } .container { padding: 15px; } h1 { font-size: 1.8rem; } .record-button { width: 70px; height: 70px; } }