/* Gruvbox Material Theme: Light & Dark */ :root { --bg0: #f2e5bc; --bg1: #eddeb5; --bg-statusline1: #ebdbb2; --bg-statusline2: #ebdbb2; --fg0: #654735; --fg1: #4f3829; --blue: #45707a; --green: #6c782e; --purple: #945e80; --visual_green: #d7d9ae; --aqua: #689d6a; } .dark { --bg0: #32302f; --bg1: #3c3836; --bg-statusline1: #3c3836; --bg-statusline2: #46413e; --fg0: #d4be98; --fg1: #ddc7a1; --blue: #7daea3; --green: #a9b665; --purple: #d3869b; --visual_green: #a9b665; --aqua: #8ec07c; } body { background-color: var(--bg0); color: var(--fg0); } input, button, #chatContainer { background-color: var(--bg1); color: var(--fg0); } input::placeholder { color: var(--fg1); } button { background-color: var(--blue) !important; color: var(--fg1) !important; font-weight: 700; font-size: 1rem; letter-spacing: 0.25px; transition: background-color 0.3s; border: none; } button:hover { background-color: var(--purple) !important; color: var(--fg0) !important; } /* Dropdown */ .dropdown { position: relative; overflow: visible; text-align: center; } .options { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); width: 240px; z-index: 9999; background-color: var(--bg-statusline1); color: var(--fg0); box-shadow: 0 4px 8px rgba(0,0,0,0.25); border-radius: 0.5rem; max-height: 15rem; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #665c54 var(--bg-statusline1); display: none; } .options.show { display: block; } .options div { padding: 0.5rem 0.75rem; text-align: center; cursor: pointer; } .options div:hover { background-color: var(--blue); color: var(--fg1); font-weight: 600; } .options::-webkit-scrollbar { width: 8px; } .options::-webkit-scrollbar-track { background-color: var(--bg-statusline1); border-radius: 0.25rem; } .options::-webkit-scrollbar-thumb { background-color: #665c54; border-radius: 4px; border: 2px solid var(--bg-statusline1); } .options::-webkit-scrollbar-thumb:hover { background-color: #7c6f64; } /* Config Panel */ #configPanel { max-height: 1000px; overflow: visible; transition: max-height 0.5s ease, padding 0.5s ease, opacity 0.5s ease; display: flex; flex-direction: column; gap: 1rem; } #configPanel.minimal .model-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 1rem; } #configPanel.minimal .dropdown, #configPanel.minimal label { display: none; } #configPanel.minimal .model-name, #configPanel.minimal .loader { display: block; } #configPanel.expanded .model-name, #configPanel.expanded .loader { display: none; } /* Align loading animation */ .loader { display: flex; justify-content: center; align-items: center; gap: 4px; margin-top: 4px; } .dot { width: 8px; height: 8px; background-color: var(--aqua); border-radius: 50%; animation: bounce 1.4s infinite ease-in-out both; } .dot:nth-child(2) { animation-delay: 0.15s; } .dot:nth-child(3) { animation-delay: 0.3s; } @keyframes bounce { 0%, 80%, 100% { transform: scale(0); } 40% { transform: scale(1); } } .model-zone { display: flex; flex-direction: column; align-items: center; text-align: center; } /* Footer */ footer { margin-top: 1rem; padding-top: 1rem; font-size: 0.875rem; color: var(--fg1); opacity: 0.7; } /* Chat layering fix */ #chatContainer { position: relative; z-index: 0; }