* { box-sizing: border-box; } body { margin: 0; padding: 0; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: #0f1117; color: #e6edf3; display: flex; flex-direction: column; height: 100vh; height: 100dvh; /* Dynamic viewport height for mobile */ overflow: hidden; } .chat { flex: 1; overflow-y: auto; padding: clamp(12px, 3vw, 20px); display: flex; flex-direction: column; gap: clamp(10px, 2vw, 14px); background-color: #0f1117; min-height: 0; /* Allow flex shrinking */ } .message { max-width: min(65%, 600px); padding: clamp(10px, 2.5vw, 14px) clamp(12px, 3vw, 18px); border-radius: clamp(8px, 1.5vw, 10px); font-size: clamp(14px, 2.5vw, 15px); line-height: 1.6; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4); word-wrap: break-word; overflow-wrap: break-word; hyphens: auto; } .userMessage { align-self: flex-end; background: linear-gradient(135deg, #3a7bd5, #00d2ff); color: #fff; border-bottom-right-radius: 0; } .systemMessage { align-self: flex-start; background-color: #1c1f26; color: #c9d1d9; border-bottom-left-radius: 0; } .inputField { display: flex; padding: clamp(8px, 2vw, 12px); background: #161b22; border-top: 1px solid #30363d; gap: clamp(8px, 1.5vw, 10px); flex-shrink: 0; } .inputField input { flex: 1; padding: clamp(8px, 2vw, 10px) clamp(10px, 2.5vw, 14px); font-size: clamp(14px, 2.5vw, 15px); background-color: #0d1117; color: #e6edf3; border: 1px solid #30363d; border-radius: clamp(4px, 1vw, 6px); outline: none; transition: border-color 0.2s; min-width: 0; /* Allow input to shrink */ } .inputField input:focus { border-color: #58a6ff; } .inputField button { padding: clamp(8px, 2vw, 10px) clamp(12px, 3vw, 18px); font-size: clamp(14px, 2.5vw, 16px); background-color: #238636; color: white; border: none; border-radius: clamp(4px, 1vw, 6px); cursor: pointer; transition: background-color 0.2s; white-space: nowrap; flex-shrink: 0; } .inputField button:hover { background-color: #2ea043; } a { color: #58a6ff; text-decoration: none; } a:hover { text-decoration: underline; } /* Small screens and mobile */ @media (max-width: 768px) { .message { max-width: 85%; font-size: 16px; } .inputField { padding: 12px; gap: 8px; } .inputField input { font-size: 16px; /* Prevents zoom on iOS */ padding: 12px 14px; } .inputField button { padding: 12px 16px; font-size: 16px; } } /* Very small screens */ @media (max-width: 480px) { .chat { padding: 8px; gap: 8px; } .message { max-width: 90%; padding: 10px 12px; } .inputField { flex-direction: column; gap: 8px; } .inputField button { width: 100%; padding: 14px; } } /* Large screens */ @media (min-width: 1200px) { .chat { padding: 24px; max-width: 1200px; margin: 0 auto; } .message { max-width: 60%; } } /* High DPI displays */ @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { .message { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); } }