/* VIS refinements for pickers, conflict search, analytics and knowledge pages. */
#app .app-shell:has(:is(.filing-parity, .project-workspace-page, .filing-approval-detail-page,
  .workflow-detail-page, .workflow-app-page, .seal-application-page, .missive-application-page,
  .hr-detail-page)) { grid-template-rows: 72px 8px minmax(0, 1fr) !important; }
#app .filing-page.filing-parity { --filing-original-control: var(--ui-soft) !important; }
#app .filing-parity #filing-form .filing-co-allocation,
#app .filing-parity #filing-form .filing-cause-tree { background: var(--ui-surface); }
#app .filing-parity #filing-form .filing-co-allocation-head { background: var(--ui-soft); }
#app .filing-contract-preview-stage,
#app .filing-contract-preview-stage.live-pdf,
#app .filing-missive-preview { background: var(--ui-soft) !important; }

@media (max-width: 820px) {
  #app .app-shell:has(:is(.filing-parity, .project-workspace-page, .filing-approval-detail-page,
    .workflow-detail-page, .workflow-app-page, .seal-application-page, .missive-application-page,
    .hr-detail-page)) { grid-template-rows: 60px 8px minmax(0, 1fr) !important; }
}

.filing-original-dialog {
  border: 1px solid var(--v2-line);
  border-radius: 6px;
  color: var(--v2-ink);
  box-shadow: 0 16px 56px rgba(51, 27, 36, .2);
}
.filing-original-dialog > .modal-head {
  background: #fff;
  color: var(--v2-ink);
  border-top: 3px solid var(--ui-primary);
  border-bottom: 1px solid var(--v2-line-soft);
  min-height: 50px;
  flex-basis: 50px;
}
.filing-original-dialog > .modal-head h2 { font-size: 16px; font-weight: 600; }
.filing-original-dialog > .modal-head .modal-close { color: var(--v2-muted); }
.filing-original-dialog > .modal-foot {
  border-top: 1px solid var(--v2-line-soft);
  background: #fff;
  gap: 12px;
  min-height: 60px;
  flex-basis: 60px;
}
.filing-original-dialog > .modal-body { background: #faf8f9; }
.primary-nav .nav-menu-trigger.active,
.primary-nav .nav-menu-item.active > .nav-menu-trigger,
.primary-nav .nav-menu-item.desktop-open > .nav-menu-trigger,
.primary-nav > button.active {
  width: calc(100% - 8px);
  margin-left: 4px;
  margin-right: 4px;
  border-radius: 12px !important;
  border: 0 !important;
}
.primary-nav .nav-menu-trigger.active,
.primary-nav .nav-menu-item.active > .nav-menu-trigger,
.primary-nav .nav-menu-item.desktop-open > .nav-menu-trigger,
.primary-nav .nav-menu-item.mobile-open > .nav-menu-trigger { 
  width: calc(100% - 8px);
  margin-left: 4px;
  margin-right: 4px;
  border-radius: 12px !important;
  border: 0 !important;
}
.filing-client-search input, .filing-person-search input,
.filing-person-position select { background: #f6f3f5; color: var(--v2-ink); }
.filing-client-search button, .filing-person-search button,
.filing-client-create-hint button, .filing-client-pagination b {
  background: var(--ui-primary);
  border-radius: 4px;
  color: #fff;
}
.filing-client-search input:focus, .filing-person-search input:focus {
  box-shadow: inset 0 0 0 1px var(--ui-primary);
}
.filing-client-search { width: 360px; max-width: 100%; }
.filing-client-search input { flex: 1; min-width: 0; }
.filing-client-table-wrap { border-color: var(--v2-line); background: #fff; }
.filing-client-table th, .filing-client-table td { font-size: 12px; border-color: var(--v2-line-soft); }
.filing-client-table th { background: #f7f2f4; color: #54434b; }
.filing-client-table tr.selected td { background: var(--ui-primary-soft); }
.filing-original-dialog input[type="checkbox"], .filing-original-dialog input[type="radio"] { accent-color: var(--ui-primary); }
.filing-person-picker-layout { gap: 16px; grid-template-columns: 210px minmax(0, 1fr) minmax(0, 1fr); }
.filing-person-tree, .filing-person-available, .filing-person-selected {
  border-color: var(--v2-line); border-radius: 4px; min-width: 0;
}
.filing-person-list-head, .filing-person-selected-head {
  color: var(--ui-accent-ink); border-color: var(--v2-line-soft); background: #fff;
}
.filing-person-tree-row:hover, .filing-person-tree-row.active,
.filing-person-choice-row:hover { background: var(--ui-primary-soft); color: var(--ui-accent-ink); }
.filing-person-selected-row { color: var(--ui-accent-ink); }
.filing-person-search { border-color: var(--v2-line-soft); }

#app .conflict-page { border-radius: 6px; color: var(--v2-ink); }
#app .conflict-condition :is(input, select) {
  background: #faf8f9; color: var(--v2-ink); border-color: var(--v2-line);
}
#app .conflict-condition :is(input, select):focus { border-color: var(--ui-primary); outline-color: var(--ui-primary); }
#app .conflict-smart { color: var(--ui-accent-ink); background: #fff; }
#app .conflict-options input { accent-color: var(--ui-primary); }
#app .conflict-principles { background: #f7f3f5; border-top: 1px solid var(--v2-line); border-left: 0; color: var(--v2-muted); }
#app .conflict-principles h2 { color: var(--v2-ink); border-left: 3px solid var(--ui-primary); padding-left: 10px; font-weight: 600; }

#app .analytics-page { width: 100%; color: var(--v2-ink); }
#app :is(.analytics-page-head h1, .analytics-panel h2, .analytics-invoice h2, .analytics-kpi strong) { color: var(--v2-ink); }
#app :is(.analytics-toolbar, .analytics-kpi, .analytics-report-form, .analytics-invoice, .analytics-panel, .analytics-report-list) {
  border-color: var(--v2-line); box-shadow: var(--v2-shadow);
}
#app .analytics-toolbar { background: #faf8f9; }
#app .analytics-kpi { border-top: 2px solid #d9b7c0; }
#app .analytics-kpi-icon.blue, #app .analytics-kpi-icon.violet { background: var(--ui-primary-soft); color: var(--ui-accent-ink); }
#app :is(.analytics-text-link, .analytics-table-action) { color: var(--ui-accent-ink); }
#app .analytics-primary { background: var(--ui-primary); border-color: var(--ui-primary); }
#app .analytics-primary:hover { background: var(--ui-primary-hover); }
#app .analytics-panel h2 { border-bottom: 1px solid var(--v2-line-soft); }
#app .analytics-trend-area { fill: #fae9ed; }
#app .analytics-trend-line, #app .analytics-trend-point { stroke: var(--ui-primary); }
#app .analytics-rank-fill { background: var(--ui-primary); }
#app .analytics-report-list th { background: #f7f2f4; color: #54434b; }
#app .analytics-report-list td { border-color: var(--v2-line-soft); }

#app .case-document-table th, #app .case-document-table td {
  font-size: 12px; height: 40px; border-color: var(--v2-line-soft);
}
#app .case-document-table th { background: #f7f2f4; color: #54434b; }
#app .case-document-table :is(.case-document-link, .case-document-project-link) { font-size: 12px; color: var(--ui-accent-ink); }
#app .case-document-table tr:hover td { background: #fff7f8; }
#app .case-document-table-frame { border-color: var(--v2-line); }
#app .case-document-shell :is(.pagination, .case-document-search input) { font-size: 12px; }
#app .case-document-search button { background: var(--ui-primary); }
#app .case-document-check input { accent-color: var(--ui-primary); }
#app .case-document-advanced { max-width: calc(100% - 48px); }

#app .workspace:has(.repository-layout) { overflow: auto !important; }
#app .repository-layout {
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 16px;
  min-width: 0;
  height: 100%;
}
#app .repository-layout > .main-panel { min-width: 0; min-height: 0; overflow: auto; }
#app .repository-layout .page-body { padding: 20px !important; min-width: 0; }
#app .repo-tree { min-width: 0; overflow: auto; border-right: 1px solid var(--v2-line); }
#app .repo-tree h2 { white-space: nowrap; color: var(--v2-muted); font-size: 12px; }
#app .repo-tree button { height: 40px; border-radius: 4px; font-size: 12px; padding: 0 12px; }
#app .repo-tree button.active, #app .file-chip.active { background: var(--ui-primary-soft); color: var(--ui-accent-ink); }
#app .repository-layout .toolbar { flex-wrap: wrap; gap: 10px; }
#app .repository-layout :is(.toolbar-left, .toolbar-right) { flex-wrap: wrap; min-width: 0; gap: 8px; }
#app .repository-layout .toolbar-right { margin-left: auto; }
#app .repository-layout .file-chip { border-radius: 4px; font-size: 12px; }
#app .repository-results-heading { margin-bottom: 12px; color: var(--v2-muted); }
#app .repository-table-scroll { min-width: 0; overflow: auto; border-top: 1px solid var(--v2-line-soft); }
#app .repo-table { min-width: 760px; table-layout: fixed; }
#app .repo-table th { background: #f7f2f4; color: #54434b; }
#app .repo-table th, #app .repo-table td { height: 40px; font-size: 12px; padding: 0 10px; }
#app .repo-table .file-name { min-width: 0; max-width: 100%; color: var(--ui-accent-ink); }
#app .repo-table .file-name-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 1000px) and (min-width: 821px) {
  .filing-person-picker-layout { padding: 18px !important; grid-template-columns: 160px minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
}
@media (max-width: 820px) {
  #app .repository-layout { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); gap: 10px; }
  #app .repo-tree { display: flex; align-items: center; gap: 6px; border-right: 0; border-bottom: 1px solid var(--v2-line); }
  #app .repo-tree h2 { margin: 0; padding: 0 6px; flex: 0 0 auto; }
  #app .repo-tree button { width: auto; min-width: 100px; flex: 0 0 auto; }
  #app .repository-layout .page-body { padding: 14px !important; }
  #app .repository-layout .toolbar-right { margin-left: 0; }
  .filing-client-table { min-width: 720px; }
  .filing-person-picker-layout { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .filing-person-tree { max-height: 150px; }
  .filing-person-available, .filing-person-selected { min-height: 240px; }
  .filing-client-toolbar { flex-wrap: wrap; gap: 12px; }
  .filing-client-search { min-width: 0; width: 100%; }
  .filing-client-search input { flex: 1; min-width: 0; }
  #app .case-document-toolbar { flex-wrap: wrap; padding: 0 12px; gap: 8px; }
  #app .case-document-toolbar-left { flex: 1; min-width: 0; }
  #app .case-document-search { flex: 1; min-width: 0; }
  #app .case-document-search input { width: 100%; }
  #app .case-document-search button { flex: 0 0 36px; }
  #app .case-document-advanced { left: 12px; max-width: calc(100% - 24px); grid-template-columns: minmax(0, 1fr); }
}

/* Keep project detail tabs on the same quiet surface and prevent tab switches from flashing. */
#app .project-workspace-page .pw-tabs button.active { border-radius: 10px; }
#app .project-workspace-page .pw-section,
#app .project-workspace-page .pw-document-table-frame,
#app .project-workspace-page .pw-info-card { border: 1px solid var(--v2-line); border-radius: 6px; background: #fff; box-shadow: var(--v2-shadow); }
#app .project-workspace-page .pw-seal-toolbar,
#app .project-workspace-page .pw-seal-advanced,
#app .project-workspace-page .pw-document-toolbar { border-color: var(--v2-line-soft); background: #faf8f9; }
#app .project-workspace-page .pw-seal-table th,
#app .project-workspace-page .pw-document-table-frame th { background: #f7f2f4; color: #54434b; }
#app .project-workspace-page .pw-seal-table th,
#app .project-workspace-page .pw-seal-table td,
#app .project-workspace-page .pw-document-table-frame th,
#app .project-workspace-page .pw-document-table-frame td { border-color: var(--v2-line-soft); font-size: 12px; }
#app .project-workspace-page .pw-seal-table tr:hover td,
#app .project-workspace-page .pw-document-table-frame tr:hover td { background: #fff7f8; }
#app .project-workspace-page .pw-button.primary { background: var(--ui-primary); border-color: var(--ui-primary); }
#app .project-workspace-page .pw-button.primary:hover { background: var(--ui-primary-hover); }
#app .project-workspace-page .pw-seal-table,
#app .project-workspace-page .pw-seal-loading { animation: none !important; transition: none !important; }
#app .project-row-popover { max-height: min(320px, calc(100vh - 16px)); overflow-y: auto; border-radius: 8px; border-color: var(--v2-line); box-shadow: 0 12px 30px rgba(51,27,36,.2); }
#app .project-row-popover button { min-height: 34px; height: auto; padding: 8px 12px; white-space: normal; }
.schedule-shell .schedule-form-modal { border: 1px solid var(--v2-line); border-radius: 8px; box-shadow: 0 16px 44px rgba(51,27,36,.22); }
.schedule-shell .schedule-form-modal input,
.schedule-shell .schedule-form-modal select,
.schedule-shell .schedule-form-modal textarea { border-color: var(--v2-line); border-radius: 5px; background: #faf8f9; }
.schedule-shell .schedule-form-modal input:focus,
.schedule-shell .schedule-form-modal select:focus,
.schedule-shell .schedule-form-modal textarea:focus { border-color: var(--ui-primary); box-shadow: 0 0 0 2px rgba(196,31,42,.12); outline: 0; }

/* Project detail surfaces use the same VIS hierarchy as the rest of the OA:
 * neutral canvas, restrained cards, and the red action accent. */
#app .project-workspace-page { background: var(--v2-canvas); color: var(--v2-ink); }
#app .project-workspace-page .pw-hero { padding: 16px 22px; background: var(--v2-surface); color: var(--v2-ink); border-bottom: 1px solid var(--v2-line-soft); }
#app .project-workspace-page .pw-hero-title h1 { font-weight: 650; }
#app .project-workspace-page .pw-collapse { color: var(--v2-muted); }
#app .project-workspace-page .pw-hero-meta span { background: var(--v2-surface-soft); color: var(--v2-ink-soft); border: 1px solid var(--v2-line-soft); }
#app .project-workspace-page .pw-hero-meta span.success { background: #edf8f0; color: #277344; border-color: #d6ecd9; }
#app .project-workspace-page .pw-hero-meta span.warning { background: #fff7e8; color: #8a5a12; border-color: #f3e1b6; }
#app .project-workspace-page .pw-hero-meta span.danger { background: var(--ui-primary-soft); color: var(--ui-accent-ink); border-color: #f1d0d5; }
#app .project-workspace-page .pw-tabs { padding: 0 18px; gap: 4px; background: var(--v2-surface); border-bottom: 1px solid var(--v2-line-soft); }
#app .project-workspace-page .pw-tabs button { flex-basis: auto; min-width: 84px; color: var(--v2-muted); border-radius: 8px 8px 0 0; }
#app .project-workspace-page .pw-tabs button:hover { background: var(--v2-surface-soft); color: var(--v2-ink); }
#app .project-workspace-page .pw-tabs button.active { border-bottom: 2px solid var(--ui-primary); background: var(--ui-primary-soft); color: var(--ui-accent-ink); }
#app .project-workspace-page .pw-scroll { padding: 18px 22px 34px; background: var(--v2-canvas); }
#app .project-workspace-page .pw-section,
#app .project-workspace-page .pw-panel,
#app .project-workspace-page .pw-info-card { margin-bottom: 16px; border: 1px solid var(--v2-line); border-radius: 8px; background: var(--v2-surface); box-shadow: var(--v2-shadow); }
#app .project-workspace-page .pw-section > header,
#app .project-workspace-page .pw-panel > header { min-height: 48px; padding: 0 16px; border-bottom: 1px solid var(--v2-line-soft); background: var(--v2-surface); }
#app .project-workspace-page .pw-section > header h2,
#app .project-workspace-page .pw-panel > header h2 { height: 48px; padding: 0; border-bottom: 2px solid var(--ui-primary); color: var(--v2-ink); font-weight: 650; }
#app .project-workspace-page .pw-section-body { padding: 16px 18px 18px; }
#app .project-workspace-page .pw-info-grid dt { color: var(--v2-muted); }
#app .project-workspace-page .pw-info-grid dd { color: var(--v2-ink); }
#app .project-workspace-page .pw-info-grid dt,
#app .project-workspace-page .pw-info-grid dd { border-bottom-color: var(--v2-line-soft); }
#app .project-workspace-page .pw-table-frame,
#app .project-workspace-page .pw-document-table-frame { border-color: var(--v2-line); border-radius: 6px; }
#app .project-workspace-page .pw-table-frame th,
#app .project-workspace-page .pw-document-table-frame th { background: var(--v2-surface-soft); color: var(--v2-ink-soft); }
#app .project-workspace-page .pw-table-frame th,
#app .project-workspace-page .pw-table-frame td,
#app .project-workspace-page .pw-document-table-frame th,
#app .project-workspace-page .pw-document-table-frame td { border-color: var(--v2-line-soft); }
#app .project-workspace-page .pw-table-frame tr:hover td { background: var(--ui-primary-soft); }
#app .project-workspace-page .pw-button { border-color: var(--v2-line); border-radius: 6px; color: var(--v2-ink-soft); }
#app .project-workspace-page .pw-button:hover { border-color: var(--ui-primary); color: var(--ui-accent-ink); }
#app .project-workspace-page .pw-button.primary { color: #fff; }

@media (max-width: 640px) {
  #app .project-workspace-page .pw-hero { padding: 12px 14px; }
  #app .project-workspace-page .pw-tabs { padding: 0 8px; }
  #app .project-workspace-page .pw-scroll { padding: 12px 10px 26px; }
  #app .project-workspace-page .pw-section-body { padding: 12px 10px 14px; }
}

/* These properties also override legacy workspace rules that use !important. */
#app .project-workspace-page { background: var(--v2-canvas) !important; }
#app .project-workspace-page .pw-tabs { padding: 0 18px !important; background: var(--v2-surface) !important; }
#app .project-workspace-page .pw-tabs button.active { background: var(--ui-primary-soft) !important; color: var(--ui-accent-ink) !important; }
#app .project-workspace-page .pw-scroll { padding: 18px 22px 34px !important; background: var(--v2-canvas) !important; }
#app .project-workspace-page .pw-section,
#app .project-workspace-page .pw-panel,
#app .project-workspace-page .pw-info-card { border-radius: 8px !important; background: var(--v2-surface) !important; box-shadow: var(--v2-shadow) !important; }

@media (max-width: 640px) {
  #app .project-workspace-page .pw-tabs { padding: 0 8px !important; }
  #app .project-workspace-page .pw-scroll { padding: 12px 10px 26px !important; }
}

/* Project finance headings share the same clean underline as the other
 * sections; the legacy left rule made these panels look like a different UI. */
#app .project-workspace-page .pw-finance .pw-panel > header h2 {
  padding-left: 0 !important;
  border-left: 0 !important;
  border-bottom: 2px solid var(--ui-primary) !important;
}

/* Bring the project seal ledger onto the same VIS surface system as the
 * surrounding project panels. */
#app .project-workspace-page .pw-seals {
  margin-bottom: 16px;
  border: 1px solid var(--v2-line) !important;
  border-radius: 8px !important;
  background: var(--v2-surface) !important;
  box-shadow: var(--v2-shadow) !important;
  overflow: hidden;
}
#app .project-workspace-page .pw-seal-toolbar {
  min-height: 52px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--v2-line-soft) !important;
  background: var(--v2-surface) !important;
}
#app .project-workspace-page .pw-seal-toolbar-left,
#app .project-workspace-page .pw-seal-toolbar-right { min-width: 0; }
#app .project-workspace-page .pw-seal-auto-status {
  border-color: #d6ecd9;
  border-radius: 6px;
  background: #edf8f0;
  color: #277344;
}
#app .project-workspace-page .pw-seal-search input,
#app .project-workspace-page .pw-seal-advanced input,
#app .project-workspace-page .pw-seal-advanced select {
  border-color: var(--v2-line);
  border-radius: 6px;
  background: var(--v2-surface-soft);
  color: var(--v2-ink);
}
#app .project-workspace-page .pw-seal-table-area {
  padding: 16px;
  background: var(--v2-canvas);
}
#app .project-workspace-page .pw-seal-table-frame {
  border: 1px solid var(--v2-line) !important;
  border-radius: 6px !important;
  background: var(--v2-surface);
}
#app .project-workspace-page .pw-seal-table-frame th,
#app .project-workspace-page .pw-seal-table-frame td {
  border-color: var(--v2-line-soft) !important;
}
#app .project-workspace-page .pw-seal-table-frame th,
#app .project-workspace-page .pw-seal-table-frame th.pw-seal-sticky-check,
#app .project-workspace-page .pw-seal-table-frame th.pw-seal-sticky-index,
#app .project-workspace-page .pw-seal-table-frame th.pw-seal-sticky-type,
#app .project-workspace-page .pw-seal-table-frame th.pw-seal-sticky-operation {
  background: var(--v2-surface-soft) !important;
  color: var(--v2-ink-soft) !important;
}
#app .project-workspace-page .pw-seal-table-frame td.pw-seal-sticky-check,
#app .project-workspace-page .pw-seal-table-frame td.pw-seal-sticky-index,
#app .project-workspace-page .pw-seal-table-frame td.pw-seal-sticky-type,
#app .project-workspace-page .pw-seal-table-frame td.pw-seal-sticky-operation { background: var(--v2-surface) !important; }
#app .project-workspace-page .pw-seal-table-frame tr:hover td { background: var(--ui-primary-soft) !important; }
#app .project-workspace-page .pw-seal-bottom {
  min-height: 52px;
  border-top: 1px solid var(--v2-line-soft);
  background: var(--v2-surface) !important;
  color: var(--v2-muted);
}
#app .project-workspace-page .pw-seal-row-menu {
  z-index: 2000;
  border-color: var(--v2-line);
  border-radius: 6px;
  box-shadow: 0 12px 30px rgba(51, 27, 36, .18);
}

@media (max-width: 640px) {
  #app .project-workspace-page .pw-seal-table-area { padding: 10px; }
  #app .project-workspace-page .pw-seal-toolbar { padding: 10px; }
}
