.contracts-index .proposal-list {
    margin-top: 0.85rem;
}

.contracts-summary-skeleton {
    display: grid;
    min-width: 9.25rem;
    gap: 0.35rem;
    padding: 0.55rem 0.7rem;
    background: #f1f5f8;
    border: 1px solid var(--proposal-border);
    border-radius: 0.55rem;
}

.contracts-summary-skeleton span,
.contracts-summary-skeleton strong,
.contracts-skeleton-toolbar span,
.contracts-skeleton-row span,
.contracts-form-skeleton span,
.contracts-form-skeleton strong,
.contracts-form-skeleton i {
    display: block;
    background: linear-gradient(90deg, #e7edf2 25%, #f4f7f9 50%, #e7edf2 75%);
    background-size: 200% 100%;
    border-radius: 999px;
    animation: contracts-shimmer 1.15s linear infinite;
}

.contracts-summary-skeleton span { width: 4.4rem; height: 0.48rem; }
.contracts-summary-skeleton strong { width: 6.2rem; height: 0.72rem; }

.contracts-error {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.85rem;
    padding: 0.75rem 0.9rem;
    color: #812f35;
    background: #fff6f6;
    border: 1px solid #f1d4d6;
    border-radius: 0.65rem;
}

.contracts-error > i { font-size: 1.25rem; }
.contracts-error div { display: grid; flex: 1; gap: 0.1rem; }
.contracts-error strong { font-size: 0.78rem; }
.contracts-error span { font-size: 0.72rem; }
.contracts-error button {
    padding: 0.38rem 0.65rem;
    color: inherit;
    background: #fff;
    border: 1px solid #e8bec1;
    border-radius: 0.42rem;
    font-size: 0.72rem;
    font-weight: 650;
}

.contracts-list-skeleton {
    overflow: hidden;
    min-height: 26rem;
    padding: 0.85rem;
    background: #fff;
    border: 1px solid var(--proposal-border);
    border-radius: 0.75rem;
}

.contracts-skeleton-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid var(--proposal-border);
}

.contracts-skeleton-toolbar span:first-child { width: min(24rem, 55%); height: 2.25rem; border-radius: 0.45rem; }
.contracts-skeleton-toolbar span:last-child { width: 8rem; height: 2.25rem; border-radius: 0.45rem; }
.contracts-skeleton-row {
    display: grid;
    grid-template-columns: 0.8fr 1.8fr 0.7fr 0.8fr 0.9fr;
    gap: 1rem;
    align-items: center;
    min-height: 3.75rem;
    padding: 0.7rem;
    border-bottom: 1px solid #edf1f5;
}
.contracts-skeleton-row span { width: 85%; height: 0.62rem; }

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

.contracts-company {
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    color: var(--proposal-blue-dark);
    font-size: 0.72rem;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contracts-due {
    color: var(--proposal-ink);
    font-size: 0.76rem;
    font-weight: 650;
}

.contracts-default-values {
    display: grid;
    gap: 0.1rem;
    font-size: 0.69rem;
}

.contracts-default-values span {
    display: grid;
    grid-template-columns: 2.8rem 1fr;
    gap: 0.35rem;
    align-items: baseline;
}

.contracts-default-values small { color: var(--proposal-muted); font-size: 0.62rem; }
.contracts-default-values .is-empty { display: block; color: var(--proposal-muted); }

.contracts-total {
    display: grid;
    justify-items: end;
    gap: 0.08rem;
}

.contracts-total strong { color: var(--proposal-ink); font-size: 0.78rem; }
.contracts-total small { color: var(--proposal-muted); font-size: 0.62rem; }
.contracts-total.is-incomplete strong,
.contracts-total.is-incomplete small { color: #a43b43; }

.contracts-grid-row.is-incomplete {
    box-shadow: inset 3px 0 #d56a72;
}

.proposal-action.is-danger { color: #b4444c; }
.proposal-action.is-danger:hover,
.proposal-action.is-danger:focus-visible {
    color: #8d2f36;
    background: #fff0f1;
    border-color: #efc8cb;
}

.contracts-statusline {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    margin-top: 0.75rem;
    padding: 0.7rem 0.9rem;
    background: var(--pf-surface);
    border: 1px solid var(--pf-line);
    border-radius: 0.65rem;
}

.contracts-statusline > span:not(.proposal-status) {
    display: grid;
    gap: 0.05rem;
    padding-left: 1rem;
    border-left: 1px solid var(--pf-line);
}

.contracts-statusline small { color: var(--pf-muted); font-size: 0.6rem; font-weight: 650; text-transform: uppercase; }
.contracts-statusline strong { color: var(--pf-ink); font-size: 0.75rem; }
.contracts-statusline__total { margin-left: auto; }
.contracts-statusline__total strong { font-size: 0.86rem; }

.contracts-sections {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
    margin: 0.75rem 0;
}

.contracts-sections button {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 0.65rem;
    padding: 0.72rem 0.8rem;
    color: var(--pf-muted);
    text-align: left;
    background: var(--pf-surface);
    border: 1px solid var(--pf-line);
    border-radius: 0.62rem;
}

.contracts-sections button > i {
    display: grid;
    width: 2rem;
    height: 2rem;
    flex: 0 0 auto;
    place-items: center;
    color: var(--pf-action);
    background: var(--pf-action-soft);
    border-radius: 0.48rem;
    font-size: 1rem;
}

.contracts-sections button span { display: grid; min-width: 0; gap: 0.05rem; }
.contracts-sections button strong { color: var(--pf-ink); font-size: 0.76rem; }
.contracts-sections button small { overflow: hidden; font-size: 0.63rem; text-overflow: ellipsis; white-space: nowrap; }
.contracts-sections button.is-active {
    background: #f7fbff;
    border-color: #9fc8e6;
    box-shadow: inset 0 -2px var(--pf-action);
}
.contracts-sections button:disabled { cursor: not-allowed; opacity: 0.5; }

.contracts-contract-form {
    display: grid;
    gap: 0.75rem;
}

.contracts-field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.contracts-field-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.contracts-field-span-two { grid-column: span 2; }

.contracts-term-row {
    display: grid;
    grid-template-columns: minmax(12rem, 0.8fr) repeat(2, minmax(0, 1fr));
    gap: 0.7rem;
    align-items: end;
    margin-top: 0.8rem;
    padding-top: 0.8rem;
    border-top: 1px solid var(--pf-line);
}

.contracts-switch-row {
    display: flex;
    min-height: 3.9rem;
    align-items: center;
    gap: 0.65rem;
    padding: 0.7rem 0.8rem;
    background: var(--pf-soft);
    border: 1px solid var(--pf-line);
    border-radius: 0.55rem;
}

.contracts-switch-row input {
    width: 1.05rem;
    height: 1.05rem;
    flex: 0 0 auto;
    accent-color: var(--pf-action);
}

.contracts-switch-row label { display: grid; gap: 0.08rem; margin: 0; cursor: pointer; }
.contracts-switch-row strong { color: var(--pf-ink); font-size: 0.72rem; }
.contracts-switch-row small { color: var(--pf-muted); font-size: 0.62rem; line-height: 1.35; }

.contracts-form-footer {
    display: flex;
    justify-content: flex-end;
    gap: 0.55rem;
    padding: 0.25rem 0;
}
.contracts-form-footer > a {
    display: inline-flex;
    min-height: 2.35rem;
    align-items: center;
    padding: 0 0.82rem;
    color: var(--pf-muted);
    border: 1px solid var(--pf-line-strong);
    border-radius: 0.5rem;
    font-size: 0.77rem;
    font-weight: 600;
}

.contracts-related-section .proposal-form-section__heading { align-items: center; }
.contracts-add-related { margin-left: auto; }
.contracts-related-actions { display: flex; align-items: center; gap: 0.65rem; margin-left: auto; }
.contracts-related-actions > a { color: var(--pf-action-strong); font-size: 0.7rem; font-weight: 650; }

.contracts-notice {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin: 0.85rem 1rem 0.75rem;
    padding: 0.65rem 0.75rem;
    color: #735c1f;
    background: #fffbeb;
    border: 1px solid #eee1ad;
    border-radius: 0.52rem;
    font-size: 0.7rem;
}
.contracts-notice i { font-size: 1rem; }
.contracts-related-body { padding: 0 !important; }

.contracts-empty-related {
    display: grid;
    min-height: 17rem;
    place-items: center;
    align-content: center;
    gap: 0.45rem;
    color: var(--pf-muted);
}
.contracts-empty-related > i { color: #91a1b0; font-size: 2rem; }
.contracts-empty-related strong { color: var(--pf-ink); font-size: 0.82rem; }
.contracts-empty-related button {
    padding: 0.38rem 0.7rem;
    color: var(--pf-action-strong);
    background: var(--pf-action-soft);
    border: 1px solid #c9dfef;
    border-radius: 0.42rem;
    font-size: 0.68rem;
    font-weight: 650;
}

.contracts-related-table__head,
.contracts-related-table article {
    display: grid;
    grid-template-columns: minmax(12rem, 1.6fr) 0.7fr 0.8fr 0.8fr minmax(8rem, 1fr) 5rem;
    gap: 0.75rem;
    align-items: center;
    padding: 0.75rem 1rem;
}
.contracts-related-table__head {
    color: var(--pf-muted);
    background: #f8fafc;
    border-bottom: 1px solid var(--pf-line);
    font-size: 0.61rem;
    font-weight: 700;
    letter-spacing: 0.035em;
    text-transform: uppercase;
}
.contracts-related-table article { min-height: 4.25rem; border-bottom: 1px solid var(--pf-line); font-size: 0.72rem; }
.contracts-related-identity { display: grid; gap: 0.06rem; }
.contracts-related-identity strong { color: var(--pf-ink); font-size: 0.74rem; }
.contracts-related-identity small { color: var(--pf-muted); font-size: 0.62rem; }
.contracts-overage-summary { display: grid; gap: 0.05rem; color: var(--pf-muted); }
.contracts-overage-summary small { font-size: 0.6rem; }
.contracts-row-actions { justify-content: flex-end; }
.contracts-related-table > footer {
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
    padding: 0.75rem 1rem;
    background: #f8fafc;
    font-size: 0.72rem;
}
.contracts-related-table > footer span { color: var(--pf-muted); }
.contracts-related-table > footer strong { color: var(--pf-ink); }

.contracts-contacts-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.7rem;
    padding: 1rem;
}
.contracts-contacts-grid > article {
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--pf-line);
    border-radius: 0.62rem;
}
.contracts-contacts-grid > article.is-inactive { opacity: 0.68; }
.contracts-contacts-grid article > header {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.75rem;
    border-bottom: 1px solid var(--pf-line);
}
.contracts-contacts-grid article > header > span:first-child {
    display: grid;
    width: 2rem;
    height: 2rem;
    flex: 0 0 auto;
    place-items: center;
    color: var(--pf-action-strong);
    background: var(--pf-action-soft);
    border-radius: 50%;
    font-size: 0.66rem;
    font-weight: 750;
}
.contracts-contacts-grid header > div { display: grid; min-width: 0; flex: 1; gap: 0.04rem; }
.contracts-contacts-grid header strong { overflow: hidden; color: var(--pf-ink); font-size: 0.73rem; text-overflow: ellipsis; white-space: nowrap; }
.contracts-contacts-grid header small { color: var(--pf-muted); font-size: 0.61rem; }
.contracts-contact-data { display: grid; gap: 0.35rem; padding: 0.7rem 0.75rem; }
.contracts-contact-data span { display: flex; min-width: 0; align-items: center; gap: 0.38rem; overflow: hidden; color: var(--pf-muted); font-size: 0.66rem; text-overflow: ellipsis; white-space: nowrap; }
.contracts-contact-data i { color: #7b8b99; }
.contracts-contacts-grid article > footer {
    display: flex;
    min-height: 2.7rem;
    align-items: center;
    justify-content: space-between;
    gap: 0.45rem;
    padding: 0.5rem 0.65rem;
    background: #fafcfd;
    border-top: 1px solid var(--pf-line);
}
.contracts-contacts-grid article > footer > span { color: #55704a; font-size: 0.59rem; }

.contracts-dialog-backdrop {
    --pf-accent-rgb: 36, 119, 185;
    --pf-ink: #102033;
    --pf-muted: #5b6675;
    --pf-line: #e3eaf1;
    --pf-line-strong: #d5e0e9;
    --pf-soft: #f8fbfd;
    --pf-action: rgb(var(--pf-accent-rgb));
    --pf-action-strong: #1b5f96;
    --pf-action-soft: #eaf3fc;
    position: fixed;
    inset: 0;
    z-index: 2050;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgb(16 32 51 / 0.38);
    backdrop-filter: blur(2px);
}

.contracts-dialog-backdrop .ui-combo__backdrop {
    z-index: 2058;
}

.contracts-dialog-backdrop .ui-combo__panel {
    z-index: 2060;
}
.contracts-dialog {
    width: min(43rem, 100%);
    max-height: min(88vh, 52rem);
    overflow: auto;
    color: var(--pf-ink, #102033);
    background: #fff;
    border: 1px solid #d5e0e9;
    border-radius: 0.75rem;
    box-shadow: 0 1.5rem 4rem rgb(16 32 51 / 0.22);
}
.contracts-contact-dialog { width: min(39rem, 100%); }
.contracts-dialog > header {
    position: sticky;
    top: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 1rem;
    background: #fff;
    border-bottom: 1px solid #e3eaf1;
}
.contracts-dialog > header div { display: grid; gap: 0.08rem; }
.contracts-dialog > header span { color: #1b5f96; font-size: 0.58rem; font-weight: 700; letter-spacing: 0.065em; text-transform: uppercase; }
.contracts-dialog > header h2 { margin: 0; color: #102033; font-size: 1rem; font-weight: 720; }
.contracts-dialog > header button { display: grid; width: 2rem; height: 2rem; place-items: center; color: #5b6675; background: #fff; border: 1px solid #d5e0e9; border-radius: 0.45rem; font-size: 1.05rem; }
.contracts-dialog__body { display: grid; gap: 0.8rem; padding: 1rem; }
.contracts-dialog__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.contracts-dialog footer { display: flex; justify-content: flex-end; gap: 0.5rem; padding: 0.8rem 1rem; background: #f8fafc; border-top: 1px solid #e3eaf1; }
.contracts-item-total { display: flex; align-items: center; justify-content: space-between; padding: 0.65rem 0.75rem; background: #f5fbf2; border: 1px solid #dcefd3; border-radius: 0.5rem; }
.contracts-item-total span { color: #55704a; font-size: 0.65rem; }
.contracts-item-total strong { color: #3f8425; font-size: 0.88rem; }
.contracts-override-fields,
.contracts-contact-flags { display: grid; gap: 0.7rem; padding: 0.75rem; background: #f8fbfd; border: 1px solid #e3eaf1; border-radius: 0.55rem; }
.contracts-contact-flags { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.contracts-form-skeleton { display: grid; gap: 0.75rem; margin-top: 0.75rem; }
.contracts-form-skeleton__tabs { width: 100%; height: 3.6rem; border-radius: 0.62rem !important; }
.contracts-form-skeleton section { padding: 1rem; background: #fff; border: 1px solid #e3eaf1; border-radius: 0.7rem; }
.contracts-form-skeleton section header { display: flex; gap: 0.6rem; margin-bottom: 1rem; }
.contracts-form-skeleton section header span { width: 2.2rem; height: 2.2rem; }
.contracts-form-skeleton section header strong { width: 10rem; height: 0.75rem; margin-top: 0.4rem; }
.contracts-form-skeleton section > div { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem; }
.contracts-form-skeleton section i { height: 2.8rem; border-radius: 0.45rem; }

@keyframes contracts-shimmer {
    to { background-position: -200% 0; }
}

@media (max-width: 991.98px) {
    .contracts-statusline { flex-wrap: wrap; }
    .contracts-statusline__total { margin-left: 0; }
    .contracts-field-grid--three,
    .contracts-contacts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .contracts-related-table__head { display: none; }
    .contracts-related-table article { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem; }
    .contracts-related-table article > *::before { content: attr(data-label); display: block; margin-bottom: 0.08rem; color: var(--pf-muted); font-size: 0.56rem; font-weight: 700; text-transform: uppercase; }
    .contracts-related-identity,
    .contracts-row-actions { grid-column: span 2; }
    .contracts-related-identity::before,
    .contracts-row-actions::before { display: none !important; }
    .contracts-row-actions { justify-content: flex-start; }
}

@media (max-width: 767.98px) {
    .contracts-lifecycle,
    .contracts-sections,
    .contracts-field-grid,
    .contracts-field-grid--three,
    .contracts-term-row,
    .contracts-dialog__grid,
    .contracts-contact-flags,
    .contracts-contacts-grid,
    .contracts-form-skeleton section > div { grid-template-columns: 1fr; }
    .contracts-field-span-two { grid-column: auto; }
    .contracts-sections button { min-height: 3.5rem; }
    .contracts-statusline > span:not(.proposal-status) { padding-left: 0.7rem; }
    .contracts-related-section .proposal-form-section__heading { flex-wrap: wrap; }
    .contracts-add-related,
    .contracts-related-actions { width: 100%; margin-left: 0; }
    .contracts-related-actions { justify-content: space-between; }
    .contracts-skeleton-row { grid-template-columns: 1fr 1fr; }
    .contracts-skeleton-row span:nth-child(n+3) { display: none; }
}

@media (max-width: 575.98px) {
    .contracts-statusline { gap: 0.65rem; }
    .contracts-statusline > span:not(.proposal-status) { min-width: calc(50% - 0.4rem); border-left: 0; padding-left: 0; }
    .contracts-related-table article { grid-template-columns: 1fr; }
    .contracts-related-identity,
    .contracts-row-actions { grid-column: auto; }
    .contracts-dialog-backdrop { padding: 0; place-items: end stretch; }
    .contracts-dialog { width: 100%; max-height: 94vh; border-radius: 0.8rem 0.8rem 0 0; }
}

@media (prefers-reduced-motion: reduce) {
    .contracts-summary-skeleton span,
    .contracts-summary-skeleton strong,
    .contracts-skeleton-toolbar span,
    .contracts-skeleton-row span,
    .contracts-form-skeleton span,
    .contracts-form-skeleton strong,
    .contracts-form-skeleton i { animation: none; }
}
