/* ============================================================
   Bottom sheet — overlay, chat pane, thread, input row.
   The module rail lives in modules.css, not here.
   ============================================================ */
.kai-overlay{position:fixed;inset:0;z-index:60;display:none;align-items:flex-end;justify-content:center}
.kai-overlay.open{display:flex}
.kai-backdrop{position:absolute;inset:0;background:rgba(9,18,28,.22);backdrop-filter:blur(2.5px);
  opacity:0;transition:opacity .3s var(--ease-q)}
.kai-overlay.show .kai-backdrop{opacity:1}
.kai-sheet{position:relative;width:min(1360px,100%);height:min(84vh,880px);border-radius:22px 22px 0 0;overflow:hidden;
  display:grid;grid-template-columns:minmax(340px,40%) 1fr;
  background:var(--mist);
  border-top:1px solid var(--line-2);box-shadow:0 -24px 70px rgba(14,28,43,.28);
  transform:translateY(46px);opacity:0;
  transition:transform .46s var(--ease),opacity .3s var(--ease-q),height .5s var(--ease),width .5s var(--ease),border-radius .5s var(--ease),max-width .5s var(--ease)}
.kai-overlay.show .kai-sheet{transform:none;opacity:1}
.kai-overlay.closing .kai-sheet{transform:translateY(34px);opacity:0;transition:transform .24s var(--ease-q),opacity .2s ease}
.kai-overlay.closing .kai-backdrop{opacity:0}
.kai-sheet.tall{height:100dvh;width:100%;max-width:100%;border-radius:0}

/* ---- left: chat ---- */
.chatpane{display:flex;flex-direction:column;background:var(--paper);border-right:1px solid var(--d-line);min-width:0;min-height:0;overflow:hidden}
.sheet-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--d-line)}
.icon-btn{width:30px;height:30px;border-radius:9px;border:1px solid var(--line-2);background:var(--paper);
  color:var(--muted);cursor:pointer;display:grid;place-items:center;transition:.15s}
.icon-btn:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.icon-btn svg{width:15px;height:15px}
.sheet-head .kai-mark{width:30px;height:30px}
.sheet-head .kai-mark svg{width:30px;height:30px}
.sheet-title{font-weight:300;font-size:15px;color:var(--text);letter-spacing:.01em}
.sheet-title small{display:block;font-weight:500;font-size:11px;color:var(--muted);letter-spacing:.02em}
.spacer{flex:1}
.loc-chip{display:none}

body.kai-open{overflow:hidden}
.thread{flex:1;min-height:0;overflow-y:auto;padding:20px 18px 8px;display:flex;flex-direction:column;gap:12px;
  scrollbar-width:thin;scrollbar-color:transparent transparent}
.thread:hover{scrollbar-color:var(--line-2) transparent}
.thread::-webkit-scrollbar{width:4px}.thread::-webkit-scrollbar-track{background:transparent}
.thread::-webkit-scrollbar-thumb{background:transparent;border-radius:4px}
.thread:hover::-webkit-scrollbar-thumb{background:var(--line-2)}
.msg-user{align-self:flex-end;max-width:86%;font-size:14.5px;line-height:1.5;color:#fff;
  background:var(--ink);border-radius:15px;border-bottom-right-radius:5px;
  padding:10px 13px;animation:up .34s var(--ease) both}
.kai-say{align-self:flex-start;max-width:97%;font-size:15px;line-height:1.6;color:var(--d-text)}
.kai-say b{color:var(--text);font-weight:700}
.kai-say a.cite-link{color:var(--ink);text-decoration:underline;text-underline-offset:2px;
  text-decoration-color:rgba(79,191,58,.55);font-weight:600;cursor:pointer;display:inline-block}
.kai-say a.cite-link:hover{text-decoration-color:var(--green)}
@keyframes up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.kai-say .w{opacity:0;display:inline-block;animation:win .32s var(--ease) forwards}
.kai-say .w.sp{white-space:pre}
@keyframes win{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.cursor{display:inline-block;width:7px;height:16px;background:var(--green);border-radius:2px;margin-left:2px;
  vertical-align:-3px;box-shadow:0 0 8px var(--green-glow);animation:bl 1s steps(2) infinite}
@keyframes bl{50%{opacity:0}}
.think{align-self:flex-start;display:flex;gap:5px;padding:12px 4px}
.think i{width:7px;height:7px;border-radius:50%;background:var(--green);opacity:.55;animation:bo 1.1s infinite}
.think i:nth-child(2){animation-delay:.15s}.think i:nth-child(3){animation-delay:.3s}
@keyframes bo{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-5px);opacity:1}}
.aud{align-self:flex-start;display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;
  color:var(--ink);background:var(--green-050);border:1px solid #c7e9bd;padding:6px 11px;border-radius:999px;
  animation:up .4s var(--ease) both}
.aud svg{width:13px;height:13px}
.sugg{align-self:flex-start;display:flex;flex-wrap:wrap;gap:7px;margin-top:2px;animation:up .4s var(--ease) both}
.sugg button{font-family:var(--font);font-size:13px;color:var(--text);background:var(--paper);
  border:1px solid var(--line-2);border-radius:999px;padding:7px 12px;cursor:pointer;transition:.15s}
.sugg button:hover{border-color:var(--green);background:var(--green-050)}
.sugg-ghost{display:inline-block;font-family:var(--font);font-size:13px;color:var(--text);background:var(--paper);
  border:1px solid var(--line-2);border-radius:999px;padding:7px 12px;cursor:default;transition:.15s}
.sugg-ghost:hover{border-color:var(--green);background:var(--green-050)}

.input-row{padding:12px 14px;display:flex;gap:9px;align-items:center;border-top:1px solid var(--d-line)}
.kai-in{flex:1;border:1px solid var(--line-2);background:var(--paper);border-radius:12px;padding:11px 13px;
  font-family:var(--font);font-size:14.5px;color:var(--text);outline:0;transition:.16s}
.kai-in::placeholder{color:#9aa8b0}
.kai-in:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(79,191,58,.14)}
.in-send{flex:none;width:40px;height:40px;border-radius:11px;border:0;background:var(--ink);cursor:pointer;
  display:grid;place-items:center;transition:.15s}
.in-send:hover{background:var(--green)}
.in-send svg{width:16px;height:16px}
.kai-thumbs{display:none;gap:5px;margin-top:8px}
.thumb-btn{width:26px;height:26px;border-radius:7px;border:1px solid var(--line-2);background:transparent;
  color:var(--muted);cursor:pointer;display:grid;place-items:center;transition:.15s;flex:none}
.thumb-btn:hover{border-color:var(--green);color:var(--green);background:var(--green-050)}
.thumb-btn.on{border-color:var(--green);color:var(--green);background:var(--green-050)}
.thumb-btn svg{width:16px;height:16px;pointer-events:none}

.foot{padding:0 16px 12px;font-size:11px;color:var(--muted);text-align:center;line-height:1.5}
.foot a{color:inherit;text-decoration:underline;cursor:pointer}
