/* Workspace geometry. Kept after the legacy theme so one set of variables
   owns rail/content/composer alignment, including focused and touch states. */
:root {
  --workspace-rail: 0px;
  --workspace-column: 760px;
  --workspace-gutter: 14px;
  --workspace-inset: max(var(--workspace-gutter), calc((100% - var(--workspace-rail) - var(--workspace-column)) / 2 + var(--workspace-gutter)));
}
/* Netlify collaboration is disabled for this project. Also contain a cached
   Drawer injection so its blocked external frame cannot cover any app view. */
iframe[title="Netlify Drawer"][src^="https://app.netlify.com/cdp/"] {
  display: none !important; visibility: hidden !important; pointer-events: none !important;
  width: 0 !important; height: 0 !important;
}

.page[data-view="chat"] > .content,
.page[data-view="projects"] > .content {
  width: min(100%, var(--workspace-column)) !important;
  padding-left: var(--workspace-gutter) !important;
  padding-right: var(--workspace-gutter) !important;
  margin-inline: auto !important;
}
#composerWrap {
  position: fixed !important;
  left: calc(var(--workspace-rail) + var(--workspace-inset)) !important;
  right: var(--workspace-inset) !important;
  top: auto !important;
  bottom: max(12px, calc(env(safe-area-inset-bottom) + 8px)) !important;
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  translate: none !important;
}
#composerWrap .composer {
  display: grid !important;
  grid-template-columns: 44px minmax(0, 1fr) 44px 44px;
  grid-template-areas: "files files files files" "attach prompt mic send" "voice voice voice voice";
  column-gap: 6px;
  align-items: end;
  width: 100% !important;
  max-width: none !important;
  min-height: 0 !important;
  padding: 8px !important;
  border-radius: 18px !important;
}
#composerWrap .composer-bottom,
#composerWrap .composer-actions { display: contents !important; }
#composerWrap .active-mode { display: none !important; }
#composerWrap #prompt {
  grid-area: prompt;
  min-width: 0 !important;
  min-height: 44px !important;
  height: var(--prompt-height, 44px) !important;
  max-height: 128px !important;
  padding: 11px 2px !important;
  line-height: 22px !important;
  font-size: 16px !important;
  overflow-y: auto !important;
}
#composerWrap #attachBtn { grid-area: attach; }
#composerWrap #micBtn { grid-area: mic; }
#composerWrap #sendBtn { grid-area: send; }
#composerWrap .composer-btn,
#composerWrap .send { width: 44px !important; height: 44px !important; min-height: 44px !important; margin: 0 !important; }
#composerWrap #chatAttachments { grid-area: files; }
#composerWrap #voiceStatus { grid-area: voice; }
/* Hidden page state is stronger than any old display:...!important rule.
   Hiding never clears the draft, attachments or running response. */
body:not(.chat-active) #composerWrap,
.page:not(.active) #composerWrap,
#composerWrap[hidden],
body.auth-locked #composerWrap,
body.auth-pending #composerWrap { display: none !important; }
body.chat-active:not(.composer-focused):not(.keyboard-open) .chat-layout {
  padding-bottom: calc(var(--chat-composer-h) + 28px) !important;
}
body.chat-active:not(.composer-focused):not(.keyboard-open) #messages {
  padding-bottom: 16px !important;
  scroll-padding-bottom: calc(var(--chat-composer-h) + 28px) !important;
}
@media (pointer: fine) and (min-width: 900px) {
  :root { --workspace-rail: 252px; --workspace-column: 1040px; --workspace-gutter: 24px; }
  .app { grid-template-columns: var(--workspace-rail) minmax(0, 1fr) !important; }
  #composerWrap { bottom: 20px !important; }
}
@media (pointer: fine) and (min-width: 1220px) {
  :root { --workspace-rail: 272px; }
}
@media (pointer: coarse) {
  body.chat-active.composer-focused #composerWrap,
  body.chat-active.keyboard-open #composerWrap {
    top: calc(var(--chat-vvt) + var(--chat-vvh) - var(--chat-composer-h) - 8px) !important;
    bottom: auto !important;
  }
}

/* Keep generated content useful in a conversation without filling the screen.
   Native details gives mouse, touch and keyboard users the same collapse action. */
.build-preview-card { margin: 12px 0; border-radius: 16px; }
.build-preview-card .build-preview-heading { padding: 14px 16px 10px; gap: 10px; }
.build-preview-heading h3 { font-size: 15px; line-height: 1.4; margin-top: 4px; }
.build-preview-window > summary { cursor: pointer; padding: 10px 16px; min-height: 44px; color: #bdecef; font-size: 13px; }
.build-preview-window > summary:focus-visible { outline: 2px solid #83e4ed; outline-offset: -3px; }
.build-preview-window .build-preview-toolbar { padding: 6px 10px; }
.build-preview-window .build-preview-stage { padding: 8px; }
.build-preview-window .build-preview-stage iframe { height: clamp(220px, 38dvh, 360px); min-height: 0; max-height: none; }
.build-preview-window [data-build-preview-status] { margin: 0; padding: 0 12px 6px; font-size: 12px; }
.build-preview-window [data-build-preview-status]:empty { display: none; }
.build-preview-card .build-preview-note { margin: 10px 14px 0; line-height: 1.4; }
.build-preview-card .build-preview-actions { padding: 10px 12px; }
.build-preview-card .build-save-status { margin: 0; padding: 0 14px 10px; }

/* Projects/recent work are lists, not full-height preview canvases. */
.page[data-view="projects"] .os-projects-page { padding-top: 18px !important; padding-bottom: 28px !important; }
.page[data-view="projects"] .project-top { margin-top: 0 !important; align-items: center; }
.page[data-view="projects"] .project-top > .display { font-size: clamp(26px, 5vw, 36px) !important; max-width: none !important; }
.page[data-view="projects"] .project-system-strip { display: none; }
.page[data-view="projects"] .lead { margin-top: 8px; font-size: 14px; line-height: 1.45; }
.page[data-view="projects"] .project-tabs { margin-top: 16px; }
#buildArchive { margin: 18px 0 24px; }
#buildArchive .section-head { margin-bottom: 8px; align-items: center; }
#buildArchive .section-head p { margin: 4px 0; font-size: 13px; }
#buildArchiveSync { margin: 8px 0 12px; color: var(--muted); font-size: 12px; }
#buildArchive .build-archive-list { grid-template-columns: 1fr; gap: 10px; }
#buildArchive .build-archive-card { padding: 14px 16px; border-radius: 16px; }
#buildArchive .build-archive-card h3 { margin: 6px 0; font-size: 16px; line-height: 1.4; }
#buildArchive .build-archive-card p { margin: 4px 0; font-size: 12px; }
#buildArchive .build-archive-actions { margin-top: 10px; gap: 6px; }
#buildArchive .build-archive-actions button { padding: 8px 12px; font-size: 13px; }
#buildArchive .build-save-status:empty { display: none; }
.page[data-view="projects"] .project-card { padding: 14px !important; }
.page[data-view="projects"] .project-card h3 { margin-top: 10px; font-size: 16px; }
.page[data-view="projects"] .activity { min-height: 68px !important; padding: 10px 12px !important; }
.page[data-view="projects"] .activity-copy strong { font-size: 14px !important; line-height: 1.4; }
.page[data-view="projects"] .activity-copy span { font-size: 12px !important; }

/* Fit control panels to their contents; only their body scrolls when necessary. */
#capabilityOverlay { align-items: center !important; padding: 12px !important; }
#capabilityOverlay .capability-sheet {
  width: min(100%, 680px) !important;
  height: auto !important;
  max-height: calc(100dvh - 24px) !important;
  min-height: 0 !important;
  border-radius: 20px !important;
  margin: auto !important;
}
#capabilityOverlay .capability-head { position: relative !important; top: auto !important; min-height: 0 !important; padding: 16px !important; gap: 10px !important; }
#capabilityOverlay .capability-head h2 { font-size: 22px !important; line-height: 1.15 !important; }
#capabilityOverlay .capability-head p { font-size: 12px !important; line-height: 1.4 !important; }
#capabilityOverlay .capability-tabs { position: relative !important; top: auto !important; padding: 8px 12px !important; }
#capabilityOverlay .capability-tab b { font-size: 12px !important; }
#capabilityOverlay .capability-content { flex: 0 1 auto !important; padding: 14px 16px 18px !important; }
#capabilityOverlay .capability-panel { gap: 12px !important; }
#capabilityOverlay .capability-section-title { align-items: center !important; flex-wrap: wrap; }
#capabilityOverlay .cap-status { color: #adc2c8; font-size: 11px !important; padding: 6px 9px !important; min-height: 0 !important; }
#capabilityOverlay .cap-info-card { grid-template-columns: minmax(0, 1fr) !important; padding: 10px 12px !important; }
#capabilityOverlay .cap-info-icon { display: none !important; }
#capabilityOverlay .cap-info-card strong { font-size: 14px !important; }
#capabilityOverlay .cap-info-card p { font-size: 12px !important; line-height: 1.5 !important; }
#capabilityOverlay .capability-field span { font-size: 12px !important; }
#capabilityOverlay .capability-field input { min-height: 44px !important; height: 44px !important; padding: 10px 12px !important; font-size: 16px !important; }
#capabilityOverlay .capability-action-row { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 !important; }
#capabilityOverlay .capability-save { min-height: 44px !important; font-size: 13px !important; margin: 0 !important; }
#capabilityOverlay .capability-inline-status { margin: 0 !important; font-size: 12px !important; line-height: 1.5 !important; }
#capabilityOverlay .capability-inline-status:empty { display: none; }
@media (max-width: 420px) {
  #capabilityOverlay { padding: 8px !important; }
  #capabilityOverlay .capability-sheet { max-height: calc(100dvh - 16px) !important; }
  #capabilityOverlay .capability-head h2 { font-size: 20px !important; }
  #capabilityOverlay .capability-tab { gap: 4px !important; padding: 0 4px !important; }
  #capabilityOverlay .capability-tab b { font-size: 11px !important; }
  #capabilityOverlay .capability-head > div > span { display: none; }
}
/* Chat workspace v2: one visual viewport and one scroll container in all focus
   states. Keyboard events only update dimensions; they never reset scrolling. */
:root { --chat-header-h: 64px; --chat-vvt: 0px; --chat-vvh: 100dvh; }
body.chat-active { overflow: hidden !important; height: 100dvh !important; }
body.chat-active .main { overflow: hidden !important; min-height: 0 !important; }
/* Legacy focus rules fixed the main container and established a second
   viewport. The chat page alone owns visual-viewport geometry now. */
body.chat-active .main,
body.chat-active.composer-focused .main,
body.chat-active.keyboard-open .main {
  position: static !important; inset: auto !important; height: auto !important;
  width: auto !important; padding: 0 !important; margin: 0 !important;
  transform: none !important; translate: none !important; contain: none !important;
}
body.chat-active #mainTopbar {
  position: fixed !important; top: var(--chat-vvt) !important;
  left: var(--workspace-rail) !important; right: 0 !important;
  width: auto !important; max-width: none !important;
  height: auto !important; min-height: 60px !important;
  padding: calc(env(safe-area-inset-top) + 8px) 14px 8px !important;
  transform: none !important; transition: none !important;
}
body.chat-active #mainTopbar .subtitle, body.chat-active #pageSubtitle { display: none !important; }
body.chat-active #mainTopbar .icon-btn { width: 40px !important; height: 40px !important; }
body.chat-active #pageTitle { font-size: 18px !important; }
body.chat-active .top-ready-pill { padding: 8px 10px !important; font-size: 11px !important; min-height: 36px !important; }
body.chat-active #chatPage {
  position: fixed !important; left: var(--workspace-rail) !important; right: 0 !important;
  width: auto !important; min-width: 0 !important; max-width: none !important;
  top: calc(var(--chat-vvt) + var(--chat-header-h)) !important;
  height: max(100px, calc(var(--chat-vvh) - var(--chat-header-h))) !important;
  min-height: 0 !important; max-height: none !important; overflow: hidden !important;
  padding: 0 !important; margin: 0 !important; transform: none !important;
}
body.chat-active #chatPage > #chatLayout {
  position: relative !important; inset: auto !important;
  display: flex !important; flex-direction: column !important;
  height: 100% !important; min-height: 0 !important; max-height: none !important;
  padding-top: 0 !important; padding-bottom: 0 !important;
  overflow: hidden !important; gap: 0 !important; transform: none !important;
}
body.chat-active #messages {
  position: relative !important; inset: auto !important; width: 100% !important;
  flex: 1 1 0 !important; height: auto !important; min-height: 0 !important;
  max-height: none !important; overflow-y: auto !important; overflow-x: hidden !important;
  overscroll-behavior-y: contain; overflow-anchor: none; scroll-behavior: auto !important;
  padding: 18px 0 20px !important; scroll-padding-bottom: 20px !important;
  margin: 0 !important; transform: none !important; transition: none !important;
}
body.chat-active #composerWrap,
body.chat-active.composer-focused #composerWrap,
body.chat-active.keyboard-open #composerWrap {
  position: relative !important; flex: 0 0 auto !important;
  inset: auto !important; width: 100% !important; left: auto !important; right: auto !important;
  top: auto !important; bottom: auto !important;
  padding: 4px 0 max(10px, env(safe-area-inset-bottom)) !important;
  z-index: 10 !important; transform: none !important; transition: none !important;
}
body.chat-active #emptyChat {
  min-height: 0 !important; height: auto !important; max-width: 520px !important;
  margin: clamp(24px, 10vh, 110px) auto 24px !important; padding: 0 8px !important;
  display: block !important; text-align: center !important; transform: none !important;
}
body.chat-active #emptyChat h2 {
  font-size: clamp(23px, 4vw, 32px) !important; line-height: 1.2 !important;
  letter-spacing: -.035em !important; max-width: none !important; margin: 16px 0 10px !important;
}
body.chat-active #emptyChat p { display: block !important; font-size: 14px !important; line-height: 1.5 !important; color: #9daeb4; margin: 0 !important; }
.welcome-mark { display: inline-grid; place-items: center; width: 44px; height: 44px; border: 1px solid #2b5459; color: #8fe7e7; border-radius: 14px; font-size: 22px; font-weight: 700; }
body.chat-active #emptyChat .suggestions { display: flex !important; justify-content: center; flex-wrap: wrap; gap: 8px !important; margin-top: 22px !important; }
body.chat-active #emptyChat .suggestion { min-height: 44px !important; width: auto !important; padding: 10px 14px !important; font-size: 13px !important; border-radius: 24px !important; }
body.chat-active.composer-focused #emptyChat { margin: 12px auto !important; }
body.chat-active.composer-focused #emptyChat .welcome-mark,
body.chat-active.composer-focused #emptyChat p,
body.chat-active.composer-focused #emptyChat .suggestions { display: none !important; }
body.chat-active.composer-focused #emptyChat h2 { font-size: 18px !important; margin: 8px 0 !important; }
/* React to focus immediately, including tablets with a mouse and soft keyboard. */
body.chat-active #chatPage:has(#prompt:focus) #emptyChat { margin: 8px auto !important; }
body.chat-active #chatPage:has(#prompt:focus) #emptyChat .welcome-mark,
body.chat-active #chatPage:has(#prompt:focus) #emptyChat p,
body.chat-active #chatPage:has(#prompt:focus) #emptyChat .suggestions { display: none !important; }
body.chat-active #chatPage:has(#prompt:focus) #emptyChat h2 { font-size: 18px !important; margin: 8px 0 !important; }
body.chat-active.keyboard-open #composerWrap { padding-bottom: 6px !important; }
.answer-body a { color: #8fe7e7; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.answer-body a:focus-visible { outline: 2px solid #8fe7e7; outline-offset: 3px; }
body.chat-active #messages .msg { scroll-margin: 0 !important; }
body.chat-active #chatToolbar { display: flex !important; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 0 !important; margin: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; min-height: 0 !important; }
.core-choice-label { display: flex; align-items: center; gap: 6px; color: #90a6ad; font-size: 11px; min-width: 0; }
#coreChoice { font: inherit; font-size: 12px; color: #deeeee; background: #0b181c; border: 1px solid #274047; border-radius: 9px; max-width: 220px; min-height: 36px; padding: 4px 8px; }
.chat-intelligence-strip .chat-intel-brand > span, .chat-intelligence-strip .chat-intel-brand strong { display: none !important; }
#chatIntelSub { font-size: 10px !important; color: #90a6ad; overflow-wrap: anywhere; }
.chat-jump-latest { position: absolute; right: 24px; bottom: calc(var(--chat-composer-h) + 12px); z-index: 12; min-height: 40px; padding: 8px 14px; border: 1px solid #46626a; border-radius: 22px; background: #10262d; color: #e5f4f5; cursor: pointer; }
.chat-jump-latest[hidden] { display: none !important; }
.conversation-group-title { font-size: 14px !important; margin: 18px 0 8px !important; }
.recent-swipe { padding-right: 48px; min-height: 64px; }
.conversation-pin { position: absolute; right: 0; top: 10px; z-index: 2; width: 44px; height: 44px; background: transparent; border: 1px solid #294047; border-radius: 10px; color: #94e5e8; font-size: 22px; cursor: pointer; }
.recent-swipe .activity { min-height: 64px !important; padding: 10px 12px !important; }
.recent-swipe .activity strong { font-size: 14px !important; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.recent-swipe .activity-icon { display: none !important; }
.os-projects-page { max-width: 960px !important; padding: 24px !important; }
.os-projects-page .project-top { margin: 0 0 8px !important; }
.os-projects-page h1.display { font-size: 28px !important; margin: 0 !important; }
.os-projects-page > .lead { font-size: 14px !important; margin: 0 0 20px !important; }
.folder-tools { display: flex; align-items: end; gap: 12px; }
.folder-tools label { flex: 1; font-size: 12px; color: #a4b7bd; }
.folder-tools input { display: block; width: 100%; min-height: 44px; margin-top: 6px; padding: 10px 12px; border: 1px solid #294047; border-radius: 12px; font-size: 16px; background: #081619; color: #edfafa; }
.build-archive-list { display: grid !important; grid-template-columns: minmax(0,1fr) !important; gap: 8px !important; }
.build-archive-card { padding: 0 !important; border-radius: 14px !important; min-width: 0; }
.build-archive-card[hidden] { display: none !important; }
.project-folder-row { display: flex; gap: 12px; align-items: center; width: 100%; padding: 14px !important; min-height: 76px; border: 0; background: none; color: inherit; text-align: left; cursor: pointer; }
.folder-icon { flex: 0 0 32px; font-size: 30px; color: #8bdde2; }
.folder-copy { flex: 1; min-width: 0; }
.folder-copy strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 15px; line-height: 1.4; }
.folder-copy small,.folder-chat small { display: block; font-size: 11px; color: #a3b6bc; line-height: 1.5; margin-top: 4px; }
.project-folder > p { font-size: 13px; color: #a3b6bc; }
.folder-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.folder-actions button,.folder-chat { min-height: 44px; padding: 10px 12px; border: 1px solid #31525a; border-radius: 10px; background: #10252a; color: #e5f6f8; cursor: pointer; font-size: 13px; }
.project-folder h3 { font-size: 15px; margin: 20px 0 10px; }
.folder-chat { display: block; width: 100%; text-align: left; margin: 6px 0; }
.folder-chat strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
/* Intrinsic grid width from a long title must never stretch a mobile sheet. */
#settingsOverlay .settings-sheet { min-width: 0 !important; max-width: 100% !important; }
#settingsOverlay .settings-body { display: block !important; min-width: 0 !important; width: 100% !important; overflow-x: hidden !important; }
#settingsOverlay .settings-head-copy { min-width: 0 !important; flex: 1 1 0 !important; }
#settingsOverlay #settingsTitle { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#settingsOverlay .project-folder, #settingsOverlay .project-folder > *, .folder-actions > *, .folder-chat { min-width: 0; max-width: 100%; box-sizing: border-box; }
#settingsOverlay:has(.project-folder) { padding: 12px !important; align-items: center !important; }
#settingsOverlay:has(.project-folder) .settings-sheet {
  width: min(680px, 100%) !important; height: auto !important;
  max-height: calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
  border-radius: 20px !important;
}
#settingsOverlay:has(.project-folder) .settings-body { padding: 16px !important; }
.folder-chat strong { white-space: normal; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.conversation-group > summary { cursor: pointer; display: flex; align-items: center; gap: 8px; min-height: 48px; list-style: none; font-size: 14px; font-weight: 700; }
.conversation-group > summary::-webkit-details-marker { display: none; }
.conversation-group > summary::before { content: '›'; font-size: 22px; transition: transform .15s; }
.conversation-group[open] > summary::before { transform: rotate(90deg); }
.conversation-group > summary span { color: #91a8ae; font-size: 12px; }
.conversation-more { width: 100%; margin: 8px 0; min-height: 44px; }
.conversation-move { display: block; margin: 0 0 10px; color: #9ddce0; background: transparent; border: 0; min-height: 36px; padding: 6px 12px; cursor: pointer; }
.folder-picker { display: grid; gap: 12px; }
.folder-picker label, .build-guide label { display: grid; gap: 6px; font-size: 14px; }
.folder-picker select, .folder-picker input, .build-guide input, .build-guide textarea, .build-guide select { width: 100%; min-width: 0; min-height: 44px; background: #0a191e; color: #e5f6f8; border: 1px solid #31525a; border-radius: 10px; padding: 10px; font: inherit; font-size: 16px; }
.build-guide { display: grid; gap: 16px; }
.build-guide textarea { min-height: 90px; resize: vertical; }
html,body { overscroll-behavior-x: none; }
@media(max-width:600px){
  .os-projects-page,.history-page { padding: 16px !important; }
  .folder-tools { gap: 8px; }
  .folder-copy strong { font-size: 14px; }
  .project-folder-row { padding: 12px !important; }
  .folder-actions { display: grid; grid-template-columns: minmax(0,1fr); }
  .settings-sheet:has(#projectFolder) { max-height: calc(100dvh - env(safe-area-inset-top) - 24px); overflow-y: auto; }
}
body.chat-active #errorBox.show { display: flex !important; flex: 0 0 auto; max-height: 28dvh; overflow: auto; padding: 12px !important; margin: 8px 0 !important; border-radius: 14px !important; }
body.chat-active #errorBox b { font-size: 14px !important; }
body.chat-active #errorBox span,body.chat-active #errorBox button { font-size: 13px !important; }
body.chat-active #errorBox svg { width: 20px !important; height: 20px !important; }
body.chat-active #errorBox .error-diag { margin-top: 8px; padding-top: 8px; }
/* Progress is a compact non-modal status; never a sheet behind the composer. */
#agentOverlay { background: none !important; backdrop-filter: none !important; pointer-events: none !important; align-items: start !important; padding: 0 !important; z-index: 9400 !important; }
#agentOverlay .agent-sheet { position: fixed !important; top: calc(var(--chat-vvt) + var(--chat-header-h) + 46px) !important; left: calc(var(--workspace-rail) + var(--workspace-inset)) !important; right: var(--workspace-inset) !important; width: auto !important; max-width: none !important; min-height: 0 !important; height: auto !important; padding: 12px 14px !important; border-radius: 14px !important; transform: none !important; pointer-events: auto; }
#agentOverlay .agent-grid,#agentOverlay .agent-note,#agentOverlay .agent-kicker { display: none !important; }
#agentOverlay h2 { font-size: 14px !important; margin: 0 !important; }
#agentOverlay .agent-close { width: 32px !important; height: 32px !important; }
#agentOverlay .agent-progress { height: 3px !important; margin: 6px 0 !important; }
#agentOverlay .agent-stage { font-size: 12px !important; margin: 0 !important; }
body:not(.chat-active) #agentOverlay { display: none !important; }
.history-page { max-width: 880px !important; padding: 24px !important; }
.history-page h1 { font-size: 28px; margin: 0 0 8px; }
.history-page p { color: var(--muted); font-size: 13px; line-height: 1.5; }
.bottom-nav { display: none !important; }
.page[data-view="projects"] .project-panel { display: block !important; }
@media (max-width: 600px) {
  .chat-intelligence-strip .chat-intel-brand { display: none !important; }
  body.chat-active #emptyChat { margin-top: 32px !important; }
  body.chat-active #emptyChat h2 { font-size: 24px !important; }
  #agentOverlay .agent-sheet { padding: 8px 12px !important; }
}

/* Unified navigation and conversation rows for touch, tablet and desktop. */
#recentList { display: grid !important; gap: 8px !important; overflow: visible !important; }
#recentList .recent-swipe { display: grid !important; grid-template-columns: minmax(0,1fr) 44px 44px; align-items: center; gap: 4px; padding: 6px !important; min-height: 66px; background: #091418; border: 1px solid #263b42; border-radius: 14px; overflow: hidden; }
#recentList .activity { grid-column: 1; grid-row: 1; width: 100% !important; min-width: 0 !important; border: 0 !important; border-radius: 8px !important; box-shadow: none !important; transform: none !important; transition: none !important; padding: 6px 8px !important; background: transparent !important; }
#recentList .activity-copy { min-width: 0; }
#recentList .activity-copy > span { font-size: 11px !important; line-height: 1.4; }
#recentList .activity strong { font-size: 13px !important; line-height: 1.4 !important; }
#recentList .activity .arrow { display: none !important; }
#recentList .conversation-pin,#recentList .recent-delete { position: static !important; inset: auto !important; width: 44px !important; height: 44px !important; border: 0 !important; border-radius: 8px !important; opacity: 1 !important; pointer-events: auto !important; background: transparent !important; box-shadow: none !important; z-index: auto !important; }
#recentList .conversation-pin { grid-column: 2; grid-row: 1; font-size: 22px; }
#recentList .recent-delete { grid-column: 3; grid-row: 1; font-size: 11px; color: #a7b9bf; }
#recentList .recent-delete:hover { color: #ffb5bd; background: #35191e !important; }
#recentList button:focus-visible { outline: 2px solid #79dddd; outline-offset: -2px; }
#mainTopbar { z-index: 1000 !important; }
body:not(.chat-active) #mainTopbar { position: sticky !important; top: 0 !important; min-height: 60px !important; height: auto !important; padding: max(8px,env(safe-area-inset-top)) 14px 8px !important; }
body:not(.chat-active) .page.active { padding-top: 16px !important; }
#drawerBg:not(.open):not(.gesture-active) { visibility: hidden !important; pointer-events: none !important; opacity: 0 !important; }
#drawerBg.open { visibility: visible !important; opacity: 1 !important; pointer-events: auto !important; }
.executive-drawer .executive-nav { display: flex !important; flex-direction: column; gap: 4px !important; padding: 8px 12px !important; }
.executive-drawer .drawer-link { display: flex !important; align-items: center !important; min-height: 52px !important; padding: 8px 10px !important; gap: 12px !important; }
.executive-drawer .executive-icon { width: 32px !important; height: 32px !important; min-width: 32px !important; border-radius: 9px !important; }
.executive-drawer .executive-copy { flex: 1; min-width: 0; }
.executive-drawer .executive-copy strong { font-size: 15px !important; }
.executive-drawer .executive-copy small { font-size: 11px !important; }
.executive-drawer .executive-chevron { font-size: 20px !important; }
#chatIntelSub { display: none !important; }
#coreChoice { font-size: 13px !important; min-height: 40px; }
.work-activity { display: flex; align-items: flex-start; gap: 10px; padding: 4px 2px 16px; color: #a4bdc4; font-size: 13px; line-height: 1.5; }
.work-activity p { margin: 0; }
.activity-pulse { flex: 0 0 8px; height: 8px; margin-top: 6px; border-radius: 50%; background: #75e1dc; animation: work-pulse 1.6s ease-in-out infinite; }
@keyframes work-pulse { 50% { opacity: .3; } }
@media(prefers-reduced-motion:reduce) { .activity-pulse { animation: none; } }
#messages #errorBox { margin: 12px 0 !important; padding: 14px !important; border-radius: 14px !important; }
#messages #errorBox h3,#messages #errorTitle { font-size: 15px !important; }
#messages #errorText,.partial-answer-note { font-size: 13px !important; line-height: 1.5; }
@media(max-width:600px) {
  .page[data-view="history"] .content { padding: 0 14px 24px !important; }
  .page[data-view="history"] h1 { font-size: 26px !important; }
  .page[data-view="history"] .lead { font-size: 13px !important; line-height: 1.5; }
}
/* Reliability release: compact history, language and job controls. */
.project-nav-heading { display:flex; align-items:center; gap:4px; }
.project-nav-heading > .rail-btn,.project-nav-heading > .drawer-link { flex:1; min-width:0; }
[data-toggle-pins] { min-width:40px; min-height:40px; border:0; border-radius:10px; background:transparent; color:inherit; cursor:pointer; }
[data-toggle-pins][aria-expanded="false"] { transform:rotate(-90deg); }
#railPins[hidden],#drawerPins[hidden] { display:none!important; }
#railPins,#drawerPins { padding-left:20px; }
#conversationSync { font-size:11px; color:var(--muted); margin-left:auto; }
#conversationSync[data-state="error"],#conversationSync[data-state="storage-error"] { color:#ffbba3; }
#pendingJobNotice button { flex-shrink:0; min-height:38px; border:1px solid var(--border,#30404a); border-radius:10px; background:transparent; color:inherit; padding:6px 12px; }
#pendingJobNotice { padding:14px; margin:12px 0; }
#pendingJobNotice p { overflow-wrap:anywhere; }

/* Keep the status copy and shared NO/EN control in explicit grid cells. */
.drawer-status-mini > .status-core { grid-column:1; grid-row:1/3; }
.drawer-status-mini > span:not(.status-core) { grid-column:2; grid-row:1; min-width:0; }
.drawer-status-mini > small { grid-column:2; grid-row:2; min-width:0; }
.drawer-status-mini .language-track { height:44px !important; }
/* Netlify collaboration HUD is disabled for this project. Suppress stale
   injected copies globally so they cannot cover chat, sheets or navigation. */
iframe#nl-hud-frame { display: none !important; visibility: hidden !important; pointer-events: none !important; width: 0 !important; height: 0 !important; }

/* The application owns the visible viewport; old theme surfaces cannot cover it. */
body.chat-active::before,body.chat-active::after { display:none !important; }
body.chat-active .main { overflow:visible !important; max-height:none !important; filter:none !important; backdrop-filter:none !important; perspective:none !important; }
body.chat-active #chatPage { z-index:1 !important; bottom:auto !important; }
body.chat-active #chatLayout { flex:none !important; }
body.chat-active #composerWrap { height:auto !important; min-height:0 !important; max-height:none !important; background:transparent !important; isolation:isolate; }
body.chat-active #composerWrap .composer { position:relative !important; inset:auto !important; transform:none !important; translate:none !important; max-height:none !important; margin:0 !important; }
body.chat-active.keyboard-open #composerWrap #prompt { max-height:min(128px,25vh) !important; }
.branch-chat,.branch-origin { min-height:36px; border:1px solid #31525a; border-radius:10px; background:#0b181c; color:#d3eded; padding:6px 10px; font:inherit; font-size:12px; cursor:pointer; }
.branch-origin { display:block; margin:0 0 16px; }
.branch-chat:focus-visible,.branch-origin:focus-visible { outline:2px solid #8fe7e7; outline-offset:2px; }
@media(max-width:420px){.branch-chat span { display:none; }.branch-chat { min-width:36px; font-size:20px; padding:2px 8px; }#coreChoice{max-width:155px;}}
iframe#nl-hud-frame { display:none !important; visibility:hidden !important; pointer-events:none !important; width:0 !important; height:0 !important; }
.drawer-account-details{margin:18px 0 12px;border-top:1px solid var(--line);padding-top:12px}
.drawer-account-details[hidden]{display:none!important}
.drawer-account-details>summary{display:flex;align-items:center;gap:12px;padding:14px 8px;min-height:48px;cursor:pointer;list-style:none;color:var(--text)}
.drawer-account-details>summary::-webkit-details-marker{display:none}
.drawer-account-details>summary .executive-copy{flex:1}
.account-disclosure-arrow{font-size:26px;transition:transform .15s}
.drawer-account-details[open] .account-disclosure-arrow{transform:rotate(90deg)}
.drawer-account-details .signed-user-card{margin:4px 0 8px}

/* Compact search sits above the app chrome and follows the visible keyboard viewport. */
body.search-open{overflow:hidden!important}
#commandOverlay{z-index:12100!important;inset:auto 0 auto!important;top:var(--search-top,0px)!important;height:var(--search-vh,100dvh)!important;box-sizing:border-box;padding:max(8px,env(safe-area-inset-top)) 10px 8px!important;overflow:hidden;background:rgba(0,5,8,.48);backdrop-filter:blur(3px)}
#commandOverlay .command-palette{display:flex;flex-direction:column;width:min(100%,440px);max-width:440px;max-height:min(370px,calc(var(--search-vh,100dvh) - 24px));margin:0 auto;border-radius:16px;overflow:hidden}
#commandOverlay .search-heading{display:flex;flex:0 0 48px;align-items:center;border-bottom:1px solid var(--line);height:48px}
#commandOverlay .command-search{min-width:0;height:48px!important;min-height:48px!important;padding:0 12px!important;border:0;box-shadow:none;font-size:16px!important}
#commandClose{flex:0 0 44px;width:44px;height:44px;min-height:44px;border:0;background:transparent;color:var(--text);font-size:24px}
#commandOverlay .command-list{padding:4px;overflow:auto;min-height:0;overscroll-behavior:contain;scroll-padding:4px}
#commandOverlay .command-list[hidden]{display:none}
#commandOverlay .search-result{padding:7px 10px!important;min-height:48px!important;height:48px;align-items:center!important;border-radius:10px;gap:0;font-size:14px}
#commandOverlay .search-result>span{min-width:0;flex:1}
#commandOverlay .search-result strong,#commandOverlay .search-result small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:17px}
#commandOverlay .search-result strong{font-size:14px;color:var(--text)}
#commandOverlay .search-result small{font-size:11px;color:var(--muted);margin-top:2px}
#commandOverlay .search-result.selected{background:#102a31}
.search-note{padding:10px 12px;margin:0;font-size:12px;color:var(--muted);flex-shrink:0}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.hub-tools{display:flex;gap:8px;align-items:center}.hub-search{flex:1;min-width:0}
.hub-tools input,.hub-tools select{height:44px;min-width:0;width:100%;border:1px solid #29464d;border-radius:12px;background:#081418;color:var(--text);padding:8px 10px;font:inherit}
.hub-tools select{width:120px;font-size:14px!important}.hub-status{margin:8px 0;font-size:12px;color:var(--muted)}
.hub-list{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important}
.work-row{position:relative;overflow:hidden;border:1px solid #233d43;border-radius:14px;background:#472128;min-width:0}
.work-row .project-folder-row{position:relative;z-index:1;display:flex;align-items:center;gap:10px;width:100%;min-height:66px;padding:10px 12px;border:0;background:#09171c;color:var(--text);text-align:left;touch-action:pan-y;transition:transform .16s ease}
.work-row .folder-icon{font-size:22px;flex:0 0 26px}.work-row .folder-copy{min-width:0;flex:1}.work-row .folder-copy strong{display:block;font-size:14px;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.work-row .folder-copy small{display:block;margin-top:3px;font-size:11px;color:var(--muted)}
.work-delete{position:absolute;z-index:0;right:0;top:0;bottom:0;width:80px;border:0;background:#7c2636;color:white;font:inherit;font-size:13px;cursor:pointer}.delete-cross{display:none}
.work-row.is-open .project-folder-row{transform:translateX(-80px)}.work-row.is-dragging .project-folder-row{transition:none}
.work-row:focus-within .work-delete:focus-visible{z-index:2;outline:2px solid white;outline-offset:-4px}
.work-restore{position:relative;z-index:2;width:100%;min-height:44px;border:0;background:#173c3f;color:white;font:inherit}.work-row:has(.work-restore){background:#09171c}
.hub-empty{font-size:13px;color:var(--muted);padding:16px 4px}.hub-more{margin-top:12px;min-height:44px}.hub-project-tasks{min-height:44px;margin:8px 0}
@media(hover:hover) and (pointer:fine){.work-row .project-folder-row{padding-right:52px}.work-delete{z-index:2;width:44px;height:44px;top:11px;right:4px;bottom:auto;border-radius:10px;background:#10252b;color:#bcd2d6}.delete-cross{display:block;font-size:24px}.delete-word{display:none}.work-row .project-folder-row{transform:none!important}}
@media(prefers-reduced-motion:reduce){.work-row .project-folder-row{transition:none}}

/* Project/settings sheets own the visible viewport, including on scrolled pages. */
body.sheet-open{overflow:hidden!important;overscroll-behavior:none!important}
#settingsOverlay{position:fixed!important;inset:0!important;top:var(--sheet-top,0px)!important;bottom:auto!important;height:var(--sheet-vh,100dvh)!important;z-index:12050!important;box-sizing:border-box!important;padding:0!important;overflow:hidden!important;align-items:stretch!important;background:#030b0e!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;transition:none!important;visibility:hidden!important}
#settingsOverlay.open{visibility:visible!important;opacity:1!important;pointer-events:auto!important}
#settingsOverlay .settings-sheet{display:flex!important;flex-direction:column!important;width:100%!important;max-width:100%!important;height:100%!important;max-height:100%!important;min-height:0!important;margin:0!important;border:0!important;border-radius:0!important;overflow:hidden!important;transform:none!important;transition:none!important}
#settingsOverlay .settings-sheet-head{position:relative!important;top:auto!important;flex:0 0 auto!important;min-height:64px!important;grid-template-columns:44px minmax(0,1fr) 44px!important;gap:10px!important;padding:max(10px,env(safe-area-inset-top)) 12px 10px!important;background:#071318!important;backdrop-filter:none!important}
#settingsOverlay .settings-head-copy h2{font-size:clamp(18px,4.5vw,24px)!important;line-height:1.2!important;white-space:normal!important;overflow-wrap:anywhere!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden!important}
#settingsOverlay .settings-body{display:grid!important;align-content:start!important;flex:1 1 auto!important;min-width:0!important;min-height:0!important;overflow:auto!important;overscroll-behavior:contain!important;overflow-anchor:none!important;padding:14px 14px max(20px,env(safe-area-inset-bottom))!important;scroll-padding:14px}
#settingsOverlay .settings-body>*{min-width:0;max-width:100%}
#settingsOverlay .folder-actions{display:grid;gap:8px}
#settingsOverlay .folder-actions button,#settingsOverlay .hub-project-tasks{width:100%;min-height:44px}
#pinOverlay{z-index:12500!important}
@media(min-width:900px) and (pointer:fine){
  #settingsOverlay{padding:20px!important;background:rgba(1,7,9,.88)!important;justify-content:center!important}
  #settingsOverlay .settings-sheet{width:min(100%,900px)!important;border:1px solid #29444d!important;border-radius:20px!important}
}
