:root{--color-primary: #2174ff;--color-canvas: #f4f6fa;--color-surface: #ffffff;--color-ink: #23334c;--color-muted: #8290a3;--color-line: #e1e8f2;--color-teal: #20c1a1;--color-yellow: #fac343;--color-gray: #cbd5e1;--color-blue: #347bff;--color-coral: #ff9c7b;--color-cyan: #32b9ed;--color-purple: #a386ee;--color-property-home: #29a3ff;--color-property-shop: #fac644;--color-property-apartment: #58ce7b;--color-property-office: #ff757c;--color-property-parking: #16bfb5;--color-property-other: #c8a5e8;--color-stage-leads: #3e82ec;--color-stage-visits: #34abc6;--color-stage-buy: #6375d7;--color-stage-sign: #9771ca;--color-primary-soft: #eef5ff;--color-positive: #2ca484;--color-danger: #d5687b;--color-zone-low: #fff4f6;--color-zone-mid: #fffaf0;--color-zone-high: #f0faf6;--color-track: #8754ec;--color-shadow: #23334c14;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans SC", "Noto Sans CJK SC", "Source Han Sans CN", sans-serif;--font-size-caption: 12px;--font-size-body: 14px;--font-size-section: 16px;--font-size-title: 24px;--font-size-metric: 28px;--line-body: 1.5;--line-table: 1.4;--line-heading: 1.3;--radius-panel: 10px;--space-panel: 24px;--space-gap: 20px}[data-theme=dark]{--color-primary: #79aaff;--color-canvas: #111b2a;--color-surface: #1b293b;--color-ink: #e1e9f7;--color-muted: #a2b2c9;--color-line: #34445a;--color-primary-soft: #243a5c;--color-zone-low: #412c36;--color-zone-mid: #3c382b;--color-zone-high: #243d38;--color-gray: #65758d;--color-shadow: #00000033}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}body{margin:0;background:var(--color-canvas);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--font-size-body);line-height:var(--line-body);font-variant-numeric:tabular-nums}button,input,select{font:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}h1,h2,h3{line-height:var(--line-heading);font-weight:600;margin:0}h1{font-size:var(--font-size-title)}h2{font-size:var(--font-size-section)}h3{font-size:var(--font-size-body)}.app-shell{height:100dvh;display:flex;flex-direction:column;min-width:1280px;overflow:hidden}.app-header{height:68px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:var(--color-surface);border-bottom:1px solid var(--color-line)}.app-brand{display:flex;align-items:center;gap:12px;font-size:var(--font-size-section);font-weight:600}.brand-icon{width:38px;height:38px;background:var(--color-primary);border-radius:8px;display:grid;place-items:center;color:var(--color-surface)}.brand-icon svg{width:26px;height:26px}.app-header nav{display:flex;gap:28px;align-self:stretch}.app-header nav a{display:flex;align-items:center;border-bottom:3px solid transparent;color:var(--color-muted)}.app-header nav a.active{border-color:var(--color-primary);color:var(--color-primary)}.app-scroll{flex:1;overflow:auto;min-height:0}.page-content{padding:24px 28px 36px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}.page-content>section,.page-content>.page-banner{grid-column:1/-1}.filter-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:14px 28px;border-bottom:1px solid var(--color-line);background:var(--color-surface)}.filter-org{width:240px}.filter-caliber{width:150px}.filter-right{margin-left:auto;color:var(--color-muted);font-size:var(--font-size-caption)}.analysis-panel{min-width:0;border:1px solid var(--color-line);border-radius:var(--radius-panel);background:var(--color-surface);padding:var(--space-panel)}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.panel-heading p{margin:8px 0 0;color:var(--color-muted);font-size:var(--font-size-caption)}.metric-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.metric-card{padding:20px;border:1px solid var(--color-line);border-top:3px solid var(--metric-accent, var(--color-primary));border-radius:var(--radius-panel);background:var(--color-surface);min-height:204px;display:flex;flex-direction:column}.metric-card.leads{--metric-accent: var(--color-stage-leads)}.metric-card.visits{--metric-accent: var(--color-stage-visits)}.metric-card.buy{--metric-accent: var(--color-stage-buy)}.metric-card.sign{--metric-accent: var(--color-stage-sign)}.metric-label{color:var(--color-muted);font-size:var(--font-size-caption);display:flex;align-items:center;gap:4px}.metric-value{font-size:var(--font-size-metric);font-weight:600;color:var(--metric-accent);white-space:nowrap}.metric-value small{font-size:var(--font-size-caption);color:var(--color-muted);font-weight:400;margin-left:4px}.metric-footer{font-size:var(--font-size-caption);display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap;margin-top:auto;color:var(--color-muted)}.metric-footer b{color:var(--metric-accent);font-weight:500}.positive{color:var(--color-positive)}.negative{color:var(--color-danger)}.plot{height:280px;width:100%;min-width:0}.plot.tall{height:420px}.plot.small{height:240px}.channel-content{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr);gap:24px}.channel-mix{display:grid;grid-template-columns:minmax(170px,.65fr) minmax(0,1.35fr);gap:14px;align-items:center}.detail-panel{border:1px solid var(--color-line);border-top:3px solid var(--linked-color, var(--color-primary));border-radius:8px;padding:16px;min-width:0;display:flex;flex-direction:column}.detail-panel .plot{flex:1;min-height:240px}.detail-panel h3{border-left:3px solid var(--linked-color, var(--color-primary));padding-left:9px}.linked-row{margin-top:20px;padding-top:20px;border-top:1px solid var(--color-line);display:grid;grid-template-columns:170px 28px minmax(0,1fr);align-items:center}.linked-source{background:var(--color-primary-soft);padding:18px;border-radius:8px;display:flex;flex-direction:column;gap:8px}.linked-source strong{font-size:var(--font-size-title);color:var(--linked-color, var(--color-primary))}.linked-arrow{color:var(--linked-color, var(--color-primary));font-size:var(--font-size-title);text-align:center}.supply-grid{display:grid;grid-template-columns:minmax(290px,1fr) 24px minmax(300px,1fr) 24px minmax(300px,1fr);align-items:stretch}.supply-grid .detail-panel{height:340px}.supply-grid>.plot{height:340px}.supply-grid>.linked-arrow{align-self:center}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.chart-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px}.axis-field{display:flex;align-items:center;gap:8px}.axis-field>span{color:var(--color-muted);white-space:nowrap}.axis-select{width:245px}.project-select{width:250px}.advisor-layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:20px}.project-sidebar{border:1px solid var(--color-line);border-radius:8px;padding:12px;max-height:580px;overflow:auto}.project-sidebar button{display:block;width:100%;padding:12px 8px;text-align:left;border-bottom:1px solid var(--color-line);font-size:var(--font-size-caption)}.project-sidebar button:hover,.project-sidebar button.selected{background:var(--color-primary-soft);color:var(--color-primary)}.project-sidebar button.\!selected{background:var(--color-primary-soft)!important;color:var(--color-primary)!important}.playback{background:var(--color-primary-soft);border:1px solid var(--color-line);border-radius:8px;padding:12px 16px;display:flex;align-items:center;gap:18px}.playback-slider{flex:1}.helper-text{font-size:var(--font-size-caption);color:var(--color-muted)}.summary-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--color-line);border-radius:6px;background:var(--color-primary-soft);margin-bottom:16px}.summary-strip>div{padding:12px;border-right:1px solid var(--color-line)}.summary-strip strong{display:block;font-size:var(--font-size-section);color:var(--color-primary);margin-top:5px}.content-detail{width:min(100%,1200px);margin:auto}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.task-card{border:1px solid var(--color-line);border-radius:8px;padding:20px}.chart-detail{padding:12px 0}.chart-detail>div{display:flex;justify-content:space-between;border-bottom:1px solid var(--color-line);padding:9px;gap:15px}.chart-tooltip-heading{font-weight:600;margin-bottom:8px}.section-gap{margin-top:20px}.app-footer{padding:0 28px 24px;color:var(--color-muted);font-size:var(--font-size-caption)}@media(max-width:1450px){.supply-grid{overflow-x:auto}.metric-value{font-size:var(--font-size-title)}.axis-select{width:225px}.channel-mix{grid-template-columns:170px minmax(0,1fr)}.summary-strip{overflow:auto;grid-template-columns:repeat(7,minmax(140px,1fr))}}.selected-channel{background:var(--color-primary-soft);cursor:pointer}.channel-analysis .channel-content{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;margin-top:24px}.channel-analysis .conversion-funnel>.plot{height:420px}.channel-analysis .channel-structure{padding:0;overflow:hidden;--linked-color: var(--color-stage-visits)}.channel-analysis .stage-leads{--linked-color: var(--color-stage-leads)}.channel-analysis .stage-buy{--linked-color: var(--color-stage-buy)}.channel-analysis .stage-sign{--linked-color: var(--color-stage-sign)}.channel-structure>.panel-heading{padding:18px 20px;border-bottom:1px solid var(--color-line);margin-bottom:0;background:var(--color-canvas)}.channel-structure .channel-mix{padding:20px;grid-template-columns:minmax(160px,.7fr) minmax(0,1.3fr)}.channel-structure .channel-mix>.plot{height:300px}.channel-analysis .conversion-funnel{min-width:0}.channel-analysis .channel-content{grid-template-columns:minmax(0,.8fr) 32px minmax(0,1.2fr);gap:0}.funnel-structure-link{align-self:stretch;display:grid;grid-template-rows:repeat(4,1fr);padding-block:10px 82px;color:var(--color-stage-visits)}.funnel-structure-link span{grid-row:2;align-self:center;font-size:var(--font-size-metric);text-align:center}.selected-stage-leads .funnel-structure-link{color:var(--color-stage-leads)}.selected-stage-buy .funnel-structure-link{color:var(--color-stage-buy)}.selected-stage-sign .funnel-structure-link{color:var(--color-stage-sign)}.selected-stage-leads .funnel-structure-link span{grid-row:1}.selected-stage-buy .funnel-structure-link span{grid-row:3}.selected-stage-sign .funnel-structure-link span{grid-row:4}.metric-spark-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:12px}.metric-sparkline{min-width:0;text-align:right}.metric-sparkline .plot{height:90px}.metric-sparkline button{color:var(--color-muted)}.card-filter-switches{flex-shrink:0}.metric-cards .metric-card{min-height:136px;padding:16px 20px;gap:8px}.metric-sparkline .plot{height:60px}.metric-cards .metric-footer{margin-top:8px}.channel-analysis-mode{min-width:0;border:1px solid var(--color-line);border-radius:var(--radius-panel);padding:16px}.attribution-body{display:flex;flex-direction:column;gap:14px;margin-top:16px}.attribution-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.attribution-totals>div{background:var(--color-canvas);border:1px solid var(--color-line);padding:12px 8px;display:flex;flex-direction:column;gap:8px}.attribution-totals span{font-size:var(--font-size-caption);color:var(--color-muted)}.attribution-totals strong{font-size:var(--font-size-section);font-variant-numeric:tabular-nums}.metric-cards .metric-card{min-height:150px;padding-block:14px}.metric-cards .metric-card h2{margin-bottom:4px}.metric-cards .metric-sparkline .plot{height:48px}.metric-sparkline[role=button]{cursor:pointer;border-radius:var(--radius-panel)}.metric-sparkline[role=button]:hover{background:var(--color-primary-soft)}.metric-sparkline[role=button]:focus-visible{outline:2px solid var(--color-primary)}.trend-dialog-summary{background:var(--color-primary-soft);padding:20px;border-radius:var(--radius-panel);margin-bottom:24px}.trend-dialog-summary strong{color:var(--color-primary);font-size:var(--font-size-metric);font-weight:600}.marketing-conversion-comparison>.plot{height:364px}.comparison-sort-toolbar{justify-content:flex-start;gap:20px;flex-wrap:wrap}.comparison-sort-fields{display:flex;align-items:center;gap:12px}.comparison-sort-fields>span{flex-shrink:0}.comparison-sort-toolbar>:last-child{margin-left:auto}.page-content>.data-state-error{grid-column:1 / -1;min-width:0}.visible{visibility:visible}.fixed{position:fixed}.sticky{position:sticky}.mb-4{margin-bottom:1rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.flex{display:flex}.grid{display:grid}.min-h-48{min-height:12rem}.resize{resize:both}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.rounded{border-radius:.25rem}.p-8{padding:2rem}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}
