/* stocks.css — 銘柄データダッシュボード専用スタイル。
   外枠（ヘッダ・ナビ・フッタ）は site.css が正本のため、ここには持たない。 */
.home-head h1{margin:0 0 4px; font-size:24px}
.home-head p{color:var(--muted); margin:0 0 var(--sp-4); font-size:15px}

/* KPI サマリー（ind-card 風） */
.kpi-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:var(--sp-3); margin:0 0 var(--sp-5)}
.kpi{background:var(--card); border:2px solid var(--fg); border-radius:var(--radius);
  padding:10px 14px; box-shadow:var(--shadow); transition:transform .12s, box-shadow .12s}
.kpi:hover{transform:translate(-3px,-3px); box-shadow:var(--shadow-hard)}
.kpi .v{font-size:22px; font-weight:800; font-variant-numeric:tabular-nums; line-height:1.3}
.kpi .l{font-size:12px; color:var(--muted)}

/* タブ（sticky バー） */
.tabs-sticky{position:sticky; top:var(--stick1,52px); z-index:15; background:var(--bg);
  padding:10px 0 8px; margin:0}
.view-toggle{display:inline-flex; border:1px solid var(--border-strong); border-radius:999px;
  overflow:hidden; background:var(--card); margin:0 0 var(--sp-4)}
.tabs-sticky .view-toggle{margin:0; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch}
.view-toggle button{appearance:none; border:0; background:transparent; color:var(--muted);
  min-height:var(--tap); padding:0 18px; font-size:14px; font-weight:700; cursor:pointer;
  white-space:nowrap}
.view-toggle button[aria-pressed="true"]{background:var(--accent-ink); color:#fff}

/* コントロール行（アクティブタブの検索欄も sticky） */
.controls{display:flex; flex-wrap:wrap; gap:var(--sp-3); align-items:center; margin:0;
  position:sticky; top:var(--stick2,110px); z-index:14; background:var(--bg);
  padding:2px 0 10px; border-bottom:1px solid var(--border)}
.controls input[type=search]{flex:1 1 220px; min-width:0; min-height:var(--tap);
  padding:8px 14px; font-size:15px; border:1px solid var(--border-strong);
  border-radius:var(--radius-sm); background:var(--card)}
.controls select{min-height:var(--tap); padding:6px 10px; font-size:14px;
  border:1px solid var(--border-strong); border-radius:var(--radius-sm); background:var(--card)}
.hint{font-size:12px; color:var(--faint)}

/* テーブル */
.tblwrap{overflow-x:auto; -webkit-overflow-scrolling:touch; background:var(--card);
  border:1px solid var(--border-cell); border-radius:var(--radius-sm); margin:12px 0 var(--sp-3)}
table.dash{border-collapse:collapse; font-size:13px; width:100%; min-width:1160px;
  font-variant-numeric:tabular-nums}
.dash th,.dash td{border-bottom:1px solid var(--border-cell); padding:5px 7px;
  text-align:right; white-space:nowrap; font-feature-settings:"tnum" 1}
.dash th{background:#efe6fb; color:var(--accent-ink); font-size:12.5px; cursor:pointer;
  user-select:none; position:sticky; top:0; z-index:2}
.dash th.left,.dash td.left{text-align:left}
.dash th .arr{opacity:.45; font-size:10px}
.dash th[data-active="1"]{background:var(--accent-ink); color:#fff}
.dash tbody tr:nth-child(even) td{background:var(--row-alt)}
.dash tbody tr:hover td{background:var(--accent-weak)}
.dash td.num-neg{color:var(--danger); font-weight:600}
.dash td .co{font-weight:700}
.dash td .code{color:var(--faint); font-size:12px; font-family:var(--mono); margin-right:6px}
.dash a.rep{font-size:11.5px; font-weight:700; text-decoration:none; border:1px solid var(--accent-ink);
  border-radius:999px; padding:1px 8px; margin-left:6px; color:var(--accent-ink)}
.dash a.rep:hover{background:var(--accent-ink); color:#fff}
.dash tr.detail-row>td{background:#faf7ff !important; padding:14px 16px; white-space:normal;
  text-align:left}
.rowbtn{cursor:pointer}

/* 展開詳細 */
.detail-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:var(--sp-4)}
.mini{background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:10px 12px}
.mini h4{margin:0 0 6px; font-size:12.5px; color:var(--muted); font-weight:700}
.mini .foot-note{font-size:11px; color:var(--faint); margin-top:4px}
.detail-meta{font-size:12.5px; color:var(--muted); margin:10px 0 0}
.detail-meta a{font-weight:700}

/* 今日の一社 */
.today-co{display:flex; flex-wrap:wrap; gap:6px 14px; align-items:center;
  background:var(--card); border:2px solid var(--fg); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:10px 14px; margin:0 0 var(--sp-4)}
.today-co:empty{display:none}
.tc-label{font-size:11.5px; font-weight:800; color:#fff; background:var(--accent-ink);
  padding:2px 10px; border-radius:999px; letter-spacing:.04em; white-space:nowrap}
.tc-name{font-size:15.5px; font-weight:800}
.tc-name .code{color:var(--faint); font-size:12px; font-family:var(--mono); margin-left:4px}
.tc-ind{font-size:12px; color:var(--muted)}
.tc-kv{font-size:12.5px; color:var(--muted); font-variant-numeric:tabular-nums}
.tc-kv b{color:var(--fg)}
.tc-actions{display:inline-flex; gap:8px; margin-left:auto}
.tc-actions .rep{cursor:pointer; background:var(--card); font-family:inherit}
@media (max-width:640px){ .tc-actions{margin-left:0} }

/* シグナルバッジ */
.sig{font-size:12.5px; margin-left:3px; cursor:default}
.sigrow{display:flex; flex-wrap:wrap; gap:6px; margin:0 0 10px}
.sig-full{font-size:12px; font-weight:800; background:var(--accent-weak); color:var(--accent-ink);
  border:1px solid #e0cffa; padding:2px 10px; border-radius:999px; white-space:nowrap}
.sig-full.warn{background:#fdecec; color:var(--danger); border-color:#f2c4c4}

/* プリセットチップ */
.preset-chips{display:flex; flex-wrap:wrap; gap:6px; width:100%; padding-top:2px}
.pchip{display:inline-flex; align-items:center; gap:6px; border:1px solid var(--border-strong);
  background:var(--card); border-radius:999px; padding:4px 12px; font-size:12.5px; font-weight:700;
  cursor:pointer; color:var(--fg); white-space:nowrap; min-height:36px}
.pchip .n{color:var(--faint); font-size:11px; font-variant-numeric:tabular-nums}
.pchip[aria-pressed="true"]{background:var(--accent-ink); color:#fff; border-color:var(--accent-ink)}
.pchip[aria-pressed="true"] .n{color:#dac8f6}

/* かんたん4軸判定 */
.axes{display:flex; flex-wrap:wrap; gap:4px 18px; align-items:center; margin:0 0 12px;
  background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:8px 12px}
.axes .ax{font-size:12.5px; font-weight:700; color:var(--muted); cursor:default}
.axes .dots{color:var(--accent-ink); font-size:11px; letter-spacing:2px; margin-left:4px}
.axes .dots .off{color:#ddd6ea}
.axes .dots.off-all{color:var(--faint); letter-spacing:0}
.axes .ax-note{font-size:11px; color:var(--faint); font-weight:400; flex-basis:100%}

/* ランキング */
.rank-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:var(--sp-4)}
.rank-card{background:var(--card); border:2px solid var(--fg); border-radius:var(--radius);
  padding:14px 16px; box-shadow:var(--shadow)}
.rank-card h3{margin:0 0 8px; font-size:15px}
.rank-card ol{list-style:none; margin:0; padding:0}
.rank-card li{display:flex; align-items:baseline; gap:8px; padding:5px 0;
  border-bottom:1px dashed var(--border); font-size:13.5px}
.rank-card li:last-child{border-bottom:0}
.rank-card .rk{flex:0 0 22px; font-family:var(--mono); font-weight:700; color:var(--accent);
  font-size:13px; text-align:right}
.rank-card li:nth-child(-n+3) .rk{color:var(--accent-ink)}
.rank-card .rank-co{border:0; background:none; padding:0; font:inherit; font-weight:700;
  color:var(--fg); cursor:pointer; text-align:left; overflow:hidden; text-overflow:ellipsis;
  white-space:nowrap; min-width:0; flex:1 1 auto}
.rank-card .rank-co:hover{color:var(--accent-ink); text-decoration:underline}
.rank-card .code{color:var(--faint); font-size:11.5px; font-family:var(--mono); flex:0 0 auto}
.rank-card .rv{margin-left:auto; font-weight:800; font-variant-numeric:tabular-nums;
  white-space:nowrap; flex:0 0 auto}
.rank-card .foot-note{font-size:11px; color:var(--faint); margin:8px 0 0}

/* 関連記事 */
.nbadge{font-size:11px; color:var(--accent-ink); font-weight:800; margin-left:5px; white-space:nowrap}
.news-sec{margin:14px 0 0; background:var(--card); border:1px solid var(--border);
  border-left:4px solid var(--accent); border-radius:var(--radius); padding:10px 14px}
.news-sec h4{margin:0 0 6px; font-size:13px; color:var(--fg)}
.news-sec ul{list-style:none; margin:0; padding:0}
.news-sec li{padding:4px 0; font-size:13.5px; line-height:1.55; border-bottom:1px dashed var(--border)}
.news-sec li:last-child{border-bottom:0}
.news-sec a{text-decoration:none}
.news-sec a:hover{text-decoration:underline}
.nk{display:inline-block; font-size:10.5px; font-weight:800; padding:1px 7px; border-radius:0;
  margin-right:6px; vertical-align:1px}
.nk-d{background:var(--accent-ink); color:#fff}
.nk-q{background:var(--accent-weak); color:var(--accent-ink); border:1px solid #e0cffa}
.nk-m{background:var(--chip-bg); color:#fff}
.nd{color:var(--faint); font-size:11.5px; margin-left:6px; white-space:nowrap}

/* チャートカード */
.charts{display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:var(--sp-4); margin:var(--sp-5) 0}
.chart-card{background:var(--card); border:2px solid var(--fg); border-radius:var(--radius);
  padding:14px 16px; box-shadow:var(--shadow)}
.chart-card h3{margin:0 0 2px; font-size:15px}
.chart-card .sub{font-size:12px; color:var(--muted); margin:0 0 8px}
.chart-card svg text{font-family:inherit}

/* ツールチップ */
#tip{position:fixed; display:none; background:var(--fg); color:#fff; font-size:12px;
  padding:6px 10px; border-radius:6px; pointer-events:none; z-index:50; line-height:1.5;
  box-shadow:0 4px 14px rgba(10,24,41,.3); max-width:260px; white-space:nowrap}
#tip b{color:#dac8f6}

/* ページャ */
.pager{display:flex; gap:var(--sp-2); align-items:center; justify-content:center; margin:var(--sp-3) 0}
.pager button{min-height:36px; padding:4px 14px; border:1px solid var(--border-strong);
  background:var(--card); border-radius:999px; font-size:13px; font-weight:700; cursor:pointer; color:var(--fg)}
.pager button:disabled{opacity:.35; cursor:default}
.pager .pinfo{font-size:13px; color:var(--muted); font-variant-numeric:tabular-nums}

.note-box{background:var(--accent-weak); border-left:4px solid var(--accent);
  border-radius:var(--radius-sm); padding:10px 14px; font-size:13px; color:var(--fg); margin:0 0 var(--sp-4)}
.tab-panel{display:none}
.tab-panel.active{display:block}

/* 企業比較タブ */
.cmp-picker{position:relative; flex:1 1 260px; min-width:0}
.cmp-suggest{position:absolute; top:100%; left:0; right:0; z-index:10; background:var(--card);
  border:1px solid var(--border-strong); border-radius:var(--radius-sm); max-height:280px;
  overflow-y:auto; box-shadow:var(--shadow); display:none}
.cmp-suggest button{display:flex; gap:8px; width:100%; text-align:left; padding:8px 12px;
  border:0; background:none; cursor:pointer; font-size:14px; align-items:baseline}
.cmp-suggest button:hover{background:var(--accent-weak)}
.cmp-suggest .code{color:var(--faint); font-family:var(--mono); font-size:12px}
.cmp-suggest .ind{margin-left:auto; color:var(--faint); font-size:11.5px}
.cmp-chips{display:flex; flex-wrap:wrap; gap:8px; margin:10px 0}
.cmp-chip{display:inline-flex; align-items:center; gap:7px; padding:4px 8px 4px 12px;
  border:2px solid var(--fg); border-radius:var(--radius-sm); background:var(--card);
  font-size:13.5px; font-weight:700}
.cmp-chip .dot{width:11px; height:11px; border-radius:3px; flex:0 0 auto}
.cmp-chip button{border:0; background:none; cursor:pointer; font-size:15px; line-height:1;
  color:var(--muted); padding:2px 4px}
.cmp-chip button:hover{color:var(--danger)}
.cmp-empty{color:var(--faint); font-size:13.5px; padding:20px 0}
.cmp-controls{display:flex; flex-wrap:wrap; gap:var(--sp-3); align-items:center; margin:0;
  position:sticky; top:var(--stick2,110px); z-index:14; background:var(--bg);
  padding:2px 0 10px; border-bottom:1px solid var(--border)}
.cmp-chart-card{background:var(--card); border:2px solid var(--fg); border-radius:var(--radius);
  padding:16px 18px; box-shadow:var(--shadow); margin:var(--sp-3) 0}
.cmp-legend{display:flex; flex-wrap:wrap; gap:6px 18px; margin:8px 0 0; font-size:13px}
.cmp-legend span{display:inline-flex; align-items:center; gap:6px}
.cmp-legend .dot{width:10px; height:10px; border-radius:3px}
@media (max-width:640px){
  .kpi .v{font-size:18px} table.dash{font-size:12.5px}
  .controls .hint{display:none}
  .view-toggle button{padding:0 12px; font-size:13px}
  .preset-chips{flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:4px}
}
