html{scroll-behavior:smooth}*:focus-visible{outline:2px solid rgba(22,119,255,.4);outline-offset:2px;border-radius:2px}button:focus-visible,a:focus-visible{outline:2px solid rgba(22,119,255,.4);outline-offset:2px}.ant-menu-item:hover{background-color:#1677ff0f!important}.ant-menu-item-selected{background-color:#1677ff14!important}.ant-layout-sider{transition:all .2s ease-in-out!important}.ant-layout-content{display:flex;flex-direction:column;min-height:0}.ant-layout-content>div{flex:1;min-height:0}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Microsoft YaHei,sans-serif;overflow:hidden}#root{height:100vh;overflow:hidden}.ant-layout{height:100%}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d9d9d9;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#bfbfbf}.todo-card{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #f0f0f0;border-radius:8px;padding:10px 14px;margin-bottom:8px;transition:box-shadow .2s ease,border-color .2s ease,transform .2s ease}.todo-card:hover{border-color:#d9d9d9;box-shadow:0 4px 12px #00000014;transform:translateY(-1px)}.todo-card-overdue{background:#fff2f0;border-color:#ffccc7;box-shadow:inset 3px 0 #ff4d4f}.todo-card-approaching{background:#fffbe6;border-color:#ffe58f;box-shadow:inset 3px 0 #faad14}.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:#fff2f0!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}
