:root{--app-font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--g-50: #f0fdf4;--g-100: #dcfce7;--g-200: #bbf7d0;--g-300: #86efac;--g-400: #4ade80;--g-500: #22c55e;--g-600: #16a34a;--g-700: #15803d;--g-800: #166534;--g-900: #14532d;--g-950: #052e16;--lg-bg: #f4faf6;--lg-surface: #ffffff;--lg-line: #d7eadf;--lg-text: #183428;--lg-muted: #648772;--lg-primary: #22c55e;--lg-primary-strong: #15803d}html,body,#root{font-family:var(--app-font-family)}.ant-typography,.ant-btn,.ant-input,.ant-select,.ant-select-selector,.ant-menu,.ant-table,.ant-card,.ant-form,.ant-tag{font-family:var(--app-font-family)!important}.ant-layout.layout-light-green{background:var(--vpp-light-layout-bg, linear-gradient(180deg, #f2f9f5 0%, var(--lg-bg) 100%))!important}.ant-layout.layout-light-green.ant-layout-has-sider>.ant-layout{background:transparent!important}.layout-light-green .ant-layout-sider{background:var(--vpp-light-sider-bg, #ffffff)!important;border-right:1px solid var(--lg-line)}.layout-light-green .ant-menu.ant-menu-dark,.layout-light-green .ant-menu-dark .ant-menu-sub{background:var(--vpp-light-sider-bg, #ffffff)!important;color:var(--lg-text)!important}.layout-light-green .ant-menu-dark .ant-menu-item-selected{background:#ecfdf3!important}.layout-light-green .ant-menu-dark .ant-menu-item-selected a,.layout-light-green .ant-menu-dark .ant-menu-item-selected .anticon{color:var(--lg-primary-strong)!important}.layout-light-green .ant-menu-dark .ant-menu-item a,.layout-light-green .ant-menu-dark .ant-menu-item .anticon,.layout-light-green .ant-menu-dark .ant-menu-submenu-title,.layout-light-green .ant-menu-dark .ant-menu-submenu-title .anticon,.layout-light-green .ant-menu-dark .ant-menu-submenu-title .ant-menu-title-content{color:#335e4a!important}.layout-light-green .ant-menu-dark .ant-menu-submenu{margin:0!important}.layout-light-green .ant-menu-dark .ant-menu-sub.ant-menu-inline{background:transparent!important;padding-inline-start:6px!important}.layout-light-green .ant-menu-dark .ant-menu-sub.ant-menu-inline .ant-menu-item{margin:2px 0!important;margin-inline-start:10px!important;border-radius:0 10px 10px 0;height:36px;line-height:36px;font-size:13px}.layout-light-green .ant-menu-dark .ant-menu-sub.ant-menu-inline .ant-menu-item .anticon{color:#4d7662!important;font-size:13px}.layout-light-green .ant-menu-dark .ant-menu-sub.ant-menu-inline .ant-menu-item-selected{background:#ecfdf3!important}.layout-dashboard-tech .ant-layout-sider,.layout-dashboard-tech .ant-menu.ant-menu-dark,.layout-dashboard-tech .ant-menu-dark .ant-menu-sub,.layout-dashboard-tech .ant-menu-dark .ant-menu-inline,.layout-dashboard-tech .ant-menu-dark .ant-menu-submenu-popup .ant-menu{background:var(--vpp-sider-bg, #020a26)!important}.layout-dashboard-tech .ant-menu-dark .ant-menu-item,.layout-dashboard-tech .ant-menu-dark .ant-menu-submenu-title{background:transparent!important}.layout-dashboard-tech .ant-menu-dark .ant-menu-item-selected{background:#306fd659!important}.layout-dashboard-tech .ant-menu-dark .ant-menu-submenu-title:hover,.layout-dashboard-tech .ant-menu-dark .ant-menu-item:hover{background:#306fd638!important}.layout-dashboard-tech .app-header-dashboard{background:var(--vpp-header-dashboard-bg, #020a26)!important}.layout-light-green .app-header-light{background:var(--vpp-light-header-bg, #ffffff)!important;border-bottom:1px solid var(--vpp-light-header-border, var(--lg-line))!important;box-shadow:0 6px 18px #145a2d0f!important}.light-green-page{position:relative;isolation:isolate;padding:24px;border:1px solid var(--vpp-light-page-border, var(--g-200));border-radius:14px;box-shadow:var(--vpp-light-page-shadow, 0 10px 26px rgba(22, 101, 52, .08));background:transparent!important}.light-green-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border-radius:inherit;pointer-events:none;background:var( --vpp-light-page-bg, linear-gradient(180deg, rgba(255, 255, 255, .94) 0%, rgba(240, 253, 244, .7) 100%) );backdrop-filter:blur(var(--vpp-light-page-blur-px, 4px));-webkit-backdrop-filter:blur(var(--vpp-light-page-blur-px, 4px))}.light-green-page:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border-radius:inherit;pointer-events:none;background:rgba(255,255,255,var(--vpp-light-page-solid-mask, 0))}.light-green-page>*{position:relative;z-index:1}.light-green-page .ant-card{border-color:var(--vpp-light-page-border, var(--g-200));border-radius:12px;box-shadow:var(--vpp-light-card-shadow, 0 8px 18px rgba(22, 101, 52, .05));background:linear-gradient(rgba(12,25,41,var(--vpp-light-card-overlay-alpha, 0)),rgba(12,25,41,var(--vpp-light-card-overlay-alpha, 0))),var(--vpp-light-card-bg, #ffffff)!important}.light-green-page .ant-card .ant-card-body,.light-green-page .ant-card .ant-card-head{background:transparent!important}.light-green-page .ant-card-head{border-bottom-color:var(--vpp-light-divider-soft, #e3efe7)}.light-green-page .ant-statistic-title,.light-green-page .ant-typography,.light-green-page .ant-form-item-label>label,.light-green-page .ant-table-thead>tr>th{color:color-mix(in srgb,var(--lg-muted) var(--vpp-auto-muted-base, 100%),#ffffff)}.light-green-page .ant-statistic-content,.light-green-page .ant-card-head-title,.light-green-page .ant-tabs-tab-btn{color:color-mix(in srgb,var(--lg-text) var(--vpp-auto-text-base, 100%),#ffffff)}.light-green-page .ant-btn-primary{background:var(--g-500);border-color:var(--g-500)}.light-green-page .ant-btn-primary:hover{background:var(--g-600)!important;border-color:var(--g-600)!important}.light-green-page .ant-tabs-nav:before{border-bottom-color:var(--vpp-light-tabs-border, #d9ecdf)!important}.light-green-page .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:var(--g-700)!important}.light-green-page .ant-tabs-ink-bar{background:var(--g-500)!important}.light-green-page .ant-progress-bg{background:linear-gradient(90deg,#22c55e,#86efac)!important}.light-green-page .ant-input,.light-green-page .ant-input-number,.light-green-page .ant-picker,.light-green-page .ant-select-selector{border-color:var(--vpp-light-input-border, #cfe4d7)!important}.light-green-page .ant-input:focus,.light-green-page .ant-input-focused,.light-green-page .ant-input-number-focused,.light-green-page .ant-picker-focused,.light-green-page .ant-select-focused .ant-select-selector{border-color:var(--g-400)!important;box-shadow:0 0 0 2px #4ade801f!important}.light-green-page .ant-tag{border-color:var(--g-200);color:var(--g-800);background:var(--g-50)}.light-green-page .ant-table{border:1px solid var(--vpp-light-table-border, #e1eee6);border-radius:10px;background:linear-gradient(rgba(12,25,41,var(--vpp-light-card-overlay-alpha, 0)),rgba(12,25,41,var(--vpp-light-card-overlay-alpha, 0))),var(--vpp-light-card-bg, #ffffff)!important}.light-green-page .ant-table-thead>tr>th{background:linear-gradient(rgba(12,25,41,var(--vpp-light-card-overlay-alpha, 0)),rgba(12,25,41,var(--vpp-light-card-overlay-alpha, 0))),var(--vpp-light-card-bg, #ffffff)!important}.light-green-page .ant-table-container,.light-green-page .ant-table-content,.light-green-page .ant-table-body,.light-green-page .ant-table-thead>tr>th,.light-green-page .ant-table-tbody>tr>td,.light-green-page .ant-table-cell{background:linear-gradient(rgba(12,25,41,var(--vpp-light-card-overlay-alpha, 0)),rgba(12,25,41,var(--vpp-light-card-overlay-alpha, 0))),var(--vpp-light-card-bg, #ffffff)!important}.light-green-page .ant-table-tbody>tr:hover>td,.light-green-page .ant-table-tbody>tr.ant-table-row:hover>td{background:linear-gradient(rgba(12,25,41,calc(var(--vpp-light-card-overlay-alpha, 0) + .03)),rgba(12,25,41,calc(var(--vpp-light-card-overlay-alpha, 0) + .03))),var(--vpp-light-card-bg, #ffffff)!important}.light-green-page .ant-table-tbody>tr>td{border-bottom-color:color-mix(in srgb,var(--vpp-light-table-border, #e1eee6) var(--vpp-auto-border-base, 100%),#ffffff)!important;color:color-mix(in srgb,var(--lg-text) var(--vpp-auto-text-base, 100%),#ffffff)}.light-green-page .ant-table-thead>tr>th:before{background:color-mix(in srgb,var(--vpp-light-table-border, #e1eee6) var(--vpp-auto-border-base, 100%),#ffffff)!important}.light-green-page .ant-pagination{background:linear-gradient(rgba(12,25,41,var(--vpp-light-card-overlay-alpha, 0)),rgba(12,25,41,var(--vpp-light-card-overlay-alpha, 0))),var(--vpp-light-card-bg, #ffffff);padding:6px 8px;border-radius:8px}.light-green-page .ant-slider-track{background:var(--g-500)!important}.light-green-page .ant-slider-handle:after{box-shadow:0 0 0 2px var(--g-500)!important}.light-green-page .ant-slider-rail{background:var(--g-200)!important}.light-green-page .ant-slider:hover .ant-slider-track{background:var(--g-600)!important}.light-green-page .ant-slider:hover .ant-slider-handle:after{box-shadow:0 0 0 2px var(--g-600)!important}.light-green-page .ant-alert-info{background:var(--g-50)!important;border-color:var(--g-200)!important}.light-green-page .ant-alert-info .ant-alert-icon{color:var(--g-600)!important}.light-green-page .ant-alert-success{background:#f0fdf4!important;border-color:var(--g-300)!important}.light-green-page .ant-alert-warning{background:#fffbeb!important;border-color:#fde68a!important}.light-green-page .ant-card-head{border-bottom-color:var(--g-200)!important}.light-green-page .ant-card-head-title{color:color-mix(in srgb,var(--lg-text) var(--vpp-auto-text-base, 100%),#ffffff)!important}.light-green-page .ant-select-selector{border-color:var(--g-200)!important}.light-green-page .ant-badge-status-success:after{border-color:var(--g-500)!important}.light-green-page .ant-switch-checked,.light-green-page .ant-spin-dot-item{background:var(--g-500)!important}.light-green-page .ant-statistic-content-value{color:color-mix(in srgb,var(--lg-text) var(--vpp-auto-text-base, 100%),#ffffff)!important}.light-green-page .ant-statistic-content-prefix,.light-green-page .ant-statistic-content-suffix{color:color-mix(in srgb,var(--lg-muted) var(--vpp-auto-muted-base, 100%),#ffffff)!important}.insight-wrap{margin-bottom:18px}.insight-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px;padding:14px 16px;border:1px solid var(--vpp-light-page-border, var(--g-200));border-radius:12px;background:var( --vpp-light-insight-hero-bg, linear-gradient( 90deg, rgba(220, 252, 231, .72) 0%, rgba(240, 253, 244, .7) 45%, rgba(255, 255, 255, .9) 100% ) )}.insight-title{color:var(--g-900);font-size:18px;font-weight:700;line-height:1.2}.insight-subtitle{margin-top:4px;color:var(--vpp-light-insight-subtitle, #497058);font-size:12px}.insight-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.insight-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.insight-span-2{grid-column:span 2}.insight-span-3{grid-column:span 3}.insight-span-4{grid-column:1 / -1}.insight-surface{border:1px solid var(--vpp-light-page-border, var(--g-200));border-radius:12px;background:linear-gradient(rgba(12,25,41,var(--vpp-light-card-overlay-alpha, 0)),rgba(12,25,41,var(--vpp-light-card-overlay-alpha, 0))),var(--vpp-light-card-bg, #ffffff)!important}.insight-chart-card{grid-column:span 2}.insight-chart-title{color:var(--g-800);font-size:12px;margin-bottom:10px;display:flex;align-items:center;gap:6px}.insight-mini-bars{height:58px;display:flex;align-items:end;gap:4px}.insight-mini-bar{flex:1;border-radius:4px 4px 0 0;background:linear-gradient(180deg,var(--g-400),var(--g-600));box-shadow:0 0 0 1px #1665340f inset}.insight-chip-row{margin-bottom:10px}.contract-modal-tech.ant-modal-wrap .ant-modal{border-radius:16px;overflow:hidden;box-shadow:0 24px 48px #16653426,0 0 0 1px #22c55e14}.contract-modal-tech .ant-modal-content{background:linear-gradient(175deg,#fffffffa,#f0fdf466);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(34,197,94,.12)}.contract-modal-tech .ant-modal-header{padding:20px 24px 16px;background:linear-gradient(135deg,rgba(34,197,94,.06) 0%,transparent 60%);border-bottom:1px solid rgba(34,197,94,.15)}.contract-modal-tech .ant-modal-title{font-size:18px;font-weight:700;color:var(--g-800);letter-spacing:.5px;display:flex;align-items:center;gap:10px}.contract-modal-tech .ant-modal-title .contract-modal-icon{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,var(--g-400),var(--g-600));display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 12px #22c55e59}.contract-modal-tech .ant-modal-close{color:var(--g-600);top:18px}.contract-modal-tech .ant-modal-close:hover{color:var(--g-800)}.contract-modal-tech .ant-modal-body{padding:20px 24px 24px}.contract-modal-tech .contract-section{margin-bottom:20px}.contract-modal-tech .contract-section:last-child{margin-bottom:0}.contract-modal-tech .contract-section-title{font-size:12px;font-weight:600;color:var(--g-600);text-transform:uppercase;letter-spacing:1px;margin-bottom:12px;padding-bottom:8px;border-left:4px solid var(--g-500);padding-left:12px;background:linear-gradient(90deg,rgba(34,197,94,.04) 0%,transparent 100%);border-radius:0 6px 6px 0}.contract-modal-tech .ant-form-item-label>label{color:var(--g-800);font-weight:500}.contract-modal-tech .ant-input,.contract-modal-tech .ant-input-number,.contract-modal-tech .ant-picker{border-color:var(--g-200);border-radius:8px}.contract-modal-tech .ant-input:focus,.contract-modal-tech .ant-input:hover,.contract-modal-tech .ant-input-number:focus .ant-input-number-input,.contract-modal-tech .ant-input-number:hover .ant-input-number-input,.contract-modal-tech .ant-picker:hover,.contract-modal-tech .ant-picker-focused{border-color:var(--g-500)!important;box-shadow:0 0 0 2px #22c55e1a!important}.contract-modal-tech .ant-modal-footer{padding:16px 24px 20px;border-top:1px solid rgba(34,197,94,.12);background:#f0fdf44d}.contract-modal-tech .ant-modal-footer .ant-btn-default{border-color:var(--g-400);color:var(--g-700)}.contract-modal-tech .ant-modal-footer .ant-btn-default:hover{border-color:var(--g-500);color:var(--g-800)}.contract-modal-tech .ant-modal-footer .ant-btn-primary{background:linear-gradient(135deg,var(--g-500),var(--g-600))!important;border:none!important;box-shadow:0 4px 14px #22c55e66}.contract-modal-tech .ant-modal-footer .ant-btn-primary:hover{background:linear-gradient(135deg,var(--g-600),var(--g-700))!important;box-shadow:0 6px 18px #22c55e73!important}@media(max-width:1320px){.insight-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.insight-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.insight-chart-card{grid-column:span 3}.insight-span-2{grid-column:span 2}.insight-span-4{grid-column:1 / -1}}@media(max-width:900px){.insight-hero{flex-direction:column}.insight-grid,.insight-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.insight-chart-card,.insight-span-2,.insight-span-3,.insight-span-4{grid-column:1 / -1}}.light-green-page .page-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:16px;padding:12px 14px;background:var(--vpp-light-card-bg, #fff);border:1px solid var(--vpp-light-page-border, var(--g-200));border-radius:12px;box-shadow:var(--vpp-light-card-shadow, 0 8px 18px rgba(22, 101, 52, .05))}.light-green-page .page-toolbar-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.light-green-page .page-toolbar-actions{display:flex;gap:8px;align-items:center}.light-green-page .toolbar-label{display:block;font-size:11px;color:var(--lg-muted);margin-bottom:4px}.light-green-page .chart-card{background:var(--vpp-light-card-bg, #fff);border:1px solid var(--vpp-light-page-border, var(--g-200));border-radius:12px;box-shadow:var(--vpp-light-card-shadow, 0 8px 18px rgba(22, 101, 52, .05));margin-bottom:12px;overflow:hidden}.light-green-page .chart-card-head{display:flex;align-items:center;justify-content:space-between;padding:10px 16px 0;min-height:36px}.light-green-page .chart-card-title{font-size:14px;font-weight:600;color:var(--lg-text);padding-left:10px;border-left:4px solid var(--lg-primary-strong)}.light-green-page .chart-card-body{padding:8px 12px 14px}.light-green-page .chart-card-legend{display:flex;gap:16px;font-size:11px;color:var(--lg-muted);margin-bottom:6px;flex-wrap:wrap}.light-green-page .legend-dot{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}.layout-light-green .ant-layout-sider .ant-menu-light .ant-menu-item-selected{background:var(--g-100)!important;color:var(--lg-primary-strong)!important}.layout-light-green .ant-layout-sider .ant-menu-light .ant-menu-item-selected .anticon{color:var(--lg-primary-strong)!important}
