.ajfc-photo-help,
.ajfc-document-guide {
    box-sizing: border-box;
    margin: 10px 0 14px;
    padding: 12px 14px;
    border: 1px solid #b8c7bd;
    border-radius: 8px;
    background: #f7fbf8;
    color: #223127;
    line-height: 1.45;
}
.ajfc-photo-help a { font-weight: 600; }
.ajfc-photo-status { margin: 8px 0; font-weight: 600; }
.ajfc-photo-status.is-working { color: #6b5700; }
.ajfc-photo-status.is-success { color: #176b32; }
.ajfc-photo-status.is-error { color: #a12622; }
.ajfc-document-guide { display: flex; gap: 14px; align-items: center; }
.ajfc-document-guide img { flex: 0 0 150px; width: 150px; height: 100px; object-fit: contain; border-radius: 5px; background: #fff; }
.ajfc-document-guide strong { display: block; margin-bottom: 4px; font-size: 1.05em; }
.ajfc-document-guide p { margin: 0; }
.ajfc-crop-overlay {
    position: fixed;
    z-index: 999999;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 18px;
    background: rgba(16, 24, 18, .78);
}
.ajfc-crop-dialog {
    width: min(520px, 100%);
    max-height: calc(100vh - 36px);
    overflow: auto;
    box-sizing: border-box;
    padding: 22px;
    border-radius: 12px;
    background: #fff;
    color: #1f2922;
    box-shadow: 0 18px 60px rgba(0, 0, 0, .35);
}
.ajfc-crop-dialog h2 { margin: 0 0 8px; font-size: 1.45rem; }
.ajfc-crop-dialog p { margin: 0 0 14px; }
.ajfc-crop-canvas {
    display: block;
    width: min(100%, 420px);
    height: auto;
    margin: 0 auto 15px;
    border: 2px solid #315c40;
    border-radius: 7px;
    background: #e9eee9;
    cursor: move;
    touch-action: none;
}
.ajfc-crop-canvas:focus { outline: 3px solid #76a988; outline-offset: 2px; }
.ajfc-zoom-label { display: flex; align-items: center; gap: 12px; font-weight: 700; }
.ajfc-crop-zoom { flex: 1; }
.ajfc-crop-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.ajfc-crop-actions button { padding: 10px 16px; border: 1px solid #315c40; border-radius: 5px; background: #fff; color: #24412c; font: inherit; font-weight: 700; cursor: pointer; }
.ajfc-crop-actions .ajfc-crop-confirm { background: #315c40; color: #fff; }
@media (max-width: 600px) {
    .ajfc-document-guide { align-items: flex-start; }
    .ajfc-document-guide img { flex-basis: 100px; width: 100px; height: 76px; }
    .ajfc-crop-overlay { padding: 8px; }
    .ajfc-crop-dialog { max-height: calc(100vh - 16px); padding: 15px; }
    .ajfc-crop-actions { flex-direction: column-reverse; }
    .ajfc-crop-actions button { width: 100%; }
}
