diff --git a/css/style.css b/css/style.css index f77ff22..360b4bd 100644 --- a/css/style.css +++ b/css/style.css @@ -497,3 +497,288 @@ footer { color: var(--text-footer); box-shadow: 0 -4px 20px rgba(255,20,147,0.1); } + +/* Chat page styles */ +.chat-config { + background: var(--white); + border-radius: 16px; + padding: 1.5rem; + margin-bottom: 1.5rem; + box-shadow: var(--shadow-lg); + border: 2px solid var(--pink-200); + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 1rem; + align-items: end; +} + +.config-row { + display: flex; + flex-direction: column; + gap: 0.3rem; +} + +.config-row label { + font-size: 0.8rem; + font-weight: 700; + color: var(--pink-600); + text-transform: uppercase; + letter-spacing: 0.5px; +} + +.config-row input { + padding: 0.6rem 0.8rem; + border: 2px solid var(--pink-200); + border-radius: 10px; + font-size: 0.9rem; + color: var(--pink-900); + background: var(--pink-50); + transition: border-color 0.2s, background 0.2s; +} + +.config-row input:focus { + outline: none; + border-color: var(--pink-400); + background: var(--white); +} + +.clear-btn { + background: linear-gradient(135deg, var(--pink-400), var(--pink-500)); + color: var(--white); + border: none; + padding: 0.6rem 1.2rem; + border-radius: 10px; + cursor: pointer; + font-size: 0.85rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.5px; + transition: background 0.2s, transform 0.1s; +} + +.clear-btn:hover { + background: linear-gradient(135deg, var(--pink-500), var(--pink-600)); + transform: translateY(-1px); +} + +.chat-messages { + background: var(--white); + border-radius: 16px; + border: 2px solid var(--pink-200); + box-shadow: var(--shadow-lg); + min-height: 400px; + max-height: 60vh; + overflow-y: auto; + padding: 1.5rem; + margin-bottom: 1rem; + scroll-behavior: smooth; +} + +.message { + display: flex; + gap: 0.8rem; + margin-bottom: 1.2rem; + animation: messageIn 0.3s ease-out; +} + +@keyframes messageIn { + from { opacity: 0; transform: translateY(10px); } + to { opacity: 1; transform: translateY(0); } +} + +.user-message { + flex-direction: row-reverse; +} + +.message-avatar { + background: linear-gradient(135deg, var(--pink-400), var(--pink-500)); + color: var(--white); + width: 36px; + height: 36px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 0.7rem; + font-weight: 800; + flex-shrink: 0; + text-transform: uppercase; +} + +.assistant-message .message-avatar { + background: linear-gradient(135deg, var(--pink-600), var(--pink-700)); +} + +.message-bubble { + max-width: 75%; + padding: 0.8rem 1.2rem; + border-radius: 18px; +} + +.user-message .message-bubble { + background: linear-gradient(135deg, var(--pink-400), var(--pink-500)); + color: var(--white); + border-bottom-right-radius: 6px; +} + +.assistant-message .message-bubble { + background: var(--pink-50); + border: 2px solid var(--pink-200); + color: var(--pink-900); + border-bottom-left-radius: 6px; +} + +.message-content { + font-size: 0.95rem; + line-height: 1.5; + word-wrap: break-word; +} + +.message-content.streaming::after { + content: '▊'; + animation: blink 0.8s infinite; + color: var(--pink-500); +} + +@keyframes blink { + 0%, 100% { opacity: 1; } + 50% { opacity: 0; } +} + +.chat-input-area { + display: flex; + gap: 0.8rem; + background: var(--white); + border-radius: 16px; + padding: 1rem 1.2rem; + box-shadow: var(--shadow-lg); + border: 2px solid var(--pink-200); +} + +.chat-input-area textarea { + flex: 1; + border: none; + background: transparent; + font-size: 0.95rem; + color: var(--pink-900); + font-family: inherit; + resize: none; + outline: none; + line-height: 1.5; +} + +.chat-input-area textarea::placeholder { + color: var(--pink-300); +} + +.send-btn { + background: linear-gradient(135deg, var(--pink-500), var(--pink-600)); + color: var(--white); + border: none; + padding: 0.6rem 1.5rem; + border-radius: 12px; + cursor: pointer; + font-size: 0.95rem; + font-weight: 700; + transition: background 0.2s, transform 0.1s, opacity 0.2s; + white-space: nowrap; +} + +.send-btn:hover:not(:disabled) { + background: linear-gradient(135deg, var(--pink-600), var(--pink-700)); + transform: translateY(-1px); +} + +.send-btn:disabled { + opacity: 0.5; + cursor: not-allowed; +} + +/* Dark mode chat styles */ +[data-theme="dark"] .chat-config { + background: var(--bg-card); + border-color: var(--border-primary); + box-shadow: 0 10px 25px rgba(0,0,0,0.3); +} + +[data-theme="dark"] .config-row label { + color: var(--text-heading-strong); +} + +[data-theme="dark"] .config-row input { + background: var(--bg-primary); + border-color: var(--border-primary); + color: var(--text-primary); +} + +[data-theme="dark"] .config-row input:focus { + border-color: var(--border-accent); + background: var(--bg-secondary); +} + +[data-theme="dark"] .clear-btn { + background: linear-gradient(135deg, var(--pink-600), #0f3460); +} + +[data-theme="dark"] .clear-btn:hover { + background: linear-gradient(135deg, var(--pink-500), #1a1a3e); +} + +[data-theme="dark"] .chat-messages { + background: var(--bg-card); + border-color: var(--border-primary); + box-shadow: 0 10px 25px rgba(0,0,0,0.3); +} + +[data-theme="dark"] .message-avatar { + background: linear-gradient(135deg, var(--pink-500), var(--pink-600)); +} + +[data-theme="dark"] .assistant-message .message-avatar { + background: linear-gradient(135deg, #0f3460, #1a1a3e); +} + +[data-theme="dark"] .user-message .message-bubble { + background: linear-gradient(135deg, var(--pink-500), var(--pink-600)); + color: var(--white); +} + +[data-theme="dark"] .assistant-message .message-bubble { + background: var(--bg-primary); + border-color: var(--border-primary); + color: var(--text-primary); +} + +[data-theme="dark"] .message-content { + color: var(--text-primary); +} + +[data-theme="dark"] .user-message .message-content { + color: var(--white); +} + +[data-theme="dark"] .message-content.streaming::after { + color: var(--pink-400); +} + +[data-theme="dark"] .chat-input-area { + background: var(--bg-card); + border-color: var(--border-primary); + box-shadow: 0 10px 25px rgba(0,0,0,0.3); +} + +[data-theme="dark"] .chat-input-area textarea { + color: var(--text-primary); +} + +[data-theme="dark"] .chat-input-area textarea::placeholder { + color: var(--text-secondary); +} + +[data-theme="dark"] .send-btn { + background: linear-gradient(135deg, var(--pink-600), #0f3460); +} + +[data-theme="dark"] .send-btn:hover:not(:disabled) { + background: linear-gradient(135deg, var(--pink-500), #1a1a3e); +} diff --git a/index.html b/index.html index 60ab4e8..f471ae5 100644 --- a/index.html +++ b/index.html @@ -10,14 +10,15 @@