
    /* ── GTRepo-inspired Zero Trust AI Gateway Design System ── */
    :root {
      --zt-bg:           #08080a;
      --zt-bg-1:         #0d0f14;
      --zt-bg-2:         #111420;
      --zt-bg-3:         #181b28;
      --zt-panel:        rgba(13, 15, 22, .82);
      --zt-panel-strong: rgba(13, 15, 22, .96);
      --zt-border:       rgba(255, 255, 255, .07);
      --zt-border-2:     rgba(255, 255, 255, .12);
      --zt-border-hot:   rgba(0, 212, 255, .36);
      --zt-text:         #edf2ff;
      --zt-muted:        #7c8499;
      --zt-muted-2:      #9aa0b4;
      --zt-cyan:         #00d4ff;
      --zt-cyan-dim:     rgba(0, 212, 255, .10);
      --zt-cyan-border:  rgba(0, 212, 255, .28);
      --zt-green:        #22d3a0;
      --zt-green-dim:    rgba(34, 211, 160, .10);
      --zt-amber:        #f5a623;
      --zt-amber-dim:    rgba(245, 166, 35, .10);
      --zt-red:          #ff4d6d;
      --zt-red-dim:      rgba(255, 77, 109, .10);
      --zt-blue:         #4d9cff;
      --zt-blue-dim:     rgba(77, 156, 255, .10);
      --zt-radius:       8px;
      --zt-fast:         200ms cubic-bezier(.2, .8, .2, 1);
      --zt-sidebar-w:    248px;
      --zt-topbar-h:     58px;
      --zt-mono:         'JetBrains Mono', 'Fira Code', 'Cascadia Code', ui-monospace, monospace;
    }
    *, *::before, *::after { box-sizing: border-box; }
    .hidden { display: none !important; }
    html {
      background: var(--zt-bg);
      min-width: 0;
      overflow-x: hidden;
      -webkit-text-size-adjust: 100%;
      text-size-adjust: 100%;
    }
    body {
      margin: 0;
      min-width: 0;
      overflow-x: hidden;
      background: var(--zt-bg) !important;
      color: var(--zt-text) !important;
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    }
    img, canvas, svg, video { max-width: 100%; height: auto; }
    table { max-width: 100%; }
    pre, code, textarea, input, select, button, a { max-width: 100%; }
    input, textarea, select, button { font-size: 14px; }

    /* ── Layout containers ── */
    .shell, .app, .wrap, header, main, section, article, aside, .panel, .card, .stat, .metric, .status-card {
      min-width: 0;
    }
    .shell, .wrap {
      width: min(1440px, calc(100% - 28px));
      margin-inline: auto;
    }
    body:not(.zt-with-shell) .shell,
    body:not(.zt-with-shell) .wrap {
      padding-inline: clamp(10px, 2vw, 22px);
    }
    .grid, .stats, .metrics, .summary, .wide, .layout, .cc-grid, .soc-grid, .metric-grid, .kpi-grid, .split, .flow, #cardView {
      min-width: 0;
    }
    .row, .actions, .nav-row, header, .chat-head, .input-row { min-width: 0; }
    .row > *, .actions > *, .nav-row > * { min-width: 0; }
    .row input, .row textarea, .row select,
    .actions input, .actions textarea, .actions select {
      flex: 1 1 220px !important;
      min-width: min(220px, 100%) !important;
    }

    /* ── Body texture: subtle horizontal rule lines ── */
    body::before {
      content: "";
      position: fixed;
      inset: 0;
      pointer-events: none;
      z-index: 0;
      background-image: linear-gradient(rgba(255,255,255,.028) 1px, transparent 1px) !important;
      background-size: 100% 40px !important;
      opacity: 1 !important;
      mask-image: linear-gradient(to bottom, rgba(0,0,0,.6), rgba(0,0,0,.02)) !important;
    }
    body::after { display: none !important; }
    .shell, .app, .wrap { position: relative; z-index: 1; animation: ztFadeIn .24s ease both; }

    /* ── Sidebar (desktop) ── */
    body.zt-with-shell .shell,
    body.zt-with-shell .wrap,
    body.zt-with-shell .app {
      margin-left: calc(var(--zt-sidebar-w) + 16px) !important;
      margin-top: calc(var(--zt-topbar-h) + 14px) !important;
      width: calc(100% - var(--zt-sidebar-w) - 28px) !important;
    }
    body.zt-with-shell .app {
      height: calc(100vh - var(--zt-topbar-h) - 24px) !important;
    }
    .zt-sidebar {
      position: fixed;
      left: 10px;
      top: 10px;
      bottom: 10px;
      width: var(--zt-sidebar-w);
      z-index: 20;
      border: 1px solid var(--zt-border-2);
      border-radius: 12px;
      background: var(--zt-bg-1);
      display: grid;
      grid-template-rows: auto 1fr auto;
      padding: 14px 10px;
      gap: 10px;
    }
    .zt-brand {
      padding: 8px 10px 12px;
      border-bottom: 1px solid var(--zt-border);
    }
    .zt-brand b {
      display: block;
      font-size: 13px;
      font-weight: 700;
      color: var(--zt-cyan);
      letter-spacing: .01em;
      font-family: var(--zt-mono);
    }
    .zt-brand span {
      display: block;
      color: var(--zt-muted);
      font-size: 11px;
      margin-top: 4px;
    }
    .zt-nav { display: grid; gap: 3px; align-content: start; padding: 4px; }
    .zt-nav a {
      display: flex;
      align-items: center;
      min-width: 0;
      gap: 9px;
      border-radius: 7px !important;
      padding: 9px 11px !important;
      font-size: 13px;
      font-weight: 500;
      border: 1px solid transparent !important;
      background: transparent !important;
      box-shadow: none !important;
      transform: none !important;
      text-decoration: none;
      color: var(--zt-muted) !important;
      transition: color .15s, background .15s, border-color .15s !important;
    }
    .zt-nav a:hover {
      color: var(--zt-text) !important;
      background: var(--zt-bg-3) !important;
      border-color: var(--zt-border) !important;
    }
    .zt-nav a span {
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .zt-nav a.zt-active {
      border-color: var(--zt-cyan-border) !important;
      background: var(--zt-cyan-dim) !important;
      color: var(--zt-cyan) !important;
      box-shadow: none !important;
    }
    .zt-status {
      margin: 0 4px;
      padding: 10px;
      border-top: 1px solid var(--zt-border);
      display: grid;
      gap: 8px;
    }
    .zt-status .zt-dot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      display: inline-block;
      margin-right: 6px;
    }
    .zt-status .good { color: var(--zt-green); }
    .zt-status .warn { color: var(--zt-amber); }
    .zt-status .bad  { color: var(--zt-red); }

    /* ── Topbar ── */
    .zt-topbar {
      position: fixed;
      left: calc(var(--zt-sidebar-w) + 26px);
      right: 10px;
      top: 10px;
      height: var(--zt-topbar-h);
      z-index: 19;
      border: 1px solid var(--zt-border-2);
      border-radius: 10px;
      background: var(--zt-bg-1);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      padding: 8px 14px;
    }
    .zt-topbar h3 {
      margin: 0;
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      font-size: 14px;
      color: var(--zt-text);
      font-weight: 600;
    }
    .zt-topbar .meta { display: flex; gap: 8px; flex-wrap: wrap; }
    .zt-chip {
      border: 1px solid var(--zt-border-2);
      border-radius: 999px;
      padding: 4px 9px;
      font-size: 11px;
      font-weight: 500;
      color: var(--zt-muted-2);
      background: var(--zt-bg-3);
      white-space: nowrap;
    }

    /* ── Cards, panels, stats ── */
    header, .chat-head, .card, .panel, .stat, .metric, .status-card {
      overflow-wrap: anywhere;
    }
    header, .chat-head {
      border: 1px solid var(--zt-border-2) !important;
      border-radius: var(--zt-radius) !important;
      background: var(--zt-bg-1) !important;
      backdrop-filter: none !important;
      box-shadow: none !important;
      padding: 16px !important;
    }
    .panel, .stat, .card, .metric, .status-card, .session, .bubble, pre, input, textarea, select {
      border: 1px solid var(--zt-border-2) !important;
      border-radius: var(--zt-radius) !important;
      background: var(--zt-bg-2) !important;
      box-shadow: none !important;
      backdrop-filter: none !important;
    }
    .panel::after, .stat::after, .card::after { display: none !important; }
    .card, .stat, .metric, .status-card, .session, .bubble {
      transition: border-color var(--zt-fast) !important;
    }
    .card:hover, .stat:hover, .metric:hover, .status-card:hover, .session:hover {
      transform: none !important;
      border-color: var(--zt-border-hot) !important;
      box-shadow: none !important;
    }
    .session.active, .tab.active {
      border-color: var(--zt-cyan-border) !important;
      background: var(--zt-cyan-dim) !important;
      box-shadow: none !important;
    }

    /* ── Typography ── */
    h1, h2, .eyebrow, .label, .id {
      text-shadow: none !important;
      letter-spacing: 0 !important;
    }
    h1 {
      background: none !important;
      -webkit-background-clip: initial !important;
      color: var(--zt-text) !important;
      text-transform: none !important;
      font-weight: 700 !important;
    }
    h2, .eyebrow, .label, .id { color: var(--zt-cyan) !important; }
    p, .muted, small, .meta { color: var(--zt-muted) !important; }

    /* ── GTRepo section labels: // Section Name ── */
    .gt-label {
      font-size: 11px !important;
      font-weight: 600 !important;
      letter-spacing: .1em !important;
      text-transform: uppercase !important;
      color: var(--zt-muted) !important;
      margin-bottom: 12px !important;
      display: block !important;
    }
    .gt-label::before {
      content: '// ';
      color: var(--zt-cyan) !important;
      font-family: var(--zt-mono) !important;
    }

    /* ── Buttons & links ── */
    a, button {
      border: 1px solid var(--zt-border-2) !important;
      border-radius: 7px !important;
      background: var(--zt-bg-3) !important;
      color: var(--zt-muted-2) !important;
      box-shadow: none !important;
      font-weight: 500 !important;
      transition: border-color var(--zt-fast), color var(--zt-fast), background var(--zt-fast) !important;
    }
    a:hover, button:hover {
      transform: none !important;
      border-color: var(--zt-border-hot) !important;
      color: var(--zt-cyan) !important;
      box-shadow: none !important;
    }
    button.primary, #sendBtn, .actions button:not(.secondary):not(.danger) {
      background: var(--zt-cyan) !important;
      color: #000 !important;
      border-color: var(--zt-cyan) !important;
      font-weight: 700 !important;
    }
    button.primary:hover, #sendBtn:hover {
      background: #00bde8 !important;
      border-color: #00bde8 !important;
      color: #000 !important;
    }
    .danger, button.danger {
      border-color: rgba(255,77,109,.32) !important;
      background: var(--zt-red-dim) !important;
      color: var(--zt-red) !important;
    }
    .danger:hover, button.danger:hover {
      border-color: rgba(255,77,109,.6) !important;
      color: var(--zt-red) !important;
    }
    input:focus, textarea:focus, select:focus {
      border-color: var(--zt-border-hot) !important;
      box-shadow: 0 0 0 3px var(--zt-cyan-dim) !important;
      outline: none !important;
    }
    input, textarea, select {
      color: var(--zt-text) !important;
    }

    /* ── Badges & pills ── */
    .badge, .pill, .status-badge {
      border: 1px solid var(--zt-border-2) !important;
      border-radius: 999px !important;
      background: var(--zt-bg-3) !important;
      color: var(--zt-muted-2) !important;
      box-shadow: none !important;
    }
    .allow, [data-decision="allow"], .badge.allow, .pill.allow {
      color: var(--zt-green) !important;
      border-color: rgba(34,211,160,.38) !important;
      background: var(--zt-green-dim) !important;
    }
    .challenge, [data-decision="challenge"], .badge.challenge, .pill.challenge {
      color: var(--zt-amber) !important;
      border-color: rgba(245,166,35,.38) !important;
      background: var(--zt-amber-dim) !important;
    }
    .block, [data-decision="block"], .badge.block, .pill.block, .bad {
      color: var(--zt-red) !important;
      border-color: rgba(255,77,109,.38) !important;
      background: var(--zt-red-dim) !important;
      animation: none !important;
    }
    .ready { border-color: rgba(34,211,160,.38) !important; }
    .warn, .medium { border-color: rgba(245,166,35,.38) !important; }
    .high, .critical { border-color: rgba(255,77,109,.42) !important; animation: none !important; }
    .value, .metric strong, .metric b {
      color: var(--zt-text) !important;
      font-variant-numeric: tabular-nums;
    }
    pre {
      color: var(--zt-muted-2) !important;
      line-height: 1.55 !important;
      overflow-x: auto !important;
    }

    /* ── Feed entries & live log rows ── */
    .feed-entry {
      border-color: var(--zt-border) !important;
      background: var(--zt-bg-2) !important;
    }
    .feed-entry:hover { border-color: var(--zt-border-hot) !important; }

    /* ── Animations ── */
    .zt-trace-step {
      display: block;
      opacity: 0;
      transform: translateY(4px);
      animation: ztStep .22s ease forwards;
    }
    .zt-log-card { animation: ztFadeIn .16s ease both; }
    .dot { box-shadow: none !important; }
    @keyframes ztFadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
    @keyframes ztStep   { to { opacity: 1; transform: translateY(0); } }
    @keyframes ztPulse  {
      0%, 100% { box-shadow: none !important; }
      50%       { box-shadow: 0 0 28px rgba(255,77,109,.22) !important; }
    }
    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
    }

    /* ── Mobile: sidebar → bottom tab bar ── */
    @media (max-width: 980px) {
      :root { --zt-topbar-h: 52px; --zt-mobile-nav-h: 72px; }
      html, body { overflow-x: hidden !important; }
      body.zt-with-shell { padding-bottom: calc(var(--zt-mobile-nav-h) + env(safe-area-inset-bottom, 0px)) !important; }
      body.zt-with-shell .shell,
      body.zt-with-shell .wrap,
      body.zt-with-shell .app,
      body.zt-with-shell > main {
        margin-left: 0 !important;
        margin-right: 0 !important;
        margin-top: calc(var(--zt-topbar-h) + 10px) !important;
        width: 100% !important;
        max-width: 100% !important;
      }
      body.zt-with-shell .shell,
      body.zt-with-shell .wrap {
        padding-left: 12px !important;
        padding-right: 12px !important;
        padding-bottom: calc(var(--zt-mobile-nav-h) + 16px) !important;
      }
      body.zt-with-shell .app {
        height: calc(100svh - var(--zt-topbar-h) - var(--zt-mobile-nav-h) - 20px) !important;
        min-height: unset !important;
        padding-inline: 10px !important;
      }
      .zt-topbar {
        left: 10px !important; right: 10px !important;
        top: max(10px, env(safe-area-inset-top, 0px)) !important;
        height: var(--zt-topbar-h) !important;
        border-radius: 12px !important;
        padding: 7px 12px !important;
      }
      .zt-topbar h3 { font-size: 13px; }
      .zt-topbar .meta { display: none; }
      .zt-sidebar {
        left: 10px !important; right: 10px !important;
        top: auto !important;
        bottom: max(10px, env(safe-area-inset-bottom, 0px)) !important;
        width: auto !important;
        height: var(--zt-mobile-nav-h) !important;
        border-radius: 14px !important;
        display: block !important;
        padding: 6px !important;
        overflow: hidden !important;
      }
      .zt-brand, .zt-status { display: none !important; }
      .zt-nav {
        height: 100%;
        display: flex !important;
        align-items: stretch;
        gap: 3px;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 0 2px !important;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
      }
      .zt-nav::-webkit-scrollbar { display: none; }
      .zt-nav a {
        flex: 0 0 62px;
        min-width: 62px;
        height: 100%;
        flex-direction: column !important;
        justify-content: center;
        align-items: center;
        gap: 3px !important;
        padding: 5px 3px !important;
        scroll-snap-align: center;
        border-radius: 10px !important;
        min-height: unset !important;
      }
      .zt-nav a b { font-size: 17px; line-height: 1; }
      .zt-nav a span {
        display: block !important;
        font-size: 9px !important;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        max-width: 56px;
        color: var(--zt-muted);
      }
      .zt-nav a.zt-active span { color: var(--zt-cyan); }
      .grid, .summary, .wide, .layout, .cc-grid, .soc-grid, .metric-grid, .split, .flow, #cardView {
        grid-template-columns: 1fr !important;
      }
      .stats, .metrics, .kpi-grid { grid-template-columns: repeat(2, 1fr) !important; }
      .heat { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
    }

    /* ── Phone ── */
    @media (max-width: 640px) {
      body.zt-with-shell .shell,
      body.zt-with-shell .wrap { padding-inline: 10px !important; }
      .grid, .stats, .metrics, .summary, .wide, .layout, .cc-grid, .soc-grid,
      .metric-grid, .kpi-grid, .split, .flow, #cardView, .heat {
        grid-template-columns: 1fr !important;
      }
      .table-wrap { overflow-x: auto !important; -webkit-overflow-scrolling: touch; max-width: 100%; }
      header, .chat-head { border-radius: 10px !important; padding: 12px !important; }
      .panel, .stat, .card, .metric, .status-card, .session, .bubble {
        border-radius: 10px !important;
      }
      .row, .actions, .nav-row { gap: 7px; }
      button, a { min-height: 40px; }
      .zt-nav a { min-height: unset !important; }
      h1 { font-size: clamp(22px, 9vw, 36px) !important; }
      h2 { font-size: clamp(14px, 5vw, 20px) !important; }
    }

    /* ── Small phones ── */
    @media (max-width: 420px) {
      :root { --zt-mobile-nav-h: 66px; }
      .zt-sidebar { left: 6px !important; right: 6px !important; padding: 5px !important; }
      .zt-nav a { flex-basis: 52px; min-width: 52px; }
      .zt-nav a span { display: none !important; }
      body.zt-with-shell .shell,
      body.zt-with-shell .wrap,
      body.zt-with-shell .app {
        padding-inline: 8px !important;
        margin-top: calc(var(--zt-topbar-h) + 8px) !important;
      }
      h1 { font-size: clamp(20px, 8vw, 28px) !important; }
      .zt-chip { padding: 3px 6px; font-size: 10px; }
    }

    /* ── Ultrawide ── */
    @media (min-width: 1440px) {
      body.zt-with-shell .shell,
      body.zt-with-shell .wrap,
      body.zt-with-shell .app {
        max-width: calc(1680px - var(--zt-sidebar-w));
        margin-right: auto !important;
      }
    }

    /* Auth pages: no sidebar/topbar */
    body.no-shell #ztSidebar,
    body.no-shell #ztTopbar,
    body.no-shell .zt-sidebar,
    body.no-shell .zt-topbar { display: none !important; }
    body.no-shell { padding-bottom: 0 !important; }

    /* ── Shared component contracts ── */
    .zt-page-wrapper { max-width: 1440px; }
    .zt-section-card, .zt-metric-card {
      border: 1px solid var(--zt-border-2) !important;
      border-radius: 10px !important;
      background: var(--zt-bg-2) !important;
    }
    .zt-section-card-highlight {
      border-color: var(--zt-cyan-border) !important;
      background: var(--zt-cyan-dim) !important;
    }
    .zt-section-card-warning {
      border-color: rgba(245,166,35,.35) !important;
      background: var(--zt-amber-dim) !important;
    }
    .zt-btn-primary {
      border-color: var(--zt-cyan) !important;
      background: var(--zt-cyan) !important;
      color: #000 !important;
      font-weight: 700 !important;
    }
    .zt-btn-secondary {
      border-color: var(--zt-border-2) !important;
      background: var(--zt-bg-3) !important;
      color: var(--zt-muted-2) !important;
    }
    .zt-btn-ghost {
      border-color: transparent !important;
      background: transparent !important;
      color: var(--zt-muted) !important;
    }
    .zt-btn-danger {
      border-color: rgba(255,77,109,.32) !important;
      background: var(--zt-red-dim) !important;
      color: var(--zt-red) !important;
    }
    .zt-input {
      border: 1px solid var(--zt-border-2) !important;
      border-radius: 8px !important;
      background: var(--zt-bg-3) !important;
      color: var(--zt-text) !important;
    }
    .zt-tab {
      border: 1px solid var(--zt-border-2) !important;
      border-radius: 8px !important;
      background: var(--zt-bg-3) !important;
      color: var(--zt-muted-2) !important;
    }
    .zt-tab-active, .tab.active {
      border-color: var(--zt-cyan-border) !important;
      background: var(--zt-cyan-dim) !important;
      color: var(--zt-cyan) !important;
      box-shadow: none !important;
    }
    .zt-table {
      width: 100%;
      border-collapse: collapse;
      color: var(--zt-muted-2);
    }
    .zt-table th, .zt-table td {
      border-bottom: 1px solid var(--zt-border);
      padding: 10px 8px;
      text-align: left;
      vertical-align: top;
    }
    .zt-table th {
      color: var(--zt-cyan);
      font-size: 11px;
      font-weight: 600;
      letter-spacing: .06em;
      text-transform: uppercase;
    }
    .zt-empty-state {
      border: 1px dashed var(--zt-border-2) !important;
      border-radius: 10px !important;
      background: var(--zt-bg-2) !important;
      color: var(--zt-muted) !important;
    }