/* ================================================================
   KATALYST HYBRID THEME (STYLE D)
   Modern + Professional + On-Brand
   ================================================================= */

/* ----- COLOR PALETTE ----- */
:root {
  --kng-bg-dark: #051E27;         /* outer dark navy */
  --kng-bg-card: #0C3A47;         /* chat container background */
  --kng-bg-bubble-user: #1E5667;  /* lighter teal */
  --kng-bg-bubble-ai: #0F4250;    /* adjusted for better readability */
  --kng-border-blue: #1E5667;     /* borders */
  --kng-accent-red: #DF1F2D;      /* Original Katalyst Red (used sparingly) */
  --kng-accent-red-readable: #FF4A57; /* new readable highlight red */
  --kng-text-light: #FFFFFF;      /* primary text */
  --kng-text-muted: #C9D4D9;      /* muted text */
}

/* ----- GLOBAL BODY ----- */
body {
  margin: 0;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--kng-bg-dark);
  color: var(--kng-text-light);
}

body.dark {
  background: var(--kng-bg-dark);
}

/* ----- PAGE WRAPPER ----- */
.page {
  max-width: 960px;
  margin: 0 auto;
  padding: 24px 16px 40px 16px;
}

/* ================================================================
   HEADER BAR
   ================================================================ */
.top-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--kng-border-blue);
}

.brand {
  display: flex;
  align-items: center;
  gap: 14px;
}

.brand-logo {
  height: 46px;
}

.top-bar-actions {
  display: flex;
  gap: 10px;
}

/* ================================================================
   CHAT CARD LAYOUT
   ================================================================ */
.chat-card {
  background-color: var(--kng-bg-card);
  border: 1px solid var(--kng-border-blue);
  border-radius: 14px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.35);
  padding: 16px;
}

/* ================================================================
   MESSAGES AREA
   ================================================================ */
.messages {
  height: 440px;
  overflow-y: auto;
  padding: 8px 4px;
  border-radius: 10px;
  background: rgba(255,255,255,0.03);
  margin-bottom: 10px;
}

/* Row variations */
.msg-row {
  display: flex;
  margin-bottom: 12px;
}

.msg-row.assistant {
  justify-content: flex-start;
}

.msg-row.user {
  justify-content: flex-end;
}

/* Avatar for assistant */
.msg-avatar {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  margin-right: 10px;
  margin-top: 2px;
}

/* Bubbles */
.msg-bubble {
  max-width: 80%;
  padding: 10px 14px;
  border-radius: 12px;
  line-height: 1.5;
  font-size: 15px;
  white-space: normal;
}

/* User bubble */
.msg-row.user .msg-bubble {
  background: var(--kng-bg-bubble-user);
  color: white;
  border: 1px solid var(--kng-border-blue);
  border-bottom-right-radius: 4px;
}

/* Assistant bubble */
.msg-row.assistant .msg-bubble {
  background: var(--kng-bg-bubble-ai);
  color: var(--kng-text-light);
  border: 1px solid var(--kng-border-blue);
  border-bottom-left-radius: 4px;
}

/* Markdown inside messages */
.msg-bubble h1,
.msg-bubble h2,
.msg-bubble h3,
.msg-bubble strong {
  color: var(--kng-accent-red-readable);  /* brighter red for readability */
}

/* Lists */
.msg-bubble ul {
  margin-left: 20px;
  color: #E7F5F9;
}

/* Inline code */
.msg-bubble code {
  background: rgba(255,255,255,0.08);
  padding: 2px 4px;
  border-radius: 4px;
  font-size: 13px;
}

/* LINKS — High contrast and readable */
.msg-bubble a {
  color: #4DA8FF; /* readable neon-blue */
  text-decoration: none;
  font-weight: 500;
}

.msg-bubble a:hover {
  color: #82C6FF; /* lighter hover */
  text-decoration: underline;
}

/* ================================================================
   INPUT AREA
   ================================================================ */
.input-row {
  display: flex;
  gap: 8px;
}

.input {
  flex: 1;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid var(--kng-border-blue);
  font-size: 15px;
  background: #0A2C36;
  color: var(--kng-text-light);
}

/* ================================================================
   BUTTONS
   ================================================================ */
.btn {
  border-radius: 8px;
  border: none;
  padding: 9px 16px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: 0.2s ease;
}

/* Primary = Katalyst Red */
.btn.primary {
  background-color: var(--kng-accent-red);
  color: white;
}
.btn.primary:hover {
  background-color: #ba1b26;
}

/* Secondary = transparent w/blue border */
.btn.secondary {
  background-color: transparent;
  border: 1px solid var(--kng-border-blue);
  color: var(--kng-text-light);
}
.btn.secondary:hover {
  background: rgba(255,255,255,0.05);
}

.btn.small {
  padding: 6px 10px;
  font-size: 12px;
}

/* ================================================================
   FEEDBACK STRIP
   ================================================================ */
.feedback {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 8px 0 16px;
  font-size: 14px;
  color: var(--kng-text-muted);
}
.feedback.hidden {
  display: none;
}

/* ================================================================
   SCROLLBAR
   ================================================================ */
.messages::-webkit-scrollbar {
  width: 8px;
}
.messages::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,0.15);
  border-radius: 4px;
}

/* ================================================================
   ADMIN PANEL
   ================================================================ */
.admin-layout {
  margin-top: 16px;
  border: 1px solid var(--kng-border-blue);
  border-radius: 12px;
}

.admin-panel {
  border-right: 1px solid var(--kng-border-blue);
  padding-right: 12px;
  color: var(--kng-text-light);
}

.field label {
  color: var(--kng-text-muted);
}
