  /* Narrow component selectors retained for unmigrated Files and overlays. */
  .secret-add-shell summary { padding:12px 14px; color:var(--blue); cursor:pointer;
                              font-size:12px; font-weight:700; }
  .secret-add-form { display:grid; grid-template-columns:minmax(150px,.8fr) minmax(150px,.8fr)
                     minmax(220px,1.4fr) auto; gap:10px; align-items:end; padding:0 14px 14px; }
  .secret-add-form label { color:var(--txt-soft); font-size:11px; }
  .secret-add-form input { width:100%; margin-top:5px; }
  .factory-card { display:flex; flex-direction:column; gap:7px; }
  button.factory-card { appearance:none; width:100%; color:inherit; text-align:left;
                        cursor:pointer; font:inherit; }
  button.factory-card:hover, button.factory-card:focus-visible {
    border-color:var(--blue); background:var(--accent-faint);
  }
  .factory-card .chip { align-self:flex-start; }
  .factory-card .section-meta { margin-top:auto; padding-top:4px; }
  .factory-request { display:-webkit-box; margin:0; overflow:hidden; text-overflow:ellipsis;
                     overflow-wrap:anywhere; -webkit-box-orient:vertical; -webkit-line-clamp:3;
                     color:var(--txt); font-size:12px; line-height:1.45; }
  .secret-list { display:flex; flex-wrap:wrap; gap:7px; }
  .secret-name { display:grid; gap:6px; padding:10px 11px; border:1px solid var(--line);
                 border-radius:7px; background:var(--card); }
  .secret-name code { color:var(--txt); font-size:11.5px; }
  .secret-name small { color:var(--dim); font-size:10px; }
  .secret-actions { display:flex; gap:6px; }
  .secret-actions .button { min-height:28px; padding:4px 8px; font-size:10px; }
  .storage-card { display:grid; gap:13px; }
  .storage-card-head { display:flex; align-items:center; gap:10px; }
  .storage-card-copy { min-width:0; flex:1; }
  .storage-card-copy strong { display:block; color:var(--txt); font-size:13px; }
  .storage-card-copy small { display:block; margin-top:3px; color:var(--dim); font-size:10.5px; }
  .storage-status { color:var(--txt-soft); font-size:11.5px; line-height:1.5; }
  .storage-oauth { display:grid; gap:9px; padding:12px; border:1px solid var(--accent-border);
                   border-radius:8px; background:var(--accent-faint); }
  .storage-oauth p { margin:0; color:var(--txt-soft); font-size:11.5px; line-height:1.5; }
  .storage-settings { display:grid; gap:13px; }
  .storage-options { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
  .storage-options label { display:flex; align-items:center; gap:6px; color:var(--txt-soft);
                           font-size:11.5px; }
  .storage-options select { min-height:34px; }
  .storage-destination { display:grid; grid-template-columns:minmax(0,1fr) minmax(190px,.6fr);
                         gap:10px; align-items:end; }
  .storage-destination label { color:var(--txt-soft); font-size:11.5px; }
  .storage-destination input, .storage-destination select { width:100%; margin-top:5px; }
  .storage-folder-picker { max-height:300px; overflow:auto; padding:8px;
                           border:1px solid var(--line); border-radius:8px;
                           background:var(--inset-bg); }
  .storage-folder-row { display:flex; align-items:center; gap:6px; min-height:32px; }
  .storage-folder-row label { min-width:0; color:var(--txt); font-size:12px;
                              overflow-wrap:anywhere; }
  .storage-folder-expand { width:27px; min-width:27px; height:27px; padding:0;
                           display:grid; place-items:center; border:0; background:transparent;
                           color:var(--dim); cursor:pointer; }
  .storage-folder-children { margin-left:20px; }
  .storage-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
  .storage-danger { color:var(--red); }
  .storage-notice { margin:0; color:var(--txt-soft); font-size:11.5px; line-height:1.5; }

  /* T167-R: reusable Connector Manage Modal — declarative component blocks. */
  #manage-modal-overlay .modal-panel { width:min(720px,100%); height:auto; max-height:90vh; }
  .manage-modal-heading { display:flex; align-items:center; gap:10px; min-width:0; }
  .manage-modal-heading .manage-modal-titles { min-width:0; display:flex; flex-direction:column; gap:2px; }
  .manage-modal-heading h1 { margin:0; }
  .manage-modal-badges { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
  .manage-blocks { display:flex; flex-direction:column; gap:8px; }
  .manage-block { display:block; }
  /* toggle / select share a left-copy / right-control row. */
  .manage-row { display:flex; align-items:center; gap:12px; min-height:44px;
                padding:8px 10px; border:1px solid var(--line); border-radius:8px;
                background:var(--inset-bg); }
  .manage-row-copy { min-width:0; flex:1; display:flex; flex-direction:column; gap:2px; }
  .manage-row-copy strong { color:var(--txt); font-size:12.5px; }
  .manage-row-copy small { color:var(--dim); font-size:11px; line-height:1.4; }
  .manage-row-control { flex:0 0 auto; display:flex; align-items:center; gap:8px; }
  .manage-row-control select { min-height:34px; }
  /* switch */
  .manage-switch { position:relative; width:40px; height:22px; flex:0 0 auto; }
  .manage-switch input { position:absolute; inset:0; margin:0; opacity:0; cursor:pointer; }
  .manage-switch .track { position:absolute; inset:0; border-radius:999px; background:var(--line);
                          transition:background .15s; }
  .manage-switch .thumb { position:absolute; top:2px; left:2px; width:18px; height:18px;
                          border-radius:50%; background:#fff; transition:transform .15s;
                          box-shadow:0 1px 2px rgba(0,0,0,.3); }
  .manage-switch input:checked + .track { background:var(--blue); }
  .manage-switch input:checked + .track + .thumb { transform:translateX(18px); }
  .manage-switch input:disabled { cursor:default; }
  .manage-switch input:disabled + .track { opacity:.5; }
  /* checklist */
  .manage-checklist { border:1px solid var(--line); border-radius:8px; background:var(--inset-bg); }
  .manage-checklist-head { display:flex; align-items:center; gap:8px; padding:8px 10px;
                           border-bottom:1px solid var(--line); }
  .manage-checklist-count { flex:1; min-width:0; color:var(--txt-soft); font-size:11.5px; }
  .manage-checklist-head .button { padding:3px 8px; font-size:11px; }
  .manage-checklist-body { max-height:300px; overflow:auto; padding:4px; }
  .manage-check-row { display:flex; align-items:center; gap:8px; min-height:34px; padding:2px 6px;
                      border-radius:6px; }
  .manage-check-row:hover { background:var(--accent-faint); }
  .manage-check-row > input[type="checkbox"] { flex:0 0 auto; margin:0; }
  .manage-check-row > label { flex:1; min-width:0; color:var(--txt); font-size:12px;
                              overflow-wrap:anywhere; cursor:pointer; }
  .manage-check-expand { flex:0 0 auto; width:27px; height:27px; padding:0; display:grid;
                         place-items:center; border:0; background:transparent; color:var(--dim);
                         cursor:pointer; font-size:12px; }
  .manage-check-children { margin-left:22px; }
  .manage-check-info { padding:8px 12px; color:var(--txt-soft); font-size:11.5px; line-height:1.5; }
  .manage-check-error { padding:10px 12px; display:flex; flex-direction:column; gap:8px;
                        align-items:flex-start; color:var(--red); font-size:11.5px; line-height:1.5; }
  /* notice / scopes / keystatus / danger */
  .manage-notice { margin:0; padding:9px 11px; border:1px solid var(--line); border-radius:8px;
                   background:var(--muted-bg); color:var(--txt-soft); font-size:11.5px; line-height:1.5; }
  .manage-scopes { display:flex; flex-wrap:wrap; gap:6px; padding:2px 0; }
  .manage-keystatus { display:flex; flex-direction:column; gap:3px; padding:9px 11px;
                      border:1px solid var(--line); border-radius:8px; background:var(--inset-bg); }
  .manage-keystatus strong { color:var(--txt); font-size:12.5px; }
  .manage-keystatus small { color:var(--dim); font-size:11px; }
  .manage-authorization { display:grid; gap:5px; padding:10px 11px;
                          border:1px solid var(--line); border-radius:8px;
                          background:var(--inset-bg); }
  .manage-authorization strong { color:var(--txt); font-size:12.5px; }
  .manage-authorization small { color:var(--dim); font-size:11px; line-height:1.4; }
  .manage-authorization input { width:100%; min-width:0; }
  .manage-danger { margin-top:4px; padding:11px; border:1px solid var(--danger-border, var(--line));
                   border-radius:8px; background:var(--warning-soft, transparent); }
  .manage-danger-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
  .manage-danger-copy { min-width:0; flex:1; display:flex; flex-direction:column; gap:2px; }
  .manage-danger-copy strong { color:var(--red); font-size:12.5px; }
  .manage-danger-copy small { color:var(--dim); font-size:11px; line-height:1.4; }
  .manage-danger .button { flex:0 0 auto; }
  #manage-modal-footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end;
                         gap:8px; padding:14px 18px; border-top:1px solid var(--line); }
  #manage-modal-footer:empty { display:none; }
  #manage-modal-result { margin:6px 0 0; color:var(--txt-soft); font-size:11.5px; line-height:1.5;
                         min-height:0; }
  #manage-modal-result:empty { display:none; }

  /* T174c: Manage-models modal body (searchable checkbox catalog). */
  .model-manage { display:flex; flex-direction:column; gap:10px; }
  .model-manage-toolbar { display:flex; align-items:center; gap:10px; }
  .model-manage-search { flex:1; min-width:0; min-height:34px; padding:6px 10px;
                         border:1px solid var(--line); border-radius:8px;
                         color:var(--txt); font-size:12.5px; }
  .model-manage-loading { flex:0 0 auto; color:var(--dim); font-size:11px; }
  .model-manage-list { max-height:66vh; overflow:auto; display:flex; flex-direction:column; gap:8px; }
  .model-manage-group { border:1px solid var(--line); border-radius:8px; background:var(--inset-bg);
                        overflow:hidden; flex:0 0 auto; min-height:min-content; }
  .model-manage-grouplabel { padding:6px 10px 3px; color:var(--dim); font-size:10px; font-weight:700;
                             letter-spacing:.04em; text-transform:uppercase; }
  .model-manage-row { display:flex; align-items:center; gap:10px; padding:8px 10px;
                      min-height:min-content; flex:0 0 auto; cursor:pointer; }
  .model-manage-row:hover { background:var(--accent-faint); }
  .model-manage-check { position:absolute; width:1px; height:1px; opacity:0;
                        pointer-events:none; }
  .model-manage-toggle { flex:0 0 auto; width:34px; height:20px; padding:2px;
                         border:1px solid var(--line); border-radius:99px;
                         background:var(--muted-bg); transition:.15s ease; }
  .model-manage-toggle::after { content:""; display:block; width:14px; height:14px;
                                border-radius:50%; background:var(--dim);
                                transition:transform .15s ease,background .15s ease; }
  .model-manage-check:checked + .model-manage-toggle {
    border-color:var(--accent-border); background:var(--accent-soft);
  }
  .model-manage-check:checked + .model-manage-toggle::after {
    transform:translateX(14px); background:var(--cyan);
  }
  .model-manage-check:focus-visible + .model-manage-toggle {
    outline:2px solid var(--cyan); outline-offset:2px;
  }
  .model-manage-check:disabled + .model-manage-toggle { opacity:.42; }
  .model-manage-row.is-unavailable { cursor:default; }
  .model-manage-copy { min-width:0; flex:1 1 auto; display:flex; flex-direction:column; gap:2px; }
  .model-manage-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
                       color:var(--txt); font-size:12.5px; }
  .model-manage-row.is-unavailable .model-manage-name { color:var(--dim); }
  .model-manage-reason { min-width:0; overflow-wrap:anywhere;
                         color:var(--dim); font-size:11px; }
  .model-manage-cost { color:var(--dim); font-size:10.5px; line-height:1.35;
                       overflow-wrap:anywhere; }
  .model-manage-reason .model-key-link { color:var(--cyan); text-decoration:underline;
                                         background:transparent; border:0; padding:0; cursor:pointer;
                                         font:inherit; }
  .model-manage-row .engine-chip { flex:0 0 auto; pointer-events:none; }
  .model-manage-empty { margin:4px 2px; color:var(--dim); font-size:11.5px; }
  .custom-providers { border:1px solid var(--line); border-radius:9px; padding:10px;
                      background:var(--card); display:flex; flex-direction:column; gap:9px; }
  .custom-provider-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
  .custom-provider-head strong { font-size:12.5px; }
  .custom-provider-head small { color:var(--dim); font-size:10.5px; }
  .custom-provider-cards { display:flex; flex-direction:column; gap:6px; }
  .custom-provider-card-wrap { border:1px solid var(--line); border-radius:7px;
                               background:var(--inset-bg); }
  .custom-provider-card { display:flex; align-items:center; gap:9px; padding:8px; }
  .custom-provider-copy { min-width:0; flex:1; display:flex; flex-direction:column; gap:2px; }
  .custom-provider-copy strong { font-size:12px; }
  .custom-provider-copy small { color:var(--dim); font-size:10.5px;
                                overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .custom-provider-action { border:0; background:transparent; color:var(--dim);
                            font-size:11px; cursor:pointer; }
  .custom-provider-action:hover { color:var(--cyan); }
  .custom-provider-action.danger:hover { color:var(--red); }
  .custom-provider-inline { display:flex; align-items:flex-end; gap:7px; padding:8px;
                            border-top:1px solid var(--line); }
  .custom-provider-inline label { min-width:0; flex:1; display:flex;
                                  flex-direction:column; gap:4px; color:var(--dim);
                                  font-size:10.5px; }
  .custom-provider-inline input { min-width:0; height:32px; padding:5px 8px;
                                  border:1px solid var(--line); border-radius:7px;
                                  color:var(--txt);
                                  font-size:11.5px; }
  .custom-provider-confirm { align-items:center; color:var(--txt); font-size:11.5px; }
  .custom-provider-confirm span { flex:1; }
  .custom-provider-add summary { color:var(--cyan); font-size:11.5px; cursor:pointer; }
  .custom-provider-form { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:8px; }
  .custom-provider-form input { min-width:0; height:32px; padding:5px 8px;
                                border:1px solid var(--line); border-radius:7px;
                                color:var(--txt); font-size:11.5px; }
  .custom-provider-form .wide { grid-column:1/-1; }
  .custom-provider-actions { grid-column:1/-1; display:flex; justify-content:flex-end;
                             align-items:center; gap:7px; }

  .panel-divider { position:relative; z-index:3; width:6px; flex:0 0 6px;
                   cursor:col-resize; touch-action:none; background:transparent; }
  .panel-divider::after { content:''; position:absolute; top:0; bottom:0;
                          left:calc(50% - .5px); width:1px; background:var(--line);
                          transition:background .15s,box-shadow .15s; }
  .panel-divider:hover::after, .panel-divider:focus-visible::after,
  .panel-divider.resizing::after { background:var(--blue);
                                   box-shadow:0 0 9px var(--accent-medium); }
  body.panel-resizing { cursor:col-resize; user-select:none; }
  body.panel-resizing * { cursor:col-resize !important; }

  .overlay { display:none; position:fixed; z-index:var(--cc-z-modal);
             top:var(--cc-visual-viewport-top,0px); right:0; bottom:auto; left:0;
             width:100%; height:var(--cc-visual-viewport-height,100dvh);
             background:var(--overlay-bg);
             padding:max(5vh,env(safe-area-inset-top,0px))
               max(5vw,env(safe-area-inset-right,0px))
               max(5vh,env(safe-area-inset-bottom,0px))
               max(5vw,env(safe-area-inset-left,0px));
             align-items:center; justify-content:center; }
  .overlay.open { display:flex; }
  .file-delete-dialog { width:min(430px,100%); padding:22px; border:1px solid var(--line);
                        border-radius:10px; background:var(--panel-bg); box-shadow:var(--shadow); }
  .file-delete-dialog h2 { margin:0 0 12px; }
  .file-delete-name { color:var(--txt); overflow-wrap:anywhere; }
  .file-delete-dialog .hint { margin-bottom:18px; }
  .file-delete-result { min-height:20px; margin:10px 0; color:var(--red); font-size:12px; }
  .panel { width:min(1180px,100%); height:min(90vh,860px); background:var(--panel-bg);
           border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow);
           position:relative;
           display:flex; flex-direction:column; overflow:hidden; }
  .panel-header { padding:15px 18px; border-bottom:1px solid var(--line);
                  display:flex; align-items:center; justify-content:space-between; gap:16px; }
  .session-heading { min-width:0; display:flex; align-items:center; gap:10px; }
  .session-heading h1 { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .panel-actions { display:flex; align-items:center; gap:8px; }
  .close { width:34px; height:34px; border:1px solid var(--line); border-radius:8px;
           background:transparent; color:var(--dim); font-size:20px; line-height:1; }
  .close:hover { color:var(--txt); border-color:var(--blue); }
  .detail-body { min-height:0; flex:1; display:grid; grid-template-columns:minmax(0,1fr) 300px; }
  .conversation { min-height:0; display:flex; flex-direction:column; background:var(--conversation-shell); }
  #transcript { min-height:0; flex:1; overflow:auto; display:flex;
                flex-direction:column; align-items:stretch; gap:11px; padding:22px 24px;
                background:var(--conversation-bg); color:var(--txt); }
  .transcript-empty { margin:auto; color:var(--dim); font-size:13px; }
  .transcript-empty.transcript-unavailable,
  .transcript-empty.transcript-load-failure {
    display:grid; justify-items:center; align-content:center; gap:12px;
    max-width:36ch; text-align:center; padding:18px 12px;
  }
  .transcript-empty-copy { margin:0; color:var(--txt); font-size:14px; line-height:1.5; }
  .transcript-lifecycle-facts {
    margin:0; display:grid; grid-template-columns:auto 1fr; gap:4px 12px;
    text-align:left; font-size:12px;
  }
  .transcript-lifecycle-facts dt { margin:0; color:var(--dim); font-weight:600; }
  .transcript-lifecycle-facts dd { margin:0; color:var(--txt); }
  .transcript-load-retry { margin-top:4px; }
  .terminal-capture { min-height:100%; display:flex; flex-direction:column; gap:10px; }
  .terminal-capture-header { flex:0 0 auto; display:flex; align-items:baseline;
                             justify-content:space-between; gap:12px; padding:9px 11px;
                             border:1px solid var(--line); border-radius:7px;
                             background:var(--muted-bg); }
  .terminal-capture-label { color:var(--txt); font:700 11px/1.3 var(--mono);
                            letter-spacing:.04em; text-transform:uppercase; }
  .terminal-capture-detail { color:var(--dim); font:10px/1.4 var(--mono); text-align:right; }
  .terminal-capture-output { min-height:0; flex:1 1 auto; overflow:auto; margin:0;
                             padding:14px; border:1px solid var(--line); border-radius:7px;
                             background:var(--inset-bg); color:var(--txt-soft);
                             font:12px/1.55 var(--mono); white-space:pre-wrap;
                             overflow-wrap:anywhere; }
  .terminal-capture-warning { flex:0 0 auto; display:flex; align-items:center;
                              justify-content:space-between; gap:10px; padding:9px 11px;
                              border:1px solid var(--warning-border); border-radius:7px;
                              background:var(--warning-soft); color:var(--amber);
                              font-size:12px; line-height:1.4; }
  .terminal-capture-warning p { margin:0; }
  .terminal-capture-retry { flex:0 0 auto; }
  @media (max-width:700px) {
    .terminal-capture-header { align-items:flex-start; flex-direction:column; gap:3px; }
    .terminal-capture-detail { text-align:left; }
    .terminal-capture-warning { align-items:flex-start; flex-direction:column; }
  }
  .transcript-block { flex:0 0 auto; max-width:86ch; border:1px solid var(--line); border-radius:8px;
                      white-space:pre-wrap; overflow-wrap:anywhere; }
  .transcript-agent { align-self:flex-start; padding:13px 15px;
                      background:var(--transcript-agent-bg); color:var(--txt);
                      font:14.5px/1.68 -apple-system,'Segoe UI',Roboto,sans-serif;
                      box-shadow:0 5px 18px var(--shadow-color); }
  .transcript-operator { align-self:flex-end; width:min(78%,76ch); padding:12px 15px;
                         border-color:var(--accent-medium); border-right:3px solid var(--cyan);
                         background:var(--accent-soft); color:var(--operator-txt);
                         font:14px/1.62 -apple-system,'Segoe UI',Roboto,sans-serif; }
  .transcript-operator.pending { border-right-color:var(--amber); opacity:.82; }
  .transcript-operator.failed { border-right-color:var(--red); background:var(--danger-soft); }
  .transcript-role { display:block; margin-bottom:5px; color:var(--cyan);
                     font:600 10px/1.2 ui-monospace,Menlo,monospace;
                     letter-spacing:.08em; text-transform:uppercase; }
  .transcript-agent .transcript-role { color:var(--green); }
  .transcript-operator.pending .transcript-role { color:var(--amber); }
  .transcript-operator.failed .transcript-role { color:var(--red); }
  .message-retry { margin-top:9px; padding:4px 8px; font-size:11px; }
  /* Operator prose is plain text: a grid gap separates its lines, and
     pre-wrap keeps the newlines the operator actually typed.
     Agent prose is RENDERED MARKDOWN, where both rules fight the markup —
     the 9px grid gap is added ON TOP of each block's own margin, and
     pre-wrap re-renders the source newlines that markdown has already
     turned into paragraphs and list items. Together they produced the
     doubled vertical space the operator reported under headings and
     between list items. Markdown spacing is owned by the markdown rules. */
  .transcript-prose:not(.transcript-markdown) { display:grid; gap:9px; }
  .transcript-prose:not(.transcript-markdown) p { white-space:pre-wrap; }
  .transcript-markdown { max-width:none; margin:0; color:inherit; line-height:inherit;
                         white-space:normal; }
  /* T288: never let a data-URI QR (or any markdown image) fill the transcript. */
  .transcript-markdown img {
    display:block; width:auto; max-width:min(12rem, 100%); max-height:12rem;
    height:auto; object-fit:contain; margin:0.4em 0;
  }
  .transcript-markdown > :first-child { margin-top:0; }
  .transcript-markdown > :last-child { margin-bottom:0; }
  .transcript-markdown h1 { font-size:1.35em; }
  .transcript-markdown h2 { font-size:1.22em; }
  .transcript-markdown h3, .transcript-markdown h4,
  .transcript-markdown h5, .transcript-markdown h6 { font-size:1.08em; }
  .transcript-markdown table { max-width:100%; }
  .transcript-heading { margin:2px 0 0; color:var(--txt); font-weight:750;
                        letter-spacing:-.01em; line-height:1.35; }
  .transcript-heading[data-level="1"], .transcript-heading[data-level="2"] {
    font-size:16px;
  }
  .transcript-heading[data-level="3"], .transcript-heading[data-level="4"] {
    font-size:14.5px;
  }
  .transcript-heading[data-level="5"], .transcript-heading[data-level="6"] {
    color:var(--txt-soft); font-size:13.5px;
  }
  .transcript-list { display:grid; gap:4px; margin:0; padding-left:22px; }
  .transcript-list li::marker { color:var(--cyan); }
  .transcript-code { max-width:100%; overflow:auto; margin:1px 0; padding:10px 12px;
                     border:1px solid var(--line); border-radius:6px;
                     background:var(--code-deep); color:var(--txt-soft); white-space:pre;
                     font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace; }
  .transcript-tool { flex:0 0 auto; align-self:stretch; max-width:100%; border:1px solid var(--line);
                     border-radius:7px; background:var(--tool-bg); color:var(--tool-txt);
                     font:12px/1.5 ui-monospace,Menlo,monospace; overflow:hidden; }
  .transcript-tool summary { min-height:34px; display:flex; align-items:center; gap:8px;
                             padding:7px 11px; cursor:pointer; list-style:none; }
  .transcript-tool summary::-webkit-details-marker { display:none; }
  .transcript-tool summary::before { content:'›'; flex:0 0 auto; color:var(--slate);
                                     transition:transform .14s ease; }
  .transcript-tool[open] summary::before { transform:rotate(90deg); color:var(--cyan); }
  .transcript-tool summary:hover { background:var(--accent-faint); color:var(--tool-hover-txt); }
  .transcript-tool-title { min-width:0; flex:1; overflow:hidden; text-overflow:ellipsis;
                           white-space:nowrap; }
  .transcript-tool-count { flex:0 0 auto; color:var(--slate); font-size:10px; }
  .transcript-tool pre { max-height:300px; overflow:auto; margin:0; padding:10px 13px;
                         border-top:1px solid var(--line); background:var(--tool-pre-bg);
                         color:var(--tool-pre-txt); white-space:pre;
                         font:11.5px/1.55 ui-monospace,Menlo,monospace; }
  .transcript-kickoff { flex:0 0 auto; align-self:stretch; max-width:100%; border:1px dashed var(--line);
                        border-radius:7px; background:var(--transcript-agent-bg); color:var(--txt-soft);
                        overflow:hidden; }
  .transcript-kickoff summary { min-height:34px; display:flex; align-items:center; gap:8px;
                                padding:7px 11px; cursor:pointer; list-style:none;
                                font:12px/1.5 ui-monospace,Menlo,monospace; }
  .transcript-kickoff summary::-webkit-details-marker { display:none; }
  .transcript-kickoff summary::before { content:'›'; flex:0 0 auto; color:var(--slate);
                                        transition:transform .14s ease; }
  .transcript-kickoff[open] summary::before { transform:rotate(90deg); color:var(--cyan); }
  .transcript-kickoff summary:hover { background:var(--accent-faint); }
  .transcript-kickoff-label { min-width:0; flex:1; overflow:hidden; text-overflow:ellipsis;
                              white-space:nowrap; letter-spacing:.02em; text-transform:uppercase;
                              font-size:10.5px; color:var(--slate); }
  .transcript-kickoff-hint { flex:0 0 auto; color:var(--slate); font-size:10px; }
  .transcript-kickoff pre { max-height:340px; overflow:auto; margin:0; padding:11px 13px;
                            border-top:1px dashed var(--line); background:var(--tool-pre-bg);
                            color:var(--tool-pre-txt); white-space:pre-wrap; word-break:break-word;
                            font:12px/1.6 ui-monospace,Menlo,monospace; }
  .sdk-tool-group > summary::before { display:none; }
  .sdk-tool-group-chevron { flex:0 0 auto; color:var(--slate); transition:transform .14s ease; }
  .sdk-tool-group[open] > summary .sdk-tool-group-chevron { transform:rotate(90deg); color:var(--cyan); }
  .sdk-tool-history { display:grid; border-top:1px solid var(--line); }
  .sdk-tool-history > .sdk-tool-event { border:0; border-radius:0; background:transparent; }
  .sdk-tool-history > .sdk-tool-event + .sdk-tool-event { border-top:1px solid var(--line); }
  .sdk-tool-history > .sdk-tool-event > summary { min-height:30px; padding:5px 13px; }
  .sdk-tool-history > .sdk-tool-event > pre { max-height:240px; border-top:1px dashed var(--line); }
  /* A supervisor re-send after a restart: a lifecycle fact between turns, not
     a message. Deliberately the quietest thing in the transcript. */
  .sdk-resume-marker { flex:0 0 auto; align-self:stretch; margin:0; padding:0 2px;
                       display:flex; align-items:center; gap:9px;
                       color:var(--muted); font:11px/1.6 ui-monospace,Menlo,monospace;
                       letter-spacing:.03em; }
  .sdk-resume-marker::before,
  .sdk-resume-marker::after { content:''; flex:1 1 auto; height:1px;
                              background:var(--line); }
  .sdk-step-activity { flex:0 0 auto; align-self:stretch; max-width:100%; overflow:hidden;
                       border:1px solid var(--accent-border); border-radius:7px;
                       background:var(--tool-bg); color:var(--tool-txt);
                       font:12px/1.5 ui-monospace,Menlo,monospace; }
  .sdk-live-activity-header { min-height:36px; display:flex; align-items:center; gap:9px;
                              width:100%; padding:7px 11px; border:0; background:transparent;
                              color:var(--blue); text-align:left; cursor:pointer; font:inherit; }
  .sdk-live-activity-header:hover { background:var(--accent-faint); }
  .sdk-live-activity-spinner { width:12px; height:12px; flex:0 0 auto; border:2px solid var(--line);
                               border-top-color:var(--cyan); border-radius:50%;
                               animation:sdk-activity-spin .8s linear infinite; }
  .sdk-step-activity:not(.is-active) .sdk-live-activity-spinner { display:none; }
  .sdk-live-activity-title { min-width:0; flex:1; color:var(--tool-hover-txt); }
  .sdk-live-activity-count { flex:0 0 auto; color:var(--slate); font-size:10px; }
  .sdk-step-chevron { flex:0 0 auto; color:var(--slate); transition:transform .14s ease; }
  .sdk-step-activity.is-expanded .sdk-step-chevron { transform:rotate(90deg); color:var(--cyan); }
  .sdk-step-feed-shell { position:relative; border-top:1px solid var(--line);
                         background:var(--tool-pre-bg); }
  .sdk-step-feed { max-height:108px; overflow:auto; overscroll-behavior:contain;
                   scrollbar-gutter:stable; }
  .sdk-step-activity.is-expanded .sdk-step-feed { max-height:340px; }
  .sdk-step-row { display:grid; grid-template-columns:20px minmax(0,1fr) auto; gap:7px;
                  align-items:start; padding:7px 11px; color:var(--tool-pre-txt); }
  .sdk-step-row + .sdk-step-row { border-top:1px solid var(--line-faint); }
  .sdk-step-row:last-child { animation:sdk-activity-line-in .18s ease-out; }
  .sdk-step-icon { color:var(--cyan); text-align:center; }
  .sdk-step-copy { min-width:0; }
  .sdk-step-primary { display:flex; min-width:0; gap:6px; }
  .sdk-step-name { flex:0 0 auto; color:var(--tool-hover-txt); font-weight:700; }
  .sdk-step-summary { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .sdk-step-result { display:none; margin:4px 0 0; color:var(--slate); white-space:pre-wrap;
                     overflow-wrap:anywhere; font-size:11px; }
  .sdk-step-activity.is-expanded .sdk-step-result { display:block; }
  .sdk-step-status { color:var(--green); font-size:10px; white-space:nowrap; }
  .sdk-step-status.is-running { color:var(--amber); }
  .sdk-step-status.is-interrupted { color:var(--amber); }
  .sdk-step-status.is-failed { color:var(--red); }
  .sdk-step-jump { position:absolute; right:8px; bottom:7px; z-index:1;
                   padding:4px 8px; border:1px solid var(--accent-border); border-radius:999px;
                   background:var(--paper); color:var(--blue); box-shadow:0 4px 12px var(--shadow-color);
                   cursor:pointer; font:700 10px/1.3 -apple-system,'Segoe UI',Roboto,sans-serif; }
  .sdk-step-jump[hidden] { display:none; }
  .sdk-plan { flex:0 0 auto; align-self:stretch; overflow:hidden;
              border:1px solid var(--accent-border); border-radius:8px;
              background:var(--accent-faint); }
  .sdk-plan-header { min-height:36px; display:flex; align-items:center; gap:10px;
                     padding:8px 12px; border-bottom:1px solid var(--line); }
  .sdk-plan-header strong { flex:1; color:var(--txt); font-size:12.5px; }
  .sdk-plan-progress { color:var(--dim); font:10.5px/1.3 ui-monospace,Menlo,monospace; }
  .sdk-plan-list { display:grid; gap:7px; margin:0; padding:10px 12px; list-style:none; }
  .sdk-plan-item { display:grid; grid-template-columns:18px minmax(0,1fr); gap:7px;
                   color:var(--txt-soft); font-size:12.5px; line-height:1.45; }
  .sdk-plan-item.completed { color:var(--dim); }
  .sdk-plan-item.interrupted { color:var(--amber); }
  .sdk-plan-item.completed .sdk-plan-text { text-decoration:line-through; }
  .sdk-plan-mark { color:var(--cyan); font-weight:750; text-align:center; }
  .sdk-plan-item.completed .sdk-plan-mark { color:var(--green); }
  .sdk-plan-empty { margin:0; padding:10px 12px; color:var(--dim); font-size:12px; }
  .sdk-reasoning { border-color:var(--line-faint); background:var(--muted-bg); }
  .sdk-reasoning summary { color:var(--dim); font-family:-apple-system,'Segoe UI',Roboto,sans-serif; }
  .sdk-reasoning-copy { max-height:240px; overflow:auto; padding:10px 13px;
                        border-top:1px solid var(--line); color:var(--tool-pre-txt);
                        white-space:pre-wrap; overflow-wrap:anywhere;
                        font:12px/1.55 -apple-system,'Segoe UI',Roboto,sans-serif; }
  .sdk-exit-success { color:var(--green); }
  .sdk-exit-failed { color:var(--red); }
  @keyframes sdk-activity-spin { to { transform:rotate(360deg); } }
  @keyframes sdk-activity-line-in {
    from { opacity:0; transform:translateY(5px); }
    to { opacity:1; transform:none; }
  }
  @media (prefers-reduced-motion:reduce) {
    .sdk-live-activity-spinner, .sdk-step-row:last-child { animation:none; }
  }
  .transcript-divider { flex:0 0 auto; align-self:stretch; display:flex; align-items:center; gap:10px;
                        color:var(--slate); font:10px/1.3 ui-monospace,Menlo,monospace;
                        text-align:center; }
  .transcript-divider::before, .transcript-divider::after {
    content:''; flex:1; height:1px; background:var(--line);
  }
  .agent-status { flex:0 0 auto; min-height:30px; display:flex; align-items:center;
                  justify-content:center; border-top:1px solid var(--line); padding:6px 20px;
                  background:var(--status-bg); color:var(--dim); font-size:12px; }
  .agent-status[data-state="working"] { color:var(--blue); }
  .agent-status[data-state="needs_input"] { color:var(--amber); }
  .agent-status[data-state="awaiting_approval"] {
    color:var(--amber);
    background:var(--warning-soft);
    font-weight:700;
  }
  .composer { flex:0 0 auto; border-top:1px solid var(--line); padding:13px 15px 15px;
              background:var(--composer-bg); }
  .composer-header { display:flex; align-items:center; justify-content:space-between; gap:12px;
                     margin-bottom:7px; }
  .composer-header label { margin:0; }
  .stream-status { color:var(--dim); font-size:11px; }
  .stream-status.live { color:var(--green); }
  #instruction-text { min-height:104px; max-height:320px; resize:none; overflow-y:hidden; }
  .file-reference-input { position:relative; }
  .file-reference-chips { display:flex; flex-wrap:wrap; gap:5px; margin:0 0 6px; }
  .file-reference-chip { display:inline-flex; align-items:center; gap:5px; max-width:100%;
                         border:1px solid var(--accent-border); border-radius:99px;
                         background:var(--accent-soft); color:var(--cyan); padding:3px 7px;
                         font:10.5px/1.3 ui-monospace,Menlo,monospace; }
  .file-reference-chip span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .file-reference-chip button { width:16px; height:16px; flex:0 0 auto; padding:0; border:0;
                                background:transparent; color:var(--dim); line-height:1; }
  /* T251c: every composer uses the shared caret-positioned top-layer picker. */
  .file-reference-picker { position:fixed; z-index:2147483647; inset:auto; margin:0;
                           width:min(30rem, calc(100vw - 1rem));
                           max-height:min(18rem,45vh); overflow:auto; padding:5px;
                           border:1px solid var(--accent-border); border-radius:8px;
                           background:var(--card-2); box-shadow:var(--shadow); }
  .file-reference-option { display:flex; width:100%; align-items:center; gap:8px; padding:8px;
                           border:0; border-radius:6px; text-align:left; }
  .file-reference-option:hover, .file-reference-option.active {
    background:var(--accent-soft); color:var(--cyan);
  }
  .file-reference-option strong { flex:0 0 auto; max-width:42%; overflow:hidden;
                                  text-overflow:ellipsis; white-space:nowrap; font-size:11.5px; }
  .file-reference-option small { min-width:0; overflow:hidden; text-overflow:ellipsis;
                                 white-space:nowrap; color:var(--dim);
                                 font:9.5px/1.3 ui-monospace,Menlo,monospace; }
  .file-reference-empty { padding:9px; color:var(--dim); font-size:11px; }
  /* T174b — composer bottom-left [engine badge][model picker] cluster. */
  /* T193 correction 4: the [engine badge][model picker] cluster sits in the
     composer actions row (align-items:center) beside the Send button. Keep it
     vertically centred with the row — no vertical offset — and let flex spacing
     push it left of the actions, so the badge + picker align cleanly with Send. */
  .model-cluster { position:relative; display:inline-flex; align-items:center; gap:6px;
                   min-width:0; }
  .session-view-model-cluster { min-width:0; }
  .session-view-model-cluster-card { gap:4px; pointer-events:none; }
  .session-view-model-cluster-card .engine-chip { max-width:118px; }
  .session-view-model-cluster-card .external-session-unknown { max-width:none; }
  .session-view-model-cluster-card .model-picker-button {
    max-width:126px; min-height:0; padding:3px 7px; cursor:default;
  }
  .session-view-model-cluster-card .model-picker-name {
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  }
  .composer .model-cluster { margin-right:0; }
  .dock-composer-row .model-cluster { margin-right:0; }
  /* T302: identical fixed grammar — attach | badge+picker | spacer | Send; never wrap. */
  .actions.composer-actions { display:flex; align-items:center; flex-wrap:nowrap; gap:8px; min-width:0; }
  .actions.composer-actions > .composer-attachment-actions { flex:0 0 auto; }
  .actions.composer-actions > .model-cluster { flex:1 1 auto; min-width:0; margin-right:0; }
  .actions.composer-actions > #instruct-submit { flex:0 0 auto; margin-left:auto; }
  .model-cluster[hidden] { display:none; }
  .model-cluster .engine-chip { flex:0 0 auto; }
  /* T192b: the assistant-pane cluster sits mid-page (not at the composer bottom),
     so its menu drops downward and it carries the surrounding block spacing. */
  .assistant-model-cluster { margin:8px 0 2px; }
  .assistant-model-cluster .model-menu { bottom:auto; top:calc(100% + 6px); }
  .hn-openworker { background:var(--accent-soft); }
  .hn-openworker .card-engine-mark { color:var(--cyan); }
  /* T194: engine badge as a secondary selector (only when >1 capable engine). */
  .engine-cluster-badge { position:relative; display:inline-flex; }
  .model-engine-badge-btn { display:inline-flex; align-items:center; gap:3px; padding:0;
                            border:0; background:none; cursor:pointer; }
  .model-engine-badge-btn .engine-chip { cursor:pointer; }
  .model-engine-badge-btn:hover .engine-chip { border-color:var(--accent-border); }
  .model-engine-caret { flex:0 0 auto; color:var(--dim); font-size:8px; }
  .model-engines { display:inline-flex; align-items:center; gap:4px; flex-wrap:wrap; }
  .engine-menu { position:absolute; z-index:80; bottom:calc(100% + 6px); left:0;
                 min-width:170px; padding:4px; border:1px solid var(--accent-border);
                 border-radius:10px; background:var(--card-2); box-shadow:var(--shadow); }
  .assistant-model-cluster .engine-menu { bottom:auto; top:calc(100% + 6px); }
  .engine-menu[hidden] { display:none; }
  .engine-menu-title { padding:5px 8px 3px; color:var(--dim); font-size:10px;
                       font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
  .engine-option { display:flex; width:100%; align-items:center; gap:8px; padding:7px 8px;
                   border:0; border-radius:7px; background:none; color:var(--txt-soft);
                   font-size:12px; text-align:left; cursor:pointer; }
  .engine-option:hover, .engine-option:focus-visible { background:var(--accent-soft);
                   color:var(--txt); outline:none; }
  .engine-option.active { color:var(--txt); }
  .engine-option-check { margin-left:auto; color:var(--accent); opacity:0; }
  .engine-option.active .engine-option-check { opacity:1; }
  .model-picker-button { display:inline-flex; align-items:center; gap:5px; min-width:0;
                         max-width:200px; padding:3px 9px; border:1px solid var(--line);
                         border-radius:99px; background:var(--input-bg); color:var(--txt-soft);
                         font-size:11.5px; font-weight:600; line-height:1.4;
                         flex:0 1 auto; overflow:hidden; }
  .model-picker-button:hover:not(:disabled) { color:var(--txt); border-color:var(--accent-border); }
  .model-picker-button[aria-expanded="true"] { color:var(--txt); border-color:var(--accent-border); }
  .model-picker-button:disabled { cursor:default; opacity:.65; }
  .model-picker-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .model-picker-caret { flex:0 0 auto; color:var(--dim); font-size:9px;
                        display:inline-flex; align-items:center; }
  .model-picker-caret.model-picker-lock { font-size:0; line-height:0; }
  .model-picker-caret.model-picker-lock svg { display:block; }
  .model-picker-button--managed { cursor:default; }
  .model-picker-button--managed:hover:not(:disabled) {
    color:var(--txt-soft); border-color:var(--line);
  }
  /* T266: prose managed-note is retired from the control row; keep the class
     hidden so any stale DOM node cannot wrap the composer. */
  .model-managed-note { display:none !important; }
  .model-menu-note--managed { display:flex; flex-direction:column; gap:4px;
                              padding:10px 11px 8px; }
  .model-menu-managed-title { color:var(--txt); font-size:12.5px; font-weight:650; }
  .model-menu-managed-copy { color:var(--dim); font-size:11px; line-height:1.4;
                             white-space:normal; }
  .model-menu { position:absolute; z-index:75; bottom:calc(100% + 6px); right:0;
                width:min(320px,calc(100vw - 24px)); max-height:340px;
                overflow:auto; padding:5px;
                border:1px solid var(--accent-border); border-radius:10px;
                background:var(--card-2); box-shadow:var(--shadow); }
  .composer .model-menu, .dock-composer .model-menu { left:0; right:auto; }
  .model-menu[hidden] { display:none; }
  .model-menu-search-label { position:sticky; z-index:1; top:-5px; display:block;
                             margin:0; padding:6px; background:var(--card-2);
                             color:var(--dim); font-size:10.5px; }
  .model-menu-search { margin-top:4px; padding:7px 8px; font-size:11.5px; }
  .model-menu-group { padding:2px 0; }
  .model-menu-group + .model-menu-group { border-top:1px solid var(--line-faint); margin-top:2px; }
  .model-menu-label { padding:6px 9px 3px; color:var(--dim); font-size:10px; font-weight:700;
                      letter-spacing:.04em; text-transform:uppercase; }
  .model-option { display:flex; width:100%; align-items:center; gap:8px; padding:8px 9px;
                  border:0; border-radius:7px; text-align:left; background:transparent;
                  color:var(--txt); }
  .model-option:hover:not(:disabled), .model-option.active:not(:disabled) {
    background:var(--accent-soft); color:var(--cyan);
  }
  .model-option:disabled { cursor:default; color:var(--dim); }
  .model-option-main { min-width:0; flex:1 1 auto; display:flex; flex-direction:column; gap:2px; }
  .model-option-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
                       font-size:12.5px; font-weight:600; }
  .model-option-reason { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
                         font-size:10.5px; color:var(--dim); }
  .model-option-cost { color:var(--dim); font-size:10.5px; line-height:1.35;
                       white-space:normal; }
  .model-option-reason .model-key-link { color:var(--cyan); text-decoration:underline;
                                         background:none; border:0; padding:0; font:inherit; cursor:pointer; }
  .model-option .engine-chip { flex:0 0 auto; pointer-events:none; }
  /* T193 correction 3: a deliberate, aligned selected indicator rather than a bare
     floating ✓ — a fixed-size chip that only shows its glyph on the active row. */
  .model-option-check { flex:0 0 auto; display:inline-flex; align-items:center;
                        justify-content:center; width:18px; height:18px; border-radius:50%;
                        font-size:11px; line-height:1; color:transparent; }
  .model-option.active:not(:disabled) .model-option-check {
    color:var(--cyan); background:var(--accent-soft);
  }
  .model-menu-footer { border-top:1px solid var(--line-faint); margin-top:2px; padding-top:2px; }
  .model-menu-manage { display:flex; width:100%; align-items:center; padding:8px 9px; border:0;
                       border-radius:7px; text-align:left; background:transparent;
                       color:var(--dim); font-size:12px; }
  .model-menu-note { padding:5px 9px 3px; color:var(--dim); font-size:10.5px; }
  /* T291 — fresh-session disclosure stays in the model cluster; it never
     becomes a post-composer strip. */
  .session-view-model-cluster { flex-wrap:nowrap; }
  .model-start-new-trigger { flex:0 0 auto; min-height:0; max-width:220px; padding:4px 7px;
                             color:var(--dim); font-size:11px; line-height:1.25;
                             text-align:left; white-space:nowrap; }
  .model-start-new-menu { position:absolute; z-index:80; bottom:calc(100% + 6px); left:0;
                          width:min(340px,calc(100vw - 28px)); padding:9px;
                          border:1px solid var(--accent-border); border-radius:10px;
                          background:var(--card-2); box-shadow:var(--shadow); }
  .model-inline-status { min-width:0; max-width:190px; overflow:hidden; color:var(--dim);
                         font-size:10.5px; text-overflow:ellipsis; white-space:nowrap; }
  @media (max-width:520px) {
    #manage-modal-overlay { width:100vw; max-width:100vw; padding:12px; }
    #manage-modal-overlay .modal-panel { width:100%; max-width:100%; }
    #manage-modal-overlay .panel-header,
    #manage-modal-footer { padding-left:12px; padding-right:12px; }
    #manage-modal-overlay .modal-body { padding:14px 12px; }
    .custom-provider-card { flex-wrap:wrap; }
    .custom-provider-copy { flex-basis:100%; }
    .custom-provider-inline { align-items:stretch; flex-direction:column; }
    .custom-provider-inline .button { width:100%; }
    .custom-provider-confirm span { width:100%; }
    .custom-provider-form { grid-template-columns:1fr; }
    .custom-provider-form .wide,
    .custom-provider-actions { grid-column:1; }
  }

/* T296 — history affordance is an out-of-flow overlay (see .transcript-history-pill). */
