Remove AddressBookServicesFactory — all 8 dependencies already registered in DI container individually. Update container registrar to wire directly. Extract 42-line filter-chip builder from index().php into AddressBookService::buildCustomFieldChipMeta(). Split 576-line CSS file into functional layout (76 lines) and decorative banner animation (500 lines) with separate asset registration. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
77 lines
1.5 KiB
CSS
77 lines
1.5 KiB
CSS
@layer pages {
|
|
.app-profile-card-container {
|
|
margin-top: calc(var(--app-spacing) * 2);
|
|
}
|
|
|
|
.app-profile-card {
|
|
border: 1px solid var(--app-border);
|
|
background: var(--app-card-background-color);
|
|
overflow: hidden;
|
|
border-radius: var(--app-border-radius);
|
|
margin-bottom: var(--app-spacing);
|
|
}
|
|
|
|
.app-profile-header {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
padding: 0 calc(var(--app-spacing) * 1) 0 calc(var(--app-spacing) * 1);
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
margin-top: -42px;
|
|
z-index: 1;
|
|
position: relative;
|
|
}
|
|
|
|
.app-profile-meta h2 {
|
|
margin: 0;
|
|
}
|
|
|
|
.app-profile-meta p {
|
|
margin: 0.25rem 0 0;
|
|
color: var(--app-muted-color);
|
|
}
|
|
|
|
.app-profile-body {
|
|
border: 1px solid var(--app-border);
|
|
background: var(--app-card-background-color);
|
|
overflow: hidden;
|
|
border-radius: var(--app-border-radius);
|
|
margin-bottom: var(--app-spacing);
|
|
}
|
|
|
|
.app-profile-body [data-tab-panel] {
|
|
padding-inline: var(--app-spacing);
|
|
}
|
|
|
|
.app-profile-body [data-tab-panel]:not(:has(p)) {
|
|
padding-block-end: var(--app-spacing);
|
|
}
|
|
|
|
.app-profile-table {
|
|
width: 100%;
|
|
border: 1px solid var(--app-border);
|
|
border-radius: var(--app-border-radius);
|
|
border-collapse: separate;
|
|
border-spacing: 0;
|
|
background: transparent;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.app-profile-table th,
|
|
.app-profile-table td {
|
|
padding: 0.55rem 0.75rem;
|
|
background: transparent;
|
|
border-bottom: 1px solid var(--app-border);
|
|
text-align: left;
|
|
vertical-align: top;
|
|
}
|
|
|
|
.app-profile-table thead th {
|
|
font-weight: 600;
|
|
}
|
|
|
|
.app-profile-table tr:last-child td {
|
|
border-bottom: 0;
|
|
}
|
|
}
|