:root{--bg:#faf9f7;--surface:#fff;--surface-2:#f4f2ee;--border:#edeae4;--border-strong:#d6d2ca;--ink:#211f1a;--ink-2:#5c574e;--ink-3:#96908a;--on-dark:#fff;--bg-wash:radial-gradient(115% 95% at 10% -10%, #dce8f5 0%, #eff2f4 38%, #faf9f7 70%);--primary:#1e3a5f;--primary-hover:#16304e;--primary-tint:#e9eff6;--primary-tint-border:#cbd9e8;--ring:#1e3a5f59;--good:#15803d;--good-bg:#ebf7ef;--warn:#b45309;--warn-bg:#fcf3e5;--bad:#b91c1c;--bad-bg:#fcebeb;--info:#0369a1;--info-bg:#e8f3fa;--hue-analytics:#1e3a5f;--hue-analytics-bg:#e9eff6;--hue-people:#2563eb;--hue-people-bg:#e8effd;--hue-records:#b45309;--hue-records-bg:#fbf0e0;--hue-system:#5c574e;--hue-system-bg:#f1efea;--chart-1:#1e3a5f;--chart-2:#2563eb;--chart-3:#d97706;--chart-4:#7c3aed;--chart-5:#dc2626;--chart-6:#0891b2;--chart-7:#65a30d;--chart-8:#db2777;--radius-card:16px;--radius-ctl:10px;--radius-pill:999px;--shadow-card:0 1px 2px #211f1a0a, 0 8px 24px #211f1a0d;--shadow-pop:0 4px 12px #211f1a1a, 0 12px 32px #211f1a1a;--font:"Public Sans","Noto Sans TC",system-ui,sans-serif}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg-wash);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-attachment:fixed;font-size:14px;line-height:1.5}#root{min-height:100vh}h1,h2,h3,h4,p,ul,ol{margin:0}ul,ol{padding:0;list-style:none}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer}a{color:inherit}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;text-align:right}.text-xs{font-size:12px}.text-sm{font-size:13px}.text-base{font-size:14px}.text-lg{font-size:16px}.text-xl{font-size:20px}.text-2xl{font-size:28px}.field-control{border:1px solid var(--border-strong);border-radius:var(--radius-ctl);background:var(--surface);width:100%;color:var(--ink);padding:8px 10px;font-size:13px;line-height:1.4}.field-control:focus{outline:2px solid var(--ring);outline-offset:1px}.office-mobile-header,.office-drawer-overlay,.office-expenses-quickmobile-fab{display:none}@media (width<=767px){.office-mobile-header{z-index:40;min-height:calc(52px + env(safe-area-inset-top));padding:0 8px;padding-top:env(safe-area-inset-top);background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:8px;display:flex;position:fixed;top:0;left:0;right:0}.office-mobile-header__menu{min-width:44px;min-height:44px;color:var(--ink);border-radius:var(--radius-ctl);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.office-mobile-header__title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:700;overflow:hidden}.office-drawer-overlay{z-index:45;background:#14120c73;display:block;position:fixed;inset:0}.office-sidebar{z-index:50;padding-top:env(safe-area-inset-top);visibility:hidden;transition:transform .2s,visibility .2s;transform:translate(-100%);box-shadow:0 8px 24px #0000002e;width:84vw!important;max-width:300px!important;height:auto!important;position:fixed!important;top:0!important;bottom:0!important;left:0!important}.office-sidebar--open{visibility:visible;transform:translate(0)}.office-sidebar li a,.office-sidebar button{min-height:44px}.office-main{min-width:0;padding:16px!important;padding-top:calc(52px + env(safe-area-inset-top) + 16px)!important}.office-main>*{min-width:0}.office-main [style*=minmax\(]{grid-template-columns:1fr!important}.office-main table{max-width:100%;overflow-x:auto}.office-schedule-desktop-grid{display:none!important}.office-schedule-mobile-list{display:block!important}.office-expenses-quickmobile-fab{right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:30;background:var(--primary);min-height:48px;color:var(--on-dark);border:none;border-radius:999px;align-items:center;gap:8px;padding:0 18px;font-weight:700;display:flex;position:fixed;box-shadow:0 8px 20px #14120c47}.office-drawer-panel{border-left:none!important;width:auto!important;max-width:none!important;height:auto!important;position:fixed!important;inset:0!important}.office-drawer-header{padding-top:calc(16px + env(safe-area-inset-top))!important}.office-drawer-body{min-height:0!important}.office-drawer-footer{padding-bottom:calc(14px + env(safe-area-inset-bottom))!important;flex-shrink:0!important}.office-employee-dialog-panel{border:none!important;border-radius:0!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;position:fixed!important;inset:0!important}.office-employee-dialog-header{padding-top:calc(16px + env(safe-area-inset-top))!important}.office-employee-dialog-body{min-height:0!important}.office-employee-dialog-footer{padding-bottom:calc(14px + env(safe-area-inset-bottom))!important;flex-shrink:0!important}.office-payroll-item-dialog-panel{border:none!important;border-radius:0!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;position:fixed!important;inset:0!important}.office-payroll-item-dialog-header{padding-top:calc(16px + env(safe-area-inset-top))!important}.office-payroll-item-dialog-body{min-height:0!important}.office-payroll-item-dialog-footer{padding-bottom:calc(14px + env(safe-area-inset-bottom))!important;flex-shrink:0!important}.office-availability-dialog-panel{border:none!important;border-radius:0!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;position:fixed!important;inset:0!important}.office-availability-dialog-header{padding-top:calc(16px + env(safe-area-inset-top))!important}.office-availability-dialog-body{grid-template-columns:1fr!important;min-height:0!important}.office-attachment-thumb{aspect-ratio:auto!important;max-height:40vh!important}img.office-attachment-thumb{object-fit:contain!important;height:auto!important}div.office-attachment-thumb{height:auto!important;min-height:96px!important}.office-expenses-import-row{-webkit-overflow-scrolling:touch;flex-wrap:nowrap!important;overflow-x:auto!important}.office-expenses-import-row button{white-space:nowrap!important;flex-shrink:0!important}.office-expenses-entry-table{min-width:0!important}.office-expenses-entry-table thead{display:none}.office-expenses-entry-table,.office-expenses-entry-table tbody,.office-expenses-entry-table tr,.office-expenses-entry-table td{width:auto;display:block}.office-expenses-entry-table tr{border:1px solid var(--border);border-radius:var(--radius-ctl);background:var(--surface);margin-bottom:12px;padding:10px 12px 4px}.office-expenses-entry-table td{align-items:center;gap:10px;display:flex;text-align:left!important;padding:5px 0!important}.office-expenses-entry-table td:before{content:attr(data-label);color:var(--ink-3);flex:0 0 74px;font-size:12px;font-weight:700}.office-expenses-entry-table td[data-label=""]:before{display:none}.office-expenses-entry-table tr.office-expenses-entry-section{background:0 0;border:none;margin-bottom:0;padding:0}.office-expenses-entry-table td>*{flex:1}.office-main>.office-page-title{display:none}.office-expenses-register-table td{white-space:nowrap!important}.office-attendance-recon-table{min-width:0!important}.office-attendance-recon-table thead{display:none}.office-attendance-recon-table,.office-attendance-recon-table tbody,.office-attendance-recon-table tr,.office-attendance-recon-table td{width:auto;display:block}.office-attendance-recon-table tr{border:1px solid var(--border);border-radius:var(--radius-ctl);background:var(--surface);margin-bottom:12px;padding:10px 12px 6px}.office-attendance-recon-table td{align-items:flex-start;gap:10px;display:flex;text-align:left!important;white-space:normal!important;border-bottom:none!important;padding:4px 0!important}.office-attendance-recon-table td:before{content:attr(data-label);color:var(--ink-3);flex:0 0 68px;font-size:12px;font-weight:700}.office-attendance-recon-table td[data-label=""]:before{display:none}.office-expenses-dialog-panel{border:none!important;border-radius:0!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;position:fixed!important;inset:0!important}.office-expenses-dialog-header{padding-top:calc(16px + env(safe-area-inset-top))!important}.office-expenses-dialog-body{min-height:0!important;overflow-x:auto!important}.office-expenses-dialog-footer{padding-bottom:calc(14px + env(safe-area-inset-bottom))!important;flex-shrink:0!important}}.office-schedule-mobile-list{display:none}:focus-visible{outline:2px solid var(--ring);outline-offset:1px}.btn{border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface);min-height:36px;color:var(--ink);cursor:pointer;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,box-shadow .15s;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{border-color:var(--primary);background:var(--primary);color:var(--on-dark)}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-2);color:var(--ink)}.btn-danger{border-color:var(--bad);background:var(--bad);color:var(--on-dark)}.btn-danger:hover{background:#991b1b;border-color:#991b1b}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.card-pad{padding:20px}.card-title{color:var(--ink);font-size:15px;font-weight:650}.badge{background:var(--surface-2);color:var(--ink-2);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:600;line-height:1.5;display:inline-flex}.badge-good{background:var(--good-bg);color:var(--good)}.badge-warn{background:var(--warn-bg);color:var(--warn)}.badge-bad{background:var(--bad-bg);color:var(--bad)}.badge-info{background:var(--info-bg);color:var(--info)}.badge-primary{background:var(--primary-tint);color:var(--primary)}.badge-analytics{background:var(--hue-analytics-bg);color:var(--hue-analytics)}.badge-people{background:var(--hue-people-bg);color:var(--hue-people)}.badge-records{background:var(--hue-records-bg);color:var(--hue-records)}.tabs{border-bottom:1px solid var(--border);gap:4px;display:flex}.tab{color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 12px;font-size:13.5px;font-weight:600;transition:color .15s,border-color .15s}.tab:hover{color:var(--ink)}.tab[aria-selected=true],.tab--active{color:var(--primary);border-bottom-color:var(--primary)}.office-settings-page{flex-direction:column;gap:20px;display:flex}.office-settings-tablist{flex-wrap:wrap}@media (width<=1023px){.office-settings-tablist .tab{min-height:44px}}.office-settings-content{flex-direction:column;gap:16px;min-width:0;display:flex}.office-settings-footer{color:var(--ink-3);margin:8px 0 0;font-size:12px}@media (width>=1024px){.office-settings-page{flex-direction:row;align-items:flex-start;gap:32px}.office-settings-tablist{border-bottom:none;border-right:1px solid var(--border);flex-direction:column;flex:0 0 180px;gap:2px;width:180px;position:sticky;top:20px}.office-settings-tablist .tab{text-align:left;border-bottom:none;border-right:2px solid #0000;margin-bottom:0;margin-right:-1px}.office-settings-tablist .tab[aria-selected=true],.office-settings-tablist .tab--active{background:var(--surface-2);border-radius:var(--radius-ctl) 0 0 var(--radius-ctl);border-right-color:var(--primary)}.office-settings-content{flex:auto;max-width:760px}.office-settings-content--wide{max-width:1200px}}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);overflow-x:auto}.table-wrap table{border-collapse:collapse;width:100%}.table-wrap th{text-align:left;letter-spacing:.04em;color:var(--ink-3);background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 12px;font-size:11px;font-weight:600}.table-wrap td{border-bottom:1px solid var(--border);padding:8px 12px;font-size:13px}.table-wrap tbody tr:last-child td{border-bottom:none}.table-wrap tbody tr:hover td{background:#fafaf8}.kpi-label{color:var(--ink-3);font-size:12px;font-weight:600}.kpi-value{letter-spacing:-.025em;color:var(--ink);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;font-size:34px;font-weight:300;line-height:1.1}.figure-xl{letter-spacing:-.035em;color:var(--ink);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;font-size:44px;font-weight:200;line-height:1.05}.kpi-sub{color:var(--ink-3);font-size:12px}.office-skeleton{border-radius:var(--radius-ctl);background:linear-gradient(90deg, var(--surface-2) 25%, var(--border) 50%, var(--surface-2) 75%);background-size:200% 100%;animation:1.4s ease-in-out infinite office-skeleton-shimmer}@keyframes office-skeleton-shimmer{0%{background-position:160% 0}to{background-position:-60% 0}}@media (prefers-reduced-motion:reduce){.office-skeleton{background:var(--surface-2);animation:none}}.office-nav-item:hover{background:var(--surface-2);color:var(--ink)}.office-topbar{background:var(--bg);border-bottom:1px solid var(--border);z-index:20;align-items:center;gap:10px;min-height:56px;padding:0 32px;display:flex;position:sticky;top:0}.office-topbar__dot{border-radius:999px;flex-shrink:0;width:8px;height:8px}.office-topbar__title{color:var(--ink);margin:0;font-size:18px;font-weight:700}.office-topbar__date{color:var(--ink-3);text-align:right;margin-left:auto;font-size:13px}@media (width<=767px){.office-topbar{display:none}.office-announcements-actions .btn,.btn.office-announcements-actions{min-height:44px}.al-clear-trigger{align-items:center;min-height:44px;display:inline-flex}body{background-attachment:scroll}}.office-section-title{color:var(--ink-2);letter-spacing:.01em}.office-today-summary::-webkit-details-marker{display:none}.cashbook-lines{flex-direction:column;gap:8px;display:flex}.cashbook-line-row{grid-template-columns:96px 150px minmax(150px,1fr) 164px 56px 116px 96px 44px;align-items:center;gap:8px;display:grid}.cashbook-line-head{color:var(--ink-3);letter-spacing:.04em;border-bottom:1px solid var(--border);padding-bottom:2px;font-weight:600}@media (width<=767px){.cashbook-line-row{border:1px solid var(--border);border-radius:var(--radius-ctl);grid-template-columns:1fr;gap:6px;padding:10px}.cashbook-line-head{display:none}}@media (width>=768px) and (width<=1279px){.cashbook-line-row{border:1px solid var(--border);border-radius:var(--radius-ctl);grid-template-columns:minmax(56px,.7fr) minmax(76px,1fr) minmax(100px,1.4fr) 84px 36px;grid-template-areas:"group sub name amount remove""cat photo status status remove";gap:6px;padding:10px}.cashbook-line-head{display:none}.cashbook-line-row>*{min-width:0}.cashbook-line-row>:first-child{grid-area:group}.cashbook-line-row>:nth-child(2){grid-area:sub}.cashbook-line-row>:nth-child(3){grid-area:name}.cashbook-line-row>:nth-child(4){grid-area:cat}.cashbook-line-row>:nth-child(5){grid-area:photo}.cashbook-line-row>:nth-child(6){grid-area:amount}.cashbook-line-row>:nth-child(7){grid-area:status}.cashbook-line-row>:nth-child(8){grid-area:remove}}.cashbook-options-list{flex-direction:column;gap:6px;max-width:820px;margin-bottom:8px;display:flex}.cashbook-options-row{grid-template-columns:minmax(140px,2fr) minmax(110px,1fr) 120px auto auto;align-items:center;gap:8px;display:grid}.cashbook-options-chips{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.cashbook-options-chip{background:var(--bg);border:1px solid var(--border);min-height:44px;color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;padding:4px 6px 4px 12px;display:flex}.cashbook-options-chip--static{color:var(--ink-3);padding:4px 12px}.cashbook-options-chip-label{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;min-height:36px;padding:0}@media (width<=767px){.cashbook-options-row{border:1px solid var(--border);border-radius:var(--radius-ctl);grid-template-columns:1fr;gap:6px;padding:10px}}@media (width>=768px) and (height<=1060px){.office-sidebar__brand{padding:12px 16px 6px!important}.office-sidebar__nav{gap:10px!important}.office-nav-group{padding-bottom:4px!important}.office-nav-list{gap:1px!important}.office-nav-item{padding-top:5px!important;padding-bottom:5px!important}.office-sidebar__footer{padding:8px!important}.office-sidebar__footer button{padding-top:4px!important;padding-bottom:4px!important}}.office-roster-weeks{flex-direction:column;gap:6px;display:flex}.office-roster-week{border-bottom:1px solid var(--border);padding-bottom:6px}.office-roster-weeks .office-roster-week:last-child{border-bottom:none;padding-bottom:0}.office-roster-scroll{overflow-x:auto}.office-roster-table{border-collapse:collapse;width:100%}.office-roster-th{text-align:center;color:var(--ink-3);white-space:nowrap;vertical-align:middle;padding:1px 2px;font-weight:600}.office-roster-th--name{text-align:left;width:96px;min-width:96px;padding-left:4px}.office-roster-th--outside{color:var(--ink-3);opacity:.5}.office-roster-th--holiday{color:var(--bad);background:var(--bad-bg)}.office-roster-th--over{color:var(--warn);background:var(--warn-bg)}.office-roster-th--nobody{color:var(--on-dark);background:var(--bad)}.office-roster-th--nobody .office-roster-th-day,.office-roster-th--nobody .office-roster-th-dow,.office-roster-th--nobody .office-roster-th-sub{color:var(--on-dark)}.office-roster-th-day{font-size:12px;font-weight:700;line-height:1.15}.office-roster-th-dow{font-size:9px;font-weight:600;line-height:1.1}.office-roster-th-sub{color:var(--ink-3);font-size:9px;font-weight:600;line-height:1.1}.office-roster-th-holname{text-overflow:ellipsis;white-space:nowrap;max-width:64px;margin:0 auto;overflow:hidden}.office-roster-name-td{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;max-width:96px;padding:1px 4px;font-size:12px;font-weight:600;overflow:hidden}.office-roster-cell-td{text-align:center;padding:1px;position:relative}.office-roster-cell-td--outside{opacity:.45}.office-roster-cell{color:#14202a;letter-spacing:-.02em;background:#fff;border:1.5px solid #f2f2ef;border-radius:6px;justify-content:center;align-items:center;width:100%;min-width:44px;height:30px;padding:0 2px;font-size:13px;font-weight:700;line-height:1;display:flex}button.office-roster-cell{cursor:pointer}.office-roster-cell--O{border-color:#ecece9}.office-roster-cell--S{background:#dceaf7;border-color:#ecece9}.office-roster-cell--X{border-color:#b4453c}.office-roster-cell--A{letter-spacing:.01em;background:#fbe7d4;border-color:#b4453c;font-size:11.5px}.office-roster-cell--L,.office-roster-cell--D{border-color:#ecece9}.office-roster-ring{border:1.5px solid #14202a;border-radius:50%;flex:none;justify-content:center;align-items:center;width:24px;height:24px;font-style:normal;display:flex}.office-roster-cell--L .office-roster-ring{background:#fcefc0}.office-roster-cell--D .office-roster-ring{background:#dceaf7}.office-roster-cell--empty{border:1px dashed var(--border);color:var(--ink-3);font-size:12px;font-weight:400}.office-roster-cell--mark{letter-spacing:0;font-size:11px}.office-roster-cell--mark .office-roster-cell-sub{font-size:8px;font-weight:600}.office-roster-cell--selected{box-shadow:0 0 0 2px var(--primary)}.office-roster-holdec{border:1px solid var(--border-strong);background:var(--surface);width:100%;min-height:28px;color:var(--ink);cursor:pointer;border-radius:4px;margin-top:2px;padding:1px 2px;font-size:10px;font-weight:700;line-height:1.2;display:block;position:relative}.office-roster-holdec--undecided{color:var(--ink-3);border-style:dashed;font-weight:600}.office-roster-th--weekrest{min-width:56px}.office-roster-weekrest-td{text-align:center;white-space:nowrap;padding:2px 4px;font-size:11px}.office-roster-weekrest-td--flag{background:var(--warn-bg);box-shadow:inset 0 0 0 2px var(--warn);color:var(--warn);font-weight:700}.office-roster-weekrest-sub{color:var(--ink-3);font-size:9px;font-weight:600;display:block}.office-roster-bookingbadge{background:var(--primary);color:var(--on-dark);border-radius:999px;align-items:center;gap:2px;padding:1px 3px;font-size:8px;font-weight:800;line-height:1;display:flex;position:absolute;top:0;right:1px}.office-roster-legend{flex-wrap:wrap;align-items:center;gap:4px 12px;padding:2px 0 4px;display:flex}.office-roster-legend-item{color:var(--ink-2);align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}.office-roster-legend .office-roster-cell{border-radius:5px;flex:none;width:26px;min-width:26px;height:22px;font-size:11px}.office-roster-legend .office-roster-cell--A{font-size:9px}.office-roster-legend .office-roster-ring{width:18px;height:18px;font-size:10px}.office-roster-legend-swatch{border-radius:4px;flex:none;width:14px;height:14px}.office-roster-swatch .office-roster-cell{border-radius:5px;flex:none;width:30px;min-width:30px;height:24px;font-size:11px}.office-roster-swatch .office-roster-cell--A{font-size:9px}.office-roster-swatch .office-roster-ring{width:19px;height:19px;font-size:10px}.office-roster-menu{z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);min-width:200px;box-shadow:var(--shadow-card);flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 4px);right:0}.office-roster-menu button{text-align:left;border-radius:var(--radius-ctl);width:100%;min-height:38px;color:var(--ink);cursor:pointer;background:0 0;border:none;padding:9px 10px;font-size:13px;font-weight:600;display:block}.office-roster-menu button:hover{background:var(--bg)}.office-roster-menu button.office-roster-menu-danger{color:var(--bad)}.office-roster-menu-sep{background:var(--border);height:1px;margin:5px 4px}.office-attendance-recon-table td{vertical-align:top}.payroll-cell-editable{border:none;border-bottom:1px dashed var(--border-strong);width:100%;color:var(--ink);font:inherit;cursor:text;touch-action:manipulation;background:0 0;justify-content:flex-end;align-items:center;gap:4px;padding:2px 14px 2px 0;display:inline-flex;position:relative}.payroll-cell-editable:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.payroll-cell-editable:hover{border-bottom-color:var(--primary)}.payroll-cell-editable:hover:after{content:"✎";color:var(--ink-3);font-size:10px;position:absolute;top:50%;right:0;transform:translateY(-50%)}.payroll-manual-chip{border-radius:var(--radius-pill);background:var(--primary-tint);color:var(--primary);border:1px solid var(--primary-tint-border);white-space:nowrap;cursor:default;align-items:center;padding:1px 7px;font-size:10px;font-weight:700;line-height:1.6;display:inline-flex}.payroll-restore-auto{border:1px solid var(--border-strong);color:var(--ink-2);border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;touch-action:manipulation;background:0 0;padding:2px 8px;font-size:11px;font-weight:600}.payroll-restore-auto:hover{background:var(--bg);color:var(--ink)}.payroll-restore-auto:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.payroll-note-input{width:100%;height:28px;color:var(--ink);font:inherit;background:0 0;border:none;border-bottom:1px solid #0000;padding:4px 2px}.payroll-note-input:focus-visible{border-bottom-color:var(--primary);box-shadow:0 1px 0 0 var(--primary);outline:none}.payslip-cards{flex-direction:column;gap:16px;display:flex}.payslip-hint{color:var(--ink-2);margin:0;font-size:12px;line-height:1.6}.payslip-group{flex-direction:column;gap:10px;display:flex}.payslip-group__head{color:var(--ink);letter-spacing:.03em;align-items:center;gap:8px;margin:0;font-size:13px;font-weight:800;display:flex}.payslip-group__count{color:var(--ink-2);background:var(--surface-2);border-radius:var(--radius-pill);padding:1px 8px;font-size:11px;font-weight:700}.payslip-grid{grid-template-columns:repeat(auto-fill,minmax(min(400px,100%),1fr));gap:12px;display:grid}.payslip-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);min-width:0;box-shadow:var(--shadow-card);flex-direction:column;display:flex;overflow:hidden}.payslip-card__title{background:var(--primary);color:var(--on-dark);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;padding:7px 12px;display:flex}.payslip-card__name{font-size:14px;font-weight:700}.payslip-card__sub{color:#ffffffe0;font-size:12px}.payslip-card__body{flex-direction:column;gap:8px;min-width:0;padding:12px;display:flex}.payslip-locked{color:var(--warn);background:var(--warn-bg);border:1px solid var(--warn);border-radius:var(--radius-ctl);margin:0;padding:5px 10px;font-size:12px;font-weight:600}.payslip-card{--slip-yellow:#fff3b0;--slip-yellow-line:#e9cf4a}.payslip-sheet{border-collapse:collapse;table-layout:fixed;border:1px solid var(--border);width:100%;font-size:13px}.payslip-sheet__col-v{width:92px}.payslip-sheet__h{text-align:left;padding:6px 10px;font-size:12.5px;font-weight:700}.payslip-sheet__h--earn{background:var(--good-bg);color:var(--good)}.payslip-sheet__h--ded{background:var(--bad-bg);color:var(--bad);border-left:1px solid var(--border)}.payslip-sheet td{border-top:1px solid var(--border);vertical-align:middle;height:36px}.payslip-sheet__l{color:var(--ink);overflow-wrap:anywhere;padding:2px 8px;font-size:13px;line-height:1.2}.payslip-sheet__l--d{border-left:1px solid var(--border)}.payslip-sheet__v{padding:0}.payslip-sheet__total td{background:var(--bg);height:38px;font-weight:700}.payslip-sheet__sum{text-align:right;font-variant-numeric:tabular-nums;padding:0 10px}@media (width<=460px){.payslip-sheet__col-v{width:80px}.payslip-sheet__l{padding:2px 6px}.payslip-cell,.payslip-cell-input{padding:0 6px}.payslip-sheet__sum{white-space:nowrap;padding:0 4px;font-size:12px}}.payslip-cell{width:100%;min-height:36px;color:var(--ink);font:inherit;font-variant-numeric:tabular-nums;text-align:right;cursor:text;touch-action:manipulation;background:0 0;border:1px solid #0000;border-radius:0;justify-content:flex-end;align-items:center;padding:0 10px;font-size:13.5px;display:flex}.payslip-cell:hover{border-color:var(--border-strong)}.payslip-cell:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.payslip-cell.is-empty{color:var(--ink-2)}.payslip-cell.is-yellow{background:var(--slip-yellow)}.payslip-cell.is-yellow:hover{border-color:var(--slip-yellow-line)}.payslip-cell--readonly{cursor:default}.payslip-cell--readonly:hover{border-color:#0000}.payslip-cell-edit{display:block}.payslip-cell-input{box-sizing:border-box;border:1px solid var(--primary);background:var(--surface);width:100%;height:36px;box-shadow:inset 0 0 0 1px var(--primary);color:var(--ink);font:inherit;text-align:right;appearance:textfield;border-radius:0;padding:0 10px;font-size:13.5px;display:block}.payslip-cell-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.payslip-cell-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.payslip-cell-input:focus{outline:none}@media (pointer:coarse){.payslip-sheet td{height:44px}.payslip-cell{min-height:44px}.payslip-cell-input{height:44px;font-size:16px}}.payslip-net{background:var(--warn-bg);border:2px solid var(--warn);border-radius:var(--radius-ctl);justify-content:space-between;align-items:baseline;gap:12px;padding:6px 12px;display:flex}.payslip-net__label{color:var(--warn);font-size:12px;font-weight:700}.payslip-net__value{color:var(--ink);font-size:22px;font-weight:800}.payslip-ref{color:var(--ink-2);background:var(--surface-2);border-radius:var(--radius-ctl);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2px 10px;padding:4px 10px;font-size:12px;display:flex}.payslip-ref__title{color:var(--ink-2);font-weight:600}.payslip-ref .payroll-cell-editable{width:auto}.payslip-al{border:1px solid var(--border);border-radius:var(--radius-ctl);color:var(--ink-2);grid-template-columns:repeat(5,minmax(0,1fr));font-size:12px;display:grid;overflow:hidden}.payslip-al__cell{text-align:center;border-left:1px solid var(--border);flex-direction:column;align-items:center;gap:2px;min-width:0;padding:4px;display:flex}.payslip-al__cell:first-child{border-left:0}.payslip-al__cell em{color:var(--ink-2);font-size:11px;font-style:normal;line-height:1.2}.payslip-al__cell b{color:var(--ink);font-size:14px}.payslip-al__cell--left b{color:var(--primary)}.payslip-al .payroll-cell-editable{justify-content:center;width:auto;padding:2px 12px 2px 4px}.payslip-al .payslip-amount{min-width:28px;font-size:14px}.payslip-al__hint{color:var(--ink-2);font-size:11px;line-height:1.2}.payslip-al__hint--warn{color:var(--warn);font-weight:700}.payslip-al--error{flex-wrap:wrap;gap:4px 12px;padding:6px 10px;display:flex}.payslip-al__title{color:var(--ink);font-weight:700}.payslip-note{align-items:center;gap:8px;display:flex}.payslip-card__actions{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding-top:6px;display:flex}.payslip-link{border:1px solid var(--border-strong);color:var(--ink-2);border-radius:var(--radius-pill);cursor:pointer;touch-action:manipulation;background:0 0;min-height:44px;padding:6px 14px;font-size:12px;font-weight:600}.payslip-link:hover{border-color:var(--primary);color:var(--primary)}.payslip-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.payslip-more__btn{min-width:44px;padding:6px 12px;font-size:16px;line-height:1}.payslip-more{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-ctl);flex-direction:column;flex-basis:100%;gap:2px;padding:4px;display:flex}.payslip-more__item{min-height:44px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;background:0 0;border:none;border-radius:6px;align-items:center;padding:0 12px;font-size:13px;text-decoration:none;display:flex}.payslip-more__item:hover{background:var(--bg)}.payslip-more__item:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.payslip-more__item--danger:hover{background:0 0}.payslip-more__item--danger button{align-items:center;min-height:44px;display:inline-flex}@media (width>=768px) and (pointer:fine){.payslip-link{min-height:28px;padding:4px 12px}.payslip-more__btn{min-height:28px}.payslip-more__item,.payslip-more__item--danger button{min-height:32px}}.payroll-cell-editable.is-manual{background:var(--warn-bg);border-bottom-color:var(--warn);border-radius:4px 4px 0 0;padding-left:6px}.payslip-totals{color:var(--ink-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-ctl);flex-wrap:wrap;align-items:baseline;gap:8px 20px;padding:8px 12px;font-size:12px;display:flex}.payslip-totals b{color:var(--ink);margin-left:6px;font-size:14px;font-weight:700}.payslip-totals__label{min-width:96px;color:var(--ink);font-weight:700}.payslip-totals__net b{font-size:16px;font-weight:800}.payslip-totals--grand{background:var(--primary-tint);border-color:var(--primary-tint-border)}.office-roster-avail{letter-spacing:-.04em;color:#6e6a61;font-size:10px;font-weight:600}.office-rview{flex-direction:column;gap:10px;display:flex}.office-rview-week{overflow-x:auto}.office-rview-table{border-collapse:collapse;table-layout:fixed;width:100%}.office-rview-table th,.office-rview-table td{border:1px solid #e3e1dc}.office-rview-th{text-align:center;color:var(--ink-2);white-space:nowrap;vertical-align:middle;background:#fff;padding:3px 2px;font-weight:700}.office-rview-th--name{text-align:left;width:88px;padding-left:6px}.office-rview-th--weekend{background:#f5f5f3}.office-rview-th--outside{color:#6e6a61;background:#f7f7f5}.office-rview-th--holiday{color:#b4453c}.office-rview-th--today{border-bottom:2px solid #14202a}.office-rview-th-dow{font-size:10px;font-weight:600;line-height:1.2}.office-rview-th-day{font-size:12px;font-weight:700;line-height:1.2}.office-rview-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;max-width:88px;padding:3px 6px;font-size:12px;font-weight:700;overflow:hidden}.office-rview-cell{text-align:center;color:#14202a;background:#fff;height:30px;padding:0 2px;font-size:13px;font-weight:700}.office-rview-cell--leave{color:#b4453c}.office-rview-cell--outside{background:#f7f7f5}.office-rview-cell--today,.office-rview-th--today{background:#eef3f8}.office-rview-th--today.office-rview-th--outside{background:#f7f7f5}.office-rview-empty{color:var(--ink-2);font-size:12px}.office-rview-legend{flex-wrap:wrap;align-items:center;gap:4px 12px;display:flex}.office-rview-legend-item{color:var(--ink-2);align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}.office-rview-legend-box{color:#14202a;background:#fff;border:1px solid #e3e1dc;border-radius:4px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;font-size:10px;font-weight:700;display:flex}@media (width<=767px){.office-rview-th--name{width:64px}.office-rview-name{max-width:64px;padding:3px 4px;font-size:11px}.office-rview-cell{height:34px;font-size:12px}.office-rview-th{padding:2px 1px;font-size:10px}.office-rview-th-day{font-size:11px}.office-rview-th-dow{font-size:9px}}.office-users-group{border:1px solid var(--border);border-radius:var(--radius-card);flex-direction:column;gap:8px;padding:12px;display:flex}.office-users-group--warn{background:var(--warn-bg);border-color:var(--warn)}.office-users-group-title{color:var(--ink);margin:0;font-weight:700}.office-users-tools{flex-wrap:wrap;gap:10px;display:flex}.office-users-tool{flex-direction:column;gap:2px;display:inline-flex}.office-users-tool-label{color:var(--ink-3);align-items:center;gap:5px;font-size:12.5px;display:inline-flex}.office-users-tool--manual .office-users-tool-label{color:var(--ink);font-weight:600}.office-users-tool-reset{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px;text-decoration:underline}.office-users-tool-reset:disabled{opacity:.5;cursor:default}.office-users--table .office-users-table table{table-layout:fixed}.office-users--table .office-users-col-name{width:110px}.office-users--table .office-users-col-account{width:180px}.office-users--table .office-users-col-employee{width:140px}.office-users--table .office-users-col-actions{width:84px}.office-users--table .office-users-nowrap{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.office-users-orphans{border:1px dashed var(--border-strong);border-radius:var(--radius-card);flex-direction:column;gap:6px;padding:12px;display:flex}.office-users--cards .office-users-table table,.office-users--cards .office-users-table tbody,.office-users--cards .office-users-table tr,.office-users--cards .office-users-table td{width:100%;display:block}.office-users--cards .office-users-table thead,.office-users--cards .office-users-table colgroup{display:none}.office-users--cards .office-users-table tr{border:1px solid var(--border);border-radius:var(--radius-ctl);margin-bottom:8px;padding:8px 10px}.office-users--cards .office-users-table td{overflow-wrap:anywhere;border-bottom:none;align-items:flex-start;gap:8px;padding:4px 0;display:flex}.office-users--cards .office-users-table td:before{content:attr(data-label);color:var(--ink-3);flex:0 0 88px;font-size:12px}@media (width<=767px){.office-users-tools{gap:12px}.office-users-tool-label{min-height:44px}}
