/* to-profile — layout only; fields, text area, stepper, banner, preview and action bar are shared components. */
.to-profile__resume { margin-top: var(--rhythm-group); }
.to-profile__title { margin-top: var(--rhythm-block); }
.to-profile__lead { margin: var(--rhythm-tight) 0 var(--rhythm-group); }
/* Study-1 C1: the live card preview sits at the top (sticky, components-v5.css); its sample-job caption stays put under it */
.to-profile__preview-caption { margin: var(--space-8) 0 var(--rhythm-section); text-wrap: pretty; }
.to-profile__photo { display: flex; align-items: center; gap: var(--space-16); }
.to-profile__photo-side { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); min-width: 0; }
.to-profile__photo-side p { margin: 0; }
.to-profile__photo-side .text-link { padding-inline: 0; min-height: 44px; }
.to-profile__group { margin-top: var(--rhythm-section); }
.to-profile__group + .to-profile__group { margin-top: var(--rhythm-group); }
.to-profile__work-block { display: flex; flex-direction: column; gap: var(--rhythm-tight); margin-top: var(--rhythm-section); }
.to-profile__work-block p { margin: 0; }
.to-profile__tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: var(--space-8); }
.to-profile__work { display: block; width: 100%; min-width: 64px; aspect-ratio: 1; padding: 0; border: 0; background: none; border-radius: var(--radius-sm); }
.to-profile__work .photo-tile { display: block; width: 100%; height: 100%; border-radius: var(--radius-sm); }
.to-profile__work .photo-tile--add .icon-camera { inset: 0; margin: auto; width: 24px; height: 24px; }
.to-profile__viewer { position: relative; aspect-ratio: 4 / 3; margin-bottom: var(--space-12); border-radius: var(--radius-md); overflow: hidden; }
.to-profile__viewer[hidden] { display: none; }
.to-profile__viewer .doc-photo { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; border-radius: inherit; }
.to-profile__sheet-list { display: flex; flex-direction: column; border-radius: var(--radius-md); background: var(--white); padding-inline: var(--space-16); margin-bottom: var(--space-12); }
.to-profile__sheet-foot { display: flex; justify-content: center; }
.screen-sheet[data-s^="to-profile"] .sheet__cancel,
.screen-sheet[data-s^="to-profile"] .sheet__confirm { min-width: 44px; min-height: 44px; }
/* K-19: the profile photo is required — a missing one after Next rings the well in the error colour, the message sits beside it */
.to-profile__photo--error .avatar { box-shadow: inset 0 0 0 2px var(--error); }
.to-profile__photo--error .to-profile__photo-side .text-link { color: var(--error-ink); }
/* DG-4 (D-350): the photo ID beside the profile photo — the "ID and profile photo" check */
.to-profile__id { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); margin-top: var(--rhythm-group); }
.to-profile__id p { margin: 0; }
.to-profile__id-head { display: flex; align-items: center; gap: var(--space-12); }
.to-profile__id .text-link { padding-inline: 0; min-height: 44px; }
.to-profile__id--error .text-link { color: var(--error-ink); }
