/* SAFETY LOOP 화면 모양 — 홈 「오늘의 안전」 · 개선조치 · 안전현황 · 시스템 둘러보기 (2026-09-26)
 * ★ 글씨 최소 14px, 누름 영역 최소 48px (50~60대 시설 직원 기준)
 * ★ 상태는 색 + 기호 + 글자 (shell.css 의 .fms-st 를 쓴다) */

/* 한 줄 고리: 점검 → 평가 → 개선 → 확인 → 공유 */
.loop-strip{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0;padding:0;list-style:none}
.loop-strip li{display:flex;align-items:center;gap:6px}
.loop-strip a,.loop-strip span.step{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:4px 12px;border-radius:999px;
  border:1.5px solid var(--fms-line);background:#fff;color:var(--fms-text);font-size:14px;font-weight:800;text-decoration:none;white-space:nowrap}
.loop-strip a b,.loop-strip span.step b{font-variant-numeric:tabular-nums;font-size:13px;color:var(--fms-muted);font-weight:800}
.loop-strip a:hover{border-color:var(--fms-ink)}
.loop-strip .now{background:var(--fms-brand);border-color:var(--fms-brand);color:#fff}
.loop-strip .now b{color:#ffe3e5}
.loop-strip .ar{color:var(--fms-faint);font-size:14px}

/* 홈 「오늘의 안전」 — 2026-09-27 정리 (사장님: 「늘 정돈 · 쉽고 간편 · 임팩트」)
   ★ 색은 한 곳만 — 「지금 할 일」 카드. 나머지는 흰 바탕 · 가는 선 · 회색 글. */
.today{background:#fff;border:1px solid var(--fms-line);border-radius:var(--fms-radius);padding:22px;margin:0 0 18px;display:grid;gap:16px}
.today-hi{display:grid;gap:2px}
.today-hi h2{margin:0;font-size:22px;line-height:1.3;color:var(--fms-ink);letter-spacing:-.02em}
.today-hi p{margin:0;font-size:14.5px;color:var(--fms-muted)}

.today-focus{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) 42px;align-items:center;gap:14px;
  padding:16px 16px 16px 18px;border-radius:16px;text-decoration:none;color:#fff;overflow:hidden;
  background:linear-gradient(135deg,#1c2230 0%,#2b3346 100%);box-shadow:0 12px 28px -16px rgba(16,24,40,.55);
  transition:transform .12s ease,box-shadow .12s ease}
.today-focus:hover{transform:translateY(-1px);box-shadow:0 16px 32px -16px rgba(16,24,40,.6)}
.today-focus.hot{background:linear-gradient(135deg,#c8001d 0%,#e3071b 100%);box-shadow:0 12px 28px -14px rgba(227,7,27,.55)}
.today-focus.calm{background:linear-gradient(135deg,#15171c 0%,#2a2f3a 100%)}
.tf-ic{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.14)}
.tf-ic svg{width:24px;height:24px}
.tf-t{display:grid;gap:2px;min-width:0}
.tf-t small{font-size:12px;font-weight:800;letter-spacing:.05em;opacity:.78}
.tf-t b{font-size:19px;font-weight:800;letter-spacing:-.02em;line-height:1.3}
.tf-t b em{font-style:normal}
.tf-t span{font-size:13.5px;opacity:.85;line-height:1.45;word-break:keep-all}   /* 2026-10-04 — 360px 에서 말줄임(…)으로 잘려 줄바꿈으로 */
.tf-go{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#15171c;transition:transform .12s ease}
.today-focus.hot .tf-go{color:#c8001d}
.today-focus:hover .tf-go{transform:translateX(2px)}
.tf-go svg{width:18px;height:18px}

.today-go{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.today-go a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:76px;border-radius:14px;
  border:1px solid var(--fms-line);background:#fafbfc;color:var(--fms-ink);text-decoration:none;font-weight:800;font-size:14.5px;
  transition:border-color .12s ease,background .12s ease}
.today-go a svg{width:22px;height:22px;color:var(--fms-brand)}
.today-go a:hover{border-color:#c9cdd4;background:#fff}

.today-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.today h3{margin:0;font-size:15px;color:var(--fms-ink)}
.today-head a{font-size:13.5px;font-weight:800;color:var(--fms-muted);text-decoration:none}
.today-head a:hover{color:var(--fms-ink)}
.today-list{display:grid;gap:0;border:1px solid var(--fms-line);border-radius:14px;overflow:hidden}
.risk-row{display:grid;grid-template-columns:10px minmax(0,1fr) 16px;align-items:center;gap:12px;padding:12px 14px;min-height:56px;
  text-decoration:none;color:inherit;background:#fff}
.risk-row+.risk-row{border-top:1px solid var(--fms-line)}
.risk-row:hover{background:#fafbfc}
.rr-dot{width:10px;height:10px;border-radius:50%;background:#c9cdd4}
.risk-row.red .rr-dot{background:var(--st-red)} .risk-row.orange .rr-dot{background:var(--st-orange)} .risk-row.yellow .rr-dot{background:#e0b400}
.rr-t{display:grid;gap:2px;min-width:0}
.rr-t b{font-size:15px;font-weight:800;color:var(--fms-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rr-t span{font-size:13px;color:var(--fms-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rr-t .late{color:var(--st-red);font-weight:800}
.rr-go{color:var(--fms-faint);font-size:20px;line-height:1}

/* 홈 흐름 줄 — 다섯 칸 한 줄 (화살표 없이 · 지금 단계만 옅은 색) */
.today-loop{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border:1px solid var(--fms-line);border-radius:14px;overflow:hidden}
.today-loop .ar{display:none}
.today-loop li{display:block}
.today-loop li+li+li{border-left:1px solid var(--fms-line)}
.today-loop a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:58px;padding:6px 2px;
  border:0;border-radius:0;background:#fff;font-size:13px;color:var(--fms-muted);font-weight:700}
.today-loop a b{order:-1;font-size:19px;color:var(--fms-ink);font-weight:800}
.today-loop a:hover{background:#fafbfc}
.today-loop .now{background:var(--fms-brand-soft,#fff1f2);color:var(--fms-brand);border:0}
.today-loop .now b{color:var(--fms-brand)}

/* 옛 카드 모양 — 다른 화면(안전현황 등)이 아직 쓴다 */
.risk-card{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:center;border:1.5px solid var(--fms-line);border-radius:14px;padding:12px 14px;background:#fff}
.risk-card.red{border-color:#f1b8be} .risk-card.orange{border-color:#f3cda9}
.risk-card .h{font-size:16px;font-weight:800;color:var(--fms-ink);line-height:1.4}
.risk-card .m{grid-column:1;font-size:14px;color:var(--fms-muted)}
.risk-card .m .late{color:var(--st-red);font-weight:800}
.risk-card .act{grid-column:2;grid-row:1/span 2;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:12px;
  background:#f4f5f7;color:var(--fms-ink);font-weight:800;font-size:15px;text-decoration:none;white-space:nowrap}
.risk-card .act:hover{background:#e9ebef}
.risk-card .top{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.today-empty{border:1.5px dashed var(--fms-line);border-radius:14px;padding:16px;color:var(--fms-muted);font-size:15px;background:#fbfbfc}

.today-small{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.today-small a{justify-content:center;white-space:nowrap;min-width:0;padding:0 6px;letter-spacing:-.02em}
.today-small a{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--fms-line);
  color:var(--fms-text);text-decoration:none;font-weight:700;font-size:14px;background:#fff}
.today-small a.warn{border-color:#f1b8be;color:var(--st-red)}
.today-small a:hover{border-color:#c9cdd4}
@media(max-width:420px){.today-small a{padding:0 4px;font-size:13.5px}}   /* 2026-10-04 — 360px 에서 「흐름 한눈에」 가 칸을 넘었음 */
.today-where{margin:0;font-size:12.5px;color:var(--fms-faint)}
/* 역할별 할 일 판 (2026-10-04) — 로그인했을 때만 · 서버 기준 · 본사 · 센터장 · 소장마다 아래 목록이 다름 */
.today-role{margin:0;padding:14px;border:1px solid var(--fms-line,#E3E6EA);border-radius:16px;background:#fff}
.tr-k{margin:0 0 10px;font-size:12.5px;font-weight:800;letter-spacing:.02em;color:var(--fms-muted,#5A6069)}
.tr-nums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.tr-n{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:58px;padding:6px 4px;border-radius:12px;background:#F6F7F9;color:var(--fms-ink,#0B0F14);text-decoration:none}
.tr-n b{font-size:20px;font-weight:900;line-height:1.1}
.tr-n span{font-size:12px;font-weight:700;color:var(--fms-muted,#5A6069);white-space:nowrap}
.tr-n.hot{background:#FDECEE}.tr-n.hot b{color:#C8001D}
.tr-n:hover{outline:1px solid #0B0F14}
.tr-h{margin:12px 0 6px;font-size:13px;font-weight:800;color:var(--fms-ink,#0B0F14)}
.tr-list{display:grid;gap:6px}
.tr-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:10px;padding:10px 12px;border:1px solid var(--fms-line,#E3E6EA);border-radius:12px;color:var(--fms-ink,#0B0F14);text-decoration:none}
.tr-list a b{font-size:14px;font-weight:800;line-height:1.4}
.tr-list a span{grid-row:2;font-size:12.5px;color:var(--fms-muted,#5A6069)}
.tr-list a i{grid-row:1/3;grid-column:2;align-self:center;font-style:normal;color:var(--fms-faint,#8A8F98)}
.tr-list a:hover{border-color:#0B0F14}
.tr-ok,.tr-note{margin:10px 0 0;font-size:13px;color:var(--fms-muted,#5A6069)}
.tr-note b{color:#C8001D}
/* 오른쪽 서버 목록 (2026-10-04 「너무 비어 보이는데」) — 같은 위험은 한 줄 · 외 N건 */
.tr-side{display:grid;gap:8px}
.tr-side .tr-list a{min-height:58px;align-content:center}
.tr-list a b em{font-style:normal;font-size:12px;font-weight:700;color:var(--fms-muted,#5A6069);margin-left:4px}
.tr-list a span strong{font-weight:800;color:var(--fms-ink,#0B0F14)}
.tr-list a.late span strong{color:#C8001D}
.tr-list a.late{border-color:#F3C9CE}
.today-l,.today-r{display:grid;gap:14px;align-content:start;min-width:0}
/* PC — 왼쪽: 지금 할 일 · 흐름 · 바로가기 / 오른쪽: 확인할 것 · 작은 입구 */
@media (min-width:1000px){
  .today{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);column-gap:28px;row-gap:14px;padding:26px 28px}
  .today-hi{grid-column:1/-1}
}
@media (max-width:760px){
  .today{padding:18px 16px;gap:14px}
  .today-hi h2{font-size:20px}
  .today-focus{grid-template-columns:44px minmax(0,1fr) 38px;gap:12px;padding:14px 14px 14px 16px}
  .tf-ic{width:44px;height:44px}.tf-go{width:38px;height:38px}.tf-t b{font-size:17.5px}
  .today-go a{min-height:68px;font-size:14px}
}

/* 개선조치 · 안전현황 공통 */
.lp-wrap{display:grid;gap:16px}
.lp-card{background:#fff;border:1px solid var(--fms-line);border-radius:var(--fms-radius);padding:18px 20px;display:grid;gap:12px}
.lp-card h2{margin:0;font-size:19px;color:var(--fms-ink)}
.lp-card p{margin:0;font-size:15px;color:var(--fms-muted)}
.lp-filter{display:flex;flex-wrap:wrap;gap:6px}
.lp-filter button{min-height:44px;padding:0 14px;border-radius:999px;border:1.5px solid var(--fms-line);background:#fff;font:inherit;font-size:14.5px;font-weight:800;color:var(--fms-text);cursor:pointer}
.lp-filter button[aria-pressed="true"]{background:var(--fms-ink);border-color:var(--fms-ink);color:#fff}
.lp-filter button b{font-variant-numeric:tabular-nums;margin-left:4px}
.lp-item{border:1.5px solid var(--fms-line);border-radius:14px;padding:14px;display:grid;gap:10px;background:#fff}
.lp-item.red{border-color:#f1b8be} .lp-item.orange{border-color:#f3cda9}
.lp-item .h{font-size:17px;font-weight:800;color:var(--fms-ink);line-height:1.4}
.lp-item .m{font-size:14px;color:var(--fms-muted);display:flex;flex-wrap:wrap;gap:4px 14px}
.lp-item .m .late{color:var(--st-red);font-weight:800}
.lp-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.lp-steps span{border-radius:10px;padding:6px 8px;font-size:13.5px;font-weight:800;text-align:center;background:var(--st-gray-soft);color:var(--st-gray)}
.lp-steps span.ok{background:var(--st-green-soft);color:var(--st-green)}
.lp-steps span.wait{background:var(--st-yellow-soft);color:var(--st-yellow)}
.lp-steps span.no{background:var(--st-red-soft);color:var(--st-red)}
.lp-photos{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lp-photos figure{margin:0;display:grid;gap:4px}
.lp-photos img,.lp-photos .ph{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;background:#f1f2f4;display:grid;place-items:center;color:var(--fms-faint);font-size:13px}
.lp-photos figcaption{font-size:13px;font-weight:800;color:var(--fms-muted)}
.lp-actions{display:flex;flex-wrap:wrap;gap:8px}
.lp-actions a{display:inline-flex;align-items:center;min-height:48px;padding:0 16px;border-radius:12px;background:#f4f5f7;color:var(--fms-ink);font-weight:800;font-size:15px;text-decoration:none}
.lp-actions a.main{background:var(--fms-brand);color:#fff}
.lp-kpi{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.lp-kpi div{background:#f6f7f9;border-radius:14px;padding:12px 14px;display:grid;gap:2px}
.lp-kpi b{font-size:26px;font-variant-numeric:tabular-nums;color:var(--fms-ink);line-height:1.2}
.lp-kpi span{font-size:14px;color:var(--fms-muted);font-weight:700}
.lp-kpi .red b{color:var(--st-red)} .lp-kpi .orange b{color:var(--st-orange)} .lp-kpi .green b{color:var(--st-green)}
.lp-table{overflow-x:auto;border:1px solid var(--fms-line);border-radius:12px}
.lp-table table{border-collapse:collapse;width:100%;min-width:560px;font-size:14.5px}
.lp-table th,.lp-table td{padding:10px 12px;border-bottom:1px solid var(--fms-line-soft);text-align:left;vertical-align:top}
.lp-table th{background:#f6f7f9;font-size:13.5px;color:var(--fms-muted)}
/* 2026-09-29 사장님 「건수하고 사업장수가 안 나타나네」 — 머리글은 왼쪽 · 숫자는 오른쪽 끝이라 어긋나 보였다 → 숫자 칸 머리글 · 숫자 모두 가운데 */
.lp-table td.n{font-variant-numeric:tabular-nums;text-align:center}
.lp-table.lp-num th:not(:first-child),.lp-table.lp-num td:not(:first-child){text-align:center}
.lp-source{font-size:13px;color:var(--fms-faint)}
@media (max-width:760px){
  .lp-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lp-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lp-card{padding:16px}
}

/* 개선조치 — 입력 (큰 칸 · 큰 단추) */
.lp-item .top{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.lp-form{display:grid;gap:10px;background:#f8f9fa;border-radius:12px;padding:12px}
.lp-form label{display:grid;gap:4px;font-size:14px;font-weight:800;color:var(--fms-text)}
.lp-form input:not([type=checkbox]),.lp-form select{min-height:48px;border:1.5px solid var(--fms-line);border-radius:10px;padding:0 12px;font:inherit;font-size:16px;background:#fff}
.lp-form button,.lp-actions button,.lp-shot{min-height:48px;border-radius:12px;border:0;background:#eceef1;color:var(--fms-ink);font:inherit;font-size:15.5px;font-weight:800;cursor:pointer;padding:0 16px;display:inline-flex;align-items:center;justify-content:center}
.lp-form button.main,.lp-shot.main{background:var(--fms-brand);color:#fff}
.lp-form button:focus-visible,.lp-shot:focus-within,.lp-filter button:focus-visible{outline:2px solid var(--fms-ink);outline-offset:2px}
.lp-q{font-size:16px;font-weight:800;color:var(--fms-ink)}
.lp-q.warn{color:var(--st-red)}
.lp-grid{display:grid;gap:6px}
.lp-grid .lv1{background:var(--st-green-soft);color:var(--st-green)}
.lp-grid .lv2{background:var(--st-orange-soft);color:var(--st-orange)}
.lp-grid .lv3{background:var(--st-red-soft);color:var(--st-red)}
.lp-chips{display:flex;flex-wrap:wrap;gap:6px}
.lp-chips label{display:inline-flex;flex-direction:row;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:1.5px solid var(--fms-line);border-radius:999px;background:#fff;font-weight:700}
.lp-chips input{width:20px;height:20px}
.lp-src,.lp-note{font-size:13.5px;color:var(--fms-muted);margin:0}
.lp-more{font-size:15px;font-weight:800;color:var(--fms-brand-dark)}
.lp-msg{margin:0;border-radius:10px;padding:10px 12px;background:var(--st-green-soft);color:var(--st-green);font-weight:800}
.lp-hist summary{cursor:pointer;font-size:14px;font-weight:700;color:var(--fms-muted);min-height:32px}
.lp-hist ul{margin:6px 0 0;padding-left:18px;font-size:13.5px;color:var(--fms-muted);display:grid;gap:2px}

/* 현장점검 「한 질문씩」 (2026-09-26) — 한 화면 한 판단 · 큰 단추 · 아래 고정 「다음」 */
.one-route-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.one-route-h b{font-size:16px}
.one-route-h span{font-size:14px;color:var(--fms-muted);font-weight:700}
.one-stops{display:flex;gap:6px;overflow-x:auto;padding:8px 0 2px;-webkit-overflow-scrolling:touch}
.one-stops button{flex:0 0 auto;min-height:44px;padding:0 14px;border-radius:999px;border:1.5px solid var(--fms-line);background:#fff;font:inherit;font-size:14.5px;font-weight:800;color:var(--fms-text);cursor:pointer}
.one-stops button.done{border-color:var(--st-green);color:var(--st-green);background:var(--st-green-soft)}
.one-stops button.cur{border-color:var(--fms-brand);background:var(--fms-brand);color:#fff}
.one-q{display:grid;gap:12px}
.one-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.one-top b{font-size:17px}
.one-saved{font-size:13.5px;font-weight:800;color:var(--st-green)}
.one-bar{height:10px;border-radius:99px;background:#eef0f3;overflow:hidden}
.one-bar i{display:block;height:100%;background:var(--st-green)}
.one-count{font-size:14.5px;color:var(--fms-muted);font-weight:700}
.one-eq{font-size:14.5px;color:var(--fms-muted);font-weight:700}
.one-hot{color:var(--st-red)}
.one-text{font-size:22px;line-height:1.45;font-weight:800;color:var(--fms-ink);text-wrap:balance}
.one-ans{display:grid;gap:10px}
.one-ans button{min-height:50px;border-radius:14px;border:2px solid var(--fms-line);background:#fff;font:inherit;font-size:17px;font-weight:800;cursor:pointer}
.one-ans .ok{border-color:#a9dcc6;color:var(--st-green)}
.one-ans .bad{border-color:#f3cda9;color:var(--st-orange)}
.one-ans .unk{border-color:#ecd98f;color:var(--st-yellow)}
.one-ans .ok.on{background:var(--st-green);border-color:var(--st-green);color:#fff}
.one-ans .bad.on{background:var(--st-orange);border-color:var(--st-orange);color:#fff}
.one-ans .unk.on{background:#f5d65b;border-color:#e0bd2e;color:#3d2e00}
.one-na{justify-self:start;min-height:44px;border:0;background:none;font:inherit;font-size:14.5px;color:var(--fms-muted);text-decoration:underline;cursor:pointer;padding:0 4px}
.one-na.on{color:var(--fms-ink);font-weight:800}
.one-panel{border-radius:14px;padding:14px;display:grid;gap:10px}
.one-panel.bad{background:var(--st-orange-soft)}
.one-panel.unk{background:var(--st-yellow-soft)}
.one-panel p{margin:0;font-size:15.5px;line-height:1.55}
.one-ph{font-size:18px;font-weight:800}
.one-step{font-size:15.5px;font-weight:800;margin-top:4px}
.one-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.one-row button,.one-lv button{min-height:46px;border-radius:12px;border:1.5px solid var(--fms-line);background:#fff;font:inherit;font-size:16px;font-weight:800;cursor:pointer;padding:6px 12px}
.one-row button.main{background:var(--fms-brand);border-color:var(--fms-brand);color:#fff}
.one-lv{display:grid;gap:8px}
.one-lv button{text-align:left;display:grid}
.one-lv button small{font-size:13.5px;font-weight:600;color:var(--fms-muted)}
.one-lv .red{color:var(--st-red)} .one-lv .orange{color:var(--st-orange)} .one-lv .gray{color:var(--st-gray)}
.one-lv .on.red{background:var(--st-red);color:#fff;border-color:var(--st-red)}
.one-lv .on.orange{background:var(--st-orange);color:#fff;border-color:var(--st-orange)}
.one-lv .on.gray{background:var(--st-gray);color:#fff;border-color:var(--st-gray)}
.one-lv .on small{color:#fff}
.one-memo{display:grid;gap:4px;font-size:14.5px;font-weight:800}
.one-memo input{min-height:48px;border:1.5px solid var(--fms-line);border-radius:10px;padding:0 12px;font:inherit;font-size:16px}
.one-tip,.one-note{font-size:14.5px;color:var(--fms-text);margin:0}
.one-img{width:100%;max-height:260px;object-fit:cover;border-radius:12px}
.one-ex{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.one-ex div{aspect-ratio:4/3;border:1.5px dashed #d8c77a;border-radius:12px;display:grid;place-items:center;align-content:center;font-weight:800;font-size:15px;color:var(--st-yellow);background:#fffdf3}
.one-ex small{font-weight:600;font-size:12.5px;color:var(--fms-muted)}
.one-more summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-size:15px;font-weight:800;color:var(--fms-muted)}
.one-more p{margin:4px 0;font-size:14.5px;line-height:1.55}
.one-nav{position:sticky;bottom:0;z-index:20;background:rgba(255,255,255,.96);padding:10px 0 calc(10px + env(safe-area-inset-bottom,0px))}
.one-nav .btn[disabled]{opacity:.45}
.one-fixed{min-height:46px;border-radius:12px;border:1.5px dashed var(--st-green);background:#fff;color:var(--st-green);font:inherit;font-size:16px;font-weight:800;cursor:pointer}
.one-fixed.on{border-style:solid;background:var(--st-green-soft)}
/* 아래 고정 「다음」 — 화면 맨 아래의 「이 기기에만 저장됩니다」 줄(54px) 위에 선다 */
.bar.one-nav{bottom:56px}
.one-nav .btnrow{display:grid!important;grid-template-columns:1fr 1.6fr;gap:8px}
.one-nav .btn{min-height:48px;font-size:16px}
.one-modes{display:grid;gap:8px}
.one-modes div{display:flex;flex-wrap:wrap;gap:6px}
.one-modes button{min-height:44px;padding:0 14px;border-radius:999px;border:1.5px solid var(--fms-line);background:#fff;font:inherit;font-size:14.5px;font-weight:800;cursor:pointer}

/* 위험성평가 「쉬운 질문으로 평가」 (2026-09-26) */
.ez{display:grid;gap:12px}
.ez-steps{display:flex;flex-wrap:wrap;gap:4px}
.ez-steps span{font-size:12.5px;font-weight:800;padding:3px 9px;border-radius:999px;background:#eef0f3;color:var(--fms-muted)}
.ez-steps span.now{background:var(--fms-brand);color:#fff}
.ez-steps span.done{background:var(--st-green-soft);color:var(--st-green)}
.ez-q1{display:grid;gap:2px;background:#f6f7f9;border-radius:12px;padding:10px 12px}
.ez-q1 i{font-style:normal;font-size:12.5px;font-weight:800;color:var(--fms-muted)}
.ez-q1 b{font-size:17px;line-height:1.4}
.ez-q1 s{text-decoration:none;font-size:13.5px;color:var(--fms-muted)}
.ez-q{font-size:20px;font-weight:800;line-height:1.4;color:var(--fms-ink)}
.ez-sub{font-size:15px;font-weight:800;color:var(--fms-text)}
.ez-help{margin:0;font-size:14.5px;color:var(--fms-muted)}
.ez-why{margin:0;font-size:14px;font-weight:700;color:var(--st-red);background:var(--st-red-soft);border-radius:10px;padding:8px 10px}
.ez-chips{display:flex;flex-wrap:wrap;gap:6px}
.ez-chips button{min-height:44px;padding:0 14px;border-radius:999px;border:1.5px solid var(--fms-line);background:#fff;font:inherit;font-size:15px;font-weight:800;cursor:pointer}
.ez-chips button.on{background:var(--fms-ink);border-color:var(--fms-ink);color:#fff}
.ez-field{display:grid;gap:4px;font-size:15px;font-weight:800}
.ez-field small{font-weight:600;color:var(--fms-muted);font-size:13px}
.ez-field input,.ez-field textarea{min-height:48px;border:1.5px solid var(--fms-line);border-radius:10px;padding:10px 12px;font:inherit;font-size:16px}
.ez-lv,.ez-list,.ez-cut{display:grid;gap:8px}
.ez-lv button,.ez-list button,.ez-cut button{min-height:48px;border-radius:12px;border:2px solid var(--fms-line);background:#fff;font:inherit;text-align:left;padding:8px 14px;cursor:pointer;display:grid;gap:2px}
.ez-lv button{font-size:18px;font-weight:800}
.ez-lv small,.ez-list small,.ez-cut small{font-size:13.5px;font-weight:600;color:var(--fms-muted)}
.ez-lv .lv3{color:var(--st-red);border-color:#f1b8be} .ez-lv .lv2{color:var(--st-orange);border-color:#f3cda9} .ez-lv .lv1{color:var(--st-green);border-color:#a9dcc6}
.ez-lv .lv3.on{background:var(--st-red);color:#fff} .ez-lv .lv2.on{background:var(--st-orange);color:#fff} .ez-lv .lv1.on{background:var(--st-green);color:#fff}
.ez-lv .on small{color:#fff}
.ez-list b{font-size:16px}
.ez-list button.on{border-color:var(--fms-ink);background:#f1f2f4}
.ez-list button[disabled]{opacity:.4;cursor:not-allowed}
.ez-cut b{font-size:15.5px}
.ez-result{border-radius:14px;padding:12px 14px;display:grid;gap:4px}
.ez-result b{font-size:19px}
.ez-result span{font-size:15px}
.ez-result details{font-size:13.5px;color:var(--fms-muted)}
.ez-result summary{cursor:pointer;min-height:32px}
.ez-result.red{background:var(--st-red-soft);color:var(--st-red)}
.ez-result.orange{background:var(--st-orange-soft);color:var(--st-orange)}
.ez-result.green{background:var(--st-green-soft);color:var(--st-green)}
.ez-nav{display:grid;grid-template-columns:1fr 1.6fr;gap:8px}
.ez-nav .btn{min-height:48px}
.ez-nav .btn[disabled]{opacity:.45}
/* 위험성평가 1단계 — 근로자 참여 · 근로자대표 */
.partbox{display:grid;gap:8px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--fms-line)}
.partbox .sec small{font-weight:600;color:var(--fms-muted);font-size:12.5px;margin-left:6px}
.partbox .chips{display:flex;flex-wrap:wrap;gap:6px}
.partbox .chip{min-height:44px;padding:0 14px;border-radius:999px;border:1.5px solid var(--fms-line);background:#fff;font:inherit;font-size:15px;font-weight:800;cursor:pointer}
.partbox .chip.on{background:var(--fms-ink);border-color:var(--fms-ink);color:#fff}

/* 「처음이신가요?」 1분 안내 (fms-guide.js) */
details.howto{border:1.5px solid var(--fms-line);border-radius:14px;background:#fbfcfd;padding:4px 14px;margin:0 0 12px}
details.howto summary{cursor:pointer;min-height:48px;display:flex;align-items:center;font-size:16px;font-weight:800;color:var(--fms-ink)}
details.howto ol{margin:4px 0 10px;padding-left:20px;display:grid;gap:6px;font-size:15px;line-height:1.55}
details.howto small{color:var(--fms-muted)}
.how-lead,.how-note{margin:4px 0 10px;font-size:15px;line-height:1.55}
.how-note{color:var(--st-green);font-weight:700}
.how-when{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:4px 0 10px;font-size:15px}
.how-when dt{font-weight:800}
.how-when dd{margin:0}
.how-src{font-size:12.5px;color:var(--fms-faint);margin:0 0 10px}

/* 기상안전 사업장 지도로 잇는 줄 (2026-09-26) */
.lp-map{margin:10px 0 0}
.lp-map a{display:inline-flex;align-items:center;min-height:44px;font-weight:800;color:var(--fms-ink);text-decoration:underline;text-underline-offset:3px}

/* 「한 질문씩」 에서 단계 · 진행을 한 줄로 접은 것 (2026-09-26) */
.stepmini{border:1.5px solid var(--fms-line);border-radius:14px;background:#fff;margin:0 0 12px;padding:0 14px}
.stepmini>summary{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;font-size:15.5px;font-weight:800;color:var(--fms-ink);list-style:none}
.stepmini>summary::-webkit-details-marker{display:none}
.stepmini>summary span{font-size:13.5px;font-weight:700;color:var(--fms-muted);text-decoration:underline;text-underline-offset:3px}
.stepmini[open]{padding-bottom:12px}

/* 🎤 말로 적기 (shared/fms-voice.js) */
.fms-voice-wrap{position:relative}
.fms-voice-btn{position:absolute;right:8px;bottom:8px;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--fms-line);background:#fff;font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.fms-voice-btn.on{background:var(--st-red);border-color:var(--st-red);color:#fff;animation:fmsvp 1.2s ease-in-out infinite}
@keyframes fmsvp{50%{box-shadow:0 0 0 8px rgba(192,57,43,.18)}}
.fms-voice-wrap textarea{padding-right:58px!important}
.fms-voice-tip{position:absolute;right:58px;bottom:14px;font-size:12.5px;font-weight:700;color:var(--st-red);background:#fff;padding:2px 6px;border-radius:6px}
@media (prefers-reduced-motion:reduce){.fms-voice-btn.on{animation:none}}
.fms-voice-wrap.is-line .fms-voice-btn{top:50%;bottom:auto;transform:translateY(-50%);width:40px;height:40px;font-size:18px}
.fms-voice-wrap.is-line input{padding-right:54px!important}
.fms-voice-wrap.is-line .fms-voice-tip{bottom:auto;top:50%;transform:translateY(-50%);right:54px}

/* ── 한 질문 화면 — 누르기만으로 (2026-09-26) ── */
.stepmini>summary b{font-size:16px;white-space:nowrap}
.stepmini>summary em{font-style:normal;font-size:13.5px;font-weight:700;color:var(--fms-muted);flex:1;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.one-now{display:flex;align-items:center;gap:8px;margin:0 0 10px;padding:9px 12px;border-radius:10px;background:#fff1f2;color:#15171c;font-size:15.5px;font-weight:800;line-height:1.35}
.one-now span{flex:none;font-size:12.5px;font-weight:800;color:#fff;background:var(--fms-brand,#e3071b);border-radius:6px;padding:3px 7px}
.one-flash{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px;padding:8px 12px;border-radius:10px;background:#E8F6EE;color:#1F6B43;font-size:14.5px;font-weight:800;animation:oneflash .25s ease-out}
.one-flash button{flex:none;min-height:36px;border:1.5px solid #9FD3B5;background:#fff;color:#1F6B43;border-radius:8px;padding:0 10px;font-size:13.5px;font-weight:800;cursor:pointer}
@keyframes oneflash{from{opacity:0;transform:translateY(-4px)}}
@media (prefers-reduced-motion:reduce){.one-flash{animation:none}}
.one-step small{font-weight:600;color:var(--fms-muted)}
.one-skip{display:block;width:100%;min-height:48px;margin:8px 0 4px;border:1.5px dashed var(--fms-line);background:#fff;border-radius:12px;font-size:15.5px;font-weight:800;color:var(--fms-ink);cursor:pointer}
.one-extra{margin-top:10px;border-top:1px solid var(--fms-line);padding-top:6px}
.one-extra>summary{min-height:44px;display:flex;align-items:center;gap:6px;cursor:pointer;font-size:15px;font-weight:800;color:var(--fms-ink)}
.one-extra>summary small{font-weight:600;color:var(--fms-muted)}
.one-chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.one-chips button{min-height:44px;padding:0 14px;border-radius:22px;border:1.5px solid var(--fms-line);background:#fff;font-size:15px;font-weight:700;color:var(--fms-ink);cursor:pointer}
.one-chips button.on{background:#FFF1E6;border-color:#E07B39;color:#8A3B0C}
.one-chips button.on::before{content:'✓ '}
/* 한 질문 화면 — 머리 설명 줄을 감춰 질문을 위로 (제목 · 뒤로는 그대로) */
.fms-focus .fms-hero-text p{display:none}

/* ── 📍 지금 어디 · 지금 할 일 · 다음 (shared/fms-now.js · 2026-09-26) ── */
/* 2026-09-27 사이트 색으로 (파랑 → 빨강 · 검정) */
.nowbar{border:1px solid var(--fms-line,#e4e6ea);border-radius:14px;background:#fff;padding:12px 14px;margin:0 0 14px}
.nb-where{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:16.5px;color:var(--fms-ink)}
.nb-where b{font-weight:800}
.nb-pct{flex:none;font-size:13.5px;font-weight:800;color:var(--fms-ink,#15171c)}
.nb-rail{height:6px;border-radius:3px;background:#eef0f3;margin:8px 0 10px;overflow:hidden}
.nb-rail i{display:block;height:100%;background:var(--fms-brand,#e3071b);border-radius:3px}
.nb-do{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:16px;color:var(--fms-ink,#15171c);line-height:1.35}
.nb-do>span{flex:none;font-size:12.5px;font-weight:800;color:#fff;background:var(--fms-brand,#e3071b);border-radius:6px;padding:3px 7px}
.nb-do>b{font-weight:800}
.nb-go{margin-left:auto;min-height:44px;padding:0 14px;border-radius:10px;border:0;background:#15171c;color:#fff;font-size:15px;font-weight:800;cursor:pointer}
.nb-next{margin-top:8px;font-size:14.5px;font-weight:700;color:var(--fms-muted)}
.nb-more{margin-top:8px;border-top:1px solid #eef0f3;padding-top:4px}
.nb-more>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-size:14.5px;font-weight:800;color:var(--fms-ink,#15171c)}
.nb-more[open]>summary{margin-bottom:8px}

/* 누르면 들어가는 조각 (담당자 · 기한 · 인원) */
.pick-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}
.pick-chips button{min-height:40px;padding:0 12px;border-radius:20px;border:1.5px solid var(--fms-line);background:#fff;font-size:14.5px;font-weight:700;color:var(--fms-ink);cursor:pointer}
.pick-chips button:active{background:#fff1f2}

/* ★ 할 일 카드 (2026-09-27) — 고치는 방법이 맨 앞, 「맡기기」 는 접어서 */
.lp-todo{margin:10px 0 8px;font-size:17px;font-weight:700;line-height:1.45;color:var(--fms-ink,#1b2433)}
.lp-todo b{display:inline-block;font-size:12.5px;font-weight:800;color:var(--fms-brand,#e3071b);background:#fff1f2;border-radius:999px;padding:2px 9px;margin-right:6px;vertical-align:2px}
.lp-actions .lp-quiet{background:#fff;border:1px solid #cfd5dc;color:#1b2433}
.lp-later{margin-top:8px}
.lp-later>summary{min-height:44px;display:flex;align-items:center;font-size:15px;font-weight:700;color:#5b6472;cursor:pointer}

.lp-batchwrap>summary{min-height:44px;display:flex;align-items:center;font-size:16px;font-weight:800;color:#1b2433;cursor:pointer}
.lp-batchwrap[open]>summary{margin-bottom:6px}
/* 거르기 네 칸 — 한 줄에 나란히 (2026-09-27) */
.lp-filtercard{padding:10px}
.lp-filtercard .lp-filter{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.lp-filtercard .lp-filter button{min-height:46px;padding:4px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:14px;line-height:1.2}
.lp-filtercard .lp-filter button b{font-size:18px}

/* ── 다음 단계 카드 (2026-09-27) — 위험성평가 → 개선조치 ─────────────
   사장님: 「최대한 세련되게」. 크게 키우지 않는다 — 한 장의 카드, 한 곳만 색(오른쪽 화살표 원).
   왼쪽 가는 색띠 · 제목 한 줄 · 숫자 알약 두세 개 · 누르면 넘어간다. */
.fms-next{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) 40px;align-items:center;gap:14px;
  margin:14px 0;padding:16px 16px 16px 18px;border-radius:16px;background:#fff;border:1px solid var(--fms-line,#e4e6ea);
  box-shadow:0 1px 2px rgba(16,24,40,.04),0 8px 24px -12px rgba(16,24,40,.18);text-decoration:none;color:var(--fms-ink,#15171c);
  overflow:hidden;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.fms-next::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--fms-brand,#e3071b)}
.fms-next:hover{transform:translateY(-1px);border-color:#d5d8dd;box-shadow:0 1px 2px rgba(16,24,40,.05),0 14px 30px -14px rgba(16,24,40,.28)}
.fms-next:active{transform:translateY(0)}
.fms-next-ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--fms-brand-soft,#fff1f2);color:var(--fms-brand,#e3071b)}
.fms-next-ic svg{width:22px;height:22px}
.fms-next-t{display:grid;gap:3px;min-width:0}
.fms-next-t small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;font-weight:800;letter-spacing:.04em;color:var(--fms-muted,#5b616d)}
.fms-next-t b{font-size:17px;font-weight:800;letter-spacing:-.02em;line-height:1.3}
.fms-next-t b em{font-style:normal;color:var(--fms-brand,#e3071b)}
.fms-next-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.fms-next-pills span{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:999px;
  background:#f3f4f6;color:#41454e;font-size:12.5px;font-weight:700}
.fms-next-pills span.hot{background:#fff1f2;color:#b3071a}
.fms-next-pills span.hot::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.fms-next-go{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--fms-brand,#e3071b);color:#fff;
  box-shadow:0 6px 14px -6px rgba(227,7,27,.6);transition:transform .12s ease}
.fms-next:hover .fms-next-go{transform:translateX(2px)}
.fms-next-go svg{width:18px;height:18px}
.fms-next.calm::before{background:#1f8a4c}
.fms-next.calm .fms-next-ic{background:#eaf6ef;color:#1f8a4c}
.fms-next.calm .fms-next-go{background:#1f8a4c;box-shadow:0 6px 14px -6px rgba(31,138,76,.55)}
@media (max-width:420px){.fms-next{grid-template-columns:40px minmax(0,1fr) 36px;gap:12px;padding:14px 12px 14px 16px}
  .fms-next-ic{width:40px;height:40px}.fms-next-go{width:36px;height:36px}.fms-next-t b{font-size:16px}}
@media print{.fms-next{display:none}}

/* ══ 2026-09-27 한 문항 화면 색 정리 — 사장님: 「알록 달록」 「디자인을 좀 신경쓰자」 ══
   단추는 흰 바탕 · 회색 선 · 검정 글자 한 가지. 고르면 검정으로 채움.
   상태 색(초록 · 주황 · 빨강)은 **앞의 작은 점 하나**에만. 바탕색 칠하지 않음. */
.one-ans button,.one-row button,.one-lv button,.one-fixed{border:1.5px solid #d9dde5!important;background:#fff!important;color:#15171c!important;border-style:solid!important}
.one-ans button{display:flex;align-items:center;justify-content:center;gap:10px}
.one-ans button::before{content:"";width:9px;height:9px;border-radius:50%;flex:none;background:#c9cdd4}
.one-ans .ok::before{background:var(--st-green)} .one-ans .bad::before{background:var(--st-orange)} .one-ans .unk::before{background:#c9a400}
.one-ans button.on,.one-lv button.on,.one-row button.main,.one-fixed.on{background:#15171c!important;border-color:#15171c!important;color:#fff!important}
.one-ans button.on::before{box-shadow:0 0 0 2px #fff}
.one-lv button{grid-template-columns:auto 1fr;column-gap:8px;align-items:center}
.one-lv .red,.one-lv .orange,.one-lv .gray{color:#15171c!important}
.one-lv button small{grid-column:2}
.one-lv .on small{color:#d7dae0!important}
.one-panel.bad,.one-panel.unk{background:#fff!important;border:1px solid #e4e6ea}
.one-ex div{border-color:#d9dde5!important;color:#5b616d!important;background:#fafbfc!important}
.one-bar i{background:#15171c}
/* ⑧ 2026-09-27 한 줄 답 — 정상 · 즉시 · 계획 · 예산 · 모름 (문제 + 급한 정도를 한 번에) */
.one-ans.one-ans5{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.one-ans5 button{flex-direction:column;gap:3px!important;min-height:64px;padding:6px 2px;font-size:15.5px;border-radius:12px;line-height:1.15}
.one-ans5 button small{font-size:11.5px;font-weight:700;color:#8a909a}
.one-ans5 button.on small{color:#d7dae0}
.one-ans5 .bad::before{background:#f08c00} .one-ans5 .bad.hot::before{background:#e3071b} .one-ans5 .bad.bud::before{background:#8a909a}
/* ⑨ 2026-09-27 개선조치 카드 — 한 장 = 할 일 하나 (「뭘 해야 할지 모르잖아」) */
.lp-item a.h{color:var(--fms-ink);text-decoration:none}
.lp-item a.h::after{content:" ›";color:#9aa0aa;font-weight:700}
.lp-steps2{display:flex;align-items:center;gap:4px;margin:2px 0}
.lp-steps2 i{flex:1;max-width:48px;height:5px;border-radius:3px;background:#e4e6ea}
.lp-steps2 i.ok{background:#1f8a4c} .lp-steps2 i.now{background:#15171c}
.lp-steps2 span{margin-left:6px;font-size:12.5px;font-weight:800;color:#5b616d}
.lp-thumbs{display:flex;gap:8px}
.lp-thumbs figure{margin:0;width:112px;display:grid;gap:2px}
.lp-thumbs img{width:112px;height:84px;object-fit:cover;border-radius:10px;background:#f1f2f4}
.lp-thumbs figcaption{font-size:12px;font-weight:700;color:#8a909a}
.lp-row3{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:6px}
.lp-row3>*{min-width:0;padding:0 8px!important;font-size:15px!important}
.lp-row3 .lp-quiet{border:1px solid #d9dde5!important;background:#fff!important}
.lp-row3 [aria-expanded="true"]{background:#15171c!important;color:#fff!important;border-color:#15171c!important}
.lp-assign{margin-top:8px;padding:12px;border:1px solid #e4e6ea;border-radius:12px;display:grid;gap:6px}
.lp-assign .lp-lab{font-size:12.5px;font-weight:800;color:#8a909a}
.lp-assign input[name=owner]{min-height:44px;border:1px solid #d9dde5;border-radius:10px;padding:0 12px;font:inherit}
.pick-chips button[aria-pressed="true"]{background:#15171c!important;color:#fff!important;border-color:#15171c!important}
.one-ex-img img{width:100%;aspect-ratio:4/3;border-radius:12px;border:1px solid #e4e6ea;display:block}
.lp-item>a.h{display:block;font-size:18px;line-height:1.35}
.lp-why{margin:-2px 0 0;font-size:13.5px;color:#8a909a;line-height:1.4}
/* ⑩ 2026-09-27 쉬운 질문 — 상중하 한 줄 · 저절로 넘어간 뒤 되돌리기 한 줄 · 자동 입력 결과 줄 */
.ez-lv.ez-lv-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.ez-lv.ez-lv-row button{min-height:64px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:20px;font-weight:800;padding:6px 4px}
.ez-lv.ez-lv-row button small{font-size:12.5px;font-weight:700}
.ez-flash{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px;padding:8px 12px;border-radius:10px;background:#eef7f1;color:#1f8a4c;font-size:14px;font-weight:800}
.ez-flash button{min-height:36px;border:1px solid #d9dde5;background:#fff;border-radius:999px;padding:0 12px;font:inherit;font-size:13px;font-weight:800;color:#15171c;cursor:pointer}
.card.autoin{border:1px solid #cfe6d8;background:#f6fbf8}
/* ⑫ 위험성평가 축약 (2026-09-27) — 사장님 「최대한 중복되지 않게 간단하고 쉽게」
   평가 종류 · 서식 한 줄 고르기 · 찍기|앨범 한 줄 · 단계 할 것 접기 · 쉬운 질문 Q3 격자 · Q4 대책 칩 한 줄 */
.ra-seg{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px}
.ra-seg button{min-height:48px;padding:0 4px;border:1.5px solid #d9dde5;border-radius:12px;background:#fff;font:inherit;font-size:16px;font-weight:800;color:#15171c;cursor:pointer;white-space:nowrap}
.ra-seg button.on{background:#15171c;border-color:#15171c;color:#fff}
.ra-seg-why{margin-top:8px}
.ra-shot2{display:grid;grid-template-columns:2fr 1fr;gap:8px}
.ra-shot2 .btn{width:100%;min-height:48px;margin:0}
details.ra-tasks>summary{min-height:44px;display:flex;align-items:center;font-size:16px;font-weight:800;color:#5b616d;cursor:pointer;list-style:none}
details.ra-tasks>summary::-webkit-details-marker{display:none}
details.ra-tasks>summary::after{content:"▾";margin-left:auto;color:#8a909a}
details.ra-tasks[open]>summary::after{content:"▴"}
.ez-mx .mx{margin:0}
.ez-mx table.mxt{border-spacing:4px}
.ez-mx .mc{min-height:48px}
.ez-cut-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.ez-cut-row button{padding:0 2px!important;font-size:14.5px!important;white-space:nowrap}

/* ⑬ 공통 축약 (2026-09-27) — 사장님 「전체 컨텐츠가 마찬가지 최대한 중복되지 않게 간단하고 쉽게」 */
/* 개선조치 재평가 — 상중하 한 줄 「하 · 중 · 상」 (긴 단추 셋을 세로로 쌓던 것) */
.lp-grid.lp-lv3{grid-template-columns:repeat(3,minmax(0,1fr))}
.lp-lv3 button{flex-direction:column;gap:1px;min-height:56px;padding:4px 2px;font-size:19px;line-height:1.1}
.lp-lv3 button small{font-size:12px;font-weight:700;opacity:.85}
.lp-lv3 button[aria-pressed="true"]{outline:2px solid var(--fms-ink);outline-offset:-2px}
/* 개선조치 재평가 — 가능성 · 크기를 축마다 누르는 줄 (둘 다 고르면 저절로 저장) */
.lp-form .lp-lab{font-size:13px;font-weight:800;color:#5b616d;margin-top:2px}
.lp-ax{display:grid;grid-template-columns:repeat(auto-fit,minmax(52px,1fr));gap:6px}
.lp-ax button{flex-direction:column;gap:1px;min-height:52px;padding:4px 2px;background:#fff;border:1.5px solid #d9dde5;line-height:1.1}
.lp-ax button b{font-size:18px}
.lp-ax button small{font-size:11px;font-weight:700;color:#8a909a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.lp-ax button[aria-pressed="true"]{background:#15171c;border-color:#15171c;color:#fff}
.lp-ax button[aria-pressed="true"] small{color:#d7dae0}
/* 안전현황 「지금 먼저 확인」 — 줄 전체가 눌림 (「조치현황」 단추 없앰) */
a.risk-card{color:inherit;text-decoration:none;cursor:pointer}
a.risk-card:hover{border-color:#c9cdd4}
.risk-card .go{grid-column:2;grid-row:1/span 2;font-size:22px;font-weight:700;color:#9aa0aa}
/* ⑭ 2026-09-27 ② 현재 안전조치 — 평가서에 들어가는 글 미리보기 */
.ez-preview{margin-top:10px;padding:10px 12px;border:1px solid #e4e6ea;border-radius:12px;background:#fafbfc;display:grid;gap:4px}
.ez-preview>b{font-size:12.5px;color:#8a909a}
.ez-preview p{margin:0;font-size:14.5px;line-height:1.45;color:#15171c}
.ez-preview i{display:inline-block;min-width:92px;font-style:normal;font-size:12.5px;font-weight:800;color:#5b616d}
.ez-preview span{color:#9aa0aa}
.ez-sub small{font-weight:600;color:#9aa0aa;margin-left:4px}
.ez-more{margin-top:10px;border-top:1px solid #e4e6ea;padding-top:4px}
.ez-more>summary{min-height:44px;display:flex;align-items:center;font-size:14px;font-weight:800;color:#5b616d;cursor:pointer}
.ez-fit button{text-align:left}
/* ⑮ 2026-09-27 현장점검 새 방식 — 장소 → 설비 → 문제만 (fms-quickwalk.js) */
.qw-steps{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #e4e6ea;border-radius:12px;overflow:hidden;background:#fff;margin-bottom:10px}
.qw-steps span{padding:8px 2px;text-align:center;font-size:12px;font-weight:800;color:#9aa0aa}
.qw-steps span+span{border-left:1px solid #e4e6ea}
.qw-steps span.now{background:#15171c;color:#fff}.qw-steps span.done{color:#1f8a4c}
.qw-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.qw-head h3{margin:0}.qw-head span{font-size:13px;color:#5b616d;font-weight:700}
.qw-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.qw-pick{min-height:60px;padding:10px 12px;border-radius:12px;border:1px dashed #d9dde5;background:#fafbfc;font:inherit;text-align:left;cursor:pointer;display:grid;gap:2px;color:#9aa0aa}
.qw-pick b{font-size:14.5px;line-height:1.3}.qw-pick small{font-size:12.5px;font-weight:700}
.qw-pick.on{border:1px solid #15171c;background:#fff;color:#15171c}.qw-pick.on small{color:#1f8a4c}
.qw-quick{display:flex;gap:8px;margin-top:10px}
.qw-quick button{min-height:40px;padding:0 12px;border-radius:999px;border:1px solid #d9dde5;background:#fff;font:inherit;font-size:13.5px;font-weight:800;cursor:pointer}
.qw-go{width:100%;min-height:52px;border-radius:12px;border:0;background:#e3071b;color:#fff;font:inherit;font-size:16px;font-weight:800;cursor:pointer;margin-top:12px}
.qw-go:disabled{background:#eef0f3;color:#9aa0aa;cursor:default}
.qw-route{display:grid;border:1px solid #e4e6ea;border-radius:14px;overflow:hidden;background:#fff;margin:10px 0}
.qw-route button{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:56px;padding:10px 14px;border:0;background:#fff;font:inherit;text-align:left;cursor:pointer}
.qw-route button+button{border-top:1px solid #e4e6ea}
.qw-route .n{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#f3f4f6;font-size:12.5px;font-weight:800;color:#5b616d}
.qw-route .done .n{background:#1f8a4c;color:#fff}.qw-route .cur .n{background:#15171c;color:#fff}
.qw-route b{font-size:15px}.qw-route small{display:block;font-size:12.5px;color:#8a909a;font-weight:700}
.qw-route em{font-style:normal;font-size:12.5px;font-weight:800;color:#b3071a}.qw-route em.ok{color:#1f8a4c}.qw-route em.gray{color:#8a909a}
.qw-foot{font-size:13px;color:#5b616d;margin:8px 0 0}
.qw-link{font:inherit;font-size:13px;font-weight:800;color:#15171c;background:none;border:0;padding:0;text-decoration:underline;cursor:pointer;min-height:32px}
.qw-back{min-height:40px;padding:0 12px;border-radius:999px;border:1px solid #d9dde5;background:#fff;font:inherit;font-size:13.5px;font-weight:800;cursor:pointer;margin-bottom:10px}
.qw-grp{margin:12px 0 -4px;font-size:12.5px;font-weight:800;color:#8a909a}
.qw-item{position:relative;min-height:56px;padding:10px 12px 10px 30px;border-radius:12px;border:1px solid #d9dde5;background:#fff;font:inherit;font-size:14.5px;font-weight:700;text-align:left;line-height:1.3;cursor:pointer;color:#15171c}
.qw-item::before{content:"";position:absolute;left:12px;top:50%;width:9px;height:9px;margin-top:-4.5px;border-radius:50%;background:#1f8a4c}
.qw-item.bad{border-color:#e3071b;background:#fff1f2}.qw-item.bad::before{background:#e3071b}.qw-item.bad.mid::before{background:#f08c00}
.qw-item em{display:block;font-style:normal;font-size:12px;font-weight:700;color:#b3071a;margin-top:2px}
.qw-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:12.5px;color:#5b616d}
.qw-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:1px}
.qw-sheet{border:1px solid #15171c!important;display:grid;gap:10px}
/* ★ 2026-10-01 사장님 「사진 넣는 것이 어떨 때는 나타나고 어떨 때는 안 나타남」 —
   항목을 누르면 여는 칸을 화면 아래에 붙여(아래에서 올라오는 판) 어디를 누르든 늘 화면 안에 보이게 */
.qw-sheet{position:fixed!important;left:0;right:0;bottom:0;z-index:80;max-height:82vh;overflow:auto;margin:0!important;
  border-radius:18px 18px 0 0!important;box-shadow:0 -10px 30px rgba(0,0,0,.22);padding-bottom:calc(14px + env(safe-area-inset-bottom))!important;background:#fff}
@media (min-width:760px){.qw-sheet{left:50%;right:auto;width:640px;transform:translateX(-50%)}}
.qw-sheet .qw-shot{max-height:34vh;object-fit:contain}
.qw-sheet h4{margin:0;font-size:16px}.qw-sheet .n{margin:0}
.qw-law{margin:0;font-size:12.5px;color:#8a909a}
.qw-lv{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.qw-lv button,.qw-row button{min-height:48px;border-radius:10px;border:1px solid #d9dde5;background:#fff;font:inherit;font-size:14px;font-weight:800;cursor:pointer}
.qw-lv button[aria-pressed="true"],.qw-row button.main{background:#15171c;border-color:#15171c;color:#fff}
.qw-row{display:flex;gap:8px}.qw-row button{flex:1}
.qw-shot{width:100%;max-height:200px;object-fit:cover;border-radius:10px;margin-top:8px}
.qw-stamp{margin:4px 0 0;font-size:12.5px;color:#1f8a4c;font-weight:800}
.qw-cam{width:100%;min-height:50px;border-radius:12px;border:1px solid #d9dde5;background:#fff;font:inherit;font-size:15px;font-weight:800;cursor:pointer;margin-top:10px}
.qw-sum{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #e4e6ea;border-radius:12px;overflow:hidden;margin-top:10px}
.qw-sum div{padding:10px 4px;text-align:center}.qw-sum div+div{border-left:1px solid #e4e6ea}
.qw-sum b{display:block;font-size:22px}.qw-sum span{font-size:12.5px;color:#5b616d;font-weight:700}
/* ⑯ 2026-09-27 책자와 같은 이름 — 위험성평가 5단계 줄 · 책자 쪽 표시 */
.book5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin:0 0 8px}
.book5 button{min-height:52px;padding:6px 2px;border-radius:12px;border:1px solid #e4e6ea;background:#fff;font:inherit;font-size:13px;font-weight:800;color:#5b616d;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;line-height:1.2;text-align:center}/* 2026-09-29 12→13px 나이 드신 분 */
.book5 button b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#f3f4f6;font-size:12px;color:#5b616d}
.book5 button.on{border-color:#15171c;color:#15171c}.book5 button.on b{background:#15171c;color:#fff}
.book5 button.done b{background:#1f8a4c;color:#fff}
.book5-sub{display:flex;gap:6px;margin:0 0 8px;flex-wrap:wrap}
.book5-sub button{min-height:36px;padding:0 12px;border-radius:999px;border:1px solid #d9dde5;background:#fff;font:inherit;font-size:14px;font-weight:800;color:#5b616d;cursor:pointer}
.book5-sub button.on{background:#15171c;border-color:#15171c;color:#fff}.book5-sub button.done{color:#1f8a4c}
.bookref{display:block;margin:4px 0 0;font-size:12.5px;font-weight:700;color:#8a909a}
h3 .bookref{display:block;margin-top:2px}
.ra-fold>summary{min-height:48px;display:flex;align-items:center;font-weight:800;cursor:pointer}
.ra-fold .card{border:0!important;box-shadow:none!important;padding:10px 0!important;margin:0!important;background:transparent!important}
.ra-fold .orgrow-top{flex-wrap:wrap}
.book5 button{word-break:keep-all}
.qw-due{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.qw-due span{font-size:13px;font-weight:800;color:#5b616d;margin-right:2px}
.qw-due button{min-height:44px;padding:0 14px;border-radius:999px;border:1px solid #d9dde5;background:#fff;font:inherit;font-size:14px;font-weight:800;cursor:pointer}
.qw-due button[aria-pressed="true"]{background:#15171c;border-color:#15171c;color:#fff}

/* ★ 2026-10-01 상 · 중 · 하 딱지 — 현장점검에서 눈에 띄게 */
.qw-g{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 6px;margin-right:6px;border-radius:7px;font-size:15px;font-weight:900;color:#fff;vertical-align:middle;font-style:normal}
.qw-g.g-상{background:#e3071b}.qw-g.g-중{background:#f08c00}.qw-g.g-하{background:#1f8a4c}.qw-g.g-모름{background:#8a909a}
.qw-lv button{display:flex;align-items:center;justify-content:center;font-size:15px}
.qw-lv button[aria-pressed="true"] .qw-g{box-shadow:0 0 0 2px #fff}
.qw-item em .qw-g{min-width:22px;height:22px;font-size:13px;margin-right:5px}

/* ★ 2026-10-02 오늘 할 일 카드 · 위험성평가 확인만 (risk-assessment step 0 · 9) */
.cd-top{padding:14px 16px}
.cd-k{font-size:13px;color:#5b616d}
.cd-days{display:grid;grid-template-columns:repeat(21,1fr);gap:2px;margin-top:8px}
.cd-d{display:block;height:10px;border-radius:3px;background:#d9dde5;width:auto;min-width:0;padding:0;margin:0;box-shadow:none}
.cd-d.cd-past{background:#15171c}.cd-d.cd-today{background:#e3071b}.cd-d.cd-gap{margin-right:4px}
.cd-lab{display:flex;justify-content:space-between;font-size:11px;color:#8a909a;margin-top:4px}
.cd-now{border:2px solid #15171c!important;display:flex;flex-direction:column;gap:8px}
.cd-title{margin:0;font-size:21px;font-weight:900;line-height:1.35}
.cd-desc{margin:0;font-size:15px;color:#4a505b}
.cd-go{font-size:17px!important;min-height:56px!important;background:#e3071b!important;border-color:#e3071b!important;color:#fff!important}
.cd-when{display:flex;flex-wrap:wrap;gap:5px}
.cd-tag{display:inline-block;font-size:12px;font-weight:700;color:#4a505b;background:#f4f5f7;border:1px solid #d9dde5;border-radius:6px;padding:1px 7px;font-variant-numeric:tabular-nums}
.cd-tag.now{background:#e3071b;border-color:#e3071b;color:#fff}.cd-tag.ok{background:#e8f4ec;border-color:#1f8a4c;color:#1f8a4c}
.cd-list{display:flex;flex-direction:column;gap:6px}
.cd-item{display:flex;gap:10px;align-items:center;text-align:left;width:100%;background:#fff;border:1px solid #d9dde5;border-radius:12px;padding:10px 12px;font:inherit;cursor:pointer;color:inherit}
.cd-item .cd-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.cd-item b{font-size:15px}
.cd-ck{flex:none;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:13px;background:#f4f5f7;border:1px solid #d9dde5;color:#4a505b}
.cd-item.done{opacity:.6}.cd-item.done .cd-ck{background:#1f8a4c;border-color:#1f8a4c;color:#fff}
.cd-item.now{border:2px solid #15171c}.cd-item.now .cd-ck{background:#15171c;border-color:#15171c;color:#fff}
.cf-it{display:flex;flex-direction:column;gap:5px}
.cf-it.diff{border:2px solid #f08c00!important}
.cf-hz{margin:0;font-size:16px;font-weight:800}
.cf-sub{margin:0;font-size:13.5px;color:#4a505b}
.cf-sent{margin:0;font-size:13px;color:#b45309;font-weight:700}
.cf-seg{display:flex;gap:6px;margin-top:4px}
.cf-seg button{flex:1;min-height:44px;border:1px solid #d9dde5;background:#fff;border-radius:10px;font:inherit;font-weight:800;font-size:14px;cursor:pointer;color:#15171c}
.cf-seg button.on{background:#15171c;border-color:#15171c;color:#fff}
.cf-opts{display:flex;flex-direction:column;gap:6px}
.cf-opts button{text-align:left;min-height:48px;border:1px solid #d9dde5;background:#fff;border-radius:12px;font:inherit;font-weight:700;font-size:15px;padding:10px 12px;cursor:pointer;color:#15171c}

/* ── 전자서명 (2026-10-03) ── */
.sg-tog{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.sg-tog button,.sg-people button{border:1.5px solid #cfd6de;background:#fff;border-radius:10px;padding:9px 12px;font:inherit;font-weight:700;cursor:pointer}
.sg-tog button.on{border-color:#1f7a3a;background:#e8f5ec;color:#1f7a3a}
.sg-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:6px}
.sg-people button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 6px;min-height:76px}
.sg-people button img{max-width:100%;height:34px;object-fit:contain}
.sg-people button span{font-size:12px;color:#b4232a;font-weight:600;height:34px;line-height:34px}
.sg-people button.on{border-color:#1f7a3a}
.sg-wrap{position:fixed;inset:0;z-index:9000}
.sg-dim{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.sg-sheet{position:absolute;left:0;right:0;bottom:0;background:#fff;border-radius:16px 16px 0 0;padding:16px;max-width:720px;margin:0 auto}
.sg-sheet h4{margin:0 0 4px;font-size:18px}
.sg-n{margin:0 0 8px;color:#555;font-size:14px}
.sg-pad{display:block;width:100%;aspect-ratio:5/2;border:2px dashed #9aa5b1;border-radius:10px;background:#fff;touch-action:none;cursor:crosshair}
.sg-row{display:flex;gap:8px;margin-top:10px}
.sg-row>*{flex:1;text-align:center;border:1.5px solid #cfd6de;background:#fff;border-radius:10px;padding:12px;font:inherit;font-weight:700;cursor:pointer}
.sg-main{background:#1f4e8c!important;color:#fff;border-color:#1f4e8c!important}
.sg-msg{margin:8px 0 0;color:#b4232a;font-weight:700;min-height:1em}
.sigimg{max-height:34px;max-width:100%;object-fit:contain;display:block;margin:0 auto}

/* 카드 화면 시작일 (2026-10-03) */
.cd-start{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 2px;font-size:14px;font-weight:700}
.cd-start input{font:inherit;font-size:16px;padding:6px 8px;border:1px solid #cfd6de;border-radius:8px;background:#fff}
.cd-start em{font-style:normal;font-weight:500;color:#6b717c;font-size:13px}
.cd-moved{margin:6px 0 0;padding:8px 10px;background:#eef6f0;border-radius:8px;font-size:13px;line-height:1.55;color:#1f5a33}
