@font-face{font-family:"Noto Sans SC";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/noto-sans-sc-chinese-simplified-400-normal.woff2") format("woff2");}
@font-face{font-family:"Noto Sans SC";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/noto-sans-sc-chinese-simplified-500-normal.woff2") format("woff2");}
:root{--ls-color-action-brand-default:#78301d;--ls-color-action-brand-hover:#a4664e;--ls-color-action-brand-subtle:#fff2e8;--ls-color-text-primary:#222;--ls-color-text-secondary:#555;--ls-color-text-tertiary:#888;--ls-color-surface-default:#fff;--ls-color-surface-subtle:#f7f7f7;--ls-color-border-default:#d9d9d9;--ls-color-border-focus:#b68066;--ls-color-status-info:#1677ff;--ls-color-status-success:#00b42a;--ls-color-status-warning:#faad14;--ls-color-status-danger:#ff4d4f;--ls-color-table-stripe:#f1f6fa;--ls-color-table-separator:#9bb0bf;--ls-color-table-heading:#e8eff4;--ls-color-chart-copy:#6698f5;--ls-color-chart-manual:#2cc4b0;--ls-color-chart-ai:#8862e8;--ls-color-chart-grid:#edf1f7;--ls-color-chart-hover:#f3f6fd;--ls-color-chart-label:#526079;color-scheme:light}
html.dark{--ls-color-action-brand-default:#c89b82;--ls-color-action-brand-hover:#dbb7a1;--ls-color-action-brand-subtle:#3b1710;--ls-color-text-primary:#fff;--ls-color-text-secondary:#bfbfbf;--ls-color-text-tertiary:#888;--ls-color-surface-default:#111;--ls-color-surface-subtle:#222;--ls-color-border-default:#444;--ls-color-border-focus:#c89b82;--ls-color-table-stripe:#1a252d;--ls-color-table-separator:#536674;--ls-color-table-heading:#263642;--ls-color-chart-copy:#79a6ff;--ls-color-chart-manual:#44d4bd;--ls-color-chart-ai:#b098ff;--ls-color-chart-grid:#29303d;--ls-color-chart-hover:#1c2536;--ls-color-chart-label:#becbe0;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;background:var(--ls-color-surface-subtle);color:var(--ls-color-text-primary);font-family:'Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;font-size:14px;line-height:1.6}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}button,a,input,select,textarea{outline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--ls-color-border-focus)}button{color:inherit}a{color:var(--ls-color-action-brand-default)}[hidden]{display:none!important}.skip{position:absolute;left:10px;top:-80px;background:var(--ls-color-surface-default);padding:10px;z-index:100}.skip:focus{top:8px}.topbar{position:sticky;top:0;z-index:30;height:64px;padding:0 32px;border-bottom:1px solid var(--ls-color-border-default);display:flex;align-items:center;justify-content:space-between;background:var(--ls-color-surface-default)}.identity,.top-actions{display:flex;align-items:center;gap:20px}.identity img{height:26px;object-fit:contain}.dark .identity img{background:#fff;padding:3px;border-radius:4px;height:32px}.identity>span:last-child{font-size:24px;font-weight:700;line-height:32px;color:var(--ls-color-text-primary)}.divider{height:22px;width:1px;background:var(--ls-color-border-default)}.top-actions{gap:12px;font-size:12px}main{max-width:1760px;margin:auto;padding:28px 32px 16px}.page-title{display:flex;justify-content:space-between;align-items:center;gap:24px}.eyebrow{font-size:10px;letter-spacing:1.9px;font-weight:500;color:var(--ls-color-action-brand-default);margin:0 0 4px}h1{font-size:28px;font-weight:500;line-height:1.4;margin:0 0 6px;letter-spacing:-.5px}h2{font-size:16px;font-weight:500;margin:0}.subtitle{font-size:13px;color:var(--ls-color-text-secondary);margin:0}.title-actions{display:flex;gap:8px}.button{min-height:32px;border:1px solid var(--ls-color-border-default);background:var(--ls-color-surface-default);border-radius:6px;padding:4px 14px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:13px}.button:hover{border-color:var(--ls-color-action-brand-default);color:var(--ls-color-action-brand-default)}.button.primary{background:var(--ls-color-action-brand-default);color:#fff;border-color:var(--ls-color-action-brand-default)}.dark .button.primary{color:#111}.button.primary:hover{background:var(--ls-color-action-brand-hover)}.compact{min-height:28px;font-size:12px;padding:3px 10px}.quiet,.text-button{background:none;border:0;color:var(--ls-color-text-secondary);padding:4px 2px;font-size:12px}.quiet:hover,.text-button:hover{color:var(--ls-color-action-brand-default)}.text-button{text-decoration:underline;text-underline-offset:3px}.freshness{display:flex;align-items:center;gap:8px;margin:16px 0 20px;font-size:12px;color:var(--ls-color-text-secondary);flex-wrap:wrap}.freshness #refreshPolicy{margin-right:auto;color:var(--ls-color-text-tertiary)}.status-dot{height:6px;width:6px;background:var(--ls-color-status-success);border-radius:50%}.status-dot.stale{background:var(--ls-color-status-warning)}.banner{border:1px solid var(--ls-color-status-warning);padding:9px 14px;border-radius:6px;margin-bottom:16px;font-size:12px;background:var(--ls-color-action-brand-subtle)}.metrics{display:grid;grid-template-columns:1.25fr repeat(4,1fr);background:var(--ls-color-surface-default);border:1px solid var(--ls-color-border-default);border-radius:8px;margin:0 0 22px;padding:22px 0}.metric{padding:0 24px;border-left:1px solid var(--ls-color-border-default);display:flex;flex-direction:column;justify-content:flex-start;min-width:0}.metric:first-child{border-left:0}.metric>span{font-size:12px;color:var(--ls-color-text-secondary)}.metric strong{font-variant-numeric:tabular-nums;font-size:30px;line-height:1.5;font-weight:500;letter-spacing:-.5px;margin:3px 0}.metric.lead strong{font-size:36px;line-height:1.25;margin:5px 0 8px}.metric small{color:var(--ls-color-text-tertiary);font-size:11px}.metric-ai strong{color:var(--ls-color-action-brand-default)}.rate-track{height:4px;background:var(--ls-color-surface-subtle);width:100%;max-width:130px;margin-top:9px}.rate-track i{display:block;height:4px;background:var(--ls-color-action-brand-default)}.tabs{display:flex;gap:28px;border-bottom:1px solid var(--ls-color-border-default)}.tab{border:0;background:none;padding:10px 0 12px;color:var(--ls-color-text-secondary);border-bottom:2px solid transparent;font-weight:500;font-size:14px}.tab.active{border-color:var(--ls-color-action-brand-default);color:var(--ls-color-action-brand-default)}.tab span{padding:0 6px;background:var(--ls-color-surface-default);font-size:11px;color:var(--ls-color-text-tertiary);border-radius:4px;margin-left:4px}.workspace{background:var(--ls-color-surface-default);border:1px solid var(--ls-color-border-default);border-top:0;border-radius:0 0 8px 8px;overflow:hidden}.filters{padding:20px;display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--ls-color-border-default)}label{font-size:12px;color:var(--ls-color-text-secondary);display:flex;flex-direction:column;gap:5px}input,select,textarea{border:1px solid var(--ls-color-border-default);color:var(--ls-color-text-primary);background:var(--ls-color-surface-default);border-radius:6px;padding:4px 10px;min-height:32px;font-size:13px}select{min-width:160px}.week-field input{width:155px}.presets{display:flex;gap:4px;align-items:center;padding-bottom:2px}.search-label{margin-left:auto;width:240px}.reset{height:32px;margin-left:4px}.table-intro{display:flex;justify-content:space-between;align-items:center;padding:18px 20px 12px;gap:12px}.table-intro p{font-size:12px;color:var(--ls-color-text-tertiary);margin:4px 0 0}.table-intro>span{color:var(--ls-color-text-secondary);font-size:12px}.table-scroll{overflow:auto;max-height:670px}.summary-scroll{max-height:700px}.workspace table{border-collapse:separate;border-spacing:0;width:100%;font-size:12px;text-align:left;font-variant-numeric:tabular-nums}#summaryTable{table-layout:fixed;min-width:1414px}.workspace th{font-weight:500;background:var(--ls-color-surface-subtle);white-space:nowrap;padding:10px 12px;border-bottom:1px solid var(--ls-color-border-default)}.workspace thead{position:sticky;top:0;z-index:3}.workspace .group-row th{padding:7px 12px;font-size:11px;letter-spacing:.25px;background:var(--ls-color-surface-subtle)}.group-row .cum-group{background:var(--ls-color-action-brand-subtle);color:var(--ls-color-action-brand-default)}.group-row .week-group{background:var(--ls-color-table-heading)}.workspace td{padding:10px 12px;border-bottom:1px solid var(--ls-color-border-default);vertical-align:middle;height:48px}.workspace tbody tr:nth-child(even) td{background:var(--ls-color-table-stripe)}.workspace tbody tr:hover td{background:var(--ls-color-action-brand-subtle)}.split,.workspace tbody tr td.split,.workspace tfoot td.split{background:var(--ls-color-table-separator)!important;padding:0!important;border-bottom:0}.num{text-align:right}.number{border:0;background:transparent;padding:0;color:var(--ls-color-text-primary);font-size:13px;min-width:22px;text-align:right;font-variant-numeric:tabular-nums}.number:hover{color:var(--ls-color-action-brand-default);text-decoration:underline;text-underline-offset:3px}.number.zero{color:var(--ls-color-text-tertiary)}.number.ai-number:not(.zero){color:var(--ls-color-action-brand-default);font-weight:500}.brand-cell{font-weight:500;position:sticky;left:0;background:var(--ls-color-surface-default);z-index:1;border-right:1px solid var(--ls-color-border-default)}.sort{border:0;background:none;padding:0;font-size:12px;font-weight:500;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.sort-mark{font-size:10px;color:var(--ls-color-text-tertiary)}.column-filter{border:0;background:none;font-size:11px;margin-left:4px;padding:1px;color:var(--ls-color-text-tertiary)}.column-filter.active{color:var(--ls-color-action-brand-default)}.note-cell{padding:8px 12px}.note-button{display:block;max-width:100%;border:0;background:none;padding:0;text-align:left;font-size:11px;line-height:1.7;color:var(--ls-color-text-secondary)}.note-button .note-content{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.note-button:hover .note-content{color:var(--ls-color-action-brand-default)}.note-empty{color:var(--ls-color-text-tertiary)}.note-button .edit-hint{color:var(--ls-color-action-brand-default);font-size:10px}.date{color:var(--ls-color-text-secondary);font-size:11px}.approx{border-bottom:1px dotted var(--ls-color-text-tertiary)}.workspace tfoot td{position:sticky;bottom:0;background:var(--ls-color-table-heading);font-weight:500;height:44px;z-index:2}.table-bottom{display:flex;justify-content:space-between;padding:12px 20px;color:var(--ls-color-text-tertiary);font-size:11px;gap:16px;align-items:center;border-top:1px solid var(--ls-color-border-default)}.filter-chips{display:flex;gap:8px;padding:0 20px;flex-wrap:wrap}.filter-chips:not(:empty){padding-bottom:12px}.chip{border:1px solid var(--ls-color-border-default);background:var(--ls-color-action-brand-subtle);border-radius:4px;padding:2px 8px;font-size:11px}.detail-filters{display:flex;gap:16px;align-items:flex-end;padding:16px 20px 0;flex-wrap:wrap}.segmented{display:flex;padding:3px;background:var(--ls-color-surface-subtle);border-radius:6px;border:1px solid var(--ls-color-border-default);align-self:flex-end}.segmented button{background:transparent;border:0;padding:3px 12px;font-size:12px;color:var(--ls-color-text-secondary);border-radius:4px}.segmented button.active{background:var(--ls-color-surface-default);color:var(--ls-color-action-brand-default)}.detail-table{min-width:1160px}.workspace .detail-table td:nth-child(5){min-width:260px;max-width:340px;overflow-wrap:anywhere}.workspace .detail-table td:nth-child(1){white-space:nowrap}.tag{font-size:11px;display:inline-block;padding:0 7px;border-radius:4px;background:var(--ls-color-table-heading);color:var(--ls-color-text-secondary);line-height:22px;white-space:nowrap}.tag.ai{background:var(--ls-color-action-brand-subtle);color:var(--ls-color-action-brand-default)}.tag.manual{background:var(--ls-color-surface-subtle)}.muted{color:var(--ls-color-text-tertiary)}.small{font-size:11px}.pager{display:flex;align-items:center;gap:12px}.workspace .empty td{padding:50px 20px;text-align:center;color:var(--ls-color-text-tertiary)}.page-footer{display:flex;justify-content:space-between;color:var(--ls-color-text-tertiary);font-size:10px;margin-top:20px;padding-bottom:8px}.legend{display:flex;gap:20px;font-size:12px;color:var(--ls-color-chart-label)}.legend span:before{content:'';display:inline-block;width:8px;height:8px;background:var(--ls-color-chart-copy);margin-right:7px;border-radius:3px}.legend .manual:before{background:var(--ls-color-chart-manual)}.legend .ai:before{background:var(--ls-color-chart-ai)}.trend-chart{height:260px;padding:18px 28px 0}.chart-bars{height:100%;display:flex;align-items:flex-end;justify-content:space-around;border-bottom:1px solid var(--ls-color-chart-grid);gap:12px;position:relative;isolation:isolate}.chart-bars:before{content:"";position:absolute;inset:8px 0 30px;background:repeating-linear-gradient(to top,var(--ls-color-chart-grid) 0 1px,transparent 1px 25%);pointer-events:none;z-index:-1}.bar-item{height:100%;flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;position:relative;border:0;background:none;padding:0 0 30px}.bar-item{border-radius:6px 6px 0 0;transition:background-color .16s ease}.bar-item:hover,.bar-item:focus-visible{background:var(--ls-color-chart-hover)}.bar-total{font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;margin-bottom:9px;color:var(--ls-color-chart-label)}.bar-stack{width:34px;max-width:80%;display:flex;flex-direction:column-reverse;min-height:1px;border-radius:5px 5px 0 0;overflow:hidden;transition:filter .16s ease}.bar-item:hover .bar-stack,.bar-item:focus-visible .bar-stack{filter:brightness(1.06)}.bar-stack i{display:block;width:100%}.bar-stack .copy{background:var(--ls-color-chart-copy)}.bar-stack .manual{background:var(--ls-color-chart-manual)}.bar-stack .ai{background:var(--ls-color-chart-ai)}.bar-label{font-size:10px;position:absolute;bottom:3px;color:var(--ls-color-text-tertiary);white-space:nowrap}.trend-foot{font-size:11px;color:var(--ls-color-text-tertiary);padding:0 28px}.trend-table{min-width:600px}.workspace .trend-table th:not(:first-child),.workspace .trend-table td:not(:first-child){text-align:right}dialog{background:var(--ls-color-surface-default);color:var(--ls-color-text-primary);border:1px solid var(--ls-color-border-default);border-radius:8px;padding:24px;width:min(560px,calc(100% - 32px));max-height:85vh;overflow:auto}dialog::backdrop{background:rgba(0,0,0,.35)}.dialog-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.stack{display:flex;flex-direction:column;gap:8px}.stack textarea{resize:vertical;line-height:1.8}.note-helper{display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--ls-color-text-tertiary);margin-top:8px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.error-text{font-size:12px;color:var(--ls-color-status-danger);min-height:16px;margin:10px 0 0}.range-inputs{display:flex;gap:16px}.range-inputs label{flex:1;min-width:0}.range-inputs input{width:100%}.info-list{margin:0;display:grid;grid-template-columns:130px 1fr;font-size:12px}.info-list dt,.info-list dd{padding:10px 0;border-bottom:1px solid var(--ls-color-border-default);margin:0;overflow-wrap:anywhere}.info-list dt{color:var(--ls-color-text-tertiary)}.scope-list{font-size:13px;padding-left:18px;line-height:2}.scope-list li{margin-bottom:8px}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--ls-color-text-primary);color:var(--ls-color-surface-default);padding:10px 20px;border-radius:6px;font-size:13px;z-index:100}.login-body{min-height:100vh;display:grid;place-items:center;padding:24px}.login-shell{width:min(420px,100%)}.login-brand{display:flex;justify-content:center;margin-bottom:32px}.login-brand img{width:170px}.login-panel{background:var(--ls-color-surface-default);border:1px solid var(--ls-color-border-default);padding:36px;border-radius:8px}.login-panel h1{font-size:24px;margin:0 0 6px}.login-panel p{font-size:12px;color:var(--ls-color-text-tertiary);margin:0 0 24px}.login-panel label{margin:16px 0}.login-panel input{min-height:40px}.login-panel .button{width:100%;min-height:40px;margin-top:12px}.login-footer{text-align:center;font-size:11px;color:var(--ls-color-text-tertiary);margin-top:24px}
@media(min-width:1600px){#summaryTable{min-width:100%}.metric{padding:0 28px}}@media(max-width:1199px){main{padding:24px}.topbar{padding:0 24px}.metrics{grid-template-columns:repeat(3,1fr);row-gap:20px}.metric:nth-child(4){border-left:0}.search-label{margin-left:0;flex:1}.table-intro{align-items:flex-start}.bar-label{font-size:9px}}@media(max-width:767px){main{padding:20px 16px 12px}.topbar{padding:0 16px;height:56px}.identity{gap:12px}.identity img{width:110px}.identity>span:last-child{display:none}.identity .divider{display:none}.top-actions{gap:12px}.top-actions #userName{display:none}.page-title{display:block}.title-actions{margin-top:18px}.title-actions .button{flex:1}h1{font-size:24px}.metrics{grid-template-columns:repeat(2,1fr);padding:16px 0;row-gap:16px}.metric{padding:0 16px}.metric:nth-child(3),.metric:nth-child(5){border-left:0}.metric:nth-child(4){border-left:1px solid var(--ls-color-border-default)}.metric strong{font-size:26px}.metric.lead strong{font-size:30px}.tabs{gap:20px}.tab{font-size:13px}.tab span{margin-left:0}.filters{padding:16px;gap:12px}.filters>label:first-child{flex:1;min-width:140px}.filters>label:first-child select{width:100%;min-width:0}.week-field input{width:142px}.search-label{flex-basis:100%;order:4}.reset{margin-left:auto}.table-intro{padding:16px}.table-intro p{font-size:11px}.table-bottom{padding:12px 16px}.table-bottom>span:last-child{display:none}.detail-filters{padding:16px 16px 0}.detail-filters label{flex:1}.detail-filters select{min-width:130px}.segmented{width:100%}.segmented button{flex:1}.trend-chart{padding:8px 12px 0;height:230px}.chart-bars{gap:2px}.bar-stack{width:20px}.bar-label{writing-mode:vertical-rl;bottom:-18px}.bar-item{padding-bottom:40px}.trend-foot{padding:22px 16px 0}.page-footer{gap:16px}.page-footer span:last-child{text-align:right;font-size:9px}.note-helper{flex-direction:column;gap:4px}.login-panel{padding:28px}.info-list{grid-template-columns:110px 1fr}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.theme-dropdown{position:relative}.theme-trigger{font-size:12px;gap:10px;padding:4px 10px;min-height:32px}.theme-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:140px;z-index:10;background:var(--ls-color-surface-default);border:1px solid var(--ls-color-border-default);border-radius:6px;padding:4px;box-shadow:0 6px 16px rgba(0,0,0,.08)}.theme-menu button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:32px;border:0;border-radius:4px;background:none;padding:5px 10px;color:var(--ls-color-text-primary);font-size:12px;text-align:left}.theme-menu button:hover,.theme-menu button:focus-visible{background:var(--ls-color-surface-subtle)}.theme-menu button[aria-checked=true]{color:var(--ls-color-action-brand-default);background:var(--ls-color-action-brand-subtle)}.theme-menu button[aria-checked=true]:after{content:"✓";margin-left:14px}.theme-trigger[aria-expanded=true]{border-color:var(--ls-color-action-brand-default)}

.page-title{margin-bottom:20px}.page-title h1{font-size:24px;line-height:32px;margin:0}.page-title .freshness{margin:6px 0 0;font-size:11px;gap:8px}.page-title .freshness #refreshPolicy{margin-right:4px}.page-title .freshness .text-button{font-size:11px;padding:0}.scope-context{font-size:12px;color:var(--ls-color-text-secondary);line-height:1.8;margin:0 0 16px}@media(max-width:767px){.page-title{margin-bottom:20px}.page-title .freshness{gap:6px}.page-title .title-actions{margin-top:12px}}

.page-title{margin-bottom:16px;min-height:36px}.title-summary{display:flex;align-items:center;flex-wrap:wrap;column-gap:20px;row-gap:4px;min-width:0}.title-summary h1{white-space:nowrap}.page-title .freshness{margin:0}.page-title .title-actions{flex-shrink:0}@media(max-width:767px){.title-summary{display:block}.page-title .freshness{margin-top:4px}.page-title .title-actions{margin-top:10px}.page-title{margin-bottom:16px}}

.workspace{overflow:visible}.filters{justify-content:flex-start}.filters .reset{margin-left:0}.filter-control{position:relative;display:flex;flex-direction:column;gap:5px}.filter-control>label{font-size:12px}.filter-trigger{min-height:32px;background:var(--ls-color-surface-default);color:var(--ls-color-text-primary);border:1px solid var(--ls-color-border-default);border-radius:6px;padding:4px 10px;font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left}.filter-trigger:hover,.filter-trigger[aria-expanded=true]{border-color:var(--ls-color-action-brand-default)}#brandLabel{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.range-trigger{width:306px;gap:10px}.range-trigger .placeholder{color:var(--ls-color-text-tertiary)}.range-arrow{color:var(--ls-color-text-tertiary)}.filter-trigger svg{flex-shrink:0;color:var(--ls-color-text-tertiary)}.filter-popover{position:fixed;z-index:20;background:var(--ls-color-surface-default);border:1px solid var(--ls-color-border-default);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);overflow:auto}.brand-popover{width:270px;padding:10px}.brand-popover>input{width:100%;margin-bottom:8px}.brand-options{max-height:250px;overflow:auto}.check-row{display:flex;flex-direction:row;align-items:center;gap:8px;min-height:32px;padding:4px 8px;cursor:pointer;border-radius:4px;font-size:13px;color:var(--ls-color-text-primary)}.check-row:hover{background:var(--ls-color-surface-subtle)}.check-row:has(input:checked){background:var(--ls-color-action-brand-subtle)}.check-row input{width:14px;height:14px;min-height:0;margin:0;padding:0;accent-color:var(--ls-color-action-brand-default)}.brand-all{border-bottom:1px solid var(--ls-color-border-default);border-radius:0;margin-bottom:4px}.brand-panel-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--ls-color-border-default);padding:8px 4px 0;margin-top:6px;font-size:11px;color:var(--ls-color-text-tertiary)}.brand-empty{text-align:center;padding:20px 8px;font-size:12px;color:var(--ls-color-text-tertiary)}.range-popover{width:720px;max-width:calc(100vw - 16px);padding:0}.range-manual{display:flex;align-items:flex-end;gap:10px;padding:12px 16px;border-bottom:1px solid var(--ls-color-border-default)}.range-manual label{flex:1;gap:4px}.range-manual label input{width:100%;min-width:0}.range-manual>span{align-self:flex-end;line-height:32px;color:var(--ls-color-text-tertiary)}.range-layout{display:grid;grid-template-columns:116px 1fr}.range-presets{padding:12px 8px;border-right:1px solid var(--ls-color-border-default)}.range-presets button{display:block;width:100%;text-align:left;border:0;border-radius:4px;background:transparent;color:var(--ls-color-text-secondary);padding:8px;font-size:12px;white-space:nowrap}.range-presets button:hover{background:var(--ls-color-action-brand-subtle);color:var(--ls-color-action-brand-default)}.calendar-pair{display:grid;grid-template-columns:1fr 1fr;min-width:0}.calendar-month{padding:8px 12px 12px;min-width:0}.calendar-month+ .calendar-month{border-left:1px solid var(--ls-color-border-default)}.calendar-heading{display:grid;grid-template-columns:28px 1fr 28px;align-items:center;text-align:center;height:36px;font-size:13px}.calendar-heading strong{font-weight:500}.calendar-heading button{border:0;background:transparent;border-radius:4px;font-size:20px;line-height:28px;color:var(--ls-color-text-tertiary)}.calendar-heading button:hover{background:var(--ls-color-surface-subtle);color:var(--ls-color-action-brand-default)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px 0;font-size:12px;text-align:center}.calendar-grid>span,.calendar-grid>button{min-width:0;height:28px;line-height:28px;padding:0}.calendar-weekday{color:var(--ls-color-text-secondary);font-size:11px}.calendar-outside{color:var(--ls-color-text-tertiary);opacity:.45}.calendar-day{background:transparent;color:var(--ls-color-text-primary);border:0;border-radius:4px;font-size:12px;position:relative}.calendar-day:hover{background:var(--ls-color-surface-subtle)}.calendar-day.in-range{border-radius:0;background:var(--ls-color-action-brand-subtle)}.calendar-day.today{outline:1px solid var(--ls-color-border-focus);outline-offset:-3px}.calendar-day.selected{background:var(--ls-color-action-brand-default);color:#fff}.dark .calendar-day.selected{color:#111}.range-footer{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--ls-color-border-default)}#rangeHint{font-size:11px;color:var(--ls-color-text-tertiary);margin-left:auto}#rangeError{padding:0 12px;margin:0}#rangeError:empty{display:none}#rangeError:not(:empty){padding-bottom:10px}.detail-search{margin-left:auto;min-width:240px}@media(max-width:767px){.filter-control{flex:1;min-width:0}.range-control{flex-basis:100%;max-width:100%;order:2}.range-trigger{width:100%}.filters .reset{margin-left:auto;order:1}.filter-popover.brand-popover{width:270px;max-width:calc(100vw - 16px)}.range-popover{width:calc(100vw - 16px)}.range-layout{display:block}.range-presets{display:flex;gap:2px;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--ls-color-border-default);padding:8px}.range-presets button{flex:1;width:auto;text-align:center;padding:6px 3px;font-size:11px}.calendar-pair{grid-template-columns:1fr}.calendar-month+ .calendar-month{border-left:0;border-top:1px solid var(--ls-color-border-default)}.range-footer{flex-wrap:wrap}#rangeHint{display:none}.detail-search{min-width:0;flex-basis:100%}.range-manual{padding:10px}}

/* Unified filter toolbar: detail controls share the same wrapping flow. */
.filters{gap:16px 12px;align-items:flex-end}
.filters .detail-filters{display:contents}
.filters .filter-control{flex:0 0 auto;min-width:0}
.filters .detail-search{margin-left:0;flex:1 1 220px;min-width:200px;max-width:320px}
.filters .reset{margin-left:0;align-self:flex-end;white-space:nowrap}
.filters .period-control .segmented{height:32px;padding:2px}
.searchable-trigger{width:160px}
.searchable-trigger>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.searchable-popover{padding:8px;max-height:320px}
.searchable-popover>input{width:100%;margin-bottom:6px}
.searchable-options{max-height:248px;overflow:auto}
.searchable-options>button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:32px;padding:5px 10px;border:0;border-radius:4px;background:transparent;text-align:left;font-size:13px;color:var(--ls-color-text-primary)}
.searchable-options>button:hover,.searchable-options>button:focus-visible{background:var(--ls-color-surface-subtle)}
.searchable-options>button[aria-selected=true]{background:var(--ls-color-action-brand-subtle);color:var(--ls-color-action-brand-default)}
.searchable-options>button[aria-selected=true]:after{content:"✓";margin-left:12px}
@media(max-width:767px){.filters .filter-control{flex:1 1 140px}.filters .range-control{flex:1 1 100%;order:0}.filters .searchable-trigger{width:100%}.filters .period-control{flex-basis:100%}.filters .detail-search{flex:1 1 100%;max-width:none;min-width:0;order:0}.filters .reset{order:0;margin-left:0}.filters .period-control .segmented{width:auto;align-self:flex-start}.filters .period-control .segmented button{flex:0 0 auto}}
/* Ant Design filter controls share the existing LS theme. */
:root{--ls-color-text-placeholder:#bfbfbf}
html.dark{--ls-color-text-placeholder:#777}
.antd-select-mount{width:160px;min-width:0}
#brandMount{width:218px}
.antd-select-mount>.ant-select{width:100%}
#rangeMount>.ant-picker{width:260px}
.filters .ant-select input,.filters .ant-picker input{min-height:0;padding:0;border:0;background:transparent;border-radius:0}

.ant-filter-clear-icon{display:inline-flex;align-items:center;justify-content:center}
@media(max-width:767px){.filters #brandMount,.filters .antd-select-mount,.filters #rangeMount>.ant-picker{width:100%}.ant-picker-dropdown .ant-picker-panel-container{max-width:calc(100vw - 16px);overflow-x:auto}}

/* Brand distribution and weekly analysis share the existing LS chart tokens. */
#summaryTable{min-width:1108px}#weeklyTable{table-layout:fixed;min-width:992px}
.brand-name{font-size:11px;overflow-wrap:anywhere;color:var(--ls-color-text-secondary)}
.brand-visual{padding:20px;border-bottom:1px solid var(--ls-color-border-default)}
.visual-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}
.visual-heading p{font-size:12px;color:var(--ls-color-text-tertiary);margin:4px 0 0}
.brand-visual-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:32px}
.ranking-panel{min-width:0}.brand-ranking{display:flex;flex-direction:column;gap:5px;max-height:440px;overflow-y:auto;padding-right:6px}
.brand-rank-row{display:grid;grid-template-columns:170px minmax(40px,1fr) 38px;gap:14px;align-items:center;min-height:36px;padding:3px 0}
.brand-rank-name{min-width:0;display:flex;flex-direction:column;line-height:1.5}.brand-rank-name strong{font-size:12px;font-weight:500}.brand-rank-name span{font-size:10px;color:var(--ls-color-text-tertiary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.brand-rank-track{height:18px;background:var(--ls-color-chart-grid);border-radius:4px;overflow:hidden}.brand-rank-stack{height:100%;display:flex;border-radius:4px;overflow:hidden}
.rank-segment{height:100%;min-width:0;border:0;padding:0;position:relative}.rank-segment.copy{background:var(--ls-color-chart-copy)}.rank-segment.manual{background:var(--ls-color-chart-manual)}.rank-segment.ai{background:var(--ls-color-chart-ai)}
.rank-segment:hover,.rank-segment:focus-visible{filter:brightness(1.1);outline:2px solid var(--ls-color-border-focus);outline-offset:-2px}
.rank-total{border:0;background:none;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;text-align:right;padding:2px 0;color:var(--ls-color-chart-label)}.rank-total:hover{color:var(--ls-color-action-brand-default);text-decoration:underline}
.chart-expand{font-size:11px;margin-top:10px}.chart-empty{font-size:12px;color:var(--ls-color-text-tertiary);padding:40px 12px;text-align:center}
.composition-panel{border-left:1px solid var(--ls-color-border-default);padding-left:28px;display:flex;flex-direction:column;align-items:center;justify-content:center}.composition-panel h3{font-size:13px;font-weight:500;margin:0 0 18px}
.composition-ring{width:166px;height:166px;border-radius:50%;padding:21px;display:flex}.composition-ring>div{width:100%;height:100%;border-radius:50%;background:var(--ls-color-surface-default);display:flex;flex-direction:column;align-items:center;justify-content:center}
.composition-ring strong{font-size:30px;line-height:1.3;font-weight:500;font-variant-numeric:tabular-nums}.composition-ring span{font-size:11px;color:var(--ls-color-text-tertiary);margin-top:4px}
.composition-legend{width:100%;max-width:222px;margin-top:20px;display:flex;flex-direction:column;gap:10px;font-size:12px}.composition-legend>div{display:grid;grid-template-columns:1fr 40px 50px;gap:10px;align-items:center}.composition-legend strong{font-weight:500;text-align:right;font-variant-numeric:tabular-nums}.composition-legend>div>span:last-child{text-align:right;color:var(--ls-color-text-tertiary);font-variant-numeric:tabular-nums}
.composition-label:before{content:'';display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:8px;background:var(--ls-color-chart-copy)}.composition-label.manual:before{background:var(--ls-color-chart-manual)}.composition-label.ai:before{background:var(--ls-color-chart-ai)}
.weekly-workspace{border-top:1px solid var(--ls-color-border-default);margin-top:20px}.weekly-top{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px;gap:16px}.weekly-top p{font-size:11px;color:var(--ls-color-text-tertiary);margin:4px 0 0}.weekly-actions{display:flex;align-items:flex-end;gap:12px}.weekly-actions .antd-select-mount{width:304px}.weekly-actions .filter-control{flex:none}
.weekly-scroll{max-height:560px}.bar-item.selected-week{background:var(--ls-color-chart-hover);box-shadow:inset 0 -2px var(--ls-color-action-brand-default)}.bar-item.selected-week .bar-label,.bar-item.selected-week .bar-total{color:var(--ls-color-action-brand-default);font-weight:500}
.week-totals{border-top:1px solid var(--ls-color-border-default)}.week-totals>summary{cursor:pointer;font-size:12px;padding:14px 20px;color:var(--ls-color-text-secondary)}.week-totals[open]>summary{border-bottom:1px solid var(--ls-color-border-default)}
@media(min-width:1600px){#summaryTable{min-width:100%}}
@media(max-width:1199px){.brand-visual-grid{grid-template-columns:minmax(0,1fr) 220px;gap:20px}.brand-rank-row{grid-template-columns:132px minmax(40px,1fr) 30px;gap:10px}.composition-panel{padding-left:20px}.weekly-top{align-items:flex-start;flex-wrap:wrap}}
@media(max-width:767px){.brand-visual{padding:16px}.visual-heading{align-items:flex-start;flex-wrap:wrap;gap:12px;margin-bottom:16px}.visual-heading .legend{gap:16px}.brand-visual-grid{grid-template-columns:1fr;gap:20px}.brand-rank-row{grid-template-columns:108px minmax(40px,1fr) 28px;gap:8px}.composition-panel{border-left:0;border-top:1px solid var(--ls-color-border-default);padding:20px 0 0;display:grid;grid-template-columns:130px minmax(0,1fr);gap:16px;align-items:center}.composition-panel h3{grid-column:1/-1;margin:0}.composition-ring{width:130px;height:130px;padding:17px}.composition-ring strong{font-size:26px}.composition-legend{margin:0;gap:14px}.composition-legend>div{grid-template-columns:1fr 24px 40px;gap:6px;font-size:11px}.composition-label:before{margin-right:6px}.weekly-top{padding:16px}.weekly-actions{width:100%;flex-wrap:wrap}.weekly-actions .filter-control{flex:1;min-width:190px}.weekly-actions .antd-select-mount{width:100%}.weekly-actions>.button{min-height:32px}.week-totals>summary{padding:14px 16px}}

.brand-checkbox-option{display:flex;align-items:center;gap:8px}.brand-checkbox-option>.ant-checkbox-wrapper{pointer-events:none;margin:0}
.legend{flex-shrink:0}.legend span{white-space:nowrap}
@media(max-width:767px){.table-intro:has(.legend){flex-wrap:wrap}.table-intro .legend{gap:16px}}

/* Give the three dashboard views a clear shared navigation band. */
:root{--ls-color-text-on-brand:#fff}
html.dark{--ls-color-text-on-brand:#111}
.tabs{gap:8px;padding:6px 8px;background:var(--ls-color-surface-default);border:1px solid var(--ls-color-border-default);border-radius:8px 8px 0 0}
.tabs .tab{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;min-width:144px;padding:7px 18px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--ls-color-text-primary);font-size:15px;line-height:24px;font-weight:500;white-space:nowrap;transition:background-color .15s ease,color .15s ease,border-color .15s ease}
.tabs .tab:not(.active):hover{background:var(--ls-color-action-brand-subtle);color:var(--ls-color-action-brand-default)}
.tabs .tab.active{background:var(--ls-color-action-brand-default);border-color:var(--ls-color-action-brand-default);color:var(--ls-color-text-on-brand);font-weight:600}
.tabs .tab span{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:22px;margin:0;padding:0 6px;border-radius:4px;background:var(--ls-color-surface-subtle);color:var(--ls-color-text-secondary);font-size:11px;line-height:20px;font-weight:500;font-variant-numeric:tabular-nums}
.tabs .tab.active span{background:color-mix(in srgb,var(--ls-color-text-on-brand) 16%,transparent);color:var(--ls-color-text-on-brand)}
.tabs .tab:focus-visible{outline:2px solid var(--ls-color-border-focus);outline-offset:2px}
@media(max-width:767px){.tabs{gap:4px;padding:6px}.tabs .tab{flex:1;min-width:0;gap:6px;padding:7px 6px;font-size:13px}.tabs .tab span{min-width:24px;height:20px;padding:0 4px;font-size:10px}}
.brand-checkbox-option>.ant-checkbox-wrapper{display:inline-flex;flex-direction:row;align-items:center;gap:0;height:16px;line-height:16px;flex:none}
.brand-checkbox-option .ant-checkbox-input{min-height:0}

.password-field{position:relative;display:block}.password-field input{width:100%;padding-right:60px}.password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:12px}
.login-panel .login-preview{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--ls-color-border-default);margin-top:24px;padding-top:16px;font-size:12px;color:var(--ls-color-text-tertiary)}.login-preview a{text-decoration:none}.login-preview a:hover{text-decoration:underline}

.data-loading .metrics,.data-loading .tabs,.data-loading .workspace{visibility:hidden}

.top-actions .language-toggle{min-width:64px}.login-language{position:absolute;top:24px;right:32px}.tab>.i18n-label{padding:0;background:none;font-size:inherit;color:inherit;border-radius:0;margin:0}
html[lang=en] .top-actions{gap:8px}html[lang=en] .metric small{line-height:1.5}html[lang=en] .page-footer span:last-child{text-align:right}
@media(max-width:767px){.login-language{top:16px;right:16px}.top-actions .language-toggle{min-width:50px;padding:4px 8px}}

i18n-text{font:inherit;color:inherit}
/* Keep the Excel action and bilingual navigation readable on narrow screens. */
.title-actions{flex-wrap:wrap;max-width:100%}
@media(max-width:767px){.tabs .tab{min-height:48px;line-height:18px}.tabs .tab i18n-text{min-width:0;white-space:normal}.tabs .tab>span{flex-shrink:0}}
