Files
dashboards/src/pages/ProfilePage.module.css
T

266 lines
4.4 KiB
CSS

.profileMain {
padding-bottom: 48px;
}
.topBlock {
margin-bottom: 24px;
}
.formShell {
position: relative;
width: 100%;
max-width: none;
padding: 28px 26px 24px;
border-radius: var(--radius);
background: var(--glass-bg-strong);
backdrop-filter: blur(22px) saturate(1.2);
-webkit-backdrop-filter: blur(22px) saturate(1.2);
border: 1px solid var(--glass-border);
box-shadow:
var(--glass-shadow),
inset 0 1px 0 rgba(255, 255, 255, 0.75);
overflow: hidden;
animation: fadeUp 0.55s var(--ease-out) both;
}
.formShine {
position: absolute;
inset: 0;
background: var(--glass-shine);
pointer-events: none;
}
.formHeader {
position: relative;
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
margin-bottom: 22px;
}
.eyebrow {
font-family: var(--font-en);
font-size: 0.78rem;
letter-spacing: 0.06em;
color: var(--brown);
opacity: 0.45;
margin-bottom: 4px;
direction: ltr;
text-align: end;
}
.formTitle {
font-size: 1.2rem;
font-weight: 700;
color: var(--brown);
}
.roleBadge {
flex-shrink: 0;
padding: 6px 12px;
border-radius: 999px;
border: 1px solid rgba(143, 65, 12, 0.18);
background: rgba(143, 65, 12, 0.07);
color: var(--brown);
font-size: 0.78rem;
font-weight: 500;
}
.grid {
position: relative;
display: grid;
grid-template-columns: repeat(12, minmax(0, 1fr));
gap: 14px;
}
.field {
display: flex;
flex-direction: column;
gap: 6px;
}
.field label {
font-size: 0.8rem;
font-weight: 500;
color: var(--text-secondary);
}
.field input,
.field select {
width: 100%;
height: var(--field-height);
padding: 0 12px;
border-radius: var(--radius-sm);
border: 1px solid rgba(143, 65, 12, 0.14);
background: rgba(255, 250, 250, 0.88);
color: var(--text-primary);
font-family: inherit;
font-size: 0.92rem;
outline: none;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
transition:
border-color 0.2s,
box-shadow 0.2s;
}
.field select {
cursor: pointer;
}
.field input:focus,
.field select:focus {
border-color: var(--brown);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.9),
0 0 0 3px rgba(var(--primary-rgb) / 0.12);
}
.field input:disabled,
.field input:read-only,
.field select:disabled {
opacity: 0.72;
cursor: not-allowed;
}
.field input[dir='ltr'] {
text-align: right;
unicode-bidi: isolate;
}
.hint {
font-size: 0.75rem;
color: var(--text-muted);
font-variant-numeric: tabular-nums;
direction: ltr;
text-align: right;
unicode-bidi: isolate;
}
.colTitle {
grid-column: span 3;
}
.colFirst {
grid-column: span 4;
}
.colLast {
grid-column: span 5;
}
.colPhone,
.colCategory {
grid-column: span 6;
}
.actions {
position: relative;
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 10px;
margin-top: 22px;
padding-top: 18px;
border-top: 1px solid rgba(143, 65, 12, 0.1);
}
.primaryBtn,
.secondaryBtn {
display: inline-flex;
align-items: center;
gap: 8px;
height: 44px;
padding: 0 16px;
border-radius: 12px;
font-size: 0.9rem;
font-weight: 500;
transition:
background 0.2s,
color 0.2s,
border-color 0.2s,
transform 0.2s;
}
.primaryBtn {
color: var(--text-on-dark);
background: var(--brown);
}
.primaryBtn:hover:not(:disabled) {
background: var(--brown-dark);
transform: translateY(-1px);
}
.secondaryBtn {
color: var(--brown);
border: 1px solid rgba(143, 65, 12, 0.2);
background: rgba(255, 250, 250, 0.7);
}
.secondaryBtn:hover:not(:disabled) {
background: rgba(143, 65, 12, 0.08);
}
.primaryBtn:disabled,
.secondaryBtn:disabled {
opacity: 0.55;
cursor: not-allowed;
transform: none;
}
.error,
.success,
.statusText {
position: relative;
margin-bottom: 14px;
padding: 12px 14px;
border-radius: 12px;
font-size: 0.9rem;
}
.error {
color: #9b2c2c;
background: rgba(155, 44, 44, 0.08);
border: 1px solid rgba(155, 44, 44, 0.16);
}
.success {
color: #2f6b4f;
background: rgba(47, 107, 79, 0.08);
border: 1px solid rgba(47, 107, 79, 0.16);
}
.statusText {
color: var(--text-muted);
text-align: center;
border: none;
background: transparent;
margin: 0;
padding: 40px 16px;
}
@media (max-width: 720px) {
.grid {
grid-template-columns: 1fr;
}
.colTitle,
.colFirst,
.colLast,
.colPhone,
.colCategory {
grid-column: auto;
}
.actions {
flex-direction: column-reverse;
}
.primaryBtn,
.secondaryBtn {
width: 100%;
justify-content: center;
}
}