/* IAIA_UNICA_VISUAL_FINISH_V1
   Identidade canônica: papel quente, tipografia editorial, hairlines,
   poucos acentos. Escopo isolado para não afetar o legado.
*/
body.ui-v2.iaia-unica-active { background: var(--bg); }
body.ui-v2.iaia-unica-active.grain::after { opacity: .05; }
body.ui-v2 #app.iaia-chat-first {
  width: 100%; max-width: none; border: 0;
  background: var(--paper); color: var(--ink);
}
/* The previous full-shell cloud field was too prominent. Cloud identity stays,
   now as a restrained layer within the conversation canvas. */
body.ui-v2 #app.iaia-chat-first::before { display: none; }

/* Navegação discreta, sem os cartões e efeitos antigos. */
body.ui-v2 #app.iaia-chat-first > .sidebar {
  gap: 0; padding: 27px 14px 22px;
  border-right: 1px solid var(--line-soft);
  background: var(--bg); backdrop-filter: none;
}
body.ui-v2 #app.iaia-chat-first .brand-block { gap: 10px; padding: 0 11px 29px; }
body.ui-v2 #app.iaia-chat-first .brand-mark {
  width: 29px; height: 29px; animation: none; box-shadow: none;
}
body.ui-v2 #app.iaia-chat-first .brand-word {
  font-family: var(--font-brand); font-size: 1.12rem;
  letter-spacing: -.045em;
}
body.ui-v2 #app.iaia-chat-first #roleLabel {
  font-family: var(--font-sans); font-size: .64rem;
  letter-spacing: 0; text-transform: none; color: var(--muted);
}
body.ui-v2 #app.iaia-chat-first .scope-banner {
  margin: 0 9px 17px; padding: 0 2px 17px;
  border-bottom: 1px solid var(--line-soft);
}
body.ui-v2 #app.iaia-chat-first .scope-banner:empty { display: none; }
body.ui-v2 #app.iaia-chat-first .workspace-context-copy span {
  font-family: var(--font-mono); font-size: .58rem;
  letter-spacing: .04em; color: var(--muted-2);
}
body.ui-v2 #app.iaia-chat-first .workspace-context-copy strong { font-size: .82rem; }
body.ui-v2 #app.iaia-chat-first .nav-list,
body.ui-v2 #app.iaia-chat-first .nav-flat { gap: 3px; }
body.ui-v2 #app.iaia-chat-first .nav-item {
  min-height: 44px; padding: 11px 13px; border-radius: 10px;
  color: var(--muted); background: transparent; box-shadow: none;
  transition: background .14s var(--e), color .14s var(--e);
}
body.ui-v2 #app.iaia-chat-first .nav-item span {
  color: inherit; font-size: .84rem; font-weight: 500;
}
body.ui-v2 #app.iaia-chat-first .nav-item:hover {
  transform: none; background: var(--surface-soft); color: var(--ink);
}
body.ui-v2 #app.iaia-chat-first .nav-item.is-active {
  background: var(--surface-soft); color: var(--ink);
  box-shadow: inset 2px 0 0 var(--accent);
}
body.ui-v2 #app.iaia-chat-first .sidebar-account {
  margin: auto 8px 0; padding: 17px 3px 0;
  border-top: 1px solid var(--line-soft);
}

/* A conversa é a superfície principal, não um dock encolhido. */
body.ui-v2 #app.iaia-chat-first > .chat-dock {
  max-width: none; border: 0; background: var(--paper);
  backdrop-filter: none; isolation: isolate;
}
/* IAIA_UNICA_BRAND_CLOUDS_V1: existing brand assets, not generic gradients. */
body.ui-v2 #app.iaia-chat-first > .chat-dock::before,
body.ui-v2.iaia-unica-session .app-shell > .chat-dock[data-placement="fullscreen"]::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("./brand-blue.webp"), url("./brand-peach.webp");
  background-repeat: no-repeat;
  background-size:
    clamp(320px, 32vw, 490px) clamp(320px, 32vw, 490px),
    clamp(250px, 26vw, 370px) clamp(250px, 26vw, 370px);
  background-position: calc(100% + 165px) 8%, -185px calc(100% - 60px);
  opacity: .14;
  /* Brand WebP are already soft. Filtering the full viewport repaints too much. */
  will-change: transform;
  animation: iaia-unica-cloud-drift 46s var(--e) infinite alternate;
}
@keyframes iaia-unica-cloud-drift {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(-9px,7px,0); }
}
body.ui-v2 #app.iaia-chat-first > .chat-dock > :is(
  .dock-head, .dock-agent-list, .dock-body, .dock-quick, .chat-composer, #chatDockQuick
) {
  position: relative;
  z-index: 1;
}
body.ui-v2 #app.iaia-chat-first .dock-head {
  min-height: 77px; padding: 20px clamp(24px,3.3vw,56px);
  border-bottom: 1px solid var(--line-soft); background: var(--paper);
}
body.ui-v2 #app.iaia-chat-first .dock-agent-toggle {
  padding: 5px 6px; margin-left: -6px; border-radius: 8px;
}
body.ui-v2 #app.iaia-chat-first .dock-agent-toggle strong {
  font-family: var(--font-display); font-size: 1.07rem;
  font-weight: 600; letter-spacing: -.035em;
}
body.ui-v2 #app.iaia-chat-first .dock-dot {
  width: 7px; height: 7px; background: var(--accent);
}
body.ui-v2 #app.iaia-chat-first .dock-context {
  font-size: .73rem; color: var(--muted); max-width: min(46%,320px);
}
body.ui-v2 #app.iaia-chat-first .dock-agent-list {
  margin: 0 clamp(24px,3.3vw,56px); padding: 7px;
  border: 1px solid var(--line-soft); border-top: 0;
  border-radius: 0 0 12px 12px; background: var(--paper);
  box-shadow: none;
}
body.ui-v2 #app.iaia-chat-first .dock-body {
  min-height: 0; overflow-y: auto; overscroll-behavior: contain;
}
body.ui-v2 #app.iaia-chat-first .dock-extras {
  width: min(100%,850px); margin-inline: auto;
  padding: 16px clamp(24px,3.5vw,50px) 0;
}
body.ui-v2 #app.iaia-chat-first .dock-body .chat-thread {
  display: flex; flex-direction: column; gap: 21px;
  width: min(100%,900px); min-height: 100%; margin-inline: auto;
  padding: 30px clamp(26px,4vw,56px) 50px; overflow: visible;
}
body.ui-v2 #app.iaia-chat-first .chat-thread:empty {
  justify-content: center; align-items: flex-start;
  gap: 12px; padding-top: 20px; padding-bottom: 50px;
}
body.ui-v2 #app.iaia-chat-first .chat-thread:empty::before {
  content: "O que vamos resolver agora?";
  max-width: 24ch; font-family: var(--font-editorial);
  font-size: clamp(2.1rem,3.6vw,3.55rem);
  font-weight: 400; line-height: 1.05; letter-spacing: -.035em;
}
body.ui-v2 #app.iaia-chat-first .chat-thread:empty::after {
  content: "Conte o que precisa. A IAIÁ acompanha o contexto e ajuda a transformar a conversa em trabalho.";
  max-width: 49ch; font-size: .89rem; line-height: 1.65; color: var(--muted);
}
body.ui-v2 #app.iaia-chat-first .chat-row .chat-bubble {
  max-width: min(84%,690px); padding: 13px 17px;
  border-radius: 15px; font-size: .93rem; line-height: 1.66;
  box-shadow: none; backdrop-filter: none;
}
body.ui-v2 #app.iaia-chat-first .chat-row.agent .chat-bubble {
  border: 1px solid var(--line-soft); border-bottom-left-radius: 5px;
  background: var(--surface-soft); color: var(--ink);
}
body.ui-v2 #app.iaia-chat-first .chat-row.user .chat-bubble {
  border: 1px solid var(--ink); border-bottom-right-radius: 5px;
  background: var(--ink); color: var(--paper);
}
body.ui-v2 #app.iaia-chat-first .dock-quick {
  width: min(100%,870px); margin: 0 auto;
  padding: 7px clamp(18px,3vw,44px) 4px; gap: 9px;
}
body.ui-v2 #app.iaia-chat-first .dock-quick button {
  min-height: 40px; padding: 8px 13px; border-radius: var(--radius-pill);
  background: transparent; color: var(--muted); font-size: .75rem;
}
body.ui-v2 #app.iaia-chat-first .dock-quick button:hover {
  color: var(--ink); border-color: var(--line-strong);
  background: var(--surface-soft);
}
body.ui-v2 #app.iaia-chat-first .chat-composer {
  width: calc(100% - 48px); max-width: 820px;
  min-height: 97px; margin: 9px auto clamp(20px,3vh,34px);
  padding: 15px 15px 12px 20px; gap: 12px;
  border: 1px solid var(--line); border-radius: 19px;
  background: var(--panel-strong);
  box-shadow: none;
  transition: border-color .18s var(--e), box-shadow .18s var(--e);
}
body.ui-v2 #app.iaia-chat-first .chat-composer:focus-within {
  border-color: var(--line-strong); box-shadow: 0 0 0 3px var(--accent-soft);
}
body.ui-v2 #app.iaia-chat-first .composer-field { gap: 12px; }
body.ui-v2 #app.iaia-chat-first .composer-field textarea {
  width: 100%; min-height: 30px; padding: 2px 0;
  font-family: var(--font-sans); font-size: .95rem;
  line-height: 1.55; background: transparent; color: var(--ink);
}
body.ui-v2 #app.iaia-chat-first .composer-tools {
  align-items: center; gap: 8px 12px;
  padding-top: 9px; border-top: 1px solid var(--line-soft);
}
body.ui-v2 #app.iaia-chat-first .composer-tool span {
  color: var(--muted); font-size: .59rem;
  letter-spacing: .025em; text-transform: none;
}
body.ui-v2 #app.iaia-chat-first .composer-tools select {
  max-width: 155px; font-size: .75rem; color: var(--ink);
}
body.ui-v2 #app.iaia-chat-first .composer-note {
  font-size: .68rem; color: var(--muted);
}
body.ui-v2 #app.iaia-chat-first .composer-send {
  width: 44px; height: 44px; border-radius: var(--radius-pill);
  background: var(--ink); color: var(--paper); transform: none;
}
body.ui-v2 #app.iaia-chat-first .composer-send:hover {
  background: var(--accent-ink); transform: none;
}

/* Inspector editorial, sem a sopa de cartões do legado. */
body.ui-v2 #app.iaia-chat-first > .workspace {
  gap: 12px; padding: 22px clamp(17px,2.3vw,31px) 38px;
  border-left: 1px solid var(--line-soft);
  background: var(--bg); box-shadow: none; backdrop-filter: none;
}
body.ui-v2 #app.iaia-chat-first .iaia-context-close {
  align-self: flex-start; margin: 0 0 6px;
  min-height: 44px; padding: 11px 0; color: var(--muted);
  font-size: .72rem; font-weight: 500; background: transparent;
}
body.ui-v2 #app.iaia-chat-first .iaia-context-close::before {
  content: "← "; color: var(--accent-ink); font-size: 1rem;
}
body.ui-v2 #app.iaia-chat-first .iaia-context-close:hover { color: var(--ink); }
body.ui-v2 #app.iaia-chat-first .topbar {
  min-height: 0; padding: 4px 0 19px;
  border-bottom: 1px solid var(--line-soft);
  background: transparent; backdrop-filter: none;
}
body.ui-v2 #app.iaia-chat-first .topbar h1 {
  font-size: clamp(1.13rem,1.4vw,1.48rem);
  font-weight: 600; line-height: 1.24; letter-spacing: -.04em;
}
body.ui-v2 #app.iaia-chat-first #pageSubtitle {
  margin-top: 7px; font-size: .78rem; line-height: 1.5; color: var(--muted);
}
body.ui-v2 #app.iaia-chat-first .workbench-layout {
  display: block; padding: 0; background: transparent;
}
body.ui-v2 #app.iaia-chat-first .primary-area { min-width: 0; }
body.ui-v2 #app.iaia-chat-first .surface-stack { gap: 13px; }
body.ui-v2 #app.iaia-chat-first .surface-stack > .panel {
  margin: 0; padding: 13px 0 19px;
  border: 0; border-bottom: 1px solid var(--line-soft);
  border-radius: 0; background: transparent;
  box-shadow: none; backdrop-filter: none;
}
body.ui-v2 #app.iaia-chat-first .panel-heading { padding: 0 0 12px; border: 0; }
body.ui-v2 #app.iaia-chat-first .panel-heading h2 {
  font-size: 1.03rem; font-weight: 600;
}
body.ui-v2 #app.iaia-chat-first .surface-item {
  padding: 13px 0; border-bottom: 1px solid var(--line-soft);
  border-radius: 0; background: transparent;
}
body.ui-v2 #app.iaia-chat-first .surface-item:last-child { border-bottom: 0; }
body.ui-v2 #app.iaia-chat-first .item-list { gap: 0; }
body.ui-v2 #app.iaia-chat-first .surface-item-main strong { font-size: .83rem; }
body.ui-v2 #app.iaia-chat-first .surface-item-main p {
  font-size: .75rem; line-height: 1.54; color: var(--muted);
}
/* Snapshots open an immutable detail beneath their summary. Keep that detail
   out of the summary/action flex row so a long title cannot collapse to zero. */
body.ui-v2 .iaia-snapshot { flex-wrap: wrap; }
body.ui-v2 .iaia-snapshot .surface-item-main {
  flex: 1 1 0;
  min-width: 0;
}
body.ui-v2 .iaia-snapshot-detail {
  flex: 1 0 100%;
  align-self: stretch;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  min-width: 0;
  overflow-wrap: anywhere;
  padding-top: 10px;
}
body.ui-v2 #app.iaia-chat-first .pill-switch {
  flex-wrap: wrap; gap: 9px; padding: 0 0 12px;
  border-bottom: 1px solid var(--line-soft);
  border-radius: 0; background: transparent;
}
body.ui-v2 #app.iaia-chat-first .pill-btn {
  min-height: 31px; padding: 6px 9px;
  border: 1px solid transparent; border-radius: 8px;
  color: var(--muted); background: transparent;
}
body.ui-v2 #app.iaia-chat-first .pill-btn.is-active {
  color: var(--ink); background: var(--surface-soft);
  border-color: var(--line-soft);
}
body.ui-v2 #app.iaia-chat-first .quiet-state {
  padding: 16px 0; border: 0; background: transparent; color: var(--muted);
}

/* Acessibilidade e adaptações de tamanho. */
body.ui-v2.iaia-unica-session :is(button,a,input,select,textarea):focus-visible {
  outline: 2px solid var(--accent); outline-offset: 3px;
}
@media (min-width: 981px) and (max-width: 1279px) {
  body.ui-v2 #app.iaia-chat-first.iaia-context-open > .workspace {
    z-index: 110; top: 0; right: 0; bottom: 0;
    width: min(440px, calc(100vw - var(--nav-w) - 12px));
    background: var(--bg);
    box-shadow: -15px 0 38px -27px rgba(20,16,9,.30);
  }
}
@media (max-width: 980px) {
  body.ui-v2.iaia-unica-session .app-shell > .chat-dock[data-placement="fullscreen"] {
    background: var(--paper); border: 0; isolation: isolate;
  }
  body.ui-v2.iaia-unica-session .app-shell > .chat-dock[data-placement="fullscreen"]::before {
    background-size: 340px 340px, 260px 260px;
    background-position: calc(100% + 175px) 65px, -190px calc(100% - 100px);
    opacity: .10;
    animation: none; /* mobile battery and fluid scrolling come first */
    will-change: auto;
  }
  body.ui-v2.iaia-unica-session .app-shell > .chat-dock[data-placement="fullscreen"] > :is(
    .dock-head, .dock-agent-list, .dock-body, .dock-quick, .chat-composer, #chatDockQuick
  ) {
    position: relative;
    z-index: 1;
  }
  body.ui-v2.iaia-unica-session .chat-dock[data-placement="fullscreen"] .dock-head {
    min-height: 65px; padding: 15px 20px; background: var(--paper);
  }
  body.ui-v2.iaia-unica-session .chat-dock[data-placement="fullscreen"] .dock-body .chat-thread {
    padding: 18px 22px 40px;
  }
  body.ui-v2.iaia-unica-session .chat-dock[data-placement="fullscreen"] .chat-composer {
    margin: 8px 14px max(15px,env(safe-area-inset-bottom));
    padding: 12px 12px 11px 15px; border-radius: 17px;
    background: var(--panel-strong);
  }
  /* Preserve the 44px mobile target against ui-v2's compact composer cascade. */
  body.ui-v2.iaia-unica-session .chat-dock[data-placement="fullscreen"] .composer-send {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
  }
  body.ui-v2.iaia-unica-session .chat-dock[data-placement="fullscreen"] .chat-thread:empty::before {
    content: "O que vamos resolver agora?";
    font-family: var(--font-editorial); font-weight: 400;
    font-size: clamp(2.1rem,8vw,3rem);
  }
  body.ui-v2.iaia-unica-session .chat-dock[data-placement="fullscreen"] .chat-thread:empty::after {
    content: "Converse com a IAIÁ e acompanhe o trabalho num só lugar.";
  }
}
@media (prefers-reduced-motion: reduce) {
  body.ui-v2 #app.iaia-chat-first > .chat-dock::before,
  body.ui-v2.iaia-unica-session .app-shell > .chat-dock[data-placement="fullscreen"]::before {
    animation: none;
  }
  body.ui-v2.iaia-unica-active *,
  body.ui-v2.iaia-unica-active *::before,
  body.ui-v2.iaia-unica-active *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}


/* IAIÁ web-first unified shell (14 Oct 2026).
   Authorization determines capabilities, never a second product shell. */
body.ui-v2 #app.iaia-chat-first .nav-capability-group {
  border-top: 1px solid var(--line-soft);
  margin-top: 15px;
  padding-top: 17px;
}
body.ui-v2 #app.iaia-chat-first .nav-capability-heading,
body.ui-v2 #app .nav-capability-heading {
  display: block;
  padding: 0 11px 10px;
  font: 600 .66rem/1.4 var(--font-sans);
  letter-spacing: .045em;
  color: var(--muted);
}
body.ui-v2 #app.iaia-chat-first #roleLabel {
  text-transform: none;
  letter-spacing: .01em;
  font-family: var(--font-sans);
  font-size: .68rem;
}

/* Login and first-password change get the WHOLE canvas. A sidebar built
   before auth is not an administrative product or a legitimate login layout. */
body.ui-v2.iaia-auth-entry {
  background: var(--bg);
  min-height: 100dvh;
}
body.ui-v2.iaia-auth-entry #app.app-shell,
body.ui-v2.iaia-auth-entry #app.app-shell.has-dock {
  display: grid;
  grid-template-columns: minmax(0, 1fr) !important;
  width: 100%;
  max-width: none;
  height: 100dvh;
  min-height: 480px;
  margin: 0;
  border: 0;
}
body.ui-v2.iaia-auth-entry #app > :is(.sidebar, .chat-dock, .tab-bar),
body.ui-v2.iaia-auth-entry #app > .workspace > :is(.topbar, #opsPulse, #journeyRail, #cardsGrid, #contextForm) {
  display: none !important;
}
body.ui-v2.iaia-auth-entry #app > .workspace {
  display: flex !important;
  flex-direction: column;
  grid-column: 1;
  grid-row: 1;
  align-items: stretch;
  justify-content: center;
  overflow: auto;
  min-width: 0;
  padding: 20px clamp(18px, 5vw, 64px);
  gap: 12px;
}
body.ui-v2.iaia-auth-entry #app .workbench-layout {
  display: block;
  width: min(100%, 420px);
  min-width: 0;
  margin: auto;
  grid-template-columns: minmax(0, 1fr);
}
body.ui-v2.iaia-auth-entry #app .primary-area { width: 100%; min-width: 0; }
body.ui-v2.iaia-auth-entry #app #supportArea { display: none !important; }
body.ui-v2.iaia-auth-entry #app .entry-stage {
  min-height: 0;
  width: 100%;
  border: 0;
  padding: 22px 0;
  border-radius: 0;
  background: transparent;
  backdrop-filter: none;
  gap: 12px;
  overflow: visible;
}
body.ui-v2.iaia-auth-entry #app .entry-stage::before,
body.ui-v2.iaia-auth-entry #app .entry-stage::after { display: none; }
body.ui-v2.iaia-auth-entry #app .entry-orb {
  width: clamp(68px, 10vmin, 92px);
  margin: 0 0 8px;
  flex: none;
}
body.ui-v2.iaia-auth-entry #app .entry-orb::before { inset: -20%; opacity: .5; }
body.ui-v2.iaia-auth-entry #app .entry-brand {
  font-family: var(--font-brand);
  font-size: clamp(2.35rem, 5vw, 3.2rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.05em;
  margin: 0 0 7px;
}
body.ui-v2.iaia-auth-entry #app .entry-modal {
  width: 100%;
  max-width: 380px;
  padding: 24px 0 0;
  border: 0;
  border-top: 1px solid var(--line-soft);
  background: transparent;
  box-shadow: none;
  gap: 10px;
}
body.ui-v2.iaia-auth-entry #app .entry-modal-label {
  font: 600 .74rem/1.5 var(--font-sans);
  letter-spacing: .02em;
  text-transform: none;
  color: var(--ink);
  margin: 0;
}
body.ui-v2.iaia-auth-entry #app .entry-caption {
  font: 400 .85rem/1.55 var(--font-sans);
  color: var(--muted);
  margin: 0 0 12px;
}
body.ui-v2.iaia-auth-entry #app .auth-form {
  width: 100%;
  gap: 16px;
}
body.ui-v2.iaia-auth-entry #app .auth-form label {
  font: 500 .75rem/1.45 var(--font-sans);
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
  gap: 7px;
}
body.ui-v2.iaia-auth-entry #app .auth-form input {
  min-height: 48px;
  width: 100%;
  background: var(--paper);
  border-radius: 12px;
  border: 1px solid var(--line);
  padding: 12px 14px;
  font-size: 1rem;
}
body.ui-v2.iaia-auth-entry #app .auth-form button[type="submit"] {
  margin-top: 5px;
  width: 100%;
  min-height: 48px;
  border-radius: 12px;
  font-size: .91rem;
}
body.ui-v2.iaia-auth-entry #app #noticeArea:not([hidden]) {
  display: block;
  width: min(100%, 420px);
  margin: 0 auto;
}
@media (max-width: 980px) {
  /* Mobile in a browser is a first-class client, not a PWA preview. */
  body.ui-v2.iaia-auth-entry #app > .workspace {
    padding: max(18px, env(safe-area-inset-top)) 24px max(20px, env(safe-area-inset-bottom));
  }
  body.ui-v2.iaia-auth-entry #app .entry-stage { padding: 12px 0; gap: 9px; }
  body.ui-v2.iaia-auth-entry #app .entry-orb { width: 74px; }
  body.ui-v2.iaia-auth-entry #app .entry-modal { padding-top: 20px; }
  body.ui-v2.iaia-auth-entry #app .entry-brand { font-size: 2.6rem; }
  body.ui-v2 #app .tab-bar { padding-bottom: max(8px, env(safe-area-inset-bottom)); }
  body.ui-v2 #app .tab-item { min-height: 48px; }
}
@media (max-width: 380px), (max-height: 620px) {
  body.ui-v2.iaia-auth-entry #app.app-shell { min-height: 0; }
  body.ui-v2.iaia-auth-entry #app > .workspace { justify-content: flex-start; }
  body.ui-v2.iaia-auth-entry #app .entry-orb { width: 54px; }
  body.ui-v2.iaia-auth-entry #app .entry-stage { padding: 4px 0; }
}
