:root{--primary:#005bac;--ink:#17365d;--soft:#eaf1f8;--accent:#d7263d;--report-width:680px;--text-scale:1;--chart-scale:1;--columns:1;font-family:"Microsoft YaHei","PingFang SC","Noto Sans CJK SC",sans-serif;color:#253443;background:#edf0f3;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button{background:#fff;color:#314355;border:1px solid #cbd4dd;border-radius:5px;padding:9px 13px;white-space:nowrap;transition:background .12s}button:hover{background:#edf3f9}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[contenteditable]:focus-visible{outline:3px solid #719fcb;outline-offset:2px}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--primary);color:#fff;border-color:var(--primary)}button.active{background:var(--primary);color:#fff;border-color:var(--primary)}input,select,textarea{background:#fff;color:#263a4c;border:1px solid #ccd5de;border-radius:4px;padding:8px;width:100%;min-width:0}input[type=range]{padding:0;accent-color:var(--primary)}input[type=checkbox]{width:auto;accent-color:var(--primary)}input[type=color]{width:46px;height:34px;padding:2px}a{color:var(--primary)}
.toolbar{position:sticky;top:0;z-index:20;background:#fcfdfe;border-bottom:1px solid #d7dfe7;height:60px;display:flex;align-items:center;gap:20px;padding:0 28px}.brand{display:flex;align-items:center;gap:12px;font-size:17px;font-weight:700;margin-right:auto}.brand-mark{display:grid;place-items:center;background:#17365d;color:#fff;width:34px;height:34px;font-size:19px;border-radius:8px}.brand small{display:block;color:#7e8c98;font-size:10px;letter-spacing:1.5px;font-weight:500;margin-top:2px}.segmented{display:flex;background:#f0f3f6;padding:3px;gap:2px;border:1px solid #e0e5ea;border-radius:6px}.segmented button{border:0;background:transparent;min-width:60px;padding:7px 13px;transition:none}.segmented button.active{background:var(--ink);color:#fff}.toolbar-actions{display:flex;align-items:center;gap:8px;font-size:13px}.src-chip{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:#51637a;background:#f0f6ec;border:1px solid #dce8d2;border-radius:999px;padding:6px 12px}.src-chip i{width:7px;height:7px;border-radius:50%;background:#3f9e4d;flex:none}.src-chip:hover{background:#e6f0de}.src-chip.warn{background:#fdf6e8;border-color:#eee0bd;color:#7a6420}.src-chip.warn i{background:#d9a514}.src-chip.warn:hover{background:#f9ecc9}.src-chip.error{background:#fceceb;border-color:#f3c8c8;color:#a63e35}.src-chip.error i{background:#d7263d}.src-chip.error:hover{background:#f9dcdc}#save-status{font-size:12px;color:#3f9e4d;opacity:0;transition:opacity .25s;white-space:nowrap}#save-status.show{opacity:1}#save-status.failed{opacity:1;color:#a63e35}.text-button{border:0;background:transparent;padding:3px;color:var(--primary)}
.secnav{position:sticky;top:60px;z-index:15;background:rgba(242,244,247,.93);backdrop-filter:blur(6px);border-bottom:1px solid #e0e5ea}.secnav-inner{max-width:var(--report-width);margin:0 auto;display:flex;align-items:center;gap:14px;padding:8px 0}#section-nav{display:flex;gap:4px;flex-wrap:wrap;min-width:0}#section-nav a{text-decoration:none;color:#5d7286;font-size:12.5px;padding:5px 13px;border-radius:999px;white-space:nowrap}#section-nav a:hover{background:#e3e9ef}#section-nav a.current{background:var(--ink);color:#fff}#paper-label{margin-left:auto;font-size:12px;color:#7c8996;white-space:nowrap}
.workspace{display:flex;align-items:flex-start;gap:28px;padding:0 28px 48px}.workspace main{min-width:0;flex:1}#settings{position:sticky;top:120px;flex:0 0 300px;background:#f8fafc;border:1px solid #dbe2e9;border-radius:7px;margin-top:30px;max-height:calc(100vh - 140px);overflow:auto;padding:20px;font-size:13px}#settings[hidden]{display:none}.panel-title{font-size:17px;margin:0 0 6px}.muted{color:#768391;font-size:12px;line-height:1.65}.control-group{border-top:1px solid #dbe2e9;margin-top:20px;padding-top:17px}.control-group h3{font-size:13px;margin:0 0 12px}.field{display:block;margin:11px 0;font-size:13px}.field>span{display:flex;justify-content:space-between;gap:10px;margin-bottom:7px}.inline{display:flex;align-items:center;gap:8px}.inline>*{min-width:0}.inline label{flex:1}.preset-row{display:flex;gap:6px;flex-wrap:wrap}.preset-row button{font-size:12px;padding:7px}
#report{width:100%;max-width:var(--report-width);margin:24px auto 0;background:#fff;padding:calc(16px * var(--text-scale)) calc(28px * var(--text-scale));box-shadow:0 3px 24px #2942580b;color:var(--ink);font-size:calc(18px * var(--text-scale))}.report-head{border-top:7px solid var(--primary);padding:16px 0 12px;margin-bottom:4px;position:relative}.head-logo{position:absolute;top:calc(16px * var(--text-scale));right:0;height:calc(46px * var(--text-scale));max-width:38%;object-fit:contain}.eyebrow{font-size:calc(12px * var(--text-scale));letter-spacing:2px;color:#788797;margin-bottom:6px}.report-head h1{font-size:calc(32px * var(--text-scale));line-height:1.35;letter-spacing:.5px;margin:0 0 8px;color:var(--primary)}.report-meta{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:#7a8792;font-size:calc(14px * var(--text-scale));line-height:1.7}.report-section{margin:14px 0 18px;scroll-margin-top:124px}.section-bar{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:0 0 7px;margin-bottom:8px;border-bottom:2px solid var(--ink);color:var(--ink)}.section-bar h2{font-size:calc(21px * var(--text-scale));line-height:1.4;margin:0;font-weight:700}.section-number{display:inline-block;margin-right:12px;font-size:.75em;font-weight:700;color:var(--primary);letter-spacing:1px}.section-actions{display:flex;gap:5px;align-self:center}.section-actions button{padding:4px 7px;font-size:12px;background:#fff;color:#314355;border-color:#cbd4dd}.note{background:var(--soft);border:1px solid #dce6ef;border-left:4px solid var(--primary);border-radius:8px;padding:9px 18px;line-height:1.65;color:var(--ink);font-size:calc(18px * var(--text-scale));margin-bottom:2px}.note-head{display:flex;align-items:baseline;gap:10px;margin-bottom:3px}.note-label{font-size:calc(12px * var(--text-scale));font-weight:700;letter-spacing:1px;color:var(--primary)}.note-date{font-size:calc(12px * var(--text-scale));color:#7a8389}.note-content{min-height:1.5em;overflow-wrap:anywhere}.note-content:empty:before{content:'编辑模式下填写本期观点';color:#81909d}.note-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;font-size:12px}.note-tools button{padding:4px 9px}.note-tools input{height:28px}.chart-grid{display:grid;grid-template-columns:repeat(var(--columns),minmax(0,1fr));column-gap:22px}.chart-card{min-width:0;padding:8px 0 8px;border-bottom:1px solid #dce3e8;break-inside:avoid;container-type:inline-size}.chart-title-row{display:flex;gap:8px;align-items:flex-start;justify-content:space-between;min-height:32px}.chart-title-row h3{font-size:calc(19px * var(--text-scale));line-height:1.5;margin:0;overflow-wrap:anywhere;color:var(--ink)}.chart-actions{display:flex;gap:4px;flex-shrink:0}.chart-actions button{font-size:11px;padding:4px 6px}.chart{width:100%;height:calc(340px * var(--chart-scale));overflow:hidden}
.callout{padding:0;line-height:1.7;font-size:calc(15px * var(--text-scale));color:var(--ink);overflow-wrap:anywhere}.kpi-row{display:grid;grid-template-columns:minmax(84px,1fr) auto auto auto;align-items:center;gap:12px;background:#f8fafc;border:1px solid #e3e9ef;border-radius:8px;padding:5px 14px;margin-top:5px}.kpi-name{font-size:calc(12px * var(--text-scale));color:#5b6b7c;min-width:0;overflow-wrap:break-word;line-height:1.5}.kpi-val{font-size:calc(20px * var(--text-scale));font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}.kpi-val small{font-size:calc(11px * var(--text-scale));font-weight:400;color:#85919a;margin-left:3px}.kpi-badge{font-size:calc(12px * var(--text-scale));font-weight:600;border-radius:6px;padding:2px 8px;white-space:nowrap;font-variant-numeric:tabular-nums}.kpi-badge.up{color:#d7263d;background:#fcebeb}.kpi-badge.down{color:#008000;background:#e7f4ea}.kpi-badge.flat,.kpi-badge.na{color:#6c7c8c;background:#eef1f4}.kpi-date{font-size:calc(11px * var(--text-scale));color:#85919a;text-align:right;line-height:1.55;white-space:nowrap}.kpi-fdelta.up{color:#d7263d}.kpi-fdelta.down{color:#008000}.kpi-forecast{margin-top:4px}.callout strong{font-weight:700}.callout .date{color:#768491;font-size:.85em}.forecast-line{color:var(--forecast);font-weight:600}.data-note{color:#946523;font-size:calc(12px * var(--text-scale));line-height:1.6;margin-top:7px}.source-line{font-size:calc(11px * var(--text-scale));color:#85919a;line-height:1.5;margin-top:7px;overflow-wrap:anywhere}.report-footer{font-size:calc(13px * var(--text-scale));color:#6f7f8c;line-height:1.8;margin-top:10px;border-top:2px solid var(--primary);padding-top:10px}.compliance{margin-top:12px}.risk{margin-top:8px}.endnote{text-align:center;color:#8a96a0;font-size:12px;padding:18px}.edit-empty{border:1px dashed #ccd6e0;padding:25px;text-align:center}
body.editing #report{outline:2px dashed var(--primary);outline-offset:8px}#edit-banner{position:fixed;left:50%;transform:translateX(-50%);bottom:20px;z-index:60;background:#17365d;color:#fff;font-size:13px;border-radius:999px;padding:9px 20px;box-shadow:0 6px 24px #17365d59}#back-top{position:fixed;right:22px;bottom:22px;z-index:60;width:42px;height:42px;border-radius:50%;padding:0;font-size:18px;background:#fff;border:1px solid #cbd4dd;box-shadow:0 4px 14px #17365d2e;color:#314355}
dialog{border:1px solid #ced7e0;border-radius:10px;padding:0;width:min(850px,94vw);max-height:90vh;color:#2c3d4b;box-shadow:0 24px 90px #182e463b}dialog::backdrop{background:#142d4852}.modal-heading{display:flex;align-items:center;justify-content:space-between;background:#f6f8fa;padding:17px 23px;border-bottom:1px solid #dce3e9;position:sticky;top:0;z-index:3}.modal-heading h2{font-size:18px;margin:0}.modal-heading button{padding:1px 9px;font-size:25px;border:0;background:transparent}#modal-body{padding:20px 24px;font-size:14px;line-height:1.7}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 18px}.form-grid .wide{grid-column:1/-1}.series-editor{background:#f6f8fa;border:1px solid #dce4eb;padding:12px;margin:12px 0}.series-editor .form-grid{grid-template-columns:1fr 1fr 1fr}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;position:sticky;bottom:-20px;background:#fff;padding:14px 0}.theme-swatch{display:inline-block;width:18px;height:18px;border-radius:50%;border:1px solid #0002}.source-card{padding:16px 0;border-bottom:1px solid #e1e6eb}.source-card h3{margin:0 0 6px}.source-card p{font-size:13px;overflow-wrap:anywhere}.warnings{max-height:210px;overflow:auto;font-size:12px;color:#8b652f;background:#fff9ef;padding:10px}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th,.data-table td{text-align:left;border-bottom:1px solid #e2e7ec;padding:6px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#17324a;color:#fff;padding:12px 22px;border-radius:7px;z-index:100;max-width:min(90vw,800px);font-size:14px;line-height:1.6;box-shadow:0 3px 25px #0002}.exporting #report{box-shadow:none;outline:none!important}.error-box{padding:25px;color:#a63e35;background:#fff4f1}.small{font-size:12px}.danger{color:#a63e35}.search-results{max-height:300px;overflow:auto}.search-results button{display:block;text-align:left;width:100%;white-space:normal;margin:4px 0}.help-list li{margin-bottom:12px}body.busy{cursor:progress}
@media(min-width:1500px){.toolbar{padding-inline:42px}.workspace{padding-inline:42px}}
@media(max-width:1100px){.toolbar{position:relative;height:auto;min-height:60px;gap:12px;padding:12px 18px;flex-wrap:wrap}.toolbar-actions{flex-wrap:wrap}.brand{margin-right:10px}.secnav{top:0}.workspace{padding-inline:14px;gap:16px}#settings{top:10px;flex-basis:260px}.chart-actions{flex-wrap:wrap}}
@media(max-width:760px){.toolbar{position:relative;padding:12px;gap:10px;height:auto}.brand{width:100%;margin-bottom:3px}.toolbar-actions{width:100%}.toolbar-actions>button{flex:1;padding:8px}.src-chip{flex:none}.secnav{top:0}.secnav-inner{padding:8px 4px}#section-nav{flex-wrap:nowrap;overflow-x:auto}#paper-label{display:none}.workspace{display:block;padding:0 8px 24px}#settings{position:relative;top:0;width:100%;max-height:none;margin:12px 0}#report{padding:12px 16px;font-size:16px;margin-top:14px}.report-head h1{font-size:calc(26px * var(--text-scale))}.chart-grid{grid-template-columns:1fr!important}.report-section{scroll-margin-top:64px}.chart-actions{max-width:120px}.section-bar h2{font-size:calc(19px * var(--text-scale))}.kpi-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:5px 10px}.form-grid,.series-editor .form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.modal-heading{padding:12px 16px}#modal-body{padding:15px}.callout{font-size:calc(15px * var(--text-scale))}.report-meta{font-size:12px}.note{font-size:calc(16px * var(--text-scale))}}
.title-editor{border:1px solid #ccd5de;border-radius:4px;min-height:48px;padding:10px;background:#fff}.section-bar h2 p,.section-bar h2 div{display:inline}.section-bar h2 b,.section-bar h2 strong{font-weight:900}
@container (max-width:460px){.kpi-row{grid-template-columns:minmax(84px,1fr) auto;grid-template-areas:'name date' 'val badge';row-gap:5px}.kpi-name{grid-area:name}.kpi-val{grid-area:val}.kpi-badge{grid-area:badge;justify-self:end}.kpi-date{grid-area:date}}
@media print{.toolbar,.secnav,.paper-tools,#settings,.endnote,#edit-banner,#back-top{display:none!important}.workspace{padding:0}#report{box-shadow:none;max-width:none;outline:none!important}.chart-card{break-inside:avoid}body{background:#fff}}

/* Compact data table; each cell centers its content in both screen and PNG output. */
.kpi-table{width:100%;border-collapse:collapse;table-layout:fixed;margin-top:5px;border:1px solid #e3e9ef;background:#fff}
.kpi-table col:nth-child(1){width:25%}.kpi-table col:nth-child(2){width:24%}.kpi-table col:nth-child(3){width:30%}.kpi-table col:nth-child(4){width:21%}
@container (min-width:600px){.kpi-table col:nth-child(1){width:23%}.kpi-table col:nth-child(4){width:23%}}
.kpi-table th,.kpi-table td{padding:0;vertical-align:middle;text-align:left;line-height:1;border-bottom:1px solid #e6ebf0}
.kpi-table th{font-size:calc(10.5px * var(--text-scale));font-weight:500;color:#7a8792;background:#f1f5f9;border-bottom-color:#dce3e8}
.kpi-cell{display:flex;align-items:center;min-height:calc(34px * var(--text-scale));padding:3px 5px;line-height:1.35}
.kpi-table th .kpi-cell{min-height:0}.kpi-table.single-metric thead{display:none}
.kpi-table tbody tr:nth-child(even){background:#f8fafc}.kpi-table tbody tr:last-child td{border-bottom:0}
.kpi-table .kpi-name{display:block;font-size:calc(12px * var(--text-scale));line-height:1.4}
.kpi-table .kpi-val{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:1px;font-size:calc(16px * var(--text-scale));line-height:1.3;white-space:normal}
.kpi-table .kpi-number{white-space:nowrap}.kpi-table .kpi-val small{font-size:calc(10px * var(--text-scale));margin-left:0}
.kpi-table .kpi-badge{font-size:calc(11px * var(--text-scale));padding:2px 4px;line-height:1.35;white-space:normal;display:block}
.kpi-table .kpi-date{font-size:calc(10.5px * var(--text-scale));line-height:1.35;display:block;text-align:left;white-space:normal}.kpi-table .kpi-date-value{white-space:nowrap}
.kpi-table .kpi-forecast{font-size:calc(12px * var(--text-scale));margin:0;line-height:1.5}.kpi-forecast-row .kpi-cell{min-height:0}
.section-heading-meta{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-left:auto;flex-wrap:wrap}
.section-opinion-meta{display:flex;align-items:baseline;gap:9px;flex-shrink:0;font-size:calc(12px * var(--text-scale))}
.section-opinion-meta .note-label,.section-opinion-meta .note-date{white-space:nowrap}.section-bar{flex-wrap:wrap;row-gap:3px}
.note{padding-top:7px;padding-bottom:7px}

.refresh-summary{padding:14px 16px;background:var(--soft);border-left:4px solid var(--primary);border-radius:6px}.refresh-summary p{font-size:12px;color:#627486;line-height:1.6;margin:6px 0 10px}.refresh-counts{display:flex;flex-wrap:wrap;gap:6px}.refresh-counts span{font-size:12px;border:1px solid #d4e1ec;border-radius:4px;background:white;padding:3px 7px}.refresh-section{margin:18px 0;padding-top:12px;border-top:1px solid #dce3e8}.refresh-section h3{font-size:15px;margin:0 0 10px;color:#a56315}.refresh-section summary{cursor:pointer;font-size:14px;font-weight:700;line-height:1.6}.refresh-section ul{font-size:12px;line-height:1.7;padding-left:18px}.refresh-table-wrap{overflow-x:auto;margin-top:10px}.refresh-table{border-collapse:collapse;width:100%;font-size:12px;min-width:610px;line-height:1.5}.refresh-table th{background:#f2f5f8;font-size:11px;color:#6d7e8f;font-weight:500}.refresh-table th,.refresh-table td{padding:8px 7px;vertical-align:middle}.refresh-table td:first-child{min-width:185px;max-width:300px;overflow-wrap:anywhere}.refresh-table td:nth-child(3),.refresh-table td:nth-child(4){white-space:nowrap}.refresh-table small{display:block;color:#85919a;font-size:10px;margin-top:3px}.refresh-state.updated,.refresh-ok{color:#287d53}.refresh-state.unchanged{color:#a56315}.refresh-state.error{color:#b23737}.refresh-ok{font-size:13px}

/* The customer site has a compact, read-only toolbar. */
.workspace{justify-content:center}
.publication-time{color:#7e8c98}
.toolbar .brand{white-space:nowrap}
@media(max-width:760px){
  .toolbar .brand{width:auto;margin-right:auto;margin-bottom:0}
  .toolbar-actions{width:100%}
  .toolbar-actions>button{flex:1;min-width:0}
  .report-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 8px}
  .report-head .eyebrow{grid-column:1;grid-row:1;margin:0}
  .report-head .head-logo{position:static;grid-column:2;grid-row:1;height:28px;max-width:115px}
  .report-head h1{grid-column:1/-1;grid-row:2;margin:4px 0 6px}
  .report-head .report-meta{grid-column:1/-1;grid-row:3}
  .report-meta{display:flex;flex-wrap:wrap;gap:5px 12px}
}
