:root{--bg-page: #f7f8fa;--bg-card: #ffffff;--bg-sidebar: #ffffff;--bg-hover: #f0f2f5;--bg-subtle: #f4f5f7;--text-primary: #1a1d21;--text-secondary: #5e6470;--text-tertiary: #9ca3af;--border-default: #e8eaed;--border-hover: #d0d5dd;--green-500: #16a34a;--yellow-500: #eab308;--red-500: #dc2626;--blue-500: #2563eb;--accent: #2563eb;--accent-light: #eff6ff;color:var(--text-primary);background:var(--bg-page)}*{box-sizing:border-box;transition-duration:.15s;transition-timing-function:ease-out}html,body,#root{min-height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.6;color:var(--text-primary);background:var(--bg-page);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}.dashboard-shell{min-height:100vh;background:var(--bg-page)}.dashboard-rail.ant-layout-sider{background:var(--bg-sidebar);border-right:1px solid var(--border-default)}.dashboard-rail .ant-layout-sider-children{display:flex;flex-direction:column;height:100%}.dashboard-main{background:var(--bg-page)}.main-scroll{padding:32px}.page-content{animation:fadeIn .3s ease-out}.card{background:var(--bg-card);border:1px solid var(--border-default);border-radius:12px;padding:20px 24px;transition-property:border-color,box-shadow,transform,background-color}.card:hover{border-color:var(--border-hover);box-shadow:0 1px 3px #0000000a,0 4px 12px #00000008;transform:translateY(-1px)}.brand-block{padding:24px}.brand-block h1{margin:0;font-size:16px;font-weight:600;line-height:1.4;color:var(--text-primary)}.brand-subtitle{margin-top:4px;font-size:12px;color:var(--text-tertiary)}.picker-block,.upload-shell,.history-strip{padding:0 24px 24px}.sidebar-label,.panel-kicker{display:inline-flex;align-items:center;gap:6px;margin:0 0 10px;font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--text-tertiary)}.sidebar-copy,.muted-copy,.table-subline,.summary-empty-copy,.empty-panel p,.project-sheet p,.risk-item p,.risk-item span{color:var(--text-secondary)}.sidebar-copy{margin:0;font-size:12px;line-height:1.6}.week-picker .ant-select-selector{min-height:36px!important;border-radius:8px!important;border-color:var(--border-default)!important;box-shadow:none!important;font-size:13px}.week-picker.ant-select-focused .ant-select-selector,.week-picker:hover .ant-select-selector{border-color:var(--border-hover)!important}.upload-mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mode-chip{padding:7px 12px;border:1px solid var(--border-default);border-radius:999px;background:var(--bg-card);color:var(--text-secondary);cursor:pointer}.mode-chip:hover{border-color:var(--border-hover);color:var(--text-primary)}.mode-chip.is-active{border-color:var(--accent);background:var(--accent-light);color:var(--accent)}.upload-dragger.ant-upload-wrapper .ant-upload-drag{border:1px dashed var(--border-default);border-radius:8px;min-height:80px;padding:12px 14px;background:transparent}.upload-dragger.ant-upload-wrapper .ant-upload-drag:hover{border-color:var(--accent);background:var(--accent-light)}.upload-dragger .ant-upload-drag-container{display:grid;gap:4px;justify-items:center}.upload-dragger .ant-upload-drag-icon{margin:0;color:var(--accent);font-size:24px}.upload-title{margin:0;font-size:13px;color:var(--text-secondary)}.upload-copy{margin:0;font-size:12px;color:var(--text-tertiary)}.paste-panel{display:grid;gap:12px}.paste-panel .ant-input{min-height:104px;border-radius:8px;border-color:var(--border-default);box-shadow:none;resize:vertical}.paste-panel .ant-input:hover,.paste-panel .ant-input:focus{border-color:var(--border-hover);box-shadow:none}.paste-submit.ant-btn{height:32px;border-radius:999px;font-size:13px;font-weight:500}.history-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.history-title{margin:0;font-size:14px;font-weight:600;color:var(--text-primary)}.refresh-button.ant-btn{color:var(--text-tertiary)}.refresh-button.ant-btn:hover{color:var(--text-primary)!important;background:var(--bg-hover)!important}.history-list{display:grid;gap:4px}.history-item{position:relative;width:100%;padding:10px 12px 10px 16px;border:0;border-radius:8px;background:transparent;color:inherit;text-align:left;cursor:pointer}.history-item:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:999px;background:transparent}.history-item:hover{background:var(--bg-hover)}.history-item.is-active{background:var(--accent-light)}.history-item.is-active:before{background:var(--accent)}.history-date{display:block;font-size:14px;font-weight:500;color:var(--text-primary)}.history-meta{display:block;margin-top:2px;font-size:12px;color:var(--text-tertiary)}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.page-header h2,.table-title,.snapshot-title,.risk-column h2,.detail-title{margin:0;font-size:24px;font-weight:600;line-height:1.2;color:var(--text-primary)}.page-header p,.page-header-meta{margin:8px 0 0;color:var(--text-secondary)}.page-header-meta{display:grid;gap:6px;justify-items:end;font-size:13px;text-align:right}.metric-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;margin-bottom:24px}.metric-cell{padding:16px 18px}.metric-label{display:block;margin-bottom:8px;font-size:12px;font-weight:400;color:var(--text-tertiary)}.metric-value{display:block;font-size:28px;font-weight:600;line-height:1.1;color:var(--text-primary)}.metric-value.tone-green{color:var(--green-500)}.metric-value.tone-yellow{color:var(--yellow-500)}.metric-value.tone-red{color:var(--red-500)}.metric-clickable{cursor:pointer}.metric-hint{display:block;margin-top:8px;font-size:11px;color:var(--text-tertiary)}.insight-panel{display:grid;grid-template-columns:minmax(0,3fr) minmax(280px,2fr);gap:28px;padding:24px 28px;margin-bottom:24px}.summary-panel{display:grid;gap:20px}.summary-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.summary-topline{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.summary-label{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--accent)}.summary-review-button.ant-btn{height:30px;border-radius:999px;padding-inline:12px;font-size:12px}.summary-executive{display:grid;gap:12px}.summary-executive p{margin:0;font-size:14px;line-height:1.8;color:var(--text-primary)}.summary-block{display:grid;gap:10px}.summary-block-title{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:13px;font-weight:500}.summary-block-title.risk{color:var(--red-500)}.summary-block-title.action{color:var(--green-500)}.summary-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.summary-list-item{display:grid;grid-template-columns:6px minmax(0,1fr);gap:10px;align-items:flex-start}.summary-bullet{width:6px;height:6px;margin-top:8px;border-radius:999px;background:currentColor}.summary-list-text{font-size:13px;line-height:1.6;color:var(--text-secondary)}.snapshot-panel{display:grid;gap:12px;align-content:start}.snapshot-list{display:grid}.snapshot-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--bg-subtle)}.snapshot-row:last-child{border-bottom:0;padding-bottom:0}.snapshot-label{font-size:13px;color:var(--text-tertiary)}.snapshot-value{font-size:14px;font-weight:500;color:var(--text-primary);text-align:right}.watchlist-box{display:grid;gap:10px;margin-top:8px;padding-top:8px;border-top:1px solid var(--bg-subtle)}.watchlist-heading h3{margin:0;font-size:13px}.watchlist-heading span,.comparison-caption{font-size:12px;color:var(--text-tertiary)}.watchlist-list{display:grid;gap:8px}.watchlist-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border-default);border-radius:10px;background:var(--bg-subtle);cursor:pointer;text-align:left}.watchlist-item strong,.watchlist-item span{color:var(--text-primary)}.watchlist-item span{font-size:12px;color:var(--text-secondary)}.breakdown-panel,.change-panel,.action-panel{margin-bottom:24px}.breakdown-toolbar{align-items:flex-start}.methodology-box{max-width:380px;padding:14px 16px;border-radius:10px;background:var(--bg-subtle)}.methodology-box strong{display:block;margin-bottom:6px;color:var(--text-primary)}.methodology-box p{margin:0;font-size:12px;color:var(--text-secondary)}.methodology-link.ant-btn{padding-inline:0}.breakdown-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.breakdown-group{display:grid;gap:12px}.breakdown-header h3{margin:0;font-size:14px}.breakdown-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.breakdown-pill{display:grid;gap:4px;padding:14px 12px;border:1px solid var(--border-default);border-radius:12px;cursor:pointer;text-align:left}.breakdown-pill span{font-size:12px}.breakdown-pill strong{font-size:20px;line-height:1}.change-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.change-card{display:grid;gap:8px;padding:16px;border:1px solid var(--border-default);border-radius:12px;background:var(--bg-card);cursor:default;text-align:left}.change-card:disabled{opacity:1}.change-card.is-clickable{cursor:pointer}.change-label{font-size:12px;color:var(--text-tertiary)}.change-value{font-size:28px;line-height:1;color:var(--text-primary)}.change-card.tone-red .change-value{color:var(--red-500)}.change-card.tone-green .change-value{color:var(--green-500)}.change-card.tone-yellow .change-value,.change-card.tone-orange .change-value{color:var(--yellow-500)}.change-description,.change-footnote{margin:0;font-size:12px;color:var(--text-secondary)}.action-list{display:grid;gap:12px}.action-item{display:grid;gap:14px;padding:16px 18px;border:1px solid var(--border-default);border-radius:12px;background:var(--bg-card);cursor:pointer;text-align:left}.action-item-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.action-item-top p,.action-meta-grid label,.action-meta-grid em,.drawer-copy p,.drawer-copy span,.drawer-section p{margin:0}.action-item-top p{font-size:12px;color:var(--text-secondary)}.action-score{display:inline-flex;align-items:center;justify-content:center;min-width:48px;padding:4px 10px;border-radius:999px;background:var(--accent-light);color:var(--accent);font-size:12px;font-weight:600}.action-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.action-meta-grid span{display:grid;gap:6px}.action-meta-grid label{font-size:12px;color:var(--text-tertiary)}.action-meta-grid em{font-style:normal;color:var(--text-secondary)}.empty-inline{padding:22px 0 6px;color:var(--text-tertiary)}.dashboard-tabs.ant-tabs>.ant-tabs-nav{margin-bottom:24px}.dashboard-tabs.ant-tabs>.ant-tabs-nav:before{border-bottom-color:var(--border-default)}.dashboard-tabs .ant-tabs-tab{padding:0 0 14px!important;font-size:14px;font-weight:400;color:var(--text-tertiary)}.dashboard-tabs .ant-tabs-tab:hover{color:var(--text-primary)}.dashboard-tabs .ant-tabs-tab-active .ant-tabs-tab-btn{color:var(--accent)!important;font-weight:600}.dashboard-tabs .ant-tabs-ink-bar{background:var(--accent);height:2px!important}.tab-stack,.detail-layout{display:grid;gap:24px}.member-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.member-tile{width:100%;padding:16px;cursor:pointer;text-align:left}.member-tile.is-active{border-color:var(--accent);box-shadow:0 1px 3px #2563eb1a,0 8px 18px #2563eb14}.member-tile-top,.project-sheet-top,.project-title-row,.risk-item-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.member-name{display:block;margin:0;font-size:15px;font-weight:600;color:var(--text-primary)}.member-stats{margin:4px 0 0;font-size:12px;color:var(--text-tertiary)}.member-project-bars{display:grid;grid-template-columns:repeat(auto-fit,minmax(10px,1fr));gap:2px}.member-project-segment,.member-project-empty{display:block;height:3px;border-radius:2px}.member-project-empty{background:var(--bg-subtle)}.member-updated{font-size:11px;color:var(--text-tertiary)}.member-extra-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;color:var(--text-secondary)}.status-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.5;white-space:nowrap}.status-badge-risk{font-weight:500}.table-panel{padding:24px 28px}.table-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}.table-title{font-size:16px}.table-search{width:240px}.table-toolbar-wide{align-items:flex-start}.focus-strip{display:flex;flex:1;justify-content:flex-end}.focus-banner{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border-radius:999px;background:var(--accent-light);color:var(--accent)}.filter-strip{display:flex;margin-bottom:16px}.table-select{min-width:140px}.table-select-wide{min-width:220px}.table-search .ant-input-affix-wrapper,.table-search .ant-input-group-addon .ant-btn,.table-search .ant-input{height:32px;border-color:var(--border-default);box-shadow:none}.table-search .ant-input-affix-wrapper{border-radius:8px}.project-table.ant-table-wrapper .ant-table{background:transparent}.project-table.ant-table-wrapper .ant-table-thead>tr>th{padding:10px 14px;font-size:12px;font-weight:500;color:var(--text-tertiary);background:var(--bg-subtle);border-bottom:1px solid var(--border-default)}.project-table.ant-table-wrapper .ant-table-thead>tr>th:first-child{border-top-left-radius:8px}.project-table.ant-table-wrapper .ant-table-thead>tr>th:last-child{border-top-right-radius:8px}.project-table.ant-table-wrapper .ant-table-tbody>tr>td{padding:12px 14px;font-size:13px;line-height:1.5;border-bottom:1px solid #f0f2f5;background:transparent;vertical-align:top}.project-table.ant-table-wrapper .ant-table-tbody>tr.ant-table-row:hover>td{background:var(--bg-hover)!important}.project-table.ant-table-wrapper .ant-table-pagination.ant-pagination{margin:16px 0 0}.project-table.ant-table-wrapper .ant-pagination-item{border-color:var(--border-default)}.project-table.ant-table-wrapper .ant-pagination-item-active{border-color:var(--accent);background:var(--accent-light)}.project-table.ant-table-wrapper .ant-pagination-item-active a{color:var(--accent)}.table-customer strong{display:block;margin-bottom:4px;font-size:14px;font-weight:500;line-height:1.45;color:var(--text-primary)}.table-progress{display:block;color:var(--text-secondary)}.risk-tag-list{display:flex;flex-wrap:wrap;gap:6px}.table-amount{font-size:14px;font-weight:500;color:var(--text-primary)}.table-empty{padding:24px 0}.line-clamp-2{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.progress-cluster{display:inline-flex;align-items:center;gap:10px}.progress-track{width:80px;height:6px;overflow:hidden;border-radius:999px;background:var(--bg-subtle)}.progress-fill{display:block;height:100%;border-radius:inherit}.progress-value{font-size:12px;color:var(--text-tertiary)}.risk-layout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.risk-column{display:grid;gap:12px;align-content:start}.risk-column h2{font-size:16px}.risk-column .panel-kicker.risk-red{color:var(--red-500)}.risk-column .panel-kicker.risk-yellow{color:var(--yellow-500)}.risk-column .panel-kicker.risk-blue{color:var(--blue-500)}.risk-list{display:grid;gap:12px}.risk-item{padding-bottom:12px;border-bottom:1px solid var(--bg-subtle)}.risk-item:last-child{padding-bottom:0;border-bottom:0}.risk-item strong{color:var(--text-primary)}.risk-item p,.risk-item span{margin:0;font-size:12px}.member-risk-meta{font-size:12px;color:var(--text-tertiary)}.detail-panel{display:grid;gap:24px;padding:24px 28px}.empty-panel{place-items:center;min-height:220px}.detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.detail-title{font-size:20px}.detail-time{font-size:12px;color:var(--text-tertiary)}.detail-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail-summary-card{border-radius:10px;padding:16px;background:var(--bg-subtle)}.detail-summary-card h3{margin:0 0 12px;font-size:13px;font-weight:600;color:var(--text-primary)}.detail-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.detail-list li{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;font-size:13px;color:var(--text-secondary)}.detail-list li span:last-child{color:var(--text-tertiary);white-space:nowrap}.detail-divider{height:1px;background:var(--border-default)}.project-stack{display:grid;gap:12px}.project-sheet{border:1px solid var(--border-default);border-radius:10px;padding:16px;background:var(--bg-card)}.project-sheet strong{color:var(--text-primary)}.project-sheet p{margin:6px 0 0}.project-side-meta{display:grid;justify-items:end;gap:4px;font-size:12px;color:var(--text-tertiary);text-align:right}.project-progress{margin:12px 0;font-size:13px;line-height:1.6;color:var(--text-secondary)}.project-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin-top:14px;font-size:12px;color:var(--text-tertiary)}.project-footnote{margin-top:14px;padding-top:14px;border-top:1px solid var(--bg-subtle);font-size:12px;color:var(--text-secondary)}.project-drawer .ant-drawer-body{padding-top:8px}.drawer-stack{display:grid;gap:18px}.drawer-topline{display:flex;gap:8px}.drawer-copy{display:grid;gap:4px}.drawer-copy p{color:var(--text-primary)}.drawer-copy span{font-size:12px;color:var(--text-secondary)}.drawer-meta-grid{display:grid;gap:10px}.drawer-meta-row{display:flex;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--bg-subtle)}.drawer-meta-row span{color:var(--text-tertiary)}.drawer-meta-row strong{color:var(--text-primary);text-align:right}.drawer-section{display:grid;gap:8px}.drawer-section h4{margin:0;font-size:13px;color:var(--text-primary)}.drawer-section p{color:var(--text-secondary);line-height:1.7}.dashboard-alert{margin-bottom:16px}.loading-shell,.empty-shell{display:grid;place-items:center;min-height:60vh}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1440px){.metric-strip,.member-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width: 1200px){.dashboard-shell{flex-direction:column!important}.dashboard-rail.ant-layout-sider{width:100%!important;max-width:none!important}.insight-panel,.breakdown-layout,.risk-layout,.detail-summary-grid,.action-meta-grid{grid-template-columns:1fr}.change-grid,.member-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 960px){.main-scroll{padding:24px}.metric-strip,.member-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-header,.table-toolbar,.summary-top,.detail-header{align-items:flex-start;flex-direction:column}.page-header-meta{justify-items:start;text-align:left}.change-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.main-scroll{padding:18px}.brand-block,.picker-block,.upload-shell,.history-strip{padding-left:18px;padding-right:18px}.page-header h2{font-size:20px}.metric-strip,.member-grid,.upload-mode-switch,.project-meta-grid,.change-grid,.breakdown-grid{grid-template-columns:1fr}.insight-panel,.table-panel,.detail-panel,.risk-column,.action-panel,.change-panel,.breakdown-panel{padding:18px}.table-search{width:100%}.table-select,.table-select-wide,.methodology-box{width:100%;max-width:none}.focus-strip{width:100%;justify-content:flex-start}}
