/* Basis-Styling */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background-color: #f5f5f5; color: #333; line-height: 1.6; } .app-container { max-width: 800px; margin: 0 auto; padding: 20px; } /* Header */ header { text-align: center; margin-bottom: 40px; padding: 20px; background: white; border-radius: 12px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); } header h1 { color: #2563eb; margin-bottom: 10px; } header p { color: #666; } /* Main Content */ .main-content { display: grid; gap: 20px; grid-template-columns: 1fr; } /* Connection Panel */ .connection-panel { background: white; padding: 24px; border-radius: 12px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); } .connection-panel h2 { margin-bottom: 20px; color: #1f2937; } /* Input Group Layout */ .input-group { margin-bottom: 16px; display: flex; align-items: flex-end; gap: 8px; } .input-group label { display: block; margin-bottom: 5px; font-weight: 500; color: #374151; } .input-group input { width: 100%; padding: 10px 12px; border: 2px solid #e5e7eb; border-radius: 6px; font-size: 14px; transition: border-color 0.2s; flex: 1; } .input-group input:focus { outline: none; border-color: #2563eb; } /* Buttons */ button { padding: 10px 20px; border: none; border-radius: 6px; font-size: 14px; font-weight: 500; cursor: pointer; transition: all 0.2s; } button:disabled { opacity: 0.5; cursor: not-allowed; } button:disabled:hover { background-color: inherit; } .connect-btn { background-color: #2563eb; color: white; width: 100%; } .connect-btn:hover { background-color: #1d4ed8; } /* Call Controls */ .call-controls { background: white; padding: 24px; border-radius: 12px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); } .call-controls h2 { margin-bottom: 20px; color: #1f2937; } .control-buttons { display: flex; gap: 12px; flex-wrap: wrap; } .control-buttons button { flex: 1; min-width: 120px; } .primary { background-color: #10b981; color: white; } .primary:hover { background-color: #059669; } .danger { background-color: #ef4444; color: white; } .danger:hover { background-color: #dc2626; } .mute-btn { background-color: #6b7280; color: white; } .mute-btn:hover { background-color: #4b5563; } /* Status Display */ .status-display { background: white; padding: 24px; border-radius: 12px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); } .status-display h2 { margin-bottom: 20px; color: #1f2937; } .status-item { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; padding: 8px 0; border-bottom: 1px solid #f3f4f6; } .status-label { font-weight: 500; color: #374151; } .status-value { font-weight: 500; } .status-value.disconnected { color: #ef4444; } .status-value.connected { color: #10b981; } /* Responsive Design */ @media (min-width: 768px) { .main-content { grid-template-columns: 1fr 1fr; } .status-display { grid-column: 1 / -1; } } /* Readonly Input */ .readonly-input { background-color: #f9fafb !important; cursor: not-allowed; color: #6b7280; } /* Copy Button */ .copy-btn { margin-left: 8px; padding: 8px 12px; background-color: #6b7280; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 16px; } .copy-btn:hover { background-color: #4b5563; } /* Muted Button State */ .muted { background-color: #ef4444 !important; } .muted:hover { background-color: #dc2626 !important; } /* Peer ID Display */ .peer-id { font-family: 'Courier New', monospace; font-size: 12px; background-color: #f3f4f6; padding: 2px 6px; border-radius: 4px; color: #374151; }