@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&display=swap');
:root{--paper:#f6f5ef;--card:#fffef9;--ink:#203932;--muted:#6b776e;--line:#dce0d5;--green:#245b4a;--gold:#b18648;--red:#b74632;--blue:#376c83}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.75 'Noto Sans SC',system-ui,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,select{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:20px 4vw;background:var(--paper)}.brand{font-size:29px;font-weight:700;letter-spacing:3px;display:flex;align-items:center;gap:18px}.brand span{font-size:12px;letter-spacing:2px;border-left:1px solid var(--line);padding-left:18px;font-weight:500}.edition{text-align:right;font-size:12px;letter-spacing:1.4px}.edition span{display:block;color:var(--muted);letter-spacing:0}main{max-width:1480px;padding:32px 4vw 70px;margin:auto}h1{font-size:42px;line-height:1.3;letter-spacing:-1.5px;margin:8px 0 15px}h2{font-size:25px;line-height:1.4;margin:0 0 20px}h3{font-size:18px;margin:0 0 12px}p{margin:0 0 14px}.eyebrow{font-size:12px;color:var(--gold);font-weight:700;letter-spacing:2px;text-transform:uppercase}.muted,.caption{color:var(--muted);font-size:14px}.lead{max-width:850px;color:var(--muted)}.toprow{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:25px}.index-number{font:100px/1 Georgia,serif;color:#d7ddcf;letter-spacing:-6px}.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:var(--card);margin:25px 0}.stat{padding:20px 24px;border-right:1px solid var(--line)}.stat:last-child{border:0}.stat label{display:block;font-size:14px;color:var(--muted)}.stat strong{display:block;font:600 29px/1.5 system-ui}.stat small{font-size:12px;color:var(--muted)}.controls{display:flex;gap:12px;flex-wrap:wrap;margin:25px 0}input,select,button{border:1px solid var(--line);background:var(--card);border-radius:5px;padding:10px 14px;color:var(--ink)}input{flex:1;min-width:190px}.stock-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stock-card{display:block;padding:23px;background:var(--card);border:1px solid var(--line);border-top:3px solid var(--green);transition:transform .15s,box-shadow .15s}.stock-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #2039320d}.stock-card .title{display:flex;justify-content:space-between;gap:10px}.stock-card h3{font-size:22px;margin:6px 0}.code{font:13px/1.7 system-ui;color:var(--muted)}.pill{display:inline-block;padding:2px 9px;border-radius:3px;font-size:12px;background:#e9eee5;color:var(--green)}.price{font:600 28px/1.4 system-ui;margin:20px 0 16px}.price span{font-size:14px;margin-left:12px}.up{color:var(--red)}.down{color:var(--green)}.mini-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;border-top:1px solid var(--line);padding-top:13px;font-size:14px}.mini-metrics small{display:block;color:var(--muted);font-size:12px}.card-foot{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:20px}.back{font-size:14px;color:var(--muted)}.layout{display:grid;grid-template-columns:180px minmax(0,1fr);gap:34px;margin-top:28px}.sidenav{position:sticky;top:20px;height:fit-content}.sidenav a{display:block;font-size:14px;padding:9px 12px;border-left:2px solid var(--line)}.sidenav a:hover{border-color:var(--green);background:#e9eee5}.sidenav .nav-label{font-size:12px;color:var(--muted);margin-bottom:12px}.panel{background:var(--card);border:1px solid var(--line);padding:28px;margin-bottom:22px;min-width:0}.section-number{color:var(--gold);font:15px Georgia,serif;margin-right:12px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:22px}.insight{border-left:3px solid var(--green);padding:15px 18px;background:#edf1e8;margin-bottom:16px}.insight p:last-child{margin:0}.warning{background:#f5ecda;border-left:3px solid var(--gold);padding:13px 17px;font-size:14px;margin:14px 0}.chart{display:block;width:100%;height:auto;min-height:150px}.chart text{font:12px system-ui;fill:var(--muted)}.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-bottom:12px}.legend i{display:inline-block;width:9px;height:9px;margin-right:5px}.table-wrap{overflow:auto;max-width:100%;margin:14px 0}table{width:100%;border-collapse:collapse;font-size:14px;white-space:nowrap}th{text-align:left;font-weight:500;background:#eff1e9;color:var(--muted)}th,td{padding:11px 13px;border-bottom:1px solid var(--line)}td:not(:first-child){font-variant-numeric:tabular-nums}details{border-top:1px solid var(--line);padding:12px 0}summary{cursor:pointer;font-size:15px;font-weight:500;padding:4px 0}details details{margin-left:14px}.kv{display:grid;grid-template-columns:minmax(130px,1fr) minmax(0,2fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}.kv .key{color:var(--muted)}.kv .value{overflow-wrap:anywhere}.prose{font-size:16px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}.meter{height:8px;background:linear-gradient(90deg,#3f786350,#c9be8740,#b7463240);position:relative;border-radius:8px;margin:14px 0}.meter i{position:absolute;top:-4px;width:4px;height:16px;background:var(--ink)}.valuation-row{padding:12px 0;border-bottom:1px solid var(--line)}.valuation-row .label{display:flex;justify-content:space-between;font-size:14px}.news{border-left:1px solid var(--line);padding:0 0 23px 20px}.news h3{font-size:17px}.news .caption{font-size:12px;margin-bottom:7px}.news p{font-size:15px}.tag{font-size:12px;border:1px solid var(--line);border-radius:3px;padding:2px 6px}.chart-controls{display:flex;gap:8px;margin-bottom:14px}.chart-controls button{font-size:13px;padding:6px 12px}.chart-controls button.active{background:var(--green);color:white}.risk-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.risk{padding:18px;border:1px solid var(--line);font-size:15px}.risk h3{font-size:16px}.source-link{font-size:12px;color:var(--green);text-decoration:underline}.empty{padding:20px;color:var(--muted);font-size:14px}.skip{position:absolute;left:-9999px}.skip:focus{left:15px;top:10px;background:white;padding:10px;z-index:9}footer{max-width:1480px;margin:auto;border-top:1px solid var(--line);padding:25px 4vw;color:var(--muted);font-size:12px}.loading{padding:60px}.coverage{font-size:12px;color:var(--muted)}@media(max-width:1050px){.stock-grid{grid-template-columns:repeat(2,1fr)}.layout{grid-template-columns:145px minmax(0,1fr);gap:18px}.two-col{grid-template-columns:1fr}}@media(max-width:700px){header{padding:15px 5vw}.brand{font-size:23px}.brand span{font-size:10px;max-width:120px}.edition{display:none}main{padding:25px 5vw}h1{font-size:33px}.index-number{display:none}.stats{grid-template-columns:1fr 1fr}.stat{padding:15px;border-bottom:1px solid var(--line)}.stat strong{font-size:24px}.stock-grid{grid-template-columns:1fr}.layout{display:block}.sidenav{position:static;display:flex;overflow:auto;gap:3px;padding-bottom:15px;white-space:nowrap}.sidenav a{border-left:0;border-bottom:2px solid var(--line);padding:7px 10px}.nav-label{display:none}.panel{padding:20px}.risk-grid{grid-template-columns:1fr}.toprow{align-items:start}.kv{grid-template-columns:1fr}.kv .value{padding-bottom:4px}}@media print{header,.sidenav,.controls,.chart-controls,footer{display:none}.layout{display:block}.panel{break-inside:avoid}.stats{grid-template-columns:repeat(4,1fr)}body{background:white}}

.composition{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0 26px}.composition-row>div:first-child{display:flex;justify-content:space-between;gap:15px;font-size:14px}.composition-row small{color:var(--muted);font-size:12px}.bar-track{height:12px;background:#e9eee5;margin:7px 0;border-radius:2px;overflow:hidden}.bar-track i{height:100%;display:block}.prose h3{white-space:normal;margin-top:20px}@media(max-width:700px){.composition{grid-template-columns:1fr}.toprow>div{min-width:0}.toprow .price{font-size:25px}}

/* Research presentation v2 */
.company-hero{display:flex;justify-content:space-between;gap:34px;align-items:flex-end;padding:28px 0 24px;border-bottom:3px solid var(--green);position:relative}.company-hero:before{content:"";position:absolute;left:0;bottom:-3px;width:128px;height:3px;background:var(--gold)}.company-hero h1{margin:6px 0 4px}.company-hero p{margin:0;color:var(--muted)}.eyebrow{color:var(--gold);font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase}.hero-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.hero-tags span{font-size:12px;padding:4px 9px;background:#e8eee8;color:var(--green);border-radius:2px}.quote{text-align:right;min-width:220px}.quote strong{display:block;font:650 44px/1.1 system-ui}.quote>span{font-size:18px;font-weight:650}.quote small{display:block;color:var(--muted);margin-top:7px}.hero-stats{margin-top:0;border-top:0}.section-head{display:flex;gap:14px;align-items:baseline;margin-bottom:22px;border-bottom:1px solid var(--line);padding-bottom:13px}.section-head span{font:17px Georgia,serif;color:var(--gold)}.section-head h2{margin:0}.subhead{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin:28px 0 12px}.subhead h3{margin:0}.subhead span{color:var(--muted);font-size:12px}.business-intro{border-left:4px solid var(--gold);background:#f4eedf;padding:20px 23px;margin-bottom:26px}.business-intro span{font-size:12px;color:var(--gold);font-weight:700;letter-spacing:1px}.business-intro p{font-size:17px;line-height:1.9;margin:8px 0 0}.stacked{display:flex;height:32px;width:100%;overflow:hidden;border-radius:3px;background:#e7ebe4}.stacked i{display:flex;align-items:center;justify-content:center;min-width:2px;color:white;font-style:normal;font-size:11px;overflow:hidden;white-space:nowrap}.composition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 26px;margin-top:15px}.composition-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;align-items:start;padding:11px 0;border-bottom:1px solid var(--line)}.composition-row .swatch{width:9px;height:9px;border-radius:2px;margin-top:7px}.composition-row b{font-size:14px}.composition-row small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.composition-row strong{font:600 17px/1.5 system-ui}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric-card{border:1px solid var(--line);background:#fafbf6;padding:16px;min-width:0}.metric-card small{display:block;color:var(--muted);line-height:1.45;min-height:40px}.metric-card strong{display:block;font:600 24px/1.25 system-ui;margin:5px 0}.metric-card strong em{font:12px/1.2 inherit;color:var(--muted);margin-left:4px}.metric-card>span{font-size:12px;color:var(--muted)}.metric-card i{font-style:normal}.finance-kpis{margin-bottom:20px}.chart-shell{border:1px solid var(--line);padding:18px 18px 8px;background:#fff;margin:18px 0}.chart-tabs{display:flex;justify-content:flex-end;gap:5px}.chart-tabs button{padding:6px 12px;font-size:12px}.chart-tabs button.active{background:var(--green);color:white}.finance-note,.research-note{padding:12px 16px;background:#edf1e8;color:var(--muted);font-size:13px;margin:14px 0 24px}.finance-table{margin:28px 0}.finance-table .table-wrap{max-height:none}.finance-table th:first-child,.finance-table td:first-child{position:sticky;left:0;background:var(--card);min-width:260px;z-index:1}.finance-table th:first-child{background:#eff1e9}.finance-table table{white-space:nowrap}.estimate-head{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);margin-bottom:18px}.estimate-head .stat{border-right:1px solid var(--line)}.estimate-head .stat:last-child{border:0}.valuation-layout{align-items:start}.valuation-row{padding:13px 0}.valuation-row>div:first-child{display:flex;justify-content:space-between;gap:10px}.valuation-row small{color:var(--muted)}.thesis-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.thesis-grid article{border-top:3px solid var(--green);background:#f8f8f2;padding:21px}.thesis-grid article>span{color:var(--gold);font-size:12px;font-weight:700;letter-spacing:.6px}.thesis-grid h3{font-size:20px;margin:9px 0}.thesis-grid p{color:#4e5e55;font-size:15px;line-height:1.8;margin:0}.timeline{position:relative}.timeline:before{content:"";position:absolute;top:8px;bottom:10px;left:91px;width:1px;background:var(--line)}.timeline article{position:relative;padding:0 0 25px 124px}.timeline article:before{content:"";position:absolute;left:86px;top:7px;width:9px;height:9px;border-radius:50%;background:var(--gold)}.timeline article>div{position:absolute;left:0;top:0;width:75px;text-align:right}.timeline article>div span,.timeline article time{display:block;font-size:11px;color:var(--muted)}.timeline h3{margin:0 0 6px;font-size:17px}.timeline p{font-size:14px;color:#4e5e55;margin:0}.timeline article>small{font-size:11px;color:var(--muted)}.market-layout{grid-template-columns:1.35fr .85fr}.market-layout .chart-shell{margin:0}.market-kpis{grid-template-columns:repeat(2,1fr)}.signal-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.signal-list span{font-size:12px;border:1px solid var(--line);padding:6px 9px;background:#fff}.risk-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.risk-columns>div{background:#f8f8f2;border-top:3px solid var(--gold);padding:20px}.risk-columns ol{padding-left:22px;margin:0}.risk-columns li{padding:7px 0}.wind-note{font-size:12px;color:var(--muted);padding:18px 0 4px;border-top:1px solid var(--line)}.compact-table table{white-space:normal}.compact-table th,.compact-table td{font-size:13px}.numeric{text-align:right}.overview-stats{margin-bottom:24px}.stock-card>p{min-height:48px;color:var(--muted);font-size:13px}.card-top{display:flex;justify-content:space-between;gap:10px}.type-bank{--section-accent:#486781}.type-insurance{--section-accent:#677794}.type-broker{--section-accent:#7d6a93}.type-cyclical{--section-accent:#8e6844}.type-growth{--section-accent:#386f69}.type-consumer{--section-accent:#8b6658}.type-yield{--section-accent:#66784f}.type-industrial{--section-accent:#526f7b}.stock-card[class*="type-"]{border-top-color:var(--section-accent)}.company-hero[class*="type-"]{border-bottom-color:var(--section-accent)}
@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(2,1fr)}.market-layout{grid-template-columns:1fr}.estimate-head{grid-template-columns:repeat(2,1fr)}.estimate-head .stat:nth-child(2){border-right:0}.estimate-head .stat:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:700px){.company-hero{align-items:flex-start}.quote{min-width:112px}.quote strong{font-size:29px}.quote small{font-size:10px}.composition-grid,.thesis-grid,.risk-columns{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr 1fr}.metric-card{padding:12px}.metric-card strong{font-size:20px}.timeline:before{left:8px}.timeline article{padding-left:31px}.timeline article:before{left:4px}.timeline article>div{position:static;width:auto;text-align:left;display:flex;gap:8px;margin-bottom:5px}.timeline article>div span,.timeline article time{display:inline}.finance-table th:first-child,.finance-table td:first-child{min-width:190px}.estimate-head{grid-template-columns:1fr 1fr}}

/* Research narrative v3 */
.memo-verdict{position:relative;padding:27px 30px 25px;background:linear-gradient(135deg,#183d34,#2f6153);color:white;margin-bottom:18px;overflow:hidden}.memo-verdict:after{content:"";position:absolute;width:210px;height:210px;border:1px solid #ffffff1f;border-radius:50%;right:-78px;top:-92px}.memo-verdict>span,.event-lead>span,.expectation-callout>span,.market-read span{display:block;color:#e3c793;font-size:12px;font-weight:700;letter-spacing:1.3px;margin-bottom:8px}.memo-verdict h3{font-size:24px;line-height:1.55;max-width:970px;margin:0 0 10px}.memo-verdict p{max-width:900px;color:#e7eee9;margin:0}.research-grid,.analysis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.research-card{position:relative;padding:21px 22px;background:#f7f8f2;border:1px solid var(--line);border-top:3px solid var(--section-accent,var(--green));min-width:0}.research-card>span{display:block;color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.7px}.research-card h3{font-size:19px;line-height:1.5;margin:8px 0}.research-card p{color:#4c5d54;font-size:14px;line-height:1.85;margin:0}.research-card.positive{border-top-color:#4f7a61}.research-card.negative{border-top-color:#a85f4f}.research-card.watch{border-top-color:var(--gold)}.research-card.primary{background:#eef2e9}.analysis-grid.compact{margin-bottom:24px}.expectation-callout,.event-lead,.market-read{padding:21px 24px;background:#f4eedf;border-left:4px solid var(--gold);margin-bottom:22px}.expectation-callout h3,.event-lead h3,.market-read h3{font-size:21px;line-height:1.65;margin:0}.event-lead p,.market-read p{color:#526158;margin:9px 0 0}.event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.event-grid article{border:1px solid var(--line);padding:19px 20px;background:#fafbf6}.event-meta{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:11px}.event-grid h3{font-size:17px;line-height:1.55;margin:9px 0}.event-grid p{font-size:13px;line-height:1.75;color:#56635c}.impact-path{border-top:1px solid var(--line);padding-top:11px;display:grid;grid-template-columns:auto 1fr;gap:9px;font-size:12px}.impact-path b{color:var(--gold)}.impact-path span{color:var(--muted)}.market-read{display:grid;grid-template-columns:1.25fr .75fr;gap:28px;align-items:center;background:#edf1e8;border-left-color:var(--section-accent,var(--green))}.market-read p{border-left:1px solid #cbd4c8;padding-left:24px}.scenario-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px}.scenario-grid article{padding:22px;border:1px solid var(--line);background:#fafbf6}.scenario-grid article>span{font-size:12px;font-weight:700;letter-spacing:.8px}.scenario-grid h3{font-size:19px;line-height:1.55;margin:9px 0}.scenario-grid p{font-size:14px;line-height:1.82;color:#536158;margin:0}.scenario-grid .bull{border-top:4px solid #4f7a61}.scenario-grid .bull>span{color:#4f7a61}.scenario-grid .base{border-top:4px solid var(--gold)}.scenario-grid .base>span{color:var(--gold)}.scenario-grid .bear{border-top:4px solid #a85f4f}.scenario-grid .bear>span{color:#a85f4f}.research-checks>div{background:#f7f8f2;padding:20px 23px;border:1px solid var(--line)}.research-checks ol{padding-left:22px;margin:0}.research-checks li{padding:7px 0;color:#4d5d55}.appendix-intro{background:#edf1e8;border-left:4px solid var(--section-accent,var(--green));padding:19px 22px}.appendix-intro h3{margin:0 0 7px}.appendix-intro p{margin:0;color:#536158}.section-appendix .finance-table{margin-top:30px}.section-appendix .subhead{margin-top:0}
@media(max-width:1050px){.scenario-grid{grid-template-columns:1fr}.market-read{grid-template-columns:1fr}.market-read p{border-left:0;border-top:1px solid #cbd4c8;padding:14px 0 0}.event-grid{grid-template-columns:1fr}}
@media(max-width:700px){.research-grid,.analysis-grid{grid-template-columns:1fr}.memo-verdict{padding:21px}.memo-verdict h3{font-size:20px}.event-meta{display:block}.event-meta time{display:block;margin-top:3px}.scenario-grid article{padding:18px}.section-appendix{padding-left:13px;padding-right:13px}}

/* Page-level research audio */
.tts-player{position:fixed;right:22px;bottom:22px;z-index:40;display:flex;flex-direction:column-reverse;align-items:flex-end;gap:9px}.tts-trigger{display:flex;align-items:center;gap:8px;min-height:43px;padding:9px 16px;border:1px solid #ffffff26;border-radius:999px;background:#183d34;color:#fff;box-shadow:0 8px 28px #142e2730;font-size:14px;font-weight:650}.tts-trigger:hover{background:#245b4a}.tts-icon{display:inline-grid;place-items:center;width:20px;height:20px;font-size:11px;color:#e3c793}.tts-panel{width:290px;padding:15px;border:1px solid var(--line);border-radius:8px;background:#fffef9;box-shadow:0 12px 36px #142e2726}.tts-panel[hidden]{display:none}.tts-panel-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px}.tts-panel-head b{display:block;font-size:15px}.tts-panel-head small{display:block;margin-top:3px;color:var(--muted);font-size:12px}.tts-panel-head>span{white-space:nowrap;padding:2px 7px;border-radius:2px;background:#edf1e8;color:var(--green);font-size:11px}.tts-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.tts-actions button{padding:7px 8px;border-radius:4px;background:#f7f8f2;font-size:13px}.tts-actions button:hover:not(:disabled){border-color:#8fa399;background:#edf1e8}.tts-actions button:disabled{cursor:not-allowed;opacity:.48}.tts-player.is-speaking .tts-icon{animation:tts-pulse 1.15s ease-in-out infinite}@keyframes tts-pulse{50%{opacity:.48;transform:scale(.88)}}@media(prefers-reduced-motion:reduce){.tts-player.is-speaking .tts-icon{animation:none}}@media(max-width:700px){.tts-player{right:12px;bottom:12px}.tts-panel{width:min(290px,calc(100vw - 24px))}.tts-trigger{min-height:42px;padding:8px 14px}}@media print{.tts-player{display:none}}
