/* 한 장 보고 틀 */
[data-app="one-page-report"]{ display:flex; flex-direction:column; gap:12px; }
[data-app="one-page-report"] .opr-ex{ margin:0; padding:7px 10px; border:1px dashed #E0A23B; border-radius:10px; background:#FFF8EC; color:#7A4B00; font-size:12.5px; font-weight:700; line-height:1.5; }
[data-app="one-page-report"] .opr-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 360px), 1fr)); gap:16px; align-items:start; }

/* 입력 */
[data-app="one-page-report"] .opr-form{ display:flex; flex-direction:column; gap:10px; min-width:0; }
[data-app="one-page-report"] .opr-two{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; }
[data-app="one-page-report"] .opr-two.opr-tw{ grid-template-columns:minmax(0,1fr) 150px; }
[data-app="one-page-report"] .opr-f{ display:flex; flex-direction:column; gap:4px; min-width:0; margin:0; }
[data-app="one-page-report"] .opr-sec{ display:flex; flex-direction:column; gap:6px; padding:10px; border:1px solid #E6E7EB; border-radius:12px; background:#FAFBFC; min-width:0; }
[data-app="one-page-report"] .opr-sec.opr-s1{ border-color:#BCD0F5; background:#F3F7FF; }
[data-app="one-page-report"] .opr-sh{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
[data-app="one-page-report"] .opr-st{ margin:0; display:flex; align-items:center; flex-wrap:wrap; gap:2px 6px; font-size:14px; font-weight:800; color:#1A1A1A; }
[data-app="one-page-report"] .opr-st small{ font-size:12px; font-weight:600; color:#6B717B; }
[data-app="one-page-report"] .opr-no{ display:inline-flex; align-items:center; justify-content:center; flex:none; width:20px; height:20px; border-radius:50%; background:#1A1A1A; color:#fff; font-size:11.5px; font-weight:800; }
[data-app="one-page-report"] .opr-s1 .opr-no{ background:#2F55A4; }
[data-app="one-page-report"] .opr-cnt{ flex:none; font-size:12px; font-weight:700; color:#6B717B; font-variant-numeric:tabular-nums; white-space:nowrap; }
[data-app="one-page-report"] .opr-cnt.bad{ color:#B42318; }
[data-app="one-page-report"] textarea.ndt-in.opr-ta{ display:block; min-height:40px; resize:none; overflow:hidden; padding:8px 10px; line-height:1.5; background:#fff; }
[data-app="one-page-report"] textarea.ndt-in.opr-big{ min-height:62px; font-size:16px; font-weight:700; line-height:1.45; }
[data-app="one-page-report"] .opr-ri{ display:grid; grid-template-columns:20px minmax(0,1fr); gap:4px; align-items:start; }
[data-app="one-page-report"] .opr-rn{ padding-top:9px; text-align:right; font-size:13px; font-weight:800; color:#4B5059; }
[data-app="one-page-report"] .opr-due{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 8px; }
[data-app="one-page-report"] .opr-dl{ font-size:13px; font-weight:800; color:#4B5059; }
[data-app="one-page-report"] .opr-due .ndt-in{ width:auto; flex:0 1 170px; min-width:0; background:#fff; }
[data-app="one-page-report"] .opr-dd{ font-size:12.5px; font-weight:700; color:#4B5059; }
[data-app="one-page-report"] .opr-dd.bad{ color:#B42318; }
[data-app="one-page-report"] .opr-help{ margin:0; font-size:12.5px; line-height:1.5; }
[data-app="one-page-report"] .opr-help:empty{ display:none; }
[data-app="one-page-report"] .opr-help.warn{ padding:5px 9px; border-radius:8px; background:#FFF4E5; color:#9A4A00; font-weight:700; }
[data-app="one-page-report"] .opr-help.info{ color:#4B5563; }
[data-app="one-page-report"] .opr-help.ok{ color:#0D7A43; font-weight:700; }

/* 미리 보기 — A4 한 장(인쇄와 같은 크기로 그려 줄여 보임) */
[data-app="one-page-report"] .opr-view{ position:sticky; top:12px; display:flex; flex-direction:column; gap:8px; min-width:0; }
[data-app="one-page-report"] .opr-vh{ display:flex; align-items:center; flex-wrap:wrap; gap:6px 8px; }
[data-app="one-page-report"] .opr-vh .ndt-k{ margin-right:auto; }
[data-app="one-page-report"] .opr-fit{ padding:2px 10px; border-radius:999px; font-size:12.5px; font-weight:800; white-space:nowrap; }
[data-app="one-page-report"] .opr-fit.ok{ background:#E7F6EC; color:#0D7A43; }
[data-app="one-page-report"] .opr-fit.bad{ background:#FDECEA; color:#B42318; }
[data-app="one-page-report"] .opr-frame{ position:relative; overflow:hidden; border:1px solid #D5D9E0; border-radius:6px; background:#fff; box-shadow:0 3px 14px rgba(20,30,50,.08); }
[data-app="one-page-report"] .opr-page{ position:absolute; left:0; top:0; width:794px; height:1123px; padding:53px; background:#fff; color:#111; transform-origin:0 0; font-size:16px; line-height:1.7; word-break:keep-all; overflow-wrap:anywhere; }
[data-app="one-page-report"].opr-zoomed .opr-frame{ overflow:auto; max-height:75vh; overscroll-behavior:contain; }
[data-app="one-page-report"].opr-zoomed .opr-page{ position:relative; }
[data-app="one-page-report"] .opr-cut{ position:absolute; left:0; right:0; top:1070px; margin:0; border-top:4px dashed #D92D20; pointer-events:none; }
[data-app="one-page-report"] .opr-cut span{ position:absolute; right:30px; top:-46px; padding:4px 16px; border-radius:999px; background:#D92D20; color:#fff; font-size:26px; font-weight:800; white-space:nowrap; }
[data-app="one-page-report"] .opr-in p{ margin:0; }
[data-app="one-page-report"] .opr-ph{ color:#A3A8B0; font-weight:500; }
[data-app="one-page-report"] .opr-s-ex{ display:none; }
[data-app="one-page-report"] .opr-s-head{ margin-bottom:26px; padding-bottom:16px; border-bottom:3px solid #1A1A1A; }
[data-app="one-page-report"] .opr-s-kind{ font-size:16px; font-weight:800; letter-spacing:.35em; color:#5B6270; }
[data-app="one-page-report"] .opr-s-title{ margin-top:6px !important; font-size:34px; font-weight:900; line-height:1.35; letter-spacing:-.02em; color:#111; }
[data-app="one-page-report"] .opr-s-meta{ display:flex; flex-wrap:wrap; gap:4px 26px; margin-top:12px; font-size:16.5px; color:#2A2F38; }
[data-app="one-page-report"] .opr-s-meta b{ margin-right:8px; font-weight:700; color:#6B717B; }
[data-app="one-page-report"] .opr-s-concl{ margin-bottom:30px; padding:20px 24px 22px; border-left:9px solid #2F55A4; border-radius:4px; background:#EEF3FC; }
[data-app="one-page-report"] .opr-s-k{ margin-bottom:8px !important; font-size:16.5px; font-weight:900; letter-spacing:.06em; color:#1A1A1A; }
[data-app="one-page-report"] .opr-s-concl .opr-s-k{ color:#2F55A4; }
[data-app="one-page-report"] .opr-s-cv{ font-size:30px; font-weight:800; line-height:1.5; letter-spacing:-.01em; color:#0B1530; }
[data-app="one-page-report"] .opr-s-sec{ margin-bottom:26px; }
[data-app="one-page-report"] .opr-in > :last-child{ margin-bottom:0; }   /* 끝 여백이 인쇄에서 2쪽을 만들지 않게(미리 보기 판정과 같게) */
[data-app="one-page-report"] .opr-s-sec .opr-s-k{ padding-bottom:6px; border-bottom:1px solid #C9CDD4; }
[data-app="one-page-report"] .opr-s-ol{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
[data-app="one-page-report"] .opr-s-ol li{ display:grid; grid-template-columns:32px minmax(0,1fr); gap:10px; font-size:19px; line-height:1.65; }
[data-app="one-page-report"] .opr-s-n{ display:inline-flex; align-items:center; justify-content:center; width:29px; height:29px; margin-top:2px; border-radius:50%; background:#1A1A1A; color:#fff; font-size:15.5px; font-weight:800; }
[data-app="one-page-report"] .opr-s-p{ font-size:19px; line-height:1.7; white-space:pre-wrap; }
[data-app="one-page-report"] .opr-s-req .opr-s-p{ font-weight:700; }
[data-app="one-page-report"] .opr-s-due{ display:inline-block; margin-top:10px !important; padding:4px 14px; border:2px solid #B42318; border-radius:6px; color:#B42318; font-size:17.5px; }

/* 단추·보관함 */
[data-app="one-page-report"] .opr-acts{ display:flex; gap:6px; }
[data-app="one-page-report"] .opr-acts .ndt-btn{ flex:1 1 0; min-width:0; padding:0 8px; white-space:normal; line-height:1.25; text-align:center; }
[data-app="one-page-report"] .opr-acts .opr-kept{ border-color:#9FD3B4; background:#F0FAF4; color:#0D7A43; }
[data-app="one-page-report"] .opr-fbw textarea.ndt-fb{ width:100%; min-height:140px; font:inherit; font-size:13px; }
[data-app="one-page-report"] .opr-msg{ margin:0; min-height:1.5em; font-size:12.5px; line-height:1.55; color:#4B5059; }
[data-app="one-page-report"] .opr-msg .opr-undo{ margin-left:4px; vertical-align:middle; }
[data-app="one-page-report"] .opr-box{ display:flex; flex-direction:column; gap:6px; padding-top:10px; border-top:1px dashed #DADCE1; }
[data-app="one-page-report"] .opr-box .ndt-k small{ font-weight:600; }
[data-app="one-page-report"] .opr-saved{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap:6px; }
[data-app="one-page-report"] .opr-sv{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2px; align-items:center; min-width:0; }
[data-app="one-page-report"] .opr-load{ display:flex; flex-direction:column; align-items:flex-start; gap:1px; min-width:0; min-height:46px; padding:6px 10px; border:1px solid #E3E5E9; border-radius:10px; background:#fff; color:#1A1A1A; text-align:left; cursor:pointer; }
[data-app="one-page-report"] .opr-load:hover{ border-color:#B9BEC7; }
[data-app="one-page-report"] .opr-load b{ display:block; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13.5px; font-weight:800; }
[data-app="one-page-report"] .opr-load span{ display:block; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; color:#6B717B; }
[data-app="one-page-report"] .opr-load em{ font-style:normal; font-weight:800; color:#2F55A4; }
[data-app="one-page-report"] .opr-sv.cur .opr-load{ border-color:#9DB6E8; background:#F3F7FF; cursor:default; }
[data-app="one-page-report"] .opr-sdel{ min-width:36px; padding:0 8px; border-color:transparent; color:#6B717B; }
[data-app="one-page-report"] .opr-sdel:hover{ border-color:#E3C4C0; color:#B42318; }
[data-app="one-page-report"] .opr-sv-empty{ padding:10px 12px; border:1px dashed #DADCE1; border-radius:10px; color:#6B717B; font-size:13px; }
[data-app="one-page-report"] .opr-foot{ justify-content:space-between; }
[data-app="one-page-report"] .opr-note{ margin:0; }
[data-app="one-page-report"] .opr-note.opr-warn{ color:#B42318; font-weight:700; }
[data-app="one-page-report"] button:focus-visible, [data-app="one-page-report"] .ndt-in:focus-visible{ outline:3px solid #93B4F5; outline-offset:1px; }

@media (max-width:560px){
  [data-app="one-page-report"] .opr-two, [data-app="one-page-report"] .opr-two.opr-tw{ grid-template-columns:minmax(0,1fr); }
  [data-app="one-page-report"] .opr-view{ position:static; }
  [data-app="one-page-report"] .opr-st small{ font-size:11.5px; }
  [data-app="one-page-report"] .opr-rn{ padding-top:10px; }
}

/* 인쇄(인쇄 · PDF 저장): 입력 화면 대신 보고서 한 장 — 화면에서 줄여 보인 것을 원래 크기로 */
/* ⚠️ 인쇄본에는 tabular-nums 를 쓰지 말 것 — PDF로 저장하면 숫자가 복사·검색되지 않음 */
@media print{
  [data-app="one-page-report"]{ border:0; padding:0; border-radius:0; background:#fff; color:#000; }
  [data-app="one-page-report"] .opr-grid{ display:block; }
  [data-app="one-page-report"] .opr-view{ position:static; display:block; }
  [data-app="one-page-report"] .opr-frame{ height:auto !important; max-height:none !important; overflow:visible !important; border:0; border-radius:0; box-shadow:none; }
  [data-app="one-page-report"] .opr-page{ position:static !important; width:auto !important; height:auto !important; padding:0 !important; transform:none !important; }
  [data-app="one-page-report"] .opr-s-ex{ display:block; margin:0 0 12pt !important; padding:5pt 8pt; border:1.5pt dashed #B42318; color:#B42318; font-size:10.5pt; font-weight:700; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  [data-app="one-page-report"] .opr-s-concl, [data-app="one-page-report"] .opr-s-n{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  [data-app="one-page-report"] .opr-s-ol li, [data-app="one-page-report"] .opr-s-concl{ break-inside:avoid; page-break-inside:avoid; }
  [data-app="one-page-report"] .opr-ph{ color:#888; }
}
