/* 业务页面布局与状态样式；颜色统一由 globals.css 的语义令牌提供。 */
[hidden] {
  display: none !important
}

.form-error {
  color: var(--danger);
  font-size: 13px;
  background: var(--color-bg-danger);
  border: 1px solid var(--color-border-danger);
  border-radius: 4px;
  padding: 8px 11px
}

.form-grid {
  display: grid;
  gap: 12px
}

.form-grid label {
  display: grid;
  gap: 5px;
  font-size: 13px;
  color: var(--muted)
}

.toolbar {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  margin-bottom: 14px;
  flex-wrap: wrap
}

.reference-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 16px;
  padding: 10px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line)
}

.reference-link {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  flex: 0 0 auto;
  color: var(--color-primary);
  font-size: 12px;
  font-weight: 650;
  text-decoration: none;
  white-space: nowrap
}

.reference-link:hover {
  color: var(--color-primary-hover);
  text-decoration: underline;
  text-underline-offset: 3px
}

.reference-link:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 3px;
  border-radius: 2px
}

.integration-guidance-row {
  align-items: flex-start
}

.integration-guidance-collapse.ant-collapse {
  min-width: 0;
  flex: 1;
  background: transparent
}

.integration-guidance-collapse.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-header {
  align-items: flex-start;
  padding: 0;
  color: var(--text)
}

.integration-guidance-collapse .ant-collapse-expand-icon {
  padding-top: 2px
}

.integration-guidance-collapse.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box {
  padding: 12px 0 0 24px
}

.integration-guidance-summary {
  display: grid;
  gap: 3px;
  line-height: 1.45
}

.integration-guidance-summary>span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 400
}

.integration-guidance-description {
  margin: 0
}

.pill.sim {
  background: var(--color-bg-info);
  color: var(--color-info)
}

.empty {
  padding: 32px;
  text-align: center;
  color: var(--muted);
  background: var(--panel2);
  border: 1px dashed var(--line);
  border-radius: 6px
}

.diag {
  min-width: 0;
  margin: 0;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--panel)
}

.diag-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px
}

.diag-heading strong {
  min-width: 0;
  font-size: 14px;
  font-weight: 600;
  overflow-wrap: anywhere
}

.diag-tags {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap
}

.diag-message {
  margin: 10px 0 0;
  font-size: 14px;
  line-height: 1.65
}

.diag-evidence {
  display: grid;
  gap: 5px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--line)
}

.diag .xpath {
  color: var(--muted);
  font: 12px/1.6 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  overflow-wrap: anywhere
}

.diag-suggestion {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 4px;
  background: var(--panel2);
  line-height: 1.6
}

.template-validation-summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin: 18px 0 12px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--panel2)
}

.template-validation-summary h3 {
  margin: 4px 0 5px;
  font-size: 18px
}

.template-validation-summary p {
  margin: 0
}

.template-diagnostic-detail>span {
  display: block;
  margin-bottom: 4px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase
}

.template-diagnostic-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px
}

.template-diagnostic-heading>div {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap
}

.template-diagnostic-heading .ant-btn {
  flex: 0 0 auto;
  padding: 6px 9px
}

.template-diagnostic-detail {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  margin-top: 9px
}

.template-diagnostic-detail>span {
  margin: 2px 0 0
}

.template-diagnostic-detail p {
  margin: 0;
  font-size: 13px;
  line-height: 1.55
}

.template-diagnostic-suggestion {
  padding: 8px 10px;
  border-left: 3px solid var(--accent);
  background: var(--panel2)
}

.template-diagnostic-group {
  margin: 0 0 18px
}

.template-diagnostic-group-title {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--muted);
  text-transform: none;
  border-bottom: 1px solid var(--line);
  padding-bottom: 6px
}

.template-diagnostic-message {
  margin: 10px 0 4px;
  font-size: 13px;
  line-height: 1.55
}

.template-diagnostic-more {
  margin: 4px 0 10px;
  color: var(--muted);
  font-size: 12px
}

.template-diagnostic-more summary {
  cursor: pointer;
  font-weight: 650
}

.template-diagnostic-more .template-diagnostic-detail {
  margin-top: 8px
}

.template-validation-diagnostics {
  display: grid;
  gap: 12px
}

.template-issue-card {
  display: grid;
  gap: 14px
}

.template-issue-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line)
}

.template-issue-heading>div {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap
}

.template-issue-heading>div:first-child>b {
  font-size: 14px;
  font-weight: 600
}

.template-issue-rules {
  justify-content: flex-end
}

.template-issue-summary {
  margin: 0;
  font-size: 13px;
  line-height: 1.6
}

.template-issue-section {
  display: grid;
  gap: 7px
}

.template-issue-section h4 {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  font-weight: 600
}

.template-issue-section>p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55
}

.template-issue-rule-requirement>p,
.template-issue-judgement>p {
  color: var(--text);
  font-size: 13px
}

.template-issue-judgement,
.template-issue-remediation {
  padding: 10px 12px;
  border-radius: 4px;
  background: var(--panel2)
}

.template-issue-remediation {
  border-left: 3px solid var(--accent)
}

.template-issue-remediation>p {
  color: var(--text);
  font-size: 13px
}

.template-issue-rule-source {
  color: var(--muted);
  font-size: 12px
}

.template-issue-rule-source summary {
  cursor: pointer;
  font-weight: 500
}

.template-issue-rule-source p {
  margin: 8px 0 0;
  color: var(--text);
  line-height: 1.6
}

.template-issue-locations {
  display: grid;
  gap: 6px
}

.template-issue-location {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--panel2)
}

.template-issue-location>div {
  display: flex;
  align-items: baseline;
  gap: 7px;
  min-width: 0;
  flex-wrap: wrap
}

.template-issue-location b {
  font-size: 13px;
  font-weight: 600;
  overflow-wrap: anywhere
}

.template-issue-location span,
.template-issue-location small {
  color: var(--muted);
  font-size: 11px
}

.template-issue-location .ant-btn {
  flex: 0 0 auto
}

.template-issue-affected .template-issue-location {
  background: transparent
}

.template-issue-evidence {
  margin: 0;
  padding-top: 10px;
  border-top: 1px solid var(--line)
}

.template-issue-diagnostic {
  display: grid;
  gap: 5px;
  margin-top: 9px;
  padding: 10px;
  border-radius: 4px;
  background: var(--panel2);
  color: var(--text)
}

.template-issue-diagnostic>b {
  font-size: 11px;
  font-weight: 600
}

.template-issue-diagnostic p {
  margin: 0;
  font-size: 12px;
  line-height: 1.55
}

.issuance-report-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 2px 0 10px
}

.issuance-report-back.ant-btn {
  display: flex;
  width: fit-content;
  height: 32px;
  margin: 0 0 6px;
  padding-inline: 0
}

.issuance-activation-result {
  display: grid;
  min-height: min(560px, calc(100dvh - 260px));
  place-items: center;
  animation: issuance-activation-enter .16s ease-out
}

.issuance-activation-result .ant-result {
  width: 100%;
  max-width: 720px;
  padding: 64px 24px
}

.issuance-activation-result-copy {
  display: grid;
  gap: 8px;
  line-height: 1.65
}

@keyframes issuance-activation-enter {
  from {
    opacity: 0;
    transform: translateY(8px)
  }

  to {
    opacity: 1;
    transform: translateY(0)
  }
}

.issuance-report-title {
  display: flex;
  min-width: 0;
  align-items: baseline;
  flex-wrap: wrap;
  column-gap: 10px;
  row-gap: 2px
}

.issuance-report-title h2 {
  display: flex;
  min-width: 0;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  color: var(--text);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.3;
  overflow-wrap: anywhere
}

.issuance-report-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  max-width: 560px
}

.issuance-report-actions .ant-btn,
.issuance-report-layout .ant-btn {
  font-weight: 500
}

.issuance-report-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 0 0 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel);
  overflow: hidden
}

.issuance-report-summary>div {
  display: grid;
  min-width: 0;
  align-content: start;
  gap: 5px;
  padding: 12px 14px;
  border-right: 1px solid var(--line)
}

.issuance-report-summary>div:last-child {
  border-right: 0
}

.issuance-report-summary span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.4
}

.issuance-report-summary b {
  min-width: 0;
  color: var(--text);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
  overflow-wrap: anywhere
}

.issuance-report-summary .issuance-report-progress b {
  font-size: 18px;
  font-variant-numeric: tabular-nums
}

.issuance-report-lifecycle {
  display: grid;
  gap: 4px;
  margin: 0;
  padding: 8px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: transparent
}

.issuance-report-lifecycle-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px 24px;
  min-width: 0
}

.issuance-report-lifecycle-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  min-height: 32px
}

.issuance-report-stage.ant-steps.ant-steps-horizontal {
  box-sizing: border-box;
  width: auto;
  max-width: 100%;
  margin: 0;
  padding-inline: 0;
  justify-self: start
}

.issuance-report-stage.ant-steps.ant-steps-horizontal .ant-steps-item {
  flex: none;
  padding-inline-end: 32px
}

.issuance-report-stage.ant-steps.ant-steps-horizontal .ant-steps-item:last-child {
  padding-inline-end: 0
}

.issuance-report-stage-compact {
  display: none
}

.issuance-report-stage.is-navigable .ant-steps-item:not(.ant-steps-item-disabled) {
  cursor: pointer
}

.issuance-report-stage.is-navigable .ant-steps-item:not(.ant-steps-item-disabled):hover .ant-steps-item-title {
  color: var(--accent)
}

.issuance-activation-stage {
  margin-bottom: 16px;
  border: 1px solid var(--line);
  border-radius: 6px
}

.issuance-template-info-facts {
  display: grid;
  gap: 8px;
  margin: 14px 0
}

.issuance-template-info-facts>div {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 12px
}

.issuance-template-info-facts dt {
  color: var(--muted)
}

.issuance-template-info-facts dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere
}

.issuance-template-info-facts code {
  font-size: 11px;
  word-break: break-all
}

.issuance-report-stage.ant-steps .ant-steps-item-title {
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap
}

.issuance-report-stage.ant-steps .ant-steps-item-icon {
  font-weight: 500
}

.issuance-filter-toggle {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  cursor: pointer;
  user-select: none
}

.issuance-field-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 24px;
  min-width: 0;
  margin: 0;
  padding: 8px 0;
  background: transparent
}

.issuance-field-summary-group {
  display: flex;
  flex-wrap: wrap;
  min-width: 0;
  align-items: center;
  gap: 4px
}

.issuance-field-summary-label {
  flex: 0 0 auto;
  margin-inline-end: 3px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 500;
  white-space: nowrap
}

.issuance-field-summary-divider {
  flex: 0 0 1px;
  align-self: stretch;
  min-height: 24px;
  background: var(--line)
}

.issuance-field-summary-item {
  display: inline-flex;
  flex: 0 0 auto;
  min-width: max-content;
  align-items: center;
  gap: 4px;
  padding: 4px 7px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: var(--text);
  font: inherit;
  text-align: left;
  white-space: nowrap
}

.issuance-field-summary .issuance-field-summary-item.ant-btn {
  height: 30px;
  cursor: pointer
}

.issuance-field-summary .issuance-field-summary-item.ant-btn:hover:not(:disabled),
.issuance-field-summary .issuance-field-summary-item.ant-btn.active {
  background: var(--color-bg-accent-soft)
}

.issuance-field-summary .issuance-field-summary-item.ant-btn.has-problems b {
  color: var(--danger)
}

.issuance-field-summary .issuance-field-summary-item.ant-btn:disabled {
  cursor: default;
  opacity: .58
}

.issuance-field-summary-item span {
  flex: 0 0 auto;
  min-width: max-content;
  color: var(--muted);
  font-size: 11px
}

.issuance-field-summary-item b {
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 600;
  font-variant-numeric: tabular-nums
}

.issuance-field-summary-item.is-static {
  background: var(--panel2)
}

.issuance-field-summary-reset.ant-btn {
  flex: 0 0 auto;
  padding-inline: 6px;
  font-size: 12px
}

.issuance-field-search {
  flex: 1 1 280px;
  min-width: 0
}

.issuance-field-toolbar {
  margin-block: 12px
}

.issuance-field-tools {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 16px
}

.issuance-field-tools .issuance-sample-review {
  height: auto;
  min-height: 32px;
  max-width: 100%;
  padding-block: 6px;
  white-space: normal;
  text-align: start
}

.issuance-sample-review[aria-pressed="true"] {
  background: var(--color-bg-accent-soft);
  color: var(--accent)
}

.issuance-validation-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 0 0 14px;
  padding: 12px 14px;
  border: 1px solid var(--color-border-success);
  border-left: 3px solid var(--success);
  background: var(--color-bg-success);
  color: var(--color-success)
}

.issuance-validation-strip.has-error {
  border-color: var(--color-border-danger);
  border-left-color: var(--danger);
  background: var(--color-bg-danger);
  color: var(--color-danger)
}

.issuance-validation-strip>div {
  display: grid;
  gap: 2px;
  min-width: 0
}

.issuance-validation-strip>div>span {
  color: var(--muted);
  font-size: 12px
}

.issuance-validation-panel {
  margin: 10px 0 14px;
  scroll-margin-top: 12px
}

.issuance-floating-actions {
  position: fixed;
  right: 28px;
  bottom: 24px;
  z-index: 25;
  display: flex;
  max-width: calc(100vw - 40px);
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: color-mix(in srgb, var(--panel) 94%, transparent);
  box-shadow: var(--shadow-medium);
  backdrop-filter: blur(10px);
  animation: issuance-floating-actions-enter .16s ease-out
}

@keyframes issuance-floating-actions-enter {
  from {
    opacity: 0;
    transform: translateY(8px)
  }

  to {
    opacity: 1;
    transform: translateY(0)
  }
}

.issuance-validation-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px
}

.issuance-validation-heading h2 {
  margin: 3px 0 12px;
  font-size: 20px
}

.issuance-report-layout {
  display: grid;
  grid-template-columns: 252px minmax(0, 1fr);
  align-items: start;
  min-width: 0;
  margin-top: 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel)
}

.issuance-group-nav {
  position: sticky;
  top: 14px;
  min-width: 0;
  max-height: calc(100vh - 28px);
  padding: 14px 10px;
  border-right: 1px solid var(--line);
  background: var(--panel2);
  overflow: auto;
  overscroll-behavior: contain
}

.issuance-mobile-group-trigger.ant-btn {
  display: none
}

.issuance-group-nav nav,
.issuance-group-navigation-drawer nav,
.issuance-official-navigation {
  display: grid;
  gap: 2px
}

:is(.issuance-group-nav, .issuance-group-navigation-drawer) .issuance-group-link.ant-btn {
  display: grid;
  grid-template-columns: 14px minmax(0, 1fr) auto;
  width: 100%;
  min-width: 0;
  height: auto;
  min-height: 40px;
  align-items: start;
  justify-content: stretch;
  gap: 8px;
  padding: 7px 9px;
  overflow: hidden;
  border: 0;
  border-left: 3px solid transparent;
  border-radius: 3px;
  background: transparent;
  color: var(--text);
  line-height: 1.35;
  text-align: left;
  white-space: normal;
  box-shadow: none
}

:is(.issuance-group-nav, .issuance-group-navigation-drawer) .issuance-group-link.ant-btn:hover {
  background: var(--color-bg-info);
  color: var(--text)
}

:is(.issuance-group-nav, .issuance-group-navigation-drawer) .issuance-group-link.ant-btn.active {
  border-left-color: var(--accent);
  background: var(--color-bg-info);
  color: var(--color-text)
}

.issuance-group-label {
  display: grid;
  min-width: 0;
  overflow: hidden;
  gap: 1px
}

.issuance-group-link b,
.issuance-group-link small {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap
}

.issuance-group-link b {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  overflow-wrap: anywhere;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.35
}

.issuance-group-link > svg { margin-top: var(--space-1); }

.issuance-nav-supplement {
  margin-top: var(--space-3);
  border-top: 1px solid var(--line)
}

.issuance-group-link small {
  color: var(--muted);
  font: 10px/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace
}

.issuance-group-count {
  display: grid;
  justify-items: end;
  align-self: center;
  flex: none;
  min-width: max-content;
  gap: 1px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.35;
  font-variant-numeric: tabular-nums
}

.issuance-group-count em {
  color: var(--danger);
  font-size: 10px;
  font-style: normal;
  font-weight: 500;
  white-space: nowrap
}

.issuance-report-main {
  min-width: 0;
  background: var(--panel);
  container-type: inline-size;
  container-name: issuance-report
}

.issuance-group-page {
  scroll-margin-top: 16px;
  min-width: 0
}

.issuance-group-page+.issuance-group-page {
  border-top: 8px solid var(--panel2)
}

.issuance-group-page>header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: end;
  gap: 14px;
  padding: 20px 22px 16px;
  border-bottom: 1px solid var(--line)
}

.issuance-group-page>header .eyebrow {
  display: block;
  margin-bottom: 3px;
  color: var(--muted);
  font: 10px/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace
}

.issuance-group-page>header h2 {
  margin: 0;
  color: var(--text);
  font-size: 20px;
  font-weight: 600
}

.issuance-group-title,
.issuance-field-identity {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 6px
}

.issuance-field-identity > b {
  flex: 1 1 0;
  min-width: 0
}

.issuance-field-identity > :not(b) {
  flex: 0 0 auto
}

.issuance-coc-items {
  margin-inline-end: var(--space-2);
  font-variant-numeric: tabular-nums
}

.issuance-coc-item {
  white-space: nowrap
}

.issuance-coc-subsection {
  margin: var(--space-4) 0 var(--space-2);
  font-size: inherit;
  font-weight: 600
}

.issuance-field-representation {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius-container);
  background: var(--panel)
}

.issuance-field-representation>header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px
}

.issuance-representation-values {
  display: flex;
  min-width: 0;
  align-items: end;
  gap: 10px
}

.issuance-representation-value {
  display: grid;
  min-width: 0;
  flex: 1 1 180px;
  gap: 4px
}

.issuance-representation-value>span {
  color: var(--muted);
  font-size: 12px
}

.issuance-representation-unit {
  flex: 0 0 auto;
  padding-block: 5px;
  color: var(--muted)
}

@media (max-width: 768px) {
  .issuance-field-representation>header,
  .issuance-representation-values {
    align-items: stretch;
    flex-direction: column
  }
  .issuance-representation-value {
    flex-basis: auto
  }
}

.issuance-group-title h2 {
  min-width: 0;
  overflow-wrap: anywhere
}

.issuance-group-info.ant-btn {
  display: grid;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  min-width: 28px;
  padding: 0;
  place-items: center;
  color: var(--color-info)
}

.issuance-group-summary {
  display: grid;
  justify-items: end;
  gap: 2px;
  color: var(--muted);
  font-size: 11px;
  white-space: nowrap
}

.issuance-group-summary b {
  color: var(--text);
  font-size: 12px;
  font-weight: 500;
  font-variant-numeric: tabular-nums
}

.issuance-group-summary span {
  color: var(--danger);
  font-weight: 500
}

.issuance-group-collapse.ant-btn {
  display: grid;
  width: 32px;
  height: 32px;
  min-width: 32px;
  padding: 0;
  place-items: center;
  color: var(--muted)
}

.issuance-group-warning {
  padding: 10px 22px;
  border-bottom: 1px solid var(--color-border-warning);
  background: var(--color-bg-warning);
  color: var(--color-warning);
  font-size: 12px
}

.issuance-field-list {
  display: grid;
  min-width: 0
}

.issuance-repeat-object {
  display: grid;
  min-width: 0;
  gap: 12px;
  margin: 14px 22px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel2)
}

.issuance-repeat-object>legend {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 240px);
  align-items: center;
  width: 100%;
  gap: 16px;
  padding: 0 2px
}

.issuance-repeat-object>legend>span:first-child {
  display: grid;
  gap: 2px
}

.issuance-repeat-object>legend b {
  font-size: 14px;
  font-weight: 600;
  overflow-wrap: anywhere
}

.issuance-repeat-object>legend small {
  color: var(--muted);
  font-size: 11px
}

.issuance-repeat-object-items {
  display: grid;
  gap: 10px
}

.issuance-repeat-object-card {
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--panel);
  overflow: hidden
}

.issuance-repeat-object-card>header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 42px;
  padding: 6px 10px 6px 14px;
  border-bottom: 1px solid var(--line);
  background: var(--panel2)
}

.issuance-repeat-object-card>header b {
  font-size: 12px;
  font-weight: 600
}

.issuance-repeat-object-fields {
  display: grid
}

.issuance-repeat-object-field {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  align-items: start;
  gap: 14px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  min-width: 0
}

.issuance-repeat-object-field:last-child {
  border-bottom: 0
}

.issuance-repeat-object-field:has(> .issuance-field-policy-details) {
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr) minmax(0, .55fr)
}

.issuance-repeat-object-field > .issuance-field-policy-details {
  grid-column: 3;
  grid-row: 1
}

.issuance-repeat-object-field.has-error {
  box-shadow: inset 3px 0 var(--danger)
}

.issuance-repeat-object-field>div:first-child {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0
}

.issuance-repeat-object-field>div:first-child>b {
  min-width: 0;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.45;
  overflow-wrap: anywhere
}

.issuance-repeat-object-field>.ant-input,
.issuance-repeat-object-field>.ant-select,
.issuance-repeat-object-field>.issuance-repeated-values {
  width: 100%;
  min-width: 0
}

.issuance-repeat-api {
  padding: 12px 14px;
  border-left: 3px solid var(--color-info);
  background: var(--color-bg-info)
}

.issuance-repeat-api>p {
  margin: 4px 0 10px;
  color: var(--muted);
  font-size: 12px
}

.issuance-repeat-api ul {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none
}

.issuance-repeat-api li {
  display: grid;
  grid-template-columns: minmax(140px, .6fr) minmax(0, 1fr);
  gap: 12px;
  font-size: 12px
}

.issuance-repeat-api code {
  overflow-wrap: anywhere
}

.issuance-field-row {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.35fr) minmax(0, .55fr);
  gap: 18px;
  align-items: start;
  min-width: 0;
  padding: 15px 22px;
  border-bottom: 1px solid var(--line);
  transition: background-color .14s ease
}

.issuance-field-row:hover {
  background: var(--color-bg-info)
}

.issuance-field-row:has(.issuance-field-source:empty) {
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.9fr)
}

.issuance-field-row.has-error {
  box-shadow: inset 3px 0 var(--danger)
}

.issuance-field-name {
  min-width: 0
}

.issuance-field-name>div {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0
}

.issuance-field-name b {
  min-width: 0;
  color: var(--text);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.45;
  overflow-wrap: anywhere
}

.issuance-field-info.ant-btn {
  display: grid;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  min-width: 28px;
  padding: 0;
  place-items: center;
  border-color: var(--color-border);
  background: transparent;
  color: var(--color-info);
  font-size: 11px
}

.issuance-field-value,
.issuance-field-source {
  min-width: 0;
  max-width: 100%
}

.issuance-field-value>*,
.issuance-field-source>* {
  max-width: 100%
}

.issuance-field-value .ant-input,
.issuance-field-value .ant-select,
.issuance-field-source .ant-select,
.issuance-repeat-object .ant-select {
  width: 100%;
  min-width: 0;
  max-width: 100%
}

.issuance-field-value .ant-select-selector,
.issuance-field-source .ant-select-selector,
.issuance-repeat-object .ant-select-selector {
  min-width: 0
}

.issuance-field-policy,
.issuance-field-policy-readonly,
.issuance-omission-policy,
.issuance-conditional-policy {
  display: grid;
  gap: 6px;
  min-width: 0
}

.issuance-field-policy-details {
  min-width: 0;
}

.issuance-field-policy-details > summary {
  color: var(--color-info);
  cursor: pointer;
  font-size: 12px;
  line-height: 32px;
}

.issuance-field-policy-details > summary:focus-visible {
  outline: 2px solid var(--color-info);
  outline-offset: 2px;
}

.issuance-field-policy-readonly>span:first-child,
.issuance-omission-policy>span,
.issuance-conditional-policy>span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45
}

.issuance-repeated-values {
  display: grid;
  gap: 8px
}

.issuance-repeated-value {
  display: grid;
  grid-template-columns: minmax(76px, auto) minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px
}

.issuance-repeated-value>span {
  color: var(--color-text-secondary);
  font-size: 11px;
  line-height: 1.4;
  white-space: nowrap
}

.issuance-repeated-value>.ant-select,
.issuance-repeated-value>.ant-input {
  width: 100%;
  min-width: 0
}

.issuance-repeated-omissions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
  padding: 6px 10px;
  border-left: 3px solid var(--color-info);
  border-radius: 4px;
  background: var(--color-bg-info);
  color: var(--color-text-secondary);
  font-size: 12px;
  line-height: 1.5
}

.issuance-repeated-omissions>.ant-btn {
  flex: none;
  padding-inline: 4px
}

.issuance-repeated-add.ant-btn {
  justify-self: start
}

.issuance-readonly-repeated-value {
  display: grid;
  gap: 6px;
  color: var(--color-text);
  font-size: 13px
}

.issuance-readonly-repeated-value>span {
  display: grid;
  grid-template-columns: minmax(76px, auto) minmax(0, 1fr);
  gap: 10px;
  align-items: baseline
}

.issuance-readonly-repeated-value small {
  color: var(--color-text-secondary);
  font-size: 11px;
  white-space: nowrap
}

.issuance-readonly-repeated-value>span>span {
  overflow-wrap: anywhere
}

.issuance-field-issues {
  margin-top: 7px;
  padding: 8px 10px;
  border-left: 3px solid var(--warning);
  background: var(--color-bg-warning);
  color: var(--color-warning);
  font-size: 11px
}

.issuance-field-issues.has-error {
  border-left-color: var(--danger);
  background: var(--color-bg-danger);
  color: var(--color-danger)
}

.issuance-source-locked {
  display: block;
  max-width: 100%;
  box-sizing: border-box;
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--panel2);
  color: var(--muted);
  font-size: 12px;
  overflow-wrap: anywhere
}

.issuance-readonly-value,
.issuance-projected-value {
  color: var(--text);
  font-size: 13px;
  overflow-wrap: anywhere
}

.issuance-not-applicable {
  margin: 14px 22px;
  color: var(--muted);
  font-size: 12px
}

.issuance-not-applicable summary {
  cursor: pointer;
  font-weight: 650
}

.issuance-not-applicable>div {
  display: grid;
  grid-template-columns: minmax(180px, .6fr) minmax(0, 1fr);
  gap: 12px;
  padding: 9px 0;
  border-bottom: 1px solid var(--line)
}

.issuance-group-navigation-drawer .ant-drawer-body {
  padding: 10px
}

.issuance-group-navigation-drawer .issuance-group-link.ant-btn {
  min-height: 48px;
  padding: 8px 10px
}

.issuance-field-drawer .ant-drawer-header {
  padding: 18px 24px
}

.issuance-field-drawer .ant-drawer-body {
  padding: 0 24px 24px
}

.issuance-drawer-close.ant-btn {
  display: grid;
  width: 32px;
  height: 32px;
  min-width: 32px;
  padding: 0;
  place-items: center;
  color: var(--muted)
}

.issuance-inspector-drawer-title {
  display: grid;
  gap: 2px;
  min-width: 0
}

.issuance-inspector-drawer-title span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 400
}

.issuance-inspector-drawer-title strong {
  color: var(--text);
  font-size: 16px;
  font-weight: 600;
  overflow-wrap: anywhere
}

.issuance-field-inspector-content dl {
  margin: 0
}

.issuance-field-inspector-content dl>div {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid var(--line)
}

.issuance-field-inspector-content dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 400
}

.issuance-field-inspector-content dd {
  min-width: 0;
  margin: 0;
  color: var(--text);
  font-size: 13px;
  line-height: 1.65;
  overflow-wrap: anywhere
}

.issuance-vsign-guidance {
  margin-top: 12px;
  padding: 10px 12px;
  border-inline-start: 3px solid var(--color-border-info);
  border-radius: 4px;
  background: var(--color-bg-info)
}

.issuance-vsign-guidance strong {
  color: var(--color-info);
  font-size: 12px;
  font-weight: 600
}

.issuance-vsign-guidance p {
  margin: 4px 0 0
}

.issuance-inspector-rules {
  margin-top: 24px
}

.issuance-inspector-rules h4 {
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 600
}

.issuance-inspector-rules>div {
  margin-top: 8px;
  padding: 12px;
  border-radius: 4px;
  background: var(--panel2)
}

.issuance-inspector-rules>div b {
  font-weight: 600
}

.issuance-inspector-rules>div p {
  margin: 6px 0 0;
  line-height: 1.6
}

.issuance-rule-source {
  margin-top: 10px;
  color: var(--muted);
  font-size: 12px
}

.issuance-rule-source summary {
  cursor: pointer;
  font-weight: 500
}

.issuance-rule-source p {
  color: var(--text)
}

.issuance-field-inspector-content>details {
  margin-top: 20px;
  color: var(--muted);
  font-size: 12px
}

.issuance-field-inspector-content>details summary {
  cursor: pointer;
  font-weight: 500
}

.issuance-inspector-technical {
  padding-top: 14px;
  border-top: 1px solid var(--line)
}

.issuance-inspector-technical[open]>summary {
  margin-bottom: 8px
}

.issuance-inspector-technical code {
  color: var(--text);
  font-size: 11px;
  overflow-wrap: anywhere
}

.issuance-inspector-technical .issuance-inspector-rules {
  margin-top: 16px
}

[data-binding-row].template-validation-target {
  background: var(--color-bg-warning);
  box-shadow: inset 3px 0 var(--color-warning)
}

.issuance-repeated-value.template-validation-target,
.issuance-readonly-repeated-value>[data-binding-instance].template-validation-target {
  padding: 6px;
  border-radius: 4px;
  background: var(--color-bg-warning);
  box-shadow: inset 3px 0 var(--color-warning)
}

[data-binding-row].template-field-incomplete {
  box-shadow: inset 3px 0 var(--danger)
}

[data-binding-row].template-field-incomplete [aria-invalid='true'] {
  border-color: var(--danger);
  box-shadow: 0 0 0 1px var(--danger);
  background: var(--color-bg-danger)
}

.template-binding-error {
  display: block;
  margin-top: 6px;
  color: var(--danger);
  font-size: 11px;
  font-weight: 650;
  line-height: 1.4
}

.issuance-trace-id {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--line)
}

.issuance-trace-id span {
  min-width: 0;
  color: var(--muted);
  font-size: 12px
}

.issuance-trace-id code {
  color: var(--text);
  overflow-wrap: anywhere
}

@container issuance-report (max-width:560px) {
  .issuance-field-row {
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: 12px 18px;
    padding-inline: 16px
  }

  .issuance-field-source {
    grid-column: 2
  }

  .issuance-repeat-object>legend {
    grid-template-columns: minmax(0, 1fr) minmax(0, 200px)
  }

  .issuance-repeat-object-field {
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr)
  }
}

@container issuance-report (max-width:420px) {
  .issuance-field-row,
  .issuance-field-row:has(.issuance-field-source:empty) {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    padding: 14px 16px
  }

  .issuance-field-source {
    grid-column: auto
  }

  .issuance-repeat-object>legend,
  .issuance-repeat-object-field,
  .issuance-repeat-object-field:has(> .issuance-field-policy-details),
  .issuance-repeat-api li {
    grid-template-columns: minmax(0, 1fr)
  }

  .issuance-repeat-object-field > .issuance-field-policy-details {
    grid-column: auto;
    grid-row: auto
  }

  .issuance-repeat-object>legend {
    gap: 8px
  }
}

@media(max-width:900px) {
  .issuance-validation-panel {
    scroll-margin-top: 100px
  }

  .issuance-report-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

  .issuance-report-summary>div {
    border-bottom: 1px solid var(--line)
  }

  .issuance-report-summary>div:nth-child(2n) {
    border-right: 0
  }

  .issuance-report-summary>div:last-child {
    grid-column: 1/-1;
    border-bottom: 0
  }

  .issuance-report-lifecycle-main {
    grid-template-columns: 1fr
  }

  .issuance-field-summary {
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 2px 8px
  }

  .issuance-field-summary-group {
    flex: 1 1 100%;
    flex-wrap: wrap
  }

  .issuance-field-summary-divider {
    display: none
  }

  .issuance-field-summary-reset.ant-btn {
    margin-inline-start: 0
  }

  .issuance-field-search {
    flex-basis: 100%;
    margin-inline-start: 0
  }

  .issuance-report-lifecycle-tools {
    justify-content: flex-start
  }

  .issuance-report-layout {
    grid-template-columns: 1fr
  }

  .issuance-group-nav {
    z-index: 10;
    top: 8px;
    max-height: none;
    padding: 10px 14px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
    overflow: visible
  }

  .issuance-mobile-group-trigger.ant-btn {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    text-align: left
  }

  .issuance-mobile-group-trigger>span:last-child {
    min-width: 0;
    overflow: hidden;
    color: var(--muted);
    text-overflow: ellipsis;
    white-space: nowrap
  }

  .issuance-group-nav nav {
    display: none
  }
}

@media(max-width:600px) {
  .issuance-report-header {
    grid-template-columns: 1fr;
    align-items: start
  }

  .issuance-report-title h2 {
    font-size: 20px
  }

  .issuance-report-actions {
    align-items: stretch;
    justify-content: flex-start;
    width: 100%;
    max-width: none
  }

  .issuance-report-actions .ant-btn {
    flex: 1 1 calc(50% - 4px)
  }

  .issuance-report-lifecycle {
    padding: 5px 0
  }

  .issuance-report-stage.ant-steps {
    display: none
  }

  .issuance-report-stage-compact {
    display: flex;
    min-height: 32px;
    align-items: center;
    color: var(--text);
    font-size: 13px;
    font-weight: 500
  }

  .issuance-report-stage-compact .ant-btn {
    display: inline-flex;
    height: 32px;
    align-items: center;
    gap: 6px;
    padding-inline: 0;
    color: var(--text);
    font-weight: 500
  }

  .issuance-validation-strip {
    align-items: stretch;
    flex-direction: column
  }

  .issuance-validation-strip .ant-btn {
    width: 100%
  }

  .issuance-floating-actions {
    right: 12px;
    bottom: 12px;
    left: 12px;
    max-width: none;
    flex-wrap: wrap
  }

  .issuance-floating-actions .ant-btn {
    flex: 1 1 calc(50% - 4px)
  }

  .issuance-group-page>header {
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 16px
  }

  .issuance-group-summary {
    grid-column: 1
  }

  .issuance-group-collapse.ant-btn {
    grid-column: 2;
    grid-row: 1/3
  }

  .issuance-group-summary {
    justify-items: start
  }

  .issuance-repeat-object {
    margin: 10px 12px;
    padding: 10px
  }

  .issuance-repeated-value,
  .issuance-readonly-repeated-value>span {
    grid-template-columns: 1fr;
    gap: 4px
  }

  .issuance-not-applicable {
    margin-inline: 16px
  }

  .issuance-not-applicable>div {
    grid-template-columns: 1fr;
    gap: 3px
  }

  .issuance-field-drawer .ant-drawer-content-wrapper {
    width: 100% !important;
    max-width: 100vw
  }

  .issuance-field-inspector-content dl>div {
    grid-template-columns: 1fr;
    gap: 4px
  }
}

@media(max-width:560px) {

  .template-validation-summary,
  .template-diagnostic-heading,
  .template-issue-heading,
  .template-issue-location {
    align-items: stretch;
    flex-direction: column
  }

  .template-validation-summary>a,
  .template-diagnostic-heading .ant-btn,
  .template-issue-location .ant-btn {
    width: 100%
  }

  .template-diagnostic-detail {
    grid-template-columns: 1fr;
    gap: 2px
  }
}

.batch-overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0 0 16px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-container);
  background: var(--color-bg-container);
  overflow: hidden
}

.batch-overview>div {
  display: grid;
  min-width: 0;
  align-content: start;
  gap: 5px;
  padding: 12px 14px;
  border-right: 1px solid var(--color-border)
}

.batch-overview>div:last-child {
  border-right: 0
}

.batch-overview span {
  color: var(--color-text-secondary);
  font-size: 11px;
  line-height: 1.4
}

.batch-overview b {
  min-width: 0;
  color: var(--color-text);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
  overflow-wrap: anywhere
}

.batch-process-card {
  margin: 0 0 20px;
  padding: 16px 18px 18px;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  background: var(--color-bg-subtle)
}

.batch-process-heading {
  margin-bottom: 16px
}

.batch-process-heading .eyebrow {
  display: block;
  margin-bottom: 3px;
  color: var(--color-text-secondary);
  font-size: 11px;
  font-weight: 500
}

.batch-process-heading h2 {
  margin: 0;
  color: var(--color-text);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4
}

.batch-process-steps.ant-steps {
  width: 100%
}

.batch-process-steps .ant-steps-item {
  min-width: 0
}

.batch-process-steps .ant-steps-item-title {
  padding-inline-end: 8px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.45;
  white-space: nowrap
}

.batch-process-step-title {
  display: inline-block;
  border-radius: var(--radius-control);
  outline: 0
}

.batch-process-step-title:focus-visible {
  box-shadow: 0 0 0 2px var(--color-primary)
}

.batch-process-steps .ant-steps-item-icon {
  font-weight: 500
}

.batch-process-current {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--color-border)
}

.batch-process-current-index {
  flex: 0 0 auto;
  color: var(--color-primary);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  font-variant-numeric: tabular-nums
}

.batch-process-current>div {
  display: grid;
  min-width: 0;
  gap: 2px
}

.batch-process-current strong {
  color: var(--color-text);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45
}

.batch-process-current>div>span {
  color: var(--color-text-secondary);
  font-size: 12px;
  line-height: 1.5
}

.batch-process-current[data-state="error"] .batch-process-current-index,
.batch-process-current[data-state="error"] strong {
  color: var(--color-danger)
}

.integration-package-modal .ant-modal-body {
  padding-top: 4px
}

.integration-package-body {
  display: grid;
  gap: 24px
}

.integration-package-intro {
  display: grid;
  gap: 8px
}

.integration-package-intro .eyebrow {
  color: var(--color-primary);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .08em
}

.integration-package-intro p {
  max-width: 560px;
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 13px;
  line-height: 1.65
}

.integration-package-intro code {
  color: var(--color-text);
  font-size: 12px
}

.integration-package-form {
  display: grid;
  gap: 16px
}

.integration-package-field {
  display: grid;
  gap: 8px;
  color: var(--color-text);
  font-size: 13px;
  font-weight: 600
}

.integration-package-field .ant-select {
  width: 100%
}

.integration-package-field .ant-select-selector {
  height: auto !important;
  min-height: 56px;
  padding-block: 6px !important
}

.integration-package-field .ant-select-selection-item {
  display: flex;
  min-width: 0;
  align-items: center;
  line-height: normal !important
}

.integration-package-template-label {
  display: grid;
  min-width: 0;
  gap: 2px
}

.integration-package-template-label strong {
  min-width: 0;
  color: var(--color-text);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap
}

.integration-package-template-label>span {
  min-width: 0;
  color: var(--color-text-secondary);
  font: 11px/1.45 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap
}

.integration-package-template-option {
  display: block;
  min-width: 0;
  overflow: hidden;
  color: var(--color-text);
  font-size: 12px;
  line-height: 1.5;
  text-overflow: ellipsis;
  white-space: nowrap
}

.integration-package-contents {
  display: grid;
  gap: 8px;
  padding-top: 16px;
  border-top: 1px solid var(--color-border)
}

.integration-package-contents>span {
  color: var(--color-text-secondary);
  font-size: 12px;
  font-weight: 500
}

.integration-package-contents>div {
  display: flex;
  gap: 6px;
  flex-wrap: wrap
}

.integration-package-contents code {
  padding: 4px 7px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--color-bg-subtle);
  color: var(--color-text-secondary);
  font-size: 11px;
  line-height: 1.4
}

.integration-package-modal .ant-modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 24px
}

.integration-package-modal .ant-modal-footer .ant-btn+.ant-btn {
  margin-inline-start: 0
}

@media(max-width:480px) {
  .integration-package-modal {
    top: 16px;
    padding-bottom: 16px
  }

  .integration-package-modal .ant-modal-content {
    padding: 20px 16px 16px
  }

  .integration-package-modal .ant-modal-header {
    padding-right: 32px
  }

  .integration-package-modal .ant-modal-title {
    font-size: 18px
  }

  .integration-package-body {
    gap: 20px
  }

  .integration-package-modal .ant-modal-footer .ant-btn {
    flex: 1 1 0;
    min-width: 0
  }
}

.excel-execution-card {
  margin-bottom: 20px
}

.excel-execution-card>h2 {
  margin-bottom: 12px
}

.excel-execution-card>p[role="status"] {
  margin: 0 0 12px
}

.excel-execution-toolbar {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  margin: 0 0 16px
}

.excel-execution-toolbar .ant-form {
  align-self: stretch;
  width: 100%
}

.batch-issues-card {
  margin-bottom: 20px;
  padding: 0;
  overflow: hidden
}

.batch-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--color-border)
}

.batch-section-heading h2 {
  margin: 0;
  color: var(--color-text);
  font-size: 18px;
  font-weight: 600
}

.batch-section-heading span {
  color: var(--color-text-secondary);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap
}

.batch-issues-table {
  overflow: auto
}

.batch-issues-table .ant-table {
  font-size: 13px
}

.batch-issues-table .ant-table-thead .ant-table-cell {
  padding: 10px 12px;
  color: var(--color-text-secondary);
  font-size: 12px;
  font-weight: 600
}

.batch-issues-table .ant-table-tbody .ant-table-cell {
  padding: 12px;
  vertical-align: top
}

.batch-issues-table .status-tag {
  margin: 0
}

.batch-issue-field {
  display: -webkit-box;
  max-width: 100%;
  overflow: hidden;
  color: var(--color-text);
  font-size: 12px;
  line-height: 1.55;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2
}

.batch-issue-message {
  display: block;
  color: var(--color-text);
  font-size: 13px;
  line-height: 1.6;
  overflow-wrap: anywhere
}

@media(max-width:900px) {
  .batch-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

  .batch-overview>div {
    border-bottom: 1px solid var(--color-border)
  }

  .batch-overview>div:nth-child(2n) {
    border-right: 0
  }

  .batch-overview>div:nth-last-child(-n+2) {
    border-bottom: 0
  }

  .batch-process-steps .ant-steps-item-title {
    font-size: 11px
  }
}

@media(max-width:560px) {
  .batch-overview {
    grid-template-columns: 1fr
  }

  .batch-overview>div,
  .batch-overview>div:nth-child(2n) {
    border-right: 0;
    border-bottom: 1px solid var(--color-border)
  }

  .batch-overview>div:last-child {
    border-bottom: 0
  }

  .batch-process-card {
    padding: 14px
  }

  .batch-process-heading {
    margin-bottom: 14px
  }

  .batch-process-steps {
    display: none
  }

  .batch-process-current {
    margin-top: 0;
    padding-top: 12px
  }

  .batch-section-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
    padding: 14px 16px
  }

  .batch-section-heading span {
    white-space: normal;
    overflow-wrap: anywhere
  }
}

.standards-support {
  margin-bottom: 16px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel);
  overflow: hidden
}

.standards-support-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 20px 24px 16px
}

.standards-support-header>div {
  min-width: 0
}

.standards-support-header .eyebrow {
  display: block;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5
}

.standards-support-header h2 {
  margin: 4px 0 0;
  color: var(--text);
  font-size: 20px;
  line-height: 1.35
}

.standards-support-header>.pill {
  flex: 0 0 auto
}

.diagnostics-context {
  display: grid;
  grid-template-columns: minmax(120px, .8fr) minmax(160px, 1fr) minmax(280px, 2fr) minmax(190px, 1.2fr);
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel);
  overflow: hidden
}

.diagnostics-context>div {
  min-width: 0;
  padding: 16px 18px;
  border-right: 1px solid var(--line)
}

.diagnostics-context>div:last-child {
  border-right: 0
}

.diagnostics-context>div>span {
  display: block;
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4
}

.diagnostics-context>div>b {
  display: block;
  color: var(--text);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.55;
  overflow-wrap: anywhere
}

.standards-support .diagnostics-context {
  border-right: 0;
  border-left: 0;
  border-radius: 0;
  background: var(--panel2)
}

.standards-support-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 24px 14px
}

.standards-support-copy {
  min-width: 0;
  flex: 1 1 auto;
  display: grid;
  gap: 4px
}

.standards-support-note {
  max-width: 1120px;
  margin: 0;
  line-height: 1.7;
  overflow-wrap: anywhere
}

.toolbox-result {
  padding: 0;
  overflow: hidden
}

.toolbox-result-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 20px 24px 16px;
  border-bottom: 1px solid var(--line)
}

.toolbox-result-title {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0
}

.toolbox-result-title h2 {
  margin: 0;
  font-size: 20px;
  line-height: 1.35
}

.toolbox-result-summary {
  flex: 0 0 auto;
  font-weight: 500
}

.toolbox-result-context {
  grid-template-columns: minmax(150px, .8fr) minmax(180px, 1fr) minmax(300px, 2fr);
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: var(--panel2)
}

.toolbox-result-hash {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  padding: 12px 18px;
  border-bottom: 1px solid var(--line)
}

.toolbox-result-hash>span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6
}

.toolbox-result-hash code {
  min-width: 0;
  color: var(--text);
  font: 12px/1.6 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  overflow-wrap: anywhere;
  word-break: break-all
}

.toolbox-result-diagnostics {
  display: grid;
  gap: 12px;
  padding: 20px 24px 24px
}

.toolbox-result-empty {
  margin: 20px 24px 24px
}

@media(max-width:900px) {
  .diagnostics-context {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

  .diagnostics-context>div {
    border-bottom: 1px solid var(--line)
  }

  .diagnostics-context>div:nth-child(2n) {
    border-right: 0
  }

  .diagnostics-context>div:nth-last-child(-n+2) {
    border-bottom: 0
  }

  .toolbox-result-context {
    grid-template-columns: repeat(3, minmax(0, 1fr))
  }

  .toolbox-result-context>div {
    border-bottom: 0
  }

  .toolbox-result-context>div:nth-child(2n) {
    border-right: 1px solid var(--line)
  }

  .toolbox-result-context>div:last-child {
    border-right: 0
  }
}

@media(max-width:560px) {
  .standards-support-header {
    align-items: flex-start;
    padding: 16px;
    gap: 12px
  }

  .standards-support-footer {
    align-items: stretch;
    flex-direction: column;
    padding: 12px 16px 14px
  }

  .diagnostics-context {
    grid-template-columns: 1fr
  }

  .diagnostics-context>div,
  .diagnostics-context>div:nth-child(2n) {
    border-right: 0;
    border-bottom: 1px solid var(--line)
  }

  .diagnostics-context>div:last-child {
    border-bottom: 0
  }

  .toolbox-result-header {
    align-items: flex-start;
    flex-direction: column;
    padding: 16px;
    gap: 8px
  }

  .toolbox-result-title {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px
  }

  .toolbox-result-summary {
    flex: 0 1 auto
  }

  .toolbox-result-context {
    grid-template-columns: 1fr
  }

  .toolbox-result-context>div,
  .toolbox-result-context>div:nth-child(2n) {
    border-right: 0;
    border-bottom: 1px solid var(--line)
  }

  .toolbox-result-context>div:last-child {
    border-bottom: 0
  }

  .toolbox-result-hash {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 12px 16px
  }

  .toolbox-result-diagnostics {
    padding: 16px
  }

  .toolbox-result-empty {
    margin: 16px
  }

  .diag-heading {
    align-items: flex-start;
    flex-direction: column
  }

  .diag-tags {
    justify-content: flex-start
  }
}

.field-error .ant-input,
.field-error .ant-input-affix-wrapper,
.field-error .ant-select-selector,
.field-error .ant-input-number {
  border-color: var(--danger);
  background: var(--color-bg-danger)
}

.field-error .ant-input:focus,
.field-error .ant-input:focus-visible,
.field-error .ant-input-affix-wrapper-focused,
.field-error .ant-select-focused .ant-select-selector {
  border-color: var(--danger);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--danger) 22%, transparent)
}

.field-error {
  position: relative
}

.xml-preview {
  background: var(--color-code-bg);
  border: 1px solid var(--color-code-border);
  border-radius: 6px;
  overflow: hidden
}

.xml-preview-toolbar {
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 10px 0 16px;
  border-bottom: 1px solid var(--color-code-border);
  color: var(--color-code-muted);
  font: 600 11px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .08em
}

.xml-preview-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px
}

.xml-preview-toolbar .ant-btn {
  display: grid;
  width: 30px;
  height: 30px;
  min-width: 30px;
  padding: 0;
  place-items: center;
  border-color: var(--color-code-border);
  background: var(--color-code-surface);
  color: var(--color-code-text)
}

.xml-preview-toolbar .ant-btn:hover {
  background: color-mix(in srgb, var(--color-code-text) 10%, var(--color-code-surface)) !important;
  color: var(--color-code-text) !important
}

.xml-preview-toolbar .xml-copy.ant-btn-dangerous {
  border-color: var(--color-border-danger);
  color: var(--color-danger)
}

.xml-view {
  box-sizing: border-box;
  width: 100%;
  height: clamp(320px, 60vh, 720px);
  min-height: 240px;
  margin: 0;
  padding: 16px;
  overflow: auto;
  resize: vertical;
  background: var(--color-code-bg);
  color: var(--color-code-text);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  line-height: 1.65;
  white-space: pre;
  tab-size: 2
}

.xml-view code {
  font: inherit;
  color: inherit;
  text-shadow: none
}

.xml-view .token.prolog,
.xml-view .token.doctype,
.xml-view .token.comment {
  color: var(--color-code-muted)
}

.xml-view .token.punctuation {
  color: var(--color-code-muted)
}

.xml-view .token.tag,
.xml-view .token.namespace {
  color: var(--color-code-tag)
}

.xml-view .token.attr-name {
  color: var(--color-code-attribute)
}

.xml-view .token.attr-value,
.xml-view .token.string {
  color: var(--color-code-string)
}

.xml-view .token.entity,
.xml-view .token.operator {
  color: var(--color-code-operator)
}

.xml-preview:fullscreen,
.xml-preview.is-maximized {
  box-sizing: border-box;
  background: var(--color-code-bg);
  display: flex;
  flex-direction: column;
  padding: 0
}

.xml-preview:fullscreen {
  width: 100vw;
  height: 100vh
}

.xml-preview.is-maximized {
  position: fixed;
  inset: 0;
  z-index: 1000;
  width: 100vw;
  height: 100vh;
  border: 0;
  border-radius: 0
}

.xml-preview:fullscreen .xml-view,
.xml-preview.is-maximized .xml-view {
  flex: 1;
  height: auto;
  min-height: 0;
  resize: none
}

@media(max-width:600px) {
  .xml-view {
    height: clamp(280px, 55vh, 560px);
    min-height: 200px;
    padding: 12px
  }
}

/* 五阶段一条线向导：1—2—3—4—5 */
.wizard {
  display: flex;
  align-items: flex-start;
  gap: 0;
  margin: 20px 0 24px;
  padding: 18px 12px;
  background: var(--color-bg-container);
  border: 1px solid var(--line);
  border-radius: 6px;
  overflow-x: auto
}

.wizard-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
  min-width: 104px;
  text-align: center
}

.wizard-dot {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--color-bg-info);
  color: var(--color-text-secondary);
  font-weight: 700;
  font-size: 15px;
  border: 2px solid var(--color-border)
}

.wizard-step.done .wizard-dot {
  background: var(--color-bg-success);
  color: var(--color-success);
  border-color: var(--color-border-success)
}

.wizard-step.now .wizard-dot {
  background: var(--color-primary);
  color: var(--color-text-on-solid);
  border-color: var(--color-primary);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-text) 14%, transparent)
}

.wizard-label {
  font-size: 13px;
  color: var(--color-text-secondary);
  font-weight: 600
}

.wizard-step.now .wizard-label {
  color: var(--color-text)
}

.wizard-step.done .wizard-label {
  color: var(--color-success)
}

.wizard-step.ready .wizard-dot {
  border-color: var(--color-primary);
  color: var(--color-primary)
}

.wizard-step.ready .wizard-label {
  color: var(--color-text)
}

.wizard-line {
  flex: 1 1 24px;
  height: 2px;
  background: var(--color-bg-info);
  margin-top: 17px;
  min-width: 18px
}

.wizard-line.done {
  background: var(--color-bg-success)
}

.issuance-setup-wizard {
  width: 100%;
  margin-right: 0;
  margin-left: 0
}

.issuance-setup-wizard .wizard-step {
  height: auto;
  padding: 0 12px;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit
}

.issuance-setup-wizard .wizard-dot {
  flex: 0 0 34px;
  min-width: 34px;
  min-height: 34px;
  aspect-ratio: 1
}

.issuance-setup-wizard .wizard-step:hover .wizard-dot {
  border-color: var(--accent)
}

.issuance-setup-wizard .wizard-step:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 5px
}

.manual-validation-summary {
  display: flex;
  align-items: center;
  gap: 18px;
  min-height: 42px;
  margin: 2px 0 16px;
  padding: 9px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  flex-wrap: wrap
}

/* 手工签发向导：跨步骤固定展示 VIN / 任务编码 / 模板等可读身份，便于区分任务 */
.manual-issuance-identity {
  display: grid;
  min-width: 0;
  gap: 4px;
  margin: 0 0 16px
}

.manual-issuance-identity .eyebrow {
  color: var(--muted);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .04em
}

.manual-issuance-identity>h2 {
  margin: 0;
  color: var(--text);
  font-size: 24px;
  font-weight: 600;
  line-height: 1.3;
  overflow-wrap: anywhere
}

.manual-issuance-identity>h2:not(.mono) {
  color: var(--muted);
  font-weight: 500
}

.manual-issuance-identity>.hint {
  margin: 0
}

.manual-issuance-identity-facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px 16px;
  margin: 10px 0 0;
  padding-top: 12px;
  border-top: 1px solid var(--line)
}

.manual-issuance-identity-facts>div {
  display: grid;
  min-width: 0;
  gap: 4px
}

.manual-issuance-identity-facts dt {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.4
}

.manual-issuance-identity-facts dd {
  margin: 0;
  color: var(--text);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
  overflow-wrap: anywhere
}

.manual-issuance-identity-facts dd>span {
  display: block
}

.manual-issuance-identity-facts small {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 500
}

.manual-issuance-identity-channel {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px
}

.manual-issuance-identity-channel>span {
  min-width: 0
}

.manual-issuance-identity-channel .ant-tag {
  margin-inline-end: 0
}

.manual-issuance-intro {
  display: flex;
  min-height: 0;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px
}

.manual-issuance-intro>p {
  max-width: 960px;
  margin: 0
}

.manual-issuance-intro>.ant-btn {
  flex: none;
  gap: 8px;
  padding-inline: 8px;
  color: var(--muted)
}

.manual-issuance-intro .ant-badge {
  margin-inline-start: 2px
}

.issuance-task-intro {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 8px
}

.issuance-task-intro>p {
  max-width: 880px;
  margin: 5px 0 0
}

.issuance-task-tabs {
  margin-bottom: 12px
}

.issuance-task-tabs .ant-tabs-nav {
  margin-bottom: 0
}

.issuance-task-tabs .ant-tabs-content-holder {
  display: none
}

.issuance-task-filters {
  display: grid;
  margin-bottom: 16px
}

.issuance-task-filter-row {
  display: grid;
  grid-template-columns: minmax(200px, 1fr) 180px auto;
  gap: 8px;
  max-width: 800px
}

.issuance-task-table {
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--surface);
  overflow: hidden
}

.issuance-task-table .status-tag {
  margin: 0
}

.issuance-task-link {
  height: auto !important;
  max-width: 100%;
  padding: 0 !important;
  text-align: left;
  white-space: normal !important
}

.issuance-task-identity {
  display: grid;
  min-width: 0
}

.issuance-task-identity small {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 11px;
  overflow: hidden;
  text-overflow: ellipsis
}

.issuance-task-mobile-vin,
.issuance-task-mobile-status {
  display: none
}

.issuance-task-template {
  display: grid;
  min-width: 0;
  gap: 2px
}

.issuance-task-template>span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap
}

.issuance-task-template small {
  color: var(--muted);
  font-size: 11px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap
}

/* 运营/设置资源详情首屏：与档案、签发任务一致的 card 身份 + 元信息网格 */
.resource-detail-current {
  display: grid;
  gap: 14px;
  margin-bottom: 18px;
  padding: 20px
}

.resource-detail-current-main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px
}

.resource-detail-current-identity {
  display: grid;
  min-width: 0;
  gap: 4px;
  max-width: 880px
}

.resource-detail-current-identity .eyebrow {
  color: var(--muted);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .04em
}

.resource-detail-current-title {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  margin-top: 2px;
  flex-wrap: wrap
}

.resource-detail-current-title h2 {
  min-width: 0;
  margin: 0;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.3;
  overflow-wrap: anywhere
}

.resource-detail-current-identity>.hint {
  margin: 0
}

.resource-detail-current-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap
}

.resource-detail-current-meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 0;
  padding-top: 14px;
  border-top: 1px solid var(--line)
}

.resource-detail-current-meta>div {
  display: grid;
  min-width: 0;
  gap: 4px;
  padding: 0 16px 0 0
}

.resource-detail-current-meta span {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.4
}

.resource-detail-current-meta b {
  min-width: 0;
  color: var(--text);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
  overflow-wrap: anywhere
}

@media(max-width:760px) {
  .resource-detail-current {
    padding: 14px
  }

  .resource-detail-current-main {
    align-items: stretch;
    flex-direction: column
  }

  .resource-detail-current-actions {
    justify-content: flex-start
  }

  .resource-detail-current-title h2 {
    font-size: 20px
  }

  .resource-detail-current-meta {
    grid-template-columns: 1fr
  }

  .resource-detail-current-meta>div {
    padding: 10px 0;
    border-top: 1px solid var(--line)
  }

  .resource-detail-current-meta>div:first-child {
    border-top: 0;
    padding-top: 0
  }
}

/* 签发任务详情：对齐档案详情 card + 元信息网格 + 进度汇总，避免 Ant Descriptions 边框表风格 */
.issuance-task-current {
  display: grid;
  gap: 14px;
  margin-bottom: 18px;
  padding: 20px
}

.issuance-task-current-main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px
}

.issuance-task-current-identity {
  display: grid;
  min-width: 0;
  gap: 4px;
  max-width: 880px
}

.issuance-task-current-identity .eyebrow {
  color: var(--muted);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .04em
}

.issuance-task-current-title {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  margin-top: 2px;
  flex-wrap: wrap
}

.issuance-task-current-title h2 {
  min-width: 0;
  margin: 0;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.3;
  overflow-wrap: anywhere
}

.issuance-task-current-identity>.hint {
  margin: 0
}

.issuance-task-current-outcome {
  display: grid;
  gap: 6px;
  margin-top: 10px
}

.issuance-task-current-outcome h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.35
}

.issuance-task-current-outcome .hint {
  margin: 0;
  max-width: 760px
}

.issuance-task-current-outcome .issuance-task-issue-counts {
  margin-top: 2px;
  font-weight: 500
}

.issuance-task-current-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap
}

.issuance-task-current-meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 0;
  padding-top: 14px;
  border-top: 1px solid var(--line)
}

.issuance-task-current-meta>div {
  display: grid;
  min-width: 0;
  gap: 4px;
  padding: 0 16px 0 0
}

.issuance-task-current-meta span {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.4
}

.issuance-task-current-meta b {
  min-width: 0;
  color: var(--text);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
  overflow-wrap: anywhere
}

.issuance-task-current-meta .issuance-task-template {
  display: grid;
  gap: 2px
}

.issuance-task-current-meta .issuance-task-template small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 500
}

.issuance-task-channel {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-weight: 600
}

.issuance-task-progress-summary {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto;
  align-items: center;
  gap: 12px 18px;
  padding-top: 14px;
  border-top: 1px solid var(--line)
}

.issuance-task-target-summary {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 8px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
  flex-wrap: wrap
}

.excel-import-targets {
  display: grid;
  gap: 8px;
  padding-top: 14px;
  border-top: 1px solid var(--line)
}

.excel-import-targets>.hint {
  margin: 0
}

.excel-import-preview-tables>h3 {
  margin: 16px 0 12px;
  font-size: 16px;
  font-weight: 500
}

.excel-import-preview-tables>h3:first-child {
  margin-top: 0
}

.issuance-task-lifecycle-steps.ant-steps {
  width: 100%
}

.issuance-task-lifecycle-steps .ant-steps-item {
  min-width: 0
}

.issuance-task-lifecycle-steps .ant-steps-item-title {
  font-size: 13px;
  font-weight: 600
}

.manual-workflow>h2 {
  margin: 0 0 12px;
  font-size: 20px;
  font-weight: 500
}

.manual-validation-summary-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5
}

.manual-validation-summary-item+.manual-validation-summary-item {
  padding-left: 18px;
  border-left: 1px solid var(--line)
}

.manual-validation-summary-dot {
  flex: 0 0 7px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor
}

.issuance-identity-step fieldset {
  margin-top: 16px
}

.issuance-inline-actions {
  position: static;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex-wrap: wrap;
  margin-top: 16px;
  padding: 16px 0 0;
  background: transparent;
  border-top: 1px solid var(--line)
}

.issuance-inline-actions>.ant-btn {
  max-width: 100%
}

.issuance-inline-actions>a {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 96px;
  padding: 8px 11px;
  border: 1px solid var(--line);
  border-radius: 4px;
  font: inherit;
  line-height: 1.5;
  text-decoration: none;
  white-space: nowrap
}

.issuance-inline-actions>a:hover {
  background: var(--color-bg-info);
  border-color: var(--color-border-interactive);
  text-decoration: none
}

.issuance-inline-actions>a:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 1px
}

.report-export {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap
}

.report-export a {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 7px 12px;
  border-radius: 4px;
  font: inherit;
  line-height: 1.4;
  text-decoration: none;
  white-space: nowrap
}

.report-export a.primary {
  cursor: pointer
}

.report-export a.primary:hover {
  text-decoration: none
}

.modal-actions.issuance-inline-actions {
  position: static;
  margin: 16px 0 0;
  padding: 16px 0 0;
  background: transparent;
  box-shadow: none
}

.issuance-warning-gate {
  display: grid;
  gap: 7px;
  margin-top: 14px;
  padding: 11px 12px;
  border: 1px solid var(--color-border-warning);
  border-radius: 4px;
  background: var(--color-bg-warning)
}

.issuance-warning-acknowledgement {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  color: var(--text);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer
}

.issuance-warning-gate.field-error {
  border-color: var(--danger);
  background: var(--color-bg-danger)
}

.grid.three {
  grid-template-columns: repeat(3, minmax(0, 1fr))
}

.mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace
}

.demo-cert h2 {
  font-size: 16px
}

.demo-cert:hover {
  border-color: var(--accent)
}

.archive-signing-field {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 13px
}

.archive-signing-field .archive-signing-select {
  width: 100%;
  min-width: 0
}

/* 签名验证证据弹窗：标题与环境标签同排，结论先扫，长哈希可断行 */
.signing-evidence-modal .ant-modal-body {
  padding-top: 8px
}

.signing-evidence {
  display: grid;
  gap: 0;
  min-width: 0
}

.signing-evidence-header {
  display: grid;
  gap: 8px;
  margin: 0 0 18px;
  padding-right: 36px
}

.signing-evidence-title-row {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex-wrap: wrap
}

.signing-evidence-title-row h2 {
  min-width: 0;
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.35;
  overflow-wrap: anywhere
}

.signing-evidence-header .hint {
  margin: 0;
  line-height: 1.5
}

.signing-evidence-section {
  min-width: 0;
  padding: 16px 0 0;
  border-top: 1px solid var(--line)
}

.signing-evidence-section:first-of-type {
  padding-top: 0;
  border-top: 0
}

.signing-evidence-section-title {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .02em
}

.signing-evidence-list {
  grid-template-columns: minmax(132px, 168px) minmax(0, 1fr);
  gap: 10px 16px;
  margin: 0;
  align-items: start
}

.signing-evidence-list dt {
  padding-top: 2px;
  line-height: 1.45
}

.signing-evidence-list dd {
  min-width: 0;
  line-height: 1.55
}

.signing-evidence-list .evidence-mono {
  font-size: 12px;
  line-height: 1.55;
  overflow-wrap: anywhere;
  word-break: break-all
}

.signing-evidence-status-pair {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap
}

.signing-evidence-signer {
  display: grid;
  gap: 4px;
  min-width: 0
}

.signing-evidence-signer .evidence-mono {
  display: block
}

.signing-evidence-checks {
  padding-bottom: 2px
}

.signing-evidence-checks .table-wrap {
  margin-top: 0
}

.signing-evidence .certificate-raw-details {
  margin-top: 14px
}

@media(max-width:560px) {
  .signing-evidence-header {
    padding-right: 28px
  }

  .signing-evidence-title-row h2 {
    font-size: 18px
  }

  .signing-evidence-list {
    grid-template-columns: 1fr;
    gap: 4px 0
  }

  .signing-evidence-list dt {
    padding-top: 8px
  }

  .signing-evidence-list dd {
    padding-bottom: 8px;
    border-bottom: 1px solid var(--line)
  }

  .signing-evidence-list dd:last-of-type {
    border-bottom: 0;
    padding-bottom: 0
  }
}

.archive-current-outcome {
  display: grid;
  gap: 14px;
  margin-bottom: 18px;
  padding: 20px
}

.archive-current-outcome-main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px
}

.archive-signing-reconciliation {
  min-width: 0;
  overflow-wrap: anywhere
}

.archive-current-outcome-title {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  margin-top: 4px;
  flex-wrap: wrap
}

.archive-current-outcome-title h2 {
  min-width: 0;
  margin: 0;
  font-size: 24px;
  line-height: 1.3;
  overflow-wrap: anywhere
}

.archive-current-actions,
.archive-section-actions,
.archive-attempt-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap
}

.archive-current-meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  border-top: 1px solid var(--line)
}

.archive-current-meta>div {
  display: grid;
  min-width: 0;
  gap: 4px;
  padding: 14px 16px 0 0
}

.archive-current-meta span,
.archive-version-overview span {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.4
}

.archive-current-meta b,
.archive-version-overview b {
  min-width: 0;
  color: var(--text);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
  overflow-wrap: anywhere
}

.archive-progress-summary {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto auto;
  align-items: center;
  gap: 12px 18px;
  padding-top: 14px;
  border-top: 1px solid var(--line)
}

.archive-target-summary {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 8px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
  flex-wrap: wrap
}

.archive-progress-summary>.ant-btn-link {
  justify-self: end;
  padding-inline: 0
}

.archive-lifecycle-steps.ant-steps {
  width: 100%
}

.archive-lifecycle-steps .ant-steps-item {
  min-width: 0
}

.archive-lifecycle-steps .ant-steps-item-title {
  font-size: 13px;
  font-weight: 600
}

.archive-version {
  padding: 20px;
  min-width: 0
}

.archive-version-heading {
  align-items: flex-start;
  min-width: 0
}

.archive-signature-version {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel)
}

.archive-signature-version.is-latest {
  border-left: 3px solid var(--primary);
  background: var(--panel2)
}

.archive-signature-version-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  min-width: 0
}

.archive-signature-version-name {
  min-width: 0
}

.archive-signature-version-name>.eyebrow {
  display: block;
  margin-bottom: 5px
}

.archive-signature-version-title {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex-wrap: wrap
}

.archive-signature-version-title h3 {
  margin: 0;
  font-size: 17px;
  line-height: 1.4
}

.archive-xades-badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px 8px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--panel);
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.3
}

.archive-signature-version-meta {
  display: flex;
  align-items: center;
  gap: 8px 18px;
  min-width: 0;
  margin-top: 10px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
  flex-wrap: wrap
}

.archive-signature-version-meta .mono {
  color: var(--text);
  font-size: 11px;
  overflow-wrap: anywhere;
  word-break: break-all
}

.archive-signature-version>.ant-alert {
  margin-top: 14px
}

.archive-version-details {
  margin-top: 14px;
  background: transparent
}

.archive-version-validation {
  display: grid;
  gap: 0;
  min-width: 0
}

.archive-version-detail-section {
  min-width: 0;
  padding: 14px 0;
  border-top: 1px solid var(--line)
}

.archive-version-detail-section:first-child {
  padding-top: 0;
  border-top: 0
}

.archive-version-detail-section:last-child {
  padding-bottom: 0
}

.archive-version-detail-section>h4 {
  margin: 0 0 10px;
  font-size: 14px;
  line-height: 1.5
}

.archive-version-detail-section>.table-wrap {
  margin-top: 0
}

.archive-version-detail-section>.archive-technical-details {
  margin-top: 10px
}

.archive-version-issues {
  margin-top: 14px
}

.archive-validation-report {
  min-width: 0;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--line)
}

.archive-validation-report>h4 {
  margin: 0;
  font-size: 15px;
  line-height: 1.5
}

.archive-validation-report-section {
  min-width: 0;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--line)
}

.archive-validation-report-section>h5 {
  margin: 0 0 10px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5
}

.archive-validation-report-section>.table-wrap {
  margin-top: 0
}

.archive-validation-inline-status {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex-wrap: wrap
}

.archive-signature-maintenance {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--line)
}

.archive-signature-history {
  margin-top: 14px
}

.archive-signature-history-list {
  display: grid;
  gap: 10px
}

.archive-signature-history-list .archive-signature-version {
  background: var(--panel2)
}

.archive-version-submissions {
  display: grid;
  gap: 8px
}

.archive-version-submission {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto minmax(160px, .7fr) auto;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line)
}

.archive-version-submission:last-child {
  border-bottom: 0
}

.archive-version-submission>div:first-child {
  display: grid;
  gap: 3px
}

.archive-version-submission>.mono {
  min-width: 0;
  font-size: 12px;
  overflow-wrap: anywhere;
  word-break: break-all
}

.archive-version-overview {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 16px 0 0;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel2);
  overflow: hidden
}

.archive-version-overview>div {
  display: grid;
  min-width: 0;
  gap: 5px;
  padding: 12px 14px;
  border-left: 1px solid var(--line)
}

.archive-version-overview>div:first-child {
  border-left: 0
}

.archive-detail-collapse {
  margin-top: 14px;
  min-width: 0;
  border-color: var(--line);
  background: var(--panel)
}

.archive-detail-collapse .ant-collapse-header {
  font-weight: 600
}

.archive-detail-collapse .table-wrap {
  min-width: 0
}

.archive-signature-versions {
  margin-bottom: 18px
}

.archive-record-details {
  margin-bottom: 0
}

.archive-content-source {
  display: grid;
  gap: 16px;
  min-width: 0
}

.archive-content-source-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 16px
}

.archive-content-source-heading .archive-version-overview {
  margin: 0
}

.archive-hash-cell,
.archive-detail-collapse .mono {
  overflow-wrap: anywhere;
  word-break: break-all
}

.archive-ltv-versions .ant-table-cell .ant-btn-link {
  height: auto;
  padding-inline: 0;
  white-space: nowrap
}

.archive-attempt-list {
  display: grid;
  gap: 8px
}

.archive-attempt-row {
  display: grid;
  grid-template-columns: minmax(230px, .8fr) minmax(220px, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel2)
}

.archive-attempt-summary,
.archive-attempt-result {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap
}

.archive-attempt-result {
  display: grid;
  gap: 3px
}

.archive-attempt-result .mono {
  overflow-wrap: anywhere
}

.archive-technical-details {
  margin: 0
}

.archive-technical-details dd {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word
}

.demo-detail-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-bottom: 14px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel);
  overflow: hidden
}

.demo-detail-summary>div {
  display: grid;
  min-width: 0;
  align-content: start;
  gap: 5px;
  padding: 14px 16px;
  border-right: 1px solid var(--line)
}

.demo-detail-summary>div:last-child {
  border-right: 0
}

.demo-detail-summary span {
  display: block;
  color: var(--muted);
  font-size: 11px
}

.demo-detail-summary b {
  min-width: 0;
  color: var(--text);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
  overflow-wrap: anywhere
}

.demo-detail-toolbar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  margin-bottom: 16px;
  flex-wrap: wrap
}

.demo-detail-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap
}

@media(max-width:900px) {
  .grid.three {
    grid-template-columns: 1fr
  }

  .demo-detail-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

  .demo-detail-summary>div {
    border-bottom: 1px solid var(--line)
  }

  .demo-detail-summary>div:nth-child(2n) {
    border-right: 0
  }

  .demo-detail-summary>div:last-child {
    grid-column: 1/-1;
    border-bottom: 0
  }
}

@media(max-width:900px) {
  .archive-current-outcome-main {
    align-items: stretch;
    flex-direction: column
  }

  .archive-current-actions {
    justify-content: flex-start
  }

  .archive-progress-summary {
    grid-template-columns: 1fr
  }

  .archive-progress-summary>.ant-btn-link {
    justify-self: start
  }

  .archive-attempt-row {
    grid-template-columns: 1fr auto
  }

  .archive-attempt-result {
    grid-column: 1/-1;
    grid-row: 2
  }

  .archive-attempt-actions {
    grid-column: 2;
    grid-row: 1;
    justify-content: flex-end
  }

  .archive-signature-version-header {
    align-items: stretch;
    flex-direction: column
  }

  .archive-signature-version-header .archive-section-actions {
    justify-content: flex-start
  }

  .archive-version-submission {
    grid-template-columns: minmax(0, 1fr) auto
  }

  .archive-version-submission>.mono {
    grid-column: 1
  }

  .archive-version-submission>.ant-btn {
    grid-column: 2;
    grid-row: 2
  }
}

@media(max-width:560px) {
  .demo-detail-summary {
    grid-template-columns: 1fr
  }

  .demo-detail-summary>div,
  .demo-detail-summary>div:nth-child(2n) {
    border-right: 0
  }

  .demo-detail-summary>div:last-child {
    grid-column: auto
  }

  .demo-detail-toolbar {
    align-items: stretch;
    flex-direction: column
  }

  .demo-detail-actions {
    display: grid;
    grid-template-columns: 1fr
  }

  .demo-detail-actions .ant-btn {
    width: 100%
  }
}

@media(max-width:560px) {

  .archive-current-outcome,
  .archive-version {
    padding: 14px
  }

  .archive-current-outcome-title h2 {
    font-size: 20px
  }

  .archive-current-actions,
  .archive-section-actions,
  .archive-attempt-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%
  }

  .archive-current-actions .ant-btn,
  .archive-section-actions .ant-btn,
  .archive-attempt-actions .ant-btn {
    width: 100%;
    height: auto;
    min-height: 34px;
    white-space: normal
  }

  .archive-current-meta,
  .archive-version-overview {
    grid-template-columns: 1fr
  }

  .archive-current-meta>div {
    padding: 10px 0;
    border-top: 1px solid var(--line)
  }

  .archive-current-meta>div:first-child {
    border-top: 0
  }

  .archive-progress-summary {
    gap: 12px
  }

  .archive-version-overview>div {
    border-top: 1px solid var(--line);
    border-left: 0
  }

  .archive-version-overview>div:first-child {
    border-top: 0
  }

  .archive-lifecycle-steps.ant-steps {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 8px
  }

  .archive-lifecycle-steps .ant-steps-item {
    padding-inline-start: 0 !important
  }

  .archive-lifecycle-steps .ant-steps-item-tail {
    display: none
  }

  .archive-attempt-row {
    grid-template-columns: 1fr
  }

  .archive-attempt-result,
  .archive-attempt-actions {
    grid-column: 1;
    grid-row: auto
  }

  .archive-attempt-actions {
    justify-content: stretch
  }

  .archive-detail-collapse .ant-collapse-content-box {
    padding: 10px
  }

  .archive-technical-details {
    grid-template-columns: 1fr
  }

  .archive-technical-details dt {
    padding-top: 8px
  }

  .archive-technical-details dd {
    margin: 0;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--line)
  }

  .archive-signature-version {
    padding: 12px
  }

  .archive-signature-maintenance {
    align-items: stretch;
    flex-direction: column
  }

  .archive-signature-maintenance .ant-btn {
    width: 100%;
    height: auto;
    min-height: 34px;
    white-space: normal
  }

  .archive-version-submission {
    grid-template-columns: 1fr
  }

  .archive-version-submission>.mono,
  .archive-version-submission>.ant-btn {
    grid-column: 1;
    grid-row: auto
  }

  .archive-version-submission>.ant-btn {
    justify-self: start;
    padding-inline: 0
  }

  .archive-content-source-heading {
    grid-template-columns: 1fr
  }

  .archive-content-source-heading>.ant-btn {
    width: 100%
  }
}

.link-danger {
  background: transparent;
  border: 0;
  color: var(--danger);
  cursor: pointer;
  font-size: 12px;
  padding: 2px 6px;
  border-radius: 5px;
  flex-shrink: 0;
  text-decoration: none
}

.link-danger:hover {
  background: var(--color-bg-danger);
  color: var(--color-danger)
}

.batch-how-steps {
  margin: 10px 0 0;
  padding-left: 22px;
  display: grid;
  gap: 10px
}

.batch-how-steps li>strong {
  display: block;
  margin-bottom: 2px
}

.batch-how-steps li>span {
  color: var(--muted)
}

.repeat-item {
  border: 1px dashed var(--line);
  border-radius: 8px;
  padding: 10px;
  margin-bottom: 8px;
  background: var(--panel)
}

.manual-repeat-group {
  grid-column: 1/-1;
  margin: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel2)
}

.manual-repeat-group legend {
  padding: 0 6px;
  font-weight: 700;
  color: var(--text)
}

.manual-repeat-item {
  position: relative;
  padding-right: 48px;
  background: var(--panel)
}

.manual-repeat-item>[data-manual-remove] {
  position: absolute;
  right: 10px;
  top: 10px
}

.manual-object-group {
  grid-column: 1/-1;
  padding: 10px;
  border-left: 2px solid var(--line)
}

.manual-object-group>b {
  display: block;
  margin-bottom: 8px;
  color: var(--text)
}

.manual-repeat-group>[data-manual-add] {
  margin-top: 4px
}

.modal-actions {
  position: sticky;
  z-index: 2;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  margin: 24px -30px 0;
  padding: 16px 30px 22px;
  background: var(--color-bg-container);
  border-top: 1px solid var(--color-border);
  box-shadow: 0 -8px 18px color-mix(in srgb, var(--color-text) 14%, transparent)
}

.modal-actions .ant-btn {
  min-width: 96px
}

.issuance-create-modal {
  width: min(640px, 100%)
}

.issuance-create-modal .hint {
  margin: 0 0 12px
}

.issuance-create-modal .ant-segmented {
  margin: 0 0 16px
}

.issuance-create-heading {
  padding-right: 44px
}

.issuance-create-heading .eyebrow {
  display: block;
  margin-bottom: 7px;
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .12em
}

.issuance-report-shell {
  min-width: 0;
  container: issuance-shell / inline-size
}

.app-layout .app-content:has(> .issuance-report-shell) {
  padding-top: var(--space-4)
}

.issuance-report-code {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap
}

.issuance-wizard-step-hint {
  margin: 0;
  max-width: none;
  text-align: left;
  font-size: 12px;
  line-height: 1.5;
  color: var(--muted)
}

.issuance-identity-step {
  margin-top: 12px
}

.issuance-identity-form {
  display: grid;
  gap: 18px
}

.issuance-identity-section {
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel)
}

.issuance-identity-section-title {
  margin: 0 0 12px;
  font-size: 15px;
  font-weight: 600;
  color: var(--text)
}

.issuance-identity-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 16px
}

.issuance-identity-grid>label {
  display: grid;
  gap: 5px;
  font-size: 13px;
  color: var(--muted)
}

.issuance-identity-span-2 {
  grid-column: 1/-1
}

.issuance-identity-profile-hint {
  margin: 12px 0 0;
  font-size: 12px
}

@media(max-width:720px) {
  .issuance-identity-grid {
    grid-template-columns: 1fr
  }
}

.issuance-create-heading h2 {
  margin: 0;
  color: var(--color-text);
  font-size: 22px;
  line-height: 1.3
}

.issuance-create-heading p {
  max-width: 500px;
  margin: 9px 0 0;
  color: var(--color-text-secondary);
  font-size: 13px;
  line-height: 1.65
}

.issuance-create-form {
  display: grid;
  gap: 7px;
  margin-top: 25px
}

.issuance-create-form label {
  display: grid;
  gap: 6px;
  color: var(--color-text);
  font-size: 13px;
  font-weight: 700
}

.issuance-create-form .ant-input {
  width: 100%;
  min-height: 44px
}

.issuance-create-form small {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5
}

.issuance-create-modal .modal-actions {
  margin: 26px -34px 0;
  padding: 17px 34px 22px
}

.api-key-modal {
  width: min(720px, 100%)
}

.api-key-created>.eyebrow {
  display: block;
  margin-bottom: 8px
}

.api-key-created h2 {
  margin: 0 46px 8px 0;
  font-size: 23px;
  line-height: 1.3;
  color: var(--color-text)
}

.api-key-created-intro {
  max-width: 590px;
  margin: 0 0 24px;
  color: var(--color-text-secondary);
  font-size: 14px;
  line-height: 1.7
}

.api-key-created-meta {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 8px 16px;
  margin: 0 0 16px;
  padding: 12px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line)
}

.api-key-created-meta dt {
  color: var(--muted)
}

.api-key-created-meta dd {
  margin: 0;
  font-weight: 650;
  color: var(--color-text)
}

.api-key-secret {
  overflow: hidden;
  border: 1px solid var(--color-border-interactive);
  border-radius: 6px;
  background: var(--color-bg-info)
}

.api-key-secret-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--color-border-interactive);
  color: var(--color-text);
  font-size: 12px;
  font-weight: 700
}

.api-key-secret-heading small {
  color: var(--color-warning);
  font-weight: 650
}

.api-key-secret code {
  display: block;
  padding: 18px 20px;
  background: var(--color-bg-container);
  color: var(--color-text);
  font: 600 15px/1.7 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  letter-spacing: .015em;
  overflow-wrap: anywhere;
  word-break: break-all;
  user-select: all
}

.api-key-secret code:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: -3px
}

.api-key-warning {
  display: grid;
  gap: 4px;
  margin-top: 16px;
  padding: 12px 14px;
  border-left: 3px solid var(--color-border-warning);
  background: var(--color-bg-warning);
  color: var(--color-warning)
}

.api-key-warning strong {
  font-size: 13px
}

.api-key-warning span {
  font-size: 12px;
  line-height: 1.55
}

.connection-settings h2 {
  margin-bottom: 4px
}

.connection-card-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 390px), 1fr));
  gap: 14px;
  margin-top: 18px
}

.connection-card {
  display: grid;
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--color-border-interactive);
  border-radius: 8px;
  background: var(--color-bg-container);
  box-shadow: 0 2px 8px color-mix(in srgb, var(--color-text) 14%, transparent)
}

.connection-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px
}

.connection-card-header h3 {
  margin: 4px 0 0;
  color: var(--color-text);
  font-size: 17px
}

.connection-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px 18px;
  margin: 0
}

.connection-card-grid div {
  min-width: 0
}

.connection-card-grid dt,
.connection-detail-grid dt,
.connection-evidence dt {
  color: var(--muted);
  font-size: 11px
}

.connection-card-grid dd,
.connection-detail-grid dd,
.connection-evidence dd {
  margin: 4px 0 0;
  color: var(--text);
  font-size: 13px;
  overflow-wrap: anywhere
}

.connection-card-grid small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 11px
}

.connection-card footer {
  display: flex;
  justify-content: flex-end;
  padding-top: 2px;
  border-top: 1px solid var(--color-border)
}

.connection-card-simulator {
  background: var(--color-bg-info);
  border-style: dashed
}

.connection-warning {
  display: block;
  margin-top: 5px;
  color: var(--color-danger);
  font-size: 11px
}

.connection-simulators {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--line)
}

.connection-simulators>summary {
  cursor: pointer;
  color: var(--color-text);
  font-weight: 650
}

.connection-simulators>.hint {
  margin: 10px 0 0
}

.connection-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 24px;
  margin: 20px 0 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--color-bg-info)
}

.connection-detail-grid div,
.connection-evidence div {
  min-width: 0
}

.connection-detail-grid code {
  white-space: normal;
  overflow-wrap: anywhere
}

.connection-detail-actions,
.connection-editor-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--line)
}

.connection-evidence {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 12px 0 0
}

.connection-editor {
  width: min(880px, 100%);
  margin-inline: auto
}

.connection-editor-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding-right: 52px
}

.connection-editor-heading h2 {
  margin-top: 3px
}

.connection-section {
  margin: 18px 0 0;
  padding-top: 17px;
  border-top: 1px solid var(--line)
}

.connection-section:first-of-type {
  margin-top: 8px;
  border-top: 0
}

.connection-section h3 {
  margin: 0 0 5px;
  font-size: 14px;
  color: var(--color-text)
}

.connection-section .hint {
  margin: 0 0 12px
}

.connection-form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr))
}

.connection-editor .connection-form-grid {
  align-items: start
}

.connection-target-field {
  display: grid;
  gap: var(--space-1);
  min-width: 0
}

.connection-mtls-credentials {
  display: grid;
  gap: 12px;
  margin-top: 14px
}

.mtls-credential-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px
}

.mtls-credential-heading .hint {
  margin: 4px 0 0
}

.mtls-credential-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--color-bg-info)
}

.mtls-credential-pending {
  border-color: var(--color-border-warning);
  background: var(--color-bg-warning)
}

.mtls-credential-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line)
}

.mtls-credential-header>div {
  display: grid;
  gap: 3px;
  min-width: 0
}

.mtls-credential-header strong {
  overflow-wrap: anywhere;
  color: var(--text);
  font-size: 15px
}

.mtls-credential-file {
  color: var(--muted);
  font-size: 11px;
  overflow-wrap: anywhere
}

.credential-status {
  flex: 0 0 auto;
  padding: 4px 9px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700
}

.credential-status-success {
  background: var(--color-bg-success);
  color: var(--color-success)
}

.credential-status-warning {
  background: var(--color-bg-warning);
  color: var(--color-warning)
}

.credential-status-danger {
  background: var(--color-bg-danger);
  color: var(--color-danger)
}

.mtls-credential-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 20px;
  margin: 0;
  padding: 16px
}

.mtls-credential-grid div {
  min-width: 0
}

.mtls-credential-grid dt {
  color: var(--muted);
  font-size: 11px
}

.mtls-credential-grid dd {
  margin: 4px 0 0;
  color: var(--text);
  font-size: 12px;
  line-height: 1.55;
  overflow-wrap: anywhere
}

.mtls-fingerprint {
  display: flex;
  align-items: flex-start;
  gap: 8px
}

.mtls-fingerprint code {
  min-width: 0;
  font-size: 11px;
  word-break: break-all
}

.link-button {
  width: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--color-primary);
  font-size: 12px;
  font-weight: 650;
  white-space: nowrap
}

.link-button:hover {
  background: transparent;
  text-decoration: underline
}

.mtls-validation-steps {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 12px 16px;
  border-top: 1px solid var(--line);
  background: var(--color-bg-container)
}

.mtls-validation-steps>div {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  min-width: 0
}

.mtls-validation-steps span:last-child {
  display: grid;
  gap: 2px
}

.mtls-validation-steps strong {
  font-size: 12px
}

.mtls-validation-steps small {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45
}

.mtls-validation-steps .mtls-validation-connection {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  align-items: start
}

.mtls-validation-connection>.validation-step-mark {
  grid-column: 1
}

.mtls-validation-connection>span:nth-child(2) {
  grid-column: 2
}

.mtls-validate-button {
  grid-column: 3;
  grid-row: 1;
  align-self: center;
  margin-left: 6px
}

.validation-step-mark {
  display: grid;
  place-items: center;
  flex: 0 0 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--color-bg-info);
  color: var(--color-text-secondary);
  font-size: 11px;
  font-weight: 800
}

.validation-step-success {
  background: var(--color-bg-success);
  color: var(--color-success)
}

.validation-step-danger {
  background: var(--color-bg-danger);
  color: var(--color-danger)
}

.mtls-diagnostics {
  display: grid;
  gap: 12px;
  padding: 16px;
  border-top: 1px solid var(--color-border-danger);
  background: var(--color-bg-danger)
}

.mtls-diagnostics-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px
}

.mtls-diagnostics-heading>div {
  display: grid;
  gap: 2px
}

.mtls-diagnostics-heading strong {
  color: var(--color-danger);
  font-size: 13px
}

.mtls-diagnostics-heading span {
  color: var(--muted);
  font-size: 11px
}

.mtls-diagnostics-heading .ant-btn {
  flex: 0 0 auto
}

.mtls-diagnostics-conclusion {
  margin: 0;
  padding: 9px 11px;
  border-left: 3px solid var(--color-border-danger);
  background: var(--color-bg-container);
  color: var(--color-danger);
  font-size: 12px;
  line-height: 1.55
}

.mtls-diagnostics-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 18px;
  margin: 0
}

.mtls-diagnostics-grid div {
  min-width: 0
}

.mtls-diagnostics-grid dt {
  color: var(--muted);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .04em
}

.mtls-diagnostics-grid dd {
  margin: 3px 0 0;
  font-size: 11px;
  overflow-wrap: anywhere
}

.mtls-diagnostics-grid code {
  white-space: normal;
  word-break: break-all
}

.mtls-diagnostics-wide {
  grid-column: 1/-1
}

.mtls-response-preview {
  display: grid;
  gap: 5px
}

.mtls-response-preview>span {
  color: var(--muted);
  font-size: 11px
}

.mtls-response-preview pre {
  max-height: 190px;
  margin: 0;
  padding: 11px;
  border: 1px solid var(--color-border-danger);
  border-radius: 4px;
  background: var(--color-bg-container);
  color: var(--color-danger);
  font-size: 11px;
  line-height: 1.5;
  white-space: pre-wrap;
  word-break: break-word;
  overflow: auto;
  user-select: text
}

.connection-operation-result {
  display: grid;
  gap: 3px;
  margin-top: 18px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 6px;
  font-size: 12px
}

.connection-operation-result[hidden] {
  display: none
}

.connection-operation-result strong {
  font-size: 13px
}

.connection-operation-result span {
  line-height: 1.5
}

.connection-operation-success {
  border-color: var(--color-border-success);
  background: var(--color-bg-success);
  color: var(--color-success)
}

.connection-operation-danger {
  border-color: var(--color-border-danger);
  background: var(--color-bg-danger);
  color: var(--color-danger)
}

.connection-operation-info {
  background: var(--color-bg-info);
  color: var(--text)
}

.certificate-readable-name {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 3px 8px;
  max-width: 100%
}

.certificate-readable-primary,
.certificate-readable-organization {
  overflow-wrap: anywhere
}

.certificate-readable-organization {
  color: var(--muted);
  font-size: .9em;
  font-weight: 500
}

.certificate-readable-organization::before {
  content: "·";
  margin-right: 8px;
  color: var(--muted)
}

.certificate-raw-details {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid var(--line)
}

.certificate-raw-details>summary {
  cursor: pointer;
  color: var(--muted);
  font-size: 12px;
  font-weight: 650
}

.certificate-raw-values {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 7px 12px;
  margin: 12px 0 0
}

.certificate-raw-values dt {
  color: var(--muted);
  font-size: 11px
}

.certificate-raw-values dd {
  margin: 0;
  font-size: 11px;
  line-height: 1.55;
  overflow-wrap: anywhere
}

.mtls-replacement-panel {
  display: grid;
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--color-border-info);
  border-radius: 7px;
  background: var(--color-bg-info)
}

.mtls-replacement-panel[hidden] {
  display: none
}

.mtls-replacement-intro {
  display: grid;
  gap: 3px
}

.mtls-replacement-intro strong {
  font-size: 13px
}

.mtls-replacement-intro span {
  color: var(--muted);
  font-size: 12px
}

.mtls-replacement-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px
}

.mtls-replacement-grid .connection-secret-field {
  display: grid;
  min-width: 0;
  align-content: start;
  gap: 7px
}

.mtls-selected-file {
  min-height: 18px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  overflow-wrap: anywhere
}

.mtls-danger-zone {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 8px;
  padding: 13px 0 0;
  border-top: 1px solid var(--color-border-danger)
}

.mtls-danger-zone>div {
  display: grid;
  gap: 2px
}

.mtls-danger-zone strong {
  color: var(--color-danger);
  font-size: 12px
}

.mtls-danger-zone span {
  color: var(--muted);
  font-size: 11px
}

.connection-field-label {
  color: var(--color-text);
  font-size: 13px;
  font-weight: 700
}

.connection-credential-label,
.connection-mtls-password-input span {
  color: var(--color-text-secondary);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.35
}

.connection-file-control {
  position: relative;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 42px;
  padding: 8px 16px;
  border: 1px solid var(--color-border-interactive);
  border-radius: 4px;
  background: var(--color-bg-container);
  color: var(--color-primary) !important;
  font-size: 13px !important;
  font-weight: 700;
  cursor: pointer;
  overflow: hidden
}

.connection-file-control:hover {
  border-color: var(--color-primary);
  background: var(--color-bg-info)
}

.connection-file-control:focus-within {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px
}

.connection-file-control.field-error {
  border-color: var(--danger);
  background: var(--color-bg-danger)
}

.connection-file-control .ant-input {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100%;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 0;
  cursor: pointer
}

.connection-mtls-password-input {
  display: grid !important;
  min-width: 0;
  gap: 7px
}

.connection-mtls-password-input span {
  display: block;
  margin: 0
}

.connection-mtls-password-input .ant-input {
  display: block;
  width: 100%;
  min-width: 0;
  height: 42px;
  margin: 0
}

.connection-field-error {
  display: block;
  color: var(--danger);
  font-size: 12px;
  line-height: 1.45
}

@media(max-width:720px) {

  .connection-card-grid,
  .connection-detail-grid,
  .connection-evidence,
  .connection-form-grid,
  .mtls-credential-grid,
  .mtls-validation-steps,
  .mtls-replacement-grid,
  .mtls-diagnostics-grid {
    grid-template-columns: 1fr
  }

  .mtls-diagnostics-wide {
    grid-column: auto
  }

  .mtls-validation-steps .mtls-validation-connection {
    grid-template-columns: 22px minmax(0, 1fr)
  }

  .mtls-validate-button {
    grid-column: 2;
    grid-row: 2;
    justify-self: start;
    margin: 6px 0 0
  }

  .connection-file-control {
    width: 100%
  }

  .mtls-credential-heading,
  .mtls-danger-zone,
  .mtls-diagnostics-heading {
    align-items: stretch;
    flex-direction: column
  }

  .connection-detail-actions,
  .connection-editor-actions {
    align-items: stretch;
    flex-direction: column
  }

  .connection-detail-actions .ant-btn,
  .connection-editor-actions .ant-btn,
  .mtls-diagnostics-heading .ant-btn {
    width: 100%
  }
}

#toast {
  z-index: 100
}

.organization-filters {
  display: grid;
  grid-template-columns: minmax(220px, 2fr) minmax(150px, 1fr) minmax(150px, 1fr);
  gap: 10px;
  margin: 0 0 14px
}

.organization-filters label {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 12px
}

.organization-filters .ant-input,
.organization-filters .ant-select {
  width: 100%
}

.organization-list {
  padding: 0
}

.organization-list .ant-table {
  min-width: 820px
}

.organization-list .ant-table-cell,
.organization-list .ant-table-cell {
  padding: 12px
}

.organization-actions {
  display: flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap
}

.credential-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  flex-wrap: wrap
}

.list-recovery>p {
  margin: 0 0 16px
}

#page-settings,
#settings-body {
  max-width: 100%;
  min-width: 0
}

#page-settings .toolbar>:is(.actions, .toolbar-actions) {
  display: flex;
  max-width: 100%;
  min-width: 0;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap
}

#page-settings .toolbar>.toolbar-actions .ant-input {
  max-width: 100%;
  min-width: 0
}

.organization-form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr))
}

.organization-role-fieldset {
  grid-column: 1/-1;
  display: flex;
  gap: 18px;
  margin: 0;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-radius: 4px
}

.organization-role-fieldset legend {
  padding: 0 5px;
  color: var(--muted);
  font-size: 13px
}

.organization-role-fieldset label {
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--text)
}

.danger {
  background: var(--color-danger);
  border-color: var(--color-border-danger);
  color: var(--color-text-on-solid);
  font-weight: 650
}

.bad-text {
  color: var(--danger)
}

.approval-field-error {
  display: block;
  color: var(--danger);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4
}

.form-grid label.field-error {
  color: var(--danger)
}

.issuance-list {
  min-width: 900px
}

.issuance-progress {
  display: grid;
  gap: 3px;
  justify-items: start
}

.issuance-progress-count {
  color: var(--text);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap
}

.issuance-progress-count b {
  font-size: 14px
}

.issuance-problem-count {
  color: var(--danger);
  font-size: 11px;
  font-weight: 650;
  line-height: 1.35;
  white-space: nowrap
}

.issuance-projected-value {
  display: grid;
  gap: 3px;
  min-height: 34px;
  align-content: center
}

.issuance-projected-value strong {
  overflow-wrap: anywhere;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 13px
}

.issuance-projected-value span {
  color: var(--muted);
  font-size: 11px
}

.issuance-toolbar-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end
}

.issuance-list-toolbar {
  justify-content: flex-end
}

.issuance-list-toolbar .issuance-toolbar-actions>.ant-btn {
  height: 32px;
  padding-inline: 14px;
  font-size: 13px
}

.issuance-show-archived {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 32px;
  color: var(--muted);
  font-size: 12px;
  user-select: none
}

.issuance-row-archived>.ant-table-cell {
  background: var(--color-bg-info);
  color: var(--color-text-secondary)
}

.issuance-row-archived b {
  color: var(--color-text-secondary);
  font-weight: 600
}

.issuance-archived-pill {
  margin-left: 8px;
  vertical-align: middle
}

.issuance-report-title .issuance-archived-pill {
  margin-left: 0;
  font-size: 11px
}

.issuance-report-actions .row-actions-trigger {
  flex: 0 0 32px
}

.issuance-row-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px
}

.issuance-delete-modal .modal-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end
}

.issuance-delete-modal .modal-actions .ant-btn {
  min-width: 96px
}

/* 行内溢出菜单：⋯ 触发 + 下拉项 */
.row-actions-trigger {
  line-height: 1
}

.issuance-sample-picker {
  margin-top: 18px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--panel2)
}

.issuance-sample-picker h3 {
  margin: 0 0 10px;
  color: var(--color-text);
  font-size: 14px
}

.issuance-sample-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  max-height: min(52vh, 420px);
  overflow: auto
}

.issuance-sample-actions .ant-btn {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  width: 100%;
  height: auto;
  min-height: 52px;
  align-items: center;
  gap: 10px;
  padding: 8px 11px;
  text-align: left;
  white-space: normal
}

.issuance-sample-name {
  display: grid;
  gap: 3px;
  min-width: 0;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.45;
  overflow-wrap: anywhere
}

.issuance-sample-name b {
  color: var(--color-text);
  font-size: 12px
}

.issuance-sample-name small {
  color: var(--color-text-secondary);
  font-size: 10px;
  font-weight: 500;
  line-height: 1.4
}

.issuance-sample-code {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 6px;
  border: 1px solid var(--color-border-info);
  border-radius: 3px;
  background: var(--panel);
  color: var(--color-text-secondary);
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap
}

.issuance-import-field {
  display: grid;
  gap: 6px;
  margin-top: 12px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 650
}

.issuance-import-error {
  margin-top: 14px
}

.issuance-import-error-details p {
  margin: 0 0 8px
}

.issuance-import-error-details dl {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: 4px 10px;
  margin: 0
}

.issuance-import-error-details dt {
  color: var(--color-text-secondary)
}

.issuance-import-error-details dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere
}

.issuance-file-picker {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--panel2)
}

.issuance-file-picker .ant-btn {
  flex: 0 0 auto
}

.issuance-file-name {
  min-width: 0;
  overflow: hidden;
  color: var(--text);
  font-size: 12px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap
}

.issuance-file-name.hint {
  color: var(--muted)
}

.list-filters {
  display: flex;
  align-items: end;
  gap: 10px;
  flex-wrap: wrap;
  margin: 0 0 12px;
  padding: 12px 14px;
  background: var(--panel2);
  border: 1px solid var(--line);
  border-radius: 8px
}

.list-filters label {
  display: grid;
  gap: 5px;
  min-width: 150px;
  color: var(--muted);
  font-size: 12px
}

.list-filters .ant-input,
.list-filters .ant-select {
  width: 100%
}

.pagination-actions {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 48px;
  padding: 10px 0
}

.pagination-actions>.ant-btn {
  min-width: 140px
}

.pagination-error,
.pagination-cap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  width: 100%;
  margin: 0
}

.pagination-error .ant-btn,
.pagination-cap .ant-btn {
  margin-left: 4px
}

.operational-list .ant-table {
  min-width: 880px
}

.archive-record-list .ant-table,
.audit-record-list .ant-table {
  min-width: 0
}

.operational-list .ant-table-cell,
.operational-list .ant-table-cell {
  white-space: normal;
  min-width: 88px
}

.operational-list .ant-table-tbody .ant-table-cell {
  vertical-align: middle
}

.operational-list .ant-table-cell:first-child,
.operational-list .ant-table-cell:first-child {
  min-width: 110px
}

.archive-tabs {
  margin-bottom: 0
}

.archive-list-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 360px);
  align-items: end;
  gap: 24px;
  padding: 20px 0 16px
}

.archive-list-intro {
  max-width: 720px;
  margin: 0;
  line-height: 1.65
}

.archive-search {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(112px, 1fr) minmax(0, 3fr);
  gap: var(--space-2);
  min-width: 0;
  color: var(--muted);
  font-size: 12px
}

.archive-search label[for="archive-search-input"] {
  grid-column: 2;
  grid-row: 1
}

.archive-search .ant-select,
.archive-search .ant-input-affix-wrapper {
  min-width: 0;
  width: 100%;
  grid-row: 2
}

.archive-search .ant-input {
  width: 100%
}

.archive-import-modal .archive-import-reason-field {
  padding-bottom: var(--space-6)
}

.submission-selection-tools {
  margin-bottom: var(--space-3)
}

.archive-import-channel-field {
  display: grid;
  gap: var(--space-1);
  min-width: 0
}

.archive-import-channel-field > .toolbar {
  margin-bottom: 0
}

.submission-choice-list {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
  max-height: calc(var(--space-8) * 8);
  overflow-y: auto
}

.submission-choice-list .ant-radio-wrapper {
  display: flex;
  min-width: 0;
  margin-inline-end: 0
}

.submission-choice-list .ant-radio-wrapper > span:last-child {
  min-width: 0;
  overflow-wrap: anywhere
}

.archive-list-primary {
  display: grid;
  gap: 3px;
  min-width: 0
}

.archive-previous-stage {
  display: grid;
  gap: var(--space-4);
}

.archive-previous-stage-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.archive-table-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.archive-list-primary>span {
  overflow-wrap: anywhere
}

@media(max-width:620px) {
  .archive-xml-type {
    max-width: 130px
  }

  .connection-form-grid {
    grid-template-columns: 1fr
  }

  .organization-filters,
  .organization-form-grid {
    grid-template-columns: 1fr
  }

  .issuance-sample-actions {
    grid-template-columns: 1fr
  }

  .issuance-sample-actions .ant-btn {
    min-height: 44px
  }

  .reference-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px
  }

  .list-filters {
    align-items: stretch
  }

  .list-filters label {
    flex: 1 1 100%;
    min-width: 0
  }

  .archive-list-toolbar {
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 12px;
    padding: 16px 0 12px
  }

  .pagination-error,
  .pagination-cap {
    align-items: stretch;
    flex-direction: column
  }

  .pagination-error .ant-btn,
  .pagination-cap .ant-btn {
    width: 100%;
    margin-left: 0
  }
}

/* 主题切换只触发语义令牌变化，页面组件不再维护独立暗色覆盖。 */
.theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-width: 104px;
  white-space: nowrap
}

body,
.login-view,
.login-card,
.card {
  transition: background-color .18s ease, border-color .18s ease, color .18s ease
}

@media(max-width:560px) {
  .issuance-setup-wizard {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 12px;
    overflow: visible
  }

  .issuance-setup-wizard .wizard-step {
    width: 100%;
    min-width: 0;
    padding: 4px
  }

  .issuance-setup-wizard .wizard-line {
    display: none
  }

  .issuance-inline-actions>.ant-btn {
    width: 100%;
    height: auto;
    min-height: 32px;
    white-space: normal
  }

  .issuance-inline-actions>a {
    width: 100%;
    white-space: normal;
    text-align: center
  }

  #page-settings .toolbar>:is(.actions, .toolbar-actions) {
    width: 100%
  }

  #page-settings .toolbar>:is(.actions, .toolbar-actions)>.ant-btn {
    width: 100%;
    height: auto;
    min-height: 32px;
    white-space: normal
  }

  #page-settings .toolbar>.toolbar-actions .ant-input {
    width: 100%
  }

  .modal-actions {
    margin: 20px -18px 0;
    padding: 14px 18px 18px
  }

  .issuance-create-heading {
    padding-right: 38px
  }

  .issuance-create-heading h2 {
    font-size: 20px
  }

  .issuance-create-form {
    margin-top: 21px
  }

  .issuance-create-modal .modal-actions {
    margin: 22px -20px 0;
    padding: 14px 20px 18px
  }

  .issuance-create-modal .modal-actions .ant-btn {
    flex: 1;
    min-width: 0
  }

  .api-key-created h2 {
    font-size: 20px
  }

  .api-key-created-meta {
    grid-template-columns: 1fr;
    gap: 3px
  }

  .api-key-secret code {
    padding: 15px;
    font-size: 13px
  }

  .theme-toggle {
    min-width: 40px;
    padding-inline: 10px
  }
}

@media(prefers-reduced-motion:reduce) {

  body,
  .login-view,
  .login-card,
  .card {
    transition: none
  }

  .issuance-activation-result {
    animation: none
  }
}

/* 标准包详情：首屏并入 resource-detail card；规则证据表保持独立 card */
.standards-detail-title {
  margin: 0
}

.standards-detail-hash {
  max-width: 100%;
  margin: 4px 0 0;
  overflow-wrap: anywhere
}

.standards-detail-current .standards-detail-summary {
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr))
}

.standards-detail-current .standards-detail-summary b {
  font-size: 18px;
  font-variant-numeric: tabular-nums
}

.standards-detail-current .standards-detail-summary>div:last-child b {
  font-size: 13px
}

.standards-evidence {
  padding: 0;
  overflow: hidden
}

.standards-evidence>.toolbar {
  align-items: center;
  margin: 0;
  padding: 18px 20px;
  border-bottom: 1px solid var(--line)
}

.standards-evidence>.toolbar h2 {
  margin: 0;
  font-size: 20px
}

.standards-status-filter {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--muted);
  font-size: 12px;
  white-space: nowrap
}

.standards-status-filter .ant-select {
  width: 160px
}

.standards-evidence>.table-wrap {
  border-radius: 0
}

@media(max-width:640px) {
  .standards-evidence>.toolbar {
    align-items: stretch;
    flex-direction: column
  }

  .standards-status-filter {
    justify-content: space-between
  }

  .standards-status-filter .ant-select {
    min-width: 0;
    width: 180px
  }
}

/* MES API integration lab */
.mes-api-demo {
  display: grid;
  gap: 24px;
  max-width: 1240px;
  animation: mes-demo-enter .18s ease-out
}

.mes-demo-intro {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 0 0 20px;
  border-bottom: 1px solid var(--line)
}

.mes-demo-intro-copy {
  max-width: 760px;
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.65
}

.demo-list {
  display: grid;
  gap: 16px
}

.demo-list-intro {
  display: grid;
  gap: 6px;
  max-width: 760px
}

.demo-list-description {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.65
}

.demo-list-intro .hint {
  margin: 0
}

.mes-demo-workflow {
  padding: 0 4px
}

.mes-demo-section {
  min-width: 0;
  padding: 24px 0;
  border-top: 1px solid var(--line)
}

.mes-demo-section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px
}

.mes-demo-section-heading>div:first-child {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  gap: 12px
}

.mes-demo-section-heading svg {
  flex: 0 0 auto;
  margin-top: 2px;
  color: var(--accent)
}

.mes-demo-section-heading h2 {
  margin: 0 0 4px;
  font-size: 18px
}

.mes-demo-section-heading p {
  max-width: 760px;
  margin: 0;
  color: var(--muted)
}

.mes-demo-package-stack {
  display: grid;
  gap: 16px;
  min-width: 0
}

.mes-demo-package-hint {
  align-items: flex-start
}

.mes-demo-package-hint .ant-alert-action {
  margin-inline-start: 16px;
  align-self: center
}

.mes-demo-package-stack>.ant-upload-wrapper {
  min-width: 0
}

.mes-demo-package-stack>.ant-upload-wrapper .ant-upload-drag {
  min-height: 180px;
  border-radius: 6px;
  background: var(--panel2)
}

.mes-demo-package-stack>.ant-upload-wrapper .ant-upload-drag .ant-upload-drag-container {
  padding-inline: 16px
}

.mes-demo-package-stack>.ant-upload-wrapper .ant-upload-text,
.mes-demo-package-stack>.ant-upload-wrapper .ant-upload-hint {
  max-width: 42em;
  margin-inline: auto;
  overflow-wrap: anywhere
}

.mes-demo-upload-icon {
  width: 30px;
  height: 30px;
  color: var(--accent)
}

.mes-demo-package-selection {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel2)
}

.mes-demo-package-selection-icon {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  color: var(--accent)
}

.mes-demo-package-selection-label {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  color: var(--text);
  font-size: 13px;
  line-height: 1.4;
  white-space: nowrap;
  text-overflow: ellipsis
}

.mes-demo-package-selection-clear {
  flex: 0 0 auto;
  color: var(--muted)
}

.mes-demo-package-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-width: 0
}

.mes-demo-package-actions>.ant-upload {
  min-width: 0
}

.mes-demo-package-meta {
  min-width: 0;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel2);
  overflow: hidden
}

.mes-demo-package-meta .ant-descriptions-view {
  overflow: hidden
}

.mes-demo-package-meta .ant-descriptions-item {
  vertical-align: top
}

.mes-demo-package-meta .ant-descriptions-item-container {
  flex-wrap: wrap;
  gap: 4px 8px
}

.mes-demo-package-meta .ant-descriptions-item-label,
.mes-demo-package-meta .ant-descriptions-item-content {
  min-width: 0;
  overflow-wrap: anywhere
}

.mes-demo-package-meta code,
.mes-demo-field-label code {
  font-family: var(--font-mono);
  font-size: 11px;
  overflow-wrap: anywhere
}

.mes-demo-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 20px
}

.mes-demo-form-grid .ant-form-item:first-child {
  grid-column: 1/-1
}

.mes-demo-form-grid .ant-input,
.mes-demo-form-grid .ant-input-affix-wrapper,
.mes-demo-form-grid .ant-select,
.mes-demo-form-grid .ant-input-number {
  width: 100%
}

.mes-demo-empty-fields {
  margin-bottom: 20px
}

.mes-demo-vehicle-list {
  display: grid;
  gap: 16px
}

.mes-demo-vehicle {
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel)
}

.mes-demo-vehicle-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px
}

.mes-demo-vehicle-heading>div {
  display: flex;
  align-items: center;
  gap: 10px
}

.mes-demo-vehicle-heading h3 {
  margin: 0;
  font-size: 16px
}

.mes-demo-vehicle-index {
  display: grid;
  width: 34px;
  height: 28px;
  place-items: center;
  border-radius: 4px;
  background: var(--panel2);
  color: var(--muted);
  font: 600 11px/1 var(--font-mono)
}

.mes-demo-vehicle-core {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0 16px
}

.mes-demo-dynamic-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 16px;
  padding-top: 18px;
  border-top: 1px solid var(--line)
}

.mes-demo-field-label {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap
}

.mes-demo-field-label>span {
  font-weight: 500
}

.mes-demo-field-label code {
  max-width: 100%;
  color: var(--muted)
}

.mes-demo-json-input {
  font-family: var(--font-mono) !important;
  font-size: 12px !important
}

.mes-demo-add-vehicle {
  justify-self: start
}

.mes-demo-submit-bar {
  position: sticky;
  bottom: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 24px;
  padding: 16px 0;
  border-top: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 94%, transparent);
  backdrop-filter: blur(8px)
}

.mes-demo-submit-bar>span {
  max-width: 720px;
  color: var(--muted);
  font-size: 12px
}

.mes-demo-result {
  animation: mes-demo-result-enter .2s ease-out
}

.mes-demo-result-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 20px;
  border: 1px solid var(--line);
  border-radius: 6px;
  overflow: hidden
}

.mes-demo-result-summary>div {
  display: grid;
  gap: 6px;
  min-width: 0;
  padding: 14px 16px;
  border-right: 1px solid var(--line)
}

.mes-demo-result-summary>div:last-child {
  border-right: 0
}

.mes-demo-result-summary span {
  color: var(--muted);
  font-size: 12px
}

.mes-demo-result-summary strong {
  min-width: 0;
  overflow-wrap: anywhere
}

.mes-demo-result-actions {
  display: flex;
  gap: 8px;
  margin-top: 16px;
  flex-wrap: wrap
}

.mes-demo-response-json {
  max-height: 420px;
  margin: 0;
  padding: 16px;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--panel2);
  font: 12px/1.6 var(--font-mono)
}

@keyframes mes-demo-enter {
  from {
    opacity: 0;
    transform: translateY(4px)
  }

  to {
    opacity: 1;
    transform: translateY(0)
  }
}

@keyframes mes-demo-result-enter {
  from {
    opacity: 0;
    transform: translateY(8px)
  }

  to {
    opacity: 1;
    transform: translateY(0)
  }
}

@media(max-width:900px) {
  .mes-demo-vehicle-core {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

  .mes-demo-result-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

  .mes-demo-result-summary>div:nth-child(2) {
    border-right: 0
  }

  .mes-demo-result-summary>div:nth-child(-n+2) {
    border-bottom: 1px solid var(--line)
  }
}

@media(max-width:640px) {

  .mes-demo-intro,
  .mes-demo-section-heading,
  .mes-demo-submit-bar {
    align-items: stretch;
    flex-direction: column
  }

  .mes-demo-intro .ant-space {
    width: 100%
  }

  .mes-demo-intro .ant-space-item,
  .mes-demo-intro .ant-btn,
  .mes-demo-submit-bar .ant-btn {
    width: 100%
  }

  .mes-demo-package-actions>.ant-btn,
  .mes-demo-package-actions .ant-upload {
    flex: 1 1 auto;
    min-width: 0
  }

  .mes-demo-package-actions .ant-upload .ant-btn {
    width: 100%
  }

  .mes-demo-package-hint {
    flex-direction: column
  }

  .mes-demo-package-hint .ant-alert-action {
    margin-inline-start: 0;
    margin-top: 8px;
    align-self: flex-start
  }

  .mes-demo-form-grid,
  .mes-demo-vehicle-core,
  .mes-demo-dynamic-fields,
  .mes-demo-result-summary {
    grid-template-columns: 1fr
  }

  .mes-demo-form-grid .ant-form-item:first-child {
    grid-column: auto
  }

  .mes-demo-vehicle {
    padding: 16px
  }

  .mes-demo-result-summary>div,
  .mes-demo-result-summary>div:nth-child(2) {
    border-right: 0;
    border-bottom: 1px solid var(--line)
  }

  .mes-demo-result-summary>div:last-child {
    border-bottom: 0
  }
}

@media(prefers-reduced-motion:reduce) {

  .mes-api-demo,
  .mes-demo-result {
    animation: none
  }
}

/* 设置页：表单、按钮组与文档开关采用统一的 8/16px 操作节奏。 */
.mes-docs-card {
  margin-top: 14px
}

.mes-docs-settings {
  display: grid;
  gap: 20px
}

.mes-docs-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  color: var(--text);
  font-size: 13px;
  line-height: 1.5
}

.mes-docs-actions,
.settings-user-actions,
.settings-user-modal-actions {
  display: flex;
  align-items: center;
  gap: 8px
}

.mes-docs-actions {
  flex-wrap: wrap
}

.settings-user-actions {
  white-space: nowrap
}

.settings-user-modal .settings-user-form {
  gap: 16px
}

.settings-user-modal .settings-user-form label {
  gap: 6px
}

.settings-field-help {
  display: block;
  margin-top: 0
}

.settings-user-modal-actions {
  justify-content: flex-end
}

@media(max-width:560px) {
  .mes-docs-actions>.ant-btn {
    flex: 1;
    min-width: 0
  }

  .settings-user-modal-actions>.ant-btn {
    flex: 1;
    min-width: 0
  }
}

/* 运营仪表盘：行动优先、低装饰、可扫描的制造业工作台。 */
/* 快速开始：用一条线性业务路径代替仪表盘式卡片堆叠。 */
.quick-start-shell {
  --quick-ink: var(--color-text);
  --quick-line: var(--color-border);
  --quick-accent: var(--color-primary);
  max-width: 1380px;
  margin: 0 auto;
  padding-bottom: 28px
}

.quick-start-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: 64px;
  align-items: end;
  padding: 28px 0 44px;
  border-bottom: 1px solid var(--quick-line)
}

.quick-start-kicker {
  display: block;
  margin-bottom: 13px;
  color: var(--color-primary);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .08em
}

.quick-start-intro h2 {
  max-width: 720px;
  margin: 0;
  color: var(--quick-ink);
  font-size: 52px;
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: 0;
  text-wrap: balance
}

.quick-start-intro-copy {
  display: grid;
  gap: 22px;
  padding-bottom: 6px
}

.quick-start-intro-copy>p {
  max-width: 530px;
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 15px;
  line-height: 1.75
}

.quick-start-intro-copy>span {
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--color-text-secondary);
  font-size: 11px
}

.quick-start-intro-copy>span b {
  color: var(--quick-ink);
  font-size: 25px;
  line-height: 1
}

.quick-start-intro-copy>span i {
  width: 1px;
  height: 18px;
  margin: 0 3px;
  background: var(--quick-line)
}

.quick-start-route {
  display: grid
}

.quick-start-step {
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr);
  border-bottom: 1px solid var(--quick-line);
  animation: quick-start-in .18s both;
  animation-delay: calc(var(--quick-start-order) * 40ms)
}

@keyframes quick-start-in {
  from {
    opacity: 0;
    transform: translateY(12px)
  }

  to {
    opacity: 1;
    transform: none
  }
}

.quick-start-step-number {
  position: relative;
  display: flex;
  justify-content: center;
  padding-top: 50px
}

.quick-start-step-number>span {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 1px solid var(--color-border-interactive);
  border-radius: 50%;
  background: var(--panel);
  color: var(--quick-accent);
  font: 500 12px/1 var(--font-mono);
  font-variant-numeric: tabular-nums;
  letter-spacing: .06em;
  transition: color .18s, border-color .18s, background .18s, transform .18s
}

.quick-start-step-number>i {
  position: absolute;
  top: 98px;
  bottom: -1px;
  left: 50%;
  width: 1px;
  background: var(--quick-line)
}

.quick-start-step:last-child .quick-start-step-number>i {
  display: none
}

.quick-start-step:hover .quick-start-step-number>span {
  transform: translateY(-2px);
  border-color: var(--quick-accent);
  background: var(--color-bg-info);
  color: var(--color-primary-hover)
}

.quick-start-step-body {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, .7fr);
  grid-template-rows: auto auto 1fr;
  column-gap: 64px;
  padding: var(--space-12) 0 var(--space-12) var(--space-4)
}

.quick-start-eyebrow {
  grid-column: 1/3;
  display: block;
  margin-bottom: 8px;
  color: var(--color-text-secondary);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .04em
}

.quick-start-step h2 {
  grid-column: 1;
  margin: 0;
  color: var(--quick-ink);
  font-size: 25px;
  line-height: 1.25;
  letter-spacing: -.02em
}

.quick-start-step p {
  grid-column: 1;
  max-width: 560px;
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.75
}

.quick-start-step ul {
  grid-column: 2;
  grid-row: 2/4;
  display: grid;
  align-content: start;
  gap: 13px;
  margin: 2px 0 0;
  padding: 0;
  list-style: none
}

.quick-start-step li {
  display: grid;
  grid-template-columns: 17px 1fr;
  gap: 9px;
  align-items: start;
  color: var(--color-text-secondary);
  font-size: 12px;
  line-height: 1.55
}

.quick-start-step li i {
  width: 6px;
  height: 6px;
  margin-top: 6px;
  border-radius: 50%;
  background: var(--color-primary);
  box-shadow: 0 0 0 4px var(--color-bg-info)
}

.quick-start-actions {
  grid-column: 1;
  display: flex;
  align-items: center;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 25px
}

.quick-start-actions .ant-btn,
.quick-start-finish .ant-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  min-height: 38px
}

.quick-start-actions .ant-btn [aria-hidden="true"],
.quick-start-finish .ant-btn [aria-hidden="true"] {
  transition: transform .16s
}

.quick-start-actions .ant-btn:hover [aria-hidden="true"],
.quick-start-finish .ant-btn:hover [aria-hidden="true"] {
  transform: translateX(3px)
}

.quick-start-admin-note {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 11px;
  border-left: 2px solid var(--color-border-warning);
  background: var(--color-bg-warning);
  color: var(--color-warning);
  font-size: 11px;
  font-weight: 500
}

.quick-start-scenarios {
  display: grid;
  gap: 24px;
  padding: 48px 0;
  border-bottom: 1px solid var(--quick-line)
}

.quick-start-scenarios > * {
  min-width: 0;
  max-width: 100%
}

.quick-start-scenarios-heading {
  display: grid;
  grid-template-columns: minmax(280px, .85fr) minmax(320px, 1.15fr);
  align-items: end;
  gap: 64px
}

.quick-start-scenarios-heading span,
.quick-start-scenario-copy>span {
  color: var(--color-primary);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .04em
}

.quick-start-scenarios-heading h2 {
  margin: 7px 0 0;
  color: var(--quick-ink);
  font-size: 25px;
  line-height: 1.3
}

.quick-start-scenarios-heading>p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 13px;
  line-height: 1.75
}

.quick-start-scenario-tabs>.ant-tabs-nav {
  margin-bottom: 18px
}

.quick-start-scenario {
  display: grid;
  gap: var(--space-6);
  padding: var(--space-2) 0 0;
  min-width: 0
}

.quick-start-scenario-copy {
  display: grid;
  grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
  gap: 5px 48px
}

.quick-start-scenario-copy>span {
  grid-column: 1/3
}

.quick-start-scenario-copy h3 {
  margin: 4px 0 0;
  color: var(--quick-ink);
  font-size: 20px;
  line-height: 1.4
}

.quick-start-scenario-copy p {
  margin: 4px 0 0;
  color: var(--color-text-secondary);
  font-size: 12px;
  line-height: 1.75
}

.quick-start-scenario-flow {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  gap: var(--space-6);
  margin: 0;
  padding: 0;
  list-style: none
}

.quick-start-scenario-flow li {
  position: relative;
  display: grid;
  align-content: start;
  gap: 8px;
  min-width: 0;
  padding: var(--space-4);
  border-top: 2px solid var(--color-border-interactive);
  background: var(--color-bg-container)
}

.quick-start-scenario-flow li:not(:last-child)::after {
  position: absolute;
  z-index: 1;
  top: 50%;
  right: -18px;
  width: 10px;
  color: var(--color-text-secondary);
  content: "→";
  transform: translateY(-50%)
}

.quick-start-scenario-flow li>span {
  color: var(--color-primary);
  font: 500 12px/1.4 var(--font-mono);
  font-variant-numeric: tabular-nums
}

.quick-start-scenario-flow strong {
  color: var(--quick-ink);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.55;
  overflow-wrap: anywhere
}

.quick-start-scenario-action {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px
}

.quick-start-scenario-action small {
  color: var(--color-text-secondary);
  font-size: 11px
}

.quick-start-scenario-action .ant-btn {
  display: inline-flex;
  align-items: center;
  gap: 14px
}

.quick-start-playbook {
  display: grid;
  gap: 24px;
  padding: 48px 0 42px;
  border-bottom: 1px solid var(--quick-line)
}

.quick-start-playbook-intro,
.quick-start-guidance-heading {
  display: grid;
  grid-template-columns: minmax(280px, .85fr) minmax(320px, 1.15fr);
  align-items: end;
  gap: 64px
}

.quick-start-playbook-intro>div>span,
.quick-start-guidance-heading>div>span,
.quick-start-mapping-heading>span {
  color: var(--color-primary);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .04em
}

.quick-start-playbook-intro h2,
.quick-start-guidance-heading h2 {
  margin: 7px 0 0;
  color: var(--quick-ink);
  font-size: 25px;
  line-height: 1.3
}

.quick-start-playbook-intro>p,
.quick-start-guidance-heading>p {
  max-width: 700px;
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 13px;
  line-height: 1.75
}

.quick-start-playbook-alert.ant-alert {
  border-radius: 4px
}

.quick-start-playbook-alert .ant-alert-description {
  max-width: 1080px;
  line-height: 1.7
}

.quick-start-playbook-tabs>.ant-tabs-nav {
  margin-bottom: 0
}

.quick-start-playbook-tabs>.ant-tabs-content-holder {
  padding-top: 26px
}

.quick-start-playbook-path {
  display: grid;
  grid-template-columns: minmax(280px, .78fr) minmax(0, 1.22fr);
  align-items: start;
  gap: 48px
}

.quick-start-playbook-steps,
.quick-start-mapping-list {
  margin: 0;
  padding: 0;
  list-style: none
}

.quick-start-playbook-steps {
  display: grid
}

.quick-start-playbook-steps>li {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 14px;
  padding: 0 0 22px;
  border-bottom: 1px solid var(--quick-line)
}

.quick-start-playbook-steps>li+li {
  padding-top: 22px
}

.quick-start-playbook-steps>li>span {
  padding-top: 2px;
  color: var(--color-primary);
  font: 600 11px/1.5 var(--font-mono);
  font-variant-numeric: tabular-nums
}

.quick-start-playbook-steps h3 {
  margin: 0;
  color: var(--quick-ink);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5
}

.quick-start-playbook-steps p {
  margin: 6px 0 0;
  color: var(--color-text-secondary);
  font-size: 12px;
  line-height: 1.7
}

.quick-start-mapping-example {
  min-width: 0;
  border: 1px solid var(--quick-line);
  border-radius: 6px;
  background: var(--panel);
  overflow: hidden
}

.quick-start-mapping-heading {
  padding: 20px 22px 18px;
  border-bottom: 1px solid var(--quick-line)
}

.quick-start-mapping-heading h3 {
  margin: 7px 0 5px;
  color: var(--quick-ink);
  font-size: 17px;
  line-height: 1.45
}

.quick-start-mapping-heading p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 12px;
  line-height: 1.65
}

.quick-start-mapping-columns,
.quick-start-mapping-list>li {
  display: grid;
  grid-template-columns: minmax(150px, .75fr) minmax(190px, .95fr) minmax(220px, 1.3fr);
  gap: 18px
}

.quick-start-mapping-columns {
  padding: 9px 18px;
  border-bottom: 1px solid var(--quick-line);
  background: var(--panel2);
  color: var(--color-text-secondary);
  font-size: 12px;
  font-weight: 600
}

.quick-start-mapping-list>li {
  align-items: start;
  padding: 15px 18px;
  border-bottom: 1px solid var(--quick-line)
}

.quick-start-mapping-list>li:last-child {
  border-bottom: 0
}

.quick-start-mapping-list strong {
  color: var(--quick-ink);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.6
}

.quick-start-mapping-targets {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  gap: 5px;
  flex-wrap: wrap
}

.quick-start-mapping-targets code {
  max-width: 100%;
  padding: 2px 5px;
  border: 1px solid var(--color-border);
  border-radius: 3px;
  background: var(--panel2);
  color: var(--color-text);
  font: 10px/1.55 var(--font-mono);
  overflow-wrap: anywhere
}

.quick-start-mapping-list p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 11px;
  line-height: 1.65
}

.quick-start-guidance {
  display: grid;
  gap: 20px;
  margin-top: 16px;
  padding-top: 40px;
  border-top: 1px solid var(--quick-line)
}

.quick-start-guidance-collapse.ant-collapse {
  border-color: var(--quick-line);
  background: var(--panel)
}

.quick-start-guidance-collapse .ant-collapse-header-text {
  color: var(--quick-ink);
  font-size: 13px;
  font-weight: 500
}

.quick-start-guidance-content {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr);
  gap: 14px 28px;
  padding-bottom: 4px
}

.quick-start-guidance-content>p,
.quick-start-guidance-content>div>p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 12px;
  line-height: 1.75
}

.quick-start-guidance-content>div {
  padding: 10px 12px;
  border-left: 3px solid var(--color-info);
  background: var(--color-bg-info)
}

.quick-start-guidance-content>div>span {
  display: block;
  margin-bottom: 4px;
  color: var(--color-info);
  font-size: 12px;
  font-weight: 700
}

.quick-start-guidance-content>small {
  grid-column: 1/3;
  color: var(--color-warning);
  font-size: 11px;
  line-height: 1.6
}

.quick-start-guidance-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap
}

.quick-start-finish {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 36px;
  padding: 38px 0 10px
}

.quick-start-finish>div>span {
  color: var(--color-text-secondary);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .04em
}

.quick-start-finish h2 {
  margin: 6px 0 5px;
  color: var(--quick-ink);
  font-size: 20px
}

.quick-start-finish p {
  margin: 0;
  color: var(--muted);
  font-size: 12px
}

@media(max-width:900px) {
  .quick-start-intro {
    grid-template-columns: 1fr;
    gap: 24px;
    padding-top: 18px
  }

  .quick-start-intro-copy {
    gap: 14px
  }

  .quick-start-step-body {
    grid-template-columns: 1fr;
    column-gap: 0
  }

  .quick-start-eyebrow {
    grid-column: 1
  }

  .quick-start-step ul {
    grid-column: 1;
    grid-row: auto;
    margin-top: 22px
  }

  .quick-start-actions {
    grid-row: auto
  }

  .quick-start-playbook-intro,
  .quick-start-guidance-heading,
  .quick-start-scenarios-heading,
  .quick-start-playbook-path {
    grid-template-columns: 1fr;
    gap: 22px
  }

  .quick-start-scenario-flow {
    grid-auto-flow: row;
    grid-auto-columns: auto;
    grid-template-columns: minmax(0, 1fr)
  }

  .quick-start-scenario-copy {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-2)
  }

  .quick-start-scenario-copy>span { grid-column: 1 }

  .quick-start-scenario-flow li:not(:last-child)::after {
    top: auto;
    bottom: -22px;
    right: auto;
    left: var(--space-4);
    content: "↓";
    transform: none
  }
}

@media(max-width:600px) {

  .quick-start-shell,
  .quick-start-route,
  .quick-start-step,
  .quick-start-step-body,
  .quick-start-step-body>* {
    min-width: 0;
    max-width: 100%
  }

  .quick-start-intro {
    padding: 10px 0 32px
  }

  .quick-start-intro h2 {
    font-size: 36px
  }

  .quick-start-intro-copy>span {
    align-items: flex-start;
    flex-wrap: wrap
  }

  .quick-start-intro-copy>span i {
    display: none
  }

  .quick-start-step {
    grid-template-columns: 48px minmax(0, 1fr);
    min-height: 0
  }

  .quick-start-step-number {
    justify-content: flex-start;
    padding-top: 34px
  }

  .quick-start-step-number>span {
    width: 38px;
    height: 38px;
    font-size: 11px
  }

  .quick-start-step-number>i {
    top: 72px;
    left: 19px
  }

  .quick-start-step-body {
    padding: 34px 0 34px 8px
  }

  .quick-start-step h2 {
    font-size: 21px
  }

  .quick-start-step h2,
  .quick-start-step p,
  .quick-start-step li {
    overflow-wrap: anywhere
  }

  .quick-start-step li {
    grid-template-columns: 17px minmax(0, 1fr)
  }

  .quick-start-actions {
    align-items: stretch;
    flex-direction: column
  }

  .quick-start-actions .ant-btn {
    width: 100%
  }

  .quick-start-playbook {
    padding: 36px 0 32px
  }

  .quick-start-scenarios {
    padding: 36px 0
  }

  .quick-start-scenarios-heading h2 {
    font-size: 21px
  }

  .quick-start-scenario-tabs .ant-tabs-tab {
    padding-inline: 2px;
    font-size: 12px
  }

  .quick-start-scenario {
    padding: var(--space-2) 0 0
  }

  .quick-start-scenario-copy {
    grid-template-columns: 1fr;
    gap: 8px
  }

  .quick-start-scenario-copy>span {
    grid-column: 1
  }

  .quick-start-scenario-flow {
    grid-template-columns: 1fr
  }

  .quick-start-scenario-action {
    align-items: stretch;
    flex-direction: column
  }

  .quick-start-scenario-action .ant-btn {
    width: 100%
  }

  .quick-start-playbook-intro h2,
  .quick-start-guidance-heading h2 {
    font-size: 21px
  }

  .quick-start-playbook-tabs .ant-tabs-tab {
    padding-inline: 2px;
    font-size: 12px
  }

  .quick-start-mapping-columns {
    display: none
  }

  .quick-start-mapping-list>li {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 14px
  }

  .quick-start-mapping-heading {
    padding: 17px 14px 14px
  }

  .quick-start-guidance-content {
    grid-template-columns: 1fr
  }

  .quick-start-guidance-content>small {
    grid-column: 1
  }

  .quick-start-guidance-actions {
    align-items: stretch;
    flex-direction: column
  }

  .quick-start-guidance-actions .ant-btn {
    width: 100%
  }

  .quick-start-finish {
    align-items: stretch;
    flex-direction: column;
    padding-top: 30px
  }

  .quick-start-finish .ant-btn {
    width: 100%
  }
}

@media(prefers-reduced-motion:reduce) {
  .quick-start-step {
    animation: none
  }

  .quick-start-step-number>span,
  .quick-start-actions .ant-btn span,
  .quick-start-finish .ant-btn span {
    transition: none
  }
}

.dashboard-shell {
  --dashboard-blue: var(--color-primary);
  --dashboard-ink: var(--color-text);
  --dashboard-line: var(--color-border);
  --dashboard-soft: var(--color-bg-subtle);
  display: grid;
  gap: 0;
  max-width: 1540px;
  margin: 0 auto
}

#page-dashboard.is-refreshing {
  opacity: .72;
  transition: opacity .15s
}

.dashboard-stale {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  padding: 10px 14px;
  border-left: 3px solid var(--warning);
  background: var(--color-bg-warning);
  color: var(--color-warning);
  font-size: 12px
}

.dashboard-stale strong {
  font-size: 13px
}

.dashboard-commandbar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px;
  padding: 2px 0 18px;
  border-bottom: 1px solid var(--dashboard-line)
}

.dashboard-command-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap
}

.dashboard-active-filters {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--dashboard-line);
  animation: dashboard-filter-in .16s ease-out;
}

.dashboard-active-filters-label {
  color: var(--color-text-secondary);
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
}

.dashboard-clear-filters-btn.ant-btn {
  height: auto;
  padding: 0 4px;
  font-size: 12px;
  color: var(--color-danger);
}

.dashboard-filter-quick-presets {
  grid-column: 1/-1;
  margin-bottom: 4px;
}

.dashboard-filter-quick-presets .ant-radio-group {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}

.dashboard-filter-quick-presets .ant-radio-button-wrapper {
  border-radius: 4px !important;
  font-size: 12px;
}

.dashboard-filter-panel {
  display: grid;
  grid-template-columns: repeat(6, minmax(130px, 1fr));
  gap: 12px;
  padding: 18px 0;
  border-bottom: 1px solid var(--dashboard-line);
  animation: dashboard-filter-in .16s ease-out
}

.dashboard-filter-heading {
  grid-column: 1/7;
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--dashboard-ink);
  font-size: 12px
}

@keyframes dashboard-filter-in {
  from {
    opacity: 0;
    transform: translateY(-4px)
  }

  to {
    opacity: 1;
    transform: none
  }
}

.dashboard-filter-panel label {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 650
}

.dashboard-filter-panel .ant-input,
.dashboard-filter-panel .ant-select {
  width: 100%;
  min-width: 0
}

.dashboard-filter-actions {
  display: flex;
  align-items: end;
  justify-content: flex-end;
  gap: 7px;
  grid-column: 5/7
}

.dashboard-section {
  padding: 26px 0;
  border-bottom: 1px solid var(--dashboard-line)
}

.dashboard-section:last-child {
  border-bottom: 0
}

.dashboard-section-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 24px;
  margin-bottom: 14px
}

.dashboard-section-head>div {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px
}

.dashboard-section-head h2 {
  margin: 0;
  color: var(--dashboard-ink);
  font-size: 21px;
  letter-spacing: -.02em
}

.dashboard-section-caption {
  color: var(--color-text-secondary);
  font-size: 11px;
  font-weight: 500
}

.dashboard-section-head.compact {
  align-items: start;
  margin-bottom: 14px
}

.dashboard-section-head.compact h2 {
  font-size: 18px
}

.dashboard-info-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  text-transform: none
}

.dashboard-info {
  display: grid;
  width: 18px;
  height: 18px;
  min-width: 18px;
  padding: 0;
  place-items: center;
  border: 1px solid var(--color-border);
  border-radius: 50%;
  background: transparent;
  color: var(--color-text-secondary);
  font: 700 10px/1 Georgia, serif;
  cursor: help
}

.dashboard-info:hover,
.dashboard-info:focus-visible {
  border-color: var(--dashboard-blue);
  color: var(--dashboard-blue);
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-text) 14%, transparent)
}

.dashboard-info-tip {
  position: absolute;
  z-index: 30;
  top: calc(100% + 8px);
  left: 50%;
  width: max-content;
  max-width: min(320px, calc(100vw - 48px));
  padding: 9px 11px;
  transform: translate(-50%, -3px);
  border: 1px solid var(--color-border-interactive);
  border-radius: 4px;
  background: var(--color-text);
  color: var(--color-text-on-solid);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: 0;
  text-align: left;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity .14s, transform .14s
}

.dashboard-info-wrap:hover .dashboard-info-tip,
.dashboard-info-wrap:focus-within .dashboard-info-tip {
  visibility: visible;
  opacity: 1;
  transform: translate(-50%, 0)
}

.dashboard-action-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--dashboard-line);
  background: var(--panel)
}

.dashboard-action-card {
  position: relative;
  min-width: 0;
  border-right: 1px solid var(--dashboard-line);
  animation: dashboard-action-in .16s both;
  animation-delay: calc(var(--action-order) * 45ms)
}

.dashboard-action-card:last-child {
  border-right: 0
}

.dashboard-action-card>.dashboard-info-wrap {
  position: absolute;
  z-index: 2;
  right: 16px;
  bottom: 15px
}

.dashboard-action-card>.dashboard-info-wrap .dashboard-info-tip {
  right: 0;
  left: auto;
  transform: translateY(-3px)
}

.dashboard-action-card>.dashboard-info-wrap:hover .dashboard-info-tip,
.dashboard-action-card>.dashboard-info-wrap:focus-within .dashboard-info-tip {
  transform: none
}

.dashboard-action {
  position: relative;
  display: flex;
  width: 100%;
  min-height: 142px;
  flex-direction: column;
  align-items: flex-start;
  padding: 18px 20px;
  text-align: left;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--text);
  overflow: hidden
}

@keyframes dashboard-action-in {
  from {
    opacity: 0;
    transform: translateY(7px)
  }

  to {
    opacity: 1;
    transform: none
  }
}

.dashboard-action:before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: transparent;
  transition: width .16s
}

.dashboard-action-card.warning .dashboard-action:before {
  background: var(--color-warning)
}

.dashboard-action-card.critical .dashboard-action:before {
  background: var(--color-danger)
}

.dashboard-action:hover {
  background: var(--color-bg-info)
}

.dashboard-action:hover:before {
  width: 5px
}

.dashboard-action-top {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: var(--color-text-secondary);
  font-size: 12px;
  font-weight: 700
}

.dashboard-action-top i {
  font-size: 10px;
  font-style: normal;
  font-weight: 650;
  color: var(--color-text-placeholder)
}

.dashboard-action-card.warning .dashboard-action-top i {
  color: var(--color-warning)
}

.dashboard-action-card.critical .dashboard-action-top i {
  color: var(--color-danger)
}

.dashboard-action>strong {
  margin: 16px 0 0;
  color: var(--dashboard-ink);
  font-size: 38px;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.04em
}

.dashboard-action>strong small {
  margin-left: 6px;
  color: var(--color-text-secondary);
  font-size: 12px;
  font-weight: 550;
  letter-spacing: 0
}

.dashboard-action-supporting {
  margin-top: 7px;
  color: var(--color-text-secondary);
  font-size: 11px;
  font-weight: 550;
  font-variant-numeric: tabular-nums;
  white-space: normal
}

.dashboard-action-link {
  margin-top: auto;
  color: var(--color-primary);
  font-size: 11px;
  font-weight: 700
}

.dashboard-pipeline {
  display: grid;
  grid-template-columns: repeat(var(--pipeline-columns, 4), minmax(0, 1fr));
  gap: 1px;
  border: 1px solid var(--dashboard-line);
  background: var(--dashboard-line)
}

.pipeline-stage.ant-btn {
  display: flex;
  width: 100%;
  height: auto;
  min-height: 142px;
  flex-direction: column;
  align-items: flex-start;
  padding: 18px 20px;
  text-align: left;
  border: 0;
  border-radius: 0;
  background: var(--panel);
  color: var(--text);
  box-shadow: none
}

.pipeline-stage.ant-btn:hover {
  background: var(--color-bg-info)
}

.pipeline-stage.ant-btn.has-risk {
  background: var(--color-bg-warning)
}

.pipeline-name {
  color: var(--color-text-secondary);
  font-size: 12px;
  font-weight: 700
}

.pipeline-stage strong {
  margin: 16px 0 0;
  color: var(--dashboard-ink);
  font-size: 38px;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.04em
}

.pipeline-stage strong small {
  margin-left: 6px;
  color: var(--color-text-secondary);
  font-size: 12px;
  font-weight: 550;
  letter-spacing: 0
}

.pipeline-meta {
  display: flex;
  width: 100%;
  min-height: 16px;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  color: var(--color-text-secondary);
  font-size: 11px
}

.pipeline-meta em {
  color: var(--color-text-placeholder);
  font-size: 10px;
  font-style: normal;
  text-align: right
}

.dashboard-queue-section {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(290px, .7fr);
  align-items: start;
  gap: 34px
}

.dashboard-anomalies {
  padding-left: 32px;
  border-left: 1px solid var(--dashboard-line)
}

.dashboard-section-metric {
  color: var(--dashboard-ink);
  font-size: 16px;
  font-weight: 600;
  font-variant-numeric: tabular-nums
}

.dashboard-queue {
  overflow: hidden;
  border: 1px solid var(--dashboard-line);
  background: var(--panel)
}

.queue-row.ant-btn {
  position: relative;
  display: grid;
  width: 100%;
  height: auto;
  min-height: 56px;
  grid-template-columns: 36px minmax(0, 1fr) minmax(88px, auto) 16px;
  align-items: center;
  gap: 12px;
  padding: 12px 14px 12px 16px;
  border: 0;
  border-bottom: 1px solid var(--dashboard-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--text);
  text-align: left;
  white-space: normal
}

.queue-row.ant-btn:last-child {
  border-bottom: 0
}

.queue-row.ant-btn:hover,
.queue-row.ant-btn:focus-visible {
  background: var(--color-bg-info);
  color: var(--text)
}

.queue-row.ant-btn:before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--dashboard-line)
}

.queue-row--medium.ant-btn:before {
  background: var(--color-warning)
}

.queue-row--high.ant-btn:before {
  background: var(--color-danger)
}

.queue-risk {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 20px;
  padding: 0 6px;
  border-radius: 4px;
  background: var(--color-bg-subtle);
  color: var(--color-text-secondary);
  font-size: 11px;
  font-weight: 600;
  line-height: 1
}

.queue-risk.medium {
  background: var(--color-bg-warning);
  color: var(--color-warning)
}

.queue-risk.high {
  background: var(--color-bg-danger);
  color: var(--color-danger)
}

.queue-copy {
  display: grid;
  gap: 2px;
  min-width: 0
}

.queue-copy strong {
  display: block;
  color: var(--color-text);
  font-size: 14px;
  font-weight: 500;
  overflow-wrap: anywhere;
  white-space: normal
}

.queue-kicker {
  margin-right: 8px;
  color: var(--color-text-secondary);
  font-size: 12px;
  font-weight: 500
}

.queue-secondary {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--color-text-secondary);
  font-size: 12px;
  font-weight: 400
}

.queue-age {
  display: grid;
  color: var(--color-text);
  font-size: 12px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  text-align: right;
  line-height: 1.3
}

.queue-age small {
  color: var(--color-text-secondary);
  font-size: 11px;
  font-weight: 400
}

.queue-arrow {
  color: var(--color-primary);
  transition: transform .16s
}

.queue-row.ant-btn:hover .queue-arrow {
  transform: translateX(3px)
}

.dashboard-clear {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 124px;
  padding: 22px;
  background: var(--color-bg-success);
  color: var(--color-success)
}

.dashboard-clear>span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--color-bg-success);
  color: var(--color-success);
  font-weight: 800
}

.dashboard-clear strong {
  font-size: 13px
}

.dashboard-clear p {
  margin: 3px 0 0;
  color: var(--color-text-secondary);
  font-size: 11px
}

.dashboard-clear.compact {
  min-height: 100px
}

.anomaly-list {
  display: grid;
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--dashboard-line);
  background: var(--panel)
}

.anomaly-row.ant-btn {
  display: grid;
  width: 100%;
  height: auto;
  grid-template-columns: 22px minmax(0, 1.35fr) minmax(40px, .85fr) 24px;
  align-items: center;
  gap: 8px;
  padding: 10px;
  border: 0;
  border-bottom: 1px solid var(--dashboard-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--text);
  text-align: left;
  white-space: normal
}

.anomaly-row.ant-btn:last-child {
  border-bottom: 0
}

.anomaly-row.ant-btn:hover,
.anomaly-row.ant-btn:focus-visible {
  background: var(--color-bg-info);
  color: var(--text)
}

.anomaly-row>span {
  color: var(--color-text-secondary);
  font: 650 9px/1 ui-monospace, SFMono-Regular, Menlo, monospace
}

.anomaly-row>strong {
  font-size: 12px;
  font-weight: 500
}

.anomaly-row>i {
  height: 5px;
  background: var(--color-bg-info)
}

.anomaly-row>i b {
  display: block;
  height: 100%;
  background: var(--color-warning)
}

.anomaly-row>em {
  color: var(--color-text-secondary);
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
  text-align: right
}

.analytics-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(140px, .48fr)) minmax(300px, 1.35fr);
  border-top: 1px solid var(--dashboard-line);
  border-bottom: 1px solid var(--dashboard-line)
}

.analytics-summary>div {
  padding: 18px 20px;
  border-right: 1px solid var(--dashboard-line)
}

.analytics-summary>div:last-child {
  border-right: 0
}

.analytics-summary>div>span {
  display: block;
  color: var(--color-text-secondary);
  font-size: 11px;
  font-weight: 700
}

.analytics-summary .analytics-label {
  display: flex;
  align-items: center;
  gap: 6px
}

.analytics-summary strong {
  display: block;
  margin: 7px 0 4px;
  color: var(--dashboard-ink);
  font-size: 29px;
  line-height: 1
}

.analytics-summary strong small {
  font-size: 11px;
  font-weight: 550;
  color: var(--muted)
}

.analytics-summary p {
  margin: 0;
  color: var(--muted);
  font-size: 10px
}

.analytics-quota {
  display: grid !important;
  grid-template-columns: 1fr 160px;
  align-items: center;
  gap: 7px 20px
}

.analytics-quota>div:first-child {
  grid-row: 1/3
}

.analytics-quota span i {
  margin-left: 5px;
  padding: 2px 4px;
  background: var(--color-bg-info);
  color: var(--color-text-secondary);
  font-size: 8px;
  font-style: normal
}

.quota-track {
  height: 7px;
  background: var(--color-chart-grid)
}

.quota-track i {
  display: block;
  height: 100%;
  background: var(--color-success);
  transition: width .4s ease
}

.analytics-quota.warning .quota-track i {
  background: var(--color-warning)
}

.analytics-quota.critical .quota-track i {
  background: var(--color-danger)
}

.analytics-quota>p {
  text-align: right
}

.analytics-quota>p small {
  color: var(--muted)
}

.dashboard-analysis-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(380px, .85fr);
  gap: 32px;
  padding-top: 24px
}

.dashboard-chart {
  min-width: 0
}

.chart-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px
}

.chart-head>div {
  display: flex;
  align-items: center;
  gap: 7px
}

.chart-head h3 {
  margin: 0;
  color: var(--color-text);
  font-size: 13px
}

.chart-head span {
  color: var(--muted);
  font-size: 10px
}

.trend-legend,
.country-legend {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 16px;
  margin-bottom: 4px;
  color: var(--color-text-secondary);
  font-size: 10px;
  flex-wrap: wrap;
}

.trend-hover-badge {
  margin-left: auto;
  padding: 3px 8px;
  border-radius: 4px;
  background: var(--color-bg-subtle);
  border: 1px solid var(--color-border);
  color: var(--color-text);
  font-size: 11px;
  font-weight: 500;
  animation: trend-badge-fade .12s ease-out;
}

@keyframes trend-badge-fade {
  from { opacity: 0; transform: translateY(-2px); }
  to { opacity: 1; transform: none; }
}

.trend-legend span,
.country-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px
}

.trend-legend i,
.country-legend i {
  display: inline-block;
  width: 14px;
  height: 3px
}

.trend-legend i.signed {
  background: var(--color-chart-primary)
}

.trend-legend i.succeeded {
  background: var(--color-chart-success)
}

.country-legend i.succeeded {
  background: var(--color-chart-success)
}

.country-legend i.processing {
  background: var(--color-chart-warning)
}

.country-legend i.failed {
  background: var(--color-chart-danger)
}

.trend-chart-scroll {
  overflow-x: auto
}

.dashboard-trend-chart {
  display: block;
  width: 100%;
  min-width: 520px;
  min-height: 220px;
  overflow: visible
}

.trend-guide-line {
  stroke: var(--color-border-interactive);
  stroke-width: 1;
  stroke-dasharray: 3 3;
}

.trend-grid line {
  stroke: var(--color-chart-grid);
  stroke-width: 1
}

.trend-grid text,
.trend-axis-label {
  fill: var(--color-text-placeholder);
  font-size: 9px;
  transition: fill .15s ease;
}

.trend-axis-label.active {
  fill: var(--color-primary);
  font-weight: 700;
}

.trend-line {
  fill: none;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round
}

.trend-line.signed {
  stroke: var(--color-chart-primary)
}

.trend-line.succeeded {
  stroke: var(--color-chart-success)
}

.trend-point {
  stroke: var(--panel);
  stroke-width: 2;
  transition: r .15s ease, stroke-width .15s ease;
}

.trend-point.active {
  stroke: var(--color-primary);
  stroke-width: 3;
  filter: drop-shadow(0 0 4px var(--color-primary));
}

.trend-point.signed {
  fill: var(--color-chart-primary)
}

.trend-point.succeeded {
  fill: var(--color-chart-success)
}

/* 全局字段错误脉冲定位高亮 */
@keyframes field-pulse {
  0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--color-danger) 60%, transparent); }
  50% { box-shadow: 0 0 0 6px color-mix(in srgb, var(--color-danger) 25%, transparent); }
  100% { box-shadow: 0 0 0 0 transparent; }
}

.field-highlight-pulse {
  animation: field-pulse 1.4s ease-out 2;
  border-radius: var(--radius-control);
}

/* 业务总览:成果两格带与零数据提示 */
.overview-outcomes {
  grid-template-columns: repeat(2, minmax(0, 1fr))
}

.dashboard-zero {
  margin: 10px 4px 0
}

.country-outcomes {
  display: grid;
  gap: 4px
}

.country-outcome {
  display: grid;
  width: 100%;
  grid-template-columns: 80px minmax(120px, 1fr) 72px;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--text);
  text-align: left
}

.country-outcome:hover {
  background: var(--color-bg-info)
}

.country-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--color-text);
  font-size: 11px;
  font-weight: 700
}

.country-stack {
  display: flex;
  height: 12px;
  overflow: hidden;
  background: var(--color-bg-container)
}

.country-stack i {
  height: 100%;
  min-width: 0
}

.country-stack .succeeded {
  background: var(--color-chart-success)
}

.country-stack .processing {
  background: var(--color-chart-warning)
}

.country-stack .failed {
  background: var(--color-chart-danger)
}

.country-outcome>strong {
  display: grid;
  color: var(--color-text);
  font-size: 12px;
  text-align: right
}

.country-outcome>strong small {
  color: var(--color-text-secondary);
  font-size: 9px;
  font-weight: 500
}

@media(max-width:1180px) {
  .dashboard-filter-panel {
    grid-template-columns: repeat(3, minmax(150px, 1fr))
  }

  .dashboard-filter-heading {
    grid-column: 1/4
  }

  .dashboard-filter-actions {
    grid-column: 3
  }

  .dashboard-action-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

  .dashboard-action-card:nth-child(2) {
    border-right: 0
  }

  .dashboard-action-card:nth-child(-n+2) {
    border-bottom: 1px solid var(--dashboard-line)
  }

  .dashboard-pipeline {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

  .dashboard-analysis-grid {
    grid-template-columns: 1fr
  }

  .dashboard-queue-section {
    grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr)
  }
}

@media(max-width:820px) {

  .dashboard-commandbar,
  .dashboard-section-head {
    align-items: flex-start;
    flex-direction: column
  }

  .dashboard-section-head>p {
    text-align: left
  }

  .dashboard-queue-section {
    grid-template-columns: 1fr
  }

  .dashboard-anomalies {
    padding: 24px 0 0;
    border-top: 1px solid var(--dashboard-line);
    border-left: 0
  }

  .analytics-summary {
    grid-template-columns: 1fr 1fr
  }

  .analytics-summary>div:nth-child(2) {
    border-right: 0
  }

  .analytics-summary>div:nth-child(3) {
    grid-column: 1/3;
    border-top: 1px solid var(--dashboard-line);
    border-right: 0
  }

  .analytics-quota {
    grid-column: 1/3;
    border-top: 1px solid var(--dashboard-line)
  }
}

@media(max-width:560px) {

  .dashboard-shell,
  .dashboard-analysis-grid,
  .dashboard-chart,
  .trend-chart-scroll {
    min-width: 0;
    max-width: 100%
  }

  .dashboard-analysis-grid {
    overflow-x: hidden
  }

  .trend-chart-scroll {
    width: 100%;
    contain: inline-size
  }

  .dashboard-info-tip {
    max-width: min(180px, calc(100vw - 48px));
    white-space: normal
  }

  .dashboard-command-actions {
    display: grid;
    width: 100%;
    grid-template-columns: 1fr 1fr
  }

  .dashboard-command-actions #export-summary {
    grid-column: 1/3
  }

  .dashboard-command-actions .ant-btn {
    width: 100%
  }

  .dashboard-filter-panel {
    grid-template-columns: 1fr
  }

  .dashboard-filter-heading,
  .dashboard-filter-actions {
    grid-column: 1
  }

  .dashboard-filter-actions {
    justify-content: stretch
  }

  .dashboard-filter-actions .ant-btn {
    flex: 1
  }

  .dashboard-section {
    padding: 24px 0
  }

  .dashboard-section-head h2 {
    font-size: 19px
  }

  .dashboard-action-grid {
    grid-template-columns: 1fr
  }

  /* 390px 下核心资产保持紧凑 2×2 数据带(DESIGN.md 业务总览) */
  .dashboard-action-grid.overview-assets {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

  .dashboard-action-grid.overview-assets .dashboard-action {
    padding: 10px 12px
  }

  .dashboard-action-grid.overview-assets .dashboard-action>strong {
    font-size: 22px
  }

  .dashboard-action-card {
    border-right: 0;
    border-bottom: 1px solid var(--dashboard-line)
  }

  .dashboard-action-card:nth-child(2) {
    border-bottom: 1px solid var(--dashboard-line)
  }

  .dashboard-action-card:last-child {
    border-bottom: 0
  }

  .dashboard-action-card>.dashboard-info-wrap {
    right: 13px;
    bottom: auto;
    top: 50%;
    transform: translateY(-50%)
  }

  .dashboard-action {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 5px 8px;
    min-height: 88px;
    padding: 14px 46px 14px 16px
  }

  .dashboard-action-top {
    grid-column: 1
  }

  .dashboard-action>strong {
    grid-column: 2;
    grid-row: 1/3;
    margin: 0;
    font-size: 28px
  }

  .dashboard-action-supporting {
    grid-column: 1;
    margin-top: 0
  }

  .dashboard-action-link {
    display: none
  }

  .dashboard-pipeline {
    grid-template-columns: 1fr
  }

  .pipeline-stage.ant-btn {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    min-height: 82px;
    padding: 14px 16px
  }

  .pipeline-name {
    grid-column: 1
  }

  .pipeline-stage strong {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
    font-size: 28px
  }

  .pipeline-meta {
    grid-column: 1/3;
    margin-top: 0
  }

  .queue-row.ant-btn {
    grid-template-columns: 36px minmax(0, 1fr) 14px;
    gap: 10px;
    padding: 12px 12px 12px 14px
  }

  .queue-age {
    grid-column: 2;
    text-align: left
  }

  .queue-arrow {
    grid-column: 3;
    grid-row: 1/3
  }

  .queue-copy strong,
  .queue-secondary {
    white-space: normal
  }

  .analytics-summary {
    grid-template-columns: 1fr
  }

  .analytics-summary>div,
  .analytics-summary>div:nth-child(3) {
    grid-column: 1;
    border-right: 0;
    border-bottom: 1px solid var(--dashboard-line)
  }

  .analytics-summary>div:last-child {
    border-bottom: 0
  }

  .analytics-quota {
    grid-column: 1;
    grid-template-columns: 1fr
  }

  .analytics-quota>div:first-child {
    grid-row: auto
  }

  .analytics-quota>p {
    text-align: left
  }

  .chart-head {
    align-items: flex-start;
    flex-direction: column
  }

  .trend-legend,
  .country-legend {
    justify-content: flex-start;
    flex-wrap: wrap
  }

  .country-outcome {
    grid-template-columns: 64px minmax(105px, 1fr) 64px
  }

  .country-outcome>strong small {
    font-size: 8px
  }
}

@media(prefers-reduced-motion:reduce) {
  .dashboard-action-card,
  .dashboard-filter-panel {
    animation: none
  }

  .dashboard-action,
  .queue-row.ant-btn,
  .queue-arrow,
  .quota-track i,
  .dashboard-info-tip {
    transition: none
  }
}

.manual-history-alert {
  margin-top: 16px
}

.manual-stage-section {
  display: grid;
  gap: 16px;
  margin: 16px 0;
  border-color: var(--color-border-interactive)
}

.manual-stage-section h3 {
  margin: 0
}

.manual-history-content {
  display: grid;
  gap: 16px
}

.manual-history-content>p {
  margin: 0
}

.manual-history-content>label {
  display: grid;
  gap: 6px
}

.manual-confirmation-target {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--line)
}

/* 手工签发签名/提交步骤：状态与执行目标分层，避免「待提交 + 通道 + 标签」挤成一行 */
.manual-step-context {
  display: grid;
  gap: 12px;
  margin: 16px 0;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel2)
}

.manual-step-context-status {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px
}

.manual-step-context-status .status-tag {
  margin: 0;
  padding-inline: 10px;
  font-size: 13px;
  font-weight: 600;
  line-height: 22px
}

.manual-step-context-meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 12px 18px;
  padding-top: 12px;
  border-top: 1px solid var(--line)
}

.manual-step-context-meta>div {
  display: grid;
  min-width: 0;
  gap: 6px
}

.manual-step-context-meta>div>span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.4
}

.manual-step-context-value {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0
}

.manual-step-context-value>b {
  min-width: 0;
  color: var(--text);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
  overflow-wrap: anywhere
}

.manual-step-context-value .ant-tag {
  margin-inline-end: 0
}

.manual-signing-field {
  display: grid;
  gap: var(--space-2);
  color: var(--muted);
  font-size: 13px
}

.manual-signing-field .manual-signing-select {
  width: 100%;
  min-width: 0
}

.manual-step-success {
  margin-top: var(--space-4)
}

@media(max-width:560px) {
  .manual-validation-summary {
    align-items: flex-start;
    flex-direction: column;
    gap: 7px
  }

  .manual-validation-summary-item+.manual-validation-summary-item {
    padding-left: 0;
    border-left: 0
  }
}

@media(max-width:560px) {
  .manual-issuance-identity>h2 {
    font-size: 20px
  }

  .manual-issuance-identity-facts {
    grid-template-columns: 1fr
  }

  .manual-issuance-intro {
    align-items: stretch;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 20px
  }

  .manual-issuance-intro>.ant-btn {
    align-self: flex-start
  }
}

@media(max-width:900px) {
  .issuance-task-lifecycle-steps.ant-steps {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 8px
  }

  .issuance-task-lifecycle-steps.ant-steps .ant-steps-item {
    padding-inline-start: 0
  }

  .issuance-task-lifecycle-steps .ant-steps-item-container {
    display: grid;
    gap: 6px
  }

  .issuance-task-lifecycle-steps .ant-steps-item-tail {
    display: none
  }

  .issuance-task-progress-summary {
    grid-template-columns: 1fr
  }
}

@media(max-width:760px) {
  .issuance-task-intro {
    align-items: stretch;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 4px
  }

  .issuance-task-intro>.ant-space {
    justify-content: flex-end
  }

  .issuance-task-tabs .ant-tabs-nav-list {
    width: 100%
  }

  .issuance-task-tabs .ant-tabs-tab {
    flex: 1;
    justify-content: center
  }

  .issuance-task-filter-row {
    grid-template-columns: 1fr
  }

  .issuance-task-current {
    padding: 14px
  }

  .issuance-task-current-main {
    align-items: stretch;
    flex-direction: column
  }

  .issuance-task-current-actions {
    justify-content: flex-start
  }

  .issuance-task-current-title h2 {
    font-size: 20px
  }

  .issuance-task-current-meta {
    grid-template-columns: 1fr
  }

  .issuance-task-current-meta>div {
    padding: 10px 0;
    border-top: 1px solid var(--line)
  }

  .issuance-task-current-meta>div:first-child {
    border-top: 0;
    padding-top: 0
  }
}

@media(max-width:575px) {
  .issuance-task-mobile-vin {
    display: block;
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 600
  }

  .issuance-task-mobile-status {
    display: block;
    margin-top: 6px
  }

  .issuance-task-mobile-status .status-tag {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis
  }
}

/* 业务总览减噪：解释性内容进入 Ant Design Tooltip，首屏保留结论与下钻。 */
.dashboard-commandbar {
  justify-content: space-between;
  gap: 16px;
  padding: 8px 0 16px;
}

.dashboard-data-status,
.dashboard-section-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.dashboard-info.ant-btn {
  display: inline-flex;
  width: 24px;
  height: 24px;
  min-width: 24px;
  padding: 0;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 50%;
  color: var(--color-text-secondary);
}

.dashboard-info.ant-btn:hover,
.dashboard-info.ant-btn:focus-visible {
  border: 0;
  background: var(--color-bg-info);
  color: var(--color-primary);
}

.dashboard-metric-details {
  display: grid;
  gap: 8px;
  max-width: 320px;
  line-height: 1.55;
}

.dashboard-metric-details > strong {
  font-weight: 600;
}

.dashboard-metric-details > span {
  color: var(--color-text-on-solid);
}

.dashboard-action-card > .dashboard-info {
  position: absolute;
  z-index: 2;
  top: 10px;
  right: 10px;
}

.dashboard-action {
  min-height: 116px;
  padding: 16px 44px 16px 18px;
}

.dashboard-action > strong {
  margin-top: 14px;
  font-size: 36px;
}

.dashboard-action-link {
  position: absolute;
  right: 16px;
  bottom: 14px;
  margin: 0;
  opacity: .7;
  transition: opacity .16s ease, transform .16s ease;
}

.dashboard-action:hover .dashboard-action-link,
.dashboard-action:focus-visible .dashboard-action-link {
  opacity: 1;
  transform: translateX(3px);
}

.dashboard-target-countries {
  border-top: 1px solid var(--dashboard-line);
}

.dashboard-country-row.ant-btn {
  display: grid;
  width: 100%;
  height: auto;
  min-height: 58px;
  grid-template-columns: 48px minmax(74px, 1fr) minmax(92px, 1fr) 16px;
  align-items: center;
  gap: 12px;
  padding: 10px 4px;
  border: 0;
  border-bottom: 1px solid var(--dashboard-line);
  border-radius: 0;
  color: var(--color-text);
  text-align: left;
}

.dashboard-country-row.ant-btn:hover,
.dashboard-country-row.ant-btn:focus-visible {
  background: var(--color-bg-info);
  color: var(--color-text);
}

.dashboard-country-row.ant-btn:last-child {
  border-bottom: 0;
}

.dashboard-country-code {
  color: var(--color-text);
  font-size: 13px;
  font-weight: 700;
}

.dashboard-country-metric {
  display: grid;
  gap: 2px;
}

.dashboard-country-metric strong {
  color: var(--color-text);
  font-size: 18px;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.dashboard-country-metric small {
  color: var(--color-text-secondary);
  font-size: 10px;
  font-weight: 500;
}

.dashboard-country-arrow {
  color: var(--color-primary);
  transition: transform .16s ease;
}

.dashboard-country-row.ant-btn:hover .dashboard-country-arrow,
.dashboard-country-row.ant-btn:focus-visible .dashboard-country-arrow {
  transform: translateX(3px);
}

.dashboard-country-empty {
  min-height: 116px;
}

.dashboard-insight-grid {
  display: grid;
  grid-template-columns: minmax(280px, .65fr) minmax(0, 1.35fr);
  gap: 32px;
  border-bottom: 1px solid var(--dashboard-line);
}

.dashboard-insight-grid > .dashboard-section {
  min-width: 0;
  border-bottom: 0;
}

.dashboard-trend-section {
  padding-left: 32px;
  border-left: 1px solid var(--dashboard-line);
}

.dashboard-trend-chart {
  min-height: 180px;
}

@media(max-width:1180px) {
  .dashboard-insight-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .dashboard-trend-section {
    padding-left: 0;
    border-top: 1px solid var(--dashboard-line);
    border-left: 0;
  }
}

@media(max-width:820px) {
  .dashboard-data-status {
    width: 100%;
    justify-content: space-between;
  }

  .dashboard-section-actions {
    align-self: stretch;
  }
}

@media(max-width:560px) {
  .dashboard-section-actions {
    display: grid;
    width: 100%;
    grid-template-columns: 1fr 1fr;
  }

  .dashboard-section-actions .ant-btn {
    width: 100%;
  }

  .dashboard-action-grid.overview-assets .dashboard-action-card:nth-child(odd) {
    border-right: 1px solid var(--dashboard-line);
  }

  .dashboard-action-grid.overview-assets .dashboard-action-card:nth-child(-n+2) {
    border-bottom: 1px solid var(--dashboard-line);
  }

  .dashboard-action-grid.overview-assets .dashboard-action-card:nth-child(n+3) {
    border-bottom: 0;
  }

  .dashboard-action-grid.overview-assets .dashboard-action {
    min-height: 104px;
    grid-template-columns: 1fr;
    align-content: space-between;
    padding: 12px 32px 12px 12px;
  }

  .dashboard-action-grid.overview-assets .dashboard-action > strong {
    grid-column: 1;
    grid-row: auto;
    margin-top: 10px;
    font-size: 24px;
  }

  .dashboard-action-grid.overview-assets .dashboard-action-link {
    display: block;
    right: 10px;
    bottom: 10px;
  }

  .dashboard-action-card > .dashboard-info {
    top: 7px;
    right: 6px;
  }
}

@media(max-width:560px) {
  .dashboard-commandbar .dashboard-command-actions {
    grid-template-columns: 44px minmax(0, 1fr);
  }

  .dashboard-outcomes-section .dashboard-section-head {
    align-items: center;
    flex-direction: row;
  }

  .dashboard-outcomes-section .dashboard-section-actions {
    display: flex;
    width: auto;
    align-self: auto;
  }

  .dashboard-outcomes-section .dashboard-section-actions .ant-btn {
    width: 36px;
  }

  .dashboard-trend-chart {
    min-width: 100%;
  }
}

/* Connection findings keep the summary visible and technical evidence collapsible. */
.mtls-validation-steps > div > span:nth-child(2) { display: grid; gap: 4px; min-width: 0; }
.validation-step-warning { background: var(--color-bg-warning); color: var(--color-warning); }
.mtls-diagnostics-success { --color-danger: var(--color-success); --color-bg-danger: var(--color-bg-success); --color-border-danger: var(--color-border-success); }
.mtls-diagnostics-warning { --color-danger: var(--color-warning); --color-bg-danger: var(--color-bg-warning); --color-border-danger: var(--color-border-warning); }

.connection-operation-warning { border-color: var(--color-border-warning); background: var(--color-bg-warning); color: var(--color-warning); }

.issuance-structure-step { display: grid; gap: var(--space-6); container: issuance-report / inline-size; }
.issuance-structure-field { display: grid; grid-template-columns: minmax(180px, 2fr) minmax(160px, 3fr); gap: var(--space-4); align-items: center; }
@media (max-width: 768px) { .issuance-structure-field { grid-template-columns: 1fr; } }

.issuance-structure-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  align-items: center;
  padding-block: 8px;
  border-bottom: 1px solid var(--line)
}

.issuance-structure-facts {
  display: flex;
  flex: 1 1 240px;
  flex-wrap: wrap;
  gap: 4px 20px;
  min-width: 0;
  color: var(--muted);
  font-size: 12px
}

.issuance-structure-facts>span {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px
}

.issuance-structure-facts b {
  font-weight: 500;
  color: var(--text)
}

.issuance-structure-summary>.ant-btn {
  padding-inline: 0;
  max-width: 100%;
  white-space: normal;
  height: auto;
  min-height: 32px
}

@container issuance-shell (max-width: 820px) {
  .issuance-report-stage.ant-steps { display: none; }
  .issuance-report-stage-compact {
    display: flex;
    align-items: center;
    min-height: 32px;
    font-size: 13px;
    font-weight: 500;
  }
  .issuance-report-stage-compact .ant-btn {
    height: auto;
    min-height: 32px;
    padding-inline: 0;
    white-space: normal;
    text-align: start;
  }
  .issuance-report-header { grid-template-columns: 1fr; gap: 8px; }
  .issuance-report-actions { justify-content: flex-start; max-width: none; }
  .issuance-field-search { flex-basis: 100%; }
  .issuance-field-summary-group { flex-basis: 100%; }
}


.issuance-validation-strip>.issuance-validation-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-shrink: 0
}

@container issuance-shell (max-width: 600px) {
  .issuance-validation-strip { flex-direction: column; align-items: stretch; }
  .issuance-validation-strip>.issuance-validation-actions { justify-content: flex-start; }
}

@container issuance-shell (max-width: 820px) {
  .issuance-report-layout { grid-template-columns: minmax(0, 1fr); }
  .issuance-group-nav {
    z-index: 10; top: 8px; max-height: none; padding: 10px 14px;
    border-right: 0; border-bottom: 1px solid var(--line); overflow: visible;
  }
  .issuance-mobile-group-trigger.ant-btn {
    display: flex; width: 100%; align-items: center;
    justify-content: space-between; text-align: left;
  }
  .issuance-mobile-group-trigger>span:last-child {
    min-width: 0; overflow: hidden; color: var(--muted);
    text-overflow: ellipsis; white-space: nowrap;
  }
  .issuance-group-nav nav { display: none; }
}

@container issuance-shell (max-width: 600px) {
  .issuance-report-actions .ant-btn {
    flex: 0 1 auto; height: auto; min-height: 32px; white-space: normal;
  }
  .issuance-report-actions .row-actions-trigger { flex: 0 0 32px; }
}

/* Official vehicle setup hierarchy; only independent repeated objects have a border. */
.vehicle-structure-editor, .issuance-structure-quantities { display: grid; gap: var(--space-4); min-width: 0; }
.vehicle-structure-editor { gap: var(--space-6); }
.issuance-structure-control { display: grid; gap: var(--space-1); min-width: 0; }
.issuance-structure-control .ant-input-number { width: 100%; }
.issuance-structure-collection { display: grid; gap: var(--space-3); min-width: 0; }
.issuance-structure-collection > header, .issuance-structure-energy > header { display: flex; align-items: center; gap: var(--space-3); }
.issuance-structure-collection h3, .issuance-structure-energy h4 { margin: 0; font-size: 16px; font-weight: 500; }
.issuance-structure-object { display: grid; gap: var(--space-4); min-width: 0; border: 1px solid var(--color-border); border-radius: var(--radius-container); padding: var(--space-4); background: var(--color-bg-container); }
.issuance-structure-object > header { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
.issuance-structure-object > header b { font-weight: 500; }
.issuance-structure-members.ant-checkbox-group { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-6); }
.issuance-structure-energy { display: grid; gap: var(--space-3); padding-top: var(--space-4); border-top: 1px solid var(--color-border); min-width: 0; }
.issuance-structure-energy-row { display: grid; grid-template-columns: minmax(140px, 2fr) minmax(160px, 3fr) auto; align-items: center; gap: var(--space-3); }
.issuance-structure-energy-row > .ant-select { min-width: 0; }
.issuance-structure-field small, .issuance-structure-energy-row small { color: var(--color-text-secondary); }
@container issuance-report (max-width: 600px) {
  .issuance-structure-field { grid-template-columns: 1fr; gap: var(--space-2); }
  .issuance-structure-energy-row { grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-2); }
  .issuance-structure-energy-row > label { grid-column: 1 / -1; }
}
