*{margin:0;padding:0;box-sizing:border-box}:root{--color-primary: #0f766e;--color-primary-strong: #0b5f56;--color-accent: #0ea5e9;--color-ink: #0f172a;--color-muted: #64748b;--surface: #ffffff;--surface-soft: #f8fafc;--surface-strong: #e2e8f0;--gradient-primary: linear-gradient(135deg, #0f766e 0%, #0ea5e9 100%);--gradient-ink: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);--gradient-warm: linear-gradient(135deg, #f59e0b 0%, #ea580c 100%);--shadow-soft: 0 10px 30px rgba(15, 23, 42, .12);--shadow-card: 0 8px 24px rgba(15, 23, 42, .1);--border-subtle: 1px solid rgba(15, 23, 42, .08);--action-search-bg: #0f766e;--action-search-hover: #0b5f56;--action-create-gradient: linear-gradient(135deg, #2563eb 0%, #0ea5e9 100%);--action-create-shadow: 0 8px 20px rgba(37, 99, 235, .28)}body{font-family:Space Grotesk,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-ink);background:radial-gradient(1200px 600px at 10% -10%,rgba(14,165,233,.12),transparent 60%),radial-gradient(900px 500px at 95% 0%,rgba(15,118,110,.12),transparent 55%),linear-gradient(180deg,#f8fafc,#eef2f7)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px;transition:background .2s ease}::-webkit-scrollbar-thumb:hover{background:#94a3b8}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.fade-in{animation:fadeIn .4s ease-out}.slide-in{animation:slideInRight .5s ease-out}.card-hover{transition:all .3s cubic-bezier(.4,0,.2,1)}.card-hover:hover{transform:translateY(-4px);box-shadow:0 12px 28px #00000026}.gradient-border{position:relative;background:#fff;border-radius:16px;padding:2px}.gradient-border:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:16px;padding:2px;background:var(--gradient-primary);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}@media (max-width: 768px){.card-hover:hover{transform:none}}.text-gradient{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:700}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.app-surface{background:var(--surface);border:var(--border-subtle);border-radius:16px;box-shadow:var(--shadow-soft)}.app-surface-card{background:var(--surface);border:var(--border-subtle);border-radius:16px;box-shadow:var(--shadow-card)}.app-content-shell{background:var(--surface);border:var(--border-subtle);border-radius:18px;box-shadow:var(--shadow-soft)}.ant-card{transition:all .3s cubic-bezier(.4,0,.2,1)}.ant-statistic-title{font-size:14px;font-weight:500;color:#64748b}.ant-statistic-content{font-weight:600}.ant-table-thead>tr>th{font-weight:600;text-transform:uppercase;font-size:12px;letter-spacing:.5px}.auth-form .ant-input,.auth-form .ant-input-affix-wrapper{height:48px}.auth-form .ant-input-affix-wrapper .ant-input{height:100%}.auth-form .ant-btn{height:48px}.app-table{border-radius:12px}.app-table .ant-table-content{overflow-x:auto}.app-table-shell .ant-card-body{padding:12px 16px 16px}.app-table-shell .ant-table-pagination.ant-pagination{position:sticky;bottom:0;z-index:5;margin:0;padding-top:12px;background:#fff;border-top:1px solid #f0f0f0}.app-title-md{font-size:16px;font-weight:600}.app-title-sm{font-size:15px;font-weight:500}.app-text-muted{color:#64748b}.app-text-muted-sm{color:#64748b;font-size:13px}.app-text-muted-md{color:#666;font-size:14px}.app-text-sm{font-size:14px}.app-text-placeholder{color:#ccc}.app-text-accent{color:var(--color-accent)}.app-link-accent{color:var(--color-accent);font-weight:500}.app-text-warning{color:#ad6800}.app-code-inline{font-size:12px}.app-code-text{font-family:monospace;font-size:14px}.app-code-pill{font-size:13px;background:#f5f5f5;padding:2px 8px;border-radius:4px}.app-code-chip{font-size:14px;font-family:monospace;background:#f1f5f9;padding:6px 12px;border-radius:6px;display:inline-block}.app-flex-row{display:flex;align-items:center;gap:8px}.app-flex-row-tight{display:flex;align-items:center;gap:4px}.app-mb-4{margin-bottom:4px}.app-mb-8{margin-bottom:8px}.app-mb-12{margin-bottom:12px}.app-mb-16{margin-bottom:16px}.app-mb-24{margin-bottom:24px}.app-mb-32{margin-bottom:32px}.app-mb-0{margin-bottom:0}.app-mt-8{margin-top:8px}.app-mt-12{margin-top:12px}.app-mt-16{margin-top:16px}.app-ml-4{margin-left:4px}.app-stat-value{font-size:24px;font-weight:700}.app-stat-label{margin-bottom:4px;color:#64748b;font-size:13px}.app-page-title{font-size:28px;font-weight:700;margin-bottom:8px}.app-page-subtitle{color:#64748b;font-size:14px}.app-card-soft{background:linear-gradient(135deg,#f8fafc,#fff)}.app-statistic-value-lg .ant-statistic-content-value{color:#10b981;font-size:36px;font-weight:700}.app-text-white{color:#fff}.app-text-white-muted{color:#ffffffd9}.app-opacity-90{opacity:.9}.app-icon-xl{font-size:48px}.app-icon-lg{font-size:36px}.app-text-lg{font-size:16px}.app-text-md{font-size:14px}.app-text-sm{font-size:13px}.app-text-xl{font-size:32px}.app-text-xxl{font-size:36px}.app-weight-500{font-weight:500}.app-weight-600{font-weight:600}.app-weight-700{font-weight:700}.app-form-btn{font-weight:600}.app-flex-between{display:flex;justify-content:space-between;align-items:center}.app-flex-center{display:flex;align-items:center}.app-gap-16{gap:16px}.app-gap-24{gap:24px}.app-stat-chip{background:#ffffff26;padding:12px 20px;border-radius:12px;text-align:center}.app-stat-chip-label{font-size:12px;opacity:.85;margin-bottom:4px}.app-stat-chip-value{font-size:16px;font-weight:600}.app-gradient-card{color:#fff;border-radius:16px;overflow:hidden;position:relative}.app-gradient-card-glow{position:absolute;top:-50px;right:-50px;width:150px;height:150px;border-radius:50%;background:#ffffff1a;filter:blur(40px)}.app-gradient-card-body{position:relative;z-index:1}.app-trend-row{font-size:13px;opacity:.9;display:flex;align-items:center;gap:4px}.app-text-accent-sm{color:var(--color-accent);font-size:13px}.app-info-box-info{margin-top:12px;padding:12px;background:#f0f5ff;border-radius:6px;border:1px solid #adc6ff}.app-info-box-warn{margin-bottom:16px;padding:12px;background:#fffbe6;border-radius:4px;border:1px solid #ffe58f}.app-info-box-muted{margin-bottom:16px;padding:12px;background:#f5f5f5;border-radius:4px}.app-alert{border-radius:8px}.app-alert.app-alert-spaced{margin-bottom:24px}.app-alert-lg{margin-bottom:24px;border-radius:12px}.app-panel-dashed{padding:24px;background:#f8fafc;border-radius:12px;border:2px dashed #cbd5e1}.app-tip-box-warning{margin-top:16px;padding:16px;background:#fffbeb;border-radius:8px;border:1px solid #fef3c7}.ant-btn-primary{background:var(--gradient-primary);border:none;box-shadow:0 6px 16px #0ea5e940}.ant-btn-primary:not(:disabled):hover{background:var(--gradient-primary);box-shadow:0 6px 16px #0ea5e940}.app-btn-search.ant-btn-primary{background:var(--action-search-bg);border-color:var(--action-search-bg);box-shadow:0 6px 16px #0f766e47}.app-btn-search.ant-btn-primary:not(:disabled):hover{background:var(--action-search-hover);border-color:var(--action-search-hover);box-shadow:0 6px 18px #0f766e57}.app-btn-create.ant-btn-primary{background:var(--action-create-gradient);border:none;box-shadow:var(--action-create-shadow)}.app-btn-create.ant-btn-primary:not(:disabled):hover{background:var(--action-create-gradient);box-shadow:0 10px 22px #2563eb57}.ant-input:focus,.ant-input-focused,.ant-select-focused .ant-select-selector,.ant-picker-focused{border-color:var(--color-accent)!important;box-shadow:0 0 0 3px #0ea5e926!important}.app-search-card .ant-input,.app-search-card .ant-input-affix-wrapper,.app-search-card .ant-select-selector,.app-search-card .ant-picker{transition:none}.app-search-card .ant-input:hover,.app-search-card .ant-input-affix-wrapper:hover,.app-search-card .ant-select-selector:hover,.app-search-card .ant-picker:hover{border-color:#0f172a1f!important;box-shadow:none!important}.app-search-card .ant-btn,.app-search-card .ant-btn-primary{transition:none}.skeleton-shimmer{background:linear-gradient(90deg,#f0f0f0,#e0e0e0,#f0f0f0 80px);background-size:1000px;animation:shimmer 2s infinite linear}
