/* =====================================================
   SedoNote — home_doc.css（B-89: ホーム画面の正典スタイル＝文書ページ方式）
   v0.314 で本公開（旧固定キャンバス版は退役）。index.php が常時読み込む。

   方式: --u = 「キャンバス1pxに相当する実長」= min(100vw,1200px)/680。
   現行キャンバスは 680px 舞台を scale(s)（s=min(vw/680,1200/680)）で拡大していたので、
   キャンバス値 Npx を calc(N * var(--u)) と書けば、PC幅で現行と同じ見た目を
   文書フロー（transformなし・等倍テキスト）のまま再現できる。
   各値のコメント（canvas N）は sn.css のキャンバス規則の出典値。
   Phase 3 でキャンバス縮小単位CSS（sn.css側）を削除した後は本ファイルがホームの正典。

   スマホ（~680px）は暫定の素直な縦積みのみ（専用ホームは別起票）＝ --u を固定値に
   切り替えて文字を実寸化し、列を積むだけ。作り込まない。
   ===================================================== */

/* ── 骨格: ヘッダー/フッター(56px)間を充填・中央寄せ・1画面収まり ── */
#home-screen.home-doc{
  --u:calc(min(100vw, 1200px) / 680);
  /* ヘアライン太さの正 = #gbar(グローバルバー/検索バー)と同一式（.57px×スケール≈1.0px・
     sn.css§14と同じ量）。素の1px指定だとデバイスピクセルへのスナップ挙動が変わり、
     環境によってgbarと太さが揃わない（IZUNA実機指摘 2026-08-15）。以後ヘアラインは必ずこの変数で */
  --hairline:calc(0.57 * var(--u));
  /* 横位置は #gbar と同一基準＝width:100vw（スクロールバー込み）の中央寄せ。
     left/right:0 だとスクロールバー除外幅の中央になり、gbar系より約半バー分左へずれて
     サイドラインが揃わない（IZUNA実機指摘 2026-08-12。canvasのJS中央寄せもinnerWidth基準=同値） */
  position:fixed;top:var(--bar-h);bottom:var(--bar-h);left:0;width:100vw;z-index:3000;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  overflow:hidden;
}
#home-screen.home-doc .hd-doc{
  position:relative;              /* #dash-browser オーバーレイの基準 */
  width:min(100vw, 1200px);
  flex:1;min-height:0;
  display:flex;flex-direction:column;
  padding:calc(8 * var(--u)) calc(10 * var(--u));   /* canvas: 上下G=8・左右10 */
}

/* ── KPI段（canvas: 高56・幅比183.4/277.1/183.4・間隔8） ──
   ⚠️ KPI段とウィジェット段は「同一のgridトラック定義」で組む＝縦ラインが構造的に一致する。
   （初版は両段を別々のflex比率で近似＝内容量由来の数pxドリフトでカラムずれに見えた。
     IZUNA実機指摘 2026-08-11。minmax(0,·)必須＝内容min-contentによるトラック拡張を禁止） */
#home-screen.home-doc .hd-kpis,
#home-screen.home-doc .hd-cols{
  display:grid;
  grid-template-columns:minmax(0,183.4fr) minmax(0,277.1fr) minmax(0,183.4fr);  /* canvas実寸比 */
  gap:calc(8 * var(--u));
}
#home-screen.home-doc .hd-kpis{flex-shrink:0;}
/* ⚠️ flat層（sn.css）が body.flat #home-screen 前置で同プロパティを持つ規則は、
   詳細度で勝つよう必ず body.flat を前置する（初版で mcard角R・mcol文字・sw-title等が
   詳細度負けして未スケール値のまま残った＝IZUNA実機指摘 2026-08-08） */
body.flat #home-screen.home-doc .mcard{
  position:relative;top:auto;left:auto;min-width:0;   /* canvasのabsolute配置を解除 */
  height:calc(56 * var(--u));
  padding:0 calc(4 * var(--u));
  border-width:var(--hairline) !important;            /* gbarと同一式のヘアライン（IZUNA指定 2026-08-15） */
  border-radius:calc(3 * var(--u));                   /* canvas 3px（flat層1067行） */
}
#home-screen.home-doc .mcol{gap:calc(4 * var(--u));padding:0 calc(4 * var(--u));}
body.flat #home-screen.home-doc .mcol-label{font-size:calc(6.6 * var(--u));}
body.flat #home-screen.home-doc .mcol-val{font-size:calc(12 * var(--u));}
#home-screen.home-doc .mcol-val .ut{font-size:calc(7 * var(--u));margin-left:calc(1 * var(--u));}
#home-screen.home-doc .mcol-chg{font-size:calc(6.8 * var(--u));gap:calc(2 * var(--u));}
#home-screen.home-doc .mcol-chg .ar{font-size:calc(6.5 * var(--u));}
body.flat #home-screen.home-doc .mdiv{margin:calc(13 * var(--u)) 0;width:var(--hairline);}
#home-screen.home-doc .kpi-note{
  border-width:var(--hairline);border-radius:calc(4 * var(--u));
  padding:calc(2.5 * var(--u)) calc(5 * var(--u));font-size:calc(5 * var(--u));
}

/* ── ウィジェット段（canvas: 左右列=均等2分割・中央AI=ドック上端まで） ── */
#home-screen.home-doc .hd-cols{
  flex:1;min-height:0;
  grid-template-rows:minmax(0,1fr);   /* 1行で残り全高を使う（カラムが下端まで伸びる） */
  margin-top:calc(8 * var(--u));
}
#home-screen.home-doc .hd-col{display:flex;flex-direction:column;gap:calc(8 * var(--u));min-width:0;min-height:0;}
#home-screen.home-doc .hd-col-c{
  /* AI下端=#gbar上端のG(8)上に揃える。padding-bottom = gb-inner実寸 + G。
     gb-inner（キャンバス値）= 検索バー(28.3+枠.57×2=29.44) + 間隔8 + ドック(24.3+pad4+枠.57×2=29.44) = 66.88
     → 66.88 + 8 = 74.9（初版の概算73だと隙間が約3px狭かった＝IZUNA実機指摘 2026-08-15） */
  padding-bottom:calc(74.9 * var(--u));
}
body.flat #home-screen.home-doc .side-widget,
body.flat #home-screen.home-doc .side-widget:not(.sw-ai){
  position:relative;top:auto;left:auto;width:auto;    /* canvasのabsolute配置・固定幅を解除 */
  flex:1;min-height:0;height:auto;
  border-width:var(--hairline) !important;            /* gbarと同一式・mcardと同じ */
  border-radius:calc(4 * var(--u));
}
body.flat #home-screen.home-doc .sw-header{padding:calc(4 * var(--u)) calc(12 * var(--u)) calc(3 * var(--u));border-bottom-width:var(--hairline);}
body.flat #home-screen.home-doc .sw-title{gap:calc(5 * var(--u));font-size:calc(6.9 * var(--u));}
body.flat #home-screen.home-doc .sw-time{font-size:calc(6.5 * var(--u));margin-left:calc(8 * var(--u));}
#home-screen.home-doc .sw-list{padding:calc(2 * var(--u)) 0;}
/* スクロールバー太さ（IZUNA実機調整 2026-08-11）: 標準プロパティ scrollbar-width/color が
   指定された要素では Chrome も ::-webkit-scrollbar 系を無視するため、太さ変更は
   scrollbar-width:auto（標準幅）一本で行う（webkit width指定は効かない）。
   色はトークン化＝canvasの白系固定値はライトテーマで不可視になるため置換 */
#home-screen.home-doc .sw-list{scrollbar-width:auto;scrollbar-color:var(--border2) transparent;}

/* 中央透かしロゴ（canvas正典=sn.css§13: .logo-sn/.logo-centerの中央フリー配置が現役・
   sw-ai::before/afterの透かしは content:none で退役済み。left:50%/translate/z3・4/opacityは継承） */
body.flat #home-screen.home-doc .logo-sn{top:50%;width:calc(148.4 * var(--u));}     /* canvas 148.4px（§13） */
body.flat #home-screen.home-doc .logo-center{top:50%;width:calc(152 * var(--u));}   /* canvas 152px */

/* ── ウィジェット行（canvas: padding1.5 12・gapは後発調整が正典＝rk/mv/pf=6・nw=5（sn.css末尾
   v0.251/v0.253節・body.flat前置(1,2,1)なのでこちらも前置必須。初版はgap8の旧節を出典にしていた） ── */
body.flat #home-screen.home-doc .rk-item,
body.flat #home-screen.home-doc .mv-item,
body.flat #home-screen.home-doc .pf-item{padding:calc(1.5 * var(--u)) calc(12 * var(--u));gap:calc(6 * var(--u));}
body.flat #home-screen.home-doc .nw-item{padding:calc(1.5 * var(--u)) calc(12 * var(--u));gap:calc(5 * var(--u));}
body.flat #home-screen.home-doc .nw-date{width:calc(16 * var(--u));}
#home-screen.home-doc .ai-item{padding:calc(2.5 * var(--u)) calc(12 * var(--u));gap:calc(8 * var(--u));}

/* ── B-100 v0.324: 中央列を左列と同じ分割線で2分割（AI分析＋予約カレンダー）──
   sw-ai高さ = 左列1枚目(sw-left)と同一 (H-8u)/2 に固定し、sw-calがflex:1で残りを充填
   ＝カレンダー上辺は利益ランキング上辺・下辺は旧AI分析下辺（hd-col-cのpadding-bottom終端）に一致。
   hd-col-cのcontent boxは H-74.9u のため%にpadding分を足し戻す: (100%+74.9u-8u)/2 = 50%+33.45u。
   body.flat前置=flat層の .side-widget flex:1 に詳細度で勝つため（本ファイル冒頭⚠️と同じ） */
body.flat #home-screen.home-doc .hd-col-c .sw-ai{flex:0 0 calc(50% + 33.45 * var(--u));}

/* カレンダー行（nw-item同系の1行構成・種別バッジは canvas小型バッジ基準） */
body.flat #home-screen.home-doc .cl-item{display:flex;align-items:baseline;padding:calc(1.5 * var(--u)) calc(12 * var(--u));gap:calc(6 * var(--u));}
body.flat #home-screen.home-doc .cl-date{flex-shrink:0;width:calc(20 * var(--u));font-size:calc(6 * var(--u));color:var(--sn-text3);font-variant-numeric:tabular-nums;line-height:1.35;}
body.flat #home-screen.home-doc .cl-kind{flex-shrink:0;font-size:calc(5.2 * var(--u));font-weight:600;letter-spacing:.02em;border-radius:calc(2 * var(--u));padding:calc(.5 * var(--u)) calc(3 * var(--u));line-height:1.4;}
body.flat #home-screen.home-doc .cl-kind.k-release{background:rgba(61,187,125,.13);color:#3dbb7d;}
body.flat #home-screen.home-doc .cl-kind.k-pre{background:rgba(217,119,87,.13);color:var(--sn-claude,#d97757);}
body.flat #home-screen.home-doc .cl-kind.k-now{background:var(--sn-badge-gold-bg,rgba(203,175,84,.14));color:var(--sn-badge-gold-tx,#cdb37c);}
body.flat #home-screen.home-doc .cl-body{flex:1;min-width:0;overflow-x:auto;overflow-y:hidden;text-overflow:clip;white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch;font-size:calc(6.2 * var(--u));line-height:1.35;color:var(--sn-text);}
body.flat #home-screen.home-doc .cl-body.cl-none{white-space:normal;color:var(--sn-text3);font-size:calc(5.5 * var(--u));line-height:1.6;}
#home-screen.home-doc .hd-empty{padding:calc(10 * var(--u)) calc(4 * var(--u)) !important;font-size:calc(5 * var(--u)) !important;}  /* hdEmpty()のインラインstyle対抗 */

body.flat #home-screen.home-doc .rk-no{width:calc(9 * var(--u));text-align:left;font-size:calc(7.5 * var(--u));}   /* 正典=sn.css末尾v0.251節（幅9・左寄せ。旧節の幅14中央ではない） */
body.flat #home-screen.home-doc .rk-name{font-size:calc(7.5 * var(--u));}
body.flat #home-screen.home-doc .rk-count{min-width:calc(28 * var(--u));font-size:calc(6.5 * var(--u));}

body.flat #home-screen.home-doc .mv-name{font-size:calc(7.5 * var(--u));}
body.flat #home-screen.home-doc .mv-price{font-size:calc(5.6 * var(--u));}
body.flat #home-screen.home-doc .mv-chg{font-size:calc(8 * var(--u));gap:calc(3 * var(--u));min-width:calc(40 * var(--u));}
#home-screen.home-doc .mv-arrow{font-size:calc(7 * var(--u));}

body.flat #home-screen.home-doc .pf-name{font-size:calc(7.5 * var(--u));}
body.flat #home-screen.home-doc .pf-sub{font-size:calc(5.6 * var(--u));}
body.flat #home-screen.home-doc .pf-profit{min-width:calc(42 * var(--u));font-size:calc(8.5 * var(--u));}
#home-screen.home-doc .pf-gray{
  margin-left:calc(2 * var(--u));padding:0 calc(2 * var(--u));
  border-radius:calc(4 * var(--u));font-size:calc(5 * var(--u));
}
/* v0.351 B-118①: 裏取り1件バッジ（pf-gray と同寸・色だけ中立） */
#home-screen.home-doc .pf-sole{
  margin-left:calc(2 * var(--u));padding:0 calc(2 * var(--u));
  border-radius:calc(4 * var(--u));font-size:calc(5 * var(--u));
}

body.flat #home-screen.home-doc .nw-date{font-size:calc(5.6 * var(--u));}
body.flat #home-screen.home-doc .nw-body{font-size:calc(7 * var(--u));}
body.flat #home-screen.home-doc .nw-tag{padding:0 calc(3 * var(--u));border-radius:calc(3 * var(--u));margin-right:calc(4 * var(--u));font-size:calc(5.2 * var(--u));}

body.flat #home-screen.home-doc .ai-mark{width:calc(14 * var(--u));font-size:calc(7 * var(--u));}
body.flat #home-screen.home-doc .ai-text{font-size:calc(7.5 * var(--u));}

/* 横スクロールバー（hdWireHScrollが付与する共通部品）: 縦と同じ標準パス＝scrollbar-width:auto。
   コンテナ高はChrome標準横バー(約15px)が収まる16pxへ（canvas 8u≈14pxだと下端が欠ける） */
#home-screen.home-doc .pf-scroll-wrap{left:calc(12 * var(--u));right:calc(12 * var(--u));bottom:1px;}
#home-screen.home-doc .pf-scroll{height:16px;scrollbar-width:auto;scrollbar-color:var(--border2) transparent;}

/* ── 検索結果ブラウザ（canvas: top8 left10 幅660 bottom8 → 全辺スケール・幅は流動） ── */
#home-screen.home-doc #dash-browser.open{
  top:calc(8 * var(--u));left:calc(10 * var(--u));right:calc(10 * var(--u));bottom:calc(8 * var(--u));
  width:auto;
  border-width:var(--hairline);border-radius:calc(4 * var(--u));   /* canvas .57px＝gbarと同一ヘアライン / 角R4 */
}
#home-screen.home-doc #dash-browser .db-close{
  top:calc(8 * var(--u));right:calc(8 * var(--u));
  width:calc(22 * var(--u));height:calc(22 * var(--u));
  border-radius:calc(4 * var(--u));font-size:calc(13 * var(--u));
}
#home-screen.home-doc #dash-browser .db-body{padding:calc(7 * var(--u)) calc(13 * var(--u)) calc(12 * var(--u));}
#home-screen.home-doc #dash-browser .db-sub{font-size:calc(8 * var(--u));margin-bottom:calc(5 * var(--u));}
#home-screen.home-doc #dash-browser .kx-empty{padding:calc(32 * var(--u));font-size:calc(10 * var(--u));border-radius:calc(4 * var(--u));}
#home-screen.home-doc #dash-browser #kaitori-loading{padding:calc(52 * var(--u)) 0;}
#home-screen.home-doc #dash-browser .kx-spinner{
  width:calc(26 * var(--u));height:calc(26 * var(--u));margin-bottom:calc(12 * var(--u));
  border-width:calc(2 * var(--u));
}
#home-screen.home-doc #dash-browser #kaitori-loading .kx-loading-text{font-size:calc(10 * var(--u));}
#home-screen.home-doc #dash-browser #kaitori-error{padding:calc(14 * var(--u)) calc(18 * var(--u));border-radius:calc(4 * var(--u));font-size:calc(10 * var(--u));}
#home-screen.home-doc #dash-browser .kx-kw-list{border-radius:calc(4 * var(--u));}
#home-screen.home-doc #dash-browser .kx-kw-item{gap:calc(10 * var(--u));padding:calc(5 * var(--u)) calc(10 * var(--u));border-bottom-width:var(--hairline);}
#home-screen.home-doc #dash-browser .kx-kw-item:last-child{border-bottom:none;}
#home-screen.home-doc #dash-browser .kx-kw-name{font-size:calc(10 * var(--u));}
#home-screen.home-doc #dash-browser .kx-kw-jan{font-size:calc(8 * var(--u));margin-top:calc(2 * var(--u));}
#home-screen.home-doc #dash-browser .kx-kw-price{font-size:calc(11 * var(--u));}
#home-screen.home-doc #dash-browser .kx-kw-stores{font-size:calc(8 * var(--u));margin-top:calc(2 * var(--u));}
#home-screen.home-doc #dash-browser #kaitori-embed{border-width:var(--hairline);border-radius:calc(4 * var(--u));}
/* 検索履歴チップ（app.jsがインラインstyleで生成＝!importantで対抗） */
#home-screen.home-doc #kaitori-history button{
  font-size:calc(7.5 * var(--u)) !important;
  border-radius:calc(2.27 * var(--u)) !important;
  padding:calc(2 * var(--u)) calc(6 * var(--u)) !important;
}

/* ── 埋め込み表示（LPのSafari風フレーム内・?home_embed=1 → body.home-embed） ──
   ヘッダー/フッターはPHP側で非出力（IZUNA指示 2026-08-16）＝ホームを全高化。
   ドックは残す（アプリの顔）。gbar下端はフッター前提のJS値(56+8s)をフレーム下詰めへ上書き */
body.home-embed #home-screen.home-doc{top:0;bottom:0;}
body.home-embed .app-corner{display:none;}
body.home-embed #gbar{bottom:14px !important;}   /* ≈8×--u（PC幅キャップ時）。JSインライン値に!importantで対抗 */
/* フレーム内で実動作させるのはウィジェット（ランキング/ニュース/AI）＝スクロール・リンク・横バー可。
   ドック/検索バーだけ無効化（LP自身のgbarが本物のため二重操作を防ぐ・IZUNA指示 2026-08-16）。
   ⚠️ #gbar本体へのnoneだけでは不十分＝sn.css基底が .gb-search/.dock に pointer-events:auto を
   明示しており子で復活する（v0.318で顕在化・IZUNA実機指摘）→ 子孫ごと無効化が正 */
body.home-embed #gbar,
body.home-embed #gbar *{pointer-events:none;}

/* ═════════════════════════════════════════════════════════════
   Phase 3b（B-89）: sn.css旧キャンバス規則からの移植（v0.317）
   doc版DOMが継承していた「計算勝者」の値のみを運ぶ（配置・寸法など
   home_doc.css既存規則が持つプロパティは重複させない）。出典は各ブロックの
   （sn.css旧 N行）表記＝削除前のsn.css行番号。移植後にsn.css側原本を削除し
   本ファイルがホームの唯一の正典になる。
   ⚠️ このセクションはスマホ用@media（後述）より前に置く＝#dash-browser.open の
   position:absolute がモバイルの position:fixed を後勝ちで壊さないための順序。
   ═════════════════════════════════════════════════════════════ */

/* ── M-0 リセット・骨格（sn.css旧 330・291/377/803）──
   .center=検索入力実体の入れ物: 旧キャンバスはabsoluteでフロー外＋.sbarは非表示
   だった＝display:noneに集約（IZUNA承認 2026-08-16。#kaitori-inputはJSが値参照
   するだけなので実体が非表示でも機能不変）。
   ⚠️ リセットは本セクション先頭に置く＝後続の移植規則（同特異度の
   #kaitori-camera-wrap内部等）が後勝ちで padding を確保できる順序 */
#home-screen.home-doc *{box-sizing:border-box;margin:0;padding:0;}
#home-screen.home-doc .center{display:none;}
body.flat #home-screen.home-doc{background:var(--bg);}

/* ── M-1 中央透かしロゴ（sn.css旧 334-337・§13 1273-1275・opacity=1156-1157）
   top/widthは既存節（上記）が担当。z3/4=sw-aiより前面の重ね順 ── */
body.flat #home-screen.home-doc .logo-sn{position:absolute;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:3;opacity:var(--sn-wm-sn);}
body.flat #home-screen.home-doc .logo-center{position:absolute;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:4;opacity:var(--sn-wm-woman);}
#home-screen.home-doc :is(.logo-sn,.logo-center) img{width:100%;display:block;}

/* ── M-2 KPI段（構造=sn.css旧 345-354・面/色=805/808/1074-1101。
   枠のwidthは既存節の var(--hairline)!important が正＝ここではstyle/colorのみ） ── */
body.flat #home-screen.home-doc .mcard{display:flex;align-items:stretch;}
body.flat #home-screen.home-doc :is(.mcard,.side-widget){background:var(--surface);border-style:solid;border-color:var(--border);}
#home-screen.home-doc .mcard.kpi-ph :is(.mcol,.mdiv){opacity:.5;}   /* デモKPIの減灰（v0.262c） */
#home-screen.home-doc .kpi-mask{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;background:rgba(120,120,120,.07);pointer-events:none;}
#home-screen.home-doc .kpi-note{background:var(--menu);border-style:solid;border-color:var(--border2);line-height:1.6;text-align:center;color:var(--text2);letter-spacing:.03em;white-space:nowrap;}
#home-screen.home-doc .mcol{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;}
body.flat #home-screen.home-doc .mcol-label{white-space:nowrap;letter-spacing:0;color:var(--sn-text2);}
body.flat #home-screen.home-doc .mcol-val{line-height:1;white-space:nowrap;font-weight:600;letter-spacing:0;color:var(--sn-text);font-variant-numeric:tabular-nums;}
body.flat #home-screen.home-doc .mcol-val .ut{color:var(--sn-text2);font-weight:400;}
body.flat #home-screen.home-doc .mcol-val.gold{color:var(--sn-text);}   /* KPI値は無彩・彩度1色原則 */
body.flat #home-screen.home-doc .mcol-chg{display:flex;align-items:center;white-space:nowrap;font-weight:500;letter-spacing:.01em;}
body.flat #home-screen.home-doc .mcol-chg.up{color:var(--sn-success);}
body.flat #home-screen.home-doc .mcol-chg.down{color:var(--sn-danger);}
body.flat #home-screen.home-doc .mdiv{flex-shrink:0;background:var(--border);}

/* ── M-3 ウィジェット枠（sn.css旧 355-363・536-537・1110-1117・1222） ── */
#home-screen.home-doc .side-widget{overflow:hidden;display:flex;flex-direction:column;}
body.flat #home-screen.home-doc .sw-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;border-bottom-style:solid;border-bottom-color:var(--sn-line-1);}
body.flat #home-screen.home-doc .sw-title{display:flex;align-items:center;white-space:nowrap;min-width:0;overflow:hidden;font-weight:600;letter-spacing:0;color:var(--sn-text);}
body.flat #home-screen.home-doc .sw-time{white-space:nowrap;flex-shrink:0;color:var(--sn-text3);}
#home-screen.home-doc .sw-dot{display:none;}   /* 草案はドットなし（DOMには残置） */
#home-screen.home-doc .sw-list{flex:1;overflow-y:auto;overflow-x:hidden;}

/* ── M-4 行部品（構造=sn.css旧 364-376/472-473/543-559/584-594・
   色=1120-1155・横スクロール化=1308-1310/1335-1341。line-heightは後発の
   コンパクト化(592-594)後の最終値。⚠️ .ai-text b は旧 rgba(255,255,255,.85) 固定
   （ライト用の旧規則は.home消滅で死亡済み）→ var(--sn-text) にトークン化＝
   ダークは同見た目・静的フォールバック表示時のライトも正常化 ── */
#home-screen.home-doc :is(.rk-item,.mv-item,.pf-item,.nw-item){display:flex;align-items:center;}
#home-screen.home-doc .pf-item{cursor:pointer;}
#home-screen.home-doc .ai-item{display:flex;align-items:flex-start;}
#home-screen.home-doc :is(.rk-info,.mv-info,.pf-info){flex:1;min-width:0;}
body.flat #home-screen.home-doc .rk-no{flex-shrink:0;font-weight:500;color:var(--sn-text3);font-variant-numeric:tabular-nums;}
body.flat #home-screen.home-doc .rk-name{overflow-x:auto;overflow-y:hidden;text-overflow:clip;white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch;line-height:1.1;color:var(--sn-text);}
body.flat #home-screen.home-doc .rk-count{flex-shrink:0;text-align:right;color:var(--sn-text2);font-variant-numeric:tabular-nums;}
body.flat #home-screen.home-doc .mv-name{overflow-x:auto;overflow-y:hidden;text-overflow:clip;white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch;line-height:1.1;color:var(--sn-text);}
body.flat #home-screen.home-doc .mv-price{overflow-x:auto;text-overflow:clip;white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch;line-height:1;color:var(--sn-text3);font-variant-numeric:tabular-nums;}
body.flat #home-screen.home-doc .mv-chg{display:flex;align-items:center;flex-shrink:0;justify-content:flex-end;font-weight:500;}
body.flat #home-screen.home-doc .mv-up{color:var(--sn-success);}
body.flat #home-screen.home-doc .mv-down{color:var(--sn-danger);}
body.flat #home-screen.home-doc .mv-arrow{color:var(--sn-text3);}
body.flat #home-screen.home-doc .pf-name{overflow-x:auto;overflow-y:hidden;text-overflow:clip;white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch;line-height:1.1;color:var(--sn-text);}
body.flat #home-screen.home-doc .pf-sub{overflow-x:auto;overflow-y:hidden;text-overflow:clip;white-space:nowrap;scrollbar-width:none;line-height:1;color:var(--sn-text3);}
body.flat #home-screen.home-doc .pf-profit{flex-shrink:0;text-align:right;font-weight:500;color:var(--sn-success);font-variant-numeric:tabular-nums;}
#home-screen.home-doc .pf-gray{display:inline-block;border:1px solid rgba(217,119,87,.5);color:var(--sn-claude,#d97757);line-height:1.5;white-space:nowrap;vertical-align:baseline;}
#home-screen.home-doc .pf-sole{display:inline-block;border:1px solid var(--glass-border);color:var(--text3);line-height:1.5;white-space:nowrap;vertical-align:baseline;}
body.flat #home-screen.home-doc .nw-date{flex-shrink:0;color:var(--sn-text3);font-variant-numeric:tabular-nums;}
body.flat #home-screen.home-doc .nw-body{flex:1;min-width:0;overflow-x:auto;overflow-y:hidden;text-overflow:clip;white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch;line-height:1.1;color:var(--sn-text);}
body.flat #home-screen.home-doc .nw-tag{display:inline-block;letter-spacing:.03em;background:var(--sn-badge-blue-bg);color:var(--sn-badge-blue-tx);}
body.flat #home-screen.home-doc .nw-tag.update{background:var(--sn-search-bg);color:var(--sn-text2);}
body.flat #home-screen.home-doc .ai-mark{flex-shrink:0;text-align:center;line-height:1.35;}
body.flat #home-screen.home-doc .ai-mark.up{color:var(--sn-success);}
body.flat #home-screen.home-doc .ai-mark.down{color:var(--sn-danger);}
body.flat #home-screen.home-doc .ai-mark.info{color:var(--sn-action);}
body.flat #home-screen.home-doc .ai-text{line-height:1.35;color:var(--sn-text);}
body.flat #home-screen.home-doc .ai-text b{color:var(--sn-text);font-weight:600;}
#home-screen.home-doc :is(.rk-name,.mv-name,.mv-price,.pf-name,.pf-sub,.nw-body)::-webkit-scrollbar{display:none;}   /* Safari用（Chrome/Firefoxはscrollbar-width:noneが正） */

/* ── M-5 共通横スクロールバー機構＋縦バーのSafari側（sn.css旧 1320-1329・565-570・837-838。
   webkit系はSafari用＝標準プロパティ(scrollbar-width/color)指定済み要素ではChromeは無視する ── */
#home-screen.home-doc .pf-scroll-wrap{position:absolute;z-index:2;background:transparent;padding:0;}
#home-screen.home-doc .pf-scroll{overflow-x:auto;overflow-y:hidden;}
#home-screen.home-doc .pf-scroll-inner{height:1px;}
#home-screen.home-doc .pf-scroll::-webkit-scrollbar{height:6px;}
#home-screen.home-doc .pf-scroll::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px;}
#home-screen.home-doc .pf-scroll::-webkit-scrollbar-track{background:transparent;}
#home-screen.home-doc .sw-list::-webkit-scrollbar{width:2px;}
#home-screen.home-doc .sw-list::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px;}
#home-screen.home-doc .sw-list::-webkit-scrollbar-track{background:transparent;}

/* ── M-6 検索結果ブラウザ（sn.css旧 391-427・820-822・835・1470-1479。
   幾何は既存節が担当＝ここは表示状態・面・色・タイポのみ。
   ⚠️ 非表示の基底は .open との特異度関係が要＝両方を本ファイルで持つことで
   「基底(2,1,0) < .open(2,2,0)」の後勝ちが成立する ── */
#home-screen.home-doc #dash-browser{display:none;}
#home-screen.home-doc #dash-browser.open{display:block;position:absolute;z-index:40;overflow:hidden;border-style:solid;border-color:var(--border2);background:var(--surface);box-shadow:0 8px 24px rgba(0,0,0,.18);}
#home-screen.home-doc #dash-browser .db-close{position:absolute;z-index:2;display:flex;align-items:center;justify-content:center;cursor:pointer;border:1px solid var(--border2);transition:background .15s,color .15s;background:var(--surface2);color:var(--text2);}
#home-screen.home-doc #dash-browser .db-body{height:100%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent;}
#home-screen.home-doc #dash-browser .db-body::-webkit-scrollbar{width:6px;}
#home-screen.home-doc #dash-browser .db-body::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px;}
#home-screen.home-doc #dash-browser .db-body::-webkit-scrollbar-track{background:transparent;}
#home-screen.home-doc #dash-browser .db-sub{color:var(--text3);text-transform:uppercase;letter-spacing:.08em;}
#home-screen.home-doc #dash-browser .db-body.embed-mode{display:flex;flex-direction:column;overflow:hidden;}
#home-screen.home-doc #dash-browser #kaitori-embed{position:relative;flex:1;min-height:0;overflow:hidden;border-style:solid;border-color:var(--border);background:var(--surface);}
#home-screen.home-doc #dash-browser #kaitori-frame{display:block;border:0;transform-origin:top left;background:transparent;}
#home-screen.home-doc #dash-browser .km-embed-load{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:var(--surface);}
#home-screen.home-doc #dash-browser .kx-empty{text-align:center;color:var(--text3);background:var(--surface);border:1px solid var(--border);}
#home-screen.home-doc #dash-browser #kaitori-loading{text-align:center;}
#home-screen.home-doc #dash-browser .kx-spinner{margin-left:auto;margin-right:auto;border-style:solid;border-color:rgba(201,168,76,.18);border-top-color:var(--accent2);border-radius:50%;animation:kx-spin .8s linear infinite;}
@keyframes kx-spin{to{transform:rotate(360deg);}}
#home-screen.home-doc #dash-browser #kaitori-loading .kx-loading-text{color:var(--text3);letter-spacing:.04em;}
#home-screen.home-doc #dash-browser #kaitori-error{background:rgba(224,82,82,.08);border:1px solid rgba(224,82,82,.25);color:var(--danger);line-height:1.6;}
#home-screen.home-doc #dash-browser .kx-kw-list{background:var(--surface);border:1px solid var(--border);overflow:hidden;}
#home-screen.home-doc #dash-browser .kx-kw-item{display:flex;align-items:center;border-bottom-style:solid;border-bottom-color:var(--border);cursor:pointer;transition:background .15s;}
#home-screen.home-doc #dash-browser .kx-kw-item:hover{background:var(--surface2);}
#home-screen.home-doc #dash-browser .kx-kw-main{flex:1;min-width:0;}
#home-screen.home-doc #dash-browser .kx-kw-name{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#home-screen.home-doc #dash-browser .kx-kw-jan{color:var(--text3);font-family:'Space Grotesk',monospace;letter-spacing:.04em;}
#home-screen.home-doc #dash-browser .kx-kw-right{text-align:right;flex-shrink:0;}
#home-screen.home-doc #dash-browser .kx-kw-price{font-weight:600;color:var(--success);font-family:'Space Grotesk',monospace;}
#home-screen.home-doc #dash-browser .kx-kw-stores{color:var(--text3);}

/* ── M-7 バーコードスキャンモーダル（sn.css旧 437-441 そのまま。等倍px＝スケール無関係） ── */
/* [B-144] z-index 5000→5002: #gbar(5001)より下だったため、スマホでは v0.364 で拡大した
   検索バーがモーダル下部（チップ行）に被って見えなかった。モーダルはchromeより上が正 */
#home-screen.home-doc #kaitori-camera-wrap{position:fixed;inset:0;z-index:5002;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;padding:20px;}
#kaitori-camera-wrap .db-cam-inner{width:100%;max-width:420px;background:var(--menu);border:1px solid var(--border2);border-radius:7px;overflow:hidden;}
#kaitori-camera-wrap .db-cam-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--surface);border-bottom:1px solid var(--border);font-size:12px;color:var(--text);}
#kaitori-camera-wrap .db-cam-head button{background:transparent;border:1px solid var(--border2);color:var(--text);border-radius:7px;padding:3px 10px;font-size:11px;cursor:pointer;}
#kaitori-camera-wrap #kaitori-qr-reader{width:100%;}
/* [B-140/B-144] ズーム切替チップ（対応端末のみJSが生成・小型バッジ=角R4px規約）。
   [B-144] 配置をカード最下段→**読み取り枠のすぐ下へのオーバーレイ**に変更（IZUNA指示 2026-08-31）。
   読み取り枠(qrbox)は高さ100pxで映像中央に置かれる＝映像の縦中央+50pxが枠下端。
   基準は .db-cam-stage（reader と同高の relative 兄弟ラッパ＝lib の clear() で消されない）。
   映像の上に重ねるため配色はテーマ非依存の半透明黒/白（映像は常に暗背景扱い） */
#kaitori-camera-wrap .db-cam-stage{position:relative;}
#kaitori-camera-wrap #kaitori-zoom-chips{position:absolute;left:0;right:0;top:calc(50% + 58px);display:flex;gap:8px;justify-content:center;pointer-events:none;}
#kaitori-camera-wrap .cam-zoom-chip{pointer-events:auto;background:rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:4px;padding:4px 16px;font-size:12px;cursor:pointer;}
#kaitori-camera-wrap .cam-zoom-chip.active{background:#fff;border-color:#fff;color:#111;}
/* [B-146] OCRチップ＝ズーム群と役割が違うため左に間隔・認識中は減灰（busyはJSが付与） */
#kaitori-camera-wrap .cam-ocr-chip{margin-left:10px;letter-spacing:.05em;}
#kaitori-camera-wrap .cam-zoom-chip.busy{opacity:.45;pointer-events:none;}

/* ── M-8 ライト（sn.css旧 398・432-436・821。#home-screen.light は index.php:91（初期適用）と
   chrome.js（toggleTheme）が付与する現役機構。基底より後置＋.light分の特異度で後勝ち ── */
#home-screen.home-doc.light #dash-browser .db-close{color:rgba(0,0,0,.55);background:rgba(255,255,255,.6);border-color:rgba(0,0,0,.12);}
#home-screen.home-doc.light #dash-browser .db-body{scrollbar-color:rgba(0,0,0,.18) transparent;}
#home-screen.home-doc.light #dash-browser .kx-kw-name{color:rgba(0,0,0,.85);}
#home-screen.home-doc.light #dash-browser :is(.kx-kw-jan,.kx-kw-stores,.db-sub){color:rgba(0,0,0,.42);}
body.flat.light #home-screen.home-doc #dash-browser.open{box-shadow:0 8px 24px rgba(0,0,0,.07);}

/* ── スマホ暫定（~680px＝キャンバス縮小が始まる境界で縦積みへ。作り込まない） ── */
@media (max-width:680px){
  #home-screen.home-doc{--u:1.6px;overflow-y:auto;align-items:stretch;}   /* 文字実寸化（7.5→12px相当） */
  body.flat #home-screen.home-doc .logo-sn,
  body.flat #home-screen.home-doc .logo-center{display:none;}   /* 縦積みでは中央固定透かしは重なり事故のもと＝非表示 */
  #home-screen.home-doc .hd-doc{width:auto;flex:none;display:block;padding:10px 10px 165px;}  /* 下部=固定#gbar/フッターの逃げ。[B-143] gbar拡大で上端が約137pxへ上がるため140→165 */
  #home-screen.home-doc .hd-kpis{grid-template-columns:minmax(0,1fr);}   /* 縦積み（grid1列化） */
  #home-screen.home-doc .hd-cols{display:block;margin-top:calc(8 * var(--u));}
  #home-screen.home-doc .hd-col{display:block;}
  body.flat #home-screen.home-doc .side-widget,
  body.flat #home-screen.home-doc .side-widget:not(.sw-ai){height:calc(218 * var(--u));margin-top:calc(8 * var(--u));}
  #home-screen.home-doc .hd-col-c{padding-bottom:0;}
  #home-screen.home-doc #dash-browser.open{position:fixed;top:calc(var(--bar-h) + 8px);bottom:calc(var(--bar-h) + 8px);left:8px;right:8px;}
}
