:root{color:#1f2937;background:#eef3f8;font-family:Microsoft YaHei,PingFang SC,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{min-height:100vh}.app-shell{min-height:100vh;min-height:100dvh}.app-shell--double-nav{--app-nav-dark: #1d2b44;--app-nav-dark-active: #2b4366;--app-nav-secondary-bg: #ffffff;--app-nav-canvas: #f5f7f9;background:var(--app-nav-canvas);display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.app-shell--double-nav>.app-topbar{flex-shrink:0}.app-topbar{position:sticky;top:0;z-index:200;display:flex;align-items:center;justify-content:space-between;gap:16px;height:48px;line-height:normal;padding:0 20px;background:var(--app-nav-dark, #1d2b44);border-bottom:1px solid rgba(255,255,255,.08)}.app-topbar.ant-layout-header{height:48px;line-height:normal;padding-inline:20px}.app-topbar-left{display:flex;align-items:center;gap:12px;flex-shrink:0;min-width:auto}.app-topbar-right{display:flex;align-items:center;gap:12px;flex:1;min-width:0;justify-content:flex-end}.app-topbar-search{width:min(360px,36vw);min-width:180px}.app-topbar-search.ant-input-affix-wrapper{background:#fffffff5;border-color:transparent}.app-topbar-search.ant-input-affix-wrapper:hover,.app-topbar-search.ant-input-affix-wrapper-focused{background:#fff;border-color:#c7d5e8}.app-topbar-menu-trigger.ant-btn{color:#fff}.app-topbar-user.ant-btn{color:#ffffffeb}.app-topbar .global-search-icon{color:#0f1b2d73}.app-body-row{display:flex!important;flex-direction:row!important;flex:1 1 auto;align-items:stretch;min-height:calc(100vh - 48px);min-height:calc(100dvh - 48px)}.app-primary-nav{position:sticky;top:48px;align-self:stretch;flex-shrink:0;display:flex;flex-direction:column;align-items:stretch;width:64px;max-height:calc(100dvh - 48px);padding:10px 6px 0;background:var(--app-nav-dark, #1d2b44);border-right:1px solid rgba(255,255,255,.06);overflow:hidden;transition:width .2s ease}.app-primary-nav--expanded{width:168px}.app-primary-nav__items{flex:1;min-height:0;display:flex;flex-direction:column;gap:4px;overflow-y:auto;padding-bottom:8px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.35) transparent}.app-primary-nav .ant-tooltip{display:block;width:100%}.app-primary-nav__item{display:flex;align-items:center;justify-content:center;width:100%;min-width:48px;min-height:48px;padding:0;border:0;border-radius:10px;background:transparent;color:#ffffffc7;cursor:pointer;transition:background .15s ease,color .15s ease}.app-primary-nav--expanded .app-primary-nav__item{justify-content:flex-start;gap:10px;min-height:44px;padding:0 10px}.app-primary-nav__item:hover{background:#ffffff14;color:#fff}.app-primary-nav__item--active{background:var(--app-nav-dark-active, #2b4366);color:#fff}.app-primary-nav__item:focus-visible{outline:2px solid rgba(255,255,255,.72);outline-offset:2px}.app-primary-nav__icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:20px;flex-shrink:0}.app-primary-nav__label{min-width:0;font-size:13px;font-weight:500;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-primary-nav__toggle{display:flex;flex-shrink:0;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:100%;min-height:52px;margin-top:auto;padding:6px 4px;border:0;border-top:1px solid rgba(255,255,255,.08);border-radius:0;background:transparent;color:#ffffffa6;font-size:11px;cursor:pointer;transition:background .15s ease,color .15s ease}.app-primary-nav--expanded .app-primary-nav__toggle{flex-direction:row;justify-content:flex-start;gap:8px;min-height:44px;padding:8px 12px;font-size:13px}.app-primary-nav__toggle:hover{background:#ffffff0f;color:#fff}.app-primary-nav__toggle:focus-visible{outline:2px solid rgba(255,255,255,.72);outline-offset:-2px}.app-primary-nav__toggle-label{font-weight:500;white-space:nowrap}.app-secondary-nav{position:sticky;top:48px;align-self:stretch;flex-shrink:0;width:188px;max-height:calc(100dvh - 48px);display:flex;flex-direction:column;background:var(--app-nav-secondary-bg, #fff);border-right:1px solid #e6edf5;overflow:hidden}.app-secondary-nav__body{flex:1;min-height:0;overflow-y:auto;padding:12px 0 16px}.app-secondary-nav__section-title{padding:10px 14px 6px;font-size:12px;font-weight:600;color:#64748b;letter-spacing:.01em;line-height:1.35}.app-secondary-nav__list{list-style:none;margin:0;padding:0}.app-secondary-nav__link{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px;margin:0 8px;padding:8px 12px;border-radius:8px;color:#334155;font-size:14px;line-height:1.4;text-decoration:none;transition:background .15s ease,color .15s ease}.app-secondary-nav__link:hover{background:#f1f5fa;color:#0f1b2d}.app-secondary-nav__link--active{background:#e3f1ff;color:#0a6ad6;font-weight:600}.app-secondary-nav__badge .ant-badge-count{box-shadow:none}.app-secondary-nav__divider{height:1px;margin:8px 14px;background:#e6edf5}.app-main-column{flex:1 1 auto;min-width:0;min-height:0;background:var(--app-nav-canvas, #f5f7f9);display:flex;flex-direction:column}.app-main-column>.app-content{flex:1 1 auto;min-height:0;overflow:auto}.brand--drawer{background:#1d2b44}.app-sider{position:sticky;inset-inline-start:0;top:0;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.app-sider-menu-wrap{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.45) rgba(255,255,255,.12)}.app-sider-menu-wrap::-webkit-scrollbar{width:6px}.app-sider-menu-wrap::-webkit-scrollbar-track{background:#ffffff14}.app-sider-menu-wrap::-webkit-scrollbar-thumb{background:#ffffff73;border-radius:4px}.app-sider-menu-wrap>.ant-menu.ant-menu-inline{height:auto;overflow:visible;border-inline-end:none}.app-sider .ant-motion-collapse,.app-sider .ant-motion-collapse-active,.app-sider .ant-motion-collapse-appear,.app-sider .ant-motion-collapse-enter,.app-sider .ant-motion-collapse-leave{transition-duration:0s!important;animation-duration:0s!important;transition-delay:0s!important}.app-sider .ant-menu-submenu-inline:not(.ant-menu-submenu-open)>.ant-motion-collapse,.app-sider .ant-menu-hidden{height:0!important;min-height:0!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}.app-sider .ant-menu-submenu-title{transition:background .15s ease,color .15s ease!important}.app-sider .ant-menu-submenu-open>.ant-menu.ant-menu-sub{max-height:50vh;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.35) transparent}.app-sider .ant-menu-submenu-open>.ant-menu.ant-menu-sub::-webkit-scrollbar{width:5px}.app-sider .ant-menu-submenu-open>.ant-menu.ant-menu-sub::-webkit-scrollbar-thumb{background:#ffffff59;border-radius:4px}.brand{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;padding:20px 16px 16px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:8px;background:#001529}.brand-title.ant-typography,.brand-subtitle.ant-typography{color:#fff;margin:0}.brand-subtitle.ant-typography{opacity:.72}.system-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%}.system-brand__title{color:#fff;font-size:24px;font-weight:700;letter-spacing:.12em;line-height:1.2;text-align:center;white-space:nowrap}.system-brand__subtitle{color:#ffffffb8;font-size:12px;font-weight:400;letter-spacing:.08em;line-height:1.3;text-align:center;white-space:nowrap}.system-brand--login{width:min(520px,100%)}.system-brand__banner{display:block;width:100%;max-height:156px;height:auto;object-fit:contain}.system-brand__sidebar-logo{display:block;width:min(188px,100%);height:auto;object-fit:contain}.system-brand.system-brand--topbar{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;flex-shrink:0;width:auto;height:auto}.system-brand__topbar-logo{display:block;width:154px;height:36px;object-fit:contain;object-position:left center}.system-brand__topbar-name{color:#fff;font-size:15px;font-weight:600;letter-spacing:.02em;line-height:1.3;white-space:nowrap}.login-page{min-height:100vh;background:#c8d6e8;display:flex;align-items:stretch;justify-content:center;padding:0}.login-shell{display:flex;width:100%;min-height:100vh;box-shadow:0 0 0 1px #0f23460f}.login-brand-panel{flex:1.05;display:flex;align-items:center;justify-content:center;padding:clamp(32px,5vw,72px);background:#000f26}.login-form-panel{flex:.95;display:flex;align-items:center;justify-content:center;padding:clamp(32px,5vw,64px);background:#fff}.login-form-panel__inner{width:min(420px,100%)}.login-form-panel__title.ant-typography{margin:0 0 8px;color:#12305d}.login-form-panel__subtitle.ant-typography{margin-bottom:24px;color:#5f6f86}.login-form-panel__hint.ant-typography{margin-top:16px;margin-bottom:0;text-align:center;font-size:12px}@media(max-width:900px){.login-shell{flex-direction:column;min-height:100vh}.login-brand-panel{flex:none;min-height:min(42vh,360px);padding:28px 24px}.login-form-panel{flex:1;min-height:0;padding:28px 24px 40px}}.app-header{display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 24px;background:#ffffffeb;border-bottom:1px solid #dde5f0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.app-header-left{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.app-header-search{flex:1;max-width:min(420px,100%);min-width:0;margin-inline-start:8px}.app-header-right{display:flex;align-items:center;gap:12px;flex-shrink:0}.app-header-current.ant-typography{color:#12305d;font-weight:600;font-size:16px;flex-shrink:0}.mobile-menu-trigger{display:inline-flex;align-items:center;justify-content:center}.global-search-dropdown-root{z-index:2000}.ant-message{z-index:2600!important}.global-search-icon{color:#00000073}.global-search-panel{padding:8px 0;min-width:min(360px,calc(100vw - 48px));max-height:min(70vh,520px);overflow:auto;background:#fff;border-radius:8px;box-shadow:0 6px 24px #12325f2e;border:1px solid #e2e8f0}.global-search-loading{display:flex;justify-content:center;padding:16px}.global-search-sections{display:flex;flex-direction:column;gap:8px}.global-search-section{padding:0 12px 8px}.global-search-section-title{display:block;font-size:12px;margin-bottom:4px}.global-search-item{margin:0!important;padding:0!important;border:none!important}.global-search-hit{width:100%;text-align:start;border:none;background:transparent;padding:6px 8px;border-radius:6px;cursor:pointer;font:inherit;color:inherit}.global-search-hit:hover{background:#12508f14}.global-search-hit-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-header-tag.ant-tag{margin-inline-end:0;border-radius:999px}.app-header-user{display:flex;align-items:center;gap:8px}.app-content{padding:16px 24px 32px;background:var(--app-nav-canvas, #f5f7f9)}.session-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#eef3f8;padding:24px}.login-card.ant-card{width:min(420px,100%);border-radius:8px;border:1px solid #dbe4ef;box-shadow:0 18px 50px #1f4d8f24}.login-title.ant-typography{margin:0 0 4px;color:#12305d}.login-subtitle.ant-typography{display:block;margin-bottom:20px;color:#5f6f86}.login-alert.ant-alert{margin-bottom:16px}.page-stack{display:flex;flex-direction:column;gap:16px}.page-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end;width:100%}.page-toolbar--above-table{margin-bottom:12px}.list-table-card>.ant-card-head{min-height:40px;padding:8px 16px 0;border-bottom:none}.list-table-card>.ant-card-head .ant-card-extra{padding:0}.list-table-card>.ant-card-body{padding-top:8px}.analytics-page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:6px 0 0}.page-header{display:flex;justify-content:flex-start;align-items:flex-start;gap:16px;padding:6px 0 0}.page-header-title.ant-typography,.page-header-subtitle.ant-typography{margin:0}.page-header-title.ant-typography{color:#102a56}.page-header-subtitle.ant-typography{max-width:760px}.page-header-extra{max-width:100%}.search-form-actions{display:flex;gap:12px;align-items:center;justify-content:flex-end;min-height:100%;padding-top:30px}.full-height-card,.full-height-card .ant-card-body{height:100%}.page-stack>.ant-row{margin-bottom:4px}.org-structure-page .org-side-nav .ant-tree{background:transparent}.org-structure-page .org-side-nav .ant-tree .ant-tree-node-content-wrapper{border-radius:4px}.org-structure-page .org-side-nav .ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background:#e6f4ff}.permission-management-page .permission-group-sidebar .ant-card-head{min-height:40px;padding:0 12px}.permission-management-page .permission-group-sidebar .ant-card-head-title{padding:10px 0}.ant-table-wrapper .ant-table-tbody>tr.ant-table-row-selected>td,.ant-table-wrapper .ant-table-tbody>tr.ant-table-row-selected:hover>td{background:#eaf4ff!important}.ant-table-wrapper .ant-table-tbody>tr.row-muted>td{color:#bfbfbf;background:#fafafa}.customer-detail-page{padding-bottom:96px}.customer-detail-overview__head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.customer-detail-hero-roles-line{display:block;margin-top:10px;font-size:13px;line-height:1.6}.customer-detail-hero-roles-line__name{color:#1677ff;font-weight:600}.customer-detail-hero-roles-line__name--interactive{cursor:help;border-bottom:1px dashed rgba(22,119,255,.45)}.customer-detail-hero-roles-line__name--plain{color:#000000e0;font-weight:600}.customer-detail-hero-roles-line__empty{color:#00000073}.customer-detail-contact-popover .ant-popover-inner{padding:0;border-radius:10px;box-shadow:0 8px 24px #0f172a24}.customer-detail-contact-popover .ant-popover-inner-content{padding:0}.customer-detail-contact-tooltip{min-width:280px;max-width:360px;padding:14px 16px;user-select:text;-webkit-user-select:text}.customer-detail-contact-tooltip__row{display:flex;gap:12px;align-items:center;margin-bottom:10px;line-height:1.5}.customer-detail-contact-tooltip__row:last-child{margin-bottom:0}.customer-detail-contact-tooltip__label{flex:0 0 44px;color:#595959;font-size:13px}.customer-detail-contact-tooltip__value{flex:1;color:#141414;font-size:15px;font-weight:600;word-break:break-all}.customer-detail-contact-tooltip__value .ant-typography-copy{color:#1677ff;margin-inline-start:8px}.customer-detail-hero-roles-line__sep{margin:0 10px;color:#d9d9d9}.customer-detail-hero-finance{margin-top:14px;padding-top:12px;border-top:1px solid #f0f0f0}.customer-detail-hero-finance__month-line{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin-top:12px;padding-top:12px;border-top:1px solid #f0f0f0}.customer-detail-hero-finance__month-link{padding-inline:0;height:auto}.customer-detail-hero-finance__inline-line{display:block;font-size:13px;line-height:1.6}.customer-detail-hero-finance__inline-sep{margin:0 8px;color:#d9d9d9}.customer-detail-hero-finance__month-label{margin-right:4px;font-weight:600;color:#434343}.customer-detail-finance-rules{margin-top:12px;padding-top:12px;border-top:1px solid #f0f0f0}.customer-detail-stat__overview-inline{display:block;color:#0f172a;font-size:12px;font-weight:600;line-height:1.35;word-break:break-all}.customer-detail-stat-modal__overview-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}.customer-detail-stat-modal__summary{padding:12px 16px;border-radius:12px;background:#f7fbff;border:1px solid #e5edf5}.customer-detail-stat-modal__loading{display:flex;justify-content:center;padding:48px 0}.customer-contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.customer-contact-card{display:flex;flex-direction:column;gap:6px;padding:16px;border:1px solid #e5edf5;border-radius:14px;background:#f8fbff}.customer-contact-card__title{display:flex;align-items:center;gap:8px}.customer-contact-form__row{margin-bottom:0}.customer-contact-form__row .ant-form-item,.customer-contact-form__actions .ant-form-item{margin-bottom:12px}.customer-contact-form__actions .ant-space{min-height:32px}.customer-detail-split-row{align-items:stretch}.customer-detail-split-col{display:flex;min-height:0}.customer-detail-scroll-panel{flex:1;width:100%;max-height:min(520px,calc(100vh - 300px));display:flex;flex-direction:column;overflow:hidden}.customer-detail-scroll-panel>.ant-card-body{flex:1;min-height:0;overflow-y:auto}.customer-detail-tabs-card.customer-detail-scroll-panel>.ant-card-body{overflow:hidden}.customer-detail-panel,.customer-detail-tabs-card{height:100%}.customer-detail-tabs-card>.ant-card-body{min-height:0;display:flex;flex-direction:column}.customer-detail-tabs-card{overflow:hidden}.customer-profile-text__content{color:#000000e0;font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.customer-profile-text__content--clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.customer-profile-text__toggle{padding:0!important;height:auto!important;margin-top:4px}.customer-detail-tabs{display:flex;flex-direction:column;min-height:0;height:100%}.customer-detail-tabs .ant-tabs-content,.customer-detail-tabs .ant-tabs-content-holder{height:100%;min-height:0;overflow:auto}.customer-tab-section{display:flex;flex-direction:column;gap:10px}.customer-tab-link-title{color:#1677ff;font-weight:600}.customer-tab-link-title:hover,.customer-tab-link-title:focus{color:#4096ff}.customer-tab-section__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.customer-tab-section__head--actions-only{justify-content:flex-end}.customer-follow-timeline{display:flex;flex-direction:column;gap:14px}.customer-follow-list-page__body{align-items:stretch}.customer-follow-list-page__toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.customer-follow-list-page__table-card,.customer-follow-list-page__detail-card{height:100%;min-height:520px}.customer-follow-list-page__detail-card .ant-card-body{height:100%}.customer-follow-list-page__row--active>td{background:#e6f4ff!important}.customer-follow-detail-panel{display:flex;flex-direction:column;height:100%;min-height:520px;padding:12px 16px 0}.customer-follow-detail-panel__toolbar{margin-bottom:4px}.customer-follow-detail-panel__meta{display:block;font-size:13px}.customer-follow-detail-panel__attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.customer-follow-detail-panel__thumb{width:72px;height:72px;padding:0;border:1px solid #e5edf5;border-radius:8px;overflow:hidden;cursor:pointer;background:#fafafa}.customer-follow-detail-panel__thumb img{width:100%;height:100%;object-fit:cover}.customer-follow-detail-panel__file-tag{cursor:pointer}.customer-follow-detail-panel__footer{margin-top:auto;padding:12px 0 16px;border-top:1px solid #f0f0f0;display:flex;justify-content:space-around}.customer-follow-event{position:relative;padding-left:30px}.customer-follow-event__line{position:absolute;left:10px;top:18px;bottom:-14px;width:1px;background:#dbe7f3}.customer-follow-event:last-child .customer-follow-event__line{display:none}.customer-follow-event__dot{position:absolute;left:4px;top:6px;width:12px;height:12px;border:2px solid #1677ff;border-radius:999px;background:#fff}.customer-follow-event__body{display:flex;flex-direction:column;gap:8px}.customer-follow-event__meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.customer-follow-event__card{padding:14px 16px;border-radius:12px;background:#f7f9fc;display:flex;flex-direction:column;gap:6px}.customer-follow-event__detail-link{margin-top:6px}.customer-follow-attachment-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.customer-follow-attachment-image{width:84px;height:84px;object-fit:cover;border-radius:10px;border:1px solid #dbe7f3;background:#fff}.customer-follow-attachment-tag{max-width:180px}.customer-detail-tab-placeholder{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#64748b}.customer-detail-actionbar{position:sticky;bottom:0;z-index:10;padding:14px 18px;border:1px solid #dbe7f3;border-radius:16px;background:#fffffff0;border-top:1px solid #e2e8f0;box-shadow:0 -8px 24px #0f172a0f}.customer-follow-drawer__customer-card{border-radius:12px;background:#f8fbff}.business-summary-kpi-card,.business-summary-kpi-card .ant-card-body{height:100%}.business-summary-kpi-card .ant-card-body{padding:20px 22px}.business-summary-kpi-card{border-radius:12px;box-shadow:0 10px 30px #0f172a0d}.business-summary-kpi-card--highlight{border-color:#1677ff38;background:linear-gradient(180deg,#1677ff0f,#1677ff04)}.business-summary-chart-card .ant-card-body{min-height:388px}.project-detail-kpi-card,.project-detail-kpi-card .ant-card-body,.project-detail-main-card,.project-detail-main-card .ant-card-body,.project-detail-feed-card,.project-detail-feed-card .ant-card-body{height:100%}.project-detail-kpi-card .ant-card-body{min-height:108px;display:flex;flex-direction:column;justify-content:space-between}.project-detail-main-card .ant-card-body{min-height:560px;display:flex;flex-direction:column}.project-detail-feed-card .ant-card-body{min-height:400px;display:flex;flex-direction:column}.project-detail-scroll-panel{flex:1;min-height:0;max-height:320px;overflow-y:auto;padding-right:4px}.contract-detail-kpi-card,.contract-detail-kpi-card .ant-card-body,.contract-detail-main-card,.contract-detail-main-card .ant-card-body,.contract-detail-feed-card,.contract-detail-feed-card .ant-card-body{height:100%}.contract-detail-kpi-card .ant-card-body{min-height:108px;display:flex;flex-direction:column;justify-content:space-between}.contract-detail-main-card .ant-card-body{min-height:560px;display:flex;flex-direction:column}.contract-detail-feed-card .ant-card-body{min-height:400px;display:flex;flex-direction:column}.contract-detail-scroll-panel{flex:1;min-height:0;max-height:320px;overflow-y:auto;padding-right:4px}.sales-customer-board{gap:20px}.sales-customer-board__hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 28px;border-radius:20px;background:linear-gradient(135deg,#1e3a5f,#0d1f33);box-shadow:0 18px 40px #0d1f3329}.sales-customer-board__hero .ant-select-selector,.sales-customer-board__hero .ant-btn{min-height:40px}.executive-dashboard__metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;width:100%}.executive-dashboard__metrics .ant-card{height:100%}.sales-leaderboard__podium-card{height:100%;border-radius:12px}.sales-leaderboard__podium-1{border-color:#f6d365;background:linear-gradient(180deg,#fffbeb,#fff)}.sales-leaderboard__podium-2{border-color:#d9d9d9;background:linear-gradient(180deg,#fafafa,#fff)}.sales-leaderboard__podium-3{border-color:#e8c4a8;background:linear-gradient(180deg,#fff7f0,#fff)}.sales-customer-board__metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;width:100%}.sales-customer-board__metric{display:flex;flex-direction:column;justify-content:center;min-height:120px;background:#fff;border-radius:18px;border:1px solid #dbe3ef;padding:20px 22px;box-shadow:0 8px 24px #0f172a0f}.sales-customer-board__metric--warning{border-color:#fed7aa;background:linear-gradient(180deg,#fff7ed,#fff)}.sales-customer-board__metric-title{color:#64748b}.sales-customer-board__charts{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px}.sales-customer-board__chart-card,.sales-customer-board__table-card{border-radius:18px;box-shadow:0 8px 24px #0f172a0f}.sales-customer-board__table-card .ant-tabs-content-holder,.sales-customer-board__table-card .ant-tabs-tabpane{min-height:720px}.sales-customer-trend-modal{display:flex;flex-direction:column;gap:24px}.sales-customer-trend-modal__metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.sales-customer-trend-modal__section{display:flex;flex-direction:column;gap:12px}.sales-customer-trend-modal__loading,.sales-customer-trend-modal__empty{min-height:280px;display:flex;align-items:center;justify-content:center}.service-business-board{gap:20px}.service-business-board__hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 28px;border-radius:20px;background:linear-gradient(135deg,#1e3a5f,#0d1f33);box-shadow:0 18px 40px #0d1f3329}.service-business-board__hero .ant-select-selector,.service-business-board__hero .ant-btn{min-height:40px}.service-business-board__notice{background:#fff;border-radius:18px;border:1px solid #dbe3ef;box-shadow:0 8px 24px #0f172a0f}.service-business-board__metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.service-business-board__metrics--summary{grid-template-columns:repeat(5,minmax(0,1fr))}.service-business-board__metrics--kpi{grid-template-columns:repeat(6,minmax(0,1fr))}.service-business-board__metric{background:#fff;border-radius:18px;border:1px solid #dbe3ef;padding:18px 20px;box-shadow:0 8px 24px #0f172a0f}.service-business-board__metric-title{color:#64748b}.service-business-board__metric--blue{background:linear-gradient(180deg,#eff6ff,#fff);border-color:#dbeafe}.service-business-board__metric--green{background:linear-gradient(180deg,#ecfdf5,#fff);border-color:#bbf7d0}.service-business-board__metric--amber{background:linear-gradient(180deg,#fffbeb,#fff);border-color:#fde68a}.service-business-board__metric--rose{background:linear-gradient(180deg,#fff1f2,#fff);border-color:#fecdd3}.service-business-board__charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.service-business-board__chart-card,.service-business-board__table-card{border-radius:18px;box-shadow:0 8px 24px #0f172a0f}.logistics-delivery-board{gap:20px}.logistics-delivery-board__hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 28px;border-radius:20px;background:linear-gradient(135deg,#1e3a5f,#0f2742);box-shadow:0 18px 40px #0d1f3329}.logistics-delivery-board__metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.logistics-delivery-board__metric{background:#fff;border-radius:18px;border:1px solid #e2e8f0;padding:18px 20px;box-shadow:0 8px 24px #0f172a0f}.logistics-delivery-board__metric-title{color:#64748b}.logistics-delivery-board__metric--blue{background:linear-gradient(180deg,#eff6ff,#fff)}.logistics-delivery-board__metric--green{background:linear-gradient(180deg,#ecfdf5,#fff)}.logistics-delivery-board__metric--amber{background:linear-gradient(180deg,#fffbeb,#fff)}.logistics-delivery-board__metric--rose{background:linear-gradient(180deg,#fff1f2,#fff)}.logistics-delivery-board__charts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}.logistics-delivery-board__chart-card,.logistics-delivery-board__table-card{border-radius:18px;box-shadow:0 8px 24px #0f172a0f}.logistics-delivery-board__chart-card{display:flex;flex-direction:column;height:100%}.logistics-delivery-board__chart-card .ant-card-body{flex:1;display:flex;flex-direction:column;padding:10px 12px 12px;min-height:0}.logistics-delivery-board__chart-panel{flex:1;width:100%;min-height:260px;height:260px;display:flex;align-items:center;justify-content:center}.logistics-delivery-board__chart-panel .ant-empty{margin:0}.logistics-plan-stats-charts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.logistics-plan-stats-charts__card{border:1px solid #e2e8f0;border-radius:12px;padding:10px 10px 0;background:#f8fafc}.logistics-plan-stats-charts__title{font-size:13px;font-weight:600;color:#334155;margin-bottom:4px}.logistics-plan-stats-charts__panel{width:100%;height:220px;display:flex;align-items:center;justify-content:center}.logistics-plan-stats-charts__panel .ant-empty{margin:0}@media(max-width:992px){.logistics-plan-stats-charts{grid-template-columns:1fr}}@media(max-width:992px){.app-primary-nav,.app-secondary-nav{display:none}.app-topbar{padding:0 12px}.app-topbar-search{width:min(220px,42vw);min-width:120px}.app-sider{display:none}.app-header{padding:0 16px}.app-header-right{gap:8px}.app-content{padding:12px}.analytics-page-header{flex-direction:column}.page-toolbar,.page-toolbar .ant-space{width:100%}.page-toolbar .ant-space{justify-content:flex-end;flex-wrap:wrap}.project-detail-main-card .ant-card-body,.project-detail-feed-card .ant-card-body,.contract-detail-main-card .ant-card-body,.contract-detail-feed-card .ant-card-body{min-height:auto}.project-detail-scroll-panel,.contract-detail-scroll-panel{max-height:none}.customer-detail-hero__top{flex-direction:column}.customer-detail-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-detail-stat-modal__overview-metrics{grid-template-columns:1fr}.customer-follow-event__meta{flex-direction:column;align-items:flex-start}.sales-customer-board__hero,.sales-customer-board__charts{grid-template-columns:1fr;flex-direction:column;align-items:flex-start}.executive-dashboard__metrics,.sales-customer-board__metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.service-business-board__hero{flex-direction:column;align-items:flex-start}.service-business-board__charts{grid-template-columns:1fr}.service-business-board__metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.logistics-delivery-board__hero{flex-direction:column;align-items:flex-start}.logistics-delivery-board__metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.logistics-delivery-board__charts{grid-template-columns:1fr}}@media(max-width:576px){.app-header-current.ant-typography{font-size:15px}.app-header-right .ant-tag{display:none}.app-header-right .ant-btn{padding-inline:8px}.page-stack{gap:12px}.brand{padding:16px 12px 14px}.customer-detail-stats{grid-template-columns:1fr}.customer-detail-actionbar{padding:12px}.sales-customer-board__hero{padding:20px 16px}.executive-dashboard__metrics,.sales-customer-board__metrics,.sales-customer-board__charts{grid-template-columns:1fr}.service-business-board__hero{padding:20px 16px}.service-business-board__metrics,.service-business-board__charts{grid-template-columns:1fr}.logistics-delivery-board__hero{padding:20px 16px}.logistics-delivery-board__metrics,.logistics-delivery-board__charts{grid-template-columns:1fr}}.vendor-rebate-summary-table .ant-table-thead>tr>th{white-space:nowrap}.vendor-rebate-ledger-table .ant-table-thead>tr>th{white-space:nowrap}.rich-text-editor{border:1px solid #d9d9d9;border-radius:8px;background:#fff;overflow:hidden}.rich-text-editor__toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border-bottom:1px solid #f0f0f0;background:#fafafa}.rich-text-editor__toolbar-main{display:flex;gap:4px}.rich-text-editor__toolbar-right{display:flex;align-items:center}.rich-text-editor__btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;background:transparent;color:#595959;cursor:pointer}.rich-text-editor__btn:active{background:#e6f4ff;color:#1677ff}.rich-text-editor__body{padding:10px 12px;font-size:14px;line-height:1.65;outline:none;min-height:var(--rte-min-height, 120px)}.rich-text-editor__body:empty:before{content:attr(data-placeholder);color:#bbb;pointer-events:none}.rich-text-editor__body--disabled{background:#f5f5f5;color:#666}.rich-text-editor--mobile .rich-text-editor__btn{width:36px;height:36px}.rich-text-editor--combined-report .rich-text-editor__body h3[data-report-section-title]{margin:16px 0 8px;font-size:15px;font-weight:600;color:#262626}.rich-text-editor--combined-report .rich-text-editor__body [data-report-auto-summary-body]{margin-bottom:8px;padding:10px 12px;background:#f5f5f5;border-radius:6px;color:#595959;-webkit-user-select:text;user-select:text}.rich-text-editor--combined-report .rich-text-editor__body h3[data-report-auto-summary]{color:#8c8c8c}.report-html-block{font-size:14px;line-height:1.65;color:#333}.report-html-block p{margin:0 0 8px}.report-html-block ul,.report-html-block ol{margin:0 0 8px;padding-left:20px}.work-report-read-body h3[data-report-section-title],.work-report-read-auto h3[data-report-section-title]{margin:16px 0 8px;font-size:15px;font-weight:600;color:#262626}.work-report-read-body h3[data-report-section-title]:first-child,.work-report-read-auto h3[data-report-section-title]:first-child{margin-top:0}.work-report-read-body [data-report-auto-summary-body],.work-report-read-auto [data-report-auto-summary-body]{margin-bottom:8px;padding:10px 12px;background:#f5f5f5;border-radius:6px;color:#595959}.work-report-read-combined [data-report-auto-summary-body]{margin-bottom:0;padding:0;background:transparent;border-radius:0;color:inherit}.route-loading-fallback{display:flex;align-items:center;justify-content:center;gap:12px;min-height:240px;color:#4b5563}.route-loading-fallback__spinner{width:20px;height:20px;border:2px solid #d1d5db;border-top-color:#1f4d8f;border-radius:50%;animation:route-loading-spin .8s linear infinite}.route-chunk-error{display:grid;place-items:center;gap:12px;min-height:240px;padding:24px;text-align:center}.route-chunk-error button{border:0;border-radius:8px;padding:8px 16px;background:#1f4d8f;color:#fff;cursor:pointer}@keyframes route-loading-spin{to{transform:rotate(360deg)}}
