
      /* Phase 2A · circular ring spinner with Cortex triangle in the
         center.  Earlier impl spun the triangle directly · looked glitchy
         because it's asymmetric.  New impl: outer ring rotates smoothly,
         triangle stays put.  Per Steven 2026-05-24. */
      @keyframes cortex-ring-spin {
        to { transform: rotate(360deg); }
      }
      .cortex-spin {
        display: inline-block; position: relative;
        width: 16px; height: 16px;
        vertical-align: middle;
      }
      .cortex-spin::before {
        content: ''; position: absolute; inset: 0;
        border: 1.6px solid rgba(255,255,255,0.25);
        border-top-color: white;
        border-radius: 50%;
        animation: cortex-ring-spin 0.9s linear infinite;
      }
      .cortex-spin svg {
        position: absolute; width: 8px; height: 8px;
        top: 50%; left: 50%; transform: translate(-50%, -50%);
        display: block; opacity: 0.85;
      }
      .gdrive-progress-bar {
        height: 3px; width: 100%; background: rgba(184,92,62,0.12);
        border-radius: 2px; margin-top: 12px; overflow: hidden;
        position: relative;
      }
      .gdrive-progress-bar::before {
        content: ''; position: absolute; top: 0; bottom: 0; left: 0;
        width: 40%; background: var(--clay); border-radius: 2px;
        animation: gdrive-progress-slide 1.6s ease-in-out infinite;
        will-change: transform;
      }
      @keyframes gdrive-progress-slide {
        0%   { transform: translateX(-100%); }
        100% { transform: translateX(250%); }
      }
      .gdrive-modal-close {
        position: absolute; top: 11px; right: 13px; width: 30px; height: 30px;
        display: inline-flex; align-items: center; justify-content: center;
        border: 0; border-radius: 50%; background: transparent; color: var(--ink-3);
        font-size: 22px; line-height: 1; cursor: pointer;
      }
      .gdrive-modal-close:hover { background: rgba(0,0,0,0.05); color: var(--ink); }
      #lc-modal-gdrive .lc-modal { position: relative; }
      #lc-modal-gdrive .lc-modal-head { padding-right: 52px; }
      #gdrive-elapsed { margin-right: auto; font-family: 'JetBrains Mono', monospace; font-size: 10.5px; color: var(--ink-4); }
      #gdrive-retry-btn[hidden],#gdrive-stop-btn[hidden] { display: none !important; }
      #cortex-ingest-statusbar {
        position: fixed; top: 12px; left: 298px; right: 18px; height: 54px;
        box-sizing: border-box; z-index: 8500; display: grid;
        grid-template-columns:auto minmax(0,1fr) auto auto auto; align-items: center; gap: 10px;
        padding: 8px 10px 8px 13px; border: 1px solid rgba(42,38,34,0.18);
        border-radius: 10px; background: rgba(255,255,255,0.97);
        box-shadow: 0 8px 28px rgba(42,38,34,0.18); font-family: 'Inter', sans-serif;
        backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
      }
      #cortex-ingest-statusbar[hidden] { display: none !important; }
      .cortex-ingest-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--clay); box-shadow: 0 0 0 4px rgba(184,92,62,0.12); }
      #cortex-ingest-statusbar[data-status="complete"] .cortex-ingest-dot { background: var(--sage-ink); box-shadow: 0 0 0 4px rgba(93,122,66,0.14); }
      #cortex-ingest-statusbar[data-status="error"] .cortex-ingest-dot { background: #a5342d; box-shadow: 0 0 0 4px rgba(165,52,45,0.14); }
      #cortex-ingest-statusbar[data-status="heartbeat_delayed"] .cortex-ingest-dot { background: #a87926; box-shadow: 0 0 0 4px rgba(168,121,38,0.14); }
      #cortex-ingest-statusbar[data-connection="unavailable"] .cortex-ingest-dot { background: #a87926; box-shadow: 0 0 0 4px rgba(168,121,38,0.14); }
      .cortex-ingest-copy { min-width: 0; }
      .cortex-ingest-title { display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
      .cortex-ingest-stage { margin-top:2px;font-size:10.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
      .cortex-ingest-time { font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--ink-4);white-space:nowrap; }
      .cortex-ingest-action { border:1px solid var(--border-2);border-radius:6px;background:#fff;color:var(--ink-2);padding:6px 9px;font:600 10.5px 'Inter',sans-serif;cursor:pointer;white-space:nowrap; }
      .cortex-ingest-action.primary { background:var(--ink);border-color:var(--ink);color:#fff; }
      #cortex-ingest-cycle[hidden],#cortex-ingest-open[hidden],#cortex-ingest-dismiss[hidden] { display:none!important; }
      @media (max-width: 720px) {
        #cortex-ingest-statusbar { left: 12px; right: 12px; grid-template-columns:auto minmax(0,1fr) auto; }
        #cortex-ingest-time,#cortex-ingest-cycle { display:none; }
        #cortex-ingest-dismiss { display:none!important; }
      }
      @media (prefers-reduced-motion: reduce) {
        .cortex-spin::before { animation: none; border-color: rgba(255,255,255,0.65); }
        .gdrive-progress-bar::before { animation: none; transform: none; width: 100%; opacity: 0.55; }
      }
