.hr-admin-root{--ink:#1a2b3c;--muted:#6b7c8a;--line:#e3ebf2;--soft:#f4f8fc;--page:#f3f7fb;--sky:#3b9eff;--sky-deep:#1f7ae0;--sky-pale:#e8f3ff;--brand:#1f7ae0;--brand-mid:#3b9eff;--brand-pale:#e8f3ff;--sun:#ffc53d;--sun-pale:#fff6d9;--ok:#2f9e7a;--ok-pale:#e4f7f0;--warn:#d4891a;--warn-pale:#fff3dc;--danger:#d45454;--danger-pale:#ffe8e8;--leave:#4a7fb5;--leave-pale:#e7f0fa;--extra:#3b8ec9;--extra-pale:#e5f3fc;--rest:#7a8794;--rest-pale:#eef1f4;--surface:#fff;--font-sans:"DM Sans", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;font-family:var(--font-sans);color:var(--ink);min-height:100%}.month-picker{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:2px;height:42px;padding:3px;display:inline-flex;position:relative}.month-picker.is-open{border-color:color-mix(in srgb, var(--sky-deep) 35%, var(--line))}.month-nav{width:34px;height:34px;color:var(--sky-deep);background:0 0;border:0;border-radius:9px;place-items:center;display:grid}.month-nav:hover{background:var(--sky-pale)}.month-nav svg{width:16px;height:16px}.month-display{min-width:108px;height:34px;color:var(--ink);cursor:pointer;background:linear-gradient(#f5f9fd,#eaf3fb);border:0;border-radius:9px;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.month-display-text{text-align:left;line-height:1.05;display:grid}.month-display-text em{color:var(--muted);font-size:10px;font-style:normal;font-weight:700}.month-display-text strong{font-size:14px;font-weight:800}.month-caret{width:14px;height:14px;color:var(--muted);transition:transform .18s}.month-picker.is-open .month-caret{transform:rotate(180deg)}.month-panel{z-index:30;border:1px solid var(--line);background:#fff;border-radius:16px;width:260px;padding:14px;position:absolute;top:calc(100% + 8px);right:0}.month-panel-year{border-bottom:1px solid var(--line);color:var(--ink);justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:10px;font-size:15px;font-weight:800;display:flex}.month-panel-year .month-nav{background:var(--soft)}.month-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.month-grid-item{background:var(--soft);height:40px;color:var(--ink);border:0;border-radius:10px;font-size:13px;font-weight:700;transition:background .15s,color .15s,transform .12s}.month-grid-item:hover{background:var(--sky-pale);color:var(--sky-deep)}.month-grid-item:active{transform:scale(.96)}.month-grid-item.active{color:#fff;background:linear-gradient(145deg,#1f7ae0,#3b9eff)}.month-today{background:var(--soft);width:100%;height:36px;color:var(--sky-deep);border:0;border-radius:10px;margin-top:10px;font-size:12px;font-weight:700}.month-today:hover{background:var(--sky-pale)}.portal-shell .month-picker{border-radius:8px;height:36px;padding:2px}.portal-shell .month-nav{border-radius:6px;width:30px;height:30px}.portal-shell .month-display{background:var(--soft);border-radius:6px;min-width:100px;height:30px}.portal-shell .month-grid-item.active{background:var(--sky)}.portal-shell .month-panel{border-radius:10px}.hr-admin-root .ghost-button,.hr-admin-root .secondary-button{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;padding:8px 12px;font-weight:600;transition:background .15s,border-color .15s}.hr-admin-root .ghost-button:hover,.hr-admin-root .secondary-button:hover{background:var(--sky-pale);border-color:#c5ddf8}.portal-content{width:min(680px,100% - 32px);margin:0 auto;padding:20px 0 72px}.portal-slip{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:hidden}.portal-slip-head{justify-content:space-between;align-items:start;gap:12px;padding:18px 18px 10px;display:flex}.portal-slip-eyebrow{color:var(--muted);letter-spacing:0;margin:0 0 4px;font-size:12px;font-weight:600}.portal-slip-name{color:var(--ink);flex-wrap:wrap;align-items:baseline;gap:8px;margin:0;font-size:20px;font-weight:700;line-height:1.25;display:flex}.portal-employee-meta{color:var(--muted);gap:4px;margin-top:8px;font-size:12px;font-weight:500;line-height:1.4;display:grid}.portal-slip-name em{color:var(--muted);font-size:13px;font-style:normal;font-weight:500}.portal-slip-head-meta{justify-items:end;gap:8px;display:grid}.slip-status-pill{white-space:nowrap;background:var(--soft);height:26px;color:var(--muted);border-radius:6px;align-items:center;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.slip-status-pill.is-generated{background:var(--sky-pale);color:var(--sky-deep)}.slip-status-pill.is-notified{color:#2f6fbf;background:#eef4ff}.slip-status-pill.is-confirmed{background:var(--sky-pale);color:var(--sky-deep)}.slip-status-pill.is-feedback{background:var(--warn-pale);color:var(--warn)}.slip-status-pill.is-resolved{background:var(--leave-pale);color:var(--leave)}.slip-status-pill.is-paid,.portal-ack-status.is-generated{background:var(--sky-pale);color:var(--sky-deep)}.portal-ack-status.is-notified{color:#2f6fbf;background:#eef4ff}.portal-ack-status.is-resolved{background:var(--leave-pale);color:var(--leave)}.portal-ack-status.is-paid{background:var(--sky-pale);color:var(--sky-deep)}.portal-ack-status.is-none{background:var(--soft);color:var(--muted)}.portal-slip-badge{display:none}.portal-slip-foot{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:10px;padding:12px 18px 16px;font-size:11px;font-weight:500;display:flex}.portal-mobile-actions{margin-top:12px;display:none}.portal-save-primary{background:var(--sky);border-radius:8px;width:100%;height:44px;font-size:15px}.portal-save-primary:hover:not(:disabled){background:var(--sky-deep)}.portal-save-btn{white-space:nowrap;border-radius:8px;align-items:center;gap:6px;height:36px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.portal-shell .portal-tools .hr-admin-root .ghost-button{border:1px solid var(--line);height:36px;color:var(--ink);background:#fff;border-radius:8px;padding:0 12px;font-size:13px;font-weight:600;transition:background .12s,border-color .12s,color .12s}.portal-shell .portal-tools .hr-admin-root .ghost-button:hover:not(:disabled){background:var(--soft);border-color:var(--line);color:var(--ink)}.portal-ack{border:1px solid color-mix(in srgb, var(--sky) 28%, var(--line));background:#fff;border-radius:10px;gap:12px;margin:10px 14px 8px;padding:14px;display:grid}.portal-ack-prominent{background:var(--sky-pale);border-color:color-mix(in srgb, var(--sky) 42%, var(--line))}.portal-ack-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.portal-ack-head strong{color:var(--ink);font-size:15px;font-weight:750}.portal-ack-status{background:var(--soft);border:0;border-radius:8px;gap:4px;padding:10px 12px;display:grid}.portal-ack-status.is-confirmed{background:var(--sky-pale);color:var(--sky-deep)}.portal-ack-status.is-feedback{background:var(--warn-pale);color:var(--warn)}.portal-ack-status strong{font-size:13px;font-weight:700}.portal-ack-status span{color:var(--ink);white-space:pre-wrap;font-size:13px;font-weight:500;line-height:1.5}.portal-ack-actions{grid-template-columns:1.2fr 1fr;gap:8px;display:grid}.portal-ack-actions .hr-admin-root .primary-button,.portal-ack-actions .hr-admin-root .ghost-button{letter-spacing:0;border-radius:8px;width:100%;min-width:0;height:46px;font-size:15px;font-weight:700}.portal-ack-actions .hr-admin-root .primary-button{background:var(--sky);border:0}.portal-ack-actions .hr-admin-root .primary-button:hover:not(:disabled){background:var(--sky-deep)}.portal-ack-actions .hr-admin-root .primary-button:disabled{opacity:1;background:var(--sky-pale);color:var(--sky-deep);cursor:default}.portal-ack-actions .hr-admin-root .ghost-button{border:1px solid color-mix(in srgb, var(--sky) 30%, var(--line));color:var(--sky-deep);background:#fff}.portal-ack-actions .hr-admin-root .ghost-button:hover:not(:disabled){background:var(--sky-pale);border-color:color-mix(in srgb, var(--sky) 45%, var(--line));color:var(--sky-deep)}.portal-ack-actions .hr-admin-root .ghost-button:disabled{opacity:.55;cursor:not-allowed}.portal-slip .portal-attendance{border-top:1px solid var(--line)}.portal-slip .portal-attendance .portal-block-head{padding:12px 16px 8px}.portal-slip .portal-attendance .attendance-calendar{padding:0 12px 14px}.portal-feedback-form{gap:10px;padding-top:2px;display:grid}.portal-feedback-form label{color:var(--muted);gap:8px;font-size:13px;font-weight:600;display:grid}.portal-feedback-form textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:88px;color:var(--ink);font:inherit;background:#fff;border-radius:8px;padding:10px 12px;line-height:1.5}.portal-feedback-form textarea:focus{outline:2px solid color-mix(in srgb, var(--sky) 22%, transparent);border-color:var(--sky)}.portal-feedback-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.portal-feedback-actions em{color:var(--muted);font-size:12px;font-style:normal;font-weight:500}.portal-feedback-actions .hr-admin-root .primary-button{background:var(--sky);border-radius:8px;width:auto;min-width:112px;height:40px;padding:0 16px;font-size:14px}.portal-feedback-actions .hr-admin-root .primary-button:hover:not(:disabled){background:var(--sky-deep)}@keyframes portal-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes portal-pop{0%{opacity:0}to{opacity:1}}@keyframes net-shine{0%,to{background-position:0%}50%{background-position:100%}}.anim-portal-item{animation:.28s both portal-rise;animation-delay:var(--delay,0s)}.anim-portal-line{animation:none}.portal-hero{background:var(--sky-pale);text-align:center;border:0;border-radius:8px;margin:0 14px 8px;padding:18px 16px 14px}.portal-kicker{color:var(--muted);margin:0 0 6px;font-size:12px;font-weight:600}.portal-net{letter-spacing:-.03em;color:var(--sky-deep);align-items:baseline;gap:2px;margin:0;font-size:clamp(34px,7vw,44px);font-weight:750;line-height:1;display:inline-flex}.portal-net em{color:var(--sky-deep);margin-right:2px;font-size:.4em;font-style:normal;font-weight:700}.portal-net span{color:var(--sky-deep)}.portal-hero-meta{border-top:1px solid color-mix(in srgb, var(--sky) 18%, var(--line));grid-template-columns:repeat(3,1fr);gap:0;max-width:340px;margin:14px auto 0;display:grid}.portal-stat{justify-items:center;gap:2px;padding:10px 6px 0;display:grid}.portal-stat+.portal-stat{border-left:1px solid color-mix(in srgb, var(--sky) 18%, var(--line))}.portal-stat span{color:var(--muted);font-size:12px;font-weight:500}.portal-stat strong{color:var(--ink);letter-spacing:0;font-size:14px;font-weight:700}.portal-slip .portal-block{border:0;border-top:1px solid var(--line);background:#fff;border-radius:0;margin:0}.portal-slip .portal-fold{background:#fff}.portal-block{border:1px solid var(--line);background:#fff;border-radius:12px;margin-top:10px;padding:0}.portal-block>.portal-block-head,.portal-fold-trigger .portal-block-head{padding:12px 16px}.portal-block>.employee-payroll-list,.portal-fold-panel{padding:0 16px 12px}.portal-block-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:0;display:flex}.portal-block-head h2{letter-spacing:0;margin:0;font-size:14px;font-weight:700}.portal-block-head span{color:var(--muted);font-size:12px;font-weight:500}.portal-fold{padding-bottom:4px}.portal-fold-trigger{text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:0 4px 0 0;display:flex}.portal-fold-trigger .portal-block-head{flex:1}.portal-fold-chevron{width:28px;height:28px;color:var(--muted);background:0 0;border-radius:6px;place-items:center;margin-right:12px;transition:transform .2s,color .12s;display:grid}.portal-fold-chevron svg{width:16px;height:16px}.portal-fold.open .portal-fold-chevron{color:var(--sky-deep);background:0 0;transform:rotate(180deg)}.portal-fold-panel{grid-template-rows:0fr;padding-top:0;padding-bottom:0;transition:grid-template-rows .32s,padding .32s;display:grid;overflow:hidden}.portal-fold.open .portal-fold-panel{grid-template-rows:1fr;padding-bottom:12px}.portal-fold-panel>.attendance-calendar{min-height:0;overflow:hidden}.portal-fold.open .day-cell{animation:none}.attendance-calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.day-cell{border:1px solid var(--line);background:#fff;border-radius:6px;align-content:start;gap:4px;min-height:56px;padding:6px;transition:border-color .12s,background .12s;display:grid}.day-cell:hover{background:var(--soft);border-color:#c5ddf8;transform:none}.day-cell strong{font-size:13px;font-weight:700}.day-cell em{color:var(--muted);font-size:11px;font-style:normal;line-height:1.2}.day-cell.status-ok{background:var(--sky-pale);border-color:#c5ddf8}.day-cell.status-ok em{color:var(--sky-deep)}.portal-shell .day-cell.status-ok{background:var(--sky-pale);border-color:#c5ddf8}.portal-shell .day-cell.status-ok em{color:var(--sky-deep)}.day-cell.status-warn{background:var(--warn-pale);border-color:#f0dfb2}.day-cell.status-warn em{color:var(--warn)}.day-cell.status-danger{background:var(--danger-pale);border-color:#f0c7c7}.day-cell.status-danger em{color:var(--danger)}.day-cell.status-leave{background:var(--leave-pale);border-color:#c9dbef}.day-cell.status-leave em{color:var(--leave)}.day-cell.status-extra{background:var(--extra-pale);border-color:#c5dff1}.day-cell.status-extra em{color:var(--extra)}.day-cell.status-rest{background:var(--rest-pale);border-color:#d7dde3}.day-cell.status-rest em{color:var(--rest)}.employee-payroll-list{margin-top:0}.payroll-line{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:42px;padding:0;font-size:14px;display:flex}.payroll-line:last-child{border-bottom:0}.payroll-line span{color:var(--ink);font-weight:500}.payroll-line strong{letter-spacing:0;font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.deduction-text{color:var(--danger)}@keyframes slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes section-in{0%{opacity:0;transform:translateY(14px)scale(.992)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes admin-float{0%,to{transform:translate(0)}50%{transform:translate(10px,-14px)}}@keyframes admin-pulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:.9;transform:scale(1.08)}}.hr-admin-root .anim-slide-down{animation:.28s both slide-down}.hr-admin-root .anim-section{animation:.38s cubic-bezier(.22,1,.36,1) both section-in}.admin-shell,.admin-login-center,.admin-auth-shell,.admin-loading{--ink:#1a2b3c;--muted:#6b7c8a;--line:#e3ebf2;--soft:#f4f8fc;--page:#f3f7fb;--sky:#3b9eff;--sky-deep:#1f7ae0;--sky-pale:#e8f3ff;--brand:#1f7ae0;--brand-mid:#3b9eff;--brand-pale:#e8f3ff;--leave:#4a7fb5;--leave-pale:#e7f0fa;--extra:#3b8ec9;--extra-pale:#e5f3fc;--fs-caption:12px;--fs-body:13px;--fs-ui:14px;--fs-title:16px;--fs-page:20px;font-size:var(--fs-ui);-webkit-font-smoothing:antialiased;line-height:1.5}.admin-shell{background:linear-gradient(#f3f7fb 0%,#fff 48%);grid-template-columns:232px minmax(0,1fr);min-height:100vh;transition:grid-template-columns .2s;display:grid;position:relative}.admin-shell.sidebar-collapsed{grid-template-columns:72px minmax(0,1fr)}.admin-sidebar{min-height:100vh;color:var(--ink);border-right:1px solid color-mix(in srgb, var(--line) 85%, transparent);z-index:25;background:#fffffff0;flex-direction:column;height:100vh;padding:18px 12px;display:flex;position:sticky;top:0;overflow:visible}.admin-brand{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;width:calc(100% - 16px);min-width:0;margin:6px 8px 22px;padding:0;display:flex}.admin-brand:hover{background:var(--soft)}.admin-brand-mark{color:#fff;background:0 0;border-radius:12px;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid;overflow:hidden}.admin-brand-mark svg{width:40px;height:40px;display:block}.admin-brand-copy{gap:2px;min-width:0;display:grid}.admin-brand .hr-admin-root .site-logo,.admin-brand-copy .hr-admin-root .site-logo{font-size:var(--fs-title);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-weight:700;line-height:1.25;display:block;overflow:hidden}.admin-brand span,.admin-brand-copy span{color:var(--muted);font-size:var(--fs-caption);margin-top:0;font-weight:600;line-height:1.3;display:block}.admin-nav{gap:4px;display:grid}.admin-nav button,.admin-mobile-nav button{height:44px;color:var(--muted);text-align:left;font-size:var(--fs-ui);background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;padding:0 12px;font-weight:600;line-height:1.3;transition:background .15s,color .15s;display:flex}.admin-nav button em,.admin-mobile-nav button em{font-style:normal}.admin-nav button:hover,.admin-nav button.active{background:var(--brand-pale);color:var(--brand)}.nav-icon{width:28px;height:28px;color:var(--muted);background:0 0;border-radius:8px;flex-shrink:0;place-items:center;display:grid}.nav-icon svg{width:16px;height:16px}.admin-nav button:hover .nav-icon,.admin-nav button.active .nav-icon,.admin-mobile-nav button.active .nav-icon{background:linear-gradient(145deg, var(--brand), var(--brand-mid));color:#fff;transform:none}.sidebar-footer{border-top:1px solid var(--line);gap:10px;margin-top:auto;padding:16px 8px 4px;display:grid}.sidebar-link,.sidebar-logout{font-size:var(--fs-body);align-items:center;gap:8px;font-weight:600;display:inline-flex}.sidebar-link{color:var(--brand)}.sidebar-link-icon{flex-shrink:0;width:16px;height:16px}.sidebar-footer small{color:var(--muted);font-size:var(--fs-caption);line-height:1.4}.sidebar-logout{width:fit-content;color:var(--muted);background:0 0;border:0;padding:0}.sidebar-logout:hover{color:var(--danger)}.admin-shell.sidebar-collapsed .admin-sidebar{align-items:center;padding:18px 8px}.admin-shell.sidebar-collapsed .admin-brand{justify-content:center;width:48px;margin:0 0 18px}.admin-shell.sidebar-collapsed .admin-brand-copy,.admin-shell.sidebar-collapsed .admin-nav button em,.admin-shell.sidebar-collapsed .sidebar-link span,.admin-shell.sidebar-collapsed .sidebar-logout span,.admin-shell.sidebar-collapsed .sidebar-footer small{display:none}.admin-shell.sidebar-collapsed .admin-nav{width:100%}.admin-shell.sidebar-collapsed .admin-nav button{justify-content:center;gap:0;width:100%;height:48px;padding:0;position:relative}.admin-shell.sidebar-collapsed .sidebar-footer{justify-items:center;gap:8px;width:100%;padding:14px 0 4px}.admin-shell.sidebar-collapsed .sidebar-link,.admin-shell.sidebar-collapsed .sidebar-logout{border-radius:10px;justify-content:center;width:40px;height:40px;position:relative}.admin-shell.sidebar-collapsed .sidebar-link:hover,.admin-shell.sidebar-collapsed .sidebar-logout:hover{background:var(--soft)}.admin-shell.sidebar-collapsed .admin-nav button:after,.admin-shell.sidebar-collapsed .sidebar-link:after,.admin-shell.sidebar-collapsed .sidebar-logout:after{content:attr(data-tip);z-index:40;color:#fff;white-space:nowrap;opacity:0;pointer-events:none;background:#1a2b3c;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700;line-height:1.2;transition:opacity .12s;position:absolute;top:50%;left:calc(100% + 12px);transform:translateY(-50%)}.admin-shell.sidebar-collapsed .admin-nav button:before,.admin-shell.sidebar-collapsed .sidebar-link:before,.admin-shell.sidebar-collapsed .sidebar-logout:before{content:"";z-index:40;opacity:0;pointer-events:none;border:5px solid #0000;border-right-color:#1a2b3c;transition:opacity .12s;position:absolute;top:50%;left:calc(100% + 6px);transform:translateY(-50%)}.admin-shell.sidebar-collapsed .admin-nav button:hover:after,.admin-shell.sidebar-collapsed .admin-nav button:focus-visible:after,.admin-shell.sidebar-collapsed .sidebar-link:hover:after,.admin-shell.sidebar-collapsed .sidebar-link:focus-visible:after,.admin-shell.sidebar-collapsed .sidebar-logout:hover:after,.admin-shell.sidebar-collapsed .sidebar-logout:focus-visible:after,.admin-shell.sidebar-collapsed .admin-nav button:hover:before,.admin-shell.sidebar-collapsed .admin-nav button:focus-visible:before,.admin-shell.sidebar-collapsed .sidebar-link:hover:before,.admin-shell.sidebar-collapsed .sidebar-link:focus-visible:before,.admin-shell.sidebar-collapsed .sidebar-logout:hover:before,.admin-shell.sidebar-collapsed .sidebar-logout:focus-visible:before{opacity:1}.admin-main{min-width:0;padding-bottom:0}.admin-topbar{border-bottom:1px solid color-mix(in srgb, var(--line) 80%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;background:#ffffffeb;justify-content:space-between;align-items:center;gap:16px;min-height:72px;padding:12px 24px;display:flex;position:sticky;top:0}.admin-topbar h1{font-size:var(--fs-page);letter-spacing:-.02em;color:var(--ink);margin:0;font-weight:700;line-height:1.3}.admin-shell .hr-admin-root .eyebrow,.admin-login-center .hr-admin-root .eyebrow{color:var(--brand);font-size:var(--fs-caption);letter-spacing:.08em;font-weight:700;line-height:1.3}.admin-login-center .site-logo.centered{color:var(--ink)}.topbar-copy .hr-admin-root .eyebrow{margin-bottom:4px}.admin-mobile-nav{display:none}.admin-loading-mark{background:linear-gradient(145deg, var(--brand), var(--brand-mid));border-radius:12px;width:40px;height:40px;margin-bottom:4px}.admin-login-brand{text-align:center;justify-items:center;gap:8px;margin-bottom:8px;display:grid}.admin-login-brand .admin-brand-mark{border-radius:16px;width:52px;height:52px}.admin-login-brand .admin-brand-mark svg{width:52px;height:52px}.admin-login-brand .hr-admin-root .site-logo{font-size:var(--fs-page);color:var(--ink);font-weight:700;line-height:1.3}.admin-login-brand>span:last-child{color:var(--muted);font-size:var(--fs-body);font-weight:600;line-height:1.4}.admin-login-center{background:linear-gradient(#f3f7fb 0%,#fff 42%)}.admin-login-center .login-panel,.admin-login-center .auth-card-flat{border:1px solid var(--line);background:#fff;border-radius:16px}.admin-shell .hr-admin-root .sheet-toolbar h2,.admin-shell .hr-admin-root .list-heading h2,.admin-shell .form-card h2,.admin-shell .settings-heading h2,.admin-shell .history-card h2,.admin-shell .import-card .hr-admin-root .sheet-toolbar h2{font-size:var(--fs-title);letter-spacing:-.01em;font-weight:700;line-height:1.35}.admin-shell .hr-admin-root .sheet-toolbar p,.admin-shell .hr-admin-root .list-heading p,.admin-shell .form-card>p,.admin-shell .settings-heading p,.admin-shell .history-card>.hr-admin-root .sheet-toolbar p,.admin-shell .import-step p,.admin-shell .preview-heading p,.admin-shell .security-callout,.admin-shell .password-tip,.admin-shell .domain-guide,.admin-shell .notify-panel-head p{font-size:var(--fs-body);font-weight:500;line-height:1.55}.admin-shell .legend,.admin-shell .hr-admin-root .save-indicator,.admin-shell .month-chip,.admin-shell .history-tag,.admin-shell .ack-badge,.admin-shell .hr-admin-root .settings-status,.admin-shell .restore-button,.admin-shell .file-input,.admin-shell .setup-code-details,.admin-shell .import-preview>small,.admin-shell .history-row p,.admin-shell .history-main small,.admin-shell .spreadsheet th small,.admin-shell .hr-admin-root .empty-state p,.admin-shell .notify-employee-row em,.admin-shell .topbar-actions label{font-size:var(--fs-caption);font-weight:600;line-height:1.4}.admin-shell .spreadsheet{font-size:var(--fs-body)}.admin-shell .spreadsheet th{font-size:var(--fs-caption);font-weight:700;line-height:1.35}.admin-shell .spreadsheet th small{font-size:var(--fs-caption);opacity:.85;font-weight:500}.admin-shell .status-select,.admin-shell .slip-status-select,.admin-shell .segmented button,.admin-shell .att-batch-status,.admin-shell .employee-row,.admin-shell .item-row,.admin-shell .history-row,.admin-shell .import-preview table,.admin-shell .notify-employee-row strong,.admin-shell .notify-panel-actions,.admin-shell .settings-fields label,.admin-shell .hr-admin-root .ghost-button,.admin-shell .hr-admin-root .secondary-button{font-size:var(--fs-body);line-height:1.4}.admin-shell .import-step h3,.admin-shell .preview-heading h3,.admin-shell .notify-panel-head h3,.admin-shell .avatar{font-size:var(--fs-ui);font-weight:700;line-height:1.35}.admin-shell .hr-admin-root .primary-button,.admin-shell .primary-button.compact{font-size:var(--fs-ui);font-weight:700;line-height:1.3}.admin-shell .segmented button{font-weight:600}.admin-shell .segmented button.active{font-weight:700}.admin-shell .settings-fields label,.admin-shell .form-card label{font-size:var(--fs-caption);letter-spacing:0;font-weight:700;line-height:1.4}.admin-shell .settings-fields input,.admin-shell .form-card input,.admin-shell .form-card select,.admin-shell .att-batch-status select{font-size:var(--fs-ui);font-weight:500}.admin-shell .hr-admin-root .empty-state strong{font-size:var(--fs-ui);font-weight:700}.admin-shell .history-row code{font-size:var(--fs-caption)}.admin-login-center .auth-card-body h2,.admin-login-center h2{font-size:var(--fs-page);letter-spacing:-.01em;font-weight:700;line-height:1.35}.admin-login-center .auth-description,.admin-login-center .password-tip,.admin-login-center .setup-code-details{font-size:var(--fs-body);line-height:1.55}.admin-login-center .auth-card-body label,.admin-login-center label{font-size:var(--fs-caption);font-weight:700;line-height:1.4}.admin-login-center .auth-card-body label input,.admin-login-center input{font-size:var(--fs-ui)}.admin-login-center .hr-admin-root .primary-button,.admin-login-center .hr-admin-root .text-button{font-size:var(--fs-ui);font-weight:700}.admin-login-center .hr-admin-root .text-button{font-weight:600}.admin-login-center .security-question{font-size:var(--fs-body);line-height:1.5}@keyframes sk-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.sk{background:linear-gradient(90deg, var(--line-soft,#f0f1f3) 0%, #fff 45%, var(--line-soft,#f0f1f3) 90%);background-size:200% 100%;border-radius:6px;animation:1.2s linear infinite sk-shimmer;display:block}.sk-card{border:1px solid var(--line);border-radius:var(--radius,10px);background:var(--paper,#fff)}.sk-pad{padding:18px}.sk-line{width:100%;height:12px}.sk-title{border-radius:8px;width:min(220px,60%);height:36px;margin:0 auto}.sk-input{border-radius:8px;width:100%;height:44px}.sk-btn{border-radius:8px;width:72px;height:36px}.sk-btn-wide{border-radius:8px;width:100%;height:44px}.sk-month{border-radius:8px;width:148px;height:36px}.sk-stat{border-radius:8px;height:64px}.sk-avatar{border-radius:8px;flex-shrink:0;width:32px;height:32px}.sk-cell{border-radius:6px;height:28px}.sk-w-16{width:16%}.sk-w-24{width:24%}.sk-w-32{width:32%}.sk-w-40{width:40%}.sk-w-48{width:48%}.sk-w-64{width:64%}.sk-flex{flex:1;min-width:0}.sk-mt{margin-top:14px}.sk-mt-sm{margin-top:8px}.sk-mb{margin-bottom:14px}.sk-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.sk-payroll-line,.sk-list-row,.sk-table-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:44px;display:flex}.sk-table{margin-top:8px}.sk-table-row{grid-template-columns:80px 80px repeat(6,minmax(0,1fr));gap:8px;padding:8px 0;display:grid}.sk-admin-grid{grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:16px;display:grid}.sk-admin-cards{gap:14px;display:grid}.sk-hint{text-align:center;color:var(--muted);margin:16px 0 0;font-size:13px}.sk-auth-lines{justify-items:center;width:160px;display:grid}.portal-hero.sk-card{text-align:center;padding:28px 20px}.portal-hero.sk-card .sk-line{margin-left:auto;margin-right:auto}.portal-block.sk-card{padding:16px}.portal-loading-bar{background:linear-gradient(90deg, var(--accent-soft,var(--soft)), var(--accent,var(--ink)), var(--accent-soft,var(--soft)));background-size:200% 100%;border-radius:999px;height:3px;margin:-8px 0 16px;animation:1s linear infinite sk-shimmer}.portal-shell.is-loading .portal-content{opacity:.72;transition:opacity .2s}@media (max-width:900px){.sk-admin-grid{grid-template-columns:1fr}.sk-table-row{grid-template-columns:64px 64px repeat(4,minmax(0,1fr))}}.admin-shell .hr-admin-root .ghost-button:hover,.admin-shell .hr-admin-root .secondary-button:hover,.admin-login-center .hr-admin-root .ghost-button:hover,.admin-login-center .hr-admin-root .text-button:hover{background:var(--brand-pale);border-color:color-mix(in srgb, var(--brand) 22%, var(--line));color:var(--brand)}.admin-shell .month-nav:hover{background:var(--brand-pale);color:var(--brand)}.admin-shell .form-card input:focus,.admin-shell .settings-fields input:focus,.admin-login-center input:focus{border-color:color-mix(in srgb, var(--brand) 45%, var(--line));outline:2px solid var(--brand-pale)}.topbar-actions{align-items:center;gap:16px;display:flex}.topbar-actions label{color:var(--muted);align-items:center;gap:9px;font-size:12px;font-weight:600;display:flex}.topbar-actions input{border:1px solid var(--line);height:40px;color:var(--ink);background:#fff;border-radius:8px;padding:0 12px}.hr-admin-root .save-indicator{background:var(--ok-pale);color:var(--ok);border-radius:8px;align-items:center;gap:7px;padding:8px 11px;font-size:11px;font-weight:700;display:flex}.hr-admin-root .save-indicator i,.green-dot{background:var(--ok);border-radius:50%;width:7px;height:7px;animation:1.4s ease-in-out infinite pulse-dot}.save-indicator.failed{background:var(--danger-pale);color:var(--danger)}.save-indicator.failed i{background:var(--danger);animation:none}.admin-content{padding:24px}.admin-alert{background:var(--danger-pale);color:var(--danger);border-radius:8px;justify-content:space-between;margin:18px 24px 0;padding:12px 16px;display:flex}.admin-alert button{color:inherit;background:0 0;border:0}.hr-admin-root .sheet-card,.history-card,.form-card,.list-card,.import-card,.settings-card{border:1px solid var(--line);background:#fff;border-radius:16px;overflow:hidden}.hr-admin-root .sheet-card:hover,.history-card:hover,.form-card:hover,.list-card:hover,.import-card:hover,.settings-card:hover{border-color:color-mix(in srgb, var(--brand) 18%, var(--line))}.hr-admin-root .sheet-toolbar,.hr-admin-root .list-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:72px;padding:18px 22px;display:flex}.hr-admin-root .sheet-toolbar h2,.hr-admin-root .list-heading h2,.form-card h2{margin:0;font-size:18px}.hr-admin-root .sheet-toolbar p,.hr-admin-root .list-heading p,.form-card>p{color:var(--muted);margin:6px 0 0;font-size:12px}.legend{color:var(--muted);align-items:center;gap:7px;font-size:11px;display:flex}.spreadsheet-wrap{max-height:calc(100vh - 220px);position:relative;overflow:auto}.spreadsheet{border-collapse:separate;border-spacing:0;min-width:100%;font-size:12px}.spreadsheet th,.spreadsheet td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;background:#fff;min-width:75px;height:42px;padding:0}.spreadsheet th{z-index:4;height:54px;color:var(--ink);background:#f3f7fb;font-weight:700;position:sticky;top:0}.spreadsheet th small{color:var(--muted);margin-top:4px;font-size:9px;font-weight:400;display:block}.spreadsheet .sticky-col{z-index:3;background:#fff;position:sticky}.spreadsheet th.sticky-col{z-index:5;background:#e4eef8}.name-col{left:0;min-width:110px!important}.department-col{display:none}.spreadsheet td.name-col{text-align:left;padding-left:14px}.status-select{text-align:center;appearance:none;width:100%;height:100%;color:var(--muted);background:0 0;border:0;outline:0;font-size:11px}.att-batch-bar{border:1px solid var(--line);background:linear-gradient(#f7fbff 0%,#f3f7fb 100%);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;margin:0 0 14px;padding:10px 12px;display:flex}.att-batch-main{flex-wrap:wrap;flex:1;align-items:center;gap:8px 10px;min-width:0;display:flex}.att-batch-label{color:var(--muted);letter-spacing:.04em;flex-shrink:0;font-size:11px;font-weight:700}.att-status-chips{flex-wrap:wrap;gap:4px;display:flex}.att-status-chip{height:28px;color:var(--muted);cursor:pointer;box-shadow:inset 0 0 0 1px var(--line);background:#fff;border:1px solid #0000;border-radius:999px;padding:0 9px;font-size:12px;font-weight:700;line-height:1}.att-status-chip:hover{color:var(--ink);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--sky-deep) 35%, var(--line))}.att-status-chip.active{color:var(--sky-deep);background:var(--brand-pale,#e8f3ff);box-shadow:inset 0 0 0 1.5px var(--sky-deep)}.att-status-chip.active.status-出勤{background:var(--ok-pale);color:#1f7a58;box-shadow:inset 0 0 0 1.5px #2f9e7a}.att-status-chip.active.status-迟到{background:var(--warn-pale);color:#9a6b12;box-shadow:inset 0 0 0 1.5px #d4a017}.att-status-chip.active.status-早退{color:#4a6b85;background:#eaf2f7;box-shadow:inset 0 0 0 1.5px #9bb4c9}.att-status-chip.active.status-旷工{background:var(--danger-pale);color:#b42318;box-shadow:inset 0 0 0 1.5px #d45454}.att-status-chip.active.status-事假,.att-status-chip.active.status-病假{background:var(--leave-pale);color:#5b4bb0;box-shadow:inset 0 0 0 1.5px #7a6bd0}.att-status-chip.active.status-加班{background:var(--extra-pale);color:#0f6a8a;box-shadow:inset 0 0 0 1.5px #2f9ec0}.att-status-chip.active.status-休息,.att-status-chip.active.status-年假{background:var(--rest-pale);color:#4b6478;box-shadow:inset 0 0 0 1.5px #7a93a8}.att-status-chip.active.status-empty{color:var(--muted);box-shadow:inset 0 0 0 1.5px var(--line);background:#fff}.att-batch-side{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;display:flex}.att-fill-chip{height:28px;box-shadow:inset 0 0 0 1px var(--line);color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.att-fill-chip input{opacity:0;pointer-events:none;position:absolute}.att-fill-chip.on{color:var(--sky-deep);background:var(--brand-pale,#e8f3ff);box-shadow:inset 0 0 0 1.5px var(--sky-deep)}.att-batch-actions{align-items:center;gap:6px;padding-left:2px;display:inline-flex}.att-selected-count{min-width:58px;color:var(--muted);text-align:right;font-size:11px;font-weight:700}.att-selected-count.has{color:var(--sky-deep)}.att-batch-apply,.att-batch-clear{cursor:pointer;border-radius:8px;height:28px;padding:0 12px;font-size:12px;font-weight:700}.att-batch-apply{background:var(--sky-deep);color:#fff;border:0}.att-batch-apply:hover:not(:disabled){filter:brightness(1.05)}.att-batch-clear{border:1px solid var(--line);color:var(--ink);background:#fff}.att-batch-clear:hover:not(:disabled){border-color:color-mix(in srgb, var(--sky-deep) 30%, var(--line));color:var(--sky-deep)}.att-batch-apply:disabled,.att-batch-clear:disabled{opacity:.45;cursor:not-allowed}@media (max-width:720px){.att-batch-bar{align-items:stretch}.att-batch-side{justify-content:space-between;width:100%}}.att-sheet-wrap{-webkit-user-select:none;user-select:none;touch-action:none}.att-view-switch{border:1px solid var(--line);background:var(--soft);border-radius:8px;gap:2px;padding:3px;display:inline-flex}.att-view-switch button{height:32px;color:var(--muted);background:0 0;border:0;border-radius:6px;padding:0 12px;font-size:13px;font-weight:700}.att-view-switch button.active{color:var(--sky-deep);background:#fff}.attendance-sheet th.att-weekend,.attendance-sheet td.att-weekend{background:#f3f7fb}.attendance-sheet th.att-weekend{background:#eaf2fa}.attendance-sheet td.att-weekend .att-cell.status-empty{background:#eef4fa}.attendance-sheet th.att-holiday{background:#ffe8e8}.attendance-sheet td.att-holiday{background:#fff5f5}.attendance-sheet td.att-holiday .att-cell.status-empty{background:#ffecec}.attendance-sheet th.att-workday{background:#fff3d9}.attendance-sheet td.att-workday{background:#fffaf0}.att-day-header .att-day-holiday{letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;max-width:100%;margin-top:2px;font-size:10px;font-style:normal;font-weight:800;line-height:1.15;display:block;overflow:hidden}.att-day-holiday.is-off{color:#c62828}.att-day-holiday.is-work{color:#b45309}.att-calendar-cell.att-holiday:not([class*=status-出]):not([class*=status-迟]):not([class*=status-早]):not([class*=status-事]):not([class*=status-病]):not([class*=status-年]):not([class*=status-加]):not([class*=status-旷]):not([class*=status-休]){box-shadow:inset 0 0 0 1px #f5b5b5}.att-calendar-cell .att-cal-holiday{margin-top:1px;font-size:9px;font-style:normal;font-weight:800;line-height:1.1;display:block}.att-cal-holiday.is-off{color:#c62828}.att-cal-holiday.is-work{color:#b45309}.att-calendar-cell[class*=status-] .att-cal-holiday.is-off,.att-calendar-cell[class*=status-] .att-cal-holiday.is-work{color:inherit;opacity:.95}.att-calendar-cell.status-empty .att-cal-holiday.is-off{color:#c62828}.att-calendar-cell.status-empty .att-cal-holiday.is-work{color:#b45309}.att-calendar-wrap{-webkit-user-select:none;user-select:none;padding:0 16px 18px}.att-calendar-list{gap:8px;display:grid}.att-calendar-row{border:1px solid var(--line);background:var(--soft);width:100%;min-height:48px;color:var(--ink);text-align:left;cursor:pointer;border-radius:10px;align-items:center;gap:12px;padding:0 14px;display:flex}.att-calendar-row:hover,.att-calendar-row.active{border-color:color-mix(in srgb, var(--sky-deep) 35%, var(--line));background:#fff}.att-calendar-row strong{font-size:14px;font-weight:700}.att-calendar-row em{color:var(--muted);font-size:12px;font-style:normal;font-weight:600}.att-calendar-row-action{color:var(--sky-deep);margin-left:auto;font-size:12px;font-weight:700}.att-calendar-mask{z-index:1000;box-sizing:border-box;background:#0f1c2d7a;justify-content:center;align-items:center;margin:0;padding:20px;display:flex;position:fixed;inset:0}.att-calendar-modal{border:1px solid var(--line);-webkit-user-select:none;user-select:none;touch-action:none;background:#fff;border-radius:14px;flex-direction:column;width:min(780px,100vw - 32px);max-height:calc(100vh - 40px);padding:0;display:flex;overflow:hidden;box-shadow:0 22px 56px #12284638}.att-calendar-modal-head{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;margin:0;padding:14px 16px 10px;display:flex}.att-calendar-modal-toolbar{border-bottom:1px solid var(--line);background:#f4f8fc;flex-shrink:0;padding:10px 12px}.att-batch-bar-modal{background:0 0;border:0;border-radius:0;margin:0;padding:0}.att-batch-hint{width:100%;color:var(--sky-deep);margin:6px 0 0;font-size:12px;font-weight:600;line-height:1.4}.att-calendar-modal-body{flex:1;min-height:0;padding:10px 12px 14px;overflow:auto}.att-calendar-modal .att-calendar-legend{z-index:2;border-bottom:1px solid var(--line);background:#fff;margin-bottom:8px;padding:4px 0 8px;position:sticky;top:0}.att-calendar-modal .att-calendar-grid{padding-bottom:4px;overflow:visible}.att-calendar-modal-head strong{color:var(--ink);font-size:18px;font-weight:750;display:block}.att-calendar-modal-head p{color:var(--muted);margin:4px 0 0;font-size:13px}.att-calendar-modal-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.att-calendar-modal-close{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;font-size:24px;line-height:1;display:grid}.att-calendar-modal-close:hover{background:var(--soft);color:var(--ink)}.att-calendar-legend{border-bottom:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:10px;padding:4px 0 10px;display:grid}.att-calendar-legend button{height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;font-size:13px;font-weight:700}.att-calendar-legend button:hover{background:var(--soft);color:var(--ink)}.att-calendar-legend .att-weekend-label{color:var(--sky-deep)}.att-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.att-calendar-pad{background:0 0;border-radius:8px;min-height:64px}.att-calendar-cell{border:1px solid var(--line);text-align:left;cursor:cell;background:#fff;border-radius:8px;align-content:start;gap:4px;min-height:64px;padding:8px;display:grid}.att-calendar-cell strong{color:var(--ink);font-size:13px;font-weight:700;line-height:1}.att-calendar-cell em{color:var(--muted);word-break:break-all;font-size:12px;font-style:normal;font-weight:700;line-height:1.2}.att-calendar-cell.att-weekend{background:#f3f7fb;border-color:#d7e4f2}.att-calendar-cell.att-weekend strong{color:var(--sky-deep)}.att-calendar-cell.att-cell-selected{outline:2px solid var(--sky-deep);outline-offset:-1px}.att-calendar-cell.status-出勤{color:#0f766e;background:#d8f3ea}.att-calendar-cell.status-迟到{color:#b45309;background:#fff0d6}.att-calendar-cell.status-早退{color:#4a6b85;background:#eaf2f7}.att-calendar-cell.status-旷工{color:#b91c1c;background:#ffe4e4}.att-calendar-cell.status-事假{color:#1d4ed8;background:#e0edff}.att-calendar-cell.status-病假{color:#4f46e5;background:#e8e7ff}.att-calendar-cell.status-加班{color:#0369a1;background:#e0f5ff}.att-calendar-cell.status-休息{color:#475569;background:#eef2f6}.att-calendar-cell.status-年假{color:#6d28d9;background:#ede9fe}@media (max-width:640px){.att-calendar-mask{align-items:end;padding:12px}.att-calendar-modal{border-radius:14px 14px 10px 10px;width:100%;max-height:92vh}.att-calendar-cell,.att-calendar-pad{min-height:52px}}.att-day-header,.att-row-header{width:100%;color:inherit;text-align:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:block}.att-day-header small{display:block}.att-row-header{text-align:left;padding-left:2px}.att-cell-td{cursor:cell}.att-cell-td.att-cell-selected{outline:2px solid var(--ink);outline-offset:-2px;z-index:1}.att-cell{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-height:34px;padding:2px 1px;font-weight:700;line-height:1.1;display:flex}.att-cell strong{font-size:inherit;font-weight:inherit}.att-cell em{opacity:.9;white-space:nowrap;letter-spacing:-.03em;text-overflow:ellipsis;max-width:100%;font-size:9px;font-style:normal;font-weight:650;overflow:hidden}.att-cell.has-time{min-height:40px}.att-calendar-cell .att-cal-time{opacity:.9;letter-spacing:-.02em;margin-top:1px;font-size:10px;font-style:normal;font-weight:650;display:block}.att-status-icon{vertical-align:-.05em;margin-right:2px;font-size:.95em;font-style:normal;font-weight:700;line-height:1;display:inline-block}.status-出勤{color:#0f766e;background:#d8f3ea;box-shadow:inset 0 0 0 1px #5ec4a8}.status-迟到{color:#b45309;background:#fff0d6;box-shadow:inset 0 0 0 1px #f0b45a}.status-早退{color:#4a6b85;background:#eaf2f7;box-shadow:inset 0 0 0 1px #9bb4c9}.status-旷工{color:#b91c1c;background:#ffe4e4;box-shadow:inset 0 0 0 1px #fca5a5}.status-事假{color:#1d4ed8;background:#e0edff;box-shadow:inset 0 0 0 1px #7aa7f5}.status-病假{color:#4f46e5;background:#e8e7ff;box-shadow:inset 0 0 0 1px #a5b4fc}.status-加班{color:#0369a1;background:#e0f5ff;box-shadow:inset 0 0 0 1px #7dd3fc}.status-休息{color:#475569;background:#eef2f6;box-shadow:inset 0 0 0 1px #cbd5e1}.status-年假{color:#6d28d9;background:#ede9fe;box-shadow:inset 0 0 0 1px #c4b5fd}.att-status-chip .att-status-icon{margin-right:4px}.att-calendar-cell .att-status-icon{margin-right:3px}.money-input{background:var(--sun-pale);text-align:right;border:0;outline:0;width:100%;height:100%;padding:0 8px}.calculated{font-weight:700;background:var(--soft)!important;text-align:right!important;padding:0 10px!important}.net-column{color:var(--ok);background:var(--ok-pale)!important}.management-grid{grid-template-columns:330px minmax(0,1fr);gap:18px;display:grid}.form-card{height:fit-content;padding:16px 18px 18px}.form-card>h2{margin:0;font-size:15px;font-weight:650}.form-card>p{color:var(--muted);margin:4px 0 0;font-size:12px}.form-card .field-grid{margin-top:12px}.form-card .primary-button{margin-top:16px}.form-card label:not(.field):not(.switch){color:var(--muted);flex-direction:column;gap:6px;margin-top:12px;font-size:11px;font-weight:500;display:flex}.form-card input,.form-card select{border:1px solid var(--line);background:var(--paper,#fff);width:100%;height:38px;color:var(--ink);border-radius:7px;padding:0 10px;font-size:13px;font-weight:500}.form-card input:focus,.form-card select:focus{border-color:#bdbdbd;outline:none}.form-card .hr-admin-root .primary-button{margin-top:16px}.employee-list,.item-list{padding:8px 18px 18px}.employee-row,.item-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:58px;display:grid}.employee-row{grid-template-columns:36px minmax(72px,.9fr) minmax(96px,1fr) minmax(110px,1.2fr) minmax(72px,.9fr) minmax(120px,1.3fr) auto 42px auto}.employee-row.is-inactive{opacity:.92;background:#fffaf8}.employee-row.is-inactive .avatar{color:#94a3b8;background:#f1f5f9}.emp-status-pill{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;height:24px;padding:0 8px;font-size:11px;font-weight:750;display:inline-flex}.emp-status-pill.is-active{color:#0f766e;background:#e4f7f0}.emp-status-pill.is-inactive{color:#b45309;background:#fff3dc}.emp-roster-filters{flex-wrap:wrap;gap:8px;padding:0 18px 10px;display:flex}.emp-roster-filter{border:1px solid var(--line);height:30px;color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:12px;font-weight:700;display:inline-flex}.emp-roster-filter em{background:var(--soft);border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-style:normal;display:inline-grid}.emp-roster-filter.active{color:var(--sky-deep);border-color:color-mix(in srgb, var(--brand) 35%, var(--line));background:var(--sky-pale)}.emp-roster-filter.active em{color:var(--sky-deep);background:#fff}.item-row{grid-template-columns:56px 1fr 100px 42px}.row-delete-button{background:var(--danger-pale);height:32px;color:var(--danger);white-space:nowrap;border:1px solid #f0c7c7;border-radius:8px;padding:0 10px;font-size:12px;font-weight:700;transition:background .15s,transform .15s}.row-delete-button:hover{background:#ffdede;transform:translateY(-1px)}.employee-row input,.item-row input,.item-row select{background:0 0;border:1px solid #0000;border-radius:6px;min-width:0;height:36px;padding:0 9px}.employee-row input:focus,.item-row input:focus{border-color:var(--line);background:#fff;outline:none}.avatar{background:var(--sky-pale);width:32px;height:32px;color:var(--sky-deep);border-radius:8px;place-items:center;font-weight:800;display:grid}.switch input{display:none}.switch span{background:#c9d5e0;border-radius:999px;width:36px;height:20px;transition:all .2s;display:block;position:relative}.switch span:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:all .2s;position:absolute;top:2px;left:2px}.switch input:checked+span{background:var(--sky,var(--accent,#3b9eff))}.switch input:checked+span:after{transform:translate(16px)}.item-kind{background:var(--ok-pale);color:var(--ok);text-align:center;border-radius:6px;padding:4px 8px;font-size:10px;font-weight:700}.item-kind.deduction{background:var(--danger-pale);color:var(--danger)}.history-list{padding:4px 22px 20px}.history-row{border-bottom:1px solid var(--line);grid-template-columns:38px 1fr minmax(200px,.8fr);align-items:center;gap:13px;min-height:64px;display:grid}.history-icon{background:var(--sky-pale);width:34px;height:34px;color:var(--sky-deep);border-radius:11px;place-items:center;display:grid}.history-icon svg{width:17px;height:17px}.history-row p{color:var(--muted);margin:4px 0 0;font-size:11px}.history-row code{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);text-align:right;font-size:10px;overflow:hidden}.hr-admin-root .empty-state{text-align:center;min-height:240px;color:var(--muted);place-content:center;justify-items:center;display:grid}.hr-admin-root .empty-state span,.empty-icon{background:var(--soft);width:48px;height:48px;color:var(--muted);border:1px solid var(--line);border-radius:12px;place-items:center;margin-bottom:12px;display:grid}.empty-icon svg{width:22px;height:22px}.hr-admin-root .empty-state p{max-width:320px;margin:7px 0 0;font-size:12px}.admin-loading{place-content:center;justify-items:center;gap:12px;min-height:100vh;display:grid}.admin-loading a{color:var(--sky);font-weight:700}.admin-auth-shell{background:var(--page);grid-template-columns:minmax(360px,.9fr) minmax(460px,1.1fr);min-height:100vh;display:grid}.admin-auth-intro{color:#fff;background:linear-gradient(160deg,#1f7ae0 0%,#3b9eff 55%,#59b4ff 100%);flex-direction:column;justify-content:space-between;padding:56px clamp(36px,6vw,86px);display:flex;position:relative;overflow:hidden}.admin-auth-intro .geo-layer{opacity:.95}.auth-brand{z-index:1;align-items:center;gap:12px;width:fit-content;display:flex;position:relative}.auth-brand .brand-mark{color:var(--sky-deep);background:#fff}.auth-brand>span:last-child{display:grid}.auth-brand strong{font-size:19px}.auth-brand small{color:#ffffffb3;margin-top:3px;font-size:10px}.admin-auth-intro h1{letter-spacing:-.03em;z-index:1;margin:14px 0 20px;font-size:clamp(36px,4.2vw,58px);line-height:1.15;position:relative}.admin-auth-intro>div>p:last-child{color:#ffffffd6;z-index:1;max-width:520px;line-height:1.85;position:relative}.auth-security-list{color:#ffffffe6;z-index:1;flex-wrap:wrap;gap:10px;font-size:12px;display:flex;position:relative}.auth-security-list span{background:#ffffff1f;border:1px solid #ffffff47;border-radius:8px;padding:8px 12px}.admin-auth-panel{place-items:center;padding:36px;display:grid}.auth-card{border:1px solid var(--line);background:#fff;border-radius:12px;width:min(100%,460px);padding:36px;animation:.4s both fade-up}.auth-card h2{margin:7px 0 8px;font-size:26px}.auth-description{color:var(--muted);margin:0 0 24px;font-size:13px}.auth-card label{color:var(--ink);gap:7px;margin-top:15px;font-size:12px;font-weight:700;display:grid}.auth-card label input{height:44px}.secret-input{width:100%;display:block;position:relative}.secret-input input{width:100%;padding-right:44px}.secret-toggle{width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.secret-toggle:hover,.secret-toggle:focus-visible{background:var(--sky-pale);color:var(--sky-deep);outline:none}.eye-icon{width:18px;height:12px;display:block;position:relative}.eye-icon:before{content:"";border:1.6px solid;border-radius:70% 20%;position:absolute;inset:0;transform:rotate(45deg)}.eye-icon:after{content:"";background:currentColor;border-radius:50%;width:5px;height:5px;position:absolute;top:3.5px;left:6.5px}.eye-icon.closed{opacity:.58;background:linear-gradient(45deg,#0000 45%,currentColor 47% 53%,#0000 55%)}.auth-card .hr-admin-root .primary-button{width:100%;margin-top:20px}.auth-card .hr-admin-root .text-button{width:100%}.password-tip{color:var(--muted);margin:12px 0 0;font-size:10px;line-height:1.6}.security-question{background:var(--sky-pale);color:var(--sky-deep);border-radius:8px;padding:14px;font-weight:700}.setup-code-details{color:var(--muted);margin-top:14px;font-size:11px}.setup-code-details .secret-input{margin-top:10px}.admin-notice{background:var(--ok-pale);color:var(--ok);border-radius:8px;justify-content:space-between;margin:18px 24px 0;padding:12px 16px;display:flex}.admin-notice button{color:inherit;background:0 0;border:0}.hr-admin-root .toolbar-buttons{flex-wrap:wrap;gap:8px;display:flex}.notify-panel{border:1px solid var(--line);background:var(--soft);border-radius:12px;margin:0 0 16px;padding:16px}.notify-panel-head{justify-content:space-between;align-items:start;gap:12px;margin-bottom:12px;display:flex}.notify-panel-head h3{color:var(--ink);margin:0;font-size:15px}.notify-panel-head p{color:var(--muted);margin:4px 0 0;font-size:12px}.notify-employee-list{gap:8px;max-height:280px;padding-right:4px;display:grid;overflow:auto}.notify-employee-row{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;grid-template-columns:18px 36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.notify-employee-row.selected{border-color:color-mix(in srgb, var(--brand) 35%, var(--line));background:var(--brand-pale)}.notify-employee-row.disabled{opacity:.55;cursor:not-allowed}.notify-employee-row strong{color:var(--ink);font-size:13px;display:block}.notify-employee-row em{color:var(--muted);margin-top:2px;font-size:11px;font-style:normal;display:block}.notify-panel-actions{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-top:14px;font-size:12px;font-weight:700;display:flex}.payroll-list-wrap{padding:0 16px 18px}.payroll-list{gap:8px;display:grid}.payroll-list-row{border:1px solid var(--line);background:var(--soft);width:100%;min-height:52px;color:var(--ink);text-align:left;cursor:pointer;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 14px;display:flex}.payroll-list-row:hover,.payroll-list-row.active{border-color:color-mix(in srgb, var(--sky-deep) 35%, var(--line));background:#fff}.payroll-list-row.has-feedback{border-color:color-mix(in srgb, var(--warn,#d4a017) 40%, var(--line))}.payroll-list-identity{align-items:center;gap:10px;min-width:0;display:inline-flex}.payroll-list-identity strong{white-space:nowrap;font-size:14px;font-weight:700}.payroll-status-tag{height:22px;color:var(--muted);box-shadow:inset 0 0 0 1px var(--line);white-space:nowrap;background:#fff;border-radius:999px;align-items:center;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.payroll-status-tag.is-generated,.payroll-status-tag.is-notified{color:var(--sky-deep);background:var(--brand-pale,#e8f3ff);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--sky-deep) 30%, var(--line))}.payroll-status-tag.is-confirmed,.payroll-status-tag.is-resolved,.payroll-status-tag.is-paid{color:#1f7a58;background:var(--ok-pale);box-shadow:inset 0 0 0 1px #2f9e7a}.payroll-status-tag.is-feedback{color:#9a6b12;background:var(--warn-pale);box-shadow:inset 0 0 0 1px #d4a017}.payroll-list-meta{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:10px 14px;min-width:0;margin-left:auto;display:inline-flex}.payroll-list-meta em{color:var(--muted);font-size:12px;font-style:normal;font-weight:600}.payroll-list-meta b{color:var(--sky-deep);font-size:14px;font-weight:750}.payroll-list-action{color:var(--sky-deep);flex-shrink:0;font-size:12px;font-weight:700}.payroll-list-feedback{color:#9a6b12;text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1 0 100%;font-size:12px;overflow:hidden}.payroll-toolbar{align-items:flex-start}.payroll-toolbar .att-view-switch{margin-top:10px}.payroll-modal{border:1px solid var(--line);background:#fff;border-radius:14px;flex-direction:column;width:min(720px,100vw - 32px);max-height:calc(100vh - 40px);display:flex;overflow:hidden;box-shadow:0 22px 56px #12284638}.payroll-modal-summary{border-bottom:1px solid var(--line);background:#f4f8fc;flex-shrink:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px 16px 12px;display:grid}.payroll-modal-summary div{box-shadow:inset 0 0 0 1px var(--line);background:#fff;border-radius:8px;gap:2px;padding:8px 10px;display:grid}.payroll-modal-summary span{color:var(--muted);font-size:11px;font-weight:700}.payroll-modal-summary strong{font-variant-numeric:tabular-nums;font-size:16px;font-weight:750}.payroll-modal-summary .is-net{background:var(--sky-pale);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--sky-deep) 25%, var(--line))}.payroll-modal-summary .is-net strong{color:var(--sky-deep)}.payroll-modal-body{flex:1;gap:14px;min-height:0;padding:12px 16px 16px;display:grid;overflow:auto}.payroll-modal-section h3{color:var(--ink);margin:0 0 8px;font-size:13px;font-weight:750}.payroll-modal-hint{color:var(--muted);margin:-2px 0 10px;font-size:12px;font-weight:600}.payroll-modal-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.payroll-modal-fields label{color:var(--muted);gap:6px;margin:0;font-size:12px;font-weight:700;display:grid}.payroll-item-field-head{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.payroll-item-field-head>em{color:var(--ink);font-style:normal;font-weight:750}.payroll-kind-toggle{border:1px solid var(--line);background:#f3f6fa;border-radius:999px;align-items:center;gap:1px;padding:1px;display:inline-flex}.payroll-kind-toggle-btn{appearance:none;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;margin:0;padding:2px 8px;font-size:11px;font-weight:700;line-height:1.3}.payroll-kind-toggle-btn.is-active.is-income{color:#0f7a4c;background:#dff5ea}.payroll-kind-toggle-btn.is-active.is-deduct{color:#c2410c;background:#ffe6e2}.payroll-kind-custom{color:var(--sky-deep);font-size:11px;font-weight:700}.payroll-modal-fields .money-input{border:1px solid var(--line);font-variant-numeric:tabular-nums;background:#fff8e8;border-radius:8px;width:100%;height:40px;padding:0 12px;font-size:14px;font-weight:700}.payroll-modal-fields .money-input:focus{background:var(--sky-pale);outline:2px solid color-mix(in srgb, var(--sky) 35%, transparent);outline-offset:-1px}.payroll-modal-empty{color:var(--muted);margin:0;font-size:12px}.payroll-modal-status{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.payroll-modal-status .slip-status-select{min-width:140px;height:36px}.payroll-modal-feedback{background:var(--warn-pale);color:#9a6b12;border-radius:8px;margin:10px 0 0;padding:10px 12px;font-size:13px;line-height:1.45}@media (max-width:720px){.payroll-list-meta{width:100%;margin-left:0}.payroll-list-action{margin-left:auto}.payroll-modal-fields,.payroll-modal-summary{grid-template-columns:1fr}}.payroll-sheet .notify-col{text-align:center;white-space:nowrap;width:64px;min-width:64px!important;padding:6px!important}.payroll-sheet .ack-col{vertical-align:middle;text-align:left;width:168px;max-width:180px;min-width:148px!important;padding:6px 8px!important}.payroll-sheet-wrap{border-top:1px solid var(--line);background:#fff;max-height:calc(100vh - 168px);overflow:auto}.payroll-sheet{table-layout:auto;min-width:max(100%,960px)}.payroll-sheet th,.payroll-sheet td{white-space:nowrap;min-width:88px;height:44px}.payroll-sheet th.item-col,.payroll-sheet td.item-col{min-width:96px}.payroll-sheet th.item-col span{text-overflow:ellipsis;max-width:110px;margin:0 auto;display:block;overflow:hidden}.payroll-sheet th.sum-col,.payroll-sheet td.calculated{font-variant-numeric:tabular-nums;min-width:92px!important}.payroll-sheet .name-col{width:96px;min-width:96px!important}.payroll-sheet .department-col{display:none}.payroll-sheet td.name-col{font-size:13px;padding-left:12px!important}.payroll-sheet .money-input{font-variant-numeric:tabular-nums;background:#fff8e8;min-width:88px;padding:0 10px}.payroll-sheet .money-input:focus{background:var(--sky-pale);outline:2px solid color-mix(in srgb, var(--sky) 35%, transparent);outline-offset:-2px}.payroll-sheet .net-column{color:var(--sky-deep);font-weight:750;background:var(--sky-pale)!important}.payroll-sheet th.net-column{background:color-mix(in srgb, var(--sky-pale) 70%, #e4eef8)!important}.slip-cell{justify-items:stretch;gap:4px;min-width:0;display:grid}.slip-cell-actions{flex-wrap:wrap;gap:4px;display:flex}.slip-action-btn{border:1px solid var(--line);height:26px;color:var(--ink);white-space:nowrap;background:#fff;border-radius:6px;padding:0 8px;font-size:12px;font-weight:600}.slip-action-btn:hover:not(:disabled){background:var(--soft);border-color:color-mix(in srgb, var(--sky) 28%, var(--line));color:var(--sky-deep)}.slip-action-btn.is-primary{border-color:color-mix(in srgb, var(--sky) 35%, var(--line));background:var(--sky-pale);color:var(--sky-deep)}.slip-action-btn:disabled{opacity:.45;cursor:not-allowed}.slip-feedback{max-width:152px;color:var(--warn);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:11px;font-weight:600;line-height:1.35;overflow:hidden}.ack-badge{display:none}.slip-status-select{border:1px solid var(--line);width:100%;height:30px;color:var(--ink);background:#fff;border-radius:6px;padding:0 8px;font-size:12px;font-weight:700}.slip-status-select.is-none,.slip-status-select.is-pending{color:var(--muted);background:var(--soft)}.slip-status-select.is-generated{border-color:color-mix(in srgb, var(--sky) 35%, var(--line));background:var(--sky-pale);color:var(--sky-deep)}.slip-status-select.is-notified{border-color:color-mix(in srgb, var(--sky) 45%, var(--line));color:var(--sky-deep);background:#e8f3ff}.slip-status-select.is-confirmed{border-color:color-mix(in srgb, var(--sky) 40%, var(--line));background:var(--sky-pale);color:var(--sky-deep)}.slip-status-select.is-feedback{border-color:color-mix(in srgb, var(--warn) 40%, var(--line));background:var(--warn-pale);color:var(--warn)}.slip-status-select.is-resolved{border-color:color-mix(in srgb, var(--leave) 35%, var(--line));background:var(--leave-pale);color:var(--leave)}.slip-status-select.is-paid{border-color:color-mix(in srgb, var(--sky) 40%, var(--line));background:var(--sky-pale);color:var(--sky-deep)}.row-has-feedback,.row-has-feedback td.sticky-col{background:color-mix(in srgb, var(--warn-pale) 40%, #fff)}.ack-feedback-cell{display:none}:is(.hr-admin-root .sheet-card:has(.payroll-sheet),.hr-admin-root .sheet-card:has(.payroll-list-wrap)){padding-bottom:0;overflow:hidden}:is(.hr-admin-root .sheet-card:has(.payroll-sheet) .hr-admin-root .sheet-toolbar,.hr-admin-root .sheet-card:has(.payroll-list-wrap) .hr-admin-root .sheet-toolbar){padding:16px 18px 14px}:is(.hr-admin-root .sheet-card:has(.payroll-sheet) .notify-panel,.hr-admin-root .sheet-card:has(.payroll-list-wrap) .notify-panel){margin:0 18px 14px}.item-row.sortable-row{grid-template-columns:30px 56px 1fr 100px 72px 42px}.sortable-row{cursor:grab;transition:background .15s,opacity .15s}.sortable-row:hover{background:var(--soft)}.sortable-row.dragging{opacity:.45;background:var(--sky-pale)}.drag-handle{color:#9aa8b5;letter-spacing:-3px;cursor:grab;font-weight:900}.sort-buttons{gap:4px;display:flex}.sort-buttons button{border:1px solid var(--line);width:30px;height:28px;color:var(--sky-deep);background:#fff;border-radius:6px}.sort-buttons button:disabled{opacity:.3}.history-row{grid-template-columns:38px minmax(0,1fr) auto;padding:8px 0}.history-main{min-width:0}.history-main small{color:var(--muted);margin-top:5px;font-size:10px;display:block}.restore-button{border:1px solid color-mix(in srgb, var(--brand) 28%, var(--line));background:var(--sky-pale);color:var(--sky-deep);border-radius:8px;padding:7px 13px;font-size:11px;font-weight:800}.history-main strong{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.history-id{color:var(--muted);font-size:11px;font-style:normal;font-weight:700}.history-row.is-audit-only{opacity:.92}.restore-button:disabled{opacity:.5;cursor:not-allowed}.history-tag{background:var(--soft);color:var(--muted);cursor:help;border-radius:6px;padding:5px 9px;font-size:10px}.month-chip{background:var(--sky-pale);color:var(--sky-deep);border-radius:6px;padding:7px 11px;font-size:11px;font-weight:800}.import-grid{grid-template-columns:repeat(3,1fr);gap:14px;padding:22px;display:grid}.import-step{border:1px solid var(--line);background:var(--soft);border-radius:10px;min-height:190px;padding:22px}.step-icon{background:var(--sky);color:#fff;border-radius:8px;place-items:center;width:32px;height:32px;display:grid}.step-icon svg{width:17px;height:17px}.import-step h3{margin:16px 0 7px;font-size:15px}.import-step p{min-height:36px;color:var(--muted);margin:0 0 14px;font-size:11px;line-height:1.6}.segmented{background:var(--brand-pale);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));padding:3px;display:grid}.segmented button{height:34px;color:var(--muted);background:0 0;border:0;border-radius:6px;font-size:11px;font-weight:600}.segmented button.active{color:var(--sky-deep);border:1px solid var(--line);background:#fff;font-weight:800}.file-input{width:100%;color:var(--muted);font-size:10px}.file-input::file-selector-button{border:1px solid var(--line);color:var(--sky-deep);background:#fff;border-radius:7px;margin-right:9px;padding:8px 10px}.import-preview{background:var(--soft);border:1px solid var(--line);border-radius:10px;margin:0 22px 22px;padding:20px}.preview-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px;display:flex}.preview-heading h3{margin:0;font-size:15px}.preview-heading p{color:var(--muted);margin:4px 0 0;font-size:11px}.primary-button.compact{width:auto;padding:0 18px}.preview-table-wrap{overflow:auto}.import-preview table{border-collapse:collapse;width:100%;font-size:11px}.import-preview th,.import-preview td{border-bottom:1px solid var(--line);text-align:left;padding:9px 10px}.import-preview th{color:var(--muted)}.import-preview>small{color:var(--muted);margin-top:10px;display:block}.settings-layout{grid-template-columns:1fr;gap:12px;max-width:880px;padding-bottom:24px;display:grid}.settings-layout>.settings-card:first-child,.settings-card-wide{grid-column:auto}.settings-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:16px 18px 18px}.settings-heading{align-items:flex-start;gap:12px;margin-bottom:4px;display:flex}.settings-heading>div{flex:1;min-width:0}.settings-heading h2{margin:0;font-size:16px;font-weight:750}.settings-heading p{color:var(--muted);margin:4px 0 0;font-size:12px;line-height:1.45}.settings-heading code,.backup-hint code,.settings-heading p code{background:var(--soft);border-radius:4px;padding:1px 5px;font-size:11px}.hr-admin-root .settings-card>.settings-block{border-top:1px solid var(--line);background:0 0;border-bottom:0;border-left:0;border-right:0;border-radius:0;margin-top:14px;padding-top:14px;overflow:visible}.hr-admin-root .settings-card>.settings-block:first-of-type{margin-top:10px}.hr-admin-root .settings-card>.settings-block h3{color:var(--ink);margin:0 0 10px;font-size:13px;font-weight:750}.hr-settings-section+.hr-settings-section{border-top:1px solid var(--line-soft,var(--line));margin-top:4px;padding-top:16px}.hr-settings-section-title{color:var(--ink);letter-spacing:-.01em;margin:0 0 12px;font-size:13px;font-weight:650}.settings-icon{background:var(--sky-pale);width:38px;height:38px;color:var(--sky-deep);border-radius:8px;place-items:center;font-size:12px;font-weight:900;display:grid}.hr-admin-root .settings-status{background:var(--warn-pale);color:var(--warn);border-radius:6px;flex-shrink:0;padding:5px 9px;font-size:10px;font-weight:800}.settings-status.ready{background:var(--ok-pale);color:var(--ok)}.settings-fields{grid-template-columns:1fr 1fr;gap:10px 12px;margin-top:0;display:grid}.settings-fields.single,.settings-fields.settings-fields-stack{grid-template-columns:1fr}.settings-fields .settings-field-span{grid-column:1/-1}.settings-field-row{grid-column:1/-1;align-items:end;gap:12px;display:flex}.settings-field-grow{flex:1;min-width:0}.settings-inline-switch{flex-shrink:0;align-items:center;height:38px;margin-bottom:0;display:flex!important}.login-bg-picker{gap:12px;margin-top:0;display:grid}.login-bg-picker-main{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.login-bg-color-field{color:var(--ink);gap:6px;font-size:11px;font-weight:700;display:grid}.login-bg-color-controls{align-items:center;gap:8px;display:flex}.login-bg-color-controls input[type=color]{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;width:42px;height:38px;padding:3px}.login-bg-hex{border:1px solid var(--line);width:104px;height:38px;color:var(--ink);border-radius:8px;padding:0 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;font-weight:600}.login-bg-preview{border:1px solid var(--line);border-radius:10px;flex:1;place-items:center;min-width:140px;height:56px;display:grid}.login-bg-preview span{color:#1a2e2a;background:#ffffffb8;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:700}.login-bg-swatches{flex-wrap:wrap;gap:8px;display:flex}.login-bg-swatch{cursor:pointer;border:1px solid #0000001f;border-radius:999px;width:28px;height:28px;padding:0}.login-bg-swatch.selected{outline:2px solid var(--sky-deep);outline-offset:2px}.settings-fields label{color:var(--ink);gap:6px;font-size:11px;font-weight:700;display:grid}.settings-fields input{height:38px}.settings-fields input:disabled{background:var(--soft);color:var(--muted)}.backup-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;display:grid}.backup-panel{border:1px solid var(--line);background:var(--soft);border-radius:10px;padding:12px}.backup-panel h3{margin:0;font-size:13px;font-weight:750}.backup-panel>p{color:var(--muted);margin:4px 0 0;font-size:12px;line-height:1.4}.backup-panel .settings-fields{margin-top:10px}.backup-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.backup-actions .primary-button.compact,.backup-actions .hr-admin-root .secondary-button{height:34px;padding:0 12px;font-size:12px}.backup-hint{color:var(--muted);margin:8px 0 0;font-size:12px;line-height:1.45}.security-callout,.domain-guide{background:var(--soft);color:var(--muted);border-radius:8px;margin-top:12px;padding:10px 12px;font-size:12px;line-height:1.55}.security-callout.compact{margin-top:10px;padding:8px 10px;font-size:11px}.domain-guide strong{color:var(--sky-deep);margin-bottom:3px;display:block}.domain-guide p{margin:0}.hr-admin-root .settings-actions{z-index:8;border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffeb;border-radius:12px;grid-column:1/-1;justify-content:flex-end;align-items:center;gap:12px;margin-top:4px;padding:10px 14px;display:flex;position:sticky;bottom:12px;box-shadow:0 8px 24px #12284614}.settings-actions-tip{color:var(--muted);margin-right:auto;font-size:12px;font-weight:600}.hr-admin-root .settings-actions .hr-admin-root .primary-button{width:auto;min-width:132px;height:38px;padding:0 18px}@media (max-width:1000px){.admin-auth-shell{grid-template-columns:1fr}.admin-auth-intro{min-height:320px;padding:36px}.auth-security-list{margin-top:30px}.import-grid,.settings-layout,.backup-grid{grid-template-columns:1fr}.hr-admin-root .settings-actions{grid-column:1}}@media (max-width:900px){.login-shell{background:#fff;grid-template-columns:1fr;place-items:center;min-height:100dvh}.login-visual,.login-characters-wrap{display:none!important}.login-form-side{width:100%;min-height:100dvh;padding:24px 20px max(28px, env(safe-area-inset-bottom));align-content:center;place-items:center}.login-form-card{width:min(360px,100%)}.admin-entry{top:18px;right:18px}.management-grid{grid-template-columns:1fr}}@media (max-width:720px){.admin-shell{grid-template-columns:1fr;min-height:100dvh}.admin-sidebar{display:none}.admin-main{padding-bottom:84px}.admin-mobile-nav{z-index:30;border:1px solid var(--line);background:#fff;border-radius:16px;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;padding:6px;display:grid;position:fixed;bottom:10px;left:10px;right:10px}.admin-mobile-nav button{border-radius:12px;flex-direction:column;justify-content:center;gap:4px;height:58px;padding:0 2px;font-size:11px}.admin-mobile-nav button em{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;font-weight:700;display:block;overflow:hidden}.admin-mobile-nav .nav-icon{border-radius:9px;width:28px;height:28px}.admin-mobile-nav .nav-icon svg{width:15px;height:15px}.admin-mobile-nav button.active{background:var(--brand-pale);color:var(--brand)}}@media (max-width:620px){.login-center{padding:72px 20px 40px}.login-form-side{padding:20px 16px max(28px, env(safe-area-inset-bottom))}.login-form-card h1{font-size:26px}.portal-header{padding:12px 14px max(12px, env(safe-area-inset-top));flex-direction:column;align-items:stretch;gap:12px;height:auto;min-height:0}.portal-brand-mark{border-radius:10px;width:36px;height:36px;font-size:16px}.portal-brand-copy .hr-admin-root .site-logo{font-size:16px}.portal-content{width:min(100% - 24px,720px);padding:16px 0 max(96px, calc(24px + env(safe-area-inset-bottom)))}.portal-tools{grid-template-columns:minmax(0,1fr) auto;gap:8px;width:100%;display:grid}.portal-tools .month-picker{grid-column:1/-1;justify-content:space-between;width:100%}.portal-tools .month-display{flex:1;justify-content:center;min-width:0}.portal-save-btn{display:none}.portal-mobile-actions{display:block}.portal-ack{margin:8px 10px;padding:12px}.portal-ack-actions{grid-template-columns:1fr}.portal-ack-actions .hr-admin-root .primary-button,.portal-ack-actions .hr-admin-root .ghost-button{min-width:0}.portal-slip{border-radius:10px}.portal-slip-head{padding:14px 14px 8px}.portal-slip-name{font-size:18px}.portal-slip-foot{flex-direction:column;align-items:flex-start;padding:10px 14px 14px}.portal-hero{border-radius:6px;margin:0 10px 6px;padding:14px 12px 12px}.portal-net{font-size:clamp(30px,9vw,38px)}.portal-hero-meta{max-width:none}.portal-slip .portal-block{margin:0}.month-panel{width:auto;left:0;right:0}.attendance-calendar{grid-template-columns:repeat(5,minmax(0,1fr))}.admin-topbar{align-items:flex-start;gap:12px;padding:16px}.topbar-actions{flex-direction:column;align-items:flex-end;width:100%}.topbar-actions .month-picker{width:100%;max-width:280px}.admin-content{padding:12px 12px max(96px, calc(12px + env(safe-area-inset-bottom)))}.employee-row{grid-template-columns:32px 1fr 1fr auto auto}.employee-row input:nth-of-type(n+3){display:none}.employee-row .switch{display:inline-flex}.employee-row .row-delete-button{display:none}.admin-auth-intro{min-height:240px;padding:24px 20px}.admin-auth-intro h1{font-size:28px}.admin-auth-panel{padding:16px}.auth-card{padding:24px 18px}.import-grid{padding:14px}.import-preview{margin:0 14px 14px;overflow-x:auto}.settings-fields{grid-template-columns:1fr}.item-row.sortable-row{grid-template-columns:24px 48px 1fr 42px}.sortable-row select,.sort-buttons{display:none}.admin-mobile-nav{left:8px;right:8px;bottom:max(8px, env(safe-area-inset-bottom))}.admin-mobile-nav button em{height:0;font-size:0;overflow:hidden}.admin-mobile-nav button{height:52px}}@media (max-width:400px){.attendance-calendar{grid-template-columns:repeat(4,minmax(0,1fr))}.portal-hero-meta{grid-template-columns:1fr}.portal-stat+.portal-stat{border-left:0;border-top:1px solid color-mix(in srgb, var(--line) 80%, transparent)}}.hr-workspace{flex-direction:column;min-height:0;display:flex}.hr-workspace-body{flex:1;min-height:0}.hr-admin-root.is-embedded{--ink:unset;--muted:unset;--line:unset;--danger:unset;--page:transparent;--soft:var(--canvas);--surface:var(--paper);--sky:var(--accent);--sky-deep:var(--accent);--sky-pale:var(--accent-soft);--brand:var(--accent);--brand-mid:var(--accent-2);--brand-pale:var(--accent-soft);--ok:var(--success);--ok-pale:var(--success-soft);--warn:var(--warning);--warn-pale:var(--warning-soft);--danger-pale:var(--danger-soft);--leave:var(--accent-2);--leave-pale:var(--accent-soft);--extra:var(--accent-2);--extra-pale:var(--accent-soft);--rest:var(--muted);--rest-pale:var(--line-soft);--font-sans:var(--font);min-height:0;font-family:var(--font);color:var(--ink);background:0 0}.hr-admin-root.is-embedded .hr-embedded-shell{background:0 0;min-height:0;display:block}.hr-admin-root.is-embedded .hr-embedded-main{background:0 0;flex-direction:column;min-height:0;display:flex}.hr-admin-root.is-embedded .hr-embedded-toolbar{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--line-soft) 70%, var(--paper));flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;padding:10px 14px;display:flex}.hr-admin-root.is-embedded .hr-embedded-toolbar-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.hr-admin-root.is-embedded .hr-embedded-toolbar:empty,.hr-admin-root.is-embedded .hr-embedded-toolbar-actions:empty{display:none}.hr-admin-root.is-embedded .admin-content{background:0 0;padding:12px 14px 16px}.hr-admin-root.is-embedded .admin-section-stage{animation:none}.hr-admin-root.is-embedded .sheet-card,.hr-admin-root.is-embedded .settings-card,.hr-admin-root.is-embedded .import-card,.hr-admin-root.is-embedded .history-card,.hr-admin-root.is-embedded .form-card,.hr-admin-root.is-embedded .list-card,.hr-admin-root.is-embedded .employee-panel,.hr-admin-root.is-embedded .items-panel{border:1px solid var(--line);border-radius:var(--radius);box-shadow:none;background:var(--paper)}.hr-admin-root.is-embedded .sheet-card:hover,.hr-admin-root.is-embedded .history-card:hover,.hr-admin-root.is-embedded .form-card:hover,.hr-admin-root.is-embedded .list-card:hover,.hr-admin-root.is-embedded .import-card:hover,.hr-admin-root.is-embedded .settings-card:hover{border-color:var(--line)}.hr-admin-root.is-embedded .sheet-toolbar,.hr-admin-root.is-embedded .list-heading{min-height:56px;padding:12px 14px}.hr-admin-root.is-embedded .sheet-toolbar h2,.hr-admin-root.is-embedded .list-heading h2,.hr-admin-root.is-embedded .form-card h2{color:var(--ink);margin:0;font-size:15px;font-weight:650}.hr-admin-root.is-embedded .sheet-toolbar p,.hr-admin-root.is-embedded .list-heading p,.hr-admin-root.is-embedded .form-card>p{color:var(--muted);margin:4px 0 0;font-size:12px}.hr-admin-root.is-embedded .toolbar-buttons{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.hr-admin-root.is-embedded .admin-alert,.hr-admin-root.is-embedded .admin-notice{border-radius:8px;margin:10px 14px 0}.hr-admin-root.is-embedded .primary-button,.hr-admin-root.is-embedded .secondary-button,.hr-admin-root.is-embedded .ghost-button{height:34px;box-shadow:none;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:600;line-height:1;transition:background .15s,border-color .15s,color .15s,filter .15s;display:inline-flex}.hr-admin-root.is-embedded .primary-button{background:var(--accent);color:#fff;box-shadow:var(--btn-shadow);border-color:#0000}.hr-admin-root.is-embedded .primary-button:hover:not(:disabled){background:var(--accent-hover);filter:brightness(1.03)}.hr-admin-root.is-embedded .secondary-button,.hr-admin-root.is-embedded .ghost-button{background:var(--paper);border-color:var(--line);color:var(--ink)}.hr-admin-root.is-embedded .secondary-button:hover:not(:disabled),.hr-admin-root.is-embedded .ghost-button:hover:not(:disabled){background:var(--canvas);border-color:var(--line);color:var(--ink)}.hr-admin-root.is-embedded .ghost-button{color:var(--muted)}.hr-admin-root.is-embedded .ghost-button:hover:not(:disabled){color:var(--ink)}.hr-admin-root.is-embedded .primary-button.compact,.hr-admin-root.is-embedded .secondary-button.compact{height:32px;padding:0 12px;font-size:12px}.hr-admin-root.is-embedded .text-button{color:var(--accent);font-size:12px;font-weight:600}.hr-admin-root.is-embedded .btn-icon{flex:none;width:14px;height:14px}.hr-admin-root.is-embedded .row-delete-button{border:1px solid color-mix(in srgb, var(--danger) 35%, var(--line));background:var(--danger-soft);height:32px;color:var(--danger);border-radius:8px;font-weight:600;transform:none}.hr-admin-root.is-embedded .row-delete-button:hover{background:color-mix(in srgb, var(--danger-soft) 70%, #fff);border-color:color-mix(in srgb, var(--danger) 55%, var(--line));transform:none}.hr-admin-root.is-embedded .restore-button,.hr-admin-root.is-embedded .slip-action-btn.is-primary,.hr-admin-root.is-embedded .att-batch-apply{background:var(--accent);color:#fff;box-shadow:none;border-color:#0000}.hr-admin-root.is-embedded .restore-button:hover:not(:disabled),.hr-admin-root.is-embedded .slip-action-btn.is-primary:hover:not(:disabled),.hr-admin-root.is-embedded .att-batch-apply:hover:not(:disabled){background:var(--accent-hover);color:#fff;filter:brightness(1.03)}.hr-admin-root.is-embedded .slip-action-btn{border:1px solid var(--line);background:var(--paper);height:28px;color:var(--ink);border-radius:6px;font-weight:600}.hr-admin-root.is-embedded .slip-action-btn:hover:not(:disabled){background:var(--canvas);border-color:var(--line);color:var(--ink)}.hr-admin-root.is-embedded .att-batch-clear,.hr-admin-root.is-embedded .sort-buttons button{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:6px}.hr-admin-root.is-embedded .att-batch-clear:hover:not(:disabled),.hr-admin-root.is-embedded .sort-buttons button:hover:not(:disabled){background:var(--canvas);color:var(--ink);border-color:var(--line)}.hr-admin-root.is-embedded .att-view-switch,.hr-admin-root.is-embedded .segmented{background:var(--canvas);border:1px solid var(--line);border-radius:8px}.hr-admin-root.is-embedded .att-view-switch button,.hr-admin-root.is-embedded .segmented button{color:var(--muted);font-weight:600}.hr-admin-root.is-embedded .att-view-switch button.active,.hr-admin-root.is-embedded .segmented button.active{background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:none;font-weight:650}.hr-admin-root.is-embedded .att-batch-bar{background:var(--canvas);border:1px solid var(--line);border-radius:8px}.hr-admin-root.is-embedded .att-status-chip{border-radius:8px;font-weight:600}.hr-admin-root.is-embedded .att-status-chip.active:not([class*=status-出勤]):not([class*=status-迟到]):not([class*=status-早退]):not([class*=status-旷工]):not([class*=status-事假]):not([class*=status-病假]):not([class*=status-加班]):not([class*=status-休息]):not([class*=status-年假]):not([class*=status-empty]){background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent)}.hr-admin-root.is-embedded .att-fill-chip{border-radius:8px}.hr-admin-root.is-embedded .att-fill-chip.on{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent)}.hr-admin-root.is-embedded .att-selected-count.has{color:var(--accent)}.hr-admin-root.is-embedded .spreadsheet th{background:var(--canvas);color:var(--ink)}.hr-admin-root.is-embedded .spreadsheet th.sticky-col{background:color-mix(in srgb, var(--canvas) 85%, var(--line))}.hr-admin-root.is-embedded .attendance-sheet th.att-weekend,.hr-admin-root.is-embedded .attendance-sheet td.att-weekend{background:var(--line-soft)}.hr-admin-root.is-embedded .attendance-sheet th.att-weekend{background:color-mix(in srgb, var(--canvas) 70%, var(--line))}.hr-admin-root.is-embedded .attendance-sheet td.att-weekend .att-cell.status-empty{background:var(--line-soft)}.hr-admin-root.is-embedded .avatar,.hr-admin-root.is-embedded .step-icon,.hr-admin-root.is-embedded .empty-icon,.hr-admin-root.is-embedded .history-icon{background:var(--canvas);color:var(--muted);border:1px solid var(--line);border-radius:8px}.hr-admin-root.is-embedded .step-icon{background:var(--canvas);color:var(--nav-icon-fg,var(--muted))}.hr-admin-root.is-embedded .step-icon svg,.hr-admin-root.is-embedded .empty-icon svg,.hr-admin-root.is-embedded .history-icon svg{stroke:currentColor}.hr-admin-root.is-embedded .slip-status-select.is-generated,.hr-admin-root.is-embedded .slip-status-select.is-notified,.hr-admin-root.is-embedded .slip-status-select.is-confirmed{border-color:color-mix(in srgb, var(--accent) 28%, var(--line));background:var(--accent-soft);color:var(--accent)}.hr-admin-root.is-embedded .file-input::file-selector-button{color:var(--ink);border:1px solid var(--line);background:var(--paper);border-radius:7px}.hr-admin-root.is-embedded .import-step,.hr-admin-root.is-embedded .import-preview{background:var(--canvas);border-radius:8px}.hr-admin-root.is-embedded .hr-month-field.record-date-input{width:auto;min-width:132px}.hr-admin-root.is-embedded .hr-month-field .date-field-trigger{min-width:132px;height:32px}.hr-admin-root.is-embedded .save-indicator{color:var(--muted);font-size:12px}.hr-admin-root.is-embedded .save-indicator i,.hr-admin-root.is-embedded .green-dot{background:var(--success)}.hr-admin-root.is-embedded .employee-row input:focus,.hr-admin-root.is-embedded .item-row input:focus,.hr-admin-root.is-embedded .item-row select:focus{border-color:var(--line);box-shadow:0 0 0 3px var(--focus-ring);background:var(--paper)}.hr-admin-root.is-embedded .switch input:checked+span{background:var(--accent)}.hr-admin-root.is-embedded .notify-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);box-shadow:none}.hr-admin-root.is-embedded .notify-employee-row.selected{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 25%, var(--line))}.hr-admin-root.is-embedded .item-kind{background:var(--canvas);color:var(--muted);border:1px solid var(--line)}.hr-admin-root.is-embedded .item-kind.deduction{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb, var(--danger) 25%, var(--line))}.hr-admin-root.is-embedded .hr-settings-page.settings-layout{gap:12px;max-width:none;padding:0 0 8px}.hr-admin-root.is-embedded .hr-settings-page>.settings-block{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);margin:0;padding:0;overflow:hidden}.hr-admin-root.is-embedded .hr-settings-page .settings-block-head{padding:14px 16px}.hr-admin-root.is-embedded .hr-settings-page .settings-block-head h2{letter-spacing:-.01em;color:var(--ink);margin:0;font-family:inherit;font-size:14px;font-weight:700}.hr-admin-root.is-embedded .hr-settings-page .settings-block-head p{color:var(--muted);margin:3px 0 0;font-family:inherit;font-size:12px;font-weight:500;line-height:1.45}.hr-admin-root.is-embedded .hr-settings-page .settings-block-body{gap:16px;padding:16px;display:grid}.hr-admin-root.is-embedded .hr-settings-page .settings-actions{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--paper);border-radius:var(--radius);margin-top:0;position:static}.hr-admin-root.is-embedded .hr-settings-hint,.hr-settings-hint{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.hr-settings-loading{color:var(--muted);margin:0;font-size:13px}.hr-admin-root.is-embedded{--fs-caption:11px;--fs-body:13px;--fs-ui:13px;--fs-title:15px;--fs-page:18px;font-family:var(--font);font-size:14px}.hr-admin-root.is-embedded .form-card .field-grid{gap:12px;margin-top:12px;display:grid}.hr-admin-root.is-embedded .form-card .primary-button{margin-top:16px}.hr-admin-root.is-embedded .form-card label:not(.field):not(.switch),.hr-admin-root.is-embedded .settings-fields label:not(.field):not(.switch),.hr-admin-root.is-embedded .payroll-modal-fields label:not(.field),.hr-admin-root.is-embedded .field,.hr-admin-root.is-embedded .form-card .field,.hr-admin-root.is-embedded .hr-settings-page .field,.hr-admin-root.is-embedded .payroll-modal-fields .field{color:var(--muted);flex-direction:column;gap:6px;margin-top:0;font-size:11px;font-weight:500;display:flex}.hr-admin-root.is-embedded .field>span,.hr-admin-root.is-embedded .payroll-modal-fields .field>span{color:var(--muted);font-weight:600}.hr-admin-root.is-embedded .field input,.hr-admin-root.is-embedded .field select,.hr-admin-root.is-embedded .field textarea,.hr-admin-root.is-embedded .form-card input,.hr-admin-root.is-embedded .form-card select,.hr-admin-root.is-embedded .settings-fields input,.hr-admin-root.is-embedded .settings-fields select,.hr-admin-root.is-embedded .login-bg-hex,.hr-admin-root.is-embedded .payroll-modal-fields .money-input,.hr-admin-root.is-embedded .slip-status-select{border:1px solid var(--line);background:var(--paper);width:100%;height:38px;color:var(--ink);box-shadow:none;border-radius:7px;outline:none;padding:0 10px;font-family:inherit;font-size:13px;font-weight:500;line-height:1.4;transition:border-color .15s,background .15s}.hr-admin-root.is-embedded .field input:focus,.hr-admin-root.is-embedded .field select:focus,.hr-admin-root.is-embedded .field textarea:focus,.hr-admin-root.is-embedded .form-card input:focus,.hr-admin-root.is-embedded .form-card select:focus,.hr-admin-root.is-embedded .settings-fields input:focus,.hr-admin-root.is-embedded .login-bg-hex:focus,.hr-admin-root.is-embedded .payroll-modal-fields .money-input:focus,.hr-admin-root.is-embedded .slip-status-select:focus{box-shadow:none;background:#fff;border-color:#bdbdbd;outline:none}.hr-admin-root.is-embedded .field input:disabled,.hr-admin-root.is-embedded .settings-fields input:disabled{background:var(--canvas);color:var(--muted)}.hr-admin-root.is-embedded .employee-row input,.hr-admin-root.is-embedded .item-row input,.hr-admin-root.is-embedded .item-row select{border:1px solid var(--line);background:var(--paper);min-width:0;height:34px;color:var(--ink);border-radius:7px;padding:0 10px;font-family:inherit;font-size:13px;font-weight:500}.hr-admin-root.is-embedded .employee-row input:focus,.hr-admin-root.is-embedded .item-row input:focus,.hr-admin-root.is-embedded .item-row select:focus{box-shadow:none;background:#fff;border-color:#bdbdbd;outline:none}.hr-admin-root.is-embedded .payroll-sheet .money-input,.hr-admin-root.is-embedded .money-input{color:var(--ink);font-family:inherit;font-size:13px;font-weight:500}.hr-admin-root.is-embedded .payroll-modal-fields .money-input{text-align:right;font-variant-numeric:tabular-nums;background:var(--paper)}.hr-admin-root.is-embedded .payroll-modal-fields .money-input:focus{background:#fff}.hr-admin-root.is-embedded .spreadsheet,.hr-admin-root.is-embedded .spreadsheet th,.hr-admin-root.is-embedded .spreadsheet td,.hr-admin-root.is-embedded .status-select,.hr-admin-root.is-embedded .att-day-header,.hr-admin-root.is-embedded .att-row-header{font-family:inherit}.hr-admin-root.is-embedded .spreadsheet{font-size:13px}.hr-admin-root.is-embedded .spreadsheet th{font-size:12px;font-weight:650}.hr-admin-root.is-embedded .status-select,.hr-admin-root.is-embedded .slip-status-select{font-size:13px;font-weight:500}.hr-admin-root.is-embedded .sheet-toolbar h2,.hr-admin-root.is-embedded .list-heading h2,.hr-admin-root.is-embedded .form-card h2{color:var(--ink);font-family:inherit;font-size:15px;font-weight:650}.hr-admin-root.is-embedded .sheet-toolbar p,.hr-admin-root.is-embedded .list-heading p,.hr-admin-root.is-embedded .form-card>p{color:var(--muted);font-family:inherit;font-size:12px;font-weight:500}.hr-admin-root.is-embedded .hr-settings-section-title{color:var(--ink);font-family:inherit;font-size:13px;font-weight:650}.hr-admin-root.is-embedded .field-grid.two .settings-field-span,.hr-admin-root.is-embedded .field-grid .settings-field-span{grid-column:1/-1}.hr-admin-root.is-embedded .settings-field-row{align-items:flex-end;gap:12px;display:flex}.hr-admin-root.is-embedded .settings-field-grow{flex:1;min-width:0}.hr-admin-root.is-embedded .login-bg-color-field{color:var(--muted);flex-direction:column;gap:6px;font-size:11px;font-weight:600;display:flex}.hr-admin-root.is-embedded .login-bg-hex{width:110px}.hr-standalone-page{max-width:1280px;font-family:var(--font);color:var(--ink);background:var(--canvas);min-height:100vh;margin:0 auto;padding:20px 16px 32px}.hr-standalone-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.hr-standalone-head .eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;font-size:11px}.hr-standalone-head h1{margin:0;font-size:22px;font-weight:700}.hr-standalone-head p{color:var(--muted);margin:4px 0 0;font-size:13px}.dingtalk-jobs-panel{margin-top:18px}.dingtalk-jobs-shell{border:1px solid var(--line);background:linear-gradient(180deg, color-mix(in srgb, var(--sky-pale) 70%, #fff) 0%, #fff 42%);box-shadow:0 1px 0 color-mix(in srgb, var(--brand) 6%, transparent);border-radius:16px;overflow:hidden}.dingtalk-jobs-head{border-bottom:1px solid color-mix(in srgb, var(--line) 80%, transparent);justify-content:space-between;align-items:flex-start;gap:14px;padding:18px 20px 14px;display:flex}.dingtalk-jobs-brand{align-items:flex-start;gap:12px;min-width:0;display:flex}.dingtalk-jobs-mark{color:#fff;letter-spacing:.02em;background:linear-gradient(145deg, var(--brand-mid), var(--sky-deep));width:40px;height:40px;box-shadow:0 8px 18px color-mix(in srgb, var(--brand) 28%, transparent);border-radius:12px;flex:none;place-items:center;font-size:16px;font-weight:800;display:grid}.dingtalk-jobs-title-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dingtalk-jobs-head h2{color:var(--ink);margin:0;font-size:16px;font-weight:750}.dingtalk-jobs-head p{color:var(--muted);margin:6px 0 0;font-size:12px;line-height:1.5}.dingtalk-pending-count{color:#9a5b00;background:#fff4df;border:1px solid #ffe2b0;border-radius:999px;align-items:center;height:22px;padding:0 9px;font-size:11px;font-weight:700;display:inline-flex}.dingtalk-jobs-body{padding:14px 16px 16px}.dingtalk-inline-error{background:var(--danger-pale);color:var(--danger);border-radius:10px;margin-bottom:12px;padding:10px 12px;font-size:12px}.dingtalk-empty{text-align:center;border:1px dashed color-mix(in srgb, var(--brand) 22%, var(--line));background:color-mix(in srgb, var(--soft) 70%, #fff);border-radius:14px;justify-items:center;gap:6px;padding:28px 16px;display:grid}.dingtalk-empty-art{background:radial-gradient(circle at 30% 30%, #fff 0 18%, transparent 19%), linear-gradient(145deg, var(--brand-pale), color-mix(in srgb, var(--brand-mid) 35%, #fff));border:1px solid color-mix(in srgb, var(--brand) 18%, var(--line));border-radius:16px;width:54px;height:54px;margin-bottom:4px}.dingtalk-empty strong{color:var(--ink);font-size:14px}.dingtalk-empty p{max-width:320px;color:var(--muted);margin:0;font-size:12px;line-height:1.5}.dingtalk-job-list{gap:10px;display:grid}.dingtalk-job-card{border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:1fr auto;align-items:center;gap:14px;padding:14px;transition:border-color .15s,box-shadow .15s;display:grid}.dingtalk-job-card:hover{border-color:color-mix(in srgb, var(--brand) 28%, var(--line));box-shadow:0 8px 22px color-mix(in srgb, var(--ink) 5%, transparent)}.dingtalk-job-card.is-pending{border-color:color-mix(in srgb, #f0b429 35%, var(--line));background:linear-gradient(#fffdf8 0%,#fff 70%)}.dingtalk-job-card.is-failed{border-color:color-mix(in srgb, var(--danger) 28%, var(--line));background:linear-gradient(#fff8f8 0%,#fff 70%)}.dingtalk-job-card-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.dingtalk-job-card-top h3{color:var(--ink);margin:0;font-size:15px;font-weight:750}.dingtalk-job-time{color:var(--muted);align-items:center;gap:6px;margin:5px 0 0;font-size:11px;display:flex}.dingtalk-job-fail{color:var(--danger);margin:10px 0 0;font-size:12px;line-height:1.45}.dingtalk-metric-row{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.dingtalk-metric-row>span{background:var(--soft);border:1px solid color-mix(in srgb, var(--line) 80%, transparent);border-radius:10px;align-items:baseline;gap:6px;min-width:64px;padding:6px 10px;display:inline-flex}.dingtalk-metric-row em{color:var(--muted);font-size:11px;font-style:normal}.dingtalk-metric-row b{color:var(--ink);font-size:14px;font-weight:750}.dingtalk-job-card-actions{flex-direction:column;align-items:stretch;gap:8px;display:flex}.dingtalk-status-pill{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;height:22px;padding:0 9px;font-size:11px;font-weight:700;display:inline-flex}.dingtalk-status-pill.is-pending_review{color:#9a5b00;background:#fff4df;border-color:#ffe2b0}.dingtalk-status-pill.is-imported{color:#0f766e;background:#e7f8f4;border-color:#c6eee5}.dingtalk-status-pill.is-rejected{color:var(--muted);background:var(--soft);border-color:var(--line)}.dingtalk-status-pill.is-failed{color:var(--danger);background:var(--danger-pale);border-color:#ffd0d0}.dingtalk-job-mask{z-index:12000}.dingtalk-job-modal{border:1px solid var(--line);background:#fff;border-radius:18px;flex-direction:column;width:min(920px,100vw - 28px);max-height:calc(100vh - 36px);display:flex;overflow:hidden;box-shadow:0 28px 70px #0f1c2d47}.dingtalk-job-modal-head{background:linear-gradient(135deg, color-mix(in srgb, var(--sky-pale) 88%, #fff), #fff 58%);border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 14px;display:flex}.dingtalk-job-modal-title{min-width:0}.dingtalk-job-modal-title h3{color:var(--ink);letter-spacing:-.01em;margin:8px 0 0;font-size:18px;font-weight:780}.dingtalk-job-modal-title p{color:var(--muted);margin:6px 0 0;font-size:12px;line-height:1.5}.dingtalk-modal-stats{background:color-mix(in srgb, var(--soft) 80%, #fff);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px 16px;display:grid}.dingtalk-stat{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 12px}.dingtalk-stat em{color:var(--muted);font-size:11px;font-style:normal;display:block}.dingtalk-stat strong{color:var(--ink);letter-spacing:-.02em;margin-top:4px;font-size:20px;font-weight:780;display:block}.dingtalk-stat.is-warn strong{color:#b45309}.dingtalk-stat.is-mute strong{color:var(--muted)}.dingtalk-job-modal-body{flex:1;padding:14px 16px 8px;overflow:auto}.dingtalk-people-list{gap:8px;display:grid}.dingtalk-person-card{border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:40px 1fr;gap:12px;padding:12px;display:grid}.dingtalk-person-avatar{width:40px;height:40px;color:var(--sky-deep);background:var(--sky-pale);border:1px solid color-mix(in srgb, var(--brand) 16%, var(--line));border-radius:12px;place-items:center;font-weight:800;display:grid}.dingtalk-person-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.dingtalk-person-top strong{color:var(--ink);font-size:14px}.dingtalk-person-meta{color:var(--muted);align-items:center;gap:6px;margin:4px 0 0;font-size:12px;display:flex}.dingtalk-person-empty{color:var(--muted);margin:8px 0 0;font-size:11px}.dingtalk-day-chips{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.dingtalk-day-chip{height:22px;color:var(--ink);background:var(--soft);border:1px solid var(--line);border-radius:999px;align-items:center;padding:0 8px;font-size:11px;display:inline-flex}.dingtalk-day-chip.is-more{color:var(--muted)}.dingtalk-tag{white-space:nowrap;border-radius:999px;align-items:center;height:22px;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.dingtalk-tag.is-create{color:#9a5b00;background:#fff4df;border:1px solid #ffe2b0}.dingtalk-tag.is-match{color:var(--sky-deep);background:var(--sky-pale);border:1px solid color-mix(in srgb, var(--brand) 18%, var(--line))}.dingtalk-skip-block{background:#fff8f8;border:1px solid #ffd8d8;border-radius:14px;margin-top:14px;padding:12px}.dingtalk-skip-block h4{color:var(--danger);margin:0 0 8px;font-size:13px}.dingtalk-skip-block ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.dingtalk-skip-block li{color:var(--ink);grid-template-columns:88px 110px 1fr;gap:8px;font-size:12px;display:grid}.dingtalk-skip-block li span,.dingtalk-skip-block li em{color:var(--muted);font-style:normal}.dingtalk-job-modal-foot{border-top:1px solid var(--line);background:color-mix(in srgb, var(--soft) 65%, #fff);justify-content:flex-end;gap:10px;padding:12px 16px 16px;display:flex}.import-toolbar{flex-wrap:wrap;align-items:flex-start;gap:12px}.import-toolbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-left:auto;display:flex}.import-toolbar-actions .dingtalk-quick-pull-compact{max-width:none}.import-toolbar-actions .dingtalk-quick-msg{max-width:min(42vw,280px)}.dingtalk-jobs-panel.is-compact{margin-top:12px}.dingtalk-jobs-panel.is-compact .dingtalk-jobs-shell{border-radius:14px}.dingtalk-jobs-panel.is-compact .dingtalk-jobs-head{align-items:center;gap:8px;padding:10px 12px}.dingtalk-jobs-toggle{text-align:left;cursor:pointer;min-width:0;color:inherit;background:0 0;border:0;flex:1;justify-content:space-between;align-items:center;gap:10px;padding:0;display:flex}.dingtalk-jobs-panel:not(.is-compact) .dingtalk-jobs-toggle{cursor:default}.dingtalk-jobs-count{background:var(--soft);min-width:20px;height:20px;color:var(--muted);border-radius:999px;place-items:center;padding:0 6px;font-size:11px;font-weight:750;display:inline-grid}.dingtalk-jobs-caret{color:var(--sky-deep);white-space:nowrap;flex:none;font-size:12px;font-weight:700}.dingtalk-jobs-panel.is-compact .dingtalk-jobs-head p{margin-top:2px;font-size:11px}.dingtalk-jobs-panel.is-compact .dingtalk-jobs-head h2{font-size:14px}.dingtalk-jobs-panel.is-compact .dingtalk-jobs-mark{border-radius:10px;width:32px;height:32px;font-size:13px}.dingtalk-jobs-panel.is-compact .dingtalk-jobs-body{max-height:220px;padding:0 10px 10px;overflow:auto}.dingtalk-job-card.is-compact{border-radius:10px;grid-template-columns:1fr auto;gap:8px;padding:8px 10px}.dingtalk-job-card.is-compact h3{margin:0;font-size:13px}.dingtalk-job-card.is-compact .dingtalk-job-time{font-size:11px}.dingtalk-jobs-panel.is-compact .dingtalk-empty{padding:16px 10px}.dingtalk-jobs-panel.is-compact .dingtalk-empty-art{display:none}.dingtalk-quick-pull{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dingtalk-quick-pull-compact{align-items:center;gap:6px;max-width:min(100%,460px);display:inline-flex}.dingtalk-quick-month{border:1px solid var(--line);background:#fff;border-radius:8px;height:32px;padding:0 8px;font-size:12px}.dingtalk-quick-msg{text-overflow:ellipsis;white-space:nowrap;max-width:220px;color:var(--muted);font-size:11px;display:inline-block;overflow:hidden}.dingtalk-quick-msg.is-err{color:var(--danger)}.dingtalk-quick-msg.is-ok{color:var(--brand)}.dingtalk-quick-pull-block{border:1px solid var(--line);background:#fff;border-radius:16px;margin-top:16px;overflow:hidden}.dingtalk-quick-pull-block .settings-block-head,.dingtalk-quick-pull-block .settings-block-body{padding-left:18px;padding-right:18px}.hr-admin-root .import-card .dingtalk-jobs-panel,.hr-admin-root .sheet-card .dingtalk-jobs-panel,.hr-admin-root .list-card .dingtalk-jobs-panel{overflow:visible}@media (max-width:720px){.dingtalk-job-card{grid-template-columns:1fr}.dingtalk-job-card-actions{flex-direction:row;justify-content:flex-end}.dingtalk-modal-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dingtalk-skip-block li{grid-template-columns:1fr;gap:2px}}.attendance-sheet th{height:58px}.attendance-sheet .att-day-header{flex-direction:column;justify-content:center;align-items:center;min-height:52px;line-height:1.1;display:flex}.attendance-sheet th:not(.name-col):not(.att-stat-col):not(.att-stat-toggle-col),.attendance-sheet td.att-cell-td{width:48px;max-width:54px;padding:0;min-width:48px!important}.attendance-sheet .name-col{width:84px;max-width:96px;min-width:84px!important}.attendance-sheet td.name-col{padding-right:4px;padding-left:8px!important}.attendance-sheet .att-cell{min-height:32px;padding:1px 0;font-size:11px}.attendance-sheet .att-cell.has-time{min-height:36px}.attendance-sheet .att-cell em{letter-spacing:-.04em;font-size:8px}.attendance-sheet .att-status-icon{margin-right:1px;font-size:.9em}.attendance-sheet .att-status-text{letter-spacing:-.02em}.attendance-sheet .att-row-stat-hint{letter-spacing:0;min-width:18px;height:18px;box-shadow:none;border:0;border-radius:6px;justify-content:center;align-items:center;padding:0 5px;font-size:10px;font-weight:800;line-height:1;display:inline-flex;color:#fff!important;background:#1f7ae0!important}.attendance-sheet .att-day-header{padding:4px 0;font-size:12px;line-height:1.15}.attendance-sheet .att-day-header small{margin-top:1px;font-size:8px;transform:scale(.95)}.attendance-sheet .att-stat-toggle-col{z-index:5;border-left:1px solid var(--line);background:#e8f0f8;width:28px;max-width:28px;padding:0;position:sticky;right:0;box-shadow:-4px 0 8px #0f27440f;min-width:28px!important}.attendance-sheet th.att-stat-toggle-col{z-index:8;background:#d9e7f5}.attendance-sheet td.att-stat-toggle-col{background:#eef5fb}.att-stat-toggle-btn{width:100%;height:100%;min-height:42px;color:var(--sky-deep);letter-spacing:-.04em;cursor:pointer;writing-mode:horizontal-tb;background:0 0;border:0;justify-content:center;align-items:center;padding:0 2px;font-size:11px;font-weight:800;display:flex}.att-stat-toggle-btn:hover{background:color-mix(in srgb, var(--brand) 12%, transparent)}.att-stat-toggle-btn-row{min-height:34px;color:var(--muted);font-size:12px}.att-sheet-wrap.att-stats-collapsed .att-stat-toggle-btn{writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.12em;padding:8px 0;font-size:11px;line-height:1.1}.att-stats-cols-toggle.is-collapsed{color:var(--sky-deep);border-color:color-mix(in srgb, var(--sky-deep) 35%, var(--line))}.attendance-sheet .att-stat-col{text-align:center;width:36px;max-width:36px;color:var(--muted);border-left:1px solid var(--line);background:#f3f8fd;padding:0;font-size:10px;font-weight:700;min-width:36px!important}.attendance-sheet th.att-stat-col{z-index:6;position:sticky;top:0}.attendance-sheet .sticky-col-right{z-index:4;background:#f7fbff;position:sticky}.attendance-sheet th.sticky-col-right{z-index:7;background:#e4eef8}.attendance-sheet td.sticky-col-right{background:#f7fbff}.attendance-sheet .att-stat-col-出勤{color:#0f766e}.attendance-sheet .att-stat-col-迟到{color:#b45309}.attendance-sheet .att-stat-col-请假{color:#1d4ed8}.attendance-sheet .att-stat-col-旷工{color:var(--danger)}.attendance-sheet .att-stat-col-休息{color:#64748b}.att-stat-cell{width:100%;min-height:26px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:11px;font-weight:750;display:flex}.att-stat-cell:hover{background:color-mix(in srgb, var(--brand) 12%, transparent)}.att-stat-total-row td{border-top:1px solid color-mix(in srgb, var(--brand) 20%, var(--line));font-weight:700;background:#eef5fb!important}.att-stat-total-span{text-align:left;color:var(--muted);font-size:11px;padding-left:12px!important;font-weight:600!important}.att-row-header{align-items:center;gap:6px;max-width:100%;display:inline-flex}.att-row-stat-hint{color:#fff;background:#1f7ae0;border-radius:6px;flex:none;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:800;line-height:1;display:inline-flex}.att-calendar-row-split{align-items:center;gap:8px;width:100%;display:flex}.att-calendar-row-main{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;gap:4px;min-width:0;padding:0;display:flex}.att-calendar-mini-stats{flex-wrap:wrap;gap:6px;display:flex}.att-calendar-mini-stats em{color:var(--muted);background:var(--soft);border-radius:999px;padding:2px 7px;font-size:11px;font-style:normal}.att-calendar-row-split .att-calendar-row-action{color:var(--sky-deep);cursor:pointer;background:0 0;border:0;flex:none;margin-left:0;font-size:12px;font-weight:700}.att-stats-mask{z-index:1100}.att-stats-modal{border:1px solid var(--line);background:#fff;border-radius:18px;flex-direction:column;width:min(720px,100vw - 28px);max-height:calc(100vh - 36px);display:flex;overflow:hidden;box-shadow:0 28px 70px #0f1c2d47}.att-stats-modal-head{border-bottom:1px solid var(--line);background:linear-gradient(135deg, color-mix(in srgb, var(--sky-pale) 85%, #fff), #fff 60%);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px;display:flex}.att-stats-modal-head strong{color:var(--ink);font-size:18px;display:block}.att-stats-modal-head p{color:var(--muted);margin:6px 0 0;font-size:12px}.att-stats-modal-actions{align-items:center;gap:8px;display:flex}.att-stats-modal-grid{background:color-mix(in srgb, var(--soft) 70%, #fff);border-bottom:1px solid var(--line);grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:14px 16px;display:grid}.att-stats-card{border:1px solid var(--line);text-align:center;background:#fff;border-radius:12px;padding:10px 8px}.att-stats-card em{color:var(--muted);font-size:11px;font-style:normal;display:block}.att-stats-card strong{letter-spacing:-.02em;color:var(--ink);margin-top:4px;font-size:22px;font-weight:800;display:block}.att-stats-card span{color:var(--muted);font-size:11px}.att-stats-card-出勤 strong{color:#0f766e}.att-stats-card-迟到 strong{color:#b45309}.att-stats-card-请假 strong{color:#1d4ed8}.att-stats-card-旷工 strong{color:var(--danger)}.att-stats-card-休息 strong{color:#64748b}.att-stats-modal-body{flex:1;gap:12px;padding:12px 16px 18px;display:grid;overflow:auto}.att-stats-group h4{color:var(--ink);align-items:center;gap:8px;margin:0 0 8px;font-size:13px;display:flex}.att-stats-group h4 span{background:var(--soft);min-width:20px;height:20px;color:var(--muted);border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;display:inline-flex}.att-stats-chips{flex-wrap:wrap;gap:6px;display:flex}.att-stats-chip{background:var(--soft);border:1px solid var(--line);height:24px;color:var(--ink);border-radius:999px;align-items:center;padding:0 9px;font-size:11px;display:inline-flex}.att-stats-empty{color:var(--muted);margin:0;font-size:12px}@media (max-width:720px){.att-stats-modal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.att-select-edit-group{flex:none;align-items:center;gap:4px;display:inline-flex}.att-select-edit-help{width:18px;height:18px;color:var(--muted,#6b7280);cursor:help;outline:none;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.att-select-edit-help-icon{border:1px solid color-mix(in srgb, var(--muted,#6b7280) 45%, transparent);-webkit-user-select:none;user-select:none;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.att-select-edit-help:hover .att-select-edit-help-icon,.att-select-edit-help:focus .att-select-edit-help-icon,.att-select-edit-help:focus-visible .att-select-edit-help-icon{border-color:var(--brand,#0f766e);color:var(--brand,#0f766e);background:color-mix(in srgb, var(--sky-pale,#ecfeff) 80%, #fff)}.att-select-edit-help-tip{z-index:80;border:1px solid var(--line,#e5e7eb);width:max-content;max-width:min(280px,70vw);color:var(--ink,#111827);text-align:left;white-space:normal;pointer-events:none;opacity:0;visibility:hidden;background:#fff;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:500;line-height:1.45;transition:opacity .12s,visibility .12s;position:absolute;top:calc(100% + 8px);bottom:auto;left:0;transform:none;box-shadow:0 10px 28px #0f1c2d29}.att-select-edit-help-tip:after{content:"";filter:drop-shadow(0 -1px 0 var(--line,#e5e7eb));border:5px solid #0000;border-bottom-color:#fff;margin-left:0;position:absolute;top:auto;bottom:100%;left:10px}.att-select-edit-help:hover .att-select-edit-help-tip,.att-select-edit-help:focus .att-select-edit-help-tip,.att-select-edit-help:focus-visible .att-select-edit-help-tip{opacity:1;visibility:visible}.hr-admin-root .sheet-card:has(.att-toolbar){overflow:visible}.hr-admin-root .sheet-toolbar.att-toolbar,.hr-admin-root .att-toolbar-row,.hr-admin-root .att-select-edit-group{z-index:6;position:relative;overflow:visible}.hr-admin-root .att-select-edit-help{z-index:50}.att-select-edit-switch{border:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none;height:34px;color:var(--muted);background:#fff;border-radius:999px;align-items:center;gap:8px;padding:0 10px 0 8px;font-size:12px;font-weight:700;display:inline-flex}.att-select-edit-switch input{opacity:0;pointer-events:none;position:absolute}.att-select-edit-track{background:#d7e0ea;border-radius:999px;flex:none;width:34px;height:20px;transition:background .15s;position:relative}.att-select-edit-thumb{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0f1c2d40}.att-select-edit-switch.on{border-color:color-mix(in srgb, var(--brand) 35%, var(--line));background:color-mix(in srgb, var(--sky-pale) 70%, #fff);color:var(--sky-deep)}.att-select-edit-switch.on .att-select-edit-track{background:var(--brand)}.att-select-edit-switch.on .att-select-edit-thumb{transform:translate(14px)}.att-select-edit-switch em{font-style:normal}.att-select-edit-tip{background:var(--soft);border:1px dashed var(--line);color:var(--muted);border-radius:10px;margin:0 18px 10px;padding:8px 12px;font-size:12px}.att-select-edit-tip-modal{width:100%;margin:0}.att-sheet-wrap.is-edit-off .att-cell-td{cursor:default}.att-sheet-wrap.is-edit-off .att-cell{pointer-events:none}.att-sheet-wrap.is-edit-on .att-cell-td{cursor:cell}.dingtalk-job-mask.hr-admin-root,.dingtalk-preview-modal{--ink:#1a2b3c;--muted:#6b7c8a;--line:#e3ebf2;--soft:#f4f8fc;--sky:#3b9eff;--sky-deep:#1f7ae0;--sky-pale:#e8f3ff;--brand:#1f7ae0;--brand-mid:#3b9eff;--danger:#d45454}.dingtalk-preview-modal{border:1px solid var(--line,#e3ebf2);width:min(880px,100vw - 24px);max-height:calc(100vh - 32px);color:var(--ink,#1a2b3c);background:#fff;border-radius:20px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 30px 80px #0f1c2d4d}.dingtalk-preview-head{border-bottom:1px solid var(--line,#e3ebf2);background:#fff;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 18px 14px;display:flex}.dingtalk-preview-head-main{flex:1;align-items:flex-start;gap:12px;min-width:0;padding-right:8px;display:flex}.dingtalk-preview-badge{text-align:center;color:#1f7ae0;min-width:76px;box-shadow:none;background:#e8f3ff;border:1px solid #c5ddf8;border-radius:14px;flex:none;padding:10px 12px;font-size:12px;font-weight:800;line-height:1.35}.dingtalk-preview-title-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dingtalk-preview-title-row h3{color:var(--ink);letter-spacing:-.02em;margin:0;font-size:18px;font-weight:800}.dingtalk-preview-head p{color:var(--muted);margin:6px 0 0;font-size:12px;line-height:1.45}.dingtalk-preview-stats{border-bottom:1px solid var(--line,#e3ebf2);background:#fff;flex-shrink:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;display:grid}.dingtalk-preview-stat+.dingtalk-preview-stat{border-left:1px solid var(--line,#e3ebf2)}.dingtalk-preview-stat{text-align:center;background:#fff;padding:12px 10px}.dingtalk-preview-stat span{color:var(--muted);font-size:11px;display:block}.dingtalk-preview-stat b{letter-spacing:-.03em;color:var(--ink);margin-top:4px;font-size:22px;font-weight:800;display:block}.dingtalk-preview-stat.is-match b{color:var(--sky-deep)}.dingtalk-preview-stat.is-create b{color:#b45309}.dingtalk-preview-stat.is-skip b{color:var(--muted)}.dingtalk-preview-filters{z-index:2;border-bottom:1px solid var(--line,#e3ebf2);background:#fff;flex-shrink:0;gap:8px;padding:10px 14px;display:flex;position:relative;overflow-x:auto}.dingtalk-preview-filter{border:1px solid var(--line);height:30px;color:var(--muted);cursor:pointer;white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:12px;font-weight:700;display:inline-flex}.dingtalk-preview-filter em{background:var(--soft);border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-style:normal;display:inline-grid}.dingtalk-preview-filter.active{color:var(--sky-deep);border-color:color-mix(in srgb, var(--brand) 35%, var(--line));background:var(--sky-pale)}.dingtalk-preview-filter.active em{color:var(--sky-deep);background:#fff}.dingtalk-preview-legend{border-bottom:1px solid var(--line,#e3ebf2);background:#fff;flex-wrap:wrap;flex-shrink:0;gap:8px 10px;padding:8px 14px;display:flex}.dingtalk-preview-legend-item{color:var(--muted);align-items:center;gap:5px;font-size:11px;display:inline-flex}.dingtalk-preview-legend-item i{background:#cbd5e1;border-radius:2px;width:8px;height:8px;display:inline-block}.dingtalk-preview-legend-item.status-出勤 i,.dingtalk-heat-cell.status-出勤,.dingtalk-preview-daychip.status-出勤{background:#14b8a6}.dingtalk-preview-legend-item.status-迟到 i,.dingtalk-heat-cell.status-迟到,.dingtalk-preview-daychip.status-迟到{background:#f59e0b}.dingtalk-preview-legend-item.status-早退 i,.dingtalk-heat-cell.status-早退,.dingtalk-preview-daychip.status-早退{background:#7b96ad}.dingtalk-preview-legend-item.status-事假 i,.dingtalk-heat-cell.status-事假,.dingtalk-preview-daychip.status-事假{background:#3b82f6}.dingtalk-preview-legend-item.status-病假 i,.dingtalk-heat-cell.status-病假,.dingtalk-preview-daychip.status-病假{background:#6366f1}.dingtalk-preview-legend-item.status-年假 i,.dingtalk-heat-cell.status-年假,.dingtalk-preview-daychip.status-年假{background:#8b5cf6}.dingtalk-preview-legend-item.status-加班 i,.dingtalk-heat-cell.status-加班,.dingtalk-preview-daychip.status-加班{background:#0ea5e9}.dingtalk-preview-legend-item.status-旷工 i,.dingtalk-heat-cell.status-旷工,.dingtalk-preview-daychip.status-旷工{background:#ef4444}.dingtalk-preview-legend-item.status-休息 i,.dingtalk-heat-cell.status-休息,.dingtalk-preview-daychip.status-休息{background:#94a3b8}.dingtalk-preview-body{background:#fff;flex:1;min-height:0;padding:10px 12px 12px;overflow:auto}.dingtalk-preview-list{gap:8px;display:grid}.dingtalk-preview-row{border:1px solid var(--line);background:#fff;border-radius:14px;transition:border-color .15s,box-shadow .15s;overflow:hidden}.dingtalk-preview-row.is-open,.dingtalk-preview-row:hover{border-color:color-mix(in srgb, var(--brand) 28%, var(--line));box-shadow:0 8px 20px #0f1c2d0f}.dingtalk-preview-row.is-create{background:linear-gradient(#fffdf8 0%,#fff 55%)}.dingtalk-preview-row-main{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:40px minmax(120px,160px) 1fr auto;align-items:center;gap:10px;width:100%;padding:10px 12px;display:grid}.dingtalk-preview-avatar{width:40px;height:40px;color:var(--sky-deep);background:var(--sky-pale);border:1px solid color-mix(in srgb, var(--brand) 14%, var(--line));border-radius:12px;place-items:center;font-weight:800;display:grid}.dingtalk-preview-avatar.is-mute{color:var(--muted);background:var(--soft)}.dingtalk-preview-identity{min-width:0}.dingtalk-preview-name-line{align-items:center;gap:6px;min-width:0;display:flex}.dingtalk-preview-name-line strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.dingtalk-preview-identity p{color:var(--muted);gap:6px;margin:4px 0 0;font-size:11px;display:flex}.dingtalk-preview-heat{grid-template-columns:repeat(auto-fit,minmax(7px,1fr));align-content:center;gap:2px;min-height:18px;display:grid}.dingtalk-heat-cell{background:#e8eef5;border-radius:2px;height:10px}.dingtalk-heat-cell.is-empty{opacity:.7;background:#eef2f7}.dingtalk-preview-chevron{color:var(--sky-deep);white-space:nowrap;font-size:11px;font-weight:700}.dingtalk-preview-expand{border-top:1px dashed var(--line);padding:0 12px 12px}.dingtalk-preview-daygrid{flex-wrap:wrap;gap:6px;padding-top:10px;display:flex}.dingtalk-preview-daychip{color:#fff;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;min-width:42px;height:42px;line-height:1.1;display:inline-flex}.dingtalk-preview-daychip b{font-size:12px;font-weight:800}.dingtalk-preview-daychip em{opacity:.95;font-size:11px;font-style:normal}.dingtalk-preview-daychip i{display:none}.dingtalk-preview-empty,.dingtalk-preview-blank{text-align:center;color:var(--muted);margin:0;padding:28px 12px;font-size:13px}.dingtalk-preview-skip-list{gap:8px;display:grid}.dingtalk-preview-skip-item{background:#fff8f8;border:1px solid #ffd8d8;border-radius:14px;grid-template-columns:40px 1fr;align-items:center;gap:10px;padding:10px 12px;display:grid}.dingtalk-preview-skip-item strong{color:var(--ink);font-size:14px;display:block}.dingtalk-preview-skip-item p{color:var(--muted);flex-wrap:wrap;gap:6px;margin:4px 0 0;font-size:12px;display:flex}.dingtalk-preview-foot{border-top:1px solid var(--line,#e3ebf2);background:#fff;flex-shrink:0;justify-content:flex-end;gap:10px;padding:12px 16px 16px;display:flex}@media (max-width:720px){.dingtalk-preview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dingtalk-preview-row-main{grid-template-columns:36px 1fr auto}.dingtalk-preview-heat{display:none}.dingtalk-preview-badge{min-width:64px;padding:8px 10px;font-size:11px}}.att-stats-modal-v2{border:1px solid var(--line);background:#fff;border-radius:20px;flex-direction:column;width:min(920px,100vw - 24px);max-height:calc(100vh - 28px);display:flex;overflow:hidden;box-shadow:0 28px 72px #0f1c2d4d}.att-stats-head-actions{flex:none;align-items:center;gap:8px;display:flex}.att-stats-head-actions .secondary-button{height:32px;padding:0 12px;font-size:12px}.att-stats-head{background:radial-gradient(100% 120% at 0% 0%, color-mix(in srgb, var(--sky-pale) 88%, #fff), transparent 60%), linear-gradient(180deg, #f7fbff, #fff);border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px 12px;display:flex}.att-stats-head-main{gap:12px;min-width:0;display:flex}.att-stats-mark{width:48px;height:48px;color:var(--sky-deep);background:var(--sky-pale);border:1px solid color-mix(in srgb, var(--brand) 16%, var(--line));border-radius:14px;flex:none;place-items:center;font-size:18px;font-weight:800;display:grid}.att-stats-mark.is-team{color:#fff;background:linear-gradient(145deg, var(--brand-mid), var(--sky-deep));border-color:#0000}.att-stats-tabs{background:0 0;border:0;border-radius:0;gap:18px;margin-bottom:10px;padding:0;display:inline-flex}.att-stats-tab{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:0;height:auto;padding:0 0 8px;font-size:13px;font-weight:700;position:relative}.att-stats-tab:after{content:"";background:0 0;border-radius:2px;height:2px;position:absolute;bottom:0;left:0;right:0}.att-stats-tab:hover{color:var(--ink)}.att-stats-tab.active{color:#1f7ae0;box-shadow:none;background:0 0}.att-stats-tab.active:after{background:#1f7ae0}.att-stats-head h3{color:var(--ink);letter-spacing:-.02em;margin:0;font-size:18px;font-weight:800}.att-stats-head p{color:var(--muted);margin:4px 0 0;font-size:12px}.att-stats-kpi{border-bottom:1px solid var(--line);background:#f4f8fc;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:12px 14px;display:grid}.att-stats-kpi-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 10px 8px}.att-stats-kpi-top{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.att-stats-kpi-top em{color:var(--muted);align-items:center;gap:3px;font-size:11px;font-style:normal;font-weight:650;display:inline-flex}.att-stats-kpi-top .att-status-icon{font-size:12px}.att-stats-kpi-top strong{letter-spacing:-.03em;color:var(--ink);font-size:20px;font-weight:800}.att-stats-kpi-card.is-出勤 .att-stats-kpi-top strong{color:#0f766e}.att-stats-kpi-card.is-迟到 .att-stats-kpi-top strong{color:#b45309}.att-stats-kpi-card.is-请假 .att-stats-kpi-top strong{color:#1d4ed8}.att-stats-kpi-card.is-旷工 .att-stats-kpi-top strong{color:var(--danger)}.att-stats-kpi-card.is-休息 .att-stats-kpi-top strong{color:#64748b}.att-stats-kpi-bar{background:var(--soft);border-radius:999px;height:5px;margin-top:8px;overflow:hidden}.att-stats-kpi-bar i{border-radius:inherit;background:var(--brand);height:100%;display:block}.att-stats-kpi-card.is-出勤 .att-stats-kpi-bar i{background:#14b8a6}.att-stats-kpi-card.is-迟到 .att-stats-kpi-bar i{background:#f59e0b}.att-stats-kpi-card.is-请假 .att-stats-kpi-bar i{background:#3b82f6}.att-stats-kpi-card.is-旷工 .att-stats-kpi-bar i{background:#ef4444}.att-stats-kpi-card.is-休息 .att-stats-kpi-bar i{background:#94a3b8}.att-stats-kpi-card>span{color:var(--muted);margin-top:6px;font-size:10px;display:block}.att-stats-body{background:#f7fafc;flex:1;padding:12px 14px 16px;overflow:auto}.att-stats-section-head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.att-stats-section-head h4{color:var(--ink);margin:0;font-size:13px;font-weight:750}.att-stats-section-head p{color:var(--muted);margin:0;font-size:11px}.att-stats-rank{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:visible}.att-stats-rank-head,.att-stats-rank-row{grid-template-columns:minmax(110px,1.4fr) repeat(6,minmax(40px,1fr));align-items:center;gap:6px;padding:9px 12px;font-size:12px;display:grid}.att-stats-rank-head{z-index:3;color:var(--muted);border-bottom:1px solid var(--line);background:#eef5fb;font-weight:700;position:sticky;top:0;box-shadow:0 1px #0f27440a}.att-stats-rank-head .att-status-icon{margin-right:2px;font-size:11px}.att-stats-rank-row{border:0;border-top:1px solid color-mix(in srgb, var(--line) 70%, transparent);text-align:left;cursor:pointer;width:100%;color:var(--ink);background:#fff}.att-stats-rank-row:hover{background:#f5faff}.att-stats-rank-row span{text-align:center;font-variant-numeric:tabular-nums}.att-stats-rank-name{align-items:center;gap:8px;min-width:0;text-align:left!important;display:inline-flex!important}.att-stats-rank-name em{width:20px;height:20px;color:var(--sky-deep,#1f7ae0);background:0 0;border:0;border-radius:6px;flex:none;place-items:center;font-size:11px;font-style:normal;font-weight:800;display:grid}.att-stats-rank-name strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.att-stats-rank-row .is-danger{color:var(--danger);font-weight:750}.att-stats-person-layout{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start;gap:12px;display:grid}.att-stats-panel{border:1px solid var(--line);background:#fff;border-radius:16px;padding:12px 14px 14px;box-shadow:0 1px #0f274408}.att-stats-panel .att-stats-section-head{margin-bottom:10px}.att-stats-panel .att-stats-section-head>div h4{margin:0}.att-stats-panel .att-stats-section-head>div p{margin:3px 0 0}.att-stats-heat-wrap{gap:6px;display:grid}.att-stats-heat-weekdays{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.att-stats-heat-weekdays span{text-align:center;color:#64748b;padding:2px 0;font-size:11px;font-weight:700}.att-stats-heat{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;max-width:none;display:grid}.att-stats-detail-list{gap:8px;display:grid}.att-stats-heat-cell{border:1px solid var(--line);background:#fff;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-height:42px;padding:4px 0;display:flex}.att-stats-heat-cell.is-pad{pointer-events:none;background:0 0;border:0;min-height:42px}.att-stats-heat-cell b{color:var(--ink);font-size:11px;line-height:1.15}.att-stats-heat-cell em{color:var(--muted);font-size:9px;font-style:normal;line-height:1.15}.att-stats-heat-cell.is-empty{opacity:.55;background:#fff}.att-stats-heat-cell.status-出勤,.att-stats-heat-cell.status-迟到,.att-stats-heat-cell.status-早退,.att-stats-heat-cell.status-事假,.att-stats-heat-cell.status-病假,.att-stats-heat-cell.status-年假,.att-stats-heat-cell.status-加班,.att-stats-heat-cell.status-旷工,.att-stats-heat-cell.status-休息{color:#fff;border-color:#0000}.att-stats-heat-cell.status-出勤{background:#14b8a6}.att-stats-heat-cell.status-迟到{background:#f59e0b}.att-stats-heat-cell.status-早退{background:#7b96ad}.att-stats-heat-cell.status-事假{background:#3b82f6}.att-stats-heat-cell.status-病假{background:#6366f1}.att-stats-heat-cell.status-年假{background:#8b5cf6}.att-stats-heat-cell.status-加班{background:#0ea5e9}.att-stats-heat-cell.status-旷工{background:#ef4444}.att-stats-heat-cell.status-休息{background:#94a3b8}.att-stats-heat-cell[class*=status-] b,.att-stats-heat-cell[class*=status-] em{color:#fff}.att-stats-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.att-stats-detail-card{border:1px solid var(--line);background:linear-gradient(#fcfdff 0%,#fff 100%);border-radius:12px;padding:10px 12px}.att-stats-detail-card.is-出勤{background:linear-gradient(#f3fbf8,#fff);border-color:#b7e5d6}.att-stats-detail-card.is-迟到{background:linear-gradient(#fffaf0,#fff);border-color:#f5d9a8}.att-stats-detail-card.is-请假{background:linear-gradient(#f5f8ff,#fff);border-color:#c5d8fb}.att-stats-detail-card.is-旷工{background:linear-gradient(#fff5f5,#fff);border-color:#f5c2c2}.att-stats-detail-card.is-休息{background:linear-gradient(#f8fafc,#fff);border-color:#d5dde7}.att-stats-detail-card header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.att-stats-detail-card header strong{align-items:center;gap:4px;font-size:13px;display:inline-flex}.att-stats-detail-card header span{color:var(--ink);background:#0f27440d;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:750}.att-stats-detail-days{flex-wrap:wrap;gap:6px;display:flex}.att-stats-daypill{color:#fff;background:#64748b;border-radius:8px;align-items:center;gap:3px;height:26px;padding:0 9px;font-size:11px;font-weight:650;display:inline-flex}.att-stats-daypill .att-status-icon{margin-right:0;font-size:11px}.att-stats-daypill.status-出勤{background:#14b8a6}.att-stats-daypill.status-迟到{background:#f59e0b}.att-stats-daypill.status-早退{background:#7b96ad}.att-stats-daypill.status-事假{background:#3b82f6}.att-stats-daypill.status-病假{background:#6366f1}.att-stats-daypill.status-年假{background:#8b5cf6}.att-stats-daypill.status-加班{background:#0ea5e9}.att-stats-daypill.status-旷工{background:#ef4444}.att-stats-daypill.status-休息{background:#94a3b8}.att-stats-blank,.att-stats-blank-mini{text-align:center;color:var(--muted);margin:0;padding:16px;font-size:12px}.att-stats-blank-mini{text-align:left;padding:4px 0}.att-stats-person-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:14px;display:flex}@media (max-width:820px){.att-stats-person-layout{grid-template-columns:1fr}}@media (max-width:720px){.att-stats-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}.att-stats-detail-grid{grid-template-columns:1fr}.att-stats-rank-head,.att-stats-rank-row{grid-template-columns:minmax(90px,1.2fr) repeat(3,minmax(36px,1fr))}.att-stats-rank-head span:nth-child(n+5),.att-stats-rank-row span:nth-child(n+5){display:none}.att-stats-rank-name{display:inline-flex!important}}.att-export-mask{z-index:1200}.att-export-modal{border:1px solid var(--line);background:#fff;border-radius:18px;flex-direction:column;width:min(520px,100vw - 24px);max-height:calc(100vh - 32px);display:flex;overflow:hidden;box-shadow:0 24px 64px #0f1c2d47}.att-export-head{border-bottom:1px solid var(--line);background:linear-gradient(#f7fbff,#fff);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px 12px;display:flex}.att-export-head h3{margin:0;font-size:17px;font-weight:800}.att-export-head p{color:var(--muted);margin:4px 0 0;font-size:12px}.att-export-options{border-bottom:1px solid var(--line);background:#f8fafc;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;display:flex}.att-export-switch{color:var(--muted);cursor:pointer;align-items:center;gap:8px;font-size:13px;font-weight:700;display:inline-flex}.att-export-switch.on{color:var(--ink)}.att-export-switch input{accent-color:#1f7ae0;width:16px;height:16px}.att-export-select-actions{align-items:center;gap:10px;display:inline-flex}.att-export-select-actions em{color:var(--sky-deep);font-size:12px;font-style:normal;font-weight:700}.att-export-people{background:#f7fafc;flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px 12px;display:grid;overflow:auto}.att-export-person{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;gap:2px 8px;padding:10px 12px;display:grid}.att-export-person.on{border-color:color-mix(in srgb, var(--sky-deep) 35%, var(--line));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--sky-deep) 18%, transparent)}.att-export-person input{accent-color:#1f7ae0;grid-row:1/span 2;width:16px;height:16px}.att-export-person strong{font-size:13px;font-weight:750}.att-export-person span{color:var(--muted);font-size:11px}.att-export-foot{border-top:1px solid var(--line);background:#fff;justify-content:flex-end;gap:8px;padding:12px 16px 16px;display:flex}@media (max-width:560px){.att-export-people{grid-template-columns:1fr}}.hr-admin-root .sheet-toolbar.att-toolbar{flex-wrap:wrap;align-items:center;gap:10px 14px;min-height:0;padding:12px 16px;display:flex}.hr-admin-root .att-toolbar-title{white-space:nowrap;flex:none;margin:0;font-size:16px;line-height:1.2}.hr-admin-root .att-toolbar-row{flex-wrap:wrap;flex:auto;align-items:center;gap:8px;min-width:0;display:flex}.hr-admin-root .att-toolbar-sep{background:var(--line,#e5e7eb);flex:none;width:1px;height:22px;margin:0 2px}.hr-admin-root .att-toolbar-row .secondary-button{height:34px;padding:0 12px;font-size:12px}.hr-admin-root.is-embedded .sheet-toolbar.att-toolbar{gap:8px 12px;padding:10px 12px}.hr-admin-root.is-embedded .att-toolbar-title{font-size:15px}@media (max-width:960px){.hr-admin-root .att-toolbar-sep{display:none}}.dingtalk-events-table .dingtalk-event-summary{white-space:pre-wrap;word-break:break-word;text-overflow:unset;color:var(--ink,#111827);max-width:none;font-size:12px;line-height:1.45;overflow:visible}.dingtalk-events-table td{vertical-align:top}.admin-shell .dingtalk-events-table{border-collapse:collapse;width:100%;font-size:13px}.admin-shell .dingtalk-events-table th,.admin-shell .dingtalk-events-table td{border-bottom:1px solid var(--border,#e5e7eb);vertical-align:top;text-align:left;padding:8px 10px}.admin-shell .dingtalk-event-summary{white-space:pre-wrap;word-break:break-word;text-overflow:unset;max-width:none;line-height:1.45;overflow:visible}.dingtalk-events-filters{border:1px solid var(--border,#e5e7eb);background:var(--surface-2,#f8fafc);border-radius:10px;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;margin:10px 0 12px;padding:12px;display:flex}.dingtalk-events-filter-field{flex:0 160px;min-width:140px;margin:0}.dingtalk-events-filter-field>span{color:var(--muted,#6b7280);margin-bottom:4px;font-size:12px;display:block}.dingtalk-events-filter-field select,.dingtalk-events-filter-field input[type=text]{border:1px solid var(--border,#d1d5db);background:#fff;border-radius:8px;width:100%;min-height:34px;padding:6px 10px;font-size:13px}.dingtalk-events-filter-keyword{flex:200px;min-width:180px}.dingtalk-events-filter-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.hr-admin-root .date-field.record-date-input,.hr-admin-root .date-field.hr-month-field,.admin-shell .date-field.record-date-input,.admin-shell .date-field.hr-month-field,.dingtalk-events-filters .date-field.record-date-input{width:auto;min-width:132px;color:inherit;font-size:inherit;height:auto!important;box-shadow:none!important;background:0 0!important;border:none!important;border-radius:0!important;padding:0!important}.hr-admin-root .date-field.hr-month-field .date-field-trigger,.admin-shell .date-field.hr-month-field .date-field-trigger,.dingtalk-events-filters .date-field .date-field-trigger,.hr-admin-root .topbar-actions .date-field .date-field-trigger,.hr-admin-root .hr-embedded-toolbar-actions .date-field .date-field-trigger{min-width:132px;height:32px}.dingtalk-events-filter-field .date-field,.dingtalk-events-filter-field .date-field .date-field-trigger{width:100%;min-width:0}.hr-admin-root .settings-block-head p,.hr-admin-root .hr-settings-tab-lead{color:var(--muted)!important}.hr-admin-root .settings-actions button:not(.primary-button):not(.secondary-button):not(.ghost-button):not(.text-button),.hr-admin-root .hr-settings-section .settings-actions button:not(.primary-button):not(.secondary-button):not(.ghost-button):not(.text-button){border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:10px;padding:8px 12px;font-weight:600}.hr-admin-root .settings-actions button:not(.primary-button):not(.secondary-button):not(.ghost-button):not(.text-button):hover{background:var(--sky-pale);border-color:#c5ddf8}.hr-admin-root .hr-settings-hint,.hr-admin-root .hr-settings-section .hr-settings-hint{color:var(--muted)!important}.hr-wechat-target-list{border:1px solid var(--line);background:#fff;border-radius:10px;max-height:260px;margin-top:10px;padding:8px 10px;overflow:auto}.hr-wechat-target-row{color:var(--ink);cursor:pointer;border-radius:8px;align-items:center;gap:8px;margin:0;padding:8px 6px;display:flex}.hr-wechat-target-row:hover{background:var(--soft)}.hr-wechat-target-row em{color:var(--ink);font-style:normal;font-weight:650}.hr-wechat-target-row small{color:var(--muted);font-weight:500}.hr-wechat-selected-chip{background:var(--sky-pale);height:28px;color:var(--sky-deep);border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.hr-overlay-summary{background:var(--soft,#f4f8fc);border:1px solid var(--line,#e3ebf2);border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:14px;padding:12px;display:grid}.hr-overlay-summary>div>span{color:var(--muted,#6b7280);margin-bottom:2px;font-size:11px;display:block}.hr-overlay-summary>div>strong{color:var(--ink,#0f172a);font-size:15px;font-weight:700}.hr-overlay-entries{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:16px;display:grid}.hr-overlay-entry{border:1px solid var(--line,#e5e7eb);text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:#fff;border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;margin:0;padding:14px 14px 12px;transition:border-color .15s,box-shadow .15s;display:flex}.hr-overlay-entry:hover{border-color:color-mix(in srgb, var(--sky,#38bdf8) 45%, var(--line,#e5e7eb));box-shadow:0 4px 14px #0f172a0f}.hr-overlay-entry em{color:var(--ink,#0f172a);font-size:14px;font-style:normal;font-weight:700}.hr-overlay-entry small{color:var(--muted,#6b7280);font-size:12px;line-height:1.4}.hr-overlay-quick{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.hr-drawer-section+.hr-drawer-section{border-top:1px solid var(--line-soft,#eef2f7);margin-top:18px;padding-top:16px}
