/* Cursor Bridge web chat (/chat): Cryptowatch trading-terminal layout on the shared white theme. */
body.chat-page{display:flex;flex-direction:column;height:100vh;height:100dvh;min-height:0;overflow:hidden}
.chat-skip{position:absolute;left:8px;top:-40px;z-index:50;padding:6px 10px;background:var(--surface);border:1px solid var(--border-strong);color:var(--text-strong)}
.chat-skip:focus{top:8px}
.chat-list-toggle{display:none;align-items:center;justify-content:center;flex:none;width:40px;margin:0;padding:0;background:transparent;border:0;border-right:1px solid var(--border-weak);color:var(--text-strong);cursor:pointer}
.chat-list-toggle:hover{background:var(--cta-bg-70)}
.chat-account{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--text-weak)}
.chat-main{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}

/* Centered views: loading, sign-in, unavailable, boot error */
.chat-center-view{flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:24px 16px;overflow:auto;background:var(--bg-2)}
.chat-signin-card{width:min(440px,100%);padding:25px;border-color:var(--border-strong)}
.chat-signin-title{margin:0 0 6px;font-size:18px;line-height:24px;font-weight:700;color:var(--text-strong)}
.chat-signin-lead{margin:0 0 16px;color:var(--text-weak)}
.chat-field-label{display:block;margin:0 0 4px;font-size:12px;color:var(--text-weaker)}
.chat-signin-key{display:block;width:100%;min-height:34px}
.chat-signin-card .cb-notice{margin:10px 0 0}
.chat-signin-submit{width:100%;min-height:34px;margin-top:14px;font-weight:700}
.chat-signin-help{margin:12px 0 0}
.chat-privacy{margin:8px 0 0;padding-top:8px;border-top:1px solid var(--border-weaker)}
.chat-boot-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px;max-width:420px}
.chat-boot-card p{margin:0}

/* Terminal grid: chat list | transcript | model + stats */
.chat-grid{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:260px minmax(0,1fr) 260px}
.chat-grid>.cb-panel{display:flex;flex-direction:column;min-height:0;border-width:0}
.chat-sidebar{border-right:1px solid var(--border-weak)!important}
.chat-info{border-left:1px solid var(--border-weak)!important;overflow-y:auto}
.chat-panel-title{margin:0;font-size:12px;line-height:16px;font-weight:700;color:var(--text-strong)}
.chat-new{margin-left:auto}
.chat-search{flex:none;padding:6px 8px;border-bottom:1px solid var(--border-weak)}
.chat-search .cb-input{width:100%}
.chat-list{flex:1 1 auto;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}
.chat-list-status{margin:0}
.chat-item{position:relative;display:flex;align-items:stretch;border-bottom:1px solid var(--border-weaker)}
.chat-item:nth-child(odd){background:var(--cta-bg-20)}
.chat-item:hover{background:var(--row-hover)}
.chat-item.active{background:var(--cta-bg-50);box-shadow:inset 3px 0 0 var(--cta-highlight)}
.chat-item-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px;margin:0;padding:7px 10px;background:transparent;border:0;text-align:left;color:var(--text);cursor:pointer;font:inherit}
.chat-item-title{display:flex;align-items:center;gap:6px;min-width:0;font-size:13px;line-height:18px;color:var(--text-strong)}
.chat-item-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-item-meta{display:flex;gap:8px;font:400 11px/14px var(--font-mono);color:var(--text-weaker);font-variant-numeric:tabular-nums}
.chat-item-dot{flex:none;width:6px;height:6px;border-radius:50%;background:transparent}
.chat-item-dot.streaming{background:var(--alert)}
.chat-item-dot.error,.chat-item-dot.interrupted{background:var(--short)}
.chat-item-actions{display:flex;align-items:center;gap:2px;padding-right:4px;opacity:0;transition:all .2s}
.chat-item:hover .chat-item-actions,.chat-item:focus-within .chat-item-actions,.chat-item.active .chat-item-actions{opacity:1}
.chat-item-actions .cb-btn{min-height:22px;padding:0 5px;font-size:11px}
.chat-item-rename{flex:1 1 auto;min-width:0;margin:5px 4px 5px 8px;font-size:12px}
.chat-backdrop{display:none}
/* Center: header, transcript, composer */
.chat-center{position:relative}
.chat-head{flex:none}
.chat-title{flex:0 1 auto;min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:16px;font-weight:700;color:var(--text-strong)}
.chat-info-toggle{display:none;margin-left:auto}
.chat-info-toggle .cb-mono{max-width:140px;overflow:hidden;text-overflow:ellipsis;font-size:11px;color:var(--text-weak)}
.chat-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:16px 16px 24px;background:var(--bg)}
.chat-empty{display:flex;justify-content:center;padding:6vh 0 0}
.chat-empty-card{width:min(620px,100%)}
.chat-empty-lead{margin:0 0 10px;color:var(--text-weak)}
.chat-examples{margin:0;padding:0;list-style:none;border:1px solid var(--border-weak)}
.chat-examples li+li{border-top:1px solid var(--border-weaker)}
.chat-example{display:block;width:100%;margin:0;padding:8px 10px;background:transparent;border:0;text-align:left;font:400 13px/18px var(--font-sans);color:var(--text);cursor:pointer;transition:all .2s}
.chat-examples li:nth-child(odd) .chat-example{background:var(--cta-bg-20)}
.chat-example:hover{background:var(--row-hover)!important;color:var(--text-strong)}
.chat-log{display:flex;flex-direction:column;gap:14px;max-width:880px;margin:0 auto}
.chat-msg{display:flex;flex-direction:column;gap:4px;max-width:100%}
.chat-msg.user{align-self:flex-end;align-items:flex-end;max-width:85%}
.chat-msg.assistant{align-self:stretch}
.chat-msg-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font:400 11px/16px var(--font-mono);color:var(--text-weaker);font-variant-numeric:tabular-nums}
.chat-msg-role{color:var(--text-weak);text-transform:uppercase;font-size:10px;letter-spacing:.04em}
.chat-msg-body{padding:8px 12px;border:1px solid var(--border-weak);background:var(--surface)}
.chat-msg.user .chat-msg-body{background:var(--cta-bg-20);border-color:var(--cta-weak);white-space:pre-wrap;overflow-wrap:anywhere}
.chat-msg.streaming .chat-msg-body{border-color:var(--cta-weak)}
.chat-msg.failed .chat-msg-body{border-color:rgba(234,13,63,.45)}
.chat-msg-body:empty::after,.chat-msg-pending{display:inline-block;content:"";width:7px;height:14px;vertical-align:-2px;background:var(--cta-highlight);animation:chat-blink 1s steps(2,start) infinite}
@keyframes chat-blink{to{visibility:hidden}}
.chat-msg-actions{display:flex;gap:2px;opacity:.6;transition:all .2s}
.chat-msg:hover .chat-msg-actions,.chat-msg:focus-within .chat-msg-actions{opacity:1}
.chat-msg-actions .cb-btn{min-height:22px;padding:0 6px;font-size:11px}
.chat-msg-error{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:12px}
.chat-msg-error .cb-btn{min-height:22px;font-size:11px}
.chat-msg-edit{display:flex;flex-direction:column;gap:6px;width:min(640px,85vw)}
.chat-msg-edit .cb-textarea{width:100%;min-height:80px;resize:vertical;font:400 14px/1.5 var(--font-sans)}
.chat-msg-edit-actions{display:flex;justify-content:flex-end;gap:6px}
.chat-jump{position:absolute;left:50%;bottom:96px;z-index:5;transform:translateX(-50%)}
.chat-composer{flex:none;padding:8px 10px 6px;background:var(--bg);border-top:1px solid var(--border-weak)}
.chat-composer-error{margin:0 0 6px;font-size:12px}
.chat-composer-box{display:flex;align-items:flex-end;gap:8px;max-width:880px;margin:0 auto}
.chat-input{flex:1 1 auto;min-height:38px;max-height:40vh;padding:9px 10px;resize:none;overflow-y:auto;font:400 14px/20px var(--font-sans)}
.chat-send{flex:none;min-width:76px;min-height:38px;font-weight:700}
.chat-send.is-stop{background:rgba(234,13,63,.12);border-color:rgba(234,13,63,.6);color:var(--short-highlight)}
.chat-send.is-stop:hover:not(:disabled){background:rgba(234,13,63,.22);border-color:var(--short)}
.chat-composer-foot{display:flex;justify-content:space-between;gap:8px;max-width:880px;margin:4px auto 0}

/* Right panel: model + chat stats ("order book" rows) */
.chat-info-close{display:none;margin-left:auto}
.chat-info-fields{display:flex;flex-direction:column;gap:8px;padding:10px}
.chat-field{display:flex;flex-direction:column;gap:3px}
.chat-field .cb-select{width:100%}
.chat-model-error{font-size:12px}
.chat-book{flex:none}
.chat-book td{height:24px}
.chat-book td:first-child{font-family:var(--font-sans);color:var(--text-weaker)}
.chat-book td.num{color:var(--text-strong)}
.chat-info-sub{border-top:1px solid var(--border-weak);margin-top:8px}

/* Footer status bar */
.chat-footer{justify-content:flex-start;gap:4px 16px}
.chat-status{display:inline-flex;align-items:center;gap:6px}
.chat-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--border-strong)}
.chat-dot.idle{background:var(--long)}
.chat-dot.busy{background:var(--alert)}
.chat-dot.error{background:var(--short)}
.chat-footer-saved{color:var(--text-weaker)}
.chat-footer-account{margin-left:auto;font-size:11px}

/* Responsive: info panel becomes an overlay below 1100px, chat list below 760px */
@media (max-width:1099px){
  .chat-grid{grid-template-columns:260px minmax(0,1fr)}
  .chat-info-toggle{display:inline-flex}
  .chat-info{position:fixed;z-index:30;top:var(--header-h);right:0;bottom:var(--footer-h);width:min(300px,88vw);display:none!important;box-shadow:-1px 0 0 var(--border-strong)}
  .chat-grid.info-open .chat-info{display:flex!important}
  .chat-info-close{display:inline-flex}
}
@media (max-width:759px){
  .chat-grid{grid-template-columns:minmax(0,1fr)}
  .chat-list-toggle{display:inline-flex}
  .chat-sidebar{position:fixed;z-index:30;top:var(--header-h);left:0;bottom:var(--footer-h);width:min(300px,86vw);transform:translateX(-102%);transition:transform .2s;box-shadow:1px 0 0 var(--border-strong)}
  .chat-grid.list-open .chat-sidebar{transform:none}
  .chat-grid.list-open .chat-backdrop,.chat-grid.info-open .chat-backdrop{display:block;position:fixed;z-index:20;inset:var(--header-h) 0 var(--footer-h) 0;background:rgba(255,255,255,.6)}
  .chat-scroll{padding:12px 10px 20px}
  .chat-msg.user{max-width:92%}
  .chat-account,.chat-footer-saved{display:none}
  .chat-composer-foot .cb-label:first-child{display:none}
  .chat-item-actions{opacity:1}
}
@media (prefers-reduced-motion:reduce){
  .chat-msg-body:empty::after,.chat-msg-pending{animation:none}
  .chat-sidebar{transition:none}
}
