:root{color:#23303b;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f7fb;font-family:IBM Plex Sans,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;margin:0;overflow-x:hidden}body,.ant-layout{background:#f5f7fb}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}#root{min-width:0;min-height:100vh}.antd-dashboard-shell{min-height:100vh;background:0 0!important}.antd-dashboard-sider{height:100vh;inset-block-start:0;overflow:auto;position:sticky!important}.antd-dashboard-sider .ant-layout-sider-children{flex-direction:column;min-height:100%;display:flex}.antd-sider-brand{padding:28px 24px 20px}.antd-sider-footer{margin-top:auto;padding:16px 24px 24px}.dashboard-account-panel{gap:12px;min-width:0;display:grid}.dashboard-account-user{gap:2px;min-width:0;display:grid}.dashboard-account-actions.ant-space{width:100%}.dashboard-account-actions .ant-space-item{flex:1 1 0;display:flex}.dashboard-account-actions .ant-btn{justify-content:center;width:100%}.antd-dashboard-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;min-width:0;height:auto;padding:16px 20px 8px;line-height:1.4;display:flex;background:0 0!important}.antd-dashboard-content{grid-template-columns:minmax(0,1fr);align-content:start;gap:16px;min-width:0;padding:8px 20px 20px;display:grid}.screen-state{color:#5c5147;place-items:center;min-height:100vh;font-size:1.1rem;display:grid}.route-loading{color:#655c53;background:#fff;border:1px solid #7077941f;border-radius:24px;place-items:center;width:100%;min-height:180px;display:grid;box-shadow:0 22px 54px #4858821a}.toast-stack{z-index:1200;gap:10px;display:grid;position:fixed;top:18px;right:18px}.toast{min-width:260px;max-width:360px;box-shadow:0 16px 38px #3727142e}.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card,.section-card,.sidebar{background:#fff;border:1px solid #79664c1f;box-shadow:0 24px 80px #5f42211f}.login-card{border-radius:28px;width:min(100%,460px);padding:32px}.login-card h1,.section-head h2,.brand-title{letter-spacing:-.04em;color:#1e2529;margin:0;font-family:Avenir Next,SF Pro Display,PingFang SC,sans-serif;font-weight:700}.login-card h1{font-size:clamp(2.4rem,5vw,3.2rem)}.eyebrow{color:#9b5c24;letter-spacing:.18em;text-transform:uppercase;margin:0 0 10px;font-size:.78rem}.login-copy,.muted-text,.brand-copy,.sidebar-subtle{color:#655c53}.grid-form{gap:16px;margin-top:24px;display:grid}.grid-form label,.toolbar label{gap:8px;display:grid}.grid-form span,.toolbar span{color:#5a534d;font-size:.92rem}.grid-form input,.grid-form select,.grid-form textarea,.toolbar input,.toolbar select,.toolbar textarea{color:#22303c;background:#ffffffeb;border:1px solid #78603b2e;border-radius:16px;outline:none;width:100%;padding:12px 14px;transition:border-color .15s,box-shadow .15s,transform .15s}.grid-form input:focus,.grid-form select:focus,.grid-form textarea:focus,.toolbar input:focus,.toolbar select:focus,.toolbar textarea:focus{border-color:#b86d2c;box-shadow:0 0 0 4px #b86d2c24}.primary-button,.ghost-button,.icon-button{border:none;border-radius:999px;padding:10px 18px;transition:transform .16s,opacity .16s,background .16s}.primary-button{color:#fff9f3;background:linear-gradient(135deg,#bd5f23 0%,#824521 100%)}.ghost-button{color:#3e352d;background:#6f553014}.ghost-button.is-active{color:#21443d;background:#264b4529;box-shadow:inset 0 0 0 1px #264b452e}.ghost-button.danger{color:#9a402d}.icon-button{color:#54483d;background:0 0;padding-inline:12px}.primary-button:hover,.ghost-button:hover,.icon-button:hover,.nav-link:hover{transform:translateY(-1px)}.dashboard-shell{grid-template-columns:300px minmax(0,1fr);gap:20px;min-height:100vh;padding:20px;display:grid}.sidebar{background:linear-gradient(#fff7ebe6 0%,#f8f1e7f5 100%);border-radius:28px;flex-direction:column;justify-content:space-between;gap:32px;padding:28px 22px;display:flex}.brand-title{font-size:2rem}.nav{gap:10px;display:grid}.nav-link{color:#53483c;border-radius:18px;padding:14px 16px}.nav-link.active{color:#eef6f3;background:linear-gradient(135deg,#264b45 0%,#42685f 100%);box-shadow:0 12px 32px #264b4533}.sidebar-footer{justify-content:space-between;align-items:center;gap:16px;display:flex}.sidebar-user{font-weight:700}.content{gap:20px;display:grid}.security-banner{color:#5f4300;contain:layout paint;background:#fffbe6;border:1px solid #ffe58f;border-radius:12px;grid-template-columns:20px minmax(0,1fr) 28px;align-items:start;gap:10px;width:100%;height:68px;padding:12px 10px 12px 14px;display:grid;overflow:hidden}.security-banner-icon{color:#fff;background:#faad14;border-radius:50%;place-items:center;width:18px;height:18px;margin-top:1px;font-size:.78rem;font-weight:700;line-height:1;display:grid}.security-banner-body{gap:4px;min-width:0;line-height:1.35;display:grid}.security-banner-body strong,.security-banner-body span{overflow-wrap:anywhere;min-width:0;display:block}.security-banner-body strong{font-weight:600}.security-banner-body span{color:#5f4300c2}.security-banner-close{color:#5f4300b8;background:0 0;border:0;border-radius:6px;width:28px;height:28px;font-size:18px;line-height:1}.security-banner-close:hover{background:#5f430014}.page-stack{gap:20px;display:grid}.section-card.ant-card{background:#fff;border:1px solid #7077941f;border-radius:24px;min-width:0;box-shadow:0 22px 54px #4858821a}.section-card .ant-card-body,.section-head,.section-head>div{min-width:0}.section-card .ant-card-body{background:#fff;border-radius:24px}.section-head .ant-typography{overflow-wrap:anywhere}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.stat-card{background:#fff;border:1px solid #8970511f;border-radius:22px;padding:18px}.stat-card strong{color:#25303a;margin-top:8px;font-size:1.4rem;display:block}.ant-card{background:#fff;border-radius:20px}.ant-table-wrapper{max-width:100%;overflow-x:auto}.ant-table table{min-width:0!important}.ant-select .ant-select-selector,.ant-picker,.ant-input,.ant-input-number,.ant-input-affix-wrapper{border-radius:14px}.ant-select-focused .ant-select-selector,.ant-picker-focused,.ant-input-affix-wrapper-focused,.ant-input-number-focused,.ant-input-focused{box-shadow:0 0 0 3px #9254de1f!important}.ant-select-selector{transition:border-color .15s,box-shadow .15s,transform .15s}.ant-menu{font-weight:500;background:0 0!important}.ant-menu-item{border-radius:12px!important;width:calc(100% - 24px)!important;margin-inline:12px!important}.stat-card.accent{background:linear-gradient(135deg,#295448eb,#416d61e6)}.stat-card.accent strong,.stat-card.accent .preview-label{color:#edf6f0}.section-card{border-radius:28px;min-width:0;padding:20px}.section-head{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.section-head .ant-space{justify-content:flex-end}.section-head>.ant-space,.section-head>button,.backup-actions.ant-space{margin-inline-start:auto}.backup-actions .ant-space-item{display:flex}.aligned-control-row.ant-row{width:100%;margin-inline:0!important}.aligned-control-row.ant-row>.ant-col{padding-inline-start:0!important}.aligned-control-row.ant-row>.ant-col:last-child{padding-inline-end:0!important}.aligned-data-block{background:#fff;width:100%;margin-inline:0}.aligned-data-block.ant-table-wrapper .ant-table,.aligned-data-block.weekly-matrix-wrap{background:#fff;border-radius:12px}.aligned-data-block.ant-table-wrapper .ant-table-container,.aligned-data-block.ant-table-wrapper .ant-table-content,.aligned-data-block.ant-table-wrapper table{background:#fff!important;width:100%!important;min-width:100%!important}.aligned-data-block.ant-table-wrapper .ant-table,.aligned-data-block.ant-table-wrapper .ant-table-container,.aligned-data-block.ant-table-wrapper .ant-table-content,.aligned-data-block.ant-table-wrapper .ant-table-body,.aligned-data-block.ant-table-wrapper .ant-table-thead>tr>th,.aligned-data-block.ant-table-wrapper .ant-table-tbody>tr>td,.aligned-data-block.ant-table-wrapper .ant-table-placeholder>td,.aligned-data-block.ant-table-wrapper .ant-table-cell,.aligned-data-block.ant-table-wrapper .ant-spin-container,.aligned-data-block.ant-table-wrapper .ant-spin-nested-loading,.aligned-data-block.ant-table-wrapper .ant-pagination{background:#fff!important}.aligned-data-block.ant-table-wrapper .ant-table-thead>tr>th{background:#f8fafc!important}.aligned-data-block.ant-table-wrapper .ant-table-tbody>tr:hover>td,.aligned-data-block.ant-table-wrapper .ant-table-tbody>tr.row-active>td{background:#f3f7ff!important}.employee-mobile-list{gap:12px;display:grid}.employee-mobile-card.ant-card{box-shadow:none;border:1px solid #7077941f;border-radius:12px}.employee-mobile-card .ant-card-body{padding:14px}.employee-mobile-head{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:10px;display:grid}.employee-mobile-title{gap:2px;min-width:0;display:grid}.employee-mobile-title strong,.employee-mobile-title span{overflow-wrap:anywhere;min-width:0}.employee-mobile-title strong{color:#23303b;font-size:1rem}.employee-mobile-title span{color:#655c53;font-size:.86rem}.employee-mobile-meta{background:#f8fafc;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);gap:6px 10px;margin-top:12px;padding:10px;display:grid}.employee-mobile-meta span{color:#6b7280;font-size:.84rem}.employee-mobile-meta strong{color:#23303b;overflow-wrap:anywhere;min-width:0;font-weight:600}.employee-mobile-actions.ant-space{width:100%;margin-top:12px}.employee-mobile-pagination.ant-pagination{justify-content:flex-end;margin-top:4px;display:flex}.filter-range-hint{color:#6b7280;font-size:.88rem}.toolbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.toolbar{flex-wrap:wrap;gap:12px;min-width:0;margin-bottom:16px;display:flex}.toolbar label{flex:168px;min-width:0}.toolbar .ant-select,.toolbar .ant-picker{width:100%}.toolbar .ant-select .ant-select-selector,.toolbar .ant-picker{border-radius:14px}.toolbar .ant-select-focused .ant-select-selector,.toolbar .ant-picker-focused{box-shadow:0 0 0 2px #9254de1a!important}.toolbar .ant-select:not(.ant-select-disabled):hover .ant-select-selector,.toolbar .ant-picker:hover{border-color:#b86d2c}.monthly-summary-filters{gap:8px;display:grid}.monthly-summary-filters label{gap:8px;min-width:0;display:grid}.monthly-summary-filters span{color:#5a534d;font-size:.92rem}.monthly-summary-filters .ant-select,.monthly-summary-filters .ant-picker{width:100%}.monthly-summary-filters .ant-select .ant-select-selector,.monthly-summary-filters .ant-picker{background:#fffffffa;border-color:#78603b29;border-radius:14px;box-shadow:none!important}.monthly-summary-filters .ant-select:hover .ant-select-selector,.monthly-summary-filters .ant-picker:hover,.monthly-summary-filters .ant-select-focused .ant-select-selector,.monthly-summary-filters .ant-picker-focused,.monthly-summary-filters .ant-select-open .ant-select-selector{box-shadow:none!important;border-color:#78603b3d!important}.monthly-summary-page .toolbar .ant-select-focused .ant-select-selector,.monthly-summary-page .toolbar .ant-picker-focused,.monthly-summary-page .toolbar .ant-select-open .ant-select-selector,.monthly-summary-page .toolbar .ant-select-selector,.monthly-summary-page .toolbar .ant-picker{box-shadow:none!important}.monthly-summary-page .toolbar .ant-select .ant-select-selector,.monthly-summary-page .toolbar .ant-picker{background:#fffffffa;border-color:#78603b29;outline:none!important}.monthly-summary-page .toolbar .ant-select:hover .ant-select-selector,.monthly-summary-page .toolbar .ant-picker:hover{border-color:#0000}.monthly-summary-page .toolbar .ant-select:focus-visible .ant-select-selector,.monthly-summary-page .toolbar .ant-picker:focus-visible{box-shadow:none!important;outline:none!important}.table-wrap{max-width:100%;overflow:auto}.table-wrap>table{border-collapse:collapse;width:100%;min-width:860px}.table-wrap>table th,.table-wrap>table td{text-align:left;border-bottom:1px solid #7562481a;padding:14px 12px}.table-wrap>table th{color:#75634c;font-size:.92rem;font-weight:600}.table-wrap>table tbody tr{transition:background .15s}.table-wrap>table tbody tr:hover,.row-active{background:#c89d6714}.badge{border-radius:999px;align-items:center;padding:6px 10px;font-size:.85rem;display:inline-flex}.badge.success{color:#205e43;background:#3b7e5d1f}.badge.muted{color:#6b5e4d;background:#6b5e4d1a}.action-row{flex-wrap:wrap;gap:8px;display:flex}.error-banner,.success-banner,.empty-panel,.empty-inline{border-radius:18px;padding:14px 16px}.error-banner{color:#974734;background:#fff4f0d6}.success-banner{color:#296144;background:#eefaf2f0}.empty-panel,.empty-inline{color:#65594e;background:#fffbf5eb}.form-hint{font-size:.92rem}.error-text{color:#9c3f2d}.preview-card{background:#f4ece1cc;border:1px solid #9a704224;border-radius:18px;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px;display:grid}.preview-card strong{color:#2f352f;margin-top:6px;font-size:1rem;display:block}.preview-label{color:#7d654b;font-size:.84rem}.modal-backdrop{z-index:1400;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1f18116b;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-panel{z-index:1;background:#fffaf5;border-radius:24px;width:min(100%,620px);padding:22px;position:relative;box-shadow:0 30px 100px #2b1b0a38}.modal-header,.modal-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.modal-header h3{margin:0}.modal-actions{justify-content:flex-end}.full-span{grid-column:1/-1}.field-action{justify-content:flex-start;gap:10px;margin-top:-6px;display:flex}.view-toggle{background:#6f553014;border-radius:999px;gap:8px;padding:6px;display:inline-flex}.week-board{gap:18px;display:grid}.week-section{gap:12px;display:grid}.week-section-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.week-section-head h3{color:#23303b;margin:0}.week-section-head span,.schedule-meta,.week-day-date{color:#6f6255;font-size:.92rem}.week-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;display:grid}.week-day{background:#ffffffa8;border:1px solid #8970511f;border-radius:22px;align-content:flex-start;gap:10px;min-height:220px;padding:14px;display:grid}.week-day.is-muted{opacity:.62;background:#f1e9df9e}.week-day-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.week-list{gap:10px;display:grid}.schedule-card{background:#f6efe5e0;border:1px solid #9a704224;border-radius:18px;gap:8px;padding:12px;display:grid}.schedule-card-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.pagination{justify-content:flex-end;align-items:center;gap:12px;margin-top:16px;display:flex}.pagination-text{color:#6d6053;font-size:.92rem}.weekly-toolbar{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px;display:grid}.weekly-summary-bar.ant-card{background:#fff;border-radius:18px;margin-bottom:12px}.weekly-summary-bar .ant-card-body{background:#fff;padding:8px 12px}.weekly-inline-item{gap:4px;min-width:0;min-height:46px;display:grid}.weekly-inline-item span{color:#796550;font-size:.8rem}.weekly-inline-item strong{color:#24303a;font-size:.96rem}.weekly-actions{row-gap:6px}.weekly-matrix-wrap{z-index:0;overscroll-behavior-x:contain;background:#fff;border:1px solid #7077941f;border-radius:18px;max-width:100%;position:relative;overflow:auto;box-shadow:inset 0 1px #ffffffb8}.weekly-grid{background:#fff;align-items:stretch;gap:0;width:100%;min-width:max-content;display:grid}.weekly-grid-cell{min-width:0;padding:5px 4px}.weekly-grid-label{text-align:center;color:#334155;background:#f8fafc;justify-content:center;align-items:center;font-weight:600;display:flex}.weekly-name-cell{text-align:center;color:#24303a;justify-content:center;align-items:center;font-weight:600;display:flex}.weekly-total-cell{text-align:center;color:#334155;background:#f8fafc;justify-content:center;align-items:center;font-weight:600;display:flex}.weekly-total-label{white-space:nowrap;font-size:.74rem;line-height:1.1;display:inline-block}.weekly-grid-cell:not(.sticky-col){width:auto}.sticky-col{z-index:2;background:#fff;position:sticky}.sticky-col-left{width:80px;min-width:80px;left:0}.sticky-col-second{width:74px;min-width:74px;left:80px}.week-day-header{text-align:center;background:#f8fafc}.day-head-button{text-align:center;width:100%;min-height:76px;color:inherit;background:#fff;border:1px solid #818cf81f;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:7px 5px;display:flex;overflow:hidden}.day-head-button strong,.day-head-button em,.day-head-button small,.day-head-button span{white-space:nowrap;width:100%;display:block}.day-head-button strong{color:#334155;font-size:.78rem;font-weight:600;line-height:1.2}.day-head-button em{color:#334155;font-size:.78rem;font-style:normal;font-weight:600}.day-head-button small{color:#334155;font-size:.78rem;font-weight:600;line-height:1}.day-head-button span{color:#7c3aed;font-size:.72rem;line-height:1.1}.shift-cell{color:#64748b;text-align:center;white-space:normal;overflow-wrap:anywhere;background:#f8fafc;border:1px dashed #94a3b86b;border-radius:12px;width:100%;min-height:56px;padding:7px 5px;font-size:.78rem;line-height:1.35;transition:transform .16s,box-shadow .16s,border-color .16s}.shift-cell-content{justify-items:center;gap:2px;min-width:0;display:grid}.shift-cell-time,.shift-cell-hours{white-space:nowrap;max-width:100%;line-height:1.18;display:block}.shift-cell-time{font-size:.86rem;font-weight:700}.shift-cell-hours{font-size:.76rem;font-weight:600}.shift-cell.is-working{color:#166534;background:#f0fdf4;border-style:solid;border-color:#22c55e2e;font-weight:600}.shift-cell:hover,.day-head-button:hover{transform:translateY(-1px);box-shadow:0 12px 24px #64748b1f}.weekly-role-cell{color:#667085;text-align:center;justify-content:center;align-items:center;display:flex}.weekly-matrix-table{table-layout:fixed;border-collapse:separate;border-spacing:0;background:0 0;min-width:0}.schedule-export-preview{object-fit:contain;background:#fff;border:1px solid #e5e7eb;border-radius:8px;width:100%;max-height:70vh;display:block}@media print{body{background:#fff}.antd-dashboard-sider,.ant-drawer,.antd-dashboard-header,.sidebar,.toast-stack,.security-banner,.primary-button,.ghost-button,.icon-button,.modal-backdrop,.pagination{display:none!important}.dashboard-shell{padding:0;display:block}.antd-dashboard-content{padding:0}.content,.page-stack{display:block}.section-card{box-shadow:none;break-inside:avoid;background:#fff;border:1px solid #ddd;margin-bottom:16px}.table-wrap{overflow:visible}table{min-width:0}}@media (width<=980px){.antd-dashboard-header,.antd-dashboard-content{padding-inline:16px}.security-banner{height:auto;min-height:68px}.dashboard-shell{grid-template-columns:1fr}.sidebar-footer,.section-head{flex-direction:column;align-items:stretch}.backup-actions.ant-space{width:100%;margin-inline-start:0}.backup-actions .ant-space-item{flex:1 1 0}.backup-actions .ant-btn{width:100%}.dashboard-account-panel{border-top:1px solid #05050514;margin-top:16px;padding-top:16px}.table-wrap table{min-width:720px}.stats-grid,.week-grid,.preview-card,.weekly-toolbar{grid-template-columns:1fr}.toolbar-actions,.view-toggle,.week-section-head{flex-direction:column;align-items:stretch}}
