Files
2026-06-06 09:57:32 -04:00

225 lines
5.9 KiB
CSS

/* assoc_profile — v0.2.0
All colors via --civicinfra-* tokens.
All structural classes via civicinfra primitives. */
/* ============================================================
PROFILE VIEW
============================================================ */
.assoc-profile-view {
margin-top: var(--civicinfra-space-6, 1.5rem);
padding-top: var(--civicinfra-space-4, 1rem);
border-top: 2px solid var(--civicinfra-rule, #b7ad9d);
}
.assoc-profile-group {
margin-bottom: var(--civicinfra-space-6, 1.5rem);
}
.assoc-profile-field {
display: grid;
grid-template-columns: 12rem 1fr;
gap: var(--civicinfra-space-2, 0.5rem);
padding: var(--civicinfra-space-1, 0.25rem) 0;
font-size: var(--civicinfra-fs-sm, 0.875rem);
line-height: 1.5;
border-bottom: 1px solid var(--civicinfra-surface-muted, #e7e1d6);
}
.assoc-profile-field:last-child {
border-bottom: none;
}
.assoc-field-label {
font-weight: 600;
color: var(--civicinfra-muted, #5f655d);
font-size: var(--civicinfra-fs-xs, 0.75rem);
text-transform: uppercase;
letter-spacing: 0.04em;
padding-top: 0.1rem;
}
.assoc-field-value {
color: var(--civicinfra-text, #24231f);
}
/* ============================================================
MANAGE INTERFACE
============================================================ */
.assoc-manage {
max-width: 72rem;
}
/* Search and filter bar */
.assoc-search-bar {
display: flex;
flex-wrap: nowrap;
gap: var(--civicinfra-space-2, 0.5rem);
align-items: center;
padding: var(--civicinfra-space-2, 0.5rem) var(--civicinfra-space-3, 0.75rem);
background: var(--civicinfra-surface, #f2efe8);
border: 1px solid var(--civicinfra-border, #cfc6b6);
border-radius: var(--civicinfra-radius, 3px);
margin-bottom: var(--civicinfra-space-4, 1rem);
overflow-x: auto;
}
/* Search input grows, dropdowns are fixed width */
.assoc-search-bar input[type="search"] {
flex: 1 1 12rem;
min-width: 8rem;
height: 2rem;
font-size: var(--civicinfra-fs-sm, 0.875rem);
}
.assoc-search-bar select {
flex: 0 0 auto;
width: 9rem;
height: 2rem;
font-size: var(--civicinfra-fs-sm, 0.875rem);
}
/* Bulk actions bar */
.assoc-bulk-bar {
display: flex;
gap: var(--civicinfra-space-2, 0.5rem);
align-items: center;
padding: var(--civicinfra-space-2, 0.5rem) var(--civicinfra-space-3, 0.75rem);
background: var(--civicinfra-accent-muted, #d8c4a2);
border: 1px solid var(--civicinfra-accent, #8a673c);
border-radius: var(--civicinfra-radius, 3px);
margin-bottom: var(--civicinfra-space-3, 0.75rem);
font-size: var(--civicinfra-fs-sm, 0.875rem);
font-weight: 600;
}
/* Pagination */
.assoc-pagination {
display: flex;
align-items: center;
justify-content: space-between;
padding-top: var(--civicinfra-space-3, 0.75rem);
font-size: var(--civicinfra-fs-sm, 0.875rem);
color: var(--civicinfra-muted, #5f655d);
border-top: 1px solid var(--civicinfra-surface-muted, #e7e1d6);
}
/* Delete confirmation */
.assoc-delete-confirm {
border: 1px solid var(--civicinfra-danger, #7a342c);
border-left: 0.35rem solid var(--civicinfra-danger, #7a342c);
background: color-mix(in srgb, var(--civicinfra-danger, #7a342c) 6%, var(--civicinfra-bg, #faf9f6));
padding: var(--civicinfra-space-4, 1rem);
border-radius: 0 var(--civicinfra-radius, 3px) var(--civicinfra-radius, 3px) 0;
margin-top: var(--civicinfra-space-6, 1.5rem);
}
.assoc-delete-confirm h5 {
color: var(--civicinfra-danger, #7a342c);
margin-bottom: var(--civicinfra-space-3, 0.75rem);
}
/* Diff view */
.assoc-diff-entry {
margin-bottom: var(--civicinfra-space-4, 1rem);
border: 1px solid var(--civicinfra-border, #cfc6b6);
border-radius: var(--civicinfra-radius, 3px);
overflow: hidden;
}
.assoc-diff-entry-header {
background: var(--civicinfra-surface, #f2efe8);
padding: var(--civicinfra-space-2, 0.5rem) var(--civicinfra-space-4, 1rem);
font-weight: 700;
font-size: var(--civicinfra-fs-sm, 0.875rem);
border-bottom: 1px solid var(--civicinfra-border, #cfc6b6);
display: flex;
align-items: center;
gap: var(--civicinfra-space-3, 0.75rem);
}
.assoc-diff-entry-new {
border-left: 0.25rem solid var(--civicinfra-primary, #243f3b);
}
.assoc-diff-entry-changed {
border-left: 0.25rem solid var(--civicinfra-accent, #8a673c);
}
/* Edit form profile link */
.assoc-profile-edit-link {
padding-top: var(--civicinfra-space-3, 0.75rem);
}
/* ============================================================
RESPONSIVE
============================================================ */
@media (max-width: 767.98px) {
.assoc-profile-field {
grid-template-columns: 1fr;
gap: var(--civicinfra-space-1, 0.25rem);
}
.assoc-field-label {
border-bottom: none;
padding-bottom: 0;
}
.assoc-search-bar {
flex-direction: column;
}
.assoc-manage {
max-width: 100%;
}
}
/* ============================================================
EDIT FORM — TABS
============================================================ */
.assoc-edit-tabs {
border-bottom: 2px solid var(--civicinfra-rule, #b7ad9d);
}
.assoc-edit-tabs .nav-link {
font-family: var(--bs-font-sans-serif);
font-size: var(--civicinfra-fs-sm, 0.875rem);
font-weight: 600;
color: var(--civicinfra-muted, #5f655d);
border: none;
border-bottom: 2px solid transparent;
margin-bottom: -2px;
padding: 0.5rem 1rem;
border-radius: 0;
transition: color var(--civicinfra-transition, 150ms ease),
border-color var(--civicinfra-transition, 150ms ease);
}
.assoc-edit-tabs .nav-link:hover {
color: var(--civicinfra-text, #24231f);
border-bottom-color: var(--civicinfra-rule, #b7ad9d);
}
.assoc-edit-tabs .nav-link.active {
color: var(--civicinfra-primary, #243f3b);
border-bottom: 2px solid var(--civicinfra-primary, #243f3b);
background: none;
}
.assoc-edit-tab-content {
border: 1px solid var(--civicinfra-border, #cfc6b6);
border-top: none;
}
.assoc-tab-pane {
border-radius: 0 0 var(--civicinfra-radius, 3px) var(--civicinfra-radius, 3px);
}
.assoc-save-bar {
padding: var(--civicinfra-space-3, 0.75rem) 0;
margin-top: var(--civicinfra-space-3, 0.75rem);
}