:root{font-family:Pretendard,"Noto Sans KR",Arial,sans-serif;color:#172033;background:#f4f6f9}*{box-sizing:border-box}body{margin:0}header{height:64px;background:#fff;border-bottom:1px solid #dfe4ec;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;position:sticky;top:0;z-index:10}.brand{font-size:20px;font-weight:800;color:#004a8f}.brand-logo{display:flex;align-items:center;flex:0 0 auto}.brand-logo img{display:block;width:auto;height:38px;max-width:210px;object-fit:contain}nav{display:flex;gap:18px;align-items:center}a{color:#1769aa;text-decoration:none}main{max-width:1500px;margin:28px auto;padding:0 24px}.login-card,.panel,.consent{max-width:520px;margin:6vh auto;background:#fff;border:1px solid #e1e5eb;border-radius:16px;padding:32px;box-shadow:0 10px 35px #1e304014}.login-card h1,.panel h1{margin-top:0}label{display:block;font-weight:700;margin:18px 0 8px}input,select,textarea{width:100%;padding:12px 14px;border:1px solid #cbd3df;border-radius:9px;font:inherit;background:#fff}textarea{min-height:100px;resize:vertical}button,.button{display:inline-block;border:0;background:#146fc0;color:#fff;padding:12px 18px;border-radius:9px;font-weight:800;cursor:pointer}.login-card button{width:100%;margin-top:18px}.secondary{background:#566779}.danger{background:#c73838}.small{padding:7px 10px;font-size:12px}.admin-link{display:block;text-align:center;margin-top:24px;color:#7b8798}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:18px}.page-head h1{margin:0}.page-head p{color:#687487;margin:5px 0}.toolbar{display:flex;gap:8px}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.summary div{background:#fff;border:1px solid #e0e5ec;border-radius:12px;padding:20px}.summary b{display:block;font-size:23px;color:#0d5797}.summary span{display:block;color:#778194;margin-top:6px}.table-wrap{overflow:auto;background:#fff;border:1px solid #dfe4ec;border-radius:12px}table{border-collapse:collapse;width:100%;min-width:1150px}th,td{padding:12px;border-bottom:1px solid #edf0f4;text-align:center;white-space:nowrap}th{position:sticky;top:0;background:#f1f4f8;font-size:13px}tbody tr:hover{background:#f8fbff}.badge,.status{display:inline-block;padding:5px 9px;border-radius:999px;background:#e8f2ff;color:#075caa;font-weight:800;font-size:12px}.status.동의{background:#e4f7eb;color:#16733b}.status.이의제기{background:#ffe9e7;color:#a92d25}.status.미확인{background:#eef0f3;color:#687487}.consent{max-width:none;margin-top:24px}.check{font-weight:600}.check input{width:auto;margin-right:8px}.actions{display:flex;gap:8px;margin-top:12px}.flash{padding:13px 16px;border-radius:9px;margin-bottom:14px}.flash.error{background:#ffe9e7;color:#8c2822}.flash.success{background:#e4f7eb;color:#176238}.empty{background:#fff;padding:50px;text-align:center;border-radius:12px;color:#778194}@media(max-width:760px){header{padding:0 18px}.brand-logo img{height:30px;max-width:165px}main{padding:0 12px}.page-head{display:block}.toolbar{margin-top:12px;flex-wrap:wrap}.summary{grid-template-columns:repeat(2,1fr)}.summary b{font-size:18px}.login-card,.panel{padding:24px;margin-top:20px}.consent{padding:20px}.actions{flex-direction:column}.actions button{width:100%}}
.pin-notice{display:grid;grid-template-columns:auto 1fr auto;gap:10px 18px;align-items:center;background:#fff8dc;border:1px solid #e8c95c;border-radius:12px;padding:18px 20px;margin:18px 0}.pin-notice code{font-size:26px;font-weight:900;letter-spacing:4px;background:#fff;padding:8px 14px;border-radius:8px}.pin-notice p{grid-column:1/-1;margin:0;color:#735e12}.filter-line{display:flex;gap:10px;margin:16px 0}.filter-line a{background:#fff;border:1px solid #dfe4ec;padding:8px 12px;border-radius:8px}.filter-line .active-filter{background:#146fc0;color:#fff}.employee-table{min-width:920px}.empty-row{padding:35px;color:#778194}.wrap-cell{white-space:normal;min-width:180px;text-align:left}.notice-box{background:#f5f8fc;border:1px solid #dce4ef;border-radius:10px;padding:15px 18px;margin:18px 0}.notice-box ul{margin:10px 0 0;padding-left:22px}.notice-box li{margin:6px 0}.help{font-weight:400;color:#7a8697;font-size:13px}.month-form{max-width:220px}.import-panel{max-width:680px}
@media(max-width:760px){nav span{display:none}nav{gap:10px;font-size:13px}.pin-notice{grid-template-columns:1fr}.pin-notice p{grid-column:auto}.pin-notice code{text-align:center}}
.admin-filter-bar{display:grid;grid-template-columns:180px 220px minmax(220px,1fr) auto;gap:12px;align-items:end;background:#fff;border:1px solid #dfe4ec;border-radius:12px;padding:16px;margin:18px 0}.admin-filter-bar label{margin:0 0 7px;font-size:13px;color:#58667a}.filter-actions{display:flex;gap:8px}.filter-grow{min-width:0}.admin-summary-five{grid-template-columns:repeat(5,1fr)}.admin-summary-five b{font-size:20px}.admin-section{margin-top:26px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px}.section-title h2{margin:0;font-size:20px}.section-title span{color:#687487}.admin-total-table{min-width:920px}.admin-detail-table{min-width:1650px}.admin-detail-table th,.admin-detail-table td{font-size:13px}.admin-detail-table .wrap-cell{min-width:190px;max-width:280px}
@media(max-width:980px){.admin-filter-bar{grid-template-columns:1fr 1fr}.filter-grow{grid-column:1/-1}.filter-actions{grid-column:1/-1}.admin-summary-five{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.admin-filter-bar{grid-template-columns:1fr}.filter-grow,.filter-actions{grid-column:auto}.filter-actions{flex-direction:column}.filter-actions .button,.filter-actions button{width:100%;text-align:center}.admin-summary-five{grid-template-columns:1fr 1fr}}

/* 근태자료 관리 */
.data-summary article strong { font-size: 1.35rem; }
.data-month-card { margin-top: 22px; }
.data-month-head { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:18px; }
.data-month-head h2 { margin:0 0 6px; }
.data-month-head p { margin:0; color:#64748b; }
.actions, .row-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.actions form, .row-actions form { margin:0; }
button.danger { background:#b42318; border-color:#b42318; }
button.danger:hover { background:#912018; }
.status-pill { display:inline-block; padding:5px 10px; border-radius:999px; background:#eef2f6; color:#475569; font-size:.85rem; font-weight:700; }
.status-pill.current { background:#dcfce7; color:#166534; }
.text-link, .link-button { color:#0969da; font-weight:700; text-decoration:none; }
.link-button { border:0; padding:0; background:none; cursor:pointer; }
.link-button:hover, .text-link:hover { text-decoration:underline; }
.empty-state { text-align:center; padding:48px 24px; }
.flash.info { background:#eff6ff; color:#1d4ed8; border-color:#bfdbfe; }
@media (max-width: 760px) {
  .data-month-head { align-items:flex-start; flex-direction:column; }
}

.change-alert{margin:14px 0;padding:16px;border:1px solid #f0b429;border-radius:12px;background:#fff8e6;color:#5f4300}.change-alert p{margin:6px 0 10px}.change-alert pre{white-space:pre-wrap;margin:0;padding:12px;border-radius:8px;background:#fff;color:#333;font-family:inherit;line-height:1.6}
.inline-reclassify,.category-add,.inline-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:12px 0}.inline-reclassify select,.category-add input,.inline-form input{min-width:180px}.category-add label{flex:1;max-width:420px}

/* v2.6 관리자 데스크톱 레이아웃 및 통합 근태자료 관리 */
.admin-page main{max-width:1680px;padding:0 32px}
.admin-page .panel{max-width:none;margin:0;background:#fff}
.admin-page .page-head{margin-top:12px}
.admin-wide-head{align-items:center}
.upload-workspace{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(620px,1.6fr);gap:24px 34px;align-items:end;padding:26px 28px;margin-bottom:20px}
.upload-workspace h2{margin:0 0 8px}.upload-workspace p{margin:0;color:#64748b;line-height:1.6}.compact-list{margin:12px 0 0;padding-left:20px;color:#526174;line-height:1.65}
.integrated-upload-form{display:grid;grid-template-columns:240px minmax(320px,1fr) auto;gap:14px;align-items:end}.integrated-upload-form label{margin:0}.integrated-upload-form button{height:46px;white-space:nowrap}.integrated-upload-form input[type=file]{height:46px;padding:10px}.upload-tools{grid-column:2;display:flex;justify-content:flex-end}.upload-tools form{margin:0}
.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}.summary-grid article{background:#fff;border:1px solid #e0e5ec;border-radius:12px;padding:20px}.summary-grid article strong{display:block;color:#0d5797}.summary-grid article span{display:block;color:#778194;margin-top:6px}
.data-set-grid{display:grid;grid-template-columns:1fr;gap:18px}.data-month-card{padding:24px 26px;margin:0}.month-category-line{display:flex;align-items:center;gap:10px;margin-bottom:8px}.month-badge{font-size:20px;font-weight:900}.category-badge{padding:5px 10px;border-radius:999px;background:#e8f2ff;color:#075caa;font-weight:800;font-size:13px}.current-file{font-size:13px!important;color:#7a8697!important;margin-top:5px!important}
.version-table{min-width:900px}.version-table .filename-cell{text-align:left;max-width:420px;overflow:hidden;text-overflow:ellipsis}.version-table-wrap{margin-top:12px}
.category-manager-panel{padding:24px 28px;margin-bottom:18px!important}.desktop-category-add{display:grid;grid-template-columns:minmax(360px,1fr) auto;align-items:end;max-width:900px;margin:0}.desktop-category-add label{margin:0;max-width:none}.desktop-category-add button{height:46px}.desktop-category-table-wrap{overflow-x:visible}.category-table{min-width:0;table-layout:fixed}.category-table th:nth-child(1){width:22%}.category-table th:nth-child(2){width:16%}.category-table th:nth-child(3){width:46%}.category-table th:nth-child(4){width:16%}.category-rename-form{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:center;gap:10px;margin:0}.category-rename-form input{min-width:0}
@media(max-width:1100px){.upload-workspace{grid-template-columns:1fr}.integrated-upload-form{grid-template-columns:1fr 1fr auto}.upload-tools{grid-column:auto;justify-content:flex-start}.admin-page nav{gap:11px;font-size:13px}}
@media(max-width:760px){.admin-page main{padding:0 12px}.upload-workspace{padding:20px}.integrated-upload-form{grid-template-columns:1fr}.integrated-upload-form button{width:100%}.summary-grid{grid-template-columns:1fr}.desktop-category-add{grid-template-columns:1fr}.desktop-category-table-wrap{overflow:auto}.category-table{min-width:760px}.admin-page .panel{padding:20px}.admin-page nav{overflow-x:auto;max-width:72vw;white-space:nowrap}}


/* v2.9 생산부/운영부 월별 통합 관리 */
.year-switcher{margin:0}.year-switcher label{display:flex;align-items:center;gap:10px;margin:0}.year-switcher select{width:150px}
.monthly-upload-workspace{grid-template-columns:minmax(280px,.7fr) minmax(850px,2fr)}
.monthly-main-upload-form{display:grid;grid-template-columns:180px 150px 130px minmax(260px,1fr) auto;gap:12px;align-items:end}
.monthly-main-upload-form label{margin:0}.monthly-main-upload-form button{height:46px;white-space:nowrap}.monthly-main-upload-form input[type=file]{height:46px;padding:10px}
.category-month-groups{display:grid;grid-template-columns:1fr;gap:24px}.category-month-panel{padding:26px 28px!important}.category-month-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.category-month-heading h2{font-size:30px;margin:0 0 5px}.category-month-heading p{margin:0;color:#6b778c}
.month-list-table-wrap{overflow:visible;border:1px solid #dfe4ec;border-radius:12px}.month-list-table{min-width:0;table-layout:fixed}.month-list-table th:nth-child(1){width:7%}.month-list-table th:nth-child(2){width:9%}.month-list-table th:nth-child(3){width:15%}.month-list-table th:nth-child(4){width:22%}.month-list-table th:nth-child(5){width:8%}.month-list-table th:nth-child(6){width:8%}.month-list-table th:nth-child(7){width:31%}.month-list-table .month-name{font-size:17px;font-weight:900}.month-list-table .filename-cell{overflow:hidden;text-overflow:ellipsis}.empty-month{color:#8a95a5;background:#fbfcfd}.registered-month{background:#fff}
.month-row-actions{display:flex;justify-content:center;align-items:center;gap:7px;flex-wrap:wrap}.month-row-actions form{margin:0}.month-row-actions .button{padding:7px 10px}.muted-action{font-size:12px;color:#8a95a5}.inline-month-upload{position:relative}.inline-month-upload summary{list-style:none;cursor:pointer}.inline-month-upload summary::-webkit-details-marker{display:none}.month-upload-popover{position:absolute;right:0;top:38px;z-index:8;width:340px;display:grid;grid-template-columns:1fr auto;gap:8px;background:#fff;border:1px solid #d7dee8;border-radius:10px;padding:12px;box-shadow:0 12px 28px #1e304025}.month-upload-popover input[type=file]{font-size:12px;padding:8px}.version-history{margin-top:8px;font-size:12px;text-align:left}.version-history>summary{cursor:pointer;color:#1769aa;text-align:center}.version-history-list{margin-top:8px;padding:10px;background:#f7f9fc;border-radius:8px}.version-history-list>div{display:flex;align-items:center;gap:10px;padding:5px 0;border-bottom:1px solid #e7ebf1}.version-history-list>div:last-child{border-bottom:0}.version-history-list span{flex:1;overflow:hidden;text-overflow:ellipsis}.version-history-list form{margin:0}
@media(max-width:1200px){.monthly-upload-workspace{grid-template-columns:1fr}.monthly-main-upload-form{grid-template-columns:1fr 1fr 1fr}.monthly-main-upload-form .upload-file-field{grid-column:1/3}.month-list-table-wrap{overflow:auto}.month-list-table{min-width:1150px}}
@media(max-width:760px){.year-switcher{margin-top:12px}.monthly-main-upload-form{grid-template-columns:1fr}.monthly-main-upload-form .upload-file-field{grid-column:auto}.category-month-panel{padding:18px!important}.category-month-heading h2{font-size:24px}.month-upload-popover{position:fixed;left:12px;right:12px;top:auto;bottom:12px;width:auto}}
