/* 生成ボタンの周り（メモ 08）。色は今のサイトの site.css の :root（--acc・--line・--soft・--dim・--ink・--ok・--ng）だけを使う。点滅・揺れは無し */
.gb { display: grid; gap: 8px; }
.gb .hide, .gb-chips .hide, .gb-card .hide { display: none !important; }
.gb-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }

/* 枚数（4 月・tensor の 1/2/4。今のサイトの履歴の札と同じ黒い選び） */
.gb-n { display: inline-flex; gap: 2px; padding: 3px; border-radius: 10px; background: var(--soft); }
.gb-n button { border: 0; background: transparent; padding: 6px 11px; border-radius: 8px; font-size: .86rem; color: var(--dim); }
.gb-n button.on { background: var(--ink); color: #fff; }
.gb-n button:disabled { opacity: .35; }

/* 焼く先の印（今のサイトの GPU のランプの形。黄も点滅させない） */
.gb-lamp { display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 14px; border-radius: 10px; border: 1px solid var(--line); background: var(--soft); font-size: .84rem; font-weight: 600; color: var(--ink); white-space: nowrap; }
.gb-lamp-dot { width: 10px; height: 10px; border-radius: 50%; background: #b9b9c6; }
.gb-lamp.green .gb-lamp-dot { background: var(--ok); box-shadow: 0 0 8px rgba(31, 157, 107, .55); }
.gb-lamp.yellow .gb-lamp-dot { background: #f2b134; box-shadow: 0 0 8px rgba(242, 177, 52, .55); }
.gb-lamp.red .gb-lamp-dot { background: var(--ng); box-shadow: 0 0 8px rgba(212, 61, 81, .55); }

/* 生成ボタン（今のサイトの .gn-go と同じ青緑。押せない時は沈める）。22: 4 月の gp-grad の様に色がゆっくり流れる（押せない時・動きを減らす設定の時は止める） */
.gb-go { display: inline-flex; align-items: center; gap: .3em; height: 42px; padding: 0 22px; border: 0; border-radius: 10px; color: #fff; font-weight: 700; white-space: nowrap;
  background: linear-gradient(120deg, #4f7cff, #2fd7a2, #4f7cff); background-size: 200% 100%; animation: gb-grad 4s ease infinite; }
@keyframes gb-grad { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
.gb-go b { font-weight: 600; opacity: .92; }
.gb-go:hover:not(.off) { filter: brightness(1.06); }
.gb-go.off { background: linear-gradient(90deg, #8d9bc4, #8fc9b8); animation: none; cursor: not-allowed; }
.gb-go.wait { cursor: progress; opacity: .8; }
@media (prefers-reduced-motion: reduce) { .gb-go { animation: none; background-size: 100% 100%; background-image: linear-gradient(90deg, #4f7cff, #2fd7a2); } }

.gb-under { display: grid; gap: 6px; }
.gb-cost { display: flex; justify-content: flex-end; align-items: center; gap: 4px 12px; flex-wrap: wrap; font-size: .84rem; color: var(--dim); min-height: 1.4em; }
.gb-cost b { color: var(--ink); }
.gb-freenow, .gb-freeleft { color: var(--acc); font-weight: 600; }
.gb-over { color: var(--ink); font-weight: 600; }
.gb-bd { display: inline-flex; align-items: center; gap: 3px; border: 0; background: transparent; padding: 0 4px; color: var(--acc); font-size: .84rem; border-radius: 6px; }
.gb-bd:hover { background: var(--soft); }
/* 27: 小タブを替えて新しい値段が来るまで薄く／仮の値段の印（編集のモデルの値段が無い時） */
.gb-cost.stale { opacity: .5; }
.gb-mark { margin-left: 4px; padding: 0 6px; border: 1px solid var(--line); border-radius: 999px; font-style: normal; font-size: .72rem; color: var(--dim); background: var(--soft); }

/* 混んでいる時の予告・モデルの読み込み待ちの予告・見込み時間 */
.gb-note { font-size: .82rem; color: #7a5a10; background: #fff7e3; border: 1px solid #f1dfae; border-radius: 10px; padding: 6px 10px; }
.gb-note.gb-load { color: #1f4f8f; background: #eef4ff; border-color: #cadcf6; }
.gb-eta { color: var(--dim); }

/* 置き場所（04 の data-place）。mini＝結果を送った時の 1 行の帯の右で小さく／bottom＝狭い時に一番下に固定 */
.gb.mini, .gb.bottom { gap: 4px; }
.gb.mini { width: max-content; max-width: 100%; }           /* 41: 縮んだ帯の中では中身の幅を持つ（親の幅が 0 で右へはみ出していた。主の報告 01） */
.gb.in-frame.mini { container-type: normal; }               /* 41: 下の .gb.in-frame の inline-size の封じ込めは固有の幅を 0 にする。mini の帯は固有の幅で並ぶので外す（主の報告 01 の原因） */
.gb.mini .gb-row { flex-wrap: nowrap; }
.gb.mini .gb-under, .gb.bottom .gb-under { display: none; }
.gb.mini .gb-n, .gb.mini .gb-lamp span { display: none; }
.gb.mini .gb-lamp { height: 34px; padding: 0 10px; }
.gb.mini .gb-go { height: 34px; padding: 0 16px; font-size: .9rem; }
.gb.bottom .gb-row { flex-wrap: nowrap; }
.gb.bottom .gb-go { flex: 1 1 auto; justify-content: center; }
/* 22: 1 行（進み方・押せない理由・狭い時の消費）。高さ 30px の札。進み方は行の背景いっぱいに進みの色を塗り、字は --ink（前は 3px の線と灰色の小さい字で見えにくかった） */
.gb-line { position: relative; display: flex; align-items: center; gap: 6px; height: 30px; box-sizing: border-box; padding: 0 3px 0 10px; border-radius: 8px;
  font-size: .84rem; color: var(--ink); min-width: 0; overflow: hidden; isolation: isolate; transition: box-shadow .3s; }
.gb-line.run { background: var(--soft); }
.gb-line.run .gb-line-t { font-weight: 600; font-variant-numeric: tabular-nums; }
.gb-line.ng { color: var(--ng); background: color-mix(in srgb, var(--ng) 5%, var(--bg)); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ng) 22%, var(--line)); }
.gb-line.ng.flash, .gb-why.flash { box-shadow: 0 0 0 3px color-mix(in srgb, var(--ng) 30%, transparent); }
.gb-line.idle { color: var(--dim); padding: 0 2px 0 4px; }
.gb-line-bar { position: absolute; inset: 0; z-index: -1; background: transparent; pointer-events: none; }
.gb-line-bar b { display: block; height: 100%; width: 0; background: linear-gradient(90deg, rgba(79, 124, 255, .20), rgba(47, 215, 162, .32)); transition: width .5s linear; }
.gb-line-ic { display: inline-flex; flex: none; color: var(--ng); }
.gb-line-t { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gb-line-stop { display: inline-flex; align-items: center; gap: 4px; height: 24px; padding: 0 10px; font-size: .78rem; border-radius: 6px; flex: none; background: var(--bg); }
.gb-line-act { flex: none; height: 24px; padding: 0 10px; font-size: .78rem; border-radius: 6px; }
.gb-line-bd { flex: none; }
.gb-line-free { flex: none; display: inline-flex; align-items: center; gap: 4px; height: 24px; padding: 0 10px; font-size: .78rem; font-weight: 600; border-radius: 999px; border-color: var(--acc); color: var(--acc); background: var(--bg); }
.gb-line-free.fever { border-color: transparent; color: #fff; background: linear-gradient(90deg, #e0518f, #f39a3d); }
.gb-pin { cursor: pointer; }
.gb-pin[aria-expanded=true] { background: var(--soft); }

/* 押せない理由（押す前に出す） */
.gb-why { list-style: none; margin: 0; padding: 8px 10px; border-radius: 10px; display: grid; gap: 6px; font-size: .86rem;
  background: color-mix(in srgb, var(--ng) 5%, var(--bg)); border: 1px solid color-mix(in srgb, var(--ng) 22%, var(--line)); transition: box-shadow .3s; }
.gb-why li { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.gb-why li > svg { color: var(--ng); flex: none; }
.gb-why li > span { flex: 1 1 auto; min-width: 10em; }
.gb-why.flash { box-shadow: 0 0 0 3px color-mix(in srgb, var(--ng) 30%, transparent); }
.gb-act { padding: 3px 12px; font-size: .8rem; }

/* 1 時間フリーの入り口（フィーバーの場所 1） */
.gb-free { display: flex; align-items: center; gap: 12px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); }
.gb-free-ic { color: var(--acc); display: grid; place-items: center; }
.gb-free-tx { flex: 1 1 auto; min-width: 0; }
.gb-free-t { display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: .92rem; }
.gb-free-s { font-size: .8rem; color: var(--dim); }
.gb-free-go { flex: none; padding: 7px 16px; font-size: .84rem; font-weight: 600; border-color: var(--acc); color: var(--acc); background: var(--bg); }
.gb-free-go:hover { background: color-mix(in srgb, var(--acc) 7%, var(--bg)); }
.gb-free-go.short { border-color: var(--line); color: var(--ink); }
.gb-free.fever { border: 1.5px solid transparent; background: linear-gradient(var(--bg), var(--bg)) padding-box, linear-gradient(90deg, #e0518f, #f39a3d) border-box; }
.gb-free.fever .gb-free-ic { color: #ea6f6a; }
.gb-badge-fever { display: inline-block; font-size: .68rem; font-weight: 700; letter-spacing: .04em; padding: 1px 8px; border-radius: 999px; color: #fff; background: linear-gradient(90deg, #e0518f, #f39a3d); }

/* 止めるまで続ける */
.gb-forever { display: flex; align-items: center; gap: 6px; justify-content: flex-end; font-size: .84rem; color: var(--ink); cursor: pointer; }
.gb-forever input { width: auto; accent-color: var(--acc); }
.gb-forever svg { color: var(--dim); }

/* 押した後の進み方（tensor の札・Forge の進み具合） */
.gb-jobs { display: grid; gap: 8px; }
.gb-job { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 10px; padding: 10px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); }
.gb-job.end { background: var(--soft); }
.gb-job-pic { width: 72px; height: 72px; border-radius: 10px; background: var(--soft); overflow: hidden; display: grid; place-items: center; color: var(--dim); }
.gb-job.end .gb-job-pic { background: var(--bg); }
.gb-job-pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gb-job-body { display: grid; gap: 5px; min-width: 0; align-content: start; }
.gb-steps { display: flex; gap: 4px; flex-wrap: wrap; font-size: .72rem; }
.gb-steps span { padding: 1px 8px; border-radius: 999px; background: var(--soft); color: var(--dim); }
.gb-job.end .gb-steps span { background: var(--bg); }
.gb-job .gb-steps span.done { color: var(--ok); background: color-mix(in srgb, var(--ok) 10%, var(--bg)); }
.gb-job .gb-steps span.now { color: var(--acc-ink); background: var(--acc); }
.gb-job .gb-steps span.was { color: var(--ink); background: var(--bg); box-shadow: inset 0 0 0 1px var(--line); }
.gb-job .gb-steps span.skip { text-decoration: line-through; opacity: .6; }
.gb-job .gb-steps span.ng { color: #fff; background: var(--ng); }
.gb-job .gb-steps span.end { color: #fff; background: var(--dim); }
.gb-prog { height: 5px; background: var(--soft); border-radius: 99px; overflow: hidden; }
.gb-job.end .gb-prog { background: var(--bg); }
.gb-prog i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, #4f7cff, #2fd7a2); transition: width .5s linear; }
.gb-job-t { font-size: .86rem; }
.gb-job-t.ng { color: var(--ng); } .gb-job-t.ok { color: var(--ok); }
.gb-job-s { font-size: .78rem; color: var(--dim); }
.gb-job-s:empty, .gb-thumbs:empty { display: none; }
.gb-thumbs { display: flex; gap: 4px; flex-wrap: wrap; }
.gb-thumbs img { width: 36px; height: 36px; object-fit: cover; border-radius: 6px; display: block; }
.gb-th { position: relative; display: inline-block; }
.gb-th.partial img { opacity: .7; }
.gb-th b { position: absolute; left: 2px; bottom: 2px; padding: 0 4px; border-radius: 4px; background: rgba(29, 29, 40, .78); color: #fff; font-size: .6rem; font-weight: 600; line-height: 1.5; }
.gb-job-b { display: flex; gap: 6px; justify-content: flex-end; }
.gb-job-b button { display: inline-flex; align-items: center; gap: 5px; padding: 4px 12px; font-size: .8rem; border-radius: 8px; }
.gb-stop { color: var(--ng); }
.gb-close { border: 0; background: transparent; color: var(--dim); padding: 4px 6px; }

/* 残りポイントの札と 1 時間フリーの残り時間（フィーバーの場所 2） */
.gb-chips { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.gb-chip { display: inline-flex; align-items: center; gap: 7px; padding: 6px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--bg); font-weight: 600; font-size: .9rem; color: var(--ink); }
.gb-chip svg { color: #c49a1c; }
.gb-chip:hover { background: var(--soft); }
.gb-chip-free { position: relative; display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px 8px; border-radius: 999px; background: color-mix(in srgb, var(--acc) 8%, var(--bg));
  color: var(--acc); font-weight: 600; font-size: .86rem; overflow: hidden; font-variant-numeric: tabular-nums; }
.gb-chip-left { position: absolute; left: 12px; right: 12px; bottom: 3px; height: 2px; border-radius: 2px; background: color-mix(in srgb, var(--acc) 18%, transparent); }
.gb-chip-left b { display: block; height: 100%; background: var(--acc); border-radius: 2px; }
.gb-chip-free.fever { background: linear-gradient(90deg, #e0518f, #f39a3d); color: #fff; }
.gb-chip-free.fever .gb-chip-left { background: rgba(255, 255, 255, .35); }
.gb-chip-free.fever .gb-chip-left b { background: #fff; }

/* マウスを乗せた説明 */
.gb-tip { position: fixed; z-index: 60; display: none; max-width: 320px; padding: 8px 11px; border-radius: 10px; background: #2b2b33; color: #fff; font-size: .8rem; line-height: 1.55;
  box-shadow: 0 10px 30px rgba(20, 20, 40, .25); pointer-events: none; }
.gb-bdh { font-weight: 700; margin-bottom: 4px; }
.gb-bdbox table { border-collapse: collapse; width: 100%; min-width: 230px; }
.gb-bdbox th { text-align: left; font-weight: 600; padding: 3px 12px 3px 0; vertical-align: top; }
.gb-bdbox th small { display: block; font-weight: 400; color: #c9c9d4; font-size: .72rem; line-height: 1.4; }
.gb-bdbox td { text-align: right; white-space: nowrap; vertical-align: top; padding: 3px 0; font-variant-numeric: tabular-nums; }
.gb-bdbox tr.sum th, .gb-bdbox tr.sum td { border-top: 1px solid #4a4a55; padding-top: 5px; }
.gb-bdfoot { display: block; margin-top: 6px; color: #c9c9d4; font-size: .72rem; }
.gb-bdbox tr.tool th > div, .gb-bdbox tr.tool td { color: #ffd1e3; }   /* 27: 小タブの行（差し色を暗い吹き出しの上で読める明るさに） */
.gb-bdmark { color: #ffd1e3; }

/* 窓（今のサイトの .veil／.card に足す分） */
.gb-card { max-width: 480px; display: grid; gap: 10px; }
.gb-card h2 { margin: 0 34px 2px 0; }
.gb-p { margin: 0; font-size: .92rem; }
.gb-endrow { justify-content: flex-end; }
.gb-wbody { display: grid; gap: 10px; font-size: .9rem; }
.gb-whave { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; background: var(--soft); }
.gb-whave svg { color: #c49a1c; }
.gb-wlbl { font-size: .8rem; color: var(--dim); }
.gb-wnum { font-size: 1.5rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.gb-wrows { display: grid; gap: 4px; }
.gb-wrow { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 6px 2px; border-bottom: 1px solid var(--line); }
.gb-wrow small { flex-basis: 100%; color: var(--dim); font-size: .76rem; }
.gb-wh { margin: 6px 0 0; font-size: .86rem; color: var(--dim); font-weight: 600; }
.gb-wlog { display: grid; gap: 2px; max-height: 220px; overflow: auto; }
.gb-wline { display: grid; grid-template-columns: 88px 1fr auto; gap: 8px; align-items: baseline; padding: 5px 2px; border-bottom: 1px dashed var(--line); font-size: .84rem; }
.gb-wtime { color: var(--dim); font-variant-numeric: tabular-nums; font-size: .78rem; }
.gb-wwhat small { display: block; color: var(--dim); font-size: .74rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gb-wline b { font-variant-numeric: tabular-nums; }
.gb-wline b.minus { color: var(--ink); } .gb-wline b.plus { color: var(--ok); }
.gb-wadd { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.gb-addb { display: grid; gap: 2px; justify-items: center; border-radius: 12px; padding: 10px; }
.gb-addb span { font-size: .78rem; color: var(--dim); }
.gb-wrule { margin: 0; padding-left: 1.2em; font-size: .82rem; color: var(--dim); display: grid; gap: 2px; }

@media (max-width: 560px) {
  .gb-row { justify-content: stretch; }
  .gb-go { flex: 1 1 100%; justify-content: center; }
  .gb-free { flex-wrap: wrap; } .gb-free-go { flex: 1 1 100%; }
  .gb-wline { grid-template-columns: 1fr auto; } .gb-wtime { grid-column: 1 / -1; }
}

/* ---- 11 組み立て: 骨組みの言葉の箱の中（bar）では段を詰める。進み方の札は 09 の札に任せ、焼いている間は 1 行の帯 ---- */
.gb.in-frame { gap: 6px; }
.gb.in-frame .gb-under { gap: 6px; }
.gb.in-frame .gb-jobs { display: none; }
.gb.in-frame .gb-why { padding: 5px 10px; }
.gb.in-frame .gb-why li > span { min-width: 6em; }
.gb.in-frame .gb-free { padding: 5px 10px; gap: 8px; }
.gb.in-frame .gb-free-s { display: none; }
.gb.in-frame .gb-free-t { font-size: .86rem; }
.gb.in-frame .gb-free-go { padding: 4px 12px; font-size: .8rem; }
.gb-more { font-style: normal; font-size: .78rem; color: var(--dim); border-bottom: 1px dotted currentColor; cursor: help; flex: none; }
.gb-why-all { margin: 0; padding-left: 1.1em; display: grid; gap: 3px; }
.gb-ncount { display: inline-flex; align-items: center; height: 100%; padding: 0 10px; font-size: .84rem; font-weight: 600; white-space: nowrap; }
.gb-line-skip { display: inline-flex; align-items: center; gap: 4px; padding: 2px 10px; font-size: .76rem; border-radius: 8px; flex: none; }
.gb.in-frame .gb-row .gb-free { height: 42px; box-sizing: border-box; padding: 0 4px 0 12px; gap: 8px; border-radius: 10px; }
.gb.in-frame .gb-row .gb-free-ic, .gb.in-frame .gb-row .gb-badge-fever { display: none; }
.gb.in-frame .gb-row .gb-free-tx { flex: none; }
.gb.in-frame .gb-row .gb-free-t { font-size: .82rem; white-space: nowrap; }
.gb.in-frame .gb-row .gb-free-go { padding: 5px 10px; font-size: .78rem; white-space: nowrap; }
.gb.in-frame.mini .gb-row .gb-free, .gb.in-frame.bottom .gb-row .gb-free { display: none; }   /* 1 行の帯・一番下に固定では、入り口は bar の時だけ（08 の元の作りと同じ）。bottom は上の 1 行に入り口がある（22） */

/* ---- 22: 骨組みの言葉の箱の下（bar）は 2 行で高さを変えない ----
   1 行目＝枚数・1時間フリー・ランプ・生成（押しても動かない）。2 行目＝高さ 30px の升 1 つに、進み方（gb-line）か、押せない理由か消費の行（gb-under）のどちらかだけ。
   前は進み方の行・「混んでいます」・「読み込みから」の帯が出るたびに段が伸び、言葉の箱が縮んで生成ボタンが約 40px 上へ跳ね、押した所に「中止」が来ていた */
.gb.in-frame { container: gb / inline-size; }
.gb.in-frame.atbar { grid-template-rows: auto 30px; gap: 6px; }
.gb.in-frame.atbar > .gb-line, .gb.in-frame.atbar > .gb-under { grid-row: 2; grid-column: 1; }
.gb.in-frame.atbar .gb-row { flex-wrap: nowrap; }
.gb.in-frame.atbar .gb-under { display: flex; align-items: center; justify-content: flex-end; gap: 10px; height: 30px; min-width: 0; overflow: hidden; }
.gb.in-frame.atbar .gb-under.ng > :not(.gb-why) { display: none; }               /* 押せない時は理由の 1 行だけ（値段は生成ボタンの字にある） */
.gb.in-frame.atbar .gb-cost { flex: none; flex-wrap: nowrap; white-space: nowrap; min-height: 0; gap: 12px; }
.gb.in-frame.atbar .gb-note { order: -1; flex: 0 1 auto; min-width: 0; padding: 3px 10px; border-radius: 999px; font-size: .78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gb.in-frame.atbar .gb-forever { flex: none; white-space: nowrap; }
.gb.in-frame.atbar .gb-why { flex: 1 1 auto; min-width: 0; height: 30px; box-sizing: border-box; display: flex; align-items: center; padding: 0 3px 0 10px; border-radius: 8px; }
.gb.in-frame.atbar .gb-why li { flex: 1 1 auto; min-width: 0; flex-wrap: nowrap; gap: 6px; }
.gb.in-frame.atbar .gb-why li > span { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gb.in-frame.atbar .gb-why .gb-act { flex: none; height: 24px; padding: 0 10px; font-size: .78rem; border-radius: 6px; }
.gb-more { white-space: nowrap; }
.gb-tip.pinned { pointer-events: auto; }
/* 幅が足りない時は、焼いた後の残り → フリーの「始める」の順に畳む（入り口全体で押せる）→ ランプの字 */
@container gb (max-width: 720px) { .gb.in-frame.atbar .gb-after { display: none; } }
@container gb (max-width: 600px) {
  .gb.in-frame .gb-row .gb-free-go { display: none; }
  .gb.in-frame .gb-row .gb-free { padding: 0 12px; cursor: pointer; }
  .gb.in-frame .gb-n button { padding: 6px 9px; }
}
@container gb (max-width: 470px) { .gb.in-frame.atbar .gb-lamp > span { display: none; } .gb.in-frame.atbar .gb-lamp { padding: 0 12px; } .gb.in-frame.atbar .gb-go { padding: 0 16px; } }

/* ---- 22: 狭い時（bottom）は生成ボタンの上に 1 行（押せない理由と行き先／進み方と中止／消費・見込み・内訳・1時間フリー）。この行はいつも出るので高さが変わらない ---- */
.gb.bottom { gap: 6px; }
.gb.bottom > .gb-line { order: -1; }
.gb.bottom .gb-lamp { gap: 6px; padding: 0 10px; font-size: .78rem; }
.gb.bottom .gb-n button { padding: 6px 9px; }
.gb.in-frame.mini > .gb-line { height: 26px; }

/* ---- 31: 狭い時（bottom）はスペイン語でも 2 行（上の 1 行 30px ＋ 生成ボタンの行 42px）で幅の中に収める ----
   前は生成ボタンの行が折り返さない分だけ段の升（grid の列）が 413px まで広がり、上の 1 行ごと右へ出て「Generar - 0,8」と「Hora libre」が切れていた。
   列を幅に留め（上の 1 行は字を「…」で縮める作りのまま）、生成ボタンの行は gen_go.js の fit() が入らない時だけ ランプの字（fit1）→ 枚数の単位（fit2）の順に畳む */
.gb.bottom { grid-template-columns: minmax(0, 1fr); }
.gb.bottom .gb-row { gap: 6px; }
.gb.bottom .gb-n button { white-space: nowrap; }                 /* 「1 img」が 2 行に割れて段が 62px に伸びていた */
.gb.bottom .gb-go { padding: 0 14px; }
.gb.bottom.fit1 .gb-lamp > span { display: none; }
.gb.bottom.fit1 .gb-lamp { padding: 0 12px; }
.gb.bottom.fit2 .gb-nu { display: none; }
.gb.bottom.fit2 .gb-n button { padding: 6px 11px; }
