/*
 * Professional support workspaces — focused Apple-style finishing layer.
 *
 * Scope: knowledge search, risk models, reasoning canvas and enterprise
 * control map. Presentation only: renderers, data, permissions and workflow
 * decisions remain owned by their existing modules.
 */

:root {
  --ps-canvas: #f5f5f7;
  --ps-surface: #ffffff;
  --ps-surface-soft: #fafafa;
  --ps-surface-muted: #f1f2f5;
  --ps-ink: #172033;
  --ps-secondary: #647084;
  --ps-tertiary: #8b95a5;
  --ps-line: #dfe3e8;
  --ps-line-soft: #eceff3;
  --ps-blue: #1769e8;
  --ps-blue-soft: #eef5ff;
  --ps-amber: #aa6a06;
  --ps-amber-soft: #fff8e8;
  --ps-green: #157552;
  --ps-radius: 12px;
  --ps-radius-lg: 16px;
  --ps-shadow: 0 1px 2px rgba(15, 23, 42, .025), 0 10px 28px rgba(15, 23, 42, .04);
}

body:is(
  [data-active-view="qa"],
  [data-active-view="riskmodels"],
  [data-active-view="reasoningcanvas"],
  [data-active-view="reasoningcanvasv2"],
  [data-active-view="ictest"]
) .main-content {
  padding: 18px 26px 40px;
  background: var(--ps-canvas);
}

body:is(
  [data-active-view="qa"],
  [data-active-view="riskmodels"],
  [data-active-view="ictest"]
) .view-panel.active {
  width: 100%;
  max-width: 1320px;
  margin: 0 auto;
}

body:is(
  [data-active-view="qa"],
  [data-active-view="riskmodels"],
  [data-active-view="ictest"]
) .view-panel > .app-page-hero {
  margin-bottom: 12px;
  padding: 2px 2px 14px;
}

body:is(
  [data-active-view="qa"],
  [data-active-view="riskmodels"],
  [data-active-view="ictest"]
) .view-panel > .app-page-hero h2 {
  font-size: clamp(23px, 2vw, 27px);
  letter-spacing: -.035em;
}

body:is(
  [data-active-view="qa"],
  [data-active-view="riskmodels"],
  [data-active-view="ictest"]
) :is(.btn, button) {
  transition: border-color .16s ease, background-color .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
}

/* Knowledge search — the question field is the work surface; source management stays secondary. */
#view-qa.qa-redesigned > .app-page-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 22px;
}

#view-qa.qa-redesigned .app-page-hero-copy {
  max-width: 820px;
}

#view-qa.qa-redesigned .qa-library-heading-actions {
  gap: 7px;
  flex-wrap: nowrap;
}

#view-qa.qa-redesigned .qa-library-source-btn {
  flex: 0 0 auto;
  min-height: 34px;
  padding: 0 11px;
  border: 1px solid var(--ps-line);
  border-radius: 9px;
  background: rgba(255, 255, 255, .82);
  color: #40506a;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
  box-shadow: none;
}

#view-qa.qa-redesigned .qa-library-source-btn:hover {
  border-color: #b9c9e4;
  background: #fff;
  color: var(--ps-blue);
}

#view-qa.qa-redesigned .qa-workbench {
  gap: 10px;
}

#view-qa.qa-redesigned .prompt-panel {
  overflow: hidden;
  border-color: var(--ps-line);
  border-radius: var(--ps-radius);
  background: rgba(255, 255, 255, .78);
  box-shadow: none;
}

#view-qa.qa-redesigned .prompt-header {
  min-height: 38px;
  padding: 8px 12px;
  border: 0;
  background: transparent;
}

#view-qa.qa-redesigned .prompt-panel-title {
  color: #39465a;
  font-size: 12px;
  font-weight: 720;
}

#view-qa.qa-redesigned .prompt-toggle {
  font-size: 11px;
  font-weight: 700;
}

#view-qa.qa-redesigned .qa-chat-container {
  min-height: 0;
  height: auto !important;
  max-height: none;
  border-color: var(--ps-line);
  border-radius: var(--ps-radius-lg);
  background: var(--ps-surface);
  box-shadow: var(--ps-shadow);
}

#view-qa.qa-redesigned .qa-source-filter {
  min-height: 44px;
  margin: 0;
  padding: 7px 10px;
  border: 0;
  border-bottom: 1px solid var(--ps-line-soft);
  border-radius: 0;
  background: var(--ps-surface-soft);
}

#view-qa.qa-redesigned .qa-source-toggle {
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: #5f6b7f;
  font-size: 11px !important;
}

#view-qa.qa-redesigned .qa-source-toggle.active {
  border-color: #c8d8f1;
  background: #fff;
  color: var(--ps-blue);
  box-shadow: 0 1px 3px rgba(15, 23, 42, .06);
}

#view-qa.qa-redesigned .qa-context-chip {
  max-width: 250px;
  border-color: #dbe5f3;
  border-radius: 8px;
  background: #f2f6fb;
  color: #426182;
  font-size: 11px !important;
}

#view-qa.qa-redesigned .qa-mode-bar {
  min-height: 43px;
  padding: 7px 11px;
  border-color: var(--ps-line-soft);
  background: #fff;
}

#view-qa.qa-redesigned .qa-mode-switch {
  border-color: var(--ps-line);
  border-radius: 9px;
  background: var(--ps-surface-muted);
}

#view-qa.qa-redesigned .qa-input-area {
  gap: 10px;
  padding: 12px 13px;
  border-bottom: 1px solid var(--ps-line-soft);
  background: #fff;
}

#view-qa.qa-redesigned .qa-input-area input {
  min-height: 44px;
  padding: 0 16px;
  border: 1px solid #d9dde4;
  border-radius: 22px;
  background: #f7f7f8;
  font-size: 13px;
  box-shadow: inset 0 1px 1px rgba(15, 23, 42, .02);
}

#view-qa.qa-redesigned .qa-input-area input:focus {
  border-color: #8db4f2;
  background: #fff;
  outline: 3px solid rgba(23, 105, 232, .1);
}

#view-qa.qa-redesigned #qa-send {
  min-width: 84px;
  min-height: 42px;
  border-radius: 21px;
  box-shadow: none;
}

#view-qa.qa-redesigned .qa-messages {
  min-height: 220px !important;
  padding: 16px !important;
  background: linear-gradient(180deg, #fff, #fbfcfe);
}

#view-qa.qa-redesigned .qa-scope-ready-state {
  width: 100%;
  max-width: none;
  padding: 16px !important;
  border: 1px solid #d7e4f5 !important;
  border-radius: 12px;
  background: #f8fbff !important;
  box-shadow: none;
}

#view-qa.qa-redesigned .qa-hints {
  display: flex;
  align-items: center;
  gap: 7px;
  overflow-x: auto;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid var(--ps-line);
  border-radius: var(--ps-radius);
  background: rgba(255, 255, 255, .84);
  scrollbar-width: none;
}

#view-qa.qa-redesigned .qa-hints::-webkit-scrollbar { display: none; }

#view-qa.qa-redesigned .qa-hint-btn {
  flex: 0 0 auto;
  min-height: 30px;
  border-color: var(--ps-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}

#view-qa.qa-redesigned .qa-knowledge-library-drawer {
  margin-top: 10px;
  border-color: var(--ps-line);
  border-radius: var(--ps-radius);
  background: rgba(255, 255, 255, .86);
  box-shadow: none;
}

#view-qa.qa-redesigned .qa-knowledge-library-drawer > summary {
  min-height: 44px;
  padding: 9px 13px;
}

/* Risk models — library on the left, one calm model workspace on the right. */
#view-riskmodels .rm-page {
  gap: 10px;
}

#view-riskmodels .rm-pipeline-note {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 58px;
  padding: 11px 15px;
  border: 1px solid var(--ps-line) !important;
  border-radius: var(--ps-radius-lg) !important;
  background: #fff !important;
  box-shadow: var(--ps-shadow) !important;
}

#view-riskmodels .rm-pipeline-note strong {
  margin-right: 5px;
  color: var(--ps-ink);
  font-size: 17px;
  letter-spacing: -.02em;
}

#view-riskmodels .rm-pipeline-note span {
  color: #46546a;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

#view-riskmodels .rm-pipeline-note i {
  color: #b6bdc8;
  font-style: normal;
}

#view-riskmodels .rm-pipeline-note small {
  flex: 1 1 320px;
  margin-left: auto;
  color: var(--ps-tertiary);
  font-size: 11px;
  line-height: 1.45;
  text-align: right;
}

#view-riskmodels .rm-workspace-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--ps-line);
  border-radius: var(--ps-radius);
  background: var(--ps-surface-muted);
}

#view-riskmodels .rm-workspace-tab {
  min-height: 52px;
  padding: 8px 12px;
  border: 0;
  border-right: 1px solid var(--ps-line);
  background: transparent;
}

#view-riskmodels .rm-workspace-tab:last-child { border-right: 0; }

#view-riskmodels .rm-workspace-tab.active,
#view-riskmodels .rm-workspace-tab.is-active {
  background: #fff;
  color: var(--ps-blue);
  box-shadow: inset 0 -2px 0 var(--ps-blue);
}

#view-riskmodels .rm-workspace-tab strong { font-size: 13px; }
#view-riskmodels .rm-workspace-tab small { margin-top: 2px; font-size: 10px; }

#view-riskmodels .rm-source-drawer {
  margin: 4px 0 0;
  border-color: var(--ps-line);
  border-radius: var(--ps-radius);
  background: rgba(255, 255, 255, .7);
  box-shadow: none;
}

#view-riskmodels .rm-source-drawer > summary {
  min-height: 44px;
  padding: 8px 12px;
  background: transparent;
}

#view-riskmodels .rm-source-drawer > summary span { font-size: 10px; }
#view-riskmodels .rm-source-drawer > summary strong { margin-top: 1px; font-size: 13px; }
#view-riskmodels .rm-source-drawer > summary small { margin-top: 1px; font-size: 10px; }

#view-riskmodels .rm-model-entry-note {
  margin: 2px 0 0;
  padding: 11px 13px;
  border: 1px solid var(--ps-line) !important;
  border-radius: var(--ps-radius) !important;
  background: #fff !important;
  box-shadow: none !important;
}

#view-riskmodels .rm-layout {
  grid-template-columns: 200px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}

#view-riskmodels :is(.rm-sidebar, .rm-main) {
  overflow: hidden;
  border: 1px solid var(--ps-line);
  border-radius: var(--ps-radius-lg);
  background: #fff;
  box-shadow: var(--ps-shadow);
}

#view-riskmodels .rm-sidebar-head {
  min-height: 46px;
  padding: 11px 13px;
  border-color: var(--ps-line-soft);
  background: var(--ps-surface-soft);
}

#view-riskmodels .rm-model-list {
  gap: 1px;
  max-height: 720px;
  padding: 5px;
  background: #fbfbfc !important;
  box-shadow: none !important;
}

#view-riskmodels .rm-model-card {
  display: flex;
  align-items: center;
  min-height: 52px;
  padding: 9px 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  box-shadow: none;
}

#view-riskmodels .rm-model-card:hover {
  border-color: #d6deea;
  background: #fff;
  box-shadow: none;
}

#view-riskmodels .rm-model-card.active {
  border-color: #b8cff1;
  background: var(--ps-blue-soft);
  box-shadow: inset 3px 0 0 var(--ps-blue);
}

#view-riskmodels .rm-model-card p {
  display: -webkit-box;
  overflow: hidden;
  margin: 5px 0 7px;
  font-size: 11px;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

#view-riskmodels .rm-model-required {
  margin-bottom: 7px;
  color: #68768b;
  font-size: 10px;
}

#view-riskmodels .rm-detail {
  gap: 10px !important;
  padding: 10px !important;
}

#view-riskmodels .rm-detail-head {
  padding: 15px 16px !important;
  border: 1px solid var(--ps-line) !important;
  border-radius: var(--ps-radius) !important;
  background: #fff !important;
  box-shadow: none !important;
}

#view-riskmodels .rm-detail-head h3 { font-size: 21px; letter-spacing: -.025em; }

#view-riskmodels .rm-actions .btn {
  min-height: 34px;
  border-radius: 9px;
  box-shadow: none;
}

#view-riskmodels .rm-run-playbook {
  padding: 13px !important;
  border-color: var(--ps-line) !important;
  background: #fbfcfe !important;
  box-shadow: none !important;
}

#view-riskmodels .rm-playbook-steps {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px !important;
}

#view-riskmodels .rm-playbook-steps article {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 3px 10px;
  align-content: start;
  padding: 10px 11px !important;
  border-color: var(--ps-line);
  border-radius: 10px !important;
  background: #fff;
  box-shadow: none;
}

#view-riskmodels .rm-playbook-steps article > span {
  grid-row: 1 / 4;
  width: 26px;
  height: 26px;
  background: var(--ps-blue);
  font-size: 10px;
}

#view-riskmodels .rm-playbook-steps article > :is(strong, p, small) {
  grid-column: 2;
  margin-top: 0;
}

#view-riskmodels .rm-playbook-steps article strong { font-size: 12px; }
#view-riskmodels .rm-playbook-steps article p { font-size: 11px !important; line-height: 1.45 !important; }

#view-riskmodels .rm-playbook-boundary {
  margin-top: 8px;
  padding: 9px 11px;
  border-radius: 9px;
  background: var(--ps-blue-soft);
}

#view-riskmodels :is(.rm-section, .rm-secondary-drawer) {
  border-color: var(--ps-line) !important;
  border-radius: var(--ps-radius) !important;
  background: #fff !important;
  box-shadow: none !important;
}

#view-riskmodels .rm-field-card {
  border-color: var(--ps-line);
  border-radius: 10px;
  background: #fafbfc;
}

#view-riskmodels .rm-field-card.required {
  border-color: #c9daf2;
  background: #f6f9fe;
}

#view-riskmodels .rm-upload-box {
  min-height: 74px;
  border-color: #a9c5ee;
  border-radius: 11px;
  background: #f6f9fe;
}

#view-riskmodels .rm-upload-note {
  border-color: var(--ps-line);
  border-radius: 11px;
  background: #fafafa;
}

/* Reasoning canvas — preserve the expert field and quiet the surrounding chrome. */
body:is([data-active-view="reasoningcanvas"], [data-active-view="reasoningcanvasv2"]) .main-content {
  padding: 12px 16px 22px;
}

#view-reasoningcanvasv2 .reasoning-canvas-v2-host,
#view-reasoningcanvas .reasoning-canvas-host {
  overflow: hidden;
  min-height: calc(100vh - 146px);
  border: 1px solid var(--ps-line) !important;
  border-radius: var(--ps-radius-lg) !important;
  background: #fff !important;
  box-shadow: var(--ps-shadow) !important;
}

#view-reasoningcanvasv2 .reasoning-canvas-ai-bar {
  min-height: 48px;
  padding: 8px 13px;
  border-color: var(--ps-line-soft);
  background: rgba(255, 255, 255, .96);
}

#view-reasoningcanvasv2 .reasoning-canvas-ai-bar > div:first-child span {
  color: var(--ps-blue);
  font-size: 9px;
  letter-spacing: .07em;
}

#view-reasoningcanvasv2 .reasoning-canvas-ai-bar > div:first-child strong { font-size: 12px; }
#view-reasoningcanvasv2 .reasoning-canvas-ai-bar > div:first-child small { color: var(--ps-tertiary); font-size: 10px; }

#view-reasoningcanvasv2 .reasoning-canvas-ai-bar .btn {
  min-height: 32px;
  border-radius: 9px;
  box-shadow: none;
}

#view-reasoningcanvasv2 #reasoning-canvas-v2-frame,
#view-reasoningcanvas #reasoning-canvas-frame {
  border: 0;
  background: #fff;
}

/* Enterprise control map — status remains legible without turning the page yellow. */
#view-ictest .ic-atlas {
  overflow: hidden;
  border: 1px solid var(--ps-line) !important;
  border-radius: var(--ps-radius-lg) !important;
  background: #fff !important;
  box-shadow: var(--ps-shadow) !important;
}

#view-ictest .ic-atlas-toolbar {
  grid-template-columns: auto minmax(260px, 1fr) auto auto auto;
  gap: 11px;
  padding: 12px 14px;
  border-color: var(--ps-line-soft) !important;
  background: #fff !important;
}

#view-ictest .ic-atlas-title strong {
  color: var(--ps-ink);
  font-size: 17px;
  letter-spacing: -.02em;
}

#view-ictest .ic-atlas-search input {
  min-height: 40px;
  border: 1px solid #d8dde5;
  border-radius: 10px;
  background: #f7f7f8;
  box-shadow: none;
}

#view-ictest .ic-atlas-search input:focus {
  border-color: #8db4f2;
  background: #fff;
  outline: 3px solid rgba(23, 105, 232, .1);
}

#view-ictest .ic-atlas-legend {
  color: var(--ps-secondary);
  font-size: 10px;
}

#view-ictest .ic-atlas-summary strong {
  color: var(--ps-ink);
  font-size: 20px;
}

#view-ictest .ic-atlas-layout {
  grid-template-columns: minmax(0, 1fr) 278px;
  min-height: 570px;
}

#view-ictest .ic-atlas-map {
  padding: 12px;
  background: var(--ps-canvas);
}

#view-ictest .ic-atlas-groups {
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 9px;
}

#view-ictest .ic-atlas-group {
  border-color: var(--ps-line);
  border-radius: 12px;
  background: #f9f9fa;
  box-shadow: none;
}

#view-ictest .ic-atlas-group > header {
  min-height: 44px;
  padding: 9px 11px;
  border-color: var(--ps-line-soft);
  background: #fff;
}

#view-ictest .ic-atlas-group-status {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 7px;
  border-radius: 999px;
  background: #f0f2f5;
  color: #657286;
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}

#view-ictest .ic-atlas-group-status.has-gaps {
  background: #fff7e8;
  color: #9a6418;
}

#view-ictest .ic-atlas-group-status.is-ready {
  background: #edf8f2;
  color: #2f7d5c;
}

#view-ictest .ic-atlas-parcels { gap: 7px; padding: 7px; }

#view-ictest .ic-atlas-parcel {
  min-height: 82px;
  padding: 10px;
  border: 1px solid var(--ps-line);
  border-radius: 10px;
  background: #fff;
  color: #556277;
  box-shadow: none;
}

#view-ictest .ic-atlas-parcel:hover {
  border-color: #bdc9d8;
  background: #fff;
  box-shadow: 0 8px 20px rgba(15, 23, 42, .06);
  transform: translateY(-1px);
}

#view-ictest .ic-atlas-parcel.is-building {
  border-color: var(--ps-line);
  background: #fff;
  color: #68758a;
  box-shadow: none;
}

#view-ictest .ic-atlas-parcel.is-built {
  border-color: #c7e1d5;
  background: #fbfefc;
  color: var(--ps-green);
  box-shadow: inset 3px 0 0 #4fa47d;
}

#view-ictest .ic-atlas-parcel.is-unbuilt {
  border-color: var(--ps-line);
  background: #fafafa;
  color: #788394;
}

#view-ictest .ic-atlas-parcel.is-active {
  border-color: #8bb2eb;
  background: var(--ps-blue-soft);
  box-shadow: inset 3px 0 0 var(--ps-blue), 0 0 0 2px rgba(23, 105, 232, .08);
}

#view-ictest .ic-atlas-parcel > span {
  color: #26364d;
  font-size: 12px;
}

#view-ictest .ic-atlas-parcel > strong {
  color: currentColor;
  font-size: 11px;
}

#view-ictest .ic-atlas-parcel > small {
  color: #7b8798;
  font-size: 10px;
  line-height: 1.45;
}

#view-ictest .ic-atlas-parcel > i {
  height: 3px;
  background: #e9ebef;
}

#view-ictest .ic-atlas-inspector {
  padding: 16px;
  border-color: var(--ps-line) !important;
  background: #fff;
}

#view-ictest .ic-atlas-inspector > header {
  padding-bottom: 12px;
  border-color: var(--ps-line-soft);
}

#view-ictest .ic-atlas-inspector > header h3 {
  color: var(--ps-ink);
  font-size: 19px;
  letter-spacing: -.02em;
}

#view-ictest .ic-atlas-inspector > header button {
  border-color: var(--ps-line);
  border-radius: 9px;
  background: #fff;
}

#view-ictest .ic-atlas-inspector-status {
  border: 1px solid #ead9b6;
  border-radius: 11px;
  background: var(--ps-amber-soft) !important;
  color: #82540a !important;
}

#view-ictest .ic-atlas-resources > div {
  border-color: var(--ps-line-soft);
}

#view-ictest .ic-atlas-inspector-actions .btn {
  min-height: 38px;
  border-radius: 10px;
  box-shadow: none;
}

@media (max-width: 1180px) {
  #view-riskmodels .rm-layout { grid-template-columns: 184px minmax(0, 1fr); }
  #view-ictest .ic-atlas-groups { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
  #view-ictest .ic-atlas-toolbar { grid-template-columns: auto minmax(240px, 1fr) auto; }
  #view-ictest .ic-atlas-legend { grid-column: 1 / 3; }
  #view-ictest .ic-atlas-summary { grid-column: 3; }
}

@media (max-width: 980px) {
  body:is(
    [data-active-view="qa"],
    [data-active-view="riskmodels"],
    [data-active-view="ictest"]
  ) .main-content { padding: 14px 16px 30px; }

  #view-qa.qa-redesigned > .app-page-hero { align-items: flex-start; flex-direction: column; }
  #view-qa.qa-redesigned .qa-library-heading-actions { flex-wrap: wrap; justify-content: flex-start; }
  #view-riskmodels .rm-pipeline-note { align-items: flex-start; flex-wrap: wrap; }
  #view-riskmodels .rm-pipeline-note small { flex-basis: 100%; text-align: left; }
  #view-riskmodels .rm-layout { grid-template-columns: 1fr; }
  #view-riskmodels .rm-model-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: none; }
  #view-ictest .ic-atlas-layout { grid-template-columns: 1fr; }
  #view-ictest .ic-atlas-inspector { border-top: 1px solid var(--ps-line); border-left: 0 !important; }
}

@media (max-width: 720px) {
  #view-qa.qa-redesigned .qa-source-filter { align-items: flex-start; }
  #view-qa.qa-redesigned .qa-context-chip { width: 100%; max-width: none; margin-left: 0; }
  #view-qa.qa-redesigned .qa-scope-ready-state { grid-template-columns: 1fr; }
  #view-riskmodels .rm-workspace-tabs { grid-template-columns: 1fr; }
  #view-riskmodels .rm-workspace-tab { border-right: 0; border-bottom: 1px solid var(--ps-line); }
  #view-riskmodels .rm-workspace-tab:last-child { border-bottom: 0; }
  #view-riskmodels .rm-model-list,
  #view-riskmodels .rm-playbook-steps { grid-template-columns: 1fr; }
  #view-ictest .ic-atlas-groups { grid-template-columns: 1fr; }
  #view-ictest .ic-atlas-group.is-wide { grid-column: span 1; }
  #view-ictest .ic-atlas-group.is-wide .ic-atlas-parcels { grid-template-columns: 1fr; }
}
