[hidden] { display:none !important; }
.employee-photo-editor { display:flex; flex-wrap:wrap; align-items:flex-start; gap:16px; padding:18px; margin:6px 0 22px; border:1px solid #ece4d0; border-radius:12px; background:#fffcf5; }
.photo-preview { flex:0 0 90px; width:90px; height:120px; border-radius:9px; overflow:hidden; background:#ece9df; display:grid; place-items:center; color:#858177; font-size:11px; }
.photo-preview img { width:100%;height:100%;object-fit:cover; }
.photo-editor-controls { flex:1; min-width:190px; }
.photo-editor-controls strong { color:#252634; font-size:12px; }
.photo-editor-controls p { font-size:11px; line-height:1.6; color:#777; margin:6px 0 10px; }
.photo-editor-controls .button { margin:0 5px 7px 0; }
.photo-file-button { position:relative; overflow:hidden; cursor:pointer; }
.photo-file-button input { position:absolute;inset:0;opacity:0;cursor:pointer;width:100%; }
.photo-qr-panel { flex-basis:100%;display:grid;justify-items:center;padding:14px;border-radius:10px;background:#fff; }
.photo-qr-panel canvas { max-width:100%;height:auto !important; }
.photo-qr-panel p { font-size:11px;color:#756239;text-align:center; }
.employee-directory-person { display:flex;gap:10px;align-items:center; }
.employee-directory-photo { width:38px;height:49px;border-radius:7px;object-fit:cover;background:#efeadf;flex-shrink:0; }
.employee-photo-initials { display:grid;place-items:center;color:#8b661e;font-weight:700;font-size:12px; }
.contract-preview { padding:24px;max-height:65vh;overflow:auto;background:#fff;line-height:1.75;font-size:12px; }
.contract-preview header { display:flex;justify-content:space-between;gap:20px;border-bottom:2px solid #c89b35;padding-bottom:15px;margin-bottom:18px; }
.contract-preview h3 { margin:4px 0;color:#222; }
.contract-preview .contract-photo { width:75px;height:100px;object-fit:cover;border:1px solid #ddd; }
.contract-preview .contract-logo { width:145px;height:80px;object-fit:contain; }
.contract-preview .contract-text { white-space:pre-wrap;overflow-wrap:anywhere; }
.contract-preview .contract-pilot { color:#8a621a;background:#fcf5e3;padding:10px;border:1px solid #ead9af;border-radius:6px; }
.contract-signatures { display:flex;gap:25px;margin-top:50px; }
.contract-signatures div { flex:1;border-top:1px solid #555;padding-top:8px;text-align:center; }
.contract-actions { display:flex;flex-wrap:wrap;gap:8px; }
.contract-clauses textarea { min-height:250px; }
.capture-page { margin:0;min-height:100dvh;background:#15140f;color:#eee9dd;font-family:Arial,sans-serif;padding:18px;box-sizing:border-box; }
.capture-page * { box-sizing:border-box; }
.capture-card { width:min(100%,440px);margin:0 auto;padding:20px;background:#201e17;border:1px solid #4a3e20;border-radius:18px; }
.capture-header { display:flex;align-items:center;gap:15px; }
.capture-header img { width:95px;height:65px;object-fit:contain; }
.capture-header span { color:#e5bd5b;font-size:12px;font-weight:bold;letter-spacing:.12em; }
.capture-card h1 { font-size:24px;margin:22px 0 9px; }
.capture-card p,.capture-card footer { font-size:13px;line-height:1.65;color:#c6c0b2; }
.capture-view { width:100%;aspect-ratio:3/4;position:relative;overflow:hidden;border-radius:12px;background:#000;margin:18px 0; }
.capture-view video,.capture-view img { width:100%;height:100%;object-fit:cover;display:block; }
.capture-guide { position:absolute;inset:7% 13%;border:2px solid #e5bd5b99;border-radius:45%;pointer-events:none; }
.capture-view:has(img:not([hidden])) .capture-guide { display:none; }
.capture-zoom { display:grid;gap:8px;font-size:12px;margin:12px 0 18px; }
.capture-zoom input { width:100%;accent-color:#d7ac44; }
.capture-actions { display:grid;gap:10px; }
.capture-actions button,.capture-actions label { border-radius:9px;padding:15px 12px;font-size:14px;font-weight:700;text-align:center;cursor:pointer; }
.capture-primary { color:#211a0e;background:linear-gradient(110deg,#edce78,#c8982e);border:1px solid #d5a63e; }
.capture-secondary { background:transparent;color:#e4c16d;border:1px solid #6b5931;position:relative;overflow:hidden; }
.capture-secondary input { position:absolute;inset:0;opacity:0;width:100%;cursor:pointer; }
.capture-actions button:disabled { opacity:.6;cursor:default; }
#capture-status { min-height:42px;color:#e9c873; }
.capture-card footer { padding-top:16px;border-top:1px solid #403a2a;font-size:11px; }
@media(max-width:520px) { .employee-photo-editor { padding:12px;gap:12px; } .photo-editor-controls { min-width:150px; } .capture-page { padding:10px; } .capture-card { padding:17px; } }
