:root{--primary: #f97316;--primary-dark: #ea580c;--primary-light: #fff7ed;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--sidebar-bg: #1e293b;--sidebar-hover: #334155;--sidebar-active: #f97316;--header-bg: #ffffff;--content-bg: #f1f5f9;--card-bg: #ffffff;--text-primary: #0f172a;--text-secondary: #475569;--text-light: #94a3b8;--border-color: #e2e8f0;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 25px -5px rgba(0, 0, 0, .08), 0 8px 10px -6px rgba(0, 0, 0, .05);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;background:var(--content-bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e293b,#334155,#1e293b);position:relative;overflow:hidden}.login-container:before{content:"";position:absolute;width:600px;height:600px;background:radial-gradient(circle,rgba(249,115,22,.15) 0%,transparent 70%);border-radius:50%;top:-200px;right:-200px}.login-container:after{content:"";position:absolute;width:500px;height:500px;background:radial-gradient(circle,rgba(59,130,246,.1) 0%,transparent 70%);border-radius:50%;bottom:-150px;left:-150px}.login-card{background:#fff;border-radius:20px;box-shadow:0 25px 80px #0000004d;padding:44px 40px;width:440px;max-width:90vw;position:relative;z-index:1}.login-logo{text-align:center;margin-bottom:28px}.login-logo h1{font-size:26px;font-weight:700;color:var(--text-primary);margin-top:14px;letter-spacing:1px}.login-logo p{color:var(--text-secondary);font-size:14px;margin-top:6px;letter-spacing:2px}.login-form .ant-form-item{margin-bottom:20px}.login-form .ant-input-affix-wrapper,.login-form .ant-input{height:46px;border-radius:10px;border-color:#e2e8f0}.login-form .ant-input-affix-wrapper:focus,.login-form .ant-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #f973161a}.login-btn{width:100%;height:46px;border-radius:10px;font-size:16px;font-weight:600;letter-spacing:2px}.login-tip{text-align:center;margin-top:20px;font-size:12px;color:var(--text-light)}.app-layout{min-height:100vh;display:flex}.app-sidebar{width:232px;background:var(--sidebar-bg);position:fixed;top:0;left:0;bottom:0;z-index:100;display:flex;flex-direction:column;transition:width .25s ease;box-shadow:2px 0 10px #0000001a}.app-sidebar.collapsed{width:64px}.sidebar-logo{height:64px;display:flex;align-items:center;padding:0 20px;border-bottom:1px solid rgba(255,255,255,.06);color:#fff;font-size:18px;font-weight:700;white-space:nowrap;overflow:hidden;letter-spacing:1px}.sidebar-logo .logo-icon{width:34px;height:34px;background:linear-gradient(135deg,#f97316,#ea580c);border-radius:10px;display:flex;align-items:center;justify-content:center;margin-right:12px;flex-shrink:0;font-size:18px;box-shadow:0 4px 12px #f973164d}.sidebar-menu{flex:1;padding:12px 10px;overflow-y:auto}.sidebar-group{margin-bottom:8px}.sidebar-menu-group{font-size:11px;color:#ffffff59;padding:12px 14px 6px;text-transform:uppercase;letter-spacing:1px;font-weight:600}.sidebar-menu-item{display:flex;align-items:center;padding:10px 14px;color:#ffffffa6;border-radius:8px;cursor:pointer;transition:all .2s;margin-bottom:2px;white-space:nowrap;overflow:hidden;font-size:14px}.sidebar-menu-item:hover{background:#ffffff0f;color:#fff}.sidebar-menu-item.active{background:linear-gradient(135deg,#f97316e6,#ea580ce6);color:#fff;box-shadow:0 4px 12px #f9731640}.sidebar-menu-item .menu-icon{font-size:17px;margin-right:12px;width:20px;text-align:center;flex-shrink:0}.sidebar-menu-item .menu-text{flex:1;overflow:hidden;text-overflow:ellipsis}.sidebar-footer{padding:12px 10px;border-top:1px solid rgba(255,255,255,.06)}.sidebar-user{display:flex;align-items:center;padding:8px 10px;border-radius:8px;cursor:pointer;transition:background .2s}.sidebar-user:hover{background:#ffffff0f}.sidebar-user .avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#f97316,#ea580c);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:14px;flex-shrink:0}.sidebar-user .user-info{margin-left:10px;overflow:hidden}.sidebar-user .user-name{color:#fff;font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user .user-role{color:#ffffff73;font-size:12px;margin-top:2px}.app-main{flex:1;margin-left:232px;min-height:100vh;transition:margin-left .25s ease}.app-main.collapsed{margin-left:64px}.app-header{height:60px;background:#fff;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:50;box-shadow:0 1px 3px #0000000a}.header-left{display:flex;align-items:center;gap:16px}.header-title{font-size:17px;font-weight:600;color:var(--text-primary)}.header-right{display:flex;align-items:center;gap:16px}.app-content{padding:24px 28px;min-height:calc(100vh - 60px)}.page-card{background:var(--card-bg);border-radius:var(--radius-md);padding:24px;margin-bottom:20px;box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.page-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #f1f5f9}.page-card-title{font-size:18px;font-weight:600;color:var(--text-primary)}.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:20px}.stat-card{background:#fff;border-radius:var(--radius-md);padding:22px;display:flex;align-items:center;gap:16px;box-shadow:var(--shadow-sm);border:1px solid var(--border-color);transition:all .25s ease;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-card .stat-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:24px;color:#fff;flex-shrink:0}.stat-card .stat-icon.orange{background:linear-gradient(135deg,#f97316,#ea580c);box-shadow:0 4px 12px #f973164d}.stat-card .stat-icon.green{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 12px #10b9814d}.stat-card .stat-icon.blue{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 4px 12px #3b82f64d}.stat-card .stat-icon.purple{background:linear-gradient(135deg,#8b5cf6,#7c3aed);box-shadow:0 4px 12px #8b5cf64d}.stat-card .stat-info{flex:1;min-width:0}.stat-card .stat-value{font-size:26px;font-weight:700;color:var(--text-primary);line-height:1.2}.stat-card .stat-label{font-size:13px;color:var(--text-light);margin-top:4px}.data-table .ant-table{border-radius:10px;overflow:hidden}.data-table .ant-table-thead>tr>th{background:#f8fafc;font-weight:600;color:var(--text-secondary);font-size:13px;border-bottom:1px solid var(--border-color)}.data-table .ant-table-tbody>tr>td{font-size:14px;border-bottom:1px solid #f1f5f9}.data-table .ant-table-tbody>tr:hover>td{background:#f8fafc!important}.ant-btn-primary{background:var(--primary);border-color:var(--primary)}.ant-btn-primary:hover{background:var(--primary-dark)!important;border-color:var(--primary-dark)!important}.ant-tag{border-radius:6px;font-size:12px;padding:2px 10px}.ant-input,.ant-select-selector{border-radius:8px!important}.ant-modal-content{border-radius:14px!important}.ant-modal-header{border-radius:14px 14px 0 0!important}.ant-upload-picture-card-wrapper .ant-upload.ant-upload-select,.ant-upload-picture-card-wrapper .ant-upload-list-picture-card-container{width:100px!important;height:100px!important;border-radius:10px!important}.ant-upload-list-picture-card .ant-upload-list-item{border-radius:10px!important}@media (max-width: 1200px){.stat-cards{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.app-sidebar{width:64px}.app-sidebar .sidebar-logo span,.app-sidebar .menu-text,.app-sidebar .user-info,.app-sidebar .sidebar-menu-group{display:none}.app-main{margin-left:64px}.stat-cards{grid-template-columns:1fr}.app-content{padding:16px}}
