html,body,#root{width:100%;height:100%;margin:0}*,*:before,*:after{box-sizing:border-box}.workbench-shell{height:100vh;min-height:0;overflow:hidden;background:#f2f4f7}.workbench-desktop-sider,.workbench-desktop-sider .ant-layout-sider-children,.workbench-desktop-sider .ant-menu-dark{background:#1b293d}.workbench-brand{display:flex;height:64px;align-items:center;justify-content:center;gap:10px;padding:0 18px;color:#fff;border-bottom:1px solid rgb(255 255 255 / 9%)}.workbench-brand.is-collapsed{justify-content:center;padding:0}.workbench-brand-mark{display:inline-grid;width:34px;height:34px;flex:0 0 34px;color:#fff;font-size:18px;font-weight:700;line-height:1;border-radius:7px;background:#1677ff;place-items:center}.workbench-brand strong{font-size:17px;font-weight:650}.workbench-project-panel{margin:12px 14px 16px;padding:10px;border:1px solid rgb(255 255 255 / 12%);border-radius:6px;background:#00000014}.workbench-project-panel>span,.workbench-mobile-project-selector>span{display:block;margin-bottom:6px;color:#aebbd0;font-size:11px}.workbench-project-panel .ant-select,.workbench-mobile-project-selector .ant-select{width:100%}.workbench-desktop-sider .ant-menu-item{height:42px;margin:3px 10px;line-height:42px;border-radius:4px}.workbench-desktop-sider .ant-menu-item-selected{background:#2f80ed}.workbench-desktop-sider .ant-menu-submenu-title{display:flex;align-items:center;justify-content:center;margin-inline:10px;border-radius:4px;color:#d7e2f2;font-weight:650}.workbench-desktop-sider .ant-menu-submenu-title>.ant-menu-title-content{flex:0 1 auto}.workbench-desktop-sider .ant-menu-submenu .ant-menu-item{margin-left:14px}.workbench-main-layout{height:100vh;min-width:0;min-height:0;overflow:hidden;background:#f2f4f7}.workbench-header{display:flex;height:64px;align-items:center;justify-content:flex-end;padding:0 24px;background:#fff;border-bottom:1px solid #e4e8ee}.workbench-mobile-menu-button{display:none}.workbench-account-menu-button{display:inline-flex;height:40px;align-items:center;gap:8px;padding:0 8px}.workbench-content{height:calc(100vh - 64px);min-width:0;min-height:0;margin:0;padding:26px 32px 30px;overflow:hidden;background:#f2f4f7}.workbench-mobile-drawer .ant-drawer-body{padding:12px 0}.workbench-mobile-project-selector{padding:0 16px 12px}.workbench-mobile-project-selector>span{color:#68758a}@media(max-width:900px){.workbench-desktop-sider{display:none}.workbench-header{justify-content:space-between;padding:0 12px}.workbench-mobile-menu-button{display:inline-flex;width:44px;min-width:44px;height:44px;align-items:center;justify-content:center}.workbench-content{padding:16px 12px 20px}.workbench-user-name{display:none}}.settings-page{padding:24px}.settings-title{text-align:center}.project-view-preference-card{max-width:980px;margin:0 auto}.project-view-preference-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.project-view-preference-head h3{margin:0;color:#1f2937;font-size:17px}.project-view-preference-head span{display:block;margin-top:6px;color:#667085;font-size:13px}.project-view-preference-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.project-view-preference-fields>div{display:grid;gap:7px}.project-view-preference-fields label{color:#344054;font-size:13px}.project-view-preference-fields .ant-select{width:100%}.project-view-preference-error{margin-top:14px;color:#b42318;font-size:13px}.contractor-preference-card{max-width:1200px;margin:0 auto}.contractor-preference-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.contractor-preference-head h3{margin:0}.contractor-preference-desc{display:block;margin-top:6px;color:#667085;font-size:13px}.contractor-preference-toolbar{width:100%;margin-bottom:16px}.contractor-preference-loading,.contractor-preference-error{display:flex;min-height:160px;align-items:center;justify-content:center;gap:12px;color:#667085}.contractor-preference-error{color:#b42318}@media(max-width:760px){.settings-page{padding:16px 12px}.project-view-preference-head,.contractor-preference-head{flex-direction:column}.project-view-preference-fields{grid-template-columns:1fr}}.attendance-page{--sequence-width: 52px;--name-width: 132px;display:flex;height:100%;min-width:0;min-height:0;flex-direction:column;color:#18243a}.attendance-page-header{display:flex;min-height:78px;flex:0 0 auto;align-items:flex-start;justify-content:space-between;gap:20px;padding:2px 0 14px}.attendance-project-name{display:block;margin-bottom:5px;color:#4e6f9b;font-size:12px}.attendance-page-header h2{margin:0 0 5px;color:#152238;font-size:22px;line-height:1.25}.attendance-page-header p{margin:0;color:#62728a;font-size:12px}.attendance-toolbar{display:flex;min-height:56px;flex:0 0 auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid #d7dee8;border-bottom:0;background:#fff}.attendance-range-control{display:flex;align-items:center;gap:8px}.attendance-range-control input{width:150px;height:32px;padding:0 9px;color:#26354c;font:inherit;font-size:13px;border:1px solid #c9d2df;border-radius:4px;background:#fff}.attendance-range-control span{color:#6f7e92;font-size:12px}.attendance-contractor-filter,.attendance-team-filter{width:180px}.attendance-stat-strip{display:flex;min-height:36px;flex:0 0 auto;align-items:center;gap:18px;padding:7px 12px;overflow:hidden;color:#536987;font-size:12px;white-space:nowrap;border:1px solid #d7dee8;border-bottom:0;background:#f7f9fc}.attendance-rule{overflow:hidden;margin-left:auto;color:#66758b;text-overflow:ellipsis}.attendance-matrix-frame{position:relative;flex:1;min-width:0;min-height:0;overflow:hidden;border:1px solid #ccd5e2;background:#fff}.attendance-loading{display:grid;height:100%;min-height:0;place-items:center}.attendance-matrix-scroll{width:100%;max-width:100%;height:100%;min-height:0;overflow:auto}.attendance-matrix{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:12px}.attendance-matrix th,.attendance-matrix td{height:29px;padding:3px 6px;overflow:hidden;line-height:1.25;text-overflow:ellipsis;white-space:nowrap;border-right:1px solid #dbe2ec;border-bottom:1px solid #dbe2ec}.attendance-matrix thead th{position:sticky;z-index:5;top:0;height:38px;color:#203451;font-weight:650;text-align:center;background:#edf2f8}.attendance-matrix .sticky-col{position:sticky;z-index:3;background:#fff}.attendance-matrix thead .sticky-col{z-index:7;background:#e7edf5}.sticky-sequence{left:0;width:var(--sequence-width);min-width:var(--sequence-width);max-width:var(--sequence-width);text-align:center}.sticky-name{left:var(--sequence-width);width:var(--name-width);min-width:var(--name-width);max-width:var(--name-width);box-shadow:3px 0 5px #1f2d3d14}.team-column{width:126px;min-width:126px;max-width:126px}.contractor-column{width:158px;min-width:158px;max-width:158px}.kind-column{width:58px;min-width:58px;max-width:58px;text-align:center}.date-column,.matrix-cell{width:34px;min-width:34px;max-width:34px;padding-right:2px;padding-left:2px;text-align:center}.total-column,.total-cell{width:82px;min-width:82px;max-width:82px;text-align:center}.person-cell{text-align:left}.person-cell strong,.person-cell small{display:block;overflow:hidden;text-overflow:ellipsis}.person-cell strong{color:#17243a;font-size:12px;font-weight:650}.person-cell small{margin-top:2px;color:#6f7f96;font-size:10px;font-weight:400}.sequence-cell,.text-column,.row-kind{color:#334760}.text-column{text-align:left}.matrix-row-overtime td{border-bottom-color:#bdc9d9;background:#fbfcfe}.matrix-row-overtime .sticky-col{background:#fff}.overtime-kind,.tone-overtime,.overtime-total{color:#1668b2;font-weight:600}.tone-present{color:#07943a;font-size:15px;font-weight:700}.tone-absent{color:#b3261e;background:#fff1f0}.tone-empty{color:#9aa6b5}.attendance-total{color:#1b5e3a;font-weight:600}.attendance-scope-alert{margin-top:12px}@media(max-width:900px){.attendance-page-header{min-height:0}.attendance-toolbar{align-items:stretch;flex-wrap:wrap}.attendance-range-control{width:100%}.attendance-range-control input{min-width:0;flex:1;width:auto}.attendance-contractor-filter,.attendance-team-filter{min-width:150px;flex:1;width:auto}.attendance-stat-strip{align-items:flex-start;flex-wrap:wrap;gap:5px 14px;white-space:normal}.attendance-rule{width:100%;margin-left:0}}
