@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap');


body {
    font-family: 'Plus Jakarta Sans', arial !important; 
}
    
:root {
  color-scheme: light dark;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --bg: #0b0b0c;
  --panel: #151518;
  --border: #2a2a32;
  --ink: #e9e9ee;
  --muted: #a9a9b3;
  --accent: #4da3ff;
  --bubble-bot: #1c1c22;
  --bubble-user: #0b5bd3;
  --ink-user: #ffffff;
}
@media (prefers-color-scheme: light) {
  :root {
    --bg: #f6f7fb;
    --panel: #ffffff;
    --border: #e7e7ef;
    --ink: #101114;
    --muted: #515563;
    --accent: #0b5bd3;
    --bubble-bot: #f0f1f5;
    --bubble-user: #0b5bd3;
    --ink-user: #fff;
  }
}
/* Light theme override when user toggles */
:root[data-theme='light'] {
  --bg: #f6f7fb;
  --panel: #ffffff;
  --border: #e7e7ef;
  --ink: #101114;
  --muted: #515563;
  --accent: #0b5bd3;
  --bubble-bot: #f0f1f5;
  --bubble-user: #0b5bd3;
  --ink-user: #fff;
}
/* Dark theme override when user toggles */
:root[data-theme='dark'] {
  --bg: #0b0b0c;
  --panel: #151518;
  --border: #2a2a32;
  --ink: #e9e9ee;
  --muted: #a9a9b3;
  --accent: #4da3ff;
  --bubble-bot: #1c1c22;
  --bubble-user: #0b5bd3;
  --ink-user: #fff;
}

* {
  box-sizing: border-box;
}
html,
body {
  height: 100%;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  display: flex;
  flex-direction: column;
}

/* Header: compact, mobile-first, sticky */
header {
  position: sticky;
  top: 0;
  padding: calc(8px + var(--safe-top)) 10px 8px 10px;
  background: var(--panel);
  border-bottom: 1px solid var(--border);
  display: grid;
  grid-template-columns: auto 1fr auto auto auto; /* <- added auto for logo */
  gap: 8px;
  align-items: center;
  z-index: 3;
}
.group {
  display: contents;
}
.row-inline {
  display: flex;
  align-items: center;
  gap: 8px;
}
select,
input[type='range'],
button,
.toggle {
  font-size: 14px;
}
select {
  width: 100%;
  padding: 8px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--ink);
}
label {
  font-size: 12px;
  color: var(--muted);
}
#tempVal {
  font-variant-numeric: tabular-nums;
  min-width: 3ch;
  text-align: right;
}
.btn,
.toggle {
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--bg);
  color: var(--ink);
  cursor: pointer;
}
.btn.primary {
  background: var(--accent);
  color: white;
  border-color: transparent;
}
.btn.secondary {
  background: var(--panel);
}
.toggle {
  width: 42px;
  text-align: center;
}
#brand {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
}
#brand .logo {
  height: 100px;
  width: auto;
  display: block;
}
/* Collapsible system prompt panel */
#sysWrap {
  background: var(--panel);
  border-bottom: 1px solid var(--border);
  padding: 8px 10px;
  display: none;
}
#sysWrap.open {
  display: block;
}
#systemPrompt {
  width: 100%;
  min-height: 64px;
  max-height: 180px;
  padding: 10px;
  resize: vertical;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--bg);
  color: var(--ink);
}

/* Chat area */
#chat {
  flex: 1;
  overflow-y: auto;
  padding: 14px 10px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.row {
  display: flex;
}
.msg {
  max-width: 88vw;
  width: fit-content;
  padding: 10px 12px;
  border-radius: 14px;
  line-height: 1.38;
  background: var(--bubble-bot);
  color: var(--ink);
  word-wrap: break-word;
  white-space: pre-wrap;
}
.user {
  margin-left: auto;
  background: var(--bubble-user);
  color: var(--ink-user);
}
.assist {
  margin-right: auto;
}
.debug {
  font-size: 11px;
  color: var(--muted);
  margin-top: -6px;
  padding: 0 4px;
}

/* Composer fixed at bottom */
#composer {
  position: sticky;
  bottom: 0;
  z-index: 3;
  background: var(--panel);
  border-top: 1px solid var(--border);
  padding: 8px 10px calc(8px + var(--safe-bottom));
}
#form {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
}
#input {
  width: 100%;
  min-height: 44px;
  max-height: 160px;
  resize: none;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--ink);
}
#sendBtn {
  padding: 10px 14px;
  border-radius: 12px;
}

/* Larger screens: widen bubbles a bit */
@media (min-width: 640px) {
  .msg {
    max-width: 700px;
  }
}

/* Thinking animation dots */
.dot {
  animation: loadingDots 1.5s infinite;
  display: inline-block;
  font-size: 18px;
  margin-left: 2px;
  font-weight: bold;
  color: var(--accent);
}

.dot:nth-child(2) {
  animation-delay: 0.5s;
}

.dot:nth-child(3) {
  animation-delay: 1s;
}

@keyframes loadingDots {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

[v-cloak] {
  display: none;
}

.v-select {
  --vs-colors--lightest: rgba(245, 245, 244, 0.12); /* stone-100 with opacity */
  --vs-colors--light: rgba(245, 245, 244, 0.35);
  --vs-colors--dark: rgb(245 245 244); /* text-stone-100 */
  --vs-colors--darkest: rgba(245, 245, 244, 0.08);

  --vs-search-input-color: rgb(245 245 244); /* text */
  --vs-search-input-bg: rgb(28 25 23); /* bg-stone-900 */
  --vs-search-input-placeholder-color: rgba(245, 245, 244, 0.6);

  --vs-font-size: 1rem;
  --vs-line-height: 1.4;

  --vs-state-disabled-bg: rgb(41 37 36); /* bg-stone-800 */
  --vs-state-disabled-color: rgba(245, 245, 244, 0.4);
  --vs-state-disabled-controls-color: rgba(245, 245, 244, 0.4);
  --vs-state-disabled-cursor: not-allowed;

  --vs-border-color: rgb(68 64 60); /* border-stone-700 */
  --vs-border-width: 1px;
  --vs-border-style: solid;
  --vs-border-radius: 10px;

  --vs-actions-padding: 6px 8px 0 6px;
  --vs-controls-color: rgba(245, 245, 244, 0.5);
  --vs-controls-size: 1;

  --vs-selected-bg: rgb(28 25 23); /* chip background */
  --vs-selected-color: rgb(245 245 244);
  --vs-selected-border-color: rgb(68 64 60);
  --vs-selected-border-style: solid;
  --vs-selected-border-width: 1px;

  --vs-dropdown-bg: rgb(23 23 23); /* bg-stone-950 */
  --vs-dropdown-color: rgb(245 245 244);
  --vs-dropdown-z-index: 1000;
  --vs-dropdown-min-width: 160px;
  --vs-dropdown-max-height: 320px;
  --vs-dropdown-box-shadow: 0 12px 28px rgba(0, 0, 0, 0.45);

  --vs-dropdown-option-bg: transparent;
  --vs-dropdown-option-color: rgb(245 245 244);
  --vs-dropdown-option-padding: 8px 12px;
  --vs-dropdown-option--active-bg: rgb(68 64 60); /* hover highlight */
  --vs-dropdown-option--active-color: rgb(245 245 244);
  --vs-dropdown-option--deselect-bg: #b91c1c;
  --vs-dropdown-option--deselect-color: #fff;

  --vs-transition-timing-function: cubic-bezier(0.2, 0, 0.2, 1);
  --vs-transition-duration: 150ms;
}

/* Some fine-tuning */
.v-select .vs__dropdown-toggle {
  min-height: 42px;
  padding: 6px 10px;
  border-radius: var(--vs-border-radius);
  border: var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);
  background-color: var(--vs-search-input-bg);
  color: var(--vs-search-input-color);
filter: invert(1);
}

.dark .vs--single .vs__selected {
    filter: invert(0) !important;
}

.v-select .vs__selected {
  border-radius: 8px;
  padding: 4px 8px;
  background: var(--vs-selected-bg);
  color: var(--vs-selected-color);
  border: 1px solid var(--vs-selected-border-color);
}

.dark .v-select .vs__dropdown-toggle {
  filter: invert(0) !important;
}

.v-select .vs__dropdown-menu {
  border-radius: 10px;
  border: 1px solid var(--vs-border-color);
}

.vs--disabled .vs__clear,
.vs--disabled .vs__dropdown-toggle,
.vs--disabled .vs__open-indicator,
.vs--disabled .vs__search,
.vs--disabled .vs__selected {
  background-color: #282828 !important;
}

[v-cloak],
[x-cloak] {
  display: none !important;
}

.scroll-hint-jump {
  animation: scrollHintJump 1.6s ease-in-out infinite;
}

@keyframes scrollHintJump {
  0%,
  100% {
    transform: translateY(0);
  }
  40%,
  60% {
    transform: translateY(-6px);
  }
  50% {
    transform: translateY(-6px);
  }
}

/* Safe area support for mobile devices */
.safe-area-inset-bottom {
  padding-bottom: var(--safe-bottom);
}

/* Mobile bottom bar with smooth transitions */
@media screen and (max-width: 768px) {
  .mobile-bottom-bar {
    transition: bottom 0.3s ease;
  }
  
  /* iPhone Safari specific fix */
  @supports (-webkit-touch-callout: none) {
    .mobile-bottom-bar {
      bottom: 120px !important;
      position: fixed !important;
      z-index: 9999 !important;
    }
  }
}


*::selection {
  color: #16A34A !important;
  background-color: #212121 !important;
}

html, body {
  scroll-behavior: smooth;
  scroll-padding-top: 100px;
}