/* ── Preflight compat ───────────────────────────────── */
/* Replaces the base reset the Tailwind browser runtime used to inject. Zero specificity, so every rule below wins. */
:where(html) { line-height: 1.5; -webkit-text-size-adjust: 100%; tab-size: 4; }
*, ::before, ::after { border: 0 solid; }
:where(h1, h2, h3, h4, h5, h6) { font-size: inherit; font-weight: inherit; }
:where(a) { color: inherit; text-decoration: inherit; }
:where(b, strong) { font-weight: bolder; }
:where(table) { text-indent: 0; border-color: inherit; border-collapse: collapse; }
:where(ol, ul, menu) { list-style: none; }
:where(img, svg, video, canvas, audio, iframe, embed, object) { display: block; vertical-align: middle; }
:where(img, video) { max-width: 100%; height: auto; }
:where(button, input, select, optgroup, textarea) { font: inherit; font-feature-settings: inherit; letter-spacing: inherit; color: inherit; border-radius: 0; background-color: transparent; opacity: 1; }
:where(textarea) { resize: vertical; }
::placeholder { opacity: 1; color: color-mix(in oklab, currentColor 50%, transparent); }
:where(summary) { display: list-item; }
:where([hidden]:not([hidden='until-found'])) { display: none !important; }

/* ── Reset & Base ───────────────────────────────────── */
    *,
    *::before,
    *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
      font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    }

    /* ── CSS Variables ──────────────────────────────────── */
    :root {
      --bg: #0d1117;
      --bg2: #161b22;
      --bg3: #1c2333;
      --bg4: #21262d;
      --bg5: #30363d;
      --bd: #30363d;
      --bd2: #484f58;
      --tx: #e6edf3;
      --tx2: #8b949e;
      --tx3: #6e7681;
      --ac: #14b8a6;
      --ac2: #0d9488;
      --acd: rgba(20, 184, 166, .15);
      --gn: #3fb950;
      --gnd: rgba(63, 185, 80, .12);
      --rd: #f85149;
      --rdd: rgba(248, 81, 73, .12);
      --yw: #d29922;
      --ywd: rgba(210, 153, 34, .12);
      --r: 6px;
      --r2: 10px;
      --r3: 14px;
      --sh: 0 8px 32px rgba(0, 0, 0, .45)
    }

    body.light {
      --bg: #f9fafb;
      --bg2: #ffffff;
      --bg3: #f3f4f6;
      --bg4: #e5e7eb;
      --bg5: #d1d5db;
      --bd: #e5e7eb;
      --bd2: #d1d5db;
      --tx: #111827;
      --tx2: #4b5563;
      --tx3: #9ca3af;
      --ac: #0e7490;
      --ac2: #155e75;
      --acd: rgba(14, 116, 144, .1);
      --gn: #059669;
      --gnd: rgba(5, 150, 105, .1);
      --rd: #dc2626;
      --rdd: rgba(220, 38, 38, .1);
      --yw: #d97706;
      --ywd: rgba(217, 119, 6, .1);
      --sh: 0 4px 20px rgba(0, 0, 0, .06)
    }

    /* ── Body ───────────────────────────────────────────── */
    body {
      font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
      font-size: 13px;
      background: var(--bg);
      color: var(--tx);
      height: 100vh;
      overflow: hidden;
      display: flex;
      flex-direction: column;
    }

    /* ── Scrollbar ──────────────────────────────────────── */
    ::-webkit-scrollbar {
      width: 5px;
      height: 5px
    }

    ::-webkit-scrollbar-track {
      background: transparent
    }

    ::-webkit-scrollbar-thumb {
      background: var(--bd2);
      border-radius: 3px
    }

    ::-webkit-scrollbar-thumb:hover {
      background: var(--ac)
    }

    /* ── BRAND LOGO ──────────────────────────────────────── */
    .bii-logo {
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
      font-weight: 900;
      letter-spacing: -.06em;
      line-height: .9;
      color: var(--tx);
      display: inline-block;
      user-select: none;
      font-feature-settings: 'kern' 1;
    }

    .bii-logo.sm {
      font-size: 20px
    }

    .bii-logo.md {
      font-size: 28px
    }

    .bii-logo.lg {
      font-size: 44px;
      letter-spacing: -.07em
    }

    /* ── AUTH SCREEN — MINIMAL LANDING PAGE ─────────────── */
    @keyframes fadeIn {
      from {
        opacity: 0;
        transform: translateY(8px)
      }

      to {
        opacity: 1;
        transform: none
      }
    }

    @keyframes floatSoft {

      0%,
      100% {
        transform: translate(0, 0)
      }

      50% {
        transform: translate(0, -12px)
      }
    }

    @keyframes shimmer {
      0% {
        background-position: -200% 0
      }

      100% {
        background-position: 200% 0
      }
    }

    #auth-screen {
      position: fixed;
      inset: 0;
      z-index: 100;
      display: flex;
      overflow: hidden;
      background: #0d1117 !important;
      animation: fadeIn .4s ease forwards;
    }

    body.light #auth-screen {
      background: #f9fafb !important;
    }

    /* Soft mesh gradient background */
    #auth-screen::before {
      content: '';
      position: absolute;
      inset: 0;
      pointer-events: none;
      background:
        radial-gradient(ellipse 80% 60% at 15% 30%, rgba(20, 184, 166, .10), transparent 60%),
        radial-gradient(ellipse 70% 50% at 85% 70%, rgba(167, 139, 250, .08), transparent 55%),
        radial-gradient(ellipse 60% 40% at 50% 100%, rgba(63, 185, 80, .06), transparent 60%);
    }

    body.light #auth-screen::before {
      background:
        radial-gradient(ellipse 80% 60% at 15% 30%, rgba(9, 105, 218, .08), transparent 60%),
        radial-gradient(ellipse 70% 50% at 85% 70%, rgba(167, 139, 250, .06), transparent 55%);
    }

    /* ── LEFT: Hero ── */
    .auth-hero {
      flex: 1.1;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: flex-end; /* Align content towards the center split */
      padding: 64px 80px;
      position: relative;
      z-index: 1;
      min-width: 0;
    }

    .auth-hero-inner {
      width: 100%;
      max-width: 520px; /* Constrain content width */
    }

    @media(max-width:900px) {
      .auth-hero {
        display: none
      }
    }

    .auth-hero-logo {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      margin-bottom: 64px;
    }

    .auth-hero-logo .lg-ver {
      font-size: 10px;
      font-weight: 600;
      color: var(--ac);
      background: var(--acd);
      border: 1px solid rgba(20, 184, 166, .3);
      border-radius: 4px;
      padding: 2px 6px;
      letter-spacing: .04em;
      margin-top: 6px;
    }

    .auth-hero h1 {
      font-size: clamp(36px, 4.2vw, 54px);
      font-weight: 800;
      line-height: 1.05;
      color: var(--tx);
      margin-bottom: 20px;
      letter-spacing: -.025em;
      max-width: 520px;
    }

    .auth-hero h1 .grad {
      background: linear-gradient(120deg, var(--ac) 0%, #a78bfa 60%, #3fb950 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

    .auth-hero p.lead {
      font-size: 15px;
      color: var(--tx2);
      line-height: 1.65;
      max-width: 440px;
      margin-bottom: 48px;
    }

    /* Feature list — minimal */
    .auth-features {
      display: flex;
      flex-direction: column;
      gap: 20px;
      max-width: 440px;
    }

    .auth-feat {
      display: flex;
      align-items: flex-start;
      gap: 14px
    }

    .auth-feat-dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: linear-gradient(135deg, var(--ac), #a78bfa);
      flex-shrink: 0;
      margin-top: 8px;
      box-shadow: 0 0 0 3px rgba(20, 184, 166, .12);
    }

    .auth-feat-text strong {
      font-size: 14px;
      font-weight: 600;
      color: var(--tx);
      display: block;
      margin-bottom: 2px;
    }

    .auth-feat-text span {
      font-size: 13px;
      color: var(--tx3);
      line-height: 1.55;
    }

    /* Bottom credit line */
    .auth-hero-bottom {
      margin-top: 56px;
      display: flex;
      align-items: center;
      gap: 10px;
      font-size: 12px;
      color: var(--tx3);
    }

    .auth-hero-bottom .dot {
      width: 4px;
      height: 4px;
      border-radius: 50%;
      background: var(--gn);
      box-shadow: 0 0 6px var(--gn);
      animation: floatSoft 2s ease-in-out infinite
    }

    /* ── RIGHT: Form panel ── */
    .auth-panel {
      flex: 1;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: flex-start; /* Align content towards the center split */
      padding: 40px 80px;
      position: relative;
      z-index: 1;
    }

    @media(max-width:900px) {
      .auth-panel {
        width: 100%;
        padding: 32px 20px
      }
    }

    @media(min-width:901px) {
      .auth-panel {
        border-left: 1px solid var(--bd);
        background: linear-gradient(180deg, transparent 0%, rgba(255, 255, 255, .015) 100%);
      }

      body.light .auth-panel {
        background: linear-gradient(180deg, rgba(255, 255, 255, .5) 0%, rgba(255, 255, 255, .8) 100%);
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
      }
    }

    .auth-panel-inner {
      width: 100%;
      max-width: 380px
    }

    /* Mobile logo */
    .auth-mobile-logo {
      display: none;
      text-align: center;
      margin-bottom: 32px
    }

    @media(max-width:900px) {
      .auth-mobile-logo {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 8px
      }
    }

    .auth-panel-title {
      font-size: 28px;
      font-weight: 800;
      color: var(--tx);
      margin-bottom: 8px;
      letter-spacing: -.03em;
    }

    .auth-panel-sub {
      font-size: 14px;
      color: var(--tx2);
      margin-bottom: 36px;
      line-height: 1.5;
    }

    .auth-card {
      background: transparent;
      border: none;
      padding: 0;
      width: 100%;
      box-shadow: none;
    }

    /* Legacy compat */
    .auth-wrap {
      display: contents
    }

    .auth-logo {
      display: none
    }

    /* ── Mandirigroup Google OAuth Button ── */
    .btn-mandiri-oauth {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 12px;
      width: 100%;
      padding: 11px 16px;
      border-radius: var(--r);
      border: 1.5px solid var(--bd);
      background: var(--bg2);
      color: var(--tx);
      font-size: 13.5px;
      font-weight: 600;
      text-decoration: none;
      cursor: pointer;
      transition: all .2s ease;
      box-shadow: 0 1px 3px rgba(0,0,0,.06);
      position: relative;
      user-select: none;
      box-sizing: border-box;
    }
    .btn-mandiri-oauth:hover {
      border-color: var(--ac);
      background: var(--acd);
      color: var(--tx);
      transform: translateY(-1px);
      box-shadow: 0 4px 14px rgba(20, 184, 166, .16);
    }
    .btn-mandiri-oauth:active {
      transform: translateY(0);
    }
    .oauth-divider {
      display: flex;
      align-items: center;
      text-align: center;
      margin: 18px 0 16px;
      color: var(--tx3);
      font-size: 11px;
      text-transform: uppercase;
      letter-spacing: .06em;
      font-weight: 600;
    }
    .oauth-divider::before,
    .oauth-divider::after {
      content: '';
      flex: 1;
      border-bottom: 1px solid var(--bd);
    }
    .oauth-divider::before {
      margin-right: 12px;
    }
    .oauth-divider::after {
      margin-left: 12px;
    }

    /* Auth tabs */
    .atabs {
      display: flex;
      border-bottom: 1px solid var(--bd);
      margin-bottom: 20px;
      gap: 0
    }

    .atab {
      flex: 1;
      padding: 12px;
      text-align: center;
      font-size: 14px;
      font-weight: 500;
      color: var(--tx2);
      cursor: pointer;
      border-bottom: 2px solid var(--bd);
      margin-bottom: -1px;
      transition: all .2s;
    }

    .atab:hover {
      color: var(--tx)
    }

    .atab.on {
      color: var(--ac);
      border-color: var(--ac);
      font-weight: 700
    }

    .aform {
      display: flex;
      flex-direction: column;
      gap: 12px
    }

    /* Error box */
    .aerr {
      background: var(--rdd);
      border: 1px solid var(--rd);
      color: var(--rd);
      padding: 9px 13px;
      border-radius: var(--r);
      font-size: 12px;
      display: none;
      animation: fadeIn .2s ease;
    }

    .aerr.on {
      display: block
    }

    .albl {
      font-size: 11px;
      font-weight: 600;
      color: var(--tx2);
      display: block;
      margin-bottom: 5px;
      letter-spacing: .03em;
      text-transform: uppercase
    }

    /* Inputs */
    .ainp {
      width: 100%;
      background: var(--bg3);
      border: 1px solid transparent;
      color: var(--tx);
      border-radius: 8px;
      padding: 12px 14px;
      font-size: 14px;
      outline: none;
      transition: all .15s;
    }

    .ainp:focus {
      border-color: var(--ac);
      background: var(--bg2);
      box-shadow: 0 0 0 4px var(--acd)
    }

    /* Custom background for auth inputs to match image */
    #lem { background: rgba(235, 242, 255, 0.8); color: #111; }
    body.light #lem { background: #ebf2ff; }
    #lpw, #ruu, #rem, #rpw { background: var(--bg3); }
    body.light #lpw, body.light #ruu, body.light #rem, body.light #rpw { background: #f3f4f6; }
    
    body:not(.light) #lem { color: var(--tx); background: rgba(20, 184, 166, 0.1); }
    body:not(.light) #lpw { color: var(--tx); }

    .ainp::placeholder {
      color: var(--tx3)
    }

    .asep {
      border-top: 1px solid var(--bd);
      margin-top: 18px;
      padding-top: 16px
    }

    .ahint {
      font-size: 10px;
      color: var(--tx3);
      margin-top: 5px;
      line-height: 1.5
    }

    /* Hide workspace elements by default to prevent ghosting during loading */
    #topbar, #app {
      display: none !important;
    }

    /* Show them ONLY when the body has .authenticated class */
    body.authenticated #topbar,
    body.authenticated #app {
      display: flex !important;
    }

    /* ── TOPBAR ─────────────────────────────────────────── */
    #topbar {
      height: 48px;
      display: flex;
      align-items: center;
      gap: 5px;
      padding: 0 12px;
      background: var(--bg2);
      border-bottom: 1px solid var(--bd);
      flex-shrink: 0;
      z-index: 50;
      box-shadow: 0 1px 8px rgba(0, 0, 0, .2);
    }

    .brand {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-shrink: 0;
      user-select: none;
    }

    .brand .bii-logo {
      background: linear-gradient(135deg, var(--tx) 0%, var(--ac) 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

    .bver {
      font-size: 9px;
      background: var(--acd);
      color: var(--ac);
      border: 1px solid rgba(20, 184, 166, .3);
      border-radius: 4px;
      padding: 2px 6px;
      font-weight: 700;
      letter-spacing: .04em;
      -webkit-text-fill-color: var(--ac);
    }

    .tsep {
      width: 1px;
      height: 20px;
      background: var(--bd);
      flex-shrink: 0;
      margin: 0 3px
    }

    /* Environment pill */
    .env-pill {
      display: flex;
      align-items: center;
      gap: 6px;
      background: var(--bg3);
      border: 1px solid var(--bd);
      border-radius: 8px;
      padding: 5px 10px;
      cursor: pointer;
      font-size: 11px;
      position: relative;
      flex-shrink: 0;
      user-select: none;
      transition: all .15s;
    }

    .env-pill:hover {
      border-color: var(--ac);
      background: var(--acd)
    }

    .edot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: var(--gn);
      flex-shrink: 0;
      box-shadow: 0 0 6px var(--gn)
    }

    #ename {
      font-size: 11px;
      font-weight: 700;
      color: var(--ac)
    }

    /* Project / Workspace pill */
    .proj-pill {
      display: flex;
      align-items: center;
      gap: 6px;
      background: var(--bg3);
      border: 1px solid var(--bd2);
      color: var(--tx);
      padding: 5px 12px;
      border-radius: 8px;
      font-size: 11.5px;
      font-weight: 600;
      cursor: pointer;
      flex-shrink: 0;
      user-select: none;
      transition: all .15s ease;
    }

    .proj-pill:hover {
      background: var(--bg4);
      border-color: var(--ac);
      color: var(--ac);
      box-shadow: 0 0 0 2px var(--acd);
    }

    .sp {
      flex: 1
    }

    /* Icon buttons */
    .ibtn {
      width: 32px;
      height: 32px;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: var(--r);
      border: 1px solid transparent;
      background: transparent;
      color: var(--tx2);
      cursor: pointer;
      flex-shrink: 0;
      transition: all .15s;
    }

    .ibtn:hover {
      background: var(--bg3);
      border-color: var(--bd);
      color: var(--tx)
    }

    .ibtn.on {
      background: var(--acd);
      border-color: rgba(20, 184, 166, .4);
      color: var(--ac)
    }

    /* ── ENV DROPDOWN ───────────────────────────────────── */
    #env-drop {
      position: absolute;
      top: calc(100% + 6px);
      left: 0;
      min-width: 220px;
      background: var(--bg2);
      border: 1px solid var(--bd);
      border-radius: var(--r2);
      padding: 6px;
      box-shadow: 0 16px 48px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .03);
      z-index: 300;
      display: none;
      animation: dropIn .15s ease;
    }

    #env-drop.on {
      display: block
    }

    @keyframes dropIn {
      from {
        opacity: 0;
        transform: translateY(-4px)
      }

      to {
        opacity: 1;
        transform: none
      }
    }

    .ei {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 8px 10px;
      border-radius: var(--r);
      cursor: pointer;
      font-size: 12px;
      transition: .12s;
    }

    .ei:hover {
      background: var(--bg3)
    }

    .ei.on {
      background: var(--acd);
      color: var(--ac)
    }

    /* ── LAYOUT ─────────────────────────────────────────── */
    #app {
      display: flex;
      flex: 1;
      overflow: hidden
    }

    #sidebar {
      width: 260px;
      min-width: 150px;
      background: var(--bg2);
      border-right: 1px solid var(--bd);
      display: flex;
      flex-direction: column;
      overflow: hidden;
      flex-shrink: 0;
    }

    #sb-rsz {
      width: 6px;
      margin-left: -3px;
      margin-right: -3px;
      cursor: col-resize;
      background: transparent;
      flex-shrink: 0;
      position: relative;
      z-index: 20;
      transition: background .12s;
    }

    #sb-rsz::after {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      left: 2px;
      width: 2px;
      background: transparent;
      transition: background .15s;
    }

    #sb-rsz:hover,
    #sb-rsz.drag {
      background: var(--acd);
    }

    #sb-rsz:hover::after,
    #sb-rsz.drag::after {
      background: var(--ac);
    }

    body.resizing-col,
    body.resizing-col * {
      cursor: col-resize !important;
      user-select: none !important;
    }

    body.resizing-row,
    body.resizing-row * {
      cursor: row-resize !important;
      user-select: none !important;
    }

    #center {
      display: flex;
      flex-direction: column;
      flex: 1;
      overflow: hidden;
      min-width: 0
    }

    #center.lr {
      flex-direction: row
    }

    /* ── SIDEBAR ────────────────────────────────────────── */
    .sbhd {
      display: flex;
      align-items: center;
      padding: 10px 10px 6px;
      gap: 4px;
      border-bottom: 1px solid var(--bd);
    }

    .sbtitle {
      font-size: 10px;
      font-weight: 800;
      color: var(--tx3);
      text-transform: uppercase;
      letter-spacing: .08em;
      flex: 1;
    }

    .sblist {
      flex: 1;
      overflow-y: auto;
      padding: 6px 6px
    }

    /* Collection header */
    .col-hd {
      display: flex;
      align-items: center;
      gap: 5px;
      padding: 6px 8px;
      border-radius: var(--r);
      cursor: pointer;
      font-size: 12px;
      font-weight: 600;
      color: var(--tx2);
      transition: all .12s;
      user-select: none;
    }

    .col-hd:hover {
      background: var(--bg3);
      color: var(--tx)
    }

    .col-dot {
      width: 9px;
      height: 9px;
      border-radius: 3px;
      flex-shrink: 0
    }

    .col-arr {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 12px;
      height: 12px;
      transition: transform .2s;
      flex-shrink: 0;
      color: var(--tx3)
    }

    .col-arr.open {
      transform: rotate(90deg)
    }

    /* Request rows */
    .req-row {
      display: flex;
      align-items: center;
      gap: 5px;
      padding: 5px 8px 5px 18px;
      border-radius: var(--r);
      cursor: pointer;
      font-size: 12px;
      color: var(--tx2);
      transition: all .1s;
      user-select: none;
      border-left: 2px solid transparent;
    }

    .req-row:hover {
      background: var(--bg3);
      color: var(--tx);
      border-left-color: var(--bd2)
    }

    .req-row.on {
      background: var(--acd);
      color: var(--ac);
      border-left-color: var(--ac);
    }

    .req-row.dragging {
      opacity: .3
    }

    .req-row.drag-over {
      border-top: 2px solid var(--ac)
    }

    .drag-handle {
      color: var(--tx3);
      cursor: grab;
      opacity: 0;
      transition: opacity .1s;
      font-size: 10px;
      flex-shrink: 0;
    }

    .req-row:hover .drag-handle {
      opacity: .7
    }

    .drag-handle:hover {
      color: var(--tx)
    }

    /* Method badges — pill style */
    .mb {
      font-size: 9px;
      font-weight: 800;
      padding: 2px 6px;
      border-radius: 999px;
      min-width: 42px;
      text-align: center;
      flex-shrink: 0;
      letter-spacing: .03em;
    }

    .GET {
      background: rgba(34, 197, 94, .15);
      color: #22c55e
    }

    .POST {
      background: rgba(59, 130, 246, .15);
      color: #3b82f6
    }

    .PUT {
      background: rgba(245, 158, 11, .15);
      color: #f59e0b
    }

    .PATCH {
      background: rgba(168, 85, 247, .15);
      color: #a855f7
    }

    .DELETE {
      background: rgba(239, 68, 68, .15);
      color: #ef4444
    }

    .HEAD,
    .OPTIONS {
      background: rgba(148, 163, 184, .15);
      color: #94a3b8
    }

    /* ── REQUEST PANEL ──────────────────────────────────── */
    #req-panel {
      background: var(--bg2);
      display: flex;
      flex-direction: column;
      min-height: 160px;
      overflow: hidden;
      flex: 1;
    }

    #center.lr #req-panel {
      width: 50%;
      height: 100%;
      min-height: 0;
      border-right: 1px solid var(--bd);
      border-bottom: none;
      overflow: hidden;
      flex: none;
    }

    /* URL bar */
    .urlbar {
      display: flex;
      gap: 8px;
      padding: 10px 12px;
      align-items: center;
    }

    .msel-wrap {
      position: relative;
      flex-shrink: 0;
    }
    .msel-btn {
      background: var(--bg3);
      border: 1px solid var(--bd);
      border-radius: var(--r2);
      padding: 7px 10px;
      font-size: 12px;
      font-weight: 800;
      cursor: pointer;
      display: flex;
      align-items: center;
      gap: 6px;
      user-select: none;
      min-width: 100px;
      transition: border-color .15s;
    }
    .msel-btn:hover { border-color: var(--ac); }
    .msel-drop {
      position: absolute;
      top: calc(100% + 4px);
      left: 0;
      background: var(--bg2);
      border: 1px solid var(--bd);
      border-radius: var(--r);
      box-shadow: 0 6px 24px rgba(0,0,0,.22);
      z-index: 300;
      min-width: 120px;
      overflow: hidden;
      display: none;
      animation: fadeIn .1s ease;
    }
    .msel-drop.on { display: block; }
    .msel-opt {
      padding: 9px 14px;
      font-size: 12px;
      font-weight: 700;
      cursor: pointer;
      transition: background .1s;
    }
    .msel-opt:hover { background: var(--bg3); }
    .msel-opt[data-m="GET"]     { color: #22c55e; }
    .msel-opt[data-m="POST"]    { color: #3b82f6; }
    .msel-opt[data-m="PUT"]     { color: #f59e0b; }
    .msel-opt[data-m="PATCH"]   { color: #a855f7; }
    .msel-opt[data-m="DELETE"]  { color: #ef4444; }
    .msel-opt[data-m="HEAD"]    { color: #94a3b8; }
    .msel-opt[data-m="OPTIONS"] { color: #64748b; }

    /* URL bar with variable-highlight overlay */
    .urlp-wrap {
      flex: 1;
      position: relative;
      min-width: 0;
      display: flex;
    }
    /* Both .urlp and .urlp-hl MUST share these exact text-metric properties */
    .urlp, .urlp-hl {
      font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
      font-size: 13px;
      font-weight: 400;
      font-style: normal;
      font-variant: normal;
      font-variant-ligatures: none;
      font-feature-settings: normal;
      letter-spacing: 0;
      word-spacing: 0;
      text-indent: 0;
      text-transform: none;
      line-height: 20px; /* fixed pixels — avoids sub-pixel diff between input vs div */
      text-rendering: geometricPrecision;
      -webkit-font-smoothing: antialiased;
    }
    .urlp-hl {
      position: absolute;
      top: 0; left: 0; right: 0; bottom: 0;
      padding: 8px 12px;
      color: var(--tx);
      white-space: pre;
      overflow: hidden;
      pointer-events: none;
      border: 1px solid transparent;
      border-radius: var(--r2);
      box-sizing: border-box;
      z-index: 2;
    }
    .urlp-hl .var {
      color: #2563eb;
      font-weight: inherit;       /* MUST match input — bold would shift caret */
      pointer-events: auto;
      cursor: text;
      border-radius: 3px;
      padding: 0;                 /* MUST be 0 — any padding shifts neighbours */
      background: rgba(37, 99, 235, 0.10);
      /* Use box-shadow instead of padding for the "chip" look (no layout shift) */
      box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.25);
    }
    .urlp-hl .var:hover { background: rgba(37, 99, 235, 0.22); }
    body:not(.light) .urlp-hl .var { background: rgba(96, 165, 250, 0.14); box-shadow: 0 0 0 1px rgba(96, 165, 250, 0.30); }
    body:not(.light) .urlp-hl .var:hover { background: rgba(96, 165, 250, 0.26); }
    body:not(.light) .urlp-hl .var { color: #60a5fa; }
    .urlp-hl .var.miss {
      color: var(--rd);
      text-decoration: underline wavy var(--rd);
      text-decoration-skip-ink: none;
    }
    .urlp-hl .var.pathvar { color: #a855f7; }
    body:not(.light) .urlp-hl .var.pathvar { color: #c084fc; }

    .urlp {
      flex: 1;
      background: var(--bg3);
      border: 1px solid var(--bd);
      color: transparent;
      caret-color: var(--tx);
      border-radius: var(--r2);
      padding: 8px 12px;
      outline: none;
      min-width: 0;
      width: 100%;
      box-sizing: border-box;
      transition: border-color .15s, box-shadow .15s;
      position: relative;
      z-index: 1;
      margin: 0;
      vertical-align: top;
    }
    .urlp::selection { background: var(--acd); color: var(--tx); }

    .urlp:focus {
      border-color: var(--ac);
      box-shadow: 0 0 0 3px var(--acd)
    }

    .urlp::placeholder {
      color: var(--tx3)
    }

    /* Tooltip for variables */
    #var-tooltip {
      position: fixed;
      z-index: 9999;
      background: var(--tx);
      color: var(--bg2);
      padding: 6px 10px;
      border-radius: var(--r);
      font-size: 11px;
      font-family: 'Fira Code','Cascadia Code',monospace;
      pointer-events: none;
      box-shadow: 0 4px 14px rgba(0,0,0,.25);
      max-width: 360px;
      word-break: break-all;
      display: none;
      line-height: 1.4;
    }
    #var-tooltip .vtk { font-weight: 700; opacity: .7; font-size: 10px; text-transform: uppercase; margin-bottom: 2px; }
    #var-tooltip .vtv { color: var(--ac); }
    #var-tooltip.miss .vtv { color: var(--rd); }

    /* Variable autocomplete popup */
    #var-ac {
      position: fixed;
      z-index: 9999;
      background: var(--bg2);
      border: 1px solid var(--bd);
      border-radius: var(--r);
      box-shadow: 0 8px 24px rgba(0,0,0,.20);
      min-width: 240px;
      max-width: 340px;
      max-height: 260px;
      overflow-y: auto;
      display: none;
      padding: 4px;
    }
    #var-ac .ac-item {
      display: flex;
      flex-direction: column;
      padding: 6px 10px;
      border-radius: 4px;
      cursor: pointer;
      font-size: 12px;
    }
    #var-ac .ac-item:hover, #var-ac .ac-item.active { background: var(--acd); }
    #var-ac .ac-k { color: var(--ac); font-family: 'Fira Code', monospace; font-size: 11.5px; font-weight: 600; }
    #var-ac .ac-v { color: var(--tx2); font-size: 10.5px; font-family: 'Fira Code', monospace; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    #var-ac .ac-s { color: var(--tx3); font-size: 9.5px; text-transform: uppercase; letter-spacing: .05em; }
    #var-ac .ac-empty { padding: 12px; text-align: center; color: var(--tx3); font-size: 11px; }

    /* Proxy toggle button */
    #proxy-toggle.on { background: var(--acd); color: var(--ac); border-color: var(--ac); }
    #proxy-toggle.on::after { content: 'PROXY'; font-size: 9px; font-weight: 700; margin-left: 4px; letter-spacing: .03em; }

    /* Code snippet modal */
    #snip-modal .mbd { display: flex; flex-direction: column; gap: 10px; }
    #snip-lang-row { display: flex; gap: 6px; flex-wrap: wrap; }
    #snip-lang-row button.on { background: var(--acd); color: var(--ac); border-color: var(--ac); }
    #snip-out {
      font-family: 'Fira Code', monospace;
      font-size: 11.5px;
      line-height: 1.55;
      background: var(--bg);
      border: 1px solid var(--bd);
      border-radius: var(--r);
      padding: 10px 12px;
      max-height: 360px;
      overflow: auto;
      white-space: pre;
      color: var(--tx);
    }

    .sbtn {
      background: linear-gradient(135deg, var(--ac) 0%, var(--ac2) 100%);
      color: #fff;
      border: none;
      border-radius: var(--r2);
      padding: 8px 20px;
      font-size: 13px;
      font-weight: 700;
      cursor: pointer;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      gap: 6px;
      box-shadow: 0 2px 12px rgba(20, 184, 166, .35);
      transition: all .15s;
    }

    .sbtn:hover {
      background: linear-gradient(135deg, #2dd4bf 0%, var(--ac) 100%);
      box-shadow: 0 4px 18px rgba(20, 184, 166, .55);
      transform: translateY(-1px);
    }

    .sbtn:disabled {
      opacity: .5;
      cursor: not-allowed;
      transform: none;
      box-shadow: none
    }

    /* Request name bar */
    .rnamebar {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 6px 12px 8px;
      border-bottom: 1px solid var(--bd);
    }

    .rname-inp {
      flex: 1;
      background: transparent;
      border: none;
      border-bottom: 1px solid transparent;
      color: var(--tx);
      font-size: 12px;
      font-weight: 600;
      outline: none;
      padding: 3px 4px;
      border-radius: 3px;
      transition: all .15s;
    }

    .rname-inp:hover {
      border-color: var(--bd)
    }

    .rname-inp:focus {
      border-color: var(--ac);
      background: var(--bg3)
    }

    .url-preview {
      padding: 4px 12px 8px;
      font-size: 11px;
      color: var(--tx2);
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      display: none;
      font-family: 'Fira Code','Cascadia Code',monospace;
    }
    .url-preview .var-tag {
      display: inline;
      padding: 1px 4px;
      border-radius: 3px;
      font-weight: 500;
      cursor: help;
    }
    .url-preview .var-tag.ok   { background: var(--gnd); color: var(--gn); }
    .url-preview .var-tag.miss { background: var(--rdd); color: var(--rd); text-decoration: underline wavy; }

    /* ── TABS ───────────────────────────────────────────── */
    .tabs {
      display: flex;
      border-bottom: 1px solid var(--bd);
      padding: 0 10px;
      flex-shrink: 0;
      overflow-x: auto;
      gap: 0;
    }

    .tabs::-webkit-scrollbar {
      height: 0
    }

    .tab {
      padding: 8px 11px;
      font-size: 12px;
      font-weight: 500;
      color: var(--tx2);
      cursor: pointer;
      border-bottom: 2px solid transparent;
      margin-bottom: -1px;
      white-space: nowrap;
      transition: all .15s;
      user-select: none;
    }

    .tab:hover {
      color: var(--tx)
    }

    .tab.on {
      color: var(--ac);
      border-color: var(--ac);
      font-weight: 600
    }

    .tbdg {
      font-size: 9px;
      background: var(--bg5);
      color: var(--tx2);
      border-radius: 999px;
      padding: 1px 6px;
      margin-left: 3px;
      transition: all .15s;
    }

    .tab.on .tbdg,
    .tbdg.on {
      background: var(--ac);
      color: #fff
    }

    /* Response tabs overflow dropdown */
    #res-tabs {
      overflow: visible;
    }
    .res-more-tab-wrap {
      position: relative;
      display: inline-flex;
    }
    #res-more-tab-btn {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      white-space: nowrap;
    }
    #res-more-tab-btn svg {
      flex-shrink: 0;
      transition: transform .15s ease;
    }
    #res-more-tab-btn.on svg {
      color: var(--ac);
    }
    .res-more-tab-drop {
      display: none;
      position: absolute;
      top: 100%;
      left: 0;
      min-width: 145px;
      background: var(--bg2);
      border: 1px solid var(--bd2);
      border-radius: var(--r);
      box-shadow: 0 10px 25px -5px rgba(0,0,0,.4), 0 8px 10px -6px rgba(0,0,0,.3);
      padding: 4px;
      z-index: 120;
    }
    .res-more-tab-drop.on {
      display: block;
    }
    .res-more-item {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 7px 10px;
      font-size: 12px;
      color: var(--tx2);
      border-radius: calc(var(--r) - 2px);
      cursor: pointer;
      transition: all .12s ease;
      white-space: nowrap;
    }
    .res-more-item:hover {
      background: var(--bg3);
      color: var(--tx);
    }
    .res-more-item.on {
      background: var(--acd);
      color: var(--ac);
      font-weight: 600;
    }

    .tbd {
      flex: 1;
      display: flex;
      flex-direction: column;
      overflow-y: auto;
      padding: 12px 12px
    }

    /* ── KV TABLE ───────────────────────────────────────── */
    .kvt {
      width: 100%;
      border-collapse: collapse
    }

    .kvt th {
      font-size: 10px;
      color: var(--tx3);
      font-weight: 700;
      text-transform: uppercase;
      padding: 5px 7px;
      text-align: left;
      border-bottom: 1px solid var(--bd);
      letter-spacing: .04em;
    }

    .kvt td {
      padding: 2px 3px
    }

    .kvi {
      width: 100%;
      background: transparent;
      border: 1px solid transparent;
      color: var(--tx);
      padding: 5px 8px;
      border-radius: 5px;
      font-size: 12px;
      outline: none;
      transition: all .12s;
    }

    .kvi:hover {
      border-color: var(--bd);
      background: var(--bg3)
    }

    .kvi:focus {
      background: var(--bg3);
      border-color: var(--ac);
      box-shadow: 0 0 0 2px var(--acd)
    }

    .kvi.mono {
      font-size: 12px;
    }

    .kvd {
      width: 26px;
      height: 26px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--tx3);
      cursor: pointer;
      border-radius: 5px;
      flex-shrink: 0;
      transition: .12s;
    }

    .kvd:hover {
      color: var(--rd);
      background: var(--rdd)
    }

    .kvc {
      accent-color: var(--ac);
      cursor: pointer;
      flex-shrink: 0
    }

    .ar {
      font-size: 11px;
      color: var(--ac);
      cursor: pointer;
      padding: 5px 8px;
      border-radius: var(--r);
      display: inline-flex;
      align-items: center;
      gap: 4px;
      margin-top: 8px;
      user-select: none;
      transition: .12s;
      font-weight: 500;
    }

    .ar:hover {
      background: var(--acd)
    }

    textarea.ce {
      width: 100%;
      background: var(--bg3);
      border: 1px solid var(--bd);
      color: var(--tx);
      padding: 10px 12px;
      font-size: 12px;
      border-radius: var(--r);
      outline: none;
      resize: vertical;
      line-height: 1.6;
      min-height: 130px;
      transition: border-color .15s;
    }

    .ce:focus {
      border-color: var(--ac)
    }

    textarea.se {
      width: 100%;
      background: #0a0e14;
      border: 1px solid var(--bd);
      color: #e6edf3;
      padding: 10px 12px;
      font-size: 12px;
      border-radius: var(--r);
      outline: none;
      resize: vertical;
      line-height: 1.6;
      min-height: 150px;
      transition: border-color .15s;
    }

    .se:focus {
      border-color: var(--ac)
    }

    /* ── RESIZER ────────────────────────────────────────── */
    .rsz {
      background: transparent;
      flex-shrink: 0;
      position: relative;
      transition: background .12s
    }

    .rsz:hover,
    .rsz.drag {
      background: var(--acd)
    }

    .rsz::after {
      content: '';
      position: absolute;
      background: var(--bd);
      transition: .15s
    }

    .rsz.h {
      height: 4px;
      cursor: row-resize;
      width: 100%
    }

    .rsz.h::after {
      left: 0;
      right: 0;
      top: 1px;
      height: 2px
    }

    .rsz.v {
      width: 4px;
      cursor: col-resize;
      height: 100%
    }

    .rsz.v::after {
      top: 0;
      bottom: 0;
      left: 1px;
      width: 2px
    }

    .rsz:hover::after,
    .rsz.drag::after {
      background: var(--ac)
    }

    /* ── RESPONSE PANEL ─────────────────────────────────── */
    #res-panel {
      flex: 1;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      min-height: 0
    }

    .rtb {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 7px 14px;
      background: var(--bg2);
      border-bottom: 1px solid var(--bd);
      flex-shrink: 0;
      flex-wrap: wrap;
      min-height: 40px;
    }

    /* Status pills — more prominent */
    .stpill {
      font-size: 11px;
      font-weight: 800;
      padding: 3px 10px;
      border-radius: 999px;
      flex-shrink: 0;
      letter-spacing: .04em;
    }

    .s2xx {
      background: var(--gnd);
      color: var(--gn);
      border: 1px solid rgba(63, 185, 80, .3)
    }

    .s3xx {
      background: var(--ywd);
      color: var(--yw);
      border: 1px solid rgba(210, 153, 34, .3)
    }

    .s4xx,
    .s5xx {
      background: var(--rdd);
      color: var(--rd);
      border: 1px solid rgba(248, 81, 73, .3)
    }

    .rmeta {
      font-size: 11px;
      color: var(--tx3)
    }

    .rbw {
      flex: 1;
      overflow: auto
    }

    pre.rp {
      margin: 0;
      padding: 14px;
      font-size: 12px;
      min-height: 100%;
      line-height: 1.6;
      font-family: 'Fira Code', 'Cascadia Code', 'Courier New', monospace !important;
      background: var(--bg2) !important;
      color: var(--tx) !important;
    }
    pre.rp * {
      font-family: 'Fira Code', 'Cascadia Code', 'Courier New', monospace !important;
    }
    /* hljs token overrides for light mode */
    body.light pre.rp .hljs-attr      { color: #986801 }
    body.light pre.rp .hljs-string    { color: #50a14f }
    body.light pre.rp .hljs-number    { color: #986801 }
    body.light pre.rp .hljs-literal   { color: #0184bb }
    body.light pre.rp .hljs-keyword   { color: #a626a4 }
    body.light pre.rp .hljs-punctuation { color: #383a42 }
    /* hljs token overrides for dark mode */
    body:not(.light) pre.rp .hljs-attr      { color: #e06c75 }
    body:not(.light) pre.rp .hljs-string    { color: #98c379 }
    body:not(.light) pre.rp .hljs-number    { color: #d19a66 }
    body:not(.light) pre.rp .hljs-literal   { color: #56b6c2 }
    body:not(.light) pre.rp .hljs-keyword   { color: #c678dd }
    body:not(.light) pre.rp .hljs-punctuation { color: #abb2bf }

    /* ── BODY CODE EDITOR ────────────────────────────────── */
    .body-editor-wrap {
      position: relative;
      flex: 1;
      min-height: 200px;
      overflow: hidden;
      border-radius: var(--r);
      border: 1px solid var(--bd);
      background: var(--bg2);
    }
    .body-editor-wrap:focus-within { border-color: var(--ac); }
    /* Shared metrics — pre & textarea MUST be byte-for-byte identical */
    pre.body-hl,
    textarea.ce-hl {
      position: absolute;
      top: 0; left: 0; right: 0; bottom: 0;
      margin: 0;
      padding: 10px 12px;
      border: 0;
      font-family: 'Fira Code','Cascadia Code','Courier New',monospace !important;
      font-size: 12.5px;
      font-weight: 400;
      line-height: 1.55;
      letter-spacing: 0;
      white-space: pre-wrap;
      word-wrap: break-word;
      overflow-wrap: break-word;
      tab-size: 2;
      -moz-tab-size: 2;
      box-sizing: border-box;
      overflow: auto;
    }
    pre.body-hl {
      pointer-events: none;
      background: transparent !important;
      color: var(--tx);
      z-index: 1;
    }
    pre.body-hl * {
      font-family: inherit !important;
      font-size: inherit !important;
      line-height: inherit !important;
      background: transparent !important;
    }
    textarea.ce-hl {
      background: transparent;
      color: transparent;
      caret-color: var(--ac);
      outline: none;
      resize: none;
      z-index: 2;
    }
    /* Kill hljs default background that ships with the theme stylesheet */
    pre.body-hl .hljs, pre.body-hl code.hljs {
      background: transparent !important;
      padding: 0 !important;
      display: inline !important;
    }
    /* Placeholder for empty editor */
    textarea.ce-hl::placeholder { color: var(--tx3); opacity: 1; }
    /* hljs token overrides — body editor light */
    body.light pre.body-hl .hljs-attr        { color: #986801 }
    body.light pre.body-hl .hljs-string      { color: #50a14f }
    body.light pre.body-hl .hljs-number      { color: #986801 }
    body.light pre.body-hl .hljs-literal     { color: #0184bb }
    body.light pre.body-hl .hljs-keyword     { color: #a626a4 }
    body.light pre.body-hl .hljs-punctuation { color: #383a42 }
    /* hljs token overrides — body editor dark */
    body:not(.light) pre.body-hl .hljs-attr        { color: #e06c75 }
    body:not(.light) pre.body-hl .hljs-string       { color: #98c379 }
    body:not(.light) pre.body-hl .hljs-number       { color: #d19a66 }
    body:not(.light) pre.body-hl .hljs-literal      { color: #56b6c2 }
    body:not(.light) pre.body-hl .hljs-keyword      { color: #c678dd }
    body:not(.light) pre.body-hl .hljs-punctuation  { color: #abb2bf }
    /* body row format button */
    .body-row { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:8px; flex-shrink:0; }
    .body-row-fmt { margin-left:auto; }
    /* Response toolbar active button */
    .res-view-toggle .btn.on { background:var(--acd); color:var(--ac); }

    .resp-srch-bar {
      display: none;
      align-items: center;
      gap: 7px;
      padding: 6px 12px;
      background: var(--bg2);
      border-bottom: 1px solid var(--bd);
      flex-shrink: 0;
    }

    .resp-srch-bar.on {
      display: flex
    }

    /* ── MODALS ─────────────────────────────────────────── */
    .overlay {
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, .75);
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
      z-index: 1000;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 24px 16px;
      pointer-events: auto;
      overflow-y: auto;
      overflow-x: hidden;
      overscroll-behavior: contain;
    }

    .overlay.on {
      display: flex;
      animation: overlayIn .2s ease;
    }

    @keyframes overlayIn {
      from {
        opacity: 0
      }

      to {
        opacity: 1
      }
    }

    .modal {
      position: relative;
      z-index: 1001;
      background: var(--bg2);
      border: 1px solid var(--bd);
      border-radius: var(--r3);
      width: 480px;
      max-width: 100%;
      max-height: min(90vh, calc(100vh - 40px));
      margin: auto;
      display: flex;
      flex-direction: column;
      box-shadow: 0 24px 80px rgba(0, 0, 0, .6), 0 0 0 1px rgba(255, 255, 255, .04);
      animation: modalIn .22s cubic-bezier(0.34, 1.1, 0.64, 1);
      pointer-events: auto !important;
      overflow: hidden;
    }

    @keyframes modalIn {
      from {
        opacity: 0;
        transform: translateY(16px) scale(.97)
      }

      to {
        opacity: 1;
        transform: none
      }
    }

    .modal.wide {
      width: 660px
    }

    .modal.xl {
      width: 920px;
    }

    .mhd {
      display: flex;
      align-items: center;
      padding: 18px 24px;
      border-bottom: 1px solid var(--bd);
      flex-shrink: 0;
      gap: 12px;
    }

    .mtl {
      font-size: 15px;
      font-weight: 700;
      color: var(--tx);
      flex: 1;
      letter-spacing: .01em;
    }

    .mbd {
      padding: 22px 24px;
      overflow-y: auto;
      overscroll-behavior: contain;
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
      gap: 16px;
    }

    .mft {
      padding: 16px 24px;
      border-top: 1px solid var(--bd);
      display: flex;
      gap: 10px;
      justify-content: flex-end;
      align-items: center;
      flex-shrink: 0;
    }

    .um-body {
      flex: 1;
      min-height: 0;
      overflow-y: auto;
      overscroll-behavior: contain;
    }

    .flbl {
      font-size: 11.5px;
      font-weight: 700;
      color: var(--tx2);
      display: block;
      margin-bottom: 7px;
      text-transform: uppercase;
      letter-spacing: .05em;
    }

    .finp {
      width: 100%;
      background: var(--bg3);
      border: 1px solid var(--bd);
      color: var(--tx);
      border-radius: var(--r);
      padding: 9px 13px;
      font-size: 13px;
      outline: none;
      transition: border-color .15s, box-shadow .15s, background .15s;
    }

    .finp:focus {
      border-color: var(--ac);
      box-shadow: 0 0 0 3px var(--acd);
    }

    textarea.finp {
      resize: vertical;
      min-height: 70px;
      line-height: 1.5;
    }

    select.finp {
      cursor: pointer;
    }

    /* ── BUTTONS & INTERACTIVE CONTROLS ─────────────────── */
    button,
    .btn,
    .ibtn,
    .proj-pill,
    .env-pill,
    .proj-card,
    .atab,
    .tab,
    .sbtn,
    .msel-btn,
    .msel-opt,
    .uchip,
    [onclick] {
      cursor: pointer !important;
      pointer-events: auto !important;
    }

    .proj-card {
      transition: all .15s ease;
      user-select: none;
      cursor: pointer !important;
      pointer-events: auto !important;
    }
    .proj-card:hover {
      border-color: var(--ac) !important;
      transform: translateY(-1px);
      box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
    }
    .proj-card.active {
      border-color: var(--ac) !important;
      background: var(--acd) !important;
    }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 5px;
      padding: 7px 14px;
      border-radius: var(--r);
      font-size: 12px;
      font-weight: 500;
      cursor: pointer !important;
      pointer-events: auto !important;
      border: 1px solid var(--bd);
      background: var(--bg3);
      color: var(--tx);
      transition: all .15s;
      flex-shrink: 0;
      user-select: none;
      white-space: nowrap;
    }

    .btn:hover {
      border-color: var(--bd2);
      background: var(--bg4)
    }

    .btn.pr {
      background: linear-gradient(135deg, var(--ac) 0%, var(--ac2) 100%);
      border-color: var(--ac);
      color: #fff;
      font-weight: 600;
      box-shadow: 0 2px 8px rgba(20, 184, 166, .3);
    }

    .btn.pr:hover {
      background: linear-gradient(135deg, #2dd4bf 0%, var(--ac) 100%);
      box-shadow: 0 3px 14px rgba(20, 184, 166, .45);
      transform: translateY(-1px);
    }

    .btn.dn {
      background: var(--rdd);
      border-color: var(--rd);
      color: var(--rd)
    }

    .btn.dn:hover {
      background: var(--rd);
      color: #fff
    }

    .btn.sm {
      padding: 5px 11px;
      font-size: 11px
    }

    .btn:disabled {
      opacity: .45;
      cursor: not-allowed;
      transform: none !important;
      box-shadow: none !important
    }

    /* ── TOASTS ─────────────────────────────────────────── */
    #toasts {
      position: fixed;
      bottom: 88px;
      right: 20px;
      z-index: 2000;
      display: flex;
      flex-direction: column;
      gap: 8px;
      pointer-events: none;
      max-width: 380px;
    }

    .toast {
      padding: 10px 16px;
      border-radius: var(--r2);
      font-size: 12px;
      font-weight: 500;
      border: 1px solid;
      animation: tsl .25s cubic-bezier(0.34, 1.1, 0.64, 1);
      pointer-events: auto;
      box-shadow: 0 4px 20px rgba(0, 0, 0, .35);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
    }

    @keyframes tsl {
      from {
        opacity: 0;
        transform: translateX(24px) scale(.95)
      }

      to {
        opacity: 1;
        transform: none
      }
    }

    .tok {
      background: rgba(63, 185, 80, .15);
      border-color: var(--gn);
      color: var(--gn)
    }

    .terr {
      background: rgba(248, 81, 73, .15);
      border-color: var(--rd);
      color: var(--rd)
    }

    .twarn {
      background: rgba(210, 153, 34, .15);
      border-color: var(--yw);
      color: var(--yw)
    }

    .tinfo {
      background: rgba(20, 184, 166, .15);
      border-color: var(--ac);
      color: var(--ac)
    }

    /* ── CONTEXT MENU ───────────────────────────────────── */
    #ctx {
      position: fixed;
      background: var(--bg2);
      border: 1px solid var(--bd);
      border-radius: var(--r2);
      padding: 5px;
      z-index: 1000;
      display: none;
      box-shadow: 0 12px 40px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .03);
      min-width: 172px;
      animation: dropIn .12s ease;
    }

    .ci {
      padding: 7px 13px;
      font-size: 12px;
      cursor: pointer;
      border-radius: 5px;
      display: flex;
      align-items: center;
      gap: 9px;
      color: var(--tx);
      transition: .1s;
    }

    .ci:hover {
      background: var(--bg3)
    }

    .ci.dn {
      color: var(--rd)
    }

    .ci.dn:hover {
      background: var(--rdd)
    }

    .csep {
      border: none;
      border-top: 1px solid var(--bd);
      margin: 4px 0
    }

    /* ── STATUS BAR ─────────────────────────────────────── */
    #sbar {
      height: 24px;
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 0 14px;
      background: linear-gradient(to right, var(--bg2) 0%, var(--bg) 100%);
      border-top: 1px solid var(--bd);
      font-size: 10px;
      color: var(--tx3);
      flex-shrink: 0;
    }

    .sdot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: var(--gn);
      flex-shrink: 0;
      box-shadow: 0 0 6px var(--gn);
    }

    .sdot.busy {
      background: var(--yw);
      animation: blink 1s infinite;
      box-shadow: 0 0 6px var(--yw)
    }

    .sdot.err {
      background: var(--rd);
      box-shadow: 0 0 6px var(--rd)
    }

    @keyframes blink {

      0%,
      100% {
        opacity: 1
      }

      50% {
        opacity: .3
      }
    }

    .uchip {
      display: flex;
      align-items: center;
      gap: 6px;
      margin-left: 4px;
      padding: 3px 10px;
      border: 1px solid var(--bd);
      border-radius: 999px;
      cursor: pointer;
      color: var(--tx2);
      transition: all .15s;
      font-weight: 500;
    }

    .uchip:hover {
      border-color: var(--ac);
      color: var(--tx);
      background: var(--acd)
    }

    /* ── MISC ───────────────────────────────────────────── */
    .chip {
      display: inline-flex;
      align-items: center;
      padding: 2px 8px;
      border-radius: 999px;
      font-size: 10px;
      font-weight: 700;
    }

    .chip.gn {
      background: var(--gnd);
      color: var(--gn)
    }

    .chip.rd {
      background: var(--rdd);
      color: var(--rd)
    }

    .chip.bl {
      background: var(--acd);
      color: var(--ac)
    }

    .chip.gy {
      background: var(--bg5);
      color: var(--tx2)
    }

    .empty {
      text-align: center;
      padding: 36px 20px;
      color: var(--tx3);
      font-size: 12px;
      line-height: 1.7;
    }

    .ibox {
      font-size: 11px;
      color: var(--tx3);
      background: var(--bg3);
      border: 1px solid var(--bd);
      border-radius: var(--r);
      padding: 8px 12px;
      line-height: 1.6;
    }

    .ibox.info {
      border-color: rgba(20, 184, 166, .4);
      color: var(--ac);
      background: var(--acd)
    }

    .ibox.warn {
      border-color: rgba(210, 153, 34, .4);
      color: var(--yw);
      background: var(--ywd)
    }

    .scard {
      background: var(--bg3);
      border: 1px solid var(--bd);
      border-radius: var(--r2);
      padding: 16px;
      text-align: center;
      transition: .15s;
    }

    .scard:hover {
      border-color: var(--bd2)
    }

    .snum {
      font-size: 24px;
      font-weight: 900;
      color: var(--ac)
    }

    .slbl {
      font-size: 11px;
      color: var(--tx2);
      margin-top: 4px
    }

    .hist-row {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 7px 13px;
      border-bottom: 1px solid var(--bd);
      font-size: 12px;
      cursor: pointer;
      transition: .1s;
    }

    .hist-row:hover {
      background: var(--bg3)
    }

    .run-row {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 9px 13px;
      border: 1px solid var(--bd);
      border-radius: var(--r);
      margin-bottom: 6px;
      font-size: 12px;
      background: var(--bg2);
      transition: all .15s ease;
    }
    .run-row:hover {
      border-color: var(--bd2);
      background: var(--bg3);
    }

    .rpass {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: rgba(34, 197, 94, .15);
      color: var(--gn);
      font-weight: 800;
      font-size: 11px;
      flex-shrink: 0;
    }

    .rfail {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: rgba(239, 68, 68, .15);
      color: var(--rd);
      font-weight: 800;
      font-size: 11px;
      flex-shrink: 0;
    }

    .var-head {
      display: grid;
      grid-template-columns: 24px 1fr 1fr 85px 28px;
      gap: 6px;
      align-items: center;
      font-size: 10.5px;
      font-weight: 700;
      color: var(--tx3);
      text-transform: uppercase;
      letter-spacing: .04em;
      padding: 0 4px 6px;
      border-bottom: 1px solid var(--bd);
      margin-bottom: 8px;
    }

    .var-row {
      display: grid;
      grid-template-columns: 24px 1fr 1fr 85px 28px;
      gap: 8px;
      align-items: center;
      margin-bottom: 8px;
    }

    .um-tab {
      transition: all .18s ease;
      user-select: none;
    }
    .um-tab:hover {
      color: var(--tx) !important;
      background: var(--bg3);
    }
    .um-tab.on {
      color: var(--ac) !important;
      border-bottom: 2px solid var(--ac) !important;
    }

    .um-av-opt {
      width: 38px;
      height: 38px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 20px;
      border-radius: 9px;
      border: 1.5px solid transparent;
      cursor: pointer;
      user-select: none;
      transition: transform .12s, border-color .15s, background .15s;
    }
    .um-av-opt:hover {
      transform: scale(1.15);
      background: var(--bg4);
    }

    .env-sb-item {
      transition: all .15s ease;
      user-select: none;
    }
    .env-sb-item:hover {
      background: var(--bg4) !important;
      color: var(--tx);
    }
    .env-sb-item.active {
      background: var(--acd) !important;
      color: var(--ac) !important;
      border-color: var(--ac);
    }

    .mr-row {
      display: flex;
      align-items: center;
      gap: 7px;
      padding: 9px 11px;
      border: 1px solid var(--bd);
      border-radius: var(--r);
      margin-bottom: 6px;
      font-size: 12px;
      background: var(--bg3);
      transition: .12s;
    }

    .mr-row:hover {
      border-color: var(--bd2)
    }

    .spin {
      display: inline-block;
      width: 12px;
      height: 12px;
      border: 2px solid var(--bd2);
      border-top-color: var(--ac);
      border-radius: 50%;
      animation: spin .6s linear infinite;
    }

    @keyframes spin {
      to {
        transform: rotate(360deg)
      }
    }

    mark.hl {
      background: rgba(210, 153, 34, .4);
      border-radius: 2px;
      color: inherit
    }

    /* ── Progress bar (runner) ──────────────────────────── */
    .pbar {
      height: 4px;
      background: var(--bg5);
      border-radius: 999px;
      overflow: hidden;
      margin: 8px 0;
    }

    .pbar-fill {
      height: 100%;
      background: linear-gradient(90deg, var(--ac), var(--gn));
      border-radius: 999px;
      transition: width .3s ease;
    }

    /* ── Docs Markdown Preview ──────────────────────────── */
    .md-body {
      font-size: 13px;
      line-height: 1.7;
      color: var(--tx);
      padding: 4px 0;
    }
    .md-h1 {
      font-size: 18px;
      font-weight: 800;
      color: var(--tx);
      margin: 20px 0 10px;
      padding-bottom: 8px;
      border-bottom: 2px solid var(--bd);
      line-height: 1.3;
    }
    .md-h2 {
      font-size: 14px;
      font-weight: 700;
      color: var(--tx);
      margin: 20px 0 8px;
      padding-bottom: 5px;
      border-bottom: 1px solid var(--bd);
    }
    .md-h3 {
      font-size: 12.5px;
      font-weight: 700;
      color: var(--ac);
      margin: 14px 0 5px;
      text-transform: uppercase;
      letter-spacing: .04em;
    }
    .md-h4 {
      font-size: 12px;
      font-weight: 600;
      color: var(--tx2);
      margin: 10px 0 4px;
    }
    .md-p {
      margin: 6px 0;
      color: var(--tx2);
      font-size: 12.5px;
      line-height: 1.7;
    }
    .md-hr {
      border: 0;
      border-top: 1px solid var(--bd);
      margin: 18px 0;
    }
    .md-bq {
      border-left: 3px solid var(--ac);
      background: var(--acd);
      margin: 8px 0;
      padding: 8px 14px;
      border-radius: 0 var(--r) var(--r) 0;
      color: var(--tx2);
      font-size: 12px;
      font-style: italic;
    }
    .md-ul, .md-ol {
      margin: 6px 0 6px 18px;
      padding: 0;
    }
    .md-li {
      color: var(--tx2);
      font-size: 12.5px;
      margin-bottom: 3px;
      line-height: 1.6;
    }
    .md-inline-code {
      background: var(--bg4);
      border: 1px solid var(--bd2);
      border-radius: 4px;
      padding: 1px 5px;
      font-family: 'Fira Code', monospace;
      font-size: 11px;
      color: var(--ac);
    }
    .md-code-block {
      background: var(--bg3);
      border: 1px solid var(--bd);
      border-radius: var(--r2);
      margin: 10px 0;
      overflow: hidden;
    }
    .md-code-block > span {
      display: block;
      padding: 5px 12px 4px;
      border-bottom: 1px solid var(--bd);
      background: var(--bg4);
    }
    .md-code-block > pre {
      margin: 0;
      padding: 12px 14px;
      font-family: 'Fira Code', monospace;
      font-size: 11.5px;
      color: var(--tx);
      overflow-x: auto;
      line-height: 1.6;
      white-space: pre;
    }
    .md-table-wrap {
      overflow-x: auto;
      margin: 12px 0;
      border-radius: var(--r);
      border: 1px solid var(--bd);
    }
    .md-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 12px;
    }
    .md-thead th.md-td {
      background: var(--bg3);
      font-weight: 700;
      color: var(--tx);
      font-size: 11px;
      text-transform: uppercase;
      letter-spacing: .04em;
    }
    .md-tr-even td.md-td {
      background: var(--bg2);
    }
    .md-td {
      padding: 8px 12px;
      border-bottom: 1px solid var(--bd);
      color: var(--tx2);
      vertical-align: top;
      line-height: 1.5;
    }
    .md-table tr:last-child .md-td {
      border-bottom: 0;
    }
    .docs-preview-pane {
      flex: 1;
      overflow-y: auto;
      padding: 16px 20px;
      border: 1px solid var(--bd);
      border-radius: var(--r2);
      background: var(--bg2);
      flex-direction: column;
      min-height: 0;
    }
    .docs-preview-pane .md-body {
      padding: 0;
    }
    .docs-preview-pane .md-h1:first-child {
      margin-top: 0;
    }

    /* ── Keyboard Shortcut Help Panel ───────────────────── */
    #kbhelp-overlay {
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,.55);
      backdrop-filter: blur(4px);
      -webkit-backdrop-filter: blur(4px);
      z-index: 9990;
      display: flex;
      align-items: center;
      justify-content: center;
      animation: fadeIn .18s ease;
    }
    #kbhelp-panel {
      background: var(--bg2);
      border: 1px solid var(--bd);
      border-radius: var(--r3);
      box-shadow: var(--sh);
      width: 560px;
      max-width: calc(100vw - 32px);
      max-height: calc(100vh - 64px);
      overflow: hidden;
      display: flex;
      flex-direction: column;
    }
    #kbhelp-panel .kbh-hd {
      display: flex;
      align-items: center;
      padding: 16px 20px 14px;
      border-bottom: 1px solid var(--bd);
      gap: 10px;
    }
    #kbhelp-panel .kbh-hd h3 {
      font-size: 14px;
      font-weight: 700;
      flex: 1;
    }
    #kbhelp-panel .kbh-body {
      padding: 16px 20px;
      overflow-y: auto;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 6px 20px;
    }
    .kbh-section {
      font-size: 10px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .08em;
      color: var(--tx3);
      grid-column: 1 / -1;
      margin-top: 10px;
      padding-bottom: 4px;
      border-bottom: 1px solid var(--bd);
    }
    .kbh-section:first-child { margin-top: 0; }
    .kbh-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      padding: 5px 0;
      font-size: 12px;
    }
    .kbh-desc { color: var(--tx2); }
    .kbh-keys { display: flex; gap: 3px; flex-shrink: 0; }
    kbd {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: var(--bg4);
      border: 1px solid var(--bd2);
      border-bottom-width: 2px;
      border-radius: 4px;
      padding: 1px 6px;
      font-size: 11px;
      font-family: 'Fira Code', monospace;
      color: var(--tx);
      min-width: 22px;
    }

    /* ── Skeleton loading ───────────────────────────────── */
    @keyframes skeletonPulse {
      0%, 100% { opacity: .5 }
      50%       { opacity: 1  }
    }
    .skel {
      background: var(--bg4);
      border-radius: var(--r);
      animation: skeletonPulse 1.4s ease-in-out infinite;
    }

    /* ── Method colors in dropdown ──────────────────────── */
    .msel-opt[data-m="GET"]     { color: #22c55e }
    .msel-opt[data-m="POST"]    { color: #3b82f6 }
    .msel-opt[data-m="PUT"]     { color: #f59e0b }
    .msel-opt[data-m="PATCH"]   { color: #a855f7 }
    .msel-opt[data-m="DELETE"]  { color: #ef4444 }
    .msel-opt[data-m="HEAD"]    { color: #6b7280 }
    .msel-opt[data-m="OPTIONS"] { color: #06b6d4 }

    /* ── Unsaved pulse animation ────────────────────────── */
    @keyframes unsavedPulse {
      0%,100% { opacity: 1 }
      50%     { opacity: .35 }
    }
    #unsaved-dot.pulse {
      animation: unsavedPulse 1.4s ease-in-out infinite;
    }

    /* ── Response copy/download bar ─────────────────────── */
    .res-action-bar {
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 5px 10px;
      border-bottom: 1px solid var(--bd);
      background: var(--bg2);
      flex-shrink: 0;
    }

    /* ── Tab active dot (has content) ───────────────────── */
    .tab .tab-dot {
      display: inline-block;
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: var(--ac);
      margin-left: 4px;
      vertical-align: middle;
      flex-shrink: 0;
    }

    /* ── Sidebar request count badge ────────────────────── */
    .col-cnt {
      font-size: 10px;
      color: var(--tx3);
      background: var(--bg4);
      border-radius: 8px;
      padding: 1px 5px;
      margin-left: 4px;
      flex-shrink: 0;
    }

    /* ── Timing bar in response ─────────────────────────── */
    .timing-bar-wrap {
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 6px 12px;
      border-bottom: 1px solid var(--bd);
      background: var(--bg2);
      flex-shrink: 0;
    }
    .timing-bar {
      flex: 1;
      height: 4px;
      background: var(--bg5);
      border-radius: 999px;
      overflow: hidden;
    }
    .timing-bar-fill {
      height: 100%;
      border-radius: 999px;
      transition: width .4s cubic-bezier(.4,0,.2,1);
    }
    .timing-lbl {
      font-size: 10px;
      color: var(--tx3);
      flex-shrink: 0;
      font-family: 'Fira Code', monospace;
    }

    /* ── Documentation modal ─────────────────────────────── */
    .dh-nav-item {
      display: flex; align-items: center; gap: 8px;
      padding: 7px 10px; border-radius: 7px; cursor: pointer;
      font-size: 12px; font-weight: 500; color: var(--tx2);
      transition: all .12s; user-select: none;
    }
    .dh-nav-item:hover { background: var(--bg3); color: var(--tx); }
    .dh-nav-item.on { background: var(--acd); color: var(--ac); font-weight: 700; }
    .dh-nav-sep {
      font-size: 9px; font-weight: 800; letter-spacing: .08em;
      text-transform: uppercase; color: var(--tx3);
      padding: 10px 10px 3px; margin-top: 4px;
    }
    .dh-section { display: none; }
    .dh-section.on { display: block; }
    .dh-h1 {
      font-size: 18px; font-weight: 800; color: var(--tx);
      margin: 0 0 6px; padding-bottom: 10px;
      border-bottom: 2px solid var(--bd);
    }
    .dh-h2 {
      font-size: 13px; font-weight: 700; color: var(--tx);
      margin: 22px 0 8px; display: flex; align-items: center; gap: 7px;
    }
    .dh-h2::before { content: ''; display:block; width:3px; height:14px; background:var(--ac); border-radius:2px; flex-shrink:0; }
    .dh-p { margin: 0 0 10px; color: var(--tx2); }
    .dh-tip {
      background: var(--acd); border-left: 3px solid var(--ac);
      border-radius: 0 8px 8px 0; padding: 10px 14px;
      margin: 10px 0; font-size: 12px; color: var(--tx2);
    }
    .dh-warn {
      background: #f59e0b18; border-left: 3px solid #f59e0b;
      border-radius: 0 8px 8px 0; padding: 10px 14px;
      margin: 10px 0; font-size: 12px; color: var(--tx2);
    }
    .dh-code {
      font-family: 'Fira Code', monospace; font-size: 11px;
      background: var(--bg3); border: 1px solid var(--bd);
      border-radius: 6px; padding: 10px 14px; margin: 8px 0;
      white-space: pre; overflow-x: auto; line-height: 1.6;
      color: var(--tx);
    }
    .dh-ic {
      font-family: 'Fira Code', monospace; font-size: 11px;
      background: var(--bg3); border: 1px solid var(--bd);
      border-radius: 4px; padding: 1px 6px; color: var(--tx);
    }
    .dh-kb {
      display: inline-flex; align-items: center; gap: 3px;
      background: var(--bg3); border: 1px solid var(--bd);
      border-bottom-width: 2px; border-radius: 5px;
      padding: 2px 7px; font-size: 11px; font-weight: 600;
      font-family: 'Fira Code', monospace; color: var(--tx);
    }
    .dh-table { width:100%; border-collapse:collapse; margin: 8px 0 14px; font-size:12px; }
    .dh-table th {
      background: var(--bg3); padding: 7px 12px; text-align:left;
      font-size: 10px; font-weight: 700; text-transform: uppercase;
      letter-spacing: .05em; color: var(--tx3); border-bottom: 1px solid var(--bd);
    }
    .dh-table td {
      padding: 8px 12px; border-bottom: 1px solid var(--bd);
      vertical-align: top; color: var(--tx2);
    }
    .dh-table tr:last-child td { border-bottom: none; }
    .dh-table tr:hover td { background: var(--bg3); }
    .dh-badge {
      display: inline-block; padding: 2px 8px; border-radius: 20px;
      font-size: 10px; font-weight: 700; letter-spacing: .03em;
    }
    .dh-card {
      background: var(--bg3); border: 1px solid var(--bd); border-radius: 10px;
      padding: 14px 16px; margin: 8px 0;
    }
    .dh-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 8px 0; }
    @media (max-width: 640px) { .dh-grid { grid-template-columns: 1fr; } }

    /* ── Global custom tooltip ───────────────────────────── */
    #g-tooltip {
      position: fixed;
      z-index: 99999;
      pointer-events: none;
      background: var(--bg);
      border: 1px solid var(--bd2);
      border-radius: 7px;
      padding: 6px 10px;
      font-size: 11px;
      font-weight: 500;
      color: var(--tx);
      white-space: nowrap;
      box-shadow: 0 4px 16px rgba(0,0,0,.25);
      opacity: 0;
      transform: translateY(4px);
      transition: opacity .15s, transform .15s;
      max-width: 260px;
      white-space: normal;
      line-height: 1.4;
    }
    #g-tooltip.show {
      opacity: 1;
      transform: translateY(0);
    }
    #g-tooltip .gt-title {
      font-weight: 700;
      color: var(--tx);
      margin-bottom: 2px;
    }
    #g-tooltip .gt-sub {
      font-size: 10px;
      color: var(--tx3);
    }
    #g-tooltip .gt-kb {
      display: inline-block;
      background: var(--bg3);
      border: 1px solid var(--bd);
      border-bottom-width: 2px;
      border-radius: 4px;
      padding: 1px 5px;
      font-size: 10px;
      font-family: 'Fira Code', monospace;
      font-weight: 600;
      color: var(--tx2);
      margin-top: 3px;
    }

    /* ── Help tooltip on topbar button ─────────────────── */
    #help-btn {
      font-size: 13px;
      font-weight: 700;
      width: 24px;
      height: 24px;
      border-radius: 50%;
      border: 1.5px solid var(--bd2);
      color: var(--tx3);
      cursor: pointer;
      background: var(--bg3);
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all .15s;
      flex-shrink: 0;
    }
    #help-btn:hover {
      border-color: var(--ac);
      color: var(--ac);
      background: var(--acd);
    }

    .um-av-opt {
      font-size: 20px;
      cursor: pointer;
      padding: 4px 6px;
      border-radius: 6px;
      border: 1.5px solid transparent;
      transition: all .15s ease;
      user-select: none;
    }
    .um-av-opt:hover {
      background: var(--bg4);
      transform: scale(1.18);
    }

    /* ─── REQUEST MULTI-TAB BAR ────────────────────────── */
    .req-tabs-bar {
      display: flex;
      align-items: center;
      background: var(--bg2);
      border-bottom: 1px solid var(--bd);
      height: 38px;
      overflow-x: auto;
      overflow-y: hidden;
      scrollbar-width: none;
      flex-shrink: 0;
    }
    .req-tabs-bar::-webkit-scrollbar { display: none; }
    .req-tabs-scroll {
      display: flex;
      align-items: center;
      height: 100%;
      flex: 1;
      overflow-x: auto;
      scrollbar-width: none;
    }
    .req-tabs-scroll::-webkit-scrollbar { display: none; }
    .req-tab {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      padding: 0 12px;
      height: 100%;
      border-right: 1px solid var(--bd);
      font-size: 11px;
      font-weight: 600;
      color: var(--tx3);
      cursor: pointer;
      user-select: none;
      white-space: nowrap;
      transition: all .15s ease;
      background: var(--bg2);
      position: relative;
    }
    .req-tab:hover {
      background: var(--bg3);
      color: var(--tx);
    }
    .req-tab.active {
      background: var(--bg);
      color: var(--tx);
      border-top: 2px solid var(--ac);
      border-bottom: 1px solid var(--bg);
    }
    .req-tab-method {
      font-size: 8.5px;
      font-weight: 800;
      padding: 1px 4px;
      border-radius: 3px;
      line-height: 1.3;
      text-transform: uppercase;
      letter-spacing: .04em;
    }
    .req-tab-name {
      max-width: 140px;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .req-tab-dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--yw);
      flex-shrink: 0;
    }
    .req-tab-close {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 16px;
      height: 16px;
      border-radius: 4px;
      font-size: 10px;
      color: var(--tx3);
      opacity: .6;
      transition: all .12s;
    }
    .req-tab-close:hover {
      opacity: 1;
      background: rgba(239, 68, 68, 0.15);
      color: var(--rd);
    }
    .req-tab-add {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 34px;
      height: 100%;
      background: transparent;
      border: none;
      border-right: 1px solid var(--bd);
      color: var(--tx3);
      cursor: pointer;
      transition: all .15s;
    }
    .req-tab-add:hover {
      background: var(--bg3);
      color: var(--ac);
    }

    /* ─── BULK EDIT CONTROLS ───────────────────────────── */
    .kv-header-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 6px;
    }
    .kv-mode-toggle {
      display: inline-flex;
      background: var(--bg4);
      padding: 2px;
      border-radius: 6px;
      border: 1px solid var(--bd);
      gap: 2px;
    }
    .kv-mode-btn {
      font-size: 10px;
      font-weight: 600;
      padding: 2px 7px;
      border: none;
      background: transparent;
      color: var(--tx3);
      border-radius: 4px;
      cursor: pointer;
      transition: all .12s;
    }
    .kv-mode-btn.on {
      background: var(--ac);
      color: #fff;
    }
    .bulk-textarea {
      width: 100%;
      box-sizing: border-box;
      min-height: 130px;
      font-family: 'Fira Code', monospace;
      font-size: 11px;
      background: var(--bg3);
      border: 1px solid var(--bd);
      border-radius: 7px;
      padding: 8px 10px;
      color: var(--tx);
      resize: vertical;
      line-height: 1.6;
    }
    .bulk-textarea:focus {
      outline: none;
      border-color: var(--ac);
      box-shadow: 0 0 0 2px var(--acd);
    }

    /* ─── RESPONSE TABULAR VIEW ────────────────────────── */
    .res-mode-pill {
      display: inline-flex;
      align-items: center;
      background: var(--bg4);
      border: 1px solid var(--bd);
      border-radius: 6px;
      padding: 2px;
      gap: 2px;
      margin-right: 6px;
    }
    .rm-btn {
      font-size: 11px;
      font-weight: 600;
      padding: 3px 9px;
      border: none;
      background: transparent;
      color: var(--tx3);
      border-radius: 4px;
      cursor: pointer;
      transition: all .12s ease;
    }
    .rm-btn:hover {
      color: var(--tx);
    }
    .rm-btn.on {
      background: var(--ac);
      color: #fff;
    }
    .res-table-container {
      display: flex;
      flex-direction: column;
      height: 100%;
      min-height: 0;
      overflow: hidden;
      background: var(--bg);
    }
    .res-table-toolbar {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 8px 12px;
      background: var(--bg2);
      border-bottom: 1px solid var(--bd);
      flex-shrink: 0;
    }
    .res-table-scroll {
      flex: 1;
      overflow: auto;
      min-height: 0;
    }
    .res-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 11.5px;
      font-family: 'Fira Code', monospace;
    }
    .res-table thead {
      position: sticky;
      top: 0;
      z-index: 5;
      background: var(--bg3);
    }
    .res-table th {
      padding: 8px 12px;
      text-align: left;
      font-weight: 700;
      color: var(--tx2);
      border-bottom: 2px solid var(--bd2);
      border-right: 1px solid var(--bd);
      white-space: nowrap;
      cursor: pointer;
      user-select: none;
      transition: background .12s;
    }
    .res-table th:hover {
      background: var(--bg4);
      color: var(--ac);
    }
    .res-table td {
      padding: 7px 12px;
      border-bottom: 1px solid var(--bd);
      border-right: 1px solid var(--bd);
      color: var(--tx);
      max-width: 260px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      vertical-align: top;
    }
    .res-table td.has-nested-table,
    .res-nested-table td.has-nested-table {
      padding: 0 !important;
      vertical-align: top;
      white-space: normal;
      max-width: none;
      overflow: visible;
      text-overflow: clip;
    }
    .res-table tbody tr {
      cursor: pointer;
      transition: background .12s;
    }
    .res-table tbody tr:hover {
      background: var(--acd);
    }
    .res-table tbody tr:nth-child(even) {
      background: var(--bg2);
    }
    .res-table tbody tr:nth-child(even):hover {
      background: var(--acd);
    }
    .res-cell-obj {
      background: rgba(79, 110, 247, 0.12);
      color: var(--ac);
      border: 1px solid rgba(79, 110, 247, 0.25);
      padding: 1px 6px;
      border-radius: 4px;
      font-size: 10px;
      font-weight: 700;
    }
    .res-cell-num {
      color: var(--yw);
      font-weight: 600;
    }
    .res-cell-bool-true {
      color: var(--gn);
      font-weight: 700;
    }
    .res-cell-bool-false {
      color: var(--rd);
      font-weight: 700;
    }
    .res-cell-null {
      color: var(--tx3);
      font-style: italic;
    }

    /* ── NESTED SUBTABLES (CHILD / ARRAY IN TABLE VIEW - SPREADSHEET DESIGN) ── */
    .res-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 12px;
      font-family: 'Fira Code', monospace;
      background: var(--bg2);
    }
    .res-table.kv-mode thead {
      display: none;
    }
    .res-table.kv-mode td:first-child {
      width: 140px;
      min-width: 110px;
      max-width: 200px;
      font-weight: 600;
      color: var(--tx2);
      background: transparent;
    }
    .res-table td.has-nested-table,
    .res-nested-table td.has-nested-table {
      padding: 0 !important;
      vertical-align: top;
      white-space: normal;
      max-width: none;
      overflow: visible;
      text-overflow: clip;
    }

    .res-subtable-wrap {
      display: block;
      width: 100%;
      min-width: 220px;
      background: transparent;
      border: none;
      overflow: hidden;
      margin: 0;
    }

    .res-subtable-wrap.empty {
      background: transparent;
      border: 1px dashed var(--bd);
      border-radius: 4px;
      min-width: 0;
      width: auto;
      display: inline-block;
      margin: 4px;
    }

    .res-subtable-wrap.collapsed .res-subtable-scroll {
      display: none;
    }

    .res-subtable-wrap.collapsed {
      display: inline-block;
      width: auto;
      min-width: 0;
    }

    .res-subtable-header {
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 4px 6px;
      font-size: 11.5px;
      font-family: 'Fira Code', monospace;
      background: transparent;
      color: var(--tx);
      cursor: pointer;
      user-select: none;
      transition: opacity .12s;
    }

    .res-subtable-header:hover {
      opacity: 0.85;
    }

    .subtable-toggle-btn {
      font-family: monospace;
      font-weight: 700;
      color: #2563eb;
      cursor: pointer;
    }

    .subtable-title {
      font-weight: 600;
      color: var(--tx);
    }

    .res-subtable-scroll {
      overflow-x: auto;
      max-width: 100%;
      border-top: 1px solid var(--bd);
    }

    .res-nested-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 12px;
      font-family: 'Fira Code', monospace;
      background: var(--bg2);
      margin: 0;
    }

    .res-nested-table thead,
    .res-table:not(.kv-mode) thead {
      position: sticky;
      top: 0;
      z-index: 2;
    }

    th.th-menu-col {
      width: 44px;
      min-width: 44px;
      max-width: 44px;
      text-align: center;
      padding: 4px 6px;
      background: var(--bg3);
      border-bottom: 1px solid var(--bd2);
      border-right: 1px solid var(--bd);
      user-select: none;
    }

    .tbl-col-opt-btn {
      background: #2563eb;
      color: #ffffff;
      border: none;
      border-radius: 4px;
      padding: 2px 7px;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 1px;
      line-height: 1.2;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 1px 2px rgba(37, 99, 235, 0.25);
      transition: background .12s, transform .08s;
    }

    .tbl-col-opt-btn:hover {
      background: #1d4ed8;
      transform: scale(1.03);
    }

    th.th-data-col {
      background: var(--bg3);
      color: var(--tx2);
      font-weight: 600;
      font-size: 11.5px;
      padding: 5px 8px;
      text-align: left;
      border-bottom: 1px solid var(--bd2);
      border-right: 1px solid var(--bd);
      white-space: nowrap;
      user-select: none;
    }

    th.th-data-col:last-child {
      border-right: none;
    }

    .th-inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 6px;
      width: 100%;
    }

    .th-icon-drag {
      color: var(--tx3);
      font-size: 13px;
      opacity: 0.6;
      cursor: grab;
      user-select: none;
      display: inline-block;
    }

    .th-name {
      flex: 1;
      color: var(--tx);
      font-family: 'Fira Code', monospace;
      font-weight: 600;
      padding: 0 2px;
    }

    .th-icon-filter {
      color: var(--tx3);
      font-size: 10px;
      opacity: 0.55;
      cursor: pointer;
      padding: 2px;
      border-radius: 2px;
      transition: opacity .12s, color .12s;
    }

    .th-icon-filter:hover {
      opacity: 1;
      color: var(--ac);
    }

    .th-icon-menu {
      color: var(--tx3);
      font-size: 11px;
      opacity: 0.55;
      cursor: pointer;
      padding: 2px;
      border-radius: 2px;
      transition: opacity .12s, color .12s;
    }

    .th-icon-menu:hover {
      opacity: 1;
      color: var(--tx);
    }

    td.td-idx-col {
      width: 44px;
      min-width: 44px;
      max-width: 44px;
      text-align: right;
      padding: 6px 8px;
      color: var(--tx3);
      font-size: 11px;
      background: var(--bg2);
      border-right: 1px solid var(--bd);
      border-bottom: 1px solid var(--bd);
      user-select: none;
      white-space: nowrap;
    }

    .td-row-grip {
      color: var(--tx3);
      opacity: 0.45;
      margin-right: 6px;
      font-size: 11px;
      display: inline-block;
    }

    .res-nested-table td,
    .res-table td {
      padding: 6px 12px;
      font-size: 12px;
      border-bottom: 1px solid var(--bd);
      border-right: 1px solid var(--bd);
      color: var(--tx);
      vertical-align: middle;
      white-space: nowrap;
      font-family: 'Fira Code', monospace;
      transition: background .08s;
    }

    .res-nested-table td:last-child,
    .res-table td:last-child {
      border-right: none;
    }

    .res-nested-table tbody tr:last-child > td {
      border-bottom: none;
    }

    .res-nested-table tbody tr:hover > td:not(.has-nested-table),
    .res-table:not(.kv-mode) tbody tr:hover > td:not(.has-nested-table) {
      background: rgba(37, 99, 235, 0.04);
    }

    td.cell-selected {
      background: #fef08a !important;
      color: #1e293b !important;
      outline: 2px solid #eab308 !important;
      outline-offset: -2px;
    }

    body:not(.light) td.cell-selected {
      background: #713f12 !important;
      color: #fef08a !important;
      outline: 2px solid #ca8a04 !important;
    }

    .res-cell-null {
      color: #ef4444 !important;
      font-weight: 500;
      font-style: normal;
    }

    .res-cell-bool-true {
      color: #ef4444 !important;
      font-weight: 500;
    }

    .res-cell-bool-false {
      color: #ef4444 !important;
      font-weight: 500;
    }

    .res-cell-empty {
      color: var(--tx3);
      opacity: 0.6;
    }

    .res-nested-key {
      font-weight: 600;
      color: var(--tx2);
      background: var(--bg2);
      white-space: nowrap;
      min-width: 90px;
      width: 25%;
    }

    .res-cell-empty-box {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      color: var(--tx3);
      font-style: italic;
      font-size: 10.5px;
      padding: 4px 10px;
    }

    /* ── 3D LAYER (Three.js) ────────────────────────────── */
    .af3d-canvas {
      display: block;
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      outline: none;
      touch-action: none;
    }

    .af3d-labels {
      position: absolute;
      inset: 0;
      pointer-events: none;
      overflow: hidden;
      contain: strict;
    }

    .af3d-label {
      backface-visibility: hidden;
      transform-style: preserve-3d;
      font-size: 10.5px;
      font-weight: 600;
      color: var(--tx2);
      white-space: nowrap;
      padding: 1px 6px;
      border-radius: 999px;
      background: color-mix(in srgb, var(--bg2) 78%, transparent);
      border: 1px solid var(--bd);
      pointer-events: none;
      user-select: none;
    }

    .af3d-label-project {
      font-size: 12.5px;
      font-weight: 700;
      color: var(--ac);
      border-color: var(--ac);
    }

    .af3d-label-col {
      color: var(--tx);
    }

    .af3d-label-axis,
    .af3d-label-json {
      background: none;
      border: none;
      font-family: 'Fira Code', monospace;
      font-size: 10px;
      font-weight: 500;
      color: var(--tx3);
    }

    .af3d-label-json {
      color: var(--tx2);
    }

    .af3d-tip {
      position: fixed;
      z-index: 5000;
      display: none;
      max-width: 340px;
      padding: 8px 10px;
      border-radius: var(--r);
      background: var(--bg2);
      border: 1px solid var(--bd);
      box-shadow: var(--sh);
      font-size: 12px;
      color: var(--tx);
      pointer-events: none;
      line-height: 1.45;
    }

    .af3d-tip-sub {
      font-size: 11px;
      color: var(--tx3);
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .af3d-tip-val {
      font-family: 'Fira Code', monospace;
      font-size: 11px;
      color: var(--tx2);
      margin-top: 3px;
      word-break: break-all;
    }

    .af3d-m {
      font-size: 10px;
      font-weight: 800;
      letter-spacing: .03em;
    }

    /* ── 3D Visualizer Badges, Chips & HUD ────────────────── */
    .af3d-label {
      pointer-events: none;
      user-select: none;
      white-space: nowrap;
    }

    .af3d-root-pill {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 3px 10px;
      border-radius: 999px;
      background: rgba(10, 16, 28, 0.88);
      border: 1px solid rgba(20, 184, 166, 0.65);
      box-shadow: 0 4px 18px rgba(20, 184, 166, 0.35);
      font-size: 11.5px;
      font-weight: 700;
      color: #5eead4;
      letter-spacing: 0.04em;
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
    }
    .af3d-root-pill .dot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: #14b8a6;
      box-shadow: 0 0 10px #14b8a6;
      animation: af3dPulse 1.8s infinite;
    }
    @keyframes af3dPulse {
      0%, 100% { opacity: 1; transform: scale(1); }
      50% { opacity: 0.35; transform: scale(0.8); }
    }

    .af3d-col-pill {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      padding: 2.5px 9px;
      border-radius: 999px;
      background: rgba(15, 23, 42, 0.82);
      border: 1px solid rgba(255, 255, 255, 0.16);
      box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
      font-size: 10.5px;
      font-weight: 600;
      color: #f1f5f9;
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
    }
    .af3d-col-pill .c-dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      box-shadow: 0 0 6px currentColor;
    }

    .af3d-req-chip {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      padding: 2px 7px 2px 3px;
      border-radius: 999px;
      background: rgba(10, 15, 26, 0.85);
      border: 1px solid rgba(255, 255, 255, 0.12);
      box-shadow: 0 2px 10px rgba(0, 0, 0, 0.45);
      font-size: 10px;
      font-weight: 600;
      color: #e2e8f0;
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      white-space: nowrap;
      transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.2s ease, border-color 0.2s ease;
    }
    .af3d-req-chip .m {
      font-size: 8.5px;
      font-weight: 800;
      letter-spacing: .05em;
      padding: 1px 4px;
      border-radius: 4px;
      font-family: 'Fira Code', monospace;
      line-height: 1.2;
    }
    .af3d-req-chip.get .m { background: rgba(34, 197, 94, .25); color: #4ade80; }
    .af3d-req-chip.post .m { background: rgba(59, 130, 246, .25); color: #60a5fa; }
    .af3d-req-chip.put .m { background: rgba(245, 158, 11, .25); color: #fbbf24; }
    .af3d-req-chip.patch .m { background: rgba(168, 85, 247, .25); color: #c084fc; }
    .af3d-req-chip.delete .m { background: rgba(239, 68, 68, .25); color: #f87171; }
    .af3d-req-chip.get { border-color: rgba(74, 222, 128, 0.35); }
    .af3d-req-chip.post { border-color: rgba(96, 165, 250, 0.35); }
    .af3d-req-chip.put { border-color: rgba(251, 191, 36, 0.35); }
    .af3d-req-chip.patch { border-color: rgba(192, 132, 252, 0.35); }
    .af3d-req-chip.delete { border-color: rgba(248, 113, 113, 0.35); }

    /* Modal Navigation Tabs */
    .af3d-tabs {
      display: inline-flex;
      align-items: center;
      gap: 3px;
      padding: 3px;
      border-radius: 999px;
      background: color-mix(in srgb, var(--bg3) 70%, transparent);
      border: 1px solid var(--bd);
    }
    .af3d-tab {
      padding: 4px 13px;
      font-size: 11.5px;
      font-weight: 600;
      border-radius: 999px;
      border: none;
      background: transparent;
      color: var(--tx2);
      cursor: pointer;
      transition: all .2s cubic-bezier(0.16, 1, 0.3, 1);
      white-space: nowrap;
    }
    .af3d-tab:hover {
      color: var(--tx);
    }
    .af3d-tab.on {
      background: var(--ac);
      color: #ffffff;
      box-shadow: 0 2px 12px rgba(20, 184, 166, 0.45);
    }

    /* Cyber Glassmorphism HUD Overlay */
    .af3d-hud {
      position: absolute;
      z-index: 10;
      padding: 10px 14px;
      border-radius: 12px;
      background: rgba(10, 15, 28, 0.82);
      border: 1px solid rgba(255, 255, 255, 0.1);
      font-size: 11px;
      color: #cbd5e1;
      pointer-events: none;
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
      box-shadow: 0 16px 36px rgba(0, 0, 0, 0.45);
    }

    .af3d-hud.tl { top: 12px; left: 12px; }
    .af3d-hud.tr { top: 12px; right: 12px; }
    .af3d-hud.bl { bottom: 12px; left: 12px; }

    .af3d-hud b { color: #f8fafc; }

    .af3d-hud-title {
      font-size: 10px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .08em;
      color: #94a3b8;
      margin-bottom: 5px;
    }

    .af3d-hud-note {
      margin-top: 6px;
      font-size: 10px;
      color: #94a3b8;
      line-height: 1.5;
    }

    .af3d-hint {
      font-size: 10.5px;
      color: #94a3b8;
      padding: 6px 12px;
    }

    .af3d-leg {
      display: flex;
      align-items: center;
      gap: 6px;
      line-height: 1.7;
    }

    .af3d-leg i {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      flex-shrink: 0;
      box-shadow: 0 0 6px currentColor;
    }

    .af3d-stat {
      display: flex;
      justify-content: space-between;
      gap: 16px;
      line-height: 1.7;
    }

    /* Auth background */
    .af3d-auth-bg {
      position: absolute;
      inset: 0;
      z-index: 0;
      pointer-events: none;
      opacity: 0;
      animation: af3dFade 1.2s ease .2s forwards;
    }

    @keyframes af3dFade {
      to { opacity: var(--af3d-auth-op, 1); }
    }

    @media(max-width:900px) {
      .af3d-auth-bg { --af3d-auth-op: .5; }
    }

    /* Frosted form panel so the animated field behind it stays soft and the form readable */
    @media(min-width:901px) {
      body:not(.light) .auth-panel {
        background: linear-gradient(180deg, color-mix(in srgb, var(--bg) 40%, transparent) 0%, color-mix(in srgb, var(--bg) 58%, transparent) 100%);
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
      }
    }

    /* 3D Insights modal */
    .modal.af3d-modal {
      width: 1100px;
      max-width: 100%;
    }

    .af3d-tabs {
      display: flex;
      gap: 2px;
      padding: 2px;
      border-radius: 999px;
      background: var(--bg3);
      border: 1px solid var(--bd);
    }

    .af3d-tab {
      border: none;
      background: none;
      color: var(--tx2);
      font-size: 11.5px;
      font-weight: 600;
      padding: 5px 12px;
      border-radius: 999px;
      cursor: pointer;
      font-family: inherit;
    }

    .af3d-tab:hover { color: var(--tx); }

    .af3d-tab.on {
      background: var(--acd);
      color: var(--ac);
      box-shadow: 0 0 12px color-mix(in srgb, var(--ac) 32%, transparent);
    }

    .af3d-stage {
      position: relative;
      height: min(640px, 74vh);
      overflow: hidden;
      background: radial-gradient(ellipse at 50% 35%, #0e172a 0%, #080d1a 55%, #03060c 100%);
      box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.8);
    }

    body.light .af3d-stage {
      background: radial-gradient(ellipse at 50% 35%, #0e172a 0%, #080d1a 55%, #03060c 100%);
      box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.8);
    }

    .af3d-fill {
      position: absolute;
      inset: 0;
    }

    .af3d-loading {
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      font-size: 12px;
      color: var(--tx3);
    }

    /* Collection Runner flow */
    .af3d-runner {
      position: relative;
      height: 220px;
      margin: 8px 0 14px;
      border-radius: var(--r2);
      border: 1px solid rgba(20, 184, 166, 0.35);
      background: radial-gradient(ellipse at 50% 25%, #101726 0%, #070b12 70%, #030508 100%) !important;
      box-shadow: inset 0 0 45px rgba(0, 0, 0, 0.65), 0 4px 18px rgba(0, 0, 0, 0.2);
      overflow: hidden;
    }

    body.light .af3d-runner {
      background: radial-gradient(ellipse at 50% 25%, #101726 0%, #070b12 70%, #030508 100%) !important;
      box-shadow: inset 0 0 45px rgba(0, 0, 0, 0.65), 0 4px 18px rgba(0, 0, 0, 0.12);
    }

    /* Request loader overlay */
    #res-panel {
      position: relative;
    }

    .af3d-loader {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 5;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 8px;
      background: color-mix(in srgb, var(--bg2) 85%, transparent);
      backdrop-filter: blur(4px);
      -webkit-backdrop-filter: blur(4px);
      animation: fadeIn .2s ease;
    }

    .af3d-loader-stage {
      position: relative;
      width: 220px;
      height: 160px;
    }

    .af3d-loader-txt {
      font-size: 11.5px;
      color: var(--tx2);
      display: flex;
      align-items: center;
      gap: 8px;
      background: color-mix(in srgb, var(--bg) 80%, transparent);
      padding: 5px 14px;
      border-radius: 999px;
      border: 1px solid var(--bd);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
    }

    .af3d-loader-txt b {
      color: var(--ac);
      font-family: 'Fira Code', monospace;
    }

    .af3d-loader-sub {
      font-size: 10px;
      font-family: 'Fira Code', monospace;
      color: var(--tx3);
    }

    /* JSON 3D tree */
    .af3d-json {
      position: relative;
      height: 100%;
      min-height: 260px;
      overflow: hidden;
      background: radial-gradient(ellipse at 50% 30%, #151d2a 0%, #0d121c 70%, #070a0e 100%);
      box-shadow: inset 0 0 40px rgba(0, 0, 0, 0.4);
    }

    body.light .af3d-json {
      background: radial-gradient(ellipse at 50% 30%, #f8fafc 0%, #e2e8f0 70%, #cbd5e1 100%);
      box-shadow: inset 0 0 30px rgba(15, 23, 42, 0.06);
    }

    @media (prefers-reduced-motion: reduce) {
      .af3d-auth-bg { animation: none; opacity: var(--af3d-auth-op, 1); }
    }

    /* ── WORKSPACE MOTION SYSTEM ───────────────────────────
       Scoped to the authenticated workspace so the login experience stays untouched. */
    @media (prefers-reduced-motion: no-preference) {
      :root {
        --motion-snap: cubic-bezier(.2, .8, .2, 1);
        --motion-spring: cubic-bezier(.22, 1.25, .36, 1);
        --motion-soft: cubic-bezier(.16, 1, .3, 1);
      }

      @keyframes workspaceTopbarIn {
        from { opacity: 0; transform: translateY(-12px); }
        to { opacity: 1; transform: translateY(0); }
      }

      @keyframes workspacePanelIn {
        from { opacity: 0; transform: translateY(14px) scale(.992); }
        to { opacity: 1; transform: translateY(0) scale(1); }
      }

      @keyframes motionReveal {
        from { opacity: 0; transform: translateY(8px); filter: blur(3px); }
        to { opacity: 1; transform: translateY(0); filter: blur(0); }
      }

      @keyframes motionListIn {
        from { opacity: 0; transform: translateX(-8px); }
        to { opacity: 1; transform: translateX(0); }
      }

      @keyframes motionPop {
        from { opacity: 0; transform: translateY(-6px) scale(.96); }
        to { opacity: 1; transform: translateY(0) scale(1); }
      }

      @keyframes motionModalIn {
        from { opacity: 0; transform: translateY(20px) scale(.96); filter: blur(4px); }
        to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
      }

      @keyframes motionModalOut {
        from { opacity: 1; transform: translateY(0) scale(1); }
        to { opacity: 0; transform: translateY(8px) scale(.985); }
      }

      @keyframes motionOverlayOut {
        from { opacity: 1; }
        to { opacity: 0; }
      }

      @keyframes motionToastOut {
        to { opacity: 0; transform: translateX(20px) scale(.96); }
      }

      @keyframes motionStatusPulse {
        0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--ac) 0%, transparent); }
        50% { box-shadow: 0 0 0 5px color-mix(in srgb, var(--ac) 12%, transparent); }
      }

      body.authenticated #topbar {
        animation: workspaceTopbarIn .48s var(--motion-soft) both;
      }

      body.authenticated #sidebar {
        animation: workspacePanelIn .56s var(--motion-soft) .08s both;
      }

      body.authenticated #center {
        animation: workspacePanelIn .62s var(--motion-soft) .14s both;
      }

      body.authenticated #sbar {
        animation: workspaceTopbarIn .5s var(--motion-soft) .2s both;
      }

      body.authenticated .btn,
      body.authenticated .ibtn,
      body.authenticated .env-pill,
      body.authenticated .proj-pill,
      body.authenticated .uchip,
      body.authenticated .req-tab-add,
      body.authenticated #help-btn {
        transition: transform .2s var(--motion-snap), box-shadow .2s ease, border-color .2s ease, background-color .2s ease, color .2s ease;
        will-change: transform;
      }

      body.authenticated .btn:not(:disabled):hover,
      body.authenticated .env-pill:hover,
      body.authenticated .proj-pill:hover,
      body.authenticated .uchip:hover {
        transform: translateY(-2px);
      }

      body.authenticated .ibtn:hover,
      body.authenticated #help-btn:hover,
      body.authenticated .req-tab-add:hover {
        transform: translateY(-1px) scale(1.06);
      }

      body.authenticated .btn:not(:disabled):active,
      body.authenticated .ibtn:active,
      body.authenticated .env-pill:active,
      body.authenticated .proj-pill:active,
      body.authenticated .uchip:active,
      body.authenticated .req-tab-add:active {
        transform: translateY(0) scale(.96);
        transition-duration: .08s;
      }

      body.authenticated .col-hd,
      body.authenticated .req-row,
      body.authenticated .hist-row,
      body.authenticated .mr-row,
      body.authenticated .dh-nav-item,
      body.authenticated .ei,
      body.authenticated .ci,
      body.authenticated .scard {
        transition: transform .2s var(--motion-snap), box-shadow .2s ease, border-color .2s ease, background-color .2s ease, color .2s ease;
      }

      body.authenticated .col-hd:hover,
      body.authenticated .req-row:hover,
      body.authenticated .hist-row:hover,
      body.authenticated .mr-row:hover,
      body.authenticated .dh-nav-item:hover,
      body.authenticated .ei:hover,
      body.authenticated .ci:hover {
        transform: translateX(3px);
      }

      body.authenticated .req-row.on {
        box-shadow: inset 3px 0 0 var(--ac), 0 5px 16px color-mix(in srgb, var(--ac) 12%, transparent);
      }

      body.authenticated .scard:hover,
      body.authenticated .proj-card:hover {
        transform: translateY(-3px);
        box-shadow: 0 12px 28px rgba(0, 0, 0, .14);
      }

      body.authenticated .urlbar:focus-within {
        background: linear-gradient(90deg, color-mix(in srgb, var(--acd) 40%, transparent), transparent 62%);
      }

      body.authenticated .urlp:focus,
      body.authenticated .finp:focus,
      body.authenticated .kvi:focus,
      body.authenticated .ce:focus,
      body.authenticated .se:focus {
        transform: translateY(-1px);
        transition: transform .2s var(--motion-snap), border-color .2s ease, box-shadow .2s ease;
      }

      body.authenticated #env-drop,
      body.authenticated .msel-drop,
      body.authenticated #ctx {
        transform-origin: top left;
        animation: motionPop .2s var(--motion-spring);
      }

      body.authenticated .overlay.on {
        animation: overlayIn .24s var(--motion-soft);
      }

      body.authenticated .overlay.on .modal {
        animation: motionModalIn .32s var(--motion-spring);
      }

      body.authenticated .overlay.closing {
        display: flex;
        animation: motionOverlayOut .18s ease both;
      }

      body.authenticated .overlay.closing .modal {
        animation: motionModalOut .18s var(--motion-snap) both;
      }

      body.authenticated .toast.leaving {
        animation: motionToastOut .2s var(--motion-snap) both;
      }

      body.authenticated #sblist > *,
      body.authenticated #req-tabs-scroll > * {
        animation: motionListIn .3s var(--motion-soft) both;
      }

      body.authenticated #sblist > *:nth-child(2),
      body.authenticated #req-tabs-scroll > *:nth-child(2) { animation-delay: .035s; }
      body.authenticated #sblist > *:nth-child(3),
      body.authenticated #req-tabs-scroll > *:nth-child(3) { animation-delay: .07s; }
      body.authenticated #sblist > *:nth-child(4),
      body.authenticated #req-tabs-scroll > *:nth-child(4) { animation-delay: .105s; }
      body.authenticated #sblist > *:nth-child(5),
      body.authenticated #req-tabs-scroll > *:nth-child(5) { animation-delay: .14s; }
      body.authenticated #sblist > *:nth-child(n+6),
      body.authenticated #req-tabs-scroll > *:nth-child(n+6) { animation-delay: .175s; }

      body.authenticated #req-body > *,
      body.authenticated #rbw > *,
      body.authenticated #rtb > *,
      body.authenticated #dh-content > *,
      body.authenticated .motion-reveal {
        animation: motionReveal .3s var(--motion-soft) both;
      }

      body.authenticated .motion-status {
        animation: motionStatusPulse .7s var(--motion-soft);
      }

      body.authenticated .timing-bar-fill {
        box-shadow: 0 0 10px color-mix(in srgb, currentColor 38%, transparent);
      }
    }

    @media (prefers-reduced-motion: reduce) {
      body.authenticated *,
      body.authenticated *::before,
      body.authenticated *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
      }
    }

    /* ── PRODUCTIVITY FEATURES ─────────────────────────────
       Settings tab, auth editor, OAuth 2.0, examples, version history, trash,
       cookie jar, presence and runner data. Built on the existing tokens. */

    /* Segmented auth-type pills */
    .seg-pills { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 3px; background: var(--bg3); border: 1px solid var(--bd); border-radius: 9px; }
    .seg-pill { position: relative; display: inline-flex; align-items: center; padding: 5px 12px; border-radius: 7px; font-size: 11.5px; font-weight: 600; color: var(--tx2); cursor: pointer; user-select: none; transition: background-color .18s ease, color .18s ease, box-shadow .18s ease; }
    .seg-pill input { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
    .seg-pill:hover { color: var(--tx); }
    .seg-pill.on { background: var(--bg2); color: var(--ac); box-shadow: 0 1px 3px rgba(0, 0, 0, .12), 0 0 0 1px var(--bd); }
    .seg-pill:focus-within { outline: 2px solid var(--acd); outline-offset: 1px; }

    .auth-ed { display: flex; flex-direction: column; gap: 10px; }
    .auth-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
    .oauth-wrap { display: flex; flex-direction: column; gap: 10px; }
    .set-inline { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--tx2); cursor: pointer; }
    .set-inline input { accent-color: var(--ac); }
    .oauth-token-box { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 10px 12px; border: 1px solid var(--bd); border-radius: var(--r2); background: var(--bg3); }
    .oauth-actions { display: flex; gap: 6px; }
    .oauth-status { display: flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 600; color: var(--tx3); min-width: 0; }
    .oauth-status .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--bd2); flex-shrink: 0; }
    .oauth-status.ok { color: var(--gn); }
    .oauth-status.ok .dot { background: var(--gn); box-shadow: 0 0 6px var(--gn); }
    .oauth-status.warn { color: var(--yw); }
    .oauth-status.warn .dot { background: var(--yw); }
    .oauth-status code { font-size: 10.5px; padding: 1px 6px; border-radius: 4px; background: var(--bg2); border: 1px solid var(--bd); color: var(--tx2); font-weight: 500; overflow: hidden; text-overflow: ellipsis; }

    /* Settings tab */
    .set-list { display: flex; flex-direction: column; border: 1px solid var(--bd); border-radius: var(--r2); overflow: hidden; background: var(--bg2); }
    .set-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 14px; cursor: pointer; transition: background-color .15s ease; }
    .set-row + .set-row { border-top: 1px solid var(--bd); }
    .set-row:hover { background: var(--bg3); }
    .set-txt { min-width: 0; }
    .set-ttl { font-size: 12.5px; font-weight: 600; color: var(--tx); }
    .set-desc { font-size: 11.5px; color: var(--tx3); margin-top: 2px; line-height: 1.5; }
    .af-switch { position: relative; flex-shrink: 0; width: 36px; height: 20px; }
    .af-switch input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; margin: 0; z-index: 1; }
    .af-switch-track { position: absolute; inset: 0; border-radius: 999px; background: var(--bd2); transition: background-color .2s ease; }
    .af-switch-track::after { content: ''; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: transform .22s cubic-bezier(.22, 1.25, .36, 1); }
    .af-switch input:checked + .af-switch-track { background: var(--ac); }
    .af-switch input:checked + .af-switch-track::after { transform: translateX(16px); }
    .af-switch input:focus-visible + .af-switch-track { box-shadow: 0 0 0 3px var(--acd); }

    /* Variables: initial + current value columns */
    .var-head.with-current, .var-row.with-current { grid-template-columns: 24px minmax(110px, 1fr) 1fr 1fr 85px 28px; }
    .cv-actions { display: flex; gap: 8px; justify-content: flex-end; margin: 10px 0 14px; flex-wrap: wrap; }
    .urlp-hl .var.dyn { color: #a855f7; }
    body:not(.light) .urlp-hl .var.dyn { color: #c084fc; background: rgba(192, 132, 252, .14); box-shadow: 0 0 0 1px rgba(192, 132, 252, .3); }

    /* Request name bar: presence, examples, history */
    .rn-btn { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; height: 24px; border-radius: 6px; border: 1px solid var(--bd); background: var(--bg2); color: var(--tx2); font-size: 11px; font-weight: 600; line-height: 1; white-space: nowrap; cursor: pointer; flex-shrink: 0; transition: border-color .15s ease, color .15s ease, background-color .15s ease; }
    .rn-btn svg { flex-shrink: 0; }
    .rn-btn:hover { border-color: var(--ac); color: var(--ac); background: var(--acd); }
    .rn-btn .tbdg { margin-left: 2px; }
    .rn-presence { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }
    .rn-presence-txt { font-size: 10.5px; color: var(--tx3); max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .mini-av { width: 20px; height: 20px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; font-size: 10px; font-weight: 700; flex-shrink: 0; box-shadow: 0 0 0 2px var(--bg2); }
    .mini-av.more { background: var(--bd2); color: var(--tx); font-size: 9px; }
    .presence-stack { display: flex; align-items: center; padding-left: 6px; }
    .presence-stack .mini-av { margin-left: -6px; width: 24px; height: 24px; font-size: 11px; }
    .presence-stack .mini-av:first-child { margin-left: 0; }
    .req-row.peer-open::after { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #a855f7; box-shadow: 0 0 6px #a855f7; flex-shrink: 0; margin-left: 4px; }
    #live-dot { color: var(--gn) !important; }
    #live-dot.off { color: var(--rd) !important; }

    /* Split modals (examples, versions) */
    .mhd-sub { font-size: 12px; font-weight: 500; color: var(--tx3); max-width: 360px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .split-body { flex-direction: row !important; gap: 0 !important; padding: 0 !important; height: min(66vh, 620px); }
    .split-side { width: 250px; flex-shrink: 0; border-right: 1px solid var(--bd); padding: 12px; overflow-y: auto; display: flex; flex-direction: column; gap: 4px; }
    .split-main { flex: 1; min-width: 0; padding: 18px 22px; overflow-y: auto; }
    .side-item { display: flex; align-items: center; gap: 9px; padding: 9px 10px; border-radius: 8px; cursor: pointer; border: 1px solid transparent; transition: background-color .15s ease, border-color .15s ease, transform .2s cubic-bezier(.2, .8, .2, 1); }
    .side-item:hover { background: var(--bg3); transform: translateX(2px); }
    .side-item.on { background: var(--acd); border-color: color-mix(in srgb, var(--ac) 35%, transparent); }
    .side-item-txt { flex: 1; min-width: 0; }
    .side-item-ttl { font-size: 12.5px; font-weight: 600; color: var(--tx); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .side-item-sub { font-size: 11px; color: var(--tx3); margin-top: 1px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--bd); }
    .detail-ttl { font-size: 15px; font-weight: 700; color: var(--tx); }
    .detail-sub { font-size: 11.5px; color: var(--tx3); margin-top: 4px; display: flex; align-items: center; gap: 6px; word-break: break-all; }
    .detail-actions { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0; }
    .detail-sec { margin-bottom: 10px; font-size: 12px; }
    .detail-sec summary { cursor: pointer; color: var(--tx2); font-weight: 600; padding: 4px 0; }
    .detail-pre { margin: 0; padding: 14px 16px; border-radius: var(--r2); background: var(--bg3); border: 1px solid var(--bd); font-family: 'Fira Code', monospace !important; font-size: 11.5px; line-height: 1.6; white-space: pre-wrap; word-break: break-word; max-height: 46vh; overflow: auto; }
    .btn.dn-soft { color: var(--rd); }
    .btn.dn-soft:hover { border-color: var(--rd); background: var(--rdd); }
    .muted { color: var(--tx3); }
    .mono { font-family: 'Fira Code', monospace !important; }

    /* Version diff */
    .diff-note { font-size: 12px; color: var(--tx2); margin: 14px 0 8px; font-weight: 600; }
    .diff-row { border: 1px solid var(--bd); border-radius: var(--r2); margin-bottom: 10px; overflow: hidden; }
    .diff-key { padding: 7px 12px; font-size: 11.5px; font-weight: 700; background: var(--bg3); border-bottom: 1px solid var(--bd); color: var(--tx); }
    .diff-cols { display: grid; grid-template-columns: 1fr 1fr; }
    .diff-cols > div { padding: 8px 12px; min-width: 0; }
    .diff-cols > div + div { border-left: 1px solid var(--bd); }
    .diff-cols span { display: block; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 4px; }
    .diff-old span { color: var(--yw); }
    .diff-new span { color: var(--ac); }
    .diff-cols pre { margin: 0; font-family: 'Fira Code', monospace !important; font-size: 11px; white-space: pre-wrap; word-break: break-word; color: var(--tx2); max-height: 160px; overflow: auto; }

    /* Trash & cookie jar */
    .trash-sec { margin-bottom: 16px; }
    .trash-sec-ttl { font-size: 11px; font-weight: 700; color: var(--tx3); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 6px; display: flex; gap: 6px; align-items: center; }
    .trash-sec-ttl span { background: var(--bg3); border: 1px solid var(--bd); border-radius: 999px; padding: 0 7px; font-size: 10px; }
    .trash-row, .ck-row { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border: 1px solid var(--bd); border-radius: var(--r2); background: var(--bg3); margin-bottom: 6px; transition: border-color .15s ease, transform .2s cubic-bezier(.2, .8, .2, 1); }
    .trash-row:hover, .ck-row:hover { border-color: var(--bd2); transform: translateX(2px); }
    .trash-ico { width: 30px; display: flex; justify-content: center; flex-shrink: 0; font-size: 15px; }
    .ck-form { display: grid; grid-template-columns: 1.2fr 1fr 1.4fr .6fr auto; gap: 6px; }
    .ck-domain { margin-bottom: 12px; }
    .ck-domain-hd { display: flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 700; margin-bottom: 6px; }
    .res-ck { margin: 10px; width: calc(100% - 20px); }

    /* Runner */
    .file-drop { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border: 1.5px dashed var(--bd2); border-radius: var(--r2); background: var(--bg3); cursor: pointer; font-size: 12px; color: var(--tx2); transition: border-color .15s ease, background-color .15s ease; }
    .file-drop:hover { border-color: var(--ac); background: var(--acd); color: var(--ac); }
    .file-drop input { max-width: 260px; font-size: 11.5px; }
    .run-data-info { font-size: 11.5px; color: var(--tx3); margin-top: 6px; line-height: 1.6; }
    .run-summary { margin: 14px 0 10px; font-size: 12.5px; display: flex; align-items: center; gap: 12px; font-weight: 600; }
    .run-iter-hd { font-size: 11px; font-weight: 700; color: var(--tx2); text-transform: uppercase; letter-spacing: .04em; margin: 14px 0 6px; display: flex; gap: 8px; align-items: baseline; }
    .run-iter-hd .muted { text-transform: none; letter-spacing: 0; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .run-row.ok { border-left: 3px solid var(--gn); }
    .run-row.bad { border-left: 3px solid var(--rd); }
    .run-test-fails { margin: -2px 0 8px 26px; padding: 6px 10px; font-size: 11px; color: var(--rd); background: var(--rdd); border-radius: 6px; line-height: 1.6; }

    /* Toast with an action (undo) */
    .toast-action { display: flex; align-items: center; gap: 12px; }
    .toast-action button { border: 1px solid currentColor; background: transparent; color: inherit; font-weight: 700; font-size: 11px; padding: 3px 9px; border-radius: 6px; cursor: pointer; transition: background-color .15s ease; }
    .toast-action button:hover { background: color-mix(in srgb, currentColor 14%, transparent); }

    #folder-modal .mbd, #col-modal .mbd { overflow-y: auto; max-height: calc(90vh - 140px); }

    @media (max-width: 760px) {
      .auth-grid, .diff-cols { grid-template-columns: 1fr; }
      .split-body { flex-direction: column !important; height: auto; }
      .split-side { width: auto; border-right: 0; border-bottom: 1px solid var(--bd); max-height: 200px; }
      .ck-form { grid-template-columns: 1fr 1fr; }
    }

    /* ── SMOOTH NAVIGATION ─────────────────────────────────
       Gentle transitions when switching tabs, panels, workspaces and themes. */
    body, #topbar, #sidebar, #center, #sbar, .modal {
      transition: background-color .25s ease, border-color .25s ease, color .25s ease;
    }
    .tab { position: relative; transition: color .2s ease; }
    .tab::after { content: ''; position: absolute; left: 50%; right: 50%; bottom: -1px; height: 2px; background: var(--ac); border-radius: 2px; transition: left .28s cubic-bezier(.16, 1, .3, 1), right .28s cubic-bezier(.16, 1, .3, 1); }
    .tab.on { border-color: transparent; }
    .tab.on::after { left: 0; right: 0; }

    @media (prefers-reduced-motion: no-preference) {
      @keyframes motionExpand {
        from { opacity: 0; transform: translateY(-4px); clip-path: inset(0 0 100% 0); }
        to { opacity: 1; transform: translateY(0); clip-path: inset(0 0 0 0); }
      }
      @keyframes motionSwap {
        from { opacity: .35; transform: translateY(6px); }
        to { opacity: 1; transform: translateY(0); }
      }
      @keyframes sendPulse {
        0%, 100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, .45); }
        50% { box-shadow: 0 0 0 6px rgba(239, 68, 68, 0); }
      }
      body.authenticated .motion-expand { animation: motionExpand .28s var(--motion-soft) both; }
      body.authenticated .motion-swap { animation: motionSwap .38s var(--motion-soft) both; }
      body.authenticated .sbtn.sending { animation: sendPulse 1.2s ease-in-out infinite; }
      body.authenticated .col-arr { transition: transform .25s var(--motion-spring); }
      body.authenticated .split-main > *, body.authenticated #trash-body > *, body.authenticated #ck-list > * { animation: motionReveal .28s var(--motion-soft) both; }
      body.authenticated .side-item.on { animation: motionPop .22s var(--motion-spring); }
      body.authenticated .presence-stack .mini-av { animation: motionPop .3s var(--motion-spring) both; }
      body.authenticated .auth-ed > * { animation: motionReveal .24s var(--motion-soft) both; }
    }

    /* "⋯" request tools menu (snippet, proxy, cookie jar) */
    .more-wrap { position: relative; flex-shrink: 0; }
    .more-btn { position: relative; padding-left: 9px; padding-right: 9px; }
    .more-dot { position: absolute; top: 3px; right: 3px; width: 7px; height: 7px; border-radius: 50%; background: var(--ac); box-shadow: 0 0 0 2px var(--bg2); opacity: 0; transform: scale(.4); transition: opacity .2s ease, transform .25s cubic-bezier(.22, 1.25, .36, 1); }
    .more-dot.on { opacity: 1; transform: scale(1); }
    .more-drop { position: absolute; top: calc(100% + 6px); right: 0; z-index: 60; width: 270px; padding: 6px; border-radius: var(--r2); background: var(--bg2); border: 1px solid var(--bd); box-shadow: var(--sh); display: flex; flex-direction: column; gap: 2px; opacity: 0; visibility: hidden; transform: translateY(-6px) scale(.97); transform-origin: top right; transition: opacity .16s ease, transform .2s cubic-bezier(.16, 1, .3, 1), visibility 0s linear .2s; }
    .more-drop.on { opacity: 1; visibility: visible; transform: translateY(0) scale(1); transition: opacity .16s ease, transform .22s cubic-bezier(.22, 1.25, .36, 1), visibility 0s; }
    /* ── TOPBAR TOOLS OVERFLOW DROPDOWN ("titik 3") ─────── */
    .topbar-tools-wrap { position: relative; display: inline-flex; align-items: center; flex-shrink: 0; }
    .topbar-tools-drop { position: absolute; top: calc(100% + 6px); right: 0; z-index: 350; width: 260px; padding: 6px; border-radius: var(--r2); background: var(--bg2); border: 1px solid var(--bd); box-shadow: 0 16px 48px rgba(0, 0, 0, .45), 0 0 0 1px rgba(255, 255, 255, .04); display: flex; flex-direction: column; gap: 2px; opacity: 0; visibility: hidden; transform: translateY(-6px) scale(.97); transform-origin: top right; transition: opacity .16s ease, transform .2s cubic-bezier(.16, 1, .3, 1), visibility 0s linear .2s; }
    .topbar-tools-drop.on { opacity: 1; visibility: visible; transform: translateY(0) scale(1); transition: opacity .16s ease, transform .22s cubic-bezier(.22, 1.25, .36, 1), visibility 0s; }
    .more-item { display: flex; align-items: center; gap: 10px; width: 100%; padding: 8px 10px; border: 0; border-radius: 8px; background: transparent; color: var(--tx2); text-align: left; cursor: pointer; transition: background-color .15s ease, color .15s ease; }
    .more-item:hover { background: var(--bg3); color: var(--tx); }
    .more-item > svg { flex-shrink: 0; color: var(--tx3); }
    .more-item:hover > svg { color: var(--ac); }
    .more-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
    .more-txt b { font-size: 12.5px; font-weight: 600; color: var(--tx); }
    .more-txt small { font-size: 11px; color: var(--tx3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    #proxy-toggle.more-item.on { background: var(--acd); color: var(--tx); border: 0; }
    #proxy-toggle.more-item.on > svg { color: var(--ac); }
    #proxy-toggle.more-item::after, #proxy-toggle.more-item.on::after { content: none; }

    /* The request name lives in the tab title (double-click to rename); the separate name bar is not shown */
    #rnamebar { display: none !important; }
    #req-tabs { align-items: center; }
    .req-tabs-tools { margin-left: auto; display: flex; align-items: center; gap: 6px; padding: 0 10px 0 12px; flex-shrink: 0; }
    .req-tab-name { cursor: text; }

    .dh-ul { margin: 0 0 12px 18px; padding: 0; list-style: disc; color: var(--tx2); }
    .dh-ul li { margin-bottom: 4px; }
    .dh-ul li::marker { color: var(--ac); }

    /* ── ADAPTIVE DENSITY ──────────────────────────────────
       Panels adapt to the space they actually get (small laptops, left/right split):
       secondary buttons collapse to icon + tooltip, toolbars stay on one line. */
    #req-panel { container: reqpanel / inline-size; }
    #res-panel { container: respanel / inline-size; }

    /* Response toolbar: one line, actions grouped on the right */
    .rtb { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
    .rtb::-webkit-scrollbar { display: none; }
    .rtb > * { flex-shrink: 0; }
    .rtb-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
    .rtb-actions .btn { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
    .rtb-actions .ibtn-action {
      width: 28px;
      height: 28px;
      font-size: 13px;
      border-radius: var(--r);
      border: 1px solid var(--bd);
      background: var(--bg3);
      color: var(--tx2);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: all .15s ease;
    }
    .rtb-actions .ibtn-action:hover {
      background: var(--bg4);
      border-color: var(--bd2);
      color: var(--tx);
      transform: translateY(-1px);
    }
    .lbl { white-space: nowrap; }

    /* Request tab row: tools stay visible at the right edge while tabs scroll */
    .req-tabs-tools { position: sticky; right: 0; background: linear-gradient(to right, transparent, var(--bg2) 12px); padding-left: 18px; }
    .seg-pills { max-width: 100%; }
    .seg-pill { white-space: nowrap; }

    @container respanel (max-width: 820px) {
      .rtb-actions .lbl { display: none; }
      .rtb-actions .btn { padding: 4px 8px; }
      .rtb .rmeta { font-size: 11px; }
    }
    @container respanel (max-width: 560px) {
      .res-mode-pill .rm-btn { padding: 3px 7px; font-size: 10.5px; }
      #res-tabs .tab { padding: 8px 8px; }
    }

    @container reqpanel (max-width: 860px) {
      .req-tabs-tools .lbl { display: none; }
      .req-tabs-tools .rn-btn { padding: 3px 7px; }
      .rn-presence-txt { display: none; }
    }
    @container reqpanel (max-width: 700px) {
      #req-tabs .tab { padding: 8px 8px; }
      .seg-pills { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
      .seg-pills::-webkit-scrollbar { display: none; }
      .seg-pill { padding: 5px 9px; font-size: 11px; }
      .auth-grid { grid-template-columns: 1fr; }
      .set-desc { display: none; }
    }

    /* Topbar on smaller desktops: tool buttons become icon-only (tooltips keep the names) */
    @media (max-width: 1500px) {
      #topbar > .btn.sm { font-size: 0; gap: 0; padding: 6px 9px; }
      #topbar > .btn.sm svg { width: 13px; height: 13px; }
    }
    @media (max-width: 1280px) {
      #workspace-trigger > span:first-of-type { display: none; }
      #proj-label { max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    }
    @media (max-width: 1100px) {
      #sidebar { width: 210px; }
    }

    /* ── SMALL SCREENS (progressive) ───────────────────────
       Secondary items step out of the way as the window narrows, so nothing is pushed off-screen. */
    #topbar { min-width: 0; }
    #topbar .env-pill, #topbar .proj-pill { min-width: 0; }
    #ename, #proj-label { display: inline-block; max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; }

    /* Narrow response panel: toolbar wraps into two tidy rows instead of being cut off */
    @container respanel (max-width: 600px) {
      .rtb { flex-wrap: wrap; row-gap: 6px; overflow: visible; }
      .rtb .sp { display: none; }
      .rtb-actions { margin-left: auto; }
    }
    @container reqpanel (max-width: 600px) {
      #req-tabs .tab { padding: 8px 6px; font-size: 11.5px; }
      .urlbar { gap: 6px; }
    }

    @media (max-width: 1100px) {
      #topbar .bver { display: none; }
      #unm { display: none; }
      #ename, #proj-label { max-width: 110px; }
    }
    @media (max-width: 960px) {
      /* The workspace is stacked automatically at this size, so the layout toggle is not needed */
      #btn-tb, #btn-lr { display: none; }
      #topbar .tsep { display: none; }
      #topbar > .btn.sm { padding: 6px 8px; }
    }
    @media (max-width: 820px) {
      #help-btn { display: none; }
      #topbar > .btn.sm[onclick*="AF3D"] { display: none; }
      #ename, #proj-label { max-width: 80px; }
      .env-pill, .proj-pill { padding-left: 8px; padding-right: 8px; }
    }
    @media (max-width: 700px) {
      #topbar .brand .bii-logo { font-size: 15px; }
      #topbar > .btn.sm[onclick*="openExportModal"] { display: none; }
      .proj-pill svg:first-child { display: none; }
    }

    /* ── WORKSPACE LIST CARDS ──────────────────────────────── */
    .ws-card { position: relative; display: flex; align-items: center; gap: 14px; padding: 12px 14px 12px 16px; border: 1px solid var(--bd); border-radius: 12px; background: var(--bg2); cursor: pointer; outline: none; transition: border-color .18s ease, background-color .18s ease, box-shadow .2s ease, transform .2s cubic-bezier(.2, .8, .2, 1); }
    .ws-card::before { content: ''; position: absolute; left: -1px; top: 10px; bottom: 10px; width: 3px; border-radius: 0 3px 3px 0; background: var(--ws-color, var(--ac)); opacity: 0; transition: opacity .2s ease; }
    .ws-card:hover, .ws-card:focus-visible { border-color: var(--bd2); background: var(--bg3); box-shadow: 0 6px 18px rgba(0, 0, 0, .06); transform: translateY(-1px); }
    .ws-card:focus-visible { box-shadow: 0 0 0 3px var(--acd); }
    .ws-card.active { border-color: color-mix(in srgb, var(--ac) 45%, var(--bd)); background: color-mix(in srgb, var(--acd) 55%, var(--bg2)); }
    .ws-card.active::before { opacity: 1; background: var(--ac); }
    .ws-av { width: 40px; height: 40px; border-radius: 10px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: var(--ws-color, var(--ac)); color: #fff; font-weight: 800; font-size: 16px; box-shadow: 0 3px 10px color-mix(in srgb, var(--ws-color, var(--ac)) 30%, transparent); }
    .ws-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
    .ws-name-row { display: flex; align-items: center; gap: 8px; min-width: 0; }
    .ws-name { font-size: 13.5px; font-weight: 700; color: var(--tx); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .ws-role { flex-shrink: 0; font-size: 10px; font-weight: 600; padding: 1px 7px; border-radius: 999px; background: var(--bg4); color: var(--tx2); }
    .ws-role.owner { background: rgba(245, 158, 11, .13); color: #b45309; }
    .ws-role.admin { background: rgba(168, 85, 247, .13); color: #7e22ce; }
    .ws-role.editor { background: rgba(34, 197, 94, .13); color: #15803d; }
    body:not(.light) .ws-role.owner { color: #fbbf24; }
    body:not(.light) .ws-role.admin { color: #c084fc; }
    body:not(.light) .ws-role.editor { color: #4ade80; }
    .ws-active { flex-shrink: 0; display: inline-flex; align-items: center; gap: 5px; font-size: 10.5px; font-weight: 700; color: var(--ac); }
    .ws-active-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--ac); box-shadow: 0 0 0 3px var(--acd); }
    .ws-desc { font-size: 11.5px; color: var(--tx3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .ws-meta { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--tx3); flex-wrap: wrap; }
    .ws-sep { opacity: .6; }
    .ws-code { display: inline-flex; align-items: center; gap: 5px; padding: 1px 7px; border: 1px dashed var(--bd2); border-radius: 6px; background: transparent; color: var(--tx2); font-family: 'Fira Code', monospace !important; font-size: 10.5px; font-weight: 600; letter-spacing: .06em; cursor: pointer; transition: border-color .15s ease, color .15s ease, background-color .15s ease; }
    .ws-code:hover { border-color: var(--ac); color: var(--ac); background: var(--acd); }
    .ws-code.copied { border-style: solid; border-color: var(--gn); color: var(--gn); }
    .ws-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
    .ws-act { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--tx3); cursor: pointer; opacity: 0; transition: opacity .15s ease, background-color .15s ease, color .15s ease, border-color .15s ease; }
    .ws-card:hover .ws-act, .ws-card:focus-within .ws-act { opacity: 1; }
    .ws-act:hover { background: var(--bg2); border-color: var(--bd); color: var(--ac); }
    .ws-act.danger:hover { color: var(--rd); border-color: color-mix(in srgb, var(--rd) 40%, transparent); background: var(--rdd); }
    .ws-open { padding: 6px 14px; border-radius: 8px; border: 1px solid var(--bd); background: var(--bg2); color: var(--tx); font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap; transition: border-color .15s ease, color .15s ease, background-color .15s ease; }
    .ws-open:hover { border-color: var(--ac); color: #fff; background: var(--ac); }
    @media (hover: none) { .ws-act { opacity: 1; } }

    /* Toasts stay above any stack of open modals */
    #toasts { z-index: 100000; }
    /* Action buttons with an icon: icon and label aligned on one line */
    .detail-actions .btn, .trash-row .btn, .detail-head .btn { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
    .detail-actions .btn svg, .trash-row .btn svg, .detail-head .btn svg { flex-shrink: 0; }
    .btn.dn-soft { border-color: color-mix(in srgb, var(--rd) 35%, var(--bd)); }
