/*
 * m0 Design System — Panels: Record-set (CANONICAL)
 * The Items-Needed / ProviderVerification record-set view styles.
 * Panel-scoped, prefixed (record-set-*). Token-driven, no literal px/hex/rgba.
 */

.record-set-view {
    display: flex;
    flex-direction: column;
    gap: 0;
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
    max-width: 100%;
    max-height: 100%;
}
.record-set-view:has(> .record-set-scroll) {
    overflow: hidden;
}
.record-set-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
    padding-bottom: var(--spacing-sm);
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.record-set-scroll::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
}
.record-set-next-step {
    padding: var(--spacing-sm) var(--spacing-md);
    border: 1px solid color-mix(in srgb, var(--anviz-accent-secondary) 35%, transparent);
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--anviz-accent-secondary) 8%, transparent);
}
.record-set-next-step-title {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--anviz-accent-secondary);
    margin-bottom: var(--spacing-xs);
}
.record-set-next-step-list {
    margin: 0 0 var(--spacing-xs);
    padding-left: 1.1rem;
    color: var(--text-primary);
    font-size: 0.85rem;
}
.record-set-next-step-item { font-weight: 600; }
.record-set-next-step-body {
    margin: 0;
    font-size: 0.8rem;
    line-height: 1.35;
    color: var(--text-secondary);
}
.record-set-vault-note {
    padding: var(--spacing-sm) var(--spacing-md);
    border: 1px solid color-mix(in srgb, var(--status-warning) 45%, transparent);
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--status-warning) 10%, transparent);
    color: var(--text-primary);
    font-size: 0.8rem;
    line-height: 1.35;
}
.record-set-provider-header {
    font-size: 0.85rem;
    color: var(--text-secondary);
}
.record-set-items {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
    min-width: 0;
    padding-bottom: var(--spacing-md);
}
.record-set-item-row {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0;
    min-width: 0;
}
/* Complete: inline ✓ after the field label — no dedicated icon row. */
.record-set-item-row[data-complete="true"] .form-field-label::after {
    content: " ✓";
    color: var(--anviz-accent-secondary);
    font-weight: 600;
    letter-spacing: 0;
}
/* ★ Required (provider modal) pins to the label row, not its own strip. */
.record-set-item-row-status {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--spacing-xs);
    min-height: 0;
}
.record-set-item-row-status:not(:has(.status-badge)) { display: none; }
.record-set-item-row-editor { min-width: 0; max-width: 100%; }
.record-set-item-row-status .status-badge.status-badge--required {
    margin-left: 0;
    padding: 0.125rem 0.375rem;
    font-size: 0.65rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--status-warning);
    background: color-mix(in srgb, var(--status-warning) 14%, transparent);
    border: 1px solid color-mix(in srgb, var(--status-warning) 40%, transparent);
}
.record-set-actions {
    flex-shrink: 0;
    position: sticky;
    bottom: 0;
    z-index: 2;
    display: flex;
    justify-content: flex-end;
    gap: var(--spacing-sm);
    margin: var(--spacing-sm) calc(-1 * var(--spacing-lg)) 0;
    padding: var(--spacing-md) var(--spacing-lg);
    border-top: 1px solid color-mix(in srgb, var(--anviz-accent-secondary) 25%, transparent);
    background: color-mix(in srgb, var(--modal-bg) 92%, var(--anviz-bg-panel));
}
.record-set-kyb-document {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}
.record-set-kyb-field { min-width: 0; }
.record-set-kyb-document-guidance {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    padding: var(--spacing-sm) var(--spacing-md);
    border: 1px solid color-mix(in srgb, var(--anviz-accent-secondary) 25%, transparent);
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--anviz-accent-secondary) 5%, transparent);
}
.record-set-kyb-item-label {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-primary);
}
.record-set-kyb-item-guidance {
    font-size: 0.8rem;
    line-height: 1.35;
    color: var(--text-secondary);
}
.record-set-kyb-upload-status {
    display: inline-block;
    margin-top: 0.125rem;
    font-size: 0.75rem;
    font-weight: 600;
}
.record-set-kyb-upload-status--uploading { color: var(--text-accent); }
.record-set-kyb-upload-status--done { color: var(--status-success); }
.record-set-kyb-upload-status--proposed { color: var(--status-warning); }
.record-set-kyb-upload-status--error { color: var(--status-error); }
.record-set-kyb-save-confirmation {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
    padding: var(--spacing-md);
    border: 1px solid color-mix(in srgb, var(--status-success) 40%, transparent);
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--status-success) 8%, transparent);
}
.record-set-kyb-save-confirmation-title {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--status-success);
}
.record-set-kyb-save-confirmation-body {
    margin: 0;
    font-size: 0.85rem;
    line-height: 1.4;
    color: var(--text-secondary);
}
