:root { --bg-primary: #1A1C23; --bg-secondary: #252833; --bg-tertiary: #2E3240; --text-primary: #EAEAEA; --text-secondary: #A0A4B8; --accent-neon-beige: #FFEEA9; --accent-neon-beige-rgb: 255, 238, 169; --border-color: #3A3F51; --shadow-color: rgba(0, 0, 0, 0.3); --glow-color: rgba(var(--accent-neon-beige-rgb), 0.4); --font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; --border-radius-sm: 4px; --border-radius-md: 8px; --transition-speed: 0.25s; } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: var(--font-family); background-color: var(--bg-primary); color: var(--text-primary); width: 340px; padding: 20px; overflow: hidden; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .container { display: flex; flex-direction: column; align-items: center; gap: 18px; } .header-controls { display: flex; justify-content: space-between; align-items: center; width: 100%; margin-bottom: 5px; } h1 { font-size: 26px; font-weight: 600; color: var(--accent-neon-beige); text-shadow: 0 0 5px var(--glow-color), 0 0 10px var(--glow-color); } button#settingsBtn { background: none; border: none; color: var(--text-secondary); font-size: 22px; cursor: pointer; padding: 5px; border-radius: var(--border-radius-sm); transition: color var(--transition-speed) ease, transform var(--transition-speed) ease; line-height: 1; } button#settingsBtn:hover { color: var(--accent-neon-beige); transform: rotate(45deg); } button#summarizeBtn { background-color: var(--bg-secondary); color: var(--accent-neon-beige); border: 1px solid var(--border-color); padding: 12px 20px; font-size: 16px; font-weight: 500; border-radius: var(--border-radius-md); cursor: pointer; width: 100%; text-align: center; transition: all var(--transition-speed) ease-in-out; box-shadow: 0 2px 4px var(--shadow-color), 0 0 0px var(--glow-color); outline: none; } button#summarizeBtn:hover:not(:disabled) { background-color: var(--bg-tertiary); border-color: var(--accent-neon-beige); color: var(--accent-neon-beige); box-shadow: 0 4px 8px var(--shadow-color), 0 0 12px var(--glow-color), inset 0 0 5px rgba(var(--accent-neon-beige-rgb), 0.1); transform: translateY(-2px); } button#summarizeBtn:active:not(:disabled) { background-color: var(--bg-primary); border-color: var(--accent-neon-beige); transform: translateY(0px) scale(0.98); box-shadow: 0 1px 2px var(--shadow-color), 0 0 8px var(--glow-color); } button#summarizeBtn:disabled { background-color: var(--bg-secondary); color: var(--text-secondary); border-color: var(--border-color); cursor: not-allowed; opacity: 0.6; box-shadow: none; transform: none; } #status { font-size: 13px; color: var(--text-secondary); min-height: 1.2em; text-align: center; width: 100%; transition: color var(--transition-speed) ease; } #result-container { background-color: var(--bg-secondary); border: 1px solid var(--border-color); border-radius: var(--border-radius-md); padding: 15px; width: 100%; min-height: 120px; max-height: 280px; overflow-y: auto; box-shadow: inset 0 1px 3px rgba(0,0,0,0.2); transition: border-color var(--transition-speed) ease; } #result-container:focus-within { border-color: var(--accent-neon-beige); } #result { font-size: 14px; line-height: 1.6; color: var(--text-primary); white-space: pre-wrap; word-wrap: break-word; font-family: 'Consolas', 'Monaco', 'Menlo', monospace; opacity: 0; transform: translateY(10px); } @keyframes fadeInResult { to { opacity: 1; transform: translateY(0); } } #result-container::-webkit-scrollbar { width: 10px; } #result-container::-webkit-scrollbar-track { background: var(--bg-primary); border-radius: var(--border-radius-sm); margin: 2px 0; } #result-container::-webkit-scrollbar-thumb { background-color: var(--accent-neon-beige); border-radius: var(--border-radius-sm); border: 2px solid var(--bg-primary); } #result-container::-webkit-scrollbar-thumb:hover { background-color: #FFFAE0; } #result-container::-webkit-scrollbar-corner { background: var(--bg-primary); } #status.processing { color: var(--accent-neon-beige); animation: pulseStatus 1.5s infinite ease-in-out; } @keyframes pulseStatus { 0%, 100% { opacity: 0.7; } 50% { opacity: 1; } }