/* Browser-hosted desktop shell. Traffic lights are decorative, not OS controls. */
:root { --workspace-header-height: 56px; --workspace-footer-height: 73px; }
body { display: flex; flex-direction: column; padding: 0; background: var(--bg-container); }
.desktop-traffic { position: static; display: flex; gap: 8px; align-items: center; margin: 0; }
.desktop-traffic span { width: 12px; height: 12px; border-radius: 50%; border: 1px solid #00000012; }
.app .desktop-traffic span:nth-child(1) { background: #ff5f57; }
.app .desktop-traffic span:nth-child(2) { background: #febc2e; }
.app .desktop-traffic span:nth-child(3) { background: #28c840; }
body > .app {
  flex: 1; min-height: 0; height: auto; width: 100%; border: 0;
  border-radius: 0; box-shadow: none;
}
#sidebar .sb-titlebar {
  flex: 0 0 var(--workspace-header-height); height: var(--workspace-header-height);
  min-height: var(--workspace-header-height); margin: 0; padding: 0 22px;
  border: 0; flex-direction: row; gap: 8px;
}
.desktop-brand-row { display: flex; align-items: center; flex: 0 0 48px; padding: 0 22px; margin-bottom: 12px; }
.main .main-header, .main .ai-side-head {
  height: var(--workspace-header-height); min-height: var(--workspace-header-height);
  flex: 0 0 var(--workspace-header-height); padding-top: 0; padding-bottom: 0;
  border-bottom: 1px solid #eeecf1;
}
.main .ai-side-head { padding-left: 20px; padding-right: 20px; }
.ai-side-mark { stroke: none; width: 18px; height: 18px; }
.main .ai-side-name { color: #514b5c; }
.ai-thread { padding: 20px 20px 12px; }
.main .sb-reopen { top: 14px; }
.main.with-ai-side .view-market-board .mb-wrap { padding-top: 0; }
.main .mb-page-head {
  min-height: var(--workspace-header-height); padding: 0; margin: 0 0 20px;
  align-items: center; border-bottom: 1px solid #eeecf1;
}
.main .fm-page { padding-top: 0; }
.main .fm-page-head {
  min-height: var(--workspace-header-height); margin: 0 0 24px; padding: 8px 0;
  align-items: center; border-bottom: 1px solid #eeecf1;
}
.main .thread.view-strategy-hub, .main .thread.view-signal-plaza { padding-top: 0; }
.main .ss-page-header {
  min-height: var(--workspace-header-height); margin: 0 0 20px; padding: 0;
  align-items: center; border-bottom: 1px solid #eeecf1;
}
.main .sc-page-editor .sc-editor-top { min-height: var(--workspace-header-height); padding: 0; margin-bottom: 20px; }
.main .fm-breadcrumb { min-height: var(--workspace-header-height); margin: 0; align-items: center; }
/* Both columns share one baseline; a multiline composer can still grow. */
#sidebar .sb-footer { height: var(--workspace-footer-height); min-height: var(--workspace-footer-height); }
.main .ai-composer {
  min-height: var(--workspace-footer-height);
  display: flex; flex-direction: column; justify-content: center;
  border-top-color: #eeecf1;
}
@media (max-width: 680px) {
  body { padding: 0; }
  body > .app { border: 0; border-radius: 0; }
  #sidebar .sb-titlebar { padding: 0; flex-direction: column; justify-content: center; gap: 6px; }
  .desktop-brand-row { padding: 0; justify-content: center; }
  .desktop-traffic { gap: 6px; }
  .desktop-traffic span { width: 10px; height: 10px; }
}
/* Adopt the reference client's honest hover/keyboard feedback, without
 * negative margins or transparent overlays across page controls. */
.app button:not(:disabled), .app [role="button"]:not([aria-disabled="true"]) { cursor: pointer; }
.app button:disabled, .app [aria-disabled="true"] { cursor: not-allowed; }
.app :is(a, button, input, textarea, select, [tabindex]):focus-visible { outline: 2px solid #9670ce; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  .app *, .app *::before, .app *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
