/* ═════════════════════════════════════════════
   RUVO · カード詳細（card.html）手机（T24，≤767、外壳挂上后；样张 M3「単カード詳細」，2026-10-12）
   只在 html.m-shell 里生效：≥768 一像素不变（这一节以外只有 .cm-hero / .m-fab 的 display:none）。
   大卡 236 宽居中（稀有度箔光、触摸／指针倾斜）→ 名・chips → 主价 56（品相切换时逐位翻滚）→ 品相分段（价格与日期）→ 走势 7D／30D／ALL →
   最近の成約（シンプル 3 行・プロ 5 行）→ 折叠段（価格の内訳・チェック項目・売れ方・価格推移・成約明細・関連ニュース・店舗の買取・ショップで見る）。
   颜色只用 ruvo-c.css 的 token；字体只用 var(--f-jp)／var(--f-num)／var(--f-mono)。控件 44／56。
   ═════════════════════════════════════════════ */
.cm-hero, .m-fab, .cm-basic { display: none; }   /* .cm-basic（カードの基本情報）は価格の内訳の折り畳みの中だけ。桌面には出さない */
body, body[data-theme="light"] { --cm-glare: rgba(255, 255, 255, .7); }   /* token 例外：物理反射の白い光は配色によらないため、白の rgba を保持する（浅深共通）。 */
body[data-theme="dark"] { --cm-glare: rgba(255, 255, 255, .5); }

@media (max-width: 767px) {
  html.m-shell .v3-page { padding-top: 0 !important; width: min(1248px, calc(100% - 32px)); }
  html.m-shell .v3-page > p.faint:first-child { margin: 4px 0 0 !important; font-size: 14px !important; }
  html.m-shell .v3-page > p.faint:first-child a { display: inline-flex; align-items: center; min-height: 44px; }
  html.m-shell.cm-mounted .v3-page > p.faint:first-child { display: none; }   /* 「← カード一覧」は大卡の左上の丸い戻るボタン（#cm-back）に */
  html.m-shell .v3-sect-cap { display: none; }

  /* 旧的第一屏（图舞台・标题・品相标签・四张价格札）让位：新的第一屏在 #cm-hero。价格札、值動きの根拠、基本情報行は「価格の内訳」段里（プロでは三张价格札也出） */
  html.m-shell #v3-mod-hero .v3-hero { display: block; }
  html.m-shell #v3-mod-hero .v3-hero > div:first-child, html.m-shell #v3-subnav, html.m-shell #card-states { display: none !important; }
  html.m-shell #add-col { display: none; }
  html.m-shell body[data-view="simple"] #kpi-wall { display: none; }
  html.m-shell body[data-view="simple"] #v3-mod-hero details.fold,
  html.m-shell body[data-view="simple"] #ph-caveat { display: none; }
  html.m-shell body[data-view="simple"] #hero-foot .v3-hf:nth-child(n+5) { display: none; }
  html.m-shell #v3-mod-hero .hero-actions { margin-top: 12px; padding-top: 12px; }
  html.m-shell #v3-mod-hero .hero-actions .btn { min-height: 44px; }
  html.m-shell .v3-hero-foot { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* ── 第一屏 ── */
  html.m-shell .cm-hero { display: flex; flex-direction: column; align-items: stretch; gap: 16px; margin: 0 0 24px; }
  html.m-shell .cm-stage { position: relative; isolation: isolate; display: grid; place-items: center; height: 344px; margin-top: 4px; touch-action: pan-y; perspective: 900px; }
  html.m-shell .cm-stage::before {
    content: ""; position: absolute; z-index: 0; left: -16px; right: -16px; top: -48px; bottom: -8px; pointer-events: none;
    background: radial-gradient(52% 52% at 50% 46%, var(--peach-wash, var(--lemon-wash)), transparent 72%);
  }
  html.m-shell .cm-card {
    position: relative; z-index: 1; width: 236px; aspect-ratio: 744 / 1040; border-radius: 12px; overflow: hidden; background: var(--tray);
    transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transform-style: preserve-3d; will-change: transform;
    box-shadow: 0 26px 34px -14px color-mix(in srgb, var(--text-1) 42%, transparent), 0 0 0 1px var(--line);
  }
  html.m-shell .cm-card img { display: block; width: 100%; height: 100%; object-fit: cover; user-select: none; -webkit-user-drag: none; }
  html.m-shell .cm-card .v3-noart { display: grid; place-items: center; width: 100%; height: 100%; font-size: 14px; font-weight: 700; color: var(--text-3); }
  html.m-shell .cm-foil {
    position: absolute; inset: 0; pointer-events: none; opacity: var(--foil, 0); mix-blend-mode: hard-light; background-size: 220% 220%;
    background-position: calc(var(--fx, .35) * 100%) calc(var(--fy, .3) * 100%);
    background-image: repeating-linear-gradient(115deg, var(--peach) 0 3%, var(--lemon) 3% 6%, var(--mint) 6% 9%, var(--sky) 9% 12%, color-mix(in srgb, var(--sky) 55%, var(--peach)) 12% 15%);
  }
  html.m-shell .cm-glare {
    position: absolute; inset: 0; pointer-events: none; mix-blend-mode: overlay; opacity: calc(var(--foil, 0) * 1.1 + .06);
    background: radial-gradient(circle at calc(var(--fx, .35) * 100%) calc(var(--fy, .3) * 100%), var(--cm-glare), transparent 56%);
  }
  html.m-shell .cm-card[data-foil="none"] .cm-foil { display: none; }
  html.m-shell .cm-card .img-approx { font-size: 13px; line-height: 1.5; padding: 2px 8px; }   /* 参考画像: 大卡の中（左下、桌面と同じ位置）。大卡と一緒に傾く。v7.css の位置指定（left/bottom）をそのまま使う */
  html.m-shell .cm-gyro {
    position: absolute; z-index: 3; right: calc(50% - 150px); bottom: 12px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%;
    background: var(--panel); color: var(--lemon-text); box-shadow: var(--shadow-2), 0 0 0 1px var(--line); cursor: pointer; transition: transform var(--c-d-press) var(--c-e-press);
  }
  html.m-shell .cm-gyro .ic { width: 22px; height: 22px; --ic-fill: var(--lemon); }
  html.m-shell .cm-gyro:active { transform: scale(.92); }
  html.m-shell .cm-gyro[aria-pressed="true"] { background: var(--plate); color: var(--lemon); }
  html.m-shell .cm-gyro:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 3px; }
  html.m-shell .cm-back, html.m-shell .cm-collect {
    position: absolute; z-index: 3; top: 4px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%;
    background: var(--panel); color: var(--text-1); box-shadow: var(--shadow-2), 0 0 0 1px var(--line); cursor: pointer; text-decoration: none; -webkit-tap-highlight-color: transparent;
    transition: transform var(--c-d-press) var(--c-e-press);
  }
  html.m-shell .cm-back { left: 0; }
  html.m-shell .cm-collect { right: 0; }
  html.m-shell .cm-back .ic, html.m-shell .cm-collect .ic { width: 22px; height: 22px; }
  html.m-shell .cm-back:active, html.m-shell .cm-collect:active { transform: scale(.92); }
  html.m-shell .cm-collect[aria-pressed="true"] { background: var(--plate); color: var(--lemon); box-shadow: var(--shadow-plate, var(--shadow-2)); }
  html.m-shell .cm-back:focus-visible, html.m-shell .cm-collect:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 3px; }
  html.m-shell .cm-name { margin: 0; text-align: center; font: 900 30px/1.2 var(--f-jp); letter-spacing: 0; text-wrap: balance; word-break: auto-phrase; color: var(--text-1); }
  html.m-shell .cm-name-sub { margin: -8px 0 0; text-align: center; font-size: 13px; line-height: 1.6; font-weight: 700; color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.m-shell .cm-chips { display: flex; flex-wrap: nowrap; align-items: center; justify-content: center; gap: 8px; min-width: 0; }
  html.m-shell .cm-chips:empty { display: none; }
  html.m-shell .cm-chips .v3-mchip { min-height: 32px; font-size: 13px; min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--f-mono); font-weight: 500; }
  html.m-shell .cm-chips .stk { flex: none; }
  html.m-shell .cm-basic { display: grid; margin-top: 8px; }
  html.m-shell .cm-basic:empty { display: none; }
  html.m-shell .cm-basic .v3-hf .v { overflow-wrap: anywhere; }
  html.m-shell .cm-chips .v3-mchip.is-live, html.m-shell .cm-chips .v3-mchip.is-stale { display: none; }   /* 更新日は主価格の下の「M/D 時点」と同じ数字 */
  html.m-shell .cm-hero .stk, html.m-shell .cm-trades .stk { font-size: 13px !important; }

  html.m-shell .cm-price { text-align: center; }
  html.m-shell .cm-plab { margin: 0; font-size: 14px; font-weight: 800; color: var(--text-2); }
  html.m-shell .cm-big { position: relative; display: inline-block; isolation: isolate; margin: 6px 0 4px; max-width: 100%; font: 900 56px/1.1 var(--f-num); letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
  html.m-shell .cm-big::after { content: ""; position: absolute; left: -4px; right: -8px; bottom: 4px; height: 16px; z-index: -1; border-radius: 8px; background: var(--lemon); opacity: .5; }
  html.m-shell body[data-theme="dark"] .cm-big::after { opacity: .26; }
  html.m-shell .cm-big .cm-yen { font-size: .55em; margin-right: 4px; vertical-align: .32em; }
  html.m-shell .cm-big .dg > span { display: inline-block; clip-path: inset(-.14em -.06em -.14em -.06em); }
  html.m-shell .cm-big .dg > span > span { display: inline-block; }
  html.m-shell .cm-big.is-old { font-size: 40px; color: var(--text-3); }
  html.m-shell .cm-big.is-old::after { opacity: .2; }
  html.m-shell .cm-big.is-none { font-size: 40px; color: var(--text-3); }
  html.m-shell .cm-big.is-none::after, html.m-shell .cm-big.is-none .cm-yen { display: none; }
  html.m-shell .cm-pdate { margin: 0; font-size: 13px; font-weight: 700; color: var(--text-2); }
  html.m-shell .cm-pdate .num { font-family: var(--f-mono); color: var(--text-1); }
  html.m-shell .cm-stale { display: inline-block; padding: 0 8px; border-radius: 999px; background: var(--track); color: var(--text-2); }
  html.m-shell .cm-pills { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 6px; margin-top: -4px; }   /* 390 宽で 3 枚（前回比・7日比・30日比）が 1 行に収まる幅。360 宽は 2 行に折れる（折れても可） */
  html.m-shell .cm-pills:empty { display: none; }
  html.m-shell .cm-pills .v3-dlt { font-size: 14px; padding: 0 8px; }
  html.m-shell .cm-pills .v3-dlt small { font-size: 13px; }

  /* 品相分段（A ランク／PSA10／PSA9、价格と日付） */
  html.m-shell .cm-tabs { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 8px; border-radius: 24px; background: var(--tray); box-shadow: inset 0 0 0 1px var(--line); }
  html.m-shell .cm-plate { position: absolute; z-index: 0; left: 0; top: 0; width: 0; height: 0; border-radius: 16px; background: var(--panel); box-shadow: var(--shadow-1), 0 0 0 1px var(--line); pointer-events: none; opacity: 0; }
  html.m-shell .cm-tabs.is-ready .cm-plate, html.m-shell .cm-range.is-ready .cm-plate { opacity: 1; }
  html.m-shell .cm-tabs button {
    position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 64px; padding: 6px 4px; border: 0; border-radius: 16px; background: none; color: var(--text-2);
    font: 700 13px/1.3 var(--f-jp); cursor: pointer; transition: transform var(--c-d-press) var(--c-e-press); -webkit-tap-highlight-color: transparent;
  }
  html.m-shell .cm-tabs:not(.is-ready) button[aria-selected="true"] { background: var(--panel); box-shadow: var(--shadow-1), 0 0 0 1px var(--line); }
  html.m-shell .cm-tabs button[aria-selected="true"] { color: var(--text-1); }
  html.m-shell .cm-tabs button:active { transform: scale(.96); }
  html.m-shell .cm-tabs button[disabled] { opacity: .45; cursor: not-allowed; }
  html.m-shell .cm-tp { font: 900 17px/1.2 var(--f-num); color: var(--text-1); font-variant-numeric: tabular-nums; }
  html.m-shell .cm-td { font: 500 13px var(--f-mono); color: var(--text-3); }
  html.m-shell .cm-tabs button:focus-visible, html.m-shell .cm-range button:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
  html.m-shell .cm-attr-slot:empty { display: none; }

  /* 走势 */
  html.m-shell .cm-sec { display: block; }
  html.m-shell .cm-sec-h { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; }
  html.m-shell .cm-sec-h h2 { margin: 0; font: 900 20px/1.3 var(--f-jp); }
  html.m-shell .cm-range { position: relative; display: inline-grid; grid-auto-flow: column; padding: 4px; border-radius: 999px; background: var(--tray); box-shadow: inset 0 0 0 1px var(--line); }
  html.m-shell .cm-range[hidden] { display: none; }
  html.m-shell .cm-range .cm-plate { border-radius: 999px; background: var(--plate); box-shadow: none; }
  html.m-shell .cm-range button {
    position: relative; z-index: 1; width: 52px; height: 44px; padding: 0; border: 0; border-radius: 999px; background: none; color: var(--text-2); font: 800 14px var(--f-num); cursor: pointer;
    transition: transform var(--c-d-press) var(--c-e-press); -webkit-tap-highlight-color: transparent;
  }
  html.m-shell .cm-range:not(.is-ready) button[aria-pressed="true"] { background: var(--plate); }
  html.m-shell .cm-range button[aria-pressed="true"] { color: var(--plate-ink); }
  html.m-shell .cm-range button:active { transform: scale(.94); }
  html.m-shell .cm-chart { position: relative; min-height: 120px; }
  html.m-shell .cm-chart-in { position: relative; touch-action: pan-y; border-radius: 20px; -webkit-tap-highlight-color: transparent; }
  html.m-shell .cm-chart-in:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
  html.m-shell .cm-chart-in svg { display: block; width: 100%; height: auto; overflow: visible; }
  html.m-shell .cm-chart-in .ln { fill: none; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
  html.m-shell .cm-chart-in .avg { stroke: var(--text-3); stroke-width: 1.5; stroke-dasharray: 4 5; }
  html.m-shell .cm-chart-in .tk rect { fill: var(--text-3); opacity: .55; }
  html.m-shell .cm-chart-in .hl circle { fill: var(--panel); stroke: var(--tc); stroke-width: 2.4; }
  html.m-shell .cm-chart-in .hl text { font: 800 13px var(--f-num); fill: var(--text-1); }
  html.m-shell .cm-chart-in .ax text { font: 500 13px var(--f-mono); fill: var(--text-3); }
  html.m-shell .cm-chart-in .cur[hidden] { display: none; }
  html.m-shell .cm-chart-in .cur line { stroke: var(--text-2); stroke-width: 1.5; }
  html.m-shell .cm-chart-in .cur circle { fill: var(--panel); stroke: var(--tc); stroke-width: 3; }
  html.m-shell .cm-tip { position: absolute; top: 0; z-index: 2; display: inline-flex; align-items: baseline; gap: 6px; padding: 4px 12px; border-radius: 12px; background: var(--plate); color: var(--plate-ink); font-size: 13px; white-space: nowrap; pointer-events: none; }
  html.m-shell .cm-tip[hidden] { display: none; }
  html.m-shell .cm-tip b { font: 900 15px var(--f-num); }
  html.m-shell .cm-ends { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px; border-radius: 24px; background: var(--panel); box-shadow: var(--shadow-1), 0 0 0 1px var(--line); color: var(--tc, var(--text-2)); }
  html.m-shell .cm-ends > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
  html.m-shell .cm-ends > div .num { font: 500 14px var(--f-mono); color: var(--text-2); }
  html.m-shell .cm-ends > div b { font: 900 26px/1.15 var(--f-num); color: var(--tc, var(--text-1)); font-variant-numeric: tabular-nums; }
  html.m-shell .cm-ends > div small { font-size: 13px; font-weight: 700; color: var(--text-3); }
  html.m-shell .cm-ends svg { flex: 1 1 auto; min-width: 28px; max-width: 96px; height: 16px; }
  html.m-shell .cm-empty { margin: 0; padding: 24px 12px; text-align: center; font-size: 14px; color: var(--text-3); }
  html.m-shell .cm-cap { margin: 8px 0 0; font-size: 13px; line-height: 1.6; color: var(--text-2); }

  /* 最近の成约 */
  html.m-shell .cm-info { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--text-2); cursor: pointer; transition: transform var(--c-d-press) var(--c-e-press); }
  html.m-shell .cm-info .ic { width: 22px; height: 22px; }
  html.m-shell .cm-info:active { transform: scale(.9); background: var(--tray); }
  html.m-shell .cm-trades { margin: 0; padding: 0; list-style: none; }
  html.m-shell .cm-trades li { display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; align-items: center; gap: 4px 8px; min-height: 56px; border-bottom: 1px solid var(--line); }
  html.m-shell .cm-trades .cm-grade { display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border-radius: 999px; box-shadow: inset 0 0 0 1.5px var(--line-strong); background: var(--panel); font: 800 13px var(--f-jp); color: var(--text-1); white-space: nowrap; }
  html.m-shell .cm-trades .cm-src { display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border-radius: 999px; background: var(--sky-wash); color: var(--sky-text); font: 800 13px var(--f-jp); white-space: nowrap; }
  html.m-shell .cm-trades .cm-when { min-width: 0; font-size: 14px; font-weight: 700; color: var(--text-2); }
  html.m-shell .cm-trades .cm-when .num { font-family: var(--f-mono); }
  html.m-shell .cm-trades b { font: 900 20px var(--f-num); font-variant-numeric: tabular-nums; text-align: right; }
  html.m-shell .cm-trades .cm-lot { grid-column: 3 / -1; text-align: right; font-size: 13px; font-weight: 700; color: var(--text-3); margin-top: -8px; padding-bottom: 8px; }
  html.m-shell .cm-trades .cm-trade-empty { display: block; padding: 20px 4px; font-size: 14px; color: var(--text-3); }
  html.m-shell .cm-more { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; margin-top: 4px; color: var(--sky-text); font-size: 14px; font-weight: 800; text-decoration: none; transition: transform var(--c-d-press) var(--c-e-press); }
  html.m-shell .cm-more .ic { width: 16px; height: 16px; }
  html.m-shell .cm-more:active { transform: scale(.96); }
  html.m-shell .cm-credit { margin: 0; text-align: center; font-size: 13px; line-height: 1.6; color: var(--text-3); }
  html.m-shell .cm-credit a { color: inherit; text-decoration: underline; text-underline-offset: 2px; display: inline-flex; align-items: center; min-height: 44px; }
  html.m-shell .cm-sheet p { margin: 0 0 12px; font-size: 14px; line-height: 1.8; color: var(--text-2); }

  /* ── 折叠段 ── */
  html.m-shell .v3-page > div[id^="v3-"] { display: block; }
  html.m-shell .v3-page [data-m-acc] { margin-top: 12px; padding: 0 16px; }
  html.m-shell .v3-page [data-m-acc].is-open { padding-bottom: 16px; }
  html.m-shell .v3-page [data-m-acc] > :is(.v3-mod-h, .block-label, h2) {
    position: relative; display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 0 8px; min-height: 56px; margin: 0 -16px; padding: 8px 52px 8px 16px; cursor: pointer; border-radius: var(--r-lg); user-select: none; -webkit-tap-highlight-color: transparent; text-align: left;
    transition: transform var(--c-d-press) var(--c-e-press), background-color .15s ease;
  }
  html.m-shell .v3-page [data-m-acc] > :is(.v3-mod-h, .block-label, h2):active { transform: scale(.985); background: var(--tray); }
  html.m-shell .v3-page [data-m-acc] > :is(.v3-mod-h, .block-label, h2)::after {
    content: ""; position: absolute; right: 22px; top: 50%; width: 9px; height: 9px; margin-top: -7px;
    border-right: 2.5px solid var(--text-2); border-bottom: 2.5px solid var(--text-2); transform: rotate(45deg); transition: transform var(--c-d-press) var(--c-e-press);
  }
  html.m-shell .v3-page [data-m-acc].is-open > :is(.v3-mod-h, .block-label, h2)::after { margin-top: -2px; transform: rotate(-135deg); }
  html.m-shell .v3-page [data-m-acc] > :is(.v3-mod-h, .block-label) h2, html.m-shell .v3-page [data-m-acc] > h2 { margin: 0; font-size: 17px; line-height: 1.4; }
  html.m-shell .v3-page [data-m-acc] > .block-label > h2 { flex: 1 1 100%; }
  html.m-shell .v3-page [data-m-acc] > .v3-mod-h { flex-wrap: nowrap; }
  html.m-shell .v3-page [data-m-acc] > .v3-mod-h > .v3-ht { flex: 1 1 auto; min-width: 0; }
  html.m-shell .v3-page [data-m-acc] > .v3-mod-h > .v3-go { flex: none; width: 44px; height: 44px; }
  html.m-shell .v3-page [data-m-acc]:not(.is-open) > :is(.v3-mod-h, .block-label) > :not(h2):not(.v3-ht):not(.v3-go) { display: none; }
  html.m-shell .v3-page [data-m-acc]:not(.is-open) > .v3-mod-h .v3-hint { display: none; }
  html.m-shell .v3-page [data-m-acc].is-open > :is(.v3-mod-h, .block-label, h2) { margin-bottom: 4px; }
  html.m-shell .v3-page [data-m-acc]:not(.is-open) > :not(.v3-mod-h):not(.block-label):not(h2) { display: none !important; }
  html.m-shell .v3-page [data-m-acc] > .v3-mod-h :is(a, button) { position: relative; z-index: 1; }

  /* 小字は 13 以上（旧い面板の 9.5〜12px を、このページの手機だけ引き上げる） */
  html.m-shell .v3-page :is(.v3-hint, .v3-sb, .v3-card-skind, .v3-meter-cap, .v3-sect-cap, .v3-psrc, .v3-hf small, .v3-nb, .pl-note, .hint, .faint), html.m-shell .foot, html.m-shell .foot div, html.m-shell .v3-page .cm-credit, html.m-shell .v3-page .cm-credit a { font-size: 13px; }

  /* 面板（panels/*.js）の小字：旧い 9.5〜12.5px を、この页の手機だけ 13 へ */
  html.m-shell :is(.bx-page, .v3-page) :is(.pl-k, .pl-d, .tc-note, .tc-note *, .cv-note, .ie-after, .ie-after *, .ie-foot span, .ie-conf, .ie-tag, .ie-dates, .ie-note, .dp-q, .dp-note, .dp-sub,
    .v3-picon, .v3-plab, .v3-plab *, .v3-dlt, .v3-dlt small, .cd-l, .cd-g, .v3-sk, .v3-sn, .v3-sn *, .v3-crossref, .v3-crossref *, .v3-hf .k, .v3-sblock small, .chart-release-note,
    .tp-d, .tp-tag, .ch-xdate, .tc-lgd, .tc-lgd *, .fold > summary, .chips button, .chips em, .ch-ranges button, .ch-tip *, .ch-leg, .ch-leg em, .cv-legend span, .ie-foot a, .tc-toggles label, .dp-tbl td, .dp-tbl th, .dp-legend, .dp-legend span) { font-size: 13px; }
  html.m-shell :is(.bx-page, .v3-page) :is(.chips button, .ch-ranges button) { min-height: 44px; height: 44px; min-width: 44px; }
  html.m-shell .bx-page .canonical-source-history .vt .btn-src { min-height: 44px; }
  html.m-shell :is(.bx-page, .v3-page) .btn-src { height: auto; min-height: 44px; display: inline-flex; align-items: center; }
  html.m-shell :is(.bx-page, .v3-page) :is(.ie-foot a, .ie-item a, .ie-src a) { display: inline-flex; align-items: center; min-height: 44px; }
  /* 手机上可点件补到 44 */
  html.m-shell .v3-page .ch-ranges button, html.m-shell .v3-page .ch-leg, html.m-shell .v3-page .tc-toggles label, html.m-shell .v3-page .dp-more,
  html.m-shell .v3-page .btn-src, html.m-shell .v3-page .v3-xrow, html.m-shell .v3-page .v3-shop, html.m-shell .v3-page .shop-order-note a,
  html.m-shell .v3-page #buyout-section .v3-meter-cap a, html.m-shell .v3-page .v3-mod .fold > summary, html.m-shell .foot a { min-height: 44px; }
  html.m-shell .v3-page .ch-ranges button { padding-left: 14px; padding-right: 14px; }
  html.m-shell .v3-page .tc-toggles label { display: inline-flex; align-items: center; gap: 8px; }
  html.m-shell .v3-page .shop-order-note a, html.m-shell .v3-page #buyout-section .v3-meter-cap a, html.m-shell .foot a { display: inline-flex; align-items: center; }

  /* 按下反馈（SPRING_PRESS：按下立即 .96〜.97，松开弹回）。旧面板里的按钮、链接卡、折叠摘要也一样 */
  html.m-shell :is(.bx-page, .v3-page) :is(button:not([disabled]), a.btn, .chips button, .v3-shop, .v3-xrow, .v3-go, a.btn-src, .fold > summary, .dp-more, .ch-leg, .tc-toggles label):not([data-no-press]) {
    transition: transform var(--c-d-press) var(--c-e-press), background-color .15s ease, color .15s ease, box-shadow .15s ease;
  }
  html.m-shell :is(.bx-page, .v3-page) :is(button:not([disabled]), a.btn, .chips button, .v3-shop, .v3-xrow, .v3-go, a.btn-src, .fold > summary, .dp-more, .ch-leg, .tc-toggles label):not([data-no-press]):active { transform: scale(.97); }

  /* ── 浮动的收藏钮（与 box 同一个；站上没有价格提醒，只留这一个） ── */
  html.m-shell .m-fab {
    display: grid; place-items: center; position: fixed; right: 16px; bottom: calc(var(--m-dock-space) - 28px); z-index: 88; width: 56px; height: 56px; padding: 0; border: 0; border-radius: 50%;
    background: var(--lemon); color: var(--sticker-ink); cursor: pointer; box-shadow: 0 4px 0 var(--ledge-lemon), var(--shadow-2);
    transition: transform var(--c-d-press) var(--c-e-press), box-shadow var(--c-d-press) var(--c-e-press), opacity .22s ease, visibility 0s; -webkit-tap-highlight-color: transparent;
  }
  /* 第一屏の間と下へスクロールしている間は引っ込む（右寄せの金額・タブに被さらない）。上へ戻すと出る */
  html.m-shell .m-fab.is-away { opacity: 0; visibility: hidden; transform: translateY(16px) scale(.85); pointer-events: none; transition: transform .22s ease, opacity .22s ease, visibility 0s .22s; }
  html.m-shell .m-fab .ic { width: 26px; height: 26px; }
  html.m-shell .m-fab:active { transform: translateY(3px) scale(.94); box-shadow: 0 1px 0 var(--ledge-lemon), var(--shadow-1); }
  html.m-shell .m-fab[aria-pressed="true"] { background: var(--plate); color: var(--lemon); box-shadow: var(--shadow-plate, var(--shadow-2)); }
  html.m-shell .m-fab:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 3px; }
}
/* 矮屏（360×740 などの手機）：主価格が第一屏に入るよう、大卡を一回り小さく（M3 r2-A14 と同じ考え方） */
@media (max-width: 767px) and (max-height: 800px) {
  html.m-shell .cm-stage { height: 266px; }
  html.m-shell .cm-card { width: 180px; }
  html.m-shell .cm-gyro { right: calc(50% - 118px); bottom: 8px; }
  html.m-shell .cm-name { font-size: 26px; }
  html.m-shell .cm-hero { gap: 12px; }
}
@media (hover: hover) and (pointer: fine) and (max-width: 767px) {
  html.m-shell .v3-page [data-m-acc] > :is(.v3-mod-h, .block-label, h2):hover { background: var(--tray); }
  html.m-shell .cm-tabs button:hover:not([disabled]), html.m-shell .cm-range button:hover { color: var(--text-1); }
  html.m-shell .m-fab:hover { filter: brightness(1.04); }
}
@media (prefers-reduced-motion: reduce) {
  html.m-shell :is(.bx-page, .v3-page) :is(button, a.btn, .chips button, .v3-shop, .v3-xrow, .v3-go, a.btn-src, .fold > summary, .dp-more, .ch-leg, .tc-toggles label) { transition: none !important; }
  html.m-shell :is(.bx-page, .v3-page) :is(button, a.btn, .chips button, .v3-shop, .v3-xrow, .v3-go, a.btn-src, .fold > summary, .dp-more, .ch-leg, .tc-toggles label):active { transform: none; }
  html.m-shell .cm-gyro, html.m-shell .cm-back, html.m-shell .cm-collect, html.m-shell .cm-tabs button, html.m-shell .cm-range button, html.m-shell .cm-info, html.m-shell .cm-more, html.m-shell .m-fab,
  html.m-shell .v3-page [data-m-acc] > :is(.v3-mod-h, .block-label, h2), html.m-shell .v3-page [data-m-acc] > :is(.v3-mod-h, .block-label, h2)::after { transition: none !important; }
  html.m-shell .cm-glare { display: none; }
}
html.c-still.m-shell .cm-gyro, html.c-still.m-shell .cm-back, html.c-still.m-shell .cm-collect, html.c-still.m-shell .cm-tabs button, html.c-still.m-shell .cm-range button, html.c-still.m-shell .cm-info, html.c-still.m-shell .cm-more, html.c-still.m-shell .m-fab,
html.c-still.m-shell .v3-page [data-m-acc] > :is(.v3-mod-h, .block-label, h2), html.c-still.m-shell .v3-page [data-m-acc] > :is(.v3-mod-h, .block-label, h2)::after { transition: none !important; }
html.c-still.m-shell .cm-glare { display: none; }

/* ?still：本件新增的手机动效全停（按下缩放、折叠段、倾斜都不动） */
html.c-still.m-shell :is(.bx-page, .v3-page, .m-fab) * , html.c-still.m-shell .m-fab { transition: none !important; animation: none !important; }
html.c-still.m-shell :is(.bx-page, .v3-page) :is(button, a, summary, label):active { transform: none !important; }
