*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Microsoft YaHei,sans-serif;background:#f0f2f5;color:#1f1f1f}.app-layout{min-height:100vh}.app-header{display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:linear-gradient(135deg,#1677ff,#0958d9);box-shadow:0 2px 8px #00000026}.app-header--compact{height:56px;line-height:56px}.app-logo{display:flex;align-items:center;gap:10px;color:#fff;font-size:20px;font-weight:700;letter-spacing:1px}.app-logo-icon{width:36px;height:36px;background:#fff3;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px}.app-user-info{display:flex;align-items:center;gap:16px;color:#ffffffe6;font-size:14px}.app-user-trigger{cursor:pointer;display:flex;align-items:center;gap:8px}.app-user-avatar{background:#ffffff4d}.app-sider{background:#fff!important;box-shadow:2px 0 8px #0000000f}.app-sider .ant-menu{border-inline-end:none!important;padding:8px 0}.app-sider .ant-menu-item{margin:2px 8px;border-radius:8px}.app-menu{height:100%;padding-top:8px}.app-content{padding:12px;min-height:calc(100vh - 64px);background:#f0f2f5}.app-loading-screen{height:100vh;display:flex;align-items:center;justify-content:center}.page-header{margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:8px}.page-title{font-size:20px;font-weight:600;color:#1f1f1f}.stat-card{border-radius:12px;box-shadow:0 1px 4px #00000014;transition:box-shadow .3s}.stat-card:hover{box-shadow:0 4px 12px #0000001f}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.login-card{width:420px;border-radius:16px;box-shadow:0 20px 60px #0000004d}.login-header{text-align:center;margin-bottom:32px}.login-header h1{font-size:28px;font-weight:700;color:#1677ff;margin-bottom:8px}.login-header p{color:#8c8c8c;font-size:14px}.dashboard-kpi-row{margin-bottom:10px}.chart-card{border-radius:8px;box-shadow:0 1px 4px #00000014;margin-bottom:10px}.ant-table{border-radius:6px;font-size:12px;line-height:1.3;background:#fff;border:1px solid #d9dfe7}.ant-card{border-radius:8px;border:1px solid #d9dfe7;box-shadow:none;margin-bottom:10px}.ant-card .ant-card-head{min-height:38px;padding:0 10px;border-bottom:1px solid #d9dfe7}.ant-card .ant-card-head-title,.ant-card .ant-card-extra{padding:8px 0}.ant-card .ant-card-body{padding:10px}.ant-table-wrapper{margin-bottom:0}.ant-table-container{border-inline-start:0!important;border-top:0!important}.ant-table-thead>tr>th{padding:6px 8px!important;font-weight:600;background:#fafbfc!important;border-bottom:1px solid #d0d7e2!important;border-inline-end:1px solid #e2e8f0}.ant-table-tbody>tr>td{padding:5px 8px!important;border-bottom:1px solid #e2e8f0!important;border-inline-end:1px solid #eef2f6;vertical-align:middle}.ant-table-thead>tr>th:last-child,.ant-table-tbody>tr>td:last-child{border-inline-end:none}.ant-table.ant-table-small .ant-table-thead>tr>th,.ant-table.ant-table-small .ant-table-tbody>tr>td{padding:4px 6px!important}.ant-table-expanded-row>td{background:#fcfdff!important}.ant-table-row-expand-icon-cell,.ant-table-selection-column{padding-inline:4px!important}.ant-list,.ant-descriptions,.ant-tabs,.ant-form{font-size:12px}.ant-list .ant-list-item{padding:6px 0;border-bottom:1px solid #e2e8f0}.ant-descriptions .ant-descriptions-row>th,.ant-descriptions .ant-descriptions-row>td{padding-bottom:6px}.ant-tabs-top>.ant-tabs-nav{margin-bottom:8px}.ant-tabs .ant-tabs-tab{padding:6px 0}.ant-form-item{margin-bottom:10px}.ant-divider{margin:8px 0}.ant-space{gap:6px!important}.clickable-name{color:#1677ff;cursor:pointer;font-weight:500}.clickable-name:hover{color:#4096ff;text-decoration:underline}.detail-tabs .ant-tabs-nav{margin-bottom:8px}.form-card{border-radius:8px;margin-bottom:10px;box-shadow:none}.breadcrumb-bar{margin-bottom:8px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#d9d9d9;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#bfbfbf}.typing-indicator{display:flex;gap:4px;padding:4px 0}.typing-indicator span{width:8px;height:8px;background:#999;border-radius:50%;animation:typing 1.4s infinite ease-in-out}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}
