:root{--primary-color: #4DB6AC;--primary-hover: #3D9E94;--primary-light: #E0F2F1;--secondary-color: #616161;--success-color: #2E7D32;--warning-color: #E65100;--danger-color: #C62828;--text-primary: #212121;--text-secondary: #616161;--text-tertiary: #9E9E9E;--bg-page: #FAFAFA;--bg-card: #ffffff;--border-color: #E0E0E0;--border-light: #EEEEEE;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .08);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Microsoft YaHei,sans-serif;overflow:hidden;color:var(--text-primary);background:var(--bg-page)}#root{height:100vh;overflow:hidden}.ant-layout{height:100%}*:focus-visible{outline:2px solid rgba(77,182,172,.4);outline-offset:2px;border-radius:2px}button:focus-visible,a:focus-visible{outline:2px solid rgba(77,182,172,.4);outline-offset:2px}.ant-menu-item{border-radius:var(--radius-md)!important;margin:2px 8px!important;transition:background-color .15s ease,color .15s ease!important}.ant-menu-item:hover{background-color:var(--primary-light)!important;color:var(--primary-color)!important}.ant-menu-item-selected{background-color:var(--primary-light)!important;color:var(--primary-color)!important;font-weight:600;position:relative}.ant-menu-item-selected:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:60%;background:var(--primary-color);border-radius:0 3px 3px 0}.ant-layout-sider{transition:all .25s cubic-bezier(.4,0,.2,1)!important}.ant-layout-content{display:flex;flex-direction:column;min-height:0}.ant-layout-content>div{flex:1;min-height:0}.ant-btn{transition:background-color .15s ease,border-color .15s ease,color .15s ease!important}.ant-card{box-shadow:var(--shadow-sm);transition:box-shadow .2s ease!important}.ant-card:hover{box-shadow:var(--shadow-md)}.ant-table-thead>tr>th{background:#fafafa!important;font-weight:600!important;color:var(--text-secondary)!important;font-size:13px!important}.ant-table-tbody>tr>td{transition:background .15s ease!important}.ant-input,.ant-input-affix-wrapper,.ant-select-selector{transition:all .2s ease!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#a0aec0}.todo-card{display:flex;align-items:center;gap:12px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:10px 14px;margin-bottom:8px;transition:box-shadow .15s ease,border-color .15s ease}.todo-card:hover{border-color:var(--border-color);box-shadow:var(--shadow-sm)}.todo-card-overdue{background:#fbf5f5;border-color:#ecd4d4;box-shadow:inset 3px 0 0 0 var(--danger-color)}.todo-card-approaching{background:#fdf9f3;border-color:#f0e0c8;box-shadow:inset 3px 0 0 0 var(--warning-color)}.todo-card-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.todo-card-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.task-row-overdue>td{background:#fbf5f5!important}@media (max-width: 768px){.ant-layout-sider{display:none}.ant-modal{max-width:100vw!important;margin:0!important;padding:0!important}.ant-modal-content{border-radius:0!important;min-height:100vh}.ant-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.ant-card{margin-bottom:8px}.ant-input-affix-wrapper{max-width:140px!important}.ant-layout-header{padding:0 12px!important;gap:8px!important}.ant-layout-content{padding:12px!important}.ant-drawer-body .ant-menu{width:100%}.overview-stat-block{flex:1 1 100%!important;min-width:unset!important}}@media (max-width: 992px) and (min-width: 769px){.ant-layout-content{padding:16px!important}}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-transition{animation:pageFadeIn .3s ease-in-out;min-height:100%}@keyframes skeletonPulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.skeleton-loading{animation:skeletonPulse 1.5s ease-in-out infinite}
