/* パチスロ収支帳
   深い緑（帳簿の表紙）と金を芯に、落ち着いた帳簿の見た目。文字サイズの変更に追従するよう文字は rem で書く。
   高齢の利用者の声に合わせ、基準の文字は 17px・最小でも 12px 台にとどめる。
   収支の色はプラス＝青・マイナス＝赤（符号の＋−も必ず添える）。 */
:root{
  color-scheme:light;
  --brand:#14532D; --brand2:#0F3F22; --on-brand:#FFFFFF; --on-brand2:#CFE3D5; --gold:#D4A017; --gold-ink:#7A5A00; --gold-bg:#FBF3DC;
  --bg:#F1F3EE; --card:#FFFFFF; --card2:#F5F6F2; --line:#DCE1D8; --line2:#BFC7BA;
  --text:#152018; --muted:#4F5D53; --muted2:#6F7B72;
  --acc:#14532D; --acc-bg:#E3EFE6; --acc-ink:#14532D;
  --plus:#1D5FAE; --plus-bg:#E4EEFA; --minus:#C2362F; --minus-bg:#FBE8E6;
  --warn:#7A5A00; --warn-bg:#FBF0D2; --bad:#B3261E;
  --grid:#E3E7E0; --axis:#6F7B72;
  --sans:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","YuGothic","Noto Sans JP","Meiryo",system-ui,sans-serif;
  --adh:60px; --safe-b:env(safe-area-inset-bottom,0px); --safe-t:env(safe-area-inset-top,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --brand:#0F3A20; --brand2:#0B2D18; --on-brand2:#B9D4C1; --gold:#E0B23A; --gold-ink:#E9C766; --gold-bg:#3A2F12;
    --bg:#0E1410; --card:#18211B; --card2:#1F2A22; --line:#2C3A30; --line2:#435347;
    --text:#ECF1ED; --muted:#B0BDB3; --muted2:#8D9A90;
    --acc:#5FBF83; --acc-bg:#1F3A29; --acc-ink:#9FDDB5;
    --plus:#4F8FDB; --plus-bg:#1B2D45; --minus:#E8665D; --minus-bg:#43201E;
    --warn:#E9C766; --warn-bg:#3A2F12; --bad:#F08A82;
    --grid:#2A352D; --axis:#8D9A90;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --brand:#0F3A20; --brand2:#0B2D18; --on-brand2:#B9D4C1; --gold:#E0B23A; --gold-ink:#E9C766; --gold-bg:#3A2F12;
  --bg:#0E1410; --card:#18211B; --card2:#1F2A22; --line:#2C3A30; --line2:#435347;
  --text:#ECF1ED; --muted:#B0BDB3; --muted2:#8D9A90;
  --acc:#5FBF83; --acc-bg:#1F3A29; --acc-ink:#9FDDB5;
  --plus:#4F8FDB; --plus-bg:#1B2D45; --minus:#E8665D; --minus-bg:#43201E;
  --warn:#E9C766; --warn-bg:#3A2F12; --bad:#F08A82;
  --grid:#2A352D; --axis:#8D9A90;
}
html{font-size:17px;}
html.ts-l{font-size:19px;} html.ts-xl{font-size:21px;}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;height:100%;background:var(--brand);color:var(--text);font-family:var(--sans);
  -webkit-font-smoothing:antialiased;overscroll-behavior:none;line-height:1.55;-webkit-text-size-adjust:100%;}
button,input,select,textarea{font:inherit;color:inherit;}
button{cursor:pointer;background:none;border:none;padding:0;}
button:disabled{opacity:.45;cursor:default;}

/* 高さは画面に固定し、スクロールするのは #main だけ */
#app{max-width:560px;margin:0 auto;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:var(--bg);position:relative;}
/* 最上部バナー：安全領域の下にバナーが来るので、その分だけ下げる。入力中（ad-hidden）は詰める */
body.ads-on:not(.ad-hidden) #app{margin-top:calc(var(--safe-t) + var(--adh));height:calc(100vh - var(--safe-t) - var(--adh));height:calc(100dvh - var(--safe-t) - var(--adh));}
body.ads-on:not(.ad-hidden) header{padding-top:0;}
#main{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;}
#footer{padding-bottom:var(--safe-b);background:var(--card);}
.pad{padding:12px 12px 24px;}

/* ---------- ヘッダー ---------- */
header{flex:0 0 auto;background:var(--brand);color:var(--on-brand);padding-top:var(--safe-t);border-bottom:3px solid var(--gold);}
.hrow{display:flex;align-items:center;min-height:54px;padding:0 4px;}
.htitle{flex:1;min-width:0;font-size:1.0625rem;font-weight:700;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.02em;}
.hbtn{flex:none;min-width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:10px;color:var(--on-brand);font-size:.9375rem;font-weight:600;padding:0 10px;}
.hbtn:active{background:rgba(255,255,255,.16);}
.hsub{font-size:.8125rem;color:var(--on-brand2);padding:0 14px 8px;}

/* ---------- タブ ---------- */
nav.tabs{flex:0 0 auto;display:flex;background:var(--card);border-top:1px solid var(--line);}
nav.tabs button{flex:1;min-width:0;min-height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted);font-size:.75rem;font-weight:700;position:relative;}
nav.tabs button span{white-space:nowrap;}
nav.tabs button svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
nav.tabs button.on{color:var(--acc);}
nav.tabs button.on::before{content:"";position:absolute;top:0;left:22%;right:22%;height:3px;border-radius:0 0 3px 3px;background:var(--gold);}
nav.tabs button:active{background:var(--card2);}

/* ---------- カード ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;margin-bottom:12px;overflow:hidden;}
.ch{margin:0;padding:12px 14px 4px;font-size:.875rem;font-weight:700;color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.sp{flex:1;}
.cb{padding:8px 14px 14px;}
.note{font-size:.875rem;color:var(--muted);line-height:1.7;}
.note+.note{margin-top:8px;}
.sb.note,.sheet .sb .note{white-space:pre-line;}
.empty{padding:26px 16px;text-align:center;color:var(--muted);font-size:.9375rem;}
.empty.small{padding:16px;font-size:.875rem;}
.tiny{font-size:.75rem;color:var(--muted2);font-weight:500;}
.money{font-variant-numeric:tabular-nums;}
.plus{color:var(--plus);} .minus{color:var(--minus);}
.big{font-size:2.25rem;font-weight:800;font-variant-numeric:tabular-nums;padding:2px 14px 10px;line-height:1.2;letter-spacing:-.01em;}
.mid{font-size:1.625rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.25;}
.hero{border-top:4px solid var(--gold);}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-top:1px solid var(--line);}
.kpis.three{grid-template-columns:1fr 1fr 1fr;}
.kpi{background:var(--card);padding:10px 12px;min-width:0;}
.kpi span{display:block;font-size:.75rem;color:var(--muted);font-weight:600;}
.kpi b{display:block;font-size:min(1.125rem,4.3vw);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.kpi.big{grid-column:1 / -1;font-size:inherit;padding:10px 12px;}
.statusline{font-size:.8125rem;color:var(--muted);padding:0 4px 10px;}
.sumline{display:flex;align-items:center;padding:10px 14px;border-top:1px solid var(--line);font-size:.875rem;font-weight:700;background:var(--card2);}
.sumline b{font-variant-numeric:tabular-nums;font-size:1rem;}
.sumbar{display:flex;align-items:center;gap:6px;padding:2px 4px 10px;font-size:.875rem;color:var(--muted);font-weight:600;}
.sumbar b{font-size:1.0625rem;font-variant-numeric:tabular-nums;}
.promise{background:var(--gold-bg);border:1px solid var(--gold);color:var(--text);border-radius:12px;padding:12px 14px;font-size:.875rem;line-height:1.7;margin-bottom:12px;}
.promise b{display:block;font-size:1rem;color:var(--gold-ink);margin-bottom:2px;}
.nudge{background:var(--card);border:1px solid var(--line2);border-left:4px solid var(--gold);border-radius:12px;padding:10px 12px;margin-bottom:12px;font-size:.875rem;color:var(--muted);line-height:1.6;}
.nudge .btns{margin-top:8px;justify-content:flex-end;}
.nudge .btns>*{flex:none;}

/* ---------- ボタン ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:50px;padding:0 16px;border-radius:12px;font-weight:700;font-size:1rem;border:1px solid var(--line2);background:var(--card);color:var(--text);text-align:center;}
.btn:active{background:var(--card2);}
.btn.pri{background:var(--brand);border-color:var(--brand);color:#fff;}
:root[data-theme="dark"] .btn.pri{background:var(--acc);border-color:var(--acc);color:#0B1A10;}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn.pri{background:var(--acc);border-color:var(--acc);color:#0B1A10;}}
.btn.pri:active{filter:brightness(.92);}
.btn.danger{color:var(--bad);}
.btn.wide{width:100%;}
.btn.small{min-height:44px;padding:0 12px;font-size:.875rem;font-weight:700;}
.btns{display:flex;gap:8px;}
.btns>*{flex:1;}
.hugebtn{min-height:64px;font-size:1.25rem;margin-bottom:10px;box-shadow:inset 0 -3px 0 var(--gold);}
.again{flex-direction:column;gap:0;margin-bottom:12px;line-height:1.35;padding:8px 14px;}
.again small{font-size:.8125rem;color:var(--muted);font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.again.slim{min-height:40px;margin-bottom:8px;padding:6px 14px;}
.linkbtn{color:var(--acc-ink);font-weight:700;text-decoration:underline;min-height:44px;font-size:.9375rem;padding:0 6px;}
.ar{color:var(--muted2);font-size:1.25rem;}

/* ---------- チップ・切替 ---------- */
.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip{min-height:46px;padding:0 15px;border-radius:23px;border:1px solid var(--line2);background:var(--card);font-size:.9375rem;font-weight:600;color:var(--text);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.chip.on{background:var(--brand);border-color:var(--brand);color:#fff;}
:root[data-theme="dark"] .chip.on{background:var(--acc);border-color:var(--acc);color:#0B1A10;}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .chip.on{background:var(--acc);border-color:var(--acc);color:#0B1A10;}}
.chip.sug{border-style:dashed;}
.scrollx{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;}
.scrollx::-webkit-scrollbar{display:none;}
.scrollx .chip{flex:none;}
.seg{display:flex;background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:3px;margin-bottom:10px;gap:2px;}
.seg:last-child{margin-bottom:0;}
.seg button{flex:1;min-width:0;min-height:46px;border-radius:9px;font-size:.9375rem;font-weight:700;color:var(--muted);padding:0 4px;line-height:1.25;}
.seg button.on{background:var(--card);color:var(--acc-ink);box-shadow:0 1px 3px rgba(0,0,0,.16);outline:1px solid var(--line);}
.seg.big3 button{min-height:48px;font-size:1rem;}

/* ---------- 一覧の行 ---------- */
.row{display:flex;align-items:center;gap:10px;width:100%;min-height:60px;padding:9px 14px;border-top:1px solid var(--line);text-align:left;}
.card>.row:first-child{border-top:none;}
button.row:active{background:var(--card2);}
.row .m{flex:1;min-width:0;}
.row .t{font-size:1rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.row .s{font-size:.8125rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.row .v{flex:none;text-align:right;font-weight:800;font-size:1.0625rem;font-variant-numeric:tabular-nums;}
.ch+.row{border-top:1px solid var(--line);}
.badge{display:inline-block;font-size:.75rem;font-weight:700;padding:0 7px;border-radius:6px;background:var(--card2);color:var(--muted);border:1px solid var(--line);vertical-align:2px;line-height:1.6;}
.grouph{font-size:.875rem;font-weight:700;color:var(--muted);padding:10px 14px 8px;background:var(--card2);display:flex;justify-content:space-between;gap:8px;}
.grouph b{font-variant-numeric:tabular-nums;}
.item .ibtn{flex:none;min-width:46px;min-height:46px;border-radius:10px;border:1px solid var(--line2);font-weight:700;font-size:1rem;background:var(--card);}
.item .ibtn.wide{min-width:60px;font-size:.875rem;}

/* ---------- フォーム ---------- */
.fld{padding:10px 14px;border-top:1px solid var(--line);}
.card>.fld:first-child{border-top:none;}
.fl{display:block;font-size:.875rem;font-weight:700;color:var(--muted);margin-bottom:6px;}
.fh{font-size:.8125rem;color:var(--muted);margin-top:6px;line-height:1.6;}
input[type=text],input[type=number],input[type=date],input[type=time],input[type=search],select,textarea,input[inputmode]{
  width:100%;min-height:50px;border:1px solid var(--line2);border-radius:10px;background:var(--card);color:var(--text);padding:8px 12px;font-size:1rem;outline:none;}
input[type=date],input[type=time]{-webkit-appearance:none;appearance:none;min-width:0;}
input:disabled{opacity:.5;}
select{-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted2) 50%),linear-gradient(135deg,var(--muted2) 50%,transparent 50%);background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:28px;text-overflow:ellipsis;}
input:focus,select:focus,textarea:focus{border-color:var(--acc);box-shadow:0 0 0 2px var(--acc-bg);}
textarea{resize:vertical;line-height:1.6;}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;}
.dateinp{flex:1;min-width:140px;width:auto;}
.raterow{margin-top:2px;}
.rateinp{width:96px !important;flex:none;min-height:46px !important;}

/* 金額の箱とテンキー */
.aboxes{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 12px 4px;}
.aboxes.three{grid-template-columns:1fr 1fr 1fr;}
.abox{display:flex;flex-direction:column;align-items:flex-end;min-width:0;padding:8px 10px;border-radius:12px;border:2px solid var(--line);background:var(--card2);text-align:right;}
.abox.on{border-color:var(--gold);background:var(--gold-bg);box-shadow:0 0 0 1px var(--gold);}
.abox .al{align-self:flex-start;font-size:.875rem;font-weight:700;color:var(--muted);}
.abox .an{font-size:1.75rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.aboxes.three .abox .an{font-size:1.375rem;}
.abox .an.zero{color:var(--muted2);}
.abox .au{font-size:.8125rem;color:var(--muted);font-weight:600;}
.live{padding:6px 14px 8px;font-size:1rem;font-weight:700;text-align:right;}
.live b{font-size:1.25rem;font-variant-numeric:tabular-nums;}
.live .tiny{display:block;}
.adds{display:flex;gap:6px;padding:0 12px 8px;}
.adds .chip{flex:1;padding:0 4px;min-height:44px;font-size:.875rem;}
.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:0 12px 12px;}
.keypad button{min-height:clamp(44px,5.6vh,58px);border-radius:12px;background:var(--card2);border:1px solid var(--line);font-size:1.625rem;font-weight:700;font-variant-numeric:tabular-nums;}
.keypad button:active{background:var(--acc-bg);}
.keypad button.fn{font-size:1.25rem;color:var(--muted);}
.savebar{flex:0 0 auto;display:flex;gap:8px;padding:8px 12px;background:var(--card);border-top:1px solid var(--line);}
.savebar .btn{min-height:54px;}
.savebar .btn.pri{flex:1;font-size:1.125rem;}
details.fold>summary{list-style:none;display:flex;align-items:center;min-height:56px;padding:0 14px;font-weight:700;font-size:1rem;color:var(--acc-ink);cursor:pointer;}
details.fold>summary::-webkit-details-marker{display:none;}
details.fold>summary::after{content:"＋";margin-left:auto;color:var(--muted2);font-size:1.25rem;}
details.fold[open]>summary::after{content:"−";}
.photos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.ph{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:var(--card2);border:1px solid var(--line);}
.ph img{width:100%;height:100%;object-fit:cover;display:block;}
.phx{position:absolute;top:2px;right:2px;width:34px;height:34px;border-radius:17px;background:rgba(0,0,0,.62);color:#fff;font-size:1.125rem;font-weight:700;line-height:34px;}
.phadd{aspect-ratio:1;border-radius:10px;border:2px dashed var(--line2);color:var(--muted);font-size:1.5rem;font-weight:700;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1;}
.phadd small{font-size:.75rem;}

/* ---------- 集計 ---------- */
.periods{margin-bottom:6px;}
.rangeline{display:flex;align-items:center;gap:8px;padding:8px 2px;font-size:.875rem;font-weight:700;color:var(--muted);}
.rangeline span:first-child{min-width:0;}
.fchips{margin:-2px 2px 10px;align-items:center;}
.fchips .badge{font-size:.8125rem;padding:3px 8px;}
.sortrow{display:flex;align-items:center;gap:8px;margin-top:10px;}
.sortrow select{flex:1;min-height:44px;}
.sortrow .tiny{flex:none;}
.row.grow{cursor:default;}
.row.grow .s{white-space:normal;}

/* ---------- グラフ（SVG） ---------- */
.chart{width:100%;height:auto;display:block;overflow:visible;}
.chart .grid{stroke:var(--grid);stroke-width:1;}
.chart .zero{stroke:var(--axis);stroke-width:1;}
.chart .ax{fill:var(--axis);font-size:11px;font-family:var(--sans);font-variant-numeric:tabular-nums;}
.chart .ln{fill:none;stroke:var(--brand);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;}
:root[data-theme="dark"] .chart .ln{stroke:var(--acc);}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .chart .ln{stroke:var(--acc);}}
.chart .dot{stroke:var(--card);stroke-width:2;fill:var(--brand);}
.chart .dot.plus{fill:var(--plus);} .chart .dot.minus{fill:var(--minus);}
.chart .bar.plus{fill:var(--plus);} .chart .bar.minus{fill:var(--minus);}
.chart .hit{fill:transparent;cursor:pointer;}
.chart .hit.on{fill:var(--gold);fill-opacity:.16;}
.vread{min-height:1.6em;font-size:.875rem;font-weight:700;color:var(--text);margin-top:6px;}
.hbars{display:grid;gap:12px;}
.hbar .l{display:flex;justify-content:space-between;align-items:flex-end;gap:8px;font-size:.9375rem;font-weight:700;}
.hbar .l span{min-width:0;overflow:hidden;text-overflow:ellipsis;}
.hbar .l small{display:block;font-size:.75rem;color:var(--muted);font-weight:600;}
.hbar .l b{font-variant-numeric:tabular-nums;white-space:nowrap;}
.hbar .tr{position:relative;height:10px;background:var(--card2);border-radius:5px;margin-top:4px;overflow:hidden;}
.hbar .tr i{position:absolute;top:0;bottom:0;display:block;}
.hbar .tr i.mid{left:50%;width:1px;background:var(--axis);}
.hbar .tr i.pos{background:var(--plus);border-radius:0 4px 4px 0;}
.hbar .tr i.neg{background:var(--minus);border-radius:4px 0 0 4px;}

/* ---------- カレンダー ---------- */
.calnav{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.calt{flex:1;text-align:center;font-size:1.125rem;font-weight:800;}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center;}
.cal .wd{font-size:.8125rem;color:var(--muted);padding:2px 0;font-weight:700;}
.cal .wd.sun{color:var(--minus);} .cal .wd.sat{color:var(--plus);}
.cal .d{min-height:54px;border-radius:8px;background:var(--card2);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:4px;line-height:1.15;width:100%;min-width:0;overflow:hidden;}
.cal .d .dn{font-size:.875rem;font-weight:700;}
.cal .d small{font-size:.6875rem;font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-.03em;margin-top:3px;white-space:nowrap;}
.cal .d.has.plus{background:var(--plus-bg);} .cal .d.has.minus{background:var(--minus-bg);}
.cal .d.has.plus .dn,.cal .d.has.minus .dn{color:var(--text);}
.cal .d.today{outline:2px solid var(--gold);outline-offset:-2px;}
.cal .d.sel{box-shadow:inset 0 0 0 3px var(--brand);}
:root[data-theme="dark"] .cal .d.sel{box-shadow:inset 0 0 0 3px var(--acc);}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .cal .d.sel{box-shadow:inset 0 0 0 3px var(--acc);}}
.cal .blank{min-height:54px;}

/* ---------- 箱 ---------- */
.warnbox{background:var(--warn-bg);color:var(--warn);border-radius:10px;padding:10px 12px;font-size:.875rem;line-height:1.6;font-weight:600;margin-bottom:12px;}
.infobox{background:var(--acc-bg);color:var(--acc-ink);border-radius:10px;padding:10px 12px;font-size:.9375rem;line-height:1.7;}
.disc{font-size:.8125rem;color:var(--muted);line-height:1.6;padding:8px 4px;}

/* ---------- パスコード ---------- */
.lock{display:flex;flex-direction:column;align-items:center;padding:28px 16px 16px;}
.lock.inline{padding:16px 0;}
.lock-t{font-size:1.25rem;font-weight:800;margin-bottom:16px;}
.pdots{display:flex;gap:18px;margin-bottom:8px;}
.pdots i{width:18px;height:18px;border-radius:9px;border:2px solid var(--brand);display:block;}
.pdots i.on{background:var(--brand);}
.lock-m{min-height:1.6em;color:var(--bad);font-weight:700;font-size:.9375rem;margin-bottom:8px;text-align:center;}
.lockpad{width:100%;max-width:340px;padding:0 0 12px;}
.lockpad span{display:block;}

/* ---------- シート ---------- */
.mask{position:fixed;inset:0;background:rgba(6,14,9,.55);z-index:50;display:flex;align-items:flex-end;justify-content:center;}
.sheet{width:100%;max-width:560px;background:var(--card);border-radius:18px 18px 0 0;max-height:84vh;display:flex;flex-direction:column;padding-bottom:var(--safe-b);}
.sheet h4{margin:0;padding:16px 16px 4px;font-size:1.125rem;}
.sheet .sb{padding:8px 16px 16px;overflow-y:auto;min-height:0;}
.sheet .sb .fld{padding:8px 0;border-top:none;}
.sheet .sf{padding:8px 12px 12px;display:flex;gap:8px;border-top:1px solid var(--line);}
.sheet .sf .btn{flex:1;}

/* トースト */
#toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(140px + var(--safe-b));width:calc(100% - 24px);max-width:520px;background:#16221A;color:#fff;border-radius:12px;padding:6px 8px 6px 16px;font-size:.9375rem;display:none;align-items:center;gap:8px;z-index:60;min-height:50px;box-shadow:0 4px 14px rgba(0,0,0,.3);}
#toast.on{display:flex;}
#toast span{flex:1;}
#toast button{color:#F2CF6B;font-weight:800;min-height:44px;padding:0 10px;}
