/* Commercial shell on top of gip-real.css (same design system as localhost:8787).
 *
 * body.gip-app     → app shell (/gip/main/*) — hide marketing landing
 * body.gip-market  → landing / login / signup / callback — show landing
 * body.gip-ready   → required by real CSS (otherwise landing/app stay hidden)
 */

/* Real CSS hides layout until ready */
body.gip-ready .app-layout {
  visibility: visible !important;
}

/* Only the authenticated app hides the marketing landing */
body.gip-app .landing {
  display: none !important;
}

/* Marketing pages always show landing when ready
   (vence body.gip-commercial .landing do gip-real — senão signup/login ficam em branco) */
body.gip-market.gip-ready .landing,
body.gip-commercial.gip-market.gip-ready .landing,
body.gip-commercial.gip-market .landing {
  display: grid !important;
  visibility: visible !important;
  min-height: 100vh;
}

/* Route panels: app JS toggles .is-active */
body.gip-app .route-panel {
  display: none;
}
body.gip-app .route-panel.is-active {
  display: block;
}

/* Loading placeholder inside #root before paint */
#root > .muted {
  color: var(--muted, #8a8172);
  font-family: system-ui, -apple-system, sans-serif;
  padding: 24px;
}

/* Brainmap links */
.bm-fundamental,
.brainmap-core,
.brainmap-status {
  text-decoration: none;
}

/* ——— Marketing extras (same tokens as real GIP) ——— */
.gip-market .landing-inner {
  width: min(780px, 100%);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
}

.gip-market .landing-lede {
  margin: 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.55;
  max-width: 54ch;
}

.gip-market .landing-note {
  margin: 0;
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.45;
  max-width: 56ch;
}

.gip-market .landing-card {
  width: min(420px, 100%);
  border: 1px solid var(--line2);
  border-radius: 14px;
  background: var(--card);
  box-shadow: var(--shadow);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.gip-market .landing-card label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  font-weight: 680;
  color: var(--ink);
}

.gip-market .landing-card input {
  border: 1px solid var(--line2);
  border-radius: 9px;
  background: var(--card);
  color: var(--ink);
  font: inherit;
  font-size: 16px; /* avoid iOS zoom */
  padding: 12px 11px;
}

.gip-market .landing-card input:focus {
  outline: 2px solid color-mix(in srgb, var(--purple) 45%, transparent);
  border-color: var(--purple);
}

.gip-market .landing-card .panel-btn,
.gip-market .landing-card .landing-btn {
  width: 100%;
  cursor: pointer;
  font: inherit;
}

.gip-market .landing-divider {
  width: 100%;
  border: 0;
  border-top: 1px solid var(--line);
  margin: 4px 0;
}

.gip-market .landing-msg {
  margin: 0;
  min-height: 1.2em;
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.4;
}

.gip-market .landing-msg[data-tone="error"] {
  color: #b42318;
}

.gip-market .landing-msg[data-tone="ok"] {
  color: var(--done);
}

.gip-market .landing-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  font-size: 13px;
}

.gip-market .landing-links a {
  color: var(--purple-ink);
  text-decoration: none;
  font-weight: 680;
}

.gip-market .landing-links a:hover {
  text-decoration: underline;
}

.gip-market .landing-kicker {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--purple-ink);
  font-weight: 760;
  background: color-mix(in srgb, var(--purple) 12%, transparent);
  border-radius: 999px;
  padding: 4px 9px;
  margin: 0;
}

/* Alias .btn → landing-btn for older markup */
.gip-market .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border: 1px solid var(--head);
  border-radius: 10px;
  padding: 10px 16px;
  background: var(--head);
  color: var(--card);
  font-weight: 740;
  text-decoration: none;
  cursor: pointer;
  font: inherit;
}

.gip-market .btn.secondary {
  background: transparent;
  color: var(--head);
  border-color: var(--line2);
}

.gip-market .btn:hover {
  filter: brightness(0.96);
}

.gip-market code {
  font-size: 0.92em;
  background: var(--hover);
  border-radius: 4px;
  padding: 1px 5px;
}

/* ——— Always-visible account / back / signup (app shell) ——— */
.gip-account-bar {
  position: sticky;
  top: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: nowrap;
  padding: 10px 16px;
  padding-top: max(10px, env(safe-area-inset-top));
  border-bottom: 1px solid var(--line2);
  background: color-mix(in srgb, var(--card) 92%, var(--purple) 8%);
  box-shadow: 0 1px 0 rgba(16, 20, 28, 0.04);
}

.gip-account-left {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.gip-account-link {
  color: var(--purple-ink);
  font-weight: 740;
  font-size: 13px;
  text-decoration: none;
  white-space: nowrap;
}

.gip-account-who {
  max-width: 42vw;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--head);
  cursor: default;
}

.gip-mobile-dock button.gip-dock-item {
  border: 0;
  background: transparent;
  font: inherit;
  cursor: pointer;
  width: 100%;
}

.gip-account-link:hover {
  text-decoration: underline;
}

.gip-account-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
  flex-shrink: 0;
}

.gip-account-pill {
  font-size: 11px;
  font-weight: 760;
  color: var(--amber);
  border: 1px solid color-mix(in srgb, var(--amber) 35%, var(--line));
  background: color-mix(in srgb, var(--amber) 10%, var(--card));
  border-radius: 999px;
  padding: 4px 10px;
  white-space: nowrap;
}

.gip-account-cta {
  min-height: 36px !important;
  padding: 7px 12px !important;
  font-size: 12.5px !important;
  white-space: nowrap;
}

/* Nav toggle — hidden on desktop */
.gip-nav-toggle {
  display: none;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 10px;
  border: 1px solid var(--line2);
  border-radius: 10px;
  background: var(--card);
  color: var(--ink);
  font: inherit;
  font-size: 12.5px;
  font-weight: 720;
  cursor: pointer;
}

.gip-nav-toggle-bars {
  display: block;
  width: 16px;
  height: 2px;
  background: var(--ink);
  box-shadow: 0 5px 0 var(--ink), 0 -5px 0 var(--ink);
}

.gip-nav-close {
  display: none;
  margin-left: auto;
  border: 0;
  background: var(--hover);
  color: var(--ink);
  width: 36px;
  height: 36px;
  border-radius: 10px;
  font-size: 16px;
  cursor: pointer;
  flex-shrink: 0;
}

.gip-nav-backdrop {
  display: none;
}

.side-account {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}

.side-account .side-link-cta {
  background: color-mix(in srgb, var(--purple) 14%, transparent);
  color: var(--purple-ink) !important;
  font-weight: 760;
}

.side-account .side-link-btn {
  appearance: none;
  border: 0;
  background: transparent;
  width: 100%;
  text-align: left;
  cursor: pointer;
  font: inherit;
}

.gip-demo-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  margin: 0 0 16px;
  padding: 14px 16px;
  border: 1px solid color-mix(in srgb, var(--purple) 35%, var(--line));
  border-radius: 14px;
  background: color-mix(in srgb, var(--purple) 8%, var(--card));
  box-shadow: var(--shadow);
}

.gip-demo-banner b {
  display: block;
  color: var(--head);
  font-size: 14px;
  margin-bottom: 4px;
}

.gip-demo-banner span {
  display: block;
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.45;
  max-width: 52ch;
}

.gip-demo-banner-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.gip-demo-banner .landing-btn {
  min-height: 38px;
  padding: 8px 12px;
  font-size: 12.5px;
}

.gip-header-signup {
  text-decoration: none;
  color: var(--card) !important;
  background: var(--head);
  border-color: var(--head) !important;
  font-weight: 760;
}

/* Mobile dock — hidden on desktop */
.gip-mobile-dock {
  display: none;
}

html.gip-nav-scroll-lock,
html.gip-nav-scroll-lock body {
  overflow: hidden;
  touch-action: none;
}

/* ========== MOBILE / TABLET ========== */
@media (max-width: 980px) {
  body.gip-app {
    padding-bottom: calc(64px + env(safe-area-inset-bottom));
  }

  .gip-nav-toggle {
    display: inline-flex;
  }

  .gip-nav-close {
    display: grid;
    place-items: center;
  }

  .gip-account-bar {
    padding: 8px 12px;
    padding-top: max(8px, env(safe-area-inset-top));
    gap: 8px;
  }

  .gip-account-cta-secondary {
    display: none; /* Entrar lives in dock + drawer */
  }

  .gip-account-pill {
    display: none; /* less chrome; banner says demo */
  }

  .gip-nav-toggle-label {
    display: none;
  }

  /* Drawer navigation */
  body.gip-app .side-panel {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
    width: min(300px, 86vw) !important;
    max-width: 300px !important;
    min-height: 100dvh !important;
    height: 100dvh !important;
    margin: 0 !important;
    border-radius: 0 14px 14px 0 !important;
    z-index: 60 !important;
    transform: translateX(-105%);
    transition: transform 0.22s ease;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: calc(24px + env(safe-area-inset-bottom)) !important;
  }

  body.gip-app.gip-nav-open .side-panel {
    transform: translateX(0);
  }

  body.gip-app .gip-nav-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 55;
    border: 0;
    padding: 0;
    margin: 0;
    background: rgba(10, 8, 6, 0.45);
    backdrop-filter: blur(2px);
    cursor: pointer;
  }

  body.gip-app .gip-nav-backdrop[hidden] {
    display: none !important;
  }

  body.gip-app .app-layout {
    display: block !important;
    padding: 10px 12px 24px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.gip-app .side-brand {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  body.gip-app .side-nav {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
  }

  body.gip-app .side-link {
    min-height: 44px;
    padding: 10px 12px !important;
  }

  body.gip-app .side-status {
    display: none !important; /* short on phone */
  }

  body.gip-app .side-note {
    font-size: 11.5px;
  }

  body.gip-app .app-global-header {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
  }

  body.gip-app .app-global-route h1 {
    font-size: 20px !important;
    line-height: 1.2 !important;
  }

  body.gip-app .app-global-freshness {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
  }

  body.gip-app .gip-freshness-text {
    display: none; /* clutter */
  }

  body.gip-app .gip-header-signup {
    display: none; /* dock + top bar cover it */
  }

  body.gip-app .route-panel {
    padding: 14px !important;
    border-radius: 12px !important;
  }

  body.gip-app .route-grid {
    grid-template-columns: 1fr !important;
  }

  body.gip-app .settings-grid {
    grid-template-columns: 1fr !important;
  }

  body.gip-app .chat-tags {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 8px;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
  }

  body.gip-app .chat-tag {
    flex: 0 0 auto;
  }

  /* Brainmap already stacks in real CSS; tighten padding */
  body.gip-app .brainmap {
    margin-left: -2px;
    margin-right: -2px;
  }

  body.gip-app .route-box ol {
    padding-left: 16px;
  }

  .gip-demo-banner {
    align-items: flex-start;
    padding: 12px;
    margin-bottom: 12px;
  }

  .gip-demo-banner-actions {
    width: 100%;
  }

  .gip-demo-banner-actions .landing-btn {
    flex: 1 1 calc(50% - 4px);
    text-align: center;
    justify-content: center;
  }

  /* Bottom dock */
  .gip-mobile-dock {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 50;
    padding: 6px 8px calc(6px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--line2);
    background: color-mix(in srgb, var(--card) 94%, transparent);
    backdrop-filter: blur(12px);
    box-shadow: 0 -8px 24px rgba(16, 20, 28, 0.08);
  }

  .gip-dock-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-height: 48px;
    text-decoration: none;
    color: var(--muted);
    font-size: 16px;
    border-radius: 10px;
    padding: 4px 2px;
  }

  .gip-dock-item small {
    font-size: 10px;
    font-weight: 720;
    letter-spacing: 0.01em;
  }

  .gip-dock-item:active {
    background: var(--hover);
  }

  .gip-dock-primary {
    color: var(--purple-ink);
    font-weight: 800;
  }

  .gip-dock-primary small {
    font-weight: 800;
  }
}

@media (max-width: 560px) {
  body.gip-market .landing {
    padding: 18px 14px 32px !important;
    align-items: start;
  }

  body.gip-market .landing-inner {
    width: 100%;
    gap: 14px;
  }

  body.gip-market .landing h1 {
    font-size: clamp(28px, 8.5vw, 40px) !important;
    line-height: 1.08 !important;
  }

  body.gip-market .landing-lede {
    font-size: 14px;
  }

  body.gip-market .landing-actions {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }

  body.gip-market .landing-actions .landing-btn {
    width: 100%;
    justify-content: center;
  }

  body.gip-market .route-grid {
    grid-template-columns: 1fr !important;
    width: 100%;
  }

  body.gip-market .landing-card {
    width: 100%;
  }

  body.gip-app .app-layout {
    padding: 8px 10px 20px !important;
  }

  body.gip-app .route-title {
    font-size: 18px !important;
  }

  body.gip-app .route-copy {
    font-size: 13px !important;
  }

  .gip-account-cta {
    min-height: 40px !important;
    padding: 8px 12px !important;
  }

  /* stack demo banner CTAs full width on very small phones */
  .gip-demo-banner-actions .landing-btn {
    flex: 1 1 100%;
  }
}

@media (max-width: 380px) {
  .gip-account-link {
    font-size: 12px;
  }

  .gip-dock-item small {
    font-size: 9px;
  }
}

/* Desktop: never show mobile-only chrome */
@media (min-width: 981px) {
  .gip-nav-toggle,
  .gip-nav-close,
  .gip-mobile-dock,
  .gip-nav-backdrop {
    display: none !important;
  }

  body.gip-app .side-panel {
    transform: none !important;
  }
}

/* ——— Onboarding + Fontes (conexão) ——— */
.side-link.is-locked {
  opacity: 0.55;
}
.gip-onboard {
  border: 1px solid color-mix(in srgb, var(--purple) 35%, var(--line));
  border-radius: 14px;
  background: color-mix(in srgb, var(--purple) 8%, var(--card));
  padding: 16px;
  margin-bottom: 16px;
  box-shadow: var(--shadow);
}
.gip-onboard-head b {
  display: block;
  font-size: 16px;
  color: var(--head);
  margin-bottom: 6px;
}
.gip-onboard-head span {
  display: block;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}
.gip-onboard-bar {
  height: 8px;
  border-radius: 999px;
  background: var(--line);
  margin: 12px 0;
  overflow: hidden;
}
.gip-onboard-bar i {
  display: block;
  height: 100%;
  background: var(--purple);
  border-radius: 999px;
}
.gip-onboard-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}
.gip-onboard-steps {
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.5;
}
.gip-onboard-steps li.done {
  color: var(--done);
  font-weight: 700;
}
.gip-onboard-steps li.now {
  color: var(--purple-ink);
  font-weight: 740;
}
.gip-source-group {
  margin: 18px 0 8px;
  font-size: 13px;
  color: var(--purple-ink);
  letter-spacing: 0.02em;
}
.gip-source-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.gip-source-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  border: 1px solid var(--line2);
  border-radius: 12px;
  padding: 12px 14px;
  background: var(--card);
}
.gip-source-card[data-status="ok"] {
  border-color: color-mix(in srgb, var(--done) 40%, var(--line));
}
.gip-source-card[data-status="pending"] {
  border-color: color-mix(in srgb, var(--amber) 45%, var(--line));
}
.gip-source-main {
  min-width: 0;
  flex: 1;
}
.gip-source-main b {
  display: block;
  color: var(--head);
  font-size: 14px;
}
.gip-source-blurb {
  display: block;
  color: var(--muted);
  font-size: 12.5px;
  margin-top: 2px;
}
.gip-source-status {
  display: inline-block;
  margin-top: 6px;
  font-size: 11.5px;
  font-weight: 740;
}
.gip-source-status[data-st="ok"] {
  color: var(--done);
}
.gip-source-status[data-st="pending"] {
  color: var(--amber);
}
.gip-source-status[data-st="off"] {
  color: var(--muted);
}
.gip-source-actions .landing-btn {
  min-height: 38px;
  padding: 8px 12px;
  font-size: 12.5px;
}
.gip-source-panel {
  margin: 0 0 14px;
}
.gip-connect-sheet {
  border: 1px solid color-mix(in srgb, var(--purple) 30%, var(--line));
  border-radius: 14px;
  padding: 14px;
  background: color-mix(in srgb, var(--purple) 6%, var(--card));
}
.gip-connect-sheet b {
  display: block;
  font-size: 15px;
  margin-bottom: 6px;
}
.gip-connect-sheet p {
  margin: 0 0 8px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}
.side-link.is-next {
  outline: 1px solid color-mix(in srgb, var(--amber, #c9a227) 55%, transparent);
  border-radius: 10px;
}
.gip-toast {
  position: fixed;
  left: 50%;
  bottom: 72px;
  transform: translateX(-50%) translateY(12px);
  z-index: 80;
  max-width: min(92vw, 420px);
  padding: 12px 16px;
  border-radius: 999px;
  background: var(--head, #1a1a1a);
  color: var(--card, #fff);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  text-align: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s, transform 0.2s;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}
.gip-toast[data-show="1"] {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.gip-connect-sheet[data-err="1"] {
  border-color: color-mix(in srgb, #d92d20 45%, var(--line, #ddd));
  background: color-mix(in srgb, #d92d20 8%, var(--card, #fff));
}
.gip-source-btn {
  cursor: pointer;
  position: relative;
  z-index: 2;
}
.gip-source-disconnect {
  border-color: color-mix(in srgb, #d92d20 45%, var(--line, #ddd)) !important;
  color: #b42318 !important;
  background: color-mix(in srgb, #d92d20 8%, transparent) !important;
}
.gip-source-disconnect:hover {
  filter: brightness(0.97);
}
.gip-source-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
}
.bm-fundamental.is-cycle-locked {
  opacity: 0.55;
  filter: grayscale(0.25);
}
.bm-fundamental.is-cycle-locked .bm-state-pill {
  opacity: 1;
}
.gip-cycle-next {
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--purple, #6b53d7) 35%, var(--line, #e9e0cf));
  background: color-mix(in srgb, var(--purple, #6b53d7) 8%, var(--card, #fffdf8));
}
.gip-cycle-next b {
  display: block;
  margin-bottom: 4px;
}
.gip-cycle-next .landing-btn {
  margin-right: 8px;
  margin-top: 4px;
}
/* Chat / Decisões (paridade localhost:8787/gip/main/02) */
.chat-shell .chat-trust {
  margin-bottom: 12px;
}
.chat-shell .chat-main {
  margin-top: 4px;
}
.chat-shell .panel-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line, #e9e0cf);
}
.chat-shell .panel-title {
  font-weight: 780;
  color: var(--head, #171009);
  font-size: 15px;
}
.chat-shell .panel-meta {
  color: var(--muted, #8a8172);
  font-size: 12.5px;
  line-height: 1.4;
  margin-top: 3px;
}
.chat-shell details.route-box {
  cursor: default;
}
.chat-shell details.route-box > summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.chat-shell details.route-box > summary::-webkit-details-marker {
  display: none;
}
.chat-shell details.route-box > summary b {
  color: var(--head, #171009);
  font-size: 14px;
}
.chat-shell details.route-box > summary span {
  color: var(--muted, #8a8172);
  font-size: 12.5px;
}
.chat-shell .lifecycle-actions {
  margin-top: 10px;
}
.chat-shell .lifecycle-actions .panel-btn {
  min-height: 36px;
  font-weight: 700;
}
.chat-shell .brain-empty {
  padding: 16px;
  color: var(--muted, #8a8172);
  font-size: 13px;
  line-height: 1.45;
  border: 1px dashed var(--line2, #ded3bf);
  border-radius: 10px;
}
.chat-shell .global-chat-compose textarea {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--line2, #ded3bf);
  border-radius: 9px;
  background: var(--card, #fffdf8);
  color: var(--ink, #262019);
  font: inherit;
  font-size: 14px;
  padding: 10px 11px;
  resize: vertical;
}
.chat-shell .global-chat-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.decision-formal-label {
  margin-bottom: 4px;
  font-weight: 700;
}
/* Cérebro · escada de versão v0–v5 */
.gip-ver-hero {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 14px;
  margin: 12px 0 8px;
}
@media (max-width: 720px) {
  .gip-ver-hero {
    grid-template-columns: 1fr;
  }
}
.gip-ver-hero-main,
.gip-ver-hero-next {
  padding: 16px 18px;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--purple, #6b53d7) 32%, var(--line, #e9e0cf));
  background: color-mix(in srgb, var(--purple, #6b53d7) 9%, var(--card, #fffdf8));
}
.gip-ver-hero-next {
  border-color: color-mix(in srgb, var(--amber, #c9a227) 40%, var(--line, #e9e0cf));
  background: color-mix(in srgb, var(--amber, #c9a227) 10%, var(--card, #fffdf8));
}
.gip-ver-kicker {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted, #8a8172);
  margin-bottom: 6px;
}
.gip-ver-num {
  display: block;
  font-size: 1.45rem;
  color: var(--head, #171009);
  margin-bottom: 6px;
}
.gip-ver-chip {
  display: inline-block;
  margin-top: 8px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  background: color-mix(in srgb, var(--muted, #8a8172) 14%, transparent);
  color: var(--muted, #8a8172);
}
.gip-ver-chip.ok {
  background: color-mix(in srgb, var(--done, #2f9e44) 16%, transparent);
  color: var(--done, #2f9e44);
}
.gip-ver-section {
  margin: 18px 0 10px;
  font-size: 1rem;
  color: var(--head, #171009);
}
.gip-ver-ladder {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 10px;
}
.gip-ver-card {
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid var(--line, #e9e0cf);
  background: var(--card, #fffdf8);
  min-height: 140px;
}
.gip-ver-card[data-st="done"] {
  border-color: color-mix(in srgb, var(--done, #2f9e44) 40%, var(--line));
  background: color-mix(in srgb, var(--done, #2f9e44) 7%, var(--card));
}
.gip-ver-card[data-st="current"] {
  border-color: color-mix(in srgb, var(--purple, #6b53d7) 45%, var(--line));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--purple, #6b53d7) 25%, transparent);
}
.gip-ver-card[data-st="next"] {
  border-color: color-mix(in srgb, var(--amber, #c9a227) 50%, var(--line));
  background: color-mix(in srgb, var(--amber, #c9a227) 8%, var(--card));
}
.gip-ver-card[data-st="locked"] {
  opacity: 0.62;
}
.gip-ver-top {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.gip-ver-badge {
  font-weight: 800;
  color: var(--head, #171009);
}
.gip-ver-card p {
  margin: 0 0 8px;
  font-size: 13px;
  line-height: 1.4;
  color: var(--muted, #8a8172);
}
.gip-ver-done {
  font-size: 12px;
  font-weight: 700;
  color: var(--done, #2f9e44);
}
.gip-ver-can {
  margin: 0 0 6px !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
  color: var(--ink, #262019) !important;
}
.gip-ver-free {
  margin: 0 0 10px !important;
  font-size: 12.5px !important;
  line-height: 1.4 !important;
  color: var(--teal, #1f7a72) !important;
  font-weight: 600;
}
.gip-ver-cap-label {
  margin: 0 0 6px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--muted, #8a8172);
}
.gip-ver-progress {
  height: 8px;
  border-radius: 999px;
  background: var(--line, #e9e0cf);
  margin: 12px 0 10px;
  overflow: hidden;
}
.gip-ver-progress i {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--teal, #1f7a72), var(--purple, #6e56e8));
}
.gip-ver-card[data-st="horizon"] {
  opacity: 1;
  border-style: dashed;
  border-color: color-mix(in srgb, var(--purple, #6e56e8) 35%, var(--line, #e9e0cf));
  background: color-mix(in srgb, var(--purple, #6e56e8) 5%, var(--card, #fffdf8));
}
.gip-ver-north {
  padding: 16px 18px;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--done, #2f9e44) 40%, var(--line));
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--done, #2f9e44) 10%, var(--card)),
    color-mix(in srgb, var(--purple, #6e56e8) 8%, var(--card))
  );
}
.gip-ver-north b {
  display: block;
  margin-bottom: 6px;
  color: var(--head, #171009);
}
.gip-ver-north p {
  margin: 0;
  line-height: 1.45;
  color: var(--ink, #262019);
  font-size: 14px;
}
.gip-ver-chip + .gip-ver-chip {
  margin-left: 6px;
}
.bm-fundamental[data-status="blocked"] {
  border-color: color-mix(in srgb, var(--muted, #8a8172) 40%, var(--line, #e9e0cf));
}
.gip-mv01-card {
  margin: 16px 0;
  padding: 16px 18px;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--amber, #c9a227) 45%, transparent);
  background: color-mix(in srgb, var(--amber, #c9a227) 8%, transparent);
}
.gip-mv01-card .landing-btn {
  font-weight: 600;
  min-height: 44px;
}
.gip-mv01-card[data-ready="1"] {
  border-color: color-mix(in srgb, var(--done, #3d9a6a) 50%, transparent);
  background: color-mix(in srgb, var(--done, #3d9a6a) 8%, transparent);
}
.gip-mv01-card b {
  display: block;
  margin-bottom: 6px;
  font-size: 1.02rem;
}
.gip-mv01-card p {
  margin: 0 0 12px;
  color: var(--muted, #8a8172);
  line-height: 1.45;
  font-size: 0.95rem;
}
.gip-mv01-card code,
.gip-mv01-note code {
  font-size: 0.88em;
  word-break: break-all;
}
.gip-mv01-note {
  margin: 10px 0 12px !important;
  padding: 10px 12px;
  border-radius: 10px;
  background: color-mix(in srgb, var(--fg, #1a1a1a) 4%, transparent);
  font-size: 0.92rem;
  line-height: 1.45;
}
.gip-connect-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
@media (max-width: 560px) {
  .gip-source-card {
    flex-direction: column;
    align-items: stretch;
  }
  .gip-source-actions .landing-btn {
    width: 100%;
  }
}

/* ——— Kernel Oficial (legacy CSS; UI removida) ——— */
.gip-kernel-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 8px 16px;
  border-bottom: 1px solid color-mix(in srgb, var(--purple) 28%, var(--line));
  background: color-mix(in srgb, var(--purple) 9%, var(--card));
}

.gip-kernel-bar-main b {
  display: block;
  color: var(--purple-ink);
  font-size: 12.5px;
  margin-bottom: 2px;
}

.gip-kernel-bar-main span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
  max-width: 70ch;
}

.gip-kernel-bar-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.gip-kernel-link {
  font-size: 12px;
  font-weight: 740;
  color: var(--purple-ink);
  text-decoration: none;
  border: 1px solid color-mix(in srgb, var(--purple) 30%, var(--line));
  border-radius: 999px;
  padding: 6px 10px;
  background: var(--card);
}

.gip-kernel-link:hover {
  background: var(--hover);
}

.gip-kernel-strip {
  border: 1px solid color-mix(in srgb, var(--purple) 22%, var(--line));
  border-radius: 12px;
  background: color-mix(in srgb, var(--purple) 6%, var(--card));
  padding: 10px 12px;
  margin: 0 0 12px;
}

.gip-kernel-strip b {
  display: block;
  font-size: 12px;
  color: var(--purple-ink);
  margin-bottom: 4px;
}

.gip-kernel-strip ul {
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.gip-kernel-doc {
  margin-top: 18px;
  border: 1px solid var(--line2);
  border-radius: 14px;
  background: var(--card);
  overflow: hidden;
}

.gip-kernel-doc-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  background: var(--hover);
}

.gip-kernel-pre {
  margin: 0;
  padding: 14px;
  max-height: min(70vh, 720px);
  overflow: auto;
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 12px;
  line-height: 1.45;
  color: var(--ink);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

@media (max-width: 760px) {
  .gip-kernel-bar {
    padding: 8px 12px;
  }
  .gip-kernel-bar-main span {
    font-size: 11.5px;
  }
}

/* ---- Paywall / planos ---- */
body.gip-paywall-on .app-layout { display: none !important; }
.gip-paywall {
  min-height: calc(100vh - 56px);
  padding: 24px 16px 48px;
  background: var(--bg, #0f0e0c);
}
.gip-paywall-inner {
  max-width: 920px;
  margin: 0 auto;
}
.gip-paywall-inner h1 {
  font-size: clamp(1.5rem, 3vw, 2rem);
  margin: 8px 0 12px;
  color: var(--text, #f4efe6);
}
.gip-plan-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
  margin-top: 18px;
}
.gip-plan-card {
  position: relative;
  border: 1px solid var(--line, #3a342c);
  border-radius: 14px;
  padding: 18px 16px 16px;
  background: var(--panel, #1a1714);
}
.gip-plan-card-hi {
  border-color: var(--amber, #d4a24c);
  box-shadow: 0 0 0 1px rgba(212, 162, 76, 0.25);
}
.gip-plan-badge {
  position: absolute;
  top: 10px;
  right: 12px;
  font-size: 11px;
  font-weight: 700;
  color: #1a1714;
  background: var(--amber, #d4a24c);
  padding: 2px 8px;
  border-radius: 999px;
}
.gip-plan-card h3 {
  margin: 0 0 8px;
  font-size: 1.15rem;
}
.gip-plan-price {
  margin: 0 0 12px;
  font-size: 1.5rem;
}
.gip-plan-price span {
  font-size: 0.9rem;
  color: var(--muted, #8a8172);
  font-weight: 500;
}
.gip-plan-card ul {
  margin: 0 0 12px;
  padding-left: 18px;
  color: var(--muted, #8a8172);
  font-size: 14px;
  line-height: 1.45;
}
.gip-plan-card li { margin: 4px 0; }
.gip-plan-cta { width: 100%; justify-content: center; }

/* Chat Fila Viva (#chat-tudo) — comercial */
.chat-shell .global-chat-thread{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-height:280px;
  max-height:52vh;
  overflow:auto;
  padding:10px 12px;
  background:color-mix(in srgb,var(--card,#fffdf8) 92%,var(--hover,#efe7d8));
  border-radius:0 0 0 0;
}
.gip-chat-bubble{
  max-width:min(92%,560px);
  padding:10px 12px;
  border-radius:12px;
  border:1px solid var(--line2,#ded3bf);
  background:var(--card,#fffdf8);
  box-shadow:0 1px 2px rgba(16,20,28,.04);
}
.gip-chat-bubble[data-role="user"]{
  align-self:flex-end;
  border-color:color-mix(in srgb,var(--purple,#6b53d7) 35%,var(--line2,#ded3bf));
  background:color-mix(in srgb,var(--purple,#6b53d7) 8%,var(--card,#fffdf8));
}
.gip-chat-bubble[data-role="gip"]{
  align-self:flex-start;
  border-color:color-mix(in srgb,var(--teal,#1f7a72) 30%,var(--line2,#ded3bf));
}
.gip-chat-bubble header{
  display:flex;
  justify-content:space-between;
  gap:10px;
  font-size:11px;
  color:var(--muted,#8a8172);
  margin-bottom:4px;
}
.gip-chat-bubble header b{color:var(--head,#171009);font-size:12px}
.gip-chat-bubble p{
  margin:0;
  font-size:14px;
  line-height:1.45;
  color:var(--ink,#262019);
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.chat-shell .tudo-compose textarea,
.chat-shell #tudo-chat-input,
.chat-shell #gip-chat-input{
  width:100% !important;
  min-height:56px !important;
  pointer-events:auto !important;
  position:relative;
  z-index:6;
  opacity:1 !important;
  -webkit-user-select:text;
  user-select:text;
  touch-action:manipulation;
  background:var(--card,#fffdf8) !important;
  color:var(--ink,#262019) !important;
  border:1px solid var(--line2,#ded3bf) !important;
  border-radius:9px;
  font:inherit;
  font-size:14px;
  padding:10px 11px;
  resize:vertical;
}
.chat-shell .tudo-compose textarea:focus,
.chat-shell #tudo-chat-input:focus{
  outline:2px solid color-mix(in srgb,var(--purple,#6b53d7) 45%,transparent);
  border-color:var(--purple,#6b53d7) !important;
}

/* Fontes — wizard de conexão */
.gip-source-sheet-body{margin-top:6px}
.gip-src-form{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.gip-src-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
.gip-src-field span{font-weight:750;color:var(--head);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.gip-src-field input,.gip-src-field textarea{
  width:100%;
  min-height:40px;
  border:1px solid var(--line2);
  border-radius:9px;
  background:var(--card);
  color:var(--ink);
  font:inherit;
  font-size:14px;
  padding:9px 11px;
  pointer-events:auto !important;
  position:relative;
  z-index:3;
}
.gip-src-field textarea{min-height:72px;resize:vertical}
.gip-source-actions .landing-btn,
.gip-source-btn,
button[data-source-action]{
  cursor:pointer !important;
  pointer-events:auto !important;
  position:relative;
  z-index:3;
  -webkit-user-select:none;
  user-select:none;
}
.gip-source-card{
  position:relative;
  z-index:1;
}
.gip-source-panel{
  position:relative;
  z-index:5;
}
.gip-connect-actions .landing-btn{cursor:pointer;pointer-events:auto}

/* Onboarding enxuto + Memória sem parede de texto */
.gip-onboard-compact{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:10px 14px;
  margin:0 0 14px;
  padding:10px 14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:color-mix(in srgb,var(--purple,#6b53d7) 6%,var(--card,#fffdf8));
}
.gip-onboard-compact .gip-onboard-head{flex:1;min-width:180px}
.gip-onboard-compact .gip-onboard-head b{display:block;font-size:14px}
.gip-onboard-compact .gip-onboard-head span{font-size:12px;color:var(--muted)}
.gip-onboard-compact .gip-onboard-actions{margin:0}
.gip-onboard-compact .gip-onboard-bar,
.gip-onboard-compact .gip-onboard-steps{display:none !important}
.gip-memory-ready--solo{
  margin-top:4px;
  padding:18px 16px;
  border:1px solid color-mix(in srgb,var(--teal,#1f7a72) 35%,var(--line));
  border-radius:14px;
  background:color-mix(in srgb,var(--teal,#1f7a72) 7%,var(--card,#fffdf8));
}
.gip-memory-ready--solo .route-title,
.gip-mv01-card .route-title{font-size:1.35rem}

/* Time — CLT / PJ */
.gip-person-badge[data-eng="CLT"]{background:color-mix(in srgb,#1a7f37 18%,var(--card));color:#0f5c28}
.gip-person-badge[data-eng="PJ"]{background:color-mix(in srgb,#6b53d7 16%,var(--card));color:#4a3ab0}
.gip-person-badge[data-eng="DONO"]{background:color-mix(in srgb,#c07d12 16%,var(--card));color:#8a5a0a}
.gip-team-add-panel .gip-src-field{display:flex;flex-direction:column;gap:4px}
.gip-team-add-panel .gip-src-field span{font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.gip-human-remove{font-size:12px;min-height:32px;padding:6px 10px}

/* OKRs — planilha (paridade localhost /gip/main/10) */
.okr-sheet-headline{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:4px 0 12px;flex-wrap:wrap}
.okr-sheet-headline .route-title{margin:0 0 4px}
.okr-sheet-headline .route-copy{margin:0;max-width:52ch}
.okr-sheet-summary{display:flex;align-items:baseline;gap:6px;color:var(--muted);font-size:13px}
.okr-sheet-summary b{font-size:22px;color:var(--head);letter-spacing:-.02em}
.okr-filterbar{display:grid;grid-template-columns:minmax(160px,1fr) minmax(140px,.8fr) auto minmax(140px,.9fr);gap:8px;align-items:end;margin:0 0 10px;padding:10px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--hover,#efe7d8) 55%,var(--card,#fffdf8))}
.okr-filterbar label{display:flex;flex-direction:column;gap:4px;font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.okr-filterbar select{min-height:36px;border:1px solid var(--line2);border-radius:9px;background:var(--card);color:var(--ink);font:inherit;font-size:13px;padding:7px 10px}
.okr-filter-state{display:flex;align-items:baseline;justify-content:flex-end;gap:5px;padding:8px 3px;color:var(--muted);font-size:12px}
.okr-filter-state b{color:var(--head);font-size:16px}
.okr-availability-note{margin:0 2px 10px;color:var(--muted);font-size:11.5px;line-height:1.4}
.okr-sheet{border:1px solid var(--line);border-radius:12px;overflow:auto;background:var(--card);box-shadow:var(--shadow,0 1px 2px rgba(16,20,28,.04))}
.okr-sheet-header,.okr-sheet-row>summary{display:grid;grid-template-columns:1.15fr 1.7fr .75fr .75fr 1.2fr .85fr .9fr;gap:8px;align-items:center;min-width:760px}
.okr-sheet-header{padding:9px 12px;background:color-mix(in srgb,var(--head,#171009) 8%,var(--card));color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line)}
.okr-sheet-row{border-top:1px solid var(--line)}
.okr-sheet-row[hidden]{display:none!important}
.okr-sheet-row>summary{padding:10px 12px;cursor:pointer;list-style:none;font-size:12.5px}
.okr-sheet-row>summary::-webkit-details-marker{display:none}
.okr-sheet-row>summary:hover{background:color-mix(in srgb,var(--purple,#6b53d7) 5%,var(--card))}
.okr-sheet-row .okr-area b,.okr-sheet-row .okr-area small{display:block}
.okr-sheet-row .okr-area small{color:var(--muted);font-size:10px;margin-top:2px;font-weight:600}
.okr-progress{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px}
.okr-progress-bar{display:block;height:6px;border-radius:99px;background:color-mix(in srgb,var(--line2) 80%,transparent);overflow:hidden}
.okr-progress-bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--teal,#1f7a72),var(--purple,#6b53d7));border-radius:99px}
.okr-progress em{font-style:normal;font-size:11px;color:var(--muted);font-weight:700}
.okr-sheet-row[data-tone="good"] em{color:var(--done,#2f9e44)}
.okr-sheet-row[data-tone="warn"] em{color:var(--amber,#c07d12)}
.okr-sheet-row[data-tone="bad"] em{color:#c0392b}
.okr-sheet-row[data-tone="unknown"] em{color:var(--muted)}
.okr-sheet-detail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:10px 12px 14px;background:color-mix(in srgb,var(--hover,#efe7d8) 40%,var(--card));border-top:1px dashed var(--line);min-width:760px}
.okr-sheet-detail b{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:3px}
.okr-sheet-detail span{font-size:12.5px;color:var(--ink);line-height:1.4}
@media (max-width:820px){
  .okr-filterbar{grid-template-columns:1fr 1fr}
  .okr-filter-state{grid-column:1/-1;justify-content:flex-start}
  .okr-sheet-detail{grid-template-columns:1fr 1fr}
}

.gip-vault-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.gip-vault-topbar .route-title{margin:0;font-size:1.35rem}
.route-k{display:inline-block;font-size:11px;font-weight:750;letter-spacing:.04em;color:var(--muted);margin-right:8px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.gip-task-board{border:1px solid var(--line);border-radius:14px;background:var(--card);overflow:hidden}
.gip-task-board .card-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line)}
.gip-task-board .t{display:block;font-size:1.25rem;font-weight:800;color:var(--head)}
.gip-task-board .subt{display:block;font-size:12.5px;color:var(--muted);margin-top:4px;max-width:48ch;line-height:1.4}
.gip-task-filterbar{display:flex;flex-wrap:wrap;gap:10px;align-items:end;padding:10px 14px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--hover,#efe7d8) 40%,var(--card))}
.gip-task-filterbar .tf-field{display:flex;flex-direction:column;gap:4px}
.gip-task-filterbar .tf-lbl{font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.gip-task-filterbar select{min-height:36px;border:1px solid var(--line2);border-radius:9px;background:var(--card);color:var(--ink);font:inherit;padding:6px 10px}
.gip-task-row{border:1px solid var(--line);border-radius:12px;background:var(--card);overflow:hidden}
.gip-task-row>summary.trow{display:grid;grid-template-columns:minmax(0,1.6fr) auto auto;gap:10px;align-items:center;padding:12px 14px;cursor:pointer;list-style:none}
.gip-task-row>summary::-webkit-details-marker{display:none}
.gip-task-row .detail{padding:0 14px 14px;border-top:1px dashed var(--line)}
.gip-task-row .steps{margin:0;padding-left:18px;font-size:13px;line-height:1.45}
.gip-task-row .steps-h{font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:10px 0 4px}
.task-meta-pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.task-meta-pills .pill{font-size:10px;font-weight:750;padding:2px 7px;border-radius:999px;border:1px solid var(--line2);color:var(--muted)}
.source-health-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap;margin-bottom:12px}
.source-health-stamp{font-size:12px;font-weight:700;color:var(--muted);padding:8px 10px;border:1px solid var(--line);border-radius:999px;background:var(--card)}
.ux-time-topline{display:flex;justify-content:space-between;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-bottom:12px}
.ux-kpis{display:flex;flex-direction:column;align-items:flex-end}
.ux-kpis b{font-size:1.35rem;color:var(--head)}
.ux-kpis span{font-size:12px;color:var(--muted)}
.ux-team-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.ux-team-tabs button{appearance:none;border:1px solid var(--line2);background:var(--card);color:var(--ink);font:inherit;font-size:13px;font-weight:700;border-radius:999px;padding:8px 14px;cursor:pointer}
.ux-team-tabs button.active{background:var(--head);color:var(--card);border-color:var(--head)}
.ux-result{display:block;width:100%;text-align:left;border:1px solid var(--line2);border-radius:10px;background:var(--card);padding:10px 12px;margin:0 0 8px;cursor:pointer;font:inherit;color:inherit}
.ux-result.active,.ux-result:hover{border-color:var(--purple,#6b53d7)}
.ux-result-head{display:flex;justify-content:space-between;gap:8px}
.ux-result-title{font-weight:780;color:var(--head)}
.ux-result-meta{font-size:11px;color:var(--muted)}
.ux-result-excerpt{font-size:12.5px;line-height:1.4;margin:4px 0}
.ux-empty{padding:16px;color:var(--muted);font-size:13px;border:1px dashed var(--line2);border-radius:10px}
.ux-detail h3{margin:0 0 8px;font-size:1rem}
.ux-detail dl{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;font-size:12.5px;margin:0}
.ux-detail dt{color:var(--muted)}
.ux-detail dd{margin:0}
.ux-detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.ux-detail-actions a{display:inline-flex;padding:7px 10px;border:1px solid var(--line2);border-radius:8px;text-decoration:none;color:var(--ink);font-weight:700;font-size:12.5px}
.ux-memory-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(240px,.85fr);gap:12px;align-items:start;margin-top:10px}
.ux-memory-workspace{margin:0 0 18px}
.ux-filterbar{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.ux-filterbar label{display:flex;flex-direction:column;gap:4px;font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.ux-filterbar select{min-height:36px;border:1px solid var(--line2);border-radius:9px;background:var(--card);color:var(--ink);font:inherit;padding:6px 10px;text-transform:none;letter-spacing:0;font-weight:500;font-size:13px}
@media (max-width:860px){.ux-memory-layout{grid-template-columns:1fr}.gip-task-row>summary.trow{grid-template-columns:1fr}}
