:root{
  --bg:#fbf3e7; --panel:#fffaf2; --panel2:#f4e7d3; --text:#3a2a1a; --muted:#8a7458;
  --primary:#f08a24; --primary-d:#d9741a; --accent:#e0631a; --gold:#f0b429; --border:#e3d2b8;
  --green:#2f9e57; --red:#d64545;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif;background:var(--bg);color:var(--text)}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
img{max-width:100%}

/* announce */
.announce{background:linear-gradient(90deg,var(--accent),var(--primary));color:#fff;text-align:center;padding:8px;font-size:13px;font-weight:600}

/* header */
header{position:sticky;top:0;z-index:50;background:rgba(255,250,242,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.hdr{max-width:840px;margin:0 auto;display:flex;align-items:center;gap:14px;padding:12px 16px}
.logo{display:inline-flex;align-items:center;gap:8px;font-size:22px;font-weight:800;background:linear-gradient(90deg,#9a5a1e,#f08a24);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.logo img{height:36px;width:auto;display:block;-webkit-text-fill-color:initial}
.hdr .spacer{flex:1}
.wallet{display:flex;gap:10px;align-items:center}
.chip{background:var(--panel2);border:1px solid var(--border);border-radius:20px;padding:6px 13px;font-size:13px;font-weight:700}
.chip .ico{margin-right:5px}
.btn{border:1px solid var(--border);background:var(--panel2);color:var(--text);padding:8px 14px;border-radius:10px;font-size:14px}
.btn:hover{border-color:var(--primary)}
.btn-primary{background:linear-gradient(90deg,var(--primary),var(--primary-d));border:none;color:#fff;font-weight:700}
.btn-primary:hover{filter:brightness(1.1)}
.btn-accent{background:linear-gradient(90deg,var(--accent),#ff7aa0);border:none;color:#fff;font-weight:700}
.btn-lg{padding:13px 22px;font-size:16px;border-radius:12px}
.btn-block{width:100%}
.btn:disabled{opacity:.45;cursor:not-allowed}

main{max-width:840px;margin:0 auto;padding:20px 16px 80px}

/* banner */
.hero{border-radius:16px;overflow:hidden;margin-bottom:24px;border:1px solid var(--border)}
.hero img{width:100%;display:block;max-height:300px;object-fit:cover}

/* categories */
.cats{display:flex;gap:8px;overflow:auto;padding-bottom:14px;margin-bottom:8px}
.cat{flex-shrink:0;padding:8px 16px;border-radius:20px;background:var(--panel2);border:1px solid var(--border);font-size:14px;white-space:nowrap}
.cat.active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}

/* 上部バナースライダー */
/* バナー: 横一列マーキー（右→左へ等速・途切れずループ） */
.banner-marquee{position:relative;overflow:hidden;margin-bottom:20px;border-radius:16px}
.banner-marquee .bm-track{display:flex;width:max-content;will-change:transform;animation:bm-scroll linear infinite}
.banner-marquee:hover .bm-track{animation-play-state:paused}
.banner-marquee .bm-slide{flex:0 0 auto;height:150px;margin-right:16px;border-radius:14px;overflow:hidden;border:1px solid var(--border);background:var(--panel2)}
.banner-marquee .bm-slide a{display:block;height:150px}
/* Safari対策: img の高さを百分率(100%)ではなく実寸(px)で指定。
   flex:0 0 auto のアイテム内で height:100% の画像は Safari で幅が 0 に潰れる（細い縦線になる）。 */
.banner-marquee .bm-slide img{height:150px;width:auto;display:block}
@keyframes bm-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:800px){.banner-marquee .bm-slide{height:96px;margin-right:12px}
  .banner-marquee .bm-slide a{height:96px}
  .banner-marquee .bm-slide img{height:96px}}
@media(prefers-reduced-motion:reduce){.banner-marquee .bm-track{animation:none}}

/* タグ/おすすめ順ボタン */
.tagbar{display:flex;gap:8px;overflow:auto;padding-bottom:14px;margin-bottom:8px}
.tagbtn{flex-shrink:0;padding:7px 14px;border-radius:18px;background:var(--panel2);border:1px solid var(--border);color:var(--text);font-size:13px;white-space:nowrap;cursor:pointer}
.tagbtn:hover{border-color:var(--primary)}
.tagbtn.active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}
.tagbtn.rec{background:linear-gradient(90deg,var(--gold),#ffd97a);color:#3a2c00;font-weight:800;border:none}
.tagbtn.rec.active{box-shadow:0 0 0 2px var(--primary)}

/* 新規登録キャンペーン固定枠 */
.signup-camp{margin:8px 0 22px;padding:16px;border-radius:16px;border:1px solid var(--accent);background:linear-gradient(135deg,rgba(255,92,138,.12),rgba(124,92,255,.12))}
.signup-camp-head{font-size:17px;font-weight:800;margin-bottom:12px;color:var(--accent)}
.signup-camp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
@media(max-width:800px){.signup-camp-grid{grid-template-columns:repeat(2,1fr)}}

/* 今だけ引ける超お得なオリパ枠（ログインボーナス／新規登録者限定） */
.limited-camp{margin:8px 0 22px;padding:16px;border-radius:16px;border:2px solid #ff4fa3;background:linear-gradient(135deg,#ff5cad,#a35bff);box-shadow:0 6px 20px rgba(163,91,255,.28)}
.limited-camp-head{font-size:18px;font-weight:900;margin-bottom:12px;color:#fff;text-align:center;letter-spacing:.02em;text-shadow:0 1px 4px rgba(0,0,0,.25)}
.limited-camp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
/* 限定カードは背景色を変えて目立たせる */
.card-limited{background:linear-gradient(180deg,#fff0f7,#f3eaff);border-color:#ff7bbd}
.card-limited:hover{border-color:#ff4fa3}
/* バッジ列：サムネ上部に横並びで配置（白背景バー） */
.card .card-badges{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;background:#fff}
.card .card-badges .tag{position:static;top:auto;left:auto;font-size:11px;font-weight:800;padding:3px 9px;border-radius:6px;line-height:1.3}
.card .card-badges .tag-camp{background:linear-gradient(135deg,#7c5cff,#5b3df0);color:#fff}
.card .card-badges .tag-nm{background:linear-gradient(135deg,#ff4fa3,#d63384);color:#fff}
.card .card-badges .tag-bonus{background:linear-gradient(135deg,#ff7a2f,#ff4d4d);color:#fff}

.section-title{font-size:18px;font-weight:800;margin:20px 0 14px;display:flex;align-items:center;gap:8px}

/* product grid */
/* ガチャ一覧：PC・スマホ共通で横2列固定（oripaone準拠） */
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:transform .15s,border-color .15s;cursor:pointer}
.card:hover{transform:translateY(-4px);border-color:var(--primary)}
.card .thumb{position:relative;aspect-ratio:1024/768;background:#fff}
.card .thumb img{width:100%;height:100%;object-fit:cover}
.card .so{position:absolute;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:20px;color:#fff;letter-spacing:.1em}
.card .tag{position:absolute;top:8px;left:8px;background:var(--gold);color:#3a2c00;font-size:11px;font-weight:800;padding:3px 9px;border-radius:6px}
.card .body{padding:12px}
.card .title{font-size:14px;font-weight:700;line-height:1.4;height:2.8em;overflow:hidden}
.card .cost{margin-top:8px;color:var(--gold);font-weight:800;font-size:15px}
/* oripaone風カード：価格(🪙 N/1回) + 「ガチャ内容を見る」ボタン */
.card .card-price{margin-top:8px;display:flex;align-items:baseline;gap:5px;color:var(--gold);font-weight:800;font-size:16px}
.card .card-price .card-coin{font-size:15px}
.card .card-price .card-per{color:var(--muted);font-weight:700;font-size:12px}
.card .card-price-free{color:var(--gold);font-weight:800;font-size:16px}
.card .card-cta{width:100%;margin-top:10px;padding:9px 0;border-radius:10px;font-weight:800;font-size:13px}
/* カードの抽選ボタン（1回/10連/100連）参考サイト風 */
.card .card-plays{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.card .card-plays .card-play{padding:11px 0;border-radius:10px;font-weight:800;font-size:13px;color:#fff;cursor:pointer;border:none;background:linear-gradient(90deg,var(--primary),var(--primary-d));transition:filter .15s,transform .1s}
.card .card-plays .card-play:hover{filter:brightness(1.15)}
.card .card-plays .card-play:active{transform:translateY(1px)}
.card .card-plays .card-play:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.4);background:linear-gradient(90deg,#bcae97,#a9997d)}
.card .card-plays .card-play:disabled:hover{filter:grayscale(.4)}
.card .card-plays .cpb-100{grid-column:1/-1;background:linear-gradient(90deg,#2563eb,#dc2626);border:none}
.card .card-plays.cp-n1 .card-play{grid-column:1/-1}
/* 残数ゲージ（残り口数/総口数） oripaone風 */
.card .card-stock{margin-top:8px}
.card .card-stock .cs-bar{height:8px;border-radius:6px;background:var(--panel2,#2a2a36);overflow:hidden;border:1px solid var(--border)}
.card .card-stock .cs-bar span{display:block;height:100%;background:linear-gradient(90deg,#ffb300,#ff7a00);border-radius:6px;transition:width .4s ease}
.card .card-stock .cs-text{margin-top:4px;font-size:12px;font-weight:700;color:var(--muted)}
.card .card-stock .cs-text b{color:var(--gold);font-size:13px}
.card .card-stock .cs-text .cs-sep{margin:0 3px;opacity:.6}

/* detail */
.detail{display:grid;grid-template-columns:380px 1fr;gap:28px}
@media(max-width:800px){.detail{grid-template-columns:1fr}.grid{gap:12px}}
.detail .main-img{border-radius:16px;border:1px solid var(--border);width:100%;aspect-ratio:3/4;object-fit:cover}
.detail h1{font-size:24px;margin:0 0 8px}
.play-btns{display:flex;flex-direction:column;gap:10px;margin:18px 0}
.recent{color:var(--muted);font-size:13px;margin-bottom:10px}
.note{margin-top:20px;padding:14px;background:var(--panel);border:1px solid var(--border);border-radius:12px;font-size:13px;color:var(--muted);white-space:pre-wrap}

/* card list in detail */
.cardlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-top:16px}
.cl-item{background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.cl-item img{width:100%;aspect-ratio:3/4;object-fit:cover}
.cl-item .ci-body{padding:8px}
.cl-item .rarity{font-size:11px;color:var(--gold);font-weight:700}
.cl-item .ci-title{font-size:12px;line-height:1.3;height:2.6em;overflow:hidden}
.cl-item .remain{font-size:11px;color:var(--muted)}
.pill{display:inline-block;background:var(--accent);color:#fff;font-size:10px;font-weight:700;padding:2px 7px;border-radius:5px;margin-top:4px}

/* ===== ガチャ詳細（oripa構成：フルワイドバナー＋下部固定の引くボタン）===== */
.g-detail{margin-top:14px;text-align:center}
.g-banner{display:block;width:auto;max-width:min(100%,680px);max-height:60vh;height:auto;margin:0 auto;border-radius:16px;border:1px solid var(--border);background:var(--panel);object-fit:contain}
.g-title{font-size:22px;font-weight:800;margin:16px 0 10px;line-height:1.35}
.g-tags{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:0 0 10px}
.g-tag{background:var(--panel2);border:1px solid var(--border);border-radius:20px;padding:5px 13px;font-size:12px;font-weight:700}
.g-tag-accent{color:var(--gold);border-color:var(--gold)}
/* 詳細ヘッダー: タグチップ行（左:新着/カテゴリ/タグ、右:販売期限） */
.g-chiprow{display:flex;align-items:center;justify-content:space-between;gap:8px;max-width:680px;margin:2px auto 10px;text-align:left}
.g-chips{display:flex;gap:6px;flex-wrap:wrap;min-width:0}
.g-chip{background:var(--panel2);border:1px solid var(--border);border-radius:6px;padding:3px 9px;font-size:11px;font-weight:800;color:var(--text);white-space:nowrap}
.g-chip-new{background:var(--red);border-color:var(--red);color:#fff}
.g-chip-tag{background:transparent;color:var(--muted)}
.g-chip-accent{color:var(--gold);border-color:var(--gold)}
.g-period{flex:0 0 auto;font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap}
/* 詳細ヘッダー: 左=必要Pt/1回、右=残数ゲージ */
.g-inforow{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;max-width:680px;margin:0 auto 12px}
.g-inforow-1{justify-content:flex-start}
.g-price{display:flex;align-items:baseline;gap:2px;font-weight:800;white-space:nowrap}
.g-price .g-price-ico{font-size:18px}
.g-price b{font-size:24px;line-height:1;color:var(--text)}
.g-price .g-price-cur{font-size:14px;font-weight:800;margin-left:1px}
.g-price .g-price-per{font-size:12px;font-weight:700;color:var(--muted);margin-left:2px}
.g-stock{flex:1 1 auto;min-width:0;max-width:60%}
.g-stock-bar{height:9px;border-radius:6px;background:var(--panel2);overflow:hidden;border:1px solid var(--border)}
.g-stock-bar span{display:block;height:100%;border-radius:6px;transition:width .4s ease}
.g-stock-hi span{background:linear-gradient(90deg,#37b86a,var(--green))}
.g-stock-mid span{background:linear-gradient(90deg,#ffcf3a,#f0a429)}
.g-stock-lo span{background:linear-gradient(90deg,#ef6a6a,var(--red))}
.g-stock-text{margin-top:4px;font-size:12px;font-weight:700;color:var(--muted);text-align:right}
.g-stock-text b{color:var(--text);font-size:13px}
.g-stock-text .g-stock-sep{margin:0 3px;opacity:.6}
.g-detail .storage-note{text-align:left;max-width:680px;margin-left:auto;margin-right:auto}
/* 下部固定の引くボタンバー（スクロールしても常に表示） */
.g-playbar-spacer{height:92px}
.g-playbar{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--panel);border-top:1px solid var(--border);padding:10px 14px;box-shadow:0 -4px 16px rgba(0,0,0,.22)}
.g-playbar-inner{max-width:900px;margin:0 auto;display:flex;gap:10px}
.g-playbtn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:11px 8px;border-radius:12px;min-width:0}
.g-playbtn-n{font-size:15px;font-weight:800}
.g-playbtn-c{font-size:12px;opacity:.92}

/* ===== 景品ラインナップ（画像中心・等級ごと）===== */
.prize-group{margin-top:18px}
.prize-group-title{font-size:14px;font-weight:800;color:var(--gold);margin:0 0 8px;padding-left:8px;border-left:4px solid var(--gold);line-height:1.3}
/* 等級の色付きグラデ見出しバンド */
.prize-band{margin:24px auto 14px;max-width:260px;text-align:center;padding:9px 0;border-radius:8px;color:#fff;font-weight:800;font-size:18px;letter-spacing:1px;box-shadow:0 3px 9px rgba(0,0,0,.22);text-shadow:0 1px 2px rgba(0,0,0,.35)}
.prize-band.band-1{background:linear-gradient(90deg,#ff5e5e,#ffb65e,#fff25e,#5eff8c,#5ec8ff,#9b5eff,#ff5ee0)}
.prize-band.band-2{background:linear-gradient(180deg,#f7d774,#c9961e)}
.prize-band.band-3{background:linear-gradient(180deg,#ff8a3d,#e53935)}
.prize-band.band-4{background:linear-gradient(180deg,#5ec8ff,#2563eb)}
.prize-band.band-5{background:linear-gradient(180deg,#a8b0bd,#5b6470)}
.prize-band.band-x{background:linear-gradient(180deg,#9aa3b1,#5b6470)}
.prize-band.band-lastone{background:linear-gradient(180deg,#c084fc,#7c3aed)}
/* 中央揃い：1行に満たない場合も中央寄せ（flexで折り返し） */
.prize-grid{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.prize-grid-3>.prize-card{width:calc((100% - 2*10px)/3)}
.prize-grid-5>.prize-card{width:calc((100% - 4*10px)/5)}
.prize-grid-6>.prize-card{width:calc((100% - 5*10px)/6)}
.prize-grid-lastone{display:flex;justify-content:center}
.prize-grid-lastone>.prize-card{width:min(100%,200px)}
.prize-card{position:relative}
/* 画像の切り取り(overflow)は内側の .ci-clip が担当。枠(wrap)自体は overflow:visible にして
   左下のバッジ(発送限定/PSA10)が枠で見切れないようにする。背景は奥の背景色に合わせる。
   枠線(border)は付けない（カードの四角い枠が見える指摘への対応・背景と一体化させる）。 */
.prize-card .card-image-wrap{display:block;width:100%;border:0;border-radius:10px;background:var(--bg)}
.prize-card .ci-clip{display:block;width:100%;border-radius:10px;overflow:hidden}
/* 背景除去画像は内部に透明余白を含むため、拡大して枠いっぱいに見せる（はみ出しは .ci-clip で切り取り）。
   ★セレクタは .ci-clip img に限定する（.card-image-wrap img だと左下のバッジ画像にも
     object-fit:cover / aspect-ratio:3/4 / scale(1.22) が掛かり、発送限定の文字が見切れる原因になる）。 */
.prize-card .ci-clip img{display:block;width:100%;height:100%;aspect-ratio:3/4;object-fit:cover;transform:scale(1.22)}
/* 右下の固定口数 ×N（枠の角ぎりぎり・はみ出さない） */
.card-qty{position:absolute;right:2.5%;bottom:2.5%;z-index:6;background:rgba(0,0,0,.72);color:#fff;font-weight:800;font-size:clamp(10px,3vw,13px);line-height:1;padding:3px 6px;border-radius:6px;white-space:nowrap;max-width:46%;overflow:hidden;text-overflow:ellipsis}
/* スマホでは段数を減らして見切れ防止 */
@media(max-width:560px){
  .prize-grid-5>.prize-card,.prize-grid-6>.prize-card{width:calc((100% - 3*10px)/4)}
}
@media(max-width:380px){
  .prize-grid-5>.prize-card,.prize-grid-6>.prize-card{width:calc((100% - 2*10px)/3)}
}

/* 注意事項・ご利用条件（アコーディオン）＋法務リンク */
.gacha-notice{max-width:680px;margin:26px auto 0;background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.gacha-notice>summary{list-style:none;cursor:pointer;padding:13px 16px;font-weight:800;font-size:14px;background:var(--panel2);user-select:none}
.gacha-notice>summary::-webkit-details-marker{display:none}
.gacha-notice>summary::after{content:'▼';float:right;font-size:11px;opacity:.6;transition:transform .2s}
.gacha-notice[open]>summary::after{transform:rotate(180deg)}
.gn-body{padding:6px 16px 16px}
.gn-item{padding:12px 0;border-bottom:1px solid var(--border)}
.gn-h{font-weight:800;font-size:13px;margin-bottom:5px}
.gn-b{font-size:12.5px;line-height:1.75;color:var(--muted)}
.gn-foot{font-size:12.5px;line-height:1.8;color:var(--muted);margin-top:14px}
.gn-links{max-width:680px;margin:14px auto 0;display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center}
.gn-link{font-size:12.5px;color:var(--muted);cursor:pointer;text-decoration:underline}
.gn-link:hover{color:var(--text)}

/* modal */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;padding:16px;z-index:100}
.modal{background:var(--panel);border:1px solid var(--border);border-radius:18px;width:100%;max-width:440px;max-height:90vh;overflow:auto}
.modal.wide{max-width:760px}
.modal-head{display:flex;align-items:center;padding:18px 20px;border-bottom:1px solid var(--border)}
.modal-head h3{margin:0;flex:1;font-size:18px}
.modal-body{padding:20px}
.field{margin-bottom:14px}
.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}
.field input{width:100%;padding:11px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);color:var(--text);font-size:15px}
.field select{width:100%;padding:11px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);color:var(--text);font-size:15px}
.field label .req{display:inline-block;margin-left:6px;background:var(--red,#e53935);color:#fff;font-size:10px;font-weight:800;padding:1px 6px;border-radius:5px;vertical-align:middle}
.tabbar{display:flex;gap:6px;margin-bottom:16px}
.tabbar .t{flex:1;text-align:center;padding:9px;border-radius:10px;background:var(--panel2);border:1px solid var(--border);font-size:14px}
.tabbar .t.active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}

/* result animation */
.result-overlay{position:fixed;inset:0;background:rgba(5,5,15,.95);z-index:250;display:flex;flex-direction:column;align-items:center;justify-content:safe center;padding:24px 20px 28px;overflow:auto}
.result-overlay h2{font-size:clamp(24px,7vw,38px);font-weight:900;color:#ffd9a8;text-shadow:0 2px 14px rgba(0,0,0,.85),0 0 2px rgba(0,0,0,.9);letter-spacing:.02em;margin:6px 0 14px;text-align:center}
/* 当選見出し（プロ仕様：メタリックゴールド＋洗練タイポ） */
.result-head{display:flex;flex-direction:column;align-items:center;gap:6px;margin:4px 0 20px;animation:rhIn .6s cubic-bezier(.2,.8,.2,1) both}
.result-head .rh-label{font-size:clamp(10px,2.6vw,12px);font-weight:700;letter-spacing:.42em;text-indent:.42em;color:#caa86a;text-transform:uppercase;opacity:.9}
.result-head .rh-main{display:flex;align-items:baseline;gap:8px;line-height:1}
.result-head .rh-num{font-size:clamp(48px,15vw,84px);font-weight:900;font-style:italic;letter-spacing:-.02em;
  background:linear-gradient(180deg,#fff7e6 0%,#ffe6a8 32%,#f3c463 52%,#caa14a 70%,#fbe9b8 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#f3c463;
  filter:drop-shadow(0 3px 10px rgba(0,0,0,.55))}
.result-head .rh-unit{font-size:clamp(20px,5vw,30px);font-weight:800;color:#ffe6a8;align-self:flex-end;margin-bottom:.5em;text-shadow:0 2px 8px rgba(0,0,0,.6)}
.result-head .rh-get{font-size:clamp(26px,7vw,42px);font-weight:900;font-style:italic;letter-spacing:.04em;margin-left:6px;
  background:linear-gradient(180deg,#fff7e6 0%,#ffe6a8 38%,#f3c463 60%,#caa14a 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#f3c463;
  filter:drop-shadow(0 3px 10px rgba(0,0,0,.55))}
.result-head .rh-rule{width:clamp(120px,42vw,220px);height:2px;border-radius:2px;margin-top:4px;
  background:linear-gradient(90deg,transparent,rgba(243,196,99,.85),transparent)}
@keyframes rhIn{from{opacity:0;transform:translateY(-10px) scale(.92)}to{opacity:1;transform:none}}
.sound-choice .sc-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:28px 24px;max-width:380px;width:100%;text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.4)}
.sound-choice .sc-title{font-size:18px;font-weight:800;color:var(--text)}
.sound-choice .sc-sub{font-size:13px;color:var(--muted);margin:8px 0 20px}
.sound-choice .sc-btns{display:flex;flex-direction:column;gap:12px}
.sound-choice .sc-btns .btn{padding:14px;font-size:16px;font-weight:700;border-radius:12px}
.sound-choice .sc-on{background:linear-gradient(90deg,#f08a24,#e0760f);color:#fff;border:0}
.sound-choice .sc-off{background:var(--bg);color:var(--text);border:1px solid var(--border)}
.sound-choice .sc-vol{display:flex;align-items:center;gap:10px;margin:6px 0 22px}
.sound-choice .sc-vol input[type=range]{flex:1;accent-color:#f08a24;height:6px}
.sound-choice .sc-vol-ico{font-size:16px}
.sound-choice .sc-vol-num{min-width:34px;font-weight:700;color:var(--text);font-size:14px}
/* スキップボタンは画面右下に固定（中央配置から変更） */
.effect-overlay .effect-skip-btn{position:fixed;right:20px;bottom:20px;z-index:10;padding:10px 18px;font-weight:700;
  background:rgba(20,20,20,.72);color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:12px;backdrop-filter:blur(4px)}
.effect-overlay .effect-skip-btn:hover{background:rgba(20,20,20,.9)}
.result-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px;max-width:680px;width:100%;margin:18px 0}
.r-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden;animation:pop .4s backwards}
.r-card img{width:100%;aspect-ratio:3/4;object-fit:cover}
.r-card .rc-body{padding:6px;font-size:11px}
.r-card .rc-rarity{color:var(--gold);font-weight:700}
.r-card .rc-pts{color:var(--muted);font-size:10px;margin-top:2px}
/* 結果画面の選択カード */
.r-card.selectable{position:relative;cursor:pointer;display:block}
.r-card.selectable .r-chk{position:absolute;top:6px;left:6px;width:20px;height:20px;z-index:3;accent-color:#f08a24;cursor:pointer}
.r-card.selectable.is-sel{outline:2px solid #f08a24;outline-offset:-2px}
@keyframes pop{from{transform:scale(.5);opacity:0}}
/* 結果画面「まとめて選択」ツールバー */
.res-selectbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;justify-content:center;
  background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:10px 14px;margin:6px 0 4px;max-width:680px;width:100%}
.res-selectbar .res-selall{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}
.res-selectbar .res-selall input{width:18px;height:18px;accent-color:#f08a24}
.res-selectbar .res-selinfo{font-size:13px;color:var(--muted)}
.res-selectbar .res-selinfo b{color:var(--text)}
.res-selectbar .res-redeem{background:var(--bg);border:1px solid var(--border);font-weight:700}
.res-selectbar .res-ship{background:linear-gradient(90deg,#f08a24,#e0760f);color:#fff;border:0;font-weight:700}
.res-selectbar .btn:disabled{opacity:.5;cursor:not-allowed}
.lastone-banner{background:linear-gradient(90deg,var(--gold),#ff9a3c);color:#3a2400;padding:12px 24px;border-radius:12px;font-weight:800;margin-bottom:10px}
.spinner{width:80px;height:80px;border:6px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* misc */
.toast-wrap{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:300;display:flex;flex-direction:column;gap:8px;align-items:center}
.toast{background:#222540;color:#fff;padding:12px 20px;border-radius:12px;font-size:14px;box-shadow:0 8px 30px rgba(0,0,0,.5)}
.toast.err{background:var(--red)}.toast.ok{background:var(--green)}
.empty{text-align:center;color:var(--muted);padding:50px}
.maint-screen{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:30px}
.maint-card{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:40px 28px;text-align:center;max-width:480px;box-shadow:0 8px 30px rgba(0,0,0,.08)}
.maint-ico{font-size:48px;line-height:1}
.maint-title{margin:14px 0 10px;font-size:22px;color:var(--text)}
.maint-text{color:var(--muted);font-size:15px;line-height:1.7;margin-bottom:22px;white-space:pre-wrap}
#admin-maint-bar{position:fixed;left:0;right:0;bottom:0;z-index:400;background:#3a2a1a;color:#ffd9a8;font-size:12px;font-weight:700;text-align:center;padding:8px 12px;line-height:1.4;box-shadow:0 -2px 10px rgba(0,0,0,.25)}
.courses{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.course{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:18px;text-align:center}
.course .amt{font-size:22px;font-weight:800}
.course .pts{color:var(--gold);font-size:13px;margin:6px 0 12px}
footer{border-top:1px solid var(--border);padding:24px 16px;text-align:center;color:var(--muted);font-size:13px}
footer a{margin:0 10px}
.row{display:flex;gap:14px;flex-wrap:wrap}
.bottomnav{position:fixed;bottom:0;left:0;right:0;background:var(--panel);border-top:1px solid var(--border);display:none;z-index:40}
@media(max-width:640px){.bottomnav{display:flex}}
.bottomnav a{flex:1;text-align:center;padding:11px 0;font-size:11px;color:var(--muted)}
.bottomnav a .bi{display:block;font-size:18px}

/* ===== ラッシュカード / 合成 ===== */
.btn-gold{background:linear-gradient(90deg,#ffce54,#ff9a3c);border:none;color:#3a2400;font-weight:800}
.btn-gold:hover{filter:brightness(1.08)}
.btn-gold:disabled{opacity:.55;cursor:not-allowed}
.mp-tabbar{flex-wrap:wrap}
.mp-tabbar .t{flex:1 1 auto;min-width:90px}
.rush-item{border-color:#5a4500;box-shadow:0 0 0 1px rgba(255,206,84,.15) inset}
.rush-info{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.5}
.rush-info b{color:var(--gold)}
.rush-btn{font-size:12px;padding:8px}

/* ラッシュ演出オーバーレイ */
.rush-overlay{background:radial-gradient(circle at 50% 30%,#1a1400,#050505 70%)}
.rush-title{font-size:26px;font-weight:800;color:var(--gold);letter-spacing:.06em;margin-bottom:14px;text-shadow:0 0 18px rgba(255,206,84,.6)}
.rush-card-img{width:150px;aspect-ratio:3/4;object-fit:cover;border-radius:12px;border:2px solid var(--gold);box-shadow:0 0 30px rgba(255,206,84,.5);margin-bottom:12px}
.rush-status{font-size:30px;font-weight:900;margin:8px 0;min-height:40px;transition:color .2s}
.rush-status.win{color:#ffce54;animation:rushpop .35s}
.rush-status.lose{color:var(--red);animation:rushshake .4s}
.rush-status.result{font-size:20px;color:#fff}
.rush-total{font-size:44px;font-weight:900;color:var(--gold);text-shadow:0 0 20px rgba(255,206,84,.7);margin:4px 0 10px}
.rush-total.flash{animation:rushpop .35s}
.rush-history{width:100%;max-width:320px;max-height:170px;overflow:auto;background:rgba(0,0,0,.4);border:1px solid var(--border);border-radius:10px;padding:8px}
.rush-step{font-size:13px;padding:3px 4px;border-bottom:1px dashed rgba(255,255,255,.08)}
.rush-step.win{color:#ffd97a}
.rush-step.lose{color:var(--red)}
@keyframes rushpop{0%{transform:scale(.6);opacity:.3}60%{transform:scale(1.25)}100%{transform:scale(1)}}
@keyframes rushshake{0%,100%{transform:translateX(0)}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
@media(max-width:640px){
  .rush-card-img{width:120px}
  .rush-status{font-size:24px}
  .rush-total{font-size:36px}
}

/* ===== フッター（法務リンク） ===== */
.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 0}
.footer-links a{cursor:pointer}
.footer-links a:hover{color:var(--gold)}
.footer-copy{margin-top:12px;color:var(--muted);font-size:12px}

/* ===== 法務ページ本文 ===== */
.legal{font-size:14px;line-height:1.85;color:var(--text)}
.legal .legal-lead{background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--gold);border-radius:10px;padding:14px 16px;color:var(--text);margin-bottom:20px}
.legal h3{font-size:15px;color:var(--gold);margin:22px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.legal p{margin:0 0 12px;color:var(--text)}
.legal ul{margin:0 0 14px;padding-left:1.2em}
.legal li{margin-bottom:6px;color:var(--text)}
.legal .legal-note{font-size:12px;color:var(--red);background:rgba(255,92,92,.08);border:1px solid rgba(255,92,92,.3);border-radius:8px;padding:10px 12px}
.legal .legal-date{margin-top:24px;font-size:12px;color:var(--muted);text-align:right}
.legal-table{width:100%;border-collapse:collapse;margin:4px 0 16px;font-size:13px}
.legal-table th,.legal-table td{border:1px solid var(--border);padding:10px 12px;text-align:left;vertical-align:top}
.legal-table th{width:34%;background:var(--panel2);color:var(--primary-d);font-weight:700;white-space:nowrap}
.legal-table td{color:var(--text)}

/* ===== 同意付き確認モーダル ===== */
.consent-summary{background:var(--panel2);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:14px}
.cs-row{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px dashed var(--border);font-size:13px}
.cs-row:last-of-type{border-bottom:none}
.cs-row span{color:var(--muted);flex-shrink:0}
.cs-row b{text-align:right;color:var(--text)}
.cs-note{margin-top:10px;padding-top:10px;border-top:1px solid var(--border);font-size:12px;line-height:1.7;color:var(--gold)}
.cs-note b{color:var(--red)}
.consent-check{display:flex;align-items:flex-start;gap:10px;background:rgba(255,206,84,.08);border:1px solid var(--gold);border-radius:10px;padding:12px 14px;font-size:13px;cursor:pointer}
.consent-check input{width:20px;height:20px;margin-top:1px;accent-color:var(--gold);flex-shrink:0}
.consent-link{color:var(--gold);text-decoration:underline;cursor:pointer}
.consent-actions{margin-top:16px}
.consent-actions .btn{flex:1}
/* 初回ログイン時の利用規約 同意ゲート（閉じられない） */
.terms-gate-bg{z-index:200}
.terms-gate .modal-head .btn{display:none}
.terms-gate-lead{font-size:13px;line-height:1.7;margin:0 0 12px}
.terms-gate-box{max-height:46vh;overflow-y:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:10px;padding:12px 14px;background:var(--panel2);font-size:12.5px;line-height:1.75}
.terms-gate-box h3{font-size:14px;margin:14px 0 6px}
.terms-gate-check{margin-top:14px}
.storage-note{margin:12px 0;padding:10px 12px;background:var(--panel2);border:1px solid var(--border);border-left:3px solid var(--gold);border-radius:8px;font-size:12px;line-height:1.6;color:var(--gold)}

/* ===== RUSH 7段階：テーマ別の派手UI（黒・金・虹・炎・雷） ===== */
.rush-grid,.fusion-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.rush-card,.fusion-card{position:relative;border-radius:16px;padding:14px;background:linear-gradient(160deg,#11121f,#080910);border:1px solid var(--border);overflow:hidden}
/* テーマカラー枠＋グロー */
.rush-th-blue{border-color:#2f7bff;box-shadow:0 0 0 1px rgba(47,123,255,.4) inset,0 0 22px rgba(47,123,255,.28)}
.rush-th-green{border-color:#26d07c;box-shadow:0 0 0 1px rgba(38,208,124,.4) inset,0 0 22px rgba(38,208,124,.28)}
.rush-th-purple{border-color:#a463ff;box-shadow:0 0 0 1px rgba(164,99,255,.45) inset,0 0 22px rgba(164,99,255,.3)}
.rush-th-red{border-color:#ff4d3a;box-shadow:0 0 0 1px rgba(255,77,58,.45) inset,0 0 24px rgba(255,77,58,.35)}
.rush-th-zebra{border-color:#ffce54;background:repeating-linear-gradient(135deg,#0c0c0c 0 14px,#1c1c1c 14px 28px);box-shadow:0 0 0 2px var(--gold) inset,0 0 24px rgba(255,206,84,.4)}
.rush-th-gold{border-color:#ffce54;background:linear-gradient(160deg,#3a2c00,#0b0900);box-shadow:0 0 0 2px var(--gold) inset,0 0 28px rgba(255,206,84,.55)}
.rush-th-rainbow{border:none;box-shadow:0 0 26px rgba(255,80,160,.45)}
.rush-th-rainbow::before{content:'';position:absolute;inset:0;padding:2px;border-radius:16px;background:linear-gradient(120deg,#ff3b3b,#ffce54,#2ecc71,#3498db,#9b59b6,#ff3b3b);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:rainbowspin 6s linear infinite;background-size:300% 300%}
@keyframes rainbowspin{0%{background-position:0% 50%}100%{background-position:300% 50%}}

.rush-card-head{display:flex;gap:12px;align-items:center;position:relative;z-index:1}
.rush-card-thumb{width:56px;aspect-ratio:3/4;object-fit:cover;border-radius:8px;border:1px solid rgba(255,255,255,.2);flex-shrink:0}
.rush-card-meta{flex:1;min-width:0}
.rush-card-name{font-weight:900;font-size:16px;letter-spacing:.04em;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.rush-card-rank{font-size:11px;color:var(--gold);font-weight:700;margin-top:2px}
.rush-card-rate{font-size:12px;color:var(--muted);margin-top:3px}
.rush-card-rate b{color:#fff}
.rush-card-own{font-size:18px;font-weight:900;color:var(--gold);flex-shrink:0}
.rush-card-desc{font-size:11px;color:var(--muted);line-height:1.6;margin:10px 0 4px;position:relative;z-index:1}
.rush-card .rush-btn,.fusion-card .rush-btn{margin-top:12px;position:relative;z-index:1}

/* 合成ツリー（？カード ＋ 必要枚数 → 上位カード） */
.fusion-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.fusion-filter{display:flex;align-items:center;gap:8px;font-size:13px;background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:8px 12px;cursor:pointer}
.fusion-filter input{width:18px;height:18px;accent-color:var(--gold)}
.fusion-hint{font-size:11px;color:var(--muted)}
.fusion-card.is-locked{opacity:.7}
.fusion-tree{display:flex;align-items:stretch;gap:8px;position:relative;z-index:1}
.fusion-node{flex:1;min-width:0;text-align:center;background:rgba(0,0,0,.35);border-radius:12px;padding:10px 6px;border:1px solid rgba(255,255,255,.12)}
.fusion-node img{width:48px;aspect-ratio:3/4;object-fit:cover;border-radius:7px;border:1px solid rgba(255,255,255,.2)}
.fn-name{font-size:12px;font-weight:800;color:#fff;margin-top:6px;line-height:1.2}
.fn-rank{font-size:10px;color:var(--gold);margin-top:2px}
.fn-count{font-size:11px;margin-top:5px;color:var(--muted)}
.fn-count.ok{color:#26d07c;font-weight:700}
.fn-count.ng{color:var(--red);font-weight:700}
.fusion-arrow{align-self:center;font-size:11px;font-weight:800;color:var(--gold);white-space:nowrap;text-align:center;flex-shrink:0}
.fusion-result{box-shadow:0 0 14px rgba(255,206,84,.25)}
.fusion-confirm-lead{font-size:15px;font-weight:700;line-height:1.6;margin-bottom:14px;color:#fff}

/* 注意文 */
.rush-note{margin:14px 0 4px;padding:10px 12px;background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:8px;font-size:11px;line-height:1.7;color:var(--muted)}

/* INFINITY 7までの道のり（控えめ表示） */
.roadmap{background:var(--panel2);border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:14px}
.roadmap-head{font-size:14px;font-weight:800;color:#fff;margin-bottom:6px}
.roadmap-now{font-size:12px;color:var(--muted);margin-bottom:10px}
.roadmap-now b{color:var(--gold)}
.roadmap-list{display:flex;flex-direction:column;gap:6px}
.roadmap-row{display:flex;justify-content:space-between;font-size:12px;color:var(--text);padding:5px 8px;background:rgba(0,0,0,.25);border-radius:7px}
.roadmap-row .rm-hard{color:var(--accent);font-weight:700}

/* RUSH結果サマリ */
.rush-result-summary{width:100%;max-width:320px;background:rgba(0,0,0,.4);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin:8px 0}
.rrs-row{display:flex;justify-content:space-between;font-size:13px;padding:4px 0;border-bottom:1px dashed rgba(255,255,255,.08)}
.rrs-row:last-child{border-bottom:none}
.rrs-row span{color:var(--muted)}
.rrs-row b{color:#fff}

/* 発送限定 / PSA10 バッジ（元画像は加工せずCSSで画像左下に重ねる。両方ONは上:発送限定/下:PSA10） */
.card-image-wrap{position:relative;display:inline-block;line-height:0}
.card-image-wrap img{display:block}
/* 画像クリップ層（バッジは枠側に置き、ここでは画像のはみ出しのみ切り取る） */
.ci-clip{display:block;line-height:0}
/* カード画像の大小に追従して自動縮小（左下からはみ出さない・崩れない）。
   幅はカード画像に対する割合で決め、上限/下限を px で固定 → 小さいカードでも破綻しない。 */
.card-badge-stack{position:absolute;left:4%;bottom:4%;display:flex;flex-direction:column;align-items:flex-start;gap:4px;z-index:5;line-height:0;width:26%;max-width:60px;min-width:26px}
/* object-fit:contain なので画像全体が必ず収まり、文字が切れない（見切れ対策の要）。
   発送限定アイコンは画像側に透明パディングを内包した正方形PNGを使用するため、横幅を縮める必要はない。 */
.card-badge-stack img{width:100%;height:auto;object-fit:contain;display:block}
.card-badge-stack img.badge-icon-ship{width:100%}
/* アイコン画像が読めない場合のテキストフォールバック */
.card-badge-fb{display:inline-block;color:#fff;font-weight:800;border-radius:6px;padding:2px 6px;font-size:10px;letter-spacing:.02em;box-shadow:0 1px 3px rgba(0,0,0,.45);white-space:nowrap;text-align:center;line-height:1.2}
.card-badge-fb-ship{background:#2563eb}
.card-badge-fb-psa{background:#db2777;font-size:13px;padding:2px 7px}

/* 管理者プレビュー用バナー（一般公開には表示されない） */
.preview-banner{background:#7c3aed;color:#fff;font-weight:700;padding:10px 14px;border-radius:8px;margin-bottom:12px;font-size:13px;line-height:1.5}

/* ===== Ptチャージ画面（参考デザインに合わせ白カード＋赤リボン） ===== */
.charge-head{text-align:center;margin:8px 0 18px}
.charge-title{font-size:24px;font-weight:800}
.charge-cp{color:var(--red);font-size:22px;font-weight:800;margin-top:6px}
.charge-cp-until{color:var(--red);font-size:14px;font-weight:700;margin-top:2px}
.charge-note{color:var(--muted);font-size:12px;margin-top:10px}
.charge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:640px){.charge-grid{grid-template-columns:repeat(2,1fr);gap:10px}}
.charge-card{position:relative;background:#fff;border-radius:12px;padding:16px 12px 14px;text-align:center;color:#1a1a2b;box-shadow:0 4px 14px rgba(0,0,0,.18);overflow:hidden}
.cc-coin{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#ffd86b,#f0a830);color:#7a5200;font-weight:800;display:flex;align-items:center;justify-content:center;margin:2px auto 8px;box-shadow:inset 0 -2px 4px rgba(0,0,0,.15)}
.cc-pt{font-size:24px;font-weight:800;color:#1a1a2b}
.cc-pt small{font-size:13px;margin-left:1px}
.cc-bonus{color:var(--red);font-weight:800;font-size:16px;margin:2px 0 10px}
.cc-buy{display:block;width:100%;border:none;border-radius:8px;background:#2b2b33;color:#fff;padding:9px 4px;cursor:pointer;line-height:1.25}
.cc-buy b{display:block;font-size:16px}
.cc-buy span{font-size:11px;opacity:.85}
.cc-buy:hover{background:#3a3a45}
/* 初回限定リボンバッジ（右上） */
.cc-badge{position:absolute;top:0;right:0;background:linear-gradient(135deg,#e8352e,#b81d18);color:#fff;padding:5px 8px 6px;border-bottom-left-radius:10px;text-align:center;line-height:1;box-shadow:-1px 2px 4px rgba(0,0,0,.25)}
.cc-badge-top{display:block;font-size:9px;font-weight:700;letter-spacing:.02em}
.cc-badge-pct{display:block;font-size:18px;font-weight:800;margin-top:1px}
.cc-badge-pct small{font-size:9px;margin-left:1px}
.cc-badge-100{background:linear-gradient(135deg,#ff8a00,#ff2e8b)}
.cc-badge-100 .cc-badge-pct{font-size:20px}
/* チャージPt指定（PayPay / 銀行振込） */
.charge-custom{margin-top:20px}
.cc-row{display:flex;align-items:center;gap:14px;background:#fff;color:#1a1a2b;border-radius:12px;padding:14px 16px;margin-bottom:14px;flex-wrap:wrap;box-shadow:0 3px 12px rgba(0,0,0,.15)}
.cc-ico{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#ffd86b,#f0a830);color:#7a5200;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cc-label{font-weight:800;font-size:15px;min-width:120px}
.cc-label span{font-weight:700;font-size:13px;color:#555}
.cc-input{flex:1;min-width:180px;display:flex;flex-direction:column;gap:4px;position:relative}
.cc-hint{font-size:11px;color:#888}
.cc-input input{border:none;border-bottom:1px solid #ccc;border-radius:0;background:transparent;color:#1a1a2b;text-align:right;padding:6px 26px 6px 6px;font-size:16px;font-weight:700}
.cc-unit{position:absolute;right:6px;bottom:8px;font-size:13px;color:#666}
.cc-next{min-width:120px;padding:14px 10px;font-size:15px;border-radius:10px}
.charge-foot{color:var(--muted);font-size:12px;text-align:center;line-height:1.7;margin-top:6px}

/* ===== マイページ コレクション ===== */
.col-pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.col-pill{border:1px solid var(--border);background:var(--panel2);color:var(--text);border-radius:20px;padding:6px 13px;font-size:13px;font-weight:700}
.col-pill b{color:var(--muted);margin-left:3px}
.col-pill.active{background:#1a1a2b;color:#fff;border-color:#1a1a2b}
.col-pill.active b{color:#ffce54}
.col-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-size:13px}
.col-selall{display:flex;align-items:center;gap:6px;font-weight:700}
.col-selall input{width:16px;height:16px}
.col-layout{display:grid;grid-template-columns:1fr 300px;gap:16px;align-items:start}
@media(max-width:760px){.col-layout{grid-template-columns:1fr}}
.col-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.col-card{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:5px;cursor:default}
.col-card.selectable{cursor:pointer}
.col-card.is-sel{outline:2px solid var(--primary);border-color:var(--primary)}
.col-chk{position:absolute;top:8px;left:8px;width:18px;height:18px;z-index:3}
.col-card .card-image-wrap{width:100%;background:var(--bg);border-radius:8px;position:relative}
.col-card .ci-clip{display:block;width:100%;border-radius:8px;overflow:hidden}
.col-card .ci-clip img{width:100%;border-radius:8px;display:block}
.cc-rar{font-size:11px;color:var(--muted)}
.cc-name{font-size:13px;font-weight:700;line-height:1.3;min-height:34px}
.cc-pts{font-size:12px;color:var(--gold);font-weight:700}
.cc-shipno{font-size:11px;color:var(--red);font-weight:700}
.col-use{border:none;border-radius:8px;background:linear-gradient(90deg,#ff9d2e,#ff7a00);color:#fff;font-weight:800;padding:8px 0;cursor:pointer}
.col-use:hover{filter:brightness(1.05)}
.col-side{background:#1a1a2b;border-radius:12px;padding:16px;position:sticky;top:80px;display:flex;flex-direction:column;gap:12px}
.cs-counts{display:flex;gap:10px}
.cs-num{flex:1;background:#fff;color:#1a1a2b;border-radius:8px;padding:12px;text-align:center;font-size:13px;font-weight:700}
.cs-num b{font-size:20px}
.cs-redeem{border:none;border-radius:8px;background:#fff;color:#1a1a2b;font-weight:800;padding:14px;cursor:pointer}
.cs-redeem:disabled{opacity:.5;cursor:not-allowed}
.cs-ship{border:none;border-radius:8px;background:#3a3a4a;color:#cfd2e0;font-weight:800;padding:14px;cursor:pointer}
.cs-ship:disabled{opacity:.7;cursor:not-allowed}
.cs-ship:not(:disabled){background:var(--accent);color:#fff}
