
*{box-sizing:border-box}
body{margin:0;background:#f2f4f7;color:#172033;font-family:-apple-system,BlinkMacSystemFont,"Malgun Gothic","Noto Sans KR",Arial,sans-serif;word-break:keep-all;overflow-wrap:break-word;line-break:auto}
.shell{max-width:1280px;margin:auto;min-height:100vh}
.mobile{max-width:580px;margin:auto;background:#f8f9fb;min-height:100vh}
.top{background:#fff;padding:18px 20px;border-bottom:1px solid #e7ebf0;position:sticky;top:0;z-index:5}
.brand{font-size:12px;letter-spacing:.7px;color:#6f7a89}
.title{font-size:23px;font-weight:900}
.who{font-size:12px;color:#697485;margin-top:5px}
.main{padding:16px 16px 104px}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}
.wide{grid-column:1/-1}
.card,.box,.item{background:#fff;border:1px solid #e4e8ed;border-radius:16px;padding:15px;box-shadow:0 2px 12px #00000007}
.card.click,.item.click{cursor:pointer}
.item{margin-bottom:9px}
.num{font-size:27px;font-weight:900}
.muted{font-size:12.5px;color:#737e8d;line-height:1.55}
.small{font-size:11px;color:#7d8795}
/* v7.17.1 - 사용자 입력 문장의 띄어쓰기/문단/줄바꿈 보존 */
.preserveText{
  white-space:pre-wrap;
  word-break:keep-all;
  overflow-wrap:break-word;
  line-break:auto;
  line-height:1.72;
}

.section{font-size:16px;font-weight:900;margin:20px 2px 10px}
.row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.btn{border:0;border-radius:11px;padding:11px 13px;background:#111827;color:#fff;font-weight:800;cursor:pointer}
.btn.alt{background:#e9edf2;color:#263142}
.btn.red{background:#b42318}
.btn.green{background:#176a44}
.btn.full{width:100%}
.btn.sm{padding:7px 9px;font-size:12px}
input,select,textarea{width:100%;padding:10px 11px;border:1px solid #d8dee6;border-radius:10px;background:#fff;font-size:14px}
textarea{min-height:76px}
.form{display:grid;gap:10px}
.label{font-size:12px;font-weight:800;margin-bottom:4px}
.badge{padding:5px 8px;border-radius:99px;font-size:11px;font-weight:900;background:#edf0f3}
.ok{background:#e8f6ec;color:#176a44}
.bad{background:#fde9e9;color:#a21f1f}
.warn{background:#fff0df;color:#944900}
.bottom{
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  max-width:580px;
  margin:auto;
  background:linear-gradient(135deg,#003da6 0%,#075ccf 58%,#064aa9 100%);
  border-top:1px solid rgba(255,255,255,.22);
  display:flex;
  justify-content:space-around;
  gap:4px;
  padding:7px 6px calc(7px + env(safe-area-inset-bottom));
  box-shadow:0 -8px 24px rgba(0,49,125,.24);
  z-index:10;
}
.bottom .quickNavBtn{
  flex:1 1 0;
  min-width:0;
  min-height:59px;
  border:0;
  border-radius:13px;
  background:transparent;
  color:#fff;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  padding:5px 2px;
  cursor:pointer;
  font-family:inherit;
  -webkit-tap-highlight-color:transparent;
}
.bottom .quickNavIcon{
  display:block;
  font-size:25px;
  line-height:1;
  font-weight:900;
  color:#fff;
  text-shadow:0 1px 2px rgba(0,0,0,.18);
}
.bottom .quickNavText{
  display:block;
  font-size:13px;
  line-height:1.15;
  font-weight:900;
  letter-spacing:-.15px;
  color:#fff;
  white-space:nowrap;
}
.bottom .quickNavBtn.active{
  background:rgba(255,255,255,.20);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);
}
.bottom .quickNavBtn:active{
  background:rgba(255,255,255,.28);
  transform:translateY(1px);
}
.login{max-width:430px;margin:60px auto;padding:20px}
.logo{font-size:34px;font-weight:950}
.loginbox{margin-top:20px;background:#fff;border-radius:20px;padding:22px;box-shadow:0 12px 35px #00000012}
.admin{padding:20px}
.adminGrid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}
.tabs button{border-radius:10px;padding:10px 13px;font-weight:800;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease,transform .08s ease,box-shadow .16s ease}
.adminMenu{padding:12px;background:#e9eef5;border:1px solid #d7dee8;border-radius:14px}
.adminMenuBtn{background:#dfe9f5;color:#17324d;border:1px solid #bfd0e2;box-shadow:0 1px 2px rgba(17,32,51,.05)}
.adminMenuBtn:hover{background:#cbdcf0;border-color:#9eb9d5;transform:translateY(-1px)}
.adminMenuBtn.active{background:#173b63;color:#fff;border-color:#173b63;box-shadow:0 3px 8px rgba(23,59,99,.22)}
.adminMenuBtn.safety{background:#dfeee7;color:#194c39;border-color:#b9d8c9}
.adminMenuBtn.safety:hover{background:#cce5d8;border-color:#98c6ae}
.adminMenuBtn.safety.active{background:#216548;color:#fff;border-color:#216548}
.adminMenuBtn.record{background:#eee9da;color:#514423;border-color:#d8cca7}
.adminMenuBtn.record:hover{background:#e3dbc1;border-color:#c6b785}
.adminMenuBtn.record.active{background:#6a5b2f;color:#fff;border-color:#6a5b2f}
.adminMenuBtn.alert{background:#f4e2df;color:#6b2f2a;border-color:#e3bbb5}
.adminMenuBtn.alert:hover{background:#edd1cc;border-color:#d79e95}
.adminMenuBtn.alert.active{background:#8a3d35;color:#fff;border-color:#8a3d35}
.adminMenuBtn.utility{background:#e7e9ed;color:#354052;border-color:#cbd0d8}
.adminMenuBtn.utility:hover{background:#d9dde3;border-color:#b6bdc7}
.adminMenuBtn:focus-visible{outline:3px solid #8fb4dd;outline-offset:2px}
.tablewrap{overflow:auto;background:#fff;border-radius:14px;border:1px solid #e5e9ee}
.table{width:100%;border-collapse:collapse;min-width:900px}
.table th,.table td{text-align:left;padding:9px;border-bottom:1px solid #edf0f3;font-size:12px;vertical-align:top}
.thumb{width:70px;height:55px;object-fit:cover;border-radius:7px;border:1px solid #ddd}
.qrthumb{width:76px;height:76px}
.dangerline{border-left:5px solid #b42318}
.warnline{border-left:5px solid #c36a00}
/* v7.17.6 - 관리감독자/사원 미확인·미완료 공통 표시 */
.pendingline{
  border-left:6px solid #d92d20 !important;
  box-shadow:-1px 0 0 rgba(217,45,32,.08),0 2px 12px #00000007;
}
.pendingLegend{
  display:flex;
  align-items:center;
  gap:8px;
  margin:8px 0 12px;
  padding:9px 11px;
  background:#fff7f6;
  border-radius:10px;
  font-size:11.5px;
  color:#7a271a;
}
.pendingLegend::before{
  content:"";
  width:5px;
  align-self:stretch;
  min-height:22px;
  background:#d92d20;
  border-radius:4px;
}

.panel2{display:grid;grid-template-columns:380px 1fr;gap:12px;align-items:start}
.stickybox{position:sticky;top:90px}
.notice{background:#eef4ff;border-radius:12px;padding:12px;font-size:12px;line-height:1.55}
.lan{background:#eef8f2;border-radius:12px;padding:12px;font-size:13px}
.hr{height:1px;background:#edf0f3;margin:12px 0}
@media(max-width:950px){
 .adminGrid{grid-template-columns:repeat(3,1fr)}
 .panel2{grid-template-columns:1fr}
 .stickybox{position:static}
}
@media(max-width:600px){
 .adminGrid{grid-template-columns:repeat(2,1fr)}
 .admin{padding:12px}
}

.signature{width:100%;height:150px;background:#fff;border:2px dashed #b9c1cc;border-radius:12px;touch-action:none;display:block}
.checks{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.checks label,.confirmline{display:flex;align-items:center;gap:7px;padding:10px;background:#f6f7f9;border-radius:9px;font-size:13px}
.checks input,.confirmline input{width:auto}
.adminGrid{grid-template-columns:repeat(3,1fr)}
@media(min-width:1100px){.adminGrid{grid-template-columns:repeat(9,1fr)}}

.videoWrap{position:relative;width:100%;aspect-ratio:16/9;background:#111;border-radius:12px;overflow:hidden;margin-top:10px}
.videoWrap iframe,.videoWrap>div{width:100%;height:100%}
button:disabled{opacity:.45;cursor:not-allowed}

.modalOverlay{position:fixed;inset:0;background:#0008;display:flex;align-items:center;justify-content:center;padding:18px;z-index:9999}
.modalCard{width:min(520px,100%);max-height:86vh;overflow:auto;background:#fff;border-radius:20px;padding:18px;box-shadow:0 18px 70px #0005}
.alertList{display:grid;gap:8px;margin-top:10px}
.alertEq{border:1px solid #e4e8ed;border-radius:12px;padding:11px;background:#fafbfc}

.leaderTbmAction{margin-top:10px;padding:14px;border-radius:14px;background:#fff3df;border:1px solid #f0c98b}
.leaderTbmAction.done{background:#eaf7ef;border-color:#abd7bd}

.tbmHero{padding:18px;border-radius:18px;background:#fff;border:1px solid #dfe5ec;margin-bottom:12px}
.tbmHero.leader{background:#eef5ff;border-color:#b9cff3}
.tbmHero h2{font-size:19px;line-height:1.45;margin:5px 0 8px}
.leaderScript{background:#132238;color:#fff;border-radius:16px;padding:17px;margin-bottom:12px}
.scriptLabel{font-size:11px;font-weight:900;letter-spacing:.8px;opacity:.75;margin-bottom:7px}
.scriptText{font-size:17px;line-height:1.65}
.tbmStep{display:flex;gap:11px;background:#fff;border:1px solid #e1e6ec;border-radius:16px;padding:14px;margin-bottom:11px}
.stepNo{width:34px;height:34px;flex:0 0 34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#172033;color:#fff;font-weight:900}
.stepBody{min-width:0;flex:1}
.stepTitle{font-size:16px;font-weight:900;margin:5px 0 8px}
.readAloud{background:#eef4ff;border-left:4px solid #446da8;padding:11px;border-radius:8px;font-size:14px;line-height:1.6;margin-bottom:9px}
.dangerRead{background:#fff0ee;border-left-color:#b42318}
.workBox,.hazardBox,.controlBox{padding:12px;border-radius:10px;line-height:1.65;margin-bottom:10px;white-space:pre-wrap;word-break:keep-all;overflow-wrap:break-word;line-break:auto}
.workBox{background:#f3f5f7}.hazardBox{background:#fff0ee}.controlBox{background:#edf8f1}
.question{font-weight:900;line-height:1.5;margin:10px 0 8px}
.yesNo{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.yn{padding:12px;border-radius:11px;border:2px solid #dfe4ea;background:#fff;font-weight:900;font-size:14px;cursor:pointer}
.yn.yes.selected{background:#e8f6ec;border-color:#3a9965;color:#176a44}
.yn.no.selected{background:#fde9e9;border-color:#c85959;color:#a21f1f}
.tbmNoWarning{background:#fff0ee;border:1px solid #edb1aa;color:#8b1e16;border-radius:14px;padding:13px;line-height:1.55;margin:12px 0}
.chantCard{background:#172033;color:#fff;border-radius:20px;padding:20px;text-align:center;margin-top:15px}
.chantGuide{font-size:14px;line-height:1.65;opacity:.9}
.chantMain{font-size:32px;line-height:1.25;font-weight:950;letter-spacing:-1px;margin:18px 0}
.chantMain span{font-size:42px}
.chantConfirm{display:flex;align-items:center;justify-content:center;gap:8px;background:#ffffff16;padding:12px;border-radius:10px;font-size:13px}
.chantConfirm input{width:auto}
@media(max-width:480px){.tbmStep{padding:12px;gap:8px}.stepNo{width:30px;height:30px;flex-basis:30px}.chantMain{font-size:27px}.chantMain span{font-size:36px}}

.tbmFilterBox{margin-top:12px;background:#fff;border:1px solid #dfe5ec;border-radius:16px;padding:14px}
.tbmQuickPeriods{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}
.periodBtn{border:1px solid #d7dde5;background:#f8f9fb;border-radius:999px;padding:8px 14px;font-weight:800;cursor:pointer}
.periodBtn.active{background:#172033;color:#fff;border-color:#172033}
.tbmFilterGrid{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:end}
.tbmSearchActions{display:flex;gap:6px;align-items:end}
.tbmPeriodTitle{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-top:16px;padding:15px;background:#f7f9fc;border-radius:14px;border:1px solid #e2e7ed}
.tbmPeriodTitle h3{margin:3px 0;font-size:20px}
.tbmStatCards{margin-top:10px}
.miniProgress{width:110px;max-width:100%;height:7px;border-radius:99px;background:#e7ebef;overflow:hidden;margin-bottom:4px}
.miniProgress span{display:block;height:100%;background:currentColor;border-radius:99px}
.tbmTrend{display:grid;gap:7px;background:#fff;border:1px solid #e2e7ed;border-radius:14px;padding:12px}
.trendRow{display:grid;grid-template-columns:92px minmax(120px,1fr) minmax(170px,auto);gap:9px;align-items:center;font-size:12px}
.trendDate{font-weight:800}
.trendBarWrap{height:9px;background:#e9edf2;border-radius:99px;overflow:hidden}
.trendBar{height:100%;background:currentColor;border-radius:99px;min-width:7px}
.trendValue{text-align:right;color:#596474}
@media(max-width:850px){
  .tbmFilterGrid{grid-template-columns:1fr 1fr}
  .tbmSearchActions{grid-column:1/-1}
}
@media(max-width:560px){
  .tbmFilterGrid{grid-template-columns:1fr}
  .tbmSearchActions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr 1fr}
  .trendRow{grid-template-columns:78px 1fr}
  .trendValue{grid-column:1/-1;text-align:left;padding-left:87px}
}

.safetyRewardNotice{
  display:flex;gap:12px;align-items:flex-start;
  background:#fff8e7;border:1px solid #ead39a;border-radius:16px;
  padding:14px;margin-bottom:12px;line-height:1.55
}
.rewardIcon{
  flex:0 0 34px;width:34px;height:34px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:#172033;color:#fff;font-size:17px;font-weight:900
}
.safetyRewardNotice b{font-size:15px}
.rewardText{font-size:13px;color:#596474;margin-top:5px}
.rewardText b{color:#8a5c00}

.reportFilterBox{margin-top:12px;background:#fff;border:1px solid #dfe5ec;border-radius:16px;padding:14px}
.reportQuickPeriods{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}
.reportPeriodBtn{border:1px solid #d7dde5;background:#f8f9fb;border-radius:999px;padding:8px 15px;font-weight:850;cursor:pointer}
.reportPeriodBtn.active{background:#172033;color:#fff;border-color:#172033}
.reportFilterGrid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto;gap:10px;align-items:end}
.reportSearchActions{display:flex;gap:6px}
.reportPeriodTitle{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-top:16px;padding:15px;background:#f7f9fc;border:1px solid #e2e7ed;border-radius:14px}
.reportPeriodTitle h3{margin:3px 0;font-size:20px}
.reportStatCards{margin-top:10px}
.reportCharts{display:grid;grid-template-columns:1fr 1.25fr;gap:12px;margin-top:14px}
.reportChartCard{background:#fff;border:1px solid #e1e6ec;border-radius:16px;padding:14px}
.hBarChart{display:grid;gap:11px}
.hBarRow{display:grid;grid-template-columns:88px minmax(120px,1fr) 88px;gap:9px;align-items:center}
.hBarLabel{font-size:12px;font-weight:800}
.hBarTrack{height:13px;background:#e9edf2;border-radius:99px;overflow:hidden}
.hBarFill{height:100%;background:currentColor;border-radius:99px;min-width:0}
.hBarValue{text-align:right;font-size:12px;font-weight:800}
.hBarValue span{color:#7b8490;font-weight:500}
.verticalChart{height:210px;display:flex;align-items:flex-end;gap:5px;border-bottom:1px solid #dfe4e9;padding:20px 4px 0;overflow-x:auto}
.vCol{min-width:34px;flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.vValue{font-size:10px;font-weight:800;margin-bottom:3px}
.vBarArea{height:145px;width:70%;display:flex;gap:2px;align-items:flex-end;justify-content:center}
.vBar{width:45%;min-height:0;border-radius:5px 5px 0 0}
.proactiveBar{background:#53647c}
.accidentBar{background:#b5473d}
.vLabel{font-size:9px;white-space:nowrap;transform:rotate(-35deg);transform-origin:center;margin-top:13px;max-width:70px}
.chartLegend{display:flex;gap:14px;justify-content:flex-end;font-size:11px;color:#66717d;margin-top:18px}
.chartLegend span:first-child{color:#53647c}
.chartLegend span:last-child{color:#b5473d}
.rewardMetricNote{background:#fff8e7;border:1px solid #ead39a;border-radius:12px;padding:11px;font-size:12px;line-height:1.55;margin-bottom:12px}
.employeeBars{display:grid;gap:8px}
.employeeBarRow{display:grid;grid-template-columns:28px 160px minmax(130px,1fr) 50px;gap:9px;align-items:center}
.empRank{width:26px;height:26px;border-radius:50%;background:#172033;color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900}
.empName{display:flex;flex-direction:column;font-size:12px}
.empName span{font-size:10px;color:#7a8490;margin-top:2px}
.empTrack{height:11px;background:#e9edf2;border-radius:99px;overflow:hidden}
.empFill{height:100%;background:currentColor;border-radius:99px}
.empValue{text-align:right;font-size:12px}
.proactiveNum{font-size:16px}
.awardCaution{margin-top:8px;padding:9px 11px;background:#f7f8fa;border-radius:10px;line-height:1.5}
@media(max-width:1050px){
  .reportFilterGrid{grid-template-columns:1fr 1fr}
  .reportSearchActions{grid-column:1/-1}
  .reportCharts{grid-template-columns:1fr}
}
@media(max-width:650px){
  .reportFilterGrid{grid-template-columns:1fr}
  .reportSearchActions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr 1fr}
  .hBarRow{grid-template-columns:76px 1fr 64px}
  .employeeBarRow{grid-template-columns:28px 110px 1fr 42px}
  .verticalChart{height:190px}
}

.fileCount{
  font-size:12px;font-weight:800;margin-top:7px;color:#5f6a76
}
.inspectionPreview{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;margin-top:8px
}
.inspectionPreviewItem{
  position:relative;aspect-ratio:1/1;border-radius:10px;overflow:hidden;
  background:#eef1f4;border:1px solid #dfe4e9
}
.inspectionPreviewItem img{
  width:100%;height:100%;object-fit:cover;display:block
}
.inspectionPreviewItem span,
.attachGallery a span{
  position:absolute;right:4px;bottom:4px;min-width:21px;height:21px;
  padding:0 5px;border-radius:99px;background:#172033;color:#fff;
  font-size:10px;font-weight:900;display:flex;align-items:center;justify-content:center
}
.attachGallery{
  display:grid;grid-template-columns:repeat(3,46px);gap:4px;min-width:146px
}
.attachGallery a{
  position:relative;width:46px;height:46px;border-radius:7px;
  overflow:hidden;display:block;border:1px solid #dfe4e9
}
.attachGallery img{
  width:100%;height:100%;object-fit:cover;display:block
}
.attachGallery a span{
  right:2px;bottom:2px;min-width:16px;height:16px;font-size:8px;padding:0 3px
}

.hazardHelpNotice{
  background:#f3f7fb;
  border:1px solid #d8e2ed;
  border-radius:12px;
  padding:11px 12px;
  margin-bottom:9px;
  line-height:1.5
}
.hazardHelpNotice b{font-size:13px}
.hazardGuideGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-bottom:9px
}
.hazardGuideCard{
  text-align:left;
  min-height:118px;
  padding:11px;
  background:#fff;
  border:2px solid #e1e6ec;
  border-radius:12px;
  cursor:pointer;
  color:inherit;
  transition:.12s ease
}
.hazardGuideCard:hover{border-color:#aab7c6}
.hazardGuideCard.selected{
  border-color:#245f48;
  background:#edf8f2;
  box-shadow:0 0 0 1px #245f4830 inset
}
.hazardGuideTop{
  display:flex;
  align-items:center;
  gap:7px;
  margin-bottom:6px;
  font-size:13px
}
.hazardIcon{
  width:28px;
  height:28px;
  flex:0 0 28px;
  border-radius:8px;
  background:#172033;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900
}
.hazardGuideCard.selected .hazardIcon{background:#245f48}
.hazardGuideDesc{
  font-size:11px;
  line-height:1.45;
  color:#53606d
}
.hazardGuideExample{
  margin-top:6px;
  padding-top:6px;
  border-top:1px dashed #dfe4e9;
  font-size:10px;
  line-height:1.4;
  color:#7a8490
}
.hazardTextarea{min-height:150px}
@media(max-width:760px){
  .hazardGuideGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:420px){
  .hazardGuideGrid{grid-template-columns:1fr 1fr;gap:6px}
  .hazardGuideCard{min-height:124px;padding:9px}
  .hazardGuideTop{font-size:12px}
}

.tbmControlChooser{margin-top:4px}
.controlHelpNotice{
  background:#f7f8fa;border:1px solid #dfe4e9;border-radius:12px;
  padding:11px 12px;margin-bottom:9px;line-height:1.5
}
.controlHelpNotice b{font-size:13px}
.controlEmpty{
  border:1px dashed #cbd3dc;border-radius:12px;padding:18px;
  text-align:center;color:#73808d;background:#fafbfc
}
.controlGroup{
  border:1px solid #dfe5eb;border-radius:14px;padding:11px;
  background:#fff;margin-bottom:10px
}
.controlGroupTitle{
  display:flex;align-items:center;gap:7px;margin-bottom:8px;font-size:13px
}
.smallIcon{width:25px;height:25px;flex-basis:25px;font-size:12px}
.controlOptionGrid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.controlOptionCard{
  position:relative;text-align:left;padding:10px 10px 10px 36px;min-height:66px;
  border:2px solid #e2e6eb;border-radius:11px;background:#fff;color:inherit;
  font-size:11px;line-height:1.45;cursor:pointer
}
.controlOptionCard.selected{
  border-color:#245f48;background:#edf8f2
}
.controlCheck{
  position:absolute;left:9px;top:10px;width:20px;height:20px;border-radius:50%;
  background:#e9edf1;color:#586573;display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:900
}
.controlOptionCard.selected .controlCheck{background:#245f48;color:#fff}
.controlTextarea{min-height:180px}

.safetyLineList{margin:0;padding-left:20px}
.safetyLineList li{margin:5px 0;line-height:1.5}

@media(max-width:650px){
  .controlOptionGrid{grid-template-columns:1fr}
}

.controlMasterTitle{
  width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;
  border:0;background:#172033;color:#fff;border-radius:12px;padding:12px 14px;
  margin-bottom:8px;cursor:pointer;text-align:left
}
.controlMasterTitle span{font-weight:900;font-size:14px}
.controlMasterTitle small{font-size:10px;line-height:1.45;color:#d6dde5}
.controlMasterTitle:active{transform:translateY(1px)}

.controlPagerTitle{
  width:100%;border:0;background:#f5f7fa;border-radius:10px;padding:9px 10px;
  cursor:pointer;text-align:left;display:flex;align-items:center;gap:8px;
  margin-bottom:8px;color:inherit
}
.controlPagerTitle:disabled{cursor:default}
.controlPagerTitle:not(:disabled):hover{background:#edf3f8}
.controlTitleText{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.controlTitleText b{font-size:13px}
.controlTitleText small{font-size:10px;color:#6c7784;font-weight:600;line-height:1.35}
.controlNextArrow{font-size:25px;font-weight:400;color:#536474;line-height:1}
.controlPagerTitle:not(:disabled) .controlNextArrow{animation:controlArrowHint 1.8s ease-in-out infinite}
@keyframes controlArrowHint{
  0%,100%{transform:translateX(0)}
  50%{transform:translateX(3px)}
}

#deptTbmHazards,
#deptTbmControls{
  line-height:1.85;
  font-size:13px;
}

.safetyNumberedList{
  margin:0;
  padding-left:25px;
}

.safetyNumberedList li{
  margin:7px 0;
  padding-left:3px;
  line-height:1.6;
}

.logoutBtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:5px 11px;
  margin-left:6px;
  border:1px solid #cfd6de;
  border-radius:8px;
  background:#ffffff;
  color:#172033;
  font-size:11px;
  font-weight:800;
  line-height:1;
  cursor:pointer;
  box-shadow:0 1px 2px rgba(0,0,0,.04);
  vertical-align:middle;
}
.logoutBtn:hover{
  background:#f3f5f7;
  border-color:#aeb8c3;
}
.logoutBtn:active{
  transform:translateY(1px);
}
@media(max-width:480px){
  .logoutBtn{
    min-height:32px;
    padding:6px 10px;
    font-size:11px;
  }
}

@media(max-width:600px){
  .adminMenu{gap:7px;padding:9px}
  .adminMenuBtn{flex:1 1 calc(50% - 7px);min-height:42px;padding:10px 8px;font-size:12px}
}

.passwordBtn{
  display:inline-flex;align-items:center;justify-content:center;min-height:30px;
  padding:5px 10px;margin-left:6px;border:1px solid #9fb6cf;border-radius:8px;
  background:#e9f1fa;color:#173b63;font-size:11px;font-weight:850;cursor:pointer;vertical-align:middle
}
.passwordBtn:hover{background:#d8e8f8;border-color:#7f9fbe}
.loginHelpRow{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.loginHelpBtn{border:1px solid #cdd6df;border-radius:10px;padding:10px;background:#f5f7f9;color:#354052;font-weight:850;cursor:pointer}
.loginHelpBtn.active{background:#173b63;color:#fff;border-color:#173b63}
.recoveryBox{margin-top:12px;border:1px solid #dbe3ec}
.recoveryResult{margin-top:10px;padding:11px;border-radius:10px;font-size:13px;line-height:1.55}
.okResult{background:#eaf7ef;color:#176a44;border:1px solid #b7dbc6}
.badResult{background:#fff0ee;color:#8b1e16;border:1px solid #edb1aa}
.passwordChangeCard{max-width:520px;margin:18px auto}
.passwordRule{font-size:12px;color:#66717d;background:#f5f7f9;border-radius:10px;padding:9px 11px}
.smtpBox{margin-bottom:16px;border-color:#cdd9e6;background:#fbfdff}
.smtpGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media(max-width:650px){.smtpGrid{grid-template-columns:1fr}.login{margin-top:25px}.passwordBtn{margin-left:0}}




/* v7.9.9 DAEHEUNG COOLER company logo */
.topLogoRow{
  display:flex;
  align-items:center;
  gap:13px;
  margin-bottom:2px;
}
.topCompanyLogo{
  display:block;
  width:58px;
  height:52px;
  object-fit:contain;
  flex:0 0 auto;
}
.topLogoText{
  min-width:0;
}
.topLogoText .title{
  margin-top:2px;
}

.loginCompanyBrand{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  margin:4px auto 8px;
}
.loginCompanyLogo{
  display:block;
  width:150px;
  max-width:38vw;
  height:auto;
  object-fit:contain;
}
.loginProductName{
  text-align:left;
  font-size:28px;
  line-height:1.03;
  font-weight:900;
  letter-spacing:.5px;
  color:#101828;
}
.loginProductName span{
  color:#172b7a;
}
.loginSubtitle{
  text-align:center;
  margin-top:6px;
}

@media(max-width:640px){
  .topLogoRow{
    gap:9px;
    align-items:center;
  }
  .topCompanyLogo{
    width:48px;
    height:43px;
  }
  .loginCompanyBrand{
    gap:12px;
  }
  .loginCompanyLogo{
    width:116px;
    max-width:42vw;
  }
  .loginProductName{
    font-size:23px;
  }
}


/* ============================================================
   v7.11.0 안전보건 달력
   ============================================================ */
@media(min-width:1100px){
  .adminSummaryGrid{grid-template-columns:repeat(5,minmax(0,1fr))}
}
.calendarSummaryCard{
  background:linear-gradient(180deg,#ffffff,#f5fbf7);
  border-color:#c9dfd2;
}
.calendarHomeCard{background:#f8fbff;border-color:#cbd9e9}
.calendarHomeNumbers{display:flex;gap:8px}
.calendarHomeNumbers span{
  min-width:58px;padding:7px 9px;border-radius:11px;background:#fff;border:1px solid #dce4ed;
  display:flex;flex-direction:column;align-items:center
}
.calendarHomeNumbers b{font-size:20px;line-height:1}
.calendarHomeNumbers small{font-size:9px;color:#7b8592;margin-top:4px}
.calendarNextText{margin-top:9px;padding-top:8px;border-top:1px dashed #dfe5ec}

.safetyCalendarPage{min-width:0}
.calendarToolbar{
  display:grid;grid-template-columns:auto minmax(170px,1fr) auto;gap:10px;
  align-items:center;margin:14px 0 10px
}
.calendarMonthTitle{text-align:center;font-size:25px;font-weight:950;letter-spacing:-.5px}
.calendarLegend{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.calendarLegend span,.calendarCategoryTag{
  display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;
  font-size:10px;font-weight:900;border:1px solid transparent
}
.calendarLegend.compact span{font-size:9px;padding:4px 6px}

.calCat0{background:#eaf3ff!important;color:#245a91!important;border-color:#c8dcef!important}
.calCat1{background:#f3ecff!important;color:#634099!important;border-color:#d9c8ef!important}
.calCat2{background:#e9f7f0!important;color:#1c6a4a!important;border-color:#bfe1d0!important}
.calCat3{background:#fff6dc!important;color:#785900!important;border-color:#ead99e!important}
.calCat4{background:#edf0ff!important;color:#40519a!important;border-color:#ccd2ef!important}
.calCat5{background:#fff0ed!important;color:#8b3f34!important;border-color:#edc5bd!important}
.calCat6{background:#eaf8f8!important;color:#246568!important;border-color:#bfe1e2!important}
.calCat7{background:#fcecf2!important;color:#8a3454!important;border-color:#e8c3d1!important}
.calCat8{background:#f1f3f5!important;color:#525d68!important;border-color:#d9dee3!important}

.calendarScroll{
  overflow:auto;background:#fff;border:1px solid #dfe5ec;border-radius:17px;
  box-shadow:0 2px 12px #00000007
}
.safetyCalendar{
  display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));
  min-width:840px;background:#e6eaf0;gap:1px
}
.calendarWeekHead{
  background:#f3f5f8;padding:10px;text-align:center;font-size:12px;font-weight:900
}
.calendarWeekHead.sun{color:#a12b24}.calendarWeekHead.sat{color:#285c94}
.calendarDay{
  min-height:142px;background:#fff;padding:8px;cursor:pointer;overflow:hidden;
  transition:background .12s ease,box-shadow .12s ease
}
.calendarDay:hover{background:#f9fbfd}
.calendarDay.outside{background:#f6f7f9;cursor:default}
.calendarDay.today{box-shadow:inset 0 0 0 3px #254f7a}
.calendarDay.selectedDate{background:#f2f7fc}
.calendarDayTop{
  display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:5px
}
.calendarDayNo{
  width:27px;height:27px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:12px;font-weight:900
}
.calendarDayCount{
  min-width:20px;height:20px;padding:0 5px;border-radius:999px;
  display:flex;align-items:center;justify-content:center;
  font-size:9px;font-weight:950;background:#eef1f5;color:#4f5d6c
}
.calendarDay.today .calendarDayNo{background:#254f7a;color:#fff}
.calendarDayEvents{display:grid;gap:4px;min-width:0}
.calendarChipText{min-width:0;overflow:hidden;text-overflow:ellipsis}
.calendarEventChip{
  width:100%;border:1px solid transparent;border-radius:7px;padding:5px 6px;
  text-align:left;font-size:10px;font-weight:800;line-height:1.25;cursor:pointer;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.calendarEventChip.calendarUrgent{box-shadow:inset 4px 0 #b42318}
.calendarEventChip.calendarImportant{box-shadow:inset 4px 0 #c36a00}
.calendarChipTime{font-size:9px;opacity:.75}
.calendarMore{
  border:0;background:#f0f2f5;border-radius:7px;padding:5px;font-size:9px;
  font-weight:800;color:#596574;cursor:pointer
}

.calendarAdminBelow{
  display:grid;grid-template-columns:minmax(430px,.85fr) minmax(0,1.15fr);
  gap:14px;margin-top:16px;align-items:start
}
.calendarFormGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.calendarFormWide{grid-column:1/-1}
.calendarDescription{min-height:120px}
.calendarScheduleList{display:grid;gap:8px}
.calendarScheduleItem{
  display:grid;grid-template-columns:65px minmax(0,1fr) auto;gap:10px;
  background:#fff;border:1px solid #e1e6ec;border-radius:13px;padding:10px;
  align-items:start
}
.calendarScheduleItem.calendarUrgent{border-left:5px solid #b42318}
.calendarScheduleItem.calendarImportant{border-left:5px solid #c36a00}
.calendarScheduleDate{
  min-height:48px;border-radius:10px;background:#f4f6f8;display:flex;
  flex-direction:column;align-items:center;justify-content:center
}
.calendarScheduleDate b{font-size:14px}
.calendarScheduleDate small{font-size:9px;color:#717c89;margin-top:2px}
.calendarScheduleBody{min-width:0}
.calendarScheduleTitle{
  display:block;width:100%;border:0;background:none;padding:5px 0 3px;
  text-align:left;font-size:14px;font-weight:900;color:#172033;cursor:pointer
}
.calendarScheduleTitle:hover{text-decoration:underline}
.calendarScheduleActions{display:flex;align-items:center}
.calendarTime{font-size:12px}
.calendarDayDetail{
  width:100%;display:grid;gap:6px;text-align:left;margin-bottom:8px;padding:11px;
  border:1px solid #e1e6ec;border-radius:12px;background:#fff;cursor:pointer;color:#172033
}
.calendarDayDetail>div{display:flex;align-items:center;gap:7px}
.calendarDayDetail>span{font-size:11px;color:#737e8d}
.calendarDayDetail.calendarUrgent{border-left:5px solid #b42318}
.calendarDayDetail.calendarImportant{border-left:5px solid #c36a00}
.calendarModalCard{max-width:620px}
.calendarDetailHead{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.calendarDetailTitle{font-size:21px;margin:12px 0}
.calendarDetailGrid{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#f7f9fb;
  border-radius:12px;padding:11px
}
.calendarDetailGrid div{display:flex;flex-direction:column;gap:3px}
.calendarDetailGrid b{font-size:10px;color:#687380}
.calendarDetailGrid span{font-size:13px;font-weight:800}
.calendarDetailDesc{
  margin-top:10px;background:#fff;border:1px solid #e1e6ec;border-radius:12px;
  padding:12px;font-size:13px;line-height:1.65
}

@media(max-width:850px){
  .calendarAdminBelow{grid-template-columns:1fr}
}
@media(max-width:600px){
  /* 휴대폰에서는 일~토 7열 전체가 화면 안에 보이도록 고정폭을 제거합니다. */
  .mobile .safetyCalendarPage{
    padding-left:7px;
    padding-right:7px;
  }
  .calendarMonthTitle{font-size:19px}
  .calendarToolbar{
    grid-template-columns:48px minmax(0,1fr) 48px;
    gap:6px;margin:10px 0 8px
  }
  .calendarToolbar .btn{padding:8px 4px;font-size:10px}
  .calendarLegend.compact{gap:4px;margin-bottom:7px}
  .calendarLegend.compact span{font-size:8px;padding:3px 5px}

  .calendarScroll{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
    border-radius:11px;
  }
  .safetyCalendar{
    width:100%;
    min-width:0;
    grid-template-columns:repeat(7,minmax(0,1fr));
  }
  .calendarWeekHead{
    min-width:0;
    padding:7px 1px;
    font-size:10px;
  }
  .calendarDay{
    min-width:0;
    min-height:88px;
    padding:4px 3px;
  }
  .calendarDayTop{
    margin-bottom:3px;
    gap:2px;
  }
  .calendarDayNo{
    width:21px;
    height:21px;
    font-size:9px;
    flex:0 0 21px;
  }
  .calendarDayCount{
    min-width:17px;
    height:17px;
    padding:0 4px;
    font-size:8px;
  }
  .calendarDay.today{
    box-shadow:inset 0 0 0 2px #254f7a;
  }
  .calendarDayEvents{gap:2px}
  .calendarEventChip{
    min-width:0;
    width:100%;
    border-radius:5px;
    padding:3px 2px;
    font-size:7.5px;
    line-height:1.15;
    display:flex;
    align-items:center;
    overflow:hidden;
  }
  .calendarChipTime{
    display:none;
  }
  .calendarChipText{
    display:block;
    width:100%;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  /* 좁은 날짜칸에는 대표 일정 1개만 표시.
     전체 일정 개수는 날짜 옆 숫자로 표시하고, 날짜를 누르면 모두 확인할 수 있습니다. */
  .calendarDayEvents .calendarEventChip:nth-of-type(n+2){
    display:none;
  }
  .calendarMore{
    display:none;
  }

  .calendarFormGrid{grid-template-columns:1fr}
  .calendarFormWide{grid-column:auto}
  .calendarScheduleItem{
    grid-template-columns:50px minmax(0,1fr);
    gap:7px;padding:8px
  }
  .calendarScheduleDate{min-height:44px}
  .calendarScheduleDate b{font-size:12px}
  .calendarScheduleTitle{font-size:13px}
  .calendarScheduleActions{grid-column:2}
  .calendarDetailGrid{grid-template-columns:1fr}
}


/* v7.12.0 안전용품 구매요청 */
.purchaseSummaryCard{background:linear-gradient(180deg,#fff,#fffaf0);border-color:#ead9b5}
.purchaseHomeCard{background:#fffdf8;border-color:#eadfc8}
.purchaseHomeNumbers{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.purchaseHomeNumbers span{min-width:58px;padding:7px 8px;border:1px solid #e3e6ea;border-radius:10px;background:#fff;display:flex;flex-direction:column;align-items:center}
.purchaseHomeNumbers b{font-size:18px;line-height:1}.purchaseHomeNumbers small{font-size:9px;color:#747f8b;margin-top:3px}.purchaseHomeNumbers .purchaseDone{border-color:#e5bd76;background:#fff8e9}
.purchaseAlertText{margin-top:8px;padding-top:7px;border-top:1px dashed #e2d5be;font-weight:800;color:#8a5200}
.purchaseFormGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.purchaseWide{grid-column:1/-1}.purchaseRequestBox textarea{min-height:92px}
.purchasePendingList,.purchaseMyList{display:grid;gap:9px}.purchaseProcItem{border-left:5px solid #c98914}.purchaseCheckLabel{display:flex;gap:7px;align-items:center}.purchaseCheckLabel input{width:20px;height:20px}
.purchaseCompleteFields{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:7px;margin-top:8px}.purchaseCompleteBtn,.purchaseForwardBtn{margin-top:10px}
.purchaseCompletedUnread{border-left:5px solid #2e7d52;background:#f6fff9}.purchaseProgressMsg,.purchaseDoneInfo{margin-top:7px;padding:8px;border-radius:9px;background:#f5f7fa;font-size:11px}.purchaseDoneInfo{background:#effaf4;color:#215c3f}
.purchaseDeptSetting{margin-top:12px}.purchaseDeptSettingControls{display:flex;gap:7px;align-items:center}.purchaseDeptSettingControls select{min-width:150px}.purchaseAdminTable input[type=checkbox]{width:19px;height:19px}.purchaseStatCards{margin-top:12px}
@media(max-width:600px){.purchaseFormGrid{grid-template-columns:1fr}.purchaseWide{grid-column:auto}.purchaseCompleteFields{grid-template-columns:1fr}.purchaseHomeNumbers{margin-left:6px}.purchaseHomeNumbers span{min-width:52px}.purchaseDeptSetting .row{display:grid;gap:9px}.purchaseDeptSettingControls{width:100%}.purchaseDeptSettingControls select{flex:1;min-width:0}}


/* ============================================================
   v7.12.2 안전용품 구매비용 통계
   ============================================================ */
.purchaseStatsFilterGrid{
  display:grid;
  grid-template-columns:1fr 1fr 1fr 1fr auto;
  gap:10px;
  align-items:end
}
.purchaseCostCards{margin-top:10px}
.purchaseCostCards .num{
  font-size:21px;
  overflow-wrap:anywhere
}
.purchaseStatsNotice{margin-top:10px}
.purchaseCostCharts{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:14px
}
.purchaseDonutWrap{
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:16px;
  align-items:center
}
.purchaseDonut{
  width:205px;
  height:205px;
  border-radius:50%;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:auto
}
.purchaseDonut::after{
  content:"";
  position:absolute;
  width:122px;
  height:122px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 1px #eef1f4
}
.purchaseDonutCenter{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center
}
.purchaseDonutCenter b{font-size:17px}
.purchaseDonutCenter span{font-size:10px;color:#77818d;margin-top:3px}
.purchaseDonutLegend{display:grid;gap:7px;min-width:0}
.purchaseDonutLegendRow{
  display:grid;
  grid-template-columns:12px minmax(0,1fr) 54px 92px;
  gap:7px;
  align-items:center;
  font-size:11px
}
.purchaseLegendDot{
  width:10px;height:10px;border-radius:50%
}
.purchaseDonutLegendRow button{
  border:0;background:none;padding:0;text-align:left;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-weight:800;cursor:pointer;color:#263345
}
.purchaseDonutLegendRow span:last-child{text-align:right;color:#6f7985}
.purchaseSupplierBars .hBarRow{
  grid-template-columns:110px minmax(120px,1fr) 150px
}
.purchaseTrendChart{min-height:220px}
.purchaseMoneyBar{width:62%}
.purchaseItemShareList{display:grid;gap:10px}
.purchaseItemShareRow{
  border:1px solid #e4e8ed;border-radius:11px;padding:9px;
  transition:box-shadow .2s ease,background .2s ease
}
.purchaseItemShareRow.purchaseItemFocus{
  background:#fff8dc;
  box-shadow:0 0 0 3px #e9cb5f66
}
.purchaseItemShareTop{
  display:flex;justify-content:space-between;gap:12px;align-items:flex-start;
  margin-bottom:6px
}
.purchaseItemShareTop>div{display:flex;flex-direction:column;min-width:0}
.purchaseItemShareTop>div:last-child{text-align:right}
.purchaseItemShareTop b{font-size:12px}
.purchaseItemShareTop span{font-size:10px;color:#7a8490;margin-top:2px}
.purchasePercentTrack{
  height:10px;background:#edf0f3;border-radius:99px;overflow:hidden
}
.purchasePercentFill{
  height:100%;background:#53647c;border-radius:99px
}

@media(max-width:1100px){
  .purchaseStatsFilterGrid{grid-template-columns:1fr 1fr}
  .purchaseStatsFilterGrid .reportSearchActions{grid-column:1/-1}
  .purchaseCostCharts{grid-template-columns:1fr}
}
@media(max-width:680px){
  .purchaseStatsFilterGrid{grid-template-columns:1fr}
  .purchaseStatsFilterGrid .reportSearchActions{
    grid-column:auto;
    display:grid;
    grid-template-columns:1fr 1fr 1fr
  }
  .purchaseDonutWrap{grid-template-columns:1fr}
  .purchaseDonut{width:180px;height:180px}
  .purchaseDonut::after{width:108px;height:108px}
  .purchaseDonutLegendRow{
    grid-template-columns:12px minmax(0,1fr) 48px 82px
  }
  .purchaseSupplierBars .hBarRow{
    grid-template-columns:85px minmax(80px,1fr) 112px
  }
}


/* v7.12.3 안전용품 구매업무 처리 후 통계 영역 구분 */
.purchaseStatsBottomDivider{
  margin:28px 0 8px;
  padding-top:16px;
  border-top:2px solid #e2e7ec;
  color:#7a8490;
  font-size:11px;
  font-weight:700;
}


/* ============================================================
   v7.12.4 관리자 상단 DAEHEUNG COOLER SAFETY SYSTEM 타이틀 확대
   ============================================================ */
.systemBrand{
  display:flex;
  align-items:baseline;
  gap:9px;
  flex-wrap:wrap;
}
.systemBrandMain{
  font-weight:900;
}
.systemBrandVersion{
  color:#b42318;
  font-weight:800;
}

/* 관리자 화면에서는 회사 안전시스템 타이틀을 더 크고 굵게 표시 */
.adminTop .systemBrandMain{
  display:block;
  font-size:18px;
  line-height:1.15;
  font-weight:900;
  letter-spacing:.15px;
  color:#101828;
}
.adminTop .systemBrandVersion{
  font-size:10px;
  line-height:1.2;
  white-space:nowrap;
}
.adminTop .topLogoRow{
  gap:14px;
  align-items:center;
}
.adminTop .topCompanyLogo{
  width:64px;
  height:57px;
}
.adminTop .topLogoText .title{
  margin-top:4px;
  font-size:20px;
}

/* 직원/관리감독자 모바일 화면은 기존과 비슷한 크기 유지 */
.mobile .systemBrandMain{
  font-size:12px;
  letter-spacing:.55px;
  color:#6f7a89;
}
.mobile .systemBrandVersion{
  font-size:10px;
}

@media(max-width:760px){
  .adminTop .systemBrandMain{
    font-size:17px;
  }
  .adminTop .topCompanyLogo{
    width:58px;
    height:52px;
  }
}


/* v7.13.0 월간보고서 미리보기 */
.monthlyReportControlBox{
  display:flex;align-items:end;justify-content:space-between;gap:14px;
  flex-wrap:wrap;margin:12px 0;padding:13px;border:1px solid #dde3e9;
  border-radius:12px;background:#f8fafc
}
.monthlyReportControlBox input[type="month"]{min-width:175px}
.monthlyReportActions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.monthlyPrintBtn{font-weight:900}
.monthlyReportHelp{
  margin:9px 0 12px;padding:10px 12px;border-left:4px solid #53647c;
  background:#f6f8fa;border-radius:8px;font-size:11px;color:#5f6b78
}
.monthlyReportFrameWrap{
  background:#e8ebef;border:1px solid #d9dfe5;border-radius:12px;
  padding:12px;overflow:hidden
}
.monthlyReportFrame{
  display:block;width:100%;height:1150px;border:0;border-radius:8px;
  background:white;box-shadow:0 3px 16px rgba(0,0,0,.08)
}
@media(max-width:760px){
  .monthlyReportActions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .monthlyReportActions .btn{width:100%}
  .monthlyReportFrame{height:900px}
  .monthlyReportFrameWrap{padding:5px}
}

/* v7.14.0 안전보고서 기간 선택 */
.safetyReportPeriodControls{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.safetyReportPeriodControls>div{min-width:150px}.safetyReportQuarterControl{display:flex;gap:8px;align-items:end}.safetyReportQuarterControl>div{min-width:105px}@media(max-width:680px){.safetyReportPeriodControls{display:grid;grid-template-columns:1fr}.safetyReportQuarterControl{display:grid;grid-template-columns:1fr 1fr}}


/* v7.14.3 개인정보 확인·변경 */
.personalInfoCard{
  max-width:760px;
  margin:18px auto;
}
.profileInfoGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:11px;
}
.profileWide{
  grid-column:1/-1;
}
.profileReadonly{
  background:#f1f4f7!important;
  color:#5b6570!important;
  cursor:not-allowed;
}
.profileRequiredInput{
  border:2px solid #d98622!important;
  background:#fffaf3!important;
}
.profileMissingNotice{
  margin:0 0 13px;
  padding:10px 12px;
  border-radius:10px;
  border:1px solid #e0aa65;
  background:#fff8ed;
  color:#70471c;
  font-size:13px;
  line-height:1.55;
}
.profilePasswordBox{
  margin-top:16px;
  padding:13px;
  border:1px solid #dce3e9;
  border-radius:12px;
  background:#fafbfd;
}
.profilePasswordBox .subSection{
  font-size:14px;
  font-weight:900;
  margin-bottom:9px;
}
.profileActionRow{
  display:flex;
  gap:8px;
  margin-top:14px;
}
.profileActionRow .btn{
  flex:1;
}
@media(max-width:650px){
  .profileInfoGrid{grid-template-columns:1fr}
  .profileWide{grid-column:auto}
  .personalInfoCard{margin:10px auto}
  .profileActionRow{flex-direction:column}
}


/* v7.15.0 익명고충처리함 / 대표이사 전용 */
.grievanceLoginBtn{
  margin-top:4px;
  background:#5b3d82;
  border-color:#5b3d82;
}
.grievanceLoginBtn:hover{filter:brightness(.96)}
.grievancePublicBox{
  max-width:680px!important;
}
.anonymousPrivacyNotice{
  padding:12px;
  margin-bottom:12px;
  border:1px solid #d8c8e8;
  border-radius:11px;
  background:#faf6ff;
  color:#4b3861;
  line-height:1.55;
  font-size:13px;
}
.grievanceSubmitBtn{
  background:#5b3d82;
  border-color:#5b3d82;
}
.grievanceReceiptBox{
  margin-top:12px;
  padding:13px;
  border-radius:10px;
  border:1px solid #9ec7ab;
  background:#f2fbf5;
  line-height:1.7;
}
.grievanceReceiptBox strong{
  font-size:17px;
  letter-spacing:.4px;
}
.ceoGrievanceWrap{
  max-width:1250px;
  margin:0 auto;
  padding:18px;
}
.executiveNotice{
  padding:13px 15px;
  border-radius:12px;
  border:1px solid #d8c8e8;
  background:#faf6ff;
  color:#453358;
  line-height:1.55;
  margin-bottom:14px;
}
.grievanceSummaryGrid{
  display:grid;
  grid-template-columns:repeat(6,minmax(120px,1fr));
  gap:10px;
  margin-bottom:14px;
}
.grievanceSummaryGrid .card{
  min-height:88px;
}
.grievanceFilterBox{
  margin-bottom:14px;
}
.grievanceFilterBox .row{
  align-items:flex-end;
  justify-content:flex-start;
  gap:10px;
}
.grievanceFilterBox select{
  min-width:150px;
}
.grievanceCase{
  margin-bottom:12px;
  border-left:4px solid #b7a3cc;
}
.grievanceUrgentCase{
  border-left-color:#c94f4f;
}
.grievanceCaseHeader{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
  padding-bottom:10px;
  border-bottom:1px solid #e7eaed;
}
.grievanceCaseTitle{
  font-size:17px;
  font-weight:900;
  margin-bottom:4px;
}
.grievanceBadges{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  justify-content:flex-end;
}
.grievanceContentLabel{
  margin-top:12px;
  margin-bottom:5px;
  font-size:12px;
  font-weight:900;
  color:#5e6670;
}
.grievanceContent,
.grievanceDesired{
  white-space:normal;
  word-break:keep-all;
  overflow-wrap:break-word;
  line-break:auto;
  line-height:1.65;
  padding:11px;
  border-radius:9px;
  background:#f7f8fa;
  border:1px solid #e4e7eb;
}
.grievanceDesired{
  background:#fffaf2;
}
.grievanceProcessGrid{
  display:grid;
  grid-template-columns:180px 1fr;
  gap:12px;
  margin-top:14px;
}
.grievanceProcessNote textarea{
  min-height:92px;
}
.grievanceCaseFooter{
  margin-top:10px;
  justify-content:space-between;
  align-items:center;
}
@media(max-width:900px){
  .grievanceSummaryGrid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:650px){
  .ceoGrievanceWrap{padding:10px}
  .grievanceSummaryGrid{grid-template-columns:repeat(2,1fr)}
  .grievanceCaseHeader{flex-direction:column}
  .grievanceBadges{justify-content:flex-start}
  .grievanceProcessGrid{grid-template-columns:1fr}
  .grievanceCaseFooter{align-items:stretch;flex-direction:column}
}


/* v7.15.1 익명고충 처리현황 조회 */
.grievanceLoginActions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin-top:4px;
}
.grievanceLoginActions .btn{margin-top:0}
.grievanceStatusBtn{
  background:#375d75;
  border-color:#375d75;
}
.grievanceCredentialRow{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:9px 0;
  border-bottom:1px solid #dce8df;
}
.grievanceCredentialRow strong{
  font-size:17px;
  letter-spacing:.5px;
}
.grievanceCredentialRow .lookupPasswordValue{
  font-size:21px;
  letter-spacing:3px;
}
.grievanceCredentialWarning{
  margin-top:9px;
  padding:9px;
  border-radius:8px;
  background:#fff7e8;
  color:#6d4718;
  font-size:12px;
  line-height:1.55;
}
.publicGrievanceResult{
  margin-top:14px;
  padding:14px;
  border:1px solid #d8dee4;
  border-radius:12px;
  background:#fff;
}
.publicGrievanceHeader{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
  padding-bottom:10px;
  border-bottom:1px solid #e5e9ed;
}
.publicGrievanceTitle{
  display:block;
  font-size:17px;
  margin-bottom:4px;
}
.publicGrievanceMeta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 15px;
  margin-top:10px;
  font-size:12px;
  color:#59636d;
}
.publicGrievanceTimeline{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:7px;
  margin:8px 0 12px;
}
.publicTimelineStep{
  min-height:64px;
  padding:9px;
  border:1px solid #e0e4e8;
  border-radius:9px;
  display:flex;
  gap:7px;
  background:#f7f8f9;
  color:#8a9299;
}
.publicTimelineStep.done{
  border-color:#acd0b8;
  background:#f3faf5;
  color:#325f40;
}
.publicTimelineStep.current{
  box-shadow:inset 0 0 0 1px #659d77;
}
.publicTimelineDot{
  font-size:15px;
  line-height:1.2;
}
.publicReplyBox{
  padding:12px;
  border:1px solid #a7c9b2;
  border-radius:10px;
  background:#f2faf4;
  line-height:1.65;
}
.publicReplyDate{
  margin-top:9px;
  padding-top:7px;
  border-top:1px solid #d6e8dc;
}
.publicReplyWaiting{
  padding:12px;
  border:1px dashed #c7cdd2;
  border-radius:10px;
  background:#fafbfc;
  color:#6c747b;
}
.publicCompletedNotice{
  margin-top:12px;
  padding:10px;
  border-radius:9px;
  background:#eef5fa;
  color:#31546b;
  text-align:center;
  font-weight:800;
}
.grievancePublicReplyEditor{
  grid-column:1/-1;
  padding:11px;
  border:1px solid #b9d8c3;
  border-radius:10px;
  background:#f6fbf7;
}
.grievancePublicReplyEditor textarea{
  min-height:95px;
}
@media(max-width:650px){
  .grievanceLoginActions{grid-template-columns:1fr}
  .publicGrievanceTimeline{grid-template-columns:1fr 1fr}
  .publicGrievanceHeader{flex-direction:column}
}


/* v7.15.2 안전교육 등록일 / 교육자 명단 */
.trainingDateGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
@media(max-width:650px){
  .trainingDateGrid{grid-template-columns:1fr}
}


/* v7.15.3 실행 버전 확인용 표시 */
.buildVerifyBadge{
  width:max-content;
  max-width:100%;
  margin:7px auto 12px;
  padding:6px 11px;
  border:1px solid #a8c9b3;
  background:#f2faf4;
  border-radius:999px;
  color:#2f6641;
  font-size:12px;
}
.systemBuildMini{
  margin-left:8px;
  font-size:11px;
  font-weight:700;
  opacity:.72;
  white-space:nowrap;
}
.trainingFeatureBadge{
  display:inline-block;
  margin:0 0 10px;
  padding:6px 10px;
  border-radius:8px;
  border:1px solid #9dc7ab;
  background:#f2faf4;
  color:#2e6640;
  font-size:12px;
  font-weight:800;
}
.trainingPrintNotice{
  margin-bottom:10px;
}


/* v7.16.0 안전·보건교육 결과 보고서 */
.reportAction{background:#4d477f;border-color:#4d477f;color:#fff}
.resultReportEditor{margin-top:10px}
.resultEditorGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:15px}.resultEditorWide{grid-column:1/-1}.checkGroup{display:flex;flex-wrap:wrap;gap:8px 14px;padding:9px;border:1px solid #dce2e7;border-radius:9px;background:#fafbfc}.checkGroup label{font-size:13px}.autoStatBox{padding:10px;border:1px solid #cfd9df;border-radius:8px;background:#f4f8fa;font-weight:800}
.evalEditorGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:14px}.evalEditorGrid>div{border:1px solid #dfe3e7;border-radius:9px;padding:9px;background:#fbfcfd}.evalEditorGrid>div>b{display:block;margin-bottom:6px}.evalInputRow{display:grid;grid-template-columns:1fr 70px 16px;gap:5px;align-items:center;margin:4px 0;font-size:12px}.evalInputRow input{padding:5px!important}
.approvalEditorGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.approvalEditor{border:1px solid #d9dee3;border-radius:10px;padding:10px;background:#fafbfc}.approvalEditor>b{display:block;margin-bottom:6px}.savedSignature{height:64px;display:flex;gap:8px;align-items:center;margin:7px 0;padding:5px;border:1px solid #c8d5ca;border-radius:8px;background:#f4faf5}.savedSignature img{max-width:150px;max-height:52px;object-fit:contain}.savedSignature span{font-size:11px;color:#4e6d55}.resultReportActions{margin-top:14px;justify-content:flex-end}
@media(max-width:900px){.evalEditorGrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.resultEditorGrid,.evalEditorGrid,.approvalEditorGrid{grid-template-columns:1fr}.resultEditorWide{grid-column:auto}.resultReportActions{flex-direction:column}}


/* v7.16.1 안전교육 이수 후 설문 */
.trainingCompletedActions{margin-top:8px;display:grid;gap:7px}
.surveyBtn{background:#476f5a;border-color:#476f5a;color:#fff}
.surveyIntroBox{border-left:4px solid #6b9278}
.surveyQuestion{margin-top:10px}
.surveyQuestionTitle{font-size:14px;font-weight:900;line-height:1.5;margin-bottom:10px}
.surveyRadioGrid{display:grid;gap:7px}
.surveyRadioGrid.five{grid-template-columns:repeat(5,1fr)}
.surveyRadioGrid.two{grid-template-columns:repeat(2,1fr);max-width:420px}
.surveyRadioOption{position:relative;display:block;cursor:pointer}
.surveyRadioOption input{position:absolute;opacity:0;pointer-events:none}
.surveyRadioOption span{display:block;padding:10px 7px;border:1px solid #cfd6dc;border-radius:9px;text-align:center;background:#fff;font-size:12px;font-weight:800}
.surveyRadioOption input:checked+span{border:2px solid #47735a;background:#edf7f0;color:#28543a;padding:9px 6px}
.surveyAutoEvalNotice{margin:0 0 10px;padding:10px 12px;border:1px solid #a9cdb4;background:#f2faf4;border-radius:10px;color:#315c3d;font-size:12px;line-height:1.6}
.evalInputRow.readonlyEval{opacity:.82}
.evalInputRow.readonlyEval input{background:#eef2f4!important;color:#3e4a52!important}
@media(max-width:760px){.surveyRadioGrid.five{grid-template-columns:1fr 1fr}.surveyRadioGrid.two{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.surveyRadioGrid.five,.surveyRadioGrid.two{grid-template-columns:1fr}}


/* v7.17.0 교육 교재 / 평가시험 */
.trainingMaterialBox,.trainingEvaluationBox{padding:11px;border:1px solid #dce3e8;border-radius:10px;background:#fafbfd}
.trainingMaterialBox input[type=file]{width:100%;padding:8px;background:#fff;border:1px solid #ccd5dc;border-radius:8px}
.evalToggle{display:inline-flex;align-items:center;gap:5px;margin-right:16px;font-weight:700}
.quizAdminBtn,.quizBtn{background:#5a4b87;border-color:#5a4b87;color:#fff}
.materialBtn{background:#356c78;border-color:#356c78;color:#fff}
.quizBankEditor{margin-bottom:12px}.quizBankSummary{margin-bottom:10px;align-items:center}.quizAnswerAdmin{display:flex;gap:18px;padding:8px 0}.quizAnswerAdmin label{font-weight:800}.mutedQuestion{opacity:.68}
.trainingFlow{margin-top:10px;padding:9px 10px;border-radius:9px;background:#f3f6fa;border:1px solid #d8e0e8;font-size:12px;font-weight:800;line-height:1.55}
.trainingStepBox{border-left:4px solid #8aa6b5}.quizPassedNotice{margin-top:9px;padding:10px;border-radius:9px;background:#f1faf4;border:1px solid #a8d0b4;color:#2f6841}
.quizExamIntro{text-align:center}.quizExamQuestion{margin-top:10px}.quizExamTitle{font-size:15px;font-weight:800;line-height:1.55;margin-bottom:10px}.quizRadioGrid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.quizRadioOption{display:flex;align-items:center;justify-content:center;gap:7px;padding:13px;border:1px solid #cfd8df;border-radius:10px;background:#fafbfd;font-weight:800;cursor:pointer}.quizRadioOption:has(input:checked){border-color:#5a4b87;background:#f3effb}.quizRadioOption input{transform:scale(1.2)}
.quizResultBox{text-align:center;padding:20px}.quizResultPass{border:2px solid #78b98d;background:#f4fbf6}.quizResultFail{border:2px solid #df9a72;background:#fff8f2}.quizScore{font-size:50px;font-weight:900;line-height:1}.quizScore span{font-size:18px;margin-left:4px}.quizResultBox h2{margin:10px 0 6px}
@media(max-width:650px){.quizRadioGrid{grid-template-columns:1fr}.evalToggle{margin-bottom:7px}.quizBankSummary{align-items:stretch;flex-direction:column}}


/* v7.17.1 - 전 페이지 한글 문장 줄바꿈 개선 */
.main p,
.notice,
.lan,
.readAloud,
.scriptText,
.question,
.hazardGuideDesc,
.hazardGuideExample,
.calendarDetailDesc,
.purchaseDoneInfo,
.publicReplyText,
.quizExamTitle,
.surveyQuestionTitle,
.table td,
.table th {
  word-break:keep-all;
  overflow-wrap:break-word;
  line-break:auto;
}


/* v7.17.3 - 반복 안전교육 템플릿 불러오기 */
.trainingTemplateBox{
  padding:12px;
  border:1px solid #cbd8e6;
  border-radius:10px;
  background:#f7fbff;
}
.trainingTemplateBox select{width:100%}


/* v7.17.4 - 교육과정 삭제 버튼 */
.trainingPrintNotice .dangerHint{color:#b42318;font-weight:700}


/* v7.17.8 - 관리감독자/사원 하단 빠른 메뉴 가독성 */
@media(max-width:390px){
  .bottom .quickNavIcon{font-size:23px}
  .bottom .quickNavText{font-size:12px}
  .bottom .quickNavBtn{min-height:57px}
}


/* v7.17.10 - 관리자 등록/설정 통합 메뉴 */
.registerSettingsMainBtn{
  font-weight:900;
}
.registrationSettingsHeader{
  margin:6px 0 12px;
  padding:17px 18px;
  border:1px solid #d5e3f3;
  border-radius:16px;
  background:linear-gradient(135deg,#f4f9ff 0%,#edf5ff 100%);
}
.registrationSettingsDesc{
  margin-top:6px;
  max-width:900px;
  line-height:1.65;
}
.registrationSettingsMenu{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:11px;
  margin:0 0 16px;
}
.registrationSettingsCard{
  min-height:128px;
  border:1px solid #d8e1ec;
  border-radius:15px;
  background:#fff;
  padding:15px;
  text-align:left;
  cursor:pointer;
  display:grid;
  grid-template-columns:40px 1fr;
  grid-template-rows:auto 1fr;
  column-gap:9px;
  row-gap:5px;
  box-shadow:0 2px 12px rgba(16,24,40,.04);
  transition:transform .1s ease,border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.registrationSettingsCard:hover{
  transform:translateY(-1px);
  border-color:#9dbbe0;
  box-shadow:0 5px 16px rgba(20,64,115,.09);
}
.registrationSettingsCard.active{
  border:2px solid #245f9d;
  background:#f1f7ff;
  box-shadow:0 5px 16px rgba(36,95,157,.12);
}
.registrationSettingsIcon{
  grid-row:1/3;
  width:38px;
  height:38px;
  border-radius:11px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#e5f0fc;
  color:#174d83;
  font-size:21px;
  font-weight:900;
}
.registrationSettingsCard.active .registrationSettingsIcon{
  background:#245f9d;
  color:#fff;
}
.registrationSettingsTitle{
  color:#17324d;
  font-size:15px;
  line-height:1.25;
  font-weight:900;
}
.registrationSettingsText{
  color:#6d7887;
  font-size:11.5px;
  line-height:1.5;
}
#registrationSettingsBody{
  scroll-margin-top:105px;
}
@media(max-width:1100px){
  .registrationSettingsMenu{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .registrationSettingsMenu{grid-template-columns:1fr}
  .registrationSettingsCard{min-height:94px}
}


/* v7.17.11 - 등록/설정 메뉴 QR 라벨 인쇄 */
.registrationSettingsCard.qrLabelSettingsCard .registrationSettingsIcon{
  background:#e8f1ff;
  color:#174d83;
}
.registrationSettingsCard.qrLabelSettingsCard:hover{
  border-color:#7fa7d6;
  background:#f7fbff;
}


/* v7.17.12 - 부서/직원 등록 분리 */
.registrationSubHeader{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin:4px 0 13px;
  padding:13px 15px;
  border-left:5px solid #245f9d;
  background:#f7faff;
  border-radius:12px;
}
.registrationSubHeader .muted{
  margin-top:4px;
}
.registrationSplitPanel{
  align-items:start;
}
.employeeRegistrationPanel .tablewrap{
  max-width:100%;
}


/* v7.17.13 - 전사 부서별 장비 현황 5개 단위 페이지 */
.adminEquipmentTableArea{
  scroll-margin-top:104px;
}
.equipmentListHeading{
  align-items:flex-end;
  margin-bottom:8px;
}
.equipmentPagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  flex-wrap:wrap;
  margin:14px 0 5px;
}
.equipmentPageNumbers{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  flex-wrap:wrap;
}
.equipmentPageBtn{
  min-width:36px;
  height:36px;
  padding:0 10px;
  border:1px solid #cbd7e5;
  border-radius:9px;
  background:#fff;
  color:#25415f;
  font-weight:850;
  cursor:pointer;
}
.equipmentPageBtn:hover:not(:disabled){
  border-color:#5f8fbe;
  background:#f0f6fd;
}
.equipmentPageBtn.active{
  background:#245f9d;
  border-color:#245f9d;
  color:#fff;
  box-shadow:0 2px 7px rgba(36,95,157,.22);
}
.equipmentPageBtn.nav{
  min-width:70px;
}
.equipmentPageBtn:disabled{
  opacity:.38;
  cursor:default;
}
.savedEquipmentRow td{
  background:#eef7ff !important;
  animation:savedEquipmentFlash 1.3s ease-out 1;
}
.savedEquipmentRow td:first-child{
  border-left:5px solid #245f9d;
}
.savedEquipmentBadge{
  display:inline-block;
  margin-top:5px;
  padding:3px 7px;
  border-radius:999px;
  background:#245f9d;
  color:#fff;
  font-size:10px;
  font-weight:900;
  white-space:nowrap;
}
.equipmentEmptyCell{
  text-align:center;
  padding:24px !important;
  color:#7d8795;
}
@keyframes savedEquipmentFlash{
  0%{background:#cfe8ff}
  100%{background:#eef7ff}
}


/* v7.17.14 - 안전검사 대상 장비 / 2년주기 / 2개월 전 특별알림 */
.equipmentSafetyInspectionBox{
  border:1px solid #cfd9e6;border-radius:13px;background:#f8fbff;overflow:hidden
}
.equipmentSafetyInspectionToggle{
  display:flex;align-items:flex-start;gap:10px;padding:12px 13px;cursor:pointer
}
.equipmentSafetyInspectionToggle input{
  width:20px;height:20px;margin:1px 0 0;flex:0 0 auto;accent-color:#245f9d
}
.equipmentSafetyInspectionToggle span{display:block;min-width:0}
.equipmentSafetyInspectionToggle b{display:block;color:#173b63;font-size:13px}
.equipmentSafetyInspectionToggle small{display:block;margin-top:3px;color:#697586;line-height:1.45}
.equipmentSafetyInspectionFields{
  padding:12px 13px 13px;border-top:1px solid #dce6f1;background:#fff
}
.safetyInspectionRuleBadge,.safetyInspectionTargetBadge{
  background:#e5edff !important;color:#3647a5 !important
}
.safetyInspectionDuePreview{
  margin:8px 0 6px;padding:8px 10px;border-radius:9px;background:#eef5ff;
  color:#24466c;font-size:11.5px;line-height:1.55
}
.safetyInspectionPreviewWarn{color:#a15c00;font-weight:750}

.equipmentFilterBar{
  display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px
}
.equipmentFilterControls{
  display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap
}
.equipmentFilterControls select{width:auto;min-width:220px;background:#fff}

.safetyInspectionAlertPanel{
  display:flex;align-items:center;gap:12px;margin:0 0 13px;padding:13px 14px;
  border-radius:13px;border:1px solid #c8b5ff;border-left:7px solid #7c3aed;
  background:#f6f2ff;color:#4c1d95;box-shadow:0 5px 16px rgba(76,29,149,.08)
}
.safetyInspectionAlertPanel.critical{
  border-color:#f0b4b4;border-left-color:#b42318;background:#fff3f2;color:#8f1d16
}
.safetyInspectionAlertIcon{
  flex:0 0 36px;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;background:#7c3aed;color:#fff;font-size:21px;font-weight:950
}
.safetyInspectionAlertPanel.critical .safetyInspectionAlertIcon{
  background:#b42318;animation:safetyInspectionPulse 1.45s ease-in-out infinite
}
.safetyInspectionAlertBody{flex:1 1 auto;min-width:180px;font-size:12px;line-height:1.55}
.safetyInspectionAlertBody b{display:block;font-size:13px}
.safetyInspectionAlertBtn{flex:0 0 auto;background:#5b21b6}
.safetyInspectionAlertPanel.critical .safetyInspectionAlertBtn{background:#b42318}

.safetyInspectionDashboardCard{position:relative;overflow:hidden}
.safetyInspectionDashboardCard.safetyInspectionDue{border:2px solid #8b5cf6;background:#f7f3ff}
.safetyInspectionDashboardCard.safetyInspectionCritical{border:2px solid #d92d20;background:#fff2f1}
.safetyInspectionPulse{
  position:absolute;top:11px;right:11px;width:10px;height:10px;border-radius:50%;background:#d0d5dd
}
.safetyInspectionDashboardCard.safetyInspectionDue .safetyInspectionPulse{
  background:#7c3aed;box-shadow:0 0 0 5px rgba(124,58,237,.12);
  animation:safetyInspectionPulse 1.8s ease-in-out infinite
}
.safetyInspectionDashboardCard.safetyInspectionCritical .safetyInspectionPulse{
  background:#d92d20;box-shadow:0 0 0 5px rgba(217,45,32,.12);
  animation:safetyInspectionPulse 1.1s ease-in-out infinite
}
@keyframes safetyInspectionPulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.45;transform:scale(.78)}
}
.safetyDueBadge{
  background:#ede9fe !important;color:#5b21b6 !important;border:1px solid #c4b5fd !important
}
.safetyInspectionCell{min-width:132px;line-height:1.45}
.safetyInspectionCell .badge{margin:2px 0}
.safetyInspectionRowDue td{background:#fbf9ff}
.safetyInspectionRowDue td:first-child{border-left:5px solid #7c3aed}
.safetyInspectionRowOverdue td{background:#fff5f4}
.safetyInspectionRowOverdue td:first-child{border-left:6px solid #d92d20}

@media(max-width:850px){
  .safetyInspectionAlertPanel{align-items:flex-start;flex-wrap:wrap}
  .safetyInspectionAlertBtn{width:100%}
  .equipmentFilterControls{width:100%;justify-content:flex-start}
  .equipmentFilterControls select{flex:1 1 220px}
}

/* =============================================================
   v8.0.0 DAEHEUNG COOLER EHS integrated modules
   ============================================================= */
.ehsDashboardGrid{grid-template-columns:repeat(4,minmax(180px,1fr))}
.adminMenuBtn.ehs{font-weight:800}
.adminMenuBtn.committee{border-color:#5f6ab8}
.adminMenuBtn.gas{border-color:#298c76}
.adminMenuBtn.fire{border-color:#c86155}
.adminMenuBtn.environment{border-color:#568b4c}
.ehsModuleHead{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:18px 20px;margin:4px 0 14px;border:1px solid #dfe5ec;border-radius:16px;background:#fff}
.ehsMiniStats{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.ehsMiniStats span{padding:8px 12px;border-radius:999px;background:#f4f6f8;white-space:nowrap;font-size:13px}
.ehsMiniStats b{font-size:18px;margin-right:3px}
.ehsSubTabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.ehsSubTabs button{border:1px solid #cbd5df;background:#fff;border-radius:10px;padding:10px 14px;font-weight:800;cursor:pointer;color:#34404c}
.ehsSubTabs button.active{background:#173e74;color:#fff;border-color:#173e74}
.ehsSplit{align-items:start}
.ehsSplit .form .span2{grid-column:1/-1}
.ehsDueSoon{background:#fff6d8!important;color:#7b5c00;font-weight:800}
.ehsDueOver{background:#ffe6e6!important;color:#a51e1e;font-weight:800}
.badText{color:#b42318!important}
.checkline{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;background:#f6f8fb}
.checkline input{width:auto;margin:0}
.ehsModalCard{width:min(900px,94vw);max-height:88vh;overflow:auto}
.committeeHead{border-left:5px solid #5f6ab8}
.gasHead{border-left:5px solid #298c76}
.fireHead{border-left:5px solid #c86155}
.environmentHead{border-left:5px solid #568b4c}
@media(max-width:1050px){.ehsDashboardGrid{grid-template-columns:repeat(2,minmax(160px,1fr))}.ehsModuleHead{align-items:flex-start;flex-direction:column}.ehsMiniStats{justify-content:flex-start}}
@media(max-width:650px){.ehsDashboardGrid{grid-template-columns:1fr}.ehsSubTabs button{flex:1 1 calc(50% - 8px)}.ehsMiniStats span{font-size:12px}.ehsSplit .form .span2{grid-column:auto}.ehsSplit .span2{grid-column:auto!important}}

/* =============================================================
   v8.1.0 UI REDESIGN
   Reference-inspired information architecture only.
   Existing EHS contents/data/functions are preserved.
   ============================================================= */
:root{
  --ehs-bg:#eef1f4;
  --ehs-panel:#ffffff;
  --ehs-line:#d9dee5;
  --ehs-line-soft:#e9edf1;
  --ehs-text:#24313d;
  --ehs-muted:#74808c;
  --ehs-navy:#203449;
  --ehs-blue:#2f6ea9;
  --ehs-blue-soft:#eaf2f9;
  --ehs-teal:#2c7a6b;
  --ehs-green:#2f7d4c;
  --ehs-amber:#b97718;
  --ehs-red:#c33a35;
}

/* ---------- administrator shell ---------- */
.shell.newAdminUI{max-width:none;width:100%;background:var(--ehs-bg);min-height:100vh;color:var(--ehs-text)}
.newAdminUI .ehsTopBar{
  position:sticky;top:0;z-index:80;
  min-height:70px;padding:8px 24px;
  display:grid;grid-template-columns:minmax(260px,1fr) auto minmax(300px,1fr);
  align-items:center;gap:18px;background:#fff;border-bottom:1px solid var(--ehs-line);
  box-shadow:0 1px 4px rgba(25,42,60,.04)
}
.newAdminUI .ehsBrandArea{display:flex;align-items:center;gap:12px;min-width:0}
.newAdminUI .ehsBrandArea .topCompanyLogo{width:76px;height:48px;object-fit:contain}
.newAdminUI .ehsBrandCopy{min-width:0;line-height:1.15}
.newAdminUI .ehsBrandCopy .systemBrandMain{font-size:15px;font-weight:950;letter-spacing:.1px;color:#1f2f3d}
.newAdminUI .ehsProductLine{margin-top:4px;color:#7b8792;font-size:10px;font-weight:800;letter-spacing:.55px;white-space:nowrap}
.newAdminUI .ehsProductLine span{margin-left:5px;padding:2px 5px;background:#edf2f7;border:1px solid #dde4eb;color:#4e6174;font-size:9px;letter-spacing:0}
.newAdminUI .ehsTopPageTitle{font-size:16px;font-weight:900;color:#273746;white-space:nowrap}
/* v8.1.6 - 산업안전 허브 메뉴 + 대시보드 타이틀 유지 */
.newAdminUI .ehsTopPageTitle.dashboardMainTitle{
  display:block;
  justify-self:center;
  font-size:32px;
  line-height:1.08;
  font-weight:950;
  letter-spacing:1px;
  color:#173f67;
  padding:6px 22px 8px;
  border-bottom:4px solid #2f6ea9;
  text-shadow:0 1px 0 rgba(255,255,255,.8);
}

.newAdminUI .ehsTopUser{justify-self:end;display:flex;align-items:center;gap:7px;min-width:0}
.newAdminUI .ehsUserIdentity{display:flex;flex-direction:column;align-items:flex-end;margin-right:5px;line-height:1.3}
.newAdminUI .ehsUserIdentity b{font-size:12px;color:#253544}
.newAdminUI .ehsUserIdentity span{font-size:10px;color:#7e8a95;white-space:nowrap}
.newAdminUI .ehsHeaderBtn{min-height:30px;padding:5px 9px;border:1px solid #cfd6dd;border-radius:4px;background:#fff;color:#465665;font-size:10px;font-weight:800;cursor:pointer}
.newAdminUI .ehsHeaderBtn:hover{background:#f4f7f9;border-color:#aebbc7}
.newAdminUI .ehsHeaderBtn.logout{color:#8d3431;border-color:#e2c0be;background:#fffafa}

/* ---------- horizontal navigation ---------- */
.newAdminUI .ehsNavDock{position:sticky;top:70px;z-index:70;background:#fff;border-bottom:1px solid var(--ehs-line);box-shadow:0 2px 5px rgba(24,42,60,.035)}
.newAdminUI .ehsPrimaryNav{display:flex;justify-content:center;align-items:stretch;min-height:50px;padding:0 18px;overflow-x:auto;scrollbar-width:thin}
.newAdminUI .ehsPrimaryNav .adminMenuBtn{
  appearance:none;border:0;border-bottom:3px solid transparent;border-radius:0;background:#fff;
  color:#5a6875;min-width:96px;padding:7px 13px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  font-size:11px;font-weight:850;white-space:nowrap;cursor:pointer;box-shadow:none
}
.newAdminUI .ehsPrimaryNav .adminMenuBtn:hover{background:#f6f8fa;color:#263949}
.newAdminUI .ehsPrimaryNav .adminMenuBtn.active{background:#f8fbfd;color:#1f4f78;border-bottom-color:var(--ehs-blue);box-shadow:none}
.newAdminUI .ehsLineIcon{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;color:currentColor}
.newAdminUI .ehsLineIcon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.newAdminUI .ehsUtilityNav{min-height:35px;display:flex;align-items:center;justify-content:center;gap:4px;padding:4px 18px;background:#f6f7f8;border-top:1px solid #f0f2f4;overflow-x:auto}
.newAdminUI .ehsUtilityLabel{font-size:9px;font-weight:900;letter-spacing:.3px;color:#919ca6;margin-right:4px;white-space:nowrap}
.newAdminUI .ehsUtilityNav .adminMenuBtn{border:1px solid transparent;background:transparent;color:#66737f;border-radius:3px;padding:5px 9px;font-size:10px;font-weight:800;white-space:nowrap;box-shadow:none;min-height:25px}
.newAdminUI .ehsUtilityNav .adminMenuBtn:hover{background:#fff;border-color:#d9dfe4;color:#33495d}
.newAdminUI .ehsUtilityNav .adminMenuBtn.active{background:#e8f0f7;border-color:#c7d8e8;color:#24577f}
.newAdminUI .ehsUtilityNav .utilityAction{margin-left:4px;color:#4d5d6a}

/* ---------- workspace ---------- */
.newAdminUI .ehsAdminWorkspace{padding:14px 18px 30px;max-width:1680px;margin:0 auto}
.newAdminUI .ehsAdminBody{min-height:620px}
.newAdminUI .ehsPanel,.newAdminUI .box,.newAdminUI .card,.newAdminUI .item{
  background:#fff;border:1px solid var(--ehs-line);border-radius:5px;box-shadow:0 1px 3px rgba(20,38,55,.035)
}
.newAdminUI .box,.newAdminUI .card,.newAdminUI .item{padding:14px}
.newAdminUI .section{font-size:14px;color:#253746;font-weight:900;margin:16px 0 9px}
.newAdminUI .btn{border-radius:4px;min-height:32px;padding:7px 11px;background:#2d4358;font-size:11px;box-shadow:none}
.newAdminUI .btn:hover{filter:brightness(.96)}
.newAdminUI .btn.alt{background:#f3f5f7;color:#40505f;border:1px solid #d7dde3}
.newAdminUI .btn.red{background:#a8413c}.newAdminUI .btn.green{background:#34745a}
.newAdminUI input,.newAdminUI select,.newAdminUI textarea{border-radius:4px;border-color:#cfd7df;font-size:12px;padding:8px 9px;min-height:34px}
.newAdminUI textarea{min-height:72px}
.newAdminUI .label{font-size:10px;color:#596775;letter-spacing:.1px}
.newAdminUI .tablewrap{border-radius:4px;border-color:#d9dfe5;box-shadow:none}
.newAdminUI .table th{background:#f3f5f7;color:#53616e;font-size:10px;font-weight:900;border-bottom:1px solid #d6dde4}
.newAdminUI .table td{font-size:11px;color:#334454}
.newAdminUI .table tr:hover td{background:#fafcfd}
.newAdminUI .badge{border-radius:3px;padding:3px 6px;font-size:9px}
.newAdminUI .notice,.newAdminUI .lan{border-radius:4px;border:1px solid #dbe4ec;background:#f4f8fb;color:#435666}
.newAdminUI .panel2{grid-template-columns:360px minmax(0,1fr);gap:12px}
.newAdminUI .stickybox{top:170px}

/* ---------- dashboard composition ---------- */
.newAdminUI .ehsDashboardTop{display:grid;grid-template-columns:230px minmax(520px,1fr) 300px;gap:10px;margin-bottom:10px}
.newAdminUI .ehsDashboardMain{display:grid;grid-template-columns:minmax(680px,1fr) 340px;gap:10px;margin-bottom:10px}
.newAdminUI .ehsDashboardBottom{display:grid;grid-template-columns:minmax(680px,1fr) 340px;gap:10px}
.newAdminUI .ehsDashboardTop>.ehsPanel,.newAdminUI .ehsDashboardMain>.ehsPanel,.newAdminUI .ehsDashboardBottom>.ehsPanel{padding:13px 14px}
.newAdminUI .ehsPanelCaption{font-size:9px;font-weight:950;letter-spacing:.8px;color:#8a96a1;text-transform:uppercase}
.newAdminUI .ehsPanelHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--ehs-line-soft)}
.newAdminUI .ehsPanelHeader.compact{padding-bottom:8px;margin-bottom:6px}
.newAdminUI .ehsPanelHeader h3,.newAdminUI .ehsPanelTitleRow h2{margin:3px 0 0;color:#263746;line-height:1.25}
.newAdminUI .ehsPanelHeader h3{font-size:13px}.newAdminUI .ehsPanelTitleRow h2{font-size:15px}
.newAdminUI .ehsHeaderMeta{align-self:end;font-size:9px;color:#919ba5}

.newAdminUI .ehsClockPanel{display:flex;flex-direction:column;justify-content:center;min-height:146px}
.newAdminUI .ehsClockDate{font-size:11px;font-weight:800;color:#687682;margin-top:9px}
.newAdminUI .ehsClockTime{font-size:30px;font-weight:650;letter-spacing:-1px;color:#2c3945;margin:2px 0 10px;font-variant-numeric:tabular-nums}
.newAdminUI .ehsClockFoot{font-size:9px;color:#7a8793;display:flex;align-items:center;gap:6px;padding-top:8px;border-top:1px solid var(--ehs-line-soft)}
.newAdminUI .statusPulse{width:7px;height:7px;border-radius:50%;display:inline-block;background:#b2bac1;box-shadow:0 0 0 3px rgba(178,186,193,.15)}
.newAdminUI .statusPulse.online{background:#3f9865;box-shadow:0 0 0 3px rgba(63,152,101,.12)}

.newAdminUI .ehsHeadlinePanel{min-height:146px}
.newAdminUI .ehsPanelTitleRow{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.newAdminUI .ehsOverallStatus{display:inline-flex;align-items:center;justify-content:center;min-width:68px;height:24px;padding:0 8px;border-radius:3px;font-size:10px;font-weight:900;border:1px solid}
.newAdminUI .ehsOverallStatus.normal{background:#edf7f0;color:#34734c;border-color:#c9e2d0}
.newAdminUI .ehsOverallStatus.attention{background:#fff7e8;color:#9b671b;border-color:#ecd5ac}
.newAdminUI .ehsOverallStatus.critical{background:#fff0ef;color:#a8443f;border-color:#e9c0bd}
.newAdminUI .ehsHeadlineStats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:14px;border:1px solid #e1e6eb}
.newAdminUI .ehsHeadlineStats button{min-height:64px;border:0;border-right:1px solid #e1e6eb;background:#fbfcfd;cursor:pointer;padding:8px;text-align:center;color:#445463}
.newAdminUI .ehsHeadlineStats button:last-child{border-right:0}
.newAdminUI .ehsHeadlineStats button:hover{background:#f1f6fa}
.newAdminUI .ehsHeadlineStats strong{display:block;font-size:22px;line-height:1;color:#294a67;font-variant-numeric:tabular-nums}
.newAdminUI .ehsHeadlineStats strong em{font-size:11px;font-style:normal;color:#86929d;margin-left:1px}
.newAdminUI .ehsHeadlineStats span{display:block;margin-top:6px;font-size:9px;color:#788591;font-weight:800}

.newAdminUI .ehsResourcePanel{min-height:146px}
.newAdminUI .ehsResourceNumbers{display:grid;grid-template-columns:1fr 1fr;margin:9px 0 12px;border:1px solid #e2e7ec}
.newAdminUI .ehsResourceNumbers>div{padding:9px;text-align:center;background:#fbfcfd}
.newAdminUI .ehsResourceNumbers>div+div{border-left:1px solid #e2e7ec}
.newAdminUI .ehsResourceNumbers strong{display:block;font-size:22px;color:#334b61;line-height:1}.newAdminUI .ehsResourceNumbers span{font-size:9px;color:#7d8993}
.newAdminUI .ehsProgressLabel{display:flex;justify-content:space-between;font-size:9px;color:#687682;margin-bottom:5px}.newAdminUI .ehsProgressLabel b{color:#42586b}
.newAdminUI .ehsProgressTrack{height:6px;background:#e8edf1;overflow:hidden;border-radius:99px}.newAdminUI .ehsProgressTrack i{display:block;height:100%;background:#4d81ad;border-radius:99px}

/* module tiles */
.newAdminUI .ehsModulePanel{min-height:363px}
.newAdminUI .ehsModuleTileGrid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:8px}
.newAdminUI .ehsModuleTile{position:relative;min-height:118px;border:1px solid #dce2e7;background:#fff;padding:12px;text-align:left;cursor:pointer;display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto 1fr;gap:8px 9px;color:#344553;transition:.15s ease}
.newAdminUI .ehsModuleTile:hover{border-color:#aebdca;box-shadow:0 3px 10px rgba(31,54,75,.07);transform:translateY(-1px)}
.newAdminUI .ehsModuleTile.attention{border-top:3px solid #d29a43;padding-top:10px;background:#fffdf8}
.newAdminUI .ehsModuleTile.normal{border-top:3px solid #8aa4bb;padding-top:10px}
.newAdminUI .ehsModuleTileIcon{grid-row:1/3;width:34px;height:34px;border:1px solid #d8e0e6;background:#f4f7f9;display:flex;align-items:center;justify-content:center;color:#526e85}
.newAdminUI .ehsModuleTileIcon .ehsLineIcon{width:21px;height:21px}.newAdminUI .ehsModuleTileIcon svg{width:21px;height:21px}
.newAdminUI .ehsModuleTileText{min-width:0}.newAdminUI .ehsModuleTileText b{display:block;font-size:11px;color:#2e3f4d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.newAdminUI .ehsModuleTileText small{display:block;margin-top:5px;font-size:9px;line-height:1.45;color:#87929c}
.newAdminUI .ehsModuleTileValue{position:absolute;right:10px;bottom:8px;font-size:19px;font-weight:900;color:#526b80;font-variant-numeric:tabular-nums}
.newAdminUI .ehsModuleTile.attention .ehsModuleTileValue{color:#a76b18}

/* attention list */
.newAdminUI .ehsAttentionPanel{min-height:363px}
.newAdminUI .ehsAttentionCount{min-width:36px;height:30px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:900;border-left:3px solid #9eabb5;background:#f2f4f6;color:#5d6c78}
.newAdminUI .ehsAttentionCount.attention{border-left-color:#d0983f;background:#fff8e9;color:#a56915}.newAdminUI .ehsAttentionCount.critical{border-left-color:#c84b46;background:#fff0ef;color:#a53c38}
.newAdminUI .ehsAlertList{display:grid;gap:0}
.newAdminUI .ehsAlertRow{width:100%;min-height:47px;display:grid;grid-template-columns:8px minmax(0,1fr) auto 11px;align-items:center;gap:8px;border:0;border-bottom:1px solid #edf0f2;background:#fff;padding:6px 2px;cursor:pointer;text-align:left;color:#4b5b69}
.newAdminUI .ehsAlertRow:hover{background:#fafcfd}.newAdminUI .ehsAlertRow:last-child{border-bottom:0}
.newAdminUI .ehsAlertDot{width:6px;height:6px;border-radius:50%;background:#72a084}.newAdminUI .ehsAlertRow.attention .ehsAlertDot{background:#cf963c}.newAdminUI .ehsAlertRow.critical .ehsAlertDot{background:#c64a45}
.newAdminUI .ehsAlertCopy b{display:block;font-size:10px}.newAdminUI .ehsAlertCopy small{display:block;margin-top:2px;font-size:8.5px;color:#8a959f}
.newAdminUI .ehsAlertRow strong{min-width:24px;text-align:right;font-size:16px;color:#4e6172}.newAdminUI .ehsAlertRow.attention strong{color:#a76d18}.newAdminUI .ehsAlertRow.critical strong{color:#ae413c}
.newAdminUI .ehsChevron{font-size:18px;color:#aab3ba}

/* dashboard bottom table */
.newAdminUI .ehsStatusTablePanel{min-height:278px}
.newAdminUI .ehsCompactTable{border:1px solid #e1e6eb}
.newAdminUI .ehsCompactTable>div{display:grid;grid-template-columns:1.05fr 1.7fr 85px 58px;align-items:center;min-height:38px;border-bottom:1px solid #edf0f2;padding:0 8px;font-size:10px;color:#53616d}
.newAdminUI .ehsCompactTable>div:last-child{border-bottom:0}.newAdminUI .ehsCompactTable .ehsCompactHead{min-height:29px;background:#f3f5f7;color:#7a8690;font-size:9px;font-weight:900}
.newAdminUI .ehsCompactTable>div:not(.ehsCompactHead):hover{background:#fbfcfd}
.newAdminUI .ehsCompactTable>div>span:first-child{font-weight:850;color:#344654}
.newAdminUI .ehsCompactTable button{justify-self:end;border:1px solid #d4dbe1;background:#fff;border-radius:3px;padding:4px 7px;font-size:9px;color:#4b6478;cursor:pointer}.newAdminUI .ehsCompactTable button:hover{background:#eef4f8}
.newAdminUI .miniState{justify-self:start;border-radius:3px;padding:3px 6px;font-size:8px;font-weight:900;border:1px solid}.newAdminUI .miniState.ok{background:#edf7f0;color:#397450;border-color:#cce1d2}.newAdminUI .miniState.warn{background:#fff8e9;color:#99661d;border-color:#ecd6ad}.newAdminUI .miniState.bad{background:#fff0ef;color:#a8443f;border-color:#e9c2bf}

/* quick action */
.newAdminUI .ehsQuickPanel{min-height:278px}
.newAdminUI .ehsQuickGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.newAdminUI .ehsQuickGrid button{min-height:72px;border:1px solid #dce2e7;background:#fafbfc;color:#586875;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;padding:5px;font-size:9px;font-weight:800}
.newAdminUI .ehsQuickGrid button:hover{background:#f1f6f9;border-color:#b8c7d3;color:#345a77}
.newAdminUI .ehsQuickGrid .ehsLineIcon{width:22px;height:22px}.newAdminUI .ehsQuickGrid svg{width:22px;height:22px}
.newAdminUI .ehsLanInfo{margin-top:10px;padding:8px 9px;border:1px solid #e0e5ea;background:#f7f9fa;display:flex;align-items:center;gap:8px;color:#667480}.newAdminUI .ehsLanInfo b{display:block;font-size:9px}.newAdminUI .ehsLanInfo code{display:block;margin-top:1px;font-size:9px;color:#4b6478;font-family:Consolas,monospace}

/* ---------- restyled EHS/detail modules ---------- */
.newAdminUI .ehsModuleHead{border-radius:5px;border-left:4px solid #587a98;padding:12px 14px;margin:0 0 10px;box-shadow:none;background:#fff}
.newAdminUI .committeeHead{border-left-color:#6570a6}.newAdminUI .gasHead{border-left-color:#3b8574}.newAdminUI .fireHead{border-left-color:#b95f56}.newAdminUI .environmentHead{border-left-color:#668b58}
.newAdminUI .ehsMiniStats span{border:1px solid #e0e5e9;background:#f7f9fa;border-radius:3px;padding:6px 9px;font-size:10px}.newAdminUI .ehsMiniStats b{font-size:14px}
.newAdminUI .ehsSubTabs{gap:4px;margin-bottom:10px;border-bottom:1px solid #d9dfe4;padding-bottom:5px}
.newAdminUI .ehsSubTabs button{border-radius:3px;padding:7px 10px;font-size:10px;background:#fff}.newAdminUI .ehsSubTabs button.active{background:#334e66;border-color:#334e66}
.newAdminUI .registrationSettingsHeader{border-radius:5px}
.newAdminUI .registrationSettingsMenu{gap:8px}.newAdminUI .registrationSettingsCard{border-radius:4px;box-shadow:none}.newAdminUI .registrationSettingsCard:hover{transform:none;box-shadow:0 2px 7px rgba(30,50,70,.06)}
.newAdminUI .modalCard{border-radius:6px}

/* ---------- login facelift ---------- */
body:has(.login) {background:#eef1f4}
.login{max-width:470px;margin:45px auto;padding:18px}
.loginbox{border-radius:7px;border:1px solid #d7dee4;box-shadow:0 6px 24px rgba(28,46,63,.08)}
.loginCompanyBrand{background:#fff;border:1px solid #dde3e8;padding:15px 18px;border-radius:7px;box-shadow:0 2px 8px rgba(28,46,63,.04)}
.loginProductName{font-size:24px;color:#273846}.loginProductName span{color:#2f6ea9}

/* ---------- responsive ---------- */
@media(max-width:1280px){
  .newAdminUI .ehsTopBar{grid-template-columns:minmax(220px,1fr) auto minmax(250px,1fr);gap:10px;padding-left:16px;padding-right:16px}
  .newAdminUI .ehsTopPageTitle{display:block}
  .newAdminUI .ehsTopPageTitle.dashboardMainTitle{font-size:25px;padding:5px 12px 7px;letter-spacing:.5px}
  .newAdminUI .ehsBrandCopy .ehsProductLine{font-size:9px}
  .newAdminUI .ehsUserIdentity span{display:none}
  .newAdminUI .ehsDashboardTop{grid-template-columns:210px 1fr 260px}
  .newAdminUI .ehsDashboardMain,.newAdminUI .ehsDashboardBottom{grid-template-columns:minmax(620px,1fr) 300px}
  .newAdminUI .ehsModuleTileGrid{grid-template-columns:repeat(3,minmax(150px,1fr))}
}
@media(max-width:1040px){
  .newAdminUI .ehsDashboardTop{grid-template-columns:200px 1fr}.newAdminUI .ehsResourcePanel{grid-column:1/-1;min-height:auto}
  .newAdminUI .ehsDashboardMain,.newAdminUI .ehsDashboardBottom{grid-template-columns:1fr}.newAdminUI .ehsAttentionPanel,.newAdminUI .ehsQuickPanel{min-height:auto}
  .newAdminUI .ehsModuleTileGrid{grid-template-columns:repeat(4,minmax(130px,1fr))}
}
@media(max-width:800px){
  .newAdminUI .ehsTopBar{position:relative;grid-template-columns:1fr;padding:8px 12px;gap:6px}.newAdminUI .ehsTopPageTitle{display:none}.newAdminUI .ehsTopUser{justify-self:stretch;justify-content:flex-end;border-top:1px solid #edf0f2;padding-top:6px}.newAdminUI .ehsBrandArea .topCompanyLogo{width:62px;height:40px}
  .newAdminUI .ehsNavDock{top:0}.newAdminUI .ehsPrimaryNav{justify-content:flex-start;padding:0 6px}.newAdminUI .ehsPrimaryNav .adminMenuBtn{min-width:86px;padding-inline:9px}.newAdminUI .ehsUtilityNav{justify-content:flex-start;padding-inline:8px}
  .newAdminUI .ehsAdminWorkspace{padding:9px}.newAdminUI .ehsDashboardTop{grid-template-columns:1fr}.newAdminUI .ehsClockPanel{min-height:115px}.newAdminUI .ehsHeadlineStats{grid-template-columns:repeat(2,1fr)}.newAdminUI .ehsHeadlineStats button:nth-child(2){border-right:0}.newAdminUI .ehsHeadlineStats button:nth-child(-n+2){border-bottom:1px solid #e1e6eb}
  .newAdminUI .ehsModuleTileGrid{grid-template-columns:repeat(2,minmax(130px,1fr))}.newAdminUI .ehsModulePanel{min-height:auto}
  .newAdminUI .ehsCompactTable>div{grid-template-columns:1fr 1.5fr 70px 46px;font-size:9px}.newAdminUI .panel2{grid-template-columns:1fr}.newAdminUI .stickybox{position:static}
}
@media(max-width:520px){
  .newAdminUI .ehsUserIdentity{display:none}.newAdminUI .ehsPrimaryNav .adminMenuBtn{min-width:76px;font-size:9px}.newAdminUI .ehsLineIcon{width:18px;height:18px}.newAdminUI .ehsLineIcon svg{width:18px;height:18px}
  .newAdminUI .ehsModuleTileGrid{grid-template-columns:1fr}.newAdminUI .ehsCompactTable{overflow-x:auto}.newAdminUI .ehsCompactTable>div{min-width:540px}.newAdminUI .ehsQuickGrid{grid-template-columns:repeat(2,1fr)}
}

/* v8.1.1 - hard visual build marker / cache-safe UI */
.uiBuildFlag{display:inline-flex;align-items:center;margin-left:7px;padding:2px 7px;border-radius:3px;background:#174a73;color:#fff;font-style:normal;font-size:9px;font-weight:900;letter-spacing:.4px;vertical-align:1px}
@media(max-width:900px){.uiBuildFlag{display:none}}

/* =============================================================
   v8.1.2 USER UI UNIFICATION
   Employee / supervisor screens aligned with the approved EHS UI.
   ============================================================= */
.mobile.newUserUI{
  max-width:none;width:100%;margin:0;background:var(--ehs-bg);min-height:100vh;color:var(--ehs-text)
}
.newUserUI .userEhsTopBar{
  position:sticky;top:0;z-index:80;min-height:70px;padding:8px 24px;
  display:grid;grid-template-columns:minmax(260px,1fr) auto minmax(300px,1fr);
  align-items:center;gap:18px;background:#fff;border-bottom:1px solid var(--ehs-line);
  box-shadow:0 1px 4px rgba(25,42,60,.04)
}
.newUserUI .userBrandArea{display:flex;align-items:center;gap:12px;min-width:0}
.newUserUI .userBrandArea .topCompanyLogo{width:76px;height:48px;object-fit:contain}
.newUserUI .userBrandCopy{min-width:0;line-height:1.15}
.newUserUI .userBrandCopy .systemBrandMain{font-size:15px;font-weight:950;letter-spacing:.1px;color:#1f2f3d}
.newUserUI .userBrandCopy .ehsProductLine{margin-top:4px;color:#7b8792;font-size:10px;font-weight:800;letter-spacing:.55px;white-space:nowrap}
.newUserUI .userBrandCopy .ehsProductLine span{margin-left:5px;padding:2px 5px;background:#edf2f7;border:1px solid #dde4eb;color:#4e6174;font-size:9px;letter-spacing:0}
.newUserUI .userTopPageTitle{font-size:16px;font-weight:900;color:#273746;white-space:nowrap}
.newUserUI .userTopIdentity{justify-self:end;display:flex;align-items:center;gap:7px;min-width:0}
.newUserUI .userIdentityCopy{display:flex;flex-direction:column;align-items:flex-end;margin-right:5px;line-height:1.3}
.newUserUI .userIdentityCopy b{font-size:12px;color:#253544}
.newUserUI .userIdentityCopy span{font-size:10px;color:#7e8a95;white-space:nowrap}
.newUserUI .ehsHeaderBtn{min-height:30px;padding:5px 9px;border:1px solid #cfd6dd;border-radius:4px;background:#fff;color:#465665;font-size:10px;font-weight:800;cursor:pointer}
.newUserUI .ehsHeaderBtn:hover{background:#f4f7f9;border-color:#aebbc7}
.newUserUI .ehsHeaderBtn.logout{color:#8d3431;border-color:#e2c0be;background:#fffafa}

.newUserUI .userNavDock{position:sticky;top:70px;z-index:70;background:#fff;border-bottom:1px solid var(--ehs-line);box-shadow:0 2px 5px rgba(24,42,60,.035)}
.newUserUI .userPrimaryNav{display:flex;justify-content:center;align-items:stretch;min-height:50px;padding:0 18px;overflow-x:auto;scrollbar-width:thin}
.newUserUI .userTopNavBtn{min-width:104px;min-height:50px;border:0;border-bottom:3px solid transparent;background:#fff;color:#697784;padding:6px 14px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:10.5px;font-weight:850;white-space:nowrap;cursor:pointer}
.newUserUI .userTopNavBtn:hover{background:#f6f8fa;color:#263949}
.newUserUI .userTopNavBtn.active{background:#f8fbfd;color:#1f4f78;border-bottom-color:var(--ehs-blue)}
.newUserUI .ehsLineIcon{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;color:currentColor}
.newUserUI .ehsLineIcon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.newUserUI .userUtilityNav{min-height:35px;display:flex;align-items:center;justify-content:center;gap:4px;padding:4px 18px;background:#f6f7f8;border-top:1px solid #f0f2f4;overflow-x:auto}
.newUserUI .userUtilityLabel{font-size:9px;font-weight:900;letter-spacing:.3px;color:#919ca6;margin-right:4px;white-space:nowrap}
.newUserUI .userUtilityBtn{border:1px solid transparent;background:transparent;color:#66737f;border-radius:3px;padding:5px 9px;font-size:10px;font-weight:800;white-space:nowrap;cursor:pointer;min-height:25px}
.newUserUI .userUtilityBtn:hover{background:#fff;border-color:#d9dfe4;color:#33495d}
.newUserUI .userUtilityBtn.active{background:#e8f0f7;border-color:#c7d8e8;color:#24577f}

.newUserUI .userWorkspace{padding:14px 18px 94px;max-width:1500px;margin:0 auto}
.newUserUI .ehsPanel,.newUserUI .box,.newUserUI .card,.newUserUI .item{
  background:#fff;border:1px solid var(--ehs-line);border-radius:5px;box-shadow:0 1px 3px rgba(20,38,55,.035)
}
.newUserUI .ehsPanelCaption{font-size:9px;font-weight:950;letter-spacing:.8px;color:#8a96a1;text-transform:uppercase}
.newUserUI .ehsPanelHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--ehs-line-soft)}
.newUserUI .ehsPanelHeader.compact{padding-bottom:8px;margin-bottom:6px}
.newUserUI .ehsPanelHeader h3,.newUserUI .ehsPanelTitleRow h2{margin:3px 0 0;color:#263746;line-height:1.25}
.newUserUI .ehsPanelHeader h3{font-size:13px}.newUserUI .ehsPanelTitleRow h2{font-size:15px}
.newUserUI .ehsPanelTitleRow{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.newUserUI .ehsHeaderMeta{align-self:end;font-size:9px;color:#919ba5}
.newUserUI .ehsOverallStatus{display:inline-flex;align-items:center;justify-content:center;min-width:82px;height:24px;padding:0 8px;border-radius:3px;font-size:10px;font-weight:900;border:1px solid}
.newUserUI .ehsOverallStatus.normal{background:#edf7f0;color:#34734c;border-color:#c9e2d0}
.newUserUI .ehsOverallStatus.attention{background:#fff7e8;color:#9b671b;border-color:#ecd5ac}
.newUserUI .statusPulse{width:7px;height:7px;border-radius:50%;display:inline-block;background:#a7b0b8}.newUserUI .statusPulse.online{background:#4d9965;box-shadow:0 0 0 3px rgba(77,153,101,.11)}

.newUserUI .userDashboardTop{display:grid;grid-template-columns:230px minmax(520px,1fr) 290px;gap:10px;margin-bottom:10px}
.newUserUI .userDashboardMain{display:grid;grid-template-columns:minmax(680px,1fr) 330px;gap:10px;margin-bottom:10px}
.newUserUI .userDashboardBottom{display:grid;grid-template-columns:minmax(680px,1fr) 330px;gap:10px}
.newUserUI .userDashboardTop>.ehsPanel,.newUserUI .userDashboardMain>.ehsPanel,.newUserUI .userDashboardBottom>.ehsPanel{padding:13px 14px}
.newUserUI .userClockPanel{display:flex;flex-direction:column;justify-content:center;min-height:146px}
.newUserUI .ehsClockDate{font-size:11px;font-weight:800;color:#687682;margin-top:9px}
.newUserUI .ehsClockTime{font-size:30px;font-weight:650;letter-spacing:-1px;color:#2c3945;margin:2px 0 10px;font-variant-numeric:tabular-nums}
.newUserUI .ehsClockFoot{font-size:9px;color:#7a8793;display:flex;align-items:center;gap:6px;padding-top:8px;border-top:1px solid var(--ehs-line-soft)}
.newUserUI .userHeadlinePanel{min-height:146px}
.newUserUI .userHeadlineStats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:14px;border:1px solid #e1e6eb}
.newUserUI .userHeadlineStats button{min-height:64px;border:0;border-right:1px solid #e1e6eb;background:#fbfcfd;cursor:pointer;padding:7px;text-align:center;color:#445463}
.newUserUI .userHeadlineStats button:last-child{border-right:0}.newUserUI .userHeadlineStats button:hover{background:#f1f6fa}
.newUserUI .userHeadlineStats strong{display:block;font-size:22px;line-height:1;color:#294a67;font-variant-numeric:tabular-nums}
.newUserUI .userHeadlineStats span{display:block;margin-top:5px;font-size:9px;color:#61717e;font-weight:900}.newUserUI .userHeadlineStats small{display:block;margin-top:2px;font-size:8px;color:#9aa4ac}
.newUserUI .userProfilePanel{min-height:146px}
.newUserUI .userProfileName{display:flex;align-items:baseline;justify-content:space-between;margin:9px 0 8px;padding-bottom:8px;border-bottom:1px solid #edf0f2}.newUserUI .userProfileName b{font-size:18px;color:#2e4355}.newUserUI .userProfileName span{font-size:9px;font-weight:900;color:#2f6ea9;background:#eaf2f9;border:1px solid #cddfee;padding:3px 6px}
.newUserUI .userProfileRows{display:grid;gap:5px}.newUserUI .userProfileRows>div{display:flex;justify-content:space-between;gap:10px;font-size:9px}.newUserUI .userProfileRows span{color:#87929c}.newUserUI .userProfileRows b{color:#465866}.newUserUI .textAttention{color:#a76d18!important}

.newUserUI .userModulePanel{min-height:350px}.newUserUI .userModuleGrid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:8px}
.newUserUI .userModuleTile{position:relative;min-height:112px;border:1px solid #dce2e7;background:#fff;padding:12px;text-align:left;cursor:pointer;display:grid;grid-template-columns:34px 1fr;gap:8px 9px;color:#344553;transition:.15s ease}
.newUserUI .userModuleTile:hover{border-color:#aebdca;box-shadow:0 3px 10px rgba(31,54,75,.07);transform:translateY(-1px)}
.newUserUI .userModuleTile.normal{border-top:3px solid #8aa4bb;padding-top:10px}.newUserUI .userModuleTile.attention{border-top:3px solid #d29a43;padding-top:10px;background:#fffdf8}
.newUserUI .userModuleTile .ehsModuleTileIcon{width:34px;height:34px;border:1px solid #d8e0e6;background:#f4f7f9;display:flex;align-items:center;justify-content:center;color:#526e85}
.newUserUI .userModuleTile>span:nth-child(2){min-width:0}.newUserUI .userModuleTile b{display:block;font-size:11px;color:#2e3f4d;line-height:1.35}.newUserUI .userModuleTile small{display:block;margin-top:5px;font-size:9px;line-height:1.45;color:#87929c}
.newUserUI .userModuleTile>strong{position:absolute;right:10px;bottom:8px;font-size:19px;font-weight:900;color:#526b80}.newUserUI .userModuleTile.attention>strong{color:#a76b18}

.newUserUI .userAttentionPanel{min-height:350px}.newUserUI .ehsAttentionCount{min-width:36px;height:30px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:900;border-left:3px solid #9eabb5;background:#f2f4f6;color:#5d6c78}.newUserUI .ehsAttentionCount.attention{border-left-color:#d0983f;background:#fff8e9;color:#a56915}
.newUserUI .ehsAlertList{display:grid;gap:0}.newUserUI .ehsAlertRow{width:100%;min-height:48px;display:grid;grid-template-columns:8px minmax(0,1fr) auto 11px;align-items:center;gap:8px;border:0;border-bottom:1px solid #edf0f2;background:#fff;padding:6px 2px;cursor:pointer;text-align:left;color:#4b5b69}.newUserUI .ehsAlertRow:hover{background:#fafcfd}.newUserUI .ehsAlertRow:last-child{border-bottom:0}
.newUserUI .ehsAlertDot{width:6px;height:6px;border-radius:50%;background:#72a084}.newUserUI .ehsAlertRow.attention .ehsAlertDot{background:#cf963c}.newUserUI .ehsAlertRow.critical .ehsAlertDot{background:#c64a45}.newUserUI .ehsAlertCopy b{display:block;font-size:10px}.newUserUI .ehsAlertCopy small{display:block;margin-top:2px;font-size:8.5px;color:#8a959f}.newUserUI .ehsAlertRow strong{min-width:24px;text-align:right;font-size:16px;color:#4e6172}.newUserUI .ehsAlertRow.attention strong{color:#a76d18}.newUserUI .ehsAlertRow.critical strong{color:#ae413c}.newUserUI .ehsChevron{font-size:18px;color:#aab3ba}
.newUserUI .userLeaderManageBtn{width:100%;margin-top:10px;border:1px solid #dce2e7;background:#f8fafb;display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;text-align:left;padding:9px;color:#4e6172;cursor:pointer}.newUserUI .userLeaderManageBtn.attention{border-left:3px solid #cf963c;background:#fffaf0}.newUserUI .userLeaderManageBtn span b{display:block;font-size:10px}.newUserUI .userLeaderManageBtn span small{display:block;font-size:8px;color:#87929c;margin-top:2px}.newUserUI .userLeaderManageBtn i{font-style:normal;font-size:18px;color:#aab3ba}

.newUserUI .userStatusPanel{min-height:275px}.newUserUI .userStatusTable{border:1px solid #e1e6eb}.newUserUI .userStatusTable>div{display:grid;grid-template-columns:1.05fr 1.7fr 85px 58px;align-items:center;min-height:38px;border-bottom:1px solid #edf0f2;padding:0 8px;font-size:10px;color:#53616d}.newUserUI .userStatusTable>div:last-child{border-bottom:0}.newUserUI .userStatusTable .userStatusHead{min-height:29px;background:#f3f5f7;color:#7a8690;font-size:9px;font-weight:900}.newUserUI .userStatusTable>div:not(.userStatusHead):hover{background:#fbfcfd}.newUserUI .userStatusTable>div>span:first-child{font-weight:850;color:#344654}.newUserUI .userStatusTable button{justify-self:end;border:1px solid #d4dbe1;background:#fff;border-radius:3px;padding:4px 7px;font-size:9px;color:#4b6478;cursor:pointer}.newUserUI .userStatusTable button:hover{background:#eef4f8}
.newUserUI .miniState{justify-self:start;border-radius:3px;padding:3px 6px;font-size:8px;font-weight:900;border:1px solid}.newUserUI .miniState.ok{background:#edf7f0;color:#397450;border-color:#cce1d2}.newUserUI .miniState.warn{background:#fff8e9;color:#99661d;border-color:#ecd6ad}.newUserUI .miniState.bad{background:#fff0ef;color:#a8443f;border-color:#e9c2bf}
.newUserUI .userQuickPanel{min-height:275px}.newUserUI .userQuickGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.newUserUI .userQuickGrid button{min-height:70px;border:1px solid #dce2e7;background:#fafbfc;color:#586875;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;padding:5px;font-size:9px;font-weight:800}.newUserUI .userQuickGrid button:hover{background:#f1f6f9;border-color:#b8c7d3;color:#345a77}.newUserUI .userQuickGrid .ehsLineIcon{width:22px;height:22px}.newUserUI .userQuickGrid svg{width:22px;height:22px}
.newUserUI .ehsLanInfo{margin-top:10px;padding:8px 9px;border:1px solid #e0e5ea;background:#f7f9fa;display:flex;align-items:center;gap:8px;color:#667480}.newUserUI .ehsLanInfo b{display:block;font-size:9px}.newUserUI .ehsLanInfo code{display:block;margin-top:1px;font-size:9px;color:#4b6478;font-family:Consolas,monospace}

/* Details keep their functionality but inherit the approved visual system. */
.newUserUI>.main,.newUserUI .main{max-width:1120px;margin:0 auto;padding:14px 18px 94px}
.newUserUI .section{font-size:14px;color:#2d3f4e;margin:18px 0 8px}
.newUserUI .card,.newUserUI .box,.newUserUI .item{border-radius:5px;box-shadow:0 1px 3px rgba(20,38,55,.035)}
.newUserUI .notice,.newUserUI .lan{border-radius:5px;border:1px solid #dbe4eb;background:#f5f8fb;color:#53616d}
.newUserUI .btn{border-radius:4px;background:#2e4b65;font-size:12px}.newUserUI .btn.alt{background:#eef2f5;color:#40515f;border:1px solid #d8e0e6}.newUserUI .btn.red{background:#a84a44}.newUserUI .btn.green{background:#39745a}
.newUserUI input,.newUserUI select,.newUserUI textarea{border-radius:4px;border-color:#cfd7de}.newUserUI .badge{border-radius:3px}
.newUserUI .pendingline{border-left:4px solid #c84b46!important}.newUserUI .warnline{border-left:4px solid #d0983f!important}

/* Desktop uses the new top menu; mobile keeps the familiar bottom quick menu. */
.newUserUI .bottom{display:none}
@media(max-width:1180px){
  .newUserUI .userEhsTopBar{grid-template-columns:1fr auto}.newUserUI .userTopPageTitle{display:none}
  .newUserUI .userDashboardTop{grid-template-columns:210px 1fr}.newUserUI .userProfilePanel{grid-column:1/-1;min-height:auto}
  .newUserUI .userDashboardMain,.newUserUI .userDashboardBottom{grid-template-columns:1fr}.newUserUI .userAttentionPanel,.newUserUI .userQuickPanel{min-height:auto}
  .newUserUI .userModuleGrid{grid-template-columns:repeat(4,minmax(130px,1fr))}
}
@media(max-width:820px){
  .newUserUI .userEhsTopBar{position:relative;grid-template-columns:1fr;padding:8px 12px;gap:6px}.newUserUI .userTopIdentity{justify-self:stretch;justify-content:flex-end;border-top:1px solid #edf0f2;padding-top:6px}.newUserUI .userBrandArea .topCompanyLogo{width:62px;height:40px}
  .newUserUI .userNavDock{top:0}.newUserUI .userPrimaryNav{justify-content:flex-start;padding:0 6px}.newUserUI .userTopNavBtn{min-width:86px;padding-inline:9px}.newUserUI .userUtilityNav{justify-content:flex-start;padding-inline:8px}
  .newUserUI .userWorkspace{padding:9px 9px 96px}.newUserUI .userDashboardTop{grid-template-columns:1fr}.newUserUI .userClockPanel{min-height:112px}.newUserUI .userHeadlineStats{grid-template-columns:repeat(2,1fr)}.newUserUI .userHeadlineStats button:nth-child(2){border-right:0}.newUserUI .userHeadlineStats button:nth-child(-n+2){border-bottom:1px solid #e1e6eb}
  .newUserUI .userModuleGrid{grid-template-columns:repeat(2,minmax(130px,1fr))}.newUserUI .userModulePanel{min-height:auto}.newUserUI .userStatusTable>div{grid-template-columns:1fr 1.5fr 70px 46px;font-size:9px}
}
@media(max-width:640px){
  .newUserUI .userNavDock{display:none}.newUserUI .userEhsTopBar{position:sticky;top:0;min-height:58px}.newUserUI .userIdentityCopy{display:none}.newUserUI .userTopIdentity{position:absolute;right:9px;top:12px;border:0;padding:0}.newUserUI .userTopIdentity .ehsHeaderBtn{font-size:9px;min-height:27px;padding:4px 7px}.newUserUI .userBrandArea{padding-right:116px}.newUserUI .userBrandArea .topCompanyLogo{width:54px;height:34px}.newUserUI .userBrandCopy .systemBrandMain{font-size:12px}.newUserUI .userBrandCopy .ehsProductLine{font-size:8px}
  .newUserUI .userWorkspace{padding:8px 8px 92px}.newUserUI .userDashboardTop,.newUserUI .userDashboardMain,.newUserUI .userDashboardBottom{gap:7px;margin-bottom:7px}.newUserUI .userDashboardTop>.ehsPanel,.newUserUI .userDashboardMain>.ehsPanel,.newUserUI .userDashboardBottom>.ehsPanel{padding:11px}
  .newUserUI .userClockPanel{display:none}.newUserUI .userHeadlinePanel{min-height:auto}.newUserUI .ehsPanelTitleRow h2{font-size:14px}.newUserUI .ehsOverallStatus{min-width:70px;font-size:9px}.newUserUI .userHeadlineStats{margin-top:10px}.newUserUI .userHeadlineStats button{min-height:58px}.newUserUI .userHeadlineStats strong{font-size:20px}
  .newUserUI .userProfilePanel{display:none}.newUserUI .userModuleGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.newUserUI .userModuleTile{min-height:98px;padding:9px;grid-template-columns:30px 1fr;gap:6px}.newUserUI .userModuleTile .ehsModuleTileIcon{width:30px;height:30px}.newUserUI .userModuleTile b{font-size:10px}.newUserUI .userModuleTile small{font-size:8px}.newUserUI .userModuleTile>strong{font-size:17px;right:8px;bottom:6px}
  .newUserUI .userStatusTable{overflow-x:auto}.newUserUI .userStatusTable>div{min-width:520px}.newUserUI .userQuickGrid{grid-template-columns:repeat(3,1fr)}
  .newUserUI .main{padding:10px 10px 88px}.newUserUI .bottom{display:flex;max-width:none;background:#284d6c;border-top-color:#456982;box-shadow:0 -5px 18px rgba(30,52,70,.20)}.newUserUI .bottom .quickNavBtn{min-height:55px;border-radius:4px}.newUserUI .bottom .quickNavBtn.active{background:rgba(255,255,255,.14)}.newUserUI .bottom .quickNavIcon{font-size:22px}.newUserUI .bottom .quickNavText{font-size:11px}
}
@media(max-width:410px){
  .newUserUI .userBrandCopy .ehsProductLine{display:none}.newUserUI .userBrandArea{padding-right:108px}.newUserUI .userModuleGrid{grid-template-columns:1fr}.newUserUI .userQuickGrid{grid-template-columns:repeat(2,1fr)}
}

@media (max-width:1100px) and (min-width:801px){
  .newAdminUI .ehsTopBar{grid-template-columns:minmax(190px,1fr) auto minmax(210px,1fr)}
  .newAdminUI .ehsBrandCopy .ehsProductLine{display:none}
  .newAdminUI .ehsTopPageTitle.dashboardMainTitle{display:block;font-size:22px;padding:4px 9px 6px;letter-spacing:.2px}
}


/* ---------- v8.1.6 Industrial Safety Hub ---------- */
.newAdminUI .safetyHubHead{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 12px;padding:17px 18px;border:1px solid #dce3e9;border-left:4px solid #557b9d;background:#fff;box-shadow:0 2px 7px rgba(35,55,72,.04)}
.newAdminUI .safetyHubHead p{margin:4px 0 0;color:#788691;font-size:11px;line-height:1.6}
.newAdminUI .safetyHubSummary{display:flex;align-items:stretch;gap:6px;flex-shrink:0}
.newAdminUI .safetyHubSummary span{min-width:96px;padding:8px 10px;border:1px solid #e0e6eb;background:#f7f9fa;text-align:center;font-size:9px;color:#75838f}
.newAdminUI .safetyHubSummary b{display:block;margin-bottom:2px;font-size:18px;color:#36566f;font-variant-numeric:tabular-nums}
.newAdminUI .safetyHubGrid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:9px}
.newAdminUI .safetyHubTile{position:relative;min-height:136px;padding:16px 15px;border:1px solid #dce3e9;border-top:3px solid #809bb1;background:#fff;text-align:left;cursor:pointer;display:grid;grid-template-columns:42px 1fr;gap:10px 12px;align-content:start;color:#334957;transition:.15s ease;box-shadow:0 2px 5px rgba(34,52,68,.025)}
.newAdminUI .safetyHubTile:hover{transform:translateY(-2px);border-color:#a9bbc9;box-shadow:0 6px 14px rgba(31,54,75,.08)}
.newAdminUI .safetyHubTile.attention{border-top-color:#c88a2d;background:#fffdf9}
.newAdminUI .safetyHubIcon{width:42px;height:42px;border:1px solid #d8e1e7;background:#f3f6f8;display:flex;align-items:center;justify-content:center;color:#4e718d}
.newAdminUI .safetyHubIcon .ehsLineIcon,.newAdminUI .safetyHubIcon svg{width:24px;height:24px}
.newAdminUI .safetyHubCopy b{display:block;padding-top:2px;font-size:13px;color:#263d4e}
.newAdminUI .safetyHubCopy small{display:block;margin-top:7px;padding-right:15px;font-size:10px;line-height:1.55;color:#7c8993}
.newAdminUI .safetyHubStatus{position:absolute;left:69px;bottom:12px;padding:3px 7px;border-radius:10px;background:#eef3f7;color:#486981;font-size:10px;font-weight:900}
.newAdminUI .safetyHubTile.attention .safetyHubStatus{background:#fff0d7;color:#9a6418}
.newAdminUI .safetyHubArrow{position:absolute;right:12px;bottom:9px;font-size:23px;line-height:1;color:#9aa8b2}
@media(max-width:1200px){.newAdminUI .safetyHubGrid{grid-template-columns:repeat(3,minmax(170px,1fr))}.newAdminUI .safetyHubSummary span{min-width:82px}}
@media(max-width:850px){.newAdminUI .safetyHubHead{align-items:flex-start;flex-direction:column}.newAdminUI .safetyHubSummary{width:100%;overflow-x:auto}.newAdminUI .safetyHubGrid{grid-template-columns:repeat(2,minmax(145px,1fr))}}
@media(max-width:560px){.newAdminUI .safetyHubGrid{grid-template-columns:1fr}.newAdminUI .safetyHubTile{min-height:108px}.newAdminUI .safetyHubSummary span{min-width:88px}}

/* ---------- v8.1.7 Education Management: in-house training + education application ---------- */
.educationManageNav{display:flex;gap:8px;margin:0 0 14px;padding:7px;background:#eef2f5;border:1px solid #dce3e8;border-radius:10px;width:max-content;max-width:100%}
.educationManageNav button{border:0;background:transparent;color:#53616d;font-weight:800;font-size:14px;padding:10px 18px;border-radius:7px;cursor:pointer;white-space:nowrap}
.educationManageNav button:hover{background:#fff;color:#20384d}
.educationManageNav button.active{background:#173d5c;color:#fff;box-shadow:0 2px 6px rgba(19,57,87,.17)}
.educationApplyPanel .stickybox{align-self:start}
.legalEducationNotice{font-size:12px;line-height:1.55;margin:10px 0 12px;background:#f7f9fb;border-left:4px solid #66849c}
.educationLawCard{border:1px solid #d9e2e8;background:#f7fafc;border-radius:8px;padding:11px 12px;font-size:12px;line-height:1.5;color:#43515c}
.educationLawCard>b{display:block;color:#183b56;font-size:13px;margin-bottom:5px}
.educationLawCard>div{display:grid;grid-template-columns:50px 1fr;gap:7px;margin-top:3px}
.educationLawCard>div>span{font-weight:800;color:#667986}
.educationLawCard>small{display:block;border-top:1px dashed #ccd8df;margin-top:7px;padding-top:7px;color:#697985}
.educationApplySummary{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:8px;margin-bottom:14px}
.educationApplySummary>div{background:#fff;border:1px solid #dce3e8;border-radius:8px;padding:11px 13px;display:flex;align-items:center;justify-content:space-between;min-height:54px}
.educationApplySummary span{font-size:12px;color:#687783;font-weight:700}.educationApplySummary b{font-size:22px;color:#183b56}
.educationApplySummary .danger{border-left:4px solid #be4b49}.educationApplySummary .danger b{color:#a53f3d}
.educationApplySummary .done{border-left:4px solid #4e8c6c}.educationApplySummary .done b{color:#3d795a}
.educationApplyTable{min-width:1120px}.educationApplyTable th{white-space:nowrap}.educationApplyTable td{vertical-align:top;line-height:1.45}
.educationApplyTable tr.deadlineOverdue td{background:#fff7f6}.deadlineText{color:#b13d3a}.badge.off{background:#eceff1;color:#69757e}
@media(max-width:900px){.educationManageNav{width:100%;display:grid;grid-template-columns:1fr 1fr}.educationManageNav button{padding:10px 8px}.educationApplySummary{grid-template-columns:1fr 1fr}.educationApplyPanel{display:block!important}.educationApplyPanel>.box{position:static!important;margin-bottom:14px}}

/* ---------- v8.1.8 Education applications: multi-select + internal/external ---------- */
.educationParticipantList{max-height:260px;overflow:auto;border:1px solid #d8e1e7;border-radius:8px;background:#fff;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:8px}
.eduParticipantItem{display:flex;align-items:center;gap:9px;padding:9px 10px;border-bottom:1px solid #eef2f5;border-right:1px solid #eef2f5;cursor:pointer;min-width:0}
.eduParticipantItem:hover{background:#f5f9fc}.eduParticipantItem input{width:auto;flex:0 0 auto}.eduParticipantItem span{min-width:0}.eduParticipantItem b{display:block;font-size:12px;color:#2e4355}.eduParticipantItem small{display:block;margin-top:2px;font-size:10px;color:#7d8993;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.eduParticipantTools{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:6px;align-items:center}.eduParticipantTools .btn{white-space:nowrap}
.educationSelectedCount{margin-top:7px;padding:7px 9px;background:#f3f7fa;border-left:3px solid #5d819e;color:#60717d;font-size:11px}.educationSelectedCount b{color:#294a66}
.requiredDot{display:inline-block;margin-left:5px;padding:2px 6px;border-radius:10px;background:#edf4f9;color:#4d718e;font-size:9px;font-weight:900;vertical-align:1px}
.participantNames{max-width:260px;line-height:1.55;color:#63727e}
.educationLoginAlertList{display:grid;gap:8px;margin-top:10px}.educationLoginAlertItem{border:1px solid #dde5ea;border-left:4px solid #5d819e;border-radius:8px;padding:11px 12px;background:#fafcfd}.educationLoginAlertItem b{color:#253f53}.educationLoginAlertItem .preserveText{margin-top:7px;line-height:1.65;font-size:12px;color:#55646f}.educationAlertCard{width:min(620px,100%)}
@media(max-width:900px){.educationManageNav{grid-template-columns:1fr 1fr 1fr}.educationParticipantList{grid-template-columns:1fr}.eduParticipantTools{grid-template-columns:1fr 1fr}.eduParticipantTools input{grid-column:1/-1}}
@media(max-width:560px){.educationManageNav{grid-template-columns:1fr}.eduParticipantTools{grid-template-columns:1fr}.eduParticipantTools input{grid-column:auto}.educationParticipantList{max-height:320px}}


/* =============================================================
   v8.2.0 소방안전관리 통합 대시보드
   ============================================================= */
.fireCoreTabs{flex-wrap:wrap}
.fireDashboard{display:grid;gap:16px}
.fireSummaryGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.fireSummaryCard{appearance:none;text-align:left;border:1px solid #dfe4ea;background:#fff;border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:8px;cursor:pointer;box-shadow:0 5px 18px rgba(21,38,55,.06);transition:.16s}
.fireSummaryCard:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(21,38,55,.10)}
.fireSummaryCard span{font-size:13px;color:#687482;font-weight:700}.fireSummaryCard b{font-size:19px;color:#25313d}.fireSummaryCard.bad{border-left:5px solid #c7564f}.fireSummaryCard.warn{border-left:5px solid #d39736}.fireSummaryCard.good{border-left:5px solid #4d8b6a}
.fireDashPanels{align-items:stretch}.fireAlertList{display:grid;gap:9px}.fireAlertList button{border:1px solid #ece3dd;background:#fffaf7;border-radius:12px;padding:12px 14px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:4px}.fireAlertList button span{font-size:12px;color:#69737e}.goodNotice{border-color:#cfe6d7;background:#f4fbf6}
.fireManagerHero{display:flex;flex-direction:column;gap:8px;padding:10px 2px}.fireManagerHero>b{font-size:24px;color:#27323c}.fireManagerHero>span{color:#687482}.fireManagerHero button{align-self:flex-start;margin-top:4px}
.fireModuleGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.fireModuleGrid button{border:1px solid #e2e6eb;background:#fbfcfd;border-radius:13px;padding:15px;text-align:left;cursor:pointer;min-height:88px;display:flex;flex-direction:column;gap:7px}.fireModuleGrid button:hover{border-color:#c98379;background:#fff9f8}.fireModuleGrid b{font-size:14px;color:#303b46}.fireModuleGrid span{font-size:12px;color:#727d87;line-height:1.45}
.fireMonthlyChecks{display:grid;gap:7px}.fireCheckRow{display:grid;grid-template-columns:34px minmax(260px,1fr) 100px minmax(170px,.65fr);gap:8px;align-items:center;border:1px solid #e6e9ed;border-radius:10px;padding:8px;background:#fcfdfe}.fireCheckNo{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eef1f4;font-size:12px;font-weight:800}.fireCheckLabel{font-size:13px;line-height:1.4}.fireCheckRow select,.fireCheckRow input{margin:0}
.firePlanned{text-align:center;padding:42px 28px}.firePlannedIcon{font-size:42px}.firePlanned p{max-width:720px;margin:8px auto 20px;color:#687482}.firePlanned .notice{text-align:left;max-width:820px;margin:0 auto 20px}.firePlanned .row{justify-content:center}
@media(max-width:1050px){.fireSummaryGrid,.fireModuleGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.fireCheckRow{grid-template-columns:34px 1fr 100px}.fireCheckRow input{grid-column:2/4}}
@media(max-width:700px){.fireSummaryGrid,.fireModuleGrid{grid-template-columns:1fr}.fireCheckRow{grid-template-columns:30px 1fr}.fireCheckRow select,.fireCheckRow input{grid-column:2}.fireCheckLabel{font-size:12px}}
.btn.danger{background:#fff3f2;border-color:#e2aaa5;color:#a53f3d}.btn.danger:hover{background:#ffe9e7}

/* ============================================================
   v8.2.1 소방계획서 입력 · 개정이력 · A4 출력
   ============================================================ */
.firePlanPage{display:flex;flex-direction:column;gap:12px}
.firePlanSourceNotice .notice{margin-top:10px}
.firePlanTopActions{margin-top:12px;gap:8px;flex-wrap:wrap}
.firePlanMetaForm{grid-template-columns:repeat(4,minmax(0,1fr))}
.firePlanMetaForm .span2{grid-column:span 2}
.firePlanSections{display:flex;flex-direction:column;gap:10px}
.firePlanSection{border:1px solid #d8dee6;border-radius:8px;background:#fff;overflow:hidden}
.firePlanSection summary{cursor:pointer;display:flex;flex-direction:column;gap:3px;padding:12px 14px;background:#f7f9fb;border-bottom:1px solid #e4e8ee}
.firePlanSection summary b{font-size:14px;color:#183247}
.firePlanSection summary span{font-size:12px;color:#6a7785;font-weight:400}
.firePlanSection textarea{width:100%;border:0!important;border-radius:0!important;min-height:135px;padding:14px;resize:vertical;line-height:1.65;background:#fff}
.firePlanSection textarea:focus{outline:2px solid rgba(34,105,170,.18);outline-offset:-2px}
.fireRevisionTable .selectedRow td{background:#eef6ff}
.fireRevisionTable td:nth-child(5){min-width:260px;white-space:normal}
@media(max-width:1000px){.firePlanMetaForm{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.firePlanMetaForm{grid-template-columns:1fr}.firePlanMetaForm .span2{grid-column:span 1}.firePlanTopActions .btn{flex:1 1 45%}.firePlanSection summary{padding:10px}}


/* v8.2.2 소방안전관리자 현재 선임상태 */
.fireCurrentManagerBanner{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 14px;padding:14px 16px;border:1px solid #d9e1e8;border-radius:10px;background:#fff}
.fireCurrentManagerBanner>div:first-child{display:flex;flex-direction:column;gap:4px}.fireCurrentManagerBanner b{font-size:18px}.fireCurrentManagerBanner.hasCurrent{border-left:5px solid #16814a;background:#f7fcf9}.fireCurrentManagerBanner.noCurrent{border-left:5px solid #c94b3c;background:#fff8f7}.fireManagerCurrentRow td{background:#eefaf3!important;border-top-color:#b8e2c9!important;border-bottom-color:#b8e2c9!important}.fireManagerCurrentRow td:first-child{border-left:4px solid #16814a}.fireCurrentBadge{display:inline-block;padding:5px 8px;border-radius:999px;background:#16794a;color:#fff;font-size:12px;font-weight:800;white-space:nowrap}.fireAppointBtn{background:#16794a!important;border-color:#16794a!important;color:#fff!important}.fireManagerAppointmentAlert{max-width:720px}.fireAppointmentHeadline{display:flex;flex-direction:column;gap:6px;padding:14px 16px;margin:10px 0;border-radius:10px;background:#eef8f2;border:1px solid #b8dfc8}.fireAppointmentHeadline b{font-size:20px;color:#135f3b}.fireAppointmentHeadline span{font-size:16px;font-weight:700}.fireLegalTrainingBox{display:flex;flex-direction:column;gap:6px;padding:14px 16px;margin:10px 0 14px;border-left:5px solid #c45a27;background:#fff7ee;border-radius:8px}.fireLegalTrainingBox b{color:#a34418;font-size:16px}.fireLegalTrainingBox span{line-height:1.6;color:#4e5965}.fireManagerTable td{vertical-align:middle}
@media(max-width:800px){.fireCurrentManagerBanner{align-items:flex-start;flex-direction:column}.fireManagerTable{min-width:980px}}

/* v8.2.3 - 소방안전관리자 교육연동 / 월간점검 출력 */
.fireManagerTable td:nth-child(7){min-width:150px}.fireManagerTable td:nth-child(8){white-space:nowrap}
#fireMonthlyPrintYear{min-width:95px;height:34px}

/* ============================================================
   v8.3.0 가스안전관리 통합 모듈
   ============================================================ */
.gasDashboard{display:grid;gap:16px}
.gasDashboard .fireSummaryCard{border-left:4px solid #447aa5}
.gasDashboard .fireSummaryCard.bad{border-left-color:#c7564f}.gasDashboard .fireSummaryCard.warn{border-left-color:#d39736}.gasDashboard .fireSummaryCard.good{border-left-color:#4d8b6a}
.gasCurrentBanner{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 14px;padding:14px 16px;border:1px solid #d9e1e8;border-radius:10px;background:#fff}
.gasCurrentBanner.hasCurrent{border-left:5px solid #176b8f;background:#f5fbfe}.gasCurrentBanner.noCurrent{border-left:5px solid #c94b3c;background:#fff8f7}
.gasManagerCurrentRow td{background:#eef8fc!important;border-top-color:#b9d9e8!important;border-bottom-color:#b9d9e8!important}.gasManagerCurrentRow td:first-child{border-left:4px solid #176b8f}
.gasManagerTable td{vertical-align:middle}.gasManagerTable td:last-child{white-space:nowrap}
.gasRuleSections{display:flex;flex-direction:column;gap:10px}.gasRuleSection{border:1px solid #d8dee6;border-radius:8px;background:#fff;overflow:hidden}.gasRuleSection summary{cursor:pointer;padding:11px 14px;background:#f7f9fb;font-weight:700;color:#183247}.gasRuleSection textarea{width:100%;border:0!important;border-radius:0!important;min-height:120px;padding:14px;resize:vertical;line-height:1.65}

/* v8.9.26 가스안전관리규정 실행관리 */
.gasWorkTabs{align-items:stretch}.gasWorkTabs button{min-height:34px}
.gasHub{display:grid;gap:12px}.gasHubGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gasHubCard{border:1px solid #d5dee8;border-left:4px solid #2e709e;background:#fff;border-radius:8px;padding:15px;text-align:left;cursor:pointer;color:#21364a}
.gasHubCard b{display:block;font-size:14px;margin-bottom:5px}.gasHubCard span{display:block;font-size:11px;color:#667788;line-height:1.45}.gasHubCard strong{display:block;margin-top:10px;font-size:18px;color:#173e74}
.gasChecklist{display:grid;gap:7px;margin:10px 0}.gasChecklistRow{display:grid;grid-template-columns:minmax(250px,1fr) 105px minmax(160px,.6fr);gap:8px;align-items:center;border:1px solid #dce3ea;border-radius:7px;padding:8px;background:#fbfcfd}.gasChecklistRow.bad{border-color:#d88;background:#fff7f7}.gasChecklistRow label{font-weight:700;color:#293e51}.gasChecklistRow input,.gasChecklistRow select{min-width:0}
.gasInnerNav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.gasInnerNav button{border:1px solid #cdd8e2;background:#f7f9fb;border-radius:6px;padding:7px 11px;font-weight:700;cursor:pointer}.gasInnerNav button.active{background:#315873;color:#fff;border-color:#315873}
.gasStatusStrip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}.gasStatusStrip>div{background:#f6f9fb;border:1px solid #dce4eb;border-radius:7px;padding:10px}.gasStatusStrip b{display:block;font-size:17px;color:#214d70}.gasStatusStrip span{font-size:10px;color:#657786}
.gasFileCurrent{border:2px solid #80a9c7;background:#f5fbff;border-radius:8px;padding:12px;margin:10px 0}.gasFileHistory{font-size:11px}
@media(max-width:1050px){.gasHubGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.gasStatusStrip{grid-template-columns:repeat(2,minmax(0,1fr))}.gasChecklistRow{grid-template-columns:1fr 100px}.gasChecklistRow input{grid-column:1/3}}
@media(max-width:680px){.gasHubGrid,.gasStatusStrip{grid-template-columns:1fr}.gasChecklistRow{grid-template-columns:1fr}.gasChecklistRow input{grid-column:auto}.gasWorkTabs button{flex:1 1 calc(50% - 6px)}}
.legalCards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.legalCard{display:flex;flex-direction:column;gap:6px;border:1px solid #dfe5eb;border-radius:11px;background:#fbfcfd;padding:14px}.legalCard b{font-size:14px;color:#1e3e53}.legalCard span{font-size:13px;color:#5f6d78;line-height:1.65}
#gasMonthlyPrintYear{min-width:95px;height:34px}
@media(max-width:900px){.legalCards{grid-template-columns:1fr}.gasManagerTable{min-width:1050px}.gasCurrentBanner{align-items:flex-start;flex-direction:column}}


/* v8.4.1 산업안전보건위원회 법적 구성·역할 가이드 */
.committeeLegalGuide{max-width:1180px;margin:0 auto}
.legalHero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border:1px solid #dfe3ec;border-left:5px solid #6570a6;border-radius:8px;background:linear-gradient(135deg,#fff,#f6f7fc);margin-bottom:10px}
.legalHero h3{margin:3px 0 5px;font-size:22px;color:#26324b}.legalHero p{margin:0;color:#6c7681}.legalEyebrow{font-size:11px;font-weight:900;color:#6570a6;letter-spacing:.04em}.legalHeroActions{flex:0 0 auto}
.legalLawMeta{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#dfe4e9;border:1px solid #dfe4e9;margin-bottom:10px}.legalLawMeta span{background:#fff;padding:9px 10px;font-size:10px}.legalLawMeta b{display:block;color:#35485a;margin-bottom:2px}
.legalGrid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.legalCard{background:#fff;border:1px solid #dce2e8;border-radius:7px;padding:15px 16px;margin-bottom:10px;box-shadow:0 2px 8px rgba(34,52,67,.035)}.legalCard.wide{width:auto}.legalCard p{line-height:1.7;color:#53616d;font-size:13px}.legalCard ul,.legalCard ol{margin:8px 0 0;padding-left:21px}.legalCard li{margin:6px 0;line-height:1.62;color:#46545f;font-size:13px}.legalCardTitle{font-weight:900;color:#2f3b57;font-size:15px;border-bottom:1px solid #edf0f3;padding-bottom:9px;margin-bottom:10px}.legalCardTitle span{display:inline-flex;width:28px;height:22px;align-items:center;justify-content:center;border-radius:4px;background:#eef0f8;color:#5e69a1;font-size:10px;margin-right:5px}
.legalBasis{margin-top:11px;padding-top:8px;border-top:1px dashed #d8dde2;font-size:9px;color:#7b858d}.legalCallout{padding:11px 13px;border:1px solid #d9dfe5;border-radius:6px;margin:0 0 10px;font-size:11px;line-height:1.6}.legalCallout.warn{border-left:4px solid #c59139;background:#fffaf0}.legalCallout.info{border-left:4px solid #5c83a3;background:#f5f9fc;margin-top:12px}.legalCallout.strong{border-left:4px solid #6570a6;background:#f6f7fc;margin-top:12px}
.legalMiniTable{border:1px solid #e1e5e9;border-radius:5px;overflow:hidden;margin-top:8px}.legalMiniTable>div{display:flex;justify-content:space-between;gap:15px;padding:8px 10px;border-bottom:1px solid #e8ebee;font-size:10px}.legalMiniTable>div:last-child{border-bottom:0}.legalMiniTable span{text-align:right;color:#566571}.legalNote{font-size:9px!important;color:#7a848d!important}
.legalSides{display:grid;grid-template-columns:1fr 1fr;gap:10px}.legalSide{border:1px solid #dfe4e8;border-radius:6px;padding:12px}.legalSide.worker{border-top:3px solid #5f7fa3}.legalSide.employer{border-top:3px solid #8a6b95}.legalSide h4{margin:0 0 7px;color:#33414e}.legalRoleBox{background:#f7f9fb;border-radius:5px;padding:9px;margin-top:10px;font-size:10px;line-height:1.55;color:#5c6771}
.legalDutyGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.legalDutyGrid>div{border:1px solid #e0e5e9;border-radius:5px;padding:10px;background:#fbfcfd}.legalDutyGrid b{display:block;color:#3e4d5a;font-size:11px}.legalDutyGrid small{display:block;margin-top:4px;color:#7b858d;line-height:1.45}.legalRecordGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.legalRecordGrid>div{border:1px solid #dfe4e8;background:#fafbfc;padding:9px;border-radius:5px;color:#4a5965;font-size:10px}
.legalChecklist{display:grid;grid-template-columns:1fr 1fr;gap:10px}.legalChecklist label{display:flex;gap:10px;align-items:flex-start;justify-content:flex-start;text-align:left;padding:12px 14px;border:1px solid #e2e6ea;border-radius:7px;background:#fbfcfd;color:#3f4e59;font-size:13.5px;line-height:1.55;min-height:48px;word-break:keep-all}.legalChecklist label span{display:block;flex:1;min-width:0;text-align:left}.legalChecklist input[type="checkbox"]{appearance:auto!important;-webkit-appearance:checkbox!important;width:18px!important;height:18px!important;min-width:18px!important;max-width:18px!important;flex:0 0 18px!important;margin:1px 0 0!important;padding:0!important}.legalFooterNote{background:#f4f5f7;border:1px solid #e0e3e6;border-radius:6px;padding:10px 12px;font-size:9px;color:#68737c;line-height:1.55}
@media(max-width:900px){.legalGrid2,.legalSides{grid-template-columns:1fr}.legalLawMeta{grid-template-columns:1fr 1fr}.legalDutyGrid{grid-template-columns:1fr 1fr}.legalRecordGrid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.legalHero{align-items:flex-start;flex-direction:column}.legalLawMeta,.legalDutyGrid,.legalRecordGrid,.legalChecklist{grid-template-columns:1fr}}

/* v8.4.1 법정기준·업무가이드 공통 UI */
.lawGuide{max-width:1500px;margin:0 auto}.lawGuideToolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 12px;padding:10px;border:1px solid #dde4e9;border-radius:8px;background:#f8fafb}.lawGuideSearch{flex:1 1 320px}.lawGuideSearch input{width:100%;min-height:38px;border:1px solid #cfd8df;border-radius:6px;padding:7px 10px;background:#fff}.lawGuideLinks{display:flex;gap:6px;flex-wrap:wrap}.lawGuideLink{display:inline-flex;align-items:center;min-height:34px;padding:6px 10px;border:1px solid #cdd9e1;border-radius:6px;background:#fff;color:#365d76;font-size:11px;font-weight:800;text-decoration:none}.lawGuideLink:hover{background:#eef5f8;border-color:#9fb4c3}.lawGuideSectionTitle{font-size:16px;font-weight:900;color:#2d4352;margin:18px 0 9px;border-left:5px solid #587c92;padding:3px 0 3px 9px}.lawGuideTable{width:100%;border-collapse:collapse;background:#fff}.lawGuideTable th,.lawGuideTable td{border:1px solid #dde4e9;padding:10px 11px;vertical-align:top;font-size:12.5px;line-height:1.6;text-align:left}.lawGuideTable th{background:#f2f6f8;color:#314a5a;font-weight:900}.lawGuideTable td:first-child{font-weight:800;color:#354c5c;white-space:nowrap}.lawGuideFooter{margin-top:12px;padding:12px 14px;border:1px solid #dce3e8;border-top:3px solid #587c92;border-radius:6px;background:#f7f9fa;font-size:11.5px;color:#65727c;line-height:1.6}.lawGuide .legalDutyGrid>div{display:block}.lawGuide .legalDutyGrid .legalBasis{margin-top:7px}.lawGuide .btn.sm{white-space:nowrap}@media(max-width:900px){.lawGuideToolbar{align-items:stretch}.lawGuideLinks{width:100%}.lawGuideTable{min-width:760px}.lawGuide .lawGuideItem:has(.lawGuideTable){overflow-x:auto}}


/* =========================================================
   v8.4.2 회사명 전용 글꼴 - Noto Sans CJK KR
   폰트 파일은 번들하지 않고, 사용자 PC에 설치된 로컬 폰트를 우선 사용합니다.
   미설치 환경에서는 Noto Sans KR -> 맑은 고딕 순으로 대체됩니다.
   ========================================================= */
@font-face{
  font-family:'DAEHEUNG Noto CJK KR';
  src:local('Noto Sans CJK KR'),
      local('NotoSansCJKkr'),
      local('Noto Sans KR');
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
}

/* 상단 회사명 DAEHEUNG COOLER */
.systemBrandMain{
  font-family:'DAEHEUNG Noto CJK KR','Noto Sans CJK KR','Noto Sans KR','Malgun Gothic',sans-serif !important;
  font-weight:800;
  letter-spacing:-0.2px;
}

/* 로그인 화면의 회사/제품명 표기도 동일 계열로 통일 */
.loginProductName{
  font-family:'DAEHEUNG Noto CJK KR','Noto Sans CJK KR','Noto Sans KR','Malgun Gothic',sans-serif !important;
}

/* ============================================================
   v8.5.0 외부교육 수료증·증빙 / ESG 제출 문서함
   ============================================================ */
.evidencePanel{align-items:start}
.evidenceUploadBox{top:78px}
.evidenceForm .label{font-weight:800}
.evidenceSummary{display:grid;grid-template-columns:repeat(5,minmax(100px,1fr));gap:8px;margin-bottom:12px}
.evidenceSummary>div{border:1px solid #d8e1e9;background:#fff;border-radius:7px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.evidenceSummary span{font-size:12px;color:#647587;font-weight:700}.evidenceSummary b{font-size:20px;color:#173b5d}
.evidenceFilters{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(4,minmax(120px,.7fr));gap:7px;margin-bottom:8px}
.evidenceFilters input,.evidenceFilters select{min-width:0}
.evidenceBulkBar{display:flex;gap:7px;align-items:center;flex-wrap:wrap;background:#f6f9fc;border:1px solid #dbe4ec;border-radius:7px;padding:8px;margin-bottom:8px}
.evidenceBulkBar #evidenceSelectedCount{margin-right:auto;color:#31506d;font-size:13px}
.esgPackageBtn{background:#245b47!important;border-color:#245b47!important;color:#fff!important}
.evidenceEsgNotice{border-left:4px solid #245b47}
.evidenceTable .checkCol{width:52px}.evidenceTable td{vertical-align:middle}.evidenceTable .evidenceCheck{width:18px!important;height:18px!important;margin:0!important}
.evidenceAreaBadge{display:inline-block;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800;white-space:nowrap;border:1px solid transparent}
.evidenceAreaBadge.industrial{background:#edf5fc;color:#245a85;border-color:#c8dced}
.evidenceAreaBadge.fire{background:#fff0ee;color:#a73529;border-color:#efc9c4}
.evidenceAreaBadge.gas{background:#fff7df;color:#81620b;border-color:#ead894}
.evidenceAreaBadge.env{background:#eaf7ee;color:#276a3d;border-color:#bfe0c8}
.evidencePreviewFrame{height:min(72vh,760px);border:1px solid #d6dfe7;border-radius:7px;overflow:hidden;background:#f6f8fa;display:flex;align-items:center;justify-content:center}
.evidencePreviewFrame iframe{width:100%;height:100%;border:0;background:#fff}.evidencePreviewFrame.image img{max-width:100%;max-height:100%;object-fit:contain}
@media(max-width:1200px){.evidenceSummary{grid-template-columns:repeat(3,1fr)}.evidenceFilters{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:760px){.evidenceSummary{grid-template-columns:1fr 1fr}.evidenceFilters{grid-template-columns:1fr}.evidenceBulkBar #evidenceSelectedCount{width:100%;margin:0}.evidenceTable{min-width:1000px}}

/* ============================================================
   v8.6.0 EHS 문서관리시스템
   ============================================================ */
.documentHubHead{display:flex;justify-content:space-between;gap:22px;align-items:flex-start;margin:0 0 14px;padding:18px 20px;background:#fff;border:1px solid #d9e2ea;border-radius:10px}.documentHubHead p{margin:4px 0 0;color:#68798a;font-size:13.5px;line-height:1.6}.documentHubSummary{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.documentHubSummary span{min-width:92px;padding:10px 12px;border:1px solid #dbe3ea;border-radius:8px;background:#f8fafc;text-align:center;font-size:12px;color:#617286}.documentHubSummary b{display:block;font-size:20px;color:#173b5d;margin-bottom:2px}.documentTabs{margin-bottom:12px}.documentLibraryBox{padding-top:14px}.documentToolbar{display:grid;grid-template-columns:minmax(280px,2fr) repeat(3,minmax(140px,1fr)) auto;gap:8px;align-items:center;margin-bottom:10px}.documentToolbar input,.documentToolbar select{height:38px}.documentActionBar{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin:8px 0 10px}.documentActionBar span{margin-right:auto;font-weight:700;color:#33506b}.documentTable th,.documentTable td{vertical-align:middle}.documentTable td:nth-child(4){min-width:260px}.docAreaBadge{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border-radius:14px;background:#eef4f8;border:1px solid #d5e0e8;font-size:12px;font-weight:700;white-space:nowrap}.docRevision{display:inline-block;padding:4px 7px;border-radius:5px;background:#173f63;color:#fff;font-weight:800;font-size:12px;white-space:nowrap}.docActions{display:flex;gap:5px;flex-wrap:wrap}.documentFormGrid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.8fr);gap:14px;align-items:start}.documentMetaForm{grid-template-columns:repeat(2,minmax(0,1fr))}.documentFileUploadGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 12px}.documentFileUploadGrid label{display:block;border:1px dashed #aebdca;border-radius:8px;padding:12px;background:#f8fafc}.documentFileUploadGrid label b{display:block;color:#263f57;margin-bottom:4px}.documentFileUploadGrid label span{display:block;font-size:12px;color:#68798a;min-height:20px;margin-bottom:8px}.documentFileUploadGrid input[type=file]{width:100%;font-size:13px}.revisionTimeline{display:flex;flex-direction:column;gap:9px}.revisionItem{border:1px solid #dbe4ec;border-left:4px solid #aab8c4;border-radius:7px;padding:10px 11px;background:#fff}.revisionItem.current{border-left-color:#1e7a52;background:#f7fcf9}.revisionItem>div:first-child{display:flex;gap:8px;align-items:center}.revisionItem p{margin:6px 0;font-size:13px;line-height:1.55}.revisionItem small{display:block;color:#68798a;line-height:1.5}.revisionItem .row{margin-top:8px}.ehsDocModal{position:fixed;inset:0;z-index:9999;background:rgba(10,24,38,.58);display:flex;align-items:center;justify-content:center;padding:24px}.ehsDocModalCard{width:min(980px,95vw);max-height:90vh;overflow:auto;background:#fff;border-radius:12px;padding:18px;box-shadow:0 20px 60px rgba(0,0,0,.25)}.ehsDocModalHead{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #e2e8ee;padding-bottom:10px;margin-bottom:10px}.ehsDocModalHead span{font-size:12px;color:#6c7e90;font-weight:700}.ehsDocModalHead h2{margin:3px 0 0;font-size:21px}.ehsDocModalHead>button{border:0;background:#edf2f6;border-radius:50%;width:34px;height:34px;font-size:24px;cursor:pointer}.docDetailMeta{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:10px 0}.docPreviewActions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0 16px}.documentGuideGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0 16px}.documentGuideGrid>div{border:1px solid #dbe4ec;border-radius:8px;padding:12px;background:#f9fbfd}.documentGuideGrid b{font-size:14px;color:#23435f}.documentGuideGrid p{font-size:13px;line-height:1.6;margin:6px 0 0;color:#5e7082}.userDocGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.userDocCard{border:1px solid #dbe4ec;border-left:4px solid #446f91;border-radius:9px;padding:13px;background:#fff}.userDocCard.confirmed{border-left-color:#2d8b61;background:#fbfefc}.userDocCard h3{font-size:15px;margin:10px 0 5px}.userDocCard p{font-size:12.5px;color:#68798a;min-height:20px;line-height:1.5}.checkCol{width:46px;text-align:center}.documentTable input[type=checkbox]{width:18px!important;height:18px!important;margin:0;vertical-align:middle}
@media(max-width:1200px){.documentToolbar{grid-template-columns:1fr 1fr 1fr}.documentToolbar input:first-child{grid-column:1/-1}.documentFormGrid{grid-template-columns:1fr}.documentHubHead{flex-direction:column}.documentHubSummary{justify-content:flex-start}.userDocGrid{grid-template-columns:1fr}}
@media(max-width:720px){.documentToolbar{grid-template-columns:1fr}.documentToolbar input:first-child{grid-column:auto}.documentMetaForm,.documentFileUploadGrid,.documentGuideGrid{grid-template-columns:1fr}.documentHubSummary span{min-width:76px}.ehsDocModal{padding:8px}.ehsDocModalCard{width:100%;max-height:96vh;padding:12px}}

/* v8.9.27 문서번호 중복 즉시확인 */
.documentNoStatus{min-height:18px;margin-top:5px;font-size:12px;color:#6d7d8b}
.documentNoStatus.checking{color:#526f89}
.documentNoStatus.available{color:#14754b;font-weight:700}
.documentNoStatus.duplicate,.documentNoStatus.error{color:#c62828;font-weight:700}
.btn:disabled{opacity:.52;cursor:not-allowed;filter:grayscale(.25)}

/* ============================================================
   v8.6.1 DH-RM-001 위험성평가 실시규정 기반 대시보드
   ============================================================ */
.riskHubHead{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:18px 20px;border:1px solid #d9e2ea;border-radius:10px;background:#fff;margin-bottom:10px}.riskHubHead p{margin:4px 0 0;color:#68798a;font-size:13.5px;line-height:1.55}.riskRegMeta{display:grid;grid-template-columns:repeat(4,minmax(92px,1fr));gap:7px}.riskRegMeta span{padding:9px 11px;border:1px solid #dbe3ea;background:#f7f9fb;border-radius:7px;min-width:92px}.riskRegMeta small{display:block;color:#758496;font-size:10px}.riskRegMeta b{display:block;color:#1e405e;font-size:13px;margin-top:2px}.riskToolbar{display:flex;gap:7px;align-items:center;justify-content:flex-end;margin:8px 0}.riskToolbar select{width:auto;min-width:110px;height:36px}.riskTabs{margin-bottom:12px}.riskSummaryGrid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:8px;margin-bottom:10px}.riskSummaryGrid>div{background:#fff;border:1px solid #dbe4ec;border-radius:8px;padding:11px 12px}.riskSummaryGrid span{font-size:11px;color:#65788b;font-weight:800}.riskSummaryGrid b{display:block;font-size:24px;line-height:1.1;color:#193d5c;margin:5px 0 2px}.riskSummaryGrid small{font-size:10.5px;color:#8090a0}.riskSummaryGrid .warn{border-left:4px solid #c38a22;background:#fffcf4}.riskSummaryGrid .critical{border-left:4px solid #b33a32;background:#fff8f7}.riskSummaryGrid .critical b{color:#a92e28}.riskCriticalAlert{display:flex;gap:10px;align-items:flex-start;border:1px solid #e6b5b1;border-left:5px solid #b43b32;background:#fff6f5;border-radius:8px;padding:12px 14px;margin-bottom:10px;color:#6f302d}.riskCriticalAlert b{white-space:nowrap}.riskCriticalAlert span{font-size:12.5px;line-height:1.6}.riskDashGrid{display:grid;grid-template-columns:1.35fr .85fr;gap:10px;margin-bottom:10px}.riskProcess{display:flex;align-items:stretch;gap:5px}.riskProcess>div{flex:1;min-width:0;border:1px solid #dae3ea;border-radius:7px;padding:10px;background:#f9fbfd;text-align:center}.riskProcess>div>b{display:inline-flex;width:25px;height:25px;border-radius:50%;align-items:center;justify-content:center;background:#245c83;color:#fff;font-size:12px}.riskProcess>div span{display:block;font-weight:900;color:#2a465d;margin:6px 0 3px;font-size:12px}.riskProcess>div small{display:block;color:#738292;font-size:10px;line-height:1.4}.riskProcess>i{display:flex;align-items:center;color:#8ba0b1;font-size:20px;font-style:normal}.riskTypeBars{display:flex;flex-direction:column;gap:11px}.riskTypeBars>div>span{display:flex;justify-content:space-between;font-size:12px;margin-bottom:4px;color:#526779}.riskTypeBars em{font-style:normal;font-weight:800}.riskTypeBars i{display:block;height:8px;border-radius:20px;background:#e8eef3;overflow:hidden}.riskTypeBars u{display:block;height:100%;background:#40799f;text-decoration:none;border-radius:20px}.riskUrgentTable td:nth-child(4) b{display:block}.riskUrgentTable td:nth-child(4) small{display:block;margin-top:3px;color:#758392;max-width:260px}.riskScoreBadge{display:inline-flex;flex-direction:column;align-items:center;min-width:62px;padding:4px 6px;border-radius:6px;border:1px solid #d8e1e8;background:#f8fafb;line-height:1.1}.riskScoreBadge b{font-size:15px}.riskScoreBadge small{font-size:8.5px;margin-top:3px;white-space:nowrap}.riskScoreBadge.ok{background:#edf8f2;border-color:#bddfcb;color:#226640}.riskScoreBadge.info{background:#eef5fb;border-color:#c4d8ea;color:#315f83}.riskScoreBadge.warn{background:#fff7e8;border-color:#e6d29c;color:#8a6210}.riskScoreBadge.bad{background:#fff0ed;border-color:#ecc4be;color:#96392e}.riskScoreBadge.critical{background:#fdebea;border-color:#dda7a1;color:#a12621}.riskDeptList{display:flex;flex-direction:column;gap:5px}.riskDeptList>div{display:flex;justify-content:space-between;padding:7px 9px;border:1px solid #e0e7ed;border-radius:6px;background:#fafcfd;font-size:12px}.riskRuleQuick{margin-top:12px;border-top:1px solid #e3e8ec;padding-top:10px}.riskRuleQuick>b{font-size:12px;color:#304c63}.riskRuleQuick ul{margin:7px 0 0;padding-left:18px}.riskRuleQuick li{font-size:11px;line-height:1.6;color:#607182}.riskFormGrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.6fr);gap:12px;align-items:start}.riskAdminForm{grid-template-columns:repeat(2,minmax(0,1fr))}.riskAdminForm .span2{grid-column:1/-1}.riskFormHelp{position:sticky;top:86px}.riskFormHelp ol{padding-left:20px;margin:8px 0}.riskFormHelp li{font-size:12px;color:#5e7081;line-height:1.65;margin-bottom:4px}.riskMiniRule{display:flex;justify-content:space-between;align-items:center;border:1px solid #e0c88f;background:#fffaf0;padding:10px;border-radius:6px;margin-top:8px}.riskMiniRule b{font-size:17px;color:#8d6517}.riskMiniRule span{font-size:11px;color:#75653d}.riskMiniRule.critical{border-color:#e0aaa4;background:#fff4f3}.riskMiniRule.critical b{color:#a72f29}.riskScorePreview{padding:10px 12px;border:1px solid #dbe3ea;border-radius:7px;background:#f7f9fb;font-size:12.5px;color:#36536b}.riskScorePreview b{font-size:17px}.riskScorePreview.ok{border-left:4px solid #3c8b62}.riskScorePreview.info{border-left:4px solid #4c82aa}.riskScorePreview.warn{border-left:4px solid #c28b27;background:#fffaf0}.riskScorePreview.bad,.riskScorePreview.critical{border-left:4px solid #b63e34;background:#fff5f4}.riskScorePreview strong{margin-left:8px;color:#a02c25}.riskUserRegNotice{display:flex;flex-direction:column;gap:3px;border:1px solid #d5e1ea;border-left:5px solid #436f91;background:#f7fafc;padding:11px 13px;border-radius:7px;margin-bottom:10px}.riskUserRegNotice b{color:#254a68}.riskUserRegNotice span{font-size:12px;color:#63778a}.riskHistoryFilters{display:grid;grid-template-columns:1.4fr .7fr .7fr;gap:7px;margin-bottom:9px}.riskHistoryTable td:nth-child(4) b,.riskHistoryTable td:nth-child(4) small{display:block}.riskHistoryTable td:nth-child(4) small{margin-top:3px;color:#758392;max-width:260px}.riskRegLayout{display:grid;grid-template-columns:1fr 1fr;gap:10px}.riskRegLayout .box:nth-child(1),.riskRegLayout .box:nth-child(5),.riskRegLayout .box:nth-child(6){grid-column:1/-1}.riskPolicy ul,.riskRegList{padding-left:20px;margin:8px 0}.riskPolicy li,.riskRegList li{font-size:12.5px;line-height:1.65;color:#566a7b}.riskPolicy>b{display:block;color:#294b66;margin-top:7px}.riskOrgGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.riskOrgGrid>div{border:1px solid #dce4eb;border-radius:7px;padding:10px;background:#f9fbfc}.riskOrgGrid small{display:block;color:#718293}.riskOrgGrid b{display:block;font-size:15px;color:#23445f;margin:3px 0}.riskOrgGrid span{font-size:11px;color:#627587;line-height:1.45}.riskTiming{display:flex;flex-direction:column;gap:7px}.riskTiming>div{border-left:4px solid #547f9d;background:#f8fafc;padding:9px 11px;border-radius:5px}.riskTiming b{display:block;color:#2a4a62;margin-bottom:3px}.riskTiming span{font-size:12px;line-height:1.55;color:#607283}.riskStandardsGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.riskStandardsGrid>.wide{grid-column:1/-1}.riskMatrix{width:100%;border-collapse:collapse;text-align:center}.riskMatrix th,.riskMatrix td{border:1px solid #cfd9e1;padding:9px;text-align:center}.riskMatrix th{background:#f1f5f8;color:#38546b}.riskCell.ok{background:#edf8f2}.riskCell.info{background:#eef5fb}.riskCell.warn{background:#fff7e8}.riskCell.bad{background:#fff0ed}.riskCell.critical{background:#fdebea}.riskRuleNotice{margin-top:9px;padding:10px;border-left:4px solid #c28a27;background:#fff9ed;font-size:12px;color:#6d5a2e}
@media(max-width:1200px){.riskSummaryGrid{grid-template-columns:repeat(3,1fr)}.riskDashGrid,.riskFormGrid{grid-template-columns:1fr}.riskFormHelp{position:static}.riskRegMeta{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.riskHubHead{flex-direction:column}.riskSummaryGrid{grid-template-columns:repeat(2,1fr)}.riskProcess{display:grid;grid-template-columns:1fr}.riskProcess>i{display:none}.riskHistoryFilters,.riskRegLayout,.riskStandardsGrid,.riskOrgGrid{grid-template-columns:1fr}.riskRegLayout .box:nth-child(1),.riskRegLayout .box:nth-child(5),.riskRegLayout .box:nth-child(6),.riskStandardsGrid>.wide{grid-column:auto}.riskAdminForm{grid-template-columns:1fr}.riskAdminForm .span2{grid-column:auto}.riskRegMeta{width:100%}}
@media(max-width:520px){.riskSummaryGrid{grid-template-columns:1fr}.riskRegMeta{grid-template-columns:1fr 1fr}.riskToolbar{justify-content:flex-start;flex-wrap:wrap}}

/* ============================================================
   v8.6.2 위험성평가 Excel 이관 + 직원/관리감독자 참여
   ============================================================ */
.riskImportLayout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:10px;align-items:start}.riskImportPick{display:flex;gap:8px;align-items:center;margin:12px 0}.riskImportPick input[type=file]{flex:1}.riskImportWizard{margin-top:12px;padding-top:12px;border-top:1px solid #dfe6ec}.riskImportTop{display:grid;grid-template-columns:180px 120px 1fr;gap:8px;align-items:end;margin-bottom:12px}.riskImportTop select,.riskImportTop input{width:100%}.riskImportMeta{padding:8px 10px;border:1px solid #dbe4eb;background:#f7fafc;border-radius:7px;min-height:38px}.riskImportMeta b,.riskImportMeta span{display:block}.riskImportMeta span{font-size:11px;color:#6d7f8e;margin-top:2px}.riskMapGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:12px}.riskMapGrid label{display:flex;flex-direction:column;gap:4px;border:1px solid #dfe6ec;border-radius:7px;padding:7px 8px;background:#fafcfd}.riskMapGrid label.required{border-left:4px solid #b87c1e}.riskMapGrid span{font-size:11px;font-weight:800;color:#516678}.riskMapGrid select{width:100%;height:34px}.riskImportDefaults{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0}.riskImportActionCheck{display:flex!important;align-items:flex-start!important;gap:8px!important;padding:10px 12px!important;border:1px solid #e2d4a9!important;background:#fffaf0!important;border-radius:7px!important;margin:10px 0}.riskImportActionCheck input{width:18px!important;height:18px!important;flex:0 0 18px!important;margin-top:2px}.riskImportActionCheck span{display:block!important}.riskImportActionCheck b,.riskImportActionCheck small{display:block}.riskImportActionCheck small{font-size:10.5px;color:#776b4f;margin-top:2px}.riskImportPreview{font-size:10.5px;white-space:nowrap}.riskImportPreview th,.riskImportPreview td{max-width:240px;overflow:hidden;text-overflow:ellipsis}.riskUserWorkspace{max-width:1200px}.riskUserTabs{margin:0 0 10px}.riskUserTabs button b{display:inline-flex;min-width:19px;height:19px;align-items:center;justify-content:center;border-radius:10px;background:#b33b33;color:#fff;font-size:10px;margin-left:4px}.riskUserForm.expanded{display:block}.riskUserForm.expanded>div{margin-bottom:10px}.riskUserSaveBtns{display:grid;grid-template-columns:1fr 1.4fr;gap:8px;margin-top:10px}.riskReviewCard{border:1px solid #dbe4eb;border-left:4px solid #c38a22;border-radius:8px;padding:12px;margin-top:9px;background:#fff}.riskReviewCard p{font-size:12px;line-height:1.55;color:#536b7d}.riskReviewCard .riskScoreBadge{margin-left:10px}.riskUserWorkspace .table td b,.riskUserWorkspace .table td small{display:block}.riskUserWorkspace .table td small{color:#758493;margin-top:3px;max-width:360px}.badge.info{background:#eef5fb;border-color:#c4d8ea;color:#315f83}
@media(max-width:1000px){.riskImportLayout{grid-template-columns:1fr}.riskMapGrid{grid-template-columns:repeat(2,1fr)}.riskImportDefaults{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.riskImportTop,.riskMapGrid,.riskImportDefaults{grid-template-columns:1fr}.riskImportPick{align-items:stretch;flex-direction:column}.riskUserSaveBtns{grid-template-columns:1fr}.riskUserTabs{overflow-x:auto;display:flex;white-space:nowrap}}

/* ============================================================
   v8.6.3 위험성평가 Excel - 대흥쿨러 양식형 데이터 미리보기
   ============================================================ */
.riskPreviewTitleRow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px}.riskPreviewTitleRow .section{margin:0}.riskPreviewModeTabs{display:flex;gap:4px;border:1px solid #cbd7e1;background:#f4f7f9;border-radius:7px;padding:3px}.riskPreviewModeTabs button{border:0;background:transparent;color:#5d7181;font-size:11px;font-weight:800;padding:6px 10px;border-radius:5px;cursor:pointer}.riskPreviewModeTabs button.active{background:#315f83;color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.12)}
.riskFormatPreviewMeta{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0 6px;padding:7px 10px;border:1px solid #d4dfe8;background:#f8fafc;border-radius:6px;font-size:11px;color:#596e7f}.riskFormatPreviewMeta b{color:#294c67;margin-right:4px}.riskFormatPreviewWrap{width:100%;overflow:auto;border:1px solid #8c9aa6;background:#fff;box-shadow:inset 0 0 0 1px #f2f4f5}.riskFormatPreviewTable{border-collapse:collapse;table-layout:fixed;min-width:1580px;width:100%;font-size:10.5px;color:#202830;background:#fff}.riskFormatPreviewTable th,.riskFormatPreviewTable td{border:1px solid #41484e;padding:6px 6px;vertical-align:middle;line-height:1.42;word-break:keep-all;overflow-wrap:anywhere}.riskFormatPreviewTable thead th{background:#d7e5f2;text-align:center;font-weight:900;color:#142f45;padding:5px 4px}.riskFormatPreviewTable thead .riskFormatTop th{background:#c7daea;font-size:11.5px;letter-spacing:.2px}.riskFormatPreviewTable tbody td{background:#fff}.riskFormatPreviewTable tbody tr:hover td{background:#f8fbfd}.riskFormatPreviewTable .riskPreviewWork{width:82px;text-align:center;font-weight:800;background:#fbfcfd}.riskFormatPreviewTable .riskPreviewCategory{width:88px;text-align:center}.riskFormatPreviewTable .riskPreviewHazard{width:255px}.riskFormatPreviewTable .riskPreviewControl{width:260px}.riskFormatPreviewTable .riskPreviewMeasure{width:225px}.riskFormatPreviewTable .riskPreviewNum{width:55px;text-align:center;white-space:normal}.riskFormatPreviewTable .riskPreviewDate{width:82px;text-align:center}.riskFormatPreviewTable .riskPreviewOwner{width:92px;text-align:center}.riskFormatPreviewTable .riskPvScore{font-weight:900}.riskFormatPreviewTable .riskPvScore.critical{color:#a22620}.riskFormatPreviewTable .riskPvScore.bad{color:#91372e}.riskFormatPreviewTable .riskPvScore.warn{color:#8a6417}.riskPreviewEmpty{color:#a2adb5}.riskFormatPreviewFoot{padding:7px 3px 2px;color:#6d7c88;font-size:10.5px;line-height:1.5}.riskFormatPreviewFoot b{color:#3c5d76}
@media(max-width:800px){.riskPreviewTitleRow{align-items:flex-start;flex-direction:column}.riskPreviewModeTabs{width:100%}.riskPreviewModeTabs button{flex:1}}

/* v8.6.4 위험성평가 평가이력: 현재의 안전보건조치 표시 */
.riskHistoryTable{min-width:1760px}
.riskHistoryControl,.riskHistoryMeasure{min-width:220px;max-width:310px;white-space:pre-line!important;word-break:keep-all;overflow-wrap:anywhere;line-height:1.5;vertical-align:top}
.riskHistoryControl{background:#fbfcfd}
.riskUserHistoryTable{min-width:1120px}
.riskUserHistoryTable .riskHistoryControl{min-width:240px;max-width:340px}

/* v8.6.5: Excel 재평가 빈도·강도 자동승계 / x000D 줄바꿈 정리 */

/* =========================================================
   v8.7.0 공업용도 소방계획서 실제양식 연동
   ========================================================= */
.firePlanSourceHead{display:flex;gap:18px;align-items:flex-start;justify-content:space-between}.firePlanSourceHead>div:first-child{flex:1;min-width:0}.firePlanProgress{min-width:128px;border:1px solid #dce3ea;border-radius:12px;padding:12px 14px;text-align:center;background:#f7f9fb;display:flex;flex-direction:column;gap:2px}.firePlanProgress b{font-size:24px;line-height:1.1;color:#1d3c56}.firePlanProgress span{font-size:11px;color:#657482}.firePlanProgress.good{background:#edf8f2;border-color:#b9dfca}.firePlanProgress.warn{background:#fff8e8;border-color:#ead399}.firePlanProgress.bad{background:#fff2f1;border-color:#ebc4c0}.firePlanTopActions .btn.ghost{background:#fff;color:#315b7d;border:1px solid #b9c8d5}.firePlanInnerTabs{display:flex;gap:7px;flex-wrap:wrap;margin:2px 0 12px}.firePlanInnerTab{border:1px solid #ced8e1;background:#fff;color:#344d61;border-radius:8px;padding:9px 13px;font-weight:700;cursor:pointer}.firePlanInnerTab:hover{background:#f4f7f9}.firePlanInnerTab.active{background:#234f73;color:#fff;border-color:#234f73}.firePlanPane{display:none}.firePlanPane.active{display:block}.firePlanOverviewCards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.firePlanOverviewCards button{border:1px solid #d7e0e7;background:#fff;border-radius:11px;padding:14px;text-align:left;display:flex;flex-direction:column;gap:4px;min-height:95px;cursor:pointer}.firePlanOverviewCards button:hover{box-shadow:0 3px 12px rgba(18,48,73,.08);border-color:#afc3d3}.firePlanOverviewCards span{font-size:11.5px;color:#647381}.firePlanOverviewCards b{font-size:20px;color:#173d5a;line-height:1.2}.firePlanOverviewCards small{font-size:11px;color:#75828d}.firePlanChecklist{display:flex;flex-direction:column;gap:10px}.firePlanChecklist>div{padding:11px 12px;border:1px solid #e0e6eb;border-radius:8px;background:#fafcfd}.firePlanChecklist b{display:block;color:#214967;margin-bottom:3px}.firePlanChecklist span{font-size:12px;color:#667681;line-height:1.55}.firePlanTips{margin:4px 0 0;padding-left:20px;line-height:1.8;color:#4e5d68}.firePlanSections{margin-top:12px}.firePlanSection{margin-bottom:9px}.firePlanSection summary b{font-size:14.5px}.firePlanSection summary span{line-height:1.5}.firePlanSection textarea{min-height:160px;font-size:13px;line-height:1.65;white-space:pre-wrap}.firePlanMetaForm{align-items:start}.firePlanMetaForm input,.firePlanMetaForm select,.firePlanMetaForm textarea{font-size:13px}
@media(max-width:1200px){.firePlanOverviewCards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.firePlanSourceHead{flex-direction:column}.firePlanProgress{width:100%}.firePlanOverviewCards{grid-template-columns:repeat(2,minmax(0,1fr))}.firePlanInnerTabs{overflow:auto;flex-wrap:nowrap;padding-bottom:4px}.firePlanInnerTab{white-space:nowrap}}
@media(max-width:520px){.firePlanOverviewCards{grid-template-columns:1fr}}

/* v8.8.1 소방계획서 이미지 업로드 + 원본양식형 전자서식 */
.fpOriginalForm{border:1px solid #b9c5cf;background:#fff}
.fpOriginalForm summary{background:#eef3f7}
.fpFormHelp{padding:10px 12px;background:#fffaf0;border-bottom:1px solid #ead9b6;font-size:12px;line-height:1.6;color:#5b5140}
.fpFormHelp b{color:#744d14}.fpFormHelp .btn{float:right;margin-top:-3px}
.fpPaperGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid #8d99a4;border-left:1px solid #8d99a4;margin:12px;background:#fff}
.fpPaperField{display:grid;grid-template-columns:145px minmax(0,1fr);min-height:48px;border-right:1px solid #8d99a4;border-bottom:1px solid #8d99a4}
.fpPaperField.span2{grid-column:span 2}
.fpPaperLabel{background:#e8eef4;display:flex;align-items:center;justify-content:center;text-align:center;padding:8px;font-weight:700;color:#253e51;border-right:1px solid #8d99a4;font-size:12.5px;line-height:1.4}
.fpPaperInput{padding:5px;min-width:0;display:flex;align-items:stretch}
.fpPaperInput input,.fpPaperInput select,.fpPaperInput textarea{width:100%;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff;font-size:13px;padding:8px;line-height:1.5}
.fpPaperInput textarea{min-height:88px;resize:vertical}
.fpPaperInput input:focus,.fpPaperInput select:focus,.fpPaperInput textarea:focus{outline:2px solid rgba(42,112,166,.2);outline-offset:-2px}
.fpCheckGrid{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px 8px;padding:5px}
.fpCheckGrid label{display:flex;align-items:center;gap:6px;padding:6px 7px;border:1px solid #e1e6ea;border-radius:5px;background:#fafcfd;font-size:12px;line-height:1.35;text-align:left;justify-content:flex-start}
.fpCheckGrid input[type=checkbox]{width:16px!important;height:16px!important;flex:0 0 16px!important;margin:0!important}
.firePlanTopActions .btn.xs{padding:5px 8px;font-size:11px}
@media(max-width:980px){.fpPaperGrid{grid-template-columns:1fr}.fpPaperField.span2{grid-column:span 1}.fpCheckGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.fpPaperGrid{margin:8px}.fpPaperField{grid-template-columns:110px minmax(0,1fr)}.fpCheckGrid{grid-template-columns:1fr}.fpFormHelp .btn{float:none;margin:6px 0 0}}

/* v8.8.1 소방계획서 이미지 업로드 / 원본형 출력 */
.fpImageWidget{width:100%;display:flex;flex-direction:column;gap:8px;padding:6px 4px}
.fpImagePreview{min-height:155px;border:1px dashed #b9c5cf;border-radius:8px;background:#f8fafc;display:flex;align-items:center;justify-content:center;overflow:hidden}
.fpImagePreview.hasImage{border-style:solid;background:#fff}
.fpImagePreview img{display:block;max-width:100%;max-height:320px;object-fit:contain;margin:auto}
.fpImageEmpty{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;color:#6c7a86;padding:24px}
.fpImageEmpty b{font-size:13px;color:#496275}.fpImageEmpty span{font-size:11.5px;line-height:1.5}
.fpImageMeta{display:flex;gap:8px;align-items:center;min-width:0}.fpImageMeta span{font-size:12px;font-weight:700;color:#314c61;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:75%}.fpImageMeta small{font-size:10.5px;color:#7a8791}
.fpImageActions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.fpUploadBtn{position:relative;overflow:hidden;cursor:pointer}.fpUploadBtn input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.fpImageActions button:disabled{opacity:.45;cursor:not-allowed}
.fpImageCaptionRow{display:grid;grid-template-columns:105px minmax(0,1fr);align-items:center;border:1px solid #d8e0e7;background:#fff}.fpImageCaptionRow span{padding:8px;background:#eef3f7;border-right:1px solid #d8e0e7;font-size:11.5px;font-weight:700;text-align:center;color:#40586a}.fpImageCaptionRow input{border:0!important;padding:8px!important;font-size:12px!important}
.fpImageLibraryOverlay{position:fixed;inset:0;background:rgba(15,30,45,.55);z-index:10050;display:flex;align-items:center;justify-content:center;padding:24px}
.fpImageLibrary{width:min(1120px,96vw);max-height:88vh;overflow:auto;background:#fff;border-radius:14px;box-shadow:0 18px 55px rgba(0,0,0,.24);padding:16px}
.fpImageLibraryHead{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:4px 4px 14px;border-bottom:1px solid #e1e7ec}.fpImageLibraryHead b{display:block;font-size:18px;color:#173f5d}.fpImageLibraryHead span{display:block;margin-top:3px;font-size:12px;color:#687985}
.fpImageLibraryGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:14px 2px 2px}.fpImageLibraryItem{border:1px solid #d8e1e8;background:#fff;border-radius:10px;padding:8px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:5px;min-width:0}.fpImageLibraryItem:hover{border-color:#90aec4;box-shadow:0 4px 14px rgba(34,67,91,.09)}.fpImageLibraryItem img{width:100%;height:140px;object-fit:contain;background:#f6f8fa;border-radius:6px}.fpImageLibraryItem b{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#304c61}.fpImageLibraryItem span{font-size:10.5px;color:#7a8791}.fpImageLibraryEmpty{grid-column:1/-1;padding:40px;text-align:center;color:#71808b;background:#f8fafb;border-radius:10px}
@media(max-width:900px){.fpImageLibraryGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.fpImageCaptionRow{grid-template-columns:90px minmax(0,1fr)}}
@media(max-width:540px){.fpImageLibraryOverlay{padding:8px}.fpImageLibraryGrid{grid-template-columns:1fr}.fpImagePreview{min-height:120px}.fpImageActions .btn,.fpImageActions .fpUploadBtn{flex:1 1 46%}}

/* v8.8.2 소방계획서 표지 출력: 결재란 중앙정렬 + 회사명 간격 조정 */

.fpImageNaRow{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:9px 10px;margin-bottom:8px;border:1px solid #d7dde3;border-radius:7px;background:#f7f9fb}.fpImageNaRow label{display:flex;align-items:center;gap:6px}.fpImageNaRow span{font-size:12px;color:#5a6470}.fpImageWidget.isNA .fpImagePreview{background:#f5f5f5;border-style:solid}.fpImageWidget.isNA .fpImageNA b{font-size:18px}.fpImageWidget.isNA .fpUploadBtn.disabled{opacity:.5;pointer-events:none}

/* v8.8.8 소방계획서 미저장 상태 */
.fpUnsavedState{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700;background:#eef3f6;color:#60717d;border:1px solid #d8e0e5}
.fpUnsavedState.active{background:#fff3cd;color:#8a5a00;border-color:#f0d585}


/* v8.9.0 관리감독자 부서별 소화기 점검 */
.fireExtCheckHeader{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.fireExtCheckToolbar{align-items:center;justify-content:flex-start;margin:10px 0}
.fireExtCheckTable th,.fireExtCheckTable td{font-size:12px;vertical-align:middle;white-space:nowrap}
.fireExtCheckTable select{min-width:76px;padding:7px 5px}
.fireExtCheckTable input{min-width:150px}
.fireExtCompleteBox{margin-top:14px;max-width:760px}
.fireExtAdminSummary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.fireExtAdminSummary .box{margin:0;text-align:center}
.fireExtAdminSummary .num{font-size:28px;font-weight:800;margin-top:5px}
@media(max-width:760px){.fireExtAdminSummary{grid-template-columns:repeat(2,minmax(0,1fr))}.fireExtCheckHeader{align-items:flex-start}.fireExtCheckTable th,.fireExtCheckTable td{font-size:11px}}

/* v8.9.1 관리자 대시보드 접속현황 */
.ehsResourceNumbers3{grid-template-columns:repeat(3,1fr);gap:8px}
.ehsResourceNumbers .ehsOnlineUsersStat{font:inherit;color:inherit;background:transparent;border:0;padding:0;margin:0;cursor:pointer;border-radius:10px;transition:.15s}
.ehsResourceNumbers .ehsOnlineUsersStat:hover{background:rgba(36,99,235,.08);box-shadow:0 0 0 1px rgba(36,99,235,.16)}
.ehsResourceNumbers .ehsOnlineUsersStat strong,.ehsResourceNumbers .ehsOnlineUsersStat span{display:block}
.onlineUserList{margin-top:12px;border:1px solid #e1e6ec;border-radius:12px;overflow:hidden}
.onlineUserRow{display:grid;grid-template-columns:30px 18px minmax(180px,1fr) 86px 150px;align-items:center;gap:8px;padding:11px 12px;border-bottom:1px solid #edf0f3;background:#fff}
.onlineUserRow:last-child{border-bottom:0}
.onlineUserNo{text-align:center;color:#7a8490;font-size:12px}
.onlineUserIdentity b{display:block;font-size:14px}.onlineUserIdentity small{display:block;color:#69737f;margin-top:2px}
.onlineUserTime{text-align:right;font-size:13px}.onlineUserTime small{display:block;color:#7b8591;font-size:11px;margin-top:2px}
@media(max-width:720px){.ehsResourceNumbers3{grid-template-columns:repeat(3,1fr)}.onlineUserRow{grid-template-columns:24px 14px 1fr 72px}.onlineUserTime{grid-column:3/5;text-align:left;padding-left:0}.onlineUserTime small{display:inline;margin-left:6px}}


/* v8.9.5 산업안전 안전관리 문서 3분류 */
.safetyDocGroupGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0 18px}.safetyDocGroupCard{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:132px;padding:19px 20px;border:1px solid #d9e2ea;border-radius:14px;background:#fff;text-align:left;cursor:pointer;box-shadow:0 2px 8px rgba(20,45,70,.05);transition:.16s ease}.safetyDocGroupCard:hover{transform:translateY(-1px);border-color:#8ea9bf;box-shadow:0 5px 14px rgba(20,45,70,.09)}.safetyDocGroupCard.active{border:2px solid #406b8f;background:#f5f9fc;padding:18px 19px}.safetyDocGroupCard b{font-size:18px;color:#173952}.safetyDocGroupCard small{font-size:12.5px;color:#617383}.safetyDocGroupCard em{position:absolute;right:18px;bottom:17px;font-style:normal;font-weight:800;font-size:14px;color:#315d80;background:#eaf2f7;border-radius:999px;padding:5px 10px}.safetyDocGroupNo{font-size:11px;font-weight:800;letter-spacing:.08em;color:#7b91a4}.safetyDocSectionHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 10px;padding:0 2px}.safetyDocSectionHead>div{display:flex;flex-direction:column;gap:3px}.safetyDocSectionHead b{font-size:18px;color:#173952}.safetyDocSectionHead span{color:#647786}.safetyDocEmpty{margin-top:14px;padding:34px 24px;border:1px dashed #bdcbd6;border-radius:14px;background:#fbfcfd;text-align:center;color:#647786}.safetyDocEmpty b{display:block;margin-bottom:7px;color:#284b66;font-size:16px}@media(max-width:900px){.safetyDocGroupGrid{grid-template-columns:1fr}}

/* ============================================================
   v8.9.6 작업장 순회점검 · QR · 위험성평가 후보
   ============================================================ */
.patrolWorkspace{padding-bottom:110px}
.patrolScanHero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px;margin-bottom:12px;border:1px solid #cdd9e6;border-radius:16px;background:linear-gradient(135deg,#f8fbfe,#eef5fb)}
.patrolScanHero h2{margin:3px 0 7px;font-size:21px}.patrolScanHero p{margin:0;color:#556575;line-height:1.55}.patrolEyebrow{font-size:11px;letter-spacing:.09em;font-weight:800;color:#52708b}.patrolScanStart{min-width:170px;min-height:48px;font-size:15px}.patrolScanNotice{margin-bottom:12px}.patrolSearchBar{display:flex;gap:8px;margin:12px 0}.patrolSearchBar input{flex:1}.patrolEqCard{transition:.15s ease}.patrolEqCard:hover{transform:translateY(-1px)}
.patrolQrOverlay{position:fixed;inset:0;z-index:99999;background:rgba(8,17,28,.84);display:flex;align-items:center;justify-content:center;padding:14px}.patrolQrPanel{width:min(560px,100%);max-height:95vh;overflow:auto;background:#fff;border-radius:18px;padding:16px;box-shadow:0 24px 70px rgba(0,0,0,.35)}.patrolQrPanel h2{margin:2px 0 8px}.patrolVideoWrap{position:relative;background:#111;border-radius:14px;overflow:hidden;aspect-ratio:4/3;margin:10px 0}.patrolVideoWrap video{display:block;width:100%;height:100%;object-fit:cover}.patrolScanFrame{position:absolute;left:50%;top:50%;width:62%;aspect-ratio:1;transform:translate(-50%,-50%);border:3px solid #fff;border-radius:18px;box-shadow:0 0 0 999px rgba(0,0,0,.16),inset 0 0 0 1px rgba(0,0,0,.25)}.patrolQrPhotoBtn{position:relative;overflow:hidden;margin:8px 0}.patrolQrPhotoBtn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.patrolInspectPage{padding-bottom:110px}.patrolEquipmentHead h2{font-size:21px;margin:3px 0}.patrolChecklist{display:grid;gap:10px}.patrolCheckItem{padding:0!important;overflow:hidden}.patrolCheckTop{display:grid;grid-template-columns:34px 1fr 110px;gap:10px;align-items:center;padding:13px 14px}.patrolCheckNo{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:#eaf1f7;color:#314d65;font-weight:800}.patrolCheckTop select{width:110px}.patrolDefectDetail{display:none;padding:13px 14px 14px;border-top:1px solid #f0c5c5;background:#fff8f8;grid-template-columns:1fr 1fr;gap:10px}.patrolDefectDetail.show{display:grid}.patrolDefectDetail textarea{min-height:78px}.patrolRiskCandidate{grid-column:1/-1;display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid #edc264;border-radius:10px;background:#fffaf0}.patrolRiskCandidate input{margin-top:3px;transform:scale(1.15)}.patrolRiskCandidate span{display:flex;flex-direction:column;gap:2px}.patrolRiskCandidate small{color:#796432}.patrolFinishBox{margin-top:14px}
.riskTabCount{display:inline-flex;min-width:20px;height:20px;padding:0 6px;margin-left:4px;align-items:center;justify-content:center;border-radius:10px;background:#c63b36;color:white;font-size:11px}.riskCandidateIntro{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:15px 17px;margin-bottom:12px;border:1px solid #c8d8e7;border-radius:12px;background:#f5f9fc}.riskCandidateIntro>div{display:flex;flex-direction:column;gap:5px}.riskCandidateIntro span{color:#607283}.riskCandidateGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.riskCandidateCard{border:1px solid #d7e0e7;border-radius:14px;background:#fff;padding:15px;box-shadow:0 3px 12px rgba(20,45,65,.05)}.riskCandidateCard h3{margin:2px 0 0;font-size:17px}.riskCandidateMeta{display:flex;flex-wrap:wrap;gap:6px 14px;padding:8px 0;margin:7px 0;border-top:1px solid #edf1f4;border-bottom:1px solid #edf1f4;font-size:12px;color:#6b7782}.riskCandidateIssue b{font-size:12px;color:#506374}.riskCandidateIssue p{margin:3px 0 9px;white-space:pre-wrap;line-height:1.5}.riskCandidateActions{justify-content:flex-end;margin-top:12px}.riskCandidateLoaded{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 15px;margin-bottom:10px;border:1px solid #d8b659;border-radius:12px;background:#fff8e6}.riskCandidateLoaded>div{display:flex;flex-direction:column;gap:3px}.riskCandidateLoaded span{font-size:12px;color:#78643b}
@media(max-width:720px){.patrolScanHero{align-items:stretch;flex-direction:column}.patrolScanStart{width:100%}.patrolCheckTop{grid-template-columns:30px 1fr}.patrolCheckTop select{grid-column:2;width:100%;margin-top:2px}.patrolDefectDetail.show{grid-template-columns:1fr}.riskCandidateGrid{grid-template-columns:1fr}.riskCandidateIntro,.riskCandidateLoaded{align-items:stretch;flex-direction:column}.riskCandidateIntro .btn,.riskCandidateLoaded .btn{width:100%}}
.patrolBadHistory{display:grid;gap:6px;min-width:180px}.patrolBadHistory>div{display:flex;flex-direction:column;gap:2px;padding:6px 8px;border:1px solid #f0d0d0;border-radius:8px;background:#fff9f9}.patrolBadHistory b{font-size:11px}.patrolBadHistory span,.patrolBadHistory small{font-size:10px;line-height:1.35}.patrolBadHistory em{align-self:flex-start;font-size:9px;font-style:normal;font-weight:700;color:#8a5c00;background:#fff0bd;border-radius:8px;padding:2px 5px}
.patrolQrActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.patrolQrManualEntry{margin:12px 0 10px;padding:12px;border:1px solid #cbd8e6;border-radius:12px;background:#f6f9fc}.patrolQrManualEntry>div:first-child{display:flex;flex-direction:column;gap:3px;margin-bottom:9px;color:#26384a}.patrolQrManualEntry>div:first-child span{font-size:12px;color:#65788c}.patrolQrManualControls{display:grid;grid-template-columns:minmax(0,1fr) 78px;gap:8px}.patrolQrManualControls input{min-width:0;height:42px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.patrolQrManualControls .btn{height:42px;margin:0}
@media(max-width:520px){.patrolQrActions{grid-template-columns:1fr}}
.deptTbmExemptOption{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid #d8e1ea;border-radius:12px;background:#f7fafc;cursor:pointer}
.deptTbmExemptOption input{width:20px;height:20px;margin:1px 0 0;flex:0 0 auto;accent-color:#174f82}
.deptTbmExemptOption span{display:flex;flex-direction:column;gap:3px}.deptTbmExemptOption small{color:#64748b;line-height:1.45}
.fpDocForm{margin:12px 0;border:1px solid #cbd5e1;border-radius:8px;background:#fff}.fpDocForm>summary{padding:16px;background:#edf3f8;cursor:pointer;font-weight:700}.fpDocForm>summary span{float:right;font-size:12px}.fpDocEntry{padding:15px;border-bottom:1px solid #e2e8f0}.fpDocEntry>.row{margin:10px 0}.fpDocFile{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px;background:#f8fafc}.fpDocSourceText{margin:16px}.fpDocSourceText pre{white-space:pre-wrap;font:inherit;max-height:420px;overflow:auto;background:#f8fafc;padding:16px}.fpLegacyArchive{margin:20px 0;padding:16px;border:1px solid #cbd5e1;border-radius:8px}.fpLegacyArchive>summary{cursor:pointer;font-weight:700;padding:8px}.fpDocForm[hidden]{display:none}
