.candidate-body { min-height: 100vh; background: linear-gradient(180deg,#edf4f8 0,#f8fafc 45%,#fff 100%); }
.candidate-container { max-width: 820px; }
.candidate-logo { width: 92px; height: 92px; object-fit: contain; border-radius: 1rem; background: white; border: 1px solid #dfe6ee; padding: .4rem; }
.candidate-instructions { max-width: 640px; white-space: normal; }
.type-card,.candidate-form-card,.success-card { border: 0; box-shadow: 0 .6rem 2rem rgba(21,45,72,.1); border-radius: 1rem; }
.type-card { transition: transform .15s ease,box-shadow .15s ease; }
.type-card:has(a):hover { transform: translateY(-2px); box-shadow: 0 .8rem 2.2rem rgba(21,45,72,.15); }
.choice-group { display: grid; gap: .55rem; padding: .75rem; background: #f8fafc; border-radius: .65rem; }
.choice-group .form-check { min-height: 1.7rem; }
.photo-editor { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:.75rem 1rem; align-items:start; }
.photo-editor[hidden] { display:none; }
.photo-editor-heading,.photo-adjustments,.photo-editor-help { grid-column:1/-1; }
.photo-crop-stage { grid-column:1; min-width:0; }
.photo-editor:not(.has-photo-preview) .photo-crop-stage { grid-column:1/-1; }
.photo-cropper canvas { display: block; width: min(100%,300px); aspect-ratio: 3/4; margin-inline: auto; border-radius: .75rem; background: #d9e1e8; touch-action: none; cursor: grab; user-select:none; -webkit-user-select:none; box-shadow: inset 0 0 0 3px rgba(255,255,255,.8); }
.photo-cropper canvas.is-dragging { cursor:grabbing; }
.photo-cropper canvas:active { cursor: grabbing; }
.photo-adjustments { display:grid; gap:.45rem; }
.photo-adjustment { display:grid; grid-template-columns:minmax(68px,auto) minmax(100px,1fr) 48px; align-items:center; gap:.65rem; width:100%; font-size:.78rem; white-space:nowrap; }
.photo-adjustment .form-range { min-width:0; margin:0; }
.photo-adjustment output { text-align:right; }
.photo-bg-preview { grid-column:2; min-width:0; }
.photo-bg-preview img { display:block; width:min(100%,300px); aspect-ratio:3/4; margin-inline:auto; object-fit:cover; border:1px solid #cbd5e1; border-radius:.75rem; background:#fff; box-shadow:0 .45rem 1.2rem rgba(21,45,72,.12); }
.photo-camera-stage { position:relative; width:min(100%,360px); aspect-ratio:3/4; overflow:hidden; margin-inline:auto; border-radius:.9rem; background:#111; }
.photo-camera-stage video { width:100%; height:100%; object-fit:cover; transform:scaleX(-1); }
.photo-camera-mask { position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 0 0 999px rgba(5,14,25,.48); border:4px solid #fff; }
.photo-camera[data-camera-shape="circle"] .photo-camera-mask { inset:12% 8%; border-radius:50%; }
.photo-camera[data-camera-shape="rectangle"] .photo-camera-mask { inset:5%; border-radius:.65rem; }
.photo-source-actions .btn { min-height:3.25rem; }
.success-check { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 50%; background: #dff5e7; color: #198754; font-size: 2rem; font-weight: 700; }
.reference-box { background: #f0f6ff; border: 1px dashed #6b9bd2; border-radius: .75rem; padding: 1rem; }
.reference-box strong { display: block; font-size: clamp(1.35rem,5vw,2rem); letter-spacing: .04em; overflow-wrap: anywhere; }
@media (max-width:575.98px) { .candidate-form-card { border-radius: .8rem; } .candidate-logo { width:76px;height:76px; } .photo-editor { gap:.55rem .65rem; } .photo-adjustment { grid-template-columns:62px minmax(80px,1fr) 42px; gap:.4rem; } }
.secure-submission-notice{display:flex;gap:1rem;align-items:flex-start;padding:1rem 1.1rem;border:1px solid #b9d7c4;border-radius:.8rem;background:#f1fbf5;color:#214c31}.secure-submission-notice p{font-size:.9rem;color:#365f45}.secure-submission-notice small{color:#52705d}.secure-lock{flex:0 0 42px;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#d7f2e0;font-size:1.25rem}@media(max-width:575.98px){.secure-submission-notice{align-items:center;gap:.65rem;padding:.7rem .8rem}.secure-submission-notice strong{display:block;font-size:.86rem;line-height:1.2}.secure-submission-notice p{font-size:.8rem;line-height:1.25;margin-top:.15rem}.secure-lock{flex-basis:38px;width:38px;height:38px;font-size:1.1rem}}
