html,body,#root,#root>.ant-app{height:100%;margin:0}body{background:#f5f7fa;-webkit-font-smoothing:antialiased}.app-logo{height:56px;display:flex;align-items:center;gap:10px;padding:0 18px;color:#fff;font-weight:700;font-size:16px;letter-spacing:.3px;white-space:nowrap;overflow:hidden}.app-logo img{width:30px;height:30px;border-radius:7px;flex:none}.app-header{background:#fff!important;padding:0 16px!important;display:flex;align-items:center;gap:12px;border-bottom:1px solid #edf0f3;position:sticky;top:0;z-index:20;height:56px!important;line-height:56px!important}.app-header .spacer{flex:1}.app-content{padding:20px;max-width:1500px;width:100%;margin:0 auto;box-sizing:border-box}@media(max-width:768px){.app-content{padding:12px}}.page-title{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.page-title h2{margin:0;font-size:20px}.stat-card{cursor:pointer;transition:box-shadow .15s;height:100%}.stat-card:hover{box-shadow:0 4px 14px #1f4e791f}.stat-card .ant-statistic-title{font-size:13px}.urgent-row td{background:#fff1f0!important}.overdue-text{color:#cf1322;font-weight:600}.muted{color:#8c8c8c;font-size:12px}.pre{white-space:pre-wrap;word-break:break-word}.task-title-link{font-weight:600}.task-card{margin-bottom:10px;border-left:4px solid #d9d9d9}.task-card.p1{border-left-color:#cf1322}.task-card.p2{border-left-color:#fa8c16}.task-card.overdue{background:#fff7f6}.tree-children{margin:-4px 0 10px 10px;padding-left:8px;border-left:2px solid #d6e4ff}.tree-info-row td{padding-top:6px!important;padding-bottom:6px!important}.secret-box{background:#fafafa;border:1px dashed #d9d9d9;padding:8px 12px;border-radius:8px;color:#8c8c8c}.filters .ant-form-item{margin-bottom:8px}.notif-item.unread{background:#f0f7ff}.login-wrap{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1f4e79,#2e75b6);padding:16px;box-sizing:border-box}.login-card{width:100%;max-width:400px}.ant-table-wrapper .ant-table{overflow-x:auto}.action-bar{display:flex;flex-wrap:wrap;gap:8px}
