:root{--red:#e3232c;--navy:#13263e;--ink:#172235;--muted:#6f7b8d;--line:#e2e7ee;--bg:#f4f6f9;--white:#fff;--green:#15804a;--blue:#1769d2;--orange:#d97706;--danger:#d92d20}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Arial,"Noto Sans KR",sans-serif;color:var(--ink);background:var(--bg)}a{color:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:24px 16px;background:var(--navy);color:#fff;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 24px;text-decoration:none;font-size:22px;font-weight:900}.brand-mark{display:grid;place-items:center;width:43px;height:43px;border-radius:13px;background:var(--red);font-size:17px}.brand small{display:block;margin-top:3px;color:#aebbd0;font-size:10px;font-weight:600}.sidebar nav{display:grid;gap:6px}.sidebar nav a{display:flex;align-items:center;gap:12px;padding:12px;border-radius:10px;color:#cad3df;text-decoration:none;font-size:14px;font-weight:700}.sidebar nav a:hover,.sidebar nav a.active{color:#fff;background:#243b58}.sidebar nav i{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#304965;font-style:normal;font-size:11px}.sidebar nav a.active i{background:var(--red)}.side-user{margin-top:auto;padding:15px;border-top:1px solid #30445e;display:grid;gap:5px}.side-user span{font-size:12px;color:#aab8c9}.side-user a{font-size:12px;color:#fff}.main-shell{min-width:0}.topbar{height:80px;padding:0 28px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:10}.topbar h1{margin:0;font-size:20px}.topbar p{margin:4px 0 0;color:var(--muted);font-size:12px}.menu-toggle{display:none;border:0;background:none;font-size:24px}.sample-badge{margin-left:auto;padding:7px 11px;border-radius:999px;background:#fff1cc;color:#8a5700;font-size:12px;font-weight:900}.content{padding:24px 28px 60px}.filter-bar{display:flex;align-items:end;gap:10px;padding:15px;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 5px 18px rgba(20,35,55,.04)}label{display:grid;gap:6px;color:var(--muted);font-size:11px;font-weight:800}input,select{height:39px;padding:0 10px;border:1px solid #cfd7e3;border-radius:8px;background:#fff;color:var(--ink)}button{height:39px;padding:0 16px;border:0;border-radius:8px;background:var(--red);color:#fff;font-weight:800;cursor:pointer}.secondary{background:var(--navy)}.notice{margin:15px 0;padding:11px 14px;border:1px solid #f1d381;border-radius:9px;background:#fff8df;color:#795300;font-size:13px}.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}.kpi-card{position:relative;padding:17px;background:#fff;border:1px solid var(--line);border-top:4px solid #9aa5b3;border-radius:13px;box-shadow:0 5px 18px rgba(20,35,55,.05)}.kpi-card.good{border-top-color:var(--green)}.kpi-card.normal{border-top-color:var(--blue)}.kpi-card.warn{border-top-color:var(--orange)}.kpi-card.danger{border-top-color:var(--danger)}.kpi-card header{display:flex;justify-content:space-between;gap:8px;font-size:13px;font-weight:850}.kpi-card header i{font-style:normal;color:var(--muted);font-size:10px}.kpi-card>strong{display:block;margin:13px 0;font-size:27px}.kpi-card dl{margin:0;display:grid;gap:6px}.kpi-card dl div{display:flex;justify-content:space-between;font-size:11px}.kpi-card dt{color:var(--muted)}.kpi-card dd{margin:0;font-weight:800}.kpi-card>a{display:block;margin-top:12px;color:var(--blue);font-size:11px;text-decoration:none}.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:15px;margin-top:15px}.panel{padding:19px;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 5px 18px rgba(20,35,55,.04)}.panel-title{display:flex;justify-content:space-between}.panel-title h2{margin:0;font-size:16px}.panel-title p{margin:5px 0 0;color:var(--muted);font-size:11px}.chart-wrap{height:280px;margin-top:15px}.alerts{list-style:none;padding:0;margin:15px 0 0;display:grid;gap:9px}.alerts li{padding:12px;border-radius:9px;background:#f5f7fa;font-size:13px;border-left:4px solid #9aa5b3}.alerts .warn{border-color:var(--orange)}.alerts .danger{border-color:var(--danger)}.alerts .normal{border-color:var(--blue)}.table-panel{margin-top:15px}.table-scroll{overflow:auto;margin-top:14px}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px}th,td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:right}th{background:#f7f8fa;color:var(--muted)}th:nth-child(2),td:nth-child(2){text-align:left}td a{color:var(--blue);font-weight:800;text-decoration:none}.status{padding:5px 8px;border-radius:999px;background:#eef1f5;font-size:10px;font-weight:900}.status.good{background:#e5f5ec;color:var(--green)}.status.warn,.status.danger{background:#fff0e6;color:var(--danger)}.login-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#101f33,#1d3858)}.login-card{width:min(420px,100%);padding:38px;background:#fff;border-radius:20px;box-shadow:0 25px 70px rgba(0,0,0,.25)}.login-brand{display:flex;align-items:center;justify-content:center;gap:9px;font-size:30px;font-weight:950}.login-brand b{padding:8px;border-radius:10px;background:var(--red);color:#fff;font-size:18px}.login-card h1{text-align:center;font-size:21px}.login-card>p{text-align:center;color:var(--muted);font-size:13px}.login-card form{display:grid;gap:14px;margin-top:25px}.login-card input,.login-card button{width:100%;height:48px}.alert{padding:11px;border-radius:8px;font-size:13px}.alert.danger{background:#ffe9e7;color:var(--danger)}
@media(max-width:1200px){.kpi-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.app-shell{display:block}.sidebar{position:fixed;left:-260px;z-index:30;width:248px;transition:left .2s}.menu-open .sidebar{left:0}.topbar{height:68px;padding:0 14px}.menu-toggle{display:block}.content{padding:14px 12px 50px}.filter-bar{display:grid;grid-template-columns:1fr 1fr}.filter-bar button{width:100%}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.kpi-card{padding:13px}.kpi-card>strong{font-size:23px}.dashboard-grid{grid-template-columns:1fr}.chart-wrap{height:230px}}@media(max-width:390px){.kpi-grid{grid-template-columns:1fr}}
@media print{.sidebar,.topbar,.filter-bar,.sample-badge{display:none!important}.app-shell{display:block}.content{padding:0}.panel,.kpi-card{box-shadow:none;break-inside:avoid}}

.upload-button,.action-link{display:inline-flex;align-items:center;justify-content:center;min-height:39px;padding:0 14px;border-radius:8px;background:var(--navy);color:#fff;text-decoration:none;font-size:12px;font-weight:850}
.summary-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:15px}.summary-strip>div{padding:18px;background:#fff;border:1px solid var(--line);border-radius:12px;text-align:center}.summary-strip b{display:block;font-size:26px;color:var(--navy)}.summary-strip span{display:block;margin-top:6px;color:var(--muted);font-size:12px;font-weight:750}
.org-tree{display:grid;gap:6px;margin-top:16px}.org-row{display:grid;grid-template-columns:70px minmax(170px,1fr) minmax(120px,1fr);align-items:center;gap:12px;padding:11px 13px;border:1px solid var(--line);border-radius:9px;background:#fff}.org-row.depth-1{margin-left:20px;background:#f8faff}.org-row.depth-2{margin-left:45px}.org-row.depth-3{margin-left:70px}.org-level{display:inline-flex;justify-content:center;padding:5px 7px;border-radius:999px;background:#edf2f8;color:#42546d;font-size:10px;font-weight:900}.org-row.depth-1 .org-level{background:#fee9ea;color:#b11921}.org-row small{color:var(--muted)}
.detail-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:15px}.detail-menu a{display:grid;grid-template-columns:1fr auto;gap:7px 15px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fff;text-decoration:none;box-shadow:0 5px 18px rgba(20,35,55,.04)}.detail-menu b{font-size:15px}.detail-menu span{grid-column:1;color:var(--muted);font-size:12px;line-height:1.5}.detail-menu i{grid-column:2;grid-row:1/3;align-self:center;color:var(--red);font-style:normal;font-size:22px}.cs-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.bar-list{display:grid;gap:17px;margin-top:24px}.bar-list div{position:relative;display:grid;grid-template-columns:80px minmax(0,1fr) 55px;align-items:center;gap:10px;font-size:12px}.bar-list div:after{content:"";position:absolute;z-index:0;left:90px;right:65px;height:12px;border-radius:999px;background:#edf1f5}.bar-list b{position:relative;z-index:1;display:block;height:12px;border-radius:999px;background:linear-gradient(90deg,var(--red),#f15a62)}.bar-list em{text-align:right;font-style:normal;font-weight:900}.metric-list{list-style:none;padding:0;margin:17px 0 0;display:grid;gap:5px}.metric-list li{display:flex;justify-content:space-between;padding:11px;border-bottom:1px solid var(--line);font-size:13px}.empty-state{margin-top:18px;padding:45px 20px;border:1px dashed #cbd4df;border-radius:10px;background:#fafbfc;color:var(--muted);text-align:center}
.upload-panel{margin-bottom:15px}.upload-form{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1.5fr) auto;align-items:end;gap:12px;margin-top:18px;padding:16px;border-radius:11px;background:#f7f9fb}.upload-form input[type=file]{height:auto;padding:9px;background:#fff}.upload-types{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:17px}.upload-types article{padding:13px;border:1px solid var(--line);border-radius:9px}.upload-types b,.upload-types span{display:block}.upload-types b{font-size:13px}.upload-types span{margin-top:7px;color:var(--red);font-size:10px;font-weight:900}.upload-types p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.alert.success{margin-bottom:12px;background:#e7f6ed;color:var(--green)}
@media(max-width:900px){.cs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.upload-types{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.summary-strip{grid-template-columns:repeat(2,1fr)}.org-row,.org-row.depth-1,.org-row.depth-2,.org-row.depth-3{margin-left:0;grid-template-columns:56px 1fr}.org-row small{grid-column:2}.detail-menu{grid-template-columns:1fr}.upload-form{grid-template-columns:1fr}.upload-types{grid-template-columns:1fr}}
.login-card label small{color:var(--muted);font-size:11px;line-height:1.45;font-weight:500}
.dashboard-filter{display:grid;grid-template-columns:160px repeat(3,minmax(150px,1fr)) auto auto}.field-section{margin-top:16px;padding:20px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(20,35,55,.04)}.field-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.field-heading>div{display:flex;align-items:center;gap:10px}.field-heading span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--navy);color:#fff;font-size:11px;font-weight:900}.field-heading h2{margin:0;font-size:19px}.field-heading>a{color:var(--blue);font-size:12px;font-weight:850;text-decoration:none}.field-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.sales-field .field-heading span{background:#1769d2}.biz-field .field-heading span{background:#6d3fc0}.sales-field .field-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.biz-field .field-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1100px){.dashboard-filter{grid-template-columns:repeat(3,1fr)}.field-kpis,.sales-field .field-kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.dashboard-filter{grid-template-columns:repeat(2,1fr)}.field-section{padding:14px 12px}.field-kpis,.sales-field .field-kpis,.biz-field .field-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.field-heading h2{font-size:17px}}@media(max-width:390px){.field-kpis,.sales-field .field-kpis,.biz-field .field-kpis{grid-template-columns:1fr}}
.field-visual{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,.8fr);gap:14px;align-items:stretch}.field-chart-panel{min-height:245px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fafbfc}.field-chart-panel h3{margin:0 0 10px;font-size:13px}.field-chart-panel canvas{width:100%!important;height:195px!important}.kpi-progress{height:7px;margin-top:13px;border-radius:999px;background:#edf1f5;overflow:hidden}.kpi-progress span{display:block;height:100%;border-radius:999px;background:#9aa5b3}.kpi-card.good .kpi-progress span{background:var(--green)}.kpi-card.normal .kpi-progress span{background:var(--blue)}.kpi-card.warn .kpi-progress span{background:var(--orange)}.kpi-card.danger .kpi-progress span{background:var(--danger)}
@media(max-width:1250px){.field-visual{grid-template-columns:1fr}.field-chart-panel{min-height:225px}.field-chart-panel canvas{height:170px!important}}@media(max-width:760px){.field-chart-panel{min-height:235px}.field-chart-panel canvas{height:180px!important}}
.section-actions{display:flex;justify-content:flex-end;margin:10px 0 0}
.cs-field .field-kpis,.sales-field .field-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.target-compare{display:grid;gap:7px;margin-top:13px;padding-top:11px;border-top:1px solid var(--line)}.target-compare>div{display:grid;grid-template-columns:28px minmax(0,1fr) 42px;align-items:center;gap:7px}.target-compare em{color:var(--muted);font-size:9px;font-style:normal;font-weight:800}.target-compare span{height:8px;border-radius:999px;background:#edf1f5;overflow:hidden}.target-compare i{display:block;height:100%;border-radius:999px}.target-compare .target-bar{width:100%;background:#b9c2ce}.target-compare .actual-bar{background:#9aa5b3}.target-compare b{text-align:right;font-size:9px}.kpi-card.good .actual-bar{background:var(--green)}.kpi-card.normal .actual-bar{background:var(--blue)}.kpi-card.warn .actual-bar{background:var(--orange)}.kpi-card.danger .actual-bar{background:var(--danger)}
.field-section .kpi-card{min-height:245px;padding-right:88px}.field-section .kpi-card>header{padding-right:0}.field-section .target-compare{position:absolute;top:48px;right:13px;bottom:38px;width:64px;display:flex;align-items:stretch;justify-content:center;gap:7px;margin:0;padding:0 0 2px;border:0;border-left:1px solid var(--line)}.field-section .target-compare>div{display:flex;flex:1;min-width:0;flex-direction:column-reverse;align-items:center;gap:5px}.field-section .target-compare em{font-size:8px}.field-section .target-compare span{display:flex;align-items:flex-end;width:15px;height:100%;min-height:86px;border-radius:5px;background:#edf1f5}.field-section .target-compare i{width:100%;height:auto;border-radius:5px 5px 3px 3px}.field-section .target-compare .target-bar{height:100%;background:#b9c2ce}.field-section .target-compare b{font-size:8px;white-space:nowrap}.field-section .kpi-card>a{position:absolute;left:17px;bottom:15px}
@media(max-width:760px){.field-section .kpi-card{min-height:230px;padding-right:76px}.field-section .target-compare{right:9px;width:58px}.field-section .kpi-card>a{left:13px}}
.pagination{display:flex;justify-content:center;gap:6px;margin-top:18px}.pagination a{display:grid;place-items:center;min-width:36px;height:36px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:#fff;text-decoration:none;font-size:12px;font-weight:800}.pagination a.active{border-color:var(--red);background:var(--red);color:#fff}
.employee-list-panel{padding:0;overflow:hidden}.employee-table-scroll{overflow:auto;max-height:calc(100vh - 310px)}.employee-table{min-width:1240px;table-layout:fixed}.employee-table th{position:sticky;top:0;z-index:2;background:#e9eef5;color:#34445a;text-align:center}.employee-table th:nth-child(1){width:55px}.employee-table th:nth-child(2){width:105px}.employee-table th:nth-child(3){width:110px}.employee-table th:nth-child(4){width:125px}.employee-table th:nth-child(5){width:270px}.employee-table th:nth-child(6),.employee-table th:nth-child(7){width:135px}.employee-table th:nth-child(8){width:90px}.employee-table th:nth-child(9){width:70px}.employee-table td{padding:6px;text-align:center;background:#fff}.employee-table tr:nth-child(even) td{background:#f8fafc}.employee-table tr:hover td{background:#fff8e8}.employee-table input,.employee-table select{width:100%;height:34px;padding:0 7px;border-radius:5px;font-size:11px}.employee-table .employee-no{font-weight:800;color:#45546a}.row-save{height:34px;padding:0 10px;font-size:11px}
.employee-simple-table{min-width:1320px}.employee-simple-table th:nth-child(1){width:55px}.employee-simple-table th:nth-child(2){width:105px}.employee-simple-table th:nth-child(3){width:125px}.employee-simple-table th:nth-child(4){width:150px}.employee-simple-table th:nth-child(5){width:180px}.employee-simple-table th:nth-child(6){width:180px}.employee-simple-table th:nth-child(7){width:150px}.employee-simple-table th:nth-child(8){width:90px}.employee-simple-table th:nth-child(9){width:70px}
.employee-list-note{padding:12px 15px;border-bottom:1px solid var(--line);background:#f7f9fc;color:#536176;font-size:12px}.employee-table input:disabled,.employee-table select:disabled{border-color:transparent;background:transparent;color:var(--ink);opacity:1;-webkit-text-fill-color:var(--ink);appearance:none}.employee-table tr.editing td{background:#fff7dc!important}.employee-table tr.editing input,.employee-table tr.editing select{border-color:#e3b84c;background:#fff;appearance:auto}.row-edit-button{background:var(--navy)}.employee-table tr.editing .row-edit-button{background:var(--red)}
.employee-search{display:flex;gap:9px;margin:12px 0}.employee-search input{flex:1}.employee-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.employee-card{display:grid;gap:10px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 5px 18px rgba(20,35,55,.04)}.employee-card header{display:flex;align-items:center;justify-content:space-between}.employee-card header b,.employee-card header span{display:block}.employee-card header b{font-size:17px}.employee-card header span{margin-top:3px;color:var(--muted);font-size:11px}.employee-card header i{padding:5px 8px;border-radius:999px;background:#e7f6ed;color:var(--green);font-size:10px;font-style:normal;font-weight:900}.employee-card header i.leave{background:#fff2df;color:var(--orange)}.employee-card header i.retired{background:#edf0f4;color:var(--muted)}.employee-card input,.employee-card select{width:100%}.employee-two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.employee-card>small{color:var(--muted);font-size:10px;line-height:1.4}.org-row small a{color:var(--blue);font-weight:850;text-decoration:none}@media(max-width:1100px){.employee-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.employee-grid{grid-template-columns:1fr}.employee-search{display:grid}}
