.cem-company + .cem-company { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--line); }
.cem-contract h3 { margin: 0 0 4px; font-size: 16px; font-weight: 700; }
.cem-actions { display: flex; gap: 12px 24px; flex-wrap: wrap; margin: 20px 0; }
.cem-modal { width: 920px; max-width: calc(100vw - 24px); max-height: calc(100dvh - 32px); overflow: hidden; }
.cem-modal[open] { display: flex; flex-direction: column; }
.cem-modal .ui-card-heading { flex-shrink: 0; padding: 12px 16px; gap: 12px; align-items: flex-start; }
.cem-modal .ui-card-heading h2 { font-size: 18px; }
.cem-modal .ui-card-heading p { margin: 2px 0 0; font-size: 13px; }
.cem-modal .cem-contract-list { padding: 12px 16px; overflow-y: auto; min-height: 0; overscroll-behavior: contain; }
.cem-contract { padding: 12px 0; border-bottom: 1px solid var(--line); }
.cem-contract:first-child { padding-top: 0; }
.cem-contract:last-child { padding-bottom: 0; border-bottom: 0; }
.cem-contract p { margin: 0 0 6px; font-size: 13px; line-height: 1.4; }
.cem-modal .key-value-row { grid-template-columns: 180px minmax(0, 1fr); gap: 12px; padding: 5px 0; line-height: 1.4; }
.cem-modal .key-value dd { overflow-wrap: anywhere; white-space: normal; }
.cem-pagination { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 16px; border-top: 1px solid var(--line); flex-shrink: 0; font-size: 13px; }
.cem-pagination[hidden], .cem-contract[hidden] { display: none; }
.cem-pagination button { min-height: 36px; padding: 7px 12px; }
@media (max-width: 600px) {
    .cem-pagination { padding: 8px 12px; gap: 8px; font-size: 12px; }
    .cem-modal .ui-card-heading h2 { font-size: 16px; }
    .cem-modal .key-value-row { grid-template-columns: minmax(110px, 32%) minmax(0, 1fr); gap: 8px; }
}
