@import './record-comments.css';
@import './record-deletion.css';

@import './mobile-fields.css';
@import './record-detail.css';
@import './workflow-approval.css';
@import './record-print.css';

.oxa-ui-root {
  min-width: 0;
  min-height: 100dvh;
  color: var(--ant-color-text);
  font-family: var(
    --ant-font-family,
    -apple-system,
    BlinkMacSystemFont,
    'Segoe UI',
    'PingFang SC',
    'Hiragino Sans GB',
    'Microsoft YaHei',
    'Helvetica Neue',
    Helvetica,
    Arial,
    sans-serif
  );
  font-size: var(--ant-font-size, 14px);
  line-height: var(--ant-line-height, 1.5714);
}

.oxa-admin-page {
  min-width: 0;
  min-height: 100%;
  border-radius: var(--ant-border-radius);
  background: var(--ant-color-bg-layout);
  color: var(--ant-color-text);
}

:where(.oxa-ui-root, .oxa-ui-root *) {
  box-sizing: border-box;
}

.oxa-loading,
.oxa-page-loading {
  display: grid;
  min-height: 60vh;
  place-items: center;
}

.oxa-global-request-loading {
  position: fixed;
  z-index: 1300;
  top: 0;
  right: 0;
  left: 0;
  height: 2px;
  overflow: hidden;
  pointer-events: none;
}

.oxa-global-request-loading span {
  position: absolute;
  width: 38%;
  height: 100%;
  border-radius: 2px;
  background: var(--ant-color-primary);
  animation: oxa-request-progress 1.1s ease-in-out infinite;
  box-shadow: 0 0 8px var(--ant-color-primary);
}

@keyframes oxa-request-progress {
  from {
    transform: translateX(-120%);
  }

  to {
    transform: translateX(380%);
  }
}

.oxa-app-layout {
  min-height: 100vh;
  background: var(--ant-color-bg-layout);
}

.oxa-sider {
  position: sticky !important;
  top: 0;
  z-index: 20;
  height: 100vh;
  border-right: 1px solid var(--ant-color-border-secondary);
  background: var(--ant-color-bg-container) !important;
  box-shadow: none;
}

.oxa-sider .ant-layout-sider-children {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

.oxa-brand {
  display: flex;
  min-height: 64px;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid var(--ant-color-border-secondary);
  padding: 12px 18px;
}

.oxa-brand-mark {
  position: relative;
  width: 32px;
  min-width: 32px;
  height: 36px;
}

.oxa-brand-mark::before,
.oxa-brand-mark::after {
  position: absolute;
  bottom: 2px;
  width: 10px;
  height: 34px;
  border-radius: 3px 3px 1px 1px;
  background: var(--ant-color-primary);
  content: "";
  transform-origin: bottom;
}

.oxa-brand-mark::before {
  left: 5px;
  transform: rotate(27deg);
}

.oxa-brand-mark::after {
  right: 5px;
  transform: rotate(-27deg);
}

.oxa-brand-mark span {
  position: absolute;
  z-index: 1;
  right: 4px;
  bottom: 3px;
  width: 15px;
  height: 9px;
  background: var(--ant-color-bg-container);
  transform: skewX(-27deg);
}

.oxa-brand-copy {
  display: grid;
  min-width: 0;
  gap: 5px;
}

.oxa-brand-copy strong {
  overflow: hidden;
  color: var(--ant-color-text);
  font-size: 16px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oxa-brand-copy span {
  overflow: hidden;
  color: var(--ant-color-text-secondary);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oxa-menu-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.oxa-menu {
  border-inline-end: 0 !important;
  background: transparent !important;
  padding: 6px 12px 12px;
}

.oxa-menu .ant-menu-submenu-title,
.oxa-menu .ant-menu-item {
  min-height: 44px;
  margin-inline: 0;
  margin-block: 4px;
  color: var(--ant-color-text-secondary);
  font-weight: 600;
}

.oxa-menu .ant-menu-submenu .ant-menu-item {
  font-weight: 500;
}

.oxa-menu .ant-menu-item-selected {
  color: var(--ant-color-primary);
  background: var(--ant-color-primary-bg) !important;
}

.oxa-sider-footer {
  flex: 0 0 auto;
  margin: 0 12px 16px;
  border-top: 1px solid var(--ant-color-border-secondary);
  background: var(--ant-color-bg-container);
  padding-top: 12px;
}

.oxa-sider-footer .ant-btn {
  min-height: 42px;
  justify-content: flex-start;
  color: var(--ant-color-text-secondary);
  font-weight: 600;
}

.oxa-workspace {
  min-width: 0;
  background: var(--ant-color-bg-layout);
}

.oxa-topbar {
  position: sticky;
  top: 0;
  z-index: 15;
  display: flex;
  height: 52px;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--ant-color-border-secondary);
  background: var(--ant-color-bg-container) !important;
  padding: 0 20px !important;
  line-height: normal;
}

.oxa-topbar .ant-breadcrumb {
  color: var(--ant-color-text-secondary);
  font-weight: 500;
}

.oxa-topbar .ant-breadcrumb-link {
  cursor: pointer;
}

/* Workflow v2 standard surfaces. These pages consume only Workflow Surface
   operations and keep mobile render trees independent from desktop tables. */
.oxa-workflow-page-heading,
.oxa-workflow-detail-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 24px;
}

.oxa-workflow-page-heading .ant-typography,
.oxa-workflow-detail-header .ant-typography {
  margin: 0;
}

.oxa-workflow-work-center,
.oxa-workflow-submission-card {
  border: 1px solid var(--ant-color-border-secondary);
  border-radius: 12px;
  box-shadow: var(--ant-box-shadow-tertiary);
}

.oxa-workflow-work-center > .ant-card-body {
  display: grid;
  gap: 22px;
}

.oxa-workflow-detail {
  position: relative;
  display: grid;
  gap: 12px;
  max-width: 1120px;
  margin: 0 auto;
  padding-bottom: 104px;
}

.oxa-workflow-desktop-page {
  min-height: 100vh;
  background: var(--ant-color-bg-layout);
  padding: 28px 28px 104px;
}

.oxa-workflow-desktop-appbar {
  display: grid;
  min-height: 48px;
  grid-template-columns: minmax(96px, 1fr) auto minmax(96px, 1fr);
  align-items: center;
}

.oxa-workflow-desktop-appbar > :last-child {
  justify-self: end;
}

.oxa-workflow-detail-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.oxa-workflow-detail-sections {
  display: grid;
  gap: 18px;
}

.oxa-workflow-detail-section {
  display: grid;
  gap: 10px;
  min-width: 0;
}

.oxa-workflow-detail-section > .ant-typography {
  margin: 0 2px;
  color: var(--ant-color-text);
  font-size: 18px;
}

.oxa-workflow-business,
.oxa-workflow-timeline-card,
.oxa-workflow-participants,
.oxa-workflow-preview {
  border-color: var(--ant-color-border-secondary);
  border-radius: 12px;
  box-shadow: var(--ant-box-shadow-tertiary);
}

.oxa-workflow-business-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 28px;
}

.oxa-workflow-business-grid > div {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(92px, 0.65fr) minmax(0, 1.35fr);
  align-items: center;
  gap: 16px;
  border-bottom: 1px solid var(--ant-color-border-secondary);
  padding: 14px 0;
}

.oxa-workflow-business-grid strong {
  overflow-wrap: anywhere;
  text-align: right;
}

.oxa-workflow-business-link {
  min-height: 42px;
  margin-top: 18px;
  color: var(--ant-color-primary);
}

.oxa-workflow-timeline {
  display: grid;
}

.oxa-workflow-timeline > div {
  position: relative;
  display: grid;
  min-height: 64px;
  grid-template-columns: 26px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
}

.oxa-workflow-timeline > div:not(:last-child)::before {
  position: absolute;
  top: 22px;
  bottom: -4px;
  left: 9px;
  width: 2px;
  background: var(--ant-color-border);
  content: "";
}

.oxa-workflow-timeline-dot {
  position: relative;
  z-index: 1;
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border: 0;
  background: var(--ant-color-bg-container);
  color: var(--ant-color-text-tertiary);
}

.oxa-workflow-timeline .is-completed .oxa-workflow-timeline-dot {
  color: var(--ant-color-success);
}

.oxa-workflow-timeline .is-active .oxa-workflow-timeline-dot {
  color: var(--ant-color-primary);
  box-shadow: 0 0 0 4px
    color-mix(in srgb, var(--ant-color-primary) 14%, transparent);
}

.oxa-workflow-timeline .is-rejected .oxa-workflow-timeline-dot,
.oxa-workflow-timeline .is-error .oxa-workflow-timeline-dot {
  color: var(--ant-color-error);
}

.oxa-workflow-timeline .is-returned .oxa-workflow-timeline-dot,
.oxa-workflow-timeline .is-withdrawn .oxa-workflow-timeline-dot {
  color: var(--ant-color-warning);
}

.oxa-workflow-timeline .is-terminated .oxa-workflow-timeline-dot {
  color: var(--ant-color-error-active, var(--ant-color-error));
}

.oxa-workflow-timeline .is-waiting .oxa-workflow-timeline-dot,
.oxa-workflow-timeline .is-cancelled .oxa-workflow-timeline-dot {
  color: var(--ant-color-text-tertiary);
}

.oxa-workflow-status-icon {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.oxa-workflow-status-icon.is-completed {
  color: var(--ant-color-success);
}

.oxa-workflow-status-icon.is-active {
  color: var(--ant-color-primary);
}

.oxa-workflow-status-icon.is-waiting,
.oxa-workflow-status-icon.is-cancelled {
  color: var(--ant-color-text-tertiary);
}

.oxa-workflow-status-icon.is-rejected,
.oxa-workflow-status-icon.is-error {
  color: var(--ant-color-error);
}

.oxa-workflow-status-icon.is-withdrawn,
.oxa-workflow-status-icon.is-returned {
  color: var(--ant-color-warning);
}

.oxa-workflow-status-icon.is-terminated {
  color: var(--ant-color-error-active, var(--ant-color-error));
}

.oxa-workflow-status-icon.is-completed > circle,
.oxa-workflow-status-icon.is-rejected > circle,
.oxa-workflow-status-icon.is-error > circle,
.oxa-workflow-status-icon.is-terminated > circle,
.oxa-workflow-status-icon.is-cancelled > circle {
  fill: currentColor;
}

.oxa-workflow-status-icon-center {
  fill: currentColor;
  stroke: none;
}

.oxa-workflow-status-icon-contrast {
  stroke: var(--ant-color-text-light-solid);
}

.oxa-workflow-timeline > div > div {
  display: grid;
  gap: 4px;
}

.oxa-workflow-timeline > div > span:last-child {
  color: var(--ant-color-text-secondary);
}

.oxa-workflow-actions {
  position: fixed;
  z-index: 40;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  min-height: 76px;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border: 1px solid var(--ant-color-border-secondary);
  border-width: 1px 0 0;
  border-radius: 0;
  background: color-mix(
    in srgb,
    var(--ant-color-bg-elevated) 96%,
    transparent
  );
  padding: 12px 16px max(12px, env(safe-area-inset-bottom));
  box-shadow: var(--ant-box-shadow-tertiary);
  backdrop-filter: blur(12px);
}

.oxa-workflow-actions .ant-btn {
  min-width: 112px;
  min-height: 40px;
}

.oxa-workflow-actions-desktop .oxa-workflow-more-trigger {
  order: -1;
  margin-right: auto;
}

.oxa-workflow-actions .oxa-workflow-more-trigger {
  flex: 0 0 auto;
}

.oxa-workflow-more-actions {
  position: absolute;
  bottom: 68px;
  left: 50%;
  display: grid;
  min-width: 180px;
  border: 1px solid var(--ant-color-border-secondary);
  border-radius: 10px;
  background: var(--ant-color-bg-container);
  padding: 8px;
  box-shadow: var(--ant-box-shadow-secondary);
  transform: translateX(-150px);
}

.oxa-workflow-summary-card,
.oxa-workflow-summary-card-mobile {
  border-color: var(--ant-color-border-secondary);
  border-radius: 12px;
  box-shadow: var(--ant-box-shadow-tertiary);
}

.oxa-workflow-summary-title,
.oxa-workflow-summary-title-mobile {
  display: flex;
  align-items: center;
  gap: 12px;
}

.oxa-workflow-summary-title .ant-typography,
.oxa-workflow-summary-title-mobile .ant-typography {
  margin: 0;
}

.oxa-workflow-summary-title .ant-btn {
  margin-left: auto;
}

.oxa-workflow-summary-metadata {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 38px;
  margin-top: 16px;
}

.oxa-workflow-summary-metadata > span {
  display: inline-flex;
  gap: 10px;
}

.oxa-workflow-applicant {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.oxa-workflow-applicant > span:last-child {
  display: grid;
  gap: 2px;
}

.oxa-workflow-applicant small,
.oxa-workflow-timeline-assignees small,
.oxa-workflow-plain-reference small {
  color: var(--ant-color-text-tertiary);
  font-size: 12px;
}

.oxa-workflow-business-sections {
  display: grid;
  gap: 10px;
}

.oxa-workflow-business .ant-card-head,
.oxa-workflow-timeline-card .ant-card-head {
  min-height: 46px;
}

.oxa-workflow-business .ant-card-head-title,
.oxa-workflow-timeline-card .ant-card-head-title {
  position: relative;
  padding-left: 18px;
}

.oxa-workflow-business .ant-card-head-title::before,
.oxa-workflow-timeline-card .ant-card-head-title::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 4px;
  height: 20px;
  border-radius: 4px;
  background: var(--ant-color-primary);
  content: "";
  transform: translateY(-50%);
}

.oxa-workflow-business .ant-descriptions-item-label {
  min-width: 120px;
  color: var(--ant-color-text-secondary);
}

.oxa-workflow-business .ant-descriptions-item-content {
  min-width: 0;
  overflow-wrap: anywhere;
}

.oxa-workflow-timeline-assignees {
  display: grid;
  gap: 6px;
}

.oxa-workflow-timeline-assignees > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.oxa-workflow-timeline-assignees > div > span:last-child {
  display: grid;
}

.oxa-workflow-timeline-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.oxa-workflow-timeline-title > span,
.oxa-workflow-primary-time {
  color: var(--ant-color-text-tertiary);
  font-size: 12px;
}

.oxa-workflow-timeline-assignees .ant-typography {
  margin: 0;
}

.oxa-workflow-timeline-operations {
  display: grid;
  gap: 6px;
  margin-top: 4px;
}

.oxa-workflow-timeline-operations > div {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.oxa-workflow-operation-content,
.oxa-workflow-operation-content > span {
  display: flex;
  align-items: center;
  gap: 8px;
}

.oxa-workflow-operation-content {
  min-width: 0;
  flex: 1;
  flex-wrap: wrap;
}

.oxa-workflow-operation-opinion {
  display: grid;
  width: 100%;
  gap: 2px;
  border-left: 3px solid var(--ant-color-primary-border);
  border-radius: var(--ant-border-radius-sm);
  background: var(--ant-color-fill-alter);
  padding: 8px 10px;
}

.oxa-workflow-operation-opinion > .ant-typography:last-child {
  color: var(--ant-color-text);
}

.oxa-workflow-timeline-operations .ant-typography {
  margin: 0;
}

.oxa-workflow-plain-reference {
  display: inline-grid;
  gap: 4px;
}

.oxa-workflow-plain-reference > span {
  display: grid;
  gap: 2px;
}

.oxa-workflow-subtable-mobile {
  display: grid;
  gap: 10px;
}

.oxa-workflow-subtable-mobile > div {
  display: grid;
  gap: 8px;
  border: 1px solid var(--ant-color-border-secondary);
  border-radius: 8px;
  padding: 12px;
}

.oxa-workflow-subtable-mobile > div > div {
  display: grid;
  grid-template-columns: minmax(90px, .7fr) minmax(0, 1.3fr);
  gap: 12px;
}

.oxa-workflow-more-actions .ant-btn {
  justify-content: flex-start;
}

.oxa-workflow-operation-alert,
.oxa-workflow-submission .ant-alert {
  margin-bottom: 20px;
}

.oxa-workflow-submission {
  max-width: 960px;
  margin: 0 auto;
}

.oxa-workflow-submission-card > .ant-card-body {
  display: grid;
  gap: 24px;
}

.oxa-workflow-submission > .ant-spin-nested-loading,
.oxa-workflow-submission > .ant-spin-nested-loading > .ant-spin-container {
  width: 100%;
}

.oxa-workflow-submission-followup {
  margin-top: 20px;
}

.oxa-workflow-mobile-page {
  min-height: 100vh;
  background: linear-gradient(
    180deg,
    color-mix(
        in srgb,
        var(--ant-color-primary-bg) 44%,
        var(--ant-color-bg-layout)
      )
      0,
    var(--ant-color-bg-layout) 280px
  );
  padding: 20px 18px 104px;
}

.oxa-workflow-work-center-mobile {
  display: grid;
  align-content: start;
  gap: 18px;
}

.oxa-workflow-work-center-mobile header .ant-typography {
  margin: 0;
}

.oxa-workflow-launch-loading {
  display: flex;
  min-height: 50vh;
  align-items: center;
  justify-content: center;
}

.oxa-workflow-submission-mobile {
  min-height: 100vh;
  padding: 16px;
  background: var(--ant-color-bg-layout);
}

.oxa-workflow-submission-mobile > .ant-card {
  border-radius: 6px;
}

.oxa-todo-center {
  display: flex;
  min-height: 0;
  flex: 1;
  flex-direction: column;
  gap: 16px;
  padding: 24px;
  background: var(--ant-color-bg-layout);
}

.oxa-todo-header,
.oxa-todo-row-title,
.oxa-todo-row-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.oxa-todo-header .ant-typography,
.oxa-todo-row-main .ant-typography {
  margin: 0;
}

.oxa-todo-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.oxa-todo-controls nav {
  flex: 1 1 320px;
  min-width: 0;
}

.oxa-todo-controls .oxa-todo-toolbar {
  margin-left: auto;
  flex: none;
  flex-wrap: nowrap;
}

.oxa-todo-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.oxa-todo-summary-item {
  display: flex;
  min-height: 72px;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--ant-color-border-secondary);
  border-radius: 6px;
  background: var(--ant-color-bg-container);
  padding: 12px 16px;
}

.oxa-todo-summary-item > span:last-child {
  display: flex;
  flex-direction: column;
}

.oxa-todo-summary-item strong {
  color: var(--ant-color-text);
  font-size: 24px;
  font-weight: 600;
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
}

.oxa-todo-summary-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 10px;
  color: var(--ant-color-primary);
  background: var(--ant-color-primary-bg);
  font-size: 20px;
}

.oxa-todo-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.oxa-todo-toolbar .ant-input-affix-wrapper {
  width: 300px;
  max-width: 300px;
  flex: none;
}

.oxa-todo-unread-filter {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: 8px;
}

.oxa-todo-list-card > .ant-card-body {
  padding: 0;
}

.oxa-todo-inline-error {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--ant-color-border-secondary);
  background: var(--ant-color-error-bg);
  padding: 10px 16px;
}

.oxa-todo-table .ant-table-cell {
  vertical-align: middle;
}

.oxa-todo-table .ant-table-thead > tr > th {
  color: var(--ant-color-text-secondary);
  font-weight: 600;
}

.oxa-todo-table-title,
.oxa-todo-table-title > div {
  min-width: 0;
}

.oxa-todo-title-line {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 8px;
}

.oxa-todo-title-line > .ant-typography {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oxa-todo-table-title .ant-typography.ant-typography-secondary {
  margin: 4px 0 0;
}

.oxa-todo-table-fields {
  display: grid;
  min-width: 180px;
  gap: 3px;
}

.oxa-todo-table-fields > span {
  display: grid;
  grid-template-columns: minmax(64px, auto) minmax(0, 1fr);
  gap: 8px;
}

.oxa-todo-table-fields > span > .ant-typography:last-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oxa-todo-list {
  display: flex;
  flex-direction: column;
}

.oxa-todo-row {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid var(--ant-color-border-secondary);
  padding: 14px 16px;
  cursor: pointer;
}

.oxa-todo-row:last-child {
  border-bottom: 0;
}

.oxa-todo-row:hover {
  background: var(--ant-color-primary-bg);
}

.oxa-todo-unread-anchor {
  display: block;
  width: 4px;
  height: 4px;
}

.oxa-todo-table .ant-badge .ant-badge-dot,
.oxa-todo-row > .ant-badge .ant-badge-dot {
  background: var(--ant-color-primary);
}

.oxa-todo-row-main {
  min-width: 0;
}

.oxa-todo-row-title {
  align-items: flex-start;
}

.oxa-todo-row-main > .ant-typography {
  margin-top: 4px;
  margin-bottom: 8px;
}

.oxa-todo-row-meta {
  justify-content: flex-start;
  color: var(--ant-color-text-secondary);
  font-size: 12px;
}

.oxa-todo-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 16px;
  margin: 10px 0;
}

.oxa-todo-fields > div {
  display: grid;
  grid-template-columns: minmax(64px, auto) 1fr;
  gap: 8px;
}

.oxa-todo-fields dt {
  color: var(--ant-color-text-secondary);
}

.oxa-todo-fields dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.oxa-todo-center-mobile {
  min-height: 100vh;
  gap: 12px;
  padding: 16px 12px 32px;
}

.oxa-todo-center-mobile .oxa-todo-header {
  position: sticky;
  z-index: 2;
  top: 0;
  margin: -16px -12px 0;
  border-bottom: 1px solid var(--ant-color-border-secondary);
  background: var(--ant-color-bg-container);
  padding: 12px 16px;
}

.oxa-todo-center-mobile .oxa-todo-summary {
  gap: 0;
  border: 1px solid var(--ant-color-border-secondary);
  border-radius: 6px;
  background: var(--ant-color-bg-container);
}

.oxa-todo-center-mobile .oxa-todo-summary-item {
  min-height: 64px;
  justify-content: center;
  border: 0;
  border-right: 1px solid var(--ant-color-border-secondary);
  padding: 8px;
}

.oxa-todo-center-mobile .oxa-todo-summary-item:last-child {
  border-right: 0;
}

.oxa-todo-center-mobile .oxa-todo-summary-icon {
  display: none;
}

.oxa-todo-center-mobile .oxa-todo-summary-item > span:last-child {
  align-items: center;
}

.oxa-todo-center-mobile .oxa-todo-toolbar .ant-input-affix-wrapper {
  max-width: none;
}

.oxa-todo-center-mobile .oxa-todo-controls {
  display: grid;
  gap: 10px;
}

.oxa-todo-center-mobile .oxa-todo-controls nav {
  flex: none;
}

.oxa-todo-center-mobile .oxa-todo-toolbar {
  margin-left: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
}

.oxa-todo-center-mobile .oxa-todo-unread-filter {
  grid-column: 1 / -1;
  margin-left: 0;
}

.oxa-todo-center-mobile .oxa-todo-row {
  margin-bottom: 0;
  grid-template-columns: minmax(0, 1fr);
  border: 1px solid var(--ant-color-border-secondary);
  border-left-width: 3px;
  border-left-color: transparent;
  border-radius: 10px;
  background: var(--ant-color-bg-container);
  padding: 14px 16px;
}

.oxa-todo-center-mobile .oxa-todo-row.is-unread {
  border-left-color: var(--ant-color-primary);
}

.oxa-todo-center-mobile .oxa-todo-row > .ant-badge {
  display: none;
}

.oxa-todo-center-mobile .oxa-todo-row > .ant-btn {
  grid-column: 1;
  margin-top: 4px;
  min-height: 44px;
}

.oxa-todo-center-mobile .oxa-todo-fields {
  grid-template-columns: 1fr;
}

.oxa-todo-center > .ant-pagination {
  justify-content: flex-end;
}

.oxa-todo-center-mobile > .ant-pagination {
  justify-content: center;
}

.oxa-workflow-mobile-tasks {
  display: grid;
  gap: 12px;
}

.oxa-workflow-mobile-tasks .ant-card {
  border: 1px solid var(--ant-color-border-secondary);
  border-radius: 14px;
  box-shadow: var(--ant-box-shadow-tertiary);
}

.oxa-workflow-mobile-tasks .ant-card-body {
  display: grid;
  gap: 10px;
}

.oxa-workflow-mobile-task-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 17px;
}

.oxa-workflow-detail-mobile {
  gap: 14px;
  padding-bottom: 88px;
}

.oxa-workflow-detail-mobile .oxa-workflow-detail-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: start;
  gap: 8px;
  margin: 4px -6px 4px;
}

.oxa-workflow-detail-mobile .oxa-workflow-detail-header > div {
  padding-top: 4px;
}

.oxa-workflow-detail-mobile .oxa-workflow-detail-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.oxa-workflow-detail-mobile .ant-card {
  border-radius: 14px;
  box-shadow: var(--ant-box-shadow-tertiary);
}

.oxa-workflow-detail-mobile .oxa-workflow-business-grid {
  grid-template-columns: 1fr;
}

.oxa-workflow-detail-mobile .oxa-workflow-actions-mobile {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 40;
  min-height: 76px;
  border-width: 1px 0 0;
  border-radius: 0;
  padding: 12px 18px max(12px, env(safe-area-inset-bottom));
}

.oxa-workflow-mobile-detail-page {
  background: var(--ant-color-bg-layout);
  padding: 0;
}

.oxa-workflow-detail-mobile-native {
  min-height: 100vh;
  padding-bottom: 104px;
}

.oxa-workflow-mobile-appbar {
  position: sticky;
  z-index: 30;
  top: 0;
  display: grid;
  min-height: 56px;
  grid-template-columns: 44px minmax(0, 1fr) 44px;
  align-items: center;
  border-bottom: 1px solid var(--ant-color-border-secondary);
  background: color-mix(
    in srgb,
    var(--ant-color-bg-container) 96%,
    transparent
  );
  padding-top: env(safe-area-inset-top);
  text-align: center;
  backdrop-filter: blur(12px);
}

.oxa-workflow-mobile-appbar strong {
  font-size: 18px;
}

.oxa-workflow-detail-mobile-native > main {
  display: grid;
  gap: 10px;
  padding: 12px;
}

.oxa-workflow-summary-card-mobile .ant-card-body {
  padding: 18px;
}

.oxa-workflow-summary-title-mobile {
  flex-wrap: wrap;
}

.oxa-workflow-summary-title-mobile .oxa-status-tag {
  flex: none;
}

.oxa-workflow-summary-card-mobile .oxa-workflow-summary-metadata {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px 18px;
}

.oxa-workflow-summary-card-mobile .oxa-workflow-summary-metadata > span {
  display: grid;
  gap: 4px;
}

.oxa-workflow-business-sections-mobile .ant-card-body,
.oxa-workflow-detail-mobile-native .oxa-workflow-timeline-card .ant-card-body {
  padding: 14px 18px;
}

.oxa-workflow-mobile-fields {
  display: grid;
  gap: 0;
}

.oxa-workflow-mobile-fields > div {
  display: grid;
  min-width: 0;
  grid-template-columns: 1fr;
  gap: 6px;
  border-bottom: 1px solid var(--ant-color-border-secondary);
  padding: 11px 0;
  overflow-wrap: anywhere;
}

.oxa-workflow-mobile-fields > div:last-child {
  border-bottom: 0;
}

.oxa-workflow-mobile-fields > .is-wide {
  grid-template-columns: 1fr;
}

.oxa-workflow-detail-mobile-native .oxa-workflow-timeline > div {
  grid-template-columns: 26px minmax(0, 1fr);
}

.oxa-workflow-detail-mobile-native .oxa-workflow-timeline > div > span:last-child {
  display: none;
}

.oxa-workflow-actions-mobile .ant-btn {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
}

.oxa-workflow-actions-mobile {
  flex-wrap: nowrap;
  justify-content: stretch;
}

.oxa-workflow-actions-mobile .oxa-workflow-approve-primary {
  flex: 2 1 0;
}

.oxa-workflow-actions-mobile .oxa-workflow-more-trigger {
  order: -1;
}

.oxa-workflow-actions-mobile .oxa-workflow-more-actions {
  right: auto;
  bottom: 68px;
  left: 18px;
}

@media (max-width: 980px) {
  .oxa-workflow-detail-grid {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .oxa-global-request-loading span {
    animation: none;
  }
}

.oxa-current-user {
  display: inline-flex;
  min-width: 0;
  height: 36px;
  align-items: center;
  gap: 8px;
  justify-content: flex-end;
  border: 0;
  border-radius: 6px;
  background: transparent;
  padding: 3px 6px;
  color: var(--ant-color-text);
  cursor: pointer;
  transition: background 0.2s;
}

.oxa-current-user:hover,
.oxa-current-user:focus-visible {
  background: var(--ant-color-fill-secondary);
  outline: 0;
}

.oxa-current-user-avatar {
  background: var(--ant-color-primary);
}

.oxa-current-user strong {
  max-width: 96px;
  overflow: hidden;
  font-size: 13px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oxa-current-user-chevron {
  color: var(--ant-color-text-tertiary);
  font-size: 10px;
}

.oxa-user-dropdown {
  width: 400px;
  overflow: hidden;
  border: 1px solid var(--ant-color-border-secondary);
  border-radius: 12px;
  background: var(--ant-color-bg-elevated);
  box-shadow: var(--ant-box-shadow-tertiary);
  padding-top: 4px;
}

.oxa-user-dropdown-profile {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 20px 20px 16px;
}

.oxa-user-profile-copy {
  display: grid;
  min-width: 0;
  flex: 1;
  gap: 4px;
}

.oxa-user-dropdown-profile strong,
.oxa-user-dropdown-profile span,
.oxa-user-dropdown-profile small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oxa-user-dropdown-profile strong {
  font-size: 18px;
}

.oxa-user-avatar-editor {
  position: relative;
  flex: 0 0 auto;
}

.oxa-avatar-camera {
  position: absolute !important;
  right: -4px;
  bottom: -2px;
  border-color: var(--ant-color-primary) !important;
  color: var(--ant-color-primary) !important;
}

.oxa-user-role-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.oxa-user-role-tags .ant-tag {
  margin: 0;
  border-radius: 6px;
  padding: 3px 9px;
}

.oxa-user-dropdown-profile span,
.oxa-user-dropdown-profile small,
.oxa-user-dropdown-roles > span,
.oxa-user-dropdown-perspective > span {
  color: var(--ant-color-text-secondary);
  font-size: 12px;
}

.oxa-user-dropdown-roles,
.oxa-user-dropdown-perspective {
  display: grid;
  gap: 7px;
  margin: 0 12px;
  border-top: 1px solid var(--ant-color-border-secondary);
  padding: 10px 4px;
}

.oxa-user-dropdown-perspective .ant-select {
  width: 100%;
}

.oxa-user-dropdown-perspective .ant-typography {
  font-size: 12px;
  line-height: 1.5;
}

.oxa-user-dropdown > .ant-dropdown-menu {
  border-top: 1px solid var(--ant-color-border-secondary);
  border-radius: 0;
  box-shadow: none;
}

.oxa-role-switch-select {
  width: 100%;
}

.oxa-role-switch-option {
  display: grid;
  min-width: 0;
  gap: 2px;
  padding: 2px 0;
}

.oxa-role-switch-option strong,
.oxa-role-switch-option span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oxa-role-switch-option span {
  color: var(--ant-color-text-secondary);
  font-size: 12px;
}

.oxa-role-switch-help {
  margin: 10px 0 0 !important;
}

.oxa-mobile-page {
  min-height: 100vh;
  box-sizing: border-box;
  background: var(--ant-color-bg-layout);
  padding: 16px;
}

.oxa-mobile-header {
  display: grid;
  gap: 6px;
  margin-bottom: 14px;
}

.oxa-mobile-header .ant-typography {
  margin: 0;
}

.oxa-mobile-form {
  margin-top: 14px;
}

.oxa-mobile-field .ant-form-item-control-input-content {
  min-height: 44px;
}

.oxa-mobile-input {
  width: 100%;
  min-height: 42px;
  box-sizing: border-box;
  border: 1px solid var(--ant-color-border);
  border-radius: 8px;
  background: var(--ant-color-bg-container);
  padding: 9px 11px;
  color: var(--ant-color-text);
  font: inherit;
}

.oxa-mobile-input:focus {
  border-color: var(--ant-color-primary);
  outline: 2px solid
    color-mix(in srgb, var(--ant-color-primary) 15%, transparent);
}

.oxa-mobile-filter,
.oxa-mobile-pagination,
.oxa-mobile-record-heading,
.oxa-mobile-record-fields {
  display: grid;
  gap: 10px;
}

.oxa-mobile-filter {
  margin: 14px 0;
}

.oxa-mobile-record-list {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}

.oxa-mobile-record-card {
  border-color: var(--ant-color-border-secondary);
}

.oxa-mobile-record-heading {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.oxa-mobile-record-heading a {
  overflow: hidden;
  color: var(--ant-color-primary);
  font-size: 16px;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oxa-mobile-record-fields {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 12px 0;
}

.oxa-mobile-record-fields > div {
  min-width: 0;
}

.oxa-mobile-pagination {
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  margin-top: 14px;
}

.oxa-mobile-pagination .ant-btn:last-child {
  justify-self: end;
}

.oxa-content {
  min-width: 0;
  background: var(--ant-color-bg-layout);
}

.oxa-main {
  width: 100%;
  max-width: 1680px;
  min-height: calc(100vh - 52px);
  margin: 0 auto;
  padding: 20px 24px 48px;
}

.oxa-title {
  margin: 0;
  color: var(--ant-color-text);
  font-size: 19px;
}

.oxa-muted {
  color: var(--ant-color-text-secondary);
}

.oxa-page-heading {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.oxa-section-card,
.oxa-detail-hero {
  border-color: var(--ant-color-border-secondary);
  background: var(--ant-color-bg-container);
  box-shadow: var(--ant-box-shadow-tertiary);
}

.oxa-list-card > .ant-card-body {
  padding: 0;
}

.oxa-list-surface {
  display: grid;
}

.oxa-more-filter-field > .ant-select,
.oxa-more-filter-field > .ant-picker {
  width: 100%;
}

.oxa-applied-filters {
  padding: 8px 16px;
  border-bottom: 1px solid var(--ant-color-border-secondary);
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 10px;
  color: var(--ant-color-text-secondary);
}

.oxa-applied-filter-tags {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-wrap: wrap;
  gap: 8px;
}

.oxa-applied-filter-tags .ant-tag {
  margin: 0;
  border-radius: 6px;
  padding: 3px 9px;
  color: var(--ant-color-primary);
  background: var(--ant-color-primary-bg);
}

.oxa-more-filter-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px 24px;
  padding: 12px 0 8px;
}

.oxa-more-filter-field {
  display: grid;
  min-width: 0;
  gap: 8px;
}

.oxa-more-filter-field > label {
  color: var(--ant-color-text);
  font-weight: 600;
}

.oxa-filter-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(170px, 1fr));
  gap: 12px;
}

.oxa-filter-item > .ant-select,
.oxa-filter-item > .ant-picker {
  width: 100%;
}

.oxa-filter-item.is-collapsed {
  display: none;
}

.oxa-list-toolbar,
.oxa-list-toolbar-primary,
.oxa-list-toolbar-secondary {
  display: flex;
  align-items: center;
  gap: 8px;
}

.oxa-list-toolbar {
  flex-wrap: wrap;
  gap: 8px;
  min-height: 56px;
  justify-content: flex-start;
  border: 0;
  padding: 0 0 16px;
}

.oxa-list-toolbar-secondary .ant-btn {
  color: var(--ant-color-text-secondary);
}

.oxa-batch-bar {
  display: flex;
  min-height: 52px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--ant-color-border-secondary);
  background: var(--ant-color-primary-bg);
  padding: 8px 16px;
}

.oxa-import-errors {
  max-height: 180px;
  margin: 8px 0 0;
  overflow: auto;
  padding-left: 20px;
}

.oxa-list-card .ant-table-thead > tr > th {
  background: var(--ant-color-fill-alter);
  color: var(--ant-color-text);
  font-weight: 600;
}

.oxa-list-card .ant-table-pagination {
  margin: 16px !important;
}

.oxa-sections {
  display: grid;
  gap: 16px;
}

.oxa-list-card {
  border: 0;
  box-shadow: none;
  background: transparent;
}

.oxa-list-search { width: 260px; }

.oxa-list-card .ant-table-wrapper {
  overflow: hidden;
  border: 1px solid var(--ant-color-border-secondary);
  border-radius: 8px;
  background: var(--ant-color-bg-container);
}

.oxa-form-page { min-height: 100vh; background: #f5f5f5; padding: 0 24px 24px; }
.oxa-independent-form-header { margin: 0 -24px 24px; padding: 20px 32px; background: #fff; }
.oxa-independent-form-header h3 { margin: 0; }
.oxa-readonly-label { margin-bottom: 8px; }
.oxa-readonly-value { min-height: 32px; margin-bottom: 24px; overflow-wrap: anywhere; }
.oxa-form-page-back { margin: 0 0 12px -8px; }

.oxa-form-full {
  border: 1px solid var(--ant-color-border-secondary);
  border-radius: 8px;
  background: var(--ant-color-bg-container);
}

.oxa-form-scroll { padding: 24px; }
.oxa-form-sections { display: grid; gap: 24px; }
.oxa-form-section { min-width: 0; }
.oxa-form-section > .oxa-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.oxa-form-section h2 {
  margin: 0 0 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--ant-color-border-secondary);
  font-size: 16px;
  font-weight: 600;
}
.oxa-form-section .ant-form-item { margin-bottom: 20px; }
.oxa-form-section .ant-form-item:last-child { margin-bottom: 0; }
.oxa-form-error { margin-bottom: 20px; scroll-margin-top: 72px; }

.oxa-resource-drawer .ant-drawer-body { overflow: hidden; }
.oxa-resource-drawer .oxa-form-full {
  height: 100%;
  display: flex;
  flex-direction: column;
  border: 0;
  border-radius: 0;
}
.oxa-resource-drawer .oxa-form-scroll { flex: 1; min-height: 0; overflow: auto; }
.oxa-resource-drawer .oxa-actions { flex-shrink: 0; }

.oxa-list-settings { display: grid; gap: 24px; padding-block: 12px; }
.oxa-list-settings-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.oxa-list-settings-heading .ant-input-affix-wrapper { width: 220px; }
.oxa-column-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; max-height: 320px; overflow: auto; }
.oxa-list-settings-density { display: grid; gap: 12px; }

.oxa-resource-form {
  display: grid;
  gap: 16px;
}

.oxa-section-card .ant-card-head {
  min-height: 48px;
  padding-inline: 18px;
}

.oxa-section-card .ant-card-body {
  padding: 18px;
}

.oxa-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 24px;
}

.oxa-field-wide {
  grid-column: 1 / -1;
}

.oxa-actions {
  position: sticky;
  z-index: 5;
  bottom: 0;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  border-top: 1px solid var(--ant-color-border-secondary);
  background: var(--ant-color-bg-container);
  padding: 14px 0;
}

.oxa-form-full .oxa-actions {
  margin-top: 4px;
  padding-inline: 18px;
  box-shadow: 0 -3px 12px color-mix(in srgb, var(--ant-color-text) 4%, transparent);
}

.oxa-authoritative-selector {
  width: 100%;
}

.oxa-selector-option {
  display: flex;
  width: 100%;
  min-height: 40px;
  align-items: center;
}

.oxa-selector-option-copy {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.oxa-selector-option-copy strong,
.oxa-selector-option-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oxa-selector-option-copy small,
.oxa-selector-tag small,
.oxa-resolved-item small {
  color: var(--ant-color-text-secondary);
  font-size: 11px;
}

.oxa-selector-icon {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 7px;
  background: var(--ant-color-primary-bg);
  color: var(--ant-color-primary);
  font-size: 14px;
}

.oxa-selector-avatar {
  background: var(--ant-color-primary-bg);
  color: var(--ant-color-primary);
  font-size: 12px;
}

.oxa-selector-tag {
  display: inline-flex;
  height: 26px;
  align-items: center;
  gap: 5px;
  border-color: var(--ant-color-border-secondary);
  background: var(--ant-color-fill-alter);
  padding-inline: 4px 7px;
}

.oxa-selector-tag .ant-avatar {
  width: 20px !important;
  min-width: 20px;
  height: 20px !important;
  font-size: 10px;
  line-height: 20px;
}

.oxa-resolved-values {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 8px;
}

.oxa-resolved-item {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  gap: 7px;
  border: 1px solid var(--ant-color-border-secondary);
  border-radius: 7px;
  background: var(--ant-color-fill-alter);
  padding: 4px 8px;
}

.oxa-resolved-item > span:last-child {
  display: grid;
  gap: 1px;
}

.oxa-resolved-resource .oxa-resolved-item {
  border-color: var(--ant-color-primary-border);
  background: var(--ant-color-primary-bg);
  color: var(--ant-color-primary);
}

.oxa-directory-trigger {
  display: flex;
  min-height: 38px;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--ant-color-border);
  border-radius: 8px;
  background: var(--ant-color-bg-container);
  color: var(--ant-color-text);
  padding: 3px 5px 3px 10px;
  cursor: pointer;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.oxa-directory-trigger:hover,
.oxa-directory-trigger:focus-visible {
  border-color: var(--ant-color-primary);
  box-shadow: 0 0 0 2px
    color-mix(in srgb, var(--ant-color-primary) 10%, transparent);
  outline: 0;
}

.oxa-directory-trigger.is-disabled {
  border-color: var(--ant-color-border);
  background: var(--ant-color-fill-alter);
  color: var(--ant-color-text-disabled);
  cursor: not-allowed;
}

.oxa-directory-trigger-icon {
  color: var(--ant-color-primary);
}

.oxa-directory-trigger-values {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
}

.oxa-directory-placeholder {
  color: var(--ant-color-text-disabled);
}

.oxa-directory-panel {
  display: grid;
  gap: 14px;
}

.oxa-directory-main {
  display: grid;
  min-height: 460px;
  grid-template-columns: 220px minmax(280px, 1fr) 240px;
  overflow: hidden;
  border: 1px solid var(--ant-color-border-secondary);
  border-radius: 8px;
  background: var(--ant-color-bg-container);
}

.oxa-directory-tree-pane,
.oxa-directory-member-pane,
.oxa-directory-selected-pane {
  min-width: 0;
  padding: 14px;
}

.oxa-directory-tree-pane {
  border-right: 1px solid var(--ant-color-border-secondary);
  background: var(--ant-color-fill-alter);
}

.oxa-directory-member-pane {
  display: grid;
  min-height: 460px;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 10px;
}

.oxa-directory-members {
  max-height: 364px;
  overflow: auto;
}

.oxa-directory-member-row {
  min-height: 58px;
  border-bottom: 1px solid var(--ant-color-border-secondary);
  padding: 8px 4px;
}

.oxa-directory-results {
  display: grid;
  gap: 6px;
}

.oxa-directory-department-row {
  display: flex;
  min-height: 54px;
  align-items: center;
  gap: 10px;
  border: 1px solid transparent;
  border-radius: 7px;
  padding: 8px;
  cursor: pointer;
}

.oxa-directory-department-row:hover,
.oxa-directory-department-row:focus-visible {
  border-color: var(--ant-color-primary-border);
  background: var(--ant-color-primary-bg);
  outline: 0;
}

.oxa-directory-department-row > span:nth-child(2) {
  display: grid;
  min-width: 0;
  flex: 1;
  gap: 2px;
}

.oxa-directory-department-row small {
  color: var(--ant-color-text-secondary);
  font-size: 11px;
}

.oxa-directory-selected-pane {
  border-left: 1px solid var(--ant-color-border-secondary);
  background: var(--ant-color-fill-alter);
}

.oxa-directory-pane-title,
.oxa-directory-pagination,
.oxa-directory-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.oxa-directory-pane-title {
  min-height: 32px;
  margin-bottom: 10px;
  color: var(--ant-color-text);
  font-weight: 600;
}

.oxa-directory-member-row {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 10px;
  cursor: pointer;
}

.oxa-directory-member-row > span:last-child,
.oxa-directory-selected-item > span:nth-child(2) {
  display: grid;
  min-width: 0;
  flex: 1;
  gap: 2px;
}

.oxa-directory-member-row small,
.oxa-directory-selected-item small {
  overflow: hidden;
  color: var(--ant-color-text-secondary);
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oxa-directory-selected-list {
  display: grid;
  gap: 8px;
}

.oxa-directory-selected-item {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--ant-color-border-secondary);
  border-radius: 7px;
  background: var(--ant-color-bg-container);
  padding: 7px;
}

.oxa-department-main {
  grid-template-columns: minmax(300px, 1fr) 240px;
}

.oxa-directory-footer {
  justify-content: flex-end;
  border-top: 1px solid var(--ant-color-border-secondary);
  padding-top: 14px;
}

.oxa-file-field {
  display: grid;
  gap: 10px;
}

.oxa-file-dropzone .ant-upload-drag {
  min-height: 72px;
  border-color: var(--ant-color-border);
  background: var(--ant-color-fill-alter);
  padding: 12px;
}

.oxa-file-dropzone .ant-upload-drag-container {
  display: grid;
  gap: 5px;
  color: var(--ant-color-text-secondary);
}

.oxa-file-dropzone small {
  color: var(--ant-color-text-tertiary);
}

.oxa-file-dropzone kbd {
  border: 1px solid var(--ant-color-border);
  border-bottom-width: 2px;
  border-radius: 4px;
  background: var(--ant-color-bg-container);
  padding: 1px 5px;
  color: var(--ant-color-text);
  font-family: inherit;
}

.oxa-file-list {
  display: grid;
  gap: 8px;
}

.oxa-file-item,
.oxa-file-error {
  display: flex;
  min-height: 50px;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--ant-color-border-secondary);
  border-radius: 8px;
  background: var(--ant-color-bg-container);
  padding: 7px 9px;
}

.oxa-file-kind {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 7px;
  background: var(--ant-color-primary-bg);
  color: var(--ant-color-primary);
}

.oxa-file-thumbnail {
  display: block;
  width: 32px;
  height: 32px;
  object-fit: cover;
}

.oxa-file-meta {
  display: grid;
  min-width: 0;
  flex: 1;
  gap: 2px;
}

.oxa-file-name-button {
  border: 0;
  background: transparent;
  padding: 0;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.oxa-file-name-button:hover strong {
  color: var(--ant-color-primary);
}

.oxa-file-name-button:disabled {
  cursor: wait;
  opacity: 0.65;
}

.oxa-file-meta strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oxa-file-meta small,
.oxa-file-empty {
  color: var(--ant-color-text-secondary);
  font-size: 12px;
}

.oxa-file-error {
  border-color: var(--ant-color-error-border);
  background: var(--ant-color-error-bg);
  color: var(--ant-color-error);
}

.oxa-file-error > span {
  flex: 1;
}

.oxa-file-empty {
  border: 1px dashed var(--ant-color-border);
  border-radius: 8px;
  padding: 10px;
  text-align: center;
}

.oxa-location-field {
  display: grid;
  gap: 10px;
}

.oxa-location-field .ant-alert {
  max-width: 520px;
}

.oxa-location-value {
  display: inline-grid;
  max-width: 100%;
  gap: 2px;
}

.oxa-location-value > span {
  overflow-wrap: anywhere;
}

.oxa-location-value-readonly {
  min-width: 160px;
}

.oxa-address-field {
  display: grid;
  gap: 8px;
  width: 100%;
}

.oxa-address-field > .ant-cascader,
.oxa-address-field > .ant-select {
  width: 100%;
}

.oxa-address-value {
  display: inline-flex;
  flex-direction: column;
  gap: 2px;
}

.oxa-mobile-address-field {
  grid-template-columns: minmax(0, 1fr) auto;
}

.oxa-mobile-address-field > .ant-btn:first-child {
  min-width: 0;
  overflow: hidden;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oxa-address-mobile-levels {
  display: grid;
  gap: 12px;
}

.oxa-address-mobile-levels > .ant-select {
  width: 100%;
}

.oxa-address-mobile-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 20px;
  width: 100%;
}

.oxa-rich-text-field,
.oxa-json-field {
  display: grid;
  gap: 8px;
  width: 100%;
}

.oxa-rich-text-field {
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--ant-color-border-secondary);
  border-radius: 14px;
  background: var(--ant-color-bg-container);
  box-shadow: 0 8px 24px color-mix(in srgb, var(--ant-color-text) 6%, transparent);
}

.oxa-rich-text-toolbar-shell {
  position: relative;
  display: flex;
  align-items: flex-start;
  min-width: 0;
  width: 100%;
  border-bottom: 1px solid var(--ant-color-border-secondary);
  background: var(--ant-color-bg-container);
}

.oxa-rich-text-toolbar {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 1 1 auto;
  width: 0;
  min-width: 0;
  min-height: 46px;
  padding: 6px 8px;
  overflow-x: auto;
  overflow-y: hidden;
  border: 0;
  background: var(--ant-color-bg-container);
  scrollbar-width: none;
}

.oxa-rich-text-toolbar::-webkit-scrollbar { display: none; }
.oxa-rich-text-toolbar-shell-expanded .oxa-rich-text-toolbar { flex-wrap: wrap; overflow: visible; row-gap: 6px; }
.oxa-rich-text-toolbar-more.ant-btn {
  flex: none;
  min-width: 68px;
  min-height: 32px;
  margin: 7px 8px 0 4px;
  padding-inline: 8px;
  border-radius: 7px;
  color: var(--ant-color-text-secondary);
}
.oxa-rich-text-toolbar-more.ant-btn:hover:not(:disabled) { color: var(--ant-color-text); background: var(--ant-color-fill-tertiary); }
.oxa-rich-text-toolbar-more.ant-btn:focus-visible { outline: 2px solid color-mix(in srgb, var(--ant-color-primary) 45%, transparent); outline-offset: 1px; }
.oxa-rich-text-toolbar-group { display: inline-flex; align-items: center; gap: 2px; flex: none; }
.oxa-rich-text-toolbar-group-menus { gap: 4px; }
.oxa-rich-text-toolbar-group-tail { margin-inline-start: auto; }
.oxa-rich-text-divider { width: 1px; height: 22px; flex: none; margin: 0 4px; background: var(--ant-color-border-secondary); }

.oxa-rich-text-action.ant-btn,
.oxa-rich-text-menu-button.ant-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  border: 0;
  border-radius: 7px;
  color: var(--ant-color-text-secondary);
  transition: color 120ms ease, background 120ms ease, box-shadow 120ms ease;
}

.oxa-rich-text-action.ant-btn { width: 32px; padding: 0; }
.oxa-rich-text-action.ant-btn:hover:not(:disabled),
.oxa-rich-text-menu-button.ant-btn:hover:not(:disabled) { color: var(--ant-color-text); background: var(--ant-color-fill-tertiary); }
.oxa-rich-text-action.ant-btn.ant-btn-primary { color: var(--ant-color-primary); background: var(--ant-color-primary-bg); box-shadow: none; }
.oxa-rich-text-action.ant-btn:focus-visible,
.oxa-rich-text-menu-button.ant-btn:focus-visible,
.oxa-rich-text-color:focus-within { outline: 2px solid color-mix(in srgb, var(--ant-color-primary) 45%, transparent); outline-offset: 1px; }
.oxa-rich-text-menu-button.ant-btn { gap: 6px; min-width: 70px; color: var(--ant-color-text); font-size: 13px; }
.oxa-rich-text-toolbar-group-menus .oxa-rich-text-menu-button:first-child { min-width: 88px; }
.oxa-rich-text-toolbar-group-menus .oxa-rich-text-menu-button:nth-child(2) { min-width: 92px; }
.oxa-rich-text-toolbar-group-menus .oxa-rich-text-menu-button:nth-child(3) { min-width: 70px; }
.oxa-rich-text-menu-button .oxa-rich-text-menu-chevron { margin-inline-start: auto; color: var(--ant-color-text-tertiary); font-size: 10px; }

.oxa-rich-text-color {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 32px;
  height: 32px;
  border-radius: 7px;
  color: var(--ant-color-text-secondary);
  cursor: pointer;
}

.oxa-rich-text-color:hover { background: var(--ant-color-fill-tertiary); color: var(--ant-color-text); }
.oxa-rich-text-color input[type="color"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.oxa-rich-text-color::after { content: ''; position: absolute; right: 7px; bottom: 5px; left: 7px; height: 2px; border-radius: 2px; background: var(--ant-color-primary); pointer-events: none; }
.oxa-rich-text-color[aria-label="背景色"]::after { background: var(--ant-color-warning); }

.oxa-rich-text-editor {
  min-height: 260px;
  padding: 28px 32px 160px;
  border: 0;
  border-radius: 0;
  border-top: 0;
  overflow-wrap: anywhere;
  background: var(--ant-color-bg-container);
}

.oxa-rich-text-editor:focus {
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--ant-color-primary) 12%, transparent);
  outline: 0;
}

.oxa-rich-text-value {
  max-width: 100%;
  overflow-wrap: anywhere;
}

.oxa-rich-text-field {
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
}

.oxa-rich-text-fullscreen:popover-open {
  position: fixed;
  inset: 8px;
  margin: 0;
  width: calc(100% - 16px);
  height: calc(100dvh - 16px);
  box-sizing: border-box;
  padding: 12px;
  border: 1px solid var(--ant-color-border);
  background: var(--ant-color-bg-container);
  color: var(--ant-color-text);
  align-content: start;
  overflow: auto;
}

.oxa-rich-text-fullscreen .oxa-rich-text-editor {
  min-height: 55dvh;
}

.oxa-rich-text-editor img,
.oxa-rich-text-value img {
  height: auto;
  max-width: 100%;
}

.oxa-mobile-rich-text-field .oxa-rich-text-editor {
  min-height: 220px;
}

.oxa-json-field textarea,
.oxa-json-value {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.oxa-json-value {
  margin: 0;
  max-height: 320px;
  max-width: 100%;
  overflow: auto;
  white-space: pre-wrap;
  word-break: break-word;
}

.oxa-json-valid {
  color: var(--ant-color-success);
}

.oxa-signature-field,
.oxa-signature-value,
.oxa-signature-pad {
  display: grid;
  gap: 10px;
  width: 100%;
}

.oxa-signature-value {
  justify-items: start;
}

.oxa-signature-image {
  max-height: 180px;
  max-width: min(100%, 520px);
  object-fit: contain;
}

.oxa-signature-hash {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  overflow-wrap: anywhere;
}

.oxa-signature-canvas {
  background: var(--ant-color-bg-container);
  border: 1px solid var(--ant-color-border);
  border-radius: 6px;
  height: 240px;
  touch-action: none;
  user-select: none;
  width: 100%;
}

.oxa-subtable-field {
  width: 100%;
  min-width: 0;
}

.oxa-subtable-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 0;
  font-size: 13px;
  color: var(--ant-color-text-secondary);
}

.oxa-subtable-toolbar {
  display: flex;
  min-height: 32px;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

.oxa-subtable-loading {
  display: flex;
  min-height: 88px;
  align-items: center;
  justify-content: center;
}

.oxa-mobile-subtable-list {
  border-top: 1px solid var(--ant-color-border-secondary);
}

.oxa-mobile-subtable-row {
  padding: 12px 0;
  border-bottom: 1px solid var(--ant-color-border-secondary);
}

.oxa-mobile-subtable-values {
  display: grid;
  gap: 10px;
  margin-bottom: 8px;
}

.oxa-mobile-subtable-values > div {
  display: grid;
  grid-template-columns: minmax(88px, 32%) minmax(0, 1fr);
  gap: 8px;
  align-items: start;
}

.oxa-mobile-subtable-editor {
  display: grid;
  gap: 4px;
}

.oxa-mobile-location-field .ant-space {
  width: 100%;
}

.oxa-dictionary-drawer .ant-drawer-body {
  padding: 22px;
}

.oxa-detail-hero {
  margin-bottom: 16px;
}

.oxa-detail-hero .ant-card-body {
  padding: 18px 20px;
}

.oxa-detail-hero-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.oxa-file-preview-page {
  min-height: 100vh;
  background: var(--ant-color-bg-layout);
}

.oxa-file-preview-toolbar {
  position: sticky;
  z-index: 10;
  top: 0;
  display: flex;
  min-height: 66px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid var(--ant-color-border-secondary);
  background: color-mix(
    in srgb,
    var(--ant-color-bg-container) 96%,
    transparent
  );
  padding: 10px 20px;
  box-shadow: var(--ant-box-shadow-tertiary);
  backdrop-filter: blur(12px);
}

.oxa-file-preview-toolbar > div:last-child {
  display: flex;
  gap: 8px;
}

.oxa-file-preview-title {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 12px;
}

.oxa-file-preview-title > .anticon {
  color: var(--ant-color-primary);
  font-size: 26px;
}

.oxa-file-preview-title > div {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.oxa-file-preview-title strong,
.oxa-file-preview-title span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oxa-file-preview-title span {
  color: var(--ant-color-text-secondary);
  font-size: 12px;
}

.oxa-file-preview-body {
  display: grid;
  min-height: calc(100vh - 66px);
  place-items: center;
  padding: 20px;
}

.oxa-preview-frame {
  width: 100%;
  height: calc(100vh - 106px);
  border: 0;
  border-radius: 8px;
  background: var(--ant-color-bg-container);
  box-shadow: var(--ant-box-shadow-secondary);
}

.oxa-preview-image {
  max-width: 100%;
  max-height: calc(100vh - 106px);
  border-radius: 8px;
  object-fit: contain;
  box-shadow: var(--ant-box-shadow-secondary);
}

.oxa-docx-preview,
.oxa-spreadsheet-preview {
  width: 100%;
  height: calc(100vh - 106px);
  overflow: auto;
  border-radius: 8px;
  background: var(--ant-color-bg-container);
  box-shadow: var(--ant-box-shadow-secondary);
}

.oxa-docx-preview .docx-wrapper {
  min-height: 100%;
  background: var(--ant-color-fill-alter);
  padding: 24px;
}

.oxa-spreadsheet-preview {
  display: flex;
  flex-direction: column;
}

.oxa-spreadsheet-preview > .ant-segmented {
  flex: 0 0 auto;
  margin: 12px;
}

.oxa-spreadsheet-scroll {
  min-height: 0;
  flex: 1;
  overflow: auto;
  border-top: 1px solid var(--ant-color-border-secondary);
}

.oxa-spreadsheet-scroll table {
  min-width: 100%;
  border-spacing: 0;
  border-collapse: separate;
  font-size: 13px;
}

.oxa-spreadsheet-scroll th,
.oxa-spreadsheet-scroll td {
  min-width: 96px;
  max-width: 360px;
  border-right: 1px solid var(--ant-color-border-secondary);
  border-bottom: 1px solid var(--ant-color-border-secondary);
  padding: 7px 9px;
  background: var(--ant-color-bg-container);
  text-align: left;
  vertical-align: top;
  white-space: pre-wrap;
  word-break: break-word;
}

.oxa-spreadsheet-scroll th {
  position: sticky;
  z-index: 1;
  left: 0;
  min-width: 52px;
  background: var(--ant-color-fill-alter);
  color: var(--ant-color-text-secondary);
  text-align: center;
}

.oxa-detail-back {
  flex: 0 0 auto;
}

.oxa-detail-hero-main {
  min-height: 48px;
  align-items: center;
}

.oxa-detail-heading {
  min-width: 0;
  flex: 1;
}

.oxa-detail-hero-main .ant-typography {
  margin-top: 0;
  margin-bottom: 4px;
}

.oxa-detail-hero-main h2.ant-typography {
  font-size: 22px;
}

.oxa-resource-name.ant-typography {
  margin-bottom: 2px;
  font-size: 18px;
}

.oxa-record-meta {
  color: var(--ant-color-text-secondary);
  font-size: 12px;
}

.oxa-detail-layout {
  display: block;
}

.oxa-detail-main,
.oxa-detail-aside {
  display: grid;
  gap: 16px;
}

.oxa-detail-aside {
  position: sticky;
  top: 108px;
}

.oxa-detail-main .ant-descriptions-item-label,
.oxa-detail-aside .ant-descriptions-item-label {
  color: var(--ant-color-text-secondary);
}

.oxa-audit-collapse {
  overflow: hidden;
  border: 1px solid var(--ant-color-border-secondary);
  border-radius: 8px;
  background: var(--ant-color-bg-container);
}

.oxa-audit-collapse > .ant-collapse-item > .ant-collapse-header {
  min-height: 52px;
  align-items: center;
  padding: 14px 18px;
}

.oxa-audit-collapse .ant-collapse-content-box {
  padding: 0 18px 12px !important;
}

.oxa-audit-collapse-heading {
  display: flex;
  min-width: 0;
  flex: 1;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.oxa-audit-collapse-heading span {
  color: var(--ant-color-text-secondary);
  font-size: 12px;
}

.oxa-audit-loading {
  padding: 18px 0;
  color: var(--ant-color-text-secondary);
  text-align: center;
}

.oxa-audit-entry {
  display: grid;
  gap: 4px;
  padding: 10px 0;
  border-bottom: 1px solid var(--ant-color-border-secondary);
}

.oxa-audit-entry:last-child {
  border-bottom: 0;
}

.oxa-audit-heading,
.oxa-audit-meta,
.oxa-audit-change-values {
  display: flex;
  align-items: center;
  gap: 8px;
}

.oxa-audit-heading {
  justify-content: space-between;
}

.oxa-audit-meta {
  flex-wrap: wrap;
  color: var(--ant-color-text-secondary);
  font-size: 12px;
}

.oxa-audit-meta .ant-typography {
  font-size: 12px;
}

.oxa-audit-changes {
  display: grid;
  gap: 7px;
  margin-top: 4px;
}

.oxa-audit-change {
  display: grid;
  gap: 3px;
  padding: 7px 8px;
  border-radius: 6px;
  background: var(--ant-color-fill-alter);
}

.oxa-audit-change-values {
  min-width: 0;
  color: var(--ant-color-text-secondary);
  font-size: 12px;
}

.oxa-audit-change-values > :not(svg) {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oxa-audit-entry > span {
  color: var(--ant-color-text-secondary);
  font-size: 12px;
}

.oxa-audit-entry-created {
  padding: 14px 0;
}

.oxa-audit-entry-created > .ant-typography {
  color: var(--ant-color-text);
  font-size: 14px;
}

@media (max-width: 1280px) {
  .oxa-grid,
  .oxa-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .oxa-detail-aside {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

}

@media (max-width: 900px) {
  .oxa-topbar {
    height: 52px;
    padding: 0 12px !important;
  }

  .oxa-current-user {
    min-width: 0;
  }

  .oxa-current-user strong,
  .oxa-current-user-chevron {
    display: none;
  }

  .oxa-main {
    padding: 16px;
  }

  .oxa-grid,
  .oxa-form-section > .oxa-grid,
  .oxa-filter-grid,
  .oxa-detail-aside {
    grid-template-columns: 1fr;
  }

  .oxa-applied-filters {
    align-items: stretch;
    flex-direction: column;
  }

  .oxa-more-filter-grid,
  .oxa-column-options {
    grid-template-columns: 1fr;
  }
  .oxa-form-scroll { padding: 16px; }

  .oxa-list-toolbar,
  .oxa-batch-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .oxa-list-toolbar-primary,
  .oxa-list-toolbar-secondary {
    flex-wrap: wrap;
  }

  .oxa-detail-hero-main,
  .oxa-page-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .oxa-record-meta {
    align-self: stretch;
  }

  .oxa-directory-main,
  .oxa-department-main {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .oxa-directory-tree-pane,
  .oxa-directory-selected-pane {
    border: 0;
    border-bottom: 1px solid var(--ant-color-border-secondary);
  }

  .oxa-directory-tree-pane,
  .oxa-directory-member-pane,
  .oxa-directory-selected-pane {
    max-height: 34vh;
    overflow: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .oxa-global-request-loading span {
    width: 100%;
    animation: none;
    transform: none;
  }
}

/* Standard list controls: scoped to the resource UI, using component defaults. */
.oxa-list-toolbar-secondary { justify-content: flex-end; margin-left: auto; }
.oxa-list-toolbar-secondary .oxa-list-search { width: 220px; }
.oxa-list-dirty { display: inline-flex; align-items: center; padding-left: 12px; border-radius: 6px; background: var(--ant-color-primary-bg); color: var(--ant-color-text-secondary); font-size: 13px; }
.oxa-columns-panel { width: min(420px, calc(100vw - 48px)); padding: 8px; display: flex; flex-direction: column; gap: 14px; }
.oxa-columns-panel h3, .oxa-sort-panel h3 { margin: 0; font-size: 16px; }
.oxa-columns-panel .oxa-column-options { display: flex; flex-direction: column; gap: 8px; max-height: 380px; overflow: auto; }
.oxa-column-option { display: flex; align-items: center; gap: 4px; border: 1px solid var(--ant-color-border-secondary); border-radius: 6px; padding: 10px; }
.oxa-column-option .ant-checkbox-wrapper { flex: 1; min-width: 0; }
.oxa-column-move { opacity: 0; }
.oxa-column-option:hover .oxa-column-move, .oxa-column-option:focus-within .oxa-column-move { opacity: 1; }
.oxa-drag-handle { cursor: grab; padding: 4px; color: var(--ant-color-text-secondary); }
.oxa-sort-panel { width: min(550px, calc(100vw - 48px)); padding: 12px; display: flex; flex-direction: column; gap: 12px; }
.oxa-sort-row { display: flex; align-items: center; gap: 8px; }
.oxa-sort-row > .ant-select { flex: 1; min-width: 100px; }
.oxa-settings-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.oxa-condition-group { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 12px; padding: 12px 0; }
.oxa-condition-heading { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.oxa-condition-row { display: grid; grid-template-columns: minmax(100px, 1fr) 130px minmax(120px, 1.4fr) 32px; align-items: start; gap: 8px; }
.oxa-condition-value > .ant-select, .oxa-condition-value > .ant-input-number, .oxa-condition-value > .ant-picker { width: 100%; }
.oxa-condition-nested { display: flex; gap: 8px; border-left: 2px solid var(--ant-color-border-secondary); padding-left: 16px; }
.oxa-draft-box { display: flex; flex-direction: column; gap: 16px; }
.oxa-form-confirm-content { margin: 24px 0; line-height: 1.8; }
.oxa-form-full .oxa-actions > button:first-child { margin-right: auto; }
.oxa-form-scroll > .ant-alert { margin: 12px 16px; }
.oxa-form-overlay .oxa-settings-actions { padding: 12px; }
.oxa-workflow-diagram { min-width: 0; min-height: 0; display: flex; flex-direction: column; height: 100%; background: var(--ant-color-bg-container, #fff); }
.oxa-workflow-diagram-standalone { position: relative; background: #f5f6f8; }
.oxa-workflow-diagram-standalone .oxa-workflow-diagram-tools { position: absolute; left: 20px; top: 16px; right: 20px; z-index: 5; width: fit-content; max-width: calc(100% - 40px); padding: 8px; border: 1px solid #e5e7eb; border-radius: 8px; background: #fff; box-shadow: 0 3px 12px #1f36500a; }
.oxa-workflow-diagram-standalone .oxa-workflow-canvas { height: 100%; min-height: 0; }
.oxa-workflow-diagram-standalone .oxa-workflow-node { border-radius: 6px; padding: 16px; border-top: 4px solid #94a3b8; }
.oxa-workflow-diagram-standalone .kind-approval { border-top-color: #f4a54a; }
.oxa-workflow-diagram-standalone .kind-cc { border-top-color: #5999ed; }
.oxa-workflow-diagram-standalone .kind-condition { border-top-color: #6ba98b; }
.oxa-workflow-diagram-standalone .kind-action { border-top-color: #8794ca; }
.oxa-workflow-diagram-standalone .oxa-workflow-node-list { height: 100%; max-height: none; padding-top: 88px; }
.oxa-workflow-config-panel { display: flex; flex-direction: column; height: 100%; min-height: 0; background: #fff; }
.oxa-workflow-config-panel-heading { display: flex; justify-content: space-between; align-items: center; padding: 14px 20px; border-bottom: 1px solid #e5e7eb; }
.oxa-workflow-config-panel-body { flex: 1; min-height: 0; overflow: auto; padding: 20px; }
.oxa-workflow-config-panel > .oxa-workflow-config-footer { padding: 14px 16px; border-top: 1px solid #e5e7eb; }
.oxa-workflow-diagram-tools { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; padding: 12px 16px; border-bottom: 1px solid var(--ant-color-border-secondary, #e8edf2); font-size: 12px; }
.oxa-workflow-node-search { display: flex; gap: 8px; min-width: 0; flex: 1; max-width: 460px; }
.oxa-workflow-node-search > .ant-input-search { width: 190px; }
.oxa-workflow-node-search > .ant-select { flex: 1; min-width: 130px; }
.oxa-workflow-readonly { margin-left: auto; color: var(--ant-color-text-secondary, #748092); white-space: nowrap; display: flex; align-items: center; gap: 5px; }
.oxa-workflow-logic { flex-shrink: 0; max-height: min(320px, 38dvh); overflow: auto; border-bottom: 1px solid var(--ant-color-border-secondary, #e8edf2); font-size: 12px; scrollbar-width: thin; }
.oxa-workflow-logic > summary { position: sticky; top: 0; padding: 10px 16px; cursor: pointer; background: var(--ant-color-bg-container, #fff); color: var(--ant-color-text, #263446); z-index: 1; }
.oxa-workflow-logic summary:focus-visible { outline: 2px solid var(--ant-color-primary, #1677ff); outline-offset: -2px; }
.oxa-workflow-logic > summary > span { margin-left: 6px; padding: 1px 6px; border-radius: 4px; background: var(--ant-color-fill-tertiary, #f1f4f8); color: var(--ant-color-text-secondary, #748092); }
.oxa-workflow-logic-content { padding: 0 16px 14px; }
.oxa-workflow-logic-help { margin: 0 0 12px; color: var(--ant-color-text-secondary, #748092); line-height: 1.7; }
.oxa-workflow-logic-content h3 { margin: 14px 0 8px; color: var(--ant-color-text-secondary, #748092); font-size: 12px; font-weight: 500; }
.oxa-workflow-logic-card { margin-top: 8px; padding: 12px; border: 1px solid var(--ant-color-border-secondary, #e8edf2); border-radius: 6px; color: var(--ant-color-text, #263446); }
.oxa-workflow-logic-card header { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.oxa-workflow-logic-card strong { font-size: 13px; }
.oxa-workflow-logic-card p { margin: 8px 0; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; }
.oxa-workflow-logic-card dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 10px; margin: 0; line-height: 1.8; }
.oxa-workflow-logic-card dt { color: var(--ant-color-text-secondary, #748092); }
.oxa-workflow-logic-card dd { display: flex; flex-wrap: wrap; gap: 4px 8px; margin: 0; }
.oxa-workflow-logic-card code { overflow-wrap: anywhere; font-size: 11px; }
.oxa-workflow-logic-source { margin-top: 8px; color: var(--ant-color-text-secondary, #748092); }
.oxa-workflow-logic-source summary { cursor: pointer; }
.oxa-workflow-canvas { position: relative; flex: 1; min-height: 440px; height: clamp(440px, 64dvh, 850px); background: #f5f7fa; }
.oxa-workflow-reactflow { width: 100%; height: 100%; }
.oxa-workflow-canvas-loading { max-width: 340px; margin: 90px auto; padding: 24px; }
.oxa-workflow-diagram .react-flow__node { border: 0; padding: 0; }
.oxa-workflow-diagram .react-flow__handle { width: 6px; height: 6px; background: #aab4c1; border: 2px solid #fff; pointer-events: none; }
.oxa-workflow-node { position: relative; box-sizing: border-box; display: flex; align-items: center; gap: 12px; width: 100%; height: 100%; min-height: 92px; padding: 16px 20px; text-align: left; background: var(--ant-color-bg-container, #fff); color: var(--ant-color-text, #263446); border: 1px solid #d6dde6; border-radius: 10px; cursor: pointer; line-height: 1.6; box-shadow: 0 2px 5px rgba(31, 54, 80, .045); transition: border-color 160ms, box-shadow 160ms, background 160ms; font-family: inherit; }
.oxa-workflow-node:hover { border-color: #aab9c9; box-shadow: 0 4px 12px rgba(31, 54, 80, .08); }
.oxa-workflow-node.selected { border-color: var(--ant-color-primary, #1677ff); background: var(--ant-color-primary-bg, #eef6ff); box-shadow: 0 0 0 2px var(--ant-color-primary-border, #c4dfff); }
.oxa-workflow-node:focus-visible { outline: 3px solid var(--ant-color-primary, #1677ff); outline-offset: 4px; }
.oxa-workflow-node-icon { flex: 0 0 32px; width: 32px; height: 32px; display: grid; place-items: center; background: #f1f4f8; color: #65758b; border-radius: 8px; font-size: 17px; }
.oxa-workflow-node.selected .oxa-workflow-node-icon { background: var(--ant-color-primary-bg-hover, #dcecff); color: var(--ant-color-primary, #1677ff); }
.oxa-workflow-node-copy { min-width: 0; flex: 1; }
.oxa-workflow-node strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; font-size: 14px; font-weight: 600; margin: 2px 0 3px; line-height: 1.5; }
.oxa-workflow-node small, .oxa-workflow-node-kind { display: block; font-size: 11px; color: var(--ant-color-text-secondary, #748092); }
.oxa-workflow-node small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.oxa-workflow-node.visited { border-left: 3px solid var(--ant-color-success, #389e0d); }
.oxa-workflow-node-status { position: absolute; top: -10px; right: 12px; font-size: 10px; padding: 1px 6px; color: #3f6b42; background: #f0f8f0; border: 1px solid #d4e7d3; border-radius: 4px; }
.oxa-workflow-node-status.status-error { color: #a33731; background: #fff1f0; border-color: #eccdca; }
.oxa-workflow-edge-label { position: absolute; pointer-events: all; max-width: 226px; border: 1px solid #e0e6ed; border-radius: 5px; padding: 4px 8px; background: #fdfefe; color: #66758a; font-family: inherit; font-size: 11px; text-align: left; cursor: pointer; box-shadow: 0 1px 3px rgba(31, 54, 80, .025); }
.oxa-workflow-edge-label.branch { width: 226px; }
.oxa-workflow-edge-label > span { display: flex; align-items: center; gap: 6px; }
.oxa-workflow-edge-label span b { font-size: 10px; background: #eef2f6; padding: 0 4px; border-radius: 3px; font-variant-numeric: tabular-nums; }
.oxa-workflow-edge-label span small { color: #3f6b42; margin-left: auto; font-size: 10px; }
.oxa-workflow-edge-label strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 12px; font-weight: 500; color: var(--ant-color-text, #334155); margin-top: 2px; }
.oxa-workflow-edge-label.selected { border-color: var(--ant-color-primary-border, #91caff); }
.oxa-workflow-edge-label.executed { border-color: #aad19e; }
.oxa-workflow-edge-label:focus-visible { outline: 2px solid var(--ant-color-primary, #1677ff); outline-offset: 2px; }
.oxa-workflow-viewport-tools { position: absolute; left: 16px; bottom: 42px; display: flex; align-items: center; gap: 2px; background: #fff; border: 1px solid #e0e6ed; border-radius: 8px; padding: 3px; box-shadow: 0 3px 12px rgba(31, 54, 80, .07); }
.oxa-workflow-viewport-tools > span { min-width: 44px; text-align: center; font-size: 12px; color: #66758a; font-variant-numeric: tabular-nums; }
.oxa-workflow-viewport-tools .ant-btn { border: 0; box-shadow: none; }
.oxa-workflow-graph-help { position: absolute; left: 16px; bottom: 13px; color: #748092; font-size: 11px; pointer-events: none; }
.oxa-workflow-diagram .react-flow__minimap { background: rgba(255,255,255,.9); border: 1px solid #e0e6ed; border-radius: 8px; overflow: hidden; box-shadow: none; }
.oxa-workflow-node-list { margin: 0; padding: 12px 16px 12px 38px; max-height: min(780px, 65dvh); overflow: auto; color: #748092; scrollbar-width: thin; }
.oxa-workflow-node-list > li { padding: 8px 0; }
.oxa-workflow-node-list .oxa-workflow-node { min-height: 106px; }
.oxa-workflow-node-list ul { padding: 8px 0 8px 12px; font-size: 12px; line-height: 1.8; }
.oxa-workflow-node-list ul button:not(.ant-btn) { border: 0; background: transparent; color: var(--ant-color-primary, #1677ff); text-align: left; cursor: pointer; overflow-wrap: anywhere; }
@media (max-width: 700px) {
  .oxa-workflow-diagram-tools { padding: 12px; gap: 10px; }
  .oxa-workflow-diagram-tools .ant-segmented { display: none; }
  .oxa-workflow-node-search { width: 100%; max-width: none; flex-basis: 100%; }
  .oxa-workflow-node-search > .ant-input-search { width: 45%; }
  .oxa-workflow-readonly { font-size: 11px; }
  .oxa-workflow-logic > summary { padding: 10px 12px; }
  .oxa-workflow-logic-content { padding: 0 12px 12px; }
}
.oxa-workflow-config .ant-drawer-body { padding: 20px 24px; }
.oxa-workflow-config-context { margin-bottom: 16px; }
.oxa-workflow-config-context h4 { margin: 0 0 8px; }
.oxa-workflow-config-help { color: var(--ant-color-text-secondary, #748092); font-size: 13px; line-height: 1.7; margin: 0 0 20px; }
.oxa-workflow-config-section { margin: 0 0 24px; padding-top: 16px; border-top: 1px solid var(--ant-color-border-secondary, #e3e8ef); }
.oxa-workflow-config-section h3 { margin: 0 0 16px; font-size: 14px; font-weight: 600; }
.oxa-workflow-operation-table { width: 100%; border-collapse: collapse; font-size: 13px; table-layout: fixed; }
.oxa-workflow-operation-table thead { background: var(--ant-color-fill-quaternary, #f4f6fa); color: var(--ant-color-text-secondary, #646a73); }
.oxa-workflow-operation-table th, .oxa-workflow-operation-table td { padding: 10px 6px; text-align: left; border-bottom: 1px solid var(--ant-color-border-secondary, #e3e8ef); vertical-align: middle; }
.oxa-workflow-operation-table th { font-weight: 500; }
.oxa-workflow-operation-table th:nth-child(1) { width: 19%; }
.oxa-workflow-operation-table th:nth-child(2) { width: 17%; }
.oxa-workflow-operation-table th:nth-child(3) { width: 35%; }
.oxa-workflow-operation-table small { display: block; margin-top: 4px; font-size: 11px; color: var(--ant-color-text-secondary, #646a73); font-weight: 400; }
.oxa-workflow-operation-table .ant-form-item { margin: 0; }
.oxa-workflow-operation-table .ant-select { width: 100%; }
@media (max-width: 420px) { .oxa-workflow-operation-table th, .oxa-workflow-operation-table td { padding: 10px 4px; } .oxa-workflow-operation-table { font-size: 12px; } }
.oxa-workflow-provider-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; width: 100%; }
.oxa-workflow-provider-options .ant-radio-wrapper, .oxa-workflow-mode-options .ant-radio-wrapper { border: 1px solid var(--ant-color-border-secondary, #e0e6ed); border-radius: 6px; padding: 12px; margin: 0; align-items: start; }
.oxa-workflow-provider-options .ant-radio-wrapper-checked, .oxa-workflow-mode-options .ant-radio-wrapper-checked { border-color: var(--ant-color-primary, #1677ff); background: var(--ant-color-primary-bg, #eef6ff); }
.oxa-workflow-mode-options { display: flex; flex-direction: column; gap: 8px; width: 100%; }
.oxa-workflow-mode-options b { display: block; font-weight: 500; }
.oxa-workflow-mode-options small { display: block; margin-top: 2px; color: var(--ant-color-text-secondary, #748092); }
.oxa-workflow-config-scope { border-left: 2px solid var(--ant-color-border, #d6dde6); padding-left: 12px; margin: 0 0 24px; line-height: 1.7; font-size: 13px; }
.oxa-workflow-operation-row { padding: 16px 0; border-bottom: 1px solid var(--ant-color-border-secondary, #e0e6ed); }
.oxa-workflow-operation-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.oxa-workflow-operation-row .ant-form-item { margin-bottom: 12px; }
.oxa-workflow-operation-row small { color: var(--ant-color-text-secondary, #748092); }
.oxa-workflow-config-reason { border-top: 1px solid var(--ant-color-border-secondary, #e0e6ed); margin-top: 24px; padding-top: 20px; }
.oxa-workflow-config-footer { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.oxa-workflow-routing-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 20px 0 12px; }
.oxa-workflow-routing-toolbar > span { color: var(--ant-color-text-secondary, #748092); font-size: 13px; }
.oxa-workflow-routing-form-row { display: grid; grid-template-columns: 1fr 1fr; column-gap: 16px; }
.oxa-workflow-routing-definition { margin-top: 20px; padding: 12px 0; border-top: 1px solid var(--ant-color-border-secondary, #e0e6ed); font-size: 13px; }
.oxa-workflow-routing-definition p { color: var(--ant-color-text-secondary, #748092); line-height: 1.6; }
@media (max-width: 600px) { .oxa-workflow-routing-form-row { grid-template-columns: 1fr; } .oxa-workflow-routing .ant-drawer-body { padding: 16px; } }
.oxa-workflow-config-footer > span { font-size: 12px; color: var(--ant-color-text-secondary, #748092); }
@media (max-width: 700px) {
  .oxa-workflow-config .ant-drawer-body { padding: 16px; }
  .oxa-workflow-config-footer > span { display: none; }
  .oxa-workflow-config-footer { justify-content: flex-end; }
}

/* Shared role administration: the application theme remains the visual owner. */
.oxa-member-management { min-width: 0; color: var(--ant-color-text, #262b34); }
.oxa-member-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 24px; margin-top: 16px; }
.oxa-member-roles { border-right: 1px solid var(--ant-color-border-secondary, #e8ebf0); padding-right: 20px; min-width: 0; }
.oxa-member-role-title { font-size: 13px; font-weight: 600; margin: 0 0 12px; color: var(--ant-color-text-secondary, #687080); }
.oxa-member-role-buttons { display: grid; gap: 4px; max-height: 60vh; overflow: auto; }
.oxa-member-role-buttons button { font: inherit; text-align: left; border: 0; border-radius: 6px; background: transparent; padding: 10px 12px; color: inherit; cursor: pointer; overflow-wrap: anywhere; }
.oxa-member-role-buttons button.active { background: var(--ant-color-primary-bg, #edf4ff); color: var(--ant-color-primary, #1677ff); }
.oxa-member-role-buttons button:hover { background: var(--ant-color-fill-tertiary, #f4f6f9); }
.oxa-member-role-buttons button:focus-visible { outline: 2px solid var(--ant-color-primary, #1677ff); outline-offset: -2px; }
.oxa-member-role-buttons small { display: block; font-size: 12px; margin-top: 4px; font-weight: 400; color: var(--ant-color-text-secondary, #687080); }
.oxa-member-role-select { display: none; }
.oxa-member-main { min-width: 0; }
.oxa-member-toolbar, .oxa-member-selection, .oxa-member-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.oxa-member-toolbar h3 { margin: 0 0 4px; font-size: 16px; }
.oxa-member-help { font-size: 13px; color: var(--ant-color-text-secondary, #687080); line-height: 1.6; overflow-wrap: anywhere; }
.oxa-member-toolbar p { margin: 0; }
.oxa-member-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 12px; }
.oxa-member-filters > * { min-width: 150px; flex: 1 1 150px; max-width: 260px; }
.oxa-member-filters > .ant-btn { flex: 0 0 auto; min-width: auto; }
.oxa-member-selection { padding: 10px 0; font-size: 13px; color: var(--ant-color-text-secondary, #687080); }
.oxa-member-sub { display: block; font-size: 12px; line-height: 1.6; color: var(--ant-color-text-secondary, #687080); overflow-wrap: anywhere; }
.oxa-member-picker .ant-select { width: 100%; }
.oxa-member-operation-id { display: block; font: 11px/1.6 ui-monospace, monospace; color: var(--ant-color-text-secondary, #687080); overflow-wrap: anywhere; user-select: all; }
.oxa-member-time-grid, .oxa-member-diff { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.oxa-member-diff section { min-width: 0; overflow-wrap: anywhere; }
.oxa-member-diff h4 { margin: 0 0 12px; font-size: 13px; }
.oxa-member-draft-summary { border-left: 3px solid var(--ant-color-primary, #1677ff); padding: 4px 0 4px 16px; margin: 0 0 20px; overflow-wrap: anywhere; }
.oxa-member-draft-summary p { margin: 6px 0; }
.oxa-member-draft-summary span, .oxa-member-footer > span { font-size: 12px; color: var(--ant-color-text-secondary, #687080); }
@media (max-width: 700px) {
  .oxa-member-layout { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .oxa-member-roles { border: 0; padding: 0; }
  .oxa-member-role-buttons { display: none; }
  .oxa-member-role-select { display: block; width: 100%; }
  .oxa-member-filters > * { min-width: 0; max-width: none; flex: 1 1 140px; }
  .oxa-member-time-grid, .oxa-member-diff { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .oxa-member-footer .ant-space { width: 100%; }
}
.oxa-workflow-delegation-manager { min-width: 0; width: 100%; }
.oxa-workflow-task-form { margin: 16px 0 24px; padding: 20px 0; border-top: 1px solid var(--ant-color-border-secondary, #e0e6ed); min-width: 0; }
.oxa-workflow-task-form .ant-form { max-width: 680px; margin-top: 20px; }
.oxa-workflow-task-form .ant-alert { margin: 16px 0; }
.oxa-workflow-task-drafts { padding: 12px 16px; background: var(--ant-color-fill-quaternary, #f7f9fc); border-radius: 8px; }
.oxa-workflow-task-drafts > .ant-typography:last-child { margin-top: 10px; margin-bottom: 0; }
.oxa-workflow-draft-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 16px 0; border-bottom: 1px solid var(--ant-color-border-secondary, #e0e6ed); }
.oxa-workflow-draft-row .ant-typography { margin-bottom: 0; }
.oxa-workflow-draft-review { max-height: 55dvh; overflow: auto; }
.oxa-workflow-task-readonly { margin-bottom: 20px; line-height: 1.7; overflow-wrap: anywhere; }
.oxa-workflow-task-readonly > div { margin-top: 4px; }
.oxa-workflow-task-required { margin-bottom: 20px; }
.oxa-workflow-task-required .ant-form-item { margin-bottom: 4px; }
.oxa-workflow-task-required-hint { font-size: 12px; }
.oxa-workflow-task-form-mobile { padding: 16px 0; }
.oxa-workflow-task-form-mobile .ant-alert { display: flex; flex-wrap: wrap; gap: 8px; }
.oxa-delegation-toolbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 12px; }
.oxa-delegation-toolbar .ant-input-search { flex: 1 1 220px; max-width: 340px; min-width: 0; }
.oxa-delegation-toolbar .ant-select { min-width: 140px; max-width: 100%; }
.oxa-workflow-delegation-manager .ant-table-wrapper { min-width: 0; }
.oxa-workflow-delegation-manager .ant-alert, .oxa-workflow-delegation-editor .ant-alert { margin-bottom: 16px; }
.oxa-workflow-delegation-editor .ant-form { margin-top: 20px; }
.oxa-workflow-delegation-editor .ant-picker { width: 100%; }
.oxa-delegation-dates { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.oxa-delegation-candidate-paging { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 8px; font-size: 12px; }
.oxa-delegation-preview { margin: 16px 0; padding: 12px 16px; border: 1px solid var(--ant-color-border, #d9d9d9); border-radius: 6px; }
.oxa-delegation-preview h3 { font-size: 14px; margin: 0 0 12px; }
.oxa-delegation-preview p { overflow-wrap: anywhere; }
.oxa-workflow-delegation-editor code { overflow-wrap: anywhere; }
@media (max-width: 575px) {
  .oxa-delegation-dates { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .oxa-delegation-toolbar .ant-input-search { flex-basis: 100%; max-width: 100%; }
  .oxa-delegation-toolbar .ant-select { flex: 1 1 140px; min-width: 0; }
}

.oxa-user-candidate-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(200px, 0.65fr); gap: 20px; }
.oxa-user-candidate-columns > section, .oxa-user-candidate-columns > aside { min-width: 0; }
.oxa-user-candidate-columns > aside { padding-left: 20px; border-left: 1px solid var(--ant-color-border-secondary, #e5e7eb); }
.oxa-user-candidate-list { min-height: 180px; max-height: min(380px, 45vh); overflow: auto; margin-top: 12px; }
.oxa-user-candidate-row { display: flex; align-items: center; gap: 10px; padding: 10px 0; }
.oxa-user-candidate-row > span:last-of-type { min-width: 0; flex: 1; }
.oxa-user-candidate-row strong, .oxa-user-candidate-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.oxa-user-candidate-row small { font-size: 12px; color: var(--ant-color-text-secondary, #6b7280); }
.oxa-user-candidate-pagination { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 12px; }
.oxa-user-candidate-footer { display: flex; justify-content: flex-end; gap: 8px; border-top: 1px solid var(--ant-color-border-secondary, #e5e7eb); margin-top: 16px; padding-top: 16px; }
.oxa-user-candidate-hint { font-size: 13px; color: var(--ant-color-text-secondary, #6b7280); overflow-wrap: anywhere; }
.oxa-user-candidate-invalid { font-size: 13px; color: var(--ant-color-error, #b42318); overflow-wrap: anywhere; }

.oxa-workflow-record-history { font-size: 14px; line-height: 1.6; }
.oxa-workflow-record-history button { font: inherit; padding: 4px 12px; background: var(--ant-color-bg-container, #fff); color: var(--ant-color-primary, #1677ff); border: 1px solid var(--ant-color-border, #d9d9d9); border-radius: 6px; cursor: pointer; min-height: 32px; }
.oxa-workflow-record-history button:disabled { opacity: .45; cursor: default; }
.oxa-workflow-record-history button:focus-visible { outline: 2px solid var(--ant-color-primary, #1677ff); outline-offset: 2px; }
.oxa-workflow-record-history-heading, .oxa-workflow-record-history-pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.oxa-workflow-record-history ol { list-style: none; margin: 16px 0; padding: 0; }
.oxa-workflow-record-history li { padding: 12px 0 12px 16px; border-left: 2px solid var(--ant-color-border, #e5e7eb); }
.oxa-workflow-record-history li > div:first-child { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 16px; }
.oxa-workflow-record-history time, .oxa-workflow-record-history li > div:first-child > span { color: var(--ant-color-text-secondary, #666); font-size: 13px; }
.oxa-workflow-record-history p { margin: 4px 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.oxa-workflow-record-history-person { margin-top: 8px; }
.oxa-workflow-record-history[data-device="mobile"] button { min-height: 44px; }
.oxa-workflow-history-collapse { margin-top: 16px; }

/* Rich text document styles are scoped; no host document reset. */
.oxa-rich-text-editor table, .oxa-rich-text-value table { border-collapse: collapse; max-width: 100%; table-layout: fixed; }
.oxa-rich-text-editor td, .oxa-rich-text-editor th, .oxa-rich-text-value td, .oxa-rich-text-value th { border: 1px solid #d9d9d9; padding: 6px 8px; min-width: 40px; }
.oxa-rich-text-editor .tableWrapper, .oxa-rich-text-value { overflow-x: auto; }
.oxa-rich-text-editor .selectedCell { background: #e6f4ff; }
.oxa-rich-text-editor .column-resize-handle { position: absolute; right: -2px; top: 0; bottom: 0; width: 4px; background: #1677ff; pointer-events: none; }
.oxa-rich-text-editor td, .oxa-rich-text-editor th { position: relative; }
.oxa-rich-text-editor video, .oxa-rich-text-value video { max-width: 100%; }
.oxa-rich-text-editor ul[data-type="taskList"], .oxa-rich-text-value ul[data-type="taskList"] { list-style: none; padding-left: 8px; }
.oxa-rich-text-editor li[data-type="taskItem"], .oxa-rich-text-value li[data-type="taskItem"] { display: flex; align-items: flex-start; gap: 8px; }
.oxa-rich-text-editor li[data-type="taskItem"] > div, .oxa-rich-text-value li[data-type="taskItem"] > div { flex: 1; }
.oxa-rich-text-editor pre, .oxa-rich-text-value pre { overflow-x: auto; background: #f5f5f5; padding: 12px; border-radius: 4px; }
.oxa-mobile-rich-text-field .oxa-rich-text-toolbar { min-height: 52px; }
.oxa-mobile-rich-text-field .oxa-rich-text-toolbar-group-tail { margin-inline-start: 0; }
.oxa-mobile-rich-text-field .oxa-rich-text-toolbar button { min-height: 40px; }
.oxa-mobile-rich-text-field .oxa-rich-text-editor { min-height: 220px; padding: 20px 18px 128px; }

@media (max-width: 760px) {
  .oxa-rich-text-editor { min-height: 220px; padding: 22px 18px 140px; }
  .oxa-rich-text-toolbar { padding-inline: 6px; }
  .oxa-rich-text-toolbar-group-menus .oxa-rich-text-menu-button { min-width: 68px; }
  .oxa-rich-text-toolbar-group-menus .oxa-rich-text-menu-button:nth-child(2) { min-width: 76px; }
}
/* Workflow editor follows the approved canvas references; read-only diagrams keep their layout. */
.oxa-workflow-designer { height: 100%; min-height: 0; display: flex; flex-direction: column; overflow: hidden; background: #f5f7fb; color: #182230; font-size: 14px; }
.oxa-designer-toolbar { height: 56px; flex: 0 0 56px; padding: 0 16px; display: flex; align-items: center; justify-content: space-between; gap: 16px; background: #fff; border-bottom: 1px solid #e3e8ef; }
.oxa-designer-toolbar-identity { display: flex; align-items: center; gap: 12px; min-width: 0; white-space: nowrap; }
.oxa-designer-toolbar-identity > strong { font-size: 16px; max-width: 240px; overflow: hidden; text-overflow: ellipsis; }
.oxa-designer-toolbar-label, .oxa-designer-save-state { color: #7b879a; font-size: 12px; }
.oxa-designer-toolbar .ant-btn { height: 32px; font-size: 13px; box-shadow: none; }
.oxa-designer-toolbar .ant-tag { margin: 0; line-height: 23px; background: #fff; }
.oxa-designer-toolbar .ant-segmented { border: 1px solid #d9e2ef; background: #fff; padding: 0; color: #617086; font-size: 13px; }
.oxa-designer-toolbar .ant-segmented-item-selected { background: #eaf2ff; color: #0066ff; box-shadow: none; }
.oxa-designer-workspace { flex: 1; min-height: 0; display: grid; grid-template-columns: 240px minmax(0,1fr) 560px; }
.oxa-designer-workspace.without-outline { grid-template-columns: 48px minmax(0,1fr) 560px; }
.oxa-designer-workspace.without-inspector { grid-template-columns: 240px minmax(0,1fr); }
.oxa-designer-workspace.without-outline.without-inspector { grid-template-columns: 48px minmax(0,1fr); }
.oxa-designer-outline { min-height: 0; overflow: auto; background: #fff; padding: 8px; border-right: 1px solid #e3e8ef; scrollbar-width: thin; }
.oxa-designer-outline-heading { display: flex; justify-content: space-between; align-items: center; min-height: 40px; padding: 0 8px; margin-bottom: 4px; }
.oxa-designer-outline-heading strong { font-size: 14px; }
.oxa-designer-outline-heading .ant-btn { padding: 4px; }
.oxa-designer-outline .ant-input-search { margin: 0 8px 12px; width: calc(100% - 16px); }
.oxa-designer-outline nav button { width: 100%; min-height: 38px; display: flex; align-items: center; gap: 12px; text-align: left; padding: 8px 12px; background: none; border: none; border-radius: 5px; cursor: pointer; color: inherit; font: inherit; }
.oxa-designer-outline nav button .anticon { color: #0066ff; font-size: 19px; }
.oxa-designer-outline nav button.kind-action .anticon { color: #7139f3; }
.oxa-designer-outline nav button.kind-handle .anticon { color: #00a4ad; }
.oxa-designer-outline nav button.kind-start .anticon { color: #526178; }
.oxa-designer-outline nav button.kind-end .anticon { color: #389e0d; }
.oxa-designer-outline nav button[aria-pressed=true] { background: #eaf2ff; color: #0066ff; }
.oxa-designer-outline nav button span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.oxa-designer-outline footer { margin: 28px 8px 0; border-top: 1px solid #e3e8ef; padding: 14px 2px; font-size: 13px; }
.oxa-designer-outline footer strong { display: block; margin-bottom: 8px; }
.oxa-designer-outline footer button { border: 0; background: none; color: #389e0d; padding: 0; font: inherit; cursor: pointer; }
.oxa-designer-workspace main { display: flex; flex-direction: column; min-width: 0; min-height: 0; position: relative; }
.oxa-designer-banner { height: 34px; flex: 0 0 34px; padding: 7px 20px; background: #eaf2ff; color: #0066ff; font-size: 12px; border-bottom: 1px solid #dce8fa; }
.oxa-designer-workspace .oxa-workflow-diagram-standalone { flex: 1; min-height: 0; height: auto; }
.oxa-workflow-diagram-designer .oxa-workflow-node { min-height: 0; border: 1px solid #d3dfed; border-left: 5px solid #0066ff; border-radius: 5px; padding: 12px; gap: 10px; box-shadow: none; background: #fff; }
.oxa-workflow-diagram-designer .oxa-workflow-node.selected { background: #fff; border-color: #0066ff; box-shadow: 0 0 0 3px #0066ff22; }
.oxa-workflow-diagram-designer .oxa-workflow-node.kind-action { border-left-color: #7139f3; }
.oxa-workflow-diagram-designer .oxa-workflow-node.kind-handle { border-left-color: #00a4ad; }
.oxa-workflow-diagram-designer .oxa-workflow-node.kind-condition { border-left-color: #0066ff; }
.oxa-workflow-diagram-designer .oxa-workflow-node-kind { display: none; }
.oxa-workflow-diagram-designer .oxa-workflow-node strong { font-size: 16px; line-height: 20px; margin: 0 0 4px; -webkit-line-clamp: 1; }
.oxa-workflow-diagram-designer .oxa-workflow-node small { font-size: 13px; color: #617086; }
.oxa-workflow-diagram-designer .oxa-workflow-node-icon { width: 24px; flex-basis: 24px; height: 28px; font-size: 23px; background: none; border-radius: 0; color: #0066ff; }
.oxa-workflow-diagram-designer .kind-action .oxa-workflow-node-icon { color: #7139f3; }
.oxa-workflow-diagram-designer .kind-handle .oxa-workflow-node-icon { color: #00a4ad; }
.oxa-workflow-diagram-designer .oxa-workflow-node.kind-start, .oxa-workflow-diagram-designer .oxa-workflow-node.kind-end { justify-content: center; border-radius: 18px; padding: 4px 12px; gap: 8px; }
.oxa-workflow-diagram-designer .oxa-workflow-node.kind-start { color: #fff; background: #3e4859; border: 1px solid #3e4859; }
.oxa-workflow-diagram-designer .oxa-workflow-node.kind-start .oxa-workflow-node-icon { color: #fff; }
.oxa-workflow-diagram-designer .oxa-workflow-node.kind-end { color: #298704; border: 1px solid #4b9f28; }
.oxa-workflow-diagram-designer .oxa-workflow-node.kind-end .oxa-workflow-node-icon { color: #389e0d; }
.oxa-workflow-diagram-designer .kind-start .oxa-workflow-node-copy, .oxa-workflow-diagram-designer .kind-end .oxa-workflow-node-copy { flex: 0 1 auto; }
.oxa-workflow-diagram-designer .kind-start strong, .oxa-workflow-diagram-designer .kind-end strong { margin: 0; white-space: nowrap; }
.oxa-workflow-diagram-designer .kind-start small, .oxa-workflow-diagram-designer .kind-end small { display: none; }
.oxa-workflow-diagram-designer .oxa-workflow-edge-insert { position: absolute; pointer-events: all; width: 20px; height: 20px; display: grid; place-items: center; border: 1px solid #c5d2e4; border-radius: 50%; color: #6c7e98; background: white; padding: 0; font-size: 11px; }
.oxa-workflow-diagram-designer .oxa-workflow-edge-insert:hover { color: #0066ff; border-color: #0066ff; }
.oxa-workflow-diagram-designer .react-flow__handle { opacity: 0; }
.oxa-workflow-diagram-designer .oxa-workflow-viewport-tools { bottom: 18px; left: 16px; border-radius: 5px; box-shadow: none; }
.oxa-workflow-diagram-designer .oxa-workflow-graph-help { display: none; }
.oxa-workflow-diagram-designer .react-flow__attribution { font-size: 8px; opacity: .55; }
.oxa-designer-desktop-inspector { background: #fff; min-height: 0; overflow: auto; border-left: 1px solid #e3e8ef; scrollbar-width: thin; }
.oxa-workflow-designer-inspector { padding: 14px 16px 24px; }
.oxa-workflow-designer-inspector > header { display: flex; gap: 8px; align-items: center; min-height: 34px; margin-bottom: 14px; }
.oxa-workflow-designer-inspector > header h2 { font-size: 16px; margin: 0; font-weight: 600; }
.oxa-workflow-designer-inspector > header .ant-tag { margin: 0; font-size: 11px; }
.oxa-workflow-designer-inspector > header .ant-btn { margin-left: auto; }
.oxa-designer-inspector-icon { width: 30px; height: 30px; display: grid; place-items: center; color: #0066ff; background: #eaf2ff; font-size: 22px; border-radius: 5px; }
.oxa-workflow-designer-inspector h3 { font-size: 14px; margin: 0 0 8px; }
.oxa-workflow-designer-inspector p { color: #7b879a; font-size: 12px; line-height: 1.6; }
.oxa-workflow-designer-inspector .oxa-workflow-config-inline label { display: inline-flex; flex-direction: row; margin: 0; }
.oxa-designer-handling-notice, .oxa-designer-defaults-notice { border-radius: 4px; color: #2d7617; background: #edf8ea; padding: 9px 12px; margin-bottom: 14px; font-size: 13px; line-height: 20px; }
.oxa-designer-defaults-notice { background: #fff7e7; color: #a16b1c; }
.oxa-workflow-config-inline .oxa-workflow-config-section { border: 0; padding: 0; margin: 0 0 14px; }
.oxa-workflow-config-inline .ant-form-item { margin-bottom: 12px; }
.oxa-workflow-config-inline .ant-form-item-label { padding-bottom: 6px; }
.oxa-workflow-config-inline .ant-form-item-label label { font-size: 13px; font-weight: 600; }
.oxa-workflow-config-inline .oxa-workflow-provider-options { display: flex; flex-wrap: wrap; gap: 4px; }
.oxa-workflow-config-inline .oxa-workflow-provider-options .ant-radio-button-wrapper { border: 1px solid #d9e2ef; border-radius: 4px; font-size: 12px; height: 28px; line-height: 26px; padding: 0 12px; }
.oxa-workflow-config-inline .oxa-workflow-provider-options .ant-radio-button-wrapper::before { display: none; }
.oxa-workflow-config-inline .oxa-workflow-mode-options { display: flex; flex-direction: row; align-items: center; flex-wrap: wrap; gap: 8px; }
.oxa-workflow-config-inline .oxa-workflow-mode-options .ant-radio-wrapper { font-size: 12px; padding: 0; margin: 0; }
.oxa-workflow-config-inline .oxa-workflow-mode-options + p, .oxa-workflow-config-inline .oxa-workflow-config-help { margin: 4px 0 8px; font-size: 12px; }
.oxa-workflow-config-inline .oxa-workflow-operation-table { width: 100%; border: 1px solid #e2e8f1; border-collapse: collapse; table-layout: fixed; font-size: 13px; line-height: 20px; }
.oxa-workflow-config-inline .oxa-workflow-operation-table th, .oxa-workflow-config-inline .oxa-workflow-operation-table td { box-sizing: border-box; height: 44px; padding: 4px 8px; border: 1px solid #e2e8f1; text-align: left; vertical-align: middle; }
.oxa-workflow-config-inline .oxa-workflow-operation-table th { font-weight: 500; }
.oxa-workflow-config-inline .oxa-workflow-operation-table thead th { background: #f5f7fb; color: #526178; height: 34px; }
.oxa-workflow-config-inline .oxa-workflow-operation-table thead th:first-child { width: 23%; }
.oxa-workflow-config-inline .oxa-workflow-operation-table thead th:last-child { width: 22%; }
.oxa-workflow-config-inline .oxa-workflow-operation-table .ant-form-item { margin: 0; }
.oxa-workflow-config-inline .oxa-workflow-operation-table .ant-input, .oxa-workflow-config-inline .oxa-workflow-operation-table .ant-select { font-size: 13px; padding-left: 0; width: 100%; }
.oxa-workflow-config-inline .oxa-workflow-operation-table small { display: block; color: #7b879a; font-size: 11px; line-height: 14px; font-weight: 400; margin-top: 2px; }
.oxa-workflow-config-inline .oxa-workflow-operation-table .ant-switch { min-width: 28px; }
.oxa-workflow-config-inline .oxa-workflow-config-footer { padding: 0; border: 0; background: none; justify-content: flex-end; margin: 8px 0 14px; }
.oxa-workflow-config-inline .oxa-workflow-config-footer > span { display: none; }
.oxa-workflow-config-inline .oxa-workflow-config-footer .ant-btn { height: 30px; font-size: 12px; color: #0066ff; border-color: #9fc4ff; box-shadow: none; }
.oxa-workflow-config-inline .oxa-workflow-config-footer .ant-btn-primary { color: #fff; }
.oxa-workflow-config-inline .oxa-workflow-config-footer .ant-btn:disabled { opacity: .65; }
.oxa-designer-draft-band { border: 1px solid #dce8fb; border-radius: 5px; overflow: hidden; margin-top: 12px; }
.oxa-designer-draft-band > h3 { padding: 9px 12px; margin: 0; color: #0066ff; background: #eaf2ff; }
.oxa-designer-draft-band .ant-collapse-item { border-bottom: 1px solid #e8edf5; }
.oxa-designer-draft-band .ant-collapse-item:last-child { border-bottom: 0; }
.oxa-designer-draft-band .ant-collapse-header { padding: 10px 12px !important; align-items: center !important; font-size: 12px; }
.oxa-designer-draft-band .ant-collapse-header-text { font-weight: 500; flex: 0 0 102px !important; }
.oxa-designer-draft-band .ant-collapse-extra { flex: 1; color: #69788f; min-width: 0; }
.oxa-designer-draft-band .ant-collapse-extra span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.oxa-designer-draft-band .ant-collapse-content-box { padding: 4px 12px 14px !important; }
.oxa-designer-draft-band label:not(.ant-checkbox-wrapper):not(.ant-radio-wrapper) { display: flex; flex-direction: column; gap: 6px; margin: 10px 0; font-size: 12px; }
.oxa-workflow-designer fieldset, .oxa-workflow-designer-inspector fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.oxa-designer-branch { padding: 12px; border: 1px solid #e3e8ef; background: #f8fafc; border-radius: 5px; margin: 12px 0; display: grid; gap: 10px; }
.oxa-designer-mobile-inspector { display: none; }
.oxa-designer-show-inspector { position: absolute; top: 50px; right: 12px; z-index: 5; }
@media(max-width: 1499px) {
  .oxa-designer-workspace { grid-template-columns: 200px minmax(0,1fr) 480px; }
  .oxa-designer-workspace.without-outline { grid-template-columns: 48px minmax(0,1fr) 480px; }
  .oxa-designer-workspace.without-inspector { grid-template-columns: 200px minmax(0,1fr); }
  .oxa-designer-toolbar-label, .oxa-designer-save-state { display: none; }
}
@media(max-width: 1199px) {
  .oxa-designer-workspace, .oxa-designer-workspace.without-outline { grid-template-columns: 48px minmax(0,1fr) 440px; }
  .oxa-designer-workspace.without-inspector, .oxa-designer-workspace.without-outline.without-inspector { grid-template-columns: 48px minmax(0,1fr); }
  .oxa-designer-outline-heading strong, .oxa-designer-outline .ant-input-search, .oxa-designer-outline nav button > span:last-child:not(.anticon), .oxa-designer-outline footer { display: none; }
  .oxa-designer-outline { padding: 8px 4px; }
  .oxa-designer-outline-heading { padding: 0; }
  .oxa-designer-outline nav button { justify-content: center; padding: 10px 4px; }
  .oxa-designer-toolbar { padding: 0 8px; gap: 8px; }
  .oxa-designer-toolbar-identity { gap: 6px; }
  .oxa-designer-toolbar-actions .ant-btn { font-size: 0; width: 30px; padding: 0; }
  .oxa-designer-toolbar-actions .ant-btn .anticon { font-size: 14px; }
  .oxa-designer-toolbar-actions .ant-btn-primary { font-size: 12px; width: auto; padding: 0 10px; }
}
@media(max-width: 899px) {
  .oxa-workflow-designer { min-height: 100dvh; height: auto; }
  .oxa-designer-workspace, .oxa-designer-workspace.without-outline, .oxa-designer-workspace.without-inspector, .oxa-designer-workspace.without-outline.without-inspector { grid-template-columns: minmax(0,1fr); min-height: calc(100dvh - 96px); }
  .oxa-designer-outline, .oxa-designer-desktop-inspector { display: none; }
  .oxa-designer-mobile-inspector { display: block; position: absolute; bottom: 18px; left: 18px; z-index: 5; }
  .oxa-designer-toolbar { height: auto; flex: 0 0 auto; min-height: 56px; padding: 8px; flex-wrap: wrap; }
  .oxa-designer-toolbar-identity { flex: 1 1 100%; }
  .oxa-designer-toolbar-identity strong { font-size: 14px; max-width: 130px; }
  .oxa-designer-toolbar-actions { margin-left: auto; }
  .oxa-designer-banner { height: auto; flex-basis: auto; padding: 8px 12px; }
  .oxa-workflow-designer-inspector { padding: 0 0 16px; }
}
.oxa-workflow-diagram-standalone .kind-handle { border-top-color: #53958c; }
.oxa-workflow-diagram-standalone .kind-notification { border-top-color: #6d9fc7; }
.oxa-workflow-node-status.status-skipped { color: #6c7483; background: #f4f5f7; border-color: #dce0e6; }

.oxa-workflow-config-inline .oxa-workflow-mode-options > .ant-radio-wrapper { width: auto; flex: 0 0 auto; display: inline-flex; min-height: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.oxa-designer-inspector-backdrop { position: fixed; inset: 0; z-index: 1000; border: 0; background: #0006; }
@media(max-width:899px) {
  .oxa-designer-workspace .oxa-designer-desktop-inspector { display: block; position: fixed; inset: auto 0 0; height: 85dvh; z-index: 1001; padding: 16px; border: 0; border-radius: 12px 12px 0 0; box-shadow: 0 -8px 32px #1d355326; }
}

.oxa-designer-insert-menu .ant-dropdown-menu { min-width: min(320px, calc(100vw - 32px)); padding: 8px; border: 1px solid #dbe3ee; border-radius: 8px; }
.oxa-designer-insert-menu .ant-dropdown-menu-item, .oxa-designer-insert-menu .ant-dropdown-menu-submenu-title { min-height: 44px; font-size: 13px; }
.oxa-designer-insert-menu .anticon { font-size: 18px; color: #0066ff; }
.oxa-designer-return-summary > td { background: #f8faff; }
.oxa-designer-return-summary > td > div { display: flex; align-items: flex-start; gap: 8px; }
.oxa-designer-return-summary p { margin: 0; font-size: 11px; line-height: 1.8; }
.oxa-designer-return-summary .ant-tag { font-size: 10px; margin: 0; line-height: 18px; }
.oxa-designer-return-summary .ant-btn { margin-left: auto; padding: 0; font-size: 11px; }

.oxa-designer-workspace:not(.detail-inspector):not(.without-inspector) { grid-template-columns: 240px minmax(0,1fr) 496px; }
.oxa-designer-workspace.without-outline:not(.detail-inspector):not(.without-inspector) { grid-template-columns: 48px minmax(0,1fr) 496px; }
.oxa-designer-workspace.detail-inspector:not(.without-inspector) { grid-template-columns: 240px minmax(0,1fr) 640px; }
.oxa-designer-workspace.without-outline.detail-inspector:not(.without-inspector) { grid-template-columns: 48px minmax(0,1fr) 640px; }
.oxa-workflow-config-inline.compact { border: 1px solid #dcebdc; border-radius: 5px; overflow: hidden; }
.oxa-workflow-config-inline.compact .oxa-designer-handling-notice { border-radius: 0; margin-bottom: 0; }
.oxa-workflow-config-inline.compact form { display: none; }
.oxa-designer-handling-summary { padding: 0 14px; }
.oxa-designer-handling-summary button { width: 100%; min-height: 50px; display: flex; align-items: center; gap: 14px; padding: 8px 0; background: none; border: 0; border-bottom: 1px solid #e6ecf2; font: inherit; font-size: 13px; text-align: left; cursor: pointer; }
.oxa-designer-handling-summary strong { flex: 0 0 76px; font-weight: 500; }
.oxa-designer-handling-summary span:nth-child(2) { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #617086; }
.oxa-designer-handling-summary span:last-child { color: #617086; }
.oxa-workflow-config-inline.compact .oxa-workflow-config-footer { padding: 12px 14px; margin: 0; }
.oxa-workflow-config-inline.compact .oxa-workflow-config-footer .ant-space, .oxa-workflow-config-inline.compact .oxa-workflow-config-footer .ant-btn { width: 100%; }
@media(max-width:1499px) {
  .oxa-designer-workspace:not(.detail-inspector):not(.without-inspector) { grid-template-columns: 200px minmax(0,1fr) 440px; }
  .oxa-designer-workspace.without-outline:not(.detail-inspector):not(.without-inspector) { grid-template-columns: 48px minmax(0,1fr) 440px; }
  .oxa-designer-workspace.detail-inspector:not(.without-inspector) { grid-template-columns: 200px minmax(0,1fr) 560px; }
  .oxa-designer-workspace.without-outline.detail-inspector:not(.without-inspector) { grid-template-columns: 48px minmax(0,1fr) 560px; }
}
@media(max-width:1199px) {
  .oxa-designer-workspace:not(.without-inspector), .oxa-designer-workspace.without-outline:not(.without-inspector) { grid-template-columns: 48px minmax(0,1fr) 440px; }
}
@media(max-width:899px) {
  .oxa-designer-workspace:not(.without-inspector), .oxa-designer-workspace.without-outline:not(.without-inspector) { grid-template-columns: minmax(0,1fr); }
}

.oxa-designer-ai-panel { padding: 16px; }
.oxa-designer-ai-panel > header { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; }
.oxa-designer-ai-panel > header > .anticon { color: #0066ff; font-size: 22px; }
.oxa-designer-ai-panel h2 { font-size: 16px; margin: 0; }
.oxa-designer-ai-panel > header > .ant-btn { margin-left: auto; }
.oxa-designer-ai-panel > p { font-size: 13px; color: #617086; line-height: 1.8; }

.oxa-workflow-config-inline.compact .oxa-workflow-config-footer .ant-space-item { width: 100%; flex: 1; }
.oxa-workflow-designer-inspector > header h2 { font-size: 20px; line-height: 28px; }
.oxa-designer-workspace:not(.detail-inspector) .oxa-designer-inspector-icon { width: 40px; height: 40px; font-size: 27px; }

.oxa-designer-insert-option { display: flex; align-items: center; gap: 18px; }
.oxa-designer-insert-option > span { min-width: 64px; }
.oxa-designer-insert-option > small { color: #7a879b; font-size: 12px; white-space: normal; }
.oxa-designer-insert-menu .ant-dropdown-menu-item-group-title { padding: 8px 12px 4px; color: #445169; font-size: 13px; font-weight: 600; }
.oxa-designer-insert-menu .anticon.kind-condition { color: #e58a15; }
.oxa-designer-insert-menu .anticon.kind-action { color: #7c3aed; }
.oxa-designer-insert-menu .anticon.kind-notification { color: #e14b80; }

.oxa-workflow-config-inline .oxa-workflow-operation-table .ant-form-item-control-input { min-height: 24px; }
.oxa-workflow-config-inline .oxa-workflow-operation-table td:last-child small { display: inline; margin-left: 8px; }
.oxa-workflow-config-inline .oxa-workflow-operation-table .ant-select-content { font-size: 13px; }
.oxa-workflow-designer-inspector .oxa-designer-draft-band .ant-collapse-header { font-size: 13px; }

.oxa-designer-condition-editor > .ant-alert { margin: 0 0 16px; font-size: 13px; }
.oxa-designer-branch-selector { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.oxa-designer-branch-identity { display: flex; align-items: center; gap: 6px; margin-bottom: 20px; }
.oxa-designer-branch-identity > .ant-input { flex: 1; min-width: 0; }
.oxa-designer-branch-identity > .ant-tag { margin: 0; white-space: nowrap; }
.oxa-designer-condition-surface { padding: 12px !important; border: 1px solid #e1e8f2 !important; background: #f7f9fc; border-radius: 6px; margin-bottom: 18px !important; }
.oxa-designer-condition-surface .oxa-condition-row { grid-template-columns: minmax(0,1fr) 106px minmax(0,1fr); }
.oxa-designer-condition-surface .oxa-condition-row > .ant-btn { grid-column: 1 / -1; justify-self: start; color: #0066ff; }
.oxa-designer-condition-surface .ant-select, .oxa-designer-condition-surface .ant-input-number { width: 100%; min-width: 0; }
.oxa-designer-condition-description { padding: 10px 12px; background: #f7f9fc; border: 1px solid #e1e8f2; border-radius: 5px; overflow-wrap: anywhere; }
.oxa-designer-condition-editor > label { display: flex; flex-direction: column; gap: 8px; margin: 14px 0; font-weight: 600; }
.oxa-designer-condition-editor > .oxa-designer-parallel-toggle { flex-direction: row; align-items: center; justify-content: flex-start; }
.oxa-designer-return-notice { background: #eaf2ff; color: #0066ff; padding: 12px; border-radius: 5px; font-weight: 600; margin-bottom: 12px; }
.oxa-designer-return-target { border: 1px solid #e1e8f2; background: #fafbfd; border-radius: 6px; padding: 14px; margin: 12px 0; }
.oxa-designer-return-target.enabled { background: #fff; }
.oxa-designer-return-target > header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.oxa-designer-return-target > header > .ant-checkbox-wrapper { font-weight: 600; }
.oxa-designer-return-target > header > label { display: flex; align-items: center; gap: 8px; color: #7b879a; font-size: 12px; }
.oxa-designer-return-target > header .ant-select { min-width: 172px; }
.oxa-designer-return-path { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; margin: 14px 0 10px; font-size: 12px; }
.oxa-designer-return-path > small { color: #7b879a; margin-right: 4px; }
.oxa-designer-return-path > span { display: inline-flex; align-items: center; gap: 5px; min-width: 0; }
.oxa-designer-return-path > span > span { background: #eaf2ff; border-radius: 4px; padding: 5px 8px; max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.oxa-designer-return-path .skipped { text-decoration: line-through; color: #a0a8b6; background: #f5f7fb; }
.oxa-workflow-designer-inspector .oxa-designer-return-warning { color: #c98113; }
.oxa-designer-return-rule { border: 1px solid #e1e8f2; background: #f7f9fc; border-radius: 6px; padding: 14px; margin: 18px 0; }
.oxa-designer-return-rule h3 { margin: 0 0 8px; }
.oxa-designer-return-rule p { margin: 0; }
.oxa-designer-return-back { padding-left: 0; margin-bottom: 8px; }
@media(max-width:899px) {
  .oxa-designer-branch-identity { flex-wrap: wrap; }
  .oxa-designer-branch-identity > .ant-input { flex-basis: 100%; }
  .oxa-designer-condition-surface .oxa-condition-row { grid-template-columns: minmax(0,1fr) 106px; }
  .oxa-designer-condition-surface .oxa-condition-row > :nth-child(3) { grid-column: 1 / -1; }
  .oxa-designer-return-target > header > label { width: 100%; flex-wrap: wrap; }
  .oxa-designer-return-target > header .ant-select { flex: 1; min-width: 0; }
}
.oxa-designer-condition-surface:disabled { opacity: .7; pointer-events: none; }
.oxa-workflow-diagram-designer .oxa-workflow-edge-label.designer-branch { width: 296px; max-width: 296px; min-height: 64px; box-sizing: border-box; padding: 10px 14px; border-radius: 5px; background: #fafcff; }
.oxa-workflow-edge-label.designer-branch > span { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #182230; font-size: 14px; font-weight: 600; }
.oxa-workflow-edge-label.designer-branch > span > small { color: #64718a; background: #f0f4fa; border: 1px solid #dbe3ee; font-size: 11px; font-weight: 400; padding: 1px 6px; border-radius: 3px; }
.oxa-workflow-edge-label.designer-branch > strong { display: block; margin-top: 5px; color: #617086; font-size: 12px; font-weight: 400; line-height: 18px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.oxa-designer-inspector-icon.kind-condition { color: #e58a15; background: #fff3df; }
.oxa-designer-publish-modal .ant-modal-title { font-size: 20px; }
.oxa-designer-publish-modal .ant-modal-body { max-height: calc(100dvh - 220px); overflow-y: auto; padding-right: 2px; }
.oxa-designer-publish-modal h3 { font-size: 14px; margin: 20px 0 12px; }
.oxa-designer-publish-modal p { color: #748092; font-size: 13px; line-height: 1.7; }
.oxa-designer-publish-modal fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.oxa-designer-publish-checks { display: flex; align-items: center; gap: 10px; padding: 14px; border: 1px solid #e1e8f2; border-radius: 6px; color: #2d7617; font-size: 13px; }
.oxa-designer-publish-checks .anticon { font-size: 20px; }
.oxa-designer-publish-scope { width: 100%; display: flex; flex-direction: column; gap: 10px; }
.oxa-designer-publish-scope > .ant-radio-wrapper { align-items: flex-start; border: 1px solid #dce4ef; padding: 14px; border-radius: 6px; margin: 0; }
.oxa-designer-publish-scope > .ant-radio-wrapper-checked { border-color: #0066ff; background: #eaf2ff; box-shadow: 0 0 0 1px #0066ff22; }
.oxa-designer-publish-scope strong { display: block; font-weight: 600; }
.oxa-designer-publish-scope small { display: block; font-size: 12px; color: #748092; line-height: 1.7; margin-top: 6px; }
.oxa-designer-publish-scope .ant-tag { margin-left: 8px; }
.oxa-designer-publish-holds { margin: 12px 0; }
.oxa-designer-publish-holds > summary, .oxa-designer-publish-exceptions > summary { color: #0066ff; cursor: pointer; font-size: 13px; }
.oxa-designer-publish-holds label { display: flex; flex-direction: column; gap: 8px; margin: 12px 0; font-size: 13px; }
.oxa-designer-publish-counts { border: 1px solid #e1e8f2; border-radius: 6px; margin: 0; }
.oxa-designer-publish-counts > div { display: flex; justify-content: space-between; padding: 10px 14px; border-bottom: 1px solid #e1e8f2; font-size: 13px; }
.oxa-designer-publish-counts > div:last-child { border: 0; }
.oxa-designer-publish-counts dt::before { content: ''; display: inline-block; width: 9px; height: 9px; margin-right: 10px; background: #8290a6; border-radius: 50%; }
.oxa-designer-publish-counts .outcome-eligible dt::before { background: #389e0d; }
.oxa-designer-publish-counts .outcome-deferred dt::before { background: #1677ff; }
.oxa-designer-publish-counts .outcome-excepted dt::before { background: #fa8c16; }
.oxa-designer-publish-counts dd { margin: 0; font-variant-numeric: tabular-nums; }
.oxa-designer-publish-reason { display: flex; align-items: center; gap: 12px; margin: 20px 0 8px; font-size: 13px; white-space: nowrap; }

@media(min-width:900px) {
  .oxa-workflow-config-inline .oxa-workflow-mode-field .ant-form-item-row { display: flex; flex-direction: row; align-items: center; gap: 12px; }
  .oxa-workflow-config-inline .oxa-workflow-mode-field .ant-form-item-label { flex: 0 0 auto; padding: 0; }
  .oxa-workflow-config-inline .oxa-workflow-mode-field .ant-form-item-control { flex: 1; min-width: 0; }
}
.oxa-designer-workspace.without-outline .oxa-designer-outline { padding: 8px 4px; }
.oxa-designer-workspace.without-outline .oxa-designer-outline-heading { padding: 0; justify-content: center; }
.oxa-designer-workspace.without-outline .oxa-designer-outline nav button { justify-content: center; padding: 10px 4px; gap: 0; }
.oxa-designer-outline nav button .anticon { flex: 0 0 20px; min-width: 20px; }

.oxa-designer-ai-panel { min-height: calc(100dvh - 56px); box-sizing: border-box; display: flex; flex-direction: column; gap: 8px; }
.oxa-designer-ai-panel > header { flex-shrink: 0; }
.oxa-designer-ai-panel > .ant-spin-nested-loading { flex: 1; min-height: 0; overflow-y: auto; }
.oxa-designer-ai-panel > .oxa-designer-ai-composer { order: 10; flex-shrink: 0; margin-top: auto; padding: 12px 0 0; border-top: 1px solid #e1e8f2; }
.oxa-designer-ai-panel .oxa-designer-ai-composer > .ant-space { width: 100%; justify-content: flex-end; margin-bottom: 0 !important; }
.oxa-designer-ai-panel .oxa-designer-ai-composer textarea { font-size: 13px; }
@media(max-width:899px) { .oxa-designer-ai-panel { min-height: calc(85dvh - 32px); } }

.oxa-workflow-parallel-region { width:100%;height:100%;border:1px solid #d5e0f0;border-radius:8px;background:rgba(248,250,253,.84); }
.oxa-workflow-node.designer-node.kind-parallel { border-color:transparent;background:transparent;box-shadow:none;border-left:0; }
.oxa-workflow-node.designer-node.kind-parallel .oxa-workflow-node-kind { display:none; }
.oxa-workflow-node.designer-node.kind-join { border-radius:22px;justify-content:center;padding:6px 12px; }
.oxa-workflow-node.designer-node.kind-join .oxa-workflow-node-kind,.oxa-workflow-node.designer-node.kind-join .oxa-workflow-node-copy small { display:none; }
.oxa-workflow-node.designer-node.kind-join .oxa-workflow-node-icon { width:22px;height:22px;font-size:14px; }
.oxa-workflow-node.designer-node.kind-join .oxa-workflow-node-copy strong { font-size:12px;font-weight:500; }
.oxa-designer-inspector-icon.kind-parallel,.oxa-designer-outline .kind-parallel { color:#1677ff; }

.oxa-workflow-reminder-editor { padding:16px;border:1px solid #dce5f0;border-radius:6px;background:#fff; }
.oxa-workflow-reminder-editor h3 { margin:0 0 14px;font-size:14px;color:#1c293b; }
.oxa-workflow-reminder-fields { display:grid;gap:14px;margin-top:16px; }
.oxa-workflow-reminder-fields > div { display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#64748b;font-size:12px; }
.oxa-workflow-reminder-fields .ant-input-number { width:78px; }
.oxa-workflow-reminder-fields .ant-select { width:76px; }
.oxa-workflow-reminder-fields .ant-space-compact { flex-shrink:0; }
.oxa-workflow-reminder-summary { margin:0;padding:10px 12px;background:#f5f8fc;border-radius:4px;color:#3d597b;font-size:12px;line-height:1.7; }
.oxa-workflow-reminder-editor > footer { display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid #e8edf3; }

/* Capability configuration follows the inspector design, not a template picker. */
.oxa-workflow-people-sources { display: grid; gap: 12px; }
.oxa-workflow-people-sources > label { display: grid; gap: 8px; }
.oxa-designer-business-step h3 { font-size: 14px; margin: 24px 0 12px; }
.oxa-designer-business-step > p { color: var(--ant-color-text-secondary); font-size: 13px; line-height: 1.7; }
.oxa-designer-step-catalog { display: grid; gap: 8px; margin-top: 12px; max-height: 260px; overflow-y: auto; }
.oxa-designer-step-catalog button { display: flex; align-items: center; gap: 12px; min-height: 48px; background: #fff; border: 1px solid #dce4ee; border-radius: 6px; padding: 10px 12px; text-align: left; cursor: pointer; }
.oxa-designer-step-catalog button[aria-pressed=true] { border-color: #1677ff; background: #eff6ff; }
.oxa-designer-step-catalog button > strong { flex: 1; }
.oxa-designer-step-catalog button > .anticon { color: #1677ff; }
.oxa-designer-business-step .oxa-workflow-operation-table td:last-child { min-width: 220px; }
.oxa-designer-business-step .oxa-workflow-operation-table .ant-select { width: 100%; margin-bottom: 6px; }
.oxa-designer-required { color: #d4380d; }
.oxa-designer-condition-examples > p { color: var(--ant-color-text-secondary); font-size: 12px; line-height: 1.6; }
.oxa-designer-condition-examples article { margin: 12px 0; padding: 12px; background: #f7f9fc; border: 1px solid #e4eaf2; border-radius: 6px; }
.oxa-designer-condition-examples article > header { display: flex; gap: 8px; margin-bottom: 12px; }
.oxa-designer-example-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.oxa-designer-example-fields label { display: grid; gap: 6px; font-size: 12px; }
.oxa-designer-example-fields .ant-input-number { width: 100%; }
.oxa-designer-condition-examples article > p { margin: 12px 0 0; color: #1677ff; }

/* PC inspector: ordered assignment cards share the canvas' configuration surface. */
.oxa-workflow-conditional-assignment { display: grid; gap: 12px; min-width: 0; }
.oxa-workflow-conditional-assignment > .oxa-workflow-config-section { display: grid; gap: 12px; padding: 16px; margin: 0; border: 1px solid var(--ant-color-border-secondary, #e3e8ef); border-radius: 8px; background: var(--ant-color-bg-container, #fff); }
.oxa-workflow-conditional-assignment .oxa-condition-row { grid-template-columns: minmax(0, 1fr) 100px; }
.oxa-workflow-conditional-assignment .oxa-condition-row > :nth-child(3),
.oxa-workflow-conditional-assignment .oxa-condition-row > .ant-btn { grid-column: 1 / -1; }
.oxa-workflow-conditional-assignment .oxa-condition-row > .ant-btn { justify-self: start; }
.oxa-workflow-conditional-assignment .ant-select { min-width: 0; }
.oxa-workflow-conditional-assignment .oxa-workflow-people-sources { display: grid; gap: 10px; }
.oxa-workflow-conditional-assignment h4 { margin: 0; }
