/*! 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{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--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;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--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;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia: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{box-sizing:border-box;border:0 solid;margin:0;padding:0}::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;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]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance: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)}.end{inset-inline-end:var(--spacing)}.block{display:block}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.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))}}.ledger-charts>article{min-width:0}.ledger-cost-layout{grid-template-columns:minmax(150px,220px) minmax(0,1fr);align-items:center;gap:16px;margin-top:16px;display:grid}.ledger-cost-layout svg{width:100%;max-height:220px}.ledger-cost-layout svg [role=button]{cursor:pointer;stroke:#fff;stroke-width:2px}.ledger-cost-layout svg [role=button]:hover,.ledger-cost-layout svg .active{stroke:var(--ink);stroke-width:3px;outline:none}.ledger-cost-layout svg [role=button]:focus-visible{stroke:var(--ink);stroke-width:3px;outline:none}.ledger-cost-legend{gap:4px;max-height:230px;display:grid;overflow:auto}.ledger-cost-legend button{text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;font-size:12px;display:grid}.ledger-cost-legend button:hover,.ledger-cost-legend button.active{background:#eef3ff;border-color:#cdd9ec}.ledger-cost-legend button:focus-visible{outline-offset:-2px;outline:2px solid #315fda}.ledger-cost-legend i{border-radius:2px;width:10px;height:10px}.ledger-cost-legend small{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:3px;display:block}.ledger-chart-hint{min-height:36px;color:var(--muted);margin:12px 0 0;font-size:12px;line-height:1.5}.ledger-monthly-scroll{margin-top:14px;overflow-x:auto}.ledger-monthly-scroll svg{width:100%;min-width:600px;display:block}.ledger-monthly-chart text{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.ledger-monthly-chart line{stroke:var(--line);stroke-width:1px}.ledger-monthly-chart line.zero{stroke:#8b97a7}.ledger-column-target{fill:#0000;stroke:#0000;cursor:pointer}:is(.ledger-column-target:hover,.ledger-column-target:focus-visible){fill:#f0f4ff;stroke:#315fda;stroke-width:1px;outline:none}.ledger-column{fill:#8aa2d7}.active>.ledger-column{fill:#315fda}.ledger-monthly-chart .active>text{fill:#315fda;font-weight:700}@media (max-width:720px){.ledger-cost-layout{grid-template-columns:1fr}.ledger-cost-layout svg{justify-self:center;max-width:220px}.ledger-cost-legend{max-height:260px}}.presales-dynamic-sales{border-bottom:1px solid var(--line);color:var(--ink);padding:16px;font-size:13px}.presales-dynamic-sales>p{margin:0 0 8px;line-height:1.6}.presales-dynamic-sales>small{color:var(--muted);display:block}.presales-dynamic-sales>p[role=status]{color:#795916;background:#fff7e8;border:1px solid #ead8b5;border-radius:8px;margin-top:12px;padding:12px}.presales-basis{flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0;display:flex}.presales-basis select{border:1px solid var(--line);background:#fff;border-radius:8px;max-width:100%;padding:8px}.presales-ratio-grid{grid-template-columns:repeat(7,minmax(120px,1fr));gap:8px;display:grid}.presales-ratio-grid>label{border:1px solid var(--line);background:#fff;border-radius:8px;gap:8px;min-width:0;padding:12px;font-size:12px;display:grid}.presales-ratio-grid strong{font-variant-numeric:tabular-nums;font-size:14px}.presales-ratio-grid input{border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:4px;width:100%;min-width:0;padding:8px}.presales-ratio-grid input:disabled{background:var(--bg)}.performance-page .performance-table.presales-table{min-width:2120px}.performance-page .presales-tier-grid{grid-template-columns:repeat(3,minmax(210px,1fr))}@media (max-width:1200px){.presales-ratio-grid{grid-template-columns:repeat(4,minmax(120px,1fr))}}@media (max-width:800px){.presales-ratio-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}.performance-page .presales-tier-grid{grid-template-columns:1fr}}.records-layout{grid-template-columns:205px 1fr;min-height:calc(100vh - 102px);display:grid}.subnav p{margin:0 9px 12px;font-size:11px;font-weight:700}.subnav button{text-align:left;color:#748095;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:space-between;width:100%;padding:9px;font-size:10px;display:flex}.subnav button.selected{color:#315fe8;background:#eaf0ff;font-weight:700}.records-main{min-width:0;padding:24px 27px}.records-title{justify-content:space-between;align-items:flex-end;margin-bottom:18px;display:flex}.records-title p{color:#95a0b0;margin:0 0 8px;font-size:9px}.records-title h2{margin:0 0 5px;font-size:22px}.records-title span{color:#8c98a9;font-size:10px}.records-actions{gap:8px;display:flex}.records-actions button,.primary{cursor:pointer;background:#fff;border:1px solid #dce3ec;border-radius:8px;padding:9px 13px;font-size:10px}.primary{color:#fff!important;background:#3d68ea!important;border-color:#3d68ea!important}.lark-login{color:#287e6d!important;background:#f4fbf9!important;border-color:#cde9e2!important}.sync-banner{background:#f2f8ff;border:1px solid #dbe8fb;border-radius:11px;align-items:center;gap:10px;margin-bottom:13px;padding:10px 13px;display:flex}.sync-banner>span{color:#3967e9;background:#dfeaff;border-radius:7px;place-items:center;width:24px;height:24px;display:grid}.sync-banner b,.sync-banner small{font-size:9px;display:block}.sync-banner small{color:#7e8da2;margin-top:3px}.sync-banner em{color:#3e6bea;margin-left:auto;font-size:8px;font-style:normal}.toolbar{border:1px solid var(--line);background:#fff;border-radius:12px 12px 0 0;align-items:center;gap:8px;padding:11px;display:flex}.toolbar label{color:#9ba5b3;border:1px solid #e2e7ee;border-radius:7px;align-items:center;gap:6px;min-width:220px;padding:0 9px;display:flex}.toolbar input{border:0;outline:0;width:100%;padding:8px 0;font-size:9px}.toolbar select,.toolbar button{color:#667286;background:#fff;border:1px solid #e2e7ee;border-radius:7px;padding:8px 9px;font-size:9px}.batchbar{background:#eef3ff;border:1px solid #dce6fd;align-items:center;gap:8px;padding:8px 12px;font-size:9px;display:flex}.batchbar button{background:#fff;border:1px solid #cdd9f3;border-radius:6px;padding:5px 8px;font-size:8px}.batchbar .danger{color:#dd545b}.table-card{border:1px solid var(--line);background:#fff;border-top:0;border-radius:0 0 12px 12px;overflow:hidden}.table-card table{border-collapse:collapse;width:100%;font-size:9px}.table-card th{text-align:left;color:#8995a7;border-bottom:1px solid var(--line);background:#fafbfd;padding:10px 9px;font-weight:600}.table-card td{color:#667286;border-bottom:1px solid #eff2f6;padding:12px 9px}.table-card tr:hover td{background:#fafcff}.name-cell{color:#263247;align-items:center;gap:7px;display:flex}.name-cell>span{color:#3765e8;background:#e8efff;border-radius:8px;place-items:center;width:26px;height:26px;font-weight:700;display:grid}.status{color:#37a278;background:#ecf9f4;border-radius:5px;padding:4px 6px;font-style:normal}.status.risk{color:#e2535b;background:#fff0f0}.due{font-weight:700;color:#e34f57!important}.row-action{color:#3e68e9;cursor:pointer;background:0 0;border:0;font-size:9px}.empty{text-align:center;color:#9ca6b4;padding:45px}.pagination{color:#8390a2;justify-content:flex-end;align-items:center;gap:10px;padding:10px 12px;font-size:9px;display:flex}.pagination>span{margin-right:auto}.pagination select{border:1px solid #e0e5ec;border-radius:5px;padding:4px;font-size:9px}.pagination button{background:#fff;border:1px solid #e0e5ec;border-radius:5px;width:25px;height:25px}.modal-backdrop{z-index:20;background:#15213b66;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:16px;width:min(580px,100%);overflow:hidden;box-shadow:0 28px 80px #15213b3d}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;padding:19px 21px;display:flex}.modal-head p{color:#8f9bad;margin:0 0 4px;font-size:9px}.modal-head h3{margin:0;font-size:17px}.modal-head button{background:#f3f5f8;border:0;border-radius:8px;width:28px;height:28px}.form-grid{grid-template-columns:1fr 1fr;gap:14px;padding:21px;display:grid}.form-grid label{color:#667286;font-size:9px;font-weight:600}.form-grid input,.form-grid select{color:#27344a;border:1px solid #dfe5ed;border-radius:8px;outline:0;width:100%;margin-top:7px;padding:10px;font-size:10px;display:block}.form-grid input:focus,.form-grid select:focus{border-color:#5c7fec;box-shadow:0 0 0 3px #5c7fec17}.autosave{color:#758296;margin:0 21px 14px;font-size:9px}.modal-foot{border-top:1px solid var(--line);background:#fafbfd;justify-content:flex-end;gap:8px;padding:14px 21px;display:flex}.modal-foot button{background:#fff;border:1px solid #dde3eb;border-radius:8px;padding:8px 14px;font-size:10px}@media (max-width:900px){.records-layout{grid-template-columns:1fr}.subnav{border-right:0;border-bottom:1px solid var(--line);padding:8px;display:flex;overflow:auto}.subnav p{display:none}.subnav button{white-space:nowrap}.toolbar{flex-wrap:wrap}.toolbar label{flex:1}.records-title{align-items:flex-start}.records-actions{flex-direction:column}.table-card{overflow:auto}.table-card table{min-width:780px}}@media (max-width:620px){.records-main{padding:14px}.records-title{display:block}.records-actions{flex-direction:row;margin-top:12px}.form-grid{grid-template-columns:1fr}.toolbar label{min-width:100%}}@media print{.sidebar,.topbar,.subnav,.records-actions,.sync-banner,.toolbar,.batchbar,.pagination{display:none!important}.app-shell,.records-layout{display:block}.records-main{padding:0}.table-card{border:0}.table-card table{font-size:10pt}}:root{--ink:#182235;--muted:#7b879b;--line:#e8edf4;--blue:#3767ef;--bg:#f4f7fb}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif}button,input{font:inherit}.app-shell{grid-template-columns:244px 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;height:100vh;padding:22px 14px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:11px;padding:3px 10px 28px;display:flex}.brand-mark{color:#fff;background:linear-gradient(145deg,#305ce6,#6b8cff);border-radius:12px;place-items:center;width:39px;height:39px;font-size:21px;font-weight:800;display:grid;box-shadow:0 7px 15px #315ee633}.brand strong{letter-spacing:.02em;font-size:17px;display:block}.brand small{color:#9aa4b4;letter-spacing:.07em;margin-top:3px;font-size:9px;display:block}.nav-kicker{color:#a6afbd;letter-spacing:.12em;margin:0 12px 8px;font-size:10px}.nav-item{color:#667186;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;grid-template-columns:24px 1fr 10px;align-items:center;gap:9px;width:100%;margin:2px 0;padding:11px 12px;font-size:13px;display:grid}.nav-item span{font-size:16px}.nav-item b{color:#bdc5d1;font-weight:400}.nav-item:hover,.nav-item.active{color:#315ee9;background:#edf2ff;font-weight:600}.nav-item.active:before{content:"";background:#416bf0;border-radius:0 4px 4px 0;width:3px;height:24px;position:absolute;left:0}.sidebar-foot{color:#4d5d74;background:#f6f9ff;border:1px solid #e4ebfb;border-radius:12px;margin-top:auto;padding:12px 13px;font-size:11px}.sidebar-foot small{color:#9aa5b5;margin:4px 0 0 14px;display:block}.pulse{background:#31c68b;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block;box-shadow:0 0 0 4px #31c68b19}.main-panel{min-width:0}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:102px;padding:18px 31px;display:flex}.eyebrow{color:#8e99aa!important;margin-bottom:5px!important;font-size:10px!important}.topbar h1{letter-spacing:-.02em;margin:0 0 4px;font-size:21px}.topbar p{color:#8a95a6;margin:0;font-size:11px}.top-actions{align-items:center;gap:12px;display:flex}.search{color:#9aa4b2;background:#f8fafc;border:1px solid #e6eaf0;border-radius:10px;align-items:center;gap:8px;width:250px;height:38px;padding:0 11px;font-size:11px;display:flex}.search span{text-align:left;flex:1}.search kbd{background:#fff;border:1px solid #e3e7ed;border-radius:5px;padding:2px 5px;font-size:9px}.icon-button{background:#fff;border:1px solid #e6eaf0;border-radius:10px;width:38px;height:38px;position:relative}.icon-button i{color:#fff;background:#f04f56;border:2px solid #fff;border-radius:10px;min-width:16px;padding:1px;font-size:8px;font-style:normal;position:absolute;top:-5px;right:-4px}.profile{border-left:1px solid var(--line);align-items:center;gap:8px;padding-left:12px;display:flex}.profile>span{color:#7c5440;background:#e9d5c5;border-radius:11px;place-items:center;width:36px;height:36px;font-weight:700;display:grid}.profile b,.profile small{font-size:11px;display:block}.profile em{color:#9ca6b4;font-style:normal}.content{max-width:1500px;margin:auto;padding:18px 30px 32px}.hero-row{color:#4d5b70;justify-content:space-between;align-items:center;margin-bottom:13px;font-size:11px;display:flex}.hero-row p{color:#8a95a5;margin:0}.hero-row button{color:#3f6cf1;background:0 0;border:0;font-size:10px}.live-dot{background:#31c58d;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block}.metric-grid{grid-template-columns:repeat(5,1fr);gap:13px;display:grid}.metric-card{border:1px solid var(--line);background:#fff;border-radius:14px;min-height:126px;padding:15px 16px 14px;position:relative;overflow:hidden}.metric-card:after{content:"";opacity:.035;background:currentColor;border-radius:50%;width:80px;height:80px;position:absolute;bottom:-32px;right:-25px}.metric-top{justify-content:space-between;align-items:center;display:flex}.metric-top>span{color:#3767ef;background:#edf2ff;border-radius:9px;place-items:center;width:29px;height:29px;font-size:12px;font-weight:700;display:grid}.metric-card strong{letter-spacing:-.03em;font-size:25px}.metric-card em{color:#36a677;margin-left:8px;font-size:9px;font-style:normal}.metric-card.amber .metric-top>span{color:#d89a22;background:#fff6e5}.metric-card.rose .metric-top>span{color:#e45761;background:#fff0f1}.metric-card.violet .metric-top>span{color:#775ce2;background:#f3efff}.dashboard-grid{grid-template-columns:1.4fr 1fr;gap:13px;margin-top:13px;display:grid}.card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:17px 18px}.card-head{justify-content:space-between;align-items:flex-start;display:flex}.card h2{margin:0 0 4px;font-size:14px}.card-head p{color:#9ba5b4;margin:0;font-size:9px}.card-head button,.view-all{color:#6f7c8e;background:#fff;border:1px solid #e7ebf0;border-radius:7px;padding:6px 9px;font-size:9px}.legend{color:#788396;justify-content:flex-end;gap:18px;margin-top:2px;font-size:9px;display:flex}.legend span:before{content:"";border-radius:2px;width:7px;height:7px;margin-right:5px;display:inline-block}.chart{background:repeating-linear-gradient(0deg,#0000 0 39px,#eef1f5 40px);border-bottom:1px solid #e8edf3;justify-content:space-around;align-items:flex-end;height:154px;padding:0 14px;display:flex}.bars{flex-direction:column;justify-content:flex-end;align-items:center;width:12%;height:120px;display:flex}.bars>div{align-items:flex-end;gap:4px;height:100%;display:flex}.red-count{color:#e14f59;background:#fff0f1;border-radius:9px;padding:3px 7px;font-size:9px}.alert-list>button{text-align:left;background:#fff;border:0;border-bottom:1px solid #f0f2f6;grid-template-columns:31px 1fr auto 8px;align-items:center;gap:8px;width:100%;padding:9px 0;display:grid}.alert-icon{color:#e1515a;background:#fff0f1;border-radius:8px;place-items:center;width:29px;height:29px;display:grid}.alert-list b,.alert-list small{font-size:10px;display:block}.alert-list em{color:#e25b61;background:#fff3f3;border-radius:5px;padding:3px 5px;font-size:8px;font-style:normal}.alert-list i{color:#b4bdca;font-style:normal}.view-all{color:#426beb;background:#f8faff;border-color:#e3e9fb;width:100%;margin-top:9px}.add{color:#fff!important;background:#3f69ed!important;border-color:#3f69ed!important}.todo{cursor:pointer;border-bottom:1px solid #f0f2f6;grid-template-columns:0 18px 1fr auto;align-items:center;gap:7px;padding:11px 0;display:grid}.todo input{opacity:0;width:0}.todo>span{border:1px solid #ccd4df;border-radius:5px;width:15px;height:15px}.todo b,.todo small{font-size:10px;display:block}.todo em{color:#778397;background:#f1f4f8;border-radius:5px;padding:3px 6px;font-size:8px;font-style:normal}.todo em.urgent{color:#e75c62;background:#fff1f1}.todo input:checked+span{background:#3d6bea;border-color:#3d6bea}.todo input:checked+span:after{content:"✓";color:#fff;text-align:center;font-size:10px;display:block}.recruit-body{justify-content:space-around;align-items:center;padding-top:18px;display:flex}.donut{background:radial-gradient(circle,#fff 56%,transparent 57%),conic-gradient(#436fee 0 68%,#edf1f7 68%);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:112px;height:112px;display:flex}.donut span{color:#8d98a8;margin-top:3px;font-size:8px}.recruit-stats{width:45%}.recruit-stats p{color:#7f8a9c;grid-template-columns:7px 1fr auto;align-items:center;gap:7px;margin:9px 0;font-size:9px;display:grid}.recruit-stats i{border-radius:50%;width:6px;height:6px}.recruit-stats .blue{background:#416bea}.recruit-stats .green{background:#35bc86}.recruit-stats .orange{background:#f1aa44}.recruit-stats .gray{background:#c6cfda}@media (max-width:1050px){.metric-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1fr}.top-actions .search{display:none}}@media (max-width:720px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;padding:12px;position:static}.sidebar nav,.sidebar-foot{display:none}.brand{padding:0}.topbar{align-items:flex-start;height:auto;padding:16px}.profile div,.profile em,.topbar>div>p{display:none}.content{padding:14px}.metric-grid{grid-template-columns:repeat(2,1fr)}.metric-card:last-child{grid-column:span 2}.dashboard-grid{grid-template-columns:1fr}.flow-card{overflow:auto}}.profile>button,.users-button{color:#657188;cursor:pointer;background:#fff;border:1px solid #dfe5ed;border-radius:7px;padding:6px 8px;font-size:9px}.users-button{color:#365fd5;background:#f4f7ff;border-color:#dce5ff}.auth-loading{color:#738096;place-content:center;justify-items:center;gap:12px;min-height:100vh;display:grid}.auth-loading p{font-size:12px}.auth-page{background:#fff;grid-template-columns:minmax(360px,1.05fr) minmax(420px,.95fr);min-height:100vh;display:grid}.auth-brand{color:#fff;background:linear-gradient(145deg,#152d73,#2f5ee8);align-items:center;padding:70px;display:flex;position:relative;overflow:hidden}.auth-brand:after{content:"";border:1px solid #fff2;border-radius:50%;width:540px;height:540px;position:absolute;bottom:-230px;right:-180px;box-shadow:0 0 0 80px #ffffff08,0 0 0 160px #ffffff05}.auth-brand-inner{z-index:1;max-width:520px;position:relative}.auth-brand .brand-mark{color:#315fe1;box-shadow:none;background:#fff}.auth-brand p{letter-spacing:.08em;margin:17px 0 58px;font-size:16px;font-weight:700}.auth-brand h1{letter-spacing:-.04em;margin:0 0 36px;font-size:42px;line-height:1.25}.auth-brand ul{color:#dce6ff;gap:13px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.auth-brand li:before{content:"✓";color:#fff;background:#ffffff1c;border-radius:7px;place-items:center;width:21px;height:21px;margin-right:10px;display:inline-grid}.auth-panel{place-items:center;padding:40px;display:grid}.auth-title>p{color:#3c67e8;letter-spacing:.16em;font-size:10px;font-weight:800}.auth-title h2{margin:10px 0 7px;font-size:29px}.auth-tabs{background:#f4f6f9;border-radius:10px;grid-template-columns:1fr 1fr;margin:27px 0 20px;padding:4px;display:grid}.auth-tabs button{color:#8490a2;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:10px;font-size:11px}.auth-tabs button.active{color:#2f5fe0;background:#fff;font-weight:700;box-shadow:0 2px 8px #1a306414}.auth-card form{gap:14px;display:grid}.auth-card form label{color:#5f6c80;font-size:10px;font-weight:700}.auth-card input{color:#23304a;border:1px solid #dce3ec;border-radius:9px;outline:0;width:100%;margin-top:7px;padding:12px 13px;font-size:12px;display:block}.auth-submit{color:#fff;cursor:pointer;background:#3767e8;border:0;border-radius:9px;margin-top:5px;padding:12px;font-size:12px;font-weight:700}.auth-submit:disabled{opacity:.6}.auth-error{color:#d64e58;background:#fff1f1;border:1px solid #ffdcdc;border-radius:8px;margin:0;padding:9px 11px;font-size:10px}.auth-divider{color:#a4adba;align-items:center;gap:12px;margin:20px 0;font-size:9px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:#e8ecf2;flex:1;height:1px}.lark-sso{color:#334158;border:1px solid #dce3eb;border-radius:9px;justify-content:center;align-items:center;gap:9px;padding:11px;font-size:11px;font-weight:700;text-decoration:none;display:flex}.lark-sso b{color:#fff;background:#3370ff;border-radius:7px;place-items:center;width:24px;height:24px;display:grid}.auth-security{text-align:center;color:#a0a9b7;margin:17px 20px;font-size:9px;line-height:1.6}.user-modal{background:#fff;border-radius:16px;width:min(980px,100%);max-height:88vh;overflow:auto;box-shadow:0 28px 80px #15213b3d}.role-guide{border-bottom:1px solid var(--line);background:#f7f9fc;grid-template-columns:repeat(4,1fr);gap:9px;padding:16px 20px;display:grid}.role-guide article{background:#fff;border:1px solid #e6eaf1;border-radius:9px;padding:10px}.role-guide b,.role-guide span{font-size:10px;display:block}.role-guide span{color:#8a96a7;margin-top:4px;font-size:8px;line-height:1.5}.admin-message{color:#3e68e9;margin:10px 20px 0;font-size:9px}.user-table{padding:14px 20px;overflow:auto}.user-table table{border-collapse:collapse;width:100%;font-size:9px}.user-table th{text-align:left;color:#8b97a8;border-bottom:1px solid #e9edf3;padding:9px}.user-table td{color:#667286;border-bottom:1px solid #eef1f5;padding:12px 9px}.user-table td b,.user-table td small{color:#27334a;display:block}.user-table td small{color:#8d98a8;margin-top:4px}.user-table select{background:#fff;border:1px solid #dfe5ed;border-radius:7px;padding:7px;font-size:9px}.form-grid input:disabled,.form-grid select:disabled{color:#7b8799;background:#f5f7fa}.lark-login{display:none}@media (max-width:800px){.auth-page{grid-template-columns:1fr}.auth-brand{display:none}.auth-panel{min-height:100vh;padding:24px}.role-guide{grid-template-columns:1fr 1fr}.user-modal{max-height:94vh}.top-actions{gap:6px}.users-button{display:none}.profile{border-left:0}}.password-modal{background:#fff;border-radius:16px;width:min(430px,100%);overflow:hidden}.password-modal form{gap:14px;padding:20px;display:grid}.password-modal label{color:#667286;font-size:10px;font-weight:700}.password-modal input{border:1px solid #dfe5ed;border-radius:8px;outline:0;width:100%;margin-top:7px;padding:10px;display:block}.password-modal form>p{color:#3c66d8;background:#f2f7ff;border-radius:7px;margin:0;padding:9px;font-size:9px}.password-modal form>button{justify-self:end;padding:9px 16px}:root{--shadow:0 8px 28px #1e30501a;font-size:16px}body{font-family:SF Pro Text,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.55}button,select,input{font-size:14px}.sidebar{padding:20px 14px;overflow:hidden}.sidebar nav{scrollbar-width:thin;min-height:0;padding-right:4px;overflow-y:auto}.brand{padding:4px 10px 22px}.brand strong{font-size:19px}.brand small{font-size:11px}.nav-kicker{margin-bottom:10px;font-size:12px}.nav-group{margin-bottom:3px}.nav-item{grid-template-columns:26px 1fr 18px;min-height:46px;margin:0;padding:10px 12px;font-size:15px}.nav-item>span:first-child{font-size:18px}.nav-item>span:nth-child(2){font-size:15px}.nav-item b{text-align:center;font-size:15px}.nav-children{border-left:1px solid #dfe6f3;gap:2px;margin:3px 0 8px;padding:2px 0 3px 40px;display:grid}.nav-children button{color:#738096;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;min-height:36px;padding:7px 10px;font-size:13px;line-height:1.35}.nav-children button:hover,.nav-children button.active{color:#315ee9;background:#edf2ff;font-weight:650}.sidebar-foot{font-size:13px}.sidebar-foot small{font-size:12px}.topbar{gap:24px;height:126px;padding:20px 32px}.eyebrow{margin-bottom:6px!important;font-size:13px!important}.topbar h1{margin-bottom:5px;font-size:26px}.topbar p{font-size:14px}.top-actions{gap:10px}.search{width:300px;height:44px;font-size:14px}.search kbd{font-size:12px}.icon-button{cursor:pointer;width:44px;height:44px;font-size:18px}.icon-button i{min-width:20px;font-size:11px}.profile>span{width:42px;height:42px;font-size:17px}.profile b{font-size:14px}.profile small{font-size:12px}.profile>button,.users-button{min-height:38px;padding:8px 11px;font-size:13px}.search-wrap,.notice-wrap{position:relative}.search-popover,.notice-popover{z-index:40;width:min(520px,100vw - 32px);box-shadow:var(--shadow);background:#fff;border:1px solid #dfe5ed;border-radius:12px;position:absolute;top:52px;right:0;overflow:hidden}.search-popover>label{border-bottom:1px solid var(--line);color:#8490a2;align-items:center;gap:10px;padding:12px 14px;font-size:18px;display:flex}.search-popover input{width:100%;height:38px;color:var(--ink);border:0;outline:0;font-size:15px}.search-results{max-height:390px;padding:6px;overflow:auto}.search-results>p{text-align:center;color:var(--muted);padding:26px 16px;font-size:14px}.archive-linked-note,.archive-linked-foot{color:#68758a;margin:0 0 16px;font-size:12px;line-height:1.6}.archive-linked-foot{border-top:1px solid #e7ebf0;margin:16px 0 0;padding-top:12px}.archive-linked-card>header button{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.archive-linked-sections{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;display:grid}.archive-linked-sections>section{min-width:0}.archive-linked-sections h4{color:#344158;margin:0;font-size:14px;font-weight:650}.archive-linked-sections>section>p{color:#7d899b;margin:4px 0 12px;font-size:12px;line-height:1.6}.archive-linked-scroll{border:1px solid #e2e7ee;border-radius:8px;overflow-x:auto}.archive-linked-scroll:focus-visible{outline-offset:3px;outline:2px solid #315fd4}.archive-linked-scroll table{border-collapse:collapse;width:100%;min-width:560px;font-size:12px}.archive-linked-scroll th,.archive-linked-scroll td{text-align:left;white-space:nowrap;color:#344158;font-variant-numeric:tabular-nums;border-bottom:1px solid #e7ebf0;padding:12px}.archive-linked-scroll thead th{color:#68758a;background:#f5f7fa;font-size:11px;font-weight:650}.archive-linked-scroll tbody th{font-weight:500}.archive-linked-scroll tbody tr:last-child>*{border-bottom:0}.archive-linked-scroll tbody tr:hover{background:#f8fafc}.archive-linked-scroll .numeric{text-align:right}.archive-linked-scroll td small{color:#7d899b;margin-top:4px;font-size:11px;display:block}.archive-linked-scroll td button{color:#315fd4;cursor:pointer;background:0 0;border:0;padding:4px 0;font-size:12px}.archive-linked-scroll .archive-linked-missing{color:#7d899b}.archive-linked-scroll .archive-linked-warning{color:#b45309}.archive-linked-card .archive-empty{text-align:center;gap:8px;min-height:160px;padding:24px 12px;line-height:1.6}.archive-linked-card .archive-empty small{color:#68758a;max-width:320px;margin:0}@media (max-width:1536px){.archive-linked-sections{grid-template-columns:minmax(0,1fr)}}@media (max-width:720px){.archive-linked-card>header{flex-wrap:wrap}.archive-linked-scroll table{min-width:560px}.archive-linked-scroll th,.archive-linked-scroll td{padding:12px 8px}}.search-results>button{text-align:left;cursor:pointer;background:#fff;border:0;border-radius:8px;grid-template-columns:46px 1fr auto;align-items:center;gap:11px;width:100%;padding:11px;display:grid}.search-results>button:hover{background:#f4f7fc}.search-results>button>span{color:#4770e5;text-align:center;border:1px solid #dbe4f5;border-radius:5px;padding:4px 6px;font-size:12px}.search-results b,.search-results small{display:block}.search-results b{font-size:14px}.search-results small{color:#8793a4;margin-top:2px;font-size:12px}.search-results em{color:#466ee4;font-size:12px;font-style:normal}.search-popover footer{border-top:1px solid var(--line);color:#919bab;background:#fafbfd;padding:9px 14px;font-size:12px}.notice-popover{width:390px}.notice-popover>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.notice-popover header b,.notice-popover header small{display:block}.notice-popover header b{font-size:16px}.notice-popover header small{color:#8b96a7;margin-top:2px;font-size:12px}.notice-popover header button{color:#3e68e9;cursor:pointer;background:0 0;border:0}.notice-popover>button{text-align:left;cursor:pointer;background:#fff;border:0;border-bottom:1px solid #edf1f5;grid-template-columns:38px 1fr auto;align-items:center;gap:11px;width:100%;padding:14px 16px;display:grid}.notice-popover>button:hover{background:#fafcff}.notice-popover>button.read{opacity:.58}.notice-popover>button b,.notice-popover>button small{display:block}.notice-popover>button b{font-size:14px}.notice-popover>button small{color:#8b96a7;margin-top:3px;font-size:12px}.notice-popover>button em{color:#df545b;background:#fff1f1;border-radius:5px;padding:3px 6px;font-size:11px;font-style:normal}.hero-row{margin-bottom:16px;font-size:14px}.hero-row button{font-size:13px}.metric-grid{gap:16px}.metric-card{border-radius:12px;min-height:152px;padding:18px 20px}.metric-top>span{width:36px;height:36px;font-size:15px}.metric-top small{font-size:12px}.metric-card p{margin:14px 0 4px;font-size:14px}.metric-card strong{font-variant-numeric:tabular-nums;font-size:30px}.metric-card em{font-size:12px}.metric-card{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;transition:border-color .16s,box-shadow .16s,transform .16s;display:block}.metric-card:hover{border-color:#cfd9f5;transform:translateY(-1px);box-shadow:0 8px 24px #315ee612}.metric-card:focus-visible{outline-offset:2px;outline:3px solid #3767ef2e}.quick-todo-wide{grid-column:1/-1}.quick-todo-error{color:#d64e58;background:#fff1f1;border:1px solid #ffdcdc;border-radius:8px;margin:-4px 21px 14px;padding:9px 11px;font-size:11px}.quick-todo-modal button:disabled{cursor:not-allowed;opacity:.6}.dashboard-grid{gap:16px;margin-top:16px}.card{border-radius:12px;padding:20px}.card h2{font-size:18px}.card-head p{font-size:13px}.card-head button,.view-all{min-height:34px;padding:7px 10px;font-size:12px}.legend{font-size:12px}.chart{height:190px}.bars i{width:13px}.bars small{font-size:11px}.alert-list b,.todo b{font-size:14px}.alert-list small,.todo small{font-size:12px}.alert-list em,.todo em{font-size:11px}.alert-list>button{cursor:pointer;grid-template-columns:38px 1fr auto 10px;padding:12px 0}.alert-icon{width:36px;height:36px}.todo{grid-template-columns:0 22px 1fr auto;padding:14px 0}.todo>span{width:19px;height:19px}.recruit-stats p{font-size:13px}.recruit-stats b{font-size:15px}.donut strong{font-size:27px}.donut span{font-size:11px}.todo.overview-todo{cursor:default;grid-template-columns:1fr auto}.metric-card:disabled,.alert-list>button:disabled,.notice-popover>button:disabled{opacity:1;cursor:default;color:inherit}.records-layout{min-height:calc(100vh - 126px);display:block}.records-main{max-width:1600px;margin:0 auto;padding:28px 32px 44px}.records-title{margin-bottom:4px}.records-title p{margin-bottom:8px;font-size:12px}.records-title h2{margin-bottom:4px;font-size:28px}.records-title span{font-size:13px}.records-actions button,.primary{min-height:42px;padding:9px 16px;font-size:14px}.module-description{color:#64748b;margin:0 0 18px;font-size:15px}.module-metrics{grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px;margin-bottom:16px;display:grid}.module-metrics article{border:1px solid var(--line);background:#fff;border-radius:10px;padding:16px 18px}.module-metrics span,.module-metrics small{color:#718096;display:block}.module-metrics span{font-size:13px;font-weight:600}.module-metrics strong{font-variant-numeric:tabular-nums;margin:3px 0;font-size:26px;display:block}.module-metrics small{font-size:12px}.module-metrics article.risk strong{color:#d84d56}.sync-banner{margin-bottom:14px;padding:13px 15px}.sync-banner>span{width:32px;height:32px}.sync-banner em{font-size:12px}.toolbar{gap:10px;padding:12px}.toolbar label{min-width:280px;height:42px}.toolbar input{font-size:14px}.toolbar select,.toolbar button{cursor:pointer;min-height:42px;padding:9px 11px;font-size:13px}.batchbar{padding:10px 14px;font-size:13px}.batchbar button{padding:7px 10px;font-size:12px}.table-card{overflow-x:auto}.table-card table{min-width:980px;font-size:13px}.table-card th{color:#718096;white-space:nowrap;padding:12px;font-size:12px;position:sticky;top:0}.table-card td{padding:15px 12px;font-size:13px}.name-cell>span{width:34px;height:34px}.status{text-align:center;min-width:64px;padding:5px 8px;display:inline-block}.row-action{cursor:pointer;font-size:13px}.empty{color:#8994a5;place-content:center;justify-items:center;gap:8px;min-height:190px;padding:32px;display:grid}.empty b{color:#445066;font-size:15px}.empty span{font-size:13px}.empty .primary{margin-top:6px}.pagination{gap:12px;padding:12px 14px;font-size:13px}.pagination select{font-size:13px}.pagination button{width:32px;height:32px}.modal-head p{font-size:12px}.modal-head h3{font-size:20px}.form-grid label{font-size:13px}.form-grid input,.form-grid select{min-height:42px;font-size:14px}.autosave{font-size:12px}.modal-foot button{min-height:40px;font-size:13px}.auth-title>p{font-size:12px}.auth-title span,.auth-tabs button{font-size:14px}.auth-card form label{font-size:13px}.auth-card input{min-height:46px;font-size:15px}.auth-submit,.lark-sso{min-height:48px;font-size:15px}.auth-error,.auth-security,.auth-divider{font-size:12px}.role-guide b{font-size:14px}.role-guide span{font-size:12px}.admin-message,.user-table table,.user-table select,.password-modal label{font-size:13px}.password-modal input{font-size:14px}@media (max-width:1280px){.app-shell{grid-template-columns:260px 1fr}.topbar{flex-direction:column;align-items:flex-start;height:auto}.top-actions{width:100%}.search-wrap{flex:1}.search{width:100%}.records-layout{min-height:0}.metric-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.sidebar nav{max-height:360px}.topbar{padding:18px}.profile div,.users-button{display:none}.module-metrics{grid-template-columns:repeat(2,1fr)}.records-main,.content{padding:20px}.toolbar{flex-wrap:wrap}.toolbar label{min-width:100%}.notice-popover{right:-60px}.dashboard-grid{grid-template-columns:1fr}}@media (max-width:620px){.top-actions{flex-wrap:wrap}.search-wrap{flex-basis:100%}.profile{border-left:0;padding-left:0}.metric-grid,.module-metrics{grid-template-columns:1fr}.metric-card:last-child{grid-column:auto}.records-title{display:block}.records-actions{margin-top:14px}.notice-popover{right:-110px}.search-popover{left:0;right:auto}.role-guide{grid-template-columns:1fr}.auth-panel{padding:20px}}@media print{.nav-children,.search-popover,.notice-popover,.module-metrics{display:none!important}}.employee-main{max-width:none;padding:28px 32px 44px}.employee-page-head{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:18px;display:flex}.employee-page-head p{color:#5574ca;margin:0 0 7px;font-size:12px;font-weight:700}.employee-page-head h2{color:#1f2a3e;margin:0;font-size:28px}.employee-page-head span{color:#718096;margin-top:5px;font-size:13px;display:block}.employee-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:780px;display:flex}.employee-actions button,.employee-filters button{color:#526076;cursor:pointer;background:#fff;border:1px solid #dce3ec;border-radius:8px;min-height:40px;padding:8px 13px;font-size:13px}.employee-actions button:disabled,.employee-filters button:disabled{cursor:not-allowed;opacity:.45}.employee-actions .primary{color:#fff;background:#3767e8;border-color:#3767e8}.employee-summary{color:#68758a;background:#f8fafc;border:1px solid #e3e8ef;border-radius:9px 9px 0 0;align-items:center;gap:22px;padding:11px 14px;font-size:13px;display:flex}.employee-summary span+span{border-left:1px solid #dfe5ed;padding-left:22px}.employee-summary b{color:#25334c;font-size:16px}.employee-message{color:#24785a;background:#eef8f3;justify-content:space-between;padding:10px 14px;font-size:13px;display:flex}.employee-message button{color:inherit;cursor:pointer;background:0 0;border:0}.employee-filters{background:#fff;border:1px solid #e3e8ef;grid-template-columns:minmax(260px,1.4fr) repeat(5,minmax(120px,.7fr)) auto;gap:8px;padding:12px;display:grid}.employee-search{color:#8090a5;border:1px solid #dce3ec;border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:0 11px;display:flex}.employee-search input{border:0;outline:0;width:100%}.employee-filters select,.date-filter input{color:#516075;background:#fff;border:1px solid #dce3ec;border-radius:8px;min-height:40px;padding:7px 9px}.date-filter{color:#778398;grid-column:1/span 4;align-items:center;gap:8px;font-size:12px;display:flex}.date-filter input{width:150px}.date-filter i{font-style:normal}.employee-table{background:#fff;border:1px solid #e3e8ef;border-top:0;border-radius:0 0 10px 10px;position:relative;overflow:auto}.employee-table table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:13px}.employee-table th{z-index:3;color:#6c788b;text-align:left;white-space:nowrap;background:#f7f9fc;border-bottom:1px solid #dfe5ed;padding:11px 12px;position:sticky;top:0}.employee-table td{color:#4b586c;white-space:nowrap;border-bottom:1px solid #edf0f4;height:70px;padding:10px 12px}.employee-table tbody tr:hover td{background:#fafcff}.employee-table .sticky-check{z-index:4;background:#fff;width:42px;position:sticky;left:0}.employee-table th.sticky-check{background:#f7f9fc}.employee-table .sticky-name{z-index:2;background:#fff;min-width:118px;position:sticky;left:67px}.employee-table th:nth-child(3){z-index:4;background:#f7f9fc;position:sticky;left:67px}.employee-name{color:#315fda;cursor:pointer;background:0 0;border:0;font-size:14px;font-weight:700;display:block}.trace-links{gap:7px;margin-top:4px;display:flex}.trace-links button{color:#8a96a8;cursor:pointer;background:0 0;border:0;padding:0;font-size:11px}.trace-links button:hover{color:#315fda}.tenure,.money{font-variant-numeric:tabular-nums;font-weight:600}.sensitive{font-family:SF Mono,monospace;font-size:12px}.employee-status{color:#667286;text-align:center;background:#f1f3f6;border-radius:5px;min-width:54px;padding:4px 8px;font-style:normal;display:inline-block}.employee-status.active{color:#26785b;background:#edf8f3}.employee-table .sticky-actions{z-index:2;background:#fff;max-width:235px;position:sticky;right:0;box-shadow:-10px 0 16px #1f32520d}.sticky-actions>div{flex-wrap:wrap;gap:5px;max-width:220px;display:flex}.sticky-actions button{color:#3563db;cursor:pointer;background:0 0;border:0;padding:2px;font-size:12px}.sticky-actions .danger-link{color:#d34e57}.employee-empty{color:#8290a4;place-content:center;justify-items:center;gap:6px;min-height:200px;display:grid}.employee-empty b{color:#455268;font-size:15px}.employee-pagination{color:#6e7a8d;background:#fff;justify-content:flex-end;align-items:center;gap:10px;min-width:100%;padding:11px 14px;font-size:13px;display:flex;position:sticky;left:0}.employee-pagination select{border:1px solid #dce3ec;border-radius:6px;padding:5px}.employee-pagination button{background:#fff;border:1px solid #dce3ec;border-radius:6px;width:30px;height:30px}.employee-pagination button:disabled{opacity:.35}.employee-form-modal,.import-modal{background:#fff;border-radius:14px;width:min(1040px,100vw - 32px);max-height:92vh;overflow:auto}.employee-form-body,.import-body{padding:20px}.employee-form-body h4{color:#324057;margin:0 0 12px;font-size:15px}.employee-form-body h4:not(:first-child){border-top:1px solid #e7ebf0;margin-top:22px;padding-top:18px}.employee-form-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.employee-form-grid label,.adjust-body label{color:#68758a;font-size:13px;font-weight:650}.employee-form-grid input,.employee-form-grid select,.adjust-body input{color:#27344a;background:#fff;border:1px solid #dce3ec;border-radius:8px;width:100%;min-height:42px;margin-top:7px;padding:9px 10px;font-size:14px;display:block}.employee-form-grid input:disabled{color:#68758a;background:#f4f6f9}.form-errors{color:#c94750;background:#fff5f5;border:1px solid #f5d6d8;border-radius:8px;margin-top:16px;padding:10px 13px}.form-errors p{margin:3px 0;font-size:12px}.adjust-modal{background:#fff;border-radius:14px;width:min(560px,100vw - 32px)}.adjust-body{gap:14px;padding:20px;display:grid}.adjust-body p{color:#526fae;background:#f2f6ff;border-radius:7px;margin:0;padding:10px;font-size:12px}.detail-backdrop{z-index:80;background:#141e3061;position:fixed;inset:0}.employee-detail{background:#fff;width:min(650px,95vw);height:100%;position:absolute;top:0;right:0;overflow:auto;box-shadow:-18px 0 50px #18264033}.employee-detail>header{border-bottom:1px solid #e6eaf0;justify-content:space-between;padding:26px 28px;display:flex}.employee-detail header p{color:#6480c9;margin:0;font-size:12px}.employee-detail header h3{margin:6px 0 3px;font-size:27px}.employee-detail header span{color:#718096;font-size:13px}.employee-detail header button{cursor:pointer;background:0 0;border:0;align-self:flex-start;font-size:26px}.detail-section{border-bottom:1px solid #e6eaf0;padding:24px 28px}.detail-section h4{margin:0 0 16px;font-size:16px}.detail-section dl{border:1px solid #e3e8ef;border-radius:9px;grid-template-columns:1fr 1fr;gap:0;display:grid;overflow:hidden}.detail-section dl>div{border-bottom:1px solid #e8ecf1;border-right:1px solid #e8ecf1;padding:12px}.detail-section dt{color:#8792a3;font-size:11px}.detail-section dd{color:#344158;margin:4px 0 0;font-size:13px}.employee-timeline{gap:0;display:grid}.employee-timeline article{grid-template-columns:18px 1fr;gap:12px;padding-bottom:18px;display:grid}.employee-timeline i{background:#fff;border:2px solid #4a6fe0;border-radius:50%;width:10px;height:10px;margin-top:5px;position:relative}.employee-timeline i:after{content:"";background:#dce3ee;width:1px;height:55px;position:absolute;top:10px;left:3px}.employee-timeline article:last-child i:after{display:none}.employee-timeline b{font-size:13px}.employee-timeline p{color:#68758a;margin:4px 0;font-size:12px}.employee-timeline time{color:#9aa4b3;font-size:11px}.no-history{color:#8b96a8;font-size:13px}.employee-detail>footer{justify-content:flex-end;gap:8px;padding:18px 28px;display:flex}.employee-detail footer button{background:#fff;border:1px solid #dce3ec;border-radius:8px;min-height:40px;padding:8px 15px}.employee-detail footer .primary{color:#fff;background:#3767e8;border-color:#3767e8}.import-body{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.import-guide{background:#fafbfd;border:1px solid #e1e6ed;border-radius:10px;flex-direction:column;align-items:flex-start;min-height:160px;padding:16px;display:flex}.import-guide b{font-size:14px}.import-guide span{color:#7c889a;margin:6px 0 18px;font-size:12px}.import-guide button{color:#3e63c7;background:#fff;border:1px solid #dce3ec;border-radius:7px;margin-top:auto;padding:8px 11px}.validation-result{border-radius:8px;grid-column:1/-1;max-height:220px;padding:13px;font-size:12px;overflow:auto}.validation-result.success{color:#27775c;background:#eff9f4;border:1px solid #cce8db}.validation-result.error{color:#bf4650;background:#fff5f5;border:1px solid #f2d5d7}.validation-result p{margin:5px 0}.hr-card-modal{background:#fff;border-radius:14px;width:min(640px,100vw - 32px);overflow:hidden}.hr-card{background:#fafbfd;border:1px solid #dce3ec;border-radius:14px;margin:22px;padding:28px}.hr-card>header{border-bottom:1px solid #dce3ec;align-items:center;gap:16px;padding-bottom:22px;display:flex}.hr-avatar{color:#fff;background:#315fe0;border-radius:14px;place-items:center;width:66px;height:66px;font-size:25px;font-weight:700;display:grid}.hr-card small{color:#607bbd;font-weight:700}.hr-card h2{margin:5px 0 2px}.hr-card p{color:#718096;margin:0}.hr-card dl{grid-template-columns:1fr 1fr;gap:18px;margin:22px 0 0;display:grid}.hr-card dt{color:#8b96a7;font-size:11px}.hr-card dd{color:#334158;margin:4px 0 0;font-size:13px;font-weight:600}@media (max-width:1280px){.employee-page-head{display:block}.employee-actions{justify-content:flex-start;max-width:none;margin-top:14px}.employee-filters{grid-template-columns:repeat(3,1fr)}.date-filter{grid-column:1/-1}.employee-form-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:720px){.employee-main{padding:20px 14px}.employee-filters{grid-template-columns:1fr}.date-filter{grid-template-columns:1fr;display:grid}.date-filter input{width:100%}.employee-summary{flex-direction:column;align-items:flex-start;gap:6px}.employee-summary span+span{border-left:0;padding-left:0}.employee-form-grid,.import-body,.detail-section dl,.hr-card dl{grid-template-columns:1fr}.employee-form-modal,.import-modal{max-height:96vh}.employee-detail{width:100%}}@media print{body *{visibility:hidden}.hr-card-modal,.hr-card-modal *{visibility:visible}.hr-card-modal{border-radius:0;width:100%;position:fixed;inset:0}.modal-backdrop{background:#fff}.hr-card{width:620px;margin:0 auto}.no-print{display:none!important}}.profile-summary{color:#6c788b;background:#f8fafc;border:1px solid #e2e7ee;border-radius:10px 10px 0 0;align-items:center;gap:24px;padding:13px 15px;font-size:13px;display:flex}.profile-summary span+span{border-left:1px solid #dde3eb;padding-left:24px}.profile-summary b{color:#26344d;font-variant-numeric:tabular-nums;margin-left:6px;font-size:17px}.profile-summary .profile-risk-number{color:#d64e57}.profile-filters{background:#fff;border:1px solid #e2e7ee;border-top:0;grid-template-columns:minmax(320px,1fr) 220px 200px auto;gap:10px;padding:12px;display:grid}.profile-filters select,.profile-filters>button{color:#516075;background:#fff;border:1px solid #dce3ec;border-radius:8px;min-height:42px;padding:8px 11px;font-size:13px}.profile-filters>button{cursor:pointer}.profile-table{background:#fff;border:1px solid #e2e7ee;border-top:0;border-radius:0 0 10px 10px;overflow:auto}.profile-table table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:13px}.profile-table th{z-index:2;color:#6b778a;text-align:left;white-space:nowrap;background:#f7f9fc;border-bottom:1px solid #dfe5ed;padding:12px;position:sticky;top:0}.profile-table td{color:#4b586c;vertical-align:middle;white-space:nowrap;border-bottom:1px solid #edf0f4;height:76px;padding:11px 12px}.profile-table tbody tr:hover td{background:#fafcff}.profile-table td b,.profile-table td small{display:block}.profile-table td b{color:#334158;font-size:13px}.profile-table td small{color:#8390a2;text-overflow:ellipsis;max-width:220px;margin-top:5px;overflow:hidden}.profile-table .missing-cell{color:#c64750;background:#fff8f8}.profile-table .missing-cell b,.profile-table .missing-cell small{color:#c64750}.profile-table th:last-child,.profile-table td:last-child{z-index:1;background:#fff;min-width:220px;position:sticky;right:0;box-shadow:-10px 0 16px #1f32520d}.profile-table th:last-child{z-index:3;background:#f7f9fc}.completion-bar{background:#edf1f5;border-radius:8px;width:118px;height:8px;position:relative;overflow:hidden}.completion-bar i{background:#3d6be7;border-radius:8px;height:100%;display:block}.completion-bar span{color:#556277;font-size:12px;font-style:normal;position:absolute;top:-6px;left:125px}.complete-tag,.incomplete-tag{border-radius:5px;margin-top:9px;padding:3px 7px;font-size:11px;font-style:normal;display:inline-block}.complete-tag{color:#27785b;background:#edf8f3}.incomplete-tag{color:#cb4d56;background:#fff2f2}.missing-count{color:#cb4d56;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;font-size:12px;text-decoration:underline}.all-complete{color:#378468;font-size:12px}.profile-row-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.profile-row-actions button{color:#3563db;text-align:left;cursor:pointer;background:0 0;border:0;padding:2px;font-size:12px}.profile-row-actions button:disabled{color:#a3adba;cursor:not-allowed}.profile-editor{background:#fff;border-radius:14px;width:min(1120px,100vw - 32px);max-height:94vh;overflow:auto}.profile-save-state{z-index:5;color:#4967ad;background:#f4f7ff;border-bottom:1px solid #dfe9ff;align-items:center;gap:8px;padding:9px 22px;font-size:12px;display:flex;position:sticky;top:0}.profile-save-state i{background:#3f6fe8;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #3f6fe818}.profile-save-state.error{color:#c44851;background:#fff5f5;border-color:#f3d5d7}.profile-save-state.error i{background:#d64e57}.profile-form-body{padding:22px}.profile-form-body>section+section{border-top:1px solid #e6eaf0;margin-top:24px;padding-top:22px}.profile-form-body section>header{justify-content:space-between;align-items:center;margin-bottom:13px;display:flex}.profile-form-body h4{color:#2d3a51;margin:0;font-size:16px}.profile-form-body section>header span{color:#d04f58;font-size:12px}.profile-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;display:grid}.profile-form-grid label{color:#647186;font-size:13px;font-weight:650}.profile-form-grid label>em{color:#d84d56;margin-left:3px;font-style:normal}.profile-form-grid input,.profile-form-grid select,.profile-form-grid textarea{color:#27344a;background:#fff;border:1px solid #dce3ec;border-radius:8px;outline:0;width:100%;min-height:43px;margin-top:7px;padding:9px 11px;font-size:14px;display:block}.profile-form-grid textarea{resize:vertical;height:76px}.profile-form-grid input:focus,.profile-form-grid select:focus,.profile-form-grid textarea:focus{border-color:#5276e4;box-shadow:0 0 0 3px #5276e414}.profile-form-grid .field-missing{color:#be454e;background:#fff8f8;border:1px solid #f2d7d9;border-radius:9px;padding:9px}.profile-form-grid .field-missing input,.profile-form-grid .field-missing select,.profile-form-grid .field-missing textarea{background:#fff;border-color:#ebadb1}.profile-form-grid .field-missing small{color:#cf4d56;margin-top:5px;font-size:11px;font-weight:400;display:block}.profile-editor>.modal-foot{justify-content:space-between;align-items:center}.profile-editor>.modal-foot span{color:#7c8798;font-size:12px}.profile-editor>.modal-foot button{min-width:88px}.profile-log-drawer{background:#fff;width:min(720px,96vw);height:100%;position:absolute;top:0;right:0;overflow:auto;box-shadow:-18px 0 50px #18264033}.profile-log-drawer>header{border-bottom:1px solid #e6eaf0;justify-content:space-between;padding:26px 28px;display:flex}.profile-log-drawer header p{color:#5775c5;margin:0;font-size:12px}.profile-log-drawer header h3{margin:6px 0 4px;font-size:25px}.profile-log-drawer header span{color:#7c8798;font-size:13px}.profile-log-drawer header button{cursor:pointer;background:0 0;border:0;align-self:flex-start;font-size:26px}.profile-log-list{gap:10px;padding:20px 28px;display:grid}.profile-log-list article{background:#fff;border:1px solid #e3e8ef;border-radius:9px;padding:14px 16px}.profile-log-list article>div{justify-content:space-between;align-items:center;display:flex}.profile-log-list b{font-size:14px}.profile-log-list em{color:#4d6fc6;background:#f1f5ff;border-radius:5px;padding:3px 7px;font-size:11px;font-style:normal}.profile-log-list p{background:#f8fafc;border-radius:7px;grid-template-columns:1fr 24px 1fr;align-items:center;gap:8px;margin:12px 0;padding:10px;font-size:12px;display:grid}.profile-log-list p span{color:#9a5960;text-decoration:line-through}.profile-log-list p i{text-align:center;color:#9aa4b3;font-style:normal}.profile-log-list p strong{color:#2f6b55}.profile-log-list footer{color:#8b96a7;font-size:11px}.batch-profile-modal{background:#fff;border-radius:14px;width:min(760px,100vw - 32px);overflow:hidden}.batch-profile-body{padding:20px}.batch-profile-body>p{color:#637189;background:#f3f6fc;border-radius:8px;margin:0 0 18px;padding:11px 13px;font-size:12px;line-height:1.6}@media (max-width:1100px){.profile-filters{grid-template-columns:1fr 1fr}.profile-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){.profile-summary{flex-direction:column;align-items:flex-start;gap:7px}.profile-summary span+span{border-left:0;padding-left:0}.profile-filters,.profile-form-grid{grid-template-columns:1fr}.profile-editor>.modal-foot{flex-direction:column;align-items:flex-start}.profile-editor>.modal-foot button{align-self:flex-end}}.profile-form-grid .profile-field,.profile-form-grid .profile-field>label{color:#647186;font-size:13px;font-weight:650}.profile-form-grid .profile-field>label>em{color:#d84d56;margin-left:3px;font-style:normal}.profile-form-grid .profile-field>label>input{color:#27344a;background:#fff;border:1px solid #dce3ec;border-radius:8px;outline:0;width:100%;min-height:43px;margin-top:7px;padding:9px 11px;font-size:14px;display:block}.profile-form-grid .profile-field>label>input:focus{border-color:#5276e4;box-shadow:0 0 0 3px #5276e414}.profile-form-grid .profile-field.field-missing{background:#fff8f8;border:1px solid #f2d7d9;border-radius:9px;padding:9px}.profile-form-grid .profile-field.field-missing>label>input{border-color:#ebadb1}.profile-form-grid .profile-field .profile-field-warning{color:#cf4d56;margin-top:7px;font-size:11px;font-weight:400;line-height:1.5;display:block}.document-summary{color:#6c788b;background:#f8fafc;border:1px solid #e2e7ee;border-radius:10px 10px 0 0;align-items:center;gap:24px;padding:13px 15px;font-size:13px;display:flex}.document-summary span+span{border-left:1px solid #dde3eb;padding-left:24px}.document-summary b{color:#26344d;margin-left:5px;font-size:17px}.document-summary .risk-number{color:#cf4852}.document-filters{background:#fff;border:1px solid #e2e7ee;border-top:0;grid-template-columns:minmax(260px,1.3fr) 190px 190px 155px 170px auto;gap:8px;padding:12px;display:grid}.document-filters>label:not(.employee-search){color:#7a8698;border:1px solid #dce3ec;border-radius:8px;align-items:center;gap:7px;padding-left:9px;font-size:11px;display:flex}.document-filters input[type=date]{color:#4e5c71;border:0;outline:0;min-width:0}.document-filters select,.document-filters>button{color:#516075;background:#fff;border:1px solid #dce3ec;border-radius:8px;min-height:40px;padding:8px 10px;font-size:13px}.document-filters>button{cursor:pointer}.document-table{background:#fff;border:1px solid #e2e7ee;border-top:0;border-radius:0 0 10px 10px;overflow:auto}.document-table table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:13px}.document-table th{z-index:3;color:#6b778a;text-align:left;white-space:nowrap;background:#f7f9fc;border-bottom:1px solid #dfe5ed;padding:11px 12px;position:sticky;top:0}.document-table td{color:#4b586c;vertical-align:middle;white-space:nowrap;border-bottom:1px solid #edf0f4;min-height:72px;padding:11px 12px}.document-table tbody tr:hover td{background:#fafcff}.document-table td small{color:#8793a5;margin-top:5px;font-size:11px;display:block}.document-table th:last-child,.document-table td:last-child{z-index:2;background:#fff;width:240px;position:sticky;right:0;box-shadow:-10px 0 16px #1f32520d}.document-table th:last-child{z-index:4;background:#f7f9fc}.document-risk-row td{background:snow}.document-risk-row:hover td{background:#fff6f6!important}.document-status{color:#27785b;background:#edf8f3;border-radius:5px;padding:4px 8px;font-size:11px;font-style:normal;display:inline-block}.document-status.缺失,.document-status.过期{color:#cc4650;background:#fff0f1}.expiry-risk{font-weight:700;color:#cf4650!important}.bundle-link{color:#5674c7;cursor:pointer;background:0 0;border:0;margin-top:5px;padding:0;font-size:11px;display:block}.document-actions{flex-wrap:wrap;gap:5px 9px;max-width:225px;display:flex}.document-actions button,.document-actions a{color:#3563db;cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;text-decoration:none}.document-actions button:disabled{color:#a3adba;cursor:not-allowed}.document-actions .danger-link{color:#ca4d56}.document-upload-modal{background:#fff;border-radius:14px;width:min(880px,100vw - 32px);max-height:94vh;overflow:auto}.document-upload-grid{grid-template-columns:1fr 1fr;gap:15px;padding:22px;display:grid}.document-upload-grid>label{color:#647186;font-size:13px;font-weight:650}.document-upload-grid input,.document-upload-grid select{color:#27344a;background:#fff;border:1px solid #dce3ec;border-radius:8px;width:100%;min-height:43px;margin-top:7px;padding:9px 11px;font-size:14px;display:block}.document-file-drop{cursor:pointer;background:#f8faff;border:1px dashed #aebddb;border-radius:10px;grid-column:1/-1;place-content:center;justify-items:center;min-height:135px;display:grid}.document-file-drop input{opacity:0;width:1px;height:1px;position:absolute}.document-file-drop span{color:#8491a5;margin-bottom:10px;font-size:12px;font-weight:400}.document-file-drop b{color:#4564b6;font-size:14px}.document-detail{background:#fff;width:min(680px,96vw);height:100%;position:absolute;top:0;right:0;overflow:auto;box-shadow:-18px 0 50px #18264033}.document-detail>header{border-bottom:1px solid #e6eaf0;justify-content:space-between;padding:26px 28px;display:flex}.document-detail header p{color:#5775c5;margin:0;font-size:12px}.document-detail header h3{margin:6px 0 4px;font-size:25px}.document-detail header span{color:#7c8798;font-size:13px}.document-detail header button{cursor:pointer;background:0 0;border:0;align-self:flex-start;font-size:26px}.document-detail>section{border-bottom:1px solid #e6eaf0;padding:24px 28px}.document-detail h4{margin:0 0 15px}.document-detail dl{border:1px solid #e3e8ef;border-radius:9px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.document-detail dl div{border-bottom:1px solid #e8ecf1;border-right:1px solid #e8ecf1;padding:13px}.document-detail dt{color:#8792a3;font-size:11px}.document-detail dd{color:#344158;margin:5px 0 0;font-size:13px}.version-list{gap:9px;display:grid}.version-list article{border:1px solid #e2e7ee;border-radius:8px;padding:13px 110px 13px 14px;position:relative}.version-list article div{justify-content:space-between;gap:10px;display:flex}.version-list article b{font-size:13px}.version-list article span,.version-list article p{color:#8490a3;font-size:11px}.version-list article p{margin:5px 0 0}.version-list article a{color:#3563db;font-size:12px;text-decoration:none;position:absolute;top:19px;right:14px}@media (max-width:1280px){.document-filters{grid-template-columns:repeat(3,1fr)}}@media (max-width:720px){.document-summary{flex-direction:column;align-items:flex-start;gap:7px}.document-summary span+span{border-left:0;padding-left:0}.document-filters,.document-upload-grid{grid-template-columns:1fr}.document-file-drop{grid-column:auto}.document-detail dl{grid-template-columns:1fr}}.rank-page{background:#f5f7fa}.rank-summary{color:#6c788b;background:#f8fafc;border:1px solid #e2e7ee;border-radius:10px 10px 0 0;gap:24px;padding:13px 15px;font-size:13px;display:flex}.rank-summary span+span{border-left:1px solid #dde3eb;padding-left:24px}.rank-summary b{color:#26344d;font-variant-numeric:tabular-nums;margin-left:5px;font-size:17px}.rank-summary .risk-number{color:#c84b54}.rank-ledger{min-width:0}.rank-filters{background:#fff;border:1px solid #e2e7ee;border-top:0;grid-template-columns:repeat(5,minmax(145px,1fr)) auto;gap:8px;padding:12px;display:grid}.rank-filters select,.rank-filters button{color:#516075;background:#fff;border:1px solid #dce3ec;border-radius:8px;min-height:40px;padding:8px 10px;font-size:13px}.rank-filters button{cursor:pointer}.rank-table{background:#fff;border:1px solid #e2e7ee;border-top:0;border-radius:0 0 10px 10px;overflow:auto}.rank-table table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:13px}.rank-table th{z-index:3;color:#6b778a;text-align:left;white-space:nowrap;background:#f7f9fc;border-bottom:1px solid #dfe5ed;padding:11px 12px;position:sticky;top:0}.rank-table td{color:#4b586c;vertical-align:middle;white-space:nowrap;border-bottom:1px solid #edf0f4;padding:11px 12px}.rank-table tbody tr:hover td{background:#fafcff}.rank-table td small{color:#8793a5;margin-top:4px;font-size:11px;display:block}.rank-table th:last-child,.rank-table td:last-child{z-index:2;background:#fff;width:225px;position:sticky;right:0;box-shadow:-10px 0 16px #1f32520d}.rank-table th:last-child{z-index:4;background:#f7f9fc}.rank-unmapped{color:#c64a53;background:#fff3f3;border-radius:4px;padding:3px 6px;font-size:11px;font-style:normal}.rank-status{color:#27785b;background:#edf8f3;border-radius:5px;padding:4px 8px;font-size:11px;font-style:normal}.rank-status.待岗{color:#a76b12;background:#fff7e8}.rank-status.停岗{color:#c64650;background:#fff0f1}.rank-row-actions{flex-wrap:wrap;gap:5px 10px;max-width:215px;display:flex}.rank-row-actions button{color:#3563db;cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.rank-row-actions button:disabled{color:#a3adba;cursor:not-allowed}.rank-modal{background:#fff;border-radius:12px;width:min(820px,100vw - 32px);max-height:92vh;overflow:auto}.rank-form{grid-template-columns:1fr 1fr;gap:15px;padding:22px;display:grid}.rank-form label{color:#647186;font-size:13px;font-weight:650}.rank-form input,.rank-form select,.rank-form textarea{color:#27344a;background:#fff;border:1px solid #dce3ec;border-radius:8px;outline:0;width:100%;min-height:43px;margin-top:7px;padding:9px 11px;font-size:14px;display:block}.rank-form textarea{resize:vertical;height:82px}.rank-form input:focus,.rank-form select:focus,.rank-form textarea:focus{border-color:#5276e4;box-shadow:0 0 0 3px #5276e414}.rank-form>p,.rank-form>.rank-wide,.rank-form>.rank-link-preview,.rank-form>em{grid-column:1/-1}.rank-form>p{color:#6d798c;background:#f5f7fb;border-radius:7px;margin:0;padding:10px 12px;font-size:12px;line-height:1.6}.rank-form>em{color:#c64750;font-size:12px;font-style:normal}.rank-link-preview{background:#f8faff;border:1px solid #dfe6f1;border-radius:8px;gap:0;display:flex}.rank-link-preview span{color:#7c8798;flex:1;padding:12px;font-size:11px}.rank-link-preview span+span{border-left:1px solid #e1e7f0}.rank-link-preview b{color:#3455a0;margin-top:5px;font-size:13px;display:block}.rank-drawer{background:#fff;width:min(720px,96vw);height:100%;position:absolute;top:0;right:0;overflow:auto;box-shadow:-18px 0 50px #18264033}.rank-drawer>header{border-bottom:1px solid #e5e9ef;justify-content:space-between;padding:25px 28px;display:flex}.rank-drawer header p{color:#5c79c5;margin:0;font-size:11px}.rank-drawer header h3{margin:5px 0 3px;font-size:23px}.rank-drawer header span{color:#7f8a9b;font-size:12px}.rank-drawer header button{cursor:pointer;background:0 0;border:0;align-self:flex-start;font-size:25px}.rank-drawer>section{gap:10px;padding:20px 28px;display:grid}.rank-drawer>section>article{border:1px solid #e2e7ee;border-radius:8px;grid-template-columns:95px 1fr;gap:12px;padding:14px;display:grid}.rank-drawer time{color:#748196;font-size:11px}.rank-drawer article b{color:#354258;font-size:13px}.rank-drawer article p{color:#526177;margin:7px 0;font-size:12px}.rank-drawer article span{color:#8994a5;font-size:11px}.rank-stats article{position:relative;overflow:hidden}.rank-stats article>div{z-index:1;position:relative}.rank-stats article span{margin-top:4px;display:block}.rank-stats strong{z-index:1;color:#304a83;justify-self:end;position:relative}.rank-stats article i{background:#4f73d7;height:3px;position:absolute;bottom:0;left:0}@media (max-width:1200px){.rank-filters{grid-template-columns:repeat(3,1fr)}}@media (max-width:720px){.rank-summary{flex-direction:column;align-items:flex-start;gap:7px}.rank-summary span+span{border-left:0;padding-left:0}.rank-filters,.rank-form{grid-template-columns:1fr}.rank-form>p,.rank-form>.rank-wide,.rank-form>.rank-link-preview,.rank-form>em{grid-column:auto}.rank-link-preview{flex-direction:column}.rank-link-preview span+span{border-top:1px solid #e1e7f0;border-left:0}}.archive-switcher{background:#fff;border:1px solid #dfe5ed;border-radius:10px;grid-template-columns:minmax(300px,1fr) minmax(320px,1.2fr) auto;align-items:center;gap:10px;margin-bottom:14px;padding:12px;display:grid}.archive-switcher label{color:#7d899b;border:1px solid #dce3ec;border-radius:8px;align-items:center;gap:8px;min-height:42px;padding:0 12px;display:flex}.archive-switcher input{color:#354258;border:0;outline:0;width:100%;font-size:14px}.archive-switcher select{color:#354258;background:#fff;border:1px solid #dce3ec;border-radius:8px;min-height:42px;padding:8px 11px;font-size:14px}.archive-switcher>span{color:#7d899b;white-space:nowrap;font-size:12px}.archive-loading{color:#748196;background:#fff;border:1px solid #e0e5ec;border-radius:10px;place-content:center;min-height:360px;display:grid}.archive-hero{background:#fff;border:1px solid #dce3ec;border-left:4px solid #3c68da;border-radius:10px;grid-template-columns:1.25fr 1.5fr auto;align-items:center;gap:28px;margin-bottom:14px;padding:22px 24px;display:grid}.archive-hero.high-risk{border-left-color:#cd4650}.archive-identity{align-items:center;gap:15px;display:flex}.archive-identity>i{color:#fff;background:#2f5dcc;border-radius:10px;place-items:center;width:58px;height:58px;font-size:23px;font-style:normal;font-weight:750;display:grid}.archive-identity span{color:#6879a1;font-size:11px;font-weight:700}.archive-identity h3{color:#26334a;margin:4px 0 2px;font-size:25px}.archive-identity p{color:#6d798b;margin:0;font-size:13px}.archive-hero dl{border-left:1px solid #e3e8ef;grid-template-columns:repeat(4,1fr);margin:0;display:grid}.archive-hero dl div{padding-left:18px}.archive-hero dt{color:#8a95a6;font-size:11px}.archive-hero dd{color:#344158;margin:5px 0 0;font-size:13px;font-weight:650}.archive-counts{gap:14px;display:flex}.archive-counts span{color:#7b8798;text-align:center;min-width:62px;font-size:11px}.archive-counts b{color:#2f4269;font-size:21px;display:block}.archive-layout{grid-template-columns:minmax(0,2fr) minmax(320px,1fr);gap:14px;display:grid}.archive-card{background:#fff;border:1px solid #dfe5ed;border-radius:10px;min-width:0;padding:18px}.archive-card-wide{grid-column:1/-1}.archive-card>header{border-bottom:1px solid #e7ebf0;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;padding-bottom:12px;display:flex}.archive-card header small{color:#6480c9;margin-bottom:3px;font-size:10px;font-weight:750;display:block}.archive-card h3{color:#2e3b51;margin:0;font-size:16px}.archive-card header>button,.archive-card header>div+div button{color:#5570bb;cursor:pointer;background:0 0;border:0;padding:3px;font-size:12px}.archive-card header>div+div{gap:7px;display:flex}.archive-card header .primary-link{color:#315fd4;font-weight:700}.archive-card button:disabled{color:#a6afbc;cursor:not-allowed}.archive-detail-grid{border:1px solid #e2e7ee;border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;display:grid;overflow:hidden}.archive-detail-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.archive-detail-grid>div{border-bottom:1px solid #e7ebf0;border-right:1px solid #e7ebf0;min-height:67px;padding:11px 13px}.archive-detail-grid dt{color:#8994a5;font-size:11px}.archive-detail-grid dd{color:#344158;text-overflow:ellipsis;margin:6px 0 0;font-size:13px;font-weight:600;overflow:hidden}.archive-risk-card{grid-area:1/2}.archive-risk-card>label{color:#68758a;margin-top:12px;font-size:12px;font-weight:650;display:block}.archive-risk-card input,.archive-risk-card select,.archive-risk-card textarea{color:#354258;background:#fff;border:1px solid #dce3ec;border-radius:7px;width:100%;min-height:40px;margin-top:6px;padding:8px 10px;font-size:13px;display:block}.archive-risk-card textarea{resize:vertical;height:96px}.archive-risk-card>button{color:#fff;cursor:pointer;background:#365fca;border:1px solid #365fca;border-radius:7px;width:100%;min-height:40px;margin-top:12px;font-weight:700}.archive-risk-card>small{color:#8a95a6;margin-top:9px;font-size:10px;display:block}.archive-list{gap:7px;display:grid}.archive-list article,.archive-documents article{border:1px solid #e4e8ee;border-radius:7px;justify-content:space-between;align-items:center;gap:10px;padding:11px 12px;display:flex}.archive-list article>div:first-child,.archive-documents article>div:first-child{min-width:0}.archive-list b,.archive-documents b{color:#354258;text-overflow:ellipsis;white-space:nowrap;font-size:13px;display:block;overflow:hidden}.archive-list span,.archive-documents span{color:#8792a3;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:11px;display:block;overflow:hidden}.archive-list article>div:last-child,.archive-documents article>div:last-child{white-space:nowrap;align-items:center;gap:9px;display:flex}.archive-list em{color:#657287;background:#f0f3f7;border-radius:4px;padding:3px 6px;font-size:10px;font-style:normal}.archive-list time{color:#8b96a6;font-size:10px}.archive-list button,.archive-documents button{color:#5270bd;cursor:pointer;background:0 0;border:0;font-size:11px}.archive-empty{color:#8591a2;place-content:center;justify-items:center;min-height:90px;font-size:12px;display:grid}.archive-empty small{color:#a0a9b5;margin-top:5px}.archive-skill-row{border-top:1px solid #e8ecf1;flex-wrap:wrap;gap:7px;margin-top:10px;padding-top:10px;display:flex}.archive-skill-row a{color:#4768bd;background:#f1f5ff;border-radius:5px;padding:5px 8px;font-size:11px;text-decoration:none}.archive-timeline article{grid-template-columns:14px 94px 1fr auto;gap:10px;padding:0 0 18px;display:grid;position:relative}.archive-timeline i{background:#fff;border:2px solid #5275d5;border-radius:50%;width:10px;height:10px;margin-top:5px;position:relative}.archive-timeline i:after{content:"";background:#dce3ec;width:1px;height:56px;position:absolute;top:9px;left:3px}.archive-timeline article:last-child i:after{display:none}.archive-timeline time{color:#7e8a9c;font-size:11px}.archive-timeline b{color:#344158;font-size:13px}.archive-timeline span{color:#6c7890;background:#f0f3f8;border-radius:4px;margin-left:8px;padding:2px 5px;font-size:10px}.archive-timeline p{color:#788497;margin:5px 0 0;font-size:12px}.archive-timeline button{color:#526fbd;cursor:pointer;background:0 0;border:0;align-self:start;font-size:11px}.archive-documents{grid-template-columns:1fr 1fr;gap:8px;display:grid}.archive-documents a{color:#4568c4;font-size:11px;text-decoration:none}.archive-edit-modal{background:#fff;border-radius:12px;width:min(960px,100vw - 32px);max-height:92vh;overflow:auto}.archive-edit-grid{grid-template-columns:repeat(3,1fr);gap:14px;padding:22px;display:grid}.archive-edit-grid label{color:#68758a;font-size:12px;font-weight:650}.archive-edit-grid input{border:1px solid #dce3ec;border-radius:7px;width:100%;min-height:42px;margin-top:6px;padding:8px 10px;font-size:14px;display:block}.archive-trace{background:#fff;width:min(720px,96vw);height:100%;position:absolute;top:0;right:0;overflow:auto;box-shadow:-18px 0 50px #18264033}.archive-trace>header{border-bottom:1px solid #e5e9ef;justify-content:space-between;padding:25px 28px;display:flex}.archive-trace header p{color:#5c79c5;margin:0;font-size:11px}.archive-trace header h3{margin:5px 0 3px;font-size:23px}.archive-trace header span{color:#7f8a9b;font-size:12px}.archive-trace header button{cursor:pointer;background:0 0;border:0;align-self:flex-start;font-size:25px}.archive-trace>section{padding:20px 28px}.trace-notice{color:#5f7198;background:#f5f8ff;border:1px solid #dce6fb;border-radius:7px;margin:0 0 12px;padding:10px 12px;font-size:11px}.archive-trace article{border:1px solid #e2e7ee;border-radius:8px;grid-template-columns:1fr 1fr;gap:0;margin-bottom:10px;display:grid;overflow:hidden}.archive-trace article>div{border-bottom:1px solid #e7ebf0;border-right:1px solid #e7ebf0;padding:10px 12px}.archive-trace article span{color:#8a95a6;font-size:10px;display:block}.archive-trace article b{color:#3c485c;word-break:break-word;margin-top:4px;font-size:12px;display:block}@media (max-width:1180px){.archive-hero{grid-template-columns:1fr}.archive-hero dl{border-left:0}.archive-layout{grid-template-columns:1fr}.archive-card-wide,.archive-risk-card{grid-area:auto}.archive-detail-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:720px){.archive-switcher,.archive-hero dl,.archive-detail-grid,.archive-detail-grid.compact,.archive-documents,.archive-edit-grid{grid-template-columns:1fr}.archive-counts{justify-content:space-around}.archive-list article,.archive-documents article{flex-direction:column;align-items:flex-start}.archive-timeline article{grid-template-columns:14px 76px 1fr}.archive-timeline article>button{grid-column:3}.archive-trace article{grid-template-columns:1fr}}.contract-page{background:#f5f7fa;min-width:0}.contract-summary{color:#6c788b;background:#f8fafc;border:1px solid #e2e7ee;border-radius:10px 10px 0 0;gap:24px;padding:13px 15px;font-size:13px;display:flex}.contract-summary span+span{border-left:1px solid #dde3eb;padding-left:24px}.contract-summary b{color:#26344d;font-variant-numeric:tabular-nums;margin-left:5px;font-size:17px}.contract-summary .warn-number{color:#a96b0d}.contract-summary .risk-number{color:#ca4852}.contract-filters{background:#fff;border:1px solid #e2e7ee;border-top:0;grid-template-columns:minmax(245px,1.35fr) repeat(3,minmax(145px,.8fr)) repeat(4,minmax(145px,.75fr)) minmax(145px,.8fr) auto;gap:8px;padding:12px;display:grid}.contract-filters.registration-filters{grid-template-columns:minmax(280px,1.4fr) 180px 190px 170px auto}.contract-filters>label:not(.employee-search){color:#7a8698;border:1px solid #dce3ec;border-radius:8px;align-items:center;gap:6px;min-height:40px;padding-left:9px;font-size:11px;display:flex}.contract-filters input[type=date]{color:#4e5c71;border:0;outline:0;min-width:0}.contract-filters select,.contract-filters>button{color:#516075;background:#fff;border:1px solid #dce3ec;border-radius:8px;min-height:40px;padding:8px 10px;font-size:13px}.contract-filters>button{cursor:pointer}.contract-table{background:#fff;border:1px solid #e2e7ee;border-top:0;border-radius:0 0 10px 10px;overflow:auto}.contract-table table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:13px}.contract-table th{z-index:3;color:#6b778a;text-align:left;white-space:nowrap;background:#f7f9fc;border-bottom:1px solid #dfe5ed;padding:11px 12px;position:sticky;top:0}.contract-table td{color:#4b586c;vertical-align:middle;white-space:nowrap;border-bottom:1px solid #edf0f4;padding:11px 12px}.contract-table td small{color:#8793a5;margin-top:4px;font-size:11px;display:block}.contract-table tbody tr:hover td{background:#fafcff}.contract-table tbody .contract-expiring td{background:#fffbf3}.contract-table tbody .contract-expiring:hover td{background:#fff7e6}.contract-table tbody .contract-expired td{background:#fff4f4}.contract-table tbody .contract-expired:hover td{background:#ffeded}.contract-table th:last-child,.contract-table td:last-child{z-index:2;background:#fff;width:260px;position:sticky;right:0;box-shadow:-10px 0 16px #1f32520d}.contract-table th:last-child{z-index:4;background:#f7f9fc}.contract-table .contract-expiring td:last-child{background:#fffbf3}.contract-table .contract-expired td:last-child{background:#fff4f4}.contract-notes{text-overflow:ellipsis;max-width:190px;overflow:hidden}.contract-status,.registration-status{color:#27785b;background:#edf8f3;border-radius:5px;padding:4px 8px;font-size:11px;font-style:normal;display:inline-block}.contract-status.即将到期,.registration-status.待审核{color:#a2680f;background:#fff4df}.contract-status.已到期,.contract-status.已解除,.registration-status.作废{color:#c74750;background:#fff0f1}.registration-status.已备案{color:#27785b;background:#edf8f3}.countdown-danger{color:#c84650}.countdown-warn{color:#a46910}.contract-row-actions{flex-wrap:wrap;gap:5px 10px;max-width:250px;display:flex}.contract-row-actions button{color:#3563db;cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.contract-row-actions button:disabled{color:#a3adba;cursor:not-allowed}.contract-editor{background:#fff;border-radius:12px;width:min(1040px,100vw - 32px);max-height:94vh;overflow:auto}.contract-editor-body{gap:0;display:grid}.contract-editor-body>section{border-bottom:1px solid #e6eaf0;padding:18px 22px}.contract-editor-body h4{color:#344158;margin:0 0 14px;font-size:14px}.contract-form-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.contract-form-grid label{color:#647186;font-size:12px;font-weight:650}.contract-form-grid label em{color:#c84751;font-style:normal}.contract-form-grid input,.contract-form-grid select,.contract-form-grid textarea{color:#27344a;background:#fff;border:1px solid #dce3ec;border-radius:7px;outline:0;width:100%;min-height:42px;margin-top:6px;padding:8px 10px;font-size:14px;display:block}.contract-form-grid input:focus,.contract-form-grid select:focus,.contract-form-grid textarea:focus{border-color:#5276e4;box-shadow:0 0 0 3px #5276e414}.contract-form-grid input:disabled{color:#7c8797;background:#f4f6f9}.contract-form-grid textarea{resize:vertical;height:76px}.contract-form-grid .contract-wide{grid-column:1/-1}.contract-upload{grid-template-columns:minmax(260px,1fr) 1.4fr auto auto;align-items:center;gap:10px;display:grid}.contract-upload input{border:1px solid #dce3ec;border-radius:7px;min-height:40px;padding:8px}.contract-upload span{color:#7d899b;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.contract-upload button,.contract-upload a{color:#4568c4;cursor:pointer;background:#fff;border:1px solid #d5deeb;border-radius:7px;min-height:38px;padding:8px 12px;font-size:12px;text-decoration:none}.contract-upload button:disabled{color:#a4adba;cursor:not-allowed}.contract-conflict,.contract-form-error{color:#8f611e;background:#fff8e9;border:1px solid #f0d6ac;border-radius:7px;margin:14px 22px;padding:10px 12px;font-size:12px}.contract-form-error{color:#bd424c;background:#fff3f4;border-color:#efc9cc}.contract-editor>.modal-foot{justify-content:space-between}.contract-editor>.modal-foot span{color:#718097;font-size:12px}.contract-editor>.modal-foot .save-error{color:#c74750}.contract-drawer{background:#fff;width:min(720px,96vw);height:100%;position:absolute;top:0;right:0;overflow:auto;box-shadow:-18px 0 50px #18264033}.contract-drawer>header{border-bottom:1px solid #e5e9ef;justify-content:space-between;padding:25px 28px;display:flex}.contract-drawer header p{color:#5c79c5;margin:0;font-size:11px}.contract-drawer header h3{margin:5px 0 3px;font-size:23px}.contract-drawer header span{color:#7f8a9b;font-size:12px}.contract-drawer header button{cursor:pointer;background:0 0;border:0;align-self:flex-start;font-size:25px}.contract-drawer>section{border-bottom:1px solid #e6eaf0;padding:20px 28px}.contract-drawer h4{margin:0 0 14px}.contract-drawer dl{border:1px solid #e2e7ee;border-radius:8px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.contract-drawer dl div{border-bottom:1px solid #e7ebf0;border-right:1px solid #e7ebf0;padding:11px 13px}.contract-drawer dt{color:#8994a5;font-size:11px}.contract-drawer dd{color:#344158;margin:5px 0 0;font-size:13px}.contract-log-list{gap:8px;display:grid}.contract-log-list article{border:1px solid #e2e7ee;border-radius:8px;grid-template-columns:150px 1fr;gap:12px;padding:12px;display:grid}.contract-log-list time{color:#8490a2;font-size:11px}.contract-log-list b{font-size:13px}.contract-log-list p,.contract-log-list small{color:#7c8798;word-break:break-all;margin:4px 0 0;font-size:11px}.contract-import{background:#fff;border-radius:12px;width:min(650px,100vw - 32px)}.contract-import>div{gap:12px;padding:22px;display:grid}.contract-import>div>button,.contract-import input{background:#fff;border:1px solid #dce3ec;border-radius:7px;min-height:40px;padding:8px 11px}.contract-import label{color:#647186;gap:6px;font-size:12px;font-weight:650;display:grid}.contract-import p{color:#6c788b;margin:0;font-size:12px}.contract-import em{color:#c74750;font-size:11px;font-style:normal}@media (max-width:1500px){.contract-filters{grid-template-columns:repeat(5,minmax(150px,1fr))}.contract-filters .employee-search{grid-column:span 2}}@media (max-width:1100px){.contract-form-grid,.contract-filters,.contract-filters.registration-filters{grid-template-columns:repeat(2,1fr)}.contract-filters .employee-search{grid-column:1/-1}}@media (max-width:720px){.contract-summary{flex-direction:column;align-items:flex-start;gap:7px}.contract-summary span+span{border-left:0;padding-left:0}.contract-filters,.contract-filters.registration-filters,.contract-form-grid,.contract-upload{grid-template-columns:1fr}.contract-filters .employee-search,.contract-form-grid .contract-wide{grid-column:auto}.contract-drawer dl,.contract-log-list article{grid-template-columns:1fr}}.lifecycle-page .alert-filters{grid-template-columns:repeat(4,minmax(180px,1fr)) auto}.lifecycle-page .renewal-filters{grid-template-columns:minmax(280px,1.4fr) repeat(2,minmax(180px,.8fr)) repeat(2,minmax(170px,.8fr)) auto}.alert-table th:last-child,.alert-table td:last-child{width:235px}.renewal-table th:last-child,.renewal-table td:last-child{width:225px}.follow-status,.renewal-type{color:#5d6a7e;text-align:center;background:#eef2f7;border-radius:5px;min-width:58px;padding:4px 7px;font-size:11px;font-style:normal;display:inline-block}.follow-status.跟进中,.renewal-type.延期续签{color:#9c650e;background:#fff4df}.follow-status.已续签{color:#27785b;background:#edf8f3}.follow-status.已终止{color:#c74750;background:#fff0f1}.renewal-modal{background:#fff;border-radius:12px;width:min(900px,100vw - 32px);max-height:92vh;overflow:auto}.renewal-form{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;padding:22px;display:grid}.renewal-form label{color:#647186;font-size:12px;font-weight:650}.renewal-form label em{color:#c84751;font-style:normal}.renewal-form input,.renewal-form select,.renewal-form textarea{color:#27344a;background:#fff;border:1px solid #dce3ec;border-radius:7px;outline:0;width:100%;min-height:42px;margin-top:6px;padding:8px 10px;font-size:14px;display:block}.renewal-form input:focus,.renewal-form select:focus,.renewal-form textarea:focus{border-color:#5276e4;box-shadow:0 0 0 3px #5276e414}.renewal-form textarea{resize:vertical;height:78px}.renewal-form .wide,.renewal-form .renewal-chain,.renewal-form .form-error{grid-column:1/-1}.renewal-chain{color:#78869a;background:#f8faff;border:1px solid #dfe6f1;border-radius:8px;grid-template-columns:1fr 1.3fr auto 1fr 1.3fr;align-items:center;gap:10px;margin:0;padding:12px 14px;font-size:11px;display:grid}.renewal-chain b{color:#3a4e79;font-size:12px}.renewal-chain i{color:#4d70cd;font-size:18px;font-style:normal}.renewal-form .form-error{color:#c74750;font-size:12px;font-style:normal}@media print{.sidebar,.topbar,.employee-page-head .employee-actions,.contract-filters,.employee-notice,.contract-table input,.contract-row-actions{display:none!important}.main{margin:0}.workspace{padding:0}.contract-table{border:0;overflow:visible}.contract-table table{width:100%;font-size:9px}.contract-table th:last-child,.contract-table td:last-child{display:none}.employee-page-head{padding:0 0 12px}}@media (max-width:1100px){.lifecycle-page .alert-filters,.lifecycle-page .renewal-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.lifecycle-page .renewal-filters .employee-search{grid-column:1/-1}.renewal-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.lifecycle-page .alert-filters,.lifecycle-page .renewal-filters,.renewal-form{grid-template-columns:1fr}.lifecycle-page .renewal-filters .employee-search,.renewal-form .wide,.renewal-form .renewal-chain,.renewal-form .form-error{grid-column:auto}.renewal-chain{grid-template-columns:1fr}.renewal-chain i{justify-self:start;transform:rotate(90deg)}}.termination-filters{grid-template-columns:minmax(260px,1.35fr) minmax(160px,.8fr) minmax(175px,.8fr) minmax(175px,.8fr) minmax(170px,.8fr) auto}.termination-lock-note{color:#7a6440;background:#fffaf0;border:1px solid #ead7a9;border-top:0;align-items:center;gap:10px;padding:10px 13px;font-size:12px;display:flex}.termination-lock-note b{color:#8f651a}.termination-table th:last-child,.termination-table td:last-child{width:270px}.termination-type{color:#5c697d;text-align:center;background:#eef2f7;border-radius:5px;min-width:70px;padding:4px 7px;font-size:11px;font-style:normal;display:inline-block}.termination-type.员工离职,.termination-type.企业解约{color:#bd4750;background:#fff0f1}.termination-type.合同到期终止{color:#9b650e;background:#fff4df}.termination-type.协商解除{color:#4665b2;background:#eef3ff}.row-file{color:#3563db;cursor:pointer;font-size:12px;position:relative}.row-file input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.row-file:has(input:disabled){color:#a3adba;cursor:not-allowed}.termination-modal{width:min(860px,100vw - 32px)}.termination-source{color:#66748a;background:#f8faff;border:1px solid #dfe6f1;border-radius:8px;justify-content:space-between;gap:12px;margin:0;padding:11px 13px;font-size:12px;display:flex}.termination-source b{color:#344766}.termination-warning{color:#8b611d;background:#fff8e9;border:1px solid #efd5a5;border-radius:7px;margin:0;padding:10px 12px;font-size:12px}.termination-drawer{width:min(780px,96vw)}.proof-link{color:#3563db;margin-top:12px;font-size:12px;text-decoration:none;display:inline-flex}.linked-offboarding{background:#fafcff;border:1px solid #dce4ee;border-radius:8px;padding:13px}.linked-offboarding b{color:#344158;font-size:13px}.linked-offboarding span{color:#7e899a;margin-left:10px;font-size:11px}.linked-offboarding p{color:#657287;margin:8px 0 0;font-size:12px;line-height:1.6}@media print{.termination-lock-note{border:1px solid #ccc}.termination-page .contract-summary{display:flex!important}.termination-page .termination-table th:last-child,.termination-page .termination-table td:last-child{display:none}}@media (max-width:1100px){.termination-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.termination-filters .employee-search{grid-column:1/-1}}@media (max-width:720px){.termination-filters{grid-template-columns:1fr}.termination-filters .employee-search{grid-column:auto}.termination-lock-note,.termination-source{flex-direction:column;align-items:flex-start}}.lifecycle-page{--life-border:#e2e7ee;--life-muted:#6c788b;--life-ink:#26344d;background:#f5f7fa;min-width:0}.lifecycle-summary{border:1px solid var(--life-border);color:var(--life-muted);background:#f8fafc;border-radius:10px 10px 0 0;align-items:center;gap:24px;padding:13px 15px;font-size:13px;display:flex}.lifecycle-summary span+span{border-left:1px solid #dde3eb;padding-left:24px}.lifecycle-summary b{color:var(--life-ink);font-variant-numeric:tabular-nums;margin:0 3px;font-size:17px}.lifecycle-summary .archive-policy{color:#657287;margin-left:auto;font-size:12px}.lifecycle-summary .danger-text{color:#c74750!important}.lifecycle-summary .warning-text{color:#a2680f!important}.lifecycle-filters{border:1px solid var(--life-border);background:#fff;border-top:0;gap:8px;padding:12px;display:grid}.offboarding-filters{grid-template-columns:minmax(230px,1.2fr) repeat(5,minmax(145px,.72fr)) auto}.probation-filters{grid-template-columns:repeat(5,minmax(160px,1fr)) auto}.lifecycle-filters label{color:#7a8698;white-space:nowrap;border:1px solid #dce3ec;border-radius:8px;align-items:center;gap:6px;min-height:40px;padding-left:9px;font-size:11px;display:flex}.lifecycle-filters label.lifecycle-search{min-width:0}.lifecycle-filters input,.lifecycle-filters select{color:#4e5c71;background:#fff;border:0;outline:0;width:100%;min-width:0;min-height:38px;font:13px inherit}.lifecycle-filters select{cursor:pointer}.lifecycle-filters>button{color:#516075;cursor:pointer;background:#fff;border:1px solid #dce3ec;border-radius:8px;min-height:40px;padding:8px 12px;font-size:13px}:is(.lifecycle-filters label:focus-within,.lifecycle-filters>button:focus-visible){border-color:#5276e4;outline:0;box-shadow:0 0 0 3px #5276e414}.archive-lock-note{color:#75684a;background:#fffaf0;border:1px solid #ead7a9;border-top:0;align-items:center;gap:10px;margin:0;padding:10px 13px;font-size:12px;display:flex}.archive-lock-note b{color:#8e681e}.lifecycle-table-wrap{border:1px solid var(--life-border);background:#fff;border-top:0;border-radius:0 0 10px 10px;overflow:auto}.lifecycle-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:1550px;font-size:13px}.probation-table{min-width:1450px}.lifecycle-table th{z-index:3;color:#6b778a;text-align:left;white-space:nowrap;background:#f7f9fc;border-bottom:1px solid #dfe5ed;padding:11px 12px;font-weight:650;position:sticky;top:0}.lifecycle-table td{color:#4b586c;vertical-align:middle;white-space:nowrap;border-bottom:1px solid #edf0f4;padding:11px 12px}.lifecycle-table tbody tr:hover td{background:#fafcff}.lifecycle-table th:last-child,.lifecycle-table td:last-child{z-index:2;background:#fff;width:270px;position:sticky;right:0;box-shadow:-10px 0 16px #1f32520d}.probation-table th:last-child,.probation-table td:last-child{width:235px}.lifecycle-table th:last-child{z-index:4;background:#f7f9fc}.lifecycle-table tbody tr:hover td:last-child{background:#fafcff}.lifecycle-table .reason-cell{text-overflow:ellipsis;max-width:210px;overflow:hidden}.lifecycle-table .employee-empty{min-height:220px}.lifecycle-table tbody>tr>td[colspan]{padding:0}.lifecycle-cell-stack{gap:3px;display:grid}.lifecycle-cell-stack b{color:#3b485d;font-size:12px}.lifecycle-cell-stack small,.muted-cell{color:#8793a5;font-size:11px}.lifecycle-row-actions{flex-wrap:wrap;gap:5px 10px;max-width:255px;display:flex}.lifecycle-row-actions button{color:#3563db;cursor:pointer;background:0 0;border:0;min-height:auto;padding:0;font-size:12px;line-height:20px}.lifecycle-row-actions button:disabled{color:#a3adba;cursor:not-allowed}.lifecycle-row-actions button:focus-visible{border-radius:3px;outline:0;box-shadow:0 0 0 2px #5276e43d}.name-link:focus-visible{border-radius:3px;outline:0;box-shadow:0 0 0 2px #5276e43d}.lifecycle-status,.lifecycle-state{color:#59677a;white-space:nowrap;background:#eef2f7;border-radius:5px;justify-content:center;min-width:64px;padding:4px 7px;font-size:11px;font-style:normal;display:inline-flex}.lifecycle-status.主动离职,.lifecycle-status.待转正{color:#4665ae;background:#eef3ff}.lifecycle-status.被动离职,.lifecycle-status.试用期离职{color:#b84c55;background:#fff0f1}.lifecycle-status.已考核,.lifecycle-state.complete{color:#27785b;background:#edf8f3}.lifecycle-status.延期转正,.lifecycle-state.warning{color:#99650f;background:#fff4df}.countdown-badge{color:#59677a;background:#eef2f7;border-radius:5px;justify-content:center;min-width:74px;padding:5px 8px;font-size:11px;font-style:normal;font-weight:650;display:inline-flex}.countdown-badge.warning{color:#9a6508;background:#fff3d9}.countdown-badge.danger{color:#b33742;background:#ffeaec}.probation-warning td{background:#fffdf8}.probation-danger td{background:#fff8f8}.probation-warning td:last-child{background:#fffdf8}.probation-danger td:last-child{background:#fff8f8}.number-cell{text-align:right;font-variant-numeric:tabular-nums}.danger-text{color:#b33742!important}.warning-text{color:#9a6508!important}.lifecycle-loading-row td{padding:16px}.lifecycle-loading-row span{background:linear-gradient(90deg,#f1f3f6 25%,#f7f8fa 40%,#f1f3f6 65%) 0 0/300% 100%;border-radius:3px;width:100%;height:12px;animation:1.3s ease-in-out infinite lifecycle-shimmer;display:block}.stats-dialog{gap:0;padding:20px;display:grid}.stats-dialog p{border-bottom:1px solid #edf0f4;justify-content:space-between;align-items:center;margin:0;padding:13px 0;display:flex}.stats-dialog p span{color:#6d7889}.stats-dialog p b{color:#273348}.stats-dialog small{color:#778294;padding-top:15px;line-height:1.6}.lifecycle-drawer{width:min(840px,96vw)}.lifecycle-drawer section h4 small{color:#8290a3;margin-left:6px;font-weight:500}.archive-history-list{gap:8px;display:grid}.archive-history-list article{background:#fafbfd;border:1px solid #e1e6ee;border-radius:7px;padding:11px 12px}.archive-history-list article b{color:#334159;font-size:12px}.archive-history-list article span{color:#7a8798;margin-left:10px;font-size:11px}.archive-history-list article p{color:#667488;margin:5px 0 0;font-size:12px;line-height:1.5}.lifecycle-modal{width:min(760px,100vw - 32px)}.probation-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:20px;display:grid}.probation-form label,.lifecycle-single-form label{color:#5d697c;gap:7px;font-size:12px;font-weight:650;display:grid}.probation-form .wide{grid-column:1/-1}.probation-form input,.probation-form select,.probation-form textarea,.lifecycle-single-form textarea{color:#2c374a;min-height:40px;font:inherit;background:#fff;border:1px solid #dce3ed;border-radius:7px;outline:0;padding:8px 11px}.probation-form textarea,.lifecycle-single-form textarea{resize:vertical;min-height:90px}.probation-form input:focus,.probation-form select:focus,.probation-form textarea:focus,.lifecycle-single-form textarea:focus{border-color:#5276e4;box-shadow:0 0 0 3px #5276e414}.lifecycle-single-form{padding:20px}.lifecycle-single-form p{color:#7b8798;margin:10px 0 0;font-size:11px}.modal-inline-actions{border-top:1px solid #e4e8ef;justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.modal-inline-actions button{color:#526077;cursor:pointer;background:#fff;border:1px solid #d8e0eb;border-radius:7px;min-height:36px;padding:0 14px}.modal-inline-actions button.primary{color:#fff;background:#3563db;border-color:#3563db}.modal-inline-actions button:disabled{cursor:not-allowed;opacity:.5}@keyframes lifecycle-shimmer{to{background-position:-100% 0}}.lifecycle-filters input,.lifecycle-filters select{font:inherit;font-size:13px}@media print{.offboarding-page .employee-page-head,.offboarding-page .lifecycle-filters,.offboarding-page .archive-lock-note,.offboarding-page .lifecycle-summary{display:none!important}.offboarding-page .lifecycle-table th:last-child,.offboarding-page .lifecycle-table td:last-child{display:none}.offboarding-page .lifecycle-table-wrap{border:0;overflow:visible}}@media (max-width:1300px){.offboarding-filters,.probation-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.lifecycle-summary{flex-wrap:wrap;gap:10px 20px}.lifecycle-summary .archive-policy{border-top:1px solid #dde3eb;width:100%;margin-left:0;border-left:0!important;padding-top:8px!important;padding-left:0!important}}@media (max-width:720px){.offboarding-filters,.probation-filters,.probation-form{grid-template-columns:1fr}.probation-form .wide{grid-column:auto}.lifecycle-summary{flex-direction:column;align-items:flex-start;gap:7px}.lifecycle-summary span+span,.lifecycle-summary .archive-policy{border:0;width:100%;padding:0}.modal-inline-actions{flex-direction:column;align-items:stretch}.archive-lock-note{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.lifecycle-loading-row span{animation:none}}.dashboard-empty{color:#9aa4b3;text-align:center;place-items:center;min-height:82px;margin:0;font-size:11px;display:grid}.attendance-page{background:#f5f7fa;min-width:0}.attendance-summary{border-radius:10px 10px 0 0}.attendance-filters{grid-template-columns:minmax(230px,1.25fr) minmax(170px,.8fr) minmax(160px,.75fr) minmax(170px,.75fr) minmax(170px,.75fr) auto}.attendance-table{min-width:1760px}.attendance-table th:last-child,.attendance-table td:last-child{width:105px}.attendance-table td:nth-child(4){max-width:190px}.attendance-table td:nth-child(12){color:#7d899a;font-size:11px}.attendance-table tr.attendance-warning td,.attendance-table tr.attendance-warning td:last-child{background:#fffdf7}.attendance-table tr.attendance-danger td,.attendance-table tr.attendance-danger td:last-child{background:#fff8f8}.time-pair{font-variant-numeric:tabular-nums;align-items:center;gap:6px;display:flex}.time-pair i{color:#a4adba;font-style:normal}.attendance-status,.sync-status{color:#59677a;white-space:nowrap;background:#eef2f7;border-radius:5px;justify-content:center;min-width:62px;padding:4px 7px;font-size:11px;font-style:normal;display:inline-flex}.status-正常,.status-请假,.status-出差,.status-外出,.sync-status.completed{color:#27785b;background:#edf8f3}.status-迟到,.status-早退,.status-迟到早退,.status-加班,.sync-status.completed_with_warnings{color:#97620d;background:#fff4df}.status-缺卡,.sync-status.failed{color:#bc454f;background:#fff0f1}.sync-status.running{color:#4665ae;background:#eef3ff}.lock-mark{color:#8b641d;margin-top:4px;font-size:10px;display:block}.attendance-pagination{color:#7b8798;background:#fff;border:1px solid #e2e7ee;border-top:0;border-radius:0 0 10px 10px;justify-content:space-between;align-items:center;padding:12px 14px;font-size:12px;display:flex}.attendance-pagination div{gap:7px;display:flex}.attendance-pagination button{color:#516075;cursor:pointer;background:#fff;border:1px solid #dce3ec;border-radius:7px;min-height:34px;padding:0 12px}.attendance-pagination button:disabled{color:#afb7c2;cursor:not-allowed}.employee-message a{color:#315bc5;margin-left:12px;font-weight:650}.attendance-permission-note{color:#75684a;background:#fffaf0;border:1px solid #ead7a9;border-top:0;align-items:center;gap:12px;margin:0;padding:11px 14px;font-size:12px;display:flex}.attendance-permission-note b{color:#8e681e}.attendance-permission-note a{color:#315bc5;margin-left:auto;text-decoration:none}.attendance-connection-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 14px;display:grid}.attendance-connection-grid article{background:#fff;border:1px solid #e1e6ed;border-radius:10px;min-height:128px;padding:17px 18px;position:relative}.attendance-connection-grid small{color:#7f8b9b;font-size:11px;display:block}.attendance-connection-grid b{color:#2e3b51;margin-top:11px;font-size:19px;display:block}.attendance-connection-grid p{color:#788597;margin:7px 0 0;font-size:11px}.connection-dot{background:#c0c7d1;border-radius:50%;width:9px;height:9px;position:absolute;top:18px;right:18px;box-shadow:0 0 0 4px #f1f3f6}.connection-dot.online{background:#3e9a70;box-shadow:0 0 0 4px #e9f6f0}.sync-runs{margin-top:14px}.sync-runs>header{background:#fff;border:1px solid #e2e7ee;border-radius:10px 10px 0 0;padding:16px 18px}.sync-runs h3{color:#2e3a4e;margin:0;font-size:16px}.sync-runs p{color:#7b8798;margin:5px 0 0;font-size:12px}.sync-run-table{min-width:1380px}.sync-run-table th:last-child,.sync-run-table td:last-child{width:auto;max-width:280px;box-shadow:none;position:static}.attendance-drawer{width:min(760px,96vw)}.attendance-drawer h4 small{color:#8792a3;margin-left:6px;font-weight:500}.attendance-punch-list{gap:8px;display:grid}.attendance-punch-list article{background:#fafbfd;border:1px solid #e1e6ee;border-radius:7px;grid-template-columns:145px 100px 1fr;align-items:center;gap:10px;padding:11px 12px;display:grid}.attendance-punch-list time{color:#67758a;font-size:11px}.attendance-punch-list b{color:#344158;font-size:12px}.attendance-punch-list span{color:#5d6b80;font-size:12px}.attendance-punch-list small{color:#99a2af;word-break:break-all;grid-column:1/-1;font-size:10px}@media (max-width:1250px){.attendance-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-connection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.attendance-filters,.attendance-connection-grid{grid-template-columns:1fr}.attendance-permission-note{flex-direction:column;align-items:flex-start}.attendance-permission-note a{margin-left:0}.attendance-pagination{flex-direction:column;align-items:flex-start;gap:10px}.attendance-punch-list article{grid-template-columns:1fr}}.monthly-attendance-filters{grid-template-columns:minmax(180px,.55fr) minmax(280px,1.2fr) minmax(180px,.7fr) auto}.monthly-attendance-table{min-width:1640px}.monthly-attendance-table th:last-child,.monthly-attendance-table td:last-child{width:180px}.attendance-import-button{min-width:120px;font-weight:700}.attendance-file-input{clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.attendance-template-link{color:#526076;background:#fff;border:1px solid #dce3ec;border-radius:8px;align-items:center;min-height:40px;padding:8px 13px;font-size:13px;text-decoration:none;display:inline-flex}.attendance-template-link:hover{color:#315fda;border-color:#9eadd0}.attendance-template-link:focus-visible{border-color:#5276e4;outline:0;box-shadow:0 0 0 3px #5276e414}.attendance-import-meta{color:#77849a;background:#f4f7fd;border:1px solid #dce6fb;border-top:0;align-items:center;gap:10px;margin:0;padding:9px 13px;font-size:12px;display:flex}.attendance-import-meta b{color:#3c527d}.attendance-import-meta span{margin:0}.attendance-full{color:#69768a;background:#eef2f7;border-radius:5px;justify-content:center;min-width:36px;padding:3px 6px;font-size:11px;font-style:normal;display:inline-flex}.attendance-full-是{color:#27785b;background:#edf8f3}.attendance-notes{max-width:190px}.attendance-notes small{text-overflow:ellipsis;overflow:hidden}.attendance-message{border-radius:8px;margin:0 0 12px}.attendance-message.info{color:#3e63b8;background:#eef4ff}.attendance-message.error{color:#b83f4a;background:#fff1f2}.attendance-message.success{color:#24785a;background:#eef8f3}.attendance-selection{color:#53688f;background:#f1f5ff;border:1px solid #dce6fb;border-top:0;align-items:center;gap:8px;padding:9px 13px;font-size:12px;display:flex}.attendance-selection span{margin-right:auto}.attendance-selection b{color:#3159b8}.attendance-selection button{color:#4768bd;cursor:pointer;background:#fff;border:1px solid #d6deeb;border-radius:7px;min-height:32px;padding:5px 10px;font-size:12px}.attendance-selection button.danger{color:#bd4650;border-color:#efcfd2}.attendance-selection button:disabled{cursor:not-allowed;opacity:.45}.attendance-source-note{color:#81662d;background:#fffaf0;border:1px solid #eadfbf;border-top:0;margin:0;padding:9px 13px;font-size:12px}.attendance-check{width:44px;min-width:44px;left:0;z-index:4!important;text-align:center!important;background:#fff!important;position:sticky!important}.monthly-attendance-table th.attendance-check{z-index:5!important;background:#f7f9fc!important}.attendance-check input{accent-color:#3d68ea;cursor:pointer;width:15px;height:15px}.attendance-check input:disabled{cursor:not-allowed}.monthly-attendance-table tr.attendance-selected-row td{background:#f3f6ff}.monthly-attendance-table tr.attendance-selected-row:hover td{background:#edf2ff}.attendance-batch-form{gap:16px;padding:22px;display:grid}.attendance-batch-form>p{color:#637189;background:#f3f6fc;border-radius:8px;margin:0;padding:11px 13px;font-size:12px;line-height:1.6}.attendance-batch-form label{color:#647186;font-size:12px;font-weight:650}.attendance-batch-form input,.attendance-batch-form select,.attendance-batch-form textarea{color:#27344a;background:#fff;border:1px solid #dce3ec;border-radius:7px;outline:0;width:100%;min-height:42px;margin-top:7px;padding:8px 10px;font-size:14px;display:block}.attendance-batch-form textarea{resize:vertical;min-height:84px}.attendance-batch-form input:focus,.attendance-batch-form select:focus,.attendance-batch-form textarea:focus{border-color:#5276e4;box-shadow:0 0 0 3px #5276e414}.attendance-batch-form em{color:#bd4650;font-size:12px;font-style:normal}.attendance-delete-modal>div{padding:22px}.attendance-delete-modal>div p{color:#91434a;background:#fff5f5;border:1px solid #f1d5d7;border-radius:8px;margin:0;padding:12px 14px;font-size:13px;line-height:1.65}.attendance-danger-button{color:#fff!important;background:#c9444d!important;border-color:#c9444d!important}.attendance-danger-button:disabled{opacity:.55}@media (max-width:1100px){.monthly-attendance-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.monthly-attendance-filters>button{grid-column:1/-1}}@media (max-width:720px){.monthly-attendance-filters{grid-template-columns:1fr}.monthly-attendance-filters>button{grid-column:auto}.attendance-selection{flex-wrap:wrap;align-items:flex-start}.attendance-selection span{flex-basis:100%}}.performance-page{background:#f5f7fa;min-width:0}.performance-period{color:#69768a;background:#fff;border:1px solid #dce3ec;border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:0 10px;font-size:12px;display:flex}.performance-period input{color:#344158;border:0;outline:0}.performance-tabs{background:#fff;border:1px solid #e1e6ed;border-radius:10px 10px 0 0;gap:2px;padding:5px;display:flex}.performance-tabs button{color:#647186;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:8px;min-height:38px;padding:7px 13px;font-size:13px;display:flex}.performance-tabs button.active{color:#315fda;background:#edf3ff;font-weight:700}.performance-tabs span{color:#657186;background:#eef1f5;border-radius:10px;place-items:center;min-width:20px;height:20px;font-size:11px;display:inline-grid}.performance-tabs button.active span{color:#315fda;background:#fff}.performance-summary{color:#6c788b;background:#f8fafc;border:1px solid #e1e6ed;border-top:0;align-items:center;gap:26px;padding:13px 15px;font-size:13px;display:flex}.performance-summary span+span{border-left:1px solid #dfe5ed;padding-left:26px}.performance-summary b{color:#26344d;font-variant-numeric:tabular-nums;margin-left:7px;font-size:17px}.performance-policy{background:#f6f8fc;border:1px solid #dce5f5;border-top:0;grid-template-columns:minmax(320px,1fr) 170px auto;align-items:center;gap:16px;padding:14px 15px;display:grid}.performance-policy strong,.performance-policy span{display:block}.performance-policy strong{color:#344158;font-size:14px}.performance-policy span{color:#748096;margin-top:4px;font-size:12px;line-height:1.55}.performance-policy>label{color:#647186;font-size:11px;font-weight:650}.performance-policy>label>div{background:#fff;border:1px solid #dce3ec;border-radius:7px;align-items:center;height:38px;margin-top:5px;display:flex}.performance-policy input{text-align:right;font-variant-numeric:tabular-nums;background:0 0;border:0;outline:0;width:100%;min-width:0;padding:7px 9px}.performance-policy i{color:#7f8a9a;padding-right:10px;font-style:normal}.performance-policy button{min-height:40px}.performance-message{color:#28765b;background:#eff8f4;border:1px solid #cfe6db;border-top:0;justify-content:space-between;align-items:center;margin:0;padding:10px 13px;font-size:12px;display:flex}.performance-message button{color:inherit;cursor:pointer;background:0 0;border:0}.performance-filters{background:#fff;border:1px solid #e1e6ed;border-top:0;grid-template-columns:minmax(280px,1fr) auto;gap:8px;padding:12px;display:grid}.performance-filters label{color:#8792a3;border:1px solid #dce3ec;border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:0 10px;display:flex}.performance-filters input{color:#4d5a6e;border:0;outline:0;width:100%;font-size:13px}.performance-filters button{color:#526076;cursor:pointer;background:#fff;border:1px solid #dce3ec;border-radius:8px;min-height:40px;padding:8px 12px}.performance-table-wrap{background:#fff;border:1px solid #e1e6ed;border-top:0;border-radius:0 0 10px 10px;overflow:auto}.performance-table{border-collapse:separate;border-spacing:0;width:100%;min-width:1080px;font-size:13px}.performance-table th{z-index:2;color:#6b778a;text-align:left;white-space:nowrap;background:#f7f9fc;border-bottom:1px solid #dfe5ed;padding:11px 12px;position:sticky;top:0}.performance-table td{color:#4b586c;vertical-align:middle;border-bottom:1px solid #edf0f4;height:66px;padding:10px 12px}.performance-table tbody tr:hover td{background:#fafcff}.performance-table td b,.performance-table td small{display:block}.performance-table td b{color:#344158}.performance-table td small{color:#8793a5;margin-top:4px;font-size:11px}.performance-table .numeric{text-align:right;font-variant-numeric:tabular-nums}.performance-table .strong{color:#2e58b4;font-weight:700}.performance-table tfoot td{background:#f8fafc;height:48px;font-weight:650}.performance-status{color:#98630e;background:#fff4df;border-radius:5px;justify-content:center;min-width:66px;padding:4px 8px;font-size:11px;font-style:normal;display:inline-flex}.performance-status.已核算{color:#27785b;background:#edf8f3}.performance-status.待配置薪资{color:#b84851;background:#fff0f1}@media (max-width:900px){.performance-policy{grid-template-columns:1fr 150px}.performance-policy button{grid-column:1/-1}.performance-summary{flex-wrap:wrap;align-items:flex-start}.performance-summary span+span{border-left:0;padding-left:0}}@media (max-width:620px){.performance-tabs{overflow:auto}.performance-tabs button{white-space:nowrap}.performance-policy,.performance-filters{grid-template-columns:1fr}.performance-summary{flex-direction:column;gap:7px}}.salary-page{--salary-border:#e1e6ed;--salary-ink:#28364d;--salary-muted:#6d798c;background:#f5f7fa;min-width:0}.salary-summary{border:1px solid var(--salary-border);color:var(--salary-muted);background:#f8fafc;border-radius:10px 10px 0 0;align-items:center;gap:24px;padding:13px 15px;font-size:13px;display:flex}.salary-summary span+span{border-left:1px solid #dfe4eb;padding-left:24px}.salary-summary b{color:var(--salary-ink);font-variant-numeric:tabular-nums;margin-left:5px;font-size:17px}.salary-summary .salary-risk{color:#bd4650}.salary-filters{border:1px solid var(--salary-border);background:#fff;border-top:0;grid-template-columns:minmax(230px,1.2fr) repeat(4,minmax(150px,.78fr)) auto;gap:8px;padding:12px;display:grid}.salary-filters label{color:#8792a3;border:1px solid #dce3ec;border-radius:8px;align-items:center;gap:7px;min-height:40px;padding:0 10px;display:flex}.salary-filters input{color:#4d5a6e;border:0;outline:0;width:100%;min-width:0;font-size:13px}.salary-filters select,.salary-filters>button{color:#516075;background:#fff;border:1px solid #dce3ec;border-radius:8px;min-height:40px;padding:8px 10px;font-size:13px}.salary-filters>button{cursor:pointer}:is(.salary-filters label:focus-within,.salary-filters select:focus,.salary-filters>button:focus-visible){border-color:#5276e4;outline:0;box-shadow:0 0 0 3px #5276e414}.salary-selection{color:#53688f;background:#f1f5ff;border:1px solid #dce6fb;border-top:0;align-items:center;gap:5px;padding:9px 13px;font-size:12px;display:flex}.salary-selection b{color:#3159b8}.salary-selection button{color:#4768bd;cursor:pointer;background:0 0;border:0;margin-left:auto}.salary-table-wrap{border:1px solid var(--salary-border);background:#fff;border-top:0;border-radius:0 0 10px 10px;overflow:auto}.salary-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:1740px;font-size:13px}.salary-table th{z-index:3;color:#6b778a;text-align:left;white-space:nowrap;background:#f7f9fc;border-bottom:1px solid #dfe5ed;padding:11px 12px;font-weight:650;position:sticky;top:0}.salary-table td{color:#4b586c;vertical-align:middle;white-space:nowrap;border-bottom:1px solid #edf0f4;padding:11px 12px}.salary-table tbody tr:hover td{background:#fafcff}.salary-table th:last-child,.salary-table td:last-child{z-index:2;background:#fff;width:235px;position:sticky;right:0;box-shadow:-10px 0 16px #1f32520d}.salary-table th:last-child{z-index:4;background:#f7f9fc}.salary-table tbody tr:hover td:last-child{background:#fafcff}.salary-stack{gap:4px;display:grid}.salary-stack b{color:#344158}.salary-stack small,.salary-table td>small{color:#8793a5;font-size:11px}.salary-number{text-align:right;font-variant-numeric:tabular-nums}.salary-number b{color:#344158}.salary-number small{margin-top:4px;display:block}.salary-unset{color:#bd4851;background:#fff1f2;border-radius:4px;padding:3px 6px;font-size:11px;font-style:normal}.salary-linked{margin-top:4px;display:block;color:#4770c8!important}.salary-status{color:#59677a;background:#eef2f7;border-radius:5px;justify-content:center;min-width:58px;padding:4px 7px;font-size:11px;font-style:normal;display:inline-flex}.salary-status.status-生效中{color:#27785b;background:#edf8f3}.salary-status.status-待生效{color:#98630e;background:#fff4df}.salary-status.status-已失效{color:#7a8493;background:#f0f2f5}.salary-status.status-未配置{color:#b84851;background:#fff0f1}.salary-note{text-overflow:ellipsis;max-width:170px;overflow:hidden}.salary-card-number{letter-spacing:.3px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.salary-row-actions{flex-wrap:wrap;gap:5px 10px;max-width:225px;display:flex}.salary-row-actions button{color:#3563db;cursor:pointer;background:0 0;border:0;min-height:auto;padding:0;font-size:12px;line-height:20px}.salary-row-actions button:disabled{color:#a4adb9;cursor:not-allowed}.salary-column-control{position:relative}.salary-column-control>button{height:100%}.salary-column-control>div{z-index:8;background:#fff;border:1px solid #dce2ea;border-radius:9px;gap:9px;width:210px;padding:13px;display:grid;position:absolute;top:calc(100% + 7px);right:0;box-shadow:0 16px 36px #1c2a4226}.salary-column-control b{color:#344158;font-size:12px}.salary-column-control label{color:#57657a;align-items:center;gap:8px;font-size:12px;display:flex}.salary-column-control small{color:#8b96a7;font-size:10px;line-height:1.5}.salary-message{color:#4865a6;background:#f1f5ff;border:1px solid #dce6fb;border-top:0;justify-content:space-between;align-items:center;margin:0;padding:10px 13px;font-size:12px;display:flex}.salary-message button{color:inherit;cursor:pointer;background:0 0;border:0}.salary-modal{background:#fff;border-radius:12px;width:min(880px,100vw - 32px);max-height:92vh;overflow:auto}.salary-batch-modal{width:min(700px,100vw - 32px)}.salary-form{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;padding:22px;display:grid}.salary-form label{color:#647186;font-size:12px;font-weight:650}.salary-form input,.salary-form select,.salary-form textarea{color:#27344a;background:#fff;border:1px solid #dce3ec;border-radius:7px;outline:0;width:100%;min-height:42px;margin-top:7px;padding:8px 10px;font-size:14px;display:block}.salary-form textarea{resize:vertical;min-height:76px}.salary-form input:focus,.salary-form select:focus,.salary-form textarea:focus{border-color:#5276e4;box-shadow:0 0 0 3px #5276e414}.salary-form .salary-wide,.salary-link-preview,.salary-total,.salary-error,.salary-batch-note{grid-column:1/-1}.salary-link-preview{background:#f8faff;border:1px solid #dfe6f1;border-radius:8px;grid-template-columns:repeat(3,1fr);display:grid}.salary-link-preview span{color:#7b8798;padding:12px;font-size:11px}.salary-link-preview span+span{border-left:1px solid #e1e7f0}.salary-link-preview b{color:#3455a0;margin-top:5px;font-size:13px;display:block}.salary-total{color:#526681;background:#f3f6fc;border:1px solid #dce6fb;border-radius:8px;align-items:center;gap:8px;padding:12px 14px;font-size:13px;display:flex}.salary-total b{color:#244c9c;font-variant-numeric:tabular-nums;font-size:18px}.salary-total small{color:#7a8799;margin-left:auto}.salary-error{color:#bd4650;font-size:12px;font-style:normal}.salary-batch-note{color:#637189;background:#f3f6fc;border-radius:8px;margin:0;padding:11px 13px;font-size:12px;line-height:1.6}.salary-drawer{background:#fff;width:min(720px,96vw);height:100%;position:absolute;top:0;right:0;overflow:auto;box-shadow:-18px 0 50px #18264033}.salary-drawer>header{border-bottom:1px solid #e5e9ef;justify-content:space-between;padding:25px 28px;display:flex}.salary-drawer header p{color:#5b78c3;margin:0;font-size:11px}.salary-drawer header h3{color:#29364b;margin:6px 0 0;font-size:23px}.salary-drawer header button{cursor:pointer;background:0 0;border:0;align-self:flex-start;font-size:25px}.salary-drawer>section{padding:20px 28px}.salary-history{gap:10px;display:grid}.salary-history article{background:#fff;border:1px solid #e1e6ed;border-radius:8px;grid-template-columns:95px 1fr;gap:13px;padding:14px;display:grid}.salary-history time{color:#758297;font-size:11px}.salary-history b{color:#344158;font-size:13px}.salary-history p{color:#34579f;font-variant-numeric:tabular-nums;margin:7px 0;font-size:14px}.salary-history p i{color:#a1aab7;margin:0 7px;font-style:normal}.salary-history span{color:#8591a2;font-size:11px}.salary-detail{border:1px solid #e1e6ed;border-radius:8px;grid-template-columns:1fr 1fr;margin:0;display:grid;overflow:hidden}.salary-detail div{border-bottom:1px solid #e8ecf1;justify-content:space-between;gap:15px;padding:12px 13px;display:flex}.salary-detail div:nth-child(odd){border-right:1px solid #e8ecf1}.salary-detail dt{color:#758195}.salary-detail dd{color:#344158;text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:650}.salary-security-note{color:#816225;background:#fff8e9;border-radius:7px;margin:14px 0 0;padding:11px 13px;font-size:11px}@media print{.salary-page .employee-page-head,.salary-page .salary-summary,.salary-page .salary-filters,.salary-page .salary-selection{display:none!important}.salary-table-wrap{border:0;overflow:visible}.salary-table th:last-child,.salary-table td:last-child{display:none}}@media (max-width:1200px){.salary-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.salary-summary{flex-wrap:wrap}.salary-total{flex-direction:column;align-items:flex-start}.salary-total small{margin-left:0}}@media (max-width:720px){.salary-filters,.salary-form{grid-template-columns:1fr}.salary-form .salary-wide,.salary-link-preview,.salary-total,.salary-error,.salary-batch-note{grid-column:auto}.salary-link-preview{grid-template-columns:1fr}.salary-link-preview span+span{border-top:1px solid #e1e7f0;border-left:0}.salary-summary{flex-direction:column;align-items:flex-start;gap:7px}.salary-summary span+span{border-left:0;padding-left:0}.salary-detail{grid-template-columns:1fr}.salary-detail div:nth-child(odd){border-right:0}}.performance-table{table-layout:fixed}.performance-table th,.performance-table td{box-sizing:border-box;white-space:nowrap}.performance-table th.numeric,.performance-table td.numeric{text-align:right}.performance-table td small{white-space:normal;font-size:12px;line-height:1.5}.performance-table.presales-table{min-width:1835px}.performance-table.standard-performance-table{min-width:1420px}.performance-action-cell{background:#fff;position:sticky;right:0;box-shadow:-1px 0 #e1e6ed}.performance-table th.performance-action-cell{z-index:3;background:#f7f9fc}.performance-table-wrap{overscroll-behavior:contain;max-height:70vh}.payroll-page{min-width:0}.payroll-page button,.payroll-dialog button{cursor:pointer}.payroll-page button:disabled,.payroll-dialog button:disabled{opacity:.45;cursor:not-allowed}.payroll-summary{background:#fff;border:1px solid #dfe5ed;border-radius:10px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px;display:grid}.payroll-summary>div{border-right:1px solid #e8edf3;padding:18px 20px}.payroll-summary>div:last-child{border:0}.payroll-summary span{color:#64748b;font-size:14px;display:block}.payroll-summary strong{color:#243b5c;font-variant-numeric:tabular-nums;margin-top:8px;font-size:24px;display:block}.payroll-summary small{margin-left:6px;font-size:14px;font-weight:400}.payroll-filters{background:#fff;border:1px solid #dfe5ed;border-radius:10px 10px 0 0;grid-template-columns:160px 180px minmax(160px,1fr) 170px auto;align-items:end;gap:12px;padding:16px;display:grid}.payroll-filters label{color:#57677b;font-size:14px}.payroll-filters input,.payroll-filters select{color:#273b57;background:#fff;border:1px solid #d5dfea;border-radius:6px;width:100%;min-height:40px;margin-top:7px;padding:8px 10px;font-size:14px;display:block}.payroll-filters button{color:#526078;background:#fff;border:1px solid #d5dfea;border-radius:6px;height:40px;padding:8px 16px}.payroll-selection{color:#63738a;background:#f6f9fd;border-inline:1px solid #dfe5ed;align-items:center;gap:18px;padding:12px 16px;font-size:13px;display:flex}.payroll-selection button{color:#315fda;background:0 0;border:0;margin-left:auto}.payroll-table-wrap{background:#fff;border:1px solid #dfe5ed;border-radius:0 0 10px 10px;max-height:68vh;overflow:auto}.payroll-table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%;font-size:14px}.payroll-table th,.payroll-table td{box-sizing:border-box;text-align:left;vertical-align:middle;border-bottom:1px solid #e8edf3;padding:14px 12px}.payroll-table th{z-index:2;color:#5b6c82;white-space:nowrap;background:#f3f6fa;font-size:13px;position:sticky;top:0}.payroll-table td{color:#41536a;background:#fff}.payroll-table tbody tr:hover td{background:#f9fbff}.payroll-table th.numeric,.payroll-table td.numeric{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.payroll-table td b{color:#263b5c;font-weight:600}.payroll-table small{color:#8490a0;margin-top:4px;font-size:12px;display:block}.payroll-table .payroll-adjusted{color:#9b6b13}.payroll-table input[type=checkbox],.payroll-form-grid input[type=checkbox]{accent-color:#315fda;cursor:pointer;width:16px;height:16px}.payroll-badge{white-space:nowrap;border-radius:5px;padding:5px 8px;font-size:12px;display:inline-block}.payroll-badge.pending{color:#946b1b;background:#fff4dc}.payroll-badge.ok{color:#26785d;background:#e8f6ef}.payroll-table .payroll-actions-cell{position:sticky;right:0;box-shadow:-1px 0 #e4e9f0}.payroll-table th.payroll-actions-cell{z-index:3;background:#f3f6fa}.payroll-actions-cell>details{vertical-align:top;margin-left:12px;display:inline-block}.payroll-actions-cell summary{cursor:pointer;color:#607189;font-size:13px}.payroll-actions-cell details>div{gap:6px;padding-top:10px;display:grid}.payroll-actions-cell details button{text-align:left;color:#3b60b6;background:0 0;border:0;padding:5px 0;font-size:13px}.payroll-link{color:#315fda;background:0 0;border:0;padding:5px 0;font-size:14px}.payroll-help{color:#6b7c90;font-size:13px;line-height:1.8}.payroll-error{color:#b03948;background:#fff1f1;border:1px solid #f2d7db;border-radius:6px;padding:12px 16px;font-size:14px;line-height:1.7}.payroll-notice{color:#28734c;background:#eaf5ef;border-radius:6px;padding:12px 16px;font-size:14px}.payroll-notice button{float:right;color:inherit;background:0 0;border:0}.payroll-dialog{color:#33445c;background:#fff;border:1px solid #d7dfeb;border-radius:12px;width:min(960px,100vw - 32px);max-height:88vh;padding:0;font-size:14px;overflow:auto;box-shadow:0 30px 100px #16223b40}.payroll-dialog>header{z-index:5;background:#f8fafc;border-bottom:1px solid #e5eaf1;justify-content:space-between;align-items:center;padding:18px 24px;display:flex;position:sticky;top:0}.payroll-dialog h3{color:#233957;margin:0;font-size:19px}.payroll-dialog>header button{color:#718299;background:0 0;border:0;font-size:24px}.payroll-dialog form,.payroll-dialog-content{padding:18px 24px}.payroll-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.payroll-form-grid label,.payroll-full-label{color:#51627b;font-size:14px;display:block}.payroll-form-grid label>span{align-items:center;gap:7px;min-height:22px;display:flex}.payroll-form-grid input:not([type=checkbox]),.payroll-form-grid select,.payroll-full-label textarea{color:#283d59;background:#fff;border:1px solid #cfd9e6;border-radius:6px;width:100%;min-height:40px;margin-top:7px;padding:8px 10px;font-size:14px}.payroll-form-grid input:disabled{color:#94a0b0;background:#f3f6fa;border-color:#e4e9f0}.payroll-full-label{margin-top:18px}.payroll-full-label textarea{resize:vertical;min-height:70px}.payroll-dialog footer{border-top:1px solid #e7ecf2;justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.payroll-dialog form>footer{margin-top:20px;padding:16px 0 0}.payroll-dialog footer button{color:#52637b;background:#fff;border:1px solid #d7dfeb;border-radius:6px;min-height:40px;padding:9px 16px;font-size:14px}.payroll-dialog footer button.primary{color:#fff;background:#315fda;border-color:#315fda}.payroll-detail-totals{background:#f2f6fc;border-radius:8px;justify-content:space-between;gap:18px;padding:16px;font-size:16px;display:flex}.payroll-detail-totals b{color:#274a87;margin-top:8px;display:block}.payroll-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;display:grid}.payroll-detail-grid>div{border-bottom:1px solid #e6ecf3;padding:14px 10px}.payroll-detail-grid dt{color:#718299;font-size:13px}.payroll-detail-grid dd{font-variant-numeric:tabular-nums;margin:7px 0 0;font-size:15px}.payroll-detail-grid small{color:#9b6b13;margin-top:4px;font-size:12px;display:block}.payroll-source{background:#f8fafc;border:1px solid #e5ebf3;border-radius:6px;margin:10px 0;padding:13px 16px}.payroll-source p{margin:8px 0;font-size:14px;line-height:1.6}.payroll-source small{color:#7e8ea1;margin-top:4px;font-size:12px;display:block}.payroll-source summary{color:#315fda;cursor:pointer;margin-top:10px}.payroll-log-change pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:280px;font-size:12px;overflow:auto}:is(.payroll-page :focus-visible,.payroll-dialog :focus-visible){outline-offset:2px;outline:2px solid #527df0}@media (max-width:1100px){.payroll-summary,.payroll-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-selection{flex-wrap:wrap}.payroll-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.payroll-summary,.payroll-form-grid,.payroll-detail-grid,.payroll-filters{grid-template-columns:1fr}.payroll-summary>div{border-bottom:1px solid #e8edf3;border-right:0}.payroll-dialog form,.payroll-dialog-content{padding:16px}.payroll-detail-totals{flex-direction:column}}.payroll-table-monthly .payroll-frozen-select,.payroll-table-monthly .payroll-frozen-employee-no,.payroll-table-monthly .payroll-frozen-name{z-index:2;background:#fff;position:sticky}.payroll-table-monthly .payroll-frozen-select{left:0}.payroll-table-monthly .payroll-frozen-employee-no{left:45px}.payroll-table-monthly .payroll-frozen-name{left:155px;box-shadow:8px 0 12px -10px #1f325273}.payroll-table-monthly th.payroll-frozen-select,.payroll-table-monthly th.payroll-frozen-employee-no,.payroll-table-monthly th.payroll-frozen-name{z-index:5;background:#f3f6fa}.payroll-table-monthly tbody tr:hover .payroll-frozen-select,.payroll-table-monthly tbody tr:hover .payroll-frozen-employee-no,.payroll-table-monthly tbody tr:hover .payroll-frozen-name{background:#f9fbff}.performance-status.销售档位待配置{color:#98630e;background:#fff4df}.performance-status.待导入{color:#657186;background:#eef1f5}.presales-rule-card{background:#fff;border:1px solid #dfe5ed;border-top:0}.presales-rule-card>header,.presales-import-bar{justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.presales-rule-card>header{border-bottom:1px solid #edf0f4}.presales-rule-card>header strong,.presales-rule-card>header span,.presales-import-bar strong,.presales-import-bar span{display:block}.presales-rule-card>header strong,.presales-import-bar strong{color:#26344d;font-size:14px}.presales-rule-card>header span,.presales-import-bar span{color:#748096;margin-top:4px;font-size:12px}.presales-rule-card button,.presales-import-bar button{color:#4d5a6e;cursor:pointer;background:#fff;border:1px solid #dce3ec;border-radius:7px;min-height:36px;padding:7px 12px}.presales-rule-card button.primary,.presales-import-bar button.primary{color:#fff;background:#315fda;border-color:#315fda}.presales-rule-card button:disabled,.presales-import-bar button:disabled{cursor:not-allowed;opacity:.55}.presales-weight-grid{grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px;padding:14px 16px;display:grid}.presales-weight-grid label{color:#657186;font-size:12px;font-weight:650}.presales-weight-grid input{color:#26344d;font-variant-numeric:tabular-nums;background:#fff;border:1px solid #dce3ec;border-radius:7px;width:100%;min-height:38px;margin-top:6px;padding:7px 10px}.presales-formula{color:#5d6a7e;background:#f8fafc;border-block:1px solid #edf0f4;margin:0;padding:11px 16px;font-size:12px;line-height:1.6}.presales-tier-grid{grid-template-columns:repeat(4,minmax(210px,1fr));gap:12px;padding:14px 16px;display:grid}.presales-tier{border:1px solid #e1e6ed;border-radius:8px;min-width:0;overflow:hidden}.presales-tier>header{background:#f7f9fc;justify-content:space-between;align-items:center;min-height:42px;padding:8px 10px;display:flex}.presales-tier>header strong{color:#344158;font-size:12px}.presales-tier>header button{min-height:28px;padding:3px 7px;font-size:11px}.presales-tier-head,.presales-tier-row{grid-template-columns:minmax(88px,1fr) minmax(72px,.7fr);gap:6px;padding:6px 9px;display:grid}:is(.presales-tier:has(.presales-tier-row button) .presales-tier-head,.presales-tier:has(.presales-tier-row button) .presales-tier-row){grid-template-columns:minmax(82px,1fr) minmax(62px,.7fr) 28px}.presales-tier-head{color:#8793a5;border-bottom:1px solid #edf0f4;font-size:10px}.presales-tier-row{border-bottom:1px solid #f0f2f5;align-items:center}.presales-tier-row:last-child{border-bottom:0}.presales-tier-row input{color:#344158;text-align:right;font-variant-numeric:tabular-nums;border:1px solid #dce3ec;border-radius:5px;min-width:0;height:30px;padding:4px 6px;font-size:12px}.presales-tier-row button{color:#b84851;background:0 0;border:0;min-height:28px;padding:0}.presales-import-bar{background:#f8fafc;border:1px solid #dfe5ed;border-top:0}.presales-import-bar>div:last-child{gap:8px;display:flex}.presales-table{min-width:1540px}@media (max-width:1100px){.presales-weight-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}.presales-tier-grid{grid-template-columns:repeat(2,minmax(210px,1fr))}}@media (max-width:700px){.presales-rule-card>header,.presales-import-bar{flex-direction:column;align-items:stretch}.presales-weight-grid,.presales-tier-grid{grid-template-columns:1fr}.presales-import-bar>div:last-child{grid-template-columns:1fr 1fr;display:grid}}.performance-fold{border:1px solid var(--line);background:#fff;border-radius:8px;margin:16px 0}.performance-fold>summary{cursor:pointer;color:var(--ink);padding:14px 16px;font-size:.95rem;font-weight:600}.performance-fold>summary:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.performance-fold>.presales-tier-grid,.performance-fold>p,.service-audit{margin:0;padding:16px}.fold-hint{float:right;color:var(--muted);font-size:.875rem;font-weight:400}.service-workspace{gap:16px;display:grid}.service-workspace .performance-policy{flex-wrap:wrap;margin:0}.service-pool,.service-preview{border:1px solid var(--line);background:#f8fafc;border-radius:8px;padding:16px}.service-pool p,.service-help,.service-preview p{color:var(--muted);margin:8px 0;font-size:.9rem;line-height:1.6}.performance-page .performance-table.service-table{table-layout:fixed;min-width:1680px}.service-row-actions{white-space:nowrap;gap:8px;display:flex}.service-row-actions button{font-size:.875rem}.service-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.payroll-dialog fieldset{border:1px solid var(--line);border-radius:8px;margin:16px 0;padding:16px}.payroll-dialog legend{padding:0 8px;font-size:1rem;font-weight:600}.service-form-grid label,.service-reason,.service-rule-tiers label{gap:8px;font-size:.875rem;display:grid}.service-form-grid input,.service-rule-tiers input,.service-reason textarea{border:1px solid var(--line);width:100%;min-height:40px;font:inherit;color:var(--ink);background:#fff;border-radius:6px;padding:8px}:is(.service-form-grid input:focus-visible,.service-rule-tiers input:focus-visible,.service-reason textarea:focus-visible){outline:2px solid var(--blue);outline-offset:1px}.service-form-grid small{color:var(--muted);font-size:.8125rem;line-height:1.5}.service-check{align-items:center;gap:8px;font-size:.875rem;display:flex}.service-check input{width:18px;height:18px}.service-reason{margin:16px 0}.service-error{color:#b91c1c;font-size:.95rem}.service-rule-tiers{grid-template-columns:1fr 1fr;gap:24px;display:grid}.service-rule-tiers section>div{grid-template-columns:1fr 1fr;gap:12px;margin:8px 0;display:grid}.service-audit{gap:12px;list-style:none;display:grid}.service-audit li{border-bottom:1px solid var(--line);gap:4px;padding-bottom:12px;font-size:.875rem;display:grid}.service-audit span{color:var(--muted)}@media (max-width:800px){.service-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-rule-tiers{grid-template-columns:1fr}}@media (max-width:520px){.service-form-grid{grid-template-columns:1fr}.fold-hint{float:none;margin-top:4px;display:block}}.payroll-table .payroll-inline-value{color:#315fda;max-width:100%;min-height:32px;font:inherit;font-variant-numeric:tabular-nums;text-align:right;background:0 0;border:0;border-bottom:1px dashed #90a8d0;border-radius:0;padding:4px 0;display:inline-block}.payroll-table .payroll-inline-value:hover:not(:disabled){background:#edf3ff;border-bottom-color:#315fda}.payslip-push-error{white-space:normal;max-width:220px;line-height:1.45;color:#b03948!important}.payslip-table{min-width:1700px}.payslip-drawer{background:#fff;width:min(760px,96vw);height:100%;position:absolute;top:0;right:0;overflow:auto;box-shadow:-18px 0 50px #18264033}.payslip-drawer>header{border-bottom:1px solid #e5e9ef;justify-content:space-between;padding:25px 28px;display:flex}.payslip-drawer header p{color:#5c79c5;margin:0;font-size:11px}.payslip-drawer header h3{margin:5px 0 3px;font-size:23px}.payslip-drawer header span{color:#7f8a9b;font-size:12px}.payslip-drawer header button{cursor:pointer;background:0 0;border:0;align-self:flex-start;font-size:25px}.payslip-drawer>section{padding:24px 28px}.payslip-logs{gap:9px;display:grid}.payslip-logs article{border:1px solid #e2e7ee;border-radius:8px;padding:13px 15px}.payslip-logs span{color:#8490a2;margin-top:5px;font-size:11px;display:block}.payslip-logs p{color:#647186;margin:6px 0 0;font-size:12px}.employee-payslip-shell{color:#293a52;background:#eef2f7;min-height:100vh;padding:48px 18px}.employee-payslip-card{background:#fff;border:1px solid #dce3ec;border-radius:14px;width:min(680px,100%);margin:auto;overflow:hidden;box-shadow:0 20px 60px #1d2d481f}.employee-payslip-card>header{background:#f8fafc;border-bottom:1px solid #e6ebf1;padding:28px 32px}.employee-payslip-card>header p{color:#5572bd;margin:0;font-size:12px}.employee-payslip-card h1{margin:7px 0 5px;font-size:26px}.employee-payslip-card>header span{color:#7b8798;font-size:13px}.employee-payslip-identity{background:#e5eaf0;grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.employee-payslip-identity>div{background:#fff;padding:16px}.employee-payslip-identity small{color:#8591a2;display:block}.employee-payslip-identity b{margin-top:5px;display:block}.employee-payslip-total{color:#fff;background:#263d68;padding:28px 32px}.employee-payslip-total span,.employee-payslip-total small{color:#cbd6ea;display:block}.employee-payslip-total strong{font-variant-numeric:tabular-nums;margin:7px 0;font-size:34px;display:block}.employee-payslip-card dl{grid-template-columns:1fr 1fr;margin:0;padding:18px 32px;display:grid}.employee-payslip-card dl div{border-bottom:1px solid #edf0f4;justify-content:space-between;padding:13px 0;display:flex}.employee-payslip-card dl div:nth-child(odd){padding-right:20px}.employee-payslip-card dl div:nth-child(2n){padding-left:20px}.employee-payslip-card dt{color:#718096}.employee-payslip-card dd{font-variant-numeric:tabular-nums;margin:0}.employee-payslip-sign{grid-template-columns:1fr auto;gap:12px;padding:20px 32px;display:grid}.employee-payslip-sign label{color:#65758b;font-size:13px}.employee-payslip-sign input{border:1px solid #ccd6e3;border-radius:6px;width:100%;height:40px;margin-top:7px;padding:8px 10px;display:block}.employee-payslip-sign button{color:#fff;background:#315fda;border:0;border-radius:6px;align-self:end;height:40px;padding:0 16px}.employee-payslip-signed{color:#28734c;background:#eaf6ef;border-radius:6px;margin:18px 32px;padding:13px}.employee-payslip-card>footer{color:#7b8798;border-top:1px solid #e7ebf1;padding:16px 32px;font-size:12px}@media (max-width:640px){.employee-payslip-shell{padding:0}.employee-payslip-card{box-shadow:none;border:0;border-radius:0}.employee-payslip-identity{grid-template-columns:1fr 1fr}.employee-payslip-card dl{grid-template-columns:1fr}.employee-payslip-card dl div:nth-child(n){padding-inline:0}.employee-payslip-sign{grid-template-columns:1fr}}.payroll-inline-editor{width:100%;min-width:0}.payroll-inline-editor input{box-sizing:border-box;color:#273b57;width:100%;min-height:36px;font:inherit;text-align:right;font-variant-numeric:tabular-nums;background:#fff;border:1px solid #527df0;border-radius:4px;padding:6px 4px}.payroll-inline-editor input[aria-invalid=true]{border-color:#b03948}.payroll-inline-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.payroll-inline-actions button{color:#315fda;white-space:nowrap;background:0 0;border:0;min-height:32px;padding:4px 0;font-size:13px}.payroll-inline-actions button[type=button]{color:#63738a}.payroll-inline-error{color:#b03948;white-space:normal;overflow-wrap:anywhere;margin-top:4px;font-size:12px;line-height:1.5;display:block}.integrated-workspace{min-width:0}.workspace-tabs{background:#fff;border-bottom:1px solid #e1e6ed;align-items:center;gap:4px;padding:10px 32px 0;display:flex;overflow-x:auto}.workspace-tabs button{color:#69768a;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;min-height:40px;padding:8px 14px;font-size:14px;font-weight:600}.workspace-tabs button:hover{color:#315fda;background:#f7f9fc}.workspace-tabs button.active{color:#315fda;border-bottom-color:#3767e8}.workspace-tabs+*{padding-top:20px}.salary-workspace .workspace-tabs+*{padding-top:20px}.ledger-filters{background:#fff;border:1px solid #dfe5ed;border-radius:10px;grid-template-columns:110px 110px minmax(190px,1.2fr) repeat(3,minmax(135px,.8fr)) repeat(2,minmax(140px,.8fr)) auto;align-items:end;gap:9px;padding:14px;display:grid}.ledger-filters label,.social-filters label{color:#65758b;font-size:12px}.ledger-filters input,.ledger-filters select,.social-filters input,.social-filters select{color:#31435c;background:#fff;border:1px solid #d5deea;border-radius:6px;width:100%;min-height:39px;margin-top:6px;padding:7px 9px;font-size:13px;display:block}.ledger-filters>button,.social-filters>button{color:#53647b;cursor:pointer;background:#fff;border:1px solid #d5deea;border-radius:6px;min-height:39px;padding:7px 13px}.ledger-kpis{background:#fff;border:1px solid #dfe5ed;border-radius:10px;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(250px,1.35fr);margin-top:14px;display:grid;overflow:hidden}.ledger-kpis>div{border-right:1px solid #e7ebf1;padding:17px 18px}.ledger-kpis>div:last-child{border:0}.ledger-kpis span,.social-summary span{color:#728096;font-size:12px;display:block}.ledger-kpis>div>b,.social-summary>div>b{color:#263c5d;font-variant-numeric:tabular-nums;margin-top:8px;font-size:22px;display:block}.dept-cost-summary p{flex-wrap:wrap;gap:6px 12px;margin:8px 0 0;display:flex}.dept-cost-summary i{color:#66758a;font-size:11px;font-style:normal}.dept-cost-summary i b{color:#2c4d82;margin-left:5px}.ledger-charts{grid-template-columns:minmax(340px,.9fr) minmax(500px,1.35fr);gap:14px;margin-top:14px;display:grid}.ledger-charts>article{background:#fff;border:1px solid #dfe5ed;border-radius:10px;min-height:275px;padding:17px 18px}.ledger-charts article>header{justify-content:space-between;align-items:flex-start;display:flex}.ledger-charts h3{color:#293c57;margin:3px 0 0;font-size:15px}.ledger-charts header p,.ledger-charts header span{color:#8390a1;margin:0;font-size:11px}.pie-layout{grid-template-columns:190px 1fr;align-items:center;gap:16px;margin-top:14px;display:grid}.pie-layout svg{width:180px;height:180px}.pie-layout text{fill:#54657b;font-size:6px;font-weight:600}.pie-layout p{color:#64748b;grid-template-columns:8px 1fr auto;align-items:center;gap:7px;margin:10px 0;font-size:12px;display:grid}.pie-layout p i{border-radius:2px;width:8px;height:8px}.pie-layout p b{color:#31465f}.dept-bars{gap:12px;margin-top:25px;display:grid}.dept-bars span{color:#5f6f84;justify-content:space-between;font-size:12px;display:flex}.dept-bars span b{color:#2d425f}.dept-bars>div>i{background:#edf1f5;border-radius:4px;height:8px;margin-top:5px;display:block;overflow:hidden}.dept-bars em{background:#315fda;border-radius:4px;height:100%;display:block}.trend-chart{margin-top:18px}.trend-chart svg{width:100%;height:175px;overflow:visible}.trend-chart line{stroke:#e4e9f0;stroke-width:.5px}.trend-chart polyline{fill:none;stroke:#315fda;stroke-width:2px;vector-effect:non-scaling-stroke}.trend-chart circle{fill:#fff;stroke:#315fda;stroke-width:1px;vector-effect:non-scaling-stroke}.trend-chart>div{color:#8794a5;justify-content:space-between;font-size:9px;display:flex}.chart-empty{color:#8b97a7;place-items:center;min-height:200px;font-size:13px;display:grid}.ledger-table-meta{color:#69798e;background:#f7f9fc;border:1px solid #dfe5ed;border-bottom:0;border-radius:10px 10px 0 0;gap:20px;margin-top:14px;padding:10px 14px;font-size:12px;display:flex}.ledger-table-meta b{color:#2f4b70}.ledger-table-meta .danger{color:#b63846}.ledger-table{border-radius:0}.ledger-table .payroll-anomaly td{background:#fff4f4}.ledger-table .payroll-anomaly:hover td{background:#ffecee}.ledger-row-actions,.social-actions{flex-wrap:wrap;gap:5px 10px;display:flex}.ledger-row-actions button,.social-actions button{color:#315fda;cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.ledger-row-actions button:disabled,.social-actions button:disabled{color:#a3adba}.ledger-history{border:1px solid #e1e6ed;border-radius:8px;gap:0;display:grid;overflow:hidden}.ledger-history article{color:#617087;border-bottom:1px solid #e8ecf2;grid-template-columns:90px 1fr 1fr 80px;gap:12px;padding:13px;font-size:12px;display:grid}.ledger-history article:last-child{border:0}.ledger-history time,.ledger-history b{color:#2d466a}.ledger-history i{text-align:right;font-style:normal}.social-summary{background:#fff;border:1px solid #dfe5ed;border-radius:10px;grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:14px;display:grid}.social-summary>div{border-right:1px solid #e8edf3;padding:17px 19px}.social-summary>div:last-child{border:0}.social-summary small{color:#78879a;margin-left:5px;font-size:12px}.social-filters{background:#fff;border:1px solid #dfe5ed;border-radius:10px 10px 0 0;grid-template-columns:minmax(220px,1.2fr) repeat(3,minmax(150px,.8fr)) auto;align-items:end;gap:10px;padding:14px;display:grid}.social-table{min-width:1840px}.social-status{border-radius:5px;padding:4px 8px;font-size:12px;display:inline-flex}.social-status.on{color:#28765b;background:#e8f6ef}.social-status.off{color:#6f7b8b;background:#f0f2f5}.social-note{text-overflow:ellipsis;max-width:170px;overflow:hidden}@media (max-width:1350px){.ledger-filters{grid-template-columns:repeat(4,minmax(0,1fr))}.ledger-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ledger-kpis .dept-cost-summary{grid-column:1/-1}.ledger-charts{grid-template-columns:1fr}}@media (max-width:720px){.salary-workspace{margin:-20px -14px 0}.salary-workspace>.salary-page,.salary-workspace>.payroll-ledger-page{padding-inline:14px}.ledger-filters,.ledger-kpis,.ledger-charts,.social-summary,.social-filters{grid-template-columns:1fr}.ledger-kpis>div,.social-summary>div{border-bottom:1px solid #e7ebf1;border-right:0}.pie-layout{grid-template-columns:1fr}.ledger-table-meta{flex-wrap:wrap}.ledger-history article{grid-template-columns:1fr 1fr}.ledger-history i{text-align:left}}.payroll-ledger-page .salary-column-control>div{max-height:60vh;overflow:auto}@media (max-width:720px){.workspace-tabs{padding:8px 14px 0}.workspace-tabs+*{padding-top:16px}}.linked-chart-grid{grid-template-columns:minmax(320px,.82fr) minmax(420px,1.18fr);gap:14px;margin:14px 0;display:grid}.linked-chart-card{background:#fff;border:1px solid #dfe5ed;border-radius:10px;min-height:250px;padding:18px 20px;box-shadow:0 1px 3px #20304e0a}.linked-chart-card>header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:17px;display:flex}.linked-chart-card h3{color:#293c57;margin:0;font-size:15px;line-height:1.45}.linked-chart-card header p{color:#7d8999;margin:4px 0 0;font-size:12px;line-height:1.5}.chart-clear{color:#315fda;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #d4ddeb;border-radius:6px;min-height:32px;padding:5px 9px;font-size:12px}.linked-donut-layout{grid-template-columns:170px minmax(0,1fr);align-items:center;gap:22px;display:grid}.linked-donut{border-radius:50%;place-items:center;width:156px;height:156px;margin:auto;display:grid}.linked-donut>span{text-align:center;background:#fff;border-radius:50%;place-items:center;width:88px;height:88px;display:grid;box-shadow:0 0 0 1px #263c5d0a}.linked-donut b{color:#263c5d;font-variant-numeric:tabular-nums;align-self:end;font-size:19px}.linked-donut small{color:#8995a5;align-self:start;font-size:11px}.linked-chart-legend{gap:4px;display:grid}.linked-chart-legend button{color:#607086;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:34px;padding:6px 8px;display:grid}.linked-chart-legend button:hover,.linked-chart-legend button.active{background:#f5f8fd;border-color:#cdd9ec}.linked-chart-legend i{border-radius:2px;width:9px;height:9px}.linked-chart-legend b{color:#2e4564;font-variant-numeric:tabular-nums;font-size:12px}.linked-chart-legend span{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.linked-bars{gap:7px;display:grid}.linked-bars button{color:#5e6f85;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;grid-template-columns:minmax(88px,140px) minmax(100px,1fr) minmax(76px,auto);align-items:center;gap:10px;min-height:28px;padding:3px 6px;display:grid}.linked-bars button:hover,.linked-bars button.active{background:#f5f8fd;border-color:#cdd9ec}.linked-bars button>span{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.linked-bars button>i{background:#edf1f5;border-radius:4px;height:8px;display:block;overflow:hidden}.linked-bars button em{border-radius:4px;height:100%;display:block}.linked-bars button>b{color:#2f4768;font-variant-numeric:tabular-nums;text-align:right;font-size:12px}.linked-chart-empty{color:#8a96a6;text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:160px;display:flex}.linked-chart-empty b{color:#65758a;font-size:14px}.linked-chart-empty span{margin-top:6px;font-size:12px}.pie-legend-actions{gap:3px;display:grid}.pie-legend-actions button{color:#64748b;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;grid-template-columns:8px 1fr auto;align-items:center;gap:7px;min-height:32px;padding:5px 7px;display:grid}.pie-legend-actions button:hover,.pie-legend-actions button.active,.linked-dept-bars button:hover,.linked-dept-bars button.active{background:#f5f8fd;border-color:#cdd9ec}.pie-legend-actions i{border-radius:2px;width:8px;height:8px}.pie-legend-actions b{color:#31465f}.linked-dept-bars button{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;gap:5px;padding:6px;display:grid}.linked-dept-bars button>i{background:#edf1f5;border-radius:4px;height:8px;display:block;overflow:hidden}.linked-dept-bars button em{background:#315fda;border-radius:4px;height:100%;display:block}.trend-chart>div button{color:#8794a5;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:3px 4px;font-size:9px}.trend-chart>div button:hover,.trend-chart>div button.active{color:#315fda;background:#f5f8fd;border-color:#cdd9ec}@media (max-width:1100px){.linked-chart-grid{grid-template-columns:1fr}}@media (max-width:620px){.linked-chart-card{padding:16px}.linked-donut-layout{grid-template-columns:1fr}.linked-bars button{grid-template-columns:92px minmax(80px,1fr) auto}}.identity-file-list{gap:16px;max-height:65vh;padding:24px;display:grid;overflow:auto}.identity-file-list article{border:1px solid var(--line);border-radius:8px;min-width:0;padding:16px}.identity-file-list small{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;display:block}.identity-file-list p{color:var(--muted);margin:8px 0;font-size:13px}.identity-file-list .document-actions{flex-wrap:wrap}.salary-page .salary-table{min-width:1480px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}:root{--cw-brand:#1456f0;--cw-brand-hover:#1048ce;--cw-brand-active:#113cb0;--cw-brand-soft:#eef4ff;--cw-brand-border:#ccdafa;--cw-accent:#477b83;--cw-accent-soft:#edf6f6;--cw-page:#f7fafc;--cw-surface:#fff;--cw-surface-subtle:#f8fafc;--cw-table-head:#f8fbfc;--cw-hover:#f4f8ff;--cw-ink:#182230;--cw-body:#334155;--cw-muted:#64748b;--cw-label:#6b788c;--cw-disabled:#94a3b8;--cw-line:#edf1f5;--cw-line-strong:#e1e7ee;--cw-success:#287a58;--cw-success-soft:#eaf6f0;--cw-warning:#a86416;--cw-warning-soft:#fff6e8;--cw-danger:#c2414d;--cw-danger-soft:#fff0f1;--cw-shadow-xs:0 3px 10px #1e467809;--cw-shadow-sm:0 5px 18px #1e46780d;--cw-shadow-modal:0 24px 64px #1720332e;--cw-radius-sm:6px;--cw-radius:8px;--cw-radius-lg:10px;--cw-sidebar:240px;--cw-page-gutter:32px;--cw-page-top:24px;--cw-page-bottom:40px;--ink:var(--cw-ink);--muted:var(--cw-muted);--line:var(--cw-line);--blue:var(--cw-brand);--bg:var(--cw-page)}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--cw-page);font-size:16px}body{background:var(--cw-page);color:var(--cw-body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Microsoft YaHei,Segoe UI,Arial,sans-serif;font-size:14px;line-height:1.55}button,input,select,textarea{font-family:inherit}button,a,input,select,textarea{transition:background-color .16s,border-color .16s,color .16s,box-shadow .16s,opacity .16s}button:focus-visible{outline-offset:2px;outline:2px solid #315fd6b8}a:focus-visible{outline-offset:2px;outline:2px solid #315fd6b8}input:focus-visible{outline-offset:2px;outline:2px solid #315fd6b8}select:focus-visible{outline-offset:2px;outline:2px solid #315fd6b8}textarea:focus-visible{outline-offset:2px;outline:2px solid #315fd6b8}[tabindex]:focus-visible{outline-offset:2px;outline:2px solid #315fd6b8}::selection{color:var(--cw-ink);background:#dce6ff}.app-shell{grid-template-columns:var(--cw-sidebar) minmax(0, 1fr);background:var(--cw-page);min-height:100vh}.sidebar{z-index:10;border-right:1px solid var(--cw-line);background:var(--cw-surface);height:100vh;box-shadow:none;padding:20px 12px 16px}.brand{gap:12px;min-height:48px;padding:0 10px 20px}.brand-mark{background:var(--cw-brand);width:36px;height:36px;box-shadow:none;color:#fff;border-radius:9px;font-size:18px;font-weight:750}.brand strong{color:var(--cw-ink);letter-spacing:0;font-size:16px;font-weight:700}.brand small{color:var(--cw-muted);letter-spacing:0;margin-top:1px;font-size:12px}.nav-kicker{color:var(--cw-label);letter-spacing:0;margin:4px 12px 8px;font-size:12px;font-weight:600}.nav-group{position:relative}.nav-item{border-radius:var(--cw-radius);color:#526176;grid-template-columns:20px 1fr 12px;gap:10px;min-height:40px;margin:2px 0;padding:8px 12px;font-size:14px;position:relative}.nav-item>span:first-child{color:#76849a;text-align:center;font-size:16px;font-weight:500;line-height:1}.nav-item b{color:#8b98aa;font-size:15px}.nav-item:hover{background:var(--cw-hover);color:var(--cw-ink)}.nav-item.active{background:var(--cw-brand-soft);color:var(--cw-brand);font-weight:650}.nav-item.active>span:first-child{color:var(--cw-brand)}.nav-item.active:before{display:none}.nav-children{gap:2px;margin:2px 0 8px;padding-left:30px;display:grid}.nav-children button{border-radius:var(--cw-radius-sm);min-height:34px;color:var(--cw-muted);text-align:left;cursor:pointer;background:0 0;border:0;padding:7px 10px;font-size:13px;line-height:20px}.nav-children button:hover{background:var(--cw-hover);color:var(--cw-body)}.nav-children button.active{background:var(--cw-brand-soft);color:var(--cw-brand);font-weight:650}.sidebar-foot{border:1px solid var(--cw-line);border-radius:var(--cw-radius);background:var(--cw-surface-subtle);color:var(--cw-body);padding:11px 12px;font-size:12px}.sidebar-foot small{color:var(--cw-muted);margin:3px 0 0 14px;font-size:12px}.pulse,.live-dot{background:var(--cw-success);box-shadow:none}.main-panel{background:var(--cw-page);min-width:0}.topbar{z-index:9;height:auto;min-height:88px;padding:20px var(--cw-page-gutter);border-bottom:1px solid var(--cw-line);background:var(--cw-page);box-shadow:none;flex-flow:wrap;align-items:center;gap:12px 24px;position:sticky;top:0}.topbar-heading{flex:220px;min-width:0}.eyebrow{line-height:18px;color:var(--cw-muted)!important;margin:0 0 2px!important;font-size:12px!important}.topbar h1{color:var(--cw-ink);letter-spacing:0;margin:0;font-size:20px;font-weight:700;line-height:28px}.topbar h1 span{font-size:16px}.topbar .topbar-context{color:var(--cw-muted);overflow-wrap:anywhere;margin:6px 0 0;font-size:12px;line-height:20px;display:block}.top-actions{flex:0 auto;gap:16px;width:auto;min-width:0;margin-left:auto}.search{border:1px solid var(--cw-line);width:300px;height:40px;color:var(--cw-muted);background:#fff;border-radius:24px;padding:0 12px;font-size:13px}.search:hover{background:#fff;border-color:#b9c6d8}.search kbd{border:1px solid var(--cw-line-strong);color:var(--cw-label);box-shadow:none;background:#fff;border-radius:5px;padding:2px 6px;font-size:11px}.icon-button{border:1px solid var(--cw-line);width:40px;height:40px;color:var(--cw-body);cursor:pointer;background:#fff;border-radius:50%;place-items:center;display:inline-grid}.icon-button:hover,.profile>button:hover,.users-button:hover{border-color:var(--cw-brand-border);background:var(--cw-brand-soft);color:var(--cw-brand)}.icon-button i{background:var(--cw-danger);border:2px solid #fff;min-width:17px;padding:1px 4px;font-size:10px;top:-5px;right:-5px}.profile{border-left:0;gap:9px;padding-left:0}.profile img{object-fit:cover;border-radius:50%;width:100%;height:100%}.profile>div{overflow-wrap:anywhere;max-width:100px}.profile>span{background:var(--cw-brand-soft);width:36px;height:36px;color:var(--cw-brand);border-radius:50%;font-size:14px}.profile b{color:var(--cw-ink);font-size:13px}.profile small{color:var(--cw-muted);margin-top:0;font-size:12px}.profile>button,.users-button{border:1px solid var(--cw-line-strong);border-radius:var(--cw-radius-sm);min-height:32px;color:var(--cw-muted);background:#fff;padding:5px 9px;font-size:12px}.users-button{color:var(--cw-brand)}.search-popover,.notice-popover{border:1px solid var(--cw-line);border-radius:var(--cw-radius-lg);box-shadow:var(--cw-shadow-modal);background:#fff}.search-popover label,.notice-popover header{border-bottom-color:var(--cw-line)}.search-popover input{color:var(--cw-ink);font-size:14px}.search-results button,.notice-popover>button{font-size:13px}.search-results button:hover,.notice-popover>button:hover{background:var(--cw-hover)}.content,.records-main,.employee-main,.employee-panel,.employee-page,.salary-page,.payroll-page,.payroll-ledger-page,.social-page,.performance-page,.contract-page,.lifecycle-page,.attendance-page,.monthly-attendance-page,.rank-page,.renewal-page,.termination-page,.document-main,.archive-main,.profile-maintenance{color:var(--cw-body)}.records-main,.employee-main,.employee-panel,.employee-page{min-width:0;padding:var(--cw-page-top) var(--cw-page-gutter) var(--cw-page-bottom)}.content{max-width:1520px;padding:24px 32px 40px}.records-layout{grid-template-columns:196px minmax(0,1fr);min-height:calc(100vh - 72px)}.subnav{border-right:1px solid var(--cw-line);background:var(--cw-surface-subtle);padding:20px 12px}.subnav p{color:var(--cw-label);margin:0 10px 10px;font-size:12px;font-weight:650}.subnav button{border-radius:var(--cw-radius-sm);min-height:36px;color:var(--cw-muted);padding:8px 10px;font-size:13px}.subnav button:hover{color:var(--cw-body);background:#fff}.subnav button.selected{background:var(--cw-brand-soft);color:var(--cw-brand);font-weight:650}.records-main{padding:28px 32px 40px}.records-title,.employee-page-head{align-items:flex-start;margin-bottom:20px}.records-title p,.employee-page-head p,.employee-page-head small{color:var(--cw-muted);margin:0 0 4px;font-size:12px;line-height:18px}.records-title h2,.employee-page-head h1,.employee-page-head h2{color:var(--cw-ink);letter-spacing:0;margin:0 0 4px;font-size:24px;font-weight:700;line-height:32px}.records-title span,.module-description,.employee-notice,.payroll-notice,.salary-note,.payroll-help{color:var(--cw-muted);font-size:13px;line-height:20px}.module-description{margin:-12px 0 18px}.records-actions,.employee-actions{align-items:center;gap:8px}.records-actions button,.employee-actions button,.primary,.attendance-template-link,.chart-clear,.modal-foot button,.modal-inline-actions button,.attendance-pagination button,.ledger-filters>button,.social-filters>button,.lifecycle-filters>button,.payroll-filters>button,.salary-filters>button,.profile-filters>button,.contract-filters>button,.document-filters>button,.rank-filters>button,.renewal-filters>button,.termination-filters>button{border:1px solid var(--cw-line-strong);border-radius:var(--cw-radius);min-height:40px;color:var(--cw-body);cursor:pointer;background:#fff;justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-size:14px;font-weight:550;line-height:20px;text-decoration:none;display:inline-flex}.records-actions button:hover,.employee-actions button:hover,.attendance-template-link:hover,.chart-clear:hover,.modal-foot button:hover,.modal-inline-actions button:hover{border-color:var(--cw-brand-border);background:var(--cw-brand-soft);color:var(--cw-brand)}.primary,.add,.auth-submit,.attendance-import-button,.attendance-danger-button,.modal-inline-actions button.primary{font-weight:650;border-color:var(--cw-brand)!important;background:var(--cw-brand)!important;color:#fff!important;box-shadow:none!important}.primary:hover,.add:hover,.auth-submit:hover,.attendance-import-button:hover,.modal-inline-actions button.primary:hover{border-color:var(--cw-brand-hover)!important;background:var(--cw-brand-hover)!important}.primary:active,.add:active,.auth-submit:active{border-color:var(--cw-brand-active)!important;background:var(--cw-brand-active)!important}.attendance-danger-button{border-color:var(--cw-danger)!important;background:var(--cw-danger)!important}button:disabled,input:disabled,select:disabled,textarea:disabled{opacity:.52;cursor:not-allowed!important}.row-action,.name-link,.payroll-link,.rank-link-preview,.salary-link-preview,.ledger-row-actions button,.social-actions button,.contract-row-actions button,.profile-row-actions button,.salary-row-actions button,.lifecycle-row-actions button,.service-row-actions button,.performance-action-cell button{color:var(--cw-brand);font-size:13px;font-weight:550}.toolbar,.employee-filters,.salary-filters,.payroll-filters,.ledger-filters,.social-filters,.profile-filters,.contract-filters,.document-filters,.lifecycle-filters,.attendance-filters,.rank-filters,.renewal-filters,.termination-filters,.registration-filters,.performance-filters{border-color:var(--cw-line);border-radius:var(--cw-radius-lg) var(--cw-radius-lg) 0 0;box-shadow:var(--cw-shadow-xs);background:#fff;gap:12px;padding:16px}.toolbar label,.employee-search,.salary-search,.lifecycle-filters label,.performance-period{border:1px solid var(--cw-line-strong);border-radius:var(--cw-radius);min-height:40px;color:var(--cw-label);background:#fff;font-size:14px}.toolbar input,.toolbar select,.toolbar button,.employee-filters input,.employee-filters select,.salary-filters input,.salary-filters select,.payroll-filters input,.payroll-filters select,.ledger-filters input,.ledger-filters select,.social-filters input,.social-filters select,.profile-filters input,.profile-filters select,.contract-filters input,.contract-filters select,.document-filters input,.document-filters select,.lifecycle-filters input,.lifecycle-filters select,.attendance-filters input,.attendance-filters select,.rank-filters input,.rank-filters select,.renewal-filters input,.renewal-filters select,.termination-filters input,.termination-filters select,.registration-filters input,.registration-filters select,.performance-filters input,.performance-filters select{border:1px solid var(--cw-line-strong);border-radius:var(--cw-radius);min-height:40px;color:var(--cw-body);background:#fff;font-size:13px}.toolbar input,.toolbar label input,.lifecycle-filters label input,.lifecycle-filters label select{border:0}.ledger-filters label,.social-filters label,.salary-filters label,.payroll-filters label,.profile-filters label,.contract-filters label,.document-filters label,.rank-filters label,.renewal-filters label,.termination-filters label,.performance-filters label{color:var(--cw-label);font-size:12px;font-weight:600}.toolbar label:focus-within,.employee-search:focus-within,.salary-search:focus-within,.lifecycle-filters label:focus-within,.performance-period:focus-within{border-color:var(--cw-brand);box-shadow:0 0 0 3px #315fd61f}input::placeholder,textarea::placeholder{color:var(--cw-muted)}.sync-banner,.employee-notice,.payroll-notice,.attendance-import-meta,.attendance-selection,.termination-source,.performance-policy,.presales-import-bar{border-radius:var(--cw-radius);color:#4f6285;background:#f3f6fd;border-color:#d8e3fb;font-size:13px}.sync-banner b,.sync-banner small{font-size:12px}.sync-banner small{color:var(--cw-muted)}.attendance-permission-note,.attendance-source-note,.archive-lock-note,.termination-lock-note,.salary-security-note{background:var(--cw-warning-soft);color:#7a5b2d;border-color:#eadcc2;font-size:13px}.employee-message,.salary-message,.performance-message,.admin-message,.payroll-error,.salary-error,.quick-todo-error,.form-error,.form-errors{border-radius:var(--cw-radius);font-size:13px;line-height:20px}.card,.module-metrics article,.employee-summary,.salary-summary,.payroll-summary,.ledger-kpis,.social-summary,.profile-summary,.contract-summary,.document-summary,.lifecycle-summary,.attendance-summary,.rank-summary,.rank-stats,.archive-card,.hr-card,.linked-chart-card,.ledger-charts>article,.attendance-connection-grid article,.sync-runs>header,.performance-summary,.service-pool,.service-preview,.presales-rule-card,.performance-fold{border-color:var(--cw-line);border-radius:var(--cw-radius-lg);background:var(--cw-surface);box-shadow:var(--cw-shadow-xs)}.employee-summary,.salary-summary,.profile-summary,.contract-summary,.document-summary,.attendance-summary,.payroll-summary,.ledger-kpis,.social-summary,.performance-summary{box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:stretch;gap:16px;margin-bottom:20px;padding:0;display:grid}.employee-summary>span,.salary-summary>span,.profile-summary>span,.contract-summary>span,.document-summary>span,.attendance-summary>span,.performance-summary>span,.payroll-summary>div,.ledger-kpis>div,.social-summary>div{border:1px solid var(--cw-line);border-radius:var(--cw-radius-lg);min-width:0;box-shadow:var(--cw-shadow-sm);color:var(--cw-muted);background:#fff;margin:0;padding:18px 20px;font-size:14px;line-height:22px;display:block}.employee-summary>span>b,.salary-summary>span>b,.profile-summary>span>b,.contract-summary>span>b,.document-summary>span>b,.attendance-summary>span>b,.performance-summary>span>b,.payroll-summary strong,.ledger-kpis strong,.social-summary strong{color:var(--cw-ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:8px 0 0;font-size:24px;font-weight:700;line-height:32px;display:block}.employee-main .employee-summary>span:last-child,.attendance-summary>.archive-policy{box-shadow:none;color:var(--cw-muted);background:0 0;border:0;grid-column:1/-1;padding:0;font-size:12px}.profile-summary .profile-risk-number,.document-summary .risk-number,.attendance-summary .danger-text{color:var(--cw-danger)}.employee-main .employee-summary,.ledger-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.payroll-summary>div:last-child,.ledger-kpis>div:last-child,.social-summary>div:last-child{border:1px solid var(--cw-line)}.module-metrics article,.employee-summary>div,.salary-summary>div,.payroll-summary>div,.ledger-kpis>div,.social-summary>div,.performance-summary>div{border-color:var(--cw-line);padding:18px 20px}.module-metrics span,.employee-summary span,.salary-summary span,.payroll-summary span,.ledger-kpis span,.social-summary span,.performance-summary span{color:var(--cw-muted);font-size:12px;line-height:18px}.module-metrics b,.employee-summary b,.salary-summary b,.payroll-summary b,.ledger-kpis>div>b,.social-summary>div>b,.performance-summary b{color:var(--cw-ink);font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;line-height:32px}.card h2,.linked-chart-card h3,.ledger-charts h3,.sync-runs h3,.presales-rule-card h3{color:var(--cw-ink);font-size:16px;font-weight:650;line-height:24px}.card-head p,.linked-chart-card header p,.ledger-charts header p,.ledger-charts header span,.sync-runs p{color:var(--cw-muted);font-size:12px;line-height:18px}.table-card,.employee-table,.salary-table-wrap,.payroll-table-wrap,.performance-table-wrap,.lifecycle-table-wrap,.contract-table,.document-table,.rank-table,.renewal-table,.termination-table,.ledger-table,.social-table,.user-table{border-color:var(--cw-line);border-radius:0 0 var(--cw-radius-lg) var(--cw-radius-lg);box-shadow:var(--cw-shadow-xs);background:#fff}.app-shell table{color:var(--cw-body);font-size:14px;line-height:22px}.app-shell table th,.table-card th,.employee-table th,.salary-table th,.payroll-table th,.performance-table th,.lifecycle-table th,.contract-table th,.document-table th,.rank-table th,.renewal-table th,.termination-table th{border-bottom:1px solid var(--cw-line);background:var(--cw-table-head);color:#59677b;letter-spacing:0;padding:14px 16px;font-size:14px;font-weight:500;line-height:22px}.app-shell table td,.table-card td,.employee-table td,.salary-table td,.payroll-table td,.performance-table td,.lifecycle-table td,.contract-table td,.document-table td,.rank-table td,.renewal-table td,.termination-table td{color:var(--cw-body);border-bottom:1px solid #edf0f4;padding:16px;font-size:14px;line-height:22px}.app-shell table tbody tr:hover td,.table-card tr:hover td,.employee-table tbody tr:hover td,.salary-table tbody tr:hover td,.payroll-table tbody tr:hover td,.performance-table tbody tr:hover td,.lifecycle-table tbody tr:hover td{background:var(--cw-hover)}.name-cell>span,.hr-avatar{background:var(--cw-brand-soft);color:var(--cw-brand);border-radius:50%}.name-cell,.employee-name{color:var(--cw-ink);font-size:14px;font-weight:600}.status,.attendance-status,.sync-status,.social-status,.payroll-badge,.lifecycle-status,.lifecycle-state,.countdown-badge,.attendance-full{color:#566579;background:#eef1f5;border-radius:4px;min-width:auto;padding:3px 8px;font-size:12px;font-weight:550;line-height:20px}.status:not(.risk),.status-正常,.status-请假,.status-出差,.status-外出,.sync-status.completed,.social-status.on,.lifecycle-state.complete,.attendance-full-是{background:var(--cw-success-soft);color:var(--cw-success)}.status.risk,.sync-status.failed,.lifecycle-status.被动离职,.lifecycle-status.试用期离职,.countdown-badge.danger{background:var(--cw-danger-soft);color:var(--cw-danger)}.status-迟到,.status-早退,.status-迟到早退,.status-加班,.sync-status.completed_with_warnings,.countdown-badge.warning{background:var(--cw-warning-soft);color:var(--cw-warning)}.pagination,.attendance-pagination{border-color:var(--cw-line);min-height:52px;color:var(--cw-muted);background:#fff;padding:10px 14px;font-size:12px}.pagination button,.pagination select,.attendance-pagination button{border:1px solid var(--cw-line-strong);border-radius:var(--cw-radius-sm);min-width:32px;min-height:32px;color:var(--cw-body);background:#fff;font-size:12px}.batchbar,.salary-selection,.payroll-selection{color:#4f6285;background:#f2f5fd;border-color:#d7e1f8;min-height:44px;padding:8px 14px;font-size:12px}.batchbar button,.salary-selection button,.payroll-selection button,.attendance-selection button{border:1px solid var(--cw-line-strong);border-radius:var(--cw-radius-sm);min-height:32px;color:var(--cw-brand);background:#fff;padding:5px 10px;font-size:12px}.empty,.employee-empty,.archive-empty,.chart-empty,.linked-chart-empty,.dashboard-empty{color:var(--cw-muted);font-size:13px;line-height:20px}.hero-row{min-height:32px;color:var(--cw-body);margin:0 0 12px;font-size:12px}.hero-row p,.hero-row button{color:var(--cw-muted);font-size:12px}.hero-row button{color:var(--cw-brand);font-weight:600}.metric-grid{box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;overflow:visible}.metric-card{border:1px solid var(--cw-line);border-radius:var(--cw-radius-lg);min-height:136px;box-shadow:var(--cw-shadow-sm);color:var(--cw-body);text-align:left;cursor:pointer;background:#fff;padding:18px 20px}.metric-card:last-child{border-right:1px solid var(--cw-line)}.metric-card:after{display:none}.metric-card:hover:not(:disabled){background:var(--cw-hover)}.metric-top>span{border-radius:50%;flex:0 0 32px;width:32px;height:32px;font-size:12px;background:var(--cw-brand-soft)!important;color:var(--cw-brand)!important}.metric-top{justify-content:flex-start;align-items:center;gap:12px}.hero-row p button,.card-head .primary,.card-head .add{white-space:nowrap;justify-content:center;align-items:center;gap:8px;display:inline-flex}.hero-row p button svg,.card-head .primary svg,.card-head .add svg{flex:none}.metric-top small{color:var(--cw-muted);font-size:12px}.metric-card p{color:var(--cw-muted);margin:0;font-size:14px}.metric-card strong{color:var(--cw-ink);letter-spacing:0;font-variant-numeric:tabular-nums;margin:4px 0 4px 44px;font-size:24px;font-weight:700;line-height:34px;display:block}.metric-card em{color:var(--cw-muted);margin-left:44px;font-size:12px;display:block}.dashboard-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;margin-top:16px}.dashboard-grid .card{padding:20px}.flow-card,.todo-card{grid-column:span 7}.alert-card,.recruitment-card{grid-column:span 5}.card-head{gap:16px}.card-head button,.view-all{border:1px solid var(--cw-line-strong);border-radius:var(--cw-radius-sm);min-height:32px;color:var(--cw-muted);cursor:pointer;background:#fff;padding:5px 10px;font-size:12px}.card-head button:hover,.view-all:hover{border-color:var(--cw-brand-border);background:var(--cw-brand-soft);color:var(--cw-brand)}.legend{color:var(--cw-muted);gap:16px;margin-top:8px;font-size:12px}.legend span:before{border-radius:2px;width:8px;height:8px}.legend .in:before{background:var(--cw-brand)}.legend .out:before{background:#c6d0df}.chart{border-bottom:1px solid var(--cw-line);background:#fff;height:232px;padding:16px 12px 0}.bars{height:188px}.bars .flow-value{color:var(--cw-body);font-size:12px;line-height:20px}.employee-main .linked-chart-card{min-height:228px;padding:18px 20px}.employee-main .linked-donut{width:140px;height:140px}.bars i{background:var(--cw-brand);border-radius:3px 3px 0 0;width:11px}.bars i+i{background:#c6d0df}.bars small{color:var(--cw-muted);margin-top:8px;font-size:11px}.red-count{background:var(--cw-danger-soft);min-width:26px;color:var(--cw-danger);text-align:center;border-radius:999px;padding:3px 8px;font-size:12px}.alert-list{margin-top:12px}.alert-list>button{background:#fff;border-bottom:1px solid #edf0f4;grid-template-columns:34px 1fr auto 10px;gap:10px;min-height:54px;padding:10px 0}.alert-list>button:hover{background:var(--cw-hover)}.alert-icon{border-radius:var(--cw-radius);background:var(--cw-danger-soft);width:32px;height:32px;color:var(--cw-danger)}.alert-list b,.alert-list small{color:var(--cw-ink);font-size:13px}.alert-list small{color:var(--cw-muted);margin-top:2px;font-size:12px}.alert-list em{background:var(--cw-danger-soft);color:var(--cw-danger);border-radius:999px;padding:2px 7px;font-size:11px}.view-all{width:100%;color:var(--cw-brand);margin-top:12px}.todo-card,.recruitment-card{min-height:244px}.todo{border-bottom-color:#edf0f4;grid-template-columns:0 18px 1fr auto;gap:9px;min-height:54px;padding:10px 0}.todo>span{border-color:#bdc8d7;border-radius:4px;width:16px;height:16px}.todo b{color:var(--cw-ink);font-size:13px}.todo small{color:var(--cw-muted);margin-top:2px;font-size:12px}.todo em{color:var(--cw-muted);background:#eef1f5;border-radius:999px;padding:2px 7px;font-size:11px}.todo em.urgent{background:var(--cw-danger-soft);color:var(--cw-danger)}.todo input:checked+span{border-color:var(--cw-brand);background:var(--cw-brand)}.recruit-body{gap:28px;padding-top:24px}.donut{width:124px;height:124px}.donut strong{color:var(--cw-ink);font-size:26px}.donut span,.recruit-stats p{color:var(--cw-muted);font-size:12px}.recruit-stats b{color:var(--cw-ink);font-size:13px}.workspace-tabs{min-height:52px;padding:8px var(--cw-page-gutter) 0;border-bottom-color:var(--cw-line);background:var(--cw-page);gap:20px}.salary-workspace{margin:0}.salary-workspace>.salary-page,.salary-workspace>.payroll-ledger-page{padding-inline:var(--cw-page-gutter)}.integrated-workspace>.workspace-tabs+*,.salary-workspace>.workspace-tabs+*{padding-top:20px;padding-bottom:var(--cw-page-bottom)}.workspace-tabs button{min-height:44px;color:var(--cw-muted);padding:9px 4px;font-size:14px;font-weight:500}.workspace-tabs button:hover{background:var(--cw-hover);color:var(--cw-body)}.workspace-tabs button.active{border-bottom-color:var(--cw-brand);color:var(--cw-brand)}.linked-chart-grid,.ledger-charts{gap:16px;margin:16px 0}@media (min-width:1101px){.ledger-charts{grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr)}}.ledger-cost-layout{grid-template-columns:minmax(0,.9fr) minmax(135px,1fr);gap:12px}.ledger-cost-layout svg{justify-self:center;max-width:170px}.ledger-cost-legend span{overflow-wrap:normal}.ledger-cost-legend small{white-space:nowrap}.ledger-monthly-chart text{font-size:14px}@media (min-width:901px){.ledger-monthly-scroll svg{min-width:0}}@media (max-width:720px){.ledger-cost-layout{grid-template-columns:minmax(0,1fr)}}.employee-main .employee-summary{border-radius:var(--cw-radius-lg)}.employee-main .employee-summary:has(+.employee-message){border-radius:var(--cw-radius-lg) var(--cw-radius-lg) 0 0}.employee-main .employee-message{border-radius:0 0 var(--cw-radius-lg) var(--cw-radius-lg)}.employee-main .employee-filters{grid-template-columns:minmax(160px,1.45fr) repeat(5,minmax(92px,.78fr)) minmax(250px,1.4fr) 72px;align-items:center;gap:8px}.employee-main .employee-filters>*{min-width:0}.employee-main .date-filter{white-space:nowrap;grid-column:auto;grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;display:grid}.employee-main .date-filter input{width:100%;min-width:0}.employee-main .employee-filters>button{white-space:nowrap;width:100%}@media (max-width:1319px){.employee-main .employee-filters{grid-template-columns:repeat(5,minmax(0,1fr))}.employee-main .employee-search,.employee-main .date-filter{grid-column:span 2}}@media (max-width:900px){.employee-main .employee-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-main .employee-search,.employee-main .date-filter,.employee-main .employee-filters>button{grid-column:1/-1}}@media (max-width:620px){.employee-main .employee-filters{grid-template-columns:1fr}.employee-main .employee-search,.employee-main .date-filter,.employee-main .employee-filters>button{grid-column:auto}.employee-main .date-filter{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.employee-main .date-filter>span{grid-column:1/-1}}.linked-chart-card,.ledger-charts>article{min-height:270px;padding:20px}.linked-chart-legend button,.linked-bars button,.pie-legend-actions button,.linked-dept-bars button{border-radius:var(--cw-radius-sm);color:var(--cw-muted);font-size:12px}.linked-chart-legend button:hover,.linked-chart-legend button.active,.linked-bars button:hover,.linked-bars button.active,.pie-legend-actions button:hover,.pie-legend-actions button.active,.linked-dept-bars button:hover,.linked-dept-bars button.active{border-color:var(--cw-brand-border);background:var(--cw-brand-soft)}.trend-chart polyline,.trend-chart circle{stroke:var(--cw-brand)}.modal-backdrop,.detail-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:#1720337a}.modal,.user-modal,.employee-form-modal,.salary-modal,.salary-batch-modal,.payroll-dialog,.attendance-batch-modal,.contract-editor,.document-upload-modal,.rank-modal,.renewal-modal,.termination-modal,.lifecycle-modal,.profile-log-drawer,.salary-drawer,.payslip-drawer,.attendance-drawer,.lifecycle-drawer,.contract-drawer,.rank-drawer,.termination-drawer{border:1px solid var(--cw-line);box-shadow:var(--cw-shadow-modal);background:#fff;border-radius:14px}.modal-head,.payslip-drawer>header{border-bottom:1px solid var(--cw-line);background:#fff;align-items:center;min-height:64px;padding:16px 20px}.modal-head p,.payslip-drawer header p{color:var(--cw-muted);margin:0 0 2px;font-size:12px}.modal-head h3,.payslip-drawer header h3{color:var(--cw-ink);margin:0;font-size:18px;font-weight:650;line-height:26px}.modal-head>button,.payslip-drawer header button{border:1px solid var(--cw-line);border-radius:var(--cw-radius);background:var(--cw-surface-subtle);width:32px;height:32px;color:var(--cw-muted);font-size:18px}.form-grid,.employee-form-grid,.profile-form-grid,.contract-form-grid,.document-upload-grid,.service-form-grid,.probation-form,.rank-form,.renewal-form,.salary-form,.payroll-form-grid,.attendance-batch-form{gap:16px;padding:20px}.form-grid label,.employee-form-grid label,.profile-form-grid label,.contract-form-grid label,.document-upload-grid label,.service-form-grid label,.probation-form label,.rank-form label,.renewal-form label,.salary-form label,.payroll-form-grid label,.attendance-batch-form label{color:var(--cw-label);font-size:13px;font-weight:600;line-height:20px}.form-grid input,.form-grid select,.form-grid textarea,.employee-form-grid input,.employee-form-grid select,.employee-form-grid textarea,.profile-form-grid input,.profile-form-grid select,.profile-form-grid textarea,.contract-form-grid input,.contract-form-grid select,.contract-form-grid textarea,.document-upload-grid input,.document-upload-grid select,.document-upload-grid textarea,.service-form-grid input,.service-form-grid select,.service-reason textarea,.probation-form input,.probation-form select,.probation-form textarea,.rank-form input,.rank-form select,.rank-form textarea,.renewal-form input,.renewal-form select,.renewal-form textarea,.salary-form input,.salary-form select,.salary-form textarea,.payroll-form-grid input,.payroll-form-grid select,.payroll-form-grid textarea,.attendance-batch-form input,.attendance-batch-form select,.attendance-batch-form textarea,.lifecycle-single-form textarea,.employee-payslip-sign input{border:1px solid var(--cw-line-strong);border-radius:var(--cw-radius);min-height:40px;color:var(--cw-body);background:#fff;outline:0;padding:8px 11px;font-size:14px;line-height:22px}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.employee-form-grid input:focus,.employee-form-grid select:focus,.employee-form-grid textarea:focus,.profile-form-grid input:focus,.profile-form-grid select:focus,.profile-form-grid textarea:focus,.contract-form-grid input:focus,.contract-form-grid select:focus,.contract-form-grid textarea:focus,.service-form-grid input:focus,.service-reason textarea:focus,.probation-form input:focus,.probation-form select:focus,.probation-form textarea:focus,.rank-form input:focus,.rank-form select:focus,.rank-form textarea:focus,.renewal-form input:focus,.renewal-form select:focus,.renewal-form textarea:focus,.salary-form input:focus,.salary-form select:focus,.salary-form textarea:focus,.payroll-form-grid input:focus,.payroll-form-grid select:focus,.payroll-form-grid textarea:focus,.attendance-batch-form input:focus,.attendance-batch-form select:focus,.attendance-batch-form textarea:focus{border-color:var(--cw-brand);box-shadow:0 0 0 3px #315fd61f}.autosave{color:var(--cw-muted);font-size:12px}.modal-foot,.modal-inline-actions{border-top:1px solid var(--cw-line);background:var(--cw-surface-subtle);gap:8px;padding:12px 20px}.employee-search input,.salary-search input{background:0 0;border:0;min-width:0}.profile-filters{grid-template-columns:minmax(220px,1fr) minmax(150px,.65fr) minmax(150px,.65fr) auto}.profile-filters .employee-search{grid-column:auto}.profile-table{border-color:var(--cw-line);border-radius:0 0 var(--cw-radius-lg) var(--cw-radius-lg)}.profile-table td small{color:var(--cw-muted);font-size:12px}.profile-table td b{font-size:14px}.profile-row-actions button{color:var(--cw-brand);font-size:13px}.completion-bar{margin-right:48px;overflow:visible}.complete-tag,.incomplete-tag{font-size:12px}.profile-editor,.batch-profile-modal,.archive-edit-modal,.archive-trace{border:1px solid var(--cw-line);border-radius:var(--cw-radius-lg);box-shadow:var(--cw-shadow-modal);background:#fff}.profile-form-grid{padding:0}.profile-save-state{background:var(--cw-brand-soft);color:var(--cw-brand-active);border-color:var(--cw-brand-border)}.profile-log-drawer header h3,.archive-trace header h3{font-size:20px;line-height:28px}.profile-log-list footer,.archive-trace article span{color:var(--cw-muted);font-size:12px}.archive-main{background:var(--cw-page)}.archive-switcher{border-color:var(--cw-line);grid-template-columns:minmax(180px,1fr) minmax(220px,1.2fr) auto;gap:12px;padding:16px}.archive-hero{border:1px solid var(--cw-line);box-shadow:var(--cw-shadow-xs);grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:24px}.archive-identity>i{background:var(--cw-brand-soft);color:var(--cw-brand);border-radius:50%}.archive-identity span,.archive-hero dt,.archive-detail-grid dt,.archive-list span,.archive-documents span{color:var(--cw-muted);font-size:12px}.archive-hero dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.archive-counts{border-top:1px solid var(--cw-line);grid-column:1/-1;justify-content:flex-start;gap:32px;padding-top:16px}.archive-counts span{font-size:12px}.archive-layout{gap:20px}.archive-list{grid-template-columns:minmax(0,1fr)}.archive-list article,.archive-documents article{min-width:0}.archive-list article>div:last-child,.archive-documents article>div:last-child{white-space:normal;flex-wrap:wrap;justify-content:flex-end;min-width:0;max-width:100%}.archive-timeline article{grid-template-columns:14px 94px minmax(0,1fr) auto}@media (max-width:720px){.archive-timeline article{grid-template-columns:14px 76px minmax(0,1fr)}.archive-list article>div:last-child,.archive-documents article>div:last-child{justify-content:flex-start}}.document-filters>*{min-width:0}.employee-main .document-filters .employee-search{grid-column:auto}@media (max-width:1440px) and (min-width:901px){.document-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}.archive-detail-grid dd{white-space:normal;overflow-wrap:anywhere}.archive-card header small,.archive-list time,.archive-list em,.archive-timeline time,.archive-timeline span,.archive-documents a{font-size:12px}.archive-card header button,.archive-list button,.archive-documents button,.archive-timeline button{color:var(--cw-brand);font-size:13px}.performance-tabs{border-width:0 0 1px;border-color:var(--cw-line);background:0 0;border-radius:0;gap:20px;margin-bottom:16px;padding:0}.performance-tabs button{color:var(--cw-muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;padding:12px 4px;font-size:14px}.performance-tabs button.active{border-color:var(--cw-brand);color:var(--cw-brand);background:0 0}.performance-tabs button span{color:var(--cw-muted);background:var(--cw-surface-subtle)}.performance-fold>summary,.presales-rule-card>header{background:var(--cw-surface-subtle);color:var(--cw-ink)}.payroll-dialog::backdrop{background:#1720337a}.payroll-dialog>header{border-bottom:1px solid var(--cw-line);background:#fff;min-height:64px;padding:16px 20px}.payroll-dialog>header h3{color:var(--cw-ink);font-size:18px;line-height:26px}.payroll-dialog>header button{border:1px solid var(--cw-line);border-radius:var(--cw-radius);background:var(--cw-surface-subtle);width:32px;height:32px;color:var(--cw-muted)}.app-shell input[type=checkbox],.app-shell input[type=radio],.modal-backdrop input[type=checkbox],.payroll-dialog input[type=checkbox]{width:16px;height:16px;min-height:0;accent-color:var(--cw-brand);padding:0}@media (max-width:900px){.profile-filters,.archive-switcher{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-filters .employee-search,.archive-switcher>span{grid-column:1/-1}.archive-layout{grid-template-columns:minmax(0,1fr)}.archive-risk-card{grid-area:auto}}@media (max-width:620px){.employee-main .employee-summary,.employee-summary,.salary-summary,.profile-summary,.contract-summary,.document-summary,.attendance-summary,.payroll-summary,.ledger-kpis,.social-summary,.performance-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.profile-filters,.archive-switcher,.archive-hero,.archive-edit-grid{grid-template-columns:minmax(0,1fr)}.archive-hero dl{border-left:0}.archive-hero dl div{padding-left:0}.archive-documents{grid-template-columns:minmax(0,1fr)}.profile-table th:last-child,.profile-table td:last-child{box-shadow:none;position:static}.performance-tabs{flex-wrap:wrap}}.auth-page{background:#fff;grid-template-columns:minmax(420px,.9fr) minmax(480px,1.1fr)}.auth-brand{background:var(--cw-page);color:var(--cw-ink);border-right:1px solid var(--cw-line);padding:72px}.auth-brand:after{display:none}.auth-brand .brand-mark{background:var(--cw-brand);color:#fff}.auth-brand p{letter-spacing:.04em;margin:18px 0 52px;font-size:14px}.auth-brand h1{letter-spacing:-.03em;max-width:500px;margin:0 0 32px;font-size:40px;line-height:1.28}.auth-brand ul{color:var(--cw-muted);gap:14px;font-size:14px}.auth-brand li:before{background:var(--cw-brand-soft);width:20px;height:20px;color:var(--cw-brand);border-radius:50%}.auth-panel{padding:48px}.auth-card{width:min(420px,100%)}.auth-title>p{color:var(--cw-brand);letter-spacing:.08em;font-size:12px}.auth-title h2{color:var(--cw-ink);margin:8px 0 6px;font-size:28px;line-height:36px}.auth-title span{color:var(--cw-muted);font-size:14px}.auth-tabs{border-radius:var(--cw-radius);background:#f0f3f7;margin:28px 0 20px;padding:4px}.auth-tabs button{min-height:40px;color:var(--cw-muted);border-radius:6px;font-size:13px}.auth-tabs button.active{color:var(--cw-brand);box-shadow:var(--cw-shadow-xs);background:#fff}.auth-card form{gap:16px}.auth-card form label{color:var(--cw-label);font-size:13px}.auth-card input{border:1px solid var(--cw-line-strong);border-radius:var(--cw-radius);min-height:44px;color:var(--cw-ink);margin-top:7px;padding:10px 12px;font-size:14px}.auth-card input:focus{border-color:var(--cw-brand);box-shadow:0 0 0 3px #315fd61f}.auth-submit,.lark-sso{border-radius:var(--cw-radius);min-height:44px;font-size:14px}.auth-error{background:var(--cw-danger-soft);color:var(--cw-danger);border-color:#f2cdd1;font-size:13px}.auth-divider,.auth-security{color:var(--cw-muted);font-size:12px}.employee-payslip-shell{background:var(--cw-page);color:var(--cw-body);padding:48px 18px}.employee-payslip-card{border-color:var(--cw-line);border-radius:var(--cw-radius-lg);box-shadow:var(--cw-shadow-sm)}.employee-payslip-card>header{border-bottom-color:var(--cw-line);background:var(--cw-surface-subtle);padding:24px 28px}.employee-payslip-card h1{color:var(--cw-ink);font-size:24px}.employee-payslip-total{background:var(--cw-brand-soft);color:var(--cw-ink);padding:24px 28px}.employee-payslip-total strong{color:var(--cw-ink);font-size:32px}.employee-payslip-total span,.employee-payslip-total small{color:var(--cw-muted)}.employee-payslip-signed{background:var(--cw-success-soft);color:var(--cw-success)}@media (max-width:1180px){:root{--cw-page-gutter:24px}.topbar{padding-inline:24px}.search{width:220px}.content,.records-main{padding-inline:24px}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card:nth-child(3){border-right:1px solid var(--cw-line)}.metric-card:nth-child(-n+3){border-bottom:1px solid var(--cw-line)}.metric-card:last-child{border-right:1px solid var(--cw-line)}.flow-card,.todo-card,.alert-card,.recruitment-card{grid-column:span 12}}@media (max-width:900px){.records-layout{grid-template-columns:1fr}.subnav{border-right:0;border-bottom:1px solid var(--cw-line);background:#fff;padding:8px 12px}.subnav button{min-width:max-content}}@media (max-width:720px){:root{--cw-page-gutter:14px;--cw-page-top:18px;--cw-page-bottom:28px}.app-shell{grid-template-columns:1fr}.sidebar{height:auto;padding:10px 14px;position:static}.brand{min-height:44px;padding:0}.topbar{height:auto;min-height:64px;padding:12px 14px;position:static}.topbar h1{white-space:normal;font-size:18px;line-height:26px}.topbar h1 span{display:none}.content,.records-main{padding:18px 14px 28px}.records-title h2,.employee-page-head h1,.employee-page-head h2{font-size:21px;line-height:29px}.metric-grid{grid-template-columns:1fr 1fr}.metric-card,.metric-card:nth-child(3){border-right:1px solid var(--cw-line);border-bottom:1px solid var(--cw-line)}.metric-card:nth-child(2n),.metric-card:last-child{border-right:1px solid var(--cw-line)}.metric-card:last-child{border-bottom:1px solid var(--cw-line);grid-column:span 2}.dashboard-grid{gap:12px;margin-top:12px}.dashboard-grid .card{padding:16px}.workspace-tabs{padding-inline:var(--cw-page-gutter)}.integrated-workspace>.workspace-tabs+*,.salary-workspace>.workspace-tabs+*{padding-top:16px}.modal,.user-modal,.employee-form-modal,.salary-modal,.payroll-dialog{border-radius:var(--cw-radius-lg)}.auth-page{grid-template-columns:1fr}.auth-brand{display:none}.auth-panel{min-height:100vh;padding:28px 20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{.topbar,.sidebar,.subnav,.workspace-tabs,.records-actions,.employee-actions,.toolbar,.batchbar{display:none!important}body,.app-shell,.main-panel{background:#fff!important}}.app-shell{grid-template-columns:240px minmax(0,1fr)}.app-shell.sidebar-collapsed{grid-template-columns:76px minmax(0,1fr)}.sidebar{background:#fff;border-right:1px solid #edf0f5;flex-direction:column;height:100dvh;min-height:0;padding:20px 16px 16px;display:flex;position:sticky;top:0;overflow:visible}.sidebar .brand{flex:none;align-items:center;gap:10px;min-height:52px;padding:0 4px 18px;display:flex}.sidebar .brand-mark{background:#1456f0;border-radius:8px;flex:none;width:32px;height:32px;font-size:18px}.sidebar .sidebar-brand-copy{flex:1;min-width:0}.sidebar .brand strong{white-space:nowrap;font-size:16px;font-weight:650}.sidebar .brand small{color:#737b89;white-space:nowrap;font-size:12px}.sidebar .sidebar-toggle{color:#6b7280;cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;width:28px;height:32px;padding:0;display:inline-flex}.sidebar .sidebar-toggle:hover{color:#172033;background:#f3f5f9}.sidebar .mobile-navigation-toggle{display:none}.sidebar nav{scrollbar-width:thin;scrollbar-color:#dde2eb transparent;flex:1;min-height:0;max-height:none;margin:18px -4px 16px;padding:0 4px;display:block;overflow-y:auto}.sidebar .nav-group{margin-bottom:4px}.sidebar .nav-item{color:#636b7a;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;grid-template-columns:20px minmax(0,1fr) 14px;gap:12px;width:100%;min-height:44px;margin:0;padding:12px;font-size:14px;font-weight:400;line-height:20px;display:grid}.sidebar .nav-item>.sidebar-nav-label{font-size:14px;font-weight:inherit;white-space:nowrap}.sidebar .sidebar-nav-icon,.sidebar .sidebar-chevron{color:inherit;justify-content:center;align-items:center;display:inline-flex}.sidebar .nav-item>span.sidebar-nav-icon,.sidebar .nav-item.active>.sidebar-nav-icon{color:inherit}.sidebar .nav-item:hover{color:#172033;background:#f4f6fa;font-weight:400}.sidebar .nav-item.active,.sidebar .nav-item.active:hover{color:#fff;box-shadow:none;background:#1456f0;font-weight:600}.sidebar .nav-item.active:before{display:none}.sidebar .nav-children{border-left:1px solid #e8ecf3;gap:2px;margin:4px 0 8px 22px;padding:0 0 0 16px;display:grid}.sidebar .nav-children button{color:#697386;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;min-height:36px;padding:8px 10px;font-size:14px;font-weight:400;line-height:20px}.sidebar .nav-children button:hover{color:#172033;background:#f4f6fa;font-weight:400}.sidebar .nav-children button.active{color:#144bd3;background:#edf3ff;font-weight:600}.sidebar .sidebar-account{border-top:1px solid #edf0f5;flex:none;margin-top:auto;padding-top:12px;position:relative}.sidebar .sidebar-account-button{color:#172033;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;padding:10px 4px;display:flex}.sidebar .sidebar-account-button:hover{background:#f4f6fa}.sidebar .sidebar-avatar{color:#1456f0;background:#eaf0ff;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:14px;font-weight:600;display:grid;overflow:hidden}.sidebar .sidebar-avatar img{object-fit:cover;width:100%;height:100%}.sidebar .sidebar-account-copy{flex:1;min-width:0}.sidebar .sidebar-account-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;display:block;overflow:hidden}.sidebar .sidebar-account-copy small{color:#747c8b;margin-top:2px;font-size:12px;display:block}.sidebar .sidebar-account-chevron{color:#747c8b;flex:none}.sidebar .sidebar-account-actions{z-index:20;background:#fff;border:1px solid #e6eaf1;border-radius:10px;width:208px;padding:6px;position:absolute;bottom:calc(100% + 8px);left:0;box-shadow:0 6px 20px #17203314}.sidebar .sidebar-account-actions button{color:#334155;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;width:100%;min-height:40px;padding:10px;font-size:14px;display:flex}.sidebar .sidebar-account-actions button:hover{background:#f4f6fa}.sidebar button:focus-visible{outline-offset:2px;outline:2px solid #1456f0}.sidebar .nav-item.active:focus-visible{outline-color:#172033}@media (min-width:721px){.sidebar-collapsed .sidebar{padding:20px 16px 16px}.sidebar-collapsed .sidebar .brand{flex-direction:column;gap:10px;padding:0 0 14px}.sidebar-collapsed .sidebar-brand-copy,.sidebar-collapsed .sidebar-nav-label,.sidebar-collapsed .sidebar-chevron,.sidebar-collapsed .sidebar .nav-children,.sidebar-collapsed .sidebar-account-copy,.sidebar-collapsed .sidebar-account-chevron{display:none}.sidebar-collapsed .sidebar nav{overflow-y:auto}.sidebar-collapsed .sidebar .nav-item{justify-content:center;padding:12px;display:flex;position:relative}.sidebar-collapsed .sidebar .sidebar-account-button{justify-content:center}}@media (max-width:720px){.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.sidebar{border-bottom:1px solid #edf0f5;border-right:0;height:auto;padding:12px 16px;position:static}.sidebar .brand{min-height:40px;padding:0}.sidebar .desktop-navigation-toggle{display:none}.sidebar .mobile-navigation-toggle{width:40px;height:40px;display:inline-flex}.sidebar nav,.sidebar .sidebar-account{display:none}.mobile-navigation-open .sidebar nav{flex:none;max-height:50dvh;margin:16px -4px 12px;display:block;overflow-y:auto}.mobile-navigation-open .sidebar .sidebar-account{display:block}.sidebar .sidebar-account-actions{bottom:100%}}@media (prefers-reduced-motion:reduce){.sidebar button{transition:none}}@media print{.sidebar{display:none}.app-shell,.app-shell.sidebar-collapsed{display:block}}
