
    :root {
      --brand: #d52f36;
      --brand-strong: #a91f3d;
      --brand-deep: #74182e;
      --brand-soft: #fff1f2;
      --brand-soft-2: #fbe6e9;
      --ink: #242124;
      --muted: #716b70;
      --muted-2: #969096;
      --line: #e9e5e7;
      --line-strong: #ddd5d9;
      --surface: #ffffff;
      --surface-soft: #f8f7f7;
      --success: #22845d;
      --danger: #b4233c;
      --content: 860px;
      --header-height: 68px;
      --composer-space: 166px;
      --shadow-lg: 0 22px 70px rgba(69, 27, 42, .13), 0 4px 18px rgba(49, 25, 34, .06);
      --shadow-sm: 0 8px 24px rgba(69, 27, 42, .07);
    }

    * { box-sizing: border-box; }
    html, body { width: 100%; height: 100%; overscroll-behavior: none; }
    html { background: var(--surface); }
    body {
      margin: 0;
      position: fixed;
      inset: 0;
      overflow: hidden;
      color: var(--ink);
      background:
        radial-gradient(700px 370px at 50% -210px, rgba(213, 47, 54, .12), transparent 78%),
        var(--surface);
      font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }

    button, textarea { font: inherit; }
    button { -webkit-tap-highlight-color: transparent; }
    button:focus-visible, textarea:focus-visible, a:focus-visible {
      outline: 3px solid rgba(213, 47, 54, .24);
      outline-offset: 2px;
    }

    .app {
      position: fixed;
      z-index: 1;
      top: var(--viewport-top, 0px);
      right: 0;
      left: 0;
      height: var(--app-height, 100dvh);
      min-height: 0;
      display: flex;
      flex-direction: column;
    }

    .topbar {
      position: relative;
      z-index: 20;
      flex: 0 0 var(--header-height);
      height: var(--header-height);
      border-bottom: 1px solid rgba(233, 229, 231, .86);
      background: rgba(255, 255, 255, .88);
      backdrop-filter: blur(18px) saturate(160%);
      -webkit-backdrop-filter: blur(18px) saturate(160%);
    }

    .topbar-inner {
      height: 100%;
      max-width: 1240px;
      margin: 0 auto;
      padding: 0 22px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 18px;
    }

    .brand {
      min-width: 0;
      display: inline-flex;
      align-items: center;
      gap: 12px;
      color: inherit;
      text-decoration: none;
    }

    .brand-symbol, .assistant-mark {
      position: relative;
      flex: 0 0 auto;
      width: 42px;
      height: 42px;
      filter: drop-shadow(0 8px 14px rgba(169, 31, 61, .14));
    }

    .brand-symbol svg, .assistant-mark svg { width: 100%; height: 100%; display: block; }

    .brand-copy { min-width: 0; line-height: 1.05; }
    .brand-copy strong {
      display: block;
      font-size: 16px;
      font-weight: 780;
      letter-spacing: -.025em;
    }
    .brand-copy span {
      display: block;
      margin-top: 4px;
      color: var(--muted);
      font-size: 11px;
      letter-spacing: .025em;
    }

    .top-actions { display: flex; align-items: center; gap: 10px; }
    .action-stack { display: flex; flex-direction: column; align-items: stretch; gap: 3px; flex: 0 0 auto; }
    .action-stack .new-chat { width: 100%; min-height: 19px; padding: 2px 8px; border-radius: 7px; gap: 5px; font-size: 10px; line-height: 1; justify-content: flex-start; }
    .action-stack .new-chat svg { width: 11px; height: 11px; flex: 0 0 auto; }
    .action-stack .new-chat { color: #6f2940; border-color: #e5ccd3; background: linear-gradient(135deg,#fff,#fff3f5); }
    .language-select {
      border: 1px solid var(--line);
      border-radius: 12px;
      padding: 8px 28px 8px 10px;
      color: #514b50;
      background: var(--surface);
      font-size: 12px;
      font-weight: 680;
      cursor: pointer;
    }

    .status {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      color: var(--muted);
      font-size: 12px;
      white-space: nowrap;
    }
    .status-dot {
      width: 8px;
      height: 8px;
      border-radius: 999px;
      background: var(--success);
      box-shadow: 0 0 0 4px rgba(34, 132, 93, .1);
    }
    .status.offline .status-dot {
      background: var(--muted-2);
      box-shadow: 0 0 0 4px rgba(113, 107, 112, .1);
    }

    .new-chat {
      border: 1px solid var(--line);
      border-radius: 12px;
      padding: 9px 12px;
      display: inline-flex;
      align-items: center;
      gap: 7px;
      color: #514b50;
      background: var(--surface);
      cursor: pointer;
      font-size: 12px;
      font-weight: 680;
      transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease, background .16s ease;
    }
    .new-chat:hover {
      border-color: #d7bdc4;
      background: #fffafb;
      box-shadow: var(--shadow-sm);
      transform: translateY(-1px);
    }
    .new-chat svg { width: 15px; height: 15px; }

    .chat-scroll {
      position: relative;
      flex: 1 1 auto;
      min-height: 0;
      overflow-x: hidden;
      overflow-y: auto;
      overscroll-behavior: contain;
      overflow-anchor: none;
      -webkit-overflow-scrolling: touch;
      scroll-behavior: smooth;
      scrollbar-gutter: stable;
      padding: 34px 20px var(--composer-space);
    }

    .chat-column {
      width: min(100%, var(--content));
      margin: 0 auto;
    }
    .goldit-credit {
      display: block;
      width: max-content;
      max-width: 100%;
      margin: 4px auto 0;
      padding: 1px 4px;
      color: #9a9296;
      font-size: 8.5px;
      font-weight: 700;
      line-height: 1.2;
      letter-spacing: .04em;
      text-decoration: none;
      opacity: .62;
      transition: opacity .18s ease, color .18s ease;
    }
    .goldit-credit:hover, .goldit-credit:focus-visible { color: var(--brand-deep); opacity: 1; }
    .goldit-credit span { color: var(--brand-deep); }

    .welcome {
      min-height: calc(100dvh - var(--header-height) - var(--composer-space) - 54px);
      display: grid;
      place-items: center;
      animation: rise .34s ease both;
    }
    .welcome-inner {
      width: 100%;
      padding: 20px 0 44px;
      text-align: center;
    }
    .welcome .assistant-mark {
      width: 72px;
      height: 72px;
      margin: 0 auto;
      filter: drop-shadow(0 18px 25px rgba(169, 31, 61, .16));
    }
    .welcome h1 {
      max-width: 760px;
      margin: 24px auto 12px;
      color: #332d31;
      font-size: clamp(29px, 4.8vw, 43px);
      line-height: 1.12;
      letter-spacing: -.045em;
      font-weight: 760;
    }
    .welcome h1 span { color: var(--brand-strong); }
    .welcome p {
      max-width: 650px;
      margin: 0 auto;
      color: var(--muted);
      font-size: clamp(14px, 1.9vw, 16px);
      line-height: 1.65;
    }

    .suggestions {
      width: min(100%, 760px);
      margin: 32px auto 0;
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 11px;
    }
    .suggestion {
      min-height: 92px;
      border: 1px solid var(--line);
      border-radius: 17px;
      padding: 15px 16px;
      color: #443d42;
      background: rgba(255, 255, 255, .92);
      box-shadow: 0 4px 18px rgba(76, 31, 46, .035);
      cursor: pointer;
      text-align: left;
      transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease, background .16s ease;
    }
    .suggestion:hover {
      border-color: #dcbfc7;
      background: #fffafb;
      box-shadow: 0 14px 34px rgba(113, 32, 57, .09);
      transform: translateY(-2px);
    }
    .suggestion-label {
      display: flex;
      align-items: center;
      gap: 7px;
      margin-bottom: 7px;
      color: var(--brand-strong);
      font-size: 11px;
      font-weight: 780;
      text-transform: uppercase;
      letter-spacing: .06em;
    }
    .suggestion-label svg { width: 14px; height: 14px; }
    .suggestion-text { font-size: 13.5px; line-height: 1.45; }

    .conversation { padding: 2px 0 24px; }
    .message {
      position: relative;
      display: flex;
      gap: 14px;
      margin: 28px 0;
      animation: rise .2s ease both;
    }
    .message.user { justify-content: flex-end; }

    .message-avatar {
      flex: 0 0 auto;
      width: 34px;
      height: 34px;
      border-radius: 12px;
      display: grid;
      place-items: center;
      border: 1px solid #ecd7dc;
      background: var(--brand-soft);
      color: var(--brand-strong);
      font-size: 12px;
      font-weight: 800;
      overflow: hidden;
    }
    .message-avatar svg { width: 25px; height: 25px; }
    .message.user .message-avatar { display: none; }

    .message-body {
      min-width: 0;
      max-width: min(100%, 790px);
      color: #312c30;
      font-size: 15px;
      line-height: 1.72;
    }
    .message.user .message-body {
      max-width: min(82%, 650px);
      padding: 11px 16px;
      border: 1px solid #eee9eb;
      border-radius: 18px 18px 5px 18px;
      background: #f6f4f5;
      line-height: 1.55;
    }

    .answer-content > :first-child { margin-top: 0; }
    .answer-content > :last-child { margin-bottom: 0; }
    .answer-content p { margin: 0 0 14px; }
    .answer-content h2, .answer-content h3 {
      color: #2e282c;
      line-height: 1.3;
      letter-spacing: -.018em;
    }
    .answer-content h2 { margin: 24px 0 10px; font-size: 18px; }
    .answer-content h3 { margin: 20px 0 8px; font-size: 16px; }
    .answer-content ul, .answer-content ol { margin: 10px 0 16px; padding-left: 23px; }
    .answer-content li { margin: 5px 0; }
    .answer-content strong { color: #262025; font-weight: 760; }
    .answer-content a { color: var(--brand-strong); text-decoration-thickness: 1px; text-underline-offset: 3px; }
    .answer-content code {
      padding: 2px 5px;
      border: 1px solid #eadfe2;
      border-radius: 6px;
      background: #fbf5f7;
      color: #7d263d;
      font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
      font-size: .9em;
    }

    .thinking {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 6px 0;
      color: var(--muted);
      font-size: 13px;
    }
    .thinking-dots { display: inline-flex; gap: 4px; }
    .thinking-dots i {
      display: block;
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: var(--brand-strong);
      animation: dot 1.1s infinite ease-in-out;
    }
    .thinking-dots i:nth-child(2) { animation-delay: .14s; }
    .thinking-dots i:nth-child(3) { animation-delay: .28s; }

    .stream-cursor::after {
      content: "";
      display: inline-block;
      width: 2px;
      height: 1.05em;
      margin-left: 3px;
      vertical-align: -.15em;
      border-radius: 2px;
      background: var(--brand-strong);
      animation: blink .85s steps(1) infinite;
    }

    .answer-tools {
      display: flex;
      align-items: center;
      gap: 7px;
      margin-top: 12px;
      opacity: 0;
      transform: translateY(-2px);
      transition: opacity .15s ease, transform .15s ease;
    }
    .message.assistant:hover .answer-tools, .answer-tools:focus-within {
      opacity: 1;
      transform: translateY(0);
    }
    .tool-button {
      width: 30px;
      height: 30px;
      display: grid;
      place-items: center;
      border: 0;
      border-radius: 9px;
      color: var(--muted);
      background: transparent;
      cursor: pointer;
      transition: background .14s ease, color .14s ease;
    }
    .tool-button:hover { color: var(--brand-strong); background: var(--brand-soft); }
    .tool-button svg { width: 16px; height: 16px; }

    .sources-block {
      margin-top: 22px;
      padding-top: 18px;
      border-top: 1px solid var(--line);
    }
    .sources-heading {
      margin-bottom: 10px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      color: #5e555b;
      font-size: 12px;
      font-weight: 780;
      text-transform: uppercase;
      letter-spacing: .065em;
    }
    .sources-grid { display: grid; gap: 9px; }
    .source-card {
      border: 1px solid var(--line);
      border-radius: 14px;
      background: #fff;
      box-shadow: 0 4px 15px rgba(61, 28, 39, .035);
      overflow: hidden;
    }
    .source-summary {
      width: 100%;
      border: 0;
      padding: 12px 13px;
      display: flex;
      align-items: flex-start;
      gap: 10px;
      color: inherit;
      background: transparent;
      text-align: left;
      cursor: pointer;
    }
    .source-number {
      flex: 0 0 auto;
      width: 25px;
      height: 25px;
      display: grid;
      place-items: center;
      border-radius: 8px;
      background: var(--brand-soft);
      color: var(--brand-strong);
      font-size: 11px;
      font-weight: 820;
    }
    .source-copy { min-width: 0; flex: 1; }
    .source-title {
      overflow: hidden;
      color: #3f373c;
      font-size: 12.5px;
      font-weight: 750;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .source-meta { margin-top: 3px; color: var(--muted-2); font-size: 11px; }
    .source-chevron { flex: 0 0 auto; width: 17px; height: 17px; color: var(--muted-2); transition: transform .16s ease; }
    .source-card.open .source-chevron { transform: rotate(180deg); }
    .source-detail {
      display: none;
      padding: 0 13px 13px 48px;
      color: #625a5f;
      font-size: 12px;
      line-height: 1.55;
    }
    .source-card.open .source-detail { display: block; }
    .source-link {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      margin-top: 9px;
      border: 1px solid #efd2d8;
      border-radius: 10px;
      padding: 7px 10px;
      color: var(--brand-strong);
      background: #fff7f8;
      font-weight: 750;
      text-decoration: none;
      transition: background .16s ease, border-color .16s ease, transform .16s ease;
    }
    .source-link:hover { border-color:#d99eac;background:var(--brand-soft);transform:translateY(-1px); }
    .source-title-row{min-width:0;display:flex;align-items:center;gap:7px}.source-title-row .source-title{min-width:0}.source-kind{flex:0 0 auto;border:1px solid #f0ccd3;border-radius:999px;padding:2px 6px;color:var(--brand-strong);background:var(--brand-soft);font-size:9.5px;font-weight:820;line-height:1;letter-spacing:.04em;text-transform:uppercase}.source-quality{display:inline-flex;width:fit-content;margin-top:5px;border-radius:999px;padding:3px 7px;color:#5f555b;background:#f7f3f4;font-size:10.5px;font-weight:740;line-height:1.1}.source-filters{margin:0 0 12px;display:flex;flex-wrap:wrap;gap:7px}.source-filter{border:1px solid var(--line);border-radius:999px;padding:6px 9px;color:#625a5f;background:#fff;cursor:pointer;font-size:11px;font-weight:760}.source-filter:hover,.source-filter.active{border-color:#dfbac4;color:var(--brand-strong);background:var(--brand-soft)}.source-note{margin:7px 0 11px;color:#7d747a;font-size:11.5px;line-height:1.45}


    .error-box {
      border: 1px solid #f0cdd4;
      border-radius: 14px;
      padding: 13px 14px;
      color: var(--danger);
      background: #fff7f8;
      line-height: 1.5;
    }
    .retry {
      margin-top: 10px;
      border: 1px solid #e8b8c3;
      border-radius: 10px;
      padding: 7px 10px;
      color: var(--danger);
      background: #fff;
      cursor: pointer;
      font-size: 12px;
      font-weight: 720;
    }

    .composer-zone {
      position: absolute;
      z-index: 30;
      right: 0;
      bottom: 0;
      left: 0;
      pointer-events: none;
      padding: 35px 20px max(14px, env(safe-area-inset-bottom));
      background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, .97) 34%, #fff 61%);
    }
    .composer-inner {
      width: min(100%, var(--content));
      margin: 0 auto;
      pointer-events: auto;
    }
    .composer {
      min-height: 58px;
      display: flex;
      align-items: flex-end;
      gap: 8px;
      border: 1px solid var(--line-strong);
      border-radius: 22px;
      padding: 8px 8px 8px 16px;
      background: rgba(255, 255, 255, .98);
      box-shadow: var(--shadow-lg);
      transition: border-color .16s ease, box-shadow .16s ease;
    }
    .composer-shortcuts { flex: 0 0 auto; display: flex; flex-direction: column; gap: 4px; align-self: center; }
    .composer-shortcut { min-height: 19px; display: inline-flex; align-items: center; gap: 5px; border: 1px solid #efcfd6; border-radius: 7px; padding: 2px 7px; color: var(--brand-strong); background: var(--brand-soft); font: inherit; font-size: 10px; font-weight: 720; line-height: 1; cursor: pointer; text-decoration: none; }
    .composer-shortcut:first-child { color: #fff; border-color: transparent; background: linear-gradient(135deg,var(--brand),var(--brand-strong)); }
    .composer-shortcut svg { width: 11px; height: 11px; flex: 0 0 auto; }
    .composer-shortcut:hover { filter: brightness(.98); }
    .composer:focus-within {
      border-color: #cf9eaa;
      box-shadow: 0 24px 80px rgba(106, 28, 52, .16), 0 5px 18px rgba(67, 31, 43, .06);
    }
    .composer textarea {
      flex: 1 1 auto;
      min-height: 40px;
      max-height: 180px;
      margin: 0;
      padding: 10px 4px 8px 0;
      resize: none;
      overflow-y: auto;
      border: 0;
      outline: 0;
      color: var(--ink);
      background: transparent;
      font-size: 15px;
      line-height: 1.45;
    }
    .composer textarea::placeholder { color: #999297; }
    .send-button {
      flex: 0 0 auto;
      width: 43px;
      height: 43px;
      border: 0;
      border-radius: 14px;
      display: grid;
      place-items: center;
      color: #fff;
      background: linear-gradient(145deg, var(--brand), var(--brand-strong));
      box-shadow: 0 9px 20px rgba(169, 31, 61, .22);
      cursor: pointer;
      transition: filter .15s ease, transform .15s ease, opacity .15s ease;
    }
    .send-button:hover:not(:disabled) { filter: brightness(1.04); transform: translateY(-1px); }
    .send-button:disabled { opacity: .42; cursor: default; box-shadow: none; }
    .send-button svg { width: 19px; height: 19px; }
    .send-button .stop-icon { display: none; }
    .send-button.is-streaming .send-icon { display: none; }
    .send-button.is-streaming .stop-icon { display: block; }

    .disclaimer {
      padding: 8px 10px 0;
      color: #8c858a;
      text-align: center;
      font-size: 10.5px;
      line-height: 1.4;
    }

    .sr-only {
      position: absolute !important;
      width: 1px !important;
      height: 1px !important;
      padding: 0 !important;
      margin: -1px !important;
      overflow: hidden !important;
      clip: rect(0, 0, 0, 0) !important;
      white-space: nowrap !important;
      border: 0 !important;
    }

    @keyframes rise {
      from { opacity: 0; transform: translateY(7px); }
      to { opacity: 1; transform: translateY(0); }
    }
    @keyframes dot {
      0%, 55%, 100% { transform: translateY(0); opacity: .35; }
      28% { transform: translateY(-4px); opacity: 1; }
    }
    @keyframes blink { 50% { opacity: 0; } }

    @media (max-width: 700px) {
      :root { --header-height: 62px; --composer-space: 156px; }
      .topbar-inner { padding: 0 14px; }
      .brand-symbol { width: 37px; height: 37px; }
      .action-stack { gap: 3px; }
      .action-stack .new-chat { width: 34px; height: 18px; min-height: 18px; padding: 0; justify-content: center; border-radius: 7px; }
      .action-stack .new-chat svg { width: 11px; height: 11px; }
      .brand-copy strong { font-size: 15px; }
      .brand-copy span { display: none; }
      .topbar-inner { padding: 0 10px; gap: 6px; }
      .brand { gap: 6px; }
      .brand-symbol { width: 32px; height: 32px; }
      .brand-copy strong { font-size: 14px; }
      .top-actions { min-width: 0; gap: 5px; }
      .language-select { min-width: 0; max-width: 72px; padding: 7px 17px 7px 5px; font-size: 10px; }
      .status { min-width: 0; max-width: 78px; gap: 3px; font-size: 9px; }
      #statusText { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
      .new-chat span { display: none; }
      .composer-shortcut span { display: none; }
      .composer-shortcut { width: 32px; min-height: 20px; padding: 0; justify-content: center; }
      .new-chat { width: 38px; height: 38px; padding: 0; justify-content: center; border-radius: 11px; }
      .chat-scroll { padding: 20px 14px var(--composer-space); }
      .welcome { min-height: calc(100dvh - var(--header-height) - var(--composer-space) - 20px); }
      .welcome-inner { padding-bottom: 20px; }
      .welcome .assistant-mark { width: 62px; height: 62px; }
      .welcome h1 { margin-top: 20px; font-size: 29px; }
      .welcome p { font-size: 14px; }
      .suggestions { grid-template-columns: 1fr; margin-top: 24px; gap: 9px; }
      .suggestion { min-height: 0; padding: 13px 14px; }
      .message { gap: 10px; margin: 23px 0; }
      .message-avatar { width: 31px; height: 31px; border-radius: 10px; }
      .message-body { font-size: 14px; line-height: 1.68; }
      .message.user .message-body { max-width: 89%; }
      .answer-tools { opacity: 1; }
      .source-detail { padding-left: 13px; }
      .composer-zone { padding: 30px 10px max(10px, env(safe-area-inset-bottom)); }
      .composer { border-radius: 19px; padding-left: 13px; }
      .composer textarea { max-height: 120px; font-size: 16px; }
      .disclaimer { font-size: 9.8px; }
    }

    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
    }
  
    .youtube-source-preview { display:grid; grid-template-columns:minmax(150px,220px) 1fr; gap:16px; align-items:start; }
    .youtube-source-preview img { width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:12px; background:#eee; }
    .youtube-source-copy { display:grid; gap:7px; min-width:0; }
    .youtube-source-copy > b { color:#4b2935; font-size:15px; }
    .youtube-source-copy > span { color:#766d71; font-size:12px; font-weight:700; }
    .youtube-source-copy p { margin:3px 0; }
    .source-youtube .source-link { justify-self:start; color:#fff; background:#d52f36; border-color:#d52f36; }
    @media(max-width:620px){.youtube-source-preview{grid-template-columns:1fr}.youtube-source-preview img{max-width:none}}

    .followup-block{margin-top:15px;padding-top:13px;border-top:1px solid var(--line)}
    .followup-label{display:block;margin-bottom:8px;color:var(--muted);font-size:12px;font-weight:700}
    .followup-actions{display:flex;flex-wrap:wrap;gap:8px}
    .followup-button{border:1px solid #e5ccd3;border-radius:999px;padding:9px 13px;color:var(--brand-strong);background:#fff;font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:.18s ease}
    .followup-button:hover,.followup-button:focus-visible{border-color:var(--brand);background:var(--brand-soft);transform:translateY(-1px);outline:none}
    @media(max-width:620px){.followup-actions{display:grid}.followup-button{text-align:left;min-height:44px}}

    .pipeline-progress{display:grid;gap:8px;min-width:min(390px,78vw)}
    .pipeline-step{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:13px;font-weight:650}
    .pipeline-step i{width:9px;height:9px;border-radius:50%;background:#ded5d8;box-shadow:0 0 0 4px #f7f2f4;transition:.2s}
    .pipeline-step.active{color:var(--brand-strong)}.pipeline-step.active i{background:var(--brand);box-shadow:0 0 0 4px rgba(213,47,54,.13);animation:pipelinePulse 1.2s infinite}
    .pipeline-step.done{color:var(--success)}.pipeline-step.done i{background:var(--success);box-shadow:0 0 0 4px rgba(34,132,93,.12)}
    @keyframes pipelinePulse{50%{transform:scale(1.22)}}
    body.keyboard-open .composer-zone{padding-top:8px;padding-bottom:max(6px,env(safe-area-inset-bottom));background:linear-gradient(to bottom,rgba(255,255,255,.88),#fff 30%)}
    body.keyboard-open .disclaimer{display:none}body.keyboard-open .chat-scroll{padding-bottom:92px}
    .skip-link{position:fixed;z-index:999;left:12px;top:8px;transform:translateY(-150%);padding:10px 14px;border-radius:9px;color:#fff;background:var(--ink)}.skip-link:focus{transform:none}*:focus-visible{outline:3px solid rgba(213,47,54,.38);outline-offset:3px}
    .feedback{display:flex;align-items:center;gap:8px;margin-top:12px;color:var(--muted);font-size:12px}.feedback button{min-height:40px;border:1px solid var(--line);border-radius:10px;padding:7px 10px;background:#fff;cursor:pointer}.feedback button.selected{color:#fff;background:var(--brand-strong)}

