/* =============================================================================
   진단개선 · 자율개선 · 개선제안 — PC 전용 디자인(2026-09-29)
   - 적용 범위: body.imp-pc(세 모듈이 화면을 그릴 때만) + @media screen and (min-width:1200px).
   - 1200px 미만(모바일·태블릿)은 기존 화면 그대로 — 아래 두 줄 말고는 모두 1200px 이상 블록 안에 있다.
     · .imp-pc-only: PC 전용 요소(머리말·상태 요약·카드 PC 배치·상세 상태카드)는 1200px 미만에서 상자 자체가 없다.
     · .imp-cards/.imp-dl/.imp-main/.imp-side: 묶음 상자 — 1200px 미만에서는 display:contents(상자 없음)라 배치가 기존과 같다.
   - 디자인 계열: 안전점검(css/insp.css)·관리자 페이지(css/admin.css)와 같은 색·모서리·그림자·아이콘.
     조치/진행 상태 색은 insp.css :root 의 --st-* 를 그대로 쓴다(미조치=빨강 · 진행=청록 · 완료=초록).
   - 인쇄: screen 전용이라 기존 인쇄/PDF 에는 영향 없음.
   ========================================================================== */
.imp-pc-only{display:none;}
.imp-cards,.imp-dl,.imp-main,.imp-side{display:contents;}

@media screen and (min-width:1200px){
  body.imp-pc{
    background:#f4f6f8;
    --x-line:#e3e8ec; --x-line-2:#cfd8df; --x-soft:#f7f9fa; --x-sep:#eef1f4;
    --x-ink:#101828; --x-ink-2:#475467; --x-ink-3:#667085; --x-ink-4:#98a2b3;
    --x-accent:#1f7f84; --x-accent-strong:#16686c; --x-accent-tint:#e6f3f3; --x-accent-line:#b9dcdd;
    --x-r:16px;
    --x-shadow:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.06);
    --x-shadow-hi:0 12px 26px -14px rgba(16,24,40,.26),0 2px 6px rgba(16,24,40,.06);
    --t-wait:#a15c07; --t-wait-tint:#fdf3e1; --t-wait-line:#f1d6a6;
    --t-draft:#475467; --t-draft-tint:#f2f4f7; --t-draft-line:#d0d5dd;
  }
  body.imp-pc #app{max-width:1440px;padding:22px 28px calc(96px + env(safe-area-inset-bottom));color:var(--x-ink);}
  body.imp-pc .adm-ic{display:block;flex:0 0 auto;}
  body.imp-pc .imp-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

  /* ── 페이지 머리말 ── */
  body.imp-pc .imp-head{display:flex;align-items:center;justify-content:space-between;gap:14px 24px;flex-wrap:wrap;position:relative;overflow:hidden;
    margin:0 0 16px;padding:20px 24px 20px 28px;background:linear-gradient(120deg,#fff 0%,#fff 60%,#eef7f7 100%);border:1px solid var(--x-line);border-radius:var(--x-r);box-shadow:var(--x-shadow);}
  body.imp-pc .imp-head::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#41a8ab,#1f6d6f);}
  body.imp-pc .imp-head-main{display:flex;align-items:center;gap:16px;min-width:0;}
  body.imp-pc .imp-head-ic{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:15px;background:var(--tone-tint,#e6f3f3);color:var(--tone,#1f7f84);flex:0 0 auto;}
  body.imp-pc .imp-head-t{min-width:0;}
  body.imp-pc .imp-eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--x-accent);margin-bottom:3px;}
  body.imp-pc .imp-title{margin:0;font-size:25px;font-weight:800;letter-spacing:-.02em;line-height:1.25;color:var(--x-ink);}
  body.imp-pc .imp-sub{margin:4px 0 0;font-size:13.5px;line-height:1.5;color:var(--x-ink-3);}
  body.imp-pc .imp-head-act{display:flex;gap:8px;flex-wrap:wrap;}
  body.imp-pc .imp-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:42px;padding:0 16px;border-radius:10px;border:1px solid var(--x-accent);
    background:var(--x-accent);color:#fff;font:inherit;font-size:14px;font-weight:700;line-height:1;cursor:pointer;white-space:nowrap;transition:background-color .15s,border-color .15s;}
  body.imp-pc .imp-btn:hover{background:var(--x-accent-strong);border-color:var(--x-accent-strong);}
  body.imp-pc .imp-btn-ghost{background:#fff;color:var(--x-ink);border-color:var(--x-line-2);}
  body.imp-pc .imp-btn-ghost:hover{background:#f6f8f9;border-color:#b6c1ca;}
  body.imp-pc .imp-btn:focus-visible,body.imp-pc .imp-kpi:focus-visible,body.imp-pc .imp-cards>.card:focus-visible,body.imp-pc .imp-cards>.list-row:focus-visible{outline:2px solid #41a8ab;outline-offset:2px;}

  /* ── 상태 요약(누르면 그 상태) ── */
  body.imp-pc .imp-kpis{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:12px;margin:0 0 16px;}
  body.imp-pc .imp-kpi{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;padding:14px 16px 13px;text-align:left;overflow:hidden;
    border-radius:14px;background:#fff;border:1px solid var(--x-line);box-shadow:var(--x-shadow);font:inherit;color:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s;}
  body.imp-pc .imp-kpi:hover{border-color:var(--k-line);box-shadow:var(--x-shadow-hi);}
  body.imp-pc .imp-kpi.on{border-color:var(--k);box-shadow:inset 0 0 0 1px var(--k),var(--x-shadow);}
  body.imp-pc .imp-kpi.on::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--k);}
  body.imp-pc .imp-kpi .ik-top{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%;}
  body.imp-pc .imp-kpi .ik-ic{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:var(--k-tint);color:var(--k);flex:0 0 auto;}
  body.imp-pc .imp-kpi .ik-label{font-size:13px;font-weight:700;color:var(--x-ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  body.imp-pc .imp-kpi .ik-val{font-size:26px;font-weight:800;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--x-ink);}
  body.imp-pc .imp-kpi .ik-val small{font-size:13px;font-weight:700;color:var(--x-ink-3);margin-left:2px;letter-spacing:0;}
  body.imp-pc .imp-kpi .ik-na{font-size:13px;font-weight:700;color:var(--st-todo);}
  body.imp-pc .imp-kpi .ik-sub{font-size:12px;color:var(--x-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
  body.imp-pc .tone-all{--k:#344054;--k-tint:#f2f4f7;--k-line:#c7cfd8;}
  body.imp-pc .tone-wait{--k:var(--t-wait);--k-tint:var(--t-wait-tint);--k-line:var(--t-wait-line);}
  body.imp-pc .tone-draft{--k:var(--t-draft);--k-tint:var(--t-draft-tint);--k-line:var(--t-draft-line);}
  body.imp-pc .tone-prog{--k:var(--st-prog);--k-tint:var(--st-prog-tint);--k-line:var(--st-prog-line);}
  body.imp-pc .tone-done{--k:var(--st-done);--k-tint:var(--st-done-tint);--k-line:var(--st-done-line);}
  body.imp-pc .tone-todo{--k:var(--st-todo);--k-tint:var(--st-todo-tint);--k-line:var(--st-todo-line);}
  /* 개선제안 '심사중' 안의 1·2·3차 세부 */
  body.imp-pc .imp-subkpi{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:-4px 0 14px;}
  body.imp-pc .imp-subkpi .l{font-size:12.5px;font-weight:700;color:var(--x-ink-3);margin-right:4px;}
  body.imp-pc .imp-subkpi button{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 6px 0 12px;border-radius:999px;border:1px solid #d5dde3;background:#fff;
    font:inherit;font-size:13px;font-weight:600;color:#344054;cursor:pointer;}
  body.imp-pc .imp-subkpi button b{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:#f2f4f7;font-size:12px;}
  body.imp-pc .imp-subkpi button[aria-pressed="true"]{background:var(--x-accent);border-color:var(--x-accent);color:#fff;}
  body.imp-pc .imp-subkpi button[aria-pressed="true"] b{background:rgba(255,255,255,.22);color:#fff;}

  /* ── 공통: 패널·제목·정보행·입력칸·버튼(모듈 화면 안에서만) ── */
  body.imp-pc #app .panel{background:#fff;border:1px solid var(--x-line);border-radius:var(--x-r);box-shadow:var(--x-shadow);padding:20px 22px;margin-bottom:16px;}
  body.imp-pc #app .panel .panel{box-shadow:none;border-radius:12px;padding:14px 16px;background:var(--x-soft);margin-bottom:10px;}
  body.imp-pc #app .panel>h2,body.imp-pc #app .panel h2.section-divider{font-size:17px;font-weight:800;letter-spacing:-.01em;margin:0 0 14px;color:var(--x-ink);}
  body.imp-pc #app .kv{padding:10px 0;border-bottom:1px solid var(--x-sep);gap:14px;}
  body.imp-pc #app .kv:last-child{border-bottom:0;}
  body.imp-pc #app .kv .k{flex:0 0 132px;font-size:13px;font-weight:600;color:var(--x-ink-3);}
  body.imp-pc #app .kv .v{font-size:14.5px;line-height:1.6;color:var(--x-ink);min-width:0;}
  body.imp-pc #app .field{margin-bottom:14px;}
  body.imp-pc #app .field>label{font-size:13px;font-weight:700;color:var(--x-ink-2);margin-bottom:6px;}
  body.imp-pc #app .field input:where(:not([type="checkbox"]):not([type="radio"]):not([type="file"])),body.imp-pc #app .field select{min-height:44px;padding:9px 12px;font-size:15px;border-radius:10px;border-color:var(--x-line-2);}
  body.imp-pc #app .field textarea{padding:10px 12px;font-size:15px;border-radius:10px;border-color:var(--x-line-2);min-height:96px;}
  body.imp-pc #app .field input:where(:not([type="checkbox"]):not([type="radio"])):focus,body.imp-pc #app .field select:focus,body.imp-pc #app .field textarea:focus{outline:0;border-color:#41a8ab;box-shadow:0 0 0 3px rgba(65,168,171,.18);}
  body.imp-pc #app .staff-combo-input{width:100%;min-height:44px;padding:9px 12px;font:inherit;font-size:15px;border:1px solid var(--x-line-2);border-radius:10px;background:#fff;color:var(--x-ink);}
  body.imp-pc #app .staff-combo-input:focus{outline:0;border-color:#41a8ab;box-shadow:0 0 0 3px rgba(65,168,171,.18);}
  body.imp-pc #app .btn{min-height:44px;border-radius:10px;font-size:14.5px;}
  body.imp-pc #app .btn-sm{min-height:34px;border-radius:9px;font-size:13px;padding:6px 12px;}
  body.imp-pc #app .btn-primary{background:var(--x-accent);border-color:var(--x-accent);color:#fff;}
  body.imp-pc #app .btn-primary:hover{background:var(--x-accent-strong);border-color:var(--x-accent-strong);}
  body.imp-pc #app .btn-secondary{border-color:var(--x-line-2);}
  body.imp-pc #app .btn-secondary:hover{background:#f6f8f9;border-color:#b6c1ca;}
  body.imp-pc #app .btn:disabled{background:#f2f4f7;color:#98a2b3;border-color:#e3e8ec;}
  body.imp-pc #app .banner{border-radius:12px;font-size:13.5px;line-height:1.6;}
  body.imp-pc #app>.banner:not(.err):not(.ok):not(.review),body.imp-pc .imp-main>.banner:not(.err):not(.ok):not(.review){background:#f5f8fa;border:1px solid #e3e9ee;color:var(--x-ink-2);}
  body.imp-pc #app .empty{color:var(--x-ink-3);}
  /* 상태 칩(목록 이외: 상세 '진행상태/단계') — 사람 칩(.chip-row)은 제외 */
  body.imp-pc #app .kv .v>.chip:is(.prog,.todo,.done){display:inline-flex;align-items:center;height:26px;padding:0 11px;border-radius:999px;font-size:12.5px;font-weight:800;}
  body.imp-pc #app .kv .v>.chip.prog{background:var(--st-prog-tint);color:var(--st-prog);border-color:var(--st-prog-line);}
  body.imp-pc #app .kv .v>.chip.todo{background:var(--st-todo-tint);color:var(--st-todo);border-color:var(--st-todo-line);}
  body.imp-pc #app .kv .v>.chip.done{background:var(--st-done-tint);color:var(--st-done);border-color:var(--st-done-line);}
  /* 목록·상태카드와 같은 색: 진단/자율 개선등록대기=주황, 개선제안 초안=회색, 중복확인 대기=주황 */
  body.imp-pc:is(.imp-k-diag,.imp-k-auto) #app .kv .v>.chip.imp-s-draft,body.imp-pc #app .kv .v>.chip.imp-s-dup_hold{background:var(--t-wait-tint);color:var(--t-wait);border-color:var(--t-wait-line);}
  body.imp-pc.imp-k-sg #app .kv .v>.chip.imp-s-draft{background:var(--t-draft-tint);color:var(--t-draft);border-color:var(--t-draft-line);}
  body.imp-pc #app .pchip,body.imp-pc #app .chip-row .chip{border-radius:999px;background:#f2f4f7;border-color:#e3e8ec;color:#344054;font-size:13px;}
  body.imp-pc #app .sa-table,body.imp-pc #app .tbl{border-collapse:collapse;width:100%;font-size:13.5px;}
  body.imp-pc #app .sa-table th,body.imp-pc #app .tbl th{background:#f8fafb;color:var(--x-ink-3);font-size:12.5px;font-weight:700;}
  body.imp-pc #app .sa-table th,body.imp-pc #app .sa-table td,body.imp-pc #app .tbl th,body.imp-pc #app .tbl td{padding:9px 12px;border-bottom:1px solid var(--x-sep);}

  /* ── 검색·필터(진단/자율개선) — 한 줄 4칸 격자, 상태는 위 상태 요약으로 ── */
  body.imp-pc #app .imp-filter{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 16px;align-items:end;padding:18px 20px 16px;}
  body.imp-pc #app .imp-filter .field-row{display:contents;}
  body.imp-pc #app .imp-filter .field{margin:0;min-width:0;}
  body.imp-pc #app .imp-filter .field:has(#ilStatus){display:none;}
  body.imp-pc #app .imp-filter .field:has(#ilQ){grid-column:span 2;}
  body.imp-pc #app .imp-filter #ilClear{grid-column:1;justify-self:start;}
  body.imp-pc #app .imp-filter>.muted.small{grid-column:2 / -1;align-self:center;justify-self:end;font-size:13px;}
  body.imp-pc #app .imp-filter .pchips{min-height:44px;display:flex;align-items:center;}
  /* 2026-10-07: [내 소속만 보기](진단개선) — 격자 맨 윗줄 전체 폭, 안내 줄은 카드 위에 */
  body.imp-pc #app .imp-filter .imp-myorg{grid-column:1 / -1;margin:0;}
  body.imp-pc #app .imp-myorg-note{margin:-4px 2px 12px;}
  /* 개선제안: 단계 필터는 상태 요약으로 대체, [+ 새 개선제안]은 머리말 버튼으로 */
  body.imp-pc #app .imp-sg-stage,body.imp-pc #app .imp-sg-new{display:none;}

  /* ── 목록 카드(2열) ── */
  body.imp-pc .imp-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;align-items:stretch;}
  body.imp-pc .imp-cards>:not(.card):not(.list-row){grid-column:1 / -1;}
  body.imp-pc #app .imp-cards>.card,body.imp-pc #app .imp-cards>.list-row{position:relative;display:flex;flex-direction:column;min-width:0;width:auto;margin:0;padding:18px 20px 15px 24px;
    text-align:left;font:inherit;color:inherit;background:#fff;border:1px solid var(--x-line);border-radius:var(--x-r);box-shadow:var(--x-shadow);cursor:pointer;transition:border-color .15s,box-shadow .15s;}
  body.imp-pc #app .imp-cards>.card:hover,body.imp-pc #app .imp-cards>.list-row:hover{border-color:#c5d0d8;box-shadow:var(--x-shadow-hi);}
  body.imp-pc #app .imp-cards>.card>:not(.imc),body.imp-pc #app .imp-cards>.list-row>:not(.imc){display:none;}
  body.imp-pc .imp-cards .imc{display:flex;flex-direction:column;gap:11px;flex:1 1 auto;min-width:0;}
  body.imp-pc .imp-cards>.card::before,body.imp-pc .imp-cards>.list-row::before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:4px;border-radius:0 4px 4px 0;background:var(--c-bar,#d0d5dd);}
  body.imp-pc .imp-cards>.c-wait{--c-bar:var(--t-wait);} body.imp-pc .imp-cards>.c-prog{--c-bar:var(--st-prog);} body.imp-pc .imp-cards>.c-done{--c-bar:var(--st-done);}
  body.imp-pc .imp-cards>.c-todo{--c-bar:var(--st-todo);} body.imp-pc .imp-cards>.c-draft{--c-bar:#98a2b3;}
  body.imp-pc .imc-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0;}
  body.imp-pc .imc-top .imc-date{margin-left:auto;font-size:12.5px;color:var(--x-ink-3);white-space:nowrap;font-variant-numeric:tabular-nums;}
  body.imp-pc .imc-flag{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;background:var(--st-todo-tint);color:var(--st-todo);border:1px solid var(--st-todo-line);}
  body.imp-pc .imc-flag.info{background:#edf2fa;color:#3b5b92;border-color:#c9d6ec;}
  body.imp-pc .imc-flag.plain{background:#f2f4f7;color:#475467;border-color:#e3e8ec;}
  body.imp-pc .imc-tags{display:flex;flex-wrap:wrap;gap:5px;min-width:0;}
  body.imp-pc .imc-tag{display:inline-block;max-width:240px;height:22px;line-height:22px;padding:0 8px;border-radius:6px;background:#f2f4f7;color:#475467;font-size:12px;font-weight:600;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:top;}
  body.imp-pc .imc-tag.t-fac{background:#eaf1f7;color:#2c4a63;}
  body.imp-pc .imc-tag.t-type{background:var(--x-accent-tint);color:var(--x-accent-strong);}
  body.imp-pc .imc-title{margin:0;font-size:17px;font-weight:800;line-height:1.45;letter-spacing:-.01em;color:var(--x-ink);word-break:keep-all;overflow-wrap:anywhere;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.9em;}
  body.imp-pc .imc-sum{margin:0;font-size:13.5px;line-height:1.6;color:var(--x-ink-2);word-break:keep-all;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  body.imp-pc .imc-sum b{color:var(--x-ink-3);font-weight:700;margin-right:6px;}
  body.imp-pc .imc-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;margin:0;padding:10px 12px;border-radius:10px;background:var(--x-soft);}
  body.imp-pc .imc-mi{display:grid;grid-template-columns:84px minmax(0,1fr);gap:8px;align-items:baseline;min-width:0;}
  body.imp-pc .imc-mi dt{margin:0;font-size:12px;font-weight:600;color:var(--x-ink-3);white-space:nowrap;}
  body.imp-pc .imc-mi dd{margin:0;font-size:13.5px;font-weight:600;color:var(--x-ink);line-height:1.45;word-break:keep-all;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  body.imp-pc .imc-mi.is-none dd{color:var(--x-ink-4);font-weight:500;}
  body.imp-pc .imc-mi.is-wide{grid-column:1 / -1;}
  body.imp-pc .imc-media{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  body.imp-pc .imc-foot{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;flex-wrap:wrap;margin-top:auto;padding-top:11px;border-top:1px solid var(--x-sep);font-size:12.5px;color:var(--x-ink-2);}
  body.imp-pc .imc-foot b{color:var(--x-ink);}
  body.imp-pc .imc-foot .go{display:inline-flex;align-items:center;gap:4px;margin-left:auto;font-weight:700;color:var(--x-accent);}
  body.imp-pc .imc-foot .note{color:var(--x-ink-3);}
  body.imp-pc .imc-foot .ok{color:var(--st-done);font-weight:700;}
  body.imp-pc .imc-foot .warn{color:var(--t-wait);font-weight:700;}
  body.imp-pc .imp-cards>.empty{padding:44px 20px;border:1px dashed #cfd8df;border-radius:var(--x-r);background:#fff;font-size:14px;}
  body.imp-pc .imp-cards>.panel:not(.list-row){grid-column:1 / -1;}

  /* ── 상태 배지(목록·상세 공통) ── */
  body.imp-pc .imp-badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px 0 9px;border-radius:999px;font-size:12.5px;font-weight:800;line-height:1;white-space:nowrap;
    background:var(--b-tint);color:var(--b);border:1px solid var(--b-line);}
  body.imp-pc .imp-badge .dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto;}
  body.imp-pc .imp-badge.t-wait{--b:var(--t-wait);--b-tint:var(--t-wait-tint);--b-line:var(--t-wait-line);}
  body.imp-pc .imp-badge.t-draft{--b:var(--t-draft);--b-tint:var(--t-draft-tint);--b-line:var(--t-draft-line);}
  body.imp-pc .imp-badge.t-prog{--b:var(--st-prog);--b-tint:var(--st-prog-tint);--b-line:var(--st-prog-line);}
  body.imp-pc .imp-badge.t-done{--b:var(--st-done);--b-tint:var(--st-done-tint);--b-line:var(--st-done-line);}
  body.imp-pc .imp-badge.t-todo{--b:var(--st-todo);--b-tint:var(--st-todo-tint);--b-line:var(--st-todo-line);}
  body.imp-pc .imp-badge.is-lg{height:30px;padding:0 13px 0 11px;font-size:14px;}

  /* ── 개선 전·후 자료 프레임(목록 썸네일) ── */
  body.imp-pc .imp-thumb{margin:0;min-width:0;}
  body.imp-pc .imp-thumb-f{position:relative;display:flex;align-items:center;justify-content:center;height:150px;border-radius:10px;overflow:hidden;background:#eef1f4;border:1px solid var(--x-line);}
  /* 자율개선은 전후 비교가 핵심 — 사진 프레임을 조금 더 크게 */
  body.imp-pc.imp-k-auto .imp-thumb-f{height:190px;}
  body.imp-pc .imp-thumb-f img{width:100%;height:100%;object-fit:contain;display:block;}
  body.imp-pc .imp-thumb-f.is-empty{background:repeating-linear-gradient(135deg,#f7f9fa 0 8px,#f1f4f6 8px 16px);border-style:dashed;}
  body.imp-pc .imp-thumb-f.is-empty span{font-size:12.5px;font-weight:600;color:var(--x-ink-4);}
  body.imp-pc .imp-thumb-f.is-media{background:#f2f4f7;}
  body.imp-pc .imp-mt{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 10px;max-width:100%;color:var(--x-ink-2);text-align:center;}
  body.imp-pc .imp-mt b{font-size:12px;font-weight:800;}
  body.imp-pc .imp-mt em{font-style:normal;font-size:11.5px;color:var(--x-ink-3);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  body.imp-pc .imp-thumb-f.is-broken img{visibility:hidden;}
  body.imp-pc .imp-thumb-f.is-broken::after{content:"사진을 불러오지 못했습니다";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--st-todo);background:#fdf6f4;}
  body.imp-pc .imp-thumb figcaption{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:6px;font-size:12px;font-weight:700;color:var(--x-ink-2);}
  body.imp-pc .imp-thumb figcaption b{font-weight:700;color:var(--x-ink-3);}
  body.imp-pc .imp-thumb.is-after figcaption span{color:var(--st-done);}
  body.imp-pc .imp-thumb.is-before figcaption span{color:var(--x-ink-2);}

  /* ── 상세 사진 격자(기존 확대뷰어 그대로) — 원본 비율 유지 ── */
  body.imp-pc #app .photo-grid{gap:10px;}
  body.imp-pc #app .photo-cell{width:136px;height:136px;border-radius:10px;border-color:var(--x-line);background:#eef1f4;}
  body.imp-pc #app .photo-cell img{object-fit:contain;}
  body.imp-pc #app .photo-cell.is-broken img{visibility:hidden;}
  body.imp-pc #app .photo-cell.is-broken::after{content:"불러오기 실패";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--st-todo);background:#fdf6f4;}
  body.imp-pc #app .im-photo-compare,body.imp-pc #app .sg-ba{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
  body.imp-pc #app .im-photo-col,body.imp-pc #app .sg-ba>div{margin:0;padding:14px 16px;border-radius:12px;background:var(--x-soft);border:1px solid var(--x-sep);min-width:0;}
  body.imp-pc #app .im-photo-col>label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:800;color:var(--x-ink);margin-bottom:10px;}
  body.imp-pc #app .im-photo-col>label::before,body.imp-pc #app .sg-ba>div>h2::before{content:"";width:8px;height:8px;border-radius:50%;background:#98a2b3;display:inline-block;margin-right:6px;}
  body.imp-pc #app .im-photo-col:last-child>label::before,body.imp-pc #app .sg-ba>div:last-child>h2::before{background:var(--st-done);}
  body.imp-pc #app .sg-ba>div>h2{font-size:15px;margin:0 0 8px;}
  body.imp-pc .imp-cnt{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:999px;background:#fff;border:1px solid var(--x-line);font-size:11.5px;font-weight:700;color:var(--x-ink-3);}
  body.imp-pc #app .sg-files{gap:8px;}
  body.imp-pc #app .sg-file{border-radius:10px;background:#fff;}

  /* ── 상세 2단(내용 2/3 · 상태·처리 1/3) ── */
  body.imp-pc .imp-dl{display:grid;grid-template-columns:minmax(0,2fr) minmax(340px,1fr);gap:20px;align-items:start;}
  body.imp-pc .imp-main,body.imp-pc .imp-side{display:block;min-width:0;}
  body.imp-pc .imp-side .btn-block{width:100%;}
  body.imp-pc .imp-side-card{display:block;position:relative;overflow:hidden;margin-bottom:16px;padding:20px 22px;background:#fff;border:1px solid var(--x-line);border-radius:var(--x-r);box-shadow:var(--x-shadow);}
  body.imp-pc .imp-side-card::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--c-bar,var(--x-accent));}
  body.imp-pc .imp-side-card.c-wait{--c-bar:var(--t-wait);} body.imp-pc .imp-side-card.c-prog{--c-bar:var(--st-prog);} body.imp-pc .imp-side-card.c-done{--c-bar:var(--st-done);}
  body.imp-pc .imp-side-card.c-todo{--c-bar:var(--st-todo);} body.imp-pc .imp-side-card.c-draft{--c-bar:#98a2b3;}
  body.imp-pc .isc-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;}
  body.imp-pc .isc-l{font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--x-ink-3);}
  body.imp-pc .isc-t{margin:0 0 12px;font-size:16px;font-weight:800;line-height:1.45;color:var(--x-ink);word-break:keep-all;overflow-wrap:anywhere;}
  body.imp-pc .isc-facts{margin:0;display:grid;gap:0;}
  body.imp-pc .isc-facts>div{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;padding:8px 0;border-top:1px solid var(--x-sep);}
  body.imp-pc .isc-facts dt{margin:0;font-size:12.5px;font-weight:600;color:var(--x-ink-3);}
  body.imp-pc .isc-facts dd{margin:0;font-size:13.5px;font-weight:600;color:var(--x-ink);word-break:keep-all;overflow-wrap:anywhere;}
  body.imp-pc .isc-facts dd.is-none{color:var(--x-ink-4);font-weight:500;}
  body.imp-pc .isc-facts dd .ok{color:var(--st-done);} body.imp-pc .isc-facts dd .warn{color:var(--t-wait);} body.imp-pc .isc-facts dd .bad{color:var(--st-todo);}
  body.imp-pc .isc-note{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:var(--x-soft);font-size:12.5px;line-height:1.55;color:var(--x-ink-2);}
  body.imp-pc .isc-sec{margin-top:14px;padding-top:12px;border-top:1px solid var(--x-sep);}
  body.imp-pc .isc-sec>.isc-l{display:block;margin-bottom:10px;}

  /* ── 심사 진행표시 ── */
  body.imp-pc .imp-steps{display:flex;align-items:flex-start;gap:0;margin:0;padding:0;list-style:none;}
  body.imp-pc .imp-steps li{position:relative;flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;text-align:center;font-size:12px;font-weight:700;color:var(--x-ink-4);}
  body.imp-pc .imp-steps li::before{content:"";position:absolute;top:10px;left:-50%;width:100%;height:2px;background:#e3e8ec;z-index:0;}
  body.imp-pc .imp-steps li:first-child::before{display:none;}
  body.imp-pc .imp-steps li i{position:relative;z-index:1;width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid #d0d5dd;box-sizing:border-box;}
  body.imp-pc .imp-steps li span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  body.imp-pc .imp-steps li.st-done{color:var(--x-ink-2);}
  body.imp-pc .imp-steps li.st-done i{background:var(--st-done);border-color:var(--st-done);}
  body.imp-pc .imp-steps li.st-done i::after{content:"";position:absolute;left:6px;top:3px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}
  body.imp-pc .imp-steps li.st-done::before,body.imp-pc .imp-steps li.st-now::before{background:var(--st-done);}
  body.imp-pc .imp-steps li.st-now{color:var(--st-prog);}
  body.imp-pc .imp-steps li.st-now i{border-color:var(--st-prog);box-shadow:0 0 0 4px var(--st-prog-tint);}
  body.imp-pc .imp-steps li.st-now i::after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--st-prog);}
  body.imp-pc .imp-steps li.st-stop{color:var(--st-todo);}
  body.imp-pc .imp-steps li.st-stop i{background:var(--st-todo);border-color:var(--st-todo);}
  body.imp-pc .imp-steps li.st-hold{color:var(--t-wait);}
  body.imp-pc .imp-steps li.st-hold i{border-color:var(--t-wait);background:var(--t-wait-tint);}
  body.imp-pc .imp-steps.is-compact li{font-size:11.5px;gap:4px;}
  body.imp-pc .imp-steps.is-compact li i{width:16px;height:16px;border-width:2px;}
  body.imp-pc .imp-steps.is-compact li::before{top:7px;}
  body.imp-pc .imp-steps.is-compact li.st-done i::after{left:4px;top:1px;width:4px;height:7px;}
  body.imp-pc .imp-steps.is-compact li.st-now i::after{inset:3px;}
  body.imp-pc .imc .imp-steps{padding:10px 8px 8px;border-radius:10px;background:var(--x-soft);}

  /* ── 심사·평가 입력영역: 검토 내용과 구분(윗선 강조 + 표식) ── */
  body.imp-pc #app .panel:has(#btnApprove),body.imp-pc #app .panel:has(#btnFirstApprove),body.imp-pc #app .panel:has(#rvApprove),body.imp-pc #app .panel:has(#evalPick),body.imp-pc #app .panel:has(#dupReviewBody),body.imp-pc #app .panel:has(#fcBody),body.imp-pc #app .panel:has(#btnReqReview){
    border-top:3px solid var(--x-accent);}
  body.imp-pc #app .panel:has(#btnApprove)>h2::after,body.imp-pc #app .panel:has(#btnFirstApprove)>h2::after,body.imp-pc #app .panel:has(#rvApprove)>h2::after,body.imp-pc #app .panel:has(#dupReviewBody)>h2::after,body.imp-pc #app .panel:has(#fcBody)>h2::after{
    content:"심사 입력";display:inline-flex;align-items:center;height:22px;margin-left:8px;padding:0 9px;border-radius:999px;background:var(--x-accent-tint);color:var(--x-accent-strong);font-size:11.5px;font-weight:800;vertical-align:2px;}
  body.imp-pc #app .panel:has(#evalPick)>h2::after{content:"제출 전 확인";display:inline-flex;align-items:center;height:22px;margin-left:8px;padding:0 9px;border-radius:999px;background:var(--x-accent-tint);color:var(--x-accent-strong);font-size:11.5px;font-weight:800;vertical-align:2px;}

  /* ── 등록 화면(진단/자율개선): 짧은 항목은 여러 칸, 긴 설명은 전체폭, 사진과 설명은 나란히 ── */
  body.imp-pc #app .imp-form{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px 18px;align-items:start;}
  body.imp-pc #app .imp-form>*{grid-column:1 / -1;min-width:0;}
  body.imp-pc #app .imp-form #cfOrgBox{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 18px;}
  body.imp-pc #app .imp-form .field:has(#cf-itype),body.imp-pc #app .imp-form .field:has(#cf-date),body.imp-pc #app .imp-form .field:has(#cf-loc){grid-column:span 2;}
  body.imp-pc.imp-k-auto #app .imp-form .field:has(#cf-date),body.imp-pc.imp-k-auto #app .imp-form .field:has(#cf-loc){grid-column:span 3;}
  body.imp-pc #app .imp-form .field:has(#cf-grid-before),body.imp-pc #app .imp-form .field:has(#cf-finding),
  body.imp-pc #app .imp-form .field:has(#cf-grid-after),body.imp-pc #app .imp-form .field:has(#cf-action){grid-column:span 3;}
  body.imp-pc #app .imp-form .field:has(#cf-finding) textarea,body.imp-pc #app .imp-form .field:has(#cf-action) textarea{min-height:176px;}
  body.imp-pc #app .imp-form .field:has(#cf-grid-before),body.imp-pc #app .imp-form .field:has(#cf-grid-after){padding:14px 16px;border-radius:12px;background:var(--x-soft);border:1px solid var(--x-sep);}
  body.imp-pc #app .imp-actions{display:flex;justify-content:flex-end;align-items:flex-end;gap:10px;flex-wrap:wrap;}
  body.imp-pc #app .imp-actions .btn-block{width:auto;min-width:180px;margin-top:0;}
  body.imp-pc #app .imp-actions #cfProgress{margin-right:auto;align-self:center;}

  /* ── 개선제안 작성·수정: 기본정보 여러 칸, 개선 전/후 나란히, 버튼 줄 ── */
  body.imp-pc.imp-k-sg.imp-v-form #app{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px;align-content:start;}
  body.imp-pc.imp-k-sg.imp-v-form #app>*{grid-column:1 / -1;min-width:0;}
  body.imp-pc.imp-k-sg.imp-v-form #app>.panel:has(#ph-before),body.imp-pc.imp-k-sg.imp-v-form #app>.panel:has(#ph-after){grid-column:auto;}
  body.imp-pc #app .panel:has(#fm-title){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:18px;}
  body.imp-pc #app .panel:has(#fm-title)>*{grid-column:1 / -1;}
  body.imp-pc #app .panel:has(#fm-title) #fmOrgBox{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:18px;}
  body.imp-pc #app .panel:has(#fm-title) .field:has(#fm-title){grid-column:1 / 3;}
  body.imp-pc #app .panel:has(#fm-title) .field:has(#fm-location){grid-column:1 / -1;}
  /* 버튼 일부에 margin-top 인라인값이 있어 아래끝(flex-end) 기준으로 맞춘다 */
  body.imp-pc #app .panel:has(#fmSubmit){display:flex;justify-content:flex-end;align-items:flex-end;gap:10px;flex-wrap:wrap;}
  body.imp-pc #app .panel:has(#fmSubmit) .btn-block{width:auto;min-width:160px;}

  /* ── 상세 버튼만 있는 패널(수정·심사요청·삭제·목록으로)은 옆칸 안에서 가볍게 ── */
  body.imp-pc #app .imp-side>.panel:not(:has(h2)):has(>.btn-block:only-child){padding:0;border:0;background:none;box-shadow:none;margin-bottom:10px;}
  body.imp-pc #app .imp-side>.panel .btn-danger{background:#fff;}
}


/* =============================================================================
   2026-10-14 다회사·다사업장 — [우리 사업장 / 타사업장 사례] 전환 탭 · 타사업장 사례 카드·상세(읽기 전용)
   - 모든 화면폭(모바일 390 ~ PC). 진단개선·자율개선 목록 상단. PC(body.imp-pc ≥1200) 는 카드 2열 격자를 그대로 쓴다.
   ========================================================================== */
.imp-scope-tabs{display:flex;gap:6px;margin:0 0 12px;padding:4px;border:1px solid var(--line,#dadcdc);border-radius:12px;background:var(--surface-2,#f4f5f5);}
.imp-scope-tabs>button{flex:1 1 0;min-width:0;min-height:44px;padding:6px 10px;border:0;border-radius:9px;background:transparent;color:var(--ink-2,#565656);font:inherit;font-weight:700;font-size:15px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;line-height:1.25;}
.imp-scope-tabs>button.on{background:#fff;color:var(--mint-ink,#1f6d6f);box-shadow:0 1px 3px rgba(16,24,40,.12);}
.imp-scope-tabs>button:focus-visible{outline:2px solid var(--mint,#41a8ab);outline-offset:1px;}
.imp-st-sub{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;color:var(--ink-2,#565656);}
.imp-scope-tabs>button.on .imp-st-sub{color:var(--mint-ink,#1f6d6f);}
.imp-bnote{margin-bottom:10px;font-size:14px;}
.imp-bchips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px;}
.imp-bchips.is-sub{padding-left:10px;border-left:3px solid var(--mint-tint,#eaf4f4);}
.imp-bchip{min-height:36px;padding:4px 14px;border:1px solid var(--line,#dadcdc);border-radius:999px;background:#fff;color:var(--ink,#000);font:inherit;font-size:14px;cursor:pointer;}
.imp-bchip.on{border-color:var(--mint,#41a8ab);background:var(--mint-tint,#eaf4f4);color:var(--mint-ink,#1f6d6f);font-weight:700;}
.imp-bsrc{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;}
.imp-src-badge{display:inline-flex;align-items:center;max-width:100%;min-height:26px;padding:2px 10px;border:1px solid #b9dcdd;border-radius:999px;background:#eaf4f4;color:#1f6d6f;font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.imp-bcard{cursor:pointer;}
.imp-btitle{font-weight:700;overflow-wrap:anywhere;}
.imp-bact{overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.imp-bmedia{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0;}
.imp-bph{margin:0;position:relative;aspect-ratio:4/3;border:1px solid var(--line,#dadcdc);border-radius:8px;overflow:hidden;background:var(--surface-2,#f4f5f5);display:flex;align-items:center;justify-content:center;}
.imp-bph img{width:100%;height:100%;object-fit:contain;display:block;}
.imp-bph figcaption{position:absolute;left:6px;bottom:6px;padding:1px 7px;border-radius:6px;background:rgba(0,0,0,.6);color:#fff;font-size:12px;}
.imp-bph.is-empty span{font-size:13px;color:var(--ink-2,#565656);}
.imp-btext{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 10px;}
@media screen and (min-width:1200px){
  body.imp-pc .imp-scope-tabs{max-width:640px;}
  /* PC 카드 규칙(.imp-cards>.card>:not(.imc) 숨김)은 진단·자율 목록용 — 사례 카드는 모바일과 같은 내용 그대로 */
  body.imp-pc #app .imp-cards.imp-bcards>.card.imp-bcard>:not(.imc){display:block;}
  body.imp-pc #app .imp-cards.imp-bcards>.card.imp-bcard>.imp-bsrc:not(.imc){display:flex;}
  body.imp-pc #app .imp-cards.imp-bcards>.card.imp-bcard>.imp-bmedia:not(.imc){display:grid;}
  body.imp-pc #app .imp-cards.imp-bcards>.card.imp-bcard>.imp-bact:not(.imc){display:-webkit-box;}
  body.imp-pc #app .imp-cards.imp-bcards>.card.imp-bcard{--c-bar:var(--st-done);}
  body.imp-pc #app .imp-bfilter{display:block;}
}