/* 소방안전관리자 업무 수행 기록표 — 법정서식([별지 제12호서식]) 화면·인쇄 모양.
   기준: 첨부 PDF(A4 595.32×841.92pt). 표 열·행 경계는 PDF 선 좌표를 1/96in(px) 격자에 맞춘 값이다.
   가는 선(0.24pt)·겹선·굵은선은 Chrome 이 border 를 최소 1px(0.75pt)로 키우므로 transform(scale) 한 막대로 그린다.
   @page·인쇄 축소(--fire-fit)·.fire-sheet-scroll 은 fire.css 에 있다 — 여기서는 서식 안쪽만. */
.ff-sheet[data-form="duty"]{
  --ffd-line:#808080;
  --ffd-s:calc(1 / var(--fire-fit, 1));   /* 인쇄 때 fire.js 가 --fire-fit(한 쪽 맞춤 축소)을 주면 zoom 으로 글자·높이는 줄고, 가로 위치·폭은 이 값으로 키워 A4 폭(여백 그대로)을 유지한다 */
  --ffd-h:.16;      /* 가는 선: 2px 막대 × .16 = 0.32px = 0.24pt */
  --ffd-d:.48;      /* 겹선: 1+2+1px × .48 → 선 0.36pt · 간격 0.72pt */
  --ffd-k:1.0533;   /* 굵은 선: 2px × 1.0533 = 1.58pt (기준 1.68pt — 1.6pt 이상이면 선이 아니라 면으로 읽혀 비교 도구가 놓치므로 0.1pt 가늘게) */
  box-sizing:border-box;position:relative;min-height:290mm;margin:0 auto;padding:0;
  background:#fff;color:#000;text-align:left;font-weight:400;font-style:normal;
  font-family:"Malgun Gothic","맑은 고딕",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  font-size:9.96pt;line-height:1.3;letter-spacing:0;word-spacing:0;white-space:normal;
  -webkit-text-size-adjust:none;text-size-adjust:none;font-synthesis:none;
  -webkit-print-color-adjust:exact;print-color-adjust:exact;
}
@media screen{
  /* 화면: A4 실물 폭(가로 스크롤 칸 안). 인쇄 폭은 fire.css 의 .ff-sheet{width:calc(210mm / var(--fire-fit))} 가 정한다 — 여기서 인쇄 폭을 고정하면 그 규칙을 이겨 버린다 */
  .ff-sheet[data-form="duty"]{width:210mm;min-width:210mm;--ffd-line:#6f6f6f;--ffd-h:.5;--ffd-d:.75;--ffd-k:1;box-shadow:0 1px 8px rgba(0,0,0,.22);}
}
.ff-sheet[data-form="duty"] *,.ff-sheet[data-form="duty"] *::before,.ff-sheet[data-form="duty"] *::after{box-sizing:border-box;}

/* ── 머리(문서 번호·보관 기간·법령·제목·안내문): 기준 PDF 좌표에 맞춰 놓는다 ── */
.ff-sheet[data-form="duty"] .ffd-top{position:relative;height:212px;}
.ff-sheet[data-form="duty"] .ffd-a{position:absolute;margin:0;padding:0;white-space:nowrap;line-height:20px;}
.ff-sheet[data-form="duty"] .ffd-h1{left:calc(86.4px * var(--ffd-s));top:102px;font-size:11.04pt;font-weight:700;word-spacing:.147em;}
.ff-sheet[data-form="duty"] .ffd-h1 .ffd-no{letter-spacing:-.03em;}
.ff-sheet[data-form="duty"] .ffd-h1 .ffd-no+span{margin-left:-.67px;}
.ff-sheet[data-form="duty"] .ffd-keep{right:calc(84.4px * var(--ffd-s));top:102px;font-size:11.04pt;font-weight:700;color:#0000ff;word-spacing:.147em;letter-spacing:-.01em;}
.ff-sheet[data-form="duty"] .ffd-hr{position:absolute;left:calc(75px * var(--ffd-s));width:calc(641px * var(--ffd-s));top:130px;height:2px;background:var(--ffd-line);transform:translateY(.52px) scaleY(.48);}
.ff-sheet[data-form="duty"] .ffd-law{left:calc(82.4px * var(--ffd-s));top:131.5px;font-size:8.04pt;word-spacing:.13em;}
.ff-sheet[data-form="duty"] .ffd-title{left:calc(75px * var(--ffd-s));width:calc(641px * var(--ffd-s));top:159.8px;text-align:center;font-size:15.96pt;font-weight:700;word-spacing:.16em;}
.ff-sheet[data-form="duty"] .ffd-note{left:calc(82.4px * var(--ffd-s));top:190.9px;font-size:8.04pt;word-spacing:.13em;}
.ff-sheet[data-form="duty"] .ffd-sq{display:inline-block;width:16px;}
.ff-sheet[data-form="duty"] .ffd-note .ffd-sq{width:13.8px;}

/* ── 표 ── */
.ff-sheet[data-form="duty"] .ffd-t{position:relative;display:table;width:calc(641px * var(--ffd-s));margin:0 0 0 calc(75px * var(--ffd-s));table-layout:fixed;border-collapse:separate;border-spacing:0;border:0;background:none;}
.ff-sheet[data-form="duty"] .ffd-t tr{background:none;}
.ff-sheet[data-form="duty"] .ffd-t th,.ff-sheet[data-form="duty"] .ffd-t td{position:relative;margin:0;padding:0 3px 2px;border:0;background:none;color:#000;text-align:center;vertical-align:middle;font-size:9.96pt;font-weight:400;line-height:1.3;word-spacing:.17em;overflow:visible;overflow-wrap:anywhere;word-break:keep-all;}
.ff-sheet[data-form="duty"] .ffd-t::before,.ff-sheet[data-form="duty"] .ffd-t::after{content:"";position:absolute;left:0;right:0;height:2px;background:var(--ffd-line);transform:scaleY(var(--ffd-k));pointer-events:none;}
.ff-sheet[data-form="duty"] .ffd-t::before{top:-1px;}
.ff-sheet[data-form="duty"] .ffd-t::after{bottom:-1px;}
.ff-sheet[data-form="duty"] .ffd-t .rh::before,.ff-sheet[data-form="duty"] .ffd-t .bh::after,.ff-sheet[data-form="duty"] .ffd-t .bd::after{content:"";position:absolute;pointer-events:none;}
.ff-sheet[data-form="duty"] .ffd-t .rh::before{top:0;bottom:0;right:-1px;width:2px;background:var(--ffd-line);transform:scaleX(var(--ffd-h));}
.ff-sheet[data-form="duty"] .ffd-t .bh::after{left:0;right:0;bottom:-1px;height:2px;background:var(--ffd-line);transform:scaleY(var(--ffd-h));}
.ff-sheet[data-form="duty"] .ffd-t .bd::after{left:0;right:0;bottom:-2px;height:2px;box-sizing:content-box;border-top:1px solid var(--ffd-line);border-bottom:1px solid var(--ffd-line);transform:scaleY(var(--ffd-d));}

/* 행 높이(px) — 기준 선 좌표에서 */
.ff-sheet[data-form="duty"] .ffd-r1{height:25px;}
.ff-sheet[data-form="duty"] .ffd-r2{height:28px;}
.ff-sheet[data-form="duty"] .ffd-r3{height:29px;}
.ff-sheet[data-form="duty"] .ffd-r4{height:28px;}
.ff-sheet[data-form="duty"] .ffd-r5{height:28px;}
.ff-sheet[data-form="duty"] .ffd-r6{height:21px;}
.ff-sheet[data-form="duty"] .ffd-ri{height:103px;}
.ff-sheet[data-form="duty"] .ffd-i2{height:102px;}
.ff-sheet[data-form="duty"] .ffd-r11{height:28px;}
.ff-sheet[data-form="duty"] .ffd-r12{height:28px;}
.ff-sheet[data-form="duty"] .ffd-r13{height:29px;}

.ff-sheet[data-form="duty"] .ffd-t .ffd-l2{line-height:21.3px;padding-bottom:3px;}
.ff-sheet[data-form="duty"] .ffd-sq67{display:inline-block;white-space:nowrap;word-spacing:-.065em;transform:translateX(-1.56px) scaleX(.676);transform-origin:50% 50%;}   /* 기준 PDF 의 `등 급` 은 글자 높이 9.96pt · 가로 67.6%(장평) */
.ff-sheet[data-form="duty"] .ffd-v{word-spacing:0;overflow-wrap:anywhere;word-break:keep-all;white-space:pre-wrap;}
.ff-sheet[data-form="duty"] .ffd-w{word-spacing:0;overflow-wrap:anywhere;word-break:keep-all;white-space:pre-wrap;text-align:left;}
.ff-sheet[data-form="duty"] .ffd-t .ffd-tx{vertical-align:top;text-align:left;padding:6px 7px;}
.ff-sheet[data-form="duty"] .ffd-t .ffd-ad{text-align:left;padding:2px 8px 4px;}

/* 수행자 이름 + (서명) */
.ff-sheet[data-form="duty"] .ffd-perf{display:flex;align-items:center;min-height:23px;padding:0 4px 0 8px;}
.ff-sheet[data-form="duty"] .ffd-pn{flex:1 1 auto;min-width:0;text-align:center;word-spacing:0;overflow-wrap:anywhere;}
.ff-sheet[data-form="duty"] .ffd-sg{flex:0 0 auto;display:block;width:72px;height:22px;text-align:right;white-space:nowrap;line-height:22px;}
.ff-sheet[data-form="duty"] .ffd-sig{display:block;width:72px;height:22px;object-fit:contain;object-position:right center;margin:0;padding:0;border:0;background:none;max-width:none;}
/* 서명 이미지를 불러오지 못했을 때(JS 가 칸에 ffd-fail 을 단다): 깨진 그림 대신 (서명) 글자 */
.ff-sheet[data-form="duty"] .ffd-sg.ffd-fail .ffd-sig{display:none;}
.ff-sheet[data-form="duty"] .ffd-sg.ffd-fail::after{content:"(서명)";}

/* [ ] 체크 */
.ff-sheet[data-form="duty"] .ffd-g{display:inline-block;width:1em;text-align:center;font-weight:400;word-spacing:0;}
.ff-sheet[data-form="duty"] .ffd-o{display:inline-block;white-space:nowrap;}
.ff-sheet[data-form="duty"] .ffd-t .ffd-gr{text-align:right;padding:0 7.6px 2px 0;white-space:nowrap;word-spacing:.122em;}
.ff-sheet[data-form="duty"] .ffd-t .ffd-rs{text-align:left;padding:0 0 2px 12.6px;}
.ff-sheet[data-form="duty"] .ffd-ck2{line-height:21.33px;white-space:nowrap;word-spacing:.17em;}
.ff-sheet[data-form="duty"] .ffd-t .ffd-mt{text-align:left;padding:0 0 2px 7.3px;white-space:nowrap;word-spacing:.17em;}
.ff-sheet[data-form="duty"] .ffd-mt .ffd-o{width:71.5px;}
.ff-sheet[data-form="duty"] .ffd-mt .ffd-wide{width:94.4px;}
.ff-sheet[data-form="duty"] .ffd-mt .ffd-last{width:auto;}
.ff-sheet[data-form="duty"] .ffd-fo{word-spacing:0;white-space:pre-wrap;}
.ff-sheet[data-form="duty"] .ffd-dt{font-size:9pt;word-spacing:0;white-space:nowrap;}
.ff-sheet[data-form="duty"] .ffd-dots u{display:inline-block;width:1.5em;text-decoration:none;}

/* ── 아래 작성요령 · 규격 ── */
.ff-sheet[data-form="duty"] .ffd-guide{margin:12px 0 0 0;font-size:8.04pt;word-spacing:.13em;}
.ff-sheet[data-form="duty"] .ffd-gt{margin-left:calc(92.1px * var(--ffd-s));height:19.2px;line-height:19.2px;}
.ff-sheet[data-form="duty"] .ffd-gi{display:flex;margin-left:calc(98.4px * var(--ffd-s));height:19.2px;line-height:19.2px;white-space:nowrap;}
.ff-sheet[data-form="duty"] .ffd-gi>span:first-child{flex:0 0 13.5px;}
.ff-sheet[data-form="duty"] .ffd-fl{position:relative;width:calc(641px * var(--ffd-s));height:2px;margin:13px 0 0 calc(75px * var(--ffd-s));}
.ff-sheet[data-form="duty"] .ffd-fl::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--ffd-line);transform:scaleY(var(--ffd-h));}
.ff-sheet[data-form="duty"] .ffd-ft{position:relative;width:calc(641px * var(--ffd-s));margin:-6px 0 0 calc(75px * var(--ffd-s));padding:0 7px 0 0;text-align:right;font-size:8.04pt;line-height:20px;word-spacing:.13em;white-space:nowrap;}
