:root,:root[data-theme=light]{--k-text:#111;--k-strong:#000;--k-muted:#555;--k-bg:#fff;--k-bg-bis:#fafafa;--k-bg-ter:#f5f5f5;--k-border:#dbdbdb;--k-input-border:#b5b5b5;--k-placeholder:#6b6b6b;--k-bubble:#e4e4e7}
:root[data-theme=dark]{--k-text:#f2f2f2;--k-strong:#fff;--k-muted:#b0b0b0;--k-bg:#141414;--k-bg-bis:#1c1c1c;--k-bg-ter:#242424;--k-border:#3a3a3a;--k-input-border:#555;--k-placeholder:#8a8a8a;--k-bubble:#2e2e33}
:root,:root[data-theme=light],:root[data-theme=dark]{--bulma-body-color:var(--k-text);--bulma-text:var(--k-text);--bulma-text-strong:var(--k-strong);--bulma-text-weak:var(--k-muted);--bulma-body-background-color:var(--k-bg);--bulma-scheme-main:var(--k-bg);--bulma-scheme-main-bis:var(--k-bg-bis);--bulma-scheme-main-ter:var(--k-bg-ter);--bulma-border:var(--k-border)}
body{background:var(--k-bg);color:var(--k-text)}
.input,.textarea{--bulma-input-background-color:var(--k-bg);--bulma-input-color:var(--k-text);--bulma-input-placeholder-color:var(--k-placeholder);--bulma-input-border-color:var(--k-input-border);background-color:var(--k-bg);color:var(--k-text)}
.box{--bulma-box-background-color:var(--k-bg-bis);--bulma-box-color:var(--k-text);background-color:var(--k-bg-bis);color:var(--k-text)}
.select select{background-color:var(--k-bg);color:var(--k-text);border-color:var(--k-input-border)}
.label{color:var(--k-strong)}
.table{--bulma-table-color:var(--k-text);--bulma-table-background-color:var(--k-bg);--bulma-table-cell-heading-color:var(--k-strong);--bulma-table-head-cell-color:var(--k-strong);--bulma-table-foot-cell-color:var(--k-strong)}
td[contenteditable=true]{outline:2px solid var(--bulma-link);background:var(--k-bg)}
.chat{max-width:40rem}
.chat-log{box-sizing:border-box;height:24rem;overflow-y:auto;padding:.75rem 1rem;border:1px solid var(--k-border);border-radius:.375rem;background:var(--k-bg-bis)}
.chat-msg{margin-bottom:.75rem}
.chat-bubble{display:inline-block;max-width:95%;padding:.5rem .9rem;border-radius:.75rem;white-space:pre-wrap;overflow-wrap:break-word;background:var(--k-bubble);border:1px solid var(--k-border);color:var(--k-text);text-align:left}
.chat-bubble:empty::before{content:"…";color:var(--k-muted)}
.chat-msg.is-outgoing{text-align:right}
.chat-msg.is-outgoing .chat-bubble{text-align:left;background:var(--bulma-primary);border-color:var(--bulma-primary);color:#fff}
.chat-tool{font-family:monospace;font-size:.85em;color:var(--k-muted);white-space:pre-wrap;border-left:3px solid var(--k-border);margin:.25rem 0 .75rem .5rem;padding:.15rem .75rem}
.chat-tool.is-failed{border-left-color:var(--bulma-danger)}
.chat-status{display:flex;align-items:center;gap:.5rem;font-size:.95em;color:var(--k-text)}
.chat-status:not(.is-working) .chat-dots{display:none}
.chat-dots{display:inline-flex;gap:.2rem}
.chat-dots i{width:.4rem;height:.4rem;border-radius:50%;background:var(--bulma-link);animation:chat-blink 1.2s infinite ease-in-out both}
.chat-dots i:nth-child(2){animation-delay:.2s}
.chat-dots i:nth-child(3){animation-delay:.4s}
@keyframes chat-blink{0%,80%,100%{opacity:.2;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}
.chat-composer{margin-top:.5rem;display:flex;flex-direction:column;border:1px solid var(--k-border);border-radius:1.25rem;background:var(--k-bg-bis);overflow:hidden}
.chat-composer.is-dragover{outline:2px dashed var(--bulma-primary,#485fc7);outline-offset:2px}
.chat-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.6rem .9rem;border-bottom:1px solid var(--k-border)}
.chat-head-end{display:flex;align-items:center;gap:.6rem}
.chat-live{width:.6rem;height:.6rem;border-radius:50%;background:var(--bulma-warning)}
.chat-pill{border-radius:.6rem;background:transparent;border-color:var(--k-border);color:var(--k-text)}
.chat-composer .chat-text{border:0;box-shadow:none;background:transparent;resize:none;padding:.9rem 1rem;min-height:5rem}
.chat-foot-bar{display:flex;align-items:center;gap:.5rem;padding:.6rem;flex-wrap:wrap}
.chat-spacer{flex:1}
.chat-round{
width:2.5rem;height:2.5rem;padding:0;border-radius:50%;border:1px solid var(--k-border);color:var(--k-text);flex:none}

/* Site logo for static marketing pages: first item in nav.top */
nav.top { position: sticky; top: 0; z-index: 10; background: #fff; }
nav.top .logo { display: flex; align-items: center; gap: .5rem;
  font-weight: 800; font-size: 1.25rem; color: #111 !important; }
nav.top .logo svg { width: 1.6rem; height: 1.6rem; }
