:root{font-family:'Malgun Gothic','맑은 고딕',system-ui,sans-serif;color:#2a2a2a;background:#f5f5f5;font-synthesis:none;font-size:16px;--navy:#2d2d2d;--blue:#7c7c7c;--line:#e7e7e7;--muted:#747474}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button,input,select,a{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #898989}button{border:0}input,select{border:1px solid #d8d8d8;background:white;border-radius:7px;padding:11px 12px;min-width:0;color:#2a2a2a}input:focus,select:focus{border-color:var(--blue)}input[type=checkbox]{accent-color:var(--blue);width:18px;height:18px}label{font-size:.875rem;font-weight:600;display:grid;gap:8px}h1,h2,h3,p{margin-top:0}h1{font-size:1.8rem;letter-spacing:-.06rem;margin-bottom:10px}h2{font-size:1.2rem}h3{font-size:1rem}p{line-height:1.7}.muted{color:var(--muted);font-size:.875rem}.eyebrow{font-size:.75rem;letter-spacing:.13rem;font-weight:700;color:#7a7a7a}.brand{display:flex;gap:12px;align-items:center}.brand img{width:38px;height:38px}.brand strong{display:block;font-size:1.15rem}.brand small{display:block;font-size:.75rem;letter-spacing:.07rem;margin-top:4px;color:#c4c4c4}.primary,.secondary,.quiet{padding:11px 17px;border-radius:7px;font-weight:600;font-size:.875rem}.primary{background:var(--blue);color:white}.primary:hover{background:#6a6a6a}.secondary{background:white;border:1px solid var(--line);color:#3d3d3d}.quiet{background:transparent;color:#696969}.auth{min-height:100vh;display:grid;grid-template-columns:60% 40%}.auth-aside{background:var(--navy);padding:48px 11%;display:flex;flex-direction:column;color:white}.auth-intro{margin:auto 0;padding:70px 0}.auth-intro h1{font-size:2.8rem;line-height:1.4;letter-spacing:-.12rem}.auth-intro p{color:#cdcdcd;max-width:360px}.auth-stats{display:flex;gap:36px;border-top:1px solid #555555;padding-top:28px}.auth-stats strong{font-size:2rem;display:block}.auth-stats span{font-size:.875rem;color:#cdcdcd}.auth-main{padding:50px 9%;display:grid;align-content:center}.auth-card{width:100%;max-width:360px;margin:auto}.auth-card h2{font-size:1.6rem}.auth-card form{display:grid;gap:20px;margin-top:28px}.auth-card .primary{padding:15px}.auth-note{border-top:1px solid var(--line);padding-top:22px;margin-top:30px}.error{color:#b32631;font-size:.875rem;line-height:1.6;min-height:0}.error:empty{display:none}.shell{min-height:100vh;display:grid;grid-template-columns:240px minmax(0,1fr)}.sidebar{background:var(--navy);color:white;padding:30px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar .brand{padding:0 10px 30px}.nav-label{font-size:.75rem;color:#b0b0b0;letter-spacing:.06rem;padding:24px 14px 12px}.nav{display:grid;gap:5px}.nav button{background:transparent;color:#d6d6d6;display:flex;align-items:center;gap:13px;text-align:left;padding:13px 15px;border-radius:7px;font-size:.875rem}.nav button:hover{background:#3f3f3f}.nav button.active{background:#797979;color:white;font-weight:700}.nav-icon{font-size:1rem;width:20px;text-align:center}.sidebar-foot{margin-top:auto;border-top:1px solid #525252;padding:20px 12px 0;color:#cdcdcd;font-size:.75rem;line-height:1.8}.workspace{min-width:0}.topbar{height:76px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;gap:15px}.topbar-left{display:flex;align-items:center;gap:12px;font-size:.875rem}.badge{display:inline-block;border-radius:5px;padding:5px 9px;background:#f5f5f5;color:#686868;font-size:.75rem;font-weight:700}.topbar-user{display:flex;align-items:center;gap:14px;font-size:.875rem}.avatar{height:34px;width:34px;border-radius:50%;background:#f0f0f0;color:#7c7c7c;display:grid;place-items:center;font-weight:700}.content{padding:32px 36px 46px;max-width:1600px;margin:auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.page-head p{margin-bottom:0}.demo-banner{display:flex;align-items:center;gap:12px;background:#f4f4f4;border:1px solid #e7e7e7;border-radius:8px;padding:13px 17px;margin-bottom:25px;color:#5b5b5b;font-size:.875rem;line-height:1.6}.demo-banner strong{white-space:nowrap}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:28px}.stat,.panel,.module-card{background:white;border:1px solid var(--line);border-radius:10px}.stat{padding:23px}.stat-label{font-size:.875rem;color:var(--muted);margin-bottom:12px}.stat-number{font-size:2rem;font-weight:750;letter-spacing:-.06rem}.stat-number span{font-size:.875rem;font-weight:400;margin-left:7px;color:var(--muted)}.stat .muted{margin-top:10px;font-size:.75rem}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-title h2{margin:0}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.module-card{text-align:left;color:inherit;padding:25px;transition:transform .15s,border-color .15s}.module-card:hover{transform:translateY(-2px);border-color:#b3b3b3}.module-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.module-icon{background:#f5f5f5;color:#6a6a6a;width:42px;height:42px;border-radius:9px;display:grid;place-items:center;font-size:1.3rem}.module-card h3{font-size:1.05rem;margin-bottom:7px}.module-card p{margin-bottom:0}.subgrid{display:grid;grid-template-columns:1.35fr 1fr;gap:20px;margin-top:25px}.panel{padding:23px;min-width:0}.list-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:17px 0;gap:15px;font-size:.875rem}.list-row:last-child{padding-bottom:0}.list-row p{margin:3px 0 0;font-size:.75rem;color:var(--muted)}.filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:13px;margin-bottom:22px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:9px}table{border-collapse:collapse;width:100%;font-size:.875rem;white-space:nowrap;background:white}th{background:#f8f8f8;text-align:left;color:#656565;font-weight:600}td,th{padding:14px 17px;border-bottom:1px solid var(--line)}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfbfb}.table-link{background:none;padding:0;color:#6d6d6d;font-weight:600}.pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:17px;font-size:.875rem}.pagination div{display:flex;gap:8px;align-items:center}.bars{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;margin-bottom:24px}.bar{padding:13px 15px;border:1px solid var(--line);background:white;border-radius:8px;font-size:.875rem}.bar strong{display:block;font-size:1.4rem;margin-top:8px}.empty{text-align:center;padding:60px 24px}.empty .module-icon{margin:0 auto 20px;width:58px;height:58px;font-size:1.7rem}.empty p{max-width:490px;margin:0 auto 22px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:14px;padding:30px;width:min(640px,calc(100% - 32px));max-height:90vh;overflow:auto;color:#2a2a2a;box-shadow:0 20px 100px #29292933}dialog::backdrop{background:#1e1e1ea1}.dialog-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:22px}.dialog-head h2{margin:0}.dialog-head button{font-size:1.3rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{grid-column:1/-1}fieldset{border:1px solid var(--line);border-radius:8px;padding:14px;margin:0}legend{font-size:.875rem;font-weight:600;padding:0 6px}.checks{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.checks label{display:flex;align-items:center;gap:7px;font-weight:400}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.detail{display:grid;grid-template-columns:1fr 1fr;gap:22px}.detail dt{color:var(--muted);font-size:.875rem;margin-bottom:7px}.detail dd{margin:0;font-weight:600}#notice{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#343434;color:white;padding:14px 23px;border-radius:9px;box-shadow:0 5px 20px #35353533;z-index:100;font-size:.875rem;max-width:90vw}#notice:empty{display:none}.boot{padding:60px;text-align:center}.mobile-menu{display:none}.split{display:flex;gap:12px;align-items:center}.tag-gray{background:#f3f3f3;color:#787878}.status-active{color:#187754;background:#e9f6ef}.small{font-size:.75rem}.info-note{border-left:3px solid #b1b1b1;padding-left:15px;color:var(--muted);font-size:.875rem;line-height:1.8}
@media(max-width:1100px){.shell{grid-template-columns:210px minmax(0,1fr)}.content{padding:26px 22px}.topbar{padding:0 22px}.module-grid{grid-template-columns:repeat(2,1fr)}.filters{grid-template-columns:1fr 1fr}.bars{grid-template-columns:repeat(4,1fr)}.subgrid{grid-template-columns:1fr}.topbar-user .department{display:none}}
@media(max-width:720px){.auth{grid-template-columns:1fr}.auth-aside{padding:25px}.auth-intro,.auth-aside>small{display:none}.auth-main{padding:34px 24px}.shell{grid-template-columns:1fr}.sidebar{display:none;position:fixed;width:240px;z-index:20;box-shadow:0 0 0 100vmax #25252566}.sidebar.open{display:flex}.mobile-menu{display:block}.topbar{height:auto;min-height:70px;padding:12px 16px;flex-wrap:wrap}.topbar-user{gap:8px}.topbar-left>span{display:none}.content{padding:24px 16px}.stats{gap:9px}.stat{padding:15px 12px}.stat-number{font-size:1.5rem}.stat .muted{display:none}.module-grid{gap:12px}.module-card{padding:18px}.page-head{align-items:flex-start;flex-direction:column}h1{font-size:1.5rem}.demo-banner{align-items:flex-start;flex-direction:column;gap:3px}.bars{grid-template-columns:repeat(4,1fr);gap:7px}.bar{padding:10px}.form-grid,.detail{grid-template-columns:1fr}.checks{grid-template-columns:1fr 1fr}.pagination{flex-wrap:wrap}.topbar-user .avatar{display:none}.auth-card{max-width:100%}}

.nav button.subnav{padding-left:34px;font-size:.875rem}.sidebar .nav{overflow-y:auto;min-height:0}.sidebar-foot{flex-shrink:0}

.report-source{margin-top:20px}

#hr-submenus{display:grid;gap:5px}#hr-submenus[hidden]{display:none}.nav-chevron{margin-left:auto;font-size:12px}

/* Modern gray theme: screen only; retain the print layout. */
@media screen {
 :root{color-scheme:light;font-size:15px;color:#3a3a3a;background:#f4f4f4;--navy:#ececec;--blue:#707070;--line:#dedede;--muted:#696969}
 body{background:#f4f4f4;color:#3a3a3a}
 button{background:#ededed;color:#3a3a3a}
 input,select,textarea{font:inherit;background:#fff;color:#3a3a3a;border:1px solid #c0c0c0;border-radius:6px;padding:9px 11px}
 input::placeholder,textarea::placeholder{color:#777777;opacity:1}
 input:focus,select:focus,textarea:focus{border-color:#808080}
 input[readonly]{background:#f2f2f2;color:#6a6a6a}
 input[type=checkbox]{width:16px;height:16px;accent-color:#707070}
 button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #707070;outline-offset:3px}
 .primary,.secondary,.quiet{padding:9px 14px}
 .primary{background:#707070;color:#fff}.primary:hover{background:#5a5a5a}
 .secondary{background:#fff;color:#4a4a4a;border-color:#c0c0c0}.secondary:hover{background:#efefef}
 .quiet{background:transparent;color:#6a6a6a}.quiet:hover{background:#e9e9e9}
 .auth-aside{background:#ececec;color:#3a3a3a}.auth-main{background:#f4f4f4}.auth-intro h1{font-size:2.4rem}.auth-intro p,.auth-note{color:#696969}.eyebrow{color:#707070}
 .brand small{color:#6c6c6c}.brand strong{font-size:1.08rem}
 .shell{grid-template-columns:222px minmax(0,1fr)}.sidebar{padding:24px 14px;background:#ececec;color:#3a3a3a;border-right:1px solid #dedede}.sidebar .brand{padding-bottom:24px}
 .nav{gap:4px}.nav button{padding:10px 12px;gap:10px;color:#565656;font-size:.875rem}.nav button:hover{background:#e4e4e4}.nav button.active{background:#dedede;color:#545454;font-weight:700}
 .nav-label{color:#696969;padding:19px 12px 10px}.nav-icon{font-size:14px;width:17px;flex-shrink:0}.nav button.subnav{font-size:.85rem;padding-left:29px}.sidebar-foot{border-color:#d8d8d8;color:#6c6c6c;padding-top:15px}
 .topbar{height:64px;background:#fbfbfb;padding:0 28px}.topbar-user{gap:11px}.avatar{width:29px;height:29px;background:#e5e5e5;color:#5c5c5c}
 .content{padding:26px 28px 38px}.page-head{margin-bottom:20px}h1{font-size:1.65rem}h2{font-size:1.13rem}
 .stat,.panel,.module-card,.bar{background:#fff;border-color:#dedede}.panel{padding:20px}.stat{padding:20px}.module-card{padding:21px}.module-card:hover{border-color:#a3a3a3;background:#fbfbfb}
 .module-top{margin-bottom:17px}.module-icon{width:35px;height:35px;font-size:1.08rem;background:#ededed;color:#6d6d6d}.empty .module-icon{width:46px;height:46px;font-size:1.4rem}
 .stat-number{font-size:1.8rem}.stats{gap:15px}.module-grid{gap:14px}
 .badge{background:#ebebeb;color:#616161;padding:4px 8px}.tag-gray{background:#f2f2f2;color:#6b6b6b}.status-active{background:#e4f2eb;color:#286448}
 .demo-banner{background:#eeeeee;border-color:#dbdbdb;color:#626262;padding:11px 15px}.info-note{border-color:#a8a8a8;color:#696969}
 table{background:#fff;color:#3a3a3a}th{background:#f3f3f3;color:#595959}td,th{padding:11px 14px;border-color:#dedede}tbody tr:hover{background:#f7f7f7}
 .table-link{color:#5c5c5c;background:none}.muted{color:#696969}.error{color:#b42335}
 dialog{background:#fff;color:#3a3a3a;border-color:#cdcdcd;box-shadow:0 20px 80px #38383833}dialog::backdrop{background:#38383866}
 #notice{background:#616161;color:#fff;border:1px solid #999999}
 .workspace .contract-paper{background:#fff;color:#3a3a3a;border:1px solid #d8d8d8}
 .workspace .contract-paper table{background:#fff;color:#3a3a3a}.workspace .contract-paper th{background:#f3f3f3;color:#595959}
 .workspace .contract-paper th,.workspace .contract-paper td{border-color:#bdbdbd}.workspace .contract-paper .test-ribbon{border-color:#a97540;color:#825021}
}
@media screen and (max-width:720px){
 .shell{grid-template-columns:1fr}.sidebar{width:222px}.topbar{height:auto;min-height:62px;padding:10px 14px}.content{padding:22px 14px}.stat{padding:14px 10px}.stat-number{font-size:1.5rem}.module-card{padding:16px}.auth-aside{padding:24px}.form-grid{grid-template-columns:1fr}
}

.hours-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:14px}.hours-toolbar label{display:grid;gap:6px}.hours-over{color:#b42335;font-weight:700}#hours-results th,#hours-results td{white-space:nowrap}#modal:has([data-hours-detail]),#modal:has(.table-wrap){max-width:1200px;width:94vw}

.nav button[data-nav="work-hours"]{font-size:12px;letter-spacing:-.5px;padding-right:6px;white-space:nowrap}.content:has(#hours-results)>.panel{margin-bottom:16px}

#hours-results td,#hours-results th{padding:12px 9px}#hours-results td small{display:block;font-size:11px;white-space:normal;color:var(--muted)}


.nav .hours-submenus{margin-left:12px;border-left:1px solid #d8d8d8;padding-left:4px}.nav .hours-submenus button[data-nav="work-hours"]{padding-left:9px;font-size:11.5px;letter-spacing:-.6px;gap:5px}

#hours-totals{margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}.hours-total-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:16px}.hours-total-grid>div{padding:18px;border:1px solid var(--line);border-radius:9px}.hours-total-grid span{display:block;color:var(--muted);font-size:13px}.hours-total-grid strong{display:block;font-size:24px;margin-top:9px}@media(max-width:600px){.hours-total-grid{grid-template-columns:1fr}}

/* Department navigation: horizontal tabs */
@media screen{
 #department-navigation:empty{display:none}
 #department-navigation{padding:0 28px;background:#fafafa;border-bottom:1px solid #dedede}
 .department-tabs,.department-subtabs{display:flex;align-items:center;overflow-x:auto;gap:8px;scrollbar-width:thin}
 .department-tabs{min-height:54px;gap:22px}
 .department-tabs button{flex-shrink:0;border:0;border-radius:0;border-bottom:2px solid transparent;background:transparent;color:#696969;padding:17px 2px 15px;font-size:13px;font-weight:500}
 .department-tabs button:hover{color:#545454;background:transparent}
 .department-tabs button.selected{color:#545454;border-bottom-color:#808080;font-weight:650}
 .department-subtabs{padding:12px 0;border-top:1px solid #dedede}
 .department-subtabs button{flex-shrink:0;border:1px solid #cdcdcd;border-radius:18px;background:transparent;color:#696969;padding:6px 14px;font-size:12px}
 .department-subtabs button.selected{background:#e8e8e8;border-color:#b5b5b5;color:#545454}
 #department-navigation button:focus-visible{outline:2px solid #808080;outline-offset:-3px}
}
@media screen and (max-width:720px){#department-navigation{padding:0 14px}.department-tabs{gap:18px}.department-tabs button{font-size:12px}}
@media print{#department-navigation{display:none}}

/* Employment headcount by workforce category */
.employment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:18px 0}
.employment-card{margin:0;min-width:0}
.employment-card-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
.employment-card-heading h2{margin:0;font-size:16px}
.employment-card-heading .muted{font-size:11px}
.employment-card dl{margin:18px 0 12px}
.employment-metric{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid #dedede}
.employment-metric dt{font-size:13px;color:#696969}
.employment-metric dd{margin:0;font-size:26px;font-weight:650;font-variant-numeric:tabular-nums}
.employment-metric dd small{font-size:12px;font-weight:400;margin-left:5px;color:#696969}
.employment-total{border-color:#b5b5b5;background:#f7f7f7}
.employment-verified{font-size:11px;margin-bottom:0}
@media(max-width:850px){.employment-grid{grid-template-columns:1fr}.employment-card dl{display:flex;gap:20px}.employment-metric{flex:1;display:block}.employment-metric dd{margin-top:8px}}
@media print{.employment-metric dt,.employment-metric dd small{color:#333}.employment-total{background:#fff}}

.employment-monthly table{width:100%;min-width:940px;table-layout:fixed;font-variant-numeric:tabular-nums}
.employment-monthly th,.employment-monthly td{text-align:center;padding:13px 5px;font-size:12px;white-space:nowrap}
.employment-monthly thead th:nth-child(-n+2){width:82px}
.employment-monthly thead th{border-bottom:1px solid #d2d2d2}
.employment-monthly thead small{display:block;font-size:10px;font-weight:400;margin-top:3px}
.employment-monthly .employment-group-label{vertical-align:middle;font-size:13px;background:rgba(75,134,180,.05)}
.employment-monthly .employment-item-label{font-weight:400}
.employment-monthly .employment-workforce+tbody tr:first-child>*{border-top:1px solid #d2d2d2}
.employment-monthly .employment-total-rows{background:rgba(75,134,180,.10)}
.employment-monthly .employment-total-rows tr:first-child>*{font-weight:700}
.employment-monthly .employment-current-month{background:rgba(75,134,180,.20)}
.employment-monthly .employment-future-month{color:#6c6c6c}


.card-filters{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.card-filters label{display:grid;gap:6px;min-width:150px}.card-filters select{width:100%}.card-monthly{min-width:1500px}.card-monthly th:first-child{min-width:160px;text-align:left}.card-monthly td,.card-monthly th{text-align:right;white-space:nowrap}.card-monthly tfoot{font-weight:700;background:#efefef}.card-amount{border:0;background:transparent;color:#595959;padding:8px 2px;cursor:pointer;font:inherit}.card-amount:hover{text-decoration:underline}.card-monthly th:first-child{position:sticky;left:0;background:#f4f4f4}.card-monthly td:last-child{font-weight:700}#card-detail{margin-top:20px}#card-detail td:nth-child(5){min-width:260px;white-space:normal}

.card-provider-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:0 28px 14px}.card-provider-tabs button{border:1px solid #d8d8d8;border-radius:6px;padding:7px 12px;background:#fbfbfb;color:#696969;font:inherit;cursor:pointer}.card-provider-tabs button.selected{background:#707070;border-color:#707070;color:white}.card-provider-tabs button:hover{border-color:#707070}.card-provider-tabs button:focus-visible{outline:2px solid #595959;outline-offset:2px}
.safety-filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:18px 0}.safety-filters label{display:grid;gap:6px;flex:1;min-width:130px}.safety-filters input,.safety-filters select{width:100%}.safety-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0}.safety-stats button{text-align:left;cursor:pointer;color:#414141;font:inherit;border:1px solid #dbdbdb}.safety-stats strong{display:block;font-size:30px;margin-top:14px}.safety-stats small{font-size:13px;margin-left:6px}.safety-late{background:#fff0ef!important;color:#a92d36!important}.safety-empty{text-align:center;padding:44px!important;color:#767676}.safety-file{display:inline-block;padding:6px 10px;margin:4px;border:1px solid #d6d6d6;border-radius:6px;color:#565656;overflow-wrap:anywhere}.safety-detail{max-height:72vh;overflow:auto}.safety-detail dl{display:grid;grid-template-columns:140px 1fr;gap:12px}.safety-detail dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.safety-detail p{white-space:pre-wrap;overflow-wrap:anywhere}.safety-detail li{padding:8px 0}.safety-detail small,.safety-check small{display:block;color:#777777;margin-top:5px}.safety-dialog{width:min(860px,94vw);max-width:94vw}.safety-dialog textarea{min-height:90px;resize:vertical;width:100%}.safety-dialog .full{grid-column:1/-1}.safety-check{display:flex;justify-content:space-between;gap:20px;padding:14px;border-bottom:1px solid #e1e1e1}.safety-check select{min-width:130px}.safety-footnote{margin-top:24px;font-size:12px}#safety-preview{max-height:250px;overflow:auto}#safety-form small{color:#777777}#safety-form textarea{font:inherit}#safety-template-download{margin-bottom:16px}@media(max-width:1000px){.safety-stats{grid-template-columns:repeat(2,1fr)}}

.risk-table{margin-top:18px}.risk-table td small{display:block;margin-top:5px;color:var(--muted);white-space:normal}.safety-detail .actions{flex-wrap:wrap}

.risk-photo-comparison{display:grid;grid-template-columns:1fr 1fr;gap:16px}.risk-photo-comparison section{min-width:0;border:1px solid #dbdbdb;border-radius:8px;padding:12px}.risk-photo-comparison figure{margin:0 0 16px}.risk-photo-comparison img{width:100%;height:180px;object-fit:contain;background:#f3f3f3;border-radius:6px}.risk-photo-comparison figcaption{overflow-wrap:anywhere;font-size:13px}.risk-photo-comparison h4{margin:0 0 12px}@media(max-width:600px){.risk-photo-comparison{grid-template-columns:1fr}}

.pd-dashboard{color:#313131}.pd-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.pd-title h1{font-size:27px;margin:0 0 7px}.pd-title p{margin:0;color:#747474}.pd-state{font-size:12px;background:#f1f1f1;padding:8px 12px;border:1px solid #e1e1e1;border-radius:5px;color:#747474}.pd-toolbar{display:flex;gap:18px;align-items:center;background:#fff;border:1px solid #e8e8e8;border-radius:6px;padding:12px 16px;margin-bottom:14px;flex-wrap:wrap}.pd-toolbar label{display:flex;align-items:center;gap:12px;font-size:13px;white-space:nowrap}.pd-toolbar input,.pd-toolbar select{min-width:145px;margin:0;padding:8px}.pd-toolbar fieldset{border:0;display:flex;align-items:center;gap:12px;padding:0;margin:0;min-width:0;flex:1}.pd-toolbar legend{float:left;font-size:13px;white-space:nowrap;margin-right:12px}.pd-scopes{display:flex;gap:7px}.pd-scopes button{border:1px solid #e9e9e9;background:#f9f9f9;border-radius:24px;padding:9px 17px;color:#3c3c3c;font:inherit;font-size:13px;white-space:nowrap;cursor:pointer}.pd-scopes button[aria-pressed=true]{background:#888888;border-color:#888888;color:white}.pd-toolbar>.primary{background:#888888;border-color:#888888;padding:10px 28px}.pd-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:12px}.pd-card{background:white;border:1px solid #e8e8e8;border-radius:6px;padding:18px 14px;display:flex;align-items:center;gap:15px}.pd-icon{width:46px;height:46px;flex:0 0 46px;display:grid;place-items:center;background:#f7f7f7;border-radius:50%;color:#8e8e8e}.pd-icon svg{width:29px;height:29px}.pd-card h2{font-size:14px;font-weight:500;margin:0 0 6px}.pd-card strong{font-size:28px;line-height:1.2}.pd-card p{font-size:12px;color:#747474;margin:8px 0 0}.pd-up{color:#ef4260}.pd-down{color:#868686}.pd-muted{color:#8b8b8b}.pd-ratios{display:grid;grid-template-columns:repeat(3,1fr);background:white;border:1px solid #e8e8e8;border-radius:6px;padding:12px 20px;margin-bottom:12px}.pd-ratios>div{display:flex;align-items:center;gap:16px;padding:0 18px;border-right:1px solid #ebebeb}.pd-ratios>div:last-child{border:0}.pd-ratios .pd-icon{background:none}.pd-ratios span{font-size:13px;color:#747474}.pd-ratios strong{display:block;font-size:21px;margin-top:3px}.pd-panel{background:white;border:1px solid #e8e8e8;border-radius:6px;padding:12px;min-width:0}.pd-panel h2{font-size:16px;margin:0 0 8px}.pd-comparison{margin-bottom:12px}.pd-comparison table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;min-width:700px}.pd-comparison td,.pd-comparison th{border:1px solid #e1e1e1;padding:7px 10px;font-size:13px;text-align:right}.pd-comparison thead th{background:#f0f0f0;text-align:center}.pd-comparison tbody th{text-align:left;font-weight:400}.pd-comparison .pd-total>*{background:#f2f2f2;font-weight:700}.pd-footnote{font-size:11px;color:#7e7e7e;margin:7px 0 0}.pd-bottom{display:grid;grid-template-columns:1.65fr 1.65fr 1fr;gap:12px}.pd-chart{display:block;width:100%;height:auto}.pd-chart text{font-size:10px;fill:#6a6a6a}.pd-chart .pd-no-data{font-size:14px;fill:#898989}.pd-unit{font-size:11px;color:#7f7f7f;margin:0}.pd-chart-title{display:flex;align-items:center;justify-content:space-between;gap:6px}.pd-legend{display:flex;align-items:center;gap:5px;font-size:10px;white-space:nowrap}.pd-legend i{display:inline-block;width:9px;height:9px;background:#8d8d8d}.pd-legend i:last-of-type{background:#c4c4c4;margin-left:6px}.pd-observations{display:flex;flex-direction:column}.pd-observations p{font-size:13px;line-height:1.7;margin:9px 0}.pd-dot{color:#f5b62e;margin-right:7px}.pd-observations nav{border-top:1px solid #eeeeee;margin-top:auto;padding-top:9px}.pd-observations button{display:block;border:0;background:none;color:#838383;font:inherit;font-size:13px;padding:7px 0;cursor:pointer;text-align:left}.pd-dashboard button:focus-visible{outline:2px solid #828282;outline-offset:3px}@media(max-width:1200px){.pd-toolbar{gap:10px}.pd-toolbar fieldset{flex:initial}.pd-card{gap:8px;padding:14px 10px}.pd-card strong{font-size:23px}.pd-icon{width:36px;height:36px;flex-basis:36px}.pd-bottom{grid-template-columns:1fr 1fr}.pd-observations{grid-column:1/-1}.pd-observations nav{display:flex;gap:25px}}@media(max-width:760px){.pd-kpis{grid-template-columns:1fr 1fr}.pd-bottom{grid-template-columns:1fr}.pd-ratios{grid-template-columns:1fr;padding:10px}.pd-ratios>div{border:0;padding:6px}.pd-title{align-items:start;gap:10px}.pd-state{max-width:130px}.pd-title h1{font-size:23px}.pd-toolbar fieldset{flex-wrap:wrap}.pd-scopes{flex-wrap:wrap}}
.pd-toolbar fieldset{flex:0 0 auto;min-width:max-content}.pd-ratios .pd-icon{color:#8e8e8e}.pd-comparison tbody tr:not(.pd-total)>th{background:#fff}.pd-dashboard .pd-comparison .pd-total>*{font-weight:700}
.pd-toolbar{gap:10px}.pd-toolbar input,.pd-toolbar select{min-width:125px}.pd-scopes button{padding:9px 11px}.pd-toolbar>.primary{padding:10px 22px}
.employment-chart{margin:18px 0}.em-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}.em-heading h2{margin:0 0 8px;font-size:18px}.em-heading p,.em-note{color:#7e7e7e;font-size:12px;margin:0}.em-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:12px}.em-legend span{display:flex;align-items:center;gap:7px}.em-legend svg{width:12px;height:12px}.em-scroll{overflow-x:auto;margin-top:16px}.em-chart{display:block;width:100%;min-width:940px}.em-chart text{font-size:12px;fill:#636363}.em-chart .em-total-label{font-size:13px;fill:#373737;font-weight:700}.em-chart .em-inbar{fill:white;font-weight:600}.em-chart .em-month{font-weight:600}.em-chart .em-pending{font-size:10px}.em-grid{stroke:#ebebeb;stroke-width:1}.em-current{fill:#efefef;fill-opacity:.55}.em-future{fill:#f8f8f8;stroke:#e0e0e0;stroke-dasharray:4 3}.em-hire-regular{fill:#949494}.em-hire-outsourcing{fill:#d1d1d1}.em-outsourcing{fill:#2dc3c7}.em-departure-regular{fill:#fa8732}.em-departure-outsourcing{fill:#ffc48c}.em-total-line{stroke:#4c4c4c;stroke-width:2;fill:none}.em-total-dot{fill:#4c4c4c}.em-note{margin-top:10px}
/* Education performance */
.edu-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.edu-filters{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.edu-filters label{flex:1;min-width:135px}.edu-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:18px 0}.edu-kpis .panel{margin:0}.edu-kpis strong{display:block;font-size:27px;color:#555555;margin-top:12px}.edu-chart{width:100%;max-height:300px;display:block}.edu-chart text{font-size:12px;fill:#676767}.edu-plan-bar{fill:#c7c7c7}.edu-done-bar{fill:#5d5d5d}.edu-legend{display:flex;gap:18px;justify-content:flex-end}.edu-legend span:first-child{color:#8e8e8e}.edu-legend span:last-child{color:#5d5d5d}.edu-pagination{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:18px}.edu-confirm{display:flex;align-items:center;gap:10px;margin:18px 0}.edu-confirm input{width:auto}#edu-link-comparison{margin-top:16px}@media(max-width:800px){.edu-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

.edu-original{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.7;background:#f8f8f8;border:1px solid #e6e6e6;border-radius:10px;padding:18px;max-height:480px;overflow:auto}

.edu-body-image{max-width:100%;height:auto;display:block;margin:12px auto}
.machine-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.machine-stats .panel{padding:18px;margin:0}.machine-stats span{color:#707070;font-size:13px}.machine-stats strong{display:block;color:#626262;font-size:28px;margin-top:8px}.machine-stats small{font-size:14px;margin-left:5px}.machine-plants{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.machine-plants button{border:1px solid #e3e3e3;background:#f8f8f8;border-radius:8px;padding:10px 16px;color:#515151}.machine-plants button.selected{background:#737373;color:white}.machine-plants span{margin-left:8px;font-size:12px}.machine-layout{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(280px,1fr);gap:16px;align-items:start}.machine-layout .panel{min-width:0;margin:0}.machine-list .table-wrap{max-height:600px;overflow:auto}.machine-list th{position:sticky;top:0;background:#f4f4f4;z-index:1}.machine-list small{display:block;font-size:11px;color:#7f7f7f;margin-top:4px}.machine-list h2 small{display:inline;font-weight:400}.machine-selected td{background:#f3f3f3}.machine-status{display:inline-block;border-radius:5px;padding:4px 8px;font-size:12px;white-space:nowrap;background:#f2f2f2;color:#5e5e5e}.machine-status.soon{background:#fff0d2;color:#986100}.machine-status.expired,.machine-status.failed,.machine-status.unknown{background:#ffebeb;color:#ab3434}.machine-warning{color:#9c6717!important;font-size:12px}.machine-detail dl{display:grid;grid-template-columns:100px minmax(0,1fr);font-size:13px}.machine-detail dt,.machine-detail dd{margin:0;padding:10px 0;border-bottom:1px solid #ededed;overflow-wrap:anywhere}.machine-detail dt{color:#777777}.machine-detail .actions{flex-wrap:wrap}.machine-detail{position:sticky;top:16px}@media(max-width:1150px){.machine-layout{grid-template-columns:1fr}.machine-detail{position:static}}@media(max-width:650px){.machine-stats{grid-template-columns:1fr 1fr}}
.inspection-photo{padding:0;border:1px solid #e4e4e4;background:#f4f4f4;border-radius:6px;overflow:hidden;margin:3px;vertical-align:middle;cursor:zoom-in}.inspection-photo img{width:110px;height:76px;object-fit:contain;display:block}.inspection-full-photo{max-width:100%;max-height:75vh;object-fit:contain;display:block;margin:auto}.inspection-table td:nth-child(2){min-width:140px;max-width:270px}.inspection-table td:nth-child(6){min-width:200px;max-width:440px;white-space:normal}.inspection-pagination{justify-content:flex-end;margin-top:16px}
.action-table{min-width:1150px}.action-table td:nth-child(2),.action-table td:nth-child(3){min-width:120px;max-width:250px}.action-table td:nth-child(7),.action-table td:nth-child(9){min-width:150px;max-width:330px;white-space:pre-wrap;overflow-wrap:anywhere}.action-photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}

.safety-registration-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:18px 0}.safety-registration-stats .panel{margin:0}.safety-registration-stats strong{display:block;font-size:28px;color:#555555;margin-top:10px}.safety-registration-legend{display:flex;gap:24px;justify-content:flex-end;margin-bottom:16px}.safety-registration-legend span:first-child{color:#848484}.safety-registration-legend span:last-child{color:#20898e}.safety-registration-row{display:grid;grid-template-columns:110px 1fr;gap:18px;align-items:center;margin:18px 0}.safety-registration-row>div{padding-right:65px}.safety-registration-bar{display:flex;align-items:center;gap:10px;height:25px;margin:5px 0}.safety-registration-bar>span{height:18px;border-radius:4px;flex-shrink:0}.safety-registration-bar b{white-space:nowrap;font-weight:500}.safety-registration-bar .bar-0{background:#848484}.safety-registration-bar .bar-1{background:#20898e}@media(max-width:650px){.safety-registration-stats{grid-template-columns:1fr}.safety-registration-row{grid-template-columns:85px 1fr;gap:8px}}

.hazard-overview{color:#3b3b3b}.hazard-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:4px 0 16px}.hazard-kpi.panel{display:flex;align-items:center;gap:16px;margin:0;padding:22px 18px;border:1px solid #e4e4e4;box-shadow:none}.hazard-kpi strong{display:block;font-size:29px;line-height:1.3;margin-top:8px;color:#5b5b5b}.hazard-kpi-icon{display:grid;place-items:center;border-radius:50%;width:50px;height:50px;flex-shrink:0;background:#f7f7f7;color:#848484;font-size:29px}.hazard-kpi-2 strong,.hazard-gap{color:#e98130}.hazard-kpi-2 .hazard-kpi-icon{background:#fff5eb;color:#e98130}.hazard-factory-panel.panel,.hazard-chart-panel.panel{padding:16px;border:1px solid #e4e4e4;box-shadow:none;margin-bottom:16px}.hazard-overview h2{font-size:19px;margin:0 0 14px}.hazard-factory-panel table th,.hazard-factory-panel table td{text-align:center;padding:12px 16px;border-bottom:1px solid #ededed}.hazard-factory-panel thead th,.hazard-factory-panel tfoot{background:#f3f3f3;color:#444444}.hazard-factory-panel tfoot td,.hazard-factory-panel tfoot th{font-weight:700}.hazard-progress{display:flex;align-items:center;gap:12px;min-width:200px}.hazard-progress-track{height:15px;background:#e9e9e9;border-radius:8px;flex:1;overflow:hidden}.hazard-progress-track span{display:block;height:100%;background:#919191;border-radius:8px}.hazard-progress strong{font-size:14px;min-width:62px;text-align:right;font-weight:500}.hazard-chart-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.hazard-legend{display:flex;gap:22px;font-size:13px}.hazard-legend span:before{content:"";display:inline-block;width:12px;height:12px;background:#919191;margin-right:7px;border-radius:2px}.hazard-legend span:last-child:before{background:#ffb17e}.hazard-columns{display:block;width:100%;min-width:700px;max-height:300px}.hazard-columns line{stroke:#ededed;stroke-width:1}.hazard-columns text{font-size:13px;fill:#585858}.hazard-columns .hazard-bar-done{fill:#919191}.hazard-columns .hazard-bar-gap{fill:#ffb17e}.hazard-columns .hazard-bar-label{fill:white}.hazard-columns .hazard-bar-total{font-weight:700;fill:#3b3b3b}.hazard-chart-scroll{overflow-x:auto}.hazard-explanation{font-size:12px;line-height:1.7}@media(max-width:1000px){.hazard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.hazard-kpi.panel{padding:14px;gap:10px}.hazard-kpi strong{font-size:24px}.hazard-kpi-icon{width:36px;height:36px;font-size:22px}.hazard-chart-heading{align-items:start;flex-direction:column}}

.hazard-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.hazard-kpi.panel{gap:12px;padding:20px 14px}.hazard-kpi-icon{width:42px;height:42px}.hazard-kpi-3 strong,.hazard-impossible{color:#766485}.hazard-kpi-3 .hazard-kpi-icon{background:#f2f2f2;color:#766485}.hazard-progress{width:100%;min-width:210px;max-width:320px;margin:0 auto;gap:12px}.hazard-progress-svg{display:block;width:180px;height:14px;flex:1;min-width:110px}.hazard-progress strong{min-width:58px;white-space:nowrap}.hazard-factory-panel th:last-child{width:28%}@media(max-width:1200px){.hazard-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:750px){.hazard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Bold labels throughout the left navigation. */
.sidebar .nav button,.sidebar .nav a,.sidebar .nav .nav-label{font-weight:700}

#action-filter .action-completion-filter{border:0;padding:0;margin:0;min-width:220px;flex:0 0 auto}#action-filter .action-completion-filter legend{padding:0;margin-bottom:6px;font-size:.875rem;font-weight:600}.action-completion-options{display:flex;border:1px solid #d2d2d2;border-radius:7px;overflow:hidden;background:#fff}#action-filter .action-completion-options label{display:block;position:relative;flex:1;min-width:0;margin:0;cursor:pointer}#action-filter .action-completion-options input{position:absolute;opacity:0;width:1px;height:1px;margin:0;padding:0}.action-completion-options span{display:block;padding:10px 12px;font-size:13px;text-align:center;white-space:nowrap;color:#616161}.action-completion-options label+label{border-left:1px solid #e2e2e2}.action-completion-options input:checked+span{background:#828282;color:#fff;font-weight:700}.action-completion-options input:focus-visible+span{outline:2px solid #4e4e4e;outline-offset:-3px}
.shell{--shell-gutter:24px}
/* Fixed application frame; only the workspace content scrolls. */
@media screen{
 body:has(.shell){overflow:hidden}
 .shell{height:100vh;height:100dvh;min-height:0;overflow:hidden;background:#f5f5f5;grid-template-columns:220px minmax(0,1fr)}
 .shell .sidebar{height:100%;min-height:0;padding:25px 14px 18px;background:#f1f1f1;border-right:1px solid #e1e1e1;color:#4a4a4a}
 .shell .sidebar .brand{padding:0 12px 24px;flex-shrink:0}
 .shell .sidebar .brand small{color:#7f7f7f}
 .shell .sidebar .nav{flex:1;align-content:start;overscroll-behavior:contain;scrollbar-width:thin}
 .shell .sidebar .nav button{font-weight:700;padding:11px 13px;font-size:13px;color:#565656;border-radius:8px}
 .shell .sidebar .nav button.active{background:#e2e2e2;color:#5d5d5d;box-shadow:inset 3px 0 #919191}
 .shell .sidebar .nav button:hover{background:#e9e9e9}
 .shell .sidebar-foot{margin-top:16px;padding:14px 12px 0;color:#7f7f7f;border-color:#dedede}
 .shell .workspace{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}
 .shell .topbar{flex:none;height:64px;min-height:64px;padding:0 var(--shell-gutter);background:#fff;border-bottom:1px solid #e4e4e4}
 .shell #department-navigation{flex:none;position:static;padding:0 var(--shell-gutter);background:#fbfbfb;border-color:#e4e4e4}
 .shell .department-tabs{min-height:48px;gap:24px}
 .shell .department-tabs button{padding:14px 2px 12px;font-weight:700}
 .shell .department-tabs button.selected{color:#747474;border-bottom-color:#919191}
 .shell .department-subtabs{padding:9px 0;gap:8px}
 .shell .department-subtabs button{font-weight:600;border-radius:7px;border-color:transparent}
 .shell .department-subtabs button.selected{background:#eeeeee;color:#6a6a6a;border-color:#d9d9d9}
 .shell .content{flex:1;min-height:0;width:100%;max-width:none;margin:0;padding:0 var(--shell-gutter) 28px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scroll-padding-top:110px;background:#f5f5f5}
 .shell .content>.page-head,.shell .pd-title{position:sticky;top:0;z-index:8;margin:0 calc(-1 * var(--shell-gutter)) 20px;padding:20px var(--shell-gutter) 17px;background:#f5f5f5;border-bottom:1px solid #e8e8e8;box-shadow:0 4px 8px #f5f5f5}
 .shell .page-head h1,.shell .pd-title h1{font-size:23px;line-height:1.35;margin-bottom:5px;color:#434343;letter-spacing:-.5px}
 .shell .page-head p,.shell .pd-title p{font-size:12px;color:#7f7f7f;margin:0;line-height:1.6}
 .shell .panel,.shell .stat,.shell .module-card,.shell .pd-card{background:#fff;border:1px solid #e5e5e5;border-radius:12px;box-shadow:0 2px 8px #5c5c5c05}
 .shell .table-wrap{border:1px solid #e7e7e7;border-radius:9px;background:#fff}
 .shell table thead th{background:#f6f6f6;color:#565656;font-size:12px}
 .shell table td{font-size:13px;border-bottom-color:#eeeeee}
 .shell .primary{background:#818181;border-radius:7px;font-size:12px}
 .shell .primary:hover{background:#6c6c6c}
 .shell .secondary,.shell .quiet{font-size:12px}
 .shell input,.shell select{font-size:13px;border-color:#dcdcdc}
 .shell .panel h2{color:#4b4b4b}
 .shell .hazard-kpi-icon{font-size:23px}
}
@media screen and (max-width:1100px){.shell{grid-template-columns:200px minmax(0,1fr);--shell-gutter:18px}}
@media screen and (max-width:720px){
 .shell{grid-template-columns:minmax(0,1fr);--shell-gutter:14px}
 .shell .sidebar{height:100dvh;z-index:20}
 .shell .topbar{height:auto;min-height:64px;padding:10px 14px;gap:8px}
 .shell .page-head{gap:10px}
 .shell .content>.page-head,.shell .pd-title{padding-top:14px;padding-bottom:12px;margin-bottom:14px}
 .shell .page-head h1,.shell .pd-title h1{font-size:20px}
 .shell .department-tabs{gap:18px}
}
@media print{
 .shell,.shell .workspace,.shell .content{display:block;height:auto;max-height:none;overflow:visible}
 .shell .sidebar,.shell .topbar,#department-navigation{display:none}
 .shell .page-head,.shell .pd-title{position:static;box-shadow:none}
}

/* Photo-based risk assessment workspace */
.risk-overview-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.risk-overview-kpis strong{display:block;font-size:30px;color:#717171;margin-top:12px}.risk-overview-kpis small{font-size:13px;margin-left:8px}.risk-steps{display:flex;justify-content:space-around;gap:12px;padding:18px;background:#fbfbfb;border:1px solid #e6e6e6;border-radius:10px;margin-bottom:18px;color:#5a5a5a}.risk-photo-basic{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.risk-photo-layout{display:grid;grid-template-columns:minmax(250px,1fr) minmax(0,2fr);gap:18px;align-items:start}.risk-photo-layout textarea{min-height:75px}.risk-previews{display:grid;gap:10px;margin-bottom:18px;max-height:440px;overflow:auto}.risk-previews img{width:100%;max-height:280px;object-fit:contain;border-radius:8px;background:#f8f8f8}.risk-photo-footer{display:flex;align-items:center;gap:12px}.risk-photo-footer span{margin-right:auto;font-size:13px;color:#686868}.risk-table small{display:block;max-width:400px;white-space:normal;margin-top:6px;color:#7e7e7e}.risk-table td{white-space:normal}.risk-photo-layout input[type=file]{max-width:100%;font-size:12px}@media(max-width:1000px){.risk-photo-basic{grid-template-columns:1fr 1fr}.risk-overview-kpis{grid-template-columns:1fr 1fr}}@media(max-width:720px){.risk-photo-layout{grid-template-columns:1fr}.risk-steps{flex-wrap:wrap}.risk-photo-footer{flex-wrap:wrap}.risk-photo-footer span{width:100%}}
.risk-guided-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}.risk-guided-layout>.panel{min-width:0}.risk-guided-layout .risk-photo-basic{grid-template-columns:1fr 1fr;margin-bottom:16px;gap:12px}.risk-guided-layout .risk-previews{max-height:290px;margin-bottom:12px}.risk-guided-layout .risk-previews img{max-height:250px}.risk-photo-placeholder,.risk-ai-placeholder{padding:28px 16px;background:#f9f9f9;border:1px dashed #d9d9d9;border-radius:8px}.risk-problem-label{display:block;margin-top:18px;font-weight:700}.risk-problem-label small{color:#bb4038;margin-left:8px}.risk-problem-label textarea{display:block;width:100%;margin-top:8px;min-height:96px;font-weight:400}.risk-analyze-start{width:100%;margin-top:4px}.risk-review-fields{grid-template-columns:1fr!important;margin-top:18px;gap:12px}.risk-review-fields textarea{min-height:65px}.risk-review-buttons{display:grid;grid-template-columns:1fr .7fr 1.6fr;gap:8px}.risk-review-buttons button{padding:11px 8px;white-space:normal}.risk-ai-candidate{margin:8px 6px 0 0;text-align:left}.risk-guided-layout details{margin:8px 0;font-size:13px}.risk-guided-layout summary{cursor:pointer;color:#686868}@media(max-width:900px){.risk-guided-layout{grid-template-columns:1fr}} 
.foreign-table small{display:block;margin-top:6px;white-space:normal}.foreign-table td{white-space:normal;min-width:90px}.foreign-wide{grid-column:1/-1}.foreign-details p{margin:6px 0 14px}.foreign-notes{white-space:pre-wrap;overflow-wrap:anywhere}
.foreign-charts{display:grid;grid-template-columns:1fr 1fr;gap:18px}.foreign-bar-row{display:grid;grid-template-columns:110px minmax(80px,1fr) 48px 48px;gap:12px;align-items:center;margin:18px 0}.foreign-bar-row svg{width:100%;height:14px}.foreign-bar-row small{color:#797979}.foreign-deadlines{display:grid;grid-template-columns:1fr 1fr;gap:14px}.foreign-deadlines>div{background:#f6f6f6;border-radius:8px;padding:15px;display:flex;justify-content:space-between}.foreign-deadlines small{font-size:12px;margin-left:5px}.foreign-alerts{display:flex;flex-wrap:wrap;gap:10px}.foreign-kpis p{font-size:12px;margin-bottom:0}.foreign-state-0{background:#ffe6e6;color:#a73131}.foreign-state-1{background:#fff0d2;color:#805412}.foreign-state-2{background:#eeeeee;color:#666666}.foreign-state-3{background:#e1f4ec;color:#21644c}@media(max-width:900px){.foreign-charts{grid-template-columns:1fr}}

/* Foreign workforce: compact dashboard reference layout */
.foreign-kpis .panel{border-top:3px solid #4e4e4e;padding:18px 22px}.foreign-kpis .panel:last-child{border-top-color:#c58332}.foreign-kpis strong{font-size:30px;color:#3d3d3d}.foreign-charts{gap:16px;margin-bottom:16px}.foreign-charts>.panel{margin-bottom:0}.foreign-deadlines{display:flex;flex-direction:column;gap:0}.foreign-deadlines>div{padding:10px 4px;border-bottom:1px solid #eaeaea;background:transparent;border-radius:0}.foreign-deadlines>div:last-child{border-bottom:0}.foreign-attention{border-left:4px solid #d4a153}.foreign-alerts{gap:8px}.foreign-alerts button{font-size:12px;padding:8px 12px}.foreign-list-filters{background:#f9f9f9;border:0;padding:12px;margin:12px 0}.foreign-table th{background:#f3f3f3;color:#4a4a4a}.foreign-table td{padding-top:12px;padding-bottom:12px}.foreign-import-counts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.foreign-import-counts>div{background:#f5f5f5;padding:16px;border-radius:8px;display:flex;justify-content:space-between;align-items:center}.foreign-import-counts strong{font-size:24px;color:#4c4c4c}
.foreign-kpis{margin-bottom:16px}

th.sortable-heading{position:relative;cursor:pointer;padding-right:25px!important;user-select:none}th.sortable-heading::after{content:attr(data-direction);position:absolute;right:9px;top:50%;transform:translateY(-50%);font-size:10px;color:#7c7c7c}th.sortable-heading:focus-visible{outline:2px solid #757575;outline-offset:-3px}@media print{th.sortable-heading::after{display:none}}

/* Modern gray: shared palette across every department and login. */
@media screen{
 :root{--navy:#e9e9eb;--blue:#45464c;--line:#dedee2;--muted:#6b6c73;background:#f3f3f5;color:#292a30}
 body,.shell .content{background:#f3f3f5;color:#292a30}
 .auth-aside,.shell .sidebar{background:#e9e9ec;color:#292a30}
 .auth-main{background:#f6f6f7}
 .shell .sidebar .nav button{color:#51525a}
 .shell .sidebar .nav button.active{background:#d9d9df;color:#24252b;box-shadow:inset 3px 0 #51525b}
 .shell .sidebar .nav button:hover{background:#dfdfe4}
 .shell .topbar{background:#fff}.shell #department-navigation{background:#fafafa}
 .shell .content>.page-head,.shell .pd-title{background:#f3f3f5;border-color:#dedee2;box-shadow:0 4px 8px #f3f3f5}
 .shell .department-tabs button.selected{color:#292a30;border-bottom-color:#51525b}
 .shell .department-subtabs button.selected{background:#e5e5e9;color:#34353c;border-color:#d4d4da}
 .primary,.shell .primary{background:#45464e;color:#fff}.primary:hover,.shell .primary:hover{background:#303138}
 .shell table thead th,.foreign-table th{background:#f0f0f3;color:#484951}
 .shell tbody tr:hover{background:#f7f7f9}
 .shell .page-head h1,.shell .pd-title h1,.shell .panel h2{color:#292a30}
 .foreign-kpis strong,.risk-overview-kpis strong{color:#393a42}
 .foreign-kpis .panel{border-top-color:#62636d}.foreign-kpis .panel:last-child{border-top-color:#c58332}
 .foreign-bar-row svg rect:first-child{fill:#e8e8ec}
 .table-link{color:#464751}.module-icon,.avatar{background:#e8e8ed;color:#555660}
 button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:#666773}
}

/* Dashboard series and legends share the modern gray palette. */
@media screen{
 :root{--chart-dark:#50515c;--chart-mid:#81828e;--chart-light:#b8b9c2;--chart-pale:#d7d8df}
 .em-hire-regular{fill:var(--chart-dark)}.em-hire-outsourcing,.em-outsourcing{fill:var(--chart-mid)}
 .em-departure-regular{fill:var(--chart-light)}.em-departure-outsourcing{fill:var(--chart-pale)}
 .em-chart .em-inbar{fill:#25262c}.em-total-line{stroke:#34353e}.em-total-dot{fill:#34353e}
 .edu-plan-bar{fill:var(--chart-light)}.edu-done-bar{fill:var(--chart-dark)}
 .edu-legend span:first-child{color:#6d6e78}.edu-legend span:last-child{color:var(--chart-dark)}
 .safety-registration-bar .bar-0{background:var(--chart-dark)}.safety-registration-bar .bar-1{background:var(--chart-light)}
 .safety-registration-legend span:first-child{color:var(--chart-dark)}.safety-registration-legend span:last-child{color:#777884}
 .hazard-columns .hazard-bar-done{fill:var(--chart-dark)}.hazard-columns .hazard-bar-gap{fill:var(--chart-light)}
 .hazard-legend span:before{background:var(--chart-dark)}.hazard-legend span:last-child:before{background:var(--chart-light)}
 .hazard-columns .hazard-bar-label{fill:#25262c;paint-order:stroke;stroke:#fff;stroke-width:2px;stroke-linejoin:round}
 .hazard-kpi-icon,.pd-icon{background:#ededf1;color:#686975}
 .hazard-kpi strong,.pd-card strong,.edu-kpis strong,.safety-registration-stats strong{color:#3b3c46}
 .hazard-kpi-2 .hazard-kpi-icon,.hazard-kpi-3 .hazard-kpi-icon{background:#ededf1;color:#686975}
 .foreign-kpis .panel:last-child{border-top-color:#62636d}.foreign-attention{border-left-color:#868793}
 .hazard-progress-track span{background:#646570}.hazard-progress-track{background:#e5e5e9}
}
@media screen{.pd-legend i{background:#50515c}.pd-legend i:last-of-type{background:#a9aab4}.em-chart .em-inbar{fill:#25262c;paint-order:stroke;stroke:#fff;stroke-width:2px;stroke-linejoin:round}}

/* Light mint shell, colorful data and semantic status indicators. */
@media screen{
 :root{--navy:#e4f2ec;--blue:#276d59;--line:#d7e8e0;--muted:#62796f;color:#233e34;background:#f0f8f5}
 body,.shell .content{background:#f0f8f5;color:#263e35}
 .auth-aside,.shell .sidebar{background:#e3f1eb;color:#234d3e;border-color:#cfe4d9}.auth-main{background:#f5faf7}
 .shell .sidebar .nav button{color:#3a5c4f}.shell .sidebar .nav button.active{background:#cce7db;color:#184f3c;box-shadow:inset 3px 0 #368368}.shell .sidebar .nav button:hover{background:#d5ebe0}
 .brand small,.nav-label,.shell .sidebar-foot{color:#627e70}.shell .sidebar-foot{border-color:#cfe1d7}
 .shell .topbar{background:#fff;border-color:#d7e8e0}.shell #department-navigation{background:#f5faf7;border-color:#d7e8e0}
 .shell .content>.page-head,.shell .pd-title{background:#f0f8f5;border-color:#d7e8e0;box-shadow:0 4px 8px #f0f8f5}
 .shell .page-head h1,.shell .pd-title h1,.shell .panel h2,.pd-title h1{color:#204a3b}
 .shell .department-tabs button{color:#527467}.shell .department-tabs button.selected{color:#205f48;border-color:#367d61}.shell .department-subtabs button.selected{background:#d9eee3;color:#205f48;border-color:#bbdcca}
 .primary,.shell .primary,.pd-toolbar>.primary{background:#276d59;color:white}.primary:hover,.shell .primary:hover{background:#205943}
 .secondary,.quiet{color:#375e4e}.secondary:hover,.quiet:hover{background:#e7f3ed}.table-link{color:#236f55}
 .shell .panel,.shell .stat,.shell .module-card,.shell .pd-card,.pd-panel,.pd-toolbar,.pd-ratios,.table-wrap,dialog{border-color:#d7e8e0}
 .shell table thead th,.foreign-table th{background:#edf6f1;color:#426657}.shell table td{border-color:#e4efe9}.shell tbody tr:hover{background:#f1f8f4}
 .shell input,.shell select,input,select,textarea{border-color:#c6ddcf;color:#294a3c}input:focus,select:focus,textarea:focus{border-color:#468d70}
 .avatar,.module-icon,.pd-icon{background:#e0f0e6;color:#37785c}.demo-banner,.risk-steps,.foreign-list-filters{background:#eaf5ee;border-color:#d2e6d9;color:#466d59}
 .pd-scopes button[aria-pressed=true]{background:#367a5e;border-color:#367a5e}
 button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:#3b896b}
 .foreign-kpis .panel{border-top:1px solid #d7e8e0;border-left:4px solid #4d78ef}.foreign-kpis .panel:nth-child(2){border-left-color:#1fa366}.foreign-kpis .panel:nth-child(3){border-left-color:#ef991d}.foreign-kpis .panel:nth-child(4){border-top-color:#d7e8e0;border-left-color:#df4d5c}
 .foreign-country{display:inline-flex;align-items:center;gap:9px;white-space:nowrap}.foreign-country .country-flag{width:28px;height:19px;flex:0 0 28px;box-shadow:0 0 0 1px #00000012;border-radius:2px}
 .foreign-bar-row{grid-template-columns:155px minmax(50px,1fr) 48px 48px;gap:10px}
 .foreign-deadlines>div>span:before{content:'';display:inline-block;width:10px;height:10px;border-radius:50%;background:#83978e;margin-right:10px}
 .foreign-deadlines [data-deadline="30일 이내"]>span:before,.foreign-deadlines [data-deadline="기한 경과"]>span:before{background:#df4d5c}.foreign-deadlines [data-deadline="31~90일"]>span:before{background:#ec971d}.foreign-deadlines [data-deadline="91~180일"]>span:before{background:#4d78ef}.foreign-deadlines [data-deadline="180일 초과"]>span:before{background:#1fa366}
 .foreign-attention{border-left-color:#ecad49}.foreign-alerts [data-foreign-tab="passport"]{background:#fde8ec;color:#b52e46;border-color:#f6cbd3}.foreign-alerts [data-foreign-tab="insurance"],.foreign-alerts [data-foreign-tab="soon"],.foreign-alerts [data-foreign-tab="grace"]{background:#fff3dd;color:#9b5e0c;border-color:#f5ddac}.foreign-alerts [data-foreign-tab="duplicate"],.foreign-alerts [data-foreign-tab="date"]{background:#f0e9fb;color:#7550a8;border-color:#dfcef5}.foreign-alerts button.primary{outline:2px solid #397a5f;outline-offset:2px}
 .foreign-state-0{background:#fde5e9;color:#b42843}.foreign-state-1{background:#fff0d7;color:#945800}.foreign-state-2{background:#e7effc;color:#3661a7}.foreign-state-3,.status-active{background:#e0f4e9;color:#197b4b}
 .em-hire-regular{fill:#4d78ef}.em-hire-outsourcing,.em-outsourcing{fill:#27b9b0}.em-departure-regular{fill:#ee9854}.em-departure-outsourcing{fill:#e9b985}.em-total-line{stroke:#536096}.em-total-dot{fill:#536096}
 .edu-plan-bar{fill:#a7bff6}.edu-done-bar{fill:#4389cc}.edu-legend span:first-child{color:#647eb8}.edu-legend span:last-child{color:#3574ad}
 .pd-legend i{background:#397bea}.pd-legend i:last-of-type{background:#24b7ad}
 .hazard-columns .hazard-bar-done{fill:#25a58d}.hazard-columns .hazard-bar-gap{fill:#efb165}.hazard-legend span:before{background:#25a58d}.hazard-legend span:last-child:before{background:#efb165}
 .hazard-progress-track span{background:#25a58d}.hazard-progress-track{background:#e0eee8}
 .safety-registration-bar .bar-0{background:#5586df}.safety-registration-bar .bar-1{background:#2aac99}.safety-registration-legend span:first-child{color:#4772c2}.safety-registration-legend span:last-child{color:#218d7d}
 .hazard-kpi-icon{background:#e7effc;color:#5080cf}.hazard-kpi-2 strong,.hazard-gap{color:#bb741c}.hazard-kpi-2 .hazard-kpi-icon{background:#fff0d7;color:#bb741c}.hazard-kpi-3 strong,.hazard-impossible{color:#8060b1}.hazard-kpi-3 .hazard-kpi-icon{background:#f0e9fb;color:#8060b1}
}

/* Platform-wide status visual language: labels and colors always used together. */
@media screen{
 [data-tone="blue"]{--tone:#3979d2;--tone-soft:#e9f1fe;--tone-border:#c9dcfa}
 [data-tone="green"]{--tone:#198451;--tone-soft:#e4f5ea;--tone-border:#bde6cd}
 [data-tone="amber"]{--tone:#b66c0d;--tone-soft:#fff2de;--tone-border:#f5d8a8}
 [data-tone="red"]{--tone:#c4374d;--tone-soft:#fde9ed;--tone-border:#f3c3cc}
 [data-tone="purple"]{--tone:#8250b9;--tone-soft:#f0e9fb;--tone-border:#ddc9f1}
 [data-tone="teal"]{--tone:#168777;--tone-soft:#e2f5f0;--tone-border:#b9e4da}
 .shell .platform-metric{position:relative;background:#fff;border:1px solid #d7e8e0;border-left:4px solid var(--tone);border-radius:11px;box-shadow:0 2px 8px #275c4210}
 .shell .platform-metric strong,.shell .platform-metric .stat-number{color:var(--tone)}
 .shell .platform-metric strong small,.shell .platform-metric .stat-number span{color:#65796f}
 .shell .platform-metric .hazard-kpi-icon,.shell .platform-metric .pd-icon{background:var(--tone-soft);color:var(--tone)}
 .shell .platform-filter{border-radius:7px}
 .shell button.platform-filter{background:var(--tone-soft);border:1px solid var(--tone-border);color:var(--tone);font-weight:600;padding:9px 13px}
 .shell button.platform-filter:hover{box-shadow:inset 0 0 0 1px var(--tone)}
 .shell button.platform-filter.primary,.shell button.platform-filter.selected,.shell button.platform-filter[aria-selected="true"],.shell button.platform-filter[aria-pressed="true"]{outline:2px solid var(--tone);outline-offset:2px}
 .action-completion-options .platform-filter span{background:var(--tone-soft);color:var(--tone)}
 .action-completion-options .platform-filter input:checked+span{background:var(--tone);color:#fff}
 .shell .platform-state:not(td){background:var(--tone-soft);color:var(--tone);border:1px solid var(--tone-border);border-radius:6px;padding:4px 9px;font-weight:700;font-size:12px}
 .shell td.platform-state{color:var(--tone);font-weight:700}
 .shell td.platform-state:before{content:'';display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--tone)}
 .machine-status.expired,.machine-status.failed{background:#fde9ed;color:#c4374d}.machine-status.soon,.machine-status.unknown{background:#fff2de;color:#a66510}.machine-status.valid{background:#e4f5ea;color:#198451}
 .hours-total-grid>div.platform-metric{padding:18px}
 .foreign-deadlines>div{border-bottom-color:#e1eee6;padding:12px 4px}
 .foreign-deadlines>div strong{font-variant-numeric:tabular-nums}
}
