.upload { margin-bottom: 16px; }
.upload small { display: block; margin-top: 9px; color: var(--muted); }
.photoActions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 12px; }
.photoActions button { width: 100%; }
#cameraVideo { width: 100%; max-height: 60vh; background: #101613; border-radius: 14px; object-fit: contain; }
#cameraDialog { width: min(760px, 96vw); }
@media (max-width: 520px) { .photoActions { grid-template-columns: 1fr; } }


/* 현장사진 신고: 현장에서 빠르게 끝내는 5단계 화면 */
.fieldOnly{display:none}
#capture.fieldCaptureMode .fieldOnly{display:flex}
.fieldFlow{margin:0 4px 12px;padding:10px 9px;align-items:center;justify-content:center;gap:5px;background:#0a1b29;border:1px solid #263f53;border-radius:13px;color:#a9bdcc;font-size:11px;font-weight:800;white-space:nowrap}
.fieldFlow span{margin:0!important;color:#c9d9e4!important;font-size:11px!important}.fieldFlow i{color:#35dfac;font-style:normal;font-size:15px}
.fieldStepHead{align-items:center;gap:10px;margin:20px 0 10px;padding-top:4px}
.fieldStepHead>span{display:grid!important;place-items:center;flex:0 0 30px;width:30px;height:30px;margin:0!important;border-radius:50%;background:#35dfac;color:#06231a!important;font-size:14px!important;font-weight:900}
.fieldStepHead div{min-width:0}.fieldStepHead b{display:block;color:#fff;font-size:16px;line-height:1.25}.fieldStepHead small{display:block;color:#91a6b7;font-size:12px;line-height:1.4;margin-top:3px}
#capture.fieldCaptureMode .card{padding-top:12px!important}
#capture.fieldCaptureMode .categoryPicker{margin-bottom:8px}
#capture.fieldCaptureMode .upload{padding:17px 14px;border-color:#35a987;background:linear-gradient(180deg,#0b202d,#091924)}
#capture.fieldCaptureMode .fieldCameraHint{width:76px;height:76px;margin:13px auto 10px;align-items:center;justify-content:center;border-radius:50%;background:#35dfac;color:#06231a;font-size:35px;box-shadow:0 0 0 7px #35dfac18}
#capture.fieldCaptureMode #cameraBtn{min-height:58px;font-size:17px}
#capture.fieldCaptureMode #fileBtn{min-height:44px;font-size:12px}
#capture.fieldCaptureMode #documentBtn{display:none!important}
#capture.fieldCaptureMode #additionalPhotosBtn{margin-top:10px}
#capture.fieldCaptureMode #targetLocationTool{border:1px solid #284156;border-radius:14px;padding:12px;background:#091a28}
#capture.fieldCaptureMode #targetLocationTool summary{font-weight:800;color:#b7cad8}
#capture.fileCaptureMode .fieldOnly{display:none!important}
@media(max-width:370px){.fieldFlow{gap:3px;padding-left:5px;padding-right:5px;font-size:10px}.fieldFlow span{font-size:10px!important}.fieldStepHead b{font-size:15px}}

/* 사진·서류 선택에서는 현장 위치 관련 화면을 표시하지 않음 */
#capture.fileCaptureMode .fieldLocationOnly,
#capture.fileCaptureMode .photoMetaText{display:none!important}
#capture.fileCaptureMode .upload{margin-top:8px}
#capture.fileCaptureMode #fieldAnalysis{margin-top:14px}

/* 촬영 전 대상 설정 및 중앙 조준표 */
.targetChoiceGroup{margin-top:14px}.targetChoiceGroup>span{display:block;font-weight:800;margin-bottom:8px}.targetQuickDistances .primary,.targetChoiceGroup .primary{box-shadow:0 0 0 2px #33d7ae inset}.cameraAim{position:relative}.cameraAim video{display:block;width:100%}.cameraCrosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:56px;height:56px;border:2px solid #33d7ae;border-radius:50%;color:#33d7ae;font-size:42px;line-height:48px;text-align:center;text-shadow:0 1px 4px #001}.cameraTargetSummary{font-weight:800;text-align:center}

/* 모바일 촬영 전 선택 화면 */
.preCaptureTarget{display:block!important;width:100%;box-sizing:border-box;margin:16px 0;padding:16px;border:1px solid #29465c;border-radius:18px;background:#0b2233;text-align:left}.preCaptureTarget>small{display:block;margin-top:4px}.targetObjectGrid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;margin-top:8px}.targetObjectGrid button{width:100%!important;min-width:0!important;margin:0!important;padding:12px 4px!important;white-space:nowrap}.targetDistanceControl label{display:flex;align-items:center;justify-content:space-between}.targetDistanceControl strong{color:#33d7ae;font-size:1.35rem}.targetDistanceControl input[type=range]{display:block;width:100%;height:38px;margin:8px 0 0;accent-color:#33d7ae;touch-action:pan-x}.rangeScale{display:flex;justify-content:space-between;font-size:.72rem;color:#9cb0c0}.targetDistanceControl small{display:block;margin-top:8px}.preCaptureTarget .meta{margin-top:14px;line-height:1.45}

/* 거리 버튼 원복 */
.targetDistanceGrid{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;width:100%;margin-top:8px}.targetDistanceGrid button{width:100%!important;min-width:0!important;margin:0!important;padding:12px 2px!important;white-space:nowrap}
#capture.fieldCaptureMode #fileBtn,
#capture.fieldCaptureMode #photoPasteZone{display:none!important}


/* B플랜 4→승인→5 촬영 화면 색상 통일 */
#cameraConsentDialog{width:min(420px,calc(100vw - 32px));padding:26px 22px;border:1px solid #2b4b63;border-radius:22px;background:linear-gradient(180deg,#102a42,#091827);color:#f4f8fc;box-shadow:0 24px 70px #0009}
#cameraConsentDialog::backdrop{background:#020914b8;backdrop-filter:blur(4px)}
#cameraConsentDialog h2{margin:0 0 22px;text-align:center;font-size:22px;color:#fff}
#cameraConsentDialog .actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#cameraConsentDialog .actions button{min-height:52px;margin:0;border-radius:16px;font-weight:900}
#cameraConsentDialog #cameraConsentApprove{background:#35dfac;color:#06231a;border-color:#35dfac}
#cameraConsentDialog #cameraConsentCancel{background:#13283b;color:#e5eef5;border-color:#355069}
#cameraDialog{width:min(440px,calc(100vw - 20px));padding:18px;border:1px solid #2a4860;border-radius:24px;background:linear-gradient(180deg,#102a42,#071625);color:#f4f8fc;box-shadow:0 24px 70px #000a}
#cameraDialog::backdrop{background:#020914e6}
#cameraDialog h2{color:#35dfac;text-align:center;margin:2px 36px 14px}
#cameraDialog .cameraAim{overflow:hidden;border:1px solid #2c5165;border-radius:18px;background:#04111d}
#cameraDialog #cameraVideo{background:#04111d;border-radius:18px}
#cameraDialog .cameraTargetSummary{color:#c5d5e1}
#cameraDialog #shutterBtn{min-height:58px;background:#35dfac;color:#06231a;border-radius:20px;font-size:17px;font-weight:900}
#cameraDialog .cameraClose{background:#13283b;color:#fff;border:1px solid #355069}


/* 승인된 B플랜 5번 촬영 화면 */
#cameraDialog{box-sizing:border-box;width:min(460px,100vw);height:min(920px,100dvh);max-height:100dvh;margin:auto;padding:0;overflow:hidden;border:1px solid #2a4860;border-radius:26px;background:#071827;color:#f4f8fc}
#cameraDialog .cameraScreenTop{height:62px;padding:0 14px;display:grid;grid-template-columns:38px 1fr auto auto;align-items:center;gap:12px;background:#102a42;border-bottom:1px solid #29465c}
#cameraDialog .cameraScreenTop b{letter-spacing:5px;text-align:center;color:#fff}
#cameraDialog .cameraScreenTop span{font-size:11px;color:#d2dee8}
#cameraDialog .cameraBack{position:static;width:36px;height:36px;margin:0;padding:0;border:0;background:transparent;color:#fff;font-size:38px;line-height:1}
#cameraDialog .cameraContextBar{display:grid;grid-template-columns:auto 1fr auto;gap:7px;padding:10px 12px;background:#0b2133}
#cameraDialog .cameraContextBar span{padding:7px 9px;border:1px solid #2e5268;border-radius:99px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d7e4ed;font-size:11px;text-align:center}
#cameraDialog .cameraContextBar span:first-child{background:#35dfac;color:#06231a;border-color:#35dfac;font-weight:900}
#cameraDialog .cameraAim{position:relative;height:calc(100% - 275px);min-height:360px;overflow:hidden;border:0;border-radius:0;background:#04111d}
#cameraDialog #cameraVideo{width:100%;height:100%;max-height:none;object-fit:cover;border-radius:0}
#cameraDialog #cameraTargetSummary{position:absolute;z-index:3;top:22px;left:7%;right:7%;margin:0;padding:12px;border-radius:13px;background:#071827d9;color:#fff;text-align:center;font-size:13px;font-weight:800}
#cameraDialog .cameraCrosshair{position:absolute;z-index:2;left:18%;right:18%;top:27%;bottom:19%;width:auto;height:auto;transform:none;border:2px solid #55efd0;border-radius:22px;color:transparent;box-shadow:0 0 0 1px #04111d55}
#cameraDialog .cameraChecklist{position:absolute;z-index:3;left:50%;bottom:24px;transform:translateX(-50%);display:grid;gap:6px;width:max-content;padding:12px 18px;border-radius:14px;background:#071827dd;color:#eff7fb;font-size:12px}
#cameraDialog .cameraChecklist span::first-letter{color:#35dfac}
#cameraDialog .cameraCaptureTitle{height:35px;display:grid;place-items:center;background:#0b2133;color:#fff;font-weight:900}
#cameraDialog .cameraCaptureBar{height:105px;display:grid;grid-template-columns:64px 1fr 64px;align-items:center;justify-items:center;background:#0b2133;padding:0 20px}
#cameraDialog .cameraLastThumb{display:grid;place-items:center;width:48px;height:48px;border:1px solid #426079;border-radius:10px;background:#13283b;color:#9fb2c2;font-size:10px}
#cameraDialog .cameraShutter{display:grid;place-items:center;width:72px;height:72px;padding:0;border:6px solid #35dfac;border-radius:50%;background:#fff;box-shadow:0 0 0 3px #0b2133;color:#06231a}
#cameraDialog .cameraShutter span{font-size:0}
#cameraDialog .cameraSwitch{width:48px;height:48px;padding:0;border:1px solid #426079;border-radius:50%;background:#13283b;color:#fff;font-size:25px}
#cameraDialog .cameraSafety{height:50px;margin:0 12px 12px;padding:0 14px;display:flex;align-items:center;border:1px solid #355069;border-radius:14px;background:#102438;color:#c9d8e3;font-size:12px}
@media(max-width:480px){#cameraDialog{width:100vw;height:100dvh;border-radius:0}.cameraContextBar{grid-template-columns:1fr 1.25fr 1fr!important}.cameraScreenTop{grid-template-columns:32px 1fr auto auto!important;gap:8px!important}.cameraScreenTop span{font-size:10px!important}}
