:root{--primary: #176b5b;--primary-hover: #1c8170;--primary-soft: #e8f3ef;--primary-line: #bfddd2;--canvas: #f4f6f5;--surface: #fff;--surface-muted: #f8faf9;--surface-hover: #f5f9f7;--text: #16211c;--text-secondary: #54635b;--text-tertiary: #7c8983;--border: #dfe6e2;--border-soft: #eaf0ed;--border-strong: #cbd6d0;--sidebar: #16201c;--sidebar-hover: #202c26;--sidebar-active: #27392f;--sidebar-text: #b9c7c0;--sidebar-muted: #94a79e;--danger: #b4453c;--radius-surface: 10px;--radius-control: 8px;--shadow-soft: 0 1px 2px rgba(16, 32, 25, .04);--shadow-pop: 0 8px 24px rgba(16, 32, 25, .1);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;font-family:var(--font);color:var(--text);background:var(--canvas);font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;background:var(--canvas)}button,input,textarea{font-family:inherit}a{color:inherit}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.app-layout{min-height:100vh;background:var(--canvas)}.app-sider{position:sticky!important;top:0;height:100vh;overflow:hidden;border-right:1px solid rgba(255,255,255,.04)}.sider-inner{display:flex;flex-direction:column;height:100vh}.brand{display:flex;align-items:center;gap:10px;height:60px;padding:0 18px;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.06);flex:0 0 auto}.brand:hover{color:#fff}.brand-row{display:flex;align-items:center;border-bottom:1px solid rgba(255,255,255,.06);flex:0 0 auto}.brand-row .brand{flex:1 1 auto;border-bottom:0}.drawer-close.ant-btn{color:var(--sidebar-text);margin-right:10px}.drawer-close.ant-btn:hover{color:#fff!important;background:#ffffff14!important}.brand-mark{width:28px;height:28px;flex:0 0 28px;border-radius:8px;background:linear-gradient(145deg,#2f8b74,#176b5b);color:#eaf6f1;display:grid;place-items:center;font-size:15px;font-weight:600;letter-spacing:0}.brand-text{display:flex;flex-direction:column;gap:3px;min-width:0}.brand-text strong{font-size:15px;line-height:17px;font-weight:600;letter-spacing:.02em}.brand-text em{font-style:normal;font-size:10.5px;line-height:13px;color:var(--sidebar-muted);letter-spacing:.12em}.sider-scroll{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:10px 0 16px;scrollbar-width:thin}.sider-scroll::-webkit-scrollbar{width:6px}.sider-scroll::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}.sider-menu.ant-menu{background:transparent;border-inline-end:0!important;font-size:13.5px}.sider-menu.ant-menu-inline-collapsed{width:100%}.sider-menu .ant-menu-item-group-title{padding:16px 20px 6px!important;font-size:11px;line-height:1.4;letter-spacing:.1em;color:var(--sidebar-muted)!important;text-transform:none}.sider-menu .ant-menu-item{position:relative;margin-inline:8px;width:calc(100% - 16px);color:var(--sidebar-text)}.sider-menu .ant-menu-item .anticon{font-size:15px}.sider-menu .ant-menu-item-selected{background:var(--sidebar-active)!important;color:#fff!important;font-weight:550}.sider-menu .ant-menu-item-selected:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:#57b79a}.sider-menu .ant-menu-item:hover{color:#fff}.sider-menu .ant-menu-item-divider{margin:8px 18px!important;border-color:#ffffff14!important}.sider-menu.ant-menu-inline-collapsed .ant-menu-item{padding-inline:0!important;text-align:center}.sider-footer{flex:0 0 auto;padding:12px 18px 16px;border-top:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--sidebar-muted)}.version-line{display:flex;align-items:center;gap:6px;color:var(--sidebar-text)}.version-note{padding-left:17px}.version-dot{display:grid;place-items:center;width:32px;height:32px;margin:0 auto;border-radius:8px;background:#ffffff0f;color:var(--sidebar-text)}.workspace{min-width:0;background:var(--canvas)}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;height:56px;padding:0 20px 0 12px;line-height:normal;background:#fffffff5;border-bottom:1px solid var(--border);-webkit-backdrop-filter:saturate(1.2) blur(6px);backdrop-filter:saturate(1.2) blur(6px)}.topbar-left,.topbar-right{display:flex;align-items:center;gap:10px;min-width:0}.icon-button.ant-btn{width:34px;height:34px;color:var(--text-secondary)}.icon-button.ant-btn:hover{background:var(--surface-muted)!important;color:var(--text)!important}.topbar-divider{width:1px;height:18px;background:var(--border)}.topbar-title{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap}.topbar-env{font-size:11px;line-height:18px;padding:0 6px;border-radius:4px;color:var(--primary);background:var(--primary-soft);border:1px solid var(--primary-line);white-space:nowrap}.topbar-env.is-experience{color:#8a5a12;background:#f8efd9;border-color:#e4c988}.experience-banner.ant-alert{border:0;border-radius:0;border-bottom:1px solid #e4c988}.topbar-project{display:flex;align-items:center;gap:2px;padding-left:4px;border-radius:var(--radius-control);transition:background .15s ease}.topbar-project:hover{background:var(--surface-muted)}.topbar-project-icon{color:var(--text-tertiary);font-size:14px}.project-switcher{min-width:168px}.project-switcher .ant-select-selection-item{font-weight:550}.user-trigger{display:flex;align-items:center;gap:8px;padding:4px 8px 4px 4px;border:0;background:transparent;border-radius:999px;cursor:pointer;color:var(--text)}.user-trigger:hover{background:var(--surface-muted)}.user-avatar.ant-avatar{background:var(--primary-soft);color:var(--primary);font-weight:600;font-size:12px}.user-name{font-size:13px;color:var(--text-secondary);white-space:nowrap}.user-card{display:flex;flex-direction:column;gap:2px;padding:4px 2px}.user-card strong{font-size:13px;color:var(--text)}.user-card span{font-size:11px;color:var(--text-tertiary)}.mobile-nav-drawer .ant-drawer-content{background:var(--sidebar)}.mobile-nav-drawer .ant-drawer-body{padding:0}.main-content{width:100%;max-width:1680px;margin:0 auto;padding:16px 24px 40px;min-width:0}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:4px 2px 14px}.page-header-text h1{margin:0;font-size:22px;line-height:1.35;font-weight:600;letter-spacing:0;color:var(--text)}.page-header-text p{margin:4px 0 0;font-size:12.5px;color:var(--text-tertiary)}.page-header-actions{display:flex;align-items:center;gap:8px}.overview-content{display:flex;flex-direction:column;gap:14px}.filter-bar{position:sticky;top:56px;z-index:20;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-surface);box-shadow:var(--shadow-soft);margin-bottom:14px}.filter-fields{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;min-width:0}.filter-field{display:flex;flex-direction:column;gap:5px;min-width:0}.filter-label{font-size:11.5px;font-weight:550;letter-spacing:.02em;color:var(--text-tertiary)}.project-select{width:208px}.project-select .ant-select-selector{border-radius:var(--radius-control)!important}.project-option{display:flex;align-items:center;gap:8px;min-width:0}.project-dot{width:7px;height:7px;border-radius:2px;flex:0 0 7px}.project-option-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-option-meta{margin-left:auto;font-size:11px;color:var(--text-tertiary)}.filter-aside{display:flex;align-items:center;gap:16px}.snapshot-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:11.5px;color:var(--text-tertiary);line-height:1.4;white-space:nowrap}.source-tag.ant-tag{margin:0;font-size:11px;background:var(--surface-muted);color:var(--text-secondary);border:1px solid var(--border-soft);padding-inline:7px}.snapshot-line{display:inline-flex;align-items:center;gap:5px}.snapshot-line time{font-variant-numeric:tabular-nums;color:var(--text-secondary)}.filter-actions{display:flex;align-items:center;gap:6px}.filter-actions .ant-btn{color:var(--text-secondary)}.ads-filters{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr)) auto;gap:10px;align-items:end;padding:12px;margin-bottom:14px}.ads-filters .ant-select{min-width:0}.ads-content .ant-tabs{margin:0 0 14px}.ads-content .panel>h2{font-size:14px;margin:0 0 12px}@media(max-width:1024px){.ads-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){.ads-filters{grid-template-columns:1fr}.ads-filters .ant-btn{width:100%}}.company-filter-panel{display:flex;align-items:end;gap:12px;padding:12px;margin-bottom:14px}.company-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(132px,1fr));gap:10px;flex:1;min-width:0}.company-filter-grid label{display:flex;min-width:0;flex-direction:column;gap:5px;color:var(--text-tertiary);font-size:11.5px;font-weight:550}.company-filter-grid .ant-select{min-width:0;width:100%}.company-filter-panel>.ant-btn{flex:0 0 auto}.company-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.company-chart{min-height:344px;padding:13px 14px 4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-surface);box-shadow:var(--shadow-soft)}.company-chart h3{margin:0;font-size:14px;font-weight:600;color:var(--text)}.company-chart .trend-chart{height:296px}.range-field{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.range-picker{width:268px;border-radius:var(--radius-control)}.range-picker .ant-picker-input>input{font-variant-numeric:tabular-nums;font-size:13px}.range-separator{color:var(--text-tertiary)}.range-quick .ant-segmented{background:var(--surface-muted);border:1px solid var(--border-soft);padding:2px}.range-quick .ant-segmented-item-label{font-size:12px;padding:0 8px;min-height:22px;line-height:22px}.range-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:2px 2px 0}.range-draft{font-size:12px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.range-footer-actions{display:inline-flex;gap:8px}.ant-picker-dropdown .ant-picker-presets{border-right:1px solid var(--border-soft)}.ant-picker-dropdown .ant-picker-presets ul li{font-size:13px;border-radius:6px;margin-inline:4px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-surface);box-shadow:var(--shadow-soft);overflow:hidden}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;min-height:48px}.panel-title{display:flex;align-items:baseline;gap:8px;min-width:0}.panel-title h2{margin:0;font-size:14.5px;font-weight:600;color:var(--text);white-space:nowrap}.panel-sub{font-size:11.5px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-hint{font-size:11.5px;color:var(--text-tertiary);white-space:nowrap}.ghost-link{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border:0;background:transparent;border-radius:6px;font-size:12px;color:var(--text-secondary);cursor:pointer}.ghost-link:hover{background:var(--surface-muted);color:var(--primary)}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--border-soft);border-top:1px solid var(--border-soft)}.kpi-cell{background:var(--surface);padding:14px 18px 16px;min-width:0;transition:background .15s ease}.kpi-cell:hover{background:var(--surface-hover)}.kpi-label{display:inline-block;font-size:12px;color:var(--text-tertiary);border-bottom:1px dashed transparent;cursor:help;white-space:nowrap}.kpi-label:hover{color:var(--text-secondary);border-bottom-color:var(--border-strong)}.kpi-value{display:flex;align-items:baseline;gap:4px;margin-top:6px;min-width:0}.kpi-number{font-size:26px;line-height:1.25;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpi-value.is-empty .kpi-number{color:var(--text-tertiary);font-weight:500}.kpi-unit{font-size:12px;font-weight:400;color:var(--text-tertiary)}.kpi-pending-note{margin-top:4px;font-size:10.5px;line-height:1.4;color:var(--text-tertiary)}.metric-note{margin:-4px 2px 0;font-size:11.5px;color:var(--text-tertiary)}.chart-pending{margin:2px 0 6px;font-size:11px;line-height:1.4;color:var(--text-tertiary)}.definition-list{max-width:380px;display:flex;flex-direction:column;gap:8px}.definition-row{display:grid;grid-template-columns:84px 1fr;gap:10px;font-size:12px;line-height:1.6}.definition-name{color:var(--text);font-weight:550}.definition-text{color:var(--text-secondary)}.definition-foot{margin:4px 0 0;padding-top:8px;border-top:1px solid var(--border-soft);font-size:11.5px;color:var(--text-tertiary);line-height:1.6}.chart-wrap{position:relative;padding:4px 16px 12px}.trend-chart{width:100%;height:300px}.chart-empty{padding:26px 0}.chart-empty .ant-empty{margin:0}.chart-loading{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff8c;z-index:1}.detail-table .ant-table{font-variant-numeric:tabular-nums;font-size:12.5px}.detail-table .ant-table-thead>tr>th{font-size:11.5px;font-weight:600;letter-spacing:.01em;color:var(--text-secondary);white-space:nowrap;border-bottom:1px solid var(--border)!important}.detail-table .ant-table-tbody>tr>td{white-space:nowrap;border-bottom:1px solid var(--border-soft)}.detail-table .ant-table-tbody>tr.subtotal-row>td{background:var(--surface-muted);font-weight:600;border-top:1px solid var(--border)}.detail-table .ant-table-tbody>tr.subtotal-row:hover>td{background:#f2f7f4}.subtotal-label{display:inline-flex;align-items:center;gap:6px;color:var(--text)}.subtotal-label em{font-style:normal;font-size:10.5px;font-weight:500;padding:0 5px;line-height:16px;border-radius:3px;color:var(--text-tertiary);background:#fff;border:1px solid var(--border)}.detail-table .ant-table-summary{position:sticky;bottom:0;z-index:3}.detail-table .ant-table-summary tr>td{background:var(--primary-soft)!important;font-weight:650;border-top:1px solid var(--primary-line);font-size:12.5px}.total-label{font-weight:650;color:var(--primary)}.detail-table .ant-pagination{padding:8px 14px;margin:0!important;border-top:1px solid var(--border-soft)}.detail-table .ant-pagination-total-text{font-size:12px;color:var(--text-tertiary)}.detail-table .ant-table-body{scrollbar-width:thin}.detail-table .ant-table-body::-webkit-scrollbar{height:8px;width:8px}.detail-table .ant-table-body::-webkit-scrollbar-thumb{background:#d5ddd9;border-radius:4px}.detail-table .ant-table-cell-fix-left,.detail-table .ant-table-cell-fix-right{background:var(--surface)}.detail-table .ant-table-cell-fix-left-last:after{box-shadow:inset 10px 0 8px -8px #1020191f}.footnote{margin:2px 2px 0;font-size:11.5px;line-height:1.7;color:var(--text-tertiary)}.boot-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-tertiary);font-size:12.5px}.boot-mark{width:40px;height:40px;border-radius:10px;background:linear-gradient(145deg,#2f8b74,#176b5b);color:#eaf6f1;display:grid;place-items:center;font-size:19px;font-weight:600;margin-bottom:4px}.content-skeleton{display:flex;flex-direction:column;gap:14px}.skeleton-kpi{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-surface);overflow:hidden}.skeleton-kpi-cell{padding:16px 18px;display:flex;flex-direction:column;gap:10px}.skeleton-block{padding:16px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-surface);display:flex;flex-direction:column;gap:10px}.skeleton-block .ant-skeleton-element,.skeleton-block .ant-skeleton-node{width:100%}.skeleton-chart{height:280px;border-radius:8px;background:linear-gradient(90deg,#edf2ef 25%,#f6f9f7 37%,#edf2ef 63%);background-size:400% 100%;animation:skeleton-shimmer 1.6s ease infinite}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.refetch-indicator{display:flex;align-items:center;gap:10px;margin:-4px 2px 8px;font-size:11.5px;color:var(--text-tertiary)}.refetch-indicator .ant-progress{width:72px;margin:0;line-height:0}.refetch-indicator .ant-progress-inner{background:var(--primary-soft)!important}.empty-hint{display:inline-flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-secondary)}.empty-hint small{font-size:11.5px;color:var(--text-tertiary)}.ant-empty{margin-block:40px}.pending-module{display:flex;flex-direction:column;gap:14px}.pending-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-surface);padding:20px;display:flex;flex-direction:column;gap:12px}.pending-bar{height:12px;border-radius:6px;background:var(--surface-muted);width:38%}.pending-bar.short{width:22%}.pending-blocks{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:8px}.pending-blocks>div{height:88px;border-radius:8px;background:var(--surface-muted);border:1px dashed var(--border)}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(360px,46%) 1fr;background:var(--canvas)}.login-brand-panel{position:relative;display:flex;flex-direction:column;justify-content:center;gap:18px;padding:56px clamp(32px,6vw,72px);background:radial-gradient(120% 90% at 10% 0%,rgba(87,183,154,.18),transparent 60%),var(--sidebar);color:#eef5f2;overflow:hidden}.login-brand-panel:after{content:"";position:absolute;right:-80px;bottom:-120px;width:320px;height:320px;border-radius:50%;border:1px solid rgba(255,255,255,.07)}.login-brand-mark{width:40px;height:40px;border-radius:10px;background:linear-gradient(145deg,#35a084,#176b5b);display:grid;place-items:center;font-size:20px;font-weight:600;color:#eaf6f1}.login-brand-panel h1{margin:0;font-size:27px;line-height:1.35;font-weight:600;letter-spacing:.01em}.login-brand-panel h1 span{display:block;font-size:15px;font-weight:400;letter-spacing:.18em;color:#9dc4b6;margin-top:6px}.login-brand-desc{margin:0;max-width:32ch;font-size:13.5px;line-height:1.9;color:#b9cbc3}.login-facts{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:14px;max-width:360px}.login-facts li{display:flex;gap:12px;align-items:flex-start}.login-facts .anticon{margin-top:2px;font-size:15px;color:#6fc0a6}.login-facts div{display:flex;flex-direction:column;gap:2px}.login-facts strong{font-size:13px;font-weight:550;color:#eef5f2}.login-facts span{font-size:11.5px;color:#93a89f;line-height:1.6}.login-version{position:absolute;left:clamp(32px,6vw,72px);bottom:28px;font-size:11px;letter-spacing:.08em;color:#6d857b}.login-form-panel{display:flex;align-items:center;justify-content:center;padding:40px 24px}.login-card{width:100%;max-width:372px}.login-card h2{margin:0;font-size:22px;font-weight:600}.login-sub{margin:6px 0 26px;font-size:12.5px;color:var(--text-tertiary)}.login-card .ant-form-item-label>label{font-size:12px;color:var(--text-secondary)}.login-card .ant-input-affix-wrapper{border-radius:var(--radius-control)}.input-icon{color:var(--text-tertiary)}.login-submit{margin-top:4px;height:42px;font-weight:550}.login-alert{margin-bottom:16px}.login-footnote{margin:18px 0 0;text-align:center;font-size:11.5px;color:var(--text-tertiary)}.login-mobile-brand{display:none}@media(min-width:1600px){.main-content{padding:20px 32px 48px}.trend-chart{height:340px}.kpi-cell{padding:16px 22px 18px}.kpi-number{font-size:29px}}@media(max-width:1279px){.main-content{padding:14px 18px 32px}.kpi-number{font-size:23px}.project-select{width:184px}.range-picker{width:248px}}@media(max-width:767px){.range-quick{display:none}}@media(max-width:1099px){.filter-bar{flex-wrap:wrap;align-items:flex-start}.filter-aside{width:100%;justify-content:space-between;align-items:center;padding-top:8px;border-top:1px dashed var(--border-soft)}.snapshot-meta{flex-direction:row;align-items:center;gap:10px}.skeleton-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}.company-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.login-page{grid-template-columns:1fr}.login-brand-panel{display:none}.login-mobile-brand{display:flex;align-items:center;gap:10px;width:100%;max-width:372px;margin-bottom:22px}.login-mobile-brand strong{font-size:15px}.login-form-panel{flex-direction:column;justify-content:center;background:linear-gradient(180deg,var(--primary-soft),var(--canvas) 42%)}}@media(max-width:767px){.main-content{padding:12px 12px 32px}.topbar{padding:0 10px}.topbar-env,.topbar-divider{display:none}.project-switcher{min-width:132px}.page-header{align-items:flex-start;gap:10px;padding-bottom:12px}.page-header-text h1{font-size:20px}.page-header-text p{font-size:12px}.page-header-actions .ant-btn{padding:0 10px;font-size:12.5px}.filter-bar{position:static;padding:12px;gap:12px}.filter-fields{width:100%;flex-direction:column;align-items:stretch;gap:12px}.project-select,.range-picker,.range-field{width:100%}.range-picker .ant-picker-input>input{font-size:12.5px}.filter-aside{flex-direction:row;align-items:center;justify-content:space-between;gap:10px}.filter-aside .source-tag{display:none}.snapshot-meta{flex-direction:row;align-items:center;gap:6px;white-space:normal}.filter-actions{flex:0 0 auto}.company-filter-panel{align-items:stretch;flex-direction:column}.company-filter-grid{grid-template-columns:1fr}.company-filter-panel>.ant-btn{width:100%}.company-chart-grid{grid-template-columns:1fr}.company-chart{min-height:306px;padding:12px 6px 2px}.company-chart h3{padding-left:6px}.company-chart .trend-chart{height:260px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-cell{padding:12px}.kpi-label{font-size:11.5px;white-space:normal}.kpi-number{font-size:20px;letter-spacing:0}.kpi-unit{font-size:11px}.panel-heading{padding:11px 12px;min-height:44px;align-items:flex-start;flex-wrap:wrap;gap:2px 8px}.panel-title{flex-direction:column;align-items:flex-start;gap:2px}.panel-title h2{font-size:14px}.panel-hint.scroll-hint{display:inline;font-size:11px}.chart-wrap{padding:0 6px 8px}.trend-chart{height:260px}.detail-table .ant-table{font-size:12px}.detail-table .ant-pagination{padding:8px 10px}.ant-empty{margin-block:28px}.login-form-panel{padding:24px 16px 40px}}@media(max-width:400px){.kpi-cell{padding:10px 8px}.kpi-number{font-size:18px}.panel-sub{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.nav-project{display:inline-flex;align-items:center;gap:8px;min-width:0}.nav-project .project-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}.nav-projects-loading{color:var(--sidebar-muted);font-size:12px}.topbar-title{max-width:46vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-title{display:inline-flex;align-items:center;gap:9px}.workspace-title .project-dot{width:9px;height:9px;border-radius:50%}.workspace-tabs{margin-top:2px}.workspace-tabs .ant-tabs-nav{margin-bottom:16px}.workspace-tabs .ant-tabs-tab{padding:9px 4px;margin:0 18px 0 0;font-size:14px;transition:color .15s ease}.workspace-tabs .ant-tabs-tab-btn{color:var(--text-secondary)}.workspace-tabs .ant-tabs-tab-active .ant-tabs-tab-btn{color:var(--text-primary);font-weight:600}.workspace-tabs .ant-tabs-ink-bar{height:2.5px;border-radius:2px}.pending-tab .context-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.context-chips .context-note{font-size:12px;color:var(--text-tertiary)}.zone-pending{padding:18px 0 6px}.zone-pending .ant-empty{margin:0}.project-entry-list{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.project-entry{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface);transition:border-color .15s ease,box-shadow .15s ease}.project-entry:hover{border-color:var(--primary);box-shadow:0 2px 10px #176b5b14}.project-entry .project-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.project-entry-name{flex:1 1 auto;font-size:13.5px;font-weight:500;color:var(--text-primary)}.project-entry-action{font-size:12px;color:var(--text-tertiary)}.project-entry:hover .project-entry-action{color:var(--primary)}.ai-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;padding:6px 0 10px}.ai-controls .filter-actions{display:flex;gap:8px;margin-left:auto}@media(max-width:767px){.workspace-tabs .ant-tabs-tab{margin:0 12px 0 0}.ai-controls .filter-actions{margin-left:0;width:100%}}.zone-placeholder{display:flex;align-items:flex-start;gap:12px;margin:2px 0 4px;padding:14px 16px;border:1px dashed var(--border);border-radius:10px;background:var(--surface-subtle, #fafbfa)}.zone-placeholder-mark{display:grid;place-items:center;width:26px;height:26px;border-radius:7px;background:#176b5b14;color:var(--primary);flex:0 0 auto}.zone-placeholder strong{display:block;font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:3px}.zone-placeholder p{margin:0;font-size:12.5px;line-height:1.6;color:var(--text-tertiary);max-width:62ch}.pending-module .ant-alert{background:var(--surface-muted, #f8faf9);border:1px solid var(--border);border-radius:var(--radius-surface, 10px)}.pending-module .ant-alert-message{font-weight:600}.date-range{display:flex;align-items:center;justify-content:space-between;font-weight:400}.date-arrow{color:var(--text-secondary);margin:0 8px}.v3-range-popover .ant-popover-inner{width:min(576px,calc(100vw - 24px));padding:16px}.calendar-draft{font-size:13px;color:var(--text-secondary);padding-bottom:12px;border-bottom:1px solid var(--border)}.v3-calendar-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:12px}.calendar-month-heading{display:flex;gap:8px;align-items:center;margin-bottom:12px}.calendar-month-heading .ant-select:first-of-type{width:90px}.calendar-month-heading .ant-select:last-of-type{width:72px}.calendar-day{height:28px;line-height:28px;min-width:28px;text-align:center;border-radius:4px;font-size:13px}.calendar-day.range-boundary{background:var(--primary);color:#fff}.calendar-day.range-inside{background:#e4f1ed;color:#17211c}.v3-calendar-pair .ant-picker-cell-disabled .calendar-day{color:#8a948e;background:#f5f6f5}.v3-calendar-pair .ant-picker-cell:not(.ant-picker-cell-in-view) .calendar-day{opacity:.5}.v3-calendar-pair .ant-picker-calendar-mini .ant-picker-content{height:204px}.v3-calendar-pair .ant-picker-calendar{min-width:0}.calendar-footer{margin-top:12px;border-top:1px solid var(--border);padding-bottom:0}.calendar-shortcuts{padding:12px 0}.calendar-actions{display:flex;justify-content:flex-end}@media(max-width:640px){.v3-range-popover{position:fixed!important;left:50%!important;top:auto!important;bottom:12px!important;transform:translate(-50%)!important}.v3-range-popover .ant-popover-inner{width:min(300px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto}.v3-range-popover .ant-popover-arrow{display:none}.v3-calendar-pair{grid-template-columns:1fr;gap:12px}.calendar-footer,.calendar-shortcuts{max-width:none}.date-arrow{margin:0 4px}}.date-range{width:310px;height:36px;border-radius:var(--radius-control);font-size:13px}.v3-range-popover .ant-popover-inner{border-radius:var(--radius-surface)}@media(max-width:767px){.date-range{width:100%;font-size:12px}.v3-range-popover{position:fixed!important;left:50%!important;top:auto!important;bottom:12px!important;transform:translate(-50%)!important}.v3-range-popover .ant-popover-inner{width:min(300px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto}.v3-range-popover .ant-popover-arrow{display:none}.v3-calendar-pair{grid-template-columns:1fr;gap:12px}}.filter-field-month .month-select{width:176px}.month-select .ant-select-selector{border-radius:var(--radius-control)!important;font-variant-numeric:tabular-nums}.content-sync{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:11.5px;color:var(--text-tertiary);line-height:1.4}.sync-tag.ant-tag{display:inline-flex;align-items:center;gap:6px;margin:0;padding-inline:8px;font-size:11px;background:var(--surface-muted);color:var(--text-secondary);border:1px solid var(--border-soft)}.sync-dot{width:6px;height:6px;border-radius:50%;background:var(--text-tertiary)}.sync-tag.is-ok .sync-dot{background:var(--primary)}.sync-tag.is-busy .sync-dot{background:#b4761f}.sync-tag.is-warn .sync-dot{background:var(--danger)}.content-sync-text{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.content-sync-text time{font-variant-numeric:tabular-nums;color:var(--text-secondary)}.content-sync-text em{font-style:normal;color:var(--text-tertiary)}.content-preparing{display:flex;align-items:flex-start;gap:12px;padding:22px 20px;min-height:132px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-surface);box-shadow:var(--shadow-soft)}.content-preparing .ant-spin{margin-top:2px}.content-preparing-text strong{display:block;font-size:14px;font-weight:600;color:var(--text)}.content-preparing-text p{margin:6px 0 0;font-size:12px;line-height:1.6;color:var(--text-tertiary)}.content-preparing-elapsed{font-variant-numeric:tabular-nums}.kpi-hint{margin:6px 0 0;font-size:11.5px;line-height:1.5;color:var(--text-tertiary)}.content-views>.ant-tabs-nav{margin-bottom:14px}.content-views .ant-tabs-tab{padding:8px 2px}.content-content .content-views{display:flex;flex-direction:column;gap:0}.content-content .content-views .ant-tabs-tabpane-active{display:flex;flex-direction:column;gap:14px}.content-platform{padding-bottom:4px}.content-platform-head{display:flex;align-items:center;gap:9px;margin:0;padding:12px 18px;border-bottom:1px solid var(--border-soft);background:var(--surface-muted)}.content-platform-head h2{margin:0;font-size:13.5px;font-weight:600;color:var(--text)}.content-platform-dot{width:8px;height:8px;border-radius:2px;flex:0 0 8px}.content-node{padding:12px 14px 4px}.content-node+.content-node{border-top:1px dashed var(--border-soft)}.content-node-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:0 4px 8px}.content-node-head h3{margin:0;font-size:12.5px;font-weight:600;color:var(--text-secondary)}.content-node-head span{font-size:11.5px;color:var(--text-tertiary);white-space:nowrap}.content-table .ant-table{border-radius:8px;overflow:hidden}.content-table .ant-table-cell a{color:var(--primary)}.content-table .ant-table-cell a:hover{text-decoration:underline}.content-table .ant-table-cell .content-link-blocked{color:var(--text-tertiary);cursor:not-allowed}@media(max-width:1099px){.content-sync{flex-direction:row;align-items:center;gap:10px}}@media(max-width:767px){.content-filter{flex-direction:column;align-items:stretch}.filter-field-month .month-select{width:100%}.content-sync{flex-wrap:wrap;gap:6px}.content-sync-text{white-space:normal}.content-platform-head{padding:10px 12px}.content-node{padding:10px 10px 2px}.content-preparing{padding:18px 14px}}.ai-filters{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px}.ai-filters .filter-field{display:flex;align-items:center;gap:8px}.ai-filters .filter-label{color:var(--text-secondary);font-size:13px;white-space:nowrap}.ai-filters .project-select{min-width:200px}.ai-mode-select{min-width:140px}.ai-llm-off{margin-inline-end:0}.ai-action-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.ai-running-tag{margin-inline-end:0;color:var(--primary);background:var(--primary-soft);border-color:var(--primary-line)}.ai-snapshot-banner{margin-bottom:14px}.ai-snapshot-back{display:flex;justify-content:center;padding-bottom:16px}.ai-analysis-error{margin-bottom:14px}.ai-summary-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.ai-status{font-size:15px;font-weight:600;padding:4px 14px;margin-inline-end:0}.ai-status-critical{color:#a4372e;background:#fbeae8}.ai-status-attention{color:#9a6200;background:#fdf3e0}.ai-status-partial{color:#1d5fa8;background:#e8f1fb}.ai-status-stable{color:#1d6b46;background:#e6f4ec}.ai-engine-tag{color:var(--text-secondary);background:var(--surface-muted)}.ai-summary-text{font-size:17px;line-height:1.65;color:var(--text);margin:0 0 8px}.ai-summary-meta{color:var(--text-tertiary);font-size:12.5px;margin:0}.ai-fallback-banner{margin-top:12px}.ai-section{margin-bottom:18px}.ai-section-title{font-size:14px;font-weight:600;color:var(--text);margin:0 0 10px}.ai-section-empty{color:var(--text-tertiary);font-size:13px;margin:0 0 8px}.ai-next-focus{margin:0;padding-left:22px;display:grid;gap:6px;font-size:13.5px;line-height:1.6}.ai-finding{border:1px solid var(--border-soft);border-radius:var(--radius-control);background:var(--surface);margin-bottom:10px;overflow:hidden}.ai-finding-key{border-left:3px solid #c05a4a}.ai-finding-observation{border-left:3px solid #c99b3f}.ai-finding-positive{border-left:3px solid #3f9c6e}.ai-finding .ant-collapse-header{align-items:flex-start!important;padding:12px 14px!important}.ai-finding-head{display:block;width:100%}.ai-finding-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.ai-finding-tags .ant-tag{margin-inline-end:0;font-size:11.5px}.ai-tag-priority{color:#a4372e;background:#fbeae8}.ai-finding-positive .ai-tag-priority{color:#1d6b46;background:#e6f4ec}.ai-tag-confidence{color:var(--text-secondary);background:var(--surface-muted)}.ai-tag-positive{color:#1d6b46;background:#e6f4ec}.ai-finding-title{font-size:14.5px;font-weight:600;margin:0 0 4px;color:var(--text)}.ai-finding-conclusion{font-size:13.5px;line-height:1.65;color:var(--text-secondary);margin:0}.ai-finding-detail{padding:0 14px 6px;display:grid;gap:12px}.ai-block h5{font-size:12.5px;font-weight:600;color:var(--text-tertiary);margin:0 0 4px}.ai-block-sub{margin-top:8px!important}.ai-fact{font-size:13.5px;line-height:1.65;margin:0}.ai-text-list{margin:0;padding-left:20px;display:grid;gap:4px;font-size:13.5px;line-height:1.6}.ai-block-empty,.ai-evidence-empty,.ai-evidence-missing{color:var(--text-tertiary);font-size:13px;margin:0}.ai-evidence-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.ai-evidence-item{border:1px solid var(--border-soft);border-radius:6px;background:var(--surface-muted);padding:8px 10px}.ai-evidence-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.ai-evidence-head .ant-tag{margin-inline-end:0}.ai-evidence-value{font-weight:600;color:var(--text)}.ai-evidence-baseline{color:var(--text-tertiary);font-size:12.5px}.ai-evidence-down{color:#a4372e;font-weight:600}.ai-evidence-up{color:#1d6b46;font-weight:600}.ai-evidence-meta{display:flex;flex-wrap:wrap;gap:4px 14px;color:var(--text-tertiary);font-size:12px;margin-top:4px}.ai-finding-foot{display:flex;align-items:center;gap:8px;padding:6px 14px 10px;border-top:1px dashed var(--border-soft)}.ai-quick-feedback .ant-btn{color:var(--text-tertiary);font-size:12.5px}.ai-feedback-done{color:#1d6b46;font-size:13px}.ai-detail-feedback{display:grid;gap:8px;justify-items:start}.ai-detail-comment{width:100%;max-width:520px}.ai-feedback-error{color:var(--danger);font-size:12.5px;margin:0}.ai-detail-collapse>.ant-collapse-item>.ant-collapse-header{font-weight:600;color:var(--text-secondary);padding-left:0!important}.ai-uncertainty-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.ai-uncertainty-title{font-size:13px;font-weight:600;color:var(--text-secondary);margin:0 0 6px}.ai-raw-json{max-height:280px;overflow:auto;font-size:12px;background:var(--surface-muted);border:1px solid var(--border-soft);border-radius:6px;padding:10px}.ai-readiness-notes{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px;font-size:13px;color:var(--text-secondary)}.ai-src-ready{color:#1d6b46;background:#e6f4ec}.ai-src-partial{color:#9a6200;background:#fdf3e0}.ai-src-empty{color:var(--text-secondary);background:var(--surface-muted)}.ai-src-down{color:#a4372e;background:#fbeae8}.ai-context-item{border:1px solid var(--border-soft);border-radius:6px;padding:10px 12px;margin-bottom:8px;background:var(--surface)}.ai-context-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px}.ai-ctx-long{color:#1d5fa8;background:#e8f1fb}.ai-ctx-once{color:#6d4fa8;background:#efe9fa}.ai-memory{margin-top:14px;display:grid;gap:16px}.ai-memory-create{border:1px dashed var(--border-strong);border-radius:var(--radius-control);padding:12px;display:grid;gap:10px;background:var(--surface-muted)}.ai-memory-form-row{display:flex;flex-wrap:wrap;gap:10px}.ai-memory-category{min-width:150px}.ai-memory-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.ai-memory-hint{color:var(--text-tertiary);font-size:12.5px}.ai-onetime-list{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.ai-onetime-label{font-size:12.5px;color:var(--text-secondary)}.ai-onetime-tag{margin-inline-end:0}.ai-memory-list{display:grid;gap:8px}.ai-memory-loading,.ai-memory-empty{color:var(--text-tertiary);font-size:13px;display:flex;align-items:center;gap:8px;margin:0}.ai-memory-item{border:1px solid var(--border-soft);border-radius:6px;padding:10px 12px;background:var(--surface)}.ai-memory-item.is-disabled{opacity:.55}.ai-memory-item-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ai-memory-item-head .ant-tag{margin-inline-end:0}.ai-mem-category{color:var(--text-secondary);background:var(--surface-muted)}.ai-mem-approved{color:#1d6b46;background:#e6f4ec}.ai-mem-candidate{color:#9a6200;background:#fdf3e0}.ai-mem-disabled{color:var(--text-tertiary);background:var(--surface-muted)}.ai-memory-validity{color:var(--text-tertiary);font-size:12px}.ai-memory-item-head .ant-btn{margin-left:auto}.ai-memory-content{margin:6px 0 0;font-size:13.5px;line-height:1.6;white-space:pre-wrap}.ai-run-feedback{display:grid;gap:10px;max-width:560px}.ai-run-feedback-actions{display:flex;align-items:center;gap:12px}.ai-history-table .ai-history-row-active>td{background:var(--primary-soft)!important}.ai-history-error{max-width:560px;margin:0 auto}@media(max-width:1099px){.ai-uncertainty-grid{grid-template-columns:1fr}}@media(max-width:767px){.ai-filters{flex-direction:column;align-items:stretch;gap:10px}.ai-filters .project-select,.ai-filters .ai-mode-select{width:100%;min-width:0}.ai-status{font-size:13.5px}.ai-summary-text{font-size:15px}.ai-memory-form-row>*{width:100%}.ai-memory-category{min-width:0}}.ai-page>.panel{margin-bottom:14px}.ai-page>.panel:not(:has(.panel-heading)){padding:16px 18px}.ai-page>.panel:has(.panel-heading){padding-bottom:14px}.ai-page>.panel:has(.panel-heading)>:not(.panel-heading){padding-left:18px;padding-right:18px}.ai-page .ai-filters .filter-field{align-items:flex-start}.ai-snapshot-banner.ant-alert{background:#eef4fb;border:1px solid #d5e3f2}.ai-snapshot-banner .ant-alert-message,.ai-snapshot-banner .ant-alert-icon{color:#1d5fa8}@media(max-width:767px){.ai-snapshot-banner.ant-alert{display:block}.ai-snapshot-banner .ant-alert-action{margin-inline-start:0;margin-top:8px}}
