:root {
  --case-navy: #123b5d;
  --case-blue: #146c8c;
  --case-blue-soft: #eaf4f8;
  --case-green: #207a4a;
  --case-green-soft: #eaf6ef;
  --case-amber: #a76613;
  --case-red: #b42318;
  --case-bg: #f4f7fa;
  --case-line: #d9e2ea;
  --case-text: #172b3a;
  --case-muted: #657786;
  --case-radius: 12px;
}

.case-workspace-body {
  /* The expert cabinet uses its header navy; applicant defaults stay intact. */
  --case-blue: var(--case-navy);
  --workspace-accent: var(--case-navy);
  --workspace-accent-hover: #0c2c46;
  --workspace-signature-accent: var(--case-navy);
  --workspace-expertise-line: var(--case-navy);
  --blue: var(--case-navy);
  --blue-dark: var(--workspace-accent-hover);
  background: var(--case-bg);
  color: var(--case-text);
}
.case-visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.case-global-header { border-top-color: #b42318; background: var(--case-navy); }
.case-global-header .header-actions .button.is-active { border-color: rgba(255, 255, 255, .9); background: #fff; color: var(--case-navy); }
.case-workspace { width: min(1560px, calc(100% - 40px)); margin: 0 auto; padding: 20px 0 56px; }
.case-backline { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; color: var(--case-muted); font-size: 14px; }
.case-backline a { color: var(--case-blue); font-weight: 700; text-decoration: none; }

.case-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px 28px; padding: 24px 28px 0; border: 1px solid var(--case-line); border-radius: var(--case-radius) var(--case-radius) 0 0; background: #fff; }
.case-hero__main h1 { max-width: none; color: var(--case-navy); font-size: clamp(25px, 2.3vw, 34px); font-weight: 700; }
.case-hero__main p { margin-top: 7px; color: var(--case-muted); font-size: 15px; }
.case-eyebrow, .case-kicker { display: block; margin-bottom: 5px; color: var(--case-blue); font-size: 12px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
.case-hero__status { display: flex; align-items: flex-end; flex-direction: column; gap: 6px; }
.case-status { display: inline-flex; align-items: center; min-height: 34px; padding: 6px 12px; border-radius: 999px; background: var(--case-blue-soft); color: var(--case-navy); font-size: 14px; font-weight: 800; }
.case-status.is-overdue { background: #fceceb; color: var(--case-red); }
.case-public-status { color: var(--case-muted); font-size: 13px; }
.case-hero__facts { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--case-line); }
.case-hero__facts > div { min-width: 0; padding: 16px 20px 16px 0; }
.case-hero__facts dt, .case-details-grid dt { margin-bottom: 4px; color: var(--case-muted); font-size: 12px; font-weight: 700; }
.case-hero__facts dd, .case-details-grid dd { margin: 0; overflow-wrap: anywhere; font-size: 14px; font-weight: 600; }

.case-tabs { position: sticky; top: var(--workspace-header-height, 83px); z-index: 15; display: flex; overflow-x: auto; padding: 0 20px; border: 1px solid var(--case-line); border-top: 0; background: #fff; box-shadow: 0 8px 18px rgba(18, 59, 93, .06); scrollbar-width: thin; }
.case-tabs a { position: relative; flex: 0 0 auto; padding: 15px 17px 13px; color: var(--case-muted); font-size: 14px; font-weight: 750; text-decoration: none; white-space: nowrap; }
.case-tabs a:hover { color: var(--case-blue); }
.case-tabs a.is-active { color: var(--case-navy); }
.case-tabs a.is-active::after { content: ""; position: absolute; right: 14px; bottom: 0; left: 14px; height: 3px; border-radius: 3px 3px 0 0; background: var(--case-blue); }
.case-tabs a span { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; margin-left: 5px; padding: 0 6px; border-radius: 999px; background: #eef2f6; font-size: 12px; }

.case-tab-panel { padding-top: 20px; }
.case-tab-panel[hidden] { display: none; }
.case-overview-grid { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(300px, .75fr); gap: 20px; align-items: start; }
.case-stack { display: grid; gap: 20px; }
.case-panel { min-width: 0; padding: 22px; border: 1px solid var(--case-line); border-radius: var(--case-radius); background: #fff; box-shadow: 0 8px 24px rgba(18, 59, 93, .045); }
.case-panel__header { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.case-panel__header h2 { color: var(--case-navy); font-size: 21px; font-weight: 700; }
.case-panel__header a:not(.button) { color: var(--case-blue); font-size: 13px; font-weight: 800; text-decoration: none; }
.case-details-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 0; border-top: 1px solid var(--case-line); }
.case-details-grid > div { padding: 14px 12px 14px 0; border-bottom: 1px solid var(--case-line); }
.case-details-grid .is-wide { grid-column: 1 / -1; }
.case-disclosure { padding: 0; }
.case-disclosure > summary { display: flex; align-items: center; justify-content: space-between; padding: 20px 22px; cursor: pointer; list-style: none; }
.case-disclosure > summary::-webkit-details-marker { display: none; }
.case-disclosure > summary strong { color: var(--case-navy); font-size: 18px; }
.case-disclosure > summary > span:last-child { color: var(--case-blue); font-size: 13px; font-weight: 800; }
.case-disclosure[open] > summary { border-bottom: 1px solid var(--case-line); }
.case-form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; padding: 20px 22px 22px; }
.case-form-grid .is-wide { grid-column: 1 / -1; }
.case-panel form label { display: grid; gap: 6px; margin-bottom: 13px; }
.case-panel form label > span { color: var(--case-muted); font-size: 12px; font-weight: 700; }
.case-panel input, .case-panel select, .case-panel textarea { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid #b9c7d3; border-radius: 7px; background: #fff; color: var(--case-text); }
.case-panel textarea { resize: vertical; }
.case-next-action { border-top: 4px solid var(--case-blue); }
.case-next-action button { width: 100%; }
.case-metric-row { display: flex; align-items: baseline; gap: 9px; padding: 11px 0; border-top: 1px solid var(--case-line); }
.case-metric-row strong { color: var(--case-navy); font-size: 23px; }
.case-metric-row span, .case-muted { color: var(--case-muted); font-size: 13px; }
.case-state-line { color: var(--case-navy); font-size: 17px; font-weight: 800; }
.case-empty { padding: 17px; border: 1px dashed #b9c7d3; border-radius: 8px; background: #f8fafc; color: var(--case-muted); font-size: 14px; }

.document-workspace { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 20px; align-items: start; }
.document-groups { position: sticky; top: 145px; display: grid; gap: 6px; padding: 16px; border: 1px solid var(--case-line); border-radius: var(--case-radius); background: #fff; }
.document-groups h2 { margin: 0 0 8px; color: var(--case-navy); font-size: 17px; font-weight: 800; }
.document-groups a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px; border-radius: 7px; color: var(--case-text); font-size: 13px; font-weight: 700; text-decoration: none; }
.document-groups a:hover { background: var(--case-blue-soft); color: var(--case-blue); }
.document-groups a strong { display: inline-flex; align-items: center; justify-content: center; min-width: 25px; height: 25px; border-radius: 999px; background: #eef2f5; font-size: 12px; }
.document-groups p { margin-top: 12px; color: var(--case-muted); font-size: 12px; line-height: 1.5; }
.document-groups__subgroups { display: grid; gap: 2px; margin-left: 12px; padding-left: 8px; border-left: 2px solid #d9e5eb; }
.document-groups__subgroups a { padding: 7px 8px; color: var(--case-muted); font-size: 12px; font-weight: 600; }
.case-document-group { display: grid; gap: 12px; scroll-margin-top: 145px; }
.case-document-group + .case-document-group { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--case-line); }
.case-document-group > header { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; background: #edf4f7; border-radius: 8px; }
.case-document-group > header h3 { margin: 0; color: var(--case-navy); font-size: 16px; }
.case-document-group > header span, .case-document-subgroup h4 span { padding: 2px 8px; color: var(--case-blue); background: #fff; border-radius: 999px; font-size: 12px; }
.case-document-subgroup { display: grid; gap: 10px; scroll-margin-top: 145px; }
.case-document-subgroup h4 { margin: 0; padding: 8px 11px; color: #385868; background: #f6f9fa; border-left: 3px solid #68a9c2; font-size: 14px; }
.document-content { display: grid; min-width: 0; gap: 20px; }
.document-section { scroll-margin-top: 155px; }
.document-card { overflow: hidden; margin-top: 12px; border: 1px solid var(--case-line); border-radius: 10px; background: #fff; }
.document-card.is-archived { background: #fafbfc; }
.document-card.is-deleted { opacity: .78; }
.document-card__head { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 16px; }
.document-file-icon { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 9px; background: var(--case-blue-soft); color: var(--case-blue); font-size: 10px; font-weight: 900; }
.document-card__title { min-width: 0; }
.document-card__title h3 { overflow: hidden; color: var(--case-navy); font-size: 16px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.document-card__title p { margin-top: 5px; overflow: hidden; color: var(--case-muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.document-labels { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 5px; }
.document-labels span { padding: 3px 7px; border-radius: 999px; background: #eef2f5; color: #526879; font-size: 10px; font-weight: 800; }
.document-card__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.document-card--compact { margin-top: 7px; }
.document-card__head { grid-template-columns: 38px minmax(240px, 1.35fr) minmax(190px, .85fr) auto; gap: 10px; padding: 10px 12px; }
.document-file-icon { width: 38px; height: 38px; border-radius: 7px; font-size: 9px; }
.document-card__title h3 { margin: 0; font-size: 13px; }
.document-card__title p { margin-top: 3px; font-size: 11px; }
.document-card__title small { display: block; margin-top: 2px; color: var(--case-muted); font-size: 10px; }
.document-card__signature { display: grid; min-width: 0; gap: 2px; padding-left: 10px; border-left: 2px solid #d9e3e8; }
.document-card__signature strong, .document-card__signature span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.document-card__signature strong { color: var(--case-muted); font-size: 11px; }
.document-card__signature span { color: var(--case-text); font-size: 11px; }
.document-card__signature.has-signature { border-left-color: var(--case-green); }
.document-card__signature.has-signature strong { color: var(--case-green); }
.document-card__actions .button.compact { min-height: 32px; padding: 6px 9px; font-size: 11px; }
.document-card--compact .document-card__facts { display: none; }
.document-card--compact .document-versions > summary { padding: 8px 12px; }
.document-card__facts { display: flex; flex-wrap: wrap; gap: 18px; padding: 10px 16px; border-top: 1px solid var(--case-line); background: #f8fafc; color: var(--case-muted); font-size: 12px; }
.document-card__facts strong { color: var(--case-text); }
.document-card__facts .is-success { color: var(--case-green); font-weight: 800; }
.document-versions { border-top: 1px solid var(--case-line); }
.document-versions > summary { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; color: var(--case-blue); cursor: pointer; font-size: 12px; font-weight: 800; list-style: none; }
.document-versions > summary::-webkit-details-marker { display: none; }
.document-versions > summary::after { content: "Развернуть"; color: var(--case-muted); font-size: 11px; font-weight: 600; }
.document-versions[open] > summary::after { content: "Свернуть"; }
.document-version-list { display: grid; gap: 8px; padding: 0 16px 16px; }
.document-version { padding: 12px; border: 1px solid var(--case-line); border-radius: 8px; background: #fafcfd; }
.document-version.is-current { border-left: 4px solid var(--case-green); background: var(--case-green-soft); }
.document-version > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.document-version > header > div { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.document-version > header span { padding: 2px 6px; border-radius: 999px; background: #d8eddf; color: var(--case-green); font-size: 10px; font-weight: 800; }
.document-version > header small { width: 100%; color: var(--case-muted); }
.case-text-action { padding: 0; border: 0; background: transparent; color: var(--case-blue); cursor: pointer; font: inherit; font-size: 12px; font-weight: 800; text-decoration: none; }
.signature-list { display: grid; gap: 7px; margin-top: 10px; }
.signature-row { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 9px; border-radius: 7px; background: #fff; }
.signature-row > div:nth-child(2) { display: grid; min-width: 0; }
.signature-row strong, .signature-row span, .signature-row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.signature-row strong { font-size: 12px; }
.signature-row span, .signature-row small { color: var(--case-muted); font-size: 11px; }
.signature-row a { color: var(--case-blue); font-size: 11px; font-weight: 800; text-decoration: none; }
.signature-mark { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: #eef2f5; color: var(--case-muted); font-size: 10px; font-weight: 900; }
.signature-mark.is-valid { background: #dff1e6; color: var(--case-green); }
.signature-mark.is-invalid { background: #fce4e2; color: var(--case-red); }

.case-team-list { display: grid; gap: 8px; }
.case-team-list > div { display: flex; align-items: center; gap: 11px; padding: 11px 0; border-bottom: 1px solid var(--case-line); }
.case-team-list > div > div { display: grid; flex: 1; }
.case-team-list span:not(.case-avatar) { color: var(--case-muted); font-size: 12px; }
.case-avatar { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--case-blue-soft); color: var(--case-blue); font-weight: 900; }
.case-timeline { display: grid; }
.case-timeline article { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 22px; padding: 15px 0; border-top: 1px solid var(--case-line); }
.case-timeline time { color: var(--case-muted); font-size: 12px; }
.case-timeline article div { display: grid; gap: 4px; }
.case-timeline article span { color: var(--case-muted); font-size: 12px; }

.case-preview-dialog { width: min(1280px, calc(100vw - 40px)); height: min(900px, calc(100vh - 40px)); padding: 0; border: 0; border-radius: 12px; background: #fff; box-shadow: 0 24px 80px rgba(5, 31, 49, .3); }
.case-preview-dialog::backdrop { background: rgba(7, 24, 36, .62); }
.case-preview-dialog > header { display: flex; align-items: center; justify-content: space-between; height: 64px; padding: 10px 18px; border-bottom: 1px solid var(--case-line); }
.case-preview-dialog > header div { display: grid; min-width: 0; }
.case-preview-dialog > header span { color: var(--case-muted); font-size: 11px; }
.case-preview-dialog > header strong { overflow: hidden; color: var(--case-navy); text-overflow: ellipsis; white-space: nowrap; }
.case-preview-dialog > header button { width: 38px; height: 38px; border: 0; border-radius: 50%; background: #eef2f5; color: var(--case-navy); cursor: pointer; font-size: 24px; }
.case-preview-dialog iframe { width: 100%; height: calc(100% - 64px); border: 0; background: #f3f5f7; }

.case-registry-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; padding: 18px 2px 22px; }
.case-registry-hero h1 { color: var(--case-navy); font-weight: 750; }
.case-registry-hero p { margin-top: 7px; color: var(--case-muted); }
.case-registry-total { display: grid; min-width: 120px; text-align: right; }
.case-registry-total strong { color: var(--case-navy); font-size: 32px; }
.case-registry-total span { color: var(--case-muted); font-size: 12px; }
.case-scope-tabs { display: flex; gap: 5px; margin-bottom: 12px; }
.case-scope-tabs a { padding: 9px 14px; border-radius: 8px; color: var(--case-muted); font-size: 13px; font-weight: 800; text-decoration: none; }
.case-scope-tabs a.is-active { background: #fff; color: var(--case-blue); box-shadow: 0 3px 12px rgba(18, 59, 93, .08); }
.case-registry-filters { margin-bottom: 16px; padding: 16px; }
.case-registry-filters form { display: grid; grid-template-columns: minmax(260px, 2fr) repeat(3, minmax(150px, 1fr)) auto auto; gap: 10px; align-items: end; }
.case-registry-filters label { display: grid; gap: 5px; margin: 0 !important; }
.case-registry-filters label > span { font-size: 11px !important; }
.case-registry-filters .case-checkbox { display: flex; align-items: center; min-height: 42px; white-space: nowrap; }
.case-registry-filters .case-checkbox input { width: auto; min-height: 0; }
.case-registry-table { padding: 0; }
.case-registry-table table { width: 100%; border-collapse: collapse; }
.case-registry-table th { padding: 12px 14px; border-bottom: 1px solid var(--case-line); background: #f8fafc; color: var(--case-muted); font-size: 11px; text-align: left; text-transform: uppercase; }
.case-registry-table td { padding: 15px 14px; border-bottom: 1px solid var(--case-line); vertical-align: top; font-size: 13px; }
.case-registry-table tr:last-child td { border-bottom: 0; }
.case-registry-table tbody tr:hover { background: #fbfdfe; }
.case-registry-table tbody tr.is-overdue { box-shadow: inset 4px 0 var(--case-red); }
.case-registry-table td { color: var(--case-text); }
.case-registry-table td > strong, .case-registry-table td > span, .case-registry-table td > small { display: block; margin-top: 4px; }
.case-registry-table td > span, .case-registry-table td > small { color: var(--case-muted); }
.case-number-link { display: inline-block; color: var(--case-blue); font-size: 16px; font-weight: 850; text-decoration: none; }

/* Incoming applications and registered cases use the same workspace shell. */
.application-registry-table .registry-table { min-width: 1180px; }
.application-registry-table details { margin: 6px 0; }
.application-registry-table form { display: grid; gap: 6px; margin-top: 7px; }
.application-registry-table form .button { justify-self: start; }
.application-registry-table .status { margin: 5px 0; padding: 7px 9px; border-left: 3px solid var(--case-blue); background: var(--case-blue-soft); font-size: 12px; }
.application-workspace { max-width: 1560px; }
.application-hero .case-hero__status .button { text-decoration: none; }
.application-workspace .review-nav { margin: 0; }
.application-review-section { margin-top: 20px; scroll-margin-top: 150px; }
.application-review-section[hidden] { display: none; }
.application-review-section > .section-heading:first-child { margin-top: 0; }
.application-workspace .review-grid { gap: 10px; }
.application-workspace .review-card { border: 1px solid var(--case-line); border-radius: 8px; background: #f8fafc; }
.application-workspace .review-actions form { border: 1px solid var(--case-line); border-radius: 9px; background: #f8fafc; }
.application-workspace .review-file { border-color: var(--case-line); }
.application-workspace details.review-block { overflow: hidden; border-color: var(--case-line); border-radius: 8px; }
.application-workspace .review-attachment-group > h3 { border-left-color: var(--case-blue); border-radius: 6px 6px 0 0; background: var(--case-blue-soft); color: var(--case-navy); }
.application-workspace .review-success, .application-workspace .review-warning { border-radius: 0 7px 7px 0; }
.case-panel .review-warning { padding: 10px 12px; border-left: 4px solid var(--case-amber); border-radius: 0 7px 7px 0; background: #fff7ed; color: #7c4a0c; }
.case-disclosure-inline { margin: 14px 0; border-top: 1px solid var(--case-line); border-bottom: 1px solid var(--case-line); }
.case-disclosure-inline > summary { padding: 12px 0; color: var(--case-blue); cursor: pointer; font-size: 13px; font-weight: 800; }
.case-disclosure-inline > div { display: grid; gap: 16px; padding: 0 0 14px; }
.case-disclosure-inline form + form { padding-top: 14px; border-top: 1px solid var(--case-line); }
.case-registry-table > .section-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 20px; border-bottom: 1px solid var(--case-line); }
.case-registry-table > .section-heading h2 { color: var(--case-navy); }
.case-registry-table .section-footer-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.case-registry-table .section-footer-actions .button.active { border-color: var(--case-blue); background: var(--case-blue-soft); color: var(--case-navy); }
.notification-workspace .event-list { display: grid; gap: 0; }
.notification-workspace .event-list > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px; padding: 17px 4px; border-bottom: 1px solid var(--case-line); }
.notification-workspace .event-list > div:last-child { border-bottom: 0; }
.notification-workspace .event-list > div.notification-unread { padding-left: 14px; border-left: 4px solid var(--case-blue); background: var(--case-blue-soft); }
.notification-workspace .event-list p { grid-column: 1; margin: 0; color: var(--case-muted); }
.notification-workspace .event-list form { grid-column: 2; grid-row: 1 / span 2; }
.case-pagination { display: grid; grid-template-columns: minmax(160px, 1fr) auto minmax(160px, 1fr); gap: 18px; align-items: center; padding: 16px 18px; border-top: 1px solid var(--case-line); background: #f8fafc; }
.case-pagination > div { display: flex; gap: 7px; color: var(--case-muted); font-size: 12px; }
.case-pagination > div strong { color: var(--case-text); }
.case-pagination nav { display: flex; align-items: center; justify-content: center; gap: 4px; }
.case-pagination nav > a:not(.button) { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; height: 34px; padding: 0 7px; border-radius: 7px; color: var(--case-muted); font-size: 12px; font-weight: 800; text-decoration: none; }
.case-pagination nav > a:hover, .case-pagination nav > a.is-active { background: var(--case-blue-soft); color: var(--case-navy); }
.case-pagination form { justify-self: end; }
.case-pagination form label { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--case-muted); font-size: 12px; }
.case-pagination form select { width: auto; min-height: 34px; padding: 5px 28px 5px 8px; }
.workspace-narrow { max-width: 1060px; }
.workspace-section-gap { margin-top: 18px; }
.workspace-form-panel > form { margin: 0; }
.workspace-form-panel .section-footer-actions { grid-column: 1 / -1; }

@media (max-width: 1050px) {
  .case-overview-grid { grid-template-columns: 1fr; }
  .document-workspace { grid-template-columns: 1fr; }
  .document-groups { position: static; display: flex; overflow-x: auto; }
  .document-groups h2, .document-groups p, .document-groups__subgroups { display: none; }
  .document-groups a { flex: 0 0 auto; }
  .case-registry-filters form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .case-registry-filters .is-search { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .case-workspace { width: min(100% - 20px, 1560px); padding-top: 10px; }
  .case-global-header { position: static; }
  .case-hero { grid-template-columns: 1fr; padding: 19px 17px 0; }
  .case-hero__status { align-items: flex-start; }
  .case-hero__facts { grid-template-columns: 1fr 1fr; }
  .case-tabs { top: 0; padding: 0 5px; }
  .case-panel { padding: 16px; }
  .case-form-grid { grid-template-columns: 1fr; }
  .case-form-grid .is-wide { grid-column: auto; }
  .document-card__head { grid-template-columns: 40px minmax(0, 1fr); }
  .document-file-icon { width: 40px; height: 40px; }
  .document-card__actions { grid-column: 1 / -1; justify-content: stretch; }
  .document-card__actions > * { flex: 1; text-align: center; }
  .signature-row { grid-template-columns: 34px minmax(0, 1fr); }
  .signature-row > a { grid-column: 2; }
  .case-timeline article { grid-template-columns: 1fr; gap: 5px; }
  .case-registry-hero { align-items: flex-start; }
  .case-registry-filters form { grid-template-columns: 1fr; }
  .case-registry-filters .is-search { grid-column: auto; }
  .case-registry-table table, .case-registry-table tbody, .case-registry-table tr, .case-registry-table td { display: block; }
  .case-registry-table thead { display: none; }
  .case-registry-table tr { padding: 14px; border-bottom: 1px solid var(--case-line); }
  .case-registry-table td { padding: 5px 0; border: 0; }
  .case-pagination { grid-template-columns: 1fr; }
  .case-pagination > div, .case-pagination nav { justify-content: center; }
  .case-pagination form { justify-self: center; }
}

.completeness-workspace { display: grid; gap: 18px; }
.completeness-list { display: grid; gap: 10px; }
.completeness-item { display: grid; grid-template-columns: minmax(260px, .8fr) minmax(280px, 1.2fr); gap: 16px; align-items: center; padding: 14px 16px; border: 1px solid #dce5ec; border-radius: 10px; background: #f8fafc; }
.completeness-item.is-passed { border-left: 4px solid #21854a; background: #f5fbf7; }
.completeness-item__check { display: grid; grid-template-columns: 20px 1fr; gap: 3px 10px; align-items: start; font-weight: 700; }
.completeness-item__check input { margin-top: 3px; }
.completeness-item__check small { grid-column: 2; color: #667987; font-weight: 400; }
.completeness-item textarea, .completeness-comment textarea { width: 100%; box-sizing: border-box; }
.completeness-comment { display: grid; gap: 7px; font-weight: 700; }
.case-form-actions { display: flex; flex-wrap: wrap; gap: 10px; }
@media (max-width: 760px) { .completeness-item { grid-template-columns: 1fr; } }
.case-message-list { display: grid; gap: 12px; }
.case-message { padding: 16px; border: 1px solid var(--case-line); border-left: 4px solid var(--case-blue); border-radius: 9px; background: #fff; }
.case-message.is-closed { border-left-color: #21854a; background: #f6fbf8; }
.case-message > header { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.case-message > header div { display: grid; gap: 3px; }
.case-message > header span, .case-message small { color: #687c88; font-size: 12px; }
.case-message h3 { margin: 8px 0; font-size: 17px; }
.case-message p { white-space: pre-wrap; }
.case-message-flags { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
.case-message-flags span { padding: 4px 8px; color: #874300; background: #fff4df; border-radius: 999px; font-size: 12px; font-weight: 700; }
.case-attachment-link { display: block; margin: 8px 0; color: var(--case-blue); }
.case-message-form { display: grid; gap: 12px; }
.case-message-form label:not(.case-check) { display: grid; gap: 5px; font-weight: 700; }
.case-message-form input, .case-message-form select, .case-message-form textarea { width: 100%; box-sizing: border-box; }
.case-check { display: flex; gap: 8px; align-items: center; }
.case-accepted-document { display: inline-block; margin: 5px 0; padding: 4px 8px; color: #17663a; background: #e8f7ee; border-radius: 999px; font-size: 12px; font-weight: 700; }
.case-accept-attachment { margin: 8px 0; padding: 9px 11px; background: #f6f9fb; border-radius: 7px; }
.case-accept-attachment summary { color: var(--case-blue); font-weight: 700; cursor: pointer; }
.case-accept-attachment form { display: grid; grid-template-columns: 1fr 1fr auto; gap: 8px; align-items: end; margin-top: 9px; }
.case-accept-attachment label { display: grid; gap: 4px; }
@media (max-width: 760px) { .case-accept-attachment form { grid-template-columns: 1fr; } }
.commercial-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.commercial-grid > :last-child { grid-column: 1 / -1; }
.commercial-list { display: grid; gap: 9px; margin-bottom: 16px; }
.commercial-list article { display: flex; justify-content: space-between; gap: 14px; padding: 13px; background: #f7fafb; border: 1px solid var(--case-line); border-radius: 8px; }
.commercial-list article > div { display: grid; gap: 3px; }
.commercial-list span, .commercial-list small { color: #677b87; }
.commercial-list form { display: flex; flex-wrap: wrap; gap: 6px; }
@media (max-width: 900px) { .commercial-grid { grid-template-columns: 1fr; } .commercial-grid > :last-child { grid-column: auto; } }

@media (max-width: 1050px) { .document-card__head { grid-template-columns: 38px minmax(0, 1fr) auto; } .document-card__signature { grid-column: 2; border-left: 0; padding-left: 0; } .document-card__actions { grid-column: 3; grid-row: 1 / span 2; } }

.document-state-label { margin-left: 5px; padding: 2px 5px; border-radius: 999px; background: #eef2f5; color: var(--case-muted); font-size: 9px; vertical-align: middle; }

/* Contract workflow phases (1.5.1). */
.contract-workflow-phases { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0 0 20px; padding: 0; list-style: none; }
.contract-workflow-phases li { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 2px 9px; align-content: center; min-width: 0; padding: 12px; border: 1px solid var(--case-line); border-radius: 9px; background: #f7f9fb; color: var(--case-muted); }
.contract-workflow-phases li > span { grid-row: 1 / 3; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: #e7edf2; font-weight: 800; }
.contract-workflow-phases strong { color: inherit; font-size: 13px; line-height: 1.2; }
.contract-workflow-phases small { font-size: 11px; line-height: 1.2; }
.contract-workflow-phases .is-active { border-color: var(--case-blue); background: var(--case-blue-soft); color: var(--case-navy); }
.contract-workflow-phases .is-active > span { background: var(--case-blue); color: #fff; }
.contract-workflow-phases .is-complete { border-color: #b8d9c5; background: var(--case-green-soft); color: var(--case-green); }
.contract-workflow-phases .is-complete > span { background: var(--case-green); color: #fff; }
@media (max-width: 760px) { .contract-workflow-phases { grid-template-columns: 1fr; } }

.contract-comparisons { display: grid; gap: 8px; margin: 0 0 20px; }
.contract-comparison { border: 1px solid var(--case-line); border-radius: 9px; background: #f9fbfc; }
.contract-comparison.is-changed { border-color: #e9bb72; background: #fff9ef; }
.contract-comparison > summary { display: flex; justify-content: space-between; gap: 12px; padding: 12px 14px; cursor: pointer; }
.contract-comparison > summary strong { color: var(--case-navy); font-size: 14px; }
.contract-comparison > summary span { color: var(--case-green); font-size: 12px; font-weight: 800; text-align: right; }
.contract-comparison.is-changed > summary span { color: var(--case-amber); }
.contract-comparison dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0 14px 14px; }
.contract-comparison dt { color: var(--case-muted); font-size: 11px; font-weight: 700; }
.contract-comparison dd { margin: 4px 0 0; overflow-wrap: anywhere; font-size: 13px; }
.contract-revision-facts { margin: 0 0 18px; }
@media (max-width: 760px) { .contract-comparison dl { grid-template-columns: 1fr; } }

.contract-deadline-warning { border-left: 4px solid #b45309; background: #fff7ed; color: #78350f; padding: .75rem 1rem; margin: 1rem 0; }

.contract-exchange-editor fieldset { display: grid; gap: 12px; min-width: 0; border: 1px solid var(--case-line); border-radius: 8px; padding: 14px; }
.contract-exchange-editor fieldset legend { padding: 0 6px; color: var(--case-navy); font-weight: 700; }
.contract-exchange-editor [hidden] { display: none !important; }
.contract-exchange-editor .contract-exchange-checkbox { display: flex; align-items: center; gap: 8px; }
.contract-exchange-editor .contract-exchange-checkbox input { width: auto; }

.contract-file-stage { display: grid; gap: .5rem; padding: .75rem; border: 1px solid var(--case-line); border-radius: 8px; }
.contract-file-stage > span { color: var(--case-muted); font-size: .85rem; }
.contract-file-stage > div { display: flex; gap: .5rem; flex-wrap: wrap; }

/* Contract preparation is a full-width workspace, not half of the payment grid. */
.contract-commercial-grid { grid-template-columns: minmax(0, 1fr); }
.contract-commercial-grid > * { min-width: 0; }
.contract-wizard-layout { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 24px; align-items: start; }
.contract-wizard-main { min-width: 0; }
.contract-wizard-step { margin: 0 0 14px; border: 1px solid #d9e3eb; background: #fff; }
.contract-wizard-step > summary { display: flex; gap: 14px; align-items: center; padding: 18px; cursor: pointer; list-style: none; }
.contract-wizard-step > summary::-webkit-details-marker { display: none; }
.contract-wizard-step > summary > span:last-child { display: grid; gap: 5px; }
.contract-wizard-step > summary strong { font-size: 17px; color: #183e59; }
.contract-wizard-step > summary small { color: #63798a; font-size: 13px; }
.contract-step-number { display: grid; place-items: center; width: 34px; height: 34px; flex-shrink: 0; background: #edf3f7; color: #185b82; font-weight: 700; }
.contract-wizard-step[open] { border-color: #19719d; }
.contract-wizard-step[open] > summary { background: #f0f7fb; }
.contract-step-body { padding: 4px 20px 20px; }
.contract-step-body > form, .contract-step-body > .commercial-list { margin: 16px 0; }
.contract-wizard-aside { position: sticky; top: 20px; padding: 20px; background: #f4f7fa; border: 1px solid #d9e3eb; }
.contract-wizard-aside h3 { margin-top: 0; }
.contract-wizard-nav { display: grid; gap: 8px; }
.contract-wizard-nav button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 12px; text-align: left; background: white; color: #344c5e; border: 1px solid #dae3eb; font: inherit; cursor: pointer; }
.contract-wizard-nav button span { font-weight: 700; }
.contract-wizard-nav button[aria-current="step"] { border-color: #176b96; color: #125779; background: #e7f2fa; }
.contract-wizard-summary { display: grid; gap: 14px; margin: 22px 0; }
.contract-wizard-summary dt { font-size: 12px; color: #607587; }
.contract-wizard-summary dd { margin: 3px 0 0; font-weight: 600; overflow-wrap: anywhere; }
.contract-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.contract-field-grid .is-wide { grid-column: 1 / -1; }
.contract-hash { overflow-wrap: anywhere; font-size: 12px; }
.contract-approval-result { color: #286344; }
@media (max-width: 1100px) { .contract-wizard-layout { grid-template-columns: minmax(0, 1fr) 245px; gap: 16px; } }
@media (max-width: 900px) { .contract-wizard-layout { display: flex; flex-direction: column; } .contract-wizard-main, .contract-wizard-aside { width: 100%; box-sizing: border-box; } .contract-wizard-aside { position: static; order: -1; } .contract-wizard-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); } .contract-wizard-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .contract-field-grid { grid-template-columns: 1fr; } .contract-step-body { padding: 4px 12px 16px; } .contract-wizard-step > summary { padding: 14px 12px; } .contract-wizard-nav { grid-template-columns: 1fr; } }

.contract-method-picker { border: 0; padding: 0; margin: 14px 0; min-width: 0; }
.contract-method-cards { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.contract-method-card { position: relative; cursor: pointer; min-width: 0; }
.contract-method-card input { position: absolute; opacity: 0; width: 1px; height: 1px; min-height: 0; margin: 0; padding: 0; }
.contract-method-card > span { display: grid; align-content: start; gap: 10px; height: 100%; box-sizing: border-box; min-height: 108px; padding: 12px; border: 1px solid #d8e3ec; background: #f8fafc; color: #425d70; }
.contract-method-card i { font-style: normal; font-size: 25px; }
.contract-method-card strong { font-size: 13px; overflow-wrap: anywhere; }
.contract-method-card input:checked + span { border-color: #16658f; background: #eaf5fc; color: #125779; }
.contract-method-card input:focus-visible + span { outline: 2px solid #125779; outline-offset: 2px; }
@media (max-width: 1100px) { .contract-method-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .contract-method-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Compact contract editor uses the document navigation palette and rounded cards. */
.contract-workspace { padding: 18px; }
.contract-wizard-layout { grid-template-columns: minmax(0, 1fr) 235px; gap: 16px; }
.contract-wizard-step, .contract-wizard-aside { border-radius: 10px; overflow: hidden; }
.contract-wizard-step > summary { padding: 12px 14px; gap: 10px; }
.contract-wizard-step > summary strong { font-size: 15px; }
.contract-wizard-step > summary small { font-size: 12px; }
.contract-step-number { width: 28px; height: 28px; border-radius: 8px; font-size: 13px; }
.contract-step-body { padding: 8px 14px 14px; }
.contract-workspace .case-message-form label { margin-bottom: 8px; gap: 3px; }
.contract-workspace .case-message-form input, .contract-workspace .case-message-form select, .contract-workspace .case-message-form textarea { min-height: 32px; padding: 6px 8px; font-size: 13px; border-radius: 7px; }
.contract-workspace .case-message-form label > span { font-size: 11px; }
.contract-workspace .case-muted { font-size: 12px; line-height: 1.4; }
.contract-conditions-fields { border: 0; margin: 0; padding: 0; min-width: 0; }
.contract-requisites-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.contract-revision-caption { color: var(--case-muted); font-size: 11px; }
.contract-section-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 12px 0 8px; }
.contract-section-heading h3 { margin: 0; font-size: 14px; color: var(--case-navy); }
.contract-comparison-badge { display: inline-flex; border: 0; border-radius: 999px; padding: 3px 8px; color: #446675; background: #edf4f7; font-size: 11px; line-height: 1.4; }
button.contract-comparison-badge { cursor: pointer; }
.contract-comparison-badge.is-changed { color: #86540c; background: #fff3d9; }
.contract-party-switch { display: flex; gap: 8px; margin: 6px 0 12px; }
.contract-party-switch label { position: relative; cursor: pointer; flex: 1; }
.contract-party-switch input { position: absolute; opacity: 0; width: 1px!important; min-height: 0!important; height: 1px; }
.contract-party-switch label > span { display: block; padding: 7px 12px; border: 1px solid var(--case-line); border-radius: 8px; background: #f6f9fb; font-size: 13px!important; }
.contract-party-switch input:checked + span { background: var(--case-blue-soft); border-color: var(--case-blue); color: var(--case-blue); }
.contract-party-switch input:focus-visible + span { outline: 2px solid var(--case-blue); }
.contract-party-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.contract-party-column { border: 1px solid var(--case-line); border-radius: 10px; min-width: 0; margin: 0; padding: 10px; background: #fbfcfd; }
.contract-party-heading { display: flex; flex-direction: column; justify-content: center; gap: 4px; height: 65px; margin-bottom: 8px; }
.contract-party-heading h4 { margin: 0; font-size: 14px; color: var(--case-navy); }
.contract-party-column.is-disabled { opacity: .5; background: #f0f2f4; }
.contract-party-column.is-nonlegal [data-party-basis] { visibility: hidden; }
.contract-party-column textarea { height: 76px; resize: vertical; }
.contract-exchange-section { margin-top: 16px; padding-top: 2px; border-top: 1px solid var(--case-line); }
.contract-exchange-section fieldset:not(.contract-method-picker) { border: 1px solid var(--case-line); border-radius: 8px; padding: 10px; margin: 8px 0; }
.contract-exchange-section legend { font-size: 12px; padding: 0 5px; }
.contract-workspace .contract-method-cards { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.contract-workspace .contract-method-card > span { min-height: 74px; gap: 5px; padding: 8px; border-radius: 8px; }
.contract-workspace .contract-method-card i { font-size: 20px; }
.contract-workspace .contract-method-card strong { font-size: 11px; }
.contract-step-footer { display: flex; justify-content: space-between; align-items: center; gap: 12px; width: 100%; margin-top: 16px; }
.contract-workspace .contract-step-footer .button { font-size: 12px; padding: 8px 12px; min-height: 34px; }
.contract-wizard-aside { padding: 12px; background: #f7fafc; top: 145px; }
.contract-wizard-aside h3 { font-size: 14px; margin-bottom: 10px; }
.contract-wizard-nav { gap: 4px; }
.contract-wizard-nav button { padding: 8px; border-radius: 8px; font-size: 12px; background: transparent; border-color: transparent; }
.contract-wizard-summary { gap: 9px; margin: 14px 0; }
.contract-wizard-summary dt { font-size: 11px; }
.contract-wizard-summary dd { font-size: 12px; font-weight: 600; }
.contract-comparison-dialog { width: min(700px, calc(100vw - 40px)); max-height: 85vh; overflow: auto; box-sizing: border-box; border: 1px solid var(--case-line); border-radius: 12px; padding: 20px; }
.contract-comparison-dialog::backdrop { background: rgba(18, 40, 58, .35); }
.contract-comparison-dialog header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.contract-comparison-dialog h3 { font-size: 17px; margin: 0; }
.contract-comparison-dialog header button { border: 0; background: none; font-size: 26px; cursor: pointer; }
.contract-comparison-dialog dt { font-size: 12px; color: var(--case-muted); margin: 14px 0 6px; }
.contract-comparison-dialog dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 13px; line-height: 1.5; }
@media (max-width: 1100px) { .contract-workspace .contract-method-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) { .contract-wizard-layout { display: flex; } .contract-party-columns { grid-template-columns: 1fr; } .contract-party-heading { height: auto; } .contract-party-column.is-nonlegal [data-party-basis] { display: none; } }
@media (max-width: 560px) { .contract-requisites-row { grid-template-columns: 1fr 1fr; } .contract-revision-caption { grid-column: 1 / -1; } .contract-party-switch { flex-direction: column; } .contract-step-footer { flex-wrap: wrap; } .contract-workspace .contract-method-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.contract-party-options-row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: center; margin: 10px 0; }
.contract-party-options-row .contract-section-heading { margin: 0; }
.contract-party-options-row .contract-party-switch { margin: 0; }
@media (max-width: 1100px) { .contract-party-options-row { grid-template-columns: 1fr; gap: 8px; } }

/* Files and commands in project / dispatch / conclusion are compact horizontal rows. */
.contract-action-row { display:flex; flex-wrap:wrap; gap:10px; align-items:center; padding:10px 0; border-bottom:1px solid var(--case-line); font-size:13px; }
.contract-action-row > form { margin:0; flex:0 1 auto; }
.contract-workspace .contract-action-row .button { width:auto; min-height:32px; padding:6px 10px; font-size:12px; }
.contract-row-file { flex:1 1 170px; min-width:0; overflow-wrap:anywhere; }
.contract-row-file strong, .contract-row-file small { display:block; }
.contract-row-file small { color:var(--case-muted); font-size:11px; margin-top:3px; }
.contract-row-actions { display:flex; gap:5px; align-items:center; flex-wrap:wrap; }
.contract-document-icon { font-size:16px!important; padding:4px 7px!important; }
.contract-inline-upload { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.contract-inline-upload label { display:flex; flex-direction:column; gap:3px; font-size:11px; }
.contract-inline-upload input[type=file] { width:230px; max-width:100%; font-size:12px; }
.contract-conclusion-controls { margin-top:14px; }
.contract-conclusion-controls .button[type=submit] { justify-self:end; grid-column:1/-1; }
.contract-signature-file .signature-mark { width:28px; height:28px; font-size:11px; }

.contract-conclusion-controls .contract-field-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:900px) { .contract-conclusion-controls .contract-field-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .contract-conclusion-controls .contract-field-grid { grid-template-columns:1fr; } }

/* Approval commands keep their natural width; signatures are children of the file. */
.contract-step-body .button { width:auto; justify-self:start; }
.contract-document-with-signatures { border:1px solid var(--case-line); border-radius:8px; padding:0 10px; margin:10px 0; }
.contract-document-with-signatures > .contract-action-row { border-bottom:0; }
.contract-document-signatures { margin:0 0 8px 24px; padding:8px 0 0; border-top:1px solid var(--case-line); }
.contract-document-signatures:not(:has(.signature-row)) { display:none; }
.contract-document-signatures .signature-row { display:flex; gap:10px; align-items:center; padding:6px 0; border:0; background:transparent; }
.contract-signature-person { flex:1; min-width:0; }
.contract-signature-person strong,.contract-signature-person small { display:block; font-size:12px; overflow-wrap:anywhere; }
.contract-signature-person small { font-size:11px; color:var(--case-muted); }
.contract-signature-actions { display:flex; gap:10px; flex-wrap:wrap; }
.contract-approval-actions { align-items:center; }
.contract-inline-upload input[name=reason] { width:200px; max-width:100%; font-size:12px; }
@media(max-width:560px) { .contract-document-signatures { margin-left:8px; } .contract-document-signatures .signature-row { flex-wrap:wrap; } }

/* Compact conditions: consistent readable widths and genuinely hidden inactive fields. */
.contract-workspace [hidden], .contract-exchange-editor [hidden] { display: none !important; }
.contract-requisites-row { grid-template-columns: 160px 180px minmax(0, 1fr); align-items: end; }
.contract-revision-caption { justify-self: end; align-self: center; }
.contract-party-options-row { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.contract-party-switch { flex-direction: row; flex-wrap: wrap; gap: 6px; }
.contract-party-switch label { flex: 0 0 auto; margin-bottom: 0 !important; }
.contract-party-switch label > span { padding: 6px 10px; font-size: 12px !important; }
.contract-party-columns { grid-template-columns: minmax(0, 410px); max-width: 410px; }
.contract-party-columns[data-party-count="3"] { grid-template-columns: repeat(2, minmax(0, 410px)); max-width: 830px; }
.contract-party-heading { height: auto; min-height: 62px; justify-content: flex-start; }
.contract-party-fixed-type { display: flex; align-items: center; min-height: 32px; box-sizing: border-box; padding: 6px 8px; color: var(--case-muted); font-size: 13px; }
.contract-workspace .contract-method-cards { display: flex; flex-wrap: wrap; gap: 6px; }
.contract-workspace .contract-method-card { flex: 0 1 176px; margin-bottom: 0 !important; }
.contract-workspace .contract-method-card > span { display: flex; align-items: center; gap: 7px; min-height: 38px; padding: 7px 9px; }
.contract-workspace .contract-method-card i { flex: 0 0 18px; font-size: 18px; line-height: 1; }
.contract-workspace .contract-method-card strong { font-size: 12px; line-height: 1.25; overflow-wrap: normal; }
.contract-workspace .contract-exchange-section fieldset[data-exchange-channel] { width: 100%; max-width: 580px; box-sizing: border-box; }
.contract-exchange-section { margin-top: 12px; }
.contract-exchange-section .contract-section-heading { margin-top: 10px; }
.contract-workspace .contract-exchange-section > .case-muted { margin: 5px 0 8px; }
/* Subtle accents identify steps; editable content stays neutral. */
.contract-wizard-step { --contract-step-tint: #f0f7fb; --contract-step-accent: #16658f; }
.contract-wizard-step[data-contract-step="finance"] { --contract-step-tint: #f1f8f3; --contract-step-accent: #347454; }
.contract-wizard-step[data-contract-step="project"] { --contract-step-tint: #f6f3fb; --contract-step-accent: #725599; }
.contract-wizard-step[data-contract-step="signing"] { --contract-step-tint: #fff8ee; --contract-step-accent: #936623; }
.contract-wizard-step[data-contract-step="conclusion"] { --contract-step-tint: #eef8f7; --contract-step-accent: #24766b; }
.contract-wizard-step > summary, .contract-wizard-step[open] > summary { background: var(--contract-step-tint); }
.contract-wizard-step .contract-step-number { color: var(--contract-step-accent); background: #ffffffa6; }
@media (max-width: 900px) {
  .contract-party-columns, .contract-party-columns[data-party-count="3"] { grid-template-columns: minmax(0, 410px); }
}
@media (max-width: 560px) {
  .contract-requisites-row { grid-template-columns: minmax(0, 160px) minmax(0, 180px); gap: 8px; }
  .contract-revision-caption { justify-self: start; grid-column: 1 / -1; }
  .contract-workspace .contract-method-card { flex: 1 1 145px; max-width: 210px; }
}

/* Finance follows content widths; header navigation is not an exclusive accordion. */
.contract-wizard-main { overflow-anchor: none; }
.contract-wizard-step > summary { scroll-margin-top: 16px; }
.contract-finance-form { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.contract-finance-amount { width: 220px; max-width: 100%; }
.contract-finance-duration { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; }
.contract-finance-duration > label { width: 220px; max-width: 100%; }
.contract-duration-comparison { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; }
.contract-workspace .contract-finance-deadline-heading { margin: 4px 0 0; font-size: 14px; }
.contract-finance-deadline-fields { display: flex; flex-wrap: wrap; gap: 10px; width: 100%; max-width: 540px; }
.contract-finance-deadline-fields > label:first-child { flex: 1 1 290px; }
.contract-finance-deadline-fields > label:not(:first-child) { flex: 0 1 180px; }
.contract-finance-form > .case-muted { margin: 0; max-width: 650px; }
.contract-finance-form > .contract-step-footer { width: 100%; box-sizing: border-box; }

/* Project file rows share columns; EP belongs to the working document. */
.contract-project-section { border: 1px solid var(--case-line); border-radius: 8px; padding: 10px; margin-bottom: 12px; }
.contract-project-generated { background: #faf9fd; }
.contract-project-section > h4 { margin: 0 0 8px; font-size: 12px; color: var(--case-navy); }
.contract-project-section > .case-muted { margin: 6px 0 0; }
.contract-project-file-row { display: grid; grid-template-columns: minmax(0, 360px) minmax(120px, 1fr) auto; border: 0; padding: 0; gap: 10px; }
.contract-project-file-row > .contract-row-file { grid-column: 2; }
.contract-project-file-row > .contract-row-actions { grid-column: 3; justify-content: flex-end; }
.contract-project-file-row > form { min-width: 0; }
.contract-project-file-row .contract-inline-upload input[type=file] { width: 230px; }
.contract-ep-area { border-top: 1px solid var(--case-line); padding: 10px 0 0; margin-top: 8px; }
.contract-ep-area h5 { margin: 0 0 8px; font-size: 12px; color: var(--case-navy); }
.contract-ep-controls { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; align-items: start; }
.contract-ep-browser, .contract-ep-upload { min-width: 0; padding: 8px 10px; border-radius: 7px; background: #f6f9fc; }
.contract-ep-caption { display: block; color: var(--case-muted); font-size: 11px; margin-bottom: 6px; }
.contract-ep-browser [data-cryptopro-actions] { display: flex; flex-wrap: wrap; gap: 6px; }
.contract-ep-browser [data-cryptopro-status] { display: block; margin-top: 5px; }
.contract-ep-verification { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; margin-top: 8px; }
.contract-ep-verification > form { flex: 0 0 auto; margin: 0; }
.contract-ep-verification > small { flex: 1 1 280px; }
@media (max-width: 1100px) {
 .contract-project-file-row { grid-template-columns: minmax(0, 1fr) auto; }
 .contract-project-file-row > form, .contract-project-file-row > .case-muted:first-child { grid-column: 1 / -1; }
 .contract-project-file-row > .contract-row-file { grid-column: 1; }
 .contract-project-file-row > .contract-row-actions { grid-column: 2; }
}
@media (max-width: 650px) {
 .contract-ep-controls { grid-template-columns: minmax(0, 1fr); }
 .contract-project-file-row { grid-template-columns: minmax(0, 1fr); }
 .contract-project-file-row > .contract-row-actions { grid-column: 1; justify-content: flex-start; }
}

/* Three equally high EP actions; modal-only certificate selection. */
.contract-ep-area { border-top: 0; }
.contract-ep-area:focus { outline: none; }
.contract-ep-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; align-items: stretch; }
.contract-ep-columns > div { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; min-width: 0; min-height: 134px; box-sizing: border-box; margin: 0; padding: 10px; border-radius: 7px; background: #f6f9fc; }
.contract-ep-columns .contract-ep-caption { margin: 0; font-weight: 600; }
.contract-ep-columns .contract-ep-verification > small { flex: 0 1 auto; }
.contract-ep-columns .contract-ep-verification > form { margin: 0; }
.contract-ep-columns .contract-inline-upload { gap: 6px; }
.contract-ep-columns .contract-inline-upload input[type=file] { width: 205px; max-width: 100%; }
.contract-cryptopro-dialog { width: 580px; max-width: calc(100vw - 32px); max-height: calc(100vh - 40px); box-sizing: border-box; padding: 18px; border: 1px solid var(--case-line); border-radius: 12px; color: var(--case-navy); }
.contract-cryptopro-dialog::backdrop { background: rgba(18, 40, 58, .4); }
.contract-cryptopro-dialog header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.contract-cryptopro-dialog h3 { margin: 0; font-size: 16px; }
.contract-cryptopro-dialog header button { border: 0; background: none; font-size: 25px; color: var(--case-muted); cursor: pointer; }
.contract-cryptopro-dialog [data-cryptopro-actions] { display: flex; flex-wrap: wrap; gap: 8px; }
.contract-cryptopro-dialog [data-cryptopro-certificate] { flex: 0 0 100%; width: 100%; box-sizing: border-box; min-width: 0; padding: 7px; margin-bottom: 4px; font-size: 12px; }
@media (max-width: 1000px) { .contract-ep-columns { grid-template-columns: minmax(0, 1fr); } .contract-ep-columns > div { min-height: 0; } }

/* Navigation stays reachable without JS; narrow screens get an explicit toggle. */
.case-global-header [hidden] { display: none !important; }
.case-global-header .workspace-menu-toggle { flex-shrink: 0; }

.case-global-header { padding: 12px 24px; gap: 20px; box-shadow: 0 3px 14px #123b5d18; }
.case-global-header .header-brand { flex: 0 0 auto; flex-wrap: nowrap; justify-content: flex-start; max-width: 290px; }
.case-global-header .brand img { width: 54px; border-radius: 8px; }
.case-global-header .header-actions { gap: 5px; }
.case-global-header .header-actions .button { min-height: 36px; padding: 7px 10px; border-color: transparent; background: transparent; color: #e3eef5; font-size: 13px; }
.case-global-header .header-actions .button:hover { background: #ffffff16; color: #fff; }
.case-global-header .header-actions .button.is-active { background: #fff; color: var(--case-navy); }
.case-global-header .user-badge { min-height: 30px; max-width: 180px; overflow-wrap: anywhere; padding: 4px 10px; border-radius: 8px; font-size: 12px; }
.case-global-header :is(a, button):focus-visible { outline-color: #fff; }
@media (max-width: 900px) {
  .case-global-header { flex-wrap: wrap; align-items: center; padding: 12px 16px; gap: 12px; position: static; }
  .case-global-header .header-brand { flex: 1 1 180px; min-width: 0; max-width: none; }
  .case-global-header .brand-text strong { font-size: 14px; overflow-wrap: anywhere; }
  .case-global-header .header-actions { width: 100%; justify-content: flex-start; }
  .case-global-header .workspace-menu-toggle { min-height: 38px; padding: 7px 10px; font-size: 13px; }
  .case-tabs { top: 0; }
}
.service-availability-form {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.case-panel .service-availability-form .checkbox-row {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
}

.service-availability-form .ui-button {
  white-space: nowrap;
}

/* Compact registries keep real rows on small screens; scrolling belongs to the table. */
.case-registry-table.compact-registry :is(table,tbody,tr,td) { display:revert; }
.case-registry-table.compact-registry thead { display:table-header-group; }
.case-registry-table.compact-registry table { min-width:660px; table-layout:fixed; width:100%; }
.case-registry-table.compact-registry th,.case-registry-table.compact-registry td { padding:7px 9px; font-size:12px; }
.case-registry-table.compact-registry td :is(strong,span,small) { margin:2px 0; }
.case-registry-table.compact-registry .case-registry-col-case { width:17%; }
.case-registry-table.compact-registry .case-registry-col-object { width:38%; }
.case-registry-table.compact-registry .case-registry-col-status { width:12%; }
.case-registry-table.compact-registry .case-registry-col-expert { width:12%; }
.case-registry-table.compact-registry .case-registry-col-deadline { width:9%; }
.case-registry-table.compact-registry .case-registry-col-contract { width:12%; }
.case-registry-table.compact-registry .registry-service,
.case-registry-table.compact-registry .registry-object,
.case-registry-table.compact-registry .registry-applicant { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.case-registry-table.compact-registry .registry-three-line { display:grid; grid-template-rows:repeat(3, 20px); font-size:12px; align-content:start; }
.case-registry-table.compact-registry .registry-three-line > :is(a, strong, span) { min-width:0; margin:0 !important; font-size:12px; line-height:20px; }
.case-registry-table.compact-registry .registry-case-cell > :nth-child(1) { grid-row:1; }
.case-registry-table.compact-registry .registry-case-cell > :nth-child(2) { grid-row:2; }
.case-registry-table.compact-registry .registry-case-cell > :nth-child(3) { grid-row:3; }
.case-registry-table.compact-registry .registry-object-cell .registry-object { display:-webkit-box; grid-row:1 / span 2; min-height:0; max-height:none; -webkit-box-orient:vertical; -webkit-line-clamp:2; white-space:normal; }
.case-registry-table.compact-registry .registry-object-cell .registry-applicant { grid-row:3; }
.case-registry-table.compact-registry .registry-status { color:var(--case-text); font-weight:400; white-space:normal; overflow-wrap:normal; word-break:normal; }
.case-registry-table.compact-registry .registry-expert-name { white-space:pre-line; overflow-wrap:normal; word-break:normal; }
.case-registry-table.compact-registry .registry-case-date { color:var(--case-blue); font-weight:850; }
.case-registry-table.compact-registry a.registry-case-date,
.case-registry-table.compact-registry a.registry-object { text-decoration:none; }
.case-registry-table.compact-registry a.registry-object { color:var(--case-text); font-weight:700; }
.case-registry-table.compact-registry :is(.case-number-link, a.registry-case-date, a.registry-object):hover { text-decoration:underline; }
.case-registry-table.compact-registry :is(.case-number-link, a.registry-case-date, a.registry-object):focus-visible { outline:2px solid var(--case-navy); outline-offset:2px; }
.case-registry-table.compact-registry .registry-service,
.case-registry-table.compact-registry .registry-applicant { font-family:inherit; font-weight:400; }
.case-registry-table.compact-registry td small { font-size:11px; }
.case-registry-table.compact-registry .button { width:auto; min-height:30px; padding:5px 8px; font-size:12px; }
.case-registry-table.compact-registry .status { padding:2px 4px; margin:0; }
.compact-notifications .event-list>div { grid-template-columns:auto minmax(0,1fr) auto; align-items:center; padding:7px 9px; gap:8px; font-size:12px; }
.compact-notifications time { color:var(--case-muted); font-size:11px; }
.compact-notifications .notification-text { min-width:0; }
.compact-notifications summary { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; cursor:pointer; }
.compact-notifications .notification-text p { margin:6px 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.compact-notifications .notification-actions { display:flex; gap:6px; align-items:center; }
.compact-notifications .event-list .notification-actions form { display:block; margin:0; grid-area:auto; }
.compact-notifications .button { width:auto; min-height:30px; padding:5px 8px; font-size:12px; }
@media(max-width:640px) { .compact-notifications .event-list>div { grid-template-columns:minmax(0,1fr) auto; } .compact-notifications time { grid-column:1 / -1; } }

.case-registry-table.compact-registry th{white-space:nowrap}
.application-registry-table.compact-registry table{min-width:1180px;table-layout:auto}
.application-registry-table.compact-registry td{white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.case-registry-table.compact-registry .button{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;word-break:normal;min-width:max-content;line-height:18px;height:auto}
.case-registry-table.compact-registry .case-text-action{display:inline;white-space:nowrap;word-break:normal;font-size:12px}
.case-registry-table.compact-registry:not(.application-registry-table) th:nth-child(2){width:27%}
.case-registry-table.compact-registry:not(.application-registry-table) td :is(strong,span,small){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Registry line layout overrides the older one-line cell defaults. */
.case-registry-table.compact-registry:has(.case-registry-col-object) table { min-width:1100px; }
.case-registry-table.compact-registry td .registry-object-cell .registry-object {
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
  height:40px;
  line-height:20px;
}
.case-registry-table.compact-registry:not(.application-registry-table) td .registry-status {
  white-space:normal;
  overflow:visible;
  overflow-wrap:normal;
  word-break:normal;
}
.case-registry-table.compact-registry:not(.application-registry-table) td .registry-expert-name {
  white-space:pre-line;
  overflow:visible;
  overflow-wrap:normal;
  word-break:normal;
  line-height:20px;
}
.case-registry-table.compact-registry:has(.case-registry-col-object) th:nth-child(2) { width:38%; }

.contract-concluded-panel .case-details-grid { margin-bottom: 16px; }
.contract-concluded-file { padding-top: 10px; border-top: 1px solid var(--case-line); }
.contract-preparation-history > summary { font-size: 13px; }
.contract-preparation-history > .contract-workspace { margin-top: 12px; }
.contract-preparation-history .contract-wizard-aside,
.contract-preparation-history [data-contract-next] { display: none; }
.contract-preparation-history .contract-wizard-layout { grid-template-columns: minmax(0, 1fr); }

/* Invoice payment: compact actions and labelled cumulative amount. */
.commercial-list .invoice-card { align-items: flex-start; flex-wrap: wrap; }
.invoice-card__summary { flex: 1 1 240px; min-width: 0; }
.invoice-download { justify-self: start; width: auto; }
.commercial-list .invoice-payment-form { display: grid; gap: 8px; flex: 0 1 360px; width: 100%; min-width: 0; }
.invoice-payment-form label { display: grid; gap: 4px; font-size: 13px; }
.invoice-payment-form small { font-size: 12px; }
.invoice-payment-form input, .invoice-payment-form select { min-width: 0; width: 100%; box-sizing: border-box; }
.invoice-payment-form button { justify-self: start; width: auto; }

.external-contract-workspace .external-contract-stages{display:flex;flex-wrap:wrap;gap:8px 18px;margin:10px 0;font-size:12px;color:#617485}
.external-contract-stages .is-current{color:#173c59;font-weight:600}
.external-contract-workspace .contract-exchange-section{padding:8px 0;margin:0;border:0}
.external-contract-workspace .contract-method-cards{display:flex;flex-wrap:wrap;gap:6px}
.external-contract-workspace .contract-method-card span{padding:6px 8px;font-size:12px;min-height:0}
.external-contract-workspace .contract-method-card i{display:none}
.external-contract-workspace h3,.external-contract-workspace legend{font-size:13px}
.external-contract-workspace input,.external-contract-workspace select,.external-contract-workspace label{font-size:13px}
.external-contract-workspace button[type=submit]{width:auto;justify-self:start}
.external-contract-workspace .contract-field-grid{gap:10px}
