*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#fafafa;--bg2:#f4f4f5;--bg3:#e8e8ec;--sidebar:#f4f4f5;
  --border:#e4e4e7;--text:#2d2d2d;--muted:#71717a;
  --brand:#10a37f;--brand-dk:#0d8f6f;--brand-lt:rgba(16,163,127,.10);
  --user-bg:#10a37f;--user-text:#fff;
  --card:#ffffff;--shadow:0 1px 3px rgba(0,0,0,.06);
  --r:12px;
  --font:-apple-system,BlinkMacSystemFont,'Segoe UI','Helvetica Neue',Arial,sans-serif;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --sidebar-w:260px;
}
[data-theme="dark"]{
  --bg:#1e1f22;--bg2:#2b2d31;--bg3:#383a40;--sidebar:#1a1b1e;
  --border:#3a3c42;--text:#d1d5db;--muted:#9b9ba8;
  --card:#2b2d31;--shadow:0 1px 4px rgba(0,0,0,.35);
  --brand-lt:rgba(16,163,127,.18);
}
html,body{height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.5;overflow:hidden}

/* ── SUBTLE SCROLLBARS (ChatGPT-style — thin, blends in, visible on hover) ── */
*{scrollbar-width:thin;scrollbar-color:transparent transparent}
*:hover{scrollbar-color:rgba(0,0,0,.15) transparent}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:transparent;border-radius:3px}
*:hover::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15)}
*:hover::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.3)}
[data-theme="dark"] *:hover{scrollbar-color:rgba(255,255,255,.12) transparent}
[data-theme="dark"] *:hover::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12)}
[data-theme="dark"] *:hover::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.25)}
textarea{scrollbar-width:thin;scrollbar-color:transparent transparent}

/* ── LAYOUT ── */
#app{display:flex;height:100%;height:100dvh;overflow:hidden}

/* ── SIDEBAR ── */
#sidebar{
  width:var(--sidebar-w);background:var(--sidebar);border-right:none;
  box-shadow:1px 0 6px rgba(0,0,0,.04);
  display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;
  transition:transform .25s ease;padding-top:max(0px,var(--safe-top))
}
[data-theme="dark"] #sidebar{box-shadow:1px 0 8px rgba(0,0,0,.2)}
#sidebar-top{padding:12px 10px 8px;display:flex;align-items:center;gap:8px}
.sidebar-logo{font-size:14px;font-weight:700;color:var(--text);flex:1}
.sidebar-logo img,.dc-logo img{opacity:1}
#new-chat-btn{
  display:flex;align-items:center;gap:8px;margin:0 8px 4px;padding:9px 12px;
  background:transparent;border:1px solid var(--border);border-radius:8px;
  cursor:pointer;color:var(--text);font-size:14px;font-family:var(--font);
  transition:background .15s;width:calc(100% - 16px)
}
#new-chat-btn:hover{background:var(--bg3)}
#profile-btn{
  display:flex;align-items:center;gap:9px;margin:2px 8px 6px;padding:9px 12px;
  background:transparent;border:1px solid var(--border);border-radius:8px;
  cursor:pointer;color:var(--text);font-size:14px;font-family:var(--font);
  transition:background .15s;width:calc(100% - 16px)
}
#profile-btn:hover{background:var(--bg3)}
.p-avatar{width:26px;height:26px;border-radius:50%;
  background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;
  font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;
  box-shadow:0 2px 6px rgba(102,126,234,.3)}
#chat-list{flex:1;overflow-y:auto;padding:4px 8px}
.cl-section{font-size:11px;font-weight:600;color:var(--muted);padding:10px 8px 4px;
  text-transform:uppercase;letter-spacing:.04em}
.cl-item{
  padding:10px 10px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--text);
  display:flex;align-items:center;gap:6px;transition:all .15s;white-space:nowrap;overflow:hidden
}
.cl-item:hover{background:var(--bg3)}
.cl-item.active{background:var(--bg3);font-weight:600}
.cl-title{flex:1;overflow:hidden;text-overflow:ellipsis}
.cl-actions{display:none;gap:2px;flex-shrink:0}
.cl-item:hover .cl-actions{display:flex}
.cl-act-btn{background:none;border:none;color:var(--muted);cursor:pointer;
  padding:2px 5px;border-radius:4px;font-size:13px;transition:color .1s}
.cl-act-btn:hover{color:var(--text);background:var(--border)}
#sidebar-footer{padding:8px;border-top:1px solid var(--border)}
.sb-btn{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;
  cursor:pointer;background:transparent;border:none;color:var(--text);font-size:14px;
  font-family:var(--font);width:100%;text-align:left;transition:background .1s}
.sb-btn:hover{background:var(--bg3)}
.sb-icon{font-size:17px;width:22px;text-align:center}
.rename-input{background:var(--bg2);border:1px solid var(--brand);color:var(--text);
  font-family:var(--font);font-size:13px;padding:3px 8px;border-radius:6px;
  outline:none;width:155px;-webkit-appearance:none}

/* ── MAIN ── */
#main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}
#header{
  padding:max(13px,calc(var(--safe-top) + 10px)) 16px 11px;
  background:var(--bg);border-bottom:1px solid transparent;
  display:flex;align-items:center;gap:12px;flex-shrink:0;z-index:10
}
#menu-btn{background:none;border:none;cursor:pointer;color:var(--text);
  padding:4px;border-radius:6px;font-size:20px;display:none;line-height:1}
#menu-btn:hover{background:var(--bg2)}
#header-title{font-size:16px;font-weight:600;color:var(--text);flex:1}
#header-profile{font-size:12px;color:var(--muted);background:var(--bg2);
  padding:4px 10px;border-radius:20px;border:1px solid var(--border);cursor:pointer}

/* ── PANELS ── */
#chat-panel{flex:1;display:flex;flex-direction:column;overflow:hidden}
.panel-full{flex:1;overflow-y:auto;display:none}

/* ── MESSAGES ── */
#messages{flex:1;overflow-y:auto;padding:16px 24px;display:flex;flex-direction:column;gap:18px;scroll-behavior:smooth;
  max-width:min(768px, 65%);margin:0 auto;width:100%}
/* drag-over highlight */
#messages.drag-over{background:var(--brand-lt);border:2px dashed var(--brand)}

/* Welcome */
#welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:40px 20px;text-align:center;gap:10px}
.welcome-prompt:hover{background:var(--bg3) !important;border-color:var(--brand) !important;transform:translateY(-1px)}

/* Messages */
.msg{display:flex;gap:10px;max-width:100%}
.msg.user{flex-direction:row-reverse}
.msg.user .bubble{
  background:linear-gradient(135deg,#10a37f,#0d9a74);color:#fff;
  border-radius:20px 20px 4px 20px;padding:11px 15px;
  max-width:min(520px,85%);font-size:15px;line-height:1.55;
  white-space:pre-wrap;word-break:break-word;
  box-shadow:0 1px 4px rgba(16,163,127,.15)
}
/* Mode-specific bubble colors */
.msg.user .bubble.mode-quick{background:linear-gradient(135deg,#10a37f,#0d9a74);
  box-shadow:0 2px 8px rgba(16,163,127,.2)}
.msg.user .bubble.mode-deep{background:linear-gradient(135deg,#2563eb,#1d4ed8);
  box-shadow:0 2px 8px rgba(37,99,235,.25)}
.msg.user .bubble.mode-pro{background:linear-gradient(135deg,#7c3aed,#6d28d9);
  box-shadow:0 2px 8px rgba(124,58,237,.25)}
.msg.user .bubble.mode-beast{background:linear-gradient(135deg,#dc2626,#b91c1c);
  box-shadow:0 2px 8px rgba(220,38,38,.25)}
.user-img{max-width:220px;max-height:180px;border-radius:10px;display:block;margin-bottom:6px}
.file-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;
  background:rgba(255,255,255,.2);border-radius:8px;font-size:13px;margin-bottom:6px}
.msg-avatar{width:30px;height:30px;border-radius:50%;
  background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);
  border:none;
  display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;
  color:#fff;letter-spacing:.5px;flex-shrink:0;margin-top:2px;
  box-shadow:0 1px 4px rgba(102,126,234,.2);overflow:hidden}
.msg-avatar img{opacity:1}
.msg.assistant .msg-content{flex:1;min-width:0;max-width:100%}

/* Council card */
.council-card{background:transparent;border:none;border-radius:var(--r);
  box-shadow:none;overflow:hidden;transition:none}
.council-card:hover{box-shadow:none}
/* ── ANSWER BODY — ChatGPT-style clean formatting ── */
.council-body{padding:20px 22px;font-size:15px;line-height:1.75;word-break:break-word;color:var(--text);letter-spacing:.01em}
.council-body p{margin-bottom:14px}
.council-body p:last-child{margin-bottom:0}
.council-body p:first-child{margin-top:0}
.council-body h1,.council-body h2,.council-body h3{font-weight:700;line-height:1.35;color:var(--text)}
.council-body h1{font-size:20px;margin:24px 0 10px}
.council-body h2{font-size:17px;margin:22px 0 8px;padding-bottom:0;border-bottom:none}
.council-body h3{font-size:15px;margin:18px 0 6px}
.council-body h1:first-child,.council-body h2:first-child,.council-body h3:first-child{margin-top:0}
.council-body strong{font-weight:700;color:var(--text)}
.council-body ul,.council-body ol{margin:8px 0 14px 0;padding-left:22px}
.council-body li{margin-bottom:6px;line-height:1.7;padding-left:4px}
.council-body li::marker{color:var(--brand)}
.council-body li p{margin-bottom:4px}
.council-body blockquote{border-left:3px solid var(--brand);margin:14px 0;padding:10px 16px;
  color:var(--text);background:rgba(16,163,127,.06);border-radius:0 8px 8px 0;font-size:14px}
.council-body hr{border:none;border-top:1px solid var(--border);margin:18px 0}
.council-body code{background:var(--bg2);padding:2px 6px;border-radius:4px;font-size:13px;font-family:'SF Mono',Monaco,monospace}
.council-body pre{background:var(--bg2);padding:14px 18px;border-radius:10px;overflow-x:auto;margin:14px 0;border:1px solid var(--border)}
.council-body pre code{background:none;padding:0}
.council-body table{border-collapse:collapse;width:100%;margin:14px 0;font-size:14px;border-radius:8px;overflow:hidden}
.council-body th,.council-body td{border:1px solid var(--border);padding:10px 14px;text-align:left}
.council-body th{background:var(--bg2);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.03em}
.council-body a{color:var(--brand);text-decoration:underline}
.council-footer{
  padding:8px 14px;border-top:none;background:transparent;
  display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);flex-wrap:wrap
}
.cfoot-dot{width:6px;height:6px;border-radius:50%;
  background:linear-gradient(135deg,#10a37f,#0ea5e9);
  animation:dotPulse 2s ease-in-out infinite}
.cfoot-label{font-weight:600;color:var(--text)}
.partial-note{color:#d97706}
.semantic-badge{font-size:11px;background:var(--brand-lt);color:var(--brand);
  padding:2px 7px;border-radius:10px;border:1px solid rgba(16,163,127,.2)}
.conf-badge{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:600;margin-left:auto}
.conf-high{background:rgba(22,163,74,.1);color:#16a34a;border:1px solid rgba(22,163,74,.25)}
.conf-mid{background:rgba(217,119,6,.1);color:#d97706;border:1px solid rgba(217,119,6,.25)}
.conf-low{background:rgba(220,38,38,.1);color:#dc2626;border:1px solid rgba(220,38,38,.25)}

/* Differences + next steps */
.differences-row{padding:8px 14px;border-top:1px solid var(--border);font-size:12px;color:var(--muted);background:var(--bg2);line-height:1.5;display:none}
.differences-row.show{display:block}
.diff-label{font-weight:600;color:var(--text);margin-right:4px}
.next-steps{padding:14px 16px;margin-top:8px}
.next-steps-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:10px}
.next-steps-list{display:flex;flex-direction:column;gap:6px}
.next-step{font-size:13.5px;color:var(--text);line-height:1.45;padding:10px 16px;
  background:var(--card);border:1px solid var(--border);border-radius:12px;
  cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:10px}
.next-step:hover{background:var(--brand-lt);border-color:var(--brand);color:var(--brand);transform:translateX(4px)}
.next-step:active{transform:translateX(2px);opacity:.85}
.next-step .ns-arrow{color:var(--brand);font-size:14px;opacity:.6;flex-shrink:0;transition:opacity .2s}
.next-step:hover .ns-arrow{opacity:1}

/* Opinions accordion */
details.opinions{border-top:1px solid var(--border)}
details.opinions>summary{padding:9px 14px;font-size:13px;color:var(--muted);cursor:pointer;
  display:flex;align-items:center;gap:8px;list-style:none;user-select:none;transition:background .1s}
details.opinions>summary:hover{background:var(--bg2)}
details.opinions>summary::-webkit-details-marker{display:none}
.op-chevron{margin-left:auto;transition:transform .2s;font-size:11px}
details.opinions[open] .op-chevron{transform:rotate(180deg)}
.op-tabs{display:flex;gap:0;background:var(--bg2);padding:8px 10px 0;overflow-x:auto;scrollbar-width:none}
.op-tabs::-webkit-scrollbar{display:none}
.op-tab{padding:7px 14px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;
  cursor:pointer;border:none;background:none;color:var(--muted);border-bottom:2px solid transparent;
  transition:color .15s,border-color .15s;white-space:nowrap;display:flex;align-items:center;gap:4px}
.op-tab:hover{color:var(--text)}
.op-tab.active{color:var(--text);border-bottom-color:var(--brand)}
.op-tab.claude.active{border-bottom-color:#D4714E}
.op-tab.openai.active{border-bottom-color:#10A37F}
.op-tab.gemini.active{border-bottom-color:#4285F4}
.op-tab.grok.active{border-bottom-color:var(--text)}
.op-panels{background:var(--bg2);padding:10px}
.op-panel{display:none;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:14px;
  animation:opPanelIn .2s ease-out}
.op-panel.active{display:block}
@keyframes opPanelIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.op-name{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  margin-bottom:6px;padding-bottom:5px;border-bottom:1px solid var(--border);display:flex;align-items:center}
.op-name.claude{color:#D4714E;border-bottom-color:rgba(212,113,78,.2)}
.op-name.openai{color:#10A37F;border-bottom-color:rgba(16,163,127,.2)}
.op-name.gemini{color:#4285F4;border-bottom-color:rgba(66,133,244,.2)}
.op-name.grok{color:var(--text);border-bottom-color:var(--border)}
.op-body{color:var(--text);font-size:15px;line-height:1.7;word-break:break-word}
.op-body p{margin-bottom:10px}.op-body p:last-child{margin-bottom:0}
.op-body h1,.op-body h2,.op-body h3{font-weight:700;margin:12px 0 6px}
.op-body h1{font-size:18px}.op-body h2{font-size:16px}.op-body h3{font-size:15px}
.op-body ul,.op-body ol{margin:6px 0 10px 18px}.op-body li{margin-bottom:4px;line-height:1.65}
.op-body code{background:var(--bg2);padding:2px 5px;border-radius:3px;font-size:13px}
.op-body pre{background:var(--bg2);padding:10px 14px;border-radius:8px;overflow-x:auto;margin:10px 0;font-size:13px}
.op-body blockquote{border-left:2px solid var(--brand);padding:6px 12px;margin:8px 0;color:var(--muted)}
.op-body table{border-collapse:collapse;width:100%;margin:10px 0;font-size:13px}
.op-body th,.op-body td{border:1px solid var(--border);padding:6px 10px}
.op-err{color:var(--muted);font-style:italic;font-size:12px}

/* Opinion view toggle (Tabs vs Compare) */
.op-view-toggle{display:flex;gap:4px;padding:8px 10px 0;background:var(--bg2)}
.op-view-btn{padding:5px 12px;font-size:11px;font-weight:600;border:1px solid var(--border);
  border-radius:6px;background:var(--card);color:var(--muted);cursor:pointer;transition:all .15s;
  font-family:var(--font)}
.op-view-btn:hover{color:var(--text)}
.op-view-btn.active{background:var(--brand);color:#fff;border-color:var(--brand)}
.op-compare-loading{padding:20px;text-align:center;color:var(--muted);font-size:13px}

/* Comparison matrix table */
.cmp-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;background:var(--bg2);padding:10px}
.cmp-topic-row{background:var(--card);border:1px solid var(--border);border-radius:8px;margin-bottom:8px;overflow:hidden}
.cmp-topic-header{display:flex;align-items:center;gap:8px;padding:10px 12px;
  border-bottom:1px solid var(--border);font-weight:600;font-size:13px}
.cmp-status{font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.04em}
.cmp-status.agree{background:rgba(16,163,127,.1);color:#10a37f}
.cmp-status.split{background:rgba(239,68,68,.1);color:#ef4444}
.cmp-model-rows{display:grid;gap:0}
.cmp-model-row{display:grid;grid-template-columns:120px 1fr;border-top:1px solid var(--border)}
.cmp-model-row:first-child{border-top:none}
.cmp-model-name{padding:8px 12px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  background:var(--bg2);display:flex;align-items:flex-start;padding-top:10px}
.cmp-model-text{padding:8px 12px;font-size:13px;line-height:1.5;color:var(--text)}
.cmp-insight{padding:6px 12px 10px;font-size:12px;color:var(--brand);font-style:italic;
  border-top:1px solid var(--border);background:rgba(16,163,127,.03)}

/* Streaming: model slot placeholders */
.stream-models{padding:10px 10px 0;background:var(--bg2);border-top:1px solid var(--border);
  display:grid;grid-template-columns:1fr 1fr;gap:7px}
.stream-slot{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:11px;min-height:52px}
.stream-slot-name{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  margin-bottom:5px;padding-bottom:5px;border-bottom:1px solid var(--border)}
.stream-slot-body{font-size:13px;line-height:1.6;color:var(--text);white-space:pre-wrap;word-break:break-word}
.stream-pending{color:var(--muted);font-size:13px;display:flex;align-items:center;gap:6px}

/* Memory strip */
.mem-strip{margin-top:5px;padding:10px 14px;background:var(--bg2);border:1px solid var(--border);border-radius:8px;overflow:hidden;max-width:100%;box-sizing:border-box}
.mem-strip-title{font-size:12px;font-weight:600;color:var(--muted);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.mem-items{display:flex;flex-direction:column;gap:6px}
.mem-item-row{display:flex;align-items:flex-start;gap:8px;padding:7px 10px;
  background:var(--card);border:1px solid var(--border);border-radius:7px}
.mem-cat{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--brand);
  letter-spacing:.04em;min-width:60px;padding-top:1px;flex-shrink:0}
.mem-cat.family{color:#7c3aed}.mem-cat.medical{color:#dc2626}
.mem-cat.finance{color:#d97706}.mem-cat.preference{color:#0369a1}
.mem-text{flex:1;font-size:13px;color:var(--text);line-height:1.45;min-width:0;overflow-wrap:break-word;word-break:break-word}
.mem-approve-btn,.mem-dismiss-btn{
  background:none;border:1px solid;font-size:11px;font-family:var(--font);
  padding:3px 8px;border-radius:6px;cursor:pointer;white-space:nowrap;flex-shrink:0
}
.mem-approve-btn{color:var(--brand);border-color:var(--brand)}
.mem-approve-btn:hover{background:var(--brand-lt)}
.mem-dismiss-btn{color:var(--muted);border-color:var(--border)}
.mem-dismiss-btn:hover{color:var(--text);background:var(--bg3)}

/* TTS button on responses */
.tts-btn{background:none;border:none;cursor:pointer;color:var(--muted);font-size:14px;
  padding:2px 6px;border-radius:5px;transition:color .1s,background .1s;margin-left:2px}
.tts-btn:hover{color:var(--brand);background:var(--brand-lt)}
.tts-btn.speaking{color:var(--brand)}

.copy-btn{background:none;border:none;cursor:pointer;color:var(--muted);font-size:12px;
  padding:3px 8px;border-radius:6px;transition:color .15s,background .15s}
.copy-btn:hover{color:var(--brand);background:var(--brand-lt)}

.copy-btn-top{position:absolute;top:8px;right:10px;z-index:3;font-size:12px;opacity:.5;transition:opacity .15s}
.copy-btn-top:hover{opacity:1}
.council-card{position:relative}

.copy-btn-bottom-row{padding:6px 14px;border-top:1px solid var(--border);display:flex;justify-content:flex-end}
.copy-btn-bottom-row .copy-btn{font-size:12px;color:var(--muted);padding:4px 10px;border-radius:6px}

.op-panel-actions{position:absolute;top:6px;right:6px;z-index:2}
.op-panel{position:relative}
.op-panel .copy-btn{font-size:13px;opacity:.5;transition:opacity .15s,color .1s,background .1s}
.op-panel:hover .copy-btn,.op-panel .copy-btn:focus{opacity:1}

/* ── GROUNDING LAYER ── */
.grounding-section{margin:0;padding:0;border-top:1px solid var(--border)}
.grounding-summary{padding:8px 14px;font-size:12px;font-weight:600;color:var(--text);cursor:pointer;
  display:flex;align-items:center;gap:6px;list-style:none}
.grounding-summary::-webkit-details-marker{display:none}
.grounding-summary::before{content:'▸';font-size:10px;color:var(--muted);transition:transform .2s}
details.grounding-section[open] .grounding-summary::before{transform:rotate(90deg)}
.grounding-count{font-weight:400;color:var(--muted);font-size:11px}
.grounding-claim{padding:8px 12px;border-top:1px solid rgba(128,128,128,.08)}
.grounding-verdict{font-size:11px;font-weight:700;padding-top:1px}
.grounding-text{font-size:12px;color:var(--text);line-height:1.4;margin-top:2px}
.grounding-evidence{font-size:11px;color:var(--muted);line-height:1.3;font-style:italic;margin-top:3px}
.grounding-source{color:var(--brand);font-style:normal}
.grounding-type{display:inline-block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:1px 5px;border-radius:3px;background:var(--bg2);color:var(--muted);margin-right:4px;vertical-align:middle}
/* ── TRUST INSPECTOR DRAWER ── */
.trust-inspector{margin:0;border-top:1px solid var(--border)}
.ti-summary{padding:10px 14px;font-size:12px;font-weight:600;color:var(--text);cursor:pointer;display:flex;align-items:center;gap:6px;list-style:none;user-select:none}
.ti-summary::-webkit-details-marker{display:none}
.ti-summary::before{content:'▸';font-size:10px;color:var(--muted);transition:transform .2s}
details.trust-inspector[open] .ti-summary::before{transform:rotate(90deg)}
.ti-chips{font-weight:400;color:var(--muted);font-size:10px;margin-left:4px}
.ti-body{padding:0 14px 10px;display:flex;flex-direction:column;gap:12px}
.ti-section{padding:8px 0;border-top:1px solid var(--border)}
.ti-section:first-child{border-top:none;padding-top:0}
.ti-section-title{font-size:12px;font-weight:700;margin-bottom:6px}
.ti-tip{display:inline-block;width:14px;height:14px;line-height:14px;text-align:center;font-size:9px;font-style:normal;font-weight:400;color:var(--muted);opacity:.4;cursor:pointer;border:1px solid var(--border);border-radius:50%;vertical-align:middle;margin-left:4px;transition:opacity .2s}
.ti-tip:hover{opacity:.8;color:var(--text);border-color:var(--text)}
.ti-tip-popup{font-size:11px;color:var(--muted);padding:8px 12px;margin:4px 0 8px;background:var(--card);border:1px solid var(--border);border-radius:8px;line-height:1.5;font-weight:400}
.jurisdiction-banner{background:rgba(234,179,8,.12);border:1px solid rgba(234,179,8,.3);border-radius:8px;padding:10px 14px;margin:8px 14px;font-size:13px;color:var(--text);line-height:1.4}
.jurisdiction-btn{background:var(--brand);color:#fff;border:none;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:600;cursor:pointer;margin-left:8px;font-family:var(--font)}

/* ── GOD MODE (admin pipeline trace) ── */
.god-mode{margin:0;border-top:1px solid rgba(168,85,247,.2)}
.gm-toggle{padding:8px 14px;font-size:11px;font-weight:700;color:#a855f7;cursor:pointer;list-style:none;user-select:none;display:flex;align-items:center;gap:6px;opacity:.7;transition:opacity .2s}
.gm-toggle:hover{opacity:1}
.gm-toggle::-webkit-details-marker{display:none}
.godmode-trace{padding:8px 14px 14px;font-size:11px}
.gm-step{padding:6px 10px;margin-bottom:4px;border-radius:6px;background:rgba(168,85,247,.03)}
.gm-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gm-time{font-family:monospace;font-size:10px;color:var(--muted);min-width:40px}
.gm-step-name{font-weight:700;color:var(--text)}
.gm-patent{font-size:9px;font-weight:700;padding:1px 6px;border-radius:4px;white-space:nowrap}
.gm-detail{color:var(--muted);margin-top:2px;line-height:1.4}
.gm-why{color:#a855f7;margin-top:3px;line-height:1.4;font-size:10px;padding:4px 8px;background:rgba(168,85,247,.05);border-radius:4px}
.gm-extra{font-size:10px;color:var(--muted);opacity:.7;margin-top:2px}
.gm-claims{margin-top:4px;display:flex;flex-direction:column;gap:2px}
.gm-claim{font-size:10px;padding:2px 6px;background:var(--card);border-radius:4px;border:1px solid var(--border)}
.gm-scores{margin-top:4px}
.gm-score-row{font-size:10px;padding:1px 0}
.gm-summary{margin-top:8px;padding:8px 10px;background:rgba(168,85,247,.08);border-radius:6px;font-size:11px;color:#a855f7;display:flex;flex-wrap:wrap;gap:6px;align-items:center}

/* ── GOD MODE DASHBOARD (full-screen admin trace viewer) ── */
.gmd-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:1001;display:none;align-items:center;justify-content:center;padding:16px}
.gmd-container{width:min(1200px,96vw);height:min(90vh,900px);background:var(--bg);border:1px solid var(--border);border-radius:16px;box-shadow:0 16px 64px rgba(0,0,0,.4);display:flex;flex-direction:column;overflow:hidden}
.gmd-header{padding:16px 20px 12px;border-bottom:1px solid var(--border);flex-shrink:0}
.gmd-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.gmd-title{font-size:18px;font-weight:700;color:#a855f7}
.gmd-header-actions{display:flex;gap:8px;align-items:center}
.gmd-dl-btn{padding:6px 14px;background:var(--bg2);color:var(--text);border:1px solid var(--border);border-radius:8px;font-size:12px;cursor:pointer;font-family:var(--font);font-weight:600;transition:background .15s}
.gmd-dl-btn:hover{background:var(--bg3)}
.gmd-close-btn{width:32px;height:32px;border:none;background:var(--bg2);color:var(--text);border-radius:8px;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}
.gmd-close-btn:hover{background:#ef4444;color:#fff}
.gmd-filters{display:flex;gap:6px;margin-bottom:10px}
.gmd-filter{padding:5px 14px;border:1px solid var(--border);border-radius:20px;background:transparent;color:var(--muted);font-size:12px;font-weight:600;cursor:pointer;font-family:var(--font);transition:all .15s}
.gmd-filter:hover{border-color:var(--text);color:var(--text)}
.gmd-filter.active{background:#a855f7;color:#fff;border-color:#a855f7}
.gmd-filter[data-mode="quick"].active{background:#3b82f6;border-color:#3b82f6}
.gmd-filter[data-mode="deep"].active{background:#22c55e;border-color:#22c55e}
.gmd-filter[data-mode="pro"].active{background:#a855f7;border-color:#a855f7}
.gmd-stats{display:flex;gap:16px;flex-wrap:wrap}
.gmd-stat{display:flex;flex-direction:column;align-items:center;padding:6px 12px;background:var(--bg2);border-radius:8px;min-width:70px}
.gmd-stat-val{font-size:16px;font-weight:700;color:var(--text)}
.gmd-stat-lbl{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.gmd-body{display:flex;flex:1;min-height:0;overflow:hidden}
.gmd-list{width:340px;min-width:260px;border-right:1px solid var(--border);overflow-y:auto;flex-shrink:0}
.gmd-list-row{padding:10px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s}
.gmd-list-row:hover{background:var(--bg2)}
.gmd-list-row.selected{background:rgba(168,85,247,.08);border-left:3px solid #a855f7}
.gmd-list-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.gmd-list-time{font-size:10px;color:var(--muted)}
.gmd-mode-badge{font-size:10px;font-weight:700;padding:1px 8px;border-radius:10px;white-space:nowrap}
.gmd-list-q{font-size:12px;font-weight:600;color:var(--text);line-height:1.4;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gmd-list-meta{display:flex;gap:8px;font-size:10px;color:var(--muted);flex-wrap:wrap}
.gmd-detail{flex:1;overflow-y:auto;padding:16px 20px}
.gmd-detail-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted);font-size:14px}
.gmd-loading{padding:20px;text-align:center;color:var(--muted);font-size:13px}
.gmd-detail-header{margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.gmd-detail-q{font-size:15px;font-weight:700;color:var(--text);margin-bottom:8px;line-height:1.4}
.gmd-detail-info{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:6px}
.gmd-detail-chip{font-size:11px;padding:2px 8px;border:1px solid var(--border);border-radius:6px;color:var(--muted);white-space:nowrap}
.gmd-detail-models{font-size:11px;color:var(--muted)}
.gmd-detail-timeline{display:flex;flex-direction:column;gap:4px}
.gmd-trace-step{padding:8px 12px;border-left:3px solid var(--border);border-radius:6px;background:var(--bg2);transition:background .1s}
.gmd-trace-step:hover{background:rgba(168,85,247,.04)}
.gmd-trace-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gmd-trace-time{font-family:monospace;font-size:11px;color:var(--muted);min-width:44px;font-weight:600}
.gmd-trace-name{font-weight:700;font-size:12px}
.gmd-trace-detail{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.4}
.gmd-trace-why{color:#a855f7;margin-top:4px;line-height:1.4;font-size:11px;padding:4px 10px;background:rgba(168,85,247,.05);border-radius:4px}
.gmd-trace-extra{font-size:10px;color:var(--muted);opacity:.75;margin-top:3px}
.gmd-trace-claims{margin-top:6px;display:flex;flex-direction:column;gap:3px}
.gmd-trace-claim{font-size:11px;padding:4px 8px;background:var(--card);border-radius:4px;border:1px solid var(--border);line-height:1.4}
.gmd-trace-scores{margin-top:6px}
.gmd-trace-score{font-size:11px;padding:2px 0}
.gmd-trace-summary{margin-top:12px;padding:10px 14px;background:rgba(168,85,247,.08);border-radius:8px;font-size:12px;color:#a855f7;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
@media(max-width:768px){
  .gmd-container{width:100vw;height:100vh;border-radius:0}
  .gmd-body{flex-direction:column}
  .gmd-list{width:100%;max-height:40vh;border-right:none;border-bottom:1px solid var(--border)}
  .gmd-detail{min-height:0}
}

/* ── COMMAND PALETTE ── */
.cmd-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1000;display:none;align-items:flex-start;justify-content:center;padding-top:min(20vh,120px)}
.cmd-modal{width:min(480px,90vw);background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 48px rgba(0,0,0,.3);overflow:hidden}
.cmd-input{width:100%;padding:14px 16px;font-size:15px;border:none;border-bottom:1px solid var(--border);background:transparent;color:var(--text);outline:none;font-family:var(--font)}
.cmd-list{max-height:320px;overflow-y:auto;padding:6px 0}
.cmd-item{display:flex;align-items:center;gap:10px;padding:8px 16px;cursor:pointer;transition:background .1s}
.cmd-item:hover,.cmd-item.active{background:var(--bg2)}
.cmd-icon{font-size:18px;width:28px;text-align:center;flex-shrink:0}
.cmd-label{font-size:13px;font-weight:600;color:var(--text)}
.cmd-desc{font-size:11px;color:var(--muted)}
.cmd-hint{padding:6px 16px;font-size:10px;color:var(--muted);border-top:1px solid var(--border);text-align:center}
.cmd-hint kbd{background:var(--bg2);padding:1px 5px;border-radius:3px;font-size:10px;font-family:var(--font)}
.cmd-item.cmd-on{background:rgba(99,102,241,.06)}
.cmd-item.cmd-on .cmd-label{color:var(--brand)}
.cmd-active-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#22c55e;margin-left:6px;vertical-align:middle;box-shadow:0 0 4px rgba(34,197,94,.5)}
.cmd-item.cmd-fired{background:var(--brand)!important;transition:background .15s}
.cmd-item.cmd-fired .cmd-label,.cmd-item.cmd-fired .cmd-desc{color:#fff!important}
.cmd-item.cmd-fired .cmd-label::after{content:' \2713';font-weight:700}
/* ── LOGO ── */
.dc-logo{display:inline-flex;align-items:center;gap:8px}

/* Large welcome logo */
.dc-logo-icon-lg{
  width:260px;height:140px;
  display:flex;align-items:center;justify-content:center;
  position:relative;margin-bottom:8px
}

/* ── BOOMERANG LOGO — STATIC ── */
.boomerang-stage{position:relative;width:260px;height:140px;
  display:flex;align-items:center;justify-content:center}
.boomerang-main{
  width:120px;height:auto;
  filter:drop-shadow(2px 4px 14px rgba(180,80,20,.3));
}

/* Premium loading — smaller version */
.council-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px}
.council-loading .boomerang-stage{width:160px;height:70px}
.council-loading .boomerang-main{width:50px;height:auto;animation:loadPulse 1.5s ease-in-out infinite}
@keyframes loadPulse{0%,100%{opacity:.6;transform:scale(.95)}50%{opacity:1;transform:scale(1.05)}}
.council-loading-text{font-size:13px;color:var(--muted);animation:loadTextPulse 2s ease-in-out infinite}
@keyframes loadTextPulse{0%,100%{opacity:.5}50%{opacity:1}}

/* ── ANIMATIONS ── */
/* Messages slide in */
.msg{animation:msgSlideIn .35s ease-out}
@keyframes msgSlideIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* Council card entrance */
.council-card{animation:cardFadeIn .4s ease-out}
@keyframes cardFadeIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}

/* Sidebar items hover glow */
.cl-item{transition:background .15s}

/* Send button pulse when ready */
#send-btn{transition:background .15s,opacity .15s,transform .1s}
#send-btn:active:not(:disabled){transform:scale(.9)}

/* Input focus glow */
#q:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(16,163,127,.12)}

/* Header gradient underline */
#header{position:relative}
#header::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,#10a37f,#0ea5e9,#8b5cf6,#f59e0b);
  background-size:300% 100%;animation:headerGradient 5s linear infinite;opacity:.6
}
@keyframes headerGradient{0%{background-position:0% 0}100%{background-position:300% 0}}

/* Next step slide on hover */
.next-step{transition:all .2s,transform .2s}

/* Model opinion cards stagger animation */
/* Welcome card animation (reused from old op-card) */
@keyframes opCardIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* Confidence badge pulse for high confidence */
.conf-high{animation:confPulse 2s ease-in-out infinite}
@keyframes confPulse{0%,100%{box-shadow:0 0 0 0 rgba(22,163,74,.2)}50%{box-shadow:0 0 0 4px rgba(22,163,74,.1)}}

/* ── TEMPORAL CONFIDENCE METER ── */
/* ── THINKING HEADER ── */
.thinking-header{
  font-size:13px;font-weight:400;color:var(--muted);text-align:center;
  padding:6px 16px;line-height:1.5;font-style:italic;opacity:.55;
  margin-bottom:14px;letter-spacing:.01em;
  will-change:opacity,transform;transition:opacity .35s ease,transform .35s ease
}
/* Morphing blob — organic, alive motion reduces perceived wait ~15-20% (Hohenstein 2016) */
.thinking-ring{display:flex;justify-content:center;margin-bottom:10px}
.thinking-blob{
  width:40px;height:40px;position:relative;
}
.thinking-blob-inner{
  width:100%;height:100%;
  background:linear-gradient(135deg, rgba(160,160,175,.30), rgba(160,160,175,.14));
  border-radius:30% 70% 70% 30% / 30% 30% 70% 70%;
  animation:blob-morph 5s cubic-bezier(.4,0,.2,1) infinite, blob-breathe 2.8s ease-in-out infinite;
  will-change:border-radius,transform,opacity;
}
.thinking-blob-core{
  position:absolute;top:50%;left:50%;width:12px;height:12px;
  transform:translate(-50%,-50%);border-radius:50%;
  background:radial-gradient(circle, rgba(160,160,175,.45), rgba(160,160,175,.12));
  animation:core-pulse 2s ease-in-out infinite;
}
.thinking-blob-ripple{
  position:absolute;top:50%;left:50%;width:32px;height:32px;
  transform:translate(-50%,-50%);border-radius:50%;
  border:1px solid rgba(160,160,175,.18);
  animation:ripple-out 3s ease-out infinite;
}
@keyframes blob-morph{
  0%{border-radius:30% 70% 70% 30% / 30% 30% 70% 70%}
  25%{border-radius:58% 42% 36% 64% / 63% 68% 32% 37%}
  50%{border-radius:70% 30% 50% 50% / 40% 60% 40% 60%}
  75%{border-radius:40% 60% 64% 36% / 55% 35% 65% 45%}
  100%{border-radius:30% 70% 70% 30% / 30% 30% 70% 70%}
}
@keyframes blob-breathe{
  0%,100%{transform:scale(.92);opacity:.5}
  50%{transform:scale(1.08);opacity:.8}
}
@keyframes core-pulse{
  0%,100%{transform:translate(-50%,-50%) scale(.8);opacity:.3}
  50%{transform:translate(-50%,-50%) scale(1.2);opacity:.6}
}
@keyframes ripple-out{
  0%{transform:translate(-50%,-50%) scale(.6);opacity:.25}
  70%{transform:translate(-50%,-50%) scale(1.4);opacity:0}
  100%{transform:translate(-50%,-50%) scale(1.4);opacity:0}
}

/* ── DECISION JOURNAL (welcome screen) ── */
.dj-header{font-size:12px;font-weight:600;color:var(--muted);margin-bottom:8px;letter-spacing:.03em}
.dj-row{padding:8px 12px;border-radius:10px;background:var(--bg2);border:1px solid var(--border);
  margin-bottom:4px;transition:all .15s}
.dj-row:hover{border-color:var(--brand);background:var(--bg3);transform:translateY(-1px)}
.dj-q{font-size:13px;color:var(--text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dj-meta{font-size:11px;color:var(--muted);margin-top:2px}

/* ── DOMAIN DISCLAIMER ── */
.domain-disclaimer{
  font-size:11px;color:var(--muted);text-align:center;padding:6px 14px;
  background:rgba(245,158,11,.04);border-top:1px solid rgba(245,158,11,.12);
  opacity:.7;letter-spacing:.01em
}

/* ── OUTCOME TRACKING ── */
.outcome-strip{display:flex;align-items:center;gap:10px;padding:8px 14px;border-top:1px solid var(--border)}
.outcome-stars{display:flex;gap:2px}
.outcome-star{background:none;border:none;font-size:18px;color:var(--border);cursor:pointer;padding:0 2px;transition:color .15s,transform .15s}
.outcome-star:hover,.outcome-star.active{color:#f59e0b;transform:scale(1.15)}
.decision-track{padding:8px 14px;border-top:1px solid var(--border)}
.decision-track-toggle{background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;padding:2px 0;transition:color .15s}
.decision-track-toggle:hover{color:var(--text)}
.decision-track-form{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.dt-input{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-size:12px;color:var(--text);outline:none}
.dt-input:focus{border-color:var(--brand)}
.dt-timing{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.dt-time-btn{background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:3px 12px;font-size:11px;color:var(--muted);cursor:pointer;transition:all .15s}
.dt-time-btn:hover,.dt-time-btn.active{background:var(--brand);color:white;border-color:var(--brand)}
.dt-save-btn{background:var(--brand);color:white;border:none;border-radius:8px;padding:6px 16px;font-size:12px;cursor:pointer;align-self:flex-start;transition:opacity .15s}
.dt-save-btn:hover{opacity:.85}
.pending-review-banner{background:rgba(59,130,246,.06);border:1px solid rgba(59,130,246,.15);border-radius:10px;padding:10px 14px;margin:8px 0;font-size:13px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pending-review-banner button{background:none;border:1px solid var(--border);border-radius:6px;padding:3px 10px;font-size:12px;cursor:pointer;color:var(--text)}
.pending-review-banner button:first-of-type{background:var(--brand);color:white;border-color:var(--brand)}

.conf-meter{padding:8px 4px}
.conf-meter-row{display:flex;align-items:center;gap:10px;margin-bottom:7px;font-size:12px}
.conf-meter-label{width:105px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;opacity:.85}
.conf-meter-track{flex:1;height:4px;background:rgba(128,128,128,.12);border-radius:2px;overflow:hidden;position:relative}
.conf-meter-fill{height:100%;width:0%;border-radius:2px;opacity:.7;transition:width .8s cubic-bezier(.4,0,.2,1),opacity .4s}
.conf-meter-fill.active{animation:meterPulse 1.8s ease-in-out infinite}
.conf-meter-row.done .conf-meter-fill{opacity:1}
.conf-meter-status{width:20px;text-align:center;font-size:12px;flex-shrink:0;opacity:.7}
@keyframes meterPulse{0%,100%{opacity:.35}50%{opacity:.8}}

/* Challenge mode button */
#challenge-btn{background:none;border:none;cursor:pointer;padding:6px;border-radius:8px;
  font-size:16px;line-height:1;transition:all .2s;color:var(--muted);position:relative}
#challenge-btn:hover{background:rgba(245,158,11,.1);color:#f59e0b}
#challenge-btn.active{color:#f59e0b;text-shadow:0 0 8px rgba(245,158,11,.5)}
#challenge-btn.active::after{content:'';position:absolute;bottom:2px;left:50%;transform:translateX(-50%);
  width:4px;height:4px;border-radius:50%;background:#f59e0b;box-shadow:0 0 6px #f59e0b}
.msg.user .bubble.mode-challenge{background:linear-gradient(135deg,#f59e0b,#d97706);
  box-shadow:0 2px 8px rgba(245,158,11,.25)}

/* Typing dots improved */
.typing-dots{display:inline-flex;gap:4px;align-items:center}
.typing-dots span{width:7px;height:7px;border-radius:50%;
  background:linear-gradient(135deg,var(--brand),#0ea5e9);
  animation:dotPulse 1.4s ease-in-out infinite}
.typing-dots span:nth-child(2){animation-delay:.15s}
.typing-dots span:nth-child(3){animation-delay:.3s}
@keyframes dotPulse{0%,80%,100%{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}

/* Smooth page transitions */
.panel-full{transition:opacity .2s ease}

/* Avatar hover effect */
.msg-avatar{transition:transform .2s}
.msg:hover .msg-avatar{transform:scale(1.08)}

/* Image hover zoom */
.council-body img{transition:transform .2s;cursor:pointer}
.council-body img:hover{transform:scale(1.02)}

/* Loading */
@keyframes bounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-7px)}}

/* ── INPUT AREA — ChatGPT-style ── */
#input-area{padding:8px 16px max(8px,var(--safe-bottom));background:var(--bg);flex-shrink:0;
  max-width:min(768px, 65%);margin:0 auto;width:100%}
#input-box{background:var(--bg2);border:1px solid var(--border);border-radius:18px;overflow:hidden;transition:border-color .2s}
#input-box:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px rgba(16,163,127,.08)}
#attach-preview{display:none;margin:8px 12px 0;position:relative}
#preview-img{max-height:120px;border-radius:9px;display:block}
#file-chip-preview{display:none;align-items:center;gap:7px;padding:7px 11px;margin:8px 12px 0;
  background:var(--bg3);border-radius:8px;font-size:13px;color:var(--text)}
.chip-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#remove-attach{background:rgba(0,0,0,.45);color:#fff;border:none;border-radius:50%;
  width:22px;height:22px;cursor:pointer;font-size:13px;display:flex;align-items:center;
  justify-content:center;position:absolute;top:4px;right:4px}
#file-chip-remove{background:none;border:none;color:var(--muted);cursor:pointer;font-size:16px;padding:0 2px;flex-shrink:0}
/* Textarea — borderless, inside the box */
#q{width:100%;background:transparent;border:none;color:var(--text);
  padding:12px 14px 4px;font-family:var(--font);font-size:15px;line-height:1.5;
  resize:none;outline:none;max-height:130px;min-height:38px;display:block;-webkit-appearance:none}
#q::placeholder{color:var(--muted)}
#q.hint-active::placeholder{color:var(--brand);opacity:.7;transition:opacity .3s ease}
/* Toolbar row below textarea */
#input-toolbar{display:flex;align-items:center;gap:2px;padding:4px 8px 8px}
.tb-btn{background:none;border:none;cursor:pointer;color:var(--muted);
  padding:6px;border-radius:8px;flex-shrink:0;line-height:1;transition:color .15s,background .15s;
  display:flex;align-items:center;justify-content:center}
.tb-btn:hover{color:var(--text);background:var(--bg3)}
.tb-btn.active{color:var(--brand)}
.tb-btn svg{width:20px;height:20px}
/* Mode pill in toolbar */
#mode-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;
  font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;
  background:transparent;border:none;font-family:var(--font);transition:all .15s;margin-left:4px}
#mode-pill:hover{background:var(--bg3);color:var(--text)}
/* Right side spacer */
.tb-right{margin-left:auto;display:flex;align-items:center;gap:2px}
/* Send button — circular, faint when empty, lights up when has text */
#send-btn{background:var(--bg3);color:var(--muted);border:none;width:32px;height:32px;
  border-radius:50%;cursor:pointer;display:flex;align-items:center;
  justify-content:center;flex-shrink:0;transition:all .2s}
#send-btn.has-text{background:var(--text);color:var(--bg)}
#send-btn:disabled{opacity:.3;cursor:not-allowed}
#send-btn.is-stop{background:#ef4444;color:#fff;opacity:1;cursor:pointer}
#send-btn.is-stop:hover{background:#dc2626}
[data-theme="dark"] #send-btn.has-text{background:#d1d5db;color:#1e1f22}
/* Header mode badge */
#header-mode{font-size:11px;padding:3px 10px;border-radius:16px;
  background:var(--bg2);border:1px solid var(--border);color:var(--muted);
  cursor:pointer;font-weight:600;white-space:nowrap;transition:all .15s;font-family:var(--font)}
#header-mode:hover{background:var(--bg3);color:var(--text)}

/* Voice states */
#voice-btn.listening{color:#dc2626;animation:pulse-red 1s infinite}
#voice-btn.transcribing{color:#d97706}
@keyframes pulse-red{0%,100%{opacity:1}50%{opacity:.4}}
.voice-indicator{
  font-size:12px;color:var(--muted);padding:4px 0 0;text-align:center;
  height:18px;display:flex;align-items:center;justify-content:center;gap:4px
}

/* File inputs hidden */
#file-input,#image-input{display:none}

/* ── SETTINGS (full panel — ChatGPT-style clean layout) ── */
.settings-header{
  display:flex;align-items:center;gap:12px;padding:18px 24px;
  border-bottom:1px solid var(--border);background:var(--bg);
  padding-top:max(18px,calc(var(--safe-top)+14px));flex-shrink:0
}
.settings-back{background:none;border:none;font-size:20px;cursor:pointer;
  color:var(--muted);padding:6px 8px;border-radius:8px;transition:all .15s}
.settings-back:hover{background:var(--bg2);color:var(--text)}
.settings-title-text{font-size:18px;font-weight:700}
.settings-scroll{
  flex:1;overflow-y:auto;padding:28px 24px 40px;
  max-width:700px;margin:0 auto;width:100%
}
.s-section{margin-bottom:32px}
.s-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:12px;padding-left:2px}
.s-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;transition:border-color .15s}
.s-card:hover{border-color:color-mix(in srgb,var(--border) 60%,var(--brand))}
.s-row{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border);font-size:14px}
.s-row:last-child{border-bottom:none}
.s-label{flex:1;color:var(--text)}
.s-val{color:var(--muted);font-size:13px}
.s-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.s-on{background:#16a34a}.s-off{background:#dc2626}
.cog-range{width:100%;height:6px;-webkit-appearance:none;appearance:none;background:var(--bg3);border-radius:3px;outline:none;cursor:pointer}
.cog-range::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--brand);cursor:pointer;border:2px solid var(--bg);box-shadow:0 1px 4px rgba(0,0,0,.3)}
.cog-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--brand);cursor:pointer;border:2px solid var(--bg)}
.cog-slider-row{padding-bottom:12px;border-bottom:1px solid var(--border)}
.cog-slider-row:last-child{border-bottom:none;padding-bottom:0}
.toggle{position:relative;width:42px;height:23px;background:var(--bg3);border-radius:12px;
  cursor:pointer;border:1px solid var(--border);transition:background .2s;flex-shrink:0}
.toggle.on{background:var(--brand)}
.toggle::after{content:'';position:absolute;width:17px;height:17px;background:#fff;
  border-radius:50%;top:2px;left:3px;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.toggle.on::after{transform:translateX(19px)}
.profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.p-btn{padding:12px 8px;border-radius:10px;border:2px solid var(--border);background:var(--card);
  cursor:pointer;font-family:var(--font);font-size:14px;text-align:center;color:var(--text);transition:all .15s}
.p-btn:hover{border-color:var(--brand)}
.p-btn.active{border-color:var(--brand);background:var(--brand-lt);font-weight:600}
.p-avatar-lg{width:38px;height:38px;border-radius:50%;margin:0 auto 6px;display:flex;
  align-items:center;justify-content:center;font-size:17px;font-weight:700;color:#fff}
.pa-sunny{background:#f59e0b}.pa-navneet{background:#6366f1}.pa-shared{background:#10a37f}
.model-toggle-row{display:flex;align-items:center;gap:12px;padding:10px 15px;border-bottom:1px solid var(--border);font-size:14px}
.model-toggle-row:last-child{border-bottom:none}
.model-indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.mi-claude{background:#D4714E}.mi-openai{background:#10A37F}
.mi-gemini{background:#4285F4}.mi-grok{background:var(--text)}

/* Memory manager */
.mem-mgmt-item{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px}
.mem-mgmt-item:last-child{border-bottom:none}
.mem-mgmt-cat{font-size:10px;font-weight:700;color:var(--brand);text-transform:uppercase;min-width:68px;padding-top:2px}
.mem-mgmt-cat.family{color:#7c3aed}.mem-mgmt-cat.medical{color:#dc2626}.mem-mgmt-cat.finance{color:#d97706}
.mem-mgmt-text{flex:1;color:var(--text);line-height:1.5}
.mem-mgmt-edit{background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px;padding:2px 4px}
.mem-mgmt-del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:15px;padding:2px 4px}
.mem-mgmt-del:hover{color:#dc2626}
.mem-edit-input{flex:1;background:var(--bg2);border:1px solid var(--brand);color:var(--text);
  font-family:var(--font);font-size:13px;padding:4px 8px;border-radius:6px;outline:none;-webkit-appearance:none}

/* Sidebar overlay */
#sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.28);z-index:99}

/* Toast */
#toast{position:fixed;bottom:max(80px,calc(56px + var(--safe-bottom)));left:50%;
  transform:translateX(-50%);background:#1a1a1a;color:#fff;padding:9px 18px;
  border-radius:20px;font-size:13px;z-index:999;opacity:0;transition:opacity .2s;pointer-events:none;white-space:nowrap}
#toast.show{opacity:1}

/* Auth modal */
#auth-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:999;align-items:center;justify-content:center}
.auth-box{background:var(--bg);border:1px solid var(--border);border-radius:16px;padding:28px 24px;
  max-width:340px;width:90%;box-shadow:0 8px 32px rgba(0,0,0,.25)}

/* Responsive */
@media(max-width:768px){
  #sidebar{position:fixed;top:0;left:0;bottom:0;z-index:100;
    transform:translateX(-100%);box-shadow:2px 0 20px rgba(0,0,0,.15)}
  #sidebar.open{transform:translateX(0)}
  #sidebar-overlay.open{display:block}
  #menu-btn{display:flex}
  .stream-models{grid-template-columns:1fr}
  .op-tabs{padding:6px 8px 0}
  .op-tab{padding:6px 10px;font-size:10px}
  .cmp-model-row{grid-template-columns:1fr;gap:0}
  .cmp-model-name{border-bottom:none;padding-bottom:2px}
  .profile-grid{grid-template-columns:repeat(3,1fr)}
  .settings-scroll{padding:20px 16px 32px}
  .settings-header{padding:14px 16px}
  .s-row{padding:14px 15px;min-height:48px}
  .toggle{width:46px;height:26px}
  .toggle::after{width:20px;height:20px}
  .toggle.on::after{transform:translateX(19px)}

  /* Mobile: full-width messages + input (no 65% cap) */
  #messages{max-width:100%;padding:12px 16px;gap:14px}
  #input-area{max-width:100%;padding:6px 10px max(6px,var(--safe-bottom))}

  /* Mobile welcome: lighter, more whitespace — match Gemini/ChatGPT/Grok pattern */
  #welcome{padding:0 24px;justify-content:flex-end;gap:0;padding-bottom:16px}
  .dc-logo-icon-lg{width:180px;height:100px;margin-bottom:16px}
  .boomerang-main{width:90px !important}
  .wl-title{font-size:20px !important;line-height:1.3 !important;max-width:280px !important}
  .wl-desc{font-size:12px !important;max-width:280px !important;margin-top:8px !important}
  .wl-prompts{margin-top:28px !important;gap:10px !important;max-width:100% !important}
  .welcome-prompt{padding:14px 16px !important;border-radius:14px !important}
  .welcome-prompt .wp-title{font-size:14px !important}
  .welcome-prompt .wp-sub{display:none !important}
  .wl-powered{display:none !important}

  /* Mobile header: tighter */
  #header{padding:max(8px,calc(var(--safe-top) + 6px)) 12px 8px;gap:8px}
  #header-title{font-size:15px}
  #header-mode{font-size:10px;padding:2px 8px}
  #header-profile{font-size:11px;padding:3px 8px}

  /* Mobile input: larger touch targets */
  #q{font-size:16px;padding:14px 14px 6px}
  #input-toolbar{padding:4px 6px 10px}
  .tb-btn svg{width:22px;height:22px}
  #send-btn{width:36px;height:36px}
  #mode-pill{font-size:13px;padding:5px 12px}
  #challenge-btn,#beast-btn{font-size:18px;padding:4px}
  #voice-btn{padding:8px}

  /* Council cards: less padding on mobile */
  .council-body{padding:16px 14px;font-size:14px;line-height:1.65}
  .council-footer{padding:8px 14px}
}
@media(min-width:769px){
  #header,#input-area{padding-left:20px;padding-right:20px}
  #messages{padding:20px 24px}
}
