/* Shared profile aesthetic for profile index, contractors/view, users/profile */
.profile-page { padding: 0 0 2rem; max-width: 100%; }
.profile-header { margin-bottom: 1.5rem; }
.profile-title { font-size: 1.5rem; font-weight: 700; color: #1a1a1a; margin: 0 0 0.25rem 0; }
.profile-title .material-symbols-rounded { font-size: 1.25rem; vertical-align: middle; margin-right: 0.35rem; }
.profile-subtitle { font-size: 0.9375rem; color: #6b7280; margin: 0; }
@media (min-width: 992px) { .profile-title { font-size: 1.75rem; } }

.profile-section { margin-bottom: 1.75rem; }
.profile-section-title {
    font-size: 1.125rem; font-weight: 700; color: #1a1a1a; margin: 0 0 1rem 0;
    display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem;
}
.profile-section-title .material-symbols-rounded { font-size: 1.35rem; }
.profile-section-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 1rem; }
.profile-section-head .profile-section-title { margin-bottom: 0; }

.profile-cards { display: grid; grid-template-columns: 1fr; gap: 0.75rem; }
@media (min-width: 576px) { .profile-cards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 768px) { .profile-cards { grid-template-columns: repeat(3, 1fr); } }
.profile-card {
    display: flex; align-items: flex-start; gap: 1rem; padding: 1rem;
    background: #fff; border: 1px solid #e5e7eb; border-radius: 12px; box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}
.profile-card-icon {
    width: 48px; height: 48px; flex-shrink: 0; border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
}
.profile-card-icon .material-symbols-rounded { font-size: 1.5rem; color: #fff; }
.profile-card-icon-primary { background: #2563eb; }
.profile-card-icon-success { background: #16a34a; }
.profile-card-icon-info { background: #0891b2; }
.profile-card-icon-warning { background: #d97706; }
.profile-card-body { flex: 1; min-width: 0; }
.profile-card-heading { font-size: 1rem; font-weight: 600; margin: 0 0 0.35rem 0; }
.profile-card-meta { font-size: 0.8125rem; color: #6b7280; margin: 0; }
.profile-badge { font-size: 0.75rem; font-weight: 600; padding: 0.2rem 0.5rem; border-radius: 6px; }
.profile-badge-success { background: #dcfce7; color: #166534; }
.profile-badge-warning { background: #fef3c7; color: #92400e; }
.profile-badge-danger { background: #fee2e2; color: #991b1b; }
.profile-badge-secondary { background: #f3f4f6; color: #4b5563; }
.profile-card-links { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 0.5rem; }
.profile-card-links .profile-btn-link { min-height: 38px; }
.profile-btn-link {
    display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; font-weight: 600;
    color: #2563eb; text-decoration: none; padding: 0.4rem 0;
}
.profile-btn-link:hover { color: #1d4ed8; }
.profile-btn-link .material-symbols-rounded { font-size: 1.1rem; }
.profile-btn-link-sm { padding: 0.35rem 0.75rem; min-height: auto; border: 1px solid #bfdbfe; border-radius: 8px; background: #eff6ff; }

.profile-block { padding: 1rem; border-radius: 12px; border: 1px solid #e5e7eb; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,0.05); }
@media (min-width: 576px) { .profile-block { padding: 1.25rem; } }
.profile-info-grid { display: grid; grid-template-columns: 1fr; gap: 0.75rem 1rem; }
@media (min-width: 576px) { .profile-info-grid { grid-template-columns: repeat(2, 1fr); } }
.profile-info-item { display: flex; align-items: flex-start; gap: 0.75rem; min-width: 0; }
.profile-info-item-full { grid-column: 1 / -1; }
.profile-info-icon-wrap {
    width: 40px; height: 40px; flex-shrink: 0; border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
}
.profile-info-icon-wrap .material-symbols-rounded { font-size: 1.25rem; }
.profile-info-icon-wrap-primary { background: rgba(37, 99, 235, 0.12); color: #1d4ed8; }
.profile-info-icon-wrap-info { background: rgba(8, 145, 178, 0.12); color: #0e7490; }
.profile-info-icon-wrap-success { background: rgba(22, 163, 74, 0.12); color: #15803d; }
.profile-info-icon-wrap-warning { background: rgba(245, 158, 11, 0.12); color: #b45309; }
.profile-info-icon { font-size: 1.25rem; color: #6b7280; flex-shrink: 0; }
.profile-info-content { flex: 1; min-width: 0; }
.profile-info-label { display: block; font-size: 0.75rem; color: #6b7280; text-transform: uppercase; letter-spacing: 0.02em; margin-bottom: 0.15rem; }
.profile-info-value { font-size: 0.9375rem; font-weight: 500; color: #111; word-break: break-word; }
.profile-block-divider { height: 1px; background: #e5e7eb; margin: 1rem 0; }
.profile-block-heading { font-size: 0.9375rem; font-weight: 600; margin: 0 0 0.75rem 0; display: flex; align-items: center; gap: 0.5rem; }
.profile-block-heading .material-symbols-rounded { font-size: 1.2rem; color: #6b7280; }

.profile-empty { text-align: center; padding: 2rem 1rem; }
.profile-empty-icon { font-size: 3rem; color: #9ca3af; display: block; margin-bottom: 0.75rem; }
.profile-empty-title { font-weight: 600; margin: 0 0 0.35rem 0; }
.profile-empty-text { font-size: 0.9375rem; color: #6b7280; margin: 0 0 1rem 0; }
.profile-btn-primary {
    display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.6rem 1rem; min-height: 44px;
    font-weight: 600; color: #fff; background: #1e7253; border-radius: 10px; text-decoration: none; border: none;
}
.profile-btn-primary:hover { background: #165a42; color: #fff; }
.profile-btn-primary .material-symbols-rounded { font-size: 1.2rem; }
.profile-btn-touch { min-height: 44px; }

.profile-stats-inline { display: flex; gap: 1rem; margin-bottom: 1rem; flex-wrap: wrap; }
.profile-stat-box { background: #f9fafb; border-radius: 8px; padding: 0.75rem 1rem; min-width: 80px; text-align: center; }
.profile-stat-value { display: block; font-size: 1.5rem; font-weight: 700; color: #111; }
.profile-stat-label { font-size: 0.75rem; color: #6b7280; }
.profile-block-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.profile-block-actions .profile-btn-link { padding: 0.4rem 0.75rem; background: #eff6ff; border-radius: 8px; border: 1px solid #bfdbfe; }

.profile-signature-content { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 1rem; }
@media (min-width: 576px) { .profile-signature-content { flex-direction: row; align-items: center; justify-content: space-between; } }
.profile-signature-desc { display: flex; gap: 0.75rem; align-items: flex-start; }
.profile-signature-desc strong { display: block; margin-bottom: 0.15rem; }
.profile-signature-preview { flex-shrink: 0; }
.profile-signature-img { max-width: 100%; height: auto; }

.profile-page .row.g-4 { --bs-gutter-x: 1.5rem; --bs-gutter-y: 1.5rem; }
