/* ブラッピー マイページ・お申し込み — スマートフォン前提（LINEアプリ内ブラウザで開く）
   261016 全面改装：温かみのある白地に黒とゴールド → 261017 ブランドのアセット（赤いハートのロゴ・クリーム地・肉球）に合わせて
   白×ブラッピーレッドへ。ロジックは app.js のまま、見た目と操作感だけを変えた。本デザインが来たら、ここの変数とロゴを差し替える。
   🔴 app.js が組み立てる部品のクラス（.pill .flow li.done/.now .items .nm .amt .checks b.st-* .kits .kb
      .shot-box.set .pick-list .prefill .field-err .busy .spinner .sk など）は名前を変えない */
:root{
  --bg:#fbf8f4; --card:#fff; --ink:#3b2b28; --sub:#7d6b67; --mute:#ab9c98; --line:#f1e3df;
  --brand:#d62a36; --red:#d62a36; --red-ink:#b8232e; --pink:#fbe9e9; --pink-line:#f3c9c9;
  --accent:#d62a36; --accent-ink:#fff;
  --ok:#3b8a3a; --ok-soft:#eef5e4; --warn:#b7791f; --warn-soft:#fdf4e3;
  --danger:#c53030; --danger-soft:#fdeeee;
  --line-green:#06c755;
  --hero1:#fbe9e9; --hero2:#fdf1ef;
  --r:20px; --r-sm:14px; --pad:18px;
  --shadow:0 1px 2px rgba(120,60,60,.04),0 8px 24px rgba(120,60,60,.07);
  --shadow-lg:0 12px 40px rgba(120,60,60,.18);
  --tab-h:64px;
}
*{box-sizing:border-box; -webkit-tap-highlight-color:transparent}
/* 🔴 作者スタイルの display は UA の [hidden]{display:none} を上書きする（260919 実測）。 */
[hidden]{display:none!important}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--ink);
  font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN",-apple-system,BlinkMacSystemFont,
              "Noto Sans JP","Yu Gothic UI",sans-serif;
  font-size:15px; line-height:1.7; letter-spacing:.02em; -webkit-text-size-adjust:100%;
  -webkit-font-smoothing:antialiased;
  padding-bottom:calc(var(--tab-h) + 16px + env(safe-area-inset-bottom));
}
body[data-page="apply"]{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
button,input,select{font:inherit;color:inherit;letter-spacing:inherit}
button{cursor:pointer}
a{color:inherit}

/* ---- ヘッダ ---- */
.hd{
  position:sticky; top:0; z-index:30; display:flex; align-items:center;
  justify-content:space-between; gap:8px;
  padding:12px var(--pad); padding-top:calc(12px + env(safe-area-inset-top));
  background:rgba(251,248,244,.86); color:var(--ink);
  -webkit-backdrop-filter:saturate(180%) blur(16px); backdrop-filter:saturate(180%) blur(16px);
  border-bottom:1px solid rgba(214,42,54,.08);
}
/* ロゴ「Brappy」：261022 差し替え（アセット差し替えのロゴ。logo.png＝高さ 96px の透過 PNG）。文字は読み上げ用に残し、見た目は画像 */
.hd-logo{display:inline-block; width:95px; height:30px; flex:none; overflow:hidden; white-space:nowrap;
  text-indent:120%; color:transparent; background:no-repeat left center/contain url("logo.png")}
.hd-logo-old::before{content:""; width:22px; height:22px; flex:none; background:no-repeat center/contain
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23d62a36' d='M12 21.5l-1.3-1.2C5.6 15.7 2.5 12.9 2.5 9.3 2.5 6.4 4.8 4 7.7 4c1.7 0 3.3.8 4.3 2.1C13 4.8 14.6 4 16.3 4c2.9 0 5.2 2.4 5.2 5.3 0 3.6-3.1 6.4-8.2 11z'/%3E%3Cpath fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M9.5 8.2v8h3a2 2 0 0 0 0-4h-3m0 0h2.6a2 2 0 0 0 0-4H9.5'/%3E%3C/svg%3E")}
button.hd-logo{background-color:transparent; border:0; padding:0; color:transparent}
.hd-out{background:var(--card); border:1px solid var(--line); color:var(--sub);
  border-radius:999px; padding:5px 14px; font-size:12px}

/* ---- タブバー ---- */
.tabbar{
  position:fixed; left:0; right:0; bottom:0; z-index:30; display:flex;
  background:rgba(255,255,255,.9); border-top:1px solid rgba(214,42,54,.08);
  -webkit-backdrop-filter:saturate(180%) blur(16px); backdrop-filter:saturate(180%) blur(16px);
  padding-bottom:env(safe-area-inset-bottom);
}
.tabbar button{
  flex:1; background:none; border:0; height:var(--tab-h); padding:0;
  font-size:10.5px; color:var(--mute); display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:3px; position:relative; transition:color .15s;
}
.tabbar svg{width:24px; height:24px; stroke:currentColor; fill:none; stroke-width:1.8;
  stroke-linecap:round; stroke-linejoin:round}
.tabbar button.on{color:var(--red); font-weight:700}
.tabbar button.on::before{content:""; position:absolute; top:0; width:22px; height:3px;
  border-radius:0 0 3px 3px; background:var(--red)}

/* ---- レイアウト ---- */
.wrap{max-width:520px; margin:0 auto; padding:14px var(--pad) var(--pad)}
/* 画面が切り替わるときにふわっと出す */
.wrap > *{animation:rise .32s cubic-bezier(.2,.7,.2,1) both}
.wrap > *:nth-child(2){animation-delay:.03s}
.wrap > *:nth-child(3){animation-delay:.06s}
.wrap > *:nth-child(4){animation-delay:.09s}
.wrap > *:nth-child(n+5){animation-delay:.12s}
@keyframes rise{from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:none}}

.loading{text-align:center; padding:96px 0}
/* 読み込み中のくるくる（GIF を使わず CSS で回す。どの解像度でもにじまない） */
.spinner{display:inline-block; width:38px; height:38px; border-radius:50%;
  border:3px solid var(--pink); border-top-color:var(--red); animation:spin .75s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2.4s} .wrap > *{animation:none}}
/* 通信中に画面へ薄くかぶせる白（押せないようにして二度押しを防ぐ） */
.busy{position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center;
  background:rgba(251,248,244,.62); opacity:0; visibility:hidden; transition:opacity .18s, visibility .18s}
/* くるくる以外は透明（周りに円を敷かない。261017 実機で円が浮いて見えた） */
.busy .spinner{box-shadow:none; background:transparent}
.busy.on{opacity:1; visibility:visible}

.card{background:var(--card); border-radius:var(--r); padding:var(--pad);
  margin-bottom:14px; box-shadow:var(--shadow)}
.card.center{text-align:center}
.t1{font-size:21px; line-height:1.4; margin:2px 0 8px; font-weight:800; letter-spacing:.03em}
.t2{font-size:13px; margin:22px 0 10px; color:var(--sub); font-weight:700; letter-spacing:.06em}
.card > .t2:first-child,.card > div > .t2:first-child{margin-top:0}
.lead{margin:0 0 16px; color:var(--sub); font-size:13.5px; line-height:1.75}
.note{font-size:12px; color:var(--sub); margin:8px 0 0; line-height:1.7}
.fine{font-size:11px; color:var(--mute); line-height:1.7; margin:16px 6px; text-align:center}
.err{color:var(--danger); font-size:13px; margin:12px 0 0; background:var(--danger-soft);
  border-radius:12px; padding:10px 12px}
.ok{color:var(--ok); font-size:13px; margin:12px 0 0; background:var(--ok-soft);
  border-radius:12px; padding:10px 12px; font-weight:600}
.empty{color:var(--mute); text-align:center; padding:28px 0; font-size:13px}
.back{display:inline-flex; align-items:center; gap:4px; background:var(--card); border:0;
  color:var(--ink); padding:7px 14px 7px 10px; margin:0 0 12px; font-size:13px; font-weight:600;
  border-radius:999px; box-shadow:var(--shadow)}

/* ---- ボタン ---- */
.btn{display:flex; align-items:center; justify-content:center; gap:8px;
  width:100%; min-height:54px; border:0; border-radius:999px;
  font-size:16px; font-weight:700; letter-spacing:.04em; text-decoration:none; margin-top:14px;
  transition:transform .12s, opacity .15s, box-shadow .15s}
.btn:active,.btn-sub:active,.menu button:active,.kits .kb:active,.hist button:active{transform:scale(.98)}
.btn-primary{background:var(--accent); color:var(--accent-ink); box-shadow:0 6px 16px rgba(214,42,54,.22)}
.btn-primary:disabled{opacity:.4; box-shadow:none}
.btn-line{background:var(--line-green); color:#fff; box-shadow:0 6px 16px rgba(6,199,85,.25)}
.btn-line::before{content:""; width:22px; height:22px; flex:none; background:no-repeat center/contain
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M12 3C6.5 3 2 6.6 2 11c0 3.9 3.5 7.2 8.3 7.9.3.1.8.2.9.5.1.3.1.7 0 1l-.1.9c0 .3-.2 1 .9.6s5.9-3.5 8-6c1.5-1.6 2-3.2 2-4.9C22 6.6 17.5 3 12 3z'/%3E%3C/svg%3E")}
.line-ico{background:#fff;color:var(--line-green);border-radius:5px;padding:1px 6px;font-size:12px;font-weight:800}
.btn-sub{display:flex; align-items:center; justify-content:center; width:100%; min-height:50px;
  margin-top:10px; border:1.5px solid var(--pink-line); background:var(--card); border-radius:999px;
  font-size:14px; font-weight:600; color:var(--red-ink); text-decoration:none; transition:transform .12s}
.sep{position:relative;text-align:center;margin:22px 0 6px;color:var(--mute);font-size:12px}
.sep::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px solid var(--line)}
.sep span{position:relative;background:var(--card);padding:0 10px}
/* 送信ボタンは画面の下に貼りつけておく（長いフォームでも押す場所が見える） */
.cta{position:sticky; bottom:calc(10px + env(safe-area-inset-bottom)); z-index:5; margin-top:18px}
body[data-page="mypage"] .cta{bottom:calc(var(--tab-h) + 10px + env(safe-area-inset-bottom))}
/* 入力中（キーボード・選択肢が出ている間）は浮かせない（261022 FB：キーボードの上に乗って入力欄を隠していた） */
body.kb .cta, body[data-page="mypage"].kb .cta{position:static}
body.kb .tabbar{display:none}
/* 必須の撮影枠・古物商の表示（261022 FB） */
.shot-box.invalid{outline:2px solid var(--red); outline-offset:2px}
.kobutsu{font-size:10.5px; color:var(--mute); text-align:center; line-height:1.7; margin:4px 6px 18px}
.cta .btn{margin-top:0}

/* ---- 挨拶 ---- */
.greet{padding:6px 4px 16px}
.greet-name{font-size:22px; font-weight:400; line-height:1.4}
.greet-name b{font-weight:800}
.greet-sub{display:flex; align-items:center; gap:6px; font-size:12px; color:var(--sub); margin-top:2px}
.greet-sub::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--line-green);
  box-shadow:0 0 0 3px rgba(6,199,85,.18)}

/* ---- 案件カード（上半分は淡いピンクのヒーロー。右上に肉球をひとつ） ---- */
.card.case{padding:0; overflow:hidden}
.case-hero{padding:var(--pad) var(--pad) 20px; color:var(--ink); position:relative;
  background:linear-gradient(160deg,var(--hero1),var(--hero2))}
.case-hero::after{content:""; position:absolute; right:14px; top:10px; width:34px; height:34px; opacity:.55;
  background:no-repeat center/contain
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23d62a36'%3E%3Cellipse cx='7' cy='8' rx='2.2' ry='3'/%3E%3Cellipse cx='17' cy='8' rx='2.2' ry='3'/%3E%3Cellipse cx='3.5' cy='13' rx='1.9' ry='2.6'/%3E%3Cellipse cx='20.5' cy='13' rx='1.9' ry='2.6'/%3E%3Cpath d='M12 11.5c3.5 0 6.5 3 6.5 6 0 2-1.5 3-3 3-1.2 0-2.3-.6-3.5-.6s-2.3.6-3.5.6c-1.5 0-3-1-3-3 0-3 3-6 6.5-6z'/%3E%3C/svg%3E")}
.case-hero.plain::after{display:none}   /* 明細：右上がステータスなので肉球と重ねない */
.case-hero .t2{color:var(--red-ink); margin:0 0 12px}
.case-body{padding:2px var(--pad) var(--pad)}
.card .case-body > .t2:first-child{margin-top:20px}
.case-hd{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rcpt{font-size:13px;color:var(--sub);font-variant-numeric:tabular-nums;letter-spacing:.04em}
.case-hero .rcpt{color:var(--ink); font-size:15px; font-weight:700}
.pill{font-size:12px;font-weight:700;color:#fff;background:var(--sub);
  border-radius:999px;padding:4px 12px;white-space:nowrap;letter-spacing:.04em}

/* フロー帯（ステータスは必ず帯で見せる）：点と線のステップ */
.flow{display:flex; list-style:none; margin:18px 0 2px; padding:0}
.flow li{flex:1 1 0; min-width:0; white-space:nowrap; text-align:center; font-size:9.5px;
  color:var(--mute); position:relative; padding-top:20px; line-height:1.3; margin:0}
.flow li::before{content:""; position:absolute; top:2px; left:50%; transform:translateX(-50%);
  width:11px; height:11px; border-radius:50%; background:#fff; z-index:1;
  box-shadow:0 0 0 2px var(--pink-line)}
.flow li::after{content:""; position:absolute; top:7px; left:50%; width:100%; height:0;
  border-top:2px dotted var(--pink-line)}
.flow li:last-child::after{display:none}
.flow li.done{color:var(--sub); font-weight:400}
.flow li.done::before{background:var(--red); box-shadow:0 0 0 2px var(--red)}
.flow li.done::after{border-top:2px solid var(--red)}
.flow li.now{color:var(--red-ink); font-weight:700}
.flow li.now::before{background:var(--red); width:13px; height:13px; top:1px;
  box-shadow:0 0 0 3px #fff,0 0 0 5px var(--red)}

.kv{display:flex; margin:0; padding:16px 0; gap:0; border-bottom:1px solid var(--line)}
.kv>div{flex:1; text-align:center; position:relative}
.kv>div + div::before{content:""; position:absolute; left:0; top:15%; bottom:15%; width:1px; background:var(--line)}
.kv dt{font-size:11px; color:var(--mute); margin:0; letter-spacing:.06em}
.kv dd{margin:3px 0 0; font-size:14.5px; font-weight:700; line-height:1.45; word-break:keep-all}

.amount{display:flex;align-items:baseline;justify-content:space-between;
  margin-top:6px;padding:14px 16px;border-radius:var(--r-sm);background:var(--pink);
  font-size:12px;color:var(--red-ink);font-weight:700}
.amount b{font-size:24px;color:var(--red);font-variant-numeric:tabular-nums;letter-spacing:.01em}
.total{text-align:center;padding:18px 0 4px}
.total b{display:block;font-size:38px;line-height:1.2;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.total span{font-size:12px;opacity:.7}
.case-hero .total b{color:var(--red)}

/* ---- 警告カード ---- */
.alert{background:var(--warn-soft); box-shadow:none; border:1px solid #f3dfb8; position:relative; padding-left:56px}
.alert::before{content:"!"; position:absolute; left:18px; top:18px; width:26px; height:26px; border-radius:50%;
  background:var(--warn); color:#fff; font-weight:800; text-align:center; line-height:26px; font-size:15px}
.alert .t2{color:#8a5a12; margin-top:0; font-size:14px; letter-spacing:.03em}
.alert p{margin:0; font-size:13px; color:#6b4a14}
.alert .btn{margin-left:-38px; width:calc(100% + 38px)}

/* ---- メニュー ---- */
.menu button{width:100%; text-align:left; background:var(--card); border:0;
  border-radius:var(--r); padding:17px var(--pad); margin-bottom:12px;
  display:flex; justify-content:space-between; align-items:center;
  box-shadow:var(--shadow); font-size:14.5px; font-weight:600; transition:transform .12s}
.menu i{color:var(--mute); font-style:normal; font-size:20px; line-height:1}

/* ---- 明細 ---- */
.items{list-style:none; margin:0; padding:0}
.items li{display:flex; justify-content:space-between; align-items:center;
  gap:12px; padding:13px 0; border-bottom:1px solid var(--line)}
.items li:last-child{border-bottom:0}
.items li:not(.empty)::before{content:""; flex:none; width:36px; height:36px; border-radius:10px;
  background:var(--pink) no-repeat center/18px
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d62a36' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 7h12l1 13H5L6 7z'/%3E%3Cpath d='M9 7a3 3 0 0 1 6 0'/%3E%3C/svg%3E")}
.items .nm{flex:1; min-width:0}
.items .nm b{display:block; font-weight:700; font-size:14px; line-height:1.45}
.items .nm em{font-style:normal; font-size:11px; color:var(--mute)}
.items .amt{font-weight:800; white-space:nowrap; font-variant-numeric:tabular-nums}
.items li.empty{display:block; padding:22px 8px; line-height:1.7}
.items.edit li::before{display:none}
.items.edit input{width:100%; padding:11px 12px; border:1.5px solid var(--line); border-radius:12px; background:var(--card)}
.comment p{background:var(--pink);border-radius:4px 16px 16px 16px;color:var(--ink);padding:14px;font-size:13.5px;
  margin:0;white-space:pre-wrap;line-height:1.75}
.bank{font-size:14px;margin:0;padding:12px 14px;border-radius:12px;background:var(--bg);font-weight:600}

p.done{color:var(--ok);font-weight:700;text-align:center;margin:16px 0 0;background:var(--ok-soft);
  border-radius:12px;padding:12px}

/* ---- フォーム ---- */
.form{text-align:left}
/* フォームの中の見出しは区切り線つきの段落見出しにする */
.form > .t2,.form > div > .t2{color:var(--ink); font-size:15px; letter-spacing:.03em; margin:26px 0 4px;
  padding-top:22px; border-top:1px solid var(--line)}
.form > .t2:first-child{margin-top:4px; padding-top:0; border-top:0}
.form label{display:block; margin-top:14px; font-size:13px; font-weight:600; color:var(--ink)}
.form input,.form select{
  width:100%; margin-top:6px; padding:0 14px; height:52px; border:1.5px solid var(--line);
  border-radius:var(--r-sm); background:var(--card); font-size:16px; /* iOS の自動ズーム回避 */
  font-weight:400; outline:none; transition:border-color .15s, box-shadow .15s; -webkit-appearance:none; appearance:none;
}
.form select{padding-right:38px; background:var(--card) no-repeat right 14px center/14px
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b6f76' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}
.form input[type="date"]{line-height:52px}
.form input::placeholder{color:#b6b9bf}
.form input:focus,.form select:focus{border-color:var(--red); box-shadow:0 0 0 4px var(--pink)}
.form input:disabled{background:var(--bg); color:var(--mute)}
.row{display:flex; gap:10px}
.row>label{flex:1; min-width:0}
.shots{display:flex; gap:10px; margin-top:12px}
.shot{flex:1; margin:0!important}
.shot input{display:none}
.shot-box{display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:4px; height:118px; border:1.5px dashed #cfcac1;
  border-radius:var(--r-sm); background:var(--bg) center/cover no-repeat; color:var(--sub);
  font-size:12px; font-weight:400; position:relative; overflow:hidden; transition:border-color .15s}
.shot-box::before{content:""; width:30px; height:30px; background:no-repeat center/contain
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d62a36' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l2-3h6l2 3h3v11H4z'/%3E%3Ccircle cx='12' cy='13' r='3.5'/%3E%3C/svg%3E")}
.shot-box b{font-size:14px; color:var(--ink)}
.shot-box em{font-style:normal}
.shot-box.set{border-style:solid; border-color:var(--ok); background-color:var(--ok-soft)}
.shot-box.set em{color:var(--ok); font-weight:700}
/* 撮った写真を裏で送っている進み具合（261022）。枠の下端の細い帯 */
.shot-box .up{position:absolute; left:0; right:0; bottom:0; height:4px; background:rgba(0,0,0,.08); z-index:2; overflow:hidden}
.shot-box .up i{display:block; height:100%; width:0; background:var(--red); transition:width .25s}
.shot-box .up.run i{width:40%; animation:upslide 1.1s ease-in-out infinite}
@keyframes upslide{0%{transform:translateX(-100%)} 100%{transform:translateX(260%)}}
/* 撮った写真を枠に映す（app.js が background-image を入れる） */
.shot-box.has-img::before{display:none}
.shot-box.has-img::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.6))}
.shot-box.has-img b,.shot-box.has-img em{position:relative; z-index:1; color:#fff; margin-top:auto}
.shot-box.has-img em{margin:0 0 10px}

/* ---- 履歴 ---- */
.segs{display:flex; gap:0; margin:6px 0 6px; padding:3px; background:var(--bg); border-radius:12px}
.segs button{flex:1; padding:8px 0; border:0; background:none; border-radius:10px;
  font-size:13px; color:var(--sub); font-weight:600; transition:background .15s, color .15s}
.segs button.on{background:var(--card); color:var(--red-ink); font-weight:700; box-shadow:0 1px 4px rgba(120,60,60,.12)}
.hist{list-style:none; margin:8px 0 0; padding:0}
.hist li{padding:14px 0; border-bottom:1px solid var(--line)}
.hist li:last-child{border-bottom:0}
.hist .r1{display:flex; justify-content:space-between; align-items:center; gap:8px}
.hist .r2{display:flex; justify-content:space-between; align-items:baseline; gap:8px; margin-top:4px}
.hist .ttl{font-size:14.5px; font-weight:700; font-variant-numeric:tabular-nums}
.hist .dt{font-size:11.5px; color:var(--mute)}
.hist .amt{font-weight:800; font-variant-numeric:tabular-nums}
.hist button{background:none;border:0;padding:0;width:100%;text-align:left;transition:transform .12s}

/* ---- フォーム1 ---- */
.steps{display:inline-flex; align-items:center; gap:6px; font-size:11px; color:var(--red-ink);
  letter-spacing:.06em; margin-bottom:8px; background:var(--pink); border-radius:999px; padding:3px 12px; font-weight:600}
.steps b{color:var(--red-ink)}
.req{font-style:normal;font-size:10px;font-weight:700;background:var(--danger-soft);color:var(--danger);
  border-radius:6px;padding:2px 6px;margin-left:6px;vertical-align:1px;letter-spacing:.04em}
.kits{display:flex;gap:10px;margin-top:4px}
.kits label{flex:1;margin:0!important}
/* 🔴 大きさを潰す。.form input の width:100% のまま隠すと3つが右へはみ出してページの幅が広がり、
   通信中のくるくる（fixed で画面の真ん中）が右下へずれた（261021） */
.kits input{position:absolute;width:1px;height:1px;margin:0;padding:0;opacity:0;pointer-events:none}
.kits .kb{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;padding:14px 4px 12px;border:1.5px solid var(--line);border-radius:var(--r-sm);
  background:var(--card);position:relative;transition:border-color .15s, box-shadow .15s, transform .12s}
.kits .kb::before{content:""; width:28px; height:28px; margin-bottom:2px; background:no-repeat center/contain
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239a9ea6' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7.5L12 3l9 4.5v9L12 21l-9-4.5z'/%3E%3Cpath d='M3 7.5l9 4.5 9-4.5M12 12v9'/%3E%3C/svg%3E")}
.kits .kb b{font-size:16px}
.kits .kb em{font-style:normal;font-size:11px;color:var(--mute);font-weight:400}
.kits input:checked + .kb{border-color:var(--red);box-shadow:0 0 0 1px var(--red),0 6px 16px rgba(214,42,54,.1)}
.kits input:checked + .kb::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d62a36' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7.5L12 3l9 4.5v9L12 21l-9-4.5z'/%3E%3Cpath d='M3 7.5l9 4.5 9-4.5M12 12v9'/%3E%3C/svg%3E")}
.kits input:checked + .kb::after{content:"✓"; position:absolute; top:6px; right:6px; width:18px; height:18px;
  border-radius:50%; background:var(--red); color:#fff; font-size:11px; line-height:18px; text-align:center; font-weight:800}
.kits input:checked + .kb em{color:var(--red-ink); font-weight:700}
.consent{list-style:none;margin:4px 0 0;padding:14px 16px;background:var(--bg);
  border-radius:var(--r-sm);font-size:12.5px;color:var(--sub)}
.consent li{padding:4px 0 4px 20px;position:relative;line-height:1.6}
.consent li::before{content:""; position:absolute; left:2px; top:11px; width:8px; height:5px;
  border-left:2px solid var(--red); border-bottom:2px solid var(--red); transform:rotate(-45deg)}
.consent a{color:var(--red-ink); font-weight:700; text-decoration:underline; text-underline-offset:2px}
.chk{display:flex!important;align-items:center;gap:12px;margin-top:14px!important;padding:14px 16px;
  border:1.5px solid var(--line);border-radius:var(--r-sm);font-size:14.5px;font-weight:700;color:var(--ink);
  background:var(--card); transition:border-color .15s}
.chk:has(input:checked){border-color:var(--red)}
.chk input{width:24px!important;height:24px!important;margin:0!important;padding:0!important;flex:none;
  border-radius:7px!important;border:1.5px solid #c9c5bd!important;position:relative;background:var(--card)}
.chk input:checked{background:var(--red);border-color:var(--red)!important}
.chk input:checked::after{content:""; position:absolute; left:7px; top:3px; width:6px; height:11px;
  border:solid #fff; border-width:0 2.5px 2.5px 0; transform:rotate(45deg)}

/* ---- 完了 ---- */
.tick{width:72px;height:72px;margin:8px auto 14px;border-radius:50%;
  background:var(--ok);color:#fff;font-size:36px;line-height:72px;font-weight:800;
  box-shadow:0 0 0 10px var(--ok-soft); animation:pop .45s cubic-bezier(.2,1.4,.4,1) both}
@keyframes pop{from{transform:scale(.4); opacity:0} to{transform:none; opacity:1}}
.rcptbox{border:1.5px dashed var(--pink-line);border-radius:var(--r-sm);padding:14px;margin:16px 0 8px;background:var(--pink)}
.rcptbox span{display:block;font-size:11px;color:var(--red-ink);letter-spacing:.08em;font-weight:700}
.rcptbox b{font-size:24px;font-variant-numeric:tabular-nums;letter-spacing:.04em}
.flowlist{list-style:none;margin:6px 0 0;padding:0;text-align:left;position:relative}
.flowlist li{display:flex;gap:14px;align-items:flex-start;padding:10px 0;font-size:13.5px;position:relative}
.flowlist li:not(:last-child)::after{content:""; position:absolute; left:13px; top:38px; bottom:-6px; width:2px; background:var(--line)}
.flowlist b{flex:none;width:28px;height:28px;border-radius:50%;background:var(--red);
  color:#fff;font-size:12px;line-height:28px;text-align:center}
.flowlist span{padding-top:3px}

/* ---- 登録状況・入力エラー・相談リンク ---- */
.checks{list-style:none;margin:0;padding:0}
.checks li{display:flex;justify-content:space-between;align-items:center;padding:12px 0;
  border-bottom:1px solid var(--line);font-size:14.5px}
.checks li:last-child{border-bottom:0}
.checks b{font-size:12px;font-weight:700;border-radius:999px;padding:3px 12px;background:var(--bg);color:var(--sub)}
.checks b.st-ok{color:var(--ok);background:var(--ok-soft)}
.checks b.st-ng{color:var(--danger);background:var(--danger-soft)}
.checks b.st-wait{color:var(--warn);background:var(--warn-soft)}
.form .invalid{border-color:var(--danger)!important;background:#fffafa!important;box-shadow:0 0 0 4px var(--danger-soft)!important}
.field-err{color:var(--danger);font-size:12px;margin:6px 0 0;font-weight:600}
a.btn{text-decoration:none;margin-top:12px}
.card + .btn-line,.menu + .btn-line{margin-top:6px}
.prefill{background:var(--pink);border-radius:12px;padding:10px 14px;font-size:12.5px;color:var(--red-ink);
  margin:0 0 12px;font-weight:600}

/* 銀行・支店の検索リスト（お振込先） */
.pick{position:relative}
.pick-list{list-style:none; margin:6px 0 0; padding:4px; max-height:260px; overflow-y:auto;
  border:1px solid var(--line); border-radius:var(--r-sm); background:var(--card); box-shadow:var(--shadow-lg)}
.pick-list li button{display:flex; justify-content:space-between; align-items:center; gap:8px; width:100%; text-align:left;
  padding:12px 12px; border:0; border-radius:10px; background:none; font-size:15px; color:var(--ink)}
.pick-list li button:active{background:var(--bg)}
.pick-list li button small{color:var(--mute); font-size:11px; font-variant-numeric:tabular-nums}
.pick-list li.empty{padding:14px 12px; font-size:12.5px; color:var(--mute)}
.pick.chosen input[data-pick-q]{border-color:var(--ok); background:var(--card) no-repeat right 14px center/18px
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f8a5b' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E")}

/* ---- 確認シート・お知らせ（ブラウザ標準の confirm / alert の代わり） ---- */
.sheet-bg{position:fixed; inset:0; z-index:120; background:rgba(60,30,30,.4); display:flex; align-items:flex-end;
  justify-content:center; animation:fade .2s ease both}
.sheet{width:100%; max-width:520px; background:var(--card); border-radius:24px 24px 0 0;
  padding:22px var(--pad) calc(18px + env(safe-area-inset-bottom)); animation:up .28s cubic-bezier(.2,.8,.2,1) both}
.sheet::before{content:""; display:block; width:40px; height:4px; border-radius:2px; background:var(--line); margin:-10px auto 16px}
.sheet p{margin:0 0 6px; font-size:16px; font-weight:700; line-height:1.6; text-align:center}
.sheet .btn{margin-top:12px}
.sheet .btn-sub{margin-top:8px}
@keyframes fade{from{opacity:0}}
@keyframes up{from{transform:translateY(100%)}}
.toast{position:fixed; left:50%; z-index:130; bottom:calc(var(--tab-h) + 22px + env(safe-area-inset-bottom));
  transform:translateX(-50%); max-width:calc(100% - 32px); background:var(--red-ink); color:#fff; font-size:13.5px;
  font-weight:600; padding:12px 18px; border-radius:14px; box-shadow:var(--shadow-lg); animation:toast 3s ease both}
body[data-page="apply"] .toast{bottom:calc(22px + env(safe-area-inset-bottom))}
@keyframes toast{0%{opacity:0; transform:translate(-50%,10px)} 8%,85%{opacity:1; transform:translate(-50%,0)} 100%{opacity:0}}

/* ---- マイページを開いた瞬間の枠（スケルトン）。値の場所だけ灰色の帯を光らせる。押せない ---- */
.skel button,.skel a{pointer-events:none}
.sk{display:inline-block; height:.9em; vertical-align:middle; border-radius:6px;
  background:linear-gradient(90deg,#f0e4e2 25%,#faf3f2 37%,#f0e4e2 63%); background-size:400% 100%;
  animation:sk-shine 1.4s ease infinite}
.case-hero .sk{background-image:linear-gradient(90deg,rgba(255,255,255,.5) 25%,rgba(255,255,255,.9) 37%,rgba(255,255,255,.5) 63%)}
.sk-pill{width:5em; height:1.6em; border-radius:999px}
/* よく見るスケルトンの動き（光が左から右へ流れる） */
@keyframes sk-shine{from{background-position:100% 50%} to{background-position:0 50%}}
/* 「視差効果を減らす」でも止めない（止めると読み込み中だと分からない）。ゆっくりにするだけ */
@media (prefers-reduced-motion: reduce){.sk{animation-duration:2.8s}}

/* ---- ダークモード（端末の設定に合わせる） ---- */
@media (prefers-color-scheme: dark){
  :root{--bg:#161213; --card:#211b1c; --ink:#f3ecea; --sub:#b4a6a3; --mute:#857876; --line:#352a2b;
        --accent:#e2404b; --accent-ink:#fff; --pink:#3a2426; --pink-line:#5a3539; --red:#ef5560; --red-ink:#f2a3a9;
        --ok-soft:#1a2a18; --warn-soft:#2a2112; --danger-soft:#2c1717;
        --hero1:#3a2426; --hero2:#2b1d1f;
        --shadow:0 1px 2px rgba(0,0,0,.3); --shadow-lg:0 12px 40px rgba(0,0,0,.5)}
  .hd{background:rgba(22,18,19,.86); border-bottom-color:rgba(255,255,255,.06)}
  .tabbar{background:rgba(33,27,28,.9); border-top-color:rgba(255,255,255,.06)}
  .busy{background:rgba(22,18,19,.6)}
  .alert{border-color:#4a3a1c} .alert .t2{color:#e7b866} .alert p{color:#d9c3a0}
  .form input::placeholder{color:#5f646d}
  .shot-box{border-color:#3a3d45}
  .chk input{border-color:#4a4d55!important}
  .rcptbox{border-color:#4a4030}
  .sk{background-image:linear-gradient(90deg,#2d2325 25%,#3a2e30 37%,#2d2325 63%)}
  .flow li.now::before{box-shadow:0 0 0 3px var(--card),0 0 0 5px var(--red)}
}
