/* =============================================================================
   Apple-inspired 공통 테마 레이어 (2026-10-05) — 승인된 Apple 시안(design_preview/apple_home_v1)을 시스템 전체 화면에 입히는 '겉모양' 층
   - 범위: 화면만(@media screen). 인쇄·PDF·법정 A4 지정양식은 이 파일의 영향을 받지 않는다(인쇄 때는 app.css 원래 값·규칙 그대로).
   - 방법(기능·구조·아이디·동작은 그대로):
       ① 기존 색·모양 변수(--mint · --line · --ink · --radius …)를 화면에서만 Apple 토큰으로 다시 정의 → 모든 업무가 같은 강조색(파랑)·선·글자색
       ② 공통 부품(.btn · .field · .panel · .modal · .banner · .badge · .tbl · 뒤로가기 줄 · 하단 메뉴 · 로그인 화면)의 모서리·여백·글자 정돈
       ③ 화면에 그대로 보이는 인쇄 문서 미리보기(허가서·화재 서식·JSA·수시평가 출력 등)는 변수를 원래 값으로 되돌려 원본 모양 유지
       ④ 업무별 겉모양 정돈(메뉴 분류별 theme-apple-*.css) — 업무 고유 구조(Feed·Risk Register·달력·서명·결재·법정기록 탭)는 그대로
   - 토큰 원본: app.css :root --ap-* · --content-max. 머리글·통합 홈은 css/gnb.css · css/home-apple.css.
   - 2026-10-06 화면 기본 글꼴 = Pretendard(public/fonts/Pretendard/*.ttf — 프로젝트에 넣어 둔 파일, 외부 CDN·다운로드 없음).
     등록(@font-face)은 아래 한 곳, 적용은 화면 전용 토큰 --ap-font 한 곳. 인쇄·법정서식·출력물 미리보기는 기존 글꼴(맑은 고딕) 그대로.
     굵기는 실제로 쓰는 것만 브라우저가 필요할 때 받는다(미리 받기 없음). 로고는 이미지라 영향 없음.
   ========================================================================== */
@font-face{font-family:"Pretendard";font-style:normal;font-weight:100;font-display:swap;src:url("/fonts/Pretendard/Pretendard-Thin.ttf?v=20261006") format("truetype");}
@font-face{font-family:"Pretendard";font-style:normal;font-weight:200;font-display:swap;src:url("/fonts/Pretendard/Pretendard-ExtraLight.ttf?v=20261006") format("truetype");}
@font-face{font-family:"Pretendard";font-style:normal;font-weight:300;font-display:swap;src:url("/fonts/Pretendard/Pretendard-Light.ttf?v=20261006") format("truetype");}
@font-face{font-family:"Pretendard";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/Pretendard/Pretendard-Regular.ttf?v=20261006") format("truetype");}
@font-face{font-family:"Pretendard";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/Pretendard/Pretendard-Medium.ttf?v=20261006") format("truetype");}
@font-face{font-family:"Pretendard";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/Pretendard/Pretendard-SemiBold.ttf?v=20261006") format("truetype");}
@font-face{font-family:"Pretendard";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/Pretendard/Pretendard-Bold.ttf?v=20261006") format("truetype");}
@font-face{font-family:"Pretendard";font-style:normal;font-weight:800;font-display:swap;src:url("/fonts/Pretendard/Pretendard-ExtraBold.ttf?v=20261006") format("truetype");}
@font-face{font-family:"Pretendard";font-style:normal;font-weight:900;font-display:swap;src:url("/fonts/Pretendard/Pretendard-Black.ttf?v=20261006") format("truetype");}
@media screen {

/* ① 토큰(화면 전용 재정의) ------------------------------------------------- */
:root{
  --mint:#0071e3; --mint-ink:#0066cc; --mint-tint:#eef4fd;
  --line:#e3e3e8; --line-strong:#c7c7cc; --gray:#aeaeb2;
  --ink:#1d1d1f; --ink-2:#6e6e73;
  --surface-2:#f5f5f7;
  --radius:12px; --btn-h:48px; --field-h:48px;
  /* 화면 기본 글꼴(2026-10-06) — 인쇄 때는 이 블록이 꺼져 app.css 원래 글꼴 그대로 */
  --ap-font:"Pretendard",-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic","맑은 고딕","Segoe UI",sans-serif;   /* 글꼴 받는 동안·Pretendard 에 없는 기호(✕ ☰ 한자)는 예전과 같은 글꼴로 */
}
/* ③ 인쇄 문서 미리보기(화면에 그대로 보이는 출력물) — 원래 변수값으로 되돌려 원본 서식 그대로 */
.wp-doc,#printDoc,.ff-sheet,#fireSheet,.fire-sheet-scroll,.dinsp-print,.jsa-print,.radhoc-print-wrap,.radhoc-print-head,.radhoc-print-body,.radhoc-print-sec,.radhoc-print-case,
.tbm-print-wrap,.lp-doc,#lpPrintRoot,#ffaPrint{
  --mint:#41A8AB; --mint-ink:#1F6D6F; --mint-tint:#EAF4F4; --line:#DADCDC; --line-strong:#B1B1B1; --gray:#B1B1B1;
  --ink:#000000; --ink-2:#565656; --surface-2:#F4F5F5; --radius:8px; --btn-h:52px; --field-h:50px;
}
/* 바깥(body)에서 물려받는 글자색·글꼴만 원래대로 — :where() 로 우선순위 0 → 문서 자체 규칙(예: .dinsp-print 글자색)이 그대로 이긴다 */
:where(.wp-doc,#printDoc,.ff-sheet,#fireSheet,.fire-sheet-scroll,.dinsp-print,.jsa-print,.radhoc-print-wrap,.tbm-print-wrap,.lp-doc,#lpPrintRoot,#ffaPrint){
  color:#000000; font-family:"Malgun Gothic","맑은 고딕",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}

/* ② 기본 ------------------------------------------------------------------- */
body{font-family:var(--ap-font);}
/* 입력칸·버튼·선택 상자도 브라우저 기본 글꼴(Arial 등) 대신 화면 글꼴을 물려받는다 — 글꼴 종류만(크기·굵기는 그대로). :where() 로 우선순위 0 → 따로 정한 글꼴(고정폭 코드 등)이 그대로 이긴다 */
:where(button,input,select,textarea,optgroup){font-family:inherit;}
/* 줄 높이를 따로 정하지 않은(브라우저 기본 'normal') 버튼·여러 줄 입력칸 — Pretendard 의 normal(약 1.19)이 맑은 고딕(약 1.33)보다 낮아
   버튼 높이가 줄어드는 것을 막는다(예전 높이 유지). 표 칸 숫자는 예전 맑은 고딕처럼 같은 폭(열 맞춤 유지). 모두 우선순위 0 */
:where(button,textarea){line-height:1.35;}
:where(td,th){font-variant-numeric:tabular-nums;}
/* 출력물 감싸개 안의 화면 전용 버튼·안내(.no-print — 인쇄 때는 숨음)는 화면 글꼴로 */
:where(.radhoc-print-wrap,.tbm-print-wrap,.jsa-print,.dinsp-print,.wp-doc,#printDoc,.lp-doc) .no-print{font-family:var(--ap-font);}
input[type="checkbox"],input[type="radio"]{accent-color:var(--ap-blue);}

/* 버튼 — 파란 알약(주요) · 흰 알약(보조) · 눌렀을 때 살짝 작아짐 */
.btn{border-radius:var(--ap-pill);font-weight:600;letter-spacing:-.01em;transition:background-color .15s,border-color .15s,transform .1s;}
.btn:active:not(:disabled){transform:scale(.98);}
.btn-primary{background:var(--ap-blue);border-color:var(--ap-blue);color:#fff;}
.btn-primary:active{background:#0058b0;border-color:#0058b0;}
.btn-secondary,.btn-ghost{background:#fff;color:var(--ap-ink);border-color:var(--ap-hair);}
@media (hover:hover){
  .btn-primary:not(:disabled):hover{background:#0077ed;border-color:#0077ed;}
  .btn-secondary:not(:disabled):hover,.btn-ghost:not(:disabled):hover{background:var(--ap-parch);}
}
.btn-danger{background:#fff;}
.btn:disabled{background:var(--ap-parch);color:#aeaeb2;border-color:var(--ap-hair-soft);transform:none;}
.btn:focus-visible{outline:2px solid var(--ap-blue-focus);outline-offset:2px;}
.btn-sm{min-height:36px;padding:6px 14px;}
/* 강조색(파랑) 바탕 위 글자는 흰색 — 예전 민트 바탕 + 검정 글자였던 곳 */
.fbtn.on,.wp-stepbtn.on,.rr-wsteps li.on,.rr-lg-steps li.on,.ffa-done-i,.sfe-top .done,.ev-md.today .ev-mdn,.ne-d.today .ne-dn{color:#fff !important;}

/* 입력칸 — 둥근 모서리 · 옅은 테두리 · 파란 초점 링 */
.field>label{font-weight:600;color:var(--ap-ink-80);}
.field input:where(:not([type="checkbox"]):not([type="radio"])),.field select,.field textarea{border-color:var(--ap-hair);border-radius:var(--ap-r-md);transition:border-color .15s,box-shadow .15s;}
.field input:where(:not([type="checkbox"]):not([type="radio"])):focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--ap-blue-focus);box-shadow:0 0 0 3px rgba(0,113,227,.18);}

/* 패널(카드) — 18px 모서리 · 옅은 테두리 · 그림자 없음 */
.panel{border-radius:var(--ap-r-lg);border-color:var(--line);padding:18px 20px;}
.panel>h2{font-size:17px;font-weight:600;letter-spacing:-.01em;}

/* 안내 띠 */
.banner{border-radius:var(--ap-r-md);font-weight:600;}
.banner.ok,.banner.review,.banner.info{border-color:#cfe1fb;}

/* 배지·상태 칩 — 알약 모양 */
.badge{border-radius:var(--ap-pill);border-color:var(--line);font-weight:600;}
.chip{border-radius:var(--ap-pill);font-weight:600;}

/* 표(공통 .tbl) — 머리줄 옅은 회색 · 행 구분선만 */
.tbl th{background:var(--ap-parch);color:var(--ap-ink-60);font-weight:600;}

/* 모달 */
.modal-wrap{background:rgba(0,0,0,.34);}
.modal{border:0;border-radius:var(--ap-r-lg);box-shadow:0 24px 64px rgba(0,0,0,.18);padding:22px;}
.modal-title{font-size:18px;font-weight:600;letter-spacing:-.01em;}
.modal .modal-close-x{border-radius:50%;}

/* 업무 화면 머리글 아래 [← 뒤로가기] 줄 */
#appHeader .btn-back{min-height:40px;min-width:0;padding:6px 16px;border:1px solid var(--ap-hair);border-radius:var(--ap-pill);color:var(--ap-ink);background:#fff;font-size:15px;font-weight:600;}
#appHeader .btn-back:active{background:var(--ap-parch);}
#appHeader .btn-back:focus-visible{outline:2px solid var(--ap-blue-focus);outline-offset:2px;}
#appHeader .btn-back.is-home{border-color:var(--ap-hair);font-weight:600;}
.hd-crumb .cbtn{color:var(--ap-blue);font-weight:400;}
.hd-crumb .ccur{font-weight:600;color:var(--ap-ink);}
.shs-draft-note{border-color:#cfe1fb;border-radius:var(--ap-r-md);}

/* 업무별 하단 메뉴(있는 업무만) — 반투명 흰 바탕 · 지금 메뉴는 파란 글자 */
#bottomNav{background:rgba(255,255,255,.92);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-top:1px solid var(--ap-hair-soft);}
#bottomNav button.active{color:var(--ap-blue);border-top-color:transparent;font-weight:600;}

/* 빈 화면·준비 중 */
.empty{color:var(--ap-ink-60);}
.coming h2{font-weight:600;}

/* 로그인 화면 — 공동 브랜드(DaehanSteel | YKSteel) · 밝은 회색 바탕 + 흰 카드 · 파란 알약 버튼(로그인 동작·form 은 그대로) */
.gate{background:var(--ap-parch);align-items:center;padding:48px 16px calc(48px + env(safe-area-inset-bottom));}
.gate-card{max-width:400px;border:0;border-radius:var(--ap-r-xl);padding:36px 32px 28px;box-shadow:0 12px 40px rgba(0,0,0,.06);}
.gate .brand{gap:12px;margin-bottom:28px;}
.gate .brand-logos{display:inline-flex;align-items:center;gap:13px;}
.gate .brand-lg{display:block;height:22px;width:auto;flex:0 0 auto;}
.gate .brand-sep{display:block;flex:0 0 auto;width:1px;height:22px;background:var(--ap-ink);opacity:.28;}
.gate .brand-sys{font-size:15px;font-weight:600;color:var(--ap-ink-60);letter-spacing:.02em;}
.gate-title{margin:0 0 18px;font-size:24px;font-weight:600;letter-spacing:-.01em;text-align:center;}
.gate-desc{color:var(--ap-ink-60);}
.gate .btn-primary{min-height:50px;font-size:17px;margin-top:6px;}
.gate-note{margin-top:18px;color:var(--ap-ink-60);}
.gate .login-opts label.opt{font-size:15px;}
@media (max-width:420px){
  .gate{align-items:flex-start;padding-top:32px;}
  .gate-card{padding:28px 20px 22px;border-radius:var(--ap-r-lg);}
  .gate .brand-lg{height:18px;}
  .gate .brand-sep{height:18px;}
  .gate .brand-logos{gap:10px;}
}

/* ④ 업무별 겉모양 정돈 — 메뉴 분류별 파일(이 파일 다음에 읽음):
   theme-apple-field.css(현장관리) · theme-apple-risk.css(위험성평가) · theme-apple-improve.css(개선활동)
   theme-apple-comm.css(정보·소통) · theme-apple-admin.css(관리) */

}
