@charset "UTF-8";
/* ===========================================================================
 *  /var/www/html/company/style.css   — 個別銘柄ページ 共通スタイル
 * ---------------------------------------------------------------------------
 *  2026-07-24: company/index.php の <style> 5ブロックを外部化。
 *  ★連結順は元ファイルの文書順そのまま。カスケード(後勝ち)を壊さないため、
 *    並べ替え禁止。追加するときも必ず該当セクションの末尾に足すこと。
 *  ※事前検証: 5ブロック間でセレクタの衝突は0件(名前空間が分離済み)。
 *
 *  2026-07-25: 14px以下のフォントを一律 +2px。本文 14px→16px。
 *    利用者2名から「文字が小さい」との指摘を受けての調整。基準は Yahoo!(16px)。
 *    15px以上(見出し・数値・チャート値)は据え置き。
 *    ★ th,td は white-space:nowrap のため、表の横幅が約14%広がる。
 *      はみ出す表があれば個別に対応すること。
 *    ★ .glabel は SVG のチャート軸ラベル。重なりが出たら 11px→9px に戻す。
 *    ※ .85em / .78em 指定(逆日歩・空売り)は body に連動して自動で拡大する。
 * ========================================================================= */

/* ==== 1. 共通(:root・レイアウト・表・カード・広告枠)  (旧 index.php 957行目) ==== */
:root{--bg:#0d1117;--panel:#141b24;--line:#2a3441;--ink:#e6edf3;--ink2:#b4c3d6;
 --ink3:#93a1b5;--up:#e8625f;--down:#4f93d6;--gold:#d4a843;--accent:#3fb6a8;
 --mono:ui-monospace,"Roboto Mono",Menlo,Consolas,monospace;
 --sans:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,system-ui,sans-serif;}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px 80px}
.top{border-bottom:1px solid var(--line);padding:14px 0;display:flex;align-items:baseline;gap:14px}
.logo{font-weight:700}
.logo a{color:inherit;text-decoration:none}
.logo b{color:var(--up)}
.crumb{color:var(--ink3);font-size:14px}

/* === メニューバー(/ir/、/compare/ と統一) === */
.top-nav{display:flex;gap:14px;font-size:14px;margin-left:14px}
.top-nav a{color:var(--ink2);text-decoration:none}
.top-nav a:hover{color:var(--accent)}
.top-nav a.current{color:var(--accent);font-weight:600}
@media(max-width:720px){
  .top-nav{font-size:13px;gap:10px;margin-left:8px}
}

/* === 銘柄セレクタ(令八式風)=== */
.top-spacer{flex:1}
.symbol-selector{
  position:relative;
  display:flex;
  align-items:center;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:4px;
  /* 【2026-07-07】navbar右スロット(高さ22px固定)に収める: 縦paddingを廃し
     height:100% で行内に収まる。PCでバーが約10px膨らむ縦ブレの解消 */
  height:100%;
  padding:0 12px;
  cursor:pointer;
  gap:8px;
  transition:background 0.1s;
  user-select:none;
}
.symbol-selector:hover{background:#1c2530}
.ss-code{
  font-family:var(--mono);
  font-weight:700;
  color:var(--ink);
  font-size:15px;
}
.ss-name{
  color:var(--ink3);
  font-size:13px;
  max-width:140px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ss-arrow{color:var(--ink3);font-size:11px}
.symbol-dropdown{
  position:absolute;
  top:100%;
  right:0;
  margin-top:4px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:4px;
  box-shadow:0 8px 24px rgba(0,0,0,0.5);
  min-width:320px;
  max-height:60vh;
  z-index:100;
  display:none;
  flex-direction:column;
}
.symbol-dropdown.open{display:flex}
.ss-search{
  padding:8px;
  border-bottom:1px solid var(--line);
}
.ss-search input{
  width:100%;
  background:var(--bg);
  border:1px solid var(--line);
  color:var(--ink);
  padding:7px 10px;
  border-radius:3px;
  font-size:14px;
  font-family:var(--sans);
  outline:none;
  box-sizing:border-box;
}
.ss-search input:focus{border-color:var(--accent)}
.ss-list{
  overflow-y:auto;
  flex:1;
  max-height:50vh;
}
.ss-item{
  padding:8px 12px;
  cursor:pointer;
  display:flex;
  gap:10px;
  align-items:baseline;
  border-bottom:1px solid var(--line);
  text-decoration:none;
  color:inherit;
}
.ss-item:hover{background:#1c2530}
.ss-item.current{background:rgba(63,182,168,0.15)}
.ss-item.current .ss-item-code{color:var(--accent)}
.ss-item-code{
  font-family:var(--mono);
  font-weight:600;
  color:var(--ink);
  min-width:60px;
  font-size:14px;
}
.ss-item-name{
  color:var(--ink3);
  font-size:13px;
}
@media(max-width:600px){
  .symbol-selector{padding:4px 8px}
  .ss-name{max-width:90px}
  .symbol-dropdown{
    min-width:260px;
    right:-10px;
  }
}
.id{padding:24px 0 16px;border-bottom:1px solid var(--line)}
.id .code{font-family:var(--mono);color:var(--accent);font-size:15px;letter-spacing:.1em}
.id .mkt{font-size:13px;color:var(--ink3);border:1px solid var(--line);border-radius:3px;
 padding:1px 6px;margin-left:8px}
.id h1{font-size:28px;font-weight:700;margin-top:4px}
.id .sector{color:var(--ink3);font-size:14px;margin-top:2px}
.cta{display:inline-block;margin-top:12px;font-size:14px;color:var(--bg);
 background:var(--accent);padding:5px 12px;border-radius:4px;text-decoration:none;font-weight:600}
/* 【2026-07-07】ヘッダーのアクションボタン列(旧サイトのボタン構成を移植)。
   セカンダリは枠線のみでCTAと主従を付ける。外部リンクは ↗ で明示(演出はしない) */
.hdr-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}
.hdr-actions .cta{margin-top:0}
.btn-sec{display:inline-block;font-size:14px;color:var(--ink,#dfe7f0);
 background:transparent;border:1px solid var(--line,#2a3441);
 padding:4px 12px;border-radius:4px;text-decoration:none}
.btn-sec:hover{border-color:var(--accent)}
.verdict{display:flex;margin:20px 0;border:1px solid var(--line);border-radius:8px;
 overflow:hidden;background:var(--panel);flex-wrap:wrap}
.verdict .cell{flex:1;min-width:130px;padding:13px 16px;border-right:1px solid var(--line)}
.verdict .k{font-size:13px;color:var(--ink3)}
.verdict .val{font-family:var(--mono);font-size:19px;font-weight:600;margin-top:3px}
.verdict .sub{font-size:13px;color:var(--ink3);margin-top:1px}
.pos{color:var(--up)}.neg{color:var(--down)}.neu{color:var(--gold)}
section{margin-top:32px}
.sh{display:flex;align-items:baseline;gap:10px;margin-bottom:14px;padding-bottom:7px;
 border-bottom:1px solid var(--line)}
/* === セクション折りたたみ(2026-07-06)=== */
.sec-block > .sh{cursor:pointer;user-select:none;position:relative}
.sec-block > .sh::after{content:'▼';position:absolute;right:6px;top:50%;
  transform:translateY(-50%);font-size:12px;color:var(--ink3,#93a1b5);transition:transform .15s}
.sec-block.collapsed > .sh::after{transform:translateY(-50%) rotate(-90deg)}
.sec-block.collapsed > *:not(.sh){display:none !important}
.sec-block > .sh:hover h2{color:var(--accent,#3fb6a8)}
/* 株テク指数パネルも同じ仕組みで開閉(kt-headをクリック) */
.kabutec-panel > .kt-head{cursor:pointer;user-select:none;position:relative}
.kabutec-panel > .kt-head::after{content:'▼';position:absolute;right:6px;top:50%;
  transform:translateY(-50%);font-size:12px;color:var(--ink3,#93a1b5);transition:transform .15s}
.kabutec-panel.collapsed > .kt-head::after{transform:translateY(-50%) rotate(-90deg)}
.kabutec-panel.collapsed > *:not(.kt-head){display:none !important}
/* セクション非表示(×ボタン)とリセットバー */
.sec-block.sec-hidden, .kabutec-panel.sec-hidden{display:none !important}
.sh-hide, .kt-hide{position:absolute;right:24px;top:50%;transform:translateY(-50%);
  font-size:15px;color:var(--ink3,#93a1b5);padding:2px 6px;border-radius:4px;
  opacity:.45;transition:opacity .15s,color .15s;line-height:1}
.sh:hover .sh-hide, .kt-head:hover .kt-hide{opacity:1}
.sh-hide:hover, .kt-hide:hover{color:#e8625f}
/* セクション上下移動ボタン(2026-07-06) */
.sec-mv{position:absolute;top:50%;transform:translateY(-50%);
  font-size:13px;color:var(--ink3,#93a1b5);padding:2px 5px;border-radius:4px;
  opacity:.45;transition:opacity .15s,color .15s;line-height:1}
.sec-mv.mv-up{right:64px}.sec-mv.mv-dn{right:44px}
.sh:hover .sec-mv, .kt-head:hover .sec-mv{opacity:1}
.sec-mv:hover{color:var(--accent,#3fb6a8)}
.sec-block > .sh{padding-right:84px}
.kabutec-panel > .kt-head{padding-right:84px}
.sec-restore-bar{margin:18px 0;padding:10px 16px;background:var(--panel,#161b22);
  border:1px dashed var(--line,#2a3441);border-radius:8px;font-size:14px;
  color:var(--ink3,#93a1b5);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sec-restore-bar button{background:none;border:1px solid var(--line,#2a3441);
  color:var(--accent,#3fb6a8);border-radius:6px;padding:4px 12px;font-size:14px;
  cursor:pointer}
.sec-restore-bar button:hover{border-color:var(--accent,#3fb6a8)}
/* テーブル横スクロール(2026-07-06 モバイル対応): 全データ表をJSで自動ラップ */
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.tbl-scroll > table{min-width:100%;width:max-content}
@media (max-width:640px){
  .tbl-scroll{margin:0 -4px;padding:0 4px}
}
/* グラフのモバイル対応(2026-07-06): 横長グラフのみ原寸維持+横スクロール。
   財務・CF系(440幅)は縮小フィットで俯瞰性を維持(実機確認によりスクロール不要と判断)。
   横長(880幅: 信用残・株式数)とミニチャートは原寸+横スクロール、初期位置は右端(最新側)。 */
@media (max-width:640px){
  .wide-chart-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .wide-chart-scroll svg[viewBox^="0 0 880"]{min-width:680px;display:block}
  /* ミニチャートは chat2 準拠の縦長SVG(360×560)。幅フィットで収め横スクロール廃止(2026-07-18) */
}

.sh .num{font-family:var(--mono);font-size:13px;color:var(--accent)}
.sh h2{font-size:15px;font-weight:700}.sh .note{margin-left:auto;font-size:13px;color:var(--ink3)}
.sh .ir-seeall{font-size:13px;color:var(--accent);text-decoration:none;padding:2px 8px;border:1px solid var(--line);border-radius:3px;transition:all 0.15s}
/* 企業概要【2026-07-20】AI要約(company_profile)。参考情報注記付き */
.cprofile{padding:4px 2px}
.cprofile-text{font-size:15.5px;color:var(--ink);line-height:1.9;margin:0 0 8px}
.cprofile-note{font-size:12.5px;color:var(--ink3);margin:0}

/* 株主優待カード【2026-07-18】要約表示。詳細は優待コーナーへ */
.yutai-card{padding:4px 2px}
.yutai-text{font-size:15.5px;color:var(--ink);line-height:1.8;margin:0 0 6px}
.yutai-meta{font-size:14.5px;color:var(--ink2);margin:0 0 4px}
.yutai-est{color:var(--ink3);font-size:13px}
.yutai-longterm{color:var(--gold,#d4a843)}
.yutai-asof{font-size:13px;color:var(--ink3);font-family:var(--mono,monospace);margin:0}
.sh .ir-seeall:hover{background:var(--accent);color:var(--bg);border-color:var(--accent)}
table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:15px}
th,td{padding:7px 10px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
th{color:var(--ink3);font-weight:500;font-size:13px}
td.lbl,th.lbl{text-align:left;font-family:var(--sans);color:var(--ink2)}
tbody tr:hover{background:var(--panel)}
.fc{color:var(--gold)}
.est{font-family:var(--sans);font-size:11px;color:var(--gold);border:1px solid var(--gold);
 border-radius:3px;padding:0 3px;margin-left:5px;vertical-align:1px;opacity:.8}
.charts{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:720px){.charts{grid-template-columns:1fr}}
.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px}
.card h3{font-size:14px;color:var(--ink2);font-weight:600}.card .cap{font-size:13px;color:var(--ink3);margin:2px 0 12px}
svg{display:block;width:100%;height:auto;overflow:visible}
.card svg{overflow:hidden}
.glabel{font-family:var(--mono);font-size:11px;fill:var(--ink3)}
.mgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:720px){.mgrid{grid-template-columns:repeat(2,1fr)}}
.metric{background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:13px 15px}
.metric .k{font-size:13px;color:var(--ink3)}
.metric .v{font-family:var(--mono);font-size:20px;font-weight:600;margin-top:4px}
.split-mark{display:inline-block;margin-left:8px;padding:2px 8px;font-size:12px;color:var(--bg);background:var(--accent);border-radius:10px;font-weight:500;letter-spacing:.5px;cursor:help}
.price-split-mark{display:inline-block;margin-left:10px;padding:3px 10px;font-size:13px;color:var(--bg);background:var(--accent);border-radius:11px;font-weight:600;letter-spacing:.5px;cursor:help;vertical-align:1px;white-space:nowrap}
.adj-mark{display:inline-block;margin-left:4px;font-size:12px;color:var(--accent);opacity:.7;cursor:help;font-weight:normal}
.adj-mark:hover{opacity:1}
.mini-chart-wrap{margin:16px 0;padding:14px;background:var(--card);border:1px solid var(--border);border-radius:8px}
.mini-chart-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;flex-wrap:wrap;gap:8px}
.mc-title{color:var(--fg);font-weight:500}
.mc-legend{color:var(--ink3,#93a1b5);display:inline-flex;gap:10px;align-items:center;flex-wrap:wrap}
.mc-legend i{display:inline-block;width:10px;height:10px;margin-right:3px;vertical-align:-1px;border-radius:1px}
.mc-up{background:#C73E3A}
.mc-dn{background:#1B5299}
.mc-ma5{background:#ffd166;height:2px !important;border-radius:0 !important;margin-bottom:3px}
.mc-ma25{background:#4dd0e1;height:2px !important;border-radius:0 !important;margin-bottom:3px}
.mc-ma75{background:#c792ea;height:2px !important;border-radius:0 !important;margin-bottom:3px}
.mc-bb{background:#7a8294;opacity:.5}
.mini-chart{display:block;width:100%;height:auto;max-width:420px;margin:0 auto}
/* PC/スマホでチャートを出し分け【2026-07-18】
   PC = 200本横長(/chat/準拠) / スマホ = 35本縦長(chat2準拠)
   境界640px はサイト既存のwide-chart-scroll等と一貫 */
.mc-pc{display:block}
.mc-sp{display:none}
.mc-pc .mini-chart{max-width:100%}
@media(max-width:640px){
  .mc-pc{display:none}
  .mc-sp{display:block}
}
@media(max-width:480px){
  .mini-chart-wrap{padding:8px;margin:12px -4px}
  .mc-legend{font-size:12px;gap:6px}
}
.news-list{display:flex;flex-direction:column;gap:8px}
.news-item{display:grid;grid-template-columns:90px 1fr auto;gap:12px;align-items:baseline;padding:10px 14px;background:var(--card);border:1px solid var(--line);border-radius:6px;min-width:0}
.news-date{font-size:13px;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.news-link{font-size:15px;color:var(--text-primary);text-decoration:none;line-height:1.5;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.news-link:hover{color:var(--accent);text-decoration:underline}
.news-source{font-size:13px;color:var(--text-muted);white-space:nowrap;padding:2px 8px;background:var(--bg);border-radius:3px}
@media(max-width:768px){
.news-item{grid-template-columns:1fr;gap:4px}
.news-link{white-space:normal;overflow:visible;text-overflow:unset}
.news-source{align-self:start;font-size:12px}
}
.ir-list{display:flex;flex-direction:column;gap:10px}
.ir-item{display:grid;grid-template-columns:80px 1fr;gap:14px;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:6px;min-width:0}
.ir-date{font-size:14px;color:var(--text-muted);font-variant-numeric:tabular-nums;line-height:1.4}
.ir-time{display:block;font-size:12px;opacity:.7;margin-top:2px}
.ir-body{min-width:0}
.ir-link{color:var(--text-primary);text-decoration:none;font-size:15px;line-height:1.5;display:inline-block}
a.ir-link:hover{color:var(--accent);text-decoration:underline}
.ir-pdf{display:inline-block;margin-left:8px;padding:1px 6px;font-size:11px;font-weight:500;color:var(--accent);background:var(--bg);border:1px solid var(--border);border-radius:3px;letter-spacing:.5px;vertical-align:middle}
.ir-summary{margin-top:8px;padding:10px 12px;font-size:14px;line-height:1.7;color:var(--text-secondary);background:var(--bg);border-left:3px solid var(--accent);border-radius:0 6px 6px 0}
@media(max-width:768px){
.ir-item{grid-template-columns:1fr;gap:6px}
.ir-date{display:flex;gap:8px;align-items:baseline}
.ir-time{display:inline;margin-top:0}
}
footer{margin-top:50px;padding-top:18px;border-top:1px solid var(--line);
 font-size:13px;color:var(--ink3);line-height:1.7}
.legend{font-size:13px;color:var(--ink3);margin-top:6px}

.quote{display:flex;gap:14px;flex-wrap:wrap;align-items:baseline;margin:8px 0 2px;font-size:15px;color:var(--ink)}
.quote .qdate{color:var(--ink3,#93a1b5);font-weight:600}
.quote .ohlc b{font-size:16px}
.quote .qvol{color:var(--ink3,#93a1b5)}
.quote .qclose{font-size:16px;letter-spacing:.02em}
.quote .qclose b{font-size:22px;font-weight:700;font-family:var(--mono);padding:0 4px}
.quote .qclose b.pos{color:var(--up)}
.quote .qclose b.down{color:var(--down)}
.quote .qclose b.neu{color:var(--ink)}
.quote .qdiff{font-family:var(--mono);font-size:15px;font-weight:600;margin-left:4px}
.quote .qdiff.pos{color:var(--up)}
.quote .qdiff.down{color:var(--down)}
.quote .qdiff.neu{color:var(--ink3)}

/* === 新レイアウト:銘柄情報 + 終値特大 + OHLC補助の3グリッド === */
.quote-grid{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:24px;
  align-items:start;
  margin:18px 0 4px;
  padding-top:8px;
}
.quote-close-block{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:180px;
}
.quote-close{
  font-family:var(--mono);
  display:flex;
  align-items:baseline;
  line-height:1;
}
.qc-price{
  font-size:42px;
  font-weight:700;
  letter-spacing:0.01em;
}
.qc-unit{
  font-size:16px;
  margin-left:4px;
  color:var(--ink2);
  font-weight:500;
}
.quote-close.pos .qc-price{color:var(--up)}
.quote-close.down .qc-price{color:var(--down)}
.quote-close.neu .qc-price{color:var(--ink)}
.quote-diff{
  font-family:var(--mono);
  font-size:16px;
  font-weight:600;
  margin-top:6px;
  letter-spacing:0.01em;
}
.quote-diff.pos{color:var(--up)}
.quote-diff.down{color:var(--down)}
.quote-diff.neu{color:var(--ink3)}
.qd-arrow{margin-right:4px;font-size:15px}
.qd-amount{margin-right:6px}
.qd-pct{font-weight:500}
.quote-date{
  margin-top:6px;
  font-size:13px;
  color:var(--ink3);
}
.quote-ohlc-block{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:18px;
  align-self:end;
  padding-bottom:4px;
}
.qo-item{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.qo-label{
  font-size:13px;
  color:var(--ink3);
  margin-bottom:3px;
  letter-spacing:0.05em;
}
.qo-value{
  font-family:var(--mono);
  font-size:15px;
  color:var(--ink);
  font-weight:500;
}
@media(max-width:720px){
  .quote-grid{
    grid-template-columns:1fr;
    gap:14px;
  }
  .quote-close-block{
    min-width:auto;
  }
  .qc-price{font-size:32px}
  .quote-ohlc-block{
    grid-template-columns:repeat(4, 1fr);
    gap:10px;
  }
  .qo-value{font-size:15px}
}
@media(max-width:480px){
  .quote-ohlc-block{
    grid-template-columns:repeat(2, 1fr);
    gap:10px;
  }
}
.quote .kabutec-idx{margin-left:auto;padding:4px 12px;border-radius:6px;border:1px solid var(--line,#2a3038);font-size:14px;color:var(--ink,#d9e0e8);cursor:help;letter-spacing:0.02em}
.quote .kabutec-idx b{font-size:18px;font-family:var(--mono,monospace);font-weight:700;margin-left:6px}
.quote .kabutec-idx.up{border-color:rgba(63,182,168,0.4);background:rgba(63,182,168,0.06)}
.quote .kabutec-idx.up b{color:#3fb6a8}
.quote .kabutec-idx.down{border-color:rgba(199,62,58,0.4);background:rgba(199,62,58,0.06)}
.quote .kabutec-idx.down b{color:#c73e3a}
.quote .kabutec-idx.neu b{color:var(--ink3,#6e7884)}

/* === 株テク指数 独立パネル(視覚バー、軸別内訳)=== */
.kabutec-panel{
  margin:20px 0;
  padding:20px 24px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:10px;
}
.kt-head{
  display:flex;
  align-items:baseline;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:18px;
}
.kt-label{
  font-size:16px;
  font-weight:600;
  color:var(--ink);
  letter-spacing:.05em;
}
.kt-value{
  font-family:var(--mono);
  font-size:36px;
  font-weight:700;
  line-height:1;
}
.kt-value.kt-up{color:var(--up)}   /* 【2026-07-17】プラス=赤(和式、株価表示と統一) */
.kt-value.kt-dn{color:var(--down)} /* マイナス=青 */
.kt-value.kt-neu{color:var(--ink3)}
.kt-basedate{font-size:13px;color:var(--ink3);margin-left:8px}
.kt-basedate.kt-stale{background:var(--gold);color:#0d1117;padding:1px 8px;border-radius:3px;font-weight:700}
.kt-note{
  margin-left:auto;
  font-size:13px;
  color:var(--ink3);
  font-style:italic;
}
.kt-bar{
  margin:14px 0 4px;
}
.kt-bar-track{
  position:relative;
  height:14px;
  /* グラデーションの中央(藍色→中立→鉱色のニュートラル点)を 0 の位置 47.1% に合わせる */
  background:linear-gradient(to right,
    rgba(199,62,58,0.15) 0%,
    rgba(199,62,58,0.05) 28.3%,
    rgba(147,161,181,0.1) 47.1%,
    rgba(63,182,168,0.05) 65.8%,
    rgba(63,182,168,0.15) 100%);
  border:1px solid var(--line);
  border-radius:7px;
  overflow:visible;
}
.kt-bar-center{
  position:absolute;
  left:47.1%; /* 0 の位置: -33 から +37 で 0 は 33/70 = 47.1% */
  top:-2px;
  bottom:-2px;
  width:1px;
  background:var(--ink3);
  opacity:.5;
}
.kt-bar-marker{
  position:absolute;
  top:50%;
  width:14px;
  height:14px;
  margin-left:-7px;
  margin-top:-7px;
  border-radius:50%;
  border:2px solid var(--bg);
  box-shadow:0 0 0 1px var(--line);
  transition:left 0.3s ease;
}
.kt-bar-marker.kt-up{background:var(--up)}
.kt-bar-marker.kt-dn{background:var(--down)}
.kt-bar-marker.kt-neu{background:var(--ink3)}
.kt-bar-scale{
  position:relative;
  height:14px;
  margin-top:8px;
  font-family:var(--mono);
  font-size:12px;
  color:var(--ink3);
}
.kt-bar-scale .scale-min{position:absolute;left:0}
.kt-bar-scale .scale-zero{position:absolute;left:47.1%;transform:translateX(-50%)}
.kt-bar-scale .scale-max{position:absolute;right:0}
.kt-detail{
  margin-top:16px;
  border-top:1px solid var(--line);
  padding-top:14px;
}
.kt-detail summary{
  cursor:pointer;
  font-size:14px;
  color:var(--accent);
  list-style:none;
  user-select:none;
}
.kt-detail summary::-webkit-details-marker{display:none}
.kt-detail summary:hover{color:var(--ink)}
.kt-detail[open] summary{margin-bottom:14px}
.kt-detail-desc{
  font-size:14px;
  color:var(--ink2);
  margin-bottom:12px;
  line-height:1.7;
}
.kt-axis-table{
  width:100%;
  margin:0;
  font-size:14px;
  border-collapse:collapse;
}
.kt-axis-table th,
.kt-axis-table td{
  padding:8px 12px;
  text-align:left;
  border-bottom:1px solid var(--line);
  font-family:var(--sans);
}
.kt-axis-table th{
  background:var(--bg);
  color:var(--ink3);
  font-weight:500;
  font-size:13px;
  letter-spacing:.05em;
}
.kt-axis-table td:nth-child(2){
  font-family:var(--mono);
  color:var(--gold);
  white-space:nowrap;
}
.kt-axis-table td:nth-child(3){
  color:var(--ink2);
  font-size:13.5px;
}
.kt-detail-note{
  margin-top:12px;
  font-size:13px;
  color:var(--ink3);
  line-height:1.6;
}
@media(max-width:600px){
  .kabutec-panel{padding:14px 16px}
  .kt-value{font-size:28px}
  .kt-note{font-size:12px;margin-left:0;width:100%}
  .kt-axis-table{font-size:13px}
  .kt-axis-table th,.kt-axis-table td{padding:6px 8px}
}
/* 株式推移グラフ用カード(横長)*/
.shares-chart-card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:8px;
  padding:14px 16px;
  margin-top:14px;
}
.shares-chart-card h3{
  margin:0 0 4px;
  font-size:15px;
  font-weight:600;
  color:var(--ink);
}
.shares-chart-card .cap{
  font-size:12px;
  color:var(--ink3);
  margin-bottom:6px;
}
.shares-chart-card svg{
  width:100%;
  height:auto;
  display:block;
}

/* === V4: グラフ重視レイアウト === */
.charts-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:16px;
  margin:14px 0 18px;
}
.charts-grid .card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:8px;
  padding:14px 16px;
}
.charts-grid .card h3{
  margin:0 0 4px;
  font-size:15px;
  font-weight:600;
  color:var(--ink);
}
.charts-grid .card .cap{
  font-size:12px;
  color:var(--ink3);
  margin-bottom:6px;
}
.charts-grid .card svg{
  width:100%;
  height:auto;
  display:block;
}
@media(max-width:720px){
  .charts-grid{grid-template-columns:1fr;gap:12px}
  .charts-grid .card{padding:12px 14px}
}

/* 数値表の折りたたみ */
.data-table-fold{
  margin-top:14px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:8px;
  overflow:hidden;
}
.data-table-fold summary{
  padding:10px 14px;
  cursor:pointer;
  font-size:14px;
  color:var(--ink2);
  user-select:none;
  list-style:none;
  display:flex;
  align-items:center;
  gap:6px;
}
.data-table-fold summary::-webkit-details-marker{display:none}
.data-table-fold summary:hover{background:rgba(255,255,255,0.02);color:var(--ink)}
.data-table-fold[open] summary{border-bottom:1px solid var(--line)}
.dt-fold-body{padding:14px 16px}
.dt-fold-body table{margin:0}

/* === 試作3版 追加スタイル === */
/* セクションブロック共通 */
.sec-block{margin-top:36px}

/* 独自計算マーカー(⊙) */
.calc-mark{display:inline-block;margin-left:4px;font-size:12px;color:var(--gold);opacity:.75;cursor:help;font-weight:normal;vertical-align:1px}
.calc-mark:hover{opacity:1}

/* 減損リスクマーク(無形資産・のれん) */
.risk-mark{display:inline-block;margin-left:4px;font-size:13px;color:var(--up);opacity:.7;cursor:help;font-weight:normal;vertical-align:0}
.risk-mark:hover{opacity:1}

/* verdict の cell に unit クラス */
.verdict .unit{font-size:13px;color:var(--ink3);margin-left:3px}

/* === e セクション 配当推移(横棒、中間+期末) === */
.div-history{
  margin:14px 0 24px;
  padding:18px 20px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:10px;
}
.div-history-title{
  font-size:15px;
  color:var(--ink2);
  font-weight:500;
  margin-bottom:14px;
}
.div-bars{
  /* 親を単一グリッドにして、全行で列幅を共有する(2026-07-03修正)。
     以前は各 .div-row が独立グリッドで、3列目(数値表記)が auto のため
     「28.00 + 60.00 = 88.00円」の行と「84.00円」だけの行で3列目の幅が違い、
     バー領域(1fr)の物理幅が行ごとにズレて、88円のバーより84円(予)の
     バーが長く見える不具合があった。スマホ幅では .div-detail が消えて
     全行同幅になるため症状が出なかった。 */
  display:grid;
  grid-template-columns:80px 1fr auto;
  column-gap:14px;
  row-gap:8px;
  align-items:center;
}
.div-row{display:contents}
/* display:contents の要素には opacity が効かないため、子要素へ適用 */
.div-row-fc > *{opacity:.72}
.div-row-fc .div-period::after{content:" (予)";font-size:12px;color:var(--ink3)}
.div-period{
  font-family:var(--mono);
  font-size:14px;
  color:var(--ink2);
  white-space:nowrap;
  text-align:right;
}
.div-bar-wrap{min-width:0}
.div-bar-track{
  position:relative;
  height:18px;
  background:var(--bg);
  border:1px solid var(--line);
  border-radius:4px;
  overflow:hidden;
  /* display:flex を廃止(2026-07-03):
     flex コンテナでは子要素の width:X% が flex-shrink で自動縮小され、
     chukan+kimatsu 分割バー(合算100%)と total 単独バー(95%)で
     見た目の長さが逆転する不具合があった。
     子要素は横並びの inline-block で、%指定の width をそのまま尊重させる。 */
  white-space:nowrap;
  font-size:0;
}
.div-bar-track > div{
  display:inline-block;
  vertical-align:top;
}
.div-bar-chukan{
  background:linear-gradient(90deg, rgba(216,158,67,0.5), rgba(216,158,67,0.7));
  height:100%;
  transition:width 0.3s ease;
}
.div-bar-kimatsu{
  background:linear-gradient(90deg, rgba(63,182,168,0.5), rgba(63,182,168,0.7));
  height:100%;
  transition:width 0.3s ease;
}
.div-bar-total{
  background:linear-gradient(90deg, rgba(216,158,67,0.4), rgba(216,158,67,0.8));
  height:100%;
  transition:width 0.3s ease;
}
.div-row-fc .div-bar-chukan,
.div-row-fc .div-bar-kimatsu,
.div-row-fc .div-bar-total{
  background-image:repeating-linear-gradient(45deg,
    rgba(216,158,67,0.5) 0,
    rgba(216,158,67,0.5) 4px,
    rgba(216,158,67,0.3) 4px,
    rgba(216,158,67,0.3) 8px);
}
.div-total{
  font-family:var(--mono);
  font-size:15px;
  color:var(--ink);
  white-space:nowrap;
  text-align:right;
}
.div-total b{
  color:var(--gold);
  font-size:16px;
  font-weight:700;
}
.div-detail{
  font-size:13px;
  color:var(--ink3);
  margin-right:4px;
}
.div-unit{
  font-size:13px;
  color:var(--ink3);
  margin-left:2px;
}
.div-legend{
  display:flex;
  gap:16px;
  margin-top:12px;
  font-size:13px;
  color:var(--ink3);
}
.div-legend-item{display:inline-flex;align-items:center;gap:5px}
.div-legend-item i{
  display:inline-block;
  width:12px;
  height:10px;
  border-radius:2px;
}
.div-legend-chukan{background:rgba(216,158,67,0.7)}
.div-legend-kimatsu{background:rgba(63,182,168,0.7)}
.div-legend-note{
  margin-top:10px;
  font-size:13px;
  color:var(--ink3);
  font-style:italic;
}
.div-unknown{
  font-size:14px;
  color:var(--ink3);
  font-style:italic;
  cursor:help;
}
@media(max-width:600px){
  .div-history{padding:14px 12px}
  .div-bars{grid-template-columns:60px 1fr auto;column-gap:8px}
  .div-period{font-size:13px}
  .div-detail{display:none}
  .div-bar-track{height:14px}
}

/* === バランスシート積み上げバー === */
.bs-bar-section{
  margin:14px 0 24px;
  padding:18px 20px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:10px;
}
.bs-bar-title{
  font-size:15px;
  color:var(--ink2);
  font-weight:500;
  margin-bottom:14px;
}
.bs-bar-wrap{position:relative}
.bs-bar{
  display:flex;
  height:40px;
  border-radius:6px;
  overflow:hidden;
  border:1px solid var(--line);
}
.bs-bar-fusai{
  background:linear-gradient(90deg, rgba(232,98,95,0.6), rgba(232,98,95,0.4));
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:14px;
  font-weight:500;
  white-space:nowrap;
  overflow:hidden;
  min-width:0;
}
.bs-bar-junshisan{
  background:linear-gradient(90deg, rgba(63,182,168,0.5), rgba(63,182,168,0.7));
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:14px;
  font-weight:500;
  white-space:nowrap;
  overflow:hidden;
  min-width:0;
}
.bs-bar-label{
  padding:0 12px;
  font-family:var(--mono);
  letter-spacing:.02em;
  text-overflow:ellipsis;
  overflow:hidden;
}
.bs-bar-total{
  font-family:var(--mono);
  font-size:15px;
  color:var(--ink);
  margin-top:10px;
  font-weight:500;
}
.bs-bar-note{
  font-size:13px;
  color:var(--ink3);
  margin-top:4px;
}
@media(max-width:600px){
  .bs-bar{height:48px}
  .bs-bar-label{font-size:13px;padding:0 6px}
  .bs-bar-fusai .bs-bar-label,.bs-bar-junshisan .bs-bar-label{
    display:block;
    line-height:1.3;
  }
}
/* === 広告枠(2026-07-21 / 2026-08-01 実装対応)=== */
/* panels外の不動要素。カード移動(swapNodes)・順序復元はこの枠を動かさない。 */
/* min-height でアドセンス実装時のレイアウトシフトを防止。 */
/* 【2026-08-01】display:flex を廃止して block に変更。
 *   旧実装は「CM 掲載予定」の1行を中央寄せするため flex + center だったが、
 *   広告を入れると <ins> がフレックスアイテムになって幅0まで潰れ、
 *   adsbygoogle が "No slot size for availableWidth=0" で配信不能になった。
 *   レスポンシブ広告(data-ad-format=auto)は親要素の幅を見てサイズを決めるため、
 *   block で幅をそのまま渡す必要がある。
 *   プレースホルダ用の文字装飾(color/font-size/letter-spacing)は用済みのため削除。
 *   点線枠は残す: 広告とコンテンツの区別はAdSenseポリシー上も求められる。 */
.ad-slot{margin:28px 0;min-height:120px;border:1px dashed var(--line,#39424e);
  border-radius:8px;display:block;overflow:hidden;
  background:rgba(255,255,255,.015)}
/* <ins> にも明示的に幅を渡す(親がblockでも ins は inline 既定のため) */
.ad-slot > ins{display:block;width:100%}

/* ==== 2. 逆日歩セクション(.gyaku-*)  (旧 index.php 2682行目) ==== */
/*  【2026-07-25 ダークテーマ化】
 *    旧サイト(白背景)から移植したまま取り残されていた。見出し行のクリーム地
 *    (#f4efe3)・合計行(#faf6ee)・濃いグレー文字(#555/#666/#777)が黒背景で
 *    浮く/沈むため、すぐ下の .hoyu-* と同じ変数指定に揃えた。
 *    配色の対応: #e3ded3→var(--line) / #f4efe3→rgba(255,255,255,.03)
 *                #faf6ee→rgba(232,98,95,.08) / #555,#666,#777,#888→var(--ink3)
 *                #C8452C→var(--up) / #1f6f3f→var(--accent) / #b8860b→var(--gold)  */
.gyaku-sec{margin:10px 0;color:var(--ink)}
.gyaku-sec .sec-h{font-weight:700;margin:8px 0 4px;border-left:4px solid var(--up);padding-left:6px;color:var(--ink)}
.gyaku-wrap{display:flex;gap:14px;flex-wrap:wrap}
.gyaku-col{flex:1 1 280px;min-width:250px}
.gyaku-col .col-h{font-size:.85em;color:var(--ink3);margin:2px 0}
table.gyt{border-collapse:collapse;width:100%;font-size:.85em;
  background:var(--panel);border:1px solid var(--line);border-radius:6px;overflow:hidden}
table.gyt th,table.gyt td{border-bottom:1px solid var(--line);padding:3px 6px;text-align:left;color:var(--ink)}
table.gyt th{background:rgba(255,255,255,.03);font-weight:600;color:var(--ink3);font-family:var(--sans)}
table.gyt td.r{text-align:right}
table.gyt td.c{text-align:center}
.gyt b.gy{color:var(--up)}
.gyt b.man{color:var(--gold)}
.gyaku-sec .non{font-size:.85em;color:var(--ink3);padding:4px 0}

/* ==== 3. 空売り残高セクション(.kara-*)  (旧 index.php 2728行目) ==== */
/*  ダークテーマ化の方針は上記 .gyaku-* と同じ(2026-07-25)。
 *  ★合計行は旧 #faf6ee(クリーム)で、明るい文字が乗って最も読めなかった箇所。 */
.kara-sec{margin:10px 0;color:var(--ink)}
.kara-sec .sec-h{font-weight:700;margin:8px 0 4px;border-left:4px solid var(--up);padding-left:6px;color:var(--ink)}
table.kara{border-collapse:collapse;width:100%;font-size:.85em;
  background:var(--panel);border:1px solid var(--line);border-radius:6px;overflow:hidden}
table.kara th,table.kara td{border-bottom:1px solid var(--line);padding:3px 6px;text-align:left;color:var(--ink)}
table.kara th{background:rgba(255,255,255,.03);font-weight:600;color:var(--ink3);font-family:var(--sans)}
table.kara td.r{text-align:right}
table.kara tr.sum td{border-top:2px solid var(--up);font-weight:700;
  background:rgba(232,98,95,.08);color:var(--ink)}
.kara b.pct{color:var(--up)}
.kara .up{color:var(--up)}.kara .down{color:var(--accent)}.kara .flat{color:var(--ink3)}
.kara-sec .note{font-size:.78em;color:var(--ink3);margin:3px 0 0}

/* ==== 4. 保有セクション(.hoyu-*)  (旧 index.php 2815行目) ==== */
.hoyu-sec{margin:14px 0;color:var(--ink)}
.hoyu-sec .sec-h{font-weight:700;margin:8px 0 6px;padding-left:8px;
  border-left:4px solid var(--up);color:var(--ink);font-size:15px}
table.hoyu{border-collapse:collapse;width:100%;font-size:15px;
  font-family:var(--mono);background:var(--panel);
  border:1px solid var(--line);border-radius:6px;overflow:hidden}
table.hoyu th,table.hoyu td{border-bottom:1px solid var(--line);
  padding:5px 8px;text-align:left;vertical-align:top;color:var(--ink)}
table.hoyu th{background:rgba(255,255,255,.03);font-weight:600;
  font-size:13px;color:var(--ink3);font-family:var(--sans)}
table.hoyu td.r{text-align:right}
table.hoyu tbody tr:hover{background:rgba(255,255,255,.025)}
table.hoyu tr.sum td{border-top:2px solid var(--up);
  font-weight:700;background:rgba(232,98,95,.08);color:var(--ink)}
table.hoyu td.c{text-align:center;width:1.6em;cursor:default;
  color:var(--ink3);user-select:none;font-family:var(--sans)}
table.hoyu td.c.has{color:var(--up);font-weight:700;cursor:pointer}
table.hoyu td.c.has:hover{color:#ff7a78}
table.hoyu tr.detail{background:rgba(255,255,255,.025);display:none}
table.hoyu tr.detail td{font-size:14px;border-bottom:1px dashed var(--line);color:var(--ink2)}
table.hoyu tr.detail td > table td{border:none;padding:3px 8px;color:var(--ink2);font-family:var(--mono)}
table.hoyu tr.detail td > table td:first-child{color:var(--ink3)}
.hoyu .pct{color:var(--up)}
.hoyu .up{color:var(--up)}
.hoyu .down{color:var(--accent)}
.hoyu .flat{color:var(--ink3)}
.hoyu-sec .note{font-size:13px;color:var(--ink3);margin:6px 0 0;font-family:var(--sans)}
.hoyu small{color:var(--ink3) !important}
table.hoyu tr.past td{color:var(--ink3)}
table.hoyu tr.past .pct{color:var(--ink3)}
table.hoyu tr.past .up,table.hoyu tr.past .down{color:var(--ink3)}
.hoyu small.past-tag{
  color:var(--ink3) !important;
  border:1px solid var(--line);
  border-radius:3px;padding:0 4px;margin-left:6px;font-size:12px;
  background:rgba(255,255,255,.02)
}

/* ==== 5. 大量保有報告セクション(.major-*)  (旧 index.php 2951行目) ==== */
.major-sec{margin:14px 0;color:var(--ink)}
.major-sec summary{
  font-weight:700;margin:8px 0 6px;padding:8px 12px;
  border-left:4px solid var(--accent);color:var(--ink);font-size:15px;
  cursor:pointer;background:var(--panel);border-radius:0 6px 6px 0;
  list-style:none;display:flex;align-items:center;gap:6px;user-select:none;
}
.major-sec summary::-webkit-details-marker{display:none}
.major-sec summary::before{
  content:'▶';font-size:11px;color:var(--ink3);transition:transform .15s;
  display:inline-block;
}
.major-sec[open] summary::before{transform:rotate(90deg)}
.major-sec summary:hover{background:rgba(255,255,255,.03)}
.major-sec .badge{font-size:12px;font-weight:600;background:var(--accent);color:var(--bg);
  padding:1px 6px;border-radius:3px;margin-left:auto;letter-spacing:.05em}
.major-sec .major-body{padding-top:10px}
table.major{border-collapse:collapse;width:100%;font-size:15px;
  font-family:var(--mono);background:var(--panel);
  border:1px solid var(--line);border-radius:6px;overflow:hidden}
table.major th,table.major td{border-bottom:1px solid var(--line);
  padding:5px 8px;text-align:left;vertical-align:top;color:var(--ink)}
table.major th{background:rgba(255,255,255,.03);font-weight:600;
  font-size:13px;color:var(--ink3);font-family:var(--sans)}
table.major td.r{text-align:right}
table.major td.no{text-align:center;color:var(--ink3);width:2em;font-family:var(--mono)}
table.major tbody tr:hover{background:rgba(255,255,255,.025)}
table.major tr.sum td{border-top:2px solid var(--accent);
  font-weight:700;background:rgba(63,182,168,.08);color:var(--ink)}
.major .pct{color:var(--accent);font-weight:600}
.major-sec .note{font-size:13px;color:var(--ink3);margin:6px 0 0;font-family:var(--sans)}

