:root{font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:#24364a;background:#f4f6f9;font-synthesis:none;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button,a{transition:.15s}button{cursor:pointer;border:1px solid #d9e2e8;background:white;border-radius:8px;padding:10px 15px;color:#34495e;font-weight:550}button:hover{background:#edf4f5;border-color:#a5c7c7}button:disabled{cursor:wait;opacity:.5}.primary{background:#116b64;color:white;border-color:#116b64}.primary:hover{background:#0c5751;color:white}a{color:#11776e;text-decoration:none}a:hover{text-decoration:underline}small,.muted{color:#738195;font-size:12px}.shell{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}.sidebar{background:#142b36;color:#d8e2e7;padding:28px 20px;display:flex;flex-direction:column;gap:24px}.brand{font-size:20px;font-weight:700;color:white;display:flex;gap:12px;align-items:center}.logo{display:inline-grid;place-items:center;width:34px;height:34px;background:#2c8174;border-radius:9px;color:#fff}.eyebrow{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:#8fa3ae;margin-top:8px}.nav-label{font-size:12px;color:#91a6b2;margin:8px 8px 12px}.nav-item{display:block;width:100%;border:0;text-align:left;background:transparent;color:#c3d0d7;padding:13px;border-radius:8px;margin-bottom:6px}.nav-item.active,.nav-item:hover{background:#25434d;color:#fff}.side-foot{margin-top:auto;font-size:12px;line-height:1.9;color:#9cafb7}.workspace{padding:28px 36px;min-width:0;max-width:1800px;width:100%;margin:auto}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.topbar h1{font-size:25px;margin:0 0 8px;font-weight:650}.badge{display:inline-block;font-size:11px;border-radius:5px;padding:4px 8px;background:#e8f2ef;color:#267368;white-space:nowrap}.badge.warn{background:#fff2d9;color:#996911}.badge.gray{background:#edf0f5;color:#647389}.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.card{background:white;border:1px solid #e1e7ed;border-radius:12px;margin-bottom:20px;box-shadow:0 2px 4px #182c3e03}.card-head{padding:20px 24px;border-bottom:1px solid #edf0f3;display:flex;justify-content:space-between;gap:12px;align-items:center}.card-head h2{font-size:16px;margin:0}.card-body{padding:24px}.steps{display:flex;gap:26px;color:#8996a5;margin-bottom:22px;font-size:13px}.steps span:first-child{color:#176e66}.stepnum{border:1px solid currentColor;border-radius:50%;padding:2px 6px;margin-right:7px;font-size:11px}.upload-grid{display:grid;grid-template-columns:170px 1fr 1.4fr;gap:18px;align-items:start}label{display:block;margin-bottom:8px;font-size:12px;font-weight:600}input,select{border:1px solid #d5dfe7;border-radius:7px;background:white;padding:10px;width:100%;color:#33465a}input[type=file]{height:42px;min-width:0;padding:4px 10px 4px 4px;background:white;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}input[type=file]::file-selector-button{font:inherit;line-height:20px;font-weight:550;border:0;border-radius:4px;padding:6px 12px;background:#e8f2ef;color:#116b64;margin-right:12px;cursor:pointer;transition:background .15s}input[type=file]:hover{border-color:#a5c7c7}input[type=file]::file-selector-button:hover{background:#dcece7}input[type=file]:focus-visible{outline:2px solid #116b64;outline-offset:3px}.hint{font-size:12px;line-height:1.7;color:#768699;margin-top:9px}.upload-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:22px;padding-top:18px;border-top:1px solid #eef1f4}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.stat{background:white;border:1px solid #e1e7ed;border-radius:10px;padding:18px 22px}.stat strong{display:block;font-size:28px;margin-top:10px;color:#233d4c;font-weight:650;font-variant-numeric:tabular-nums}.stat .hint{margin-top:5px}.notice{background:#fff9ed;border:1px solid #f0deb3;border-radius:8px;padding:14px 18px;color:#876629;font-size:12px;line-height:1.8;margin-bottom:18px}.tabs{display:flex;gap:5px;flex-wrap:wrap;padding:0 18px;border-bottom:1px solid #e7ecf1}.tab{border:0;border-bottom:3px solid transparent;border-radius:0;padding:16px 12px;font-size:13px;background:white}.tab.active{border-bottom-color:#157a6c;color:#12695f}.table-tools{padding:15px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.search{max-width:260px;padding:8px 10px}.table-wrap{overflow:auto;max-height:530px}table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px;white-space:nowrap}th{position:sticky;top:0;background:#f5f8fa;z-index:1;color:#66788b;font-size:11px;text-align:left;font-weight:600}th,td{padding:13px 15px;border-bottom:1px solid #eef1f5}tbody tr:hover{background:#f8fbfc}td.number{font-variant-numeric:tabular-nums;text-align:right}.metric{border:0;background:none;padding:2px 4px;border-radius:4px;color:#2b5f65;font:inherit}.metric:hover{background:#e5f1f0}.table-footer{padding:14px 22px;font-size:12px;color:#8593a2;display:flex;justify-content:space-between;border-top:1px solid #edf0f3}.empty{text-align:center;padding:55px 20px;color:#8795a3}.empty strong{display:block;font-size:17px;color:#52697b;margin-bottom:10px}.login{max-width:420px;margin:12vh auto;background:white;padding:40px;border:1px solid #e0e6ed;border-radius:16px;box-shadow:0 12px 60px #1736450a}.login h1{font-size:25px}.login input{margin-bottom:18px}.login button{width:100%;margin-top:8px}.error{font-size:13px;color:#b63e38;line-height:1.7;margin:10px 0}dialog{border:1px solid #dce3e9;border-radius:14px;padding:28px;width:min(640px,90vw);max-height:85vh;color:#2c4354;box-shadow:0 20px 100px #132f4d30}dialog::backdrop{background:#142a3f55}dialog h2{margin-top:0;font-size:20px}.detail-list{white-space:pre-wrap;line-height:1.9;font-size:13px;max-height:350px;overflow:auto;background:#f5f8fa;padding:16px;border-radius:7px}.modal-foot{display:flex;justify-content:flex-end;margin-top:20px;gap:8px}dialog input,dialog select{margin-bottom:12px}#toast{position:fixed;bottom:24px;right:24px;background:#203d4b;color:white;padding:14px 22px;border-radius:8px;box-shadow:0 8px 30px #102c3520;max-width:520px;z-index:10;display:none}.audit{font-size:12px;line-height:1.8;padding:12px 0;border-bottom:1px solid #edf0f5}.rules{line-height:2;font-size:13px}.checks td:last-child{white-space:normal;min-width:240px}.small-button{padding:6px 10px;font-size:12px}.status-dot{display:inline-block;height:7px;width:7px;background:#2a9981;border-radius:50%;margin-right:6px}.pill{padding:3px 7px;border-radius:5px;background:#edf2f6;color:#60758a;font-size:11px}.upload-warning{margin-top:10px;color:#947133;font-size:12px}@media(max-width:1000px){.shell{grid-template-columns:180px minmax(0,1fr)}.sidebar{padding:24px 12px}.workspace{padding:24px 20px}.upload-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.shell{display:block}.sidebar{display:none}.workspace{padding:20px 12px}.topbar{align-items:start;gap:15px}.topbar h1{font-size:21px}.stats{gap:8px}.stat{padding:14px}.card-body{padding:16px}.upload-foot{align-items:start;flex-direction:column}.steps{gap:12px;font-size:11px}}
 #export{border-radius:8px;padding:10px 15px;display:inline-block;font-weight:550}#export:hover{text-decoration:none;background:#0c5751}
/* Single-page upload, calculation and export. */
.simple{max-width:1400px;margin:24px auto;padding:0 24px}.simple header{display:flex;align-items:center;justify-content:space-between}.simple header h1{font-size:24px}.simple .card{margin:18px 0}.task-picker{display:flex;align-items:center;gap:12px;margin:20px 0}.task-picker label{margin:0}.simple .upload-grid{margin-bottom:20px}.simple .notice{margin:0 20px 12px}.simple .actions{flex-wrap:wrap}.simple .actions label{margin:0}.simple select{max-width:100%;padding:9px}.simple .table-wrap{max-height:560px}.simple .card-head h2{font-size:18px}.simple .muted{font-size:14px}@media(max-width:800px){.simple{padding:0 12px}.simple .upload-grid{grid-template-columns:1fr}.task-picker{align-items:flex-start;flex-direction:column}}
.simple .actions select{width:auto;min-width:200px}.task-picker label{min-width:120px;white-space:nowrap}.simple .hint{display:block;margin-top:6px}

.version-label{font-size:12px;font-weight:600}.version-switch{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border:1px solid #dce6e8;border-radius:10px;background:#f3f7f7;max-width:100%}.version-switch button{border-color:transparent;background:transparent;padding:9px 13px;font-size:13px;line-height:1.5}.version-switch button:hover:not(:disabled){background:#e4efed}.version-switch button[aria-pressed="true"]{background:#116b64;border-color:#116b64;color:white;box-shadow:0 1px 3px #143c3520}.version-switch button:disabled{cursor:not-allowed}.version-switch button:focus-visible{outline:2px solid #116b64;outline-offset:2px}

.source-table th{white-space:pre-line;min-width:100px;max-width:220px}.source-table td{white-space:pre-line;min-width:100px;max-width:280px;overflow-wrap:anywhere;vertical-align:top;line-height:1.7}.source-table th:first-child{left:0;z-index:3;min-width:110px}.source-table td:first-child{position:sticky;left:0;background:#fff;z-index:1;min-width:110px;box-shadow:1px 0 #e1e7ed}.source-table tbody tr:hover td:first-child{background:#f8fbfc}.table-pagination:not(:empty){display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding:14px 22px;border-top:1px solid #edf0f3;color:#66788b;font-size:12px}.table-pagination button:disabled{cursor:not-allowed}

.page-nav{display:flex;gap:8px;border-bottom:1px solid #dce5e9;margin:12px 0 22px}.page-nav a{padding:12px 18px;border-bottom:3px solid transparent;color:#637589;font-weight:600}.page-nav a[aria-current=page]{color:#116b64;border-color:#116b64}.page-nav a:hover{text-decoration:none;background:#e9f2f0}.rules-intro{max-width:900px;line-height:1.8}.rules-intro h2{font-size:24px;margin:0 0 8px}.rules-index{display:flex;flex-wrap:wrap;gap:12px 24px}.rules-index a{line-height:1.8}.rules-section{scroll-margin-top:20px}.rules-section h3{margin:0;font-size:17px}.rules-list{margin:0;line-height:1.9}.rules-list>div{display:grid;grid-template-columns:160px minmax(0,1fr);gap:24px;padding:15px 0;border-bottom:1px solid #edf0f3}.rules-list>div:first-child{padding-top:0}.rules-list>div:last-child{padding-bottom:0;border-bottom:0}.rules-list dt{font-weight:600;color:#294c58}.rules-list dd{margin:0;overflow-wrap:anywhere}.rules-pending{border-color:#ead6a9}.rules-pending .card-head{background:#fff9ed;border-radius:12px 12px 0 0}@media(max-width:640px){.simple header{align-items:flex-start;gap:12px;flex-direction:column}.rules-list>div{grid-template-columns:1fr;gap:4px}.rules-section .card-head{align-items:flex-start;flex-wrap:wrap}.rules-index{gap:10px 18px}}
.rule-bands{overflow-x:auto;padding:8px 24px 0}.rule-bands caption{text-align:left;padding:12px 0;color:#60758a;line-height:1.8;font-size:12px}.rule-bands th{position:static}.rule-bands td:last-child{font-weight:700;color:#116b64}@media(max-width:640px){.rule-bands{padding:8px 16px 0}}
.rule-bands th,.rule-bands td{white-space:normal;min-width:90px;line-height:1.7;padding:12px 10px}

#upload .quota-reminder{margin:16px 0 0}

dialog textarea{width:100%;min-height:90px;font:inherit;border:1px solid #d5dfe7;border-radius:7px;padding:10px}dialog fieldset{border:0;padding:0;margin:12px 0}.correction-times{display:grid;grid-template-columns:1fr 1fr;gap:12px}#correction-preview{margin-top:16px}#correction-preview h3{font-size:15px}

.table-tools{flex-wrap:wrap}

.correction-history{width:100%;min-width:900px;table-layout:fixed}.correction-history td{white-space:normal;overflow-wrap:anywhere;vertical-align:top}.correction-history th:nth-child(1){width:12%}.correction-history th:nth-child(2){width:15%}.correction-history th:nth-child(3){width:10%}.correction-history th:nth-child(4){width:22%}.correction-history th:nth-child(5){width:24%}.checks td:nth-child(3){white-space:normal;min-width:280px;max-width:850px}

#correction-preview h4{margin:12px 0 8px}dialog details{margin:14px 0}dialog summary{cursor:pointer;color:#116b64;font-weight:600;padding:8px 0}

.modal-head{position:sticky;top:-28px;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:16px;margin:-28px -28px 16px;padding:20px 28px;background:white;border-bottom:1px solid #edf0f3}.modal-head h2{margin:0}.modal-head button{flex-shrink:0}


select,.simple select{appearance:none;-webkit-appearance:none;padding-right:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23738699' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px 16px}

.correction-issues{margin:12px 0 16px;padding:12px 14px;border:1px solid #f0deb3;border-radius:8px;background:#fff9ed;color:#876629;font-size:12px;line-height:1.8}.correction-issues h3{margin:0 0 6px;font-size:12px}.correction-issues div{white-space:pre-wrap;overflow-wrap:anywhere}

.header-title{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 14px}.header-usage{font-size:12px;font-weight:400;color:#637589;line-height:1.6}
.checkbox-label{display:flex;align-items:flex-start;gap:8px;margin:16px 0 8px;line-height:1.6;cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;flex:0 0 18px;margin:1px 0 0;padding:0;accent-color:#116b64}#comp-import-save:disabled{cursor:not-allowed}#comp-import-feedback{margin:8px 0 12px}

/* Compensatory leave: consistent spacing for inline forms and detail sections. */
#comp-page .card-body>h2{margin:0 0 16px}
#comp-page .actions{margin:16px 0}
#comp-page summary{cursor:pointer;font-weight:600;line-height:1.7}
#comp-page details{margin:16px 0;padding:14px 16px;border:1px solid #e1e7ed;border-radius:8px;background:#fafcfd}
#comp-page details p{margin:10px 0;line-height:1.7}
#comp-page details:not([open])>:not(summary){display:none}
#comp-page label{margin:0 0 8px;line-height:1.6}
#comp-page form{display:grid;grid-template-columns:minmax(0,1fr);gap:0;max-width:760px;margin:18px 0 24px}
#comp-page form>input,#comp-page form>select,#comp-page form>textarea{margin-bottom:18px}
#comp-page textarea{display:block;width:100%;min-height:104px;resize:vertical;box-sizing:border-box;font:inherit;line-height:1.6;padding:10px 12px;border:1px solid #d5dfe7;border-radius:7px;color:#33465a;background:white}
#comp-page form>button{justify-self:start;margin:0 8px 10px 0}
#comp-page .checkbox-label{display:flex;margin:16px 0 12px}
#comp-page .comp-filters{display:grid;grid-template-columns:minmax(220px,420px) minmax(180px,240px);gap:16px;align-items:end;margin:20px 0}
#comp-page .comp-filters input,#comp-page .comp-filters select{height:42px}
#comp-page .table-wrap{border:1px solid #e5ebef;border-radius:8px;margin:18px 0 24px;isolation:isolate}
#comp-page th{line-height:1.6;padding:14px 16px}
#comp-page td{line-height:1.6;padding:14px 16px}
#comp-person:empty{display:none}
#comp-person{margin-top:28px;padding-top:24px;border-top:1px solid #e1e7ed}
#comp-person>h3{margin:0 0 14px;font-size:18px}
#comp-person>p{line-height:1.8;margin:12px 0 20px}
#comp-page .notice{margin:16px 0;padding:16px}
#comp-page .notice input{margin-bottom:12px}
#comp-page .notice button{margin:0 8px 8px 0}
#comp-preview{margin-top:24px}
#comp-preview .checkbox-label{max-width:760px}
#comp-page>details{background:white;padding:20px 24px}
@media(max-width:700px){#comp-page .comp-filters{grid-template-columns:1fr}#comp-page .card-body{padding:18px}#comp-page th,#comp-page td{padding:12px}}
