@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--color-brand-50: #f0fdf4;--color-brand-100: #dcfce7;--color-brand-200: #bbf7d0;--color-brand-300: #86efac;--color-brand-400: #4ade80;--color-brand-500: #22c55e;--color-brand-600: #16a34a;--color-brand-700: #15803d;--color-brand-800: #166534;--color-brand-900: #14532d;--color-primary: #16a34a;--color-primary-hover: #15803d;--color-primary-light: #dcfce7;--color-primary-bg: #f0fdf4;--color-slate-50: #f8fafc;--color-slate-100: #f1f5f9;--color-slate-200: #e2e8f0;--color-slate-300: #cbd5e1;--color-slate-400: #94a3b8;--color-slate-500: #64748b;--color-slate-600: #475569;--color-slate-700: #334155;--color-slate-800: #1e293b;--color-slate-900: #0f172a;--color-slate-950: #020617;--color-success: #16a34a;--color-success-bg: #f0fdf4;--color-warning: #d97706;--color-warning-bg: #fffbeb;--color-danger: #dc2626;--color-danger-bg: #fef2f2;--color-info: #0284c7;--color-info-bg: #f0f9ff;--color-text-primary: #0f172a;--color-text-secondary: #475569;--color-text-muted: #94a3b8;--color-text-disabled: #cbd5e1;--color-text-inverse: #ffffff;--color-bg-app: #f8fafc;--color-bg-white: #ffffff;--color-bg-subtle: #f1f5f9;--color-bg-muted: #e2e8f0;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-border-focus: #16a34a;--sidebar-bg: #0f172a;--sidebar-text: #94a3b8;--sidebar-text-active: #ffffff;--sidebar-item-active-bg: rgba(22, 163, 74, .15);--sidebar-item-hover-bg: rgba(255, 255, 255, .05);--sidebar-border: rgba(255, 255, 255, .06);--sidebar-collapsed-width: 60px;--navbar-height: 52px;--content-padding: 16px;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: 10px;--font-size-sm: 11px;--font-size-base: 13px;--font-size-md: 14px;--font-size-lg: 15px;--font-size-xl: 16px;--font-size-2xl: 18px;--font-size-3xl: 22px;--font-size-4xl: 28px;--font-size-5xl: 32px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-2xl: 16px;--transition-base: .2s ease;--transition-slow: .3s ease;--primary-color: #16a34a;--primary-hover: #15803d;--primary-dark: #166534;--primary-light: #dcfce7;--danger-color: #dc2626;--success-color: #16a34a;--warning-color: #d97706;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--text-light: #cbd5e1;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--bg-elevated: #ffffff;--bg-hover: #f1f5f9;--bg-sidebar: #0f172a;--border-color: #e2e8f0;--border-light: #cbd5e1;--border-focus: #16a34a;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .08), 0 2px 4px -2px rgb(0 0 0 / .08);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .07), 0 4px 6px -4px rgb(0 0 0 / .07);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .08), 0 8px 10px -6px rgb(0 0 0 / .08);--transition: .2s ease;--transition-fast: .12s ease;--sidebar-width: 220px;--header-height: 52px}*,*:before,*:after{box-sizing:border-box}html{overflow-x:hidden}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-bg-app);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);letter-spacing:-.025em}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-slate-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-slate-400)}.page-container{padding:12px 14px;max-width:1400px;display:flex;flex-direction:column;height:calc(100vh - var(--navbar-height));overflow-y:auto}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:var(--space-3)}.page-title{font-size:15px;font-weight:var(--font-weight-bold);color:var(--color-text-primary);letter-spacing:-.02em;margin:0}.page-subtitle{font-size:11px;color:var(--color-text-muted);margin:1px 0 0}.card{background:var(--color-bg-white);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6)}.card-grid{display:grid;gap:24px}.card-grid-2{grid-template-columns:repeat(2,1fr)}.card-grid-3{grid-template-columns:repeat(3,1fr)}.card-grid-4{grid-template-columns:repeat(4,1fr)}@media(max-width:1200px){.card-grid-4{grid-template-columns:repeat(3,1fr)}}@media(max-width:992px){.card-grid-3,.card-grid-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.card-grid-2,.card-grid-3,.card-grid-4{grid-template-columns:1fr}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--color-slate-100) 25%,var(--color-slate-50) 50%,var(--color-slate-100) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-md)}.skeleton-card{background:var(--color-bg-white);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden}.skeleton-image{height:160px;width:100%;border-radius:0}.skeleton-body{padding:16px}.skeleton-title{height:16px;width:60%;margin-bottom:12px}.skeleton-text{height:12px;margin-bottom:8px}.skeleton-table{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden}.skeleton-table-header{display:flex;gap:16px;padding:12px 16px;background:var(--color-slate-50);border-bottom:1px solid var(--color-border)}.skeleton-table-row{display:flex;gap:16px;padding:14px 16px;border-bottom:1px solid var(--color-slate-50)}.skeleton-cell{height:14px}.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:0;margin-bottom:20px}.breadcrumb-item{display:flex;align-items:center;gap:6px;font-size:13px}.breadcrumb-link{color:var(--color-text-muted);text-decoration:none;font-weight:400;transition:color var(--transition-fast)}.breadcrumb-link:hover{color:var(--color-primary)}.breadcrumb-sep{color:var(--color-text-disabled);font-size:11px;margin:0 4px;-webkit-user-select:none;user-select:none}.breadcrumb-current{color:var(--color-text-primary);font-weight:500}.empty-state{text-align:center;padding:48px 24px;color:var(--color-text-muted)}.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state-title{font-size:18px;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-bottom:8px}.empty-state-description{font-size:14px;color:var(--color-text-muted);margin-bottom:24px}.loading-overlay{position:fixed;inset:0;background:#fffc;display:flex;align-items:center;justify-content:center;z-index:9999}.text-primary{color:var(--color-primary)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-danger{color:var(--color-danger)}.text-muted{color:var(--color-text-muted)}.bg-primary{background-color:var(--color-primary-light)}.bg-success{background-color:var(--color-success-bg)}.bg-warning{background-color:var(--color-warning-bg)}.bg-danger{background-color:var(--color-danger-bg)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease}.slide-up{animation:slideUp .3s ease}.ant-table-small .ant-table-thead>tr>th,.ant-table-small .ant-table-tbody>tr>td{padding:4px 8px!important;font-size:12px!important;line-height:1.4!important}.ant-table-wrapper .ant-table-pagination.ant-pagination{margin:8px 12px!important}.table-height-fill{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.table-height-fill>.ant-table-wrapper{flex:1;min-height:0;display:flex;flex-direction:column}.table-height-fill .ant-spin-nested-loading,.table-height-fill .ant-spin-container,.table-height-fill .ant-table,.table-height-fill .ant-table-container{flex:1;min-height:0;display:flex;flex-direction:column}.table-height-fill .ant-table-header{flex-shrink:0}.table-height-fill .ant-table-body{flex:1!important;max-height:none!important;overflow-y:auto!important;scrollbar-width:thin}.table-height-fill .ant-table-pagination.ant-pagination{flex-shrink:0;margin:6px 12px 8px!important}.table-height-fill .ant-table-placeholder{height:100%}.table-height-fill .ant-table-placeholder>.ant-table-cell{vertical-align:middle}.table-height-fill .ant-table-placeholder .ant-table-expanded-row-fixed{display:flex;align-items:center;justify-content:center;min-height:100%}.table-card-fill{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.table-card-fill>.ant-card-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.ant-table-body{scrollbar-width:thin}.ant-table-wrapper .ant-table-pagination.ant-pagination{margin:6px 12px 8px!important}.ant-modal{max-height:calc(100vh - 64px);display:flex;flex-direction:column}.ant-modal-content,.ant-modal-container{display:flex;flex-direction:column;max-height:calc(100vh - 64px);padding:0!important;overflow:hidden}.ant-modal-header{flex:0 0 auto;margin:0!important;padding:10px 16px!important;border-bottom:1px solid #f1f5f9;background:#fff}.ant-modal-title{font-size:14px!important;font-weight:600!important;line-height:1.3!important}.ant-modal-body{flex:1 1 auto;min-height:0;padding:14px 18px!important;overflow-y:auto;overscroll-behavior:contain}.ant-modal-body .ant-form-vertical .ant-form-item{margin-bottom:12px}.ant-modal-body .ant-form-vertical .ant-form-item-label{padding-bottom:4px!important;line-height:1.3!important}.ant-modal-body .ant-form-vertical .ant-form-item-label>label{height:20px;font-size:13px}.ant-modal-body .ant-form-item-explain,.ant-modal-body .ant-form-item-extra{min-height:16px;font-size:11px}.ant-modal-body .ant-input,.ant-modal-body .ant-input-affix-wrapper,.ant-modal-body .ant-input-number,.ant-modal-body .ant-picker,.ant-modal-body .ant-select-single .ant-select-selector{font-size:13px}.ant-modal-body .ant-input,.ant-modal-body .ant-input-affix-wrapper{padding-top:4px;padding-bottom:4px;min-height:30px}.ant-modal-body .ant-select-single:not(.ant-select-customize-input) .ant-select-selector{height:30px;padding-top:0;padding-bottom:0}.ant-modal-body .ant-select-single .ant-select-selection-item,.ant-modal-body .ant-select-single .ant-select-selection-placeholder{line-height:28px}.ant-modal-body>.ant-form .ant-form-item:last-child{margin-bottom:0}.ant-modal-footer{flex:0 0 auto;margin:0!important;padding:10px 16px!important;border-top:1px solid #f1f5f9;background:#fff}.ant-modal-footer .ant-btn{height:28px;padding:0 12px;font-size:12px}.ant-modal-content .ant-modal-footer:empty,.ant-modal-container .ant-modal-footer:empty{display:none}.ant-modal-close{top:6px!important;inset-inline-end:8px!important}.ant-empty .ant-empty-image{height:auto!important}
