/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.sticky{position:sticky}.\!start{inset-inline-start:var(--spacing)!important}.start{inset-inline-start:var(--spacing)}.\!end{inset-inline-end:var(--spacing)!important}.end{inset-inline-end:var(--spacing)}.isolate{isolation:isolate}.\!hidden{display:none!important}.block{display:block}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}.finance-page[hidden]{display:none}.finance-page{color:#17355c}.finance-page button,.finance-page select,.finance-page input{font:inherit;font-size:14px}.finance-page button{color:#2456a0;white-space:nowrap;background:#fff;border:1px solid #cbdaf0;border-radius:7px;min-height:34px;padding:6px 12px}.finance-page button:hover{background:#edf4ff}.finance-page button:disabled{opacity:.45;cursor:not-allowed}.finance-page button.primary{color:#fff;background:#2563eb;border-color:#2563eb}.finance-page input:not([type=checkbox]),.finance-page select{color:#17355c;background:#fff;border:1px solid #d4dfef;border-radius:6px;max-width:100%;min-height:34px;padding:6px 9px}.finance-page input:focus,.finance-page select:focus,.finance-page textarea:focus{outline-offset:-1px;outline:2px solid #93b7fb}.finance-page{width:min(1500px,100% - 32px);margin:0 auto;padding:24px 0 40px}.finance-page button:focus-visible,.finance-page a:focus-visible{outline-offset:2px;outline:3px solid #7aa7f8}.finance-entity-tabs{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.finance-entity-tabs button{min-width:112px;font-weight:700}.finance-entity-tabs button.active{color:#fff;background:#2563eb;border-color:#2563eb}.finance-entity-tabs button:disabled{cursor:not-allowed}.finance-entity-scope{color:#526987;font-size:14px;font-weight:700}.finance-primary-tabs{background:#edf2f8;border:1px solid #dbe5f1;border-radius:9px;gap:5px;width:fit-content;margin-bottom:15px;padding:4px;display:flex}.finance-primary-tabs button{color:#64748b;background:0 0;border:0;padding:8px 23px;font-weight:700}.finance-primary-tabs button.active{color:#1857bd;background:#fff;box-shadow:0 2px 6px #193f7720}.finance-yingqu-tabs{flex-wrap:wrap;width:100%}.finance-yingqu-tabs button{flex:110px}.finance-cards-four{grid-template-columns:repeat(4,minmax(0,1fr))}.finance-report-toolbar{justify-content:space-between}.finance-report-toolbar .finance-note{margin-bottom:0}.finance-toolbar,.finance-report-toolbar{background:#fff;border:1px solid #dbe5f1;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;padding:13px;display:flex}.finance-toolbar.finance-scope-toolbar{flex-wrap:nowrap;overflow-x:auto}.finance-scope-toolbar>label{white-space:nowrap;flex:none}.finance-toolbar label{align-items:center;gap:7px;font-size:13px;font-weight:600;display:flex}.finance-scope-toolbar select[aria-label=财务年份]{width:108px;min-height:36px}.finance-scope-toolbar select[aria-label=财务月份]{width:110px;min-height:36px}.finance-toolbar select{max-width:180px}.finance-scope-toolbar select[aria-label=财务开票公司]{width:150px}.finance-scope-toolbar select[aria-label=财务报销人]{width:118px}.finance-filter-total{color:#526987;flex-wrap:wrap;align-items:center;gap:4px;font-size:14px;display:inline-flex}.finance-filter-total strong{color:#1854a6;font-variant-numeric:tabular-nums;white-space:nowrap}.finance-toolbar .attendance-export-block{margin-left:auto}.finance-toolbar .attendance-export-actions,.finance-report-toolbar .attendance-export-actions{margin:0}.finance-summary-toolbar{align-items:flex-start;gap:12px;margin:12px 0;display:flex;overflow-x:auto}.finance-toolbar-actions{flex:none;align-items:flex-start;gap:8px;margin-left:auto;display:flex}.finance-toolbar-actions .attendance-export-block,.finance-toolbar-actions .attendance-export-actions{margin:0}.finance-toolbar-actions>button{min-height:40px}.finance-scope-toolbar select{min-height:36px}.finance-scope-toolbar select[aria-label=财务平台]{width:130px}.finance-scope-toolbar select[aria-label=财务会员类型],.finance-scope-toolbar select[aria-label=财务账户状态]{width:118px}.finance-ledger-tabs,.finance-view-tabs{flex-wrap:wrap;gap:7px;display:flex}.finance-ledger-tabs{margin:17px 0 10px}.finance-scope-toolbar .finance-ledger-tabs{flex-wrap:nowrap;margin:0}.finance-ledger-tabs button.active,.finance-view-tabs button.active{color:#1754b7;background:#e8f0ff;border-color:#8eb5fd;font-weight:700}.finance-note{color:#607392;margin:10px 0;font-size:13px;line-height:1.8}.finance-note button{min-height:26px;margin-left:10px;padding:2px 8px}.finance-error{color:#b91c1c;background:#fff1f1;border:1px solid #fecaca;border-radius:8px;margin:10px 0;padding:11px 14px;font-size:14px}.finance-error button{margin-left:8px}.finance-dismissible{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.finance-dismissible>span{flex:1;min-width:160px}.finance-page .finance-alert-close{width:28px;min-height:28px;color:inherit;background:0 0;border:0;margin-left:auto;padding:0;font-size:22px;line-height:1}.finance-page .finance-alert-close:hover{background:#fee2e2}.finance-grid-wrap{background:#fff;border:1px solid #dbe4f1;border-radius:9px;max-height:66vh;overflow:auto}.finance-grid,.finance-report-table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}.finance-grid{table-layout:auto}.finance-grid th,.finance-report-table th{z-index:2;text-align:center;white-space:nowrap;color:#25466e;background:#eaf0fa;padding:12px 10px;position:sticky;top:0}.finance-grid th,.finance-grid td,.finance-report-table th,.finance-report-table td{border-bottom:1px solid #e4eaf3;border-right:1px solid #e4eaf3}.finance-grid td{height:39px;padding:0}.finance-grid td>input:not([type=checkbox]),.finance-grid td>select{background:0 0;border:0;border-radius:0;width:100%;min-height:39px;padding:7px 10px}.finance-grid td>input[readonly]{background:#edf5ff;font-weight:700}.finance-grid td>input[type=checkbox]{margin:12px 17px}.finance-grid td>button{border:0;min-height:30px;padding:4px 8px;font-size:13px}.finance-grid .finance-index{text-align:center;z-index:1;background:#f1f5fb;width:48px;position:sticky;left:0}.finance-grid th.finance-index{z-index:3}.finance-grid .finance-action{text-align:center}.finance-single-line-editor{min-width:max-content;font-size:14px;display:grid}.finance-single-line-editor:after{content:attr(data-value) "  ";visibility:hidden;white-space:pre}.finance-single-line-editor:after,.finance-page .finance-single-line-editor>input{min-height:39px;font:inherit;border:0;grid-area:1/1;padding:7px 10px;line-height:24px}.finance-page .finance-single-line-editor>input{width:100%;min-width:0;color:inherit;background:0 0;border-radius:0}.finance-dot{color:#dca419;margin-left:3px;font-size:9px}.finance-page .finance-delete{color:#c2414b}.finance-report-table td{white-space:nowrap;padding:11px 13px}.finance-report-table tr:nth-child(2n) td{background:#f8faff}.finance-report-table td.finance-number{text-align:right;font-variant-numeric:tabular-nums}.finance-empty{text-align:center;color:#8190a4;padding:40px 20px!important}.finance-pagination{color:#637690;justify-content:flex-end;align-items:center;gap:12px;margin:13px 0;font-size:13px;display:flex}.finance-pagination>span:first-child{margin-right:auto}.finance-cards{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:16px 0;display:grid}.finance-cards>div{background:#fff;border:1px solid #dbe6f2;border-radius:10px;padding:17px}.finance-cards span{color:#7485a0;font-size:13px;display:block}.finance-cards strong{color:#1854a6;font-variant-numeric:tabular-nums;margin-top:9px;font-size:clamp(14px,1.25vw,22px);display:block}.finance-summary-cards{flex:none;gap:10px;display:flex}.finance-summary-cards output{white-space:nowrap;background:#fff;border:1px solid #dbe6f2;border-radius:8px;align-items:center;gap:5px;min-height:40px;padding:7px 14px;font-size:14px;display:inline-flex}.finance-summary-cards span{color:#7485a0}.finance-summary-cards strong{color:#1854a6;font-variant-numeric:tabular-nums;font-size:16px}.finance-summary-cards small{color:#b45309}.finance-cash-summary{scrollbar-width:thin;flex:0 auto;min-width:0;overflow-x:auto}.finance-cash-summary output{flex:none}@media (width<=1400px){.finance-cash-summary{gap:8px}.finance-cash-summary output{gap:4px;padding:7px 8px;font-size:13px}.finance-cash-summary strong{font-size:14px}}.finance-cards .finance-negative,.finance-summary-cards .finance-negative{color:#c13939}.finance-rules{color:#62758f;background:#eef3fa;border-radius:9px;margin-top:22px;padding:14px 18px;font-size:13px;line-height:1.8}.finance-rules summary{cursor:pointer;font-weight:700}.finance-modal-backdrop{z-index:100;background:#0d1e3b80;justify-content:center;align-items:center;padding:25px;display:flex;position:fixed;inset:0}.finance-modal{background:#fff;border-radius:14px;width:min(1200px,96vw);max-height:90vh;padding:23px;overflow:auto;box-shadow:0 25px 80px #10254a55}.finance-modal-title{justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px;display:flex}.finance-modal h3{margin:0;font-size:17px}.finance-modal p{font-size:14px;line-height:1.8}.finance-modal .finance-grid-wrap{max-height:58vh;margin:15px 0}.finance-modal details{border-bottom:1px solid #e3eaf3;padding:12px 0;font-size:14px}.finance-modal summary{cursor:pointer}.finance-modal pre{background:#f3f6fb;max-height:300px;padding:12px;font-size:12px;overflow:auto}.finance-upload-actions{gap:10px;display:flex}.finance-upload{color:#1e5cc4;cursor:pointer;background:#edf4ff;border-radius:8px;padding:9px 14px;font-size:14px;display:inline-flex}.finance-upload input{display:none}@media (width<=1100px){.finance-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=650px){.finance-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-page .page-title{flex-direction:column;align-items:flex-start}.finance-modal-backdrop{padding:8px}.finance-modal{padding:14px}}:root{--blue:#2563eb;--blue-dark:#1e40af;--navy:#17243b;--ink:#1f2937;--muted:#6b7280;--line:#e5e7eb;--bg:#f5f7fb}*{box-sizing:border-box}html{background:var(--bg);--app-font:"PingFang SC", "Microsoft YaHei", "微软雅黑", "Microsoft YaHei UI", "Hiragino Sans GB", "Noto Sans CJK SC", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;font-family:var(--app-font)}body{color:var(--ink);background:var(--bg);font-family:var(--app-font);margin:0}button,input,select,textarea{font:inherit}table,th,td{font-family:inherit}button,input[type=date],input[type=month]{cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator{-webkit-appearance:none;display:none}input[type=month]::-webkit-calendar-picker-indicator{-webkit-appearance:none;display:none}.brand-mark{background:linear-gradient(145deg,#60a5fa,#2563eb);border-radius:12px;place-items:center;width:44px;height:44px;font-size:21px;font-weight:800;display:grid;box-shadow:0 8px 24px #2563eb59}.account-logout{border:1px solid var(--line);color:#475569;white-space:nowrap;background:#fff;border-radius:8px;flex:none;min-height:34px;padding:0 12px;font-size:14px}.account-logout:hover{color:var(--blue);background:#f8faff;border-color:#bfdbfe}.account-logout:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.tabs{border-bottom:1px solid var(--line);background:#fff;align-items:flex-end;gap:30px;height:58px;padding:0 max(28px,50vw - 590px);display:flex;overflow-x:auto}.tabs button{height:58px;color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;flex:none;padding:0 6px;font-weight:700}.tabs button.active{color:var(--blue);border-bottom-color:var(--blue)}.page-shell{width:min(1180px,100% - 40px);min-height:calc(100vh - 126px);margin:0 auto;padding:32px 0 48px}.page-title{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px;display:flex}.page-title h2{color:#172033;margin:0 0 7px;font-size:24px}.page-title p{color:var(--muted);margin:0;font-size:14px}.upload-grid{grid-template-columns:1fr 1fr;gap:22px;display:grid}.upload-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:26px;position:relative;box-shadow:0 10px 30px #15233a0f}.card-icon{width:42px;height:42px;color:var(--blue);background:#eaf1ff;border-radius:12px;place-items:center;font-size:16px;font-weight:800;display:grid;position:absolute;top:24px;right:25px}.card-icon.attendance{color:#0f8a65;background:#e2f7ef}.card-heading{padding-right:58px}.card-heading h2{margin:0 0 8px;font-size:19px}.card-heading p{min-height:40px;color:var(--muted);margin:0;font-size:14px;line-height:1.55}.drop-zone{color:#475569;background:#fafcff;border:2px dashed #cbd5e1;border-radius:13px;flex-direction:column;justify-content:center;align-items:center;gap:9px;height:210px;margin:22px 0 18px;transition:all .2s;display:flex}.drop-zone:hover{border-color:var(--blue);background:#f4f7ff}.drop-zone input{opacity:0;pointer-events:none;position:absolute}.upload-arrow{color:#fff;background:var(--blue);border-radius:50%;place-items:center;width:42px;height:42px;font-size:23px;font-weight:700;display:grid}.drop-zone strong{text-overflow:ellipsis;white-space:nowrap;max-width:90%;font-size:14px;overflow:hidden}.drop-zone small{color:#94a3b8}.card-footer{justify-content:space-between;gap:12px;display:flex}.card-footer button{border:1px solid var(--line);border-radius:9px;min-height:42px;padding:0 18px;font-weight:700}.template-button{color:#475569;background:#fff}.import-button{color:#fff;background:var(--blue);min-width:118px;border-color:var(--blue)!important}.import-button:disabled{cursor:not-allowed;opacity:.42}.message{color:#64748b;min-height:20px;margin:14px 0 0;font-size:13px}.message.error{color:#dc2626}.feishu-card{min-height:520px}.connection-status{color:#64748b;background:#f1f5f9;border-radius:20px;align-items:center;gap:7px;width:fit-content;margin-top:18px;padding:7px 11px;font-size:13px;font-weight:700;display:flex}.connection-status span{background:#94a3b8;border-radius:50%;width:7px;height:7px}.connection-status.connected{color:#08775a;background:#e7f8f1}.connection-status.connected span{background:#10b981;box-shadow:0 0 0 3px #10b98124}.settings-form{grid-template-columns:1fr 1fr;gap:13px;margin-top:18px;display:grid}.settings-form label,.date-field{color:#475569;flex-direction:column;gap:7px;font-size:13px;font-weight:700;display:flex}.settings-form input,.date-range-field input{color:#1f2937;background:#fff;border:1px solid #d7dee8;border-radius:8px;outline:none;width:100%;height:42px;padding:0 12px}.settings-form input:focus,.date-range-field input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a}.field-note{color:#64748b;grid-column:1/-1;margin:0;font-size:13px;line-height:1.55}.settings-actions{grid-column:1/-1;justify-content:flex-end;gap:10px;display:flex}.settings-actions button{border-radius:8px;min-height:40px;padding:0 16px;font-weight:700}.sync-panel{background:#f7faff;border:1px solid #dbe7fb;border-radius:12px;margin-top:18px;padding:18px}.date-range-field{border:0;margin:16px 0;padding:0}.date-range-field legend{color:#526174;margin-bottom:8px;font-size:14px;font-weight:700}.date-range-inputs{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:10px;display:grid}.date-range-inputs label{min-width:0}.date-range-inputs label span{color:#6b7280;margin-bottom:6px;font-size:13px;display:block}.date-range-field input{cursor:pointer}.date-range-separator{color:#7b8798;padding-bottom:12px;font-size:14px;font-weight:700}.configured-row{color:#64748b;border-bottom:1px solid #e2e8f0;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding-bottom:14px;font-size:14px;display:grid}.configured-row strong{color:#1e3a5f}.configured-row button{color:var(--blue);background:0 0;border:0;padding:0;font-size:13px}.date-field{margin:14px 0}.sync-button{color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8);border:0;border-radius:9px;width:100%;height:46px;font-weight:800;box-shadow:0 8px 18px #2563eb38}.sync-button:disabled{cursor:not-allowed;opacity:.55}.feishu-message{margin-bottom:12px}.csv-fallback{color:#64748b;border-top:1px solid #edf0f4;padding-top:12px;font-size:13px}.csv-fallback summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:#64748b;font-weight:700}.csv-compact{background:#f8fafc;border-radius:9px;margin-top:12px;padding:13px}.compact-file{color:#475569;background:#fff;border:1px dashed #cbd5e1;border-radius:8px;align-items:center;min-height:42px;padding:0 12px;display:flex}.compact-file input{opacity:0;pointer-events:none;position:absolute}.compact-file strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.compact-actions{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.compact-actions button{border-radius:8px;min-height:36px;padding:0 13px;font-weight:700}.tip{color:#475569;background:#eff6ff;border:1px solid #bfdbfe;border-radius:11px;align-items:center;gap:14px;margin-top:20px;padding:16px 18px;font-size:14px;display:flex}.tip strong{color:var(--blue-dark);white-space:nowrap}.record-count{color:var(--blue-dark);background:#e8efff;border-radius:20px;padding:8px 12px;font-size:14px;font-weight:700}.stats-filters{background:#fff;border:1px solid #dfe5ee;border-radius:12px;align-items:center;gap:11px;margin-bottom:16px;padding:13px;display:flex;box-shadow:0 5px 16px #15233a0a}.stats-filters .record-count{margin-left:auto}.stats-filters label{color:#475569;grid-template-columns:auto 1fr;align-items:center;gap:9px;min-width:180px;font-size:13px;font-weight:800;display:grid}.stats-filters select{color:#1f2937;background:#fff;border:1px solid #d7dee8;border-radius:8px;outline:none;width:100%;height:38px;padding:0 32px 0 11px}.stats-filters select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a}.attendance-coverage{background:#fff;border:1px solid #dfe5ee;border-radius:12px;margin:0 0 16px;padding:16px}.attendance-coverage.has-missing{border-color:#edcf9b}.attendance-coverage p{margin:0;line-height:1.6}.attendance-coverage-heading{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.attendance-coverage-heading h3{color:#172033;margin:0;font-size:1rem}.attendance-coverage-heading>span{color:#64748b;font-size:.875rem}.attendance-coverage-counts{color:#475569;flex-wrap:wrap;gap:8px 18px;margin-left:auto;font-size:.875rem;display:flex}.attendance-coverage-counts>span{white-space:nowrap}.attendance-coverage-counts strong{color:#1e40af}.attendance-coverage-counts .missing-count,.attendance-coverage-counts .missing-count strong{color:#915008}.attendance-coverage .attendance-coverage-note{color:#64748b;margin-top:8px;font-size:.875rem}.attendance-missing-people{flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.attendance-missing-people li{overflow-wrap:anywhere;background:#fffbf3;border:1px solid #f1dab3;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:9px 12px;font-size:.875rem;display:flex}.attendance-missing-people strong{color:#172033;font-size:1rem}.attendance-missing-people li>span{color:#64748b}.attendance-missing-people li .attendance-missing-label{color:#915008}.attendance-coverage .attendance-coverage-empty{color:#475569;margin-top:8px;font-size:.875rem}@media (width<=720px){.attendance-coverage-counts{width:100%;margin-left:0}}.table-wrap{border:1px solid var(--line);background:#fff;border-radius:13px;overflow:auto;box-shadow:0 8px 24px #15233a0d}table{border-collapse:collapse;width:100%;min-width:900px}th{text-align:left;white-space:nowrap;color:#475569;border-bottom:1px solid var(--line);background:#f8fafc;height:50px;padding:0 16px;font-size:14px}td{color:#475569;border-bottom:1px solid #eef1f5;height:54px;padding:0 16px;font-size:14px}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:#fafcff}.person{color:#172033;font-weight:700}.group-pill{color:#335ca8;background:#edf3ff;border-radius:20px;padding:5px 10px;font-size:13px;display:inline-block}.stats-page table{min-width:850px}.schedule-pill,.attendance-pill,.makeup-pill{white-space:nowrap;border-radius:999px;align-items:center;width:fit-content;font-size:12px;font-weight:800;display:inline-flex}.schedule-pill{padding:5px 9px}.schedule-pill.double{color:#08775a;background:#e7f8f1}.schedule-pill.single{color:#9a5a06;background:#fff3da}.attendance-state{flex-wrap:wrap;align-items:center;gap:6px;min-width:150px;padding:7px 0;display:flex}.attendance-state small{color:#7b8798;flex-basis:100%;max-width:250px;font-size:12px;line-height:1.35}.attendance-pill,.makeup-pill{padding:5px 9px}.attendance-pill.normal{color:#08775a;background:#e7f8f1}.attendance-pill.leave{color:#235cb3;background:#e8f0ff}.attendance-pill.absent,.attendance-pill.suspected_absent,.attendance-pill.late_early{color:#b42318;background:#feeceb}.attendance-pill.late,.attendance-pill.early,.attendance-pill.incomplete{color:#9a5a06;background:#fff3da}.attendance-pill.rest,.attendance-pill.unknown{color:#64748b;background:#eef2f6}.makeup-pill{color:#6a43af;background:#f0e8ff}.attendance-source-note{color:#526174;background:#f5f7fa;border-radius:8px;margin:12px 0 0;padding:10px 12px;font-size:12px;line-height:1.5}.empty{text-align:center;color:#94a3b8;height:220px}.error-box{color:#b91c1c;background:#fef2f2;border-radius:9px;margin-bottom:15px;padding:12px 15px}.auth-page{background:radial-gradient(circle at 20% 20%,#e8f0ff 0,#0000 34%),linear-gradient(145deg,#f7f9fc,#edf2f9);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#fff;border:1px solid #dfe6ef;border-radius:20px;width:min(440px,100%);padding:34px;box-shadow:0 24px 70px #17243b24}.login-brand{align-items:center;gap:14px;margin-bottom:28px;display:flex}.login-brand h1{color:#17243b;margin:0 0 6px;font-size:23px}.login-brand p{color:var(--muted);margin:0;font-size:14px}.login-fields{gap:16px;display:grid}.login-fields label,.inline-form label{color:#475569;flex-direction:column;gap:7px;font-size:13px;font-weight:700;display:flex}.login-fields input,.inline-form input,.user-actions input{color:#172033;background:#fff;border:1px solid #d6deea;border-radius:9px;outline:none;width:100%;height:44px;padding:0 12px}.login-fields input:focus,.inline-form input:focus,.user-actions input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a}.login-button{color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8);border:0;border-radius:10px;width:100%;height:46px;margin-top:22px;font-weight:800;box-shadow:0 10px 22px #2563eb3b}.login-button:disabled{cursor:not-allowed;opacity:.48}.login-message{text-align:center;color:#64748b;min-height:18px;margin:13px 0 0;font-size:13px}.login-message.error{color:#dc2626}.auth-loading{color:#64748b;font-weight:700}.management-page{min-height:calc(100vh - 126px);padding-top:18px}.management-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.management-toolbar .sub-tabs{min-width:0;margin-bottom:0;overflow-x:auto}.management-toolbar .sub-tabs button{flex:none}.management-message{z-index:100;color:#24539c;background:#eff6ff;border:1px solid #c7ddff;border-radius:10px;align-items:flex-start;gap:12px;max-width:min(460px,100vw - 40px);max-height:min(220px,40vh);padding:12px 14px;font-size:14px;line-height:1.5;display:flex;position:fixed;bottom:20px;right:20px;overflow:auto;box-shadow:0 6px 24px #15233a1f}.management-message>span{overflow-wrap:anywhere;min-width:0}.management-message-close{color:#475569;background:0 0;border:0;border-radius:4px;flex:none;width:24px;height:24px;padding:0}.management-message-close:before{content:"×";font-size:20px;line-height:1}.management-message-close:hover{background:#dbeafe}.management-message-close:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.sub-tabs{background:#eef2f7;border:1px solid #dfe5ee;border-radius:10px;gap:4px;width:fit-content;margin-bottom:18px;padding:4px;display:flex}.sub-tabs button{color:#64748b;background:0 0;border:0;border-radius:7px;min-width:112px;height:38px;padding:0 16px;font-weight:800}.sub-tabs button.active{color:var(--blue-dark);background:#fff;box-shadow:0 3px 10px #15233a1a}.page-shell.monthly-attendance-page{width:calc(100% - 40px)}.monthly-attendance-filters{flex-wrap:wrap}.monthly-attendance-filters input{color:#1f2937;width:100%;height:38px;font:inherit;background:#fff;border:1px solid #d7dee8;border-radius:8px;padding:0 11px}.monthly-attendance-filters label{font-size:.875rem}.monthly-attendance-note{color:#64748b;margin:10px 0;font-size:.875rem;line-height:1.65}.monthly-attendance-legend{flex-wrap:wrap;gap:8px 16px;margin:12px 0;display:flex}.monthly-attendance-legend>span{color:#475569;align-items:center;gap:6px;font-size:.875rem;display:inline-flex}.monthly-status{color:#4b5563;white-space:nowrap;background:#eef2f6;border:0;border-radius:5px;justify-content:center;align-items:center;min-width:38px;min-height:30px;padding:3px;font-size:.875rem;font-style:normal;font-weight:600;display:inline-flex}.monthly-status.normal{color:#08694e;background:#dff4ea}.monthly-status.late,.monthly-status.early,.monthly-status.late_early,.monthly-status.incomplete{color:#874006;background:#fff0d4}.monthly-status.absent{color:#b42318;background:#fee5e3}.monthly-status.suspected_absent,.monthly-status.approval_review{color:#9a4813;background:#ffeddc}.monthly-status.leave{color:#5e3aa8;background:#efe7ff}.monthly-status.rest_punch{color:#1857a2;background:#e3efff}.monthly-status.pending{color:#1857a2;background:#eaf2ff}.monthly-status.future,.monthly-status.before_hire{color:#64748b;background:#f7f8fa}.monthly-status.missing{color:#64748b;background:#f1f3f6}.monthly-status:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.attendance-detail-filters,.monthly-attendance-filters{flex-wrap:wrap}.attendance-detail-filters label,.monthly-attendance-filters label{font-size:.875rem}.attendance-export-block{flex-direction:column;gap:6px;max-width:100%;display:flex}.attendance-export-block .attendance-export-actions button{font-size:.875rem}.attendance-export-message{color:#31558e;max-width:420px;font-size:.875rem;line-height:1.5}.attendance-detail-status{padding:4px 9px}.attendance-makeup-badge{color:#31558e;white-space:nowrap;background:#eaf2ff;border-radius:5px;margin:3px 0 3px 6px;padding:4px 7px;font-size:.875rem;display:inline-block}.monthly-attendance-detail{color:#27486e;background:#f0f6ff;border:1px solid #c7dbfc;border-radius:8px;align-items:center;gap:16px;margin:12px 0;padding:12px 16px;font-size:.875rem;line-height:1.65;display:flex}.monthly-attendance-detail span{flex:1}.monthly-attendance-detail button{color:#1e40af;background:0 0;border:0;flex:none}.monthly-attendance-notice{color:#874006;background:#fff5df;border-radius:8px;margin:12px 0;padding:12px;font-size:.875rem}.monthly-attendance-scroll{isolation:isolate;max-height:min(72vh,900px)}.stats-page table.monthly-attendance-table{--monthly-group-width:6rem;--monthly-name-width:6.5rem;--monthly-summary-width:6.25rem;--monthly-balance-width:7.5rem;--monthly-date-width:3.75rem;width:calc(var(--monthly-group-width) + var(--monthly-name-width) + var(--monthly-summary-count) * var(--monthly-summary-width) + var(--monthly-balance-width) + var(--monthly-day-count) * var(--monthly-date-width));table-layout:fixed;border-collapse:separate;border-spacing:0;min-width:0}.monthly-attendance-table .monthly-group-col{width:var(--monthly-group-width)}.monthly-attendance-table .monthly-name-col{width:var(--monthly-name-width)}.monthly-attendance-table .monthly-summary-col{width:var(--monthly-summary-width)}.monthly-attendance-table .monthly-balance-col{width:var(--monthly-balance-width)}.monthly-attendance-table .monthly-date-col{width:var(--monthly-date-width)}.monthly-attendance-table caption{text-align:left;color:#172033;background:#fff;padding:10px;font-size:1rem;font-weight:700}.monthly-attendance-table th,.monthly-attendance-table td{text-align:center;border-right:1px solid #edf0f5;height:46px;padding:5px 4px;font-size:.875rem}.monthly-attendance-table thead th{z-index:3;background:#f3f6fa;position:sticky;top:0}.monthly-attendance-table .monthly-day-head{min-width:46px}.monthly-day-head>span,.monthly-day-head>small{display:block}.monthly-day-head>small{margin-top:3px;font-size:.75rem;font-weight:400}.monthly-attendance-table thead .rest-day{color:#707b8c;background:#e9edf3}.monthly-attendance-table thead .active-day{color:#1e40af;background:#deebff}.monthly-attendance-table .monthly-fixed-group,.monthly-attendance-table .monthly-fixed-name{z-index:2;background:#fff;position:sticky}.monthly-attendance-table .monthly-fixed-group{width:var(--monthly-group-width);white-space:normal;overflow-wrap:anywhere;left:0}.monthly-attendance-table .monthly-fixed-name{left:var(--monthly-group-width);width:var(--monthly-name-width);white-space:normal;overflow-wrap:anywhere;border-right:2px solid #d6e0ef;box-shadow:4px 0 5px -4px #94a3b8}.monthly-attendance-table thead .monthly-fixed-group,.monthly-attendance-table thead .monthly-fixed-name{z-index:4;background:#e8eef8}.monthly-attendance-table .monthly-summary{color:#244c89;background:#f4f8ff;min-width:76px;font-weight:700}.monthly-attendance-table .monthly-summary-end{border-right:2px solid #d6e0ef}.monthly-attendance-table .monthly-group-start>td,.monthly-attendance-table .monthly-group-start>th{border-top:2px solid #d8e0ec}@media (width<=720px){.page-shell.monthly-attendance-page{width:calc(100% - 24px)}.monthly-attendance-scroll{max-height:70vh}}.management-grid{grid-template-columns:1fr 1fr;align-items:start;gap:22px;display:grid}.management-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:24px;box-shadow:0 10px 30px #15233a0f}.department-card,.user-management-card,.roster-card{grid-column:1/-1}.roster-summary-bar{align-items:center;gap:16px;display:flex}.roster-entity-summaries{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;min-width:0;display:grid}.roster-entity-summary{border:1px solid #0000;border-radius:10px;flex-direction:column;gap:4px;min-width:0;padding:10px 16px;display:flex}.roster-entity-summary>span{font-size:13px;font-weight:600}.roster-entity-summary>strong{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:22px;line-height:1.25}.roster-entity-summary.yingqu{color:#2454a6;background:#edf4ff;border-color:#dce8fc}.roster-entity-summary.qiming{color:#7043ae;background:#f5efff;border-color:#e9ddfb}.roster-entity-summary.yizhu{color:#167052;background:#e8f7ef;border-color:#d3eddf}.feishu-source-detail{white-space:normal;max-width:340px;font-size:13px}.feishu-source-detail summary{cursor:pointer;color:#2563eb}.feishu-source-detail p{overflow-wrap:anywhere;max-height:240px;line-height:1.7;overflow:auto}.roster-summary-meta{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.roster-count{color:#335ca8;white-space:nowrap;background:#edf3ff;border-radius:18px;padding:7px 12px;font-size:13px}.roster-summary-meta>small{color:#64748b;white-space:nowrap;font-size:12px}.roster-filters{background:#f8fafc;border:1px solid #dfe5ee;border-radius:12px;grid-template-columns:repeat(6,minmax(120px,1fr)) auto auto;align-items:end;gap:9px;margin-top:18px;padding:13px;display:grid}.roster-filters label{flex-direction:column;gap:5px;min-width:0;display:flex}.roster-filters label>span{color:#64748b;font-size:12px;font-weight:800}.roster-filters select{color:#334155;background:#fff;border:1px solid #d5dde8;border-radius:8px;outline:none;width:100%;min-width:0;height:38px;padding:0 28px 0 10px;font-size:13px;font-weight:700}.roster-filters select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a}.roster-filters>button{color:#475569;white-space:nowrap;background:#fff;border:1px solid #d5dde8;border-radius:8px;min-height:38px;padding:0 13px;font-size:13px;font-weight:800}.roster-filters>button:disabled{cursor:not-allowed;opacity:.45}.roster-export-actions{align-self:end}.roster-export-actions button{min-height:38px;padding:0 13px}.roster-table{min-height:320px;max-height:calc(100vh - 370px);margin-top:14px}.roster-table table{min-width:1530px}.roster-insurance-entity{color:#1d4ed8;font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:4px 0}.roster-insurance-entity:hover{text-decoration:underline}.roster-insurance-entity:focus-visible{outline-offset:3px;border-radius:4px;outline:2px solid #93b4ff}.roster-table thead{z-index:2;position:sticky;top:0}.roster-table th{white-space:nowrap;height:48px;padding:0 12px}.roster-table td{white-space:nowrap;height:54px;padding:0 12px}.roster-table .roster-name{color:#172033;font-weight:800}.roster-table .roster-tenure{color:#1d4ed8;font-weight:800}.roster-table .roster-entity{margin-top:0;display:inline-block}.roster-table tr.roster-tone-0 td{background:#f3f8ff}.roster-table tr.roster-tone-1 td{background:#f2fbf6}.roster-table tr.roster-tone-2 td{background:#fff8ed}.roster-table tr.roster-tone-3 td{background:#faf4ff}.roster-table tr.roster-tone-4 td{background:#fff3f5}.roster-table tr.roster-tone-5 td{background:#f2fbfb}.roster-table tr[class*=roster-tone-]:hover td{filter:brightness(.975)}.card-icon.users{color:#b45309;background:#fff3dc}.inline-form{background:#f8fafc;border:1px solid #e4eaf2;border-radius:12px;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px;padding:16px;display:grid}.inline-form button{border-radius:9px;grid-column:1/-1;min-height:42px;font-weight:800}.management-list{border:1px solid #edf0f4;border-radius:11px;max-height:430px;margin-top:16px;overflow:auto}.management-row{border-bottom:1px solid #edf0f4;justify-content:space-between;align-items:center;gap:12px;min-height:60px;padding:10px 13px;display:flex}.management-row:last-child{border-bottom:0}.management-row>div:first-child{flex-direction:column;gap:4px;min-width:110px;display:flex}.management-row strong{color:#172033;font-size:14px}.management-row span{color:#64748b;font-size:13px}.management-row button{color:#475569;background:#fff;border:1px solid #dbe2ec;border-radius:7px;min-height:32px;padding:0 10px;font-size:13px;font-weight:700}.management-row button:disabled{cursor:not-allowed;opacity:.45}.user-actions{flex:1;justify-content:flex-end;align-items:center;gap:7px;display:flex}.user-actions input{width:116px;height:34px;font-size:13px}.user-actions button.danger{color:#b91c1c;background:#fff7f7;border-color:#fecaca}.admin-lock{background:#fff4d8;border-radius:20px;padding:6px 10px;font-weight:700;color:#6d4c0e!important}.empty-list{text-align:center;color:#94a3b8;margin:0;padding:36px 16px;font-size:14px}.department-layout{background:#fafbfd;border:1px solid #e3e8f0;border-radius:13px;grid-template-columns:360px minmax(0,1fr);min-height:380px;margin-top:0;display:grid;overflow:hidden}.department-sidebar{background:#f5f7fb;border-right:1px solid #e3e8f0;padding:15px}.department-create{gap:8px;display:flex}.department-create input,.person-add-form input{background:#fff;border:1px solid #d5dde8;border-radius:8px;outline:none;min-width:0;height:40px;padding:0 11px}.department-create input{flex:1}.department-create input:focus,.person-add-form input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a}.department-create button{color:#fff;background:var(--blue);border:0;border-radius:8px;min-width:82px;font-size:13px;font-weight:800}.department-create button:disabled{cursor:not-allowed;opacity:.45}.department-list{gap:7px;margin-top:13px;display:grid}.department-item{border:1px solid #0000;border-radius:9px;grid-template-columns:minmax(0,1fr) 124px auto;align-items:center;display:grid;overflow:hidden}.department-item:hover{background:#fff;border-color:#cfdbed}.department-item.active{background:#eaf2ff;border-color:#b9d0fb}.department-select{color:#334155;text-align:left;background:0 0;border:0;justify-content:space-between;gap:10px;min-width:0;padding:11px 10px;display:flex}.department-select strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.department-select span{color:#64748b;flex:none;font-size:13px}.department-leader{align-items:center;gap:5px;min-width:0;padding-right:5px;display:flex}.department-leader>span{color:#64748b;flex:none;font-size:12px}.department-leader select{color:#334155;background:#fff;border:1px solid #d5dde8;border-radius:6px;width:100%;min-width:0;height:30px;padding:0 4px;font-size:13px}.department-leader select:focus{border-color:var(--blue);outline-offset:1px;outline:2px solid #bfdbfe}.department-leader select:disabled{cursor:not-allowed;opacity:.55}.person-leader-badge{color:#4338ca;vertical-align:middle;background:#e0e7ff;border-radius:4px;margin-left:6px;padding:2px 5px;font-size:12px;font-style:normal;display:inline-block}.department-delete{color:#b91c1c;background:0 0;border:0;border-radius:6px;margin-right:7px;padding:4px 7px;font-size:12px}.department-delete:disabled{cursor:not-allowed;color:#b8c0cc}.department-detail{background:#fff;min-width:0;padding:22px}.department-detail-title{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.department-detail-title span{color:#64748b;font-size:13px}.department-detail-title h3{color:#172033;margin:5px 0 0;font-size:21px}.department-detail-title>strong{color:#335ca8;white-space:nowrap;background:#edf3ff;border-radius:18px;flex:none;padding:6px 10px;font-size:13px}.department-name-block{min-width:0}.department-name-heading,.department-rename-form{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:5px;display:flex}.department-name-heading h3{overflow-wrap:anywhere;margin:0}.department-name-heading button,.department-rename-form button{color:#2456a0;white-space:nowrap;background:#f6f9ff;border:1px solid #cbdaf0;border-radius:7px;min-height:34px;padding:6px 10px;font-size:13px}.department-name-heading button:disabled,.department-rename-form button:disabled{cursor:not-allowed;opacity:.45}.department-rename-form input{border:1px solid #b9d0fb;border-radius:7px;flex:160px;min-width:0;max-width:320px;height:38px;padding:0 10px}.department-rename-form input:focus{outline-offset:1px;outline:2px solid #bfdbfe}.person-add-form,.person-add-form.has-resignation{grid-template-columns:repeat(auto-fit,minmax(min(100%,172px),1fr));align-items:end;gap:14px 12px;margin-top:18px;padding-bottom:18px;display:grid}.person-add-field{flex-direction:column;gap:6px;min-width:0;display:flex}.person-add-field>span{color:#64748b;font-size:13px;font-weight:700;line-height:1.5}.person-add-form .person-add-field input,.person-add-form .person-add-field select{width:100%;min-width:0;height:40px;font-size:14px}.person-add-form .person-add-field input:disabled{color:#475569;background:#f1f5f9}.person-add-form select,.person-row-actions select{color:#334155;background:#fff;border:1px solid #d5dde8;border-radius:8px;outline:none;min-height:40px;padding:0 30px 0 10px;font-size:13px;font-weight:700}.person-add-form button{border-radius:8px;min-height:40px;font-weight:800}.personnel-row{flex-wrap:wrap;align-items:flex-start}.person-identity{min-width:92px}.legal-entity-pill{border-radius:999px;width:fit-content;margin-top:4px;padding:3px 8px;font-size:12px;font-style:normal;font-weight:800;line-height:1.4}.legal-entity-pill.yingqu{color:#1d4ed8;background:#dbeafe}.legal-entity-pill.qiming{color:#7e22ce;background:#f3e8ff}.legal-entity-pill.yizhu{color:#047857;background:#d1fae5}.legal-entity-pill.unset{color:#64748b;background:#e2e8f0}.person-row-actions{flex-wrap:wrap;flex:600px;justify-content:flex-end;align-items:flex-end;gap:10px;min-width:0;display:flex}.person-field{flex-direction:column;gap:5px;display:flex}.person-field>span{color:#64748b;font-size:12px;font-weight:700}.person-field select,.person-field input{color:#334155;background:#fff;border:1px solid #d5dde8;border-radius:7px;outline:none;width:112px;min-height:34px;padding:0 9px;font-size:13px}.person-field select{padding-right:28px}.person-field.salary input{width:125px}.person-field.hire-date input,.person-field.confirmation-date input,.person-field.resignation-date input{width:136px}.person-field.status select{width:154px}.person-field.entity select{width:88px}.person-field input:disabled{color:#475569;background:#f1f5f9}.person-field input:focus,.person-field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a}.person-row-buttons{align-items:center;gap:6px;display:flex}.person-row-buttons .transfer-person{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.person-row-buttons .transfer-cancel{color:#64748b;background:#f8fafc}.person-row-buttons .person-transfer-select{border-radius:7px;width:112px;min-height:34px;padding:0 28px 0 9px}.personnel-list{max-height:none;overflow:visible}.department-placeholder{text-align:center;color:#94a3b8;place-content:center;gap:7px;min-height:320px;display:grid}.department-placeholder strong{color:#64748b}.department-placeholder span{font-size:14px}.task-sync-button{border-radius:9px;min-height:42px;padding:0 18px;font-weight:800}.task-sync-area{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.task-sync-area small{color:#7b8798;white-space:nowrap;font-size:12px}.attendance-quick-sync small.sync-error{color:#b91c1c;white-space:normal;text-align:right}.task-control-grid{grid-template-columns:minmax(650px,2.8fr) minmax(130px,.55fr) minmax(130px,.55fr);gap:10px;margin-bottom:10px;display:grid}.score-rule-card{background:linear-gradient(135deg,#f7faff,#eef4ff);border:1px solid #cdddf8;border-radius:11px;align-items:center;margin:0;padding:11px 13px;display:grid}.score-ratio-inputs{grid-template-columns:minmax(145px,1.35fr) minmax(76px,.7fr) 10px minmax(76px,.7fr) auto minmax(125px,.9fr);align-items:end;gap:7px;min-width:0;display:grid}.score-ratio-inputs label{color:#475569;flex-direction:column;gap:6px;min-width:0;font-size:12px;font-weight:800;display:flex}.score-ratio-inputs label>div{background:#fff;border:1px solid #cbd7e8;border-radius:8px;align-items:center;height:40px;display:flex;overflow:hidden}.score-ratio-inputs input{color:#172033;background:0 0;border:0;outline:none;width:100%;min-width:0;height:38px;padding:0 8px;font-size:15px;font-weight:800}.score-week-select select{color:#172033;background:#fff;border:1px solid #cbd7e8;border-radius:8px;outline:none;width:100%;min-width:0;height:40px;padding:0 26px 0 9px;font-size:13px;font-weight:800}.score-week-select select:focus{border-color:#7aa7ef;box-shadow:0 0 0 3px #2563eb1f}.score-ratio-inputs input:focus{box-shadow:inset 0 0 0 2px #2563eb38}.score-ratio-inputs em{color:#64748b;padding-right:9px;font-size:13px;font-style:normal}.ratio-plus{color:#94a3b8;padding-bottom:11px;font-weight:900}.ratio-total{white-space:nowrap;border-radius:16px;margin-bottom:4px;padding:7px 9px;font-size:12px;font-weight:800}.ratio-total.valid{color:#247047;background:#ddf4e7}.ratio-total.invalid{color:#b91c1c;background:#fee2e2}.score-ratio-inputs>button{white-space:nowrap;border-radius:8px;width:100%;min-height:40px;padding:0 12px;font-size:13px;font-weight:800}.role-average-card{border:1px solid;border-radius:11px;flex-direction:column;justify-content:center;gap:4px;min-height:82px;padding:12px;display:flex}.role-average-card.post{background:#edf6ff;border-color:#c5ddfb}.role-average-card.draw{background:#f5f1ff;border-color:#d9cff8}.role-average-card span{color:#64748b;font-size:12px;font-weight:800}.role-average-card strong{color:#172033;font-size:24px;line-height:1}.role-average-card small{color:#64748b;font-size:12px}.task-filters{grid-template-columns:minmax(150px,.7fr) minmax(190px,1fr) minmax(170px,.85fr) minmax(240px,1.2fr) max-content minmax(225px,1fr);align-items:center;gap:14px;padding:14px 18px;display:grid}.task-filters label{min-width:0}.task-filters label:first-child,.task-filters label:nth-child(2),.task-filters label:nth-child(3),.task-filters label:nth-child(4){width:auto}.task-filter-total{flex-direction:column;align-items:flex-end;gap:3px;min-width:225px;margin-left:0;padding:0 3px;display:flex}.task-filter-total span{color:#64748b;font-size:12px}.task-filter-total strong{color:#264e96;white-space:nowrap;font-size:13px}.task-export-actions{align-items:center;gap:10px;display:flex}.task-export-actions button{color:#31558e;cursor:pointer;white-space:nowrap;background:#f7faff;border:1px solid #c9d5e8;border-radius:8px;min-height:40px;padding:0 16px;font-size:12px;font-weight:800}.task-export-actions button.primary{color:#fff;background:#2865e8;border-color:#2865e8}.task-export-actions button:hover:not(:disabled){background:#edf4ff;border-color:#7ba4eb}.task-export-actions button.primary:hover:not(:disabled){background:#1f55c8;border-color:#1f55c8}.task-export-actions button:disabled{opacity:.45;cursor:not-allowed}.task-table table{min-width:980px}.task-table .row-index{text-align:center;color:#7b8798;font-variant-numeric:tabular-nums;width:52px}.week-pill{color:#5b3bb3;background:#f0eaff;border-radius:20px;padding:5px 10px;font-size:13px;font-weight:700;display:inline-block}.ranked-person{flex-wrap:wrap;align-items:center;gap:7px;display:inline-flex}.ranked-person.is-top-five{color:#d6263d;font-weight:900}.score-rank-badge{color:#52627a;white-space:nowrap;background:#f3f6fa;border:1px solid #d8e0ec;border-radius:12px;padding:3px 7px;font-size:12px;font-style:normal;font-weight:900;line-height:1.2}.score-rank-badge.rank-1{color:#8a5700;background:linear-gradient(135deg,#fff8d8,#ffe8a3);border-color:#f0c15d;box-shadow:0 2px 7px #c0800021}.score-rank-badge.rank-2{color:#536274;background:linear-gradient(135deg,#f8fafc,#e4e9f0);border-color:#c9d2df}.score-rank-badge.rank-3{color:#84461f;background:linear-gradient(135deg,#fff0e4,#f3c7aa);border-color:#d9a47d}.score-rank-badge.rank-4,.score-rank-badge.rank-5{color:#a62652;background:#fff0f5;border-color:#f3b7c8}.group-share-pill{text-align:center;color:#87550a;background:#fff1c9;border-radius:14px;min-width:58px;padding:5px 9px;font-size:12px;font-weight:900;display:inline-block}.role-pill{text-align:center;border-radius:16px;min-width:46px;padding:5px 9px;font-size:12px;font-weight:800;display:inline-block}.role-pill.post{color:#225c92;background:#dceeff}.role-pill.draw{color:#6542a5;background:#e9e0ff}.task-table .role-post-row td{background:#f3f9ff}.task-table .role-draw-row td{background:#faf7ff}.task-table .role-post-row:hover td{background:#eaf5ff}.task-table .role-draw-row:hover td{background:#f3edff}.task-table .task-group-luolin td{background:#eef7ff}.task-table .task-group-luogang td{background:#effaf3}.task-table .task-group-haitao td{background:#fff7ea}.task-table .task-group-luolin:hover td{background:#e3f1ff}.task-table .task-group-luogang:hover td{background:#e3f5e9}.task-table .task-group-haitao:hover td{background:#ffefd5}.stats-page,.task-data-page,.hongguo-page,.payroll-page,.points-page,.review-page,.management-page{width:min(1760px,100% - 24px)}.hongguo-title{margin-bottom:14px}.hongguo-sync-area a{color:#2563eb;font-size:12px;font-weight:800;text-decoration:none}.hongguo-sync-area a:hover{text-decoration:underline}.hongguo-message{color:#8e412e;background:#fff7f3;border:1px solid #f1c6b8;border-radius:9px;margin-bottom:12px;padding:10px 13px;font-size:14px}.hongguo-summary-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px;display:grid}.hongguo-summary-card{background:#fff;border:1px solid #e3e7ee;border-radius:13px;flex-direction:column;justify-content:center;gap:5px;min-height:94px;padding:16px 18px;display:flex;box-shadow:0 6px 18px #15233a0a}.hongguo-summary-card span{color:#64748b;font-size:14px;font-weight:800}.hongguo-summary-card strong{color:#172033;font-size:25px;line-height:1.05}.hongguo-summary-card small{color:#7b8798;font-size:12px;font-weight:700}.hongguo-summary-card.high{background:linear-gradient(135deg,#fff,#fff1ef);border-color:#f2beb9}.hongguo-summary-card.high strong{color:#b43d32}.hongguo-summary-card.medium{background:linear-gradient(135deg,#fff,#fff8e8);border-color:#f0d7a4}.hongguo-summary-card.medium strong{color:#9a6508}.hongguo-summary-card.low{background:linear-gradient(135deg,#fff,#eefaf6);border-color:#b9dfd4}.hongguo-summary-card.low strong{color:#16725b}.hongguo-summary-card.total{background:linear-gradient(135deg,#fff,#eef4ff);border-color:#bfd3f5}.hongguo-summary-card.total strong{color:#275aa9}.hongguo-filters{grid-template-columns:minmax(130px,.65fr) minmax(190px,.95fr) minmax(145px,.72fr) minmax(180px,.9fr) minmax(125px,.62fr) minmax(210px,1fr) max-content minmax(210px,.95fr);align-items:center;gap:10px;padding:12px 14px;display:grid}.hongguo-filters label{min-width:0}.hongguo-filters select{height:36px;padding-right:28px}.hongguo-filters .task-export-actions{gap:7px}.hongguo-filters .task-export-actions button{min-height:36px;padding:0 11px}.hongguo-filters .task-filter-total{min-width:210px}.hongguo-table table{min-width:1320px}.hongguo-table.hongguo-single-role table{min-width:860px}.hongguo-table.hongguo-single-role thead tr:first-child th{height:48px}.hongguo-table th{text-align:center}.hongguo-table th:first-child,.hongguo-table th:nth-child(2),.hongguo-table th:nth-child(3),.hongguo-table th:nth-child(4){text-align:left}.hongguo-table thead tr:first-child th{height:38px}.hongguo-table thead tr:nth-child(2) th{height:34px;font-size:12px}.hongguo-table th.level-total{color:#2557a7;background:#dfeaff}.hongguo-table th.level-high{color:#98640a;background:#ffefc2}.hongguo-table th.level-medium{color:#16704d;background:#dff3e6}.hongguo-table th.level-low{color:#74469a;background:#ecddfb}.hongguo-table td:not(:nth-child(-n+4)){text-align:center;font-variant-numeric:tabular-nums}.hongguo-table tbody td.level-total{background:#edf4ff!important}.hongguo-table tbody td.level-high{background:#fff7e6!important}.hongguo-table tbody td.level-medium{background:#edf9f1!important}.hongguo-table tbody td.level-low{background:#f8f1ff!important}.hongguo-table tbody tr:hover td.level-total{background:#e2edff!important}.hongguo-table tbody tr:hover td.level-high{background:#fff0c9!important}.hongguo-table tbody tr:hover td.level-medium{background:#e1f4e8!important}.hongguo-table tbody tr:hover td.level-low{background:#f0e5fb!important}.hongguo-table .hongguo-total-cell{color:#214f99;font-size:15px;font-weight:900}.points-title{margin-bottom:12px}.points-message{color:#315a95;background:#f2f7ff;border:1px solid #c9daf7;border-radius:9px;margin-bottom:10px;padding:10px 13px;font-size:14px}.points-filters{flex-wrap:wrap;margin-bottom:12px}.points-filters label{flex:180px;min-width:180px}.points-section{background:#fff;border:1px solid #dfe5ee;border-radius:13px;margin-bottom:13px;overflow:hidden;box-shadow:0 6px 18px #15233a09}.points-section-heading{border-bottom:1px solid #e8edf3;justify-content:space-between;align-items:center;gap:12px;min-height:62px;padding:12px 16px;display:flex}.points-section-heading h3{color:#273449;margin:0 0 4px;font-size:16px}.points-section-heading p{color:#8793a5;margin:0;font-size:14px}.points-section-heading a{color:#315d9d;white-space:nowrap;background:#f7faff;border:1px solid #c9d8ee;border-radius:8px;padding:8px 12px;font-size:14px;font-weight:800;text-decoration:none}.points-section .table-wrap{box-shadow:none;border:0;border-radius:0}.points-daily-table table{min-width:980px}.points-daily-table th{height:50px;padding:0 11px;font-size:14px}.points-daily-table td{height:54px;padding:0 11px;font-size:14px}.points-usage-cell{color:#08735a;font-weight:900}.points-usage-cell small{color:#8a5b10;background:#fff3d8;border-radius:8px;margin-left:5px;padding:3px 6px;font-size:12px;font-weight:700}.points-filter-tools{justify-content:flex-end;align-items:center;gap:10px;min-width:360px;margin-left:auto;display:flex}.points-allocation-count{text-align:left;grid-template-columns:max-content max-content max-content;gap:2px 18px;line-height:1.4;margin-left:0!important;padding:7px 12px!important;display:grid!important}.points-allocation-count span{white-space:nowrap;display:block}.points-export-actions{flex:none}.points-period-pill{color:#315d9d;white-space:nowrap;background:#eaf2ff;border-radius:14px;padding:5px 10px;font-size:13px;font-weight:800;display:inline-block}.review-title{margin-bottom:14px}.review-message{color:#315a95;background:#f2f7ff;border:1px solid #c9daf7;border-radius:9px;margin-bottom:12px;padding:10px 13px;font-size:14px}.review-comparison-panel{background:#fff;border:1px solid #dbe4f0;border-radius:12px;margin-bottom:12px;overflow:hidden;box-shadow:0 6px 18px #15233a0a}.review-comparison-heading{background:#f8fafc;border-bottom:1px solid #e5eaf1;align-items:center;gap:10px;min-height:42px;padding:0 15px;display:flex}.review-comparison-heading strong{color:#273449;font-size:14px}.review-comparison-heading span{color:#8793a5;font-size:12px}.review-comparison-scroll{overflow-x:auto}.review-comparison-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:760px}.review-comparison-table th{text-align:center;color:#66758a;background:#f4f7fb;height:38px;padding:0 14px;font-size:12px;font-weight:800}.review-comparison-table th:first-child,.review-comparison-table td:first-child{text-align:left;width:170px}.review-comparison-table td{text-align:center;color:#41516a;border-top:1px solid #94a3b82e;height:51px;padding:5px 14px}.review-comparison-table tbody tr:first-child td{border-top-color:#d4e0f0}.review-comparison-table tbody tr:hover td{filter:brightness(.985)}.review-scope-name,.review-comparison-value{white-space:nowrap;justify-content:center;align-items:baseline;gap:7px;display:inline-flex}.review-scope-name{justify-content:flex-start}.review-scope-name strong{color:#243b61;font-size:14px}.review-scope-name small,.review-comparison-value small{color:#8793a5;font-size:12px;font-weight:700}.review-comparison-value strong{color:#1e3a67;font-variant-numeric:tabular-nums;font-size:16px}.review-video-total{color:#174ca3;font-variant-numeric:tabular-nums;font-size:17px}.comparison-team td{background:#edf4ff}.comparison-team .review-scope-name strong,.comparison-team .review-comparison-value strong{color:#174ca3;font-weight:900}.comparison-haitao td{background:#fff9ef}.comparison-luogang td{background:#f0faf5}.comparison-luolin td{background:#f2f7ff}.comparison-dongqi td{background:#f8f5ff}.review-filters{flex-wrap:wrap}.review-filters label{min-width:190px}.review-export-actions{flex:none}.review-table table{min-width:980px}.review-table th,.review-table td{text-align:center;padding-left:13px;padding-right:13px}.review-table th:nth-child(-n+3),.review-table td:nth-child(-n+3){text-align:left}.review-rate{font-variant-numeric:tabular-nums;border-radius:16px;justify-content:center;align-items:center;gap:5px;min-width:78px;padding:5px 8px;display:inline-flex}.review-rate strong{font-size:13px}.review-rate small{opacity:.75;font-size:9px;font-weight:800}.review-rate.good{color:#08775a;background:#e7f8f1}.review-rate.medium{color:#8b5a0b;background:#fff3da}.review-rate.low{color:#b42318;background:#feeceb}.review-rule-note{color:#64748b;background:#f8fafc;border:1px solid #d9e3f1;border-radius:10px;gap:10px;margin-top:12px;padding:11px 14px;font-size:13px;line-height:1.6;display:flex}.review-rule-note strong{color:#315a95;flex:none}.payroll-page .page-title{margin-bottom:16px}.payroll-summary-grid{grid-template-columns:1.35fr repeat(3,1fr);gap:10px;margin-bottom:14px;display:grid}.payroll-summary-card{background:#fff;border:1px solid #dbe4f0;border-radius:13px;flex-direction:column;justify-content:center;gap:5px;min-height:94px;padding:16px 18px;display:flex;box-shadow:0 6px 18px #15233a0a}.payroll-summary-card span{color:#64748b;font-size:14px;font-weight:800}.payroll-summary-card strong{color:#1e3a67;font-size:23px;line-height:1.1}.payroll-summary-card small{color:#8793a5;font-size:13px}.payroll-summary-card.total{background:linear-gradient(135deg,#f6faff,#eaf3ff);border-color:#aac8fb}.payroll-summary-card.total strong{color:#174ca3;font-size:27px}.payroll-summary-card.performance{background:#faf8ff;border-color:#d8cff5}.payroll-summary-card.bonus{background:#fffaf0;border-color:#f1d29a}.payroll-filters{flex-wrap:wrap}.payroll-filters label{min-width:170px}.payroll-record-count{white-space:nowrap}.payroll-action-message{color:#315a95;background:#f2f7ff;border:1px solid #c9daf7;border-radius:9px;margin:-6px 0 12px;padding:10px 13px;font-size:14px}.payroll-table table{min-width:1320px}.payroll-table th{white-space:nowrap;height:50px;padding:0 9px;font-size:14px}.payroll-table td{white-space:nowrap;height:54px;padding:0 9px;font-size:14px}.payroll-attendance-input{color:#64748b;align-items:center;gap:4px;font-size:13px;display:inline-flex}.payroll-attendance-input input{color:#1e3a67;width:58px;height:30px;font:inherit;background:#fff;border:1px solid #cbd8e8;border-radius:7px;outline:none;padding:0 7px;font-weight:800}.payroll-attendance-input input:focus{border-color:#4a82d8;box-shadow:0 0 0 3px #4a82d821}.payroll-attendance-input input:disabled{color:#94a3b8;background:#f1f5f9}.payroll-attendance-fixed{color:#8793a5;font-size:13px;font-weight:800}.payroll-social-personal{color:#ba553b;font-weight:800}.payroll-cost-cell{color:#215f48;font-weight:900}.payroll-table .row-index{text-align:center;color:#7b8798;width:52px}.month-pill{text-align:center;color:#315b9a;background:#eaf2ff;border-radius:14px;min-width:48px;padding:5px 9px;font-size:12px;font-weight:900;display:inline-block}.employment-pill{text-align:center;color:#526174;background:#eef2f6;border-radius:13px;min-width:44px;padding:4px 8px;font-size:12px;font-weight:800;display:inline-block}.employment-pill.formal{color:#23704a;background:#e7f6ee}.employment-pill.probation{color:#8a5a0a;background:#fff2d8}.employment-pill.intern{color:#6842a8;background:#eee7fb}.employment-pill.resigned{color:#8b3b3b;background:#fdecec}.employment-pill.intern_resigned,.employment-pill.probation_resigned{color:#70448f;background:#f4eafa}.bonus-cap-note{color:#a15b12;margin-top:3px;font-size:9px;font-weight:500;display:block}.payroll-total-cell{color:#174ca3;font-weight:900}.payroll-rules{background:#fff;border:1px solid #dfe5ee;border-radius:11px;margin-top:14px;overflow:hidden}.payroll-rules summary{cursor:pointer;color:#44546a;padding:14px 16px;font-size:14px;font-weight:800}.payroll-rules>div{color:#64748b;padding:0 16px 14px;font-size:14px;line-height:1.7}.payroll-rules p{margin:3px 0}.sheet-catalog{background:#fff;border:1px solid #dfe5ee;border-radius:12px;margin-top:18px;overflow:hidden}.sheet-catalog summary{cursor:pointer;color:#334155;justify-content:space-between;align-items:center;min-height:52px;padding:0 17px;font-size:14px;font-weight:800;list-style:none;display:flex}.sheet-catalog summary::-webkit-details-marker{display:none}.sheet-catalog summary strong{color:#335ca8;background:#edf3ff;border-radius:15px;padding:4px 9px;font-size:12px}.sheet-catalog-grid{background:#f8fafc;border-top:1px solid #e8ecf2;grid-template-columns:repeat(2,1fr);gap:8px;padding:14px;display:grid}.sheet-catalog-item{background:#fff;border:1px solid #e7ebf1;border-radius:9px;grid-template-columns:27px 1fr auto;align-items:center;gap:9px;min-width:0;padding:10px 11px;display:grid}.sheet-index{color:#64748b;background:#f1f5f9;border-radius:7px;place-items:center;width:27px;height:27px;font-size:12px;font-weight:800;display:grid}.sheet-catalog-item>div{flex-direction:column;gap:4px;min-width:0;display:flex}.sheet-catalog-item strong{text-overflow:ellipsis;white-space:nowrap;color:#273449;font-size:13px;overflow:hidden}.sheet-catalog-item small{color:#94a3b8;font-size:12px}.sheet-catalog-item em{color:#8a5b10;background:#fff3d8;border-radius:12px;padding:3px 7px;font-size:12px;font-style:normal;font-weight:700}.sheet-catalog-item em.visible{color:#247047;background:#e8f7ef}footer{text-align:center;color:#94a3b8;padding:22px;font-size:13px}footer .account-logout{margin-left:16px}@media (width>=761px) and (width<=1320px){.roster-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.task-filters,.hongguo-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.task-export-actions{width:100%}.task-export-actions button{flex:1}.task-filter-total{justify-content:center;min-height:40px}}@media (width<=760px){.tabs{padding:0 20px}.page-shell{width:min(100% - 28px,1180px);padding-top:24px}.upload-grid,.management-grid{grid-template-columns:1fr}.roster-summary-bar{flex-direction:column;align-items:stretch;gap:10px}.roster-entity-summaries{gap:8px}.roster-entity-summary{padding:10px}.roster-entity-summary>strong{font-size:18px}.roster-summary-meta{flex-flow:wrap;justify-content:space-between;align-items:center}.roster-filters{grid-template-columns:1fr}.roster-table{max-height:calc(100vh - 330px)}.department-layout{grid-template-columns:1fr}.department-sidebar{border-bottom:1px solid #e3e8f0;border-right:0}.department-detail{padding:17px}.person-add-form,.person-add-form.has-resignation{grid-template-columns:1fr}.personnel-row{flex-direction:column}.person-row-actions{justify-content:flex-start;width:100%}.user-row{flex-direction:column;align-items:flex-start}.user-actions{flex-wrap:wrap;justify-content:flex-start;width:100%}.user-actions input{flex:1;min-width:130px}.settings-form,.date-range-inputs{grid-template-columns:1fr}.date-range-separator{display:none}.page-title{flex-direction:column;align-items:flex-start}.task-sync-area{align-items:flex-start}.stats-filters{flex-direction:column;align-items:stretch}.hongguo-filters{grid-template-columns:1fr}.stats-filters label{grid-template-columns:42px 1fr;width:100%}.task-filters label:first-child,.task-filters label:nth-child(2),.task-filters label:nth-child(3),.task-filters label:nth-child(4){width:100%}.stats-filters .record-count{width:fit-content;margin-left:0}.points-filter-tools{flex-direction:column;align-items:flex-start;width:100%;min-width:0;margin-left:0}.points-allocation-count span{white-space:normal}.points-allocation-count{grid-template-columns:1fr}.task-control-grid,.payroll-summary-grid,.hongguo-summary-grid{grid-template-columns:1fr 1fr}.review-comparison-heading{flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;min-height:54px}.review-rule-note{flex-direction:column;align-items:flex-start}.points-rule-note{align-items:flex-start}.score-rule-card{grid-column:1/-1;grid-template-columns:1fr;align-items:stretch;gap:15px}.score-ratio-inputs{grid-template-columns:1fr 1fr;align-items:end}.score-week-select,.ratio-total,.score-ratio-inputs>button{grid-column:1/-1}.ratio-plus{display:none}.ratio-total{justify-self:start}.task-filter-total{align-items:flex-start;margin-left:0}.task-export-actions{width:100%}.task-export-actions button{flex:1}.sheet-catalog-grid{grid-template-columns:1fr}.drop-zone{height:170px}.tip{align-items:flex-start}}.employee-accounts{background:#fff;border:1px solid #dce5f0;border-radius:14px;padding:24px}.employee-accounts-head,.employee-toolbar,.employee-issued>div:first-child{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.employee-accounts h3{margin:0;font-size:20px}.employee-accounts p,.employee-accounts span{color:#63748c;font-size:14px}.employee-accounts button{cursor:pointer;color:#31547b;background:#fff;border:1px solid #cfdaeb;border-radius:7px;padding:8px 13px;font-size:14px}.employee-accounts button.import-button{color:#fff;background:#2867e8;border-color:#2867e8}.employee-accounts button:disabled{opacity:.5;cursor:default}.employee-toolbar{margin:20px 0}.employee-toolbar input{border:1px solid #cfdaeb;border-radius:8px;min-width:180px;max-width:100%;padding:10px 14px;font-size:14px}.employee-account-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.employee-update-toolbar{justify-content:flex-end;gap:8px}.employee-update-dialog{color:#31547b;background:#fff;border:1px solid #cfdaeb;border-radius:14px;width:min(560px,100vw - 32px);max-height:calc(100vh - 32px);margin:auto;padding:24px;overflow:auto;box-shadow:0 20px 70px #10213b44}.employee-update-dialog::backdrop{background:#10213b80}.employee-update-dialog form{gap:16px;display:grid}.employee-update-dialog label{gap:8px;min-width:0;font-size:14px;display:grid}.employee-update-dialog input,.employee-update-dialog textarea{color:#31547b;width:100%;min-width:0;font:inherit;background:#fff;border:1px solid #cfdaeb;border-radius:8px;padding:10px 12px}.employee-update-dialog textarea{resize:vertical}.employee-update-dialog p{margin:0;line-height:1.6}.employee-update-actions{justify-content:flex-end;gap:8px;display:flex}.employee-accounts .employee-update-notice.dismissible-notice{z-index:120;color:#31547b;background:#f4f8ff;border:1px solid #cfdaeb;border-radius:10px;max-width:min(520px,100vw - 48px);padding:14px 48px 14px 16px;font-size:14px;line-height:1.6;position:fixed;bottom:24px;right:24px;box-shadow:0 6px 24px #10213b22}.employee-account-filters{flex-wrap:wrap;align-items:center;gap:16px;min-width:0;display:flex}.employee-account-filters input,.employee-account-filters select{color:#31547b;background:#fff;border:1px solid #cfdaeb;border-radius:8px;min-width:0;max-width:100%;height:38px;padding:0 12px;font-size:14px}.employee-account-filters input{width:240px}.employee-account-filters label{color:#31547b;align-items:center;gap:10px;min-width:0;font-size:14px;display:flex}.employee-account-filters select{width:180px}.employee-account-actions{flex-direction:column;align-items:flex-end;gap:8px;margin-left:auto;display:flex}@media (width<=700px){.employee-account-filters{gap:12px;width:100%}.employee-account-filters input,.employee-account-filters label{width:100%}.employee-account-filters select{flex:1;width:auto}}.employee-accounts .employee-message{color:#285ba9;background:#eef5ff;border-radius:8px;padding:12px 16px}.employee-issued{background:#f4f8ff;border:1px solid #a8c7fa;border-radius:10px;margin-bottom:20px;padding:18px}.employee-issued-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.employee-issued-actions button{white-space:nowrap}.employee-issued code{color:#1c53b0;-webkit-user-select:all;user-select:all;font-size:16px}.employee-row-actions{white-space:nowrap;gap:8px;display:flex}@media (width<=700px){.employee-accounts{padding:14px}.employee-toolbar input{width:100%}}.payroll-segment-editor{text-align:left;gap:6px;min-width:230px;padding-top:8px;display:grid}.payroll-segment-editor label{white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:flex}.payroll-segment-editor input{width:66px;min-width:0;padding:5px}.payroll-segment-editor button{color:#1d4ed8;background:#f5f8ff;border:1px solid #bfcef4;border-radius:6px;padding:6px 9px}.person-removal-backdrop{z-index:110;background:#10213b80;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.person-removal-dialog{background:#fff;border-radius:14px;width:min(480px,100%);padding:24px;box-shadow:0 20px 70px #10213b44}.person-removal-dialog h3{margin:0 0 12px}.person-removal-dialog p{color:#536983;font-size:14px;line-height:1.8}.person-removal-dialog label{gap:8px;display:grid}.person-removal-dialog input,.person-removal-dialog select{border:1px solid #cbd7ed;border-radius:6px;width:100%;min-width:0;padding:10px}.management-toolbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.person-removal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.person-removal-actions button{background:#fff;border:1px solid #c5d4f0;border-radius:6px;padding:9px 13px}.person-removal-actions .primary{color:#fff;background:#2864ed}.attendance-workspace{max-width:1800px}.attendance-workspace-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.attendance-workspace-toolbar .sub-tabs{margin:0}.attendance-workspace-toolbar .task-sync-area{margin-left:auto}.attendance-workspace-toolbar .task-sync-button{border:1px solid}.attendance-manual-actions{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.attendance-manual-actions small,.attendance-source-line,.attendance-source-pagination,.attendance-detail-panel small{color:#6c7d97;font-size:13px}.attendance-manual-actions>button{min-width:112px;min-height:38px}.attendance-workspace-filters{flex-wrap:wrap;gap:14px;margin-top:16px}.attendance-workspace-filters label{min-width:160px}.attendance-workspace-filters input{color:#1f2937;background:#fff;border:1px solid #d7dee8;border-radius:8px;min-width:160px;min-height:38px;padding:0 11px}.attendance-workspace-filters input:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #2563eb1a}.attendance-workspace-filters .record-count{margin-left:auto}.attendance-source-line{flex-wrap:wrap;justify-content:space-between;gap:12px;margin:12px 0;display:flex}.attendance-source-table{max-height:68vh;overflow:auto}.attendance-source-table table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.attendance-source-table th,.attendance-source-table td{white-space:normal;overflow-wrap:anywhere;min-width:130px;max-width:350px;padding:15px 18px}.attendance-source-table thead th{z-index:3;background:#f4f7fc;position:sticky;top:0}.attendance-source-table th:first-child,.attendance-source-table td:first-child{z-index:2;background:#fff;min-width:130px;max-width:130px;position:sticky;left:0;box-shadow:1px 0 #e7edf6}.attendance-source-table thead th:first-child{z-index:4;background:#f4f7fc}.attendance-source-table tr:hover td{background:#f7faff}.attendance-compact-table table{table-layout:auto;width:100%;min-width:1120px}.attendance-source-table.attendance-compact-table th,.attendance-source-table.attendance-compact-table td{white-space:nowrap;overflow-wrap:normal;text-align:center;vertical-align:middle;width:12%;min-width:0;max-width:none;height:50px;padding:14px 18px;line-height:21px}.attendance-compact-table td:nth-child(4),.attendance-compact-table td:nth-child(5),.attendance-compact-table td:nth-child(6){font-variant-numeric:tabular-nums}.attendance-source-table.attendance-compact-table th:last-child,.attendance-source-table.attendance-compact-table td:last-child{white-space:nowrap;overflow-wrap:normal;width:28%;min-width:400px}.attendance-monthly-source-table table{table-layout:fixed;min-width:0}.attendance-monthly-source-table th,.attendance-monthly-source-table td{box-sizing:border-box;min-width:0;max-width:none;padding:12px;line-height:20px}.attendance-source-table.attendance-monthly-source-table thead th{white-space:nowrap;overflow-wrap:normal;text-align:center;width:auto;min-width:0;max-width:none;height:38px;box-shadow:none;z-index:3;padding:8px 12px;position:sticky;top:0;left:auto}.attendance-source-table.attendance-monthly-source-table .monthly-column-head th{height:44px;top:38px}.attendance-source-table.attendance-monthly-source-table thead .monthly-identity-name{z-index:5;text-align:left;background:#f4f7fc;width:120px;min-width:120px;max-width:120px;height:82px;left:0}.attendance-source-table.attendance-monthly-source-table thead .monthly-identity-group{z-index:5;text-align:left;background:#f4f7fc;width:140px;min-width:140px;max-width:140px;height:82px;left:120px;box-shadow:2px 0 #d6e0ef}.attendance-source-table.attendance-monthly-source-table thead .monthly-section-attendance{background:#edf6f1}.attendance-source-table.attendance-monthly-source-table thead .monthly-section-abnormal{background:#fff3e7}.attendance-source-table.attendance-monthly-source-table thead .monthly-section-overtime{background:#f1edfc}.attendance-source-table.attendance-monthly-source-table thead .monthly-section-daily{background:#edf3ff}.attendance-source-table.attendance-monthly-source-table .monthly-category-head .monthly-section-daily{text-align:left}.monthly-category-head .monthly-section-daily>span{position:sticky;left:274px}.attendance-monthly-source-table td{white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;height:49px;overflow:hidden}.attendance-monthly-source-table td:first-child{width:120px;min-width:120px;max-width:120px;left:0}.attendance-monthly-source-table td:nth-child(2){z-index:2;background:#fff;width:140px;min-width:140px;max-width:140px;position:sticky;left:120px;box-shadow:2px 0 #d6e0ef}.attendance-monthly-source-table .monthly-source-metric,.attendance-monthly-source-table .monthly-source-day{text-align:center}.attendance-monthly-source-table .monthly-section-start{border-left:2px solid #d6e0ef}.attendance-monthly-source-table .monthly-group-start td{border-top:2px solid #d6e0ef}.attendance-source-table .empty{text-align:center;padding:60px 20px;position:static!important}.attendance-statistics-table table{width:100%;min-width:1040px}.attendance-statistics-table th,.attendance-statistics-table td{vertical-align:middle;padding:16px 20px}.attendance-statistics-table th:nth-child(n+3),.attendance-statistics-table td:nth-child(n+3){text-align:center}.attendance-statistics-table th:nth-child(3),.attendance-statistics-table th:nth-child(4){background:#edf6f1}.attendance-statistics-table th:nth-child(n+5){background:#fff3e7}.attendance-statistics-table .monthly-group-start td{border-top:2px solid #d6e0ef}.attendance-statistic-link{color:#245ce5;font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:0;border-radius:8px;min-width:52px;min-height:36px;padding:6px 12px;font-size:16px;font-weight:700}.attendance-statistic-link:hover{text-underline-offset:4px;background:#edf3ff;text-decoration:underline}.attendance-statistic-link:focus-visible,.attendance-statistics-close:focus-visible{outline-offset:3px;outline:2px solid #245ce5}.attendance-statistic-link:disabled{color:#94a3b8;cursor:wait}.attendance-statistics-modal-backdrop{z-index:150;overscroll-behavior:contain;background:#0d1e3b80;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.attendance-statistics-drilldown{overscroll-behavior:contain;background:#fff;border:1px solid #e1e7f0;border-radius:18px;width:min(1080px,100%);min-width:0;max-height:calc(100dvh - 48px);padding:24px;overflow:auto;box-shadow:0 24px 80px #10254a55}.attendance-statistics-detail-heading{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:20px;display:flex}.attendance-statistics-detail-controls{flex-shrink:0;align-items:flex-start;gap:12px;display:flex}.attendance-detail-screenshot{flex-direction:column;align-items:flex-end;gap:6px;max-width:240px;display:flex}.attendance-detail-screenshot button{white-space:nowrap;color:#fff;cursor:pointer;background:#245ce5;border:1px solid #245ce5;border-radius:8px;min-height:36px;padding:7px 14px}.attendance-detail-screenshot button:disabled{opacity:.6;cursor:wait}.attendance-detail-screenshot button:focus-visible{outline-offset:3px;outline:2px solid #245ce5}.attendance-detail-screenshot [role=status]{color:#536983;font-size:13px;line-height:1.5}.attendance-statistics-close{color:#536983;cursor:pointer;background:#f6f8fc;border:1px solid #dbe4f0;border-radius:9px;flex:0 0 36px;width:36px;height:36px;font-size:26px;line-height:1}.attendance-statistics-close:hover{color:#245ce5;background:#eaf0fb}.attendance-statistics-detail-heading h2{color:#17233b;margin:0;font-size:22px}.attendance-statistics-detail-heading h2:focus{outline:none}.attendance-statistics-detail-table{overscroll-behavior:contain;max-height:70vh;overflow:auto}.attendance-statistics-detail-table table{border-collapse:separate;border-spacing:0;width:100%;min-width:720px}.attendance-statistics-detail-table th{z-index:1;background:#edf3ff;position:sticky;top:0}.attendance-statistics-detail-table th,.attendance-statistics-detail-table td{vertical-align:top;height:auto;padding:14px 18px;line-height:1.7}.attendance-statistics-detail-table th:nth-child(-n+3),.attendance-statistics-detail-table td:nth-child(-n+3){white-space:nowrap}.attendance-statistics-detail-table th:nth-child(3),.attendance-statistics-detail-table .attendance-statistics-detail-number{text-align:center;font-variant-numeric:tabular-nums;font-weight:700}.attendance-statistics-detail-table td:nth-child(n+4){white-space:normal;overflow-wrap:anywhere;min-width:280px;max-width:540px}.attendance-statistics-detail-table .attendance-statistics-anomaly{color:#dc2626;font-weight:600}.attendance-statistics-detail-table .empty{text-align:center;padding:40px 20px}@media (width<=650px){.attendance-statistics-modal-backdrop{padding:12px}.attendance-statistics-drilldown{border-radius:12px;max-height:calc(100dvh - 24px);padding:16px}.attendance-statistics-detail-heading{flex-wrap:wrap;gap:12px}.attendance-statistics-detail-controls{margin-left:auto}.attendance-statistics-detail-heading h2{font-size:19px}}.production-page{color:#18345a;width:min(1760px,100% - 64px);margin:0 auto;padding:28px 0 40px}.production-topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.production-projects{background:#edf2f8;border:1px solid #dce4ef;border-radius:10px;gap:4px;padding:4px;display:flex}.production-page button,.production-page select{color:#27528c;cursor:pointer;background:#fff;border:1px solid #cbdafa;border-radius:7px;min-height:34px;padding:7px 12px;font-size:14px}.production-page button:disabled{opacity:.6;cursor:wait}.production-projects button,.production-result-tabs>button{background:0 0;border-color:#0000}.production-projects button.selected,.production-result-tabs>button.selected{color:#1550df;background:#fff;font-weight:700;box-shadow:0 2px 8px #203c6814}.production-page .production-primary{color:#fff;background:#2860ed;border-color:#2860ed;font-weight:600}.production-sync{text-align:right;gap:5px;display:grid}.production-sync small{color:#7386a3;font-size:12px}.production-filters{background:#fff;border:1px solid #dce4ef;border-radius:11px;flex-wrap:wrap;align-items:end;gap:12px;padding:16px;display:flex}.production-filters label{gap:6px;font-size:13px;display:grid}.production-filters select{min-width:145px;max-width:260px}.production-filters a{color:#315fa5;align-self:center;margin-left:auto;font-size:13px}.production-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0 0;display:grid}.production-cards>div{background:#fff;border:1px solid #dce4ef;border-radius:11px;padding:18px 22px}.production-cards>div:nth-child(2){background:#edf5ff;border-color:#d3e4ff}.production-cards span{color:#6b7e9b;margin-bottom:8px;font-size:13px;display:block}.production-cards strong{color:#204b8b;font-variant-numeric:tabular-nums;font-size:27px}.production-cards small{font-size:13px;font-weight:400}.production-alert,.production-notice{border-radius:8px;margin:12px 0;padding:12px 16px;font-size:14px;line-height:1.6}.production-alert{color:#965611;background:#fff5e9;border:1px solid #f4d5a5}.production-notice{color:#237047;background:#eaf5ef}.production-results{background:#fff;border:1px solid #dce4ef;border-radius:12px;margin-top:20px;overflow:hidden}.production-result-tabs{background:#f5f8fc;border-bottom:1px solid #e4eaf3;align-items:center;gap:8px;padding:10px 16px;display:flex}.production-overview-title{color:#27528c;white-space:nowrap;font-size:14px}.production-group{align-items:center;gap:8px;margin-left:auto;font-size:13px;display:flex}.production-table-wrap{max-height:65vh;overflow:auto}.production-table-wrap table{border-collapse:separate;border-spacing:0;width:100%;min-width:650px;font-size:14px}.production-table-wrap th,.production-table-wrap td{text-align:center;white-space:nowrap;border-bottom:1px solid #ebeff5;height:48px;padding:13px 18px}.production-table-wrap th{z-index:1;color:#46617f;background:#edf3fc;font-size:13px;position:sticky;top:0}.production-table-wrap th:first-child,.production-table-wrap td:first-child{text-align:left}.production-table-wrap tbody tr:nth-child(2n){background:#f8faff}.production-table-wrap tfoot th,.production-table-wrap tfoot td{background:#eef4fe;font-weight:700;position:static}.production-table-wrap small{color:#9c6a27;font-size:12px;display:block}.production-unmatched{color:#a56413}.production-page .production-count-button{color:#245de0;min-width:40px;min-height:32px;font:inherit;font-variant-numeric:tabular-nums;background:0 0;border:0;border-radius:6px;padding:4px 10px;font-weight:600}.production-page .production-count-button:hover{color:#1748b8;background:#e9f1ff;text-decoration:underline}.production-count-button:focus-visible,.production-detail-dialog button:focus-visible,.production-detail-table-wrap:focus-visible{outline-offset:2px;outline:2px solid #3779e9}.production-detail-backdrop{z-index:160;overscroll-behavior:contain;background:#0d1e3b80;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.production-detail-dialog{box-sizing:border-box;color:#18345a;background:#fff;border:1px solid #dce4ef;border-radius:14px;width:min(580px,100%);max-height:calc(100dvh - 32px);padding:24px;overflow:auto;box-shadow:0 20px 64px #0d1e3b30}.production-detail-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.production-detail-heading h3{overflow-wrap:anywhere;margin:0;font-size:18px;line-height:1.5}.production-detail-heading button{color:#526b8c;cursor:pointer;background:#f5f8fc;border:1px solid #dce4ef;border-radius:8px;flex:0 0 36px;width:36px;height:36px;font-size:25px;line-height:1}.production-detail-period{color:#7386a3;margin:6px 0 20px;font-size:14px}.production-detail-table-wrap{border:1px solid #dce4ef;border-radius:10px;overflow:auto}.production-detail-dialog table{table-layout:fixed;border-collapse:collapse;width:100%;min-width:0;font-size:14px}.production-detail-dialog th,.production-detail-dialog td{text-align:left;white-space:normal;overflow-wrap:anywhere;border-bottom:1px solid #e8eef6;padding:15px 18px}.production-detail-dialog th:last-child,.production-detail-dialog td:last-child{text-align:right;font-variant-numeric:tabular-nums}.production-detail-dialog thead{color:#46617f;background:#edf3fc}.production-detail-dialog tbody tr:nth-child(2n){background:#f8faff}.production-detail-dialog tfoot{background:#eef4fe;font-weight:700}.production-detail-dialog tfoot th,.production-detail-dialog tfoot td{border-bottom:0}.production-detail-unavailable{color:#9c6a27;font-size:13px}.production-empty{text-align:center;color:#8090a6;padding:55px 16px}@media (width<=850px){.production-topbar{flex-wrap:wrap;align-items:flex-start}.production-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.production-filters label{flex:1}.production-filters select{width:100%}.production-page{width:calc(100% - 32px);padding:18px 0 32px}.production-projects button{padding:8px}.production-group{flex-wrap:wrap}.production-cards strong{font-size:23px}}.attendance-source-pagination{justify-content:flex-end;align-items:center;gap:12px;padding:16px 0;display:flex}.attendance-source-pagination>span:first-child{margin-right:auto}.attendance-source-warning{color:#875410;background:#fff8ec;border:1px solid #f3d7a3;border-radius:9px;margin-bottom:12px;padding:12px 16px;font-size:14px}.attendance-source-warning ul,.attendance-sync-banner ul{max-height:180px;margin:8px 0 0;padding-left:20px;line-height:1.8;overflow:auto}.attendance-sync-banner{background:#edf4ff;border:1px solid #d8e5fa;border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;margin:14px 0;padding:14px;display:flex}.attendance-sync-banner.has-error{background:#fff8ec;border-color:#f3d7a3}.dismissible-notice.dismissible-notice{position:relative}.dismissible-notice.has-dismiss-action{min-height:32px;padding-right:48px}span.dismissible-notice{vertical-align:middle;display:inline-block}.dismissible-notice>button.notice-close{width:28px;min-width:28px;height:28px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;margin:0;padding:0;font-size:22px;line-height:1;display:inline-flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.dismissible-notice>button.notice-close:hover{background:#1e4d8514}.dismissible-notice>button.notice-close:focus-visible{outline-offset:2px;outline:2px solid #2864e8}.attendance-sync-banner details{width:100%}.attendance-sync-banner progress{accent-color:#2c62ed;flex:1;min-width:100px;height:8px}.attendance-detail-link{color:#245ce5;background:0 0;border:0}.attendance-detail-overlay{z-index:100;background:#17233b66;justify-content:flex-end;display:flex;position:fixed;inset:0}.attendance-detail-panel{background:#fff;width:min(1200px,96vw);height:100%;padding:28px;overflow:auto;box-shadow:-10px 0 40px #17233b22}.attendance-detail-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.attendance-detail-heading p{color:#6c7d97;margin-top:8px;font-size:14px}.attendance-detail-panel .table-wrap{margin-bottom:24px;overflow:auto}.attendance-detail-panel table{min-width:950px}.attendance-detail-panel th,.attendance-detail-panel td{white-space:nowrap}@media (width<=720px){.attendance-workspace-toolbar .task-sync-area{align-items:flex-end}.attendance-workspace .page-title{align-items:flex-start;gap:16px}.attendance-manual-actions small{text-align:right;max-width:180px}.attendance-source-pagination{flex-wrap:wrap}.attendance-source-pagination>span:first-child{width:100%}.attendance-detail-panel{padding:18px}}.dyue-backup-layer{z-index:1000;background:#11182780;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.dyue-backup-layer.hidden{display:none}.dyue-backup-layer>section{color:#172033;background:#fff;border-radius:12px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 18px 60px #0003}.dyue-backup-layer header{justify-content:space-between;align-items:center;gap:20px;display:flex}.dyue-backup-layer button{cursor:pointer;background:#f8fafc;border:1px solid #cbd5e1;border-radius:6px;padding:8px 12px}.dyue-backup-layer button:disabled{opacity:.5;cursor:default}.dyue-backup-layer p{margin:12px 0}.finance-account-status{text-align:center;white-space:nowrap;padding:7px 10px;line-height:24px;display:block}select:not([multiple]):not([size]),select[size="1"]{cursor:pointer;appearance:none!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16'%3E%3Cpath d='m3 6 5 5 5-5' fill='none' stroke='%235d7392' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-position:right 16px center!important;background-repeat:no-repeat!important;padding-right:40px!important}@media (forced-colors:active){select:not([multiple]):not([size]),select[size="1"]{appearance:auto!important;background-image:none!important;padding-right:12px!important}}.finance-account-check-button{white-space:nowrap;flex:none;height:40px}.finance-account-check{white-space:normal;width:min(1200px,96vw)}.finance-account-check .finance-modal-title{align-items:center}.finance-account-check .finance-modal-title>div{gap:8px;display:flex}.finance-account-check .finance-check-note{color:#687d98}.finance-check-counts{flex-wrap:wrap;gap:10px;margin:16px 0;display:flex}.finance-check-filter{white-space:nowrap;align-items:center;gap:8px;margin-left:auto;display:inline-flex}.finance-check-filter select{min-width:140px}.finance-account-check .finance-check-counts output{background:#f7faff;border:1px solid #dbe6f2;border-radius:8px;gap:10px;padding:10px 14px;display:inline-flex}.finance-account-check .finance-check-counts strong{color:#1f5cb6}.finance-account-check small{color:#687d98;font-size:13px;display:block}.finance-check-table-wrap{border:1px solid #dbe6f2;border-radius:8px;overflow-x:auto}.finance-check-table-wrap table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:720px}.finance-check-table-wrap th{text-align:center;background:#edf3fb}.finance-check-status-column{width:18%}.finance-check-table-wrap th,.finance-check-table-wrap td{vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid #e5edf6;padding:12px 14px;font-size:14px;line-height:1.8}.finance-check-table-wrap tr:last-child td{border-bottom:0}.finance-check-table-wrap td>strong,.finance-check-table-wrap td span,.finance-check-entry>strong{display:block}.finance-check-table-wrap td span{color:#526781}.finance-check-entry+.finance-check-entry{border-top:1px dashed #dbe6f2;margin-top:10px;padding-top:10px}.finance-check-table-wrap .finance-check-status{text-align:center;vertical-align:middle}.finance-check-table-wrap .finance-check-status>strong{border-radius:5px;padding:2px 10px;display:inline-block}.finance-check-status>.finance-check-yes{color:#176344;background:#eaf8f1}.finance-check-status>.finance-check-no{color:#b4412b;background:#fff0ed}.finance-check-status small{margin-top:4px}.finance-check-table-wrap .finance-check-empty{color:#8190a4}.department-name-button{color:#172033;font:inherit;text-align:left;overflow-wrap:anywhere;background:0 0;border:0;border-radius:5px;padding:4px 0;font-size:20px;font-weight:650}.department-name-button:hover{color:var(--blue)}.department-name-button:focus-visible{outline-offset:4px;outline:2px solid #93b4ff}.department-name-button:disabled{opacity:.5;cursor:not-allowed}.department-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.department-actions button,.personnel-action-footer button{color:#2456a0;white-space:nowrap;background:#fff;border:1px solid #cbdaf0;border-radius:8px;min-height:36px;padding:7px 14px;font-size:14px}.department-actions .import-button,.personnel-action-footer .import-button{border-color:var(--blue);background:var(--blue);color:#fff}.department-actions button:disabled,.personnel-action-footer button:disabled{opacity:.45;cursor:not-allowed}#personnel-action-dialog{width:min(720px,100%)}#personnel-action-dialog.compensation-dialog--wide{width:min(960px,100%)}.personnel-action-body{padding:0}.personnel-action-body .person-add-form{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:0;padding-bottom:0}.personnel-group-action{grid-template-columns:1fr 1fr;gap:18px 16px;display:grid}.personnel-transfer-history{color:#59718f;grid-column:1/-1;font-size:13px;line-height:1.8}.personnel-group-action input,.personnel-group-action select{color:#334155;width:100%;min-width:0;height:40px;font:inherit;background:#fff;border:1px solid #d5dde8;border-radius:8px;padding:0 30px 0 10px;font-size:14px}.personnel-group-action input:disabled,.personnel-group-action select:disabled{background:#f5f7fb}.personnel-action-footer{grid-column:1/-1;justify-content:flex-end;gap:10px;padding-top:6px;display:flex}.personnel-removal-note{color:#64748b;grid-column:1/-1;margin:0;font-size:14px;line-height:1.6}.personnel-action-error{color:#b42318;background:#fff1f0;border-radius:8px;justify-content:space-between;gap:12px;margin-bottom:16px;padding:10px 12px;font-size:14px;display:flex}.personnel-action-error button{color:inherit;background:0 0;border:0;flex:none}.personnel-list .person-identity{padding-top:20px}@media (width<=700px){.personnel-action-body .person-add-form,.personnel-group-action{grid-template-columns:1fr}}.person-transfer-scheduled{color:#9a722c;margin-top:4px;font-size:12px;line-height:1.5;display:block}.personnel-information-card{grid-column:1/-1;min-width:0}.person-name-button{color:inherit;font:inherit;text-align:left;background:0 0;border:0;border-radius:4px;padding:4px 0}.person-name-button:hover:not(:disabled){color:var(--blue)}.person-name-button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.personnel-information-filters{flex-wrap:wrap;align-items:end;gap:9px;margin:0 0 16px;display:flex}.personnel-information-filters label{flex:0 240px;min-width:180px}.personnel-information-filters label:nth-child(2){flex-basis:200px}.personnel-information-filters>button:first-of-type{margin-left:auto}.personnel-information-filters>button:not(:disabled):hover{color:#2456a0;background:#edf4ff;border-color:#94b8f4}.personnel-information-filters>button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.personnel-information-filters input,.personnel-information-form input,.personnel-information-form select{width:100%;min-width:0;height:42px;font:inherit;background:#fff;border:1px solid #cbd9ee;border-radius:8px;padding:0 12px}.personnel-information-filters input{color:#334155;height:38px;font-size:13px}.personnel-information-filters input:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #2563eb1a}.personnel-information-table table{table-layout:fixed;width:100%;min-width:1000px}.personnel-information-table th,.personnel-information-table td{text-align:left;vertical-align:middle;padding-left:16px;padding-right:16px}.personnel-information-table th:first-child,.personnel-information-table th:nth-child(2){width:8%}.personnel-information-table th:nth-child(3){width:5%}.personnel-information-table th:nth-child(4),.personnel-information-table th:nth-child(6){width:12%}.personnel-information-table th:nth-child(5){width:18%}.personnel-information-table th:nth-child(7){width:21%}.personnel-information-table th:nth-child(8){width:16%}.personnel-information-table .person-value-open{width:100%;min-height:38px;color:inherit;font:inherit;text-align:left;overflow-wrap:anywhere;white-space:normal;background:0 0;border:0;border-radius:6px;padding:8px 0;line-height:20px;display:block}.personnel-information-table .person-value-open:hover:not(:disabled){color:#2456a0;background:#edf4ff}.personnel-information-table .person-value-open:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.personnel-information-table .person-value-open:disabled{cursor:not-allowed;opacity:.6}.personnel-information-bank-line{min-height:24px;line-height:24px;display:block}.personnel-information-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:24px;display:grid}.personnel-information-error{grid-column:1/-1}@media (width<=700px){.personnel-information-form{grid-template-columns:1fr}.personnel-information-filters label,.personnel-information-filters label:nth-child(2){flex:100%;min-width:0}}.finance-workspace{width:calc(100% - 40px);max-width:1900px}.finance-workspace .finance-page{width:100%;padding-top:0}.finance-category-tabs{max-width:100%;overflow-x:auto}.finance-area-tabs button{min-width:110px}.finance-editor-fields{grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px;margin:16px 0;display:grid}.finance-editor-fields label{color:#506c91;flex-direction:column;gap:6px;font-size:13px;display:flex}.finance-expense-editor{width:min(1200px,96vw)}.finance-allocation-table td,.finance-accounting-table td{text-align:center}.finance-allocation-table .date-fields{width:260px;max-width:100%;margin:0 auto}.finance-accounting-table td{font-variant-numeric:tabular-nums}.finance-accounting-table th{min-width:100px}.finance-page .finance-cell-link{color:#245bda;background:0 0;border:0;padding:0 4px}.finance-section-title{margin:18px 0 10px;font-size:15px;font-weight:600}@media (width<=760px){.finance-editor-fields{grid-template-columns:1fr}.finance-workspace{width:calc(100% - 20px)}}.finance-accounting-table .finance-allocation-detail{display:none}.finance-accounting-table td,.finance-accounting-table th{white-space:nowrap;min-width:95px}.finance-accounting-table td:last-child{min-width:135px}.finance-workspace>.finance-toolbar.finance-scope-toolbar{flex-wrap:wrap;overflow-x:visible}.finance-workspace .finance-toolbar label{flex-shrink:0}.finance-workspace .finance-summary-toolbar{flex-wrap:wrap;align-items:center;overflow-x:visible}.finance-expense-editor.finance-field-editor{width:min(520px,94vw)}.finance-field-editor.finance-field-editor-splits{width:min(850px,96vw)}.finance-field-editor .finance-editor-fields{grid-template-columns:minmax(0,1fr)}.finance-field-actions{justify-content:flex-end;align-items:center;gap:10px;margin-top:20px;display:flex}.finance-field-actions strong{margin-right:auto}.finance-workspace .finance-detail-filters .finance-membership-summary{justify-content:flex-end;min-width:0;margin:0 0 0 auto}.finance-membership-summary>span{white-space:nowrap}.finance-transfer-table td,.finance-transfer-table th{text-align:center;white-space:nowrap}.finance-transfer-table .date-fields{min-width:280px}.finance-transfer-totals{background:#f0f5ff;border:1px solid #dbe5f1;border-radius:8px;flex-wrap:wrap;align-items:center;gap:16px;margin-top:12px;padding:12px 14px;display:flex}.finance-entity-cost-scroll{max-height:62vh}.finance-entity-cost-table{width:max-content;min-width:100%}.finance-entity-cost-table th,.finance-entity-cost-table td{text-align:center;font-variant-numeric:tabular-nums;min-width:132px;height:40px;padding:8px 12px}.finance-entity-cost-table thead tr:first-child th{z-index:4;height:36px;padding:6px 12px;top:0}.finance-entity-cost-table th.finance-cost-category{z-index:2;text-align:center;background:#eef3fa;min-width:120px;position:sticky;top:auto;left:0}.finance-entity-cost-table thead tr:first-child th.finance-cost-category{z-index:5;top:0}.finance-entity-cost-table th.finance-cost-total{background:#bdeac8}.finance-entity-cost-table th.finance-cost-payer-0{background:#b9e5f5}.finance-entity-cost-table th.finance-cost-payer-1{background:#dad8fa}.finance-entity-cost-table th.finance-cost-payer-2{background:#ffe399}.finance-entity-cost-table th.finance-cost-unknown{background:#ffe2cf}.finance-entity-cost-table th.finance-cost-handover{background:#dce5ef}.finance-entity-cost-table td.finance-cost-total{background:#f0faf2;font-weight:700}.finance-entity-cost-table tr.finance-cost-total>*{border-top:2px solid #b8c9de;font-weight:700}.finance-statement-blocks{border:1px solid #dce5ed;border-radius:10px;gap:0;display:grid;overflow:hidden}.finance-statement-block{--statement-accent:#16816a;--statement-tint:#edf8f4;background:var(--statement-tint)}.finance-statement-expense{--statement-accent:#b66725;--statement-tint:#fff5e9}.finance-statement-profit{--statement-accent:#365bba;--statement-tint:#edf2fc}.finance-statement-block+.finance-statement-block{border-top:1px solid #d0dbe7}.finance-statement-block .finance-statement-scroll{border:0;border-radius:0;max-height:none;margin:0}.finance-statement-table{table-layout:fixed;width:100%;min-width:760px}.finance-statement-table th,.finance-statement-table td{box-sizing:border-box;text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums;height:34px;padding:7px 12px}.finance-statement-table tbody th{color:#294466;font-weight:500;position:static}.finance-statement-block .finance-statement-table tr>th,.finance-statement-block .finance-statement-table tr>td{background:var(--statement-tint)}.finance-statement-table .finance-statement-columns>th{color:#536579;font-size:13px;font-weight:500}.finance-statement-table .finance-statement-columns>.finance-statement-section-label{width:84px;color:var(--statement-accent);vertical-align:middle;border-bottom:0;font-size:15px;font-weight:700}.finance-statement-table tr.finance-statement-total>th,.finance-statement-table tr.finance-statement-total>td{border-top:1px solid #d0dbe7;font-weight:700}.finance-statement-table tr:last-child>*{border-bottom:0}.finance-statement-table tr>:last-child{border-right:0}.finance-statement-table .finance-cell-link{font-size:inherit;font-weight:inherit;min-height:0;padding:0;line-height:20px}.finance-statement-table .finance-note{font-size:12px;line-height:18px}.finance-statement-profit .finance-statement-table td{height:44px;font-size:16px}.finance-statement-table td.finance-statement-result{color:#28604e;font-size:18px}.finance-statement-table .finance-statement-result.is-negative{color:#b3443e}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
