body { font-family: Arial, sans-serif; background: #0f172a; color: #f8fafc; margin: 0; padding: 24px; } .app { max-width: 860px; margin: 0 auto; background: #111827; border-radius: 16px; padding: 24px; box-shadow: 0 10px 30px rgba(0,0,0,0.25); } .controls { display: flex; gap: 16px; margin-bottom: 16px; } label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; } select, textarea, button { border-radius: 10px; border: 1px solid #334155; padding: 10px 12px; font-size: 1rem; } textarea { width: 100%; min-height: 140px; resize: vertical; margin-bottom: 12px; } .buttons { display: flex; gap: 10px; flex-wrap: wrap; } button { cursor: pointer; background: #2563eb; color: white; } button:disabled { opacity: 0.6; cursor: not-allowed; } .swap-btn, #copyBtn { align-self: flex-end; padding: 10px 16px; background: #0ea5e9; border-color: transparent; color: #fff; } #copyBtn { font-size: 0.95rem; } button { cursor: pointer; background: #2563eb; color: white; border: 1px solid transparent; transition: background 0.2s ease, transform 0.2s ease; } button:hover:not(:disabled) { background: #1d4ed8; transform: translateY(-1px); } #voiceBtn.active { background: linear-gradient(180deg,#34d399,#10b981); border-color: transparent; box-shadow: 0 10px 30px rgba(16,185,129,0.35); color: #071025; } #voiceBtn.active:hover:not(:disabled) { background: linear-gradient(180deg,#6ee7b7,#34d399); } #voiceBtn.listening { background: linear-gradient(180deg,#f59e0b,#d97706); } .panel { background: #1f2937; border-radius: 12px; padding: 16px; margin-top: 16px; } .panel-footer { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 0.95rem; color: #cbd5e1; margin-top: 6px; } .microphone-hint { margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; font-style: italic; } .tts-notice { margin-top: 6px; color: #f8fafc; font-size: 0.95rem; padding: 10px 12px; background: #0f172a; border: 1px solid #334155; border-radius: 10px; } .voice-status { color: #a5b4fc; } .output-header { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; } .copy-feedback { margin-top: 10px; color: #4ade80; min-height: 1.2rem; } .output #translatedText { min-height: 80px; padding: 12px; background: #111827; border-radius: 10px; } .status { margin-top: 10px; font-size: 0.95rem; color: #93c5fd; } .dev-log { margin-top: 12px; background: #0b1220; border: 1px solid #273449; border-radius: 8px; color: #cbd5e1; font-size: 0.85rem; max-height: 160px; overflow: hidden; } .dev-log-header { display: flex; justify-content: space-between; padding: 8px 10px; border-bottom: 1px solid #172033; background: #071025; } .dev-log-body { padding: 8px 10px; overflow-y: auto; max-height: 120px; } .dev-log-entry { padding: 4px 0; border-bottom: 1px dashed rgba(255,255,255,0.03); } .clear-log { background: transparent; border: 1px solid #334155; color: #cbd5e1; padding: 4px 8px; border-radius: 6px; font-size: 0.8rem; }