.app-header>div:first-child{flex:1 1;min-width:0}.app-header>div:first-child .app-title{margin-bottom:8px}.overview-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:0 0 12px;margin-bottom:4px}.search-input,input[type=date],select{height:32px;border:1px solid var(--border-2);border-radius:6px;padding:0 10px;background:#fff;color:var(--text);font-size:13px;outline:none}select{min-width:140px}.search-input:hover,input[type=date]:hover,select:hover{border-color:var(--primary-hover)}.search-input:focus,input[type=date]:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(24,144,255,.15)}.date-range{display:inline-flex;align-items:center;height:32px;border:1px solid var(--border-2);border-radius:6px;background:#fff;padding:0 4px 0 8px}.date-range:hover{border-color:var(--primary-hover)}.date-range:focus-within{border-color:var(--primary);box-shadow:0 0 0 2px rgba(24,144,255,.15)}.date-range input[type=date]{-moz-appearance:none;appearance:none;-webkit-appearance:none;position:relative;border:0;height:30px;width:132px;padding:0 18px 0 2px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%238c8c8c' stroke-width='1.4'%3E%3Crect x='2' y='3.5' width='12' height='11' rx='1.5'/%3E%3Cpath d='M2 7h12M5.5 2v3M10.5 2v3'/%3E%3C/svg%3E") no-repeat right 2px center;background-size:12px;box-shadow:none;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;cursor:pointer}.date-range input[type=date]:focus,.date-range input[type=date]:hover{border:0;box-shadow:none}.date-range input[type=date]::-webkit-datetime-edit,.date-range input[type=date]::-webkit-datetime-edit-day-field,.date-range input[type=date]::-webkit-datetime-edit-fields-wrapper,.date-range input[type=date]::-webkit-datetime-edit-month-field,.date-range input[type=date]::-webkit-datetime-edit-text,.date-range input[type=date]::-webkit-datetime-edit-year-field{padding:0;pointer-events:none}.date-input{position:relative;display:inline-flex;align-items:center}.date-input:after{content:attr(data-iso);position:absolute;left:2px;top:0;bottom:0;display:flex;align-items:center;pointer-events:none;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:0;z-index:1}.date-input input[type=date]{color:transparent;-webkit-text-fill-color:transparent}.date-input input[type=date]::-webkit-datetime-edit,.date-input input[type=date]::-webkit-datetime-edit-day-field,.date-input input[type=date]::-webkit-datetime-edit-fields-wrapper,.date-input input[type=date]::-webkit-datetime-edit-month-field,.date-input input[type=date]::-webkit-datetime-edit-text,.date-input input[type=date]::-webkit-datetime-edit-year-field{color:transparent;-webkit-text-fill-color:transparent}.date-range input[type=date]::-webkit-clear-button,.date-range input[type=date]::-webkit-inner-spin-button{display:none}.date-range input[type=date]::-webkit-calendar-picker-indicator{position:absolute;left:0;top:0;width:100%;height:100%;margin:0;padding:0;cursor:pointer;opacity:0}.date-range-sep{color:var(--text-3);padding:0 4px;flex-shrink:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.board-stage{min-width:0}.board-shell.is-config .align-date,.board-shell.is-config .source-asof-panel{display:none}.board-shell.is-config .source-asof-btn{cursor:default;pointer-events:none}.board-page-fallback{min-height:360px;display:flex;align-items:center;justify-content:center;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text-3);font-size:14px}.board-page-fallback.is-error{color:#cf1322}.section-loading-toast{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;background:#ffffff;border-radius:4px;box-shadow:0 6px 16px rgba(0,0,0,.12),0 2px 6px rgba(0,0,0,.08);color:#595959;font-size:14px;line-height:1;white-space:nowrap}.section-loading-toast-text{color:#595959;font-size:14px;line-height:1.2}.section-loading-dot{position:relative;display:inline-block;width:20px;height:20px;flex:0 0 20px}.section-loading-dot>i{position:absolute;display:block;width:9px;height:9px;background:#1677ff;border-radius:100%;transform:scale(.75);transform-origin:50% 50%;opacity:.3;animation:section-loading-dot-move 1s linear infinite alternate}.section-loading-dot>i:first-child{top:0;left:0}.section-loading-dot>i:nth-child(2){top:0;right:0;animation-delay:.4s}.section-loading-dot>i:nth-child(3){right:0;bottom:0;animation-delay:.8s}.section-loading-dot>i:nth-child(4){bottom:0;left:0;animation-delay:1.2s}@keyframes section-loading-dot-move{to{opacity:1}}.kpi-row-5{grid-template-columns:repeat(5,minmax(0,1fr))}.kpi{position:relative;overflow:visible}.kpi-label-row{gap:5px;max-width:100%}.kpi-help,.kpi-label-row{display:inline-flex;align-items:center}.kpi-help{position:relative;justify-content:center;width:14px;height:14px;border-radius:50%;background:#bfbfbf;color:#fff;font-size:10px;font-weight:700;line-height:1;cursor:help;flex-shrink:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.kpi-tip{display:none;position:absolute;left:50%;top:calc(100% + 6px);transform:translateX(-30%);z-index:30;width:max-content;max-width:240px;background:#fff;border:1px solid var(--border-2);border-radius:6px;padding:8px 10px;color:var(--text-2);font-size:12px;font-weight:400;line-height:1.65;text-align:left;box-shadow:var(--shadow);pointer-events:none;white-space:normal}.kpi-help.is-tip-open .kpi-tip,.kpi-help:hover .kpi-tip{display:block}.kpi-row-5 .kpi:nth-child(n+5) .kpi-tip,.kpi-row-7 .kpi:nth-child(n+6) .kpi-tip{left:auto;right:0;transform:none}.kpi-mom{margin-top:6px;font-size:12px;font-weight:500;line-height:1.2;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi-mom.is-up{color:#52c41a}.kpi-mom.is-down{color:#ff4d4f}.kpi-hint,.kpi-mom.is-flat,.kpi-mom.is-na{color:var(--text-3)}.kpi-hint{font-size:11px;margin-top:2px}.mom-range{color:var(--text-3);font-size:12px}.chart-box{height:340px;width:100%}.chart-box.channel-metric{height:420px}.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:16px}.product-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;border:1px solid transparent}.data-table.channel-table{min-width:0;width:100%;max-width:1200px}.channel-table td:first-child,.channel-table th:first-child{text-align:left}.channel-table th{cursor:default}.channel-parent{cursor:pointer}.channel-parent td{font-weight:600}.channel-child td{color:var(--text-2);font-weight:400}.channel-child td:first-child{padding-left:36px}.project-name-with-gap{display:inline-flex;align-items:center;gap:6px}.project-name-other{color:#ff4d4f;font-weight:600}.project-gap-help{position:relative;display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:#ff4d4f;color:#fff;font-size:10px;font-weight:700;line-height:1;cursor:help;flex-shrink:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.project-gap-help.is-open,.project-gap-help:hover{background:#cf1322}.project-gap-tip{display:none;position:fixed;z-index:4000;min-width:320px;max-width:440px;background:#fff;border:1px solid var(--border-2);border-radius:6px;padding:10px 12px;box-shadow:0 6px 16px rgba(0,0,0,.12),0 3px 6px rgba(0,0,0,.08);text-align:left;white-space:normal;pointer-events:auto}.project-gap-tip.is-open{display:block}.project-gap-tip:before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}.project-gap-msg{color:#ff4d4f;font-size:12px;font-weight:600;line-height:1.5;margin-bottom:8px}.project-gap-notes{width:100%;font-size:12px;font-weight:400;color:var(--text-2)}.project-gap-head,.project-gap-row{display:grid;grid-template-columns:minmax(72px,.8fr) minmax(140px,1.2fr);grid-gap:8px;gap:8px;padding:4px 0}.project-gap-head{color:var(--text-3);font-weight:500}.project-gap-head,.project-gap-row{border-bottom:1px solid var(--border)}.project-gap-copy{cursor:pointer;-webkit-user-select:text;-moz-user-select:text;user-select:text}.project-gap-copy:hover{color:var(--primary)}.project-gap-copy.is-copied{color:#52c41a}.tree-caret{display:inline-block;width:14px;color:var(--text-3);font-size:10px;margin-right:6px}.channel-expand-tag{display:inline-flex;align-items:center;height:24px;padding:0 10px;border:1px solid var(--primary);border-radius:4px;background:var(--primary-bg);color:var(--primary);font-size:12px;cursor:pointer;white-space:nowrap}.channel-expand-tag:hover{background:#bae7ff}.channel-expand-tag.is-open{background:var(--primary);color:#fff}.product-name{font-weight:600;font-size:14px;margin-bottom:8px}.product-metric{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--text-2);padding:2px 0}.product-metric b{color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.funnel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:8px;gap:8px}.funnel-step{background:#fafafa;border-radius:6px;padding:14px 10px;text-align:center}.funnel-label{color:var(--text-3);font-size:12px}.funnel-value{font-size:18px;font-weight:600;margin-top:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.funnel-rate{font-size:12px;color:var(--primary);margin-top:4px}table.data-table{min-width:1100px}.modal{width:min(880px,100%)}.modal-head{justify-content:space-between;gap:12px}.kpi-caption{margin:-8px 0 12px}.kpi-caption,.table-note{color:var(--text-3);font-size:12px}.table-note{margin:10px 0 0;padding:8px 2px 0;max-width:920px;text-align:left;line-height:1.7}.table-note b{color:var(--text-2);font-weight:600}@media (max-width:1100px){.charts-grid,.funnel,.kpi-row,.kpi-row-5,.kpi-row-7,.product-grid{grid-template-columns:1fr 1fr}}:root{--bg:#f0f2f5;--card:#ffffff;--text:rgba(0,0,0,0.85);--text-2:rgba(0,0,0,0.65);--text-3:rgba(0,0,0,0.45);--primary:#1890ff;--primary-hover:#40a9ff;--primary-bg:#e6f7ff;--border:#f0f0f0;--border-2:#d9d9d9;--header-bg:#fafafa;--shadow:0 1px 2px rgba(0,0,0,0.03),0 1px 6px -1px rgba(0,0,0,0.02),0 2px 4px rgba(0,0,0,0.02);--radius:8px}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:13px;line-height:1.5715}.app-header{background:var(--card);border-bottom:1px solid var(--border);padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;overflow:visible}.header-meta{display:none;margin-left:auto;text-align:right;color:var(--text-3);font-size:12px;line-height:1.4;white-space:nowrap}.app-title{font-size:18px;font-weight:600;letter-spacing:.02em}.app-sub{color:var(--text-3);font-size:12px;margin-top:2px}.header-filters{gap:10px;flex-wrap:wrap}.filter-item,.header-filters{display:flex;align-items:center}.filter-item{gap:8px}.filter-item[hidden]{display:none}.collab-frac{white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.filter-label{color:var(--text-2);white-space:nowrap}.search-input,select{height:32px;border:1px solid var(--border-2);border-radius:6px;padding:0 10px;background:#fff;color:var(--text);font-size:13px;outline:none;min-width:160px}.search-input:hover,select:hover{border-color:var(--primary-hover)}.search-input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(24,144,255,.15)}.tabs{background:var(--card);padding:0 24px;display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:20}.tab-btn{background:none;padding:12px 8px;margin-bottom:-1px;cursor:pointer;color:var(--text-2);font-size:14px;border:none;border-bottom:2px solid transparent;text-decoration:none;display:inline-block}.tab-btn.active,.tab-btn:hover{color:var(--primary)}.tab-btn.active{font-weight:600;border-bottom-color:var(--primary)}.page{padding:16px 24px 32px;max-width:100%;overflow-x:hidden;min-width:0}.tab-panel{display:none}.tab-panel.active{display:block;min-width:0;max-width:100%}.kpi-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:16px}.kpi{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px}.kpi-label{color:var(--text-3);font-size:12px}.kpi-value{font-size:20px;font-weight:600;margin-top:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 20px 12px;margin-bottom:16px;min-width:0;max-width:100%}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.card-title{font-size:15px;font-weight:600}.muted{color:var(--text-3);font-size:12px}.table-wrap{overflow:auto;max-height:calc(100vh - 340px);border:1px solid var(--border);border-radius:6px}table.data-table{width:100%;border-collapse:collapse;min-width:1280px}table.data-table.config-table{min-width:1680px}table.data-table.config-plans{min-width:0;width:100%}.data-table td,.data-table th{padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap;text-align:center;vertical-align:middle}.data-table th{background:var(--header-bg);color:var(--text-2);font-weight:600;position:-webkit-sticky;position:sticky;top:0;z-index:2;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.data-table th.sorted{color:var(--primary);background:#e6f7ff}.data-table tbody tr:hover{background:#fafafa}.data-table .num{text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.data-table tfoot td{background:#fafafa;font-weight:600;position:-webkit-sticky;position:sticky;bottom:0;z-index:2}.data-table td:first-child,.data-table th:first-child{position:-webkit-sticky;position:sticky;left:0;background:#fff;z-index:1;min-width:168px}.data-table th:first-child{background:var(--header-bg);z-index:3}.data-table tfoot td:first-child{z-index:4}.cell-profile{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:0;width:100%}.avatar,.avatar-fallback{width:32px;height:32px;border-radius:50%;flex-shrink:0;object-fit:cover;border:1px solid var(--border-2);background:#f5f5f5}.avatar-fallback{display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--primary);background:var(--primary-bg)}.name-link{color:var(--primary);cursor:pointer;text-decoration:none;border-bottom:1px solid transparent}.name-link:hover{border-bottom-color:var(--primary)}.data-table td.note-info-td{text-align:left;white-space:normal;min-width:260px;max-width:420px;vertical-align:top}.data-table td.stack-info-td{white-space:normal;text-align:left;vertical-align:middle;min-width:160px;max-width:240px}.data-table td.stack-info-td .note-info-cell{justify-content:start;margin:0}.note-info-cell{display:grid;grid-template-columns:auto 1fr;grid-gap:2px 8px;gap:2px 8px;line-height:1.45;text-align:left}.note-info-k{color:var(--text-3);font-size:12px;white-space:nowrap}.note-info-projects{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:flex-start}.note-info-project{max-width:100%;padding:0 6px;line-height:20px;white-space:normal;word-break:break-all}.note-info-project,.tier-tag{display:inline-block;border-radius:4px;background:#f5f5f5;color:var(--text-2);font-size:12px}.tier-tag{padding:0 8px;height:22px;line-height:22px}.tier-头部达人{background:#f9f0ff;color:#722ed1}.tier-腰部达人{background:#e6f7ff;color:#1890ff}.tier-尾部达人{background:#e6fffb;color:#13c2c2}.tier-KOC{background:#f6ffed;color:#52c41a}.pager{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 0 4px}.pager button{height:28px;min-width:28px;padding:0 8px;border:1px solid var(--border-2);background:#fff;border-radius:4px;cursor:pointer;color:var(--text-2)}.pager button.active,.pager button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.pager button:disabled{opacity:.45;cursor:not-allowed}.analysis-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.metric-legend{display:flex;flex-wrap:wrap;gap:8px}.metric-chip{border:1px solid var(--border-2);background:#fff;color:var(--text-2);border-radius:16px;padding:4px 12px;cursor:pointer;font-size:12px}.metric-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.app-title-row{display:flex;align-items:center;gap:10px;flex-wrap:nowrap}.site-nav{display:flex;gap:4px;margin-bottom:6px}.site-nav a{color:var(--text-3);text-decoration:none;font-size:12px;padding:2px 8px;border-radius:4px}.site-nav a.active{background:var(--primary-bg);font-weight:600}.attr-tag,.site-nav a.active,.site-nav a:hover{color:var(--primary)}.attr-tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:4px;background:var(--primary-bg);font-size:12px;font-weight:500;white-space:nowrap}.source-asof{position:relative;display:inline-flex}.source-asof-btn{height:22px;padding:0 8px;border-radius:4px;border:1px solid var(--border-2);background:#fff;color:var(--text-2);font-size:12px;cursor:pointer;white-space:nowrap}.source-asof-btn:hover,.source-asof.is-open .source-asof-btn{border-color:var(--primary);color:var(--primary)}.source-asof-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:40;min-width:340px;background:#fff;border:1px solid var(--border-2);border-radius:8px;padding:10px 12px;box-shadow:var(--shadow)}.source-asof-head{color:var(--text-3);font-size:12px;margin-bottom:6px}.source-asof-panel table{width:100%;border-collapse:collapse;font-size:12px}.source-asof-panel td,.source-asof-panel th{text-align:left;padding:4px 6px;color:var(--text-2);font-weight:400}.source-asof-panel th{color:var(--text-3);font-weight:500}.source-asof-panel td.asof-day{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.kpi-row-7{grid-template-columns:repeat(7,minmax(0,1fr))}.charts-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:16px}.charts-grid,.charts-stack{display:grid;gap:16px;min-width:0}.charts-stack{grid-template-columns:minmax(0,1fr);grid-gap:16px;margin-bottom:16px;width:100%}.charts-stack>.card{overflow:hidden}.chart-box{height:360px}.chart-scroll{overflow-x:auto;overflow-y:hidden;margin-top:8px;width:100%;max-width:100%;overscroll-behavior-x:contain}.chart-scroll .chart-box{height:360px;min-width:100%}.summary-table{min-width:1200px}.summary-table td:first-child,.summary-table td:nth-child(2),.summary-table th:first-child,.summary-table th:nth-child(2){position:static;min-width:88px;left:auto}.tag-cell{background:#fafafa;font-weight:600}.overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:flex-start;justify-content:center;z-index:100;padding:48px 24px;overflow:auto}.overlay.show{display:flex}.modal{background:#fff;width:min(720px,100%);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.18);padding:20px 24px 16px}.modal-head{justify-content:center;position:relative;min-height:48px;margin-bottom:8px}.modal-head,.modal-identity{display:flex;align-items:center}.modal-identity{gap:10px}.modal-identity .avatar,.modal-identity .avatar-fallback{width:40px;height:40px;font-size:14px}.modal-title{font-size:16px;font-weight:600;color:var(--primary)}.close-btn{position:absolute;right:0;top:0;width:28px;height:28px;border:none;background:none;font-size:20px;cursor:pointer;color:var(--text-3);line-height:1}.hint-line{color:var(--text-3);font-size:12px;margin:0 0 12px}.note-pick-group{margin-bottom:16px}.note-pick-group__title{font-size:13px;font-weight:600;margin-bottom:8px;padding-bottom:6px}.note-pick-group__title,.note-pick-item{border-bottom:1px solid var(--border);text-align:left}.note-pick-item{display:flex;align-items:flex-start;gap:12px;padding:10px 0}.note-pick-item:last-child{border-bottom:0}.note-pick-cover,.note-pick-cover--empty{width:48px;height:64px;object-fit:cover;border-radius:6px;border:1px solid var(--border);flex-shrink:0;background:#f5f5f5}.note-pick-cover--empty{display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-3)}.note-pick-meta{flex:1 1;min-width:0}.note-pick-title{font-size:13px;font-weight:600;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.note-pick-sub{margin-top:4px;font-size:12px;color:var(--text-3)}.note-pick-metrics{margin-top:6px;display:flex;flex-wrap:wrap;gap:8px 12px;font-size:12px;color:var(--text-2)}.note-pick-metrics span b{font-weight:600;color:var(--text)}.open-btn{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:0 12px;margin-top:18px;flex-shrink:0;align-self:center;border:1px solid var(--primary);border-radius:6px;background:#fff;color:var(--primary);text-decoration:none;font-size:12px}.open-btn:hover{background:var(--primary-bg)}.open-btn.is-disabled{border-color:var(--border-2);color:var(--text-3);pointer-events:none}.modal.modal-wide{width:min(880px,100%)}.modal-head--start{justify-content:flex-start}.modal-kicker{font-size:12px;color:var(--text-3);font-weight:400;margin-top:2px}.top-rank{width:28px;flex-shrink:0;padding-top:4px;font-size:14px;font-weight:600;color:var(--text-3);text-align:center}.top-rank.is-top{color:var(--primary)}.note-pick-title--link{color:var(--primary);text-decoration:none}.note-pick-title--link:hover{text-decoration:underline}.note-rank-metric{margin-top:4px;font-size:13px;color:var(--text)}.note-rank-metric b{font-weight:600}@media (max-width:1100px){.charts-grid,.kpi-row,.kpi-row-7{grid-template-columns:1fr 1fr}}.auth-status{display:flex;align-items:center;gap:10px;flex-shrink:0}.brand-switcher{display:inline-flex;align-items:center;gap:6px}.brand-switcher select{height:26px;min-width:108px;padding:0 8px;border:1px solid var(--border-2);border-radius:4px;background:#fff;color:var(--text);font-size:12px}.brand-switcher select:disabled{opacity:.85;cursor:default}.auth-status-text{font-size:12px;color:var(--text-2);white-space:nowrap}.auth-logout-btn{height:22px;padding:0 8px;border-radius:4px;border:1px solid var(--border-2);background:#fff;color:var(--text-2);font-size:12px;cursor:pointer}.auth-logout-btn:hover{border-color:var(--primary);color:var(--primary)}.login-page{min-height:calc(100vh - 32px);display:flex;align-items:center;justify-content:center;background:transparent}.login-card{width:min(420px,92vw);background:#fff;border:1px solid #d8e0ec;border-radius:16px;padding:32px 28px 28px;box-shadow:0 16px 48px rgba(23,34,59,.1)}.login-title{margin:0;font-size:22px;font-weight:700;letter-spacing:.02em;color:#14233d}.login-subtitle{margin:8px 0 0;font-size:13px;color:#6b7788;line-height:1.5}.login-form{gap:16px;margin-top:24px}.login-field,.login-form{display:flex;flex-direction:column}.login-field{gap:8px;font-size:13px;font-weight:600;color:#3d4a5c}.login-input{width:100%;box-sizing:border-box;height:auto;min-width:0;border:1.5px solid #c5d0e0;background:#f8fafc;border-radius:10px;padding:12px 14px;font:inherit;font-size:14px;font-weight:400;color:#17223b;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.login-input::placeholder{color:#98a3b3}.login-input:hover{border-color:#9eb0c9;background:#fff}.login-input:focus{outline:none;border-color:#2e6ef7;background:#fff;box-shadow:0 0 0 3px rgba(46,110,247,.18)}.login-error{margin:0;font-size:13px;color:#b91c1c}.login-submit{margin-top:4px;width:100%;border:none;border-radius:10px;padding:12px 16px;font-size:15px;font-weight:600;color:#fff;background:#2e6ef7;cursor:pointer;transition:background .15s ease,transform .1s ease}.login-submit:hover:not(:disabled){background:#1f5de0}.login-submit:active:not(:disabled){transform:translateY(1px)}.login-submit:disabled{opacity:.7;cursor:wait}.config-update-btn{height:32px;padding:0 12px;border:none;border-radius:6px;background:#1e4fbf;color:#fff;font-size:13px;cursor:pointer;white-space:nowrap}.config-update-btn:hover{background:#163d96}.config-excel-modal-overlay{position:fixed;inset:0;z-index:1000;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box}.config-excel-modal{width:min(1520px,100%);max-height:calc(100vh - 48px);background:#fff;border-radius:14px;box-shadow:0 24px 64px rgba(15,23,42,.22);display:flex;flex-direction:column;overflow:hidden}.config-excel-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 20px;border-bottom:1px solid var(--border);background:#fafcff}.config-excel-modal-title{margin:0;font-size:18px;line-height:1.3}.config-excel-modal-sub{margin:4px 0 0;font-size:12px}.config-excel-modal-close{border:1px solid var(--border-2);background:#fff;border-radius:8px;padding:8px 14px;font-size:13px;cursor:pointer;flex-shrink:0}.config-excel-modal-close:hover{background:#f3f4f6}.config-excel-modal-body{padding:12px 16px 16px}.config-excel-modal-body,.config-excel-wrap-modal{flex:1 1;min-height:0;display:flex;flex-direction:column}.config-excel-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;flex-shrink:0}.config-excel-hint{font-size:12px;flex:1 1;min-width:200px}.config-excel-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex:1 1;min-width:280px}.config-excel-ok{color:#237804;font-size:13px;margin:0 0 8px}.config-excel-actions{display:flex;gap:8px}.config-excel-btn{height:32px;padding:0 12px;border:1px solid var(--border-2);border-radius:6px;background:#fff;color:var(--text);font-size:13px;cursor:pointer}.config-excel-btn:hover{border-color:var(--primary);color:var(--primary)}.config-excel-save:not(:disabled){background:#1e4fbf;border-color:#1e4fbf;color:#fff}.config-excel-save:disabled{opacity:.6;cursor:default}.config-excel-error{color:#b91c1c;font-size:13px;margin:0 0 8px}.config-excel-modal-scroll{flex:1 1;min-height:0;overflow:auto;border:1px solid var(--border);border-radius:10px}.config-excel-table{width:max-content;min-width:100%;border-collapse:collapse;font-size:12px}.config-excel-table td,.config-excel-table th{border-bottom:1px solid var(--border);padding:0;text-align:center;vertical-align:middle;white-space:nowrap}.config-excel-table th{background:var(--header-bg);color:var(--text-2);font-weight:600;position:-webkit-sticky;position:sticky;top:0;z-index:2;padding:8px 10px}.config-excel-table .config-excel-idx,.config-excel-table .config-excel-ops{width:56px;padding:8px}.config-excel-locked{background:#f7f8fa;color:var(--text-3)}.config-excel-locked-h{color:var(--text-3)}.config-excel-locked-text{display:block;padding:8px 10px}.config-excel-input{width:100%;min-width:88px;border:none;background:transparent;padding:8px 10px;font:inherit;color:inherit;text-align:center;box-sizing:border-box}.config-excel-input:focus{outline:2px solid #9dbbff;outline-offset:-2px;background:#f5f9ff}.config-excel-del{border:none;background:none;color:#b91c1c;cursor:pointer;font-size:12px}.config-excel-del:hover{text-decoration:underline}.config-excel-table.config-excel-notes td{text-align:left;vertical-align:middle;white-space:normal}.config-excel-table.config-excel-notes th{text-align:center}.config-excel-sticky{position:-webkit-sticky;position:sticky;z-index:3;background:#fff;box-shadow:1px 0 0 var(--border)}.config-excel-table th.config-excel-sticky{z-index:5;background:var(--header-bg)}.config-excel-sticky-0{left:0;min-width:48px}.config-excel-sticky-1{left:48px;min-width:88px;max-width:120px}.config-excel-sticky-2{left:136px;min-width:260px;max-width:360px}.config-excel-stack{display:grid;grid-template-columns:auto 1fr;grid-gap:4px 8px;gap:4px 8px;padding:6px 10px;min-width:168px;text-align:left;align-items:center}.config-excel-stack-k{color:var(--text-3);font-size:12px;white-space:nowrap}.config-excel-stack-v{min-width:0}.config-excel-stack .config-excel-input{text-align:left;min-width:108px;padding:4px 6px;border:1px solid var(--border-2);border-radius:4px;background:#fff}.config-excel-notes .config-excel-input{text-align:left}.config-excel-table.config-excel-notes td.config-excel-center{text-align:center;vertical-align:middle}.config-excel-notes td.config-excel-center .config-excel-input{text-align:center}.config-excel-readonly{display:block;padding:4px 6px;color:var(--text-2)}.source-asof-panel{min-width:400px}.source-asof-btn.is-mismatch,.source-asof.is-mismatch .source-asof-btn:hover,.source-asof.is-mismatch.is-open .source-asof-btn{border-color:#d46b08;background:#fff7e6;color:#d46b08;font-weight:500}.source-asof-head.is-mismatch,.source-asof-panel tr.asof-lag td{color:#d46b08}.align-date,.source-asof-panel td.asof-status{white-space:nowrap}.align-date{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:4px;border:1px solid var(--border-2);background:#fff;color:var(--text);font-size:12px;font-weight:500;cursor:pointer}.align-date>span:first-child{color:var(--text-2)}.align-date .date-range{height:22px;border:0;padding:0;background:transparent;box-shadow:none}.align-date .date-range:focus-within,.align-date .date-range:hover{border:0;box-shadow:none}.align-date .date-range input[type=date]{height:22px;width:118px;padding:0 16px 0 0;font-size:12px;font-weight:500}.align-date .date-input:after{font-size:12px;font-weight:500}.align-date.is-over{border-color:#d46b08;background:#fff7e6;color:#d46b08}.align-date.is-over .date-input:after,.align-date.is-over>span:first-child{color:#d46b08}