/* chat.css */
.chat-shell { display: grid; height: 100vh; height: 100dvh; overflow: hidden; position: relative; z-index: 1; background: var(--bg); }
.chat-shell.layout-klasik   { grid-template-columns: 1fr; }
.chat-shell.layout-kaynakli { grid-template-columns: 1fr 320px; }
.chat-shell.layout-odak     { grid-template-columns: 1fr; }

/* Main content offset for fixed sidebar rail */
.chat-shell:has(.chat-sb.collapsed) .chat-main { padding-left: 0; }
.chat-shell:has(.chat-sb.pinned) .chat-main { padding-left: 0; }

/* ── Sidebar (Gemini-style) ── */
.chat-sb {
  display: flex; flex-direction: column; background: var(--surface); min-height: 0;
  width: 48px; overflow: hidden;
  transition: width .24s cubic-bezier(.4,0,.2,1);
  position: fixed; left: 0; top: 0; height: 100vh; height: 100dvh;
  z-index: 50; flex-shrink: 0;
}
/* Açık — tıklama ile */
.chat-sb.open { width: 270px; box-shadow: 4px 0 24px rgba(0,0,0,.12); }
/* Sabitle — pinned: grid'e katılır */
.chat-sb.pinned { width: 270px; position: relative; box-shadow: none; }
.chat-sb.pinned:hover { box-shadow: none; }
/* Toggle ile tamamen gizle */
.chat-sb.collapsed { width: 0; min-width: 0; padding: 0; overflow: hidden; }
.chat-sb.collapsed:hover { width: 0; box-shadow: none; }

/* Grid: pinned sidebar 270px yer kaplar */
.chat-shell:has(.chat-sb.pinned).layout-klasik { grid-template-columns: 270px 1fr; }
.chat-shell:has(.chat-sb.pinned).layout-kaynakli { grid-template-columns: 270px 1fr 320px; }

/* ── Icon rail (kapalı) ── */
.chat-sb-rail {
  display: flex; flex-direction: column; align-items: center;
  padding: 10px 0 0; flex-shrink: 0;
}
.chat-sb-rail-btn {
  width: 48px; height: 42px; border: none; outline: none;
  background: transparent; color: var(--muted); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: color .12s, background .12s; flex-shrink: 0;
  -webkit-appearance: none; appearance: none; box-shadow: none; padding: 0;
  border-radius: 50%;
}
.chat-sb-rail-btn:hover { color: var(--text); background: var(--hover); }
/* Logo buton — hover'da sidebar ikonuna dönüşür */
.chat-sb-rail-logo { position: relative; }
.chat-sb-rail-logo .rail-logo-default { display: flex; align-items: center; justify-content: center; transition: opacity .2s, transform .2s; }
.chat-sb-rail-logo .rail-logo-hover { display: flex; align-items: center; justify-content: center; position: absolute; inset: 0; opacity: 0; transform: scale(.7); transition: opacity .2s, transform .2s; }
.chat-sb-rail-logo:hover .rail-logo-default { opacity: 0; transform: scale(.7); }
.chat-sb-rail-logo:hover .rail-logo-hover { opacity: 1; transform: scale(1); }
.chat-sb.open .chat-sb-rail, .chat-sb.pinned .chat-sb-rail { display: none; }

/* ── Footer rail (kapalı, alt) ── */
.chat-sb-foot-rail {
  margin-top: auto; display: flex; flex-direction: column; align-items: center;
  padding: 8px 0 12px; flex-shrink: 0; gap: 2px;
}
.chat-sb-foot-rail .avatar { cursor: pointer; flex-shrink: 0; position: relative; z-index: 2; }
.chat-sb-foot-rail .chat-sb-rail-btn { position: relative; z-index: 2; }
.chat-sb.open .chat-sb-foot-rail, .chat-sb.pinned .chat-sb-foot-rail { display: none; }

/* ── Expanded (open/pinned only, NOT hover) ── */
.chat-sb-expanded { display: none; flex-direction: column; flex: 1; min-height: 0; }
.chat-sb.open .chat-sb-expanded, .chat-sb.pinned .chat-sb-expanded { display: flex; }

/* Toggle button active */
.chat-sb-toggle.on { color: var(--accent-bright); background: var(--accent-soft); }

/* ── Sidebar Header (Logo + KUR + Toggle) ── */
.chat-sb-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 14px 4px; flex-shrink: 0;
}
.chat-sb-brand {
  display: flex; align-items: center; gap: 8px;
}
.chat-sb-brand-name {
  font-family: var(--display); font-weight: 700; font-size: 18px;
  letter-spacing: -0.02em; color: var(--text);
}
.chat-sb-toggle {
  width: 34px; height: 34px; border-radius: 50%; border: none; outline: none;
  background: transparent; color: var(--muted); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .12s, color .12s;
  -webkit-appearance: none; appearance: none;
}
.chat-sb-toggle:hover { background: var(--hover); color: var(--text); }

/* Menü başlığı */
.chat-sb-top { padding: 6px 12px 2px; flex-shrink: 0; }
.chat-sb-menu-item {
  display: flex; align-items: center; gap: 12px; width: 100%;
  padding: 10px 14px; border: none; outline: none; background: transparent;
  color: var(--text-2); font-size: 14px; font-family: inherit;
  cursor: pointer; border-radius: 24px; transition: background .12s;
  white-space: nowrap; -webkit-appearance: none; appearance: none; box-shadow: none;
}
.chat-sb-menu-item:hover { background: var(--hover); }
.chat-sb-menu-item svg { color: var(--muted); flex-shrink: 0; }

/* ── Section titles ── */
.chat-sb-section { padding: 0 14px; flex-shrink: 0; }
.chat-sb-section-title {
  font-size: 12px; font-weight: 500; color: var(--faint);
  padding: 14px 0 6px; letter-spacing: 0.01em;
}
.chat-sb-more {
  display: flex; align-items: center; gap: 8px; width: 100%;
  padding: 8px 14px; border: none; outline: none; background: transparent;
  color: var(--muted); font-size: 13px; font-family: inherit;
  cursor: pointer; border-radius: 24px; transition: background .12s;
  -webkit-appearance: none; appearance: none;
}
.chat-sb-more:hover { background: var(--hover); color: var(--text-2); }

/* Arama */
.chat-sb-search { margin: 2px 12px 0; flex-shrink: 0; }
.chat-sb-search input { width: 100%; padding: 8px 12px; border-radius: 20px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); font-size: 13px; font-family: inherit; outline: none; }
.chat-sb-search input::placeholder { color: var(--faint); }

/* Sohbet listesi */
.chat-sb-list { flex: 1; overflow-y: auto; overflow-x: hidden; padding: 4px 8px 8px; }

/* Expanded footer */
.chat-sb-foot { padding: 8px 10px; white-space: nowrap; overflow: hidden; display: none; flex-shrink: 0; }
.chat-sb.open .chat-sb-foot, .chat-sb.pinned .chat-sb-foot { display: block; }
.chat-sb-user {
  display: flex; align-items: center; gap: 10px; width: 100%;
  padding: 8px 10px; border-radius: 24px; border: none;
  background: transparent; cursor: pointer; transition: background .12s;
  font-family: inherit; text-align: left; white-space: nowrap;
  overflow: hidden; color: var(--text);
}
.chat-sb-user:hover { background: var(--hover); }

/* Grup başlığı */
.chat-sb-group { padding: 14px 14px 6px; font-size: 12px; font-weight: 600; color: var(--faint); white-space: nowrap; letter-spacing: .02em; }

/* Sohbet satırı */
.chat-sb-row { position: relative; display: flex; align-items: center; border-radius: 24px; margin: 0 4px; }
.chat-sb-row:hover { background: var(--hover); }
.chat-sb-row.active { background: var(--hover); }
.chat-sb-row a { flex: 1; display: block; padding: 9px 14px; font-size: 13.5px; color: var(--text-2); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; border-radius: 24px; line-height: 1.35; }
.chat-sb-row:hover a, .chat-sb-row.active a { color: var(--text); }
.chat-sb-row a:focus { outline: none; }

/* Aksiyon butonları */
.chat-sb-acts { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); display: flex; gap: 1px; opacity: 0; visibility: hidden; transition: opacity .12s, visibility .12s; }
.chat-sb-row:hover .chat-sb-acts, .chat-sb-row.active .chat-sb-acts { opacity: 1; visibility: visible; }
.chat-sb-act { width: 32px; height: 32px; border: none; background: transparent; border-radius: 50%; color: var(--faint); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: color .1s, background .1s; }
.chat-sb-act:hover { color: var(--text); background: var(--hover); }
.chat-sb-act.del:hover { color: var(--danger); }

/* Satır-içi düzenleme */
.chat-sb-edit { gap: 6px; padding: 0 6px; }
.chat-sb-input { flex: 1; min-width: 0; padding: 8px 12px; border: 1px solid var(--accent-line, rgba(109,124,255,.4)); border-radius: 20px; background: var(--surface-2); color: var(--text); font-size: 13px; font-family: inherit; outline: none; box-shadow: 0 0 0 3px var(--accent-soft, rgba(109,124,255,.12)); }
.chat-sb-input::placeholder { color: var(--faint); }

/* Klasör */
.chat-sb-folder { display: flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 24px; cursor: pointer; font-size: 13px; color: var(--text-2); font-weight: 500; white-space: nowrap; margin: 0 4px; position: relative; }
.chat-sb-folder:hover { background: var(--hover); }
.chat-sb-folder svg { color: var(--faint); flex: none; transition: transform .15s; }
.chat-sb-folder.open svg { transform: rotate(90deg); }
.chat-sb-folder .count { margin-left: auto; font-size: 11px; color: var(--faint); }
.chat-sb-folder-del { position: absolute; right: 28px; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; border-radius: 50%; border: none; background: transparent; color: var(--faint); cursor: pointer; align-items: center; justify-content: center; flex: none; padding: 0; outline: none; -webkit-appearance: none; display: inline-flex; opacity: 0; transition: opacity .12s; }
.chat-sb-folder:hover .chat-sb-folder-del { opacity: 1; }
.chat-sb-folder-del:hover { color: var(--danger); background: rgba(248,113,113,0.12); }

/* ── Main ── */
.chat-main { display: flex; flex-direction: column; min-width: 0; min-height: 0; position: relative; background: var(--bg); padding-left: 48px; }
.chat-top { display: flex; align-items: center; gap: 10px; padding: 8px 16px; min-height: 44px; background: transparent; position: sticky; top: 0; z-index: 10; }
.chat-burger { display: none; }
.chat-top-conv { font-size: 13px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* ── Empty (Gemini-style: content at lower-center) ── */
.chat-scroll { flex: 1; overflow-y: auto; min-height: 0; display: flex; flex-direction: column; }
.chat-empty {
  max-width: 680px; width: 100%; margin: 0 auto; padding: 0 22px;
  display: flex; flex-direction: column; align-items: center; text-align: center;
  flex: 1; justify-content: center;
  animation: floatUp .5s ease both;
}
.chat-greet {
  font-size: clamp(28px, 5vw, 38px); margin: 20px 0 8px; letter-spacing: -0.03em;
  background: linear-gradient(135deg, var(--text), var(--accent-bright));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.chat-greet-sub { color: var(--muted); font-size: 15px; max-width: 420px; margin: 0 0 24px; line-height: 1.55; }

/* Gemini-style blue glow border on composer */
@property --glow-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}
.chat-composer {
  position: relative;
  --glow-angle: 0deg;
}
.chat-composer::before {
  content: ""; position: absolute; inset: -2px; border-radius: 28px;
  background: conic-gradient(from var(--glow-angle), #4285f4, #a259ff, #34a8eb, #4285f4);
  opacity: 0; transition: opacity .4s ease;
  z-index: -1;
  filter: blur(1px);
}
.chat-composer:focus-within::before {
  opacity: 1;
  animation: glowSpin 2.5s linear infinite;
}
@keyframes glowSpin {
  to { --glow-angle: 360deg; }
}
.chat-composer:focus-within {
  border-color: transparent;
  box-shadow: 0 0 20px rgba(66,133,244,.15), 0 0 40px rgba(162,89,255,.08);
}

/* Empty state hides the outer composer-wrap, uses inline one */
.chat-empty-composer { width: 100%; max-width: 680px; margin-top: 8px; }

/* ── Thread ── */
.chat-thread { max-width: 768px; margin: 0 auto; padding: 24px 24px 40px; display: flex; flex-direction: column; gap: 8px; }
.msg-row { display: flex; gap: 12px; padding: 8px 0; }
.msg-row.user { justify-content: flex-end; }
.msg-user { background: var(--surface-2); border: none; color: var(--text); padding: 12px 18px; border-radius: 20px 20px 4px 20px; max-width: 76%; font-size: 15px; line-height: 1.6; }
[data-theme="light"] .msg-user { background: #e8ebf0; }
.msg-av { flex: none; padding-top: 4px; }
.msg-body { min-width: 0; flex: 1; }
.msg-text { font-size: 15px; line-height: 1.75; color: var(--text); overflow-wrap: anywhere; letter-spacing: -0.006em; }
.msg-text.err { color: var(--danger); }
.md-code { font-family: var(--mono); font-size: 13px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 5px; padding: 1px 6px; color: var(--accent-bright); }
.msg-cursor { display: inline-block; width: 7px; height: 16px; background: var(--accent); margin-left: 2px; vertical-align: text-bottom; animation: blink 1s steps(2) infinite; border-radius: 1px; }

/* Code */
.msg-code { margin: 12px 0; border-radius: 12px; overflow: hidden; border: 1px solid var(--border); }
.msg-code:hover { border-color: var(--border-2); }
.msg-code-bar { display: flex; align-items: center; justify-content: space-between; padding: 8px 14px; background: var(--surface-2); border-bottom: 1px solid var(--border); position: relative; }
.msg-code-bar::before { content: ""; position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 10px; height: 10px; border-radius: 50%; background: #ff5f56; box-shadow: 16px 0 0 #ffbd2e, 32px 0 0 #27c93f; }
.msg-code-bar .mono { margin-left: 48px; }

/* Memory */
.msg-memory { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; color: var(--accent-bright); background: var(--accent-soft); border: 1px solid var(--accent-line); border-radius: 10px; padding: 9px 12px; margin-bottom: 10px; line-height: 1.45; }
.msg-memory svg { flex: none; margin-top: 1px; }

/* Citations */
.msg-cites { margin-top: 12px; }
.msg-cites-toggle { display: inline-flex; align-items: center; gap: 7px; padding: 6px 11px; border-radius: 8px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text-2); font-size: 12.5px; font-weight: 600; cursor: pointer; }
.msg-cites-toggle:hover { border-color: var(--border-2); }
.msg-cite-list { display: flex; flex-direction: column; gap: 10px; margin-top: 10px; animation: citeIn .22s cubic-bezier(.2,.7,.2,1); overflow: hidden; }
@keyframes citeIn { from { opacity: 0; max-height: 0; } to { opacity: 1; max-height: 600px; } }
.msg-cite { border: 1px solid var(--border); border-radius: var(--r); padding: 13px 15px; background: var(--surface); }
.msg-cite-h { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.msg-cite-n { width: 20px; height: 20px; border-radius: 6px; background: var(--accent-soft); color: var(--accent-bright); font-family: var(--mono); font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.msg-cite-h b { font-size: 13.5px; }
.msg-cite-q { font-size: 13px; color: var(--text-2); line-height: 1.5; margin: 9px 0 0; font-style: italic; }

/* Source chips — Gemini tarzı: gizli, sadece mock/demo gösterilir */
.msg-source { display: none; }
.msg-source:has(.src-mock) { display: flex; align-items: center; gap: 6px; margin-top: 8px; flex-wrap: wrap; }
.src-chip { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 99px; font-size: 11px; font-weight: 600; border: 1px solid var(--border); background: var(--surface-2); color: var(--text-2); cursor: help; }
.src-kurnative { color: #22d3ee; border-color: rgba(34,211,238,.4); background: linear-gradient(135deg,rgba(34,211,238,.12),rgba(168,85,247,.08)); font-weight: 700; }
.src-tool { color: #e0a64b; border-color: rgba(224,166,75,.35); background: rgba(224,166,75,.1); }
.src-kurmem { color: #c084fc; border-color: rgba(192,132,252,.3); background: rgba(192,132,252,.08); }
.src-cache { color: #22c3b3; border-color: rgba(34,195,179,.3); background: rgba(34,195,179,.08); }
.src-llm { color: var(--accent-bright); border-color: var(--accent-line); background: var(--accent-soft); }
.src-web { color: #34d399; border-color: rgba(52,211,153,.3); background: rgba(52,211,153,.08); }
.src-mock { color: #f97316; border-color: rgba(249,115,22,.45); background: rgba(249,115,22,.12); font-weight: 700; }
.src-conf { font-family: var(--mono); font-size: 11px; color: var(--faint); }
.src-bar-wrap { display: inline-flex; align-items: center; gap: 3px; }
.src-mini-bar { width: 32px; height: 3px; border-radius: 99px; background: var(--surface-3); overflow: hidden; display: inline-block; vertical-align: middle; }
.src-mini-bar-fill { height: 100%; border-radius: 99px; transition: width .5s ease; }

/* Actions */
.msg-actions { display: flex; align-items: center; gap: 2px; margin-top: 8px; opacity: 0; transition: opacity .16s; }
.msg-row:hover .msg-actions, .msg-actions:hover { opacity: 1; }
@media (hover: none) { .msg-actions { opacity: 1; } }
.msg-act { width: 36px; height: 36px; border-radius: 50%; border: none; background: transparent; color: var(--muted); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .12s, color .12s; outline: none; -webkit-appearance: none; }
.msg-act:hover { background: var(--hover); color: var(--text); }
.msg-act.on { color: var(--accent-bright); }
.msg-act.on.down { color: var(--danger); }

/* Composer */
.chat-composer-wrap { padding: 10px 18px calc(12px + env(safe-area-inset-bottom)); max-width: 768px; width: 100%; margin: 0 auto; position: relative; z-index: 20; }
.chat-composer-wrap::before { content: ""; position: absolute; left: 0; right: 0; top: -32px; height: 32px; background: linear-gradient(to top, var(--bg), transparent); pointer-events: none; }
.chat-composer { display: flex; align-items: flex-end; gap: 6px; background: var(--surface); border: 1px solid var(--border); border-radius: 26px; padding: 6px 6px 6px 18px; transition: border-color .18s, box-shadow .18s; }
.chat-composer:focus-within { border-color: var(--accent-line); box-shadow: 0 0 0 3px var(--accent-soft); }
[data-theme="light"] .chat-composer { background: #fff; border-color: #dde2ea; }
[data-theme="light"] .chat-composer:focus-within { box-shadow: 0 0 0 3px var(--accent-soft); }
.chat-comp-ic { width: 36px; height: 36px; border-radius: 50%; border: none; background: transparent; color: var(--muted); cursor: pointer; display: flex; align-items: center; justify-content: center; flex: none; outline: none; -webkit-appearance: none; }
.chat-comp-ic:hover { background: var(--hover); color: var(--text); }
.chat-ta { flex: 1; border: none; background: transparent; outline: none; resize: none; font-size: 15px; line-height: 1.5; padding: 8px 0; height: 24px; min-height: 24px; max-height: 150px; overflow-y: auto; }
.chat-send { width: 38px; height: 38px; border-radius: 50%; border: none; cursor: pointer; flex: none; display: flex; align-items: center; justify-content: center; background: var(--accent); color: #fff; transition: transform .14s, opacity .14s; outline: none; -webkit-appearance: none; }
.chat-send:hover:not(:disabled) { transform: scale(1.05); }
.chat-send:active:not(:disabled) { transform: scale(.93); }
.chat-send:disabled { background: var(--surface-3); color: var(--faint); cursor: not-allowed; }
.chat-send.stop { background: var(--surface-3); color: var(--text); }
.chat-comp-foot { text-align: center; font-size: 11.5px; color: var(--faint); margin-top: 7px; opacity: .7; }

/* Sources panel */
.chat-sources { border-left: 1px solid color-mix(in srgb, var(--border) 50%, transparent); background: var(--surface); padding: 18px; overflow-y: auto; min-height: 0; }
.chat-sources-h { display: flex; align-items: center; gap: 8px; font-family: var(--display); font-size: 15px; margin-bottom: 16px; }
.chat-sources-empty { font-size: 13px; color: var(--muted); line-height: 1.5; background: var(--surface-2); border: 1px dashed var(--border-2); border-radius: var(--r); padding: 16px; text-align: center; }
.chat-src { border: 1px solid var(--border); border-radius: var(--r); padding: 14px; margin-bottom: 12px; background: var(--surface-2); transition: border-color .18s, box-shadow .18s; }
.chat-src:hover { border-color: var(--accent-line); }

.chat-scrim { position: fixed; inset: 0; background: rgba(0,0,0,0.15); z-index: 40; animation: fadeIn .2s; cursor: pointer; }
.chat-tobottom { position: absolute; left: 50%; bottom: 98px; transform: translateX(-50%); z-index: 6; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--border); background: var(--surface); color: var(--text-2); display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 6px 20px -6px rgba(0,0,0,.45); animation: fadeIn .2s; transition: transform .18s cubic-bezier(.34,1.56,.64,1), box-shadow .18s; }
.chat-tobottom:hover { box-shadow: 0 6px 24px -4px rgba(0,0,0,.55), 0 0 0 3px var(--accent-soft); }

/* Thinking dots */
.msg-thinking { display: inline-flex; gap: 5px; padding: 7px 0; align-items: center; }
.msg-thinking span { width: 7px; height: 7px; border-radius: 50%; background: linear-gradient(135deg, var(--accent-bright), var(--accent)); opacity: .45; animation: thinkBounce 1.25s cubic-bezier(0.4, 0, 0.2, 1) infinite; }
.msg-thinking span:nth-child(2) { animation-delay: .18s; }
.msg-thinking span:nth-child(3) { animation-delay: .36s; }
@keyframes thinkBounce { 0%,80%,100% { transform: translateY(0) scale(1); opacity: .4; } 40% { transform: translateY(-6px) scale(1.2); opacity: 1; box-shadow: 0 4px 8px var(--accent-soft); } }

/* Message animation */
@keyframes msgIn { from { opacity: 0; transform: translateY(12px) scale(.985); } to { opacity: 1; transform: none; } }
.chat-thread > .msg-row { animation: msgIn .38s cubic-bezier(.16,.7,.2,1) both; }

/* Scrollbar */
.chat-scroll::-webkit-scrollbar { width: 5px; }
.chat-scroll::-webkit-scrollbar-track { background: transparent; }
.chat-scroll::-webkit-scrollbar-thumb { background: var(--border-2); border-radius: 99px; }
.chat-sb-list::-webkit-scrollbar { width: 4px; }
.chat-sb-list::-webkit-scrollbar-thumb { background: var(--border-2); border-radius: 99px; }

/* Changelog */
.ver-pill-btn { background: none; border: none; padding: 0; margin: 0; cursor: pointer; line-height: 0; }
.ver-pill-btn:hover { opacity: .82; }
.cl-overlay { position: fixed; inset: 0; z-index: 200; background: rgba(0,0,0,0.6); backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; padding: 20px; animation: fadeIn .18s; }
.cl-modal { background: var(--surface-2); border: 1px solid var(--border); border-radius: 16px; max-width: 560px; width: 100%; max-height: 80vh; display: flex; flex-direction: column; box-shadow: 0 24px 64px rgba(0,0,0,0.5); animation: clPop .2s ease; }
@keyframes clPop { from { transform: scale(.96); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.cl-head { display: flex; align-items: flex-start; justify-content: space-between; padding: 18px 20px; border-bottom: 1px solid var(--border); }
.cl-head h2 { margin: 0; font-size: 16px; font-weight: 720; }
.cl-head .cl-ver { color: var(--muted); font-size: 12px; margin-top: 3px; }
.cl-close { background: none; border: none; color: var(--muted); font-size: 24px; cursor: pointer; padding: 0 4px; }
.cl-close:hover { color: var(--text); }
.cl-body { padding: 16px 20px; overflow-y: auto; }
.cl-entry { margin-bottom: 18px; }
.cl-entry:last-child { margin-bottom: 0; }
.cl-entry h3 { margin: 0 0 7px; font-size: 13px; font-weight: 680; color: var(--text); display: flex; align-items: center; gap: 8px; }
.cl-entry h3 .cl-tag { font-size: 10px; font-weight: 600; padding: 2px 8px; border-radius: 6px; background: var(--accent-soft); color: var(--accent); }
.cl-entry h3 .cl-date { margin-left: auto; font-size: 11px; font-weight: 500; color: var(--muted); }
.cl-entry ul { margin: 0; padding-left: 18px; }
.cl-entry li { font-size: 12.5px; line-height: 1.55; color: var(--text-2); margin-bottom: 4px; }
.cl-foot { padding: 12px 20px; border-top: 1px solid var(--border); font-size: 11px; color: var(--muted); text-align: center; }

/* Empty state ops */
.chat-ops { display: flex; gap: 12px; margin-top: 16px; flex-wrap: wrap; justify-content: center; }
.chat-op { display: flex; align-items: center; gap: 11px; padding: 12px 16px; min-width: 190px; border-radius: 14px; border: 1px solid var(--border); background: var(--surface); cursor: pointer; transition: border-color .15s, transform .18s cubic-bezier(.34,1.56,.64,1); text-align: left; }
.chat-op:hover { border-color: var(--accent-line); transform: translateY(-2px); }
.chat-op-ic { width: 38px; height: 38px; border-radius: 10px; display: flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--accent) 14%, transparent); color: var(--accent); flex: none; }
.chat-op-t { font-weight: 700; font-size: 14.5px; }
.chat-op-s { font-size: 12.5px; color: var(--muted); }



/* ── Responsive ── */
@media (max-width: 1100px) { .chat-shell.layout-kaynakli { grid-template-columns: 1fr; } .chat-sources { display: none; } }
@media (max-width: 860px) {
  .chat-shell.layout-klasik, .chat-shell.layout-kaynakli { grid-template-columns: 1fr; }
  .chat-main { padding-left: 0; }
  .chat-sb { position: fixed; top: 0; left: 0; bottom: 0; width: 0; z-index: 50; transform: translateX(-100%); transition: transform .26s cubic-bezier(.2,.7,.2,1), width 0s; box-shadow: var(--shadow); }
  .chat-sb.open { transform: none; width: 286px; }
  .chat-sb:hover { width: 286px; }
  .chat-sb .chat-sb-rail { display: none; }
  .chat-sb .chat-sb-expanded { display: flex; flex-direction: column; flex: 1; min-height: 0; }
  .chat-sb .chat-sb-foot-rail { display: none; }
  .chat-sb .chat-sb-foot { display: block; }
  .chat-burger { display: inline-flex; }
  .chat-scrim { display: block; position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 40; animation: fadeIn .2s; }
  .chat-starters { grid-template-columns: 1fr; }
  .chat-thread { padding: 18px 14px 32px; gap: 22px; }
  .msg-user { max-width: 88%; padding: 10px 14px; font-size: 14.5px; }
  .chat-composer-wrap { padding: 6px 10px calc(10px + env(safe-area-inset-bottom)); }
  .chat-ta { font-size: 15px; }
}
@media (max-width: 540px) {
  .chat-empty { padding: max(4vh, 24px) 16px 30px; }
  .chat-greet { font-size: clamp(24px, 6vw, 30px); margin: 14px 0 6px; }
  .chat-greet-sub { font-size: 14.5px; margin-bottom: 22px; }
  .msg-user { max-width: 92%; }
  .chat-composer-wrap { padding: 4px 6px calc(8px + env(safe-area-inset-bottom)); }
  .chat-send { width: 40px; height: 40px; }
  .chat-comp-ic { width: 40px; height: 40px; }
  .cl-modal { margin: 0 12px; max-height: 72vh; border-radius: 14px; }
}

/* ── Keyboard focus-visible (erişilebilirlik) ── */
.chat-sb-rail-btn:focus-visible,
.chat-sb-toggle:focus-visible,
.chat-sb-menu-item:focus-visible,
.chat-sb-more:focus-visible,
.chat-sb-row a:focus-visible,
.msg-act:focus-visible,
.chat-comp-ic:focus-visible,
.chat-send:focus-visible,
.chat-tobottom:focus-visible,
.chat-sb-act:focus-visible,
.chat-sb-folder-del:focus-visible,
.chat-img-x:focus-visible { outline: 2px solid var(--accent-bright); outline-offset: 2px; }

/* ── Light tema (chat) ── */
[data-theme="light"] .chat-sb { background: #f4f6f8; }
[data-theme="light"] .chat-sb-row:hover, [data-theme="light"] .chat-sb-row.active { background: rgba(0,0,0,.06); }
[data-theme="light"] .chat-sb-search input { background: #fff; border-color: #dde2ea; }
[data-theme="light"] .chat-sb-menu-item:hover { background: rgba(0,0,0,.05); }
[data-theme="light"] .msg-code { border-color: #d4d8df; }
[data-theme="light"] .msg-code-bar { background: #edf0f4; border-bottom-color: #d4d8df; }
[data-theme="light"] .msg-code-bar::before { background: #ff5f56; }
[data-theme="light"] .md-code { background: #eef1f6; border-color: #d4d8df; color: var(--accent-deep); }
[data-theme="light"] .msg-memory { background: rgba(47,109,255,.08); border-color: rgba(47,109,255,.2); color: var(--accent-deep); }
[data-theme="light"] .chat-scroll::-webkit-scrollbar-thumb { background: #c4c9d2; }
[data-theme="light"] .chat-sb-list::-webkit-scrollbar-thumb { background: #c4c9d2; }
[data-theme="light"] .cl-modal { background: #fff; border-color: #dde2ea; box-shadow: 0 24px 64px rgba(0,0,0,.15); }
[data-theme="light"] .cl-overlay { background: rgba(0,0,0,0.25); }
[data-theme="light"] .cl-entry h3 .cl-tag { color: var(--accent-deep); }
[data-theme="light"] .chat-scrim { background: rgba(0,0,0,.08); }
[data-theme="light"] .msg-cite { background: #fafbfc; border-color: #dde2ea; }
[data-theme="light"] .msg-cite-n { color: var(--accent-deep); }
[data-theme="light"] .chat-src { background: #fafbfc; border-color: #dde2ea; }
[data-theme="light"] .chat-tobottom { background: #fff; border-color: #dde2ea; box-shadow: 0 4px 16px rgba(0,0,0,.12); }
[data-theme="light"] .chat-op { background: #fff; border-color: #dde2ea; }
[data-theme="light"] .chat-sources { background: #fafbfc; border-left-color: #dde2ea; }
[data-theme="light"] .msg-thinking span { background: linear-gradient(135deg, var(--accent-deep), var(--accent)); }

/* --- Görsel (vision) ekleme --- */
.chat-img-strip { display: flex; flex-wrap: wrap; gap: 8px; padding: 8px 8px 4px; }
.chat-img-thumb { position: relative; width: 64px; height: 64px; border-radius: 12px; overflow: hidden; border: 1px solid var(--border); background: var(--surface-2); }
.chat-img-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.chat-img-x { position: absolute; top: 2px; right: 2px; width: 24px; height: 24px; border-radius: 50%; border: none; background: rgba(0,0,0,.6); color: #fff; font-size: 13px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.chat-img-x:hover { background: rgba(0,0,0,.85); }
.msg-user-imgs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.msg-user-img { max-width: 220px; max-height: 220px; border-radius: 12px; object-fit: cover; display: block; cursor: zoom-in; }
.msg-user-docs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.msg-doc-badge { display: inline-flex; align-items: center; gap: 5px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 8px; padding: 4px 9px; font-size: 12.5px; color: var(--text-dim); }

/* Composer döküman rozeti */
.chat-doc-chip { position: relative; display: inline-flex; align-items: center; gap: 6px; height: 64px; max-width: 180px; padding: 0 26px 0 12px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); font-size: 12.5px; }
.chat-doc-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chat-img-x.doc { top: 50%; transform: translateY(-50%); }
.chat-img-thumb img { cursor: zoom-in; }

/* Lightbox (resim büyütme) */
.lightbox { position: fixed; inset: 0; background: rgba(0,0,0,.85); display: flex; align-items: center; justify-content: center; z-index: 300; cursor: zoom-out; padding: 24px; }
.lightbox img { max-width: 95vw; max-height: 95vh; border-radius: 8px; cursor: default; }
.lightbox-x { position: absolute; top: 16px; right: 20px; width: 40px; height: 40px; border-radius: 50%; border: none; background: rgba(255,255,255,.15); color: #fff; font-size: 24px; cursor: pointer; }

/* --- Tam ekran sesli sohbet --- */
.voice-overlay { position: fixed; inset: 0; z-index: 400; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 40px;
  background: radial-gradient(circle at 50% 40%, #1b2440 0%, #0a0e1a 70%); color: #fff; }
.voice-stage { display: flex; flex-direction: column; align-items: center; gap: 28px; padding: 0 24px; text-align: center; }
.voice-orb { position: relative; width: 180px; height: 180px; display: flex; align-items: center; justify-content: center; }
.voice-orb-core { width: 110px; height: 110px; border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #6ea8ff, #2f6dff 60%, #1b3a8a);
  box-shadow: 0 0 60px rgba(47,109,255,.6); transition: transform .25s; }
.voice-orb-ring, .voice-orb-ring.r2 { position: absolute; border-radius: 50%; border: 2px solid rgba(110,168,255,.4); inset: 0; opacity: 0; }
/* Dinliyor — nabız gibi genişleyen halkalar */
.voice-orb.listening .voice-orb-core { animation: orbPulse 1.4s ease-in-out infinite; }
.voice-orb.listening .voice-orb-ring { animation: orbRing 2s ease-out infinite; }
.voice-orb.listening .voice-orb-ring.r2 { animation: orbRing 2s ease-out infinite .8s; }
/* Konuşuyor — yeşil, hızlı titreşim */
.voice-orb.speaking .voice-orb-core { background: radial-gradient(circle at 35% 30%, #6ee7a8, #16a34a 60%, #0f7a37); box-shadow: 0 0 70px rgba(34,197,94,.6); animation: orbTalk .5s ease-in-out infinite; }
/* Düşünüyor — sönük, yavaş */
.voice-orb.thinking .voice-orb-core { animation: orbThink 1.6s ease-in-out infinite; opacity: .7; }
@keyframes orbPulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.08); } }
@keyframes orbTalk { 0%,100% { transform: scale(1); } 25% { transform: scale(1.12); } 50% { transform: scale(.96); } 75% { transform: scale(1.08); } }
@keyframes orbThink { 0%,100% { transform: scale(.92); opacity: .55; } 50% { transform: scale(1); opacity: .8; } }
@keyframes orbRing { 0% { transform: scale(.6); opacity: .7; } 100% { transform: scale(1.6); opacity: 0; } }
.voice-state { font-size: 20px; font-weight: 600; letter-spacing: .3px; }
.voice-hint { font-size: 14px; color: #8a94ad; max-width: 420px; text-align: center; }
/* Karaoke konuşma alanı */
.voice-convo { width: 100%; max-width: 620px; padding: 0 24px; display: flex; flex-direction: column; gap: 14px; align-items: stretch; max-height: 42vh; overflow-y: auto; }
.voice-line { font-size: 18px; line-height: 1.55; border-radius: 16px; padding: 12px 18px; animation: voiceLineIn .25s ease; }
.voice-line.user { align-self: flex-end; max-width: 80%; background: rgba(110,168,255,.18); color: #dbe7ff; border: 1px solid rgba(110,168,255,.25); }
.voice-line.bot { align-self: flex-start; max-width: 90%; background: rgba(255,255,255,.06); color: #eef2fb; }
.voice-line.bot.active { color: #fff; box-shadow: 0 0 0 1px rgba(110,231,168,.3); }
.voice-line.live { align-self: flex-end; max-width: 80%; background: rgba(110,168,255,.1); color: #aebfe0; font-style: italic; }
@keyframes voiceLineIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.voice-close { position: absolute; top: 20px; right: 24px; display: inline-flex; align-items: center; gap: 7px; padding: 9px 18px; border-radius: 24px; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.08); color: #fff; font-size: 14px; cursor: pointer; transition: background .15s; }
.voice-close:hover { background: rgba(255,255,255,.16); }

/* --- Ses (voice) --- */
.chat-comp-ic.rec { color: #fff; background: #e5484d; animation: voicePulse 1.2s infinite; }
@keyframes voicePulse { 0%,100% { box-shadow: 0 0 0 0 rgba(229,72,77,.5); } 50% { box-shadow: 0 0 0 6px rgba(229,72,77,0); } }
.voice-bar { display: flex; align-items: center; gap: 8px; padding: 4px 10px 8px; font-size: 13px; color: var(--text-dim); }
.voice-bar-lbl { opacity: .8; }
.voice-sel { background: var(--surface-2); color: var(--text); border: 1px solid var(--border); border-radius: 8px; padding: 3px 8px; font-size: 13px; cursor: pointer; }
.voice-create { margin-left: auto; background: none; border: 1px solid var(--border); color: var(--accent); border-radius: 8px; padding: 3px 10px; font-size: 12.5px; cursor: pointer; }
.voice-create:hover { background: var(--accent-soft); }

/* Asistanını Yarat modalı */
.cv-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.55); display: flex; align-items: center; justify-content: center; z-index: 200; padding: 16px; }
.cv-modal { background: var(--surface); border: 1px solid var(--border); border-radius: 16px; width: 100%; max-width: 460px; padding: 20px; max-height: 90vh; overflow-y: auto; }
.cv-head { display: flex; justify-content: space-between; align-items: center; font-size: 17px; }
.cv-x { background: none; border: none; font-size: 22px; color: var(--text-dim); cursor: pointer; line-height: 1; }
.cv-sub { font-size: 13.5px; color: var(--text-dim); margin: 8px 0 14px; line-height: 1.5; }
.cv-tabs { display: flex; gap: 8px; margin-bottom: 12px; }
.cv-tabs button { flex: 1; padding: 8px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); border-radius: 10px; cursor: pointer; font-size: 13.5px; }
.cv-tabs button.on { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); }
.cv-calib { background: var(--surface-2); border-radius: 10px; padding: 10px 12px; margin-bottom: 12px; }
.cv-calib-lbl { font-size: 12.5px; color: var(--text-dim); margin-bottom: 6px; }
.cv-calib-text { font-size: 14px; line-height: 1.55; font-style: italic; }
.cv-rec { text-align: center; margin: 12px 0; }
.cv-rec-btn { padding: 10px 22px; border-radius: 24px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); cursor: pointer; font-size: 14px; }
.cv-rec-btn.on { background: #e5484d; color: #fff; border-color: #e5484d; }
.cv-up { margin: 12px 0; }
.cv-up input { width: 100%; font-size: 13px; }
.cv-audio { width: 100%; margin: 10px 0; }
.cv-name { width: 100%; padding: 9px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-2); color: var(--text); font-size: 14px; margin: 6px 0 12px; box-sizing: border-box; }
.cv-consent { display: flex; gap: 8px; align-items: flex-start; font-size: 12.5px; color: var(--text-dim); line-height: 1.5; cursor: pointer; }
.cv-consent input { margin-top: 2px; flex-shrink: 0; }
.cv-err { color: #e5484d; font-size: 13px; margin-top: 10px; }
.cv-actions { display: flex; gap: 10px; margin-top: 16px; }
.cv-cancel { flex: 1; padding: 10px; border: 1px solid var(--border); background: none; color: var(--text); border-radius: 10px; cursor: pointer; }
.cv-go { flex: 2; padding: 10px; border: none; background: var(--accent); color: #fff; border-radius: 10px; cursor: pointer; font-weight: 600; }
.cv-go:disabled { opacity: .5; cursor: not-allowed; }
