:root{--vt-bg:#0b0e14;--vt-panel:#10141d;--vt-panel-2:#131924;--vt-line:#202836;--vt-grid:#1b2431;--vt-text:#e9edf4;--vt-muted:#7f8b9e;--vt-blue:#4c8dff;--vt-cyan:#32c5d2;--vt-orange:#ff9f43;--vt-green:#37c99b;--vt-red:#ef5b68;--vt-roe:#d978e8;--vt-roa:#37c99b;--vt-netde:#f2ca52;--vt-eqratio:#ff9f43}
.vt-page{background:var(--vt-bg);overflow-x:clip;overflow-y:visible}
.vt-layout{grid-template-columns:256px minmax(0,1fr) 190px;min-height:calc(100vh - 54px);background:var(--vt-bg)}
.vt-layout>.sidebar,.vt-layout>.right-sidebar{background:#0d1119;border-color:var(--vt-line);color:var(--vt-text)}
.vt-layout>.right-sidebar .rs-accord-btn,.vt-layout>.right-sidebar .rs-accord-body{background:#0d1119;border-color:var(--vt-line);color:#a9b3c3}
.vt-layout>.right-sidebar .rs-link{color:#8e9aad!important;background:transparent!important}
.vt-layout>.right-sidebar .rs-link:hover,.vt-layout>.right-sidebar .rs-link.active{color:#fff!important;background:#182131!important}
.vt-main{min-width:0;padding:0;background:var(--vt-bg);color:var(--vt-text);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
.vt-sidebar{min-width:0;overflow:hidden}
.vt-side-head{padding:var(--kb-space-3);border-bottom:1px solid var(--vt-line)}
.vt-side-head input{box-sizing:border-box;width:100%;height:34px;padding:0 var(--kb-space-3);border:1px solid #283244;border-radius:var(--kb-radius-sm);background:#131924;color:var(--vt-text);font:inherit;font-size:.76rem;outline:none}
.vt-side-head input::placeholder{color:#647085}.vt-side-head input:focus{border-color:var(--vt-blue)}
.vt-side-tabs,.vt-sort-row{display:flex;border-bottom:1px solid var(--vt-line)}
.vt-side-tab,.vt-sort{border:0;background:transparent;color:#68758a;font:inherit;font-size:.68rem;font-weight:700;cursor:pointer}
.vt-side-tab{flex:1;padding:var(--kb-space-2) 5px;border-bottom:2px solid transparent}.vt-side-tab.active{border-color:var(--vt-blue);color:#dbe7ff}
.vt-sort-row{gap:3px;padding:6px}.vt-sort{flex:1;padding:5px 3px;border-radius:var(--kb-radius-sm)}.vt-sort:hover{color:#c7d2e3;background:#151c28}.vt-sort.active{color:#fff;background:#222c3c}
.vt-side-label{padding:7px var(--kb-space-3);color:#58657a;font-size:.61rem;letter-spacing:.02em;border-bottom:1px solid var(--vt-line)}
.vt-list{height:calc(100vh - 190px);overflow:auto;scrollbar-width:thin;scrollbar-color:#303b4d transparent}
.vt-row{display:block;width:100%;padding:var(--kb-space-2) var(--kb-space-3);border:0;border-bottom:1px solid #171d28;border-left:2px solid transparent;background:transparent;color:inherit;text-align:left;cursor:pointer}
.vt-row:hover{background:#141b27}.vt-row.selected{border-left-color:var(--vt-blue);background:#172235}
.vt-row-top{display:flex;align-items:baseline;gap:7px;min-width:0}.vt-row-ticker{flex:0 0 auto;color:#e8edf7;font-size:.8rem;font-weight:800}.vt-row-name{min-width:0;overflow:hidden;color:#8d99ab;font-size:.69rem;text-overflow:ellipsis;white-space:nowrap}
.vt-row-sub{display:flex;align-items:center;gap:9px;margin-top:3px;color:#566277;font-size:.59rem}.vt-row-sub strong{color:#8996a9;font-weight:600}.vt-row-cap{margin-left:auto;color:#6f7d91}
.vt-list-loading,.vt-list-empty{padding:28px 12px;color:#657287;font-size:.7rem;text-align:center}
.vt-symbolbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;min-height:52px;padding:0 var(--kb-space-4);border-bottom:1px solid var(--vt-line);background:rgba(11,14,20,.94);backdrop-filter:blur(14px)}
/* 2026-09-03: h1 になった。見出しの既定の余白・字送りを打ち消して見た目は据え置く。
   末尾の「のバリュエーション推移」は読み上げと検索向けで、画面には出さない。 */
.vt-symbol{display:flex;align-items:baseline;min-width:0;gap:8px;margin:0;font-size:var(--kb-fs-label);font-weight:inherit}  /* 2026-09-03: h1自身の字サイズをサイト標準の --kb-fs-label へ。子は rem 指定なので見た目とバー高さは不変 */
.vt-h1-suffix{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.vt-symbol strong{font-size:1.04rem;letter-spacing:.02em}.vt-symbol>span{overflow:hidden;max-width:300px;color:#c4ccda;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.vt-symbol small{color:#5f6b7e;font-size:.62rem}
.vt-symbol-values{display:flex;gap:15px;margin-left:auto}.vt-symbol-value{display:flex;align-items:baseline;gap:4px}.vt-symbol-value span{color:#59667a;font-size:.58rem}.vt-symbol-value strong{font-size:.76rem}.vt-symbol-value.blue strong{color:#7aabff}.vt-symbol-value.orange strong{color:#ffb56c}
.vt-company-link{display:grid;place-items:center;width:28px;height:28px;margin-left:13px;border:1px solid #273143;border-radius:var(--kb-radius-sm);color:#9aa6b8;text-decoration:none}.vt-company-link:hover{border-color:#55647a;color:#fff}
.vt-panel{border-bottom:1px solid var(--vt-line);background:var(--vt-panel)}
.vt-panelbar{display:flex;align-items:center;justify-content:space-between;min-height:43px;padding:0 var(--kb-space-3);border-bottom:1px solid var(--vt-line);background:#0e121a}
.vt-metric-tabs,.vt-mode-tabs,.vt-scale-tabs,.vt-periods,.vt-fund-metrics,.vt-fund-controls,.vt-control-stack,.vt-profitability-tabs,.vt-subtabs,.vt-sub-metrics{display:flex;align-items:center;gap:2px;min-width:0}
.vt-fund-controls{max-width:75%;gap:7px}
/* .vt-fund-metrics に overflow を付けないこと。中の <details> は絶対配置で外へ開くので、
   スクロール箱にすると開いても見えなくなる（2026-08-27 の不具合）。 */
.vt-fund-metrics{overflow:visible}
.vt-metric,.vt-mode,.vt-scale,.vt-period,.vt-fund-metric,.vt-price-toggle,.vt-profitability,.vt-subtab{padding:var(--kb-space-2) var(--kb-space-2);border:0;border-radius:var(--kb-radius-sm);background:transparent;color:#6f7c90;font:inherit;font-size:.66rem;font-weight:700;white-space:nowrap;cursor:pointer}
.vt-metric:hover,.vt-mode:hover,.vt-scale:hover,.vt-period:hover,.vt-fund-metric:hover,.vt-price-toggle:hover,.vt-profitability:hover,.vt-subtab:hover{color:#c8d2e1;background:#171e2a}
.vt-metric.active,.vt-fund-metric.active{color:#fff;background:#245db8}.vt-mode.active,.vt-scale.active,.vt-subtab.active{color:#e8edf5;background:#222b39}.vt-period.active{color:#b9c7da;background:#18202c}
.vt-profitability-tabs{flex:0 0 auto;padding-left:8px;border-left:1px solid var(--vt-line)}
.vt-profitability-tabs>span{padding-right:2px;color:#59667a;font-size:.57rem;font-weight:700;white-space:nowrap}
.vt-profitability{padding:5px 7px}
.vt-profitability.active[data-profitability="roe"]{color:#17091a;background:var(--vt-roe)}
.vt-profitability.active[data-profitability="roa"]{color:#08150f;background:var(--vt-roa)}
.vt-profitability.active[data-profitability="net_de_ratio"]{color:#1a1405;background:var(--vt-netde)}
.vt-profitability.active[data-profitability="equity_ratio"]{color:#1a0f02;background:var(--vt-eqratio)}
.vt-subtab{padding:5px 7px}
.vt-subtabs{padding-right:6px;border-right:1px solid var(--vt-line)}
/* 下段チャートの操作バー。チャートの真上に置く（パネル上端に置くと、下段を見る
   位置までスクロールした時点で操作が画面の外へ出る）。 */
.vt-subbar{display:flex;align-items:center;gap:6px;min-height:32px;padding:0 var(--kb-space-3);border-top:1px solid var(--vt-line);background:#0e121a}
.vt-subbar>.vt-sub-metrics{padding-left:0}
.vt-subbar-right{margin-left:auto}
.vt-check[hidden],.vt-clip-limit[hidden]{display:none}
.vt-price-toggle{flex:0 0 auto;border-left:1px solid #273143;border-radius:0;color:#586579}.vt-price-toggle.active{color:#e6edf7}.vt-price-toggle.active::before{content:"";display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:#e6edf7;vertical-align:1px}.vt-price-toggle[hidden]{display:none}
.vt-control-stack{gap:10px}.vt-scale-tabs{padding-right:8px;border-right:1px solid var(--vt-line)}
.vt-chart-wrap{position:relative;overflow:hidden;background:var(--vt-panel)}
.vt-valuation-wrap{height:410px}.vt-profitability-wrap{height:165px;border-top:1px solid var(--vt-line)}.vt-fund-wrap{height:320px}.vt-market-wrap{height:350px}.vt-shares-wrap{height:300px}
.vt-profitability-block[hidden]{display:none}
.vt-profitability-wrap[hidden]{display:none}
/* 下段の但し書き。空欄の種類と、比率の作り方を出す場所。 */
.vt-sub-note{padding:5px var(--kb-space-3) 7px;border-top:1px solid var(--vt-line);color:var(--vt-muted);font-size:.66rem;line-height:1.6}
.vt-sub-note[hidden]{display:none}
.vt-candle-wrap{height:300px}
.vt-legend{align-items:center;color:#8a94a6;display:inline-flex;font-size:.68rem;gap:5px;white-space:nowrap}
.vt-legend i{border-radius:var(--kb-radius-sm);display:inline-block;height:8px;margin-left:6px;width:10px}
.vt-legend i:first-child{margin-left:0}
.vt-chart-wrap canvas{display:block;width:100%;height:100%;touch-action:none}
.vt-chart-overlay{position:absolute;left:0;top:0;z-index:3;pointer-events:none}
.vt-chart-resizer{position:relative;z-index:7;height:8px;margin-top:-4px;margin-bottom:-4px;cursor:ns-resize;touch-action:none;outline:none}
.vt-chart-resizer::after{content:"";position:absolute;top:3px;left:calc(50% - 24px);width:48px;height:2px;border-radius:var(--kb-radius-sm);background:#2a3546;transition:background .15s,width .15s}
.vt-chart-resizer:hover::after,.vt-chart-resizer:focus-visible::after,.vt-chart-resizer.active::after{left:calc(50% - 34px);width:68px;background:#4c8dff}
.vt-resizing,.vt-resizing *{cursor:ns-resize!important;user-select:none!important}
.vt-chart-badge{position:absolute;top:12px;right:18px;z-index:2;color:#68758a;font-size:.63rem;font-weight:700;pointer-events:none}
.vt-tooltip{display:none;position:absolute;z-index:6;min-width:130px;padding:8px var(--kb-space-3);border:1px solid #344055;border-radius:var(--kb-radius-sm);background:rgba(17,22,32,.97);box-shadow:0 8px 28px rgba(0,0,0,.4);color:#cdd5e2;font-size:.66rem;line-height:1.7;pointer-events:none;white-space:nowrap}.vt-tooltip b{color:#fff}.vt-tooltip i{display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%}
.vt-loading{position:absolute;inset:0;z-index:5;display:grid;place-items:center;background:rgba(13,17,25,.8)}.vt-loading.hidden{display:none}.vt-loading span{width:18px;height:18px;border:2px solid #263246;border-top-color:var(--vt-blue);border-radius:50%;animation:vt-spin .7s linear infinite}@keyframes vt-spin{to{transform:rotate(360deg)}}
.vt-stats{display:flex;align-items:center;gap:18px;min-height:35px;padding:0 var(--kb-space-4);border-top:1px solid #171e29;background:#0d1118;overflow:auto}
.vt-stat{display:flex;align-items:baseline;gap:5px;white-space:nowrap}.vt-stat span{color:#536074;font-size:.57rem}.vt-stat strong{color:var(--metric-color,#aeb9c9);font-size:.68rem}
.vt-source{padding:9px 14px;color:#384355;font-size:.56rem;text-align:right;letter-spacing:.03em}
@media(max-width:1200px){.vt-layout{grid-template-columns:236px minmax(0,1fr) 0}.vt-layout>.right-sidebar{display:none}}
@media(max-width:900px){.vt-layout{display:block}.vt-layout>.vt-sidebar{display:none}.vt-main{padding-bottom:12px;overflow:visible}.vt-symbolbar{padding:0 10px}.vt-symbol small{display:none}.vt-symbol-values{gap:7px}.vt-symbol-value span{display:none}.vt-panelbar{align-items:flex-start;flex-direction:column;gap:5px;padding:7px 8px;overflow:visible}.vt-metric-tabs,.vt-control-stack,.vt-panel-opts{max-width:100%;overflow-x:auto}.vt-fund-controls,.vt-fund-metrics{max-width:100%;overflow:visible}.vt-control-stack{align-items:flex-start;flex-direction:column;gap:4px}.vt-scale-tabs{border:0}.vt-valuation-wrap{height:340px}.vt-profitability-wrap{height:150px}.vt-fund-wrap{height:285px}.vt-market-wrap{height:310px}.vt-shares-wrap{height:265px}.vt-candle-wrap{height:260px}.vt-stats{gap:11px;padding:0 10px}.vt-metric,.vt-mode,.vt-scale,.vt-period,.vt-fund-metric,.vt-price-toggle,.vt-profitability{padding:5px 7px}.vt-subbar{flex-wrap:wrap;gap:4px;padding:5px 10px}.vt-subbar-right{margin-left:0}}
@media(max-width:520px){.vt-symbol>span{max-width:135px}.vt-symbol-values .vt-symbol-value:nth-child(n+3){display:none}.vt-valuation-wrap{height:310px}.vt-fund-wrap,.vt-market-wrap{height:275px}.vt-shares-wrap{height:245px}}
.vt-quality-alert{display:inline-grid;place-items:center;width:15px;height:15px;margin-left:7px;border:1px solid #f2a33a;border-radius:50%;color:#f2a33a;font:700 10px/1 -apple-system,BlinkMacSystemFont,sans-serif;vertical-align:1px;cursor:help}

/* 3チャート共通の横軸レンジ（下端に固定） */
.vt-panel-opts{display:flex;align-items:center;gap:10px}
.vt-check{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border:1px solid #253044;border-radius:var(--kb-radius-sm);background:#131a25;color:#7f8da2;font-size:.64rem;font-weight:700;white-space:nowrap;cursor:pointer;user-select:none}
.vt-check:hover{border-color:#3c5a8d;color:#c3cddd}
.vt-check input{width:12px;height:12px;margin:0;accent-color:#4c8dff;cursor:pointer}
.vt-check:has(input:checked){border-color:#2f5fa8;background:#16243a;color:#dbe6f7}
.vt-check[hidden]{display:none}
.vt-clip-limit{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border:1px solid #253044;border-radius:var(--kb-radius-sm);background:#131a25;color:#7f8da2;font-size:.64rem;font-weight:700;white-space:nowrap}
.vt-clip-limit input{width:52px;padding:1px 4px;border:1px solid #253044;border-radius:var(--kb-radius-sm);background:#0d131c;color:#dbe6f7;font-size:.66rem;font-weight:700;text-align:right}
.vt-clip-limit input:focus{outline:none;border-color:#3c5a8d}
.vt-clip-limit.disabled{opacity:.45}
.vt-clip-limit.disabled input{cursor:not-allowed}
.vt-rangebar{position:sticky;bottom:0;z-index:12;display:flex;align-items:center;gap:12px;padding:7px var(--kb-space-4);border-top:1px solid var(--vt-line);background:rgba(11,14,20,.96);backdrop-filter:blur(14px)}
.vt-rangebar .vt-periods{flex:0 0 auto}
.vt-brush-wrap{position:relative;flex:1;min-width:0;height:46px;border:1px solid #1d2634;border-radius:var(--kb-radius-sm);overflow:hidden;background:#0b0e14}
.vt-brush-wrap canvas{display:block;width:100%;height:100%;cursor:ew-resize;touch-action:none}
.vt-range-label{flex:0 0 auto;color:#66748a;font-size:.62rem;font-weight:600;letter-spacing:.02em;white-space:nowrap}
@media(max-width:900px){
  .vt-rangebar{flex-wrap:wrap;gap:6px;padding:6px 8px}
  .vt-rangebar .vt-periods{order:1}
  .vt-range-label{order:2;margin-left:auto;font-size:.58rem}
  .vt-brush-wrap{order:3;flex:1 0 100%;height:40px}
}

/* 遡りチェック（所有者にだけ出る）。レンジバーの先頭に置く。
   .vt-check の見た目をそのまま使い、位置だけ整える。 */
.vt-rangebar .vt-deep-check{flex:0 0 auto}
@media(max-width:900px){.vt-rangebar .vt-deep-check{order:0}}

/* The shared theme owns the palette; keep valuation selectors stable across modes. */
html[data-theme] .vt-page { --vt-bg: var(--kb-bg); --vt-panel: var(--kb-surface); --vt-panel-2: var(--kb-surface-raised); --vt-line: var(--kb-border); --vt-grid: var(--kb-surface-subtle); --vt-text: var(--kb-text); --vt-muted: var(--kb-text-muted); --vt-blue: var(--kb-accent); --vt-cyan: var(--kb-info); --vt-orange: var(--kb-chart-series-3); --vt-green: var(--kb-positive); --vt-red: var(--kb-negative); }
html[data-theme] .vt-chart-wrap,
html[data-theme] .vt-brush-wrap { background: var(--kb-chart-bg); }

/* SSR の解説ブロック（.vt-about）。JS を待たずに読める本文をチャートの下に置く。
   色は --vt-* 経由なので、ライト/ダークのどちらでも取り残されない。 */
.vt-about .vt-panelbar h2{margin:0;font-size:var(--kb-fs-label);font-weight:800;letter-spacing:.06em;color:var(--vt-muted)}
.vt-about-body{padding:14px 16px 64px;max-width:78ch;color:var(--vt-text)}  /* 下端は sticky の .vt-rangebar が重なるので余白を確保 */
.vt-about-body h3{margin:16px 0 6px;font-size:.79rem;font-weight:700;color:var(--vt-blue)}
.vt-about-body h3:first-child{margin-top:0}
.vt-about-body p{margin:0;font-size:.76rem;line-height:1.9;color:var(--vt-text)}
@media(max-width:900px){.vt-about-body{padding:12px 10px 60px}}

/* ── テーマ追従の取りこぼし補修（2026-09-03 UX作業）──────────────────
   theme.css の html[data-theme] 層は .vt-profitability（下段 ROE/ROA 切替）を
   知らず、ライトテーマで hover だけ暗色チップ（#171e2a）が残っていた。
   theme.css は共有につき触らず、ここで他のタブ群と同じ作法に揃える。
   active の ROE/ROA 色（--vt-roe/--vt-roa）は両テーマ共通の設計値なので据え置く。 */
html[data-theme] .vt-profitability,html[data-theme] .vt-subtab{color:var(--kb-text-muted)}
html[data-theme] .vt-profitability:hover,html[data-theme] .vt-subtab:hover{color:var(--kb-text);background:var(--kb-surface-subtle)}
html[data-theme] .vt-subtab.active{color:var(--kb-text);background:var(--kb-surface-subtle)}
html[data-theme] .vt-subtabs{border-color:var(--kb-border)}
html[data-theme] .vt-subbar{border-color:var(--kb-border);background:var(--kb-surface)}
html[data-theme] .vt-sub-note{border-color:var(--kb-border);color:var(--kb-text-muted)}
html[data-theme] .vt-profitability-tabs{border-color:var(--kb-border)}
html[data-theme] .vt-profitability-tabs>span{color:var(--kb-text-subtle)}

/* スクリーニング条件での絞り込み（左サイドバー）。
   色は --vt-* だけで書く。html[data-theme] 側で同じ変数が明側へ差し替わるので、
   ここに生の色を書くと明るいテーマで白地に白文字になる。 */
.vt-screen{padding:7px var(--kb-space-3);border-bottom:1px solid var(--vt-line)}
.vt-screen-row{display:flex;gap:5px;align-items:center}
.vt-screen select{box-sizing:border-box;flex:1;min-width:0;height:30px;padding:0 6px;border:1px solid var(--vt-line);border-radius:var(--kb-radius-sm);background:var(--vt-panel-2);color:var(--vt-text);font:inherit;font-size:.72rem;outline:none;cursor:pointer}
.vt-screen select:focus{border-color:var(--vt-blue)}
.vt-screen-note{margin-top:5px;color:var(--vt-muted);font-size:.63rem;line-height:1.45}
.vt-screen-note.bad{color:var(--vt-orange)}
.vt-screen-link{display:inline-block;margin-top:5px;color:var(--vt-blue);font-size:.63rem;text-decoration:none}
.vt-screen-link:hover{text-decoration:underline}
.vt-screen-hint{margin-top:4px;color:var(--vt-muted);font-size:.61rem;line-height:1.45}
.vt-screen-hint a{color:var(--vt-blue)}

/* ローソクの切り替え。株価を出していないときは押せないことを見て分かるようにする
   （選択肢が在るのに効かない状態を画面に残さない）。 */
.vt-check.disabled{opacity:.45;cursor:not-allowed}
.vt-check.disabled input{cursor:not-allowed}
