/* =============================================================================
   협력업체(ct) 안전보건협의체 — 화면·인쇄 스타일 (2026-10-10)   js/ct-council-*.js · modules/ct-council.js 와 한 쌍
   화면: 접두사 .ctc-*  (앱 토큰 var(--mint) 등을 따른다).  인쇄: 공식 사내 문서 모양(흰 바탕·검은 글자·가는 표선·'맑은 고딕') — 모든 규칙은 #hsPrintHost 안에서만 작동한다.
   원본: 2024_협력업체협의체_평택.pdf 「협의체 회의록」 · 「위 임 장」
   ========================================================================== */
/* ---- 목록 ---- */
.ctc-list { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.ctc-item-meta { margin: 4px 0 6px; font-size: 13.5px; color: var(--ink-2); }
.ctc-item-co { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 4px; }
.ctc-item-co span { font-size: 12px; background: var(--surface-2); border-radius: 6px; padding: 2px 7px; }

.ctc-cofil { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 6px 0; padding: 8px 12px; border-radius: var(--radius); background: var(--mint-tint); font-size: 14px; }

/* ---- 폼 ---- */
.ctc-form { max-width: 760px; }
.ctc-pick { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 6px; border: 1px solid var(--line); border-radius: var(--radius); padding: 8px; max-height: 320px; overflow: auto; }
.ctc-pick-i { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; cursor: pointer; min-height: 44px; background: #fff; }
.ctc-pick-i:has(input:checked) { border-color: var(--mint); background: var(--mint-tint); }
/* .hs-form .field input{width:100%} 가 이 체크박스까지 먹어 카드를 꽉 채우던 문제 — 참석 대상 업체 선택 칸에만 국소 override */
#ctcPick .ctc-pick-i input[type="checkbox"] { width: 18px; height: 18px; min-width: 18px; min-height: 18px; max-width: 18px; padding: 0; margin: 0; flex: 0 0 18px; }
.ctc-pick-i span { display: flex; flex-direction: column; min-width: 0; }
.ctc-pick-i i { font-style: normal; font-size: 12px; color: var(--ink-2); }
.ctc-line { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.ctc-line em { font-style: normal; color: var(--ink-2); }
.ctc-line-s { display: inline-flex; flex-direction: column; border: 1px solid var(--line-strong); border-radius: 10px; padding: 6px 10px; min-width: 96px; background: #fff; }
.ctc-line-s i { font-style: normal; font-size: 11px; color: var(--ink-2); }
.ctc-line-s small { color: var(--ink-2); }
.ctc-line-s.is-bad { border-color: #e5c36a; background: #fff8e6; }

/* ---- 상세 ---- */
.ctc-title { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ctc-title h2 { margin: 0; font-size: 20px; }
.ctc-meta { color: var(--ink-2); margin: 4px 0 8px; }
.ctc-flow { display: flex; gap: 4px; list-style: none; padding: 0; margin: 10px 0; overflow-x: auto; }
.ctc-flow li { flex: 1 0 auto; text-align: center; font-size: 12.5px; padding: 6px 10px; border-radius: 999px; background: var(--surface-2); color: var(--ink-2); white-space: nowrap; }
.ctc-flow li.is-done { background: #e6f6ec; color: #17653a; }
.ctc-flow li.is-cur { background: var(--mint); color: #fff; font-weight: 700; }
.ctc-flow.is-cancel span { padding: 6px 12px; border-radius: 999px; background: #fdecea; color: #a1281d; font-size: 13px; }
.ctc-dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 8px 16px; margin: 10px 0 0; }
.ctc-dl > div { min-width: 0; }
.ctc-dl .ctc-dl-w { grid-column: 1 / -1; }
.ctc-dl dt { font-size: 12px; color: var(--ink-2); margin-bottom: 2px; }
.ctc-dl dd { margin: 0; font-size: 14.5px; overflow-wrap: anywhere; }
.ctc-co { display: inline-flex; align-items: baseline; gap: 4px; margin: 0 6px 4px 0; padding: 3px 9px; border-radius: 8px; background: var(--surface-2); font-size: 13.5px; }
.ctc-co i { font-style: normal; font-size: 11.5px; color: var(--ink-2); }
.ctc-acts .btn { text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.ctc-danger { color: #a1281d; }
.ctc-sec-h { margin-top: 18px; }
.ctc-co-card .hs-card-h { align-items: center; }
.ctc-co-n { font-weight: 400; font-size: 13px; }
.ctc-right { margin-left: auto; }
.ctc-empty { padding: 12px 4px; }
.ctc-att { display: grid; grid-template-columns: minmax(120px, 1.1fr) minmax(130px, 1.2fr) auto; gap: 6px 10px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--line); }
.ctc-att:last-of-type { border-bottom: 0; }
.ctc-att-who { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.ctc-att-who .hs-chip { margin-top: 3px; }
.ctc-att-who > span:not(.hs-chip) { font-size: 12.5px; color: var(--ink-2); }
.ctc-att-who em { font-style: normal; color: var(--mint-ink); font-weight: 700; }
.ctc-att-st { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: 12.5px; color: var(--ink-2); }
.ctc-att-sig img.ct-sig { height: 30px; }
.ctc-att-act { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.ctc-att-act .btn { min-height: 40px; }
.ctc-nochip { background: #fff4d6; color: #7a5200; border-color: #e5c36a; font-size: 11.5px; }
.ctc-proxy { margin-top: 10px; padding: 10px; border: 1px dashed var(--line-strong); border-radius: 10px; background: var(--surface-2); }
.ctc-proxy-h { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.ctc-proxy-t { font-size: 13.5px; }
.ctc-proxy-f { margin-top: 8px; }
.ctc-proxy-old { margin-top: 8px; font-size: 13px; color: var(--ink-2); }
.ctc-proxy-o { margin: 6px 0; padding-left: 8px; border-left: 3px solid var(--line-strong); }
.ctc-warn-t { color: #b42318; }
.ctc-btnl { text-decoration: none; }
.ctc-ready.is-ok { border-color: #86cda0; background: #f3fbf6; }
.ctc-miss, .ctc-warn { margin: 6px 0 0; padding-left: 20px; font-size: 14px; }
.ctc-miss li { color: #a1281d; margin: 3px 0; }
.ctc-warn li { color: #7a5200; margin: 3px 0; }
.ctc-okmsg { margin: 0; color: #17653a; font-weight: 700; }
.ctc-mat-g { margin-bottom: 8px; }
.ctc-mat-gh { font-weight: 700; font-size: 13.5px; margin: 6px 0; overflow-wrap: anywhere; }
.ctc-mat-gh i { font-style: normal; color: var(--ink-2); font-weight: 400; margin-left: 4px; }
.ctc-mat-up { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 10px; }
.ctc-mat-up select { min-height: 40px; border: 1px solid var(--line-strong); border-radius: 10px; padding: 0 10px; font: inherit; font-size: 16px; background: #fff; }
.ctc-mat-add { position: relative; overflow: hidden; display: inline-flex; align-items: center; min-height: 40px; cursor: pointer; }
.ctc-mat-add input { position: absolute; inset: 0; opacity: 0; cursor: pointer; font-size: 100px; }
.ctc-min-b { margin: 0 0 12px; }
.ctc-min-l { font-size: 12.5px; font-weight: 700; color: var(--ink-2); margin-bottom: 4px; }
.ctc-min-t { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: #fff; min-height: 44px; overflow-wrap: anywhere; line-height: 1.55; }
.ctc-revs { margin: 0; padding-left: 18px; font-size: 13.5px; }
.ctc-revs li { margin: 8px 0; }
.ctc-revs small { color: var(--ink-2); }
.ctc-seg { display: flex; gap: 6px; margin: 0 0 10px; }
.ctc-seg button { flex: 1; min-height: 44px; border: 1px solid var(--line-strong); background: #fff; border-radius: 10px; font: inherit; font-weight: 700; cursor: pointer; }
.ctc-seg button.is-on { background: var(--mint); border-color: var(--mint); color: #fff; }
.ctc-cand { list-style: none; margin: 0 0 8px; padding: 0; max-height: 40vh; overflow: auto; border: 1px solid var(--line); border-radius: var(--radius); }
.ctc-cand li { border-bottom: 1px solid var(--line); padding: 4px 10px; }
.ctc-cand li:last-child { border-bottom: 0; }
.ctc-cand .opt { display: flex; align-items: center; gap: 10px; min-height: 44px; }
.ctc-cand i { font-style: normal; color: var(--ink-2); font-size: 12.5px; }
.ctc-cand em { font-style: normal; color: var(--ink-2); font-size: 12px; }

/* ---- 내 참석 카드 · 현장 서명 화면(태블릿·휴대폰) ---- */
.ctc-my-row { padding: 6px 0; }
.ctc-bigbtns { display: flex; gap: 8px; margin-top: 8px; }
.ctc-big { min-height: 56px; font-size: 18px; font-weight: 800; flex: 1 1 auto; }
.ctc-bigsm { min-height: 56px; font-size: 15px; }
.ctc-ok { margin-top: 8px; padding: 10px 12px; border-radius: 10px; background: #e6f6ec; color: #17653a; font-weight: 700; }
.ctc-ok.is-abs { background: #fdecea; color: #a1281d; }
.ctc-mysig img.ct-sig { height: 46px; }
.ctc-attpage { max-width: 760px; margin: 0 auto; }
.ctc-big-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.ctc-big-row:last-child { border-bottom: 0; }
.ctc-big-who { display: flex; flex-direction: column; min-width: 0; flex: 1 1 160px; }
.ctc-big-who b { font-size: 18px; }
.ctc-big-who span { font-size: 13px; color: var(--ink-2); }
.ctc-big-act { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ctc-big-act .ctc-big { min-width: 120px; flex: 0 0 auto; }
.ctc-done { color: #17653a; font-weight: 700; }
.ctc-behalf { font-size: 14px; line-height: 1.5; }
.banner.info { background: #e8f3ff; color: #0b3f7a; border: 1px solid #7db4ee; border-radius: var(--radius); padding: 10px 12px; }

@media (max-width: 640px) {
  .ctc-att { grid-template-columns: 1fr; padding: 12px 0; }
  .ctc-att-act { justify-content: flex-start; }
  .ctc-att-act .btn { flex: 1 1 40%; min-height: 44px; }
  .ctc-acts .btn { flex: 1 1 100%; justify-content: center; }
  .ctc-pick { grid-template-columns: 1fr; max-height: 360px; }
  .ctc-big-act { width: 100%; }
  .ctc-big-act .ctc-big { flex: 1 1 auto; }
  .ctc-title h2 { font-size: 18px; }
  .ctc-co-card .hs-card-h { flex-wrap: wrap; }
  .ctc-right { margin-left: 0; width: 100%; }
  .ctc-right.btn { min-height: 44px; }
}

/* ===================== 인쇄 문서 (공식 사내 서식) ===================== */
#hsPrintHost .ctc-pg { font-size: 11pt; line-height: 1.4; color: #000; word-break: keep-all; font-family: '맑은 고딕', 'Malgun Gothic', 'Apple SD Gothic Neo', sans-serif; }
#hsPrintHost .hs-page.hs-port.ctc-meas { position: absolute; left: -12000px; top: 0; visibility: hidden; height: auto; overflow: visible; zoom: 1; box-shadow: none; margin: 0; }
#hsPrintHost .ctc-mb { display: flow-root; }
#hsPrintHost .ctc-wm { position: absolute; left: 15mm; top: 5mm; font-size: 8pt; color: #999; }
#hsPrintHost .ctc-foot { position: absolute; left: 0; right: 0; bottom: 6mm; text-align: center; font-size: 8.5pt; color: #666; }
#hsPrintHost .ctc-cont-h { font-size: 9pt; color: #555; margin: 0 0 4mm; }
#hsPrintHost .ctc-sig { display: block; margin: 0 auto; object-fit: contain; max-width: 100%; height: 10mm; }
#hsPrintHost .ctc-top { position: relative; height: 27mm; }
#hsPrintHost .ctc-doc-title { position: absolute; left: 0; right: 0; top: 7mm; margin: 0; text-align: center; font-size: 26pt; font-weight: 800; letter-spacing: 1.2mm; line-height: 1.2; }
#hsPrintHost .ctc-stampwrap { position: absolute; right: 0; top: 0; z-index: 2; }
#hsPrintHost .ctc-stamp { border-collapse: collapse; table-layout: fixed; }
#hsPrintHost .ctc-stamp td { border: .25mm solid #808080; text-align: center; padding: 0; width: 15.5mm; font-size: 8pt; line-height: 1.1; overflow: hidden; }
#hsPrintHost .ctc-stamp .l td { background: #D9D9D9; height: 5.2mm; font-weight: 700; font-size: 7.5pt; white-space: nowrap; }
#hsPrintHost .ctc-stamp .s td { height: 12mm; vertical-align: middle; }
#hsPrintHost .ctc-stamp .d td { height: 4.2mm; }
#hsPrintHost .ctc-stamp .ctc-sig { width: 14mm; height: 11mm; }
#hsPrintHost .ctc-pre { color: #9a9a9a; font-size: 7pt; }

#hsPrintHost .ctc-tb { border-collapse: collapse; table-layout: fixed; }
#hsPrintHost .ctc-tb th, #hsPrintHost .ctc-tb td { border: .3mm solid #000; padding: 1.2mm 2mm; vertical-align: middle; text-align: center; overflow-wrap: anywhere; word-break: keep-all; }
#hsPrintHost .ctc-tb tr { break-inside: avoid; }
#hsPrintHost .ctc-t-info { width: 180mm; }
#hsPrintHost .ctc-t-info th { font-weight: 500; font-size: 12pt; height: 12mm; letter-spacing: 1mm; background: #fff; }
#hsPrintHost .ctc-t-info td { font-size: 12pt; height: 12mm; }
#hsPrintHost .ctc-t-info .ctc-att-t { height: 11mm; letter-spacing: 3mm; }
#hsPrintHost .ctc-t-att { margin-top: -.3mm; }
#hsPrintHost .ctc-th th { height: 11mm; font-weight: 500; font-size: 12pt; letter-spacing: 1mm; background: #fff; }
#hsPrintHost .ctc-ar td { height: 11mm; font-size: 11pt; padding: 0 1mm; }
#hsPrintHost .ctc-ar .ctc-cc b { display: block; font-weight: 500; font-size: 10.5pt; line-height: 1.15; }
#hsPrintHost .ctc-ar .ctc-cc small { display: block; font-size: 7.5pt; color: #444; line-height: 1.1; }
#hsPrintHost .ctc-ar .ctc-sg { padding: 0; }
#hsPrintHost .ctc-nr td { text-align: left; font-size: 8.5pt; color: #333; height: auto; padding: 1.4mm 2mm; }
#hsPrintHost .ctc-t-tx { margin-top: 1.4mm; border-top: .3mm solid #000; }
#hsPrintHost .ctc-tr th { background: #D9D9D9; font-weight: 500; font-size: 12pt; line-height: 1.5; width: 30mm; }
#hsPrintHost .ctc-tr td { text-align: left; vertical-align: top; padding: 3mm 5mm; font-size: 11.5pt; line-height: 1.55; }
#hsPrintHost .ctc-jn th, #hsPrintHost .ctc-jn td { border-top-style: none; }
#hsPrintHost .ctc-jb th, #hsPrintHost .ctc-jb td { border-bottom-style: none; }
#hsPrintHost .ctc-cn { font-size: 8.5pt; color: #666; }
#hsPrintHost .ctc-ln { padding-left: 5.4mm; text-indent: -5.4mm; margin: 0; overflow-wrap: anywhere; }
#hsPrintHost .ctc-ln.ctc-sub { padding-left: 11mm; text-indent: -5.4mm; font-size: 11pt; }
#hsPrintHost .ctc-gap { height: 3.4mm; }
#hsPrintHost .ctc-att-line { margin-top: 4mm; font-size: 9.5pt; }
#hsPrintHost .ctc-corr { margin-top: 2mm; font-size: 8.5pt; color: #444; }

/* 위임장 첨부 쪽 */
#hsPrintHost .ctc-px-h { margin: 2mm 0 5mm; font-size: 17pt; font-weight: 800; text-align: center; }
#hsPrintHost .ctc-px-t { width: 180mm; margin-bottom: 5mm; }
#hsPrintHost .ctc-px-t th { background: #D9D9D9; width: 24mm; font-weight: 500; }
#hsPrintHost .ctc-px-t td { text-align: left; }
#hsPrintHost .ctc-px-i { text-align: center; margin: 0 0 4mm; }
#hsPrintHost .ctc-px-i img { max-width: 178mm; max-height: 118mm; object-fit: contain; border: .2mm solid #999; }
#hsPrintHost .ctc-px-pdf { margin-top: 4mm; padding: 4mm; border: .3mm dashed #777; font-size: 10pt; }
#hsPrintHost .ctc-px-pdf.is-bad { color: #a1281d; border-color: #a1281d; }
#hsPrintHost .ctc-px-pdf ul { margin: 2mm 0 0; padding-left: 5mm; }

/* 위임장 서식(원본 「위 임 장」) */
#hsPrintHost .ctc-pf { padding-top: 24mm; font-size: 15pt; }
#hsPrintHost .ctc-pf-t { margin: 0 0 30mm; text-align: center; font-size: 30pt; font-weight: 800; letter-spacing: 2mm; }
#hsPrintHost .ctc-pf-l { margin: 0 0 24mm 14mm; }
#hsPrintHost .ctc-pf-l > div { display: flex; margin: 0 0 12mm; }
#hsPrintHost .ctc-pf-l dt { width: 22mm; font-size: 15pt; }
#hsPrintHost .ctc-pf-l dt::after { content: ' :'; }
#hsPrintHost .ctc-pf-l dd { margin: 0 0 0 2mm; font-size: 15pt; letter-spacing: 1mm; }
#hsPrintHost .ctc-pf-p { margin: 0; font-size: 15pt; line-height: 2; text-indent: 8mm; }
#hsPrintHost .ctc-pf-d { margin: 36mm 0 28mm; text-align: center; font-size: 15pt; }
#hsPrintHost .ctc-pf-s { text-align: right; font-size: 15pt; padding-right: 8mm; }
#hsPrintHost .ctc-pf-s b { letter-spacing: 3mm; margin: 0 2mm; font-weight: 500; }
#hsPrintHost .ctc-pf-c { text-align: right; font-size: 10pt; color: #555; padding-right: 8mm; margin-top: 3mm; }
#hsPrintHost .ctc-print-warn { margin: 0 0 8px; padding: 9px 12px; border-radius: 8px; background: #fff4e5; border: 1px solid #f0b86e; color: #7a4100; font-size: 13px; line-height: 1.5; }
#hsPrintHost .ctc-print-warn b { display: block; font-size: 14px; margin-bottom: 2px; }
#hsPrintHost .ctc-print-warn span { display: block; }

/* ---- 양식 편집기 (협력업체 관리 → 협의체 설정) ---- */
.ctc-tpl .ctc-tp-fs { border: 1px solid var(--line); border-radius: var(--radius); margin: 12px 0; padding: 8px 12px 12px; }
.ctc-tpl legend { font-weight: 700; font-size: 14px; padding: 0 6px; }
.ctc-tp-g { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; }
.ctc-tp-r { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 6px 0; border-bottom: 1px solid var(--line); }
.ctc-tp-r:last-child { border-bottom: 0; }
.ctc-tp-r > input[type="text"], .ctc-tp-r > input:not([type]) { flex: 1 1 180px; min-width: 0; min-height: 40px; }
.ctc-tp-r.is-off > input { opacity: .55; }
.ctc-tp-mv { display: inline-flex; gap: 4px; margin-left: auto; }
.ctc-tp-cats { display: flex; flex-wrap: wrap; gap: 6px; }
.ctc-tp-cat { display: inline-flex; align-items: center; gap: 4px; }
.ctc-tp-cat input { width: 150px; min-height: 40px; }
.ctc-tp-ra { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.ctc-tp-pv h4 { margin: 0 0 6px; }
.ctc-tp-pv li.is-off { color: var(--ink-2); text-decoration: line-through; }
