/* Hallmark · genre: modern-minimal · macrostructure: workbench · design-system: design.md · designed-as-app · tone: soft-financial · pre-emit critique: P5 H5 E5 S5 R5 V5 · contrast: pass · mobile: pass */
/* ============================================================
   RISE Lending ADMIN — admin-base.css
   ユーザーサイトの assets/css/app.css の複製。**直接編集しない**。
   ユーザーサイト側を直したら、そのままコピーし直す（design-rules.md / ADMIN_IA.md §10.4）。
   管理画面固有の上書きは admin.css に書く。
   ------------------------------------------------------------
   RISE Lending — app.css (ログイン後アプリ)
   Mobile-first: app bar + bottom tabs.
   Desktop (>=1024px): left sidebar + centered content.
   ============================================================ */

body.app{
  --app-banner-sheen:linear-gradient(110deg,transparent 24%,rgba(255,255,255,.5) 50%,transparent 76%);
  background:var(--bg-soft);
  padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom, 0px));
  overflow-x:clip;
}
html{overflow-x:clip}

/* ---------- App bar (mobile) ---------- */
.app-bar{
  position:sticky;top:0;z-index:100;
  height:var(--header-h);
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 8px;
}
.app-bar .back{
  display:inline-flex;align-items:center;gap:2px;
  min-width:44px;height:44px;padding:0 10px 0 2px;
  border-radius:var(--radius-chip);
  color:var(--primary-deep);font-size:1.5rem;font-weight:500;line-height:1;white-space:nowrap;
}
.app-bar .back .back-glyph{font-size:2.6rem;font-weight:400;line-height:1;transform:translateY(-1px)}
.app-bar .back .back-label{font-size:1.5rem;font-weight:500}
.app-bar .back:active{background:var(--bg-soft)}
.app-bar-title{
  position:absolute;left:50%;transform:translateX(-50%);
  font-size:var(--fs-md);font-weight:700;letter-spacing:.06em;
}
.app-bar-side{width:44px;height:44px;display:flex;align-items:center;justify-content:center}
.app-bar .help{color:var(--ink3)}
.app-bar .help svg{width:22px;height:22px}

/* ---------- Layout ---------- */
.app-layout{max-width:var(--content-max);margin:0 auto}
.app-main{padding:16px 16px 32px;display:flex;flex-direction:column;gap:16px}
.app-sidebar{display:none}

/* ---------- Bottom tab bar (mobile) ---------- */
.tabbar{
  position:fixed;left:0;right:0;bottom:0;z-index:100;
  height:calc(var(--tabbar-h) + env(safe-area-inset-bottom, 0px));
  padding-bottom:env(safe-area-inset-bottom, 0px);
  background:#fff;
  border-top:1px solid var(--line);
  display:flex;
}
.tabbar a{
  flex:1;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  font-size:1.2rem;font-weight:500;color:var(--ink3);
  position:relative;
}
.tabbar a svg{width:24px;height:24px}
.tabbar a.active{color:var(--primary-deep)}
.tabbar a .dot{
  position:absolute;top:8px;right:calc(50% - 14px);
  width:7px;height:7px;border-radius:50%;
  background:var(--danger);
}

/* ---------- Greeting / as-of ---------- */
.asof{font-size:var(--fs-sm);color:var(--ink3);text-align:right}

/* ---------- Hero balance card ---------- */
.balance-card{
  background:var(--primary-grad);
  border-radius:var(--r-lg);
  color:#fff;
  padding:22px 20px;
  box-shadow:0 10px 30px rgba(243,55,88,.12);
}
.balance-card .bc-sub{
  display:flex;align-items:center;gap:6px;
  font-size:var(--fs-xs);font-weight:700;
  margin-top:12px;
}
.balance-card .trend-label{font-weight:500;opacity:.82}
.balance-card .bc-sub > strong{font-size:var(--fs-sm);letter-spacing:.02em}
.balance-card .trend-rate{margin-left:2px;color:#B8FFD6;font-weight:700}
.balance-split{
  margin-top:18px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.25);
  border-radius:var(--r);
  display:flex;
}
.balance-split a{
  flex:1;padding:12px 14px;
  display:flex;flex-direction:column;gap:2px;
  position:relative;
}
.balance-split a + a{border-left:1px solid rgba(255,255,255,.25)}
.balance-split .k{font-size:var(--fs-sm);font-weight:500;opacity:.9}
.balance-split .v{font-size:var(--fs-lg);font-weight:700}
.balance-split .arrow{
  position:absolute;right:10px;top:50%;transform:translateY(-50%);
  font-weight:700;opacity:.7;
}

/* ---------- Quick actions ---------- */
.quick-actions{
  display:grid;grid-template-columns:repeat(3,1fr);gap:10px;
}
.qa{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--r);
  box-shadow:var(--shadow-sm);
  padding:14px 6px 12px;
  display:flex;flex-direction:column;align-items:center;gap:7px;
  font-size:1.4rem;font-weight:500;color:var(--ink);
  transition:transform .12s ease;
}
.qa:active{transform:scale(.96)}
.qa .qa-ic{
  width:42px;height:42px;border-radius:var(--radius-panel);
  background:var(--primary-soft);color:var(--primary-deep);
  display:flex;align-items:center;justify-content:center;
}
.qa .qa-ic svg{width:22px;height:22px}

/* ---------- Section heading in app ---------- */
.app-h2{
  display:flex;align-items:center;justify-content:space-between;
  font-size:1.8rem;font-weight:700;letter-spacing:.01em;line-height:1.35;
}
.app-h2 .more{
  font-size:var(--fs-sm);font-weight:500;color:var(--primary-deep);
}
.app-h2 button.more{white-space:nowrap}
.app-h2 button.more:active{opacity:.65}
.app-h2 button.more[disabled]{opacity:.4;cursor:not-allowed;text-decoration:none}

/* ---------- Coin list rows ---------- */
.coin-list{display:flex;flex-direction:column}
.coin-row{
  display:flex;align-items:center;gap:12px;
  padding:15px 16px;
  background:#fff;
  border-bottom:1px solid var(--line);
}
.coin-list .coin-row:first-child{border-radius:var(--r) var(--r) 0 0}
.coin-list .coin-row:last-child{border-radius:0 0 var(--r) var(--r);border-bottom:none}
.coin-list .coin-row:only-child{border-radius:var(--r)}
.coin-list{border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);background:#fff}
.coin-row .ci-name{line-height:1.35;min-width:0}
.coin-row .ci-name .sym{font-weight:700;font-size:1.6rem}
.coin-row .ci-name .nm{font-size:var(--fs-sm);color:var(--ink3);white-space:nowrap}
.coin-row .ci-val{margin-left:auto;text-align:right;line-height:1.4;min-width:0}
.coin-row .ci-val .jpy{font-weight:700;font-size:1.6rem}
.coin-row .ci-val .qty{font-size:var(--fs-sm);color:var(--ink3);white-space:nowrap}
.coin-row .ci-val .plus{font-size:var(--fs-sm);color:var(--ink2);font-weight:500;white-space:nowrap}
.coin-row .chev{color:var(--ink3);font-weight:700;margin-left:2px}
a.coin-row:active{background:var(--bg-soft)}

/* ---------- Stat blocks (利息など) ---------- */
.stat-tabs{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;
}
.stat-tile{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow-sm);
  padding:14px 10px;text-align:center;
}
.stat-tile .k{font-size:var(--fs-sm);color:var(--ink2);font-weight:500}
.stat-tile .v{font-size:var(--fs-lg);font-weight:700;margin-top:4px}
.stat-tile .s{font-size:var(--fs-sm);color:var(--ink3)}

/* ---------- History list ---------- */
.hist-list{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow-sm);
  overflow:hidden;
}
.hist-row{
  display:grid;gap:4px;
  padding:12px 16px;
  border-bottom:1px solid var(--line);
}
.hist-row:last-child{border-bottom:none}
.hist-row .h-line{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-width:0}
.hist-row .h-primary{line-height:1.45}
.hist-row .h-secondary{line-height:1.35}
.hist-row .h-date{font-size:var(--fs-xs);color:var(--ink3);white-space:nowrap}
.hist-row .h-type{font-size:var(--fs-md);font-weight:500}
.hist-row .h-detail{font-size:var(--fs-sm);color:var(--ink2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hist-row .h-amt{font-weight:700;font-size:var(--fs-md);text-align:right;white-space:nowrap}
.hist-row.in .h-amt{color:var(--ink)}
.hist-row.out .h-amt{color:var(--ink)}
.history-load-more{
  display:flex;align-items:center;justify-content:center;
  width:100%;min-height:46px;margin-top:10px;
  border:1px solid var(--line2);border-radius:var(--r-sm);
  background:#fff;color:var(--primary-deep);
  font-size:var(--fs-sm);font-weight:700;white-space:nowrap;
  transition:background .15s ease,border-color .15s ease,transform .12s ease;
}
.history-load-more:active{transform:scale(.99)}
.history-load-more:disabled{opacity:.55;cursor:not-allowed;background:var(--bg-soft)}
.history-load-more[hidden]{display:none}

/* ---------- Dashboard lending summary ---------- */
.lending-summary-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto}
.lending-summary-row .coin-plan{font-size:var(--fs-sm);color:var(--ink3);overflow:hidden;text-overflow:ellipsis}
.lending-summary-row .ci-val{max-width:48vw}
.lending-summary-row .ci-val .plus{font-size:var(--fs-sm);font-weight:500}

/* ---------- Banner (campaign) ---------- */
.app-banner{
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  min-height:100px;
  padding:14px 18px;
  overflow:hidden;
  color:var(--color-accent-ink);
  background:var(--primary-grad);
  border:1px solid var(--color-gold);
  border-radius:var(--radius-app-card);
  box-shadow:var(--shadow-float);
  -webkit-tap-highlight-color:transparent;
  -webkit-touch-callout:none;
  -webkit-user-select:none;
  user-select:none;
  transition:none;
}
.app-banner::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background:linear-gradient(118deg,transparent 8%,var(--color-glass-button) 52%,transparent 84%);
  opacity:.04;
  pointer-events:none;
}
.app-banner .b-content{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
.app-banner .b-eyebrow{display:flex;align-items:center;gap:12px;white-space:nowrap;line-height:1}
.app-banner .b-tag{
  display:inline-flex;
  align-items:center;
  min-height:17px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--color-accent-ink);
  font-size:1.2rem;
  font-weight:700;
  line-height:1.4;
  letter-spacing:.04em;
}
.app-banner .b-offer{display:flex;align-items:baseline;gap:8px;white-space:nowrap;line-height:1.35}
.app-banner .b-plan{display:inline-flex;align-items:center;min-height:17px;font-size:1.2rem;font-weight:700;line-height:1.4;letter-spacing:.04em;color:var(--color-accent-ink)}
.app-banner .b-offer strong{font-size:clamp(19px,4vw,23px);font-weight:700;letter-spacing:.03em;color:var(--color-accent-ink)}
.app-banner .b-offer strong .num{white-space:nowrap}
.app-banner .b-offer strong .num{font-size:1.12em;color:var(--color-yellow);letter-spacing:.01em;margin-inline:4px}
html[lang="en"] .app-banner .b-tag,
html[lang="en"] .app-banner .b-plan{letter-spacing:.015em}
html[lang="en"] .app-banner .b-offer strong{letter-spacing:.01em}
html[lang="en"] .app-banner .b-offer strong .num{letter-spacing:0;margin-inline:3px}
.app-banner .b-token-cluster{display:flex;align-items:center;justify-content:flex-end;gap:0}
.app-banner .b-token{
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  margin-left:-8px;
  border:1px solid var(--color-glass-button);
  border-radius:50%;
  background:var(--color-glass-button);
  box-shadow:var(--shadow-xs);
  backdrop-filter:blur(12px);
}
.app-banner .b-token:first-child{margin-left:0}
.app-banner .b-token img{display:block;width:28px;height:28px;border-radius:50%;object-fit:contain}
.app-banner > *{position:relative;z-index:1}
.app-banner::after{
  content:"";position:absolute;z-index:0;inset:-34% -22%;
  background:var(--app-banner-sheen);
  transform:translateX(-74%);
  animation:appBannerIntro 1.05s var(--ease-out) .32s 1 both;
  pointer-events:none;
}
@keyframes appBannerIntro{
  0%{transform:translateX(-74%);opacity:0}
  24%{opacity:.08}
  100%{transform:translateX(74%);opacity:0}
}
.app-banner:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}
.app-banner:active{transform:none;filter:none}

@media (max-width:560px){
  .app-banner{
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    min-height:96px;
    padding:12px 16px 12px 18px;
  }
  .app-banner .b-offer{display:flex;flex-wrap:wrap;white-space:normal;row-gap:0}
  .app-banner .b-offer strong{font-size:18px;white-space:normal;line-height:1.25}
  html[lang="en"] .app-banner .b-offer strong{font-size:17px}
  .app-banner .b-token{width:32px;height:32px;margin-left:-9px}
  .app-banner .b-token img{width:25px;height:25px}
}

@media (max-width:400px){
  .app-banner{grid-template-columns:1fr}
  .app-banner .b-token-cluster{display:none}
}
@media (max-width:360px){
  .app-banner .b-offer strong{font-size:17px;letter-spacing:.02em}
}

@media (prefers-reduced-motion:reduce){
  .app-banner{transition:none}
  .app-banner::after{animation:none;display:none}
}

/* ---------- Segmented control ---------- */
.seg{
  display:flex;
  background:#EAF2F1;
  border-radius:var(--radius-pill);
  padding:4px;
}
.seg button{
  flex:1;
  border-radius:var(--radius-pill);
  min-height:44px;padding:9px 8px;
  font-size:1.4rem;font-weight:500;color:var(--ink2);
  transition:.15s;
}
.seg button.active{
  background:#fff;color:var(--primary-deep);
  box-shadow:var(--shadow-sm);
}

/* ---------- Lend form ---------- */
.coin-select-grid{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;
}
.coin-select-grid button{
  display:flex;flex-direction:column;align-items:center;gap:5px;
  padding:10px 2px 8px;
  border:1.5px solid var(--line2);
  border-radius:var(--r-sm);
  background:#fff;
  min-height:64px;
  font-size:var(--fs-sm);font-weight:700;
  transition:.12s;
}
.coin-select-grid button .coin-ic{width:28px;height:28px}
.coin-select-grid button.active{
  border-color:var(--primary);
  background:var(--color-soft-blue);
  color:var(--primary-deep);
}
.plan-select{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.plan-opt{
  border:1.5px solid var(--line2);
  border-radius:var(--r);
  background:#fff;
  padding:14px 12px;
  text-align:center;
  transition:.12s;
  position:relative;
}
.plan-opt .p-name{font-size:var(--fs-md);font-weight:700}
.plan-opt .p-lock{font-size:var(--fs-sm);color:var(--ink3);margin-top:2px}
.plan-opt .p-rate{font-size:2.4rem;font-weight:700;margin-top:6px;line-height:1.1}
.plan-opt .p-rate small{font-size:1.3rem;margin-left:.3em}
.plan-opt.active{
  border-color:var(--primary);
  background:var(--color-soft-blue);
}
.plan-opt.active .p-rate{color:var(--primary-deep)}
.plan-opt .p-bonus{
  position:absolute;top:-9px;left:50%;transform:translateX(-50%);
  background:var(--color-navy-800);color:var(--color-gold);
  font-size:var(--fs-xs);font-weight:700;
  border-radius:var(--radius-pill);padding:3px 10px;
  white-space:nowrap;
}
.amount-input-wrap{position:relative}
.amount-input-wrap .input{padding-right:84px;font-size:2rem;font-weight:700}
.amount-input-wrap .unit{
  position:absolute;right:16px;top:50%;transform:translateY(-50%);
  font-weight:700;color:var(--ink3);font-size:1.4rem;
}
.amount-input-wrap .input.is-error{border-color:var(--danger);background:var(--danger-soft)}
.field-note.is-error{color:var(--danger);font-weight:500}
.lending-allocation{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff}
.lending-allocation-head{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-sm);color:var(--ink2)}
.lending-allocation-head strong{font-size:var(--fs-sm);color:var(--primary-deep)}
.lending-range{--range-progress:100%;appearance:none;width:100%;height:8px;margin-top:14px;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--primary) 0 var(--range-progress),#E9ECEF var(--range-progress) 100%);outline:none}
.lending-range::-webkit-slider-thumb{appearance:none;width:24px;height:24px;border-radius:50%;background:#fff;border:6px solid var(--primary);box-shadow:0 3px 10px rgba(243,55,88,.14)}
.lending-range::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:5px solid var(--primary);box-shadow:0 3px 10px rgba(243,55,88,.14)}
.lending-range:disabled{opacity:.45}
.lending-range-labels{display:flex;justify-content:space-between;margin-top:8px;font-size:var(--fs-xs);color:var(--ink3)}
.est-card{
  background:var(--bg-mint);
  border-radius:var(--r);
  padding:16px 18px;
}
.est-card .k{font-size:var(--fs-sm);font-weight:500;color:var(--ink2)}
.est-card .v{font-size:2.4rem;font-weight:700;color:var(--primary-deep);line-height:1.3}
.est-card .s{font-size:var(--fs-sm);color:var(--ink2)}

/* ---------- Lend confirmation ---------- */
body.confirm-open{overflow:hidden}
.confirm-overlay{
  position:fixed;inset:0;z-index:220;
  display:flex;align-items:flex-end;justify-content:center;
  background:rgba(22,24,28,.58);backdrop-filter:blur(5px);
  opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease;
}
.confirm-overlay.open{opacity:1;visibility:visible}
.confirm-sheet{
  width:100%;max-height:calc(100dvh - 26px);overflow-y:auto;
  border-radius:24px 24px 0 0;background:#fff;
  padding:10px 20px calc(24px + env(safe-area-inset-bottom,0px));
  box-shadow:0 -18px 50px rgba(22,24,28,.2);
  transform:translateY(28px);transition:transform .25s cubic-bezier(.22,.8,.35,1);
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
}
.confirm-overlay.open .confirm-sheet{transform:none}
.confirm-handle{width:42px;height:4px;border-radius:var(--radius-pill);background:var(--line2);margin:0 auto 14px}
.confirm-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.confirm-step{display:block;color:var(--primary);font-size:var(--fs-sm);font-weight:700;letter-spacing:.06em;margin-bottom:2px}
.confirm-head h2{font-size:var(--fs-xl);line-height:1.45}
.confirm-head-centered{position:relative;justify-content:center;align-items:center;padding:0 44px;text-align:center}
.confirm-head-centered>div{width:100%;text-align:center}
.confirm-head-centered .confirm-close{position:absolute;right:0;top:0;transform:none}
.confirm-close{flex:0 0 44px;width:44px;height:44px;border-radius:50%;background:var(--bg-soft);font-size:2.4rem;color:var(--ink2);line-height:1}
.confirm-head h2{min-width:0}
.confirm-asset{
  display:flex;align-items:center;gap:12px;margin-top:20px;
  padding:14px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg-soft);
}
.confirm-asset div{display:flex;flex-direction:column;line-height:1.35}
.confirm-asset strong{font-size:var(--fs-lg)}
.confirm-asset div span{font-size:var(--fs-sm);color:var(--ink3)}
.confirm-plan{margin-left:auto;max-width:45%;text-align:center;padding:5px 10px;border-radius:var(--radius-pill);background:var(--primary-soft);color:var(--primary-deep);font-size:var(--fs-xs);font-weight:700}
.confirm-primary{text-align:center;padding:22px 12px 18px}
.confirm-primary > span{display:block;font-size:var(--fs-sm);color:var(--ink2)}
.confirm-primary strong{display:block;font-size:3.4rem;color:var(--primary-deep);line-height:1.2;margin-top:4px}
.confirm-primary small{display:block;margin-top:4px;color:var(--ink3);font-size:var(--fs-sm)}
.confirm-details{border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.confirm-details div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:13px 14px;border-bottom:1px solid var(--line)}
.confirm-details div:last-child{border-bottom:0}
.confirm-details dt{flex:0 0 auto;font-size:var(--fs-sm);color:var(--ink2)}
.confirm-details dd{text-align:right;font-size:var(--fs-md);font-weight:700;min-width:0;overflow-wrap:anywhere}
.confirm-rate-schedule{display:flex;flex-direction:column;gap:3px;align-items:flex-end;line-height:1.45}
.confirm-risk{display:flex;align-items:flex-start;gap:10px;margin-top:14px;padding:13px 14px;border-radius:var(--r-sm);background:var(--warn-soft);color:var(--color-warn-ink)}
.confirm-risk > span{display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin-top:1px;flex:0 0 auto;border:1.25px solid currentColor;border-radius:50%;background:transparent;color:inherit;font-size:1.2rem;font-weight:700;line-height:20px}
.confirm-risk p{font-size:var(--fs-sm);line-height:1.7}
.confirm-risk strong{display:block}
.confirm-actions{display:grid;gap:10px;margin-top:18px}
.confirm-note{text-align:center;margin-top:10px;font-size:var(--fs-sm);color:var(--ink3);line-height:1.6}

/* ---------- Lending contract detail ---------- */
.lending-card-link{display:block;color:inherit;transition:transform .15s ease,box-shadow .15s ease}
.lending-card-link:active{transform:scale(.985)}
.lending-card-cta{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-height:44px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line);color:var(--primary-deep);font-size:var(--fs-sm);font-weight:700}
.lending-card-cta b{font-size:1.8rem;line-height:1;font-weight:500}
.detail-main{width:100%;max-width:720px;margin:0 auto}

/* ---------- Withdrawal fee ---------- */
.withdraw-fee-row{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  margin-top:16px;padding-top:14px;border-top:1px solid var(--line);
  font-size:var(--fs-sm);color:var(--ink2);
}
.withdraw-fee-row strong{color:var(--ink);font-size:var(--fs-md);font-weight:500;text-align:right}
.contract-progress-head{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-sm);color:var(--ink2)}
.contract-progress-head strong{color:var(--primary-deep)}
.contract-progress{height:8px;margin-top:8px;border-radius:var(--radius-pill);background:#EDEFF1;overflow:hidden}
.contract-progress i{display:block;width:0;height:100%;border-radius:inherit;background:var(--primary-grad)}
.contract-rows{margin-top:18px}
.early-exit-card{padding:20px;border-radius:var(--r-lg);background:#fff;border:1px solid #F3D0C6;box-shadow:var(--shadow-sm)}
.early-exit-label{display:inline-flex;padding:4px 10px;border-radius:var(--radius-pill);background:var(--danger-soft);color:var(--danger);font-size:var(--fs-xs);font-weight:700}
.early-exit-card h2{margin-top:8px;font-size:1.8rem}
.early-exit-card > p{margin-top:6px;color:var(--ink2);font-size:var(--fs-sm);line-height:1.7}
.exit-estimate{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}
.exit-estimate > div{padding:12px;border-radius:var(--r-sm);background:var(--bg-soft);min-width:0}
.exit-estimate span{display:block;font-size:var(--fs-sm);color:var(--ink3)}
.exit-estimate strong{display:block;margin-top:4px;font-size:var(--fs-md);overflow-wrap:anywhere}
.danger-step{color:var(--danger)}
.cancel-warning{background:var(--danger-soft);color:var(--color-negative-ink)}
.confirm-risk .warning-triangle{width:18px;height:18px;margin-top:1px;border:0;border-radius:0;background:transparent;line-height:1}
.confirm-risk .warning-triangle svg{display:block;width:18px;height:18px}
.cancel-details{margin-top:14px}

@media (min-width:768px){
  .confirm-overlay{align-items:center;padding:28px}
  .confirm-sheet{max-width:520px;border-radius:24px;padding:22px 28px 28px;max-height:calc(100vh - 56px)}
  .confirm-handle{display:none}
  .confirm-actions{grid-template-columns:1fr 1.5fr;align-items:center}
  .confirm-actions .btn{min-height:54px}
}

/* ---------- Address / QR block ---------- */
.qr-block{
  display:flex;flex-direction:column;align-items:center;gap:14px;
  padding:22px 18px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--r);
  box-shadow:var(--shadow-sm);
}
.qr-ph{
  width:168px;height:168px;
  border-radius:var(--r-sm);
  border:1px solid var(--line);
  padding:10px;
  background:#fff;
}
.qr-ph svg{width:100%;height:100%}
.addr-box{
  width:100%;
  background:var(--bg-soft);
  border:1px dashed var(--line2);
  border-radius:var(--r-sm);
  padding:14px 16px;
  font-size:var(--fs-sm);
  line-height:1.7;
  word-break:break-all;
  text-align:center;
  color:var(--ink);
  font-family:var(--font-latin),var(--font);
}

/* ---------- Info rows (account) ---------- */
.info-list{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow-sm);
  overflow:hidden;
}
.info-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  min-height:58px;
  padding:15px 16px;
  border-bottom:1px solid var(--line);
  font-size:var(--fs-md);
}
.info-row:last-child{border-bottom:none}
.info-row .k{color:var(--ink2);font-weight:500;flex:0 0 auto}
.info-row .v{text-align:right;font-weight:500;word-break:break-all}
.info-row .v .chip{margin-left:6px}
.verification-row .v,.trailing-status-row .v{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-left:auto}
.verification-row .v .chip,.trailing-status-row .v .chip{margin-left:0}
a.info-row::after{content:"›";color:var(--ink3);font-weight:700}
a.info-row:active{background:var(--bg-soft)}
.mobile-account-links{display:block}

/* ---------- News (app) ---------- */
.news-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.news-tabs button{
  min-width:0;
  border:1.5px solid var(--line2);
  border-radius:var(--radius-pill);
  min-height:44px;padding:9px 6px;
  font-size:1.4rem;font-weight:500;color:var(--ink2);
  background:#fff;
  white-space:nowrap;
}
.news-tabs button.active{
  background:var(--primary);border-color:var(--primary);color:#fff;
}
.app-news-list{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow-sm);
  overflow:hidden;
}
.app-news-item{
  display:block;
  padding:15px 16px;
  border-bottom:1px solid var(--line);
}
.app-news-item:last-child{border-bottom:none}
.app-news-item .n-meta{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.app-news-item .n-date{order:-1;font-size:var(--fs-xs);color:var(--ink3);font-family:var(--font-latin),var(--font)}
.app-news-item .n-title{font-size:var(--fs-md);font-weight:500;line-height:1.6}
.app-news-item .n-desc{margin-top:4px;font-size:var(--fs-sm);line-height:1.65;color:var(--ink3)}

/* ---------- Invite ---------- */
.invite-hero{
  background:var(--primary-grad);
  border-radius:var(--r-lg);
  color:#fff;
  padding:28px 22px;
  text-align:center;
  box-shadow:var(--shadow);
}
.invite-hero .i-lead{font-size:var(--fs-md);font-weight:700;opacity:1}
.invite-hero .i-amount{font-size:3.6rem;font-weight:700;color:var(--accent);line-height:1.3}
.invite-hero .i-amount small{font-size:1.8rem;color:#fff}
.invite-hero .i-sub{font-size:var(--fs-sm);opacity:1;margin-top:4px}
.invite-code-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow-sm);
  padding:22px 18px;
  text-align:center;
}
.invite-code{
  font-size:3rem;font-weight:700;letter-spacing:.08em;
  color:var(--primary-deep);
  font-variant-numeric:tabular-nums;
}
.invite-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.invite-btns .btn{min-height:48px;padding:13px 8px;font-size:1.4rem;font-weight:700;white-space:nowrap}

/* ---------- Auto-lend switch ---------- */
.switch-row{display:flex;align-items:center;justify-content:space-between;gap:14px}
.switch-title{font-size:var(--fs-md);font-weight:700}
.switch{
  position:relative;flex:0 0 auto;
  width:52px;height:30px;border-radius:var(--radius-pill);
  background:var(--line2);transition:background .2s;
}
.switch span{
  position:absolute;top:3px;left:3px;
  width:24px;height:24px;border-radius:50%;
  background:#fff;box-shadow:var(--shadow-sm);
  transition:left .2s;
}
.switch.on{background:var(--success)}
.switch.on span{left:25px}
.seg button[disabled]{opacity:.4;pointer-events:none}

/* ---------- Deposit flow steps ---------- */
.flow-steps{display:flex;flex-direction:column}
.fstep{display:flex;gap:12px;padding:10px 0;position:relative;opacity:.5;transition:opacity .3s}
.fstep + .fstep::before{
  content:"";position:absolute;left:11px;top:-13px;
  height:24px;width:2px;background:var(--line2);
}
.fdot{
  flex:0 0 auto;width:24px;height:24px;border-radius:50%;
  border:2px solid var(--line2);background:#fff;
  margin-top:2px;position:relative;
}
.fstep .ft{font-size:var(--fs-md);font-weight:700}
.fstep .fs{font-size:var(--fs-sm);color:var(--ink2)}
.fstep.active{opacity:1}
.fstep.active .fdot{border-color:var(--primary)}
.fstep.active .fdot::after{
  content:"";position:absolute;inset:4px;border-radius:50%;
  background:var(--primary);
  animation:fpulse 1.2s ease infinite;
}
.fstep.done{opacity:1}
.fstep.done .fdot{border-color:var(--success);background:var(--success)}
.fstep.done .fdot::after{
  content:"✓";position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1.2rem;font-weight:700;
}
@keyframes fpulse{0%,100%{transform:scale(.65);opacity:1}50%{transform:scale(1);opacity:.45}}
@media (prefers-reduced-motion:reduce){
  .fstep.active .fdot::after{animation:none}
}

/* ---------- Login-page tweak ---------- */
body.app.auth{padding-bottom:0}

/* ============================================================
   Desktop (>=1024px): sidebar layout
   ============================================================ */
@media (min-width:1024px){
  body.app{padding-bottom:0}
  .tabbar{display:none}
  .app-bar{display:none}
  .app-layout{
    max-width:1200px;
    display:grid;
    grid-template-columns:260px minmax(0,1fr);
    gap:0;
    min-height:100vh;
  }
  .app-sidebar{
    display:flex;flex-direction:column;
    background:#fff;
    border-right:1px solid var(--line);
    padding:24px 16px;
    position:sticky;top:0;height:100vh;
    overflow-y:auto;
  }
  .sb-brand{padding:4px 10px 20px;display:flex;align-items:center;gap:8px}
  .sb-brand .bi{width:22px;height:22px;flex:0 0 auto}
  .sb-brand .bw{height:11px;width:auto;display:block}
  .sb-brand .bs{font-size:1.4rem;font-weight:700;color:var(--primary-deep);letter-spacing:.02em}
  .sb-group{margin-top:14px}
  .sb-group-label{
    font-size:var(--fs-xs);font-weight:700;color:var(--ink3);
    letter-spacing:.06em;
    padding:0 10px 6px;
  }
  .sb-link{
    display:flex;align-items:center;gap:10px;
    padding:10px 10px;
    min-height:44px;
    border-radius:var(--radius-card);
    font-size:1.4rem;font-weight:500;color:var(--ink2);
  }
  .sb-link svg{width:20px;height:20px;flex:0 0 auto}
  .sb-link.active{background:var(--primary-soft);color:var(--primary-deep)}
  .sb-foot{margin-top:auto;padding:16px 10px 4px;font-size:var(--fs-xs);color:var(--ink3);font-family:var(--font-latin),var(--font)}
  .app-main{
    padding:36px 40px 64px;
    gap:20px;
  }
  .app-main > .page-title{
    font-size:2.2rem;font-weight:700;letter-spacing:.01em;line-height:1.35;
  }
  .quick-actions{width:100%;max-width:none}
  .qa{min-height:116px;justify-content:center}
  .mobile-account-links{display:none}
  .lending-summary-row .ci-val{max-width:none}
  .app-layout.detail-layout{display:block;max-width:960px}
  .detail-layout .app-main{width:100%;max-width:720px;margin:0 auto}
}

/* page title hidden on mobile (app-bar shows it) */
.page-title{display:none}
@media (min-width:1024px){
  .page-title{display:block}
}

/* ============================================================
   2026 visual system — existing application structure preserved
   ============================================================ */
body.app{background:var(--color-paper-2);color:var(--color-ink)}
.app-bar{height:68px;background:rgba(255,255,255,.97);backdrop-filter:saturate(150%) blur(12px)}
.app-bar-title{color:var(--primary-deep);letter-spacing:.02em}
.app-main{padding:20px 16px 40px;gap:20px}
.tabbar{height:calc(66px + env(safe-area-inset-bottom,0px));background:rgba(255,255,255,.98)}
.tabbar a{font-weight:500}.tabbar a.active{color:var(--primary)}
.tabbar a.active::after{content:"";position:absolute;top:0;left:calc(50% - 12px);width:24px;height:2px;background:var(--primary)}
.asof{font-family:var(--font-latin),var(--font);color:var(--ink3)}

.balance-card{background:#fff;color:var(--ink);border:1px solid var(--line2);border-radius:var(--radius-app-control);box-shadow:none;padding:24px 20px}
.balance-card .bc-sub{font-weight:500;color:var(--success);margin-top:10px}.balance-card .trend-rate{color:var(--success);font-weight:500}
.balance-card .trend-label{color:var(--ink3);opacity:1}
.balance-split{margin-top:20px;background:var(--color-paper-2);border:1px solid var(--line);border-radius:var(--radius-chip);color:var(--ink)}
.balance-split a{padding:14px 16px}.balance-split a+a{border-left-color:var(--line)}
.balance-split .k{color:var(--ink3);opacity:1}.balance-split .v{font-family:var(--font-latin),var(--font);font-weight:600;color:var(--primary-deep)}

.quick-actions{gap:8px}
.qa{border-radius:var(--radius-card);box-shadow:none;padding:16px 6px 14px;background:#fff}
.qa .qa-ic{width:40px;height:40px;border-radius:var(--radius-chip);background:var(--color-paper-3);color:var(--primary)}
.app-h2{color:var(--primary-deep);letter-spacing:.01em}
.app-h2 .more{font-weight:500}

.coin-list,.hist-list,.info-list,.app-news-list{border-radius:var(--radius-card);box-shadow:none}
.coin-list .coin-row:first-child{border-radius:10px 10px 0 0}.coin-list .coin-row:last-child{border-radius:0 0 10px 10px}
.coin-row{padding:16px;background:#fff}
.coin-row .ci-name .sym{font-weight:700}.coin-row .ci-val .jpy{font-family:var(--font-latin),var(--font);font-weight:600}
.coin-row .ci-val .plus{font-weight:500;color:var(--ink2);font-family:var(--font-latin),var(--font)}

.stat-tabs{gap:8px}
.stat-tile{border-radius:var(--radius-chip);box-shadow:none;text-align:left;padding:16px 14px}
.stat-tile .v{font-family:var(--font-latin),var(--font);font-weight:600;color:var(--primary-deep)}
.hist-row{padding:14px 16px;gap:5px}
.hist-row .h-date{font-family:var(--font-latin),var(--font)}
.hist-row .h-amt{color:var(--ink)}
.hist-row .h-type{font-weight:500}.hist-row .h-amt{font-family:var(--font-latin),var(--font);font-weight:600}
.history-load-more{border-radius:var(--radius-input);font-weight:500}

.app-banner:not(.app-banner-premium){background:var(--primary-grad);border-radius:var(--radius-card);box-shadow:none}
.app-banner:not(.app-banner-premium) .b-tag{border-radius:3px;background:var(--color-yellow);color:var(--ink)}
.seg{background:var(--color-paper-3);border-radius:var(--radius-chip);padding:3px}
.seg button{border-radius:var(--radius-input)}.seg button.active{box-shadow:none;border:1px solid var(--line2)}
.news-tabs button{border-radius:var(--radius-input)}.news-tabs button.active{background:var(--primary)}

.card{border-radius:var(--radius-card);box-shadow:none}
.plan-opt{border-radius:var(--radius-chip)}.plan-opt .p-rate{font-family:var(--font-latin),var(--font);font-weight:600}
.plan-opt .p-bonus{border-radius:3px}
.coin-select-grid button{border-radius:var(--radius-input)}
.lending-allocation{border-radius:var(--radius-chip);background:#FAFAFB}
.lending-range{border-radius:4px}.lending-range::-webkit-slider-thumb{box-shadow:none}.lending-range::-moz-range-thumb{box-shadow:none}
.est-card{border:1px solid var(--line);border-radius:var(--radius-chip);background:var(--color-paper-2)}
.est-card .v{font-family:var(--font-latin),var(--font);font-weight:600}

@media (max-width:767px){.confirm-sheet{border-radius:18px 18px 0 0;box-shadow:0 -12px 40px rgba(31,35,40,.16)}}
.confirm-close{border-radius:var(--radius-input)}.confirm-asset{border-radius:var(--radius-chip)}.confirm-plan{border-radius:4px}
.confirm-primary strong{font-family:var(--font-latin),var(--font);font-weight:600}
.confirm-details{border-radius:var(--radius-chip)}.confirm-risk{border-radius:var(--radius-input)}
.contract-progress{border-radius:4px}.contract-progress i{border-radius:4px;background:var(--primary)}
.early-exit-card{border-radius:var(--radius-card);box-shadow:none}.early-exit-label{border-radius:3px}

.note{border-radius:var(--radius-input)}
.info-row{padding:16px}.verification-row .chip,.trailing-status-row .chip{min-width:62px;justify-content:center}
.chip{border-radius:3px;font-weight:500}
.invite-hero{background:var(--primary-grad);border-radius:var(--radius-app-control);box-shadow:none}
.invite-hero .i-amount,.invite-code{font-family:var(--font-latin),var(--font);font-weight:600}
.invite-code-card{border-radius:var(--radius-card);box-shadow:none}
.switch span{box-shadow:none}
.addr-box,.qr-ph{border-radius:var(--radius-input)}

@media (min-width:1024px){
  .app-layout{max-width:1240px;grid-template-columns:240px minmax(0,1fr)}
  .app-sidebar{padding:28px 16px;background:#fff}
  .sb-brand{padding:6px 10px 24px;border-bottom:1px solid var(--line)}
  .sb-brand .bw{height:12px}
  .sb-brand .bs{font-size:1.5rem}
  .sb-link{border-radius:var(--radius-input);padding:11px 10px}
  .sb-link.active{background:var(--color-paper-3);color:var(--primary-deep);box-shadow:inset 3px 0 0 var(--primary)}
  .app-main{padding:48px 48px 72px;gap:24px}
  .app-main>.page-title{font-size:2.2rem;color:var(--primary-deep);letter-spacing:.01em}
  .qa{min-height:108px}
}

@media (max-width:374px){
  .app-main{padding-left:12px;padding-right:12px}
  .balance-card{padding:20px 16px}
  .balance-split a{padding:12px 10px}
  .balance-split .v{font-size:1.5rem}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.12s!important}
}

/* ============================================================
   Soft financial layer — structure and routes remain unchanged
   ============================================================ */
body.app{background:linear-gradient(180deg,#FBFBFC 0%,#F8F8F9 46%,#F9FAFB 100%)}
.app-bar{background:rgba(253,253,254,.9);border-bottom-color:#ECEEF1;box-shadow:var(--shadow-nav)}
.app-bar-title{font-size:1.9rem}   /* モバイルのページ見出し（design-rules の h1 に寄せる） */
.app-bar .help svg{width:20px;height:20px}
.app-main{gap:22px}
.tabbar{background:rgba(255,255,255,.94);backdrop-filter:blur(18px);border-top-color:#EAECEF;box-shadow:0 -8px 26px rgba(58,65,75,.055)}
.tabbar a svg{width:24px;height:24px}
.tabbar a.active::after{height:3px;border-radius:0 0 4px 4px}

.card,.coin-list,.hist-list,.info-list,.app-news-list,.stat-tile,.qa,.qr-block,.invite-code-card{
  border-color:#E6E9ED;
  border-radius:var(--radius-app-card);
  background:rgba(255,255,255,.94);
  box-shadow:var(--shadow-soft);
}
.coin-list,.hist-list,.info-list,.app-news-list{overflow:hidden}
.coin-list .coin-row:first-child{border-radius:18px 18px 0 0}
.coin-list .coin-row:last-child{border-radius:0 0 18px 18px}
.coin-row{background:rgba(255,255,255,.92);border-bottom-color:#EDEFF2}
.coin-row:active,a.info-row:active{background:#F8F8F9}
.app-h2{font-size:1.8rem;display:flex;align-items:center;min-height:28px}
.app-h2 .more{margin-left:auto;margin-right:0;min-height:44px;padding:4px 8px;font-size:var(--fs-sm);line-height:1.35}
.asof{font-size:var(--fs-sm)}

.balance-card{position:relative;border-color:#E4E7EB;border-radius:var(--radius-hero);padding:24px 20px 42px;background:linear-gradient(145deg,#FFFFFF 0%,#FAFBFC 100%);box-shadow:var(--shadow-float)}
.balance-card .bc-sub{display:flex;align-items:center;gap:6px;margin-top:10px;line-height:1.2;font-weight:400}
.balance-card .trend-label,.balance-card .bc-sub>strong,.balance-card .trend-rate{display:flex;align-items:center;min-height:20px;line-height:20px}
.balance-card .trend-label{font-size:var(--fs-sm);color:var(--ink2)}
.balance-card .bc-sub>strong{font-size:1.5rem;font-weight:500}
.balance-card .trend-rate{font-size:var(--fs-sm);font-weight:400}
.balance-split{margin-top:20px;border-radius:var(--radius-panel);background:#F8F8F9;border-color:#E6E9ED}
.balance-split a{padding:14px 15px}
.balance-rate-note{position:absolute;right:18px;bottom:13px;margin:0;color:var(--ink3);font-size:var(--fs-xs);line-height:1.45;text-align:right}

.quick-actions{gap:10px}
.qa{border-radius:var(--radius-app-card);padding:17px 6px 15px;box-shadow:0 6px 20px rgba(58,65,75,.065)}
.qa .qa-ic{width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#F9FAFB,#FEEEF1)}
.app-banner:not(.app-banner-premium){border-radius:var(--radius-app-card);box-shadow:0 10px 28px rgba(66,72,82,.07)}
.app-banner:not(.app-banner-premium) .b-tag{border-radius:7px}

.stat-tabs{gap:10px}
.stat-tile{border-radius:16px;padding:16px 14px}
.stat-tile .k{font-size:var(--fs-sm)}

.history-load-more{width:auto;min-height:44px;margin:10px auto 0;padding:0 18px;border:0;border-radius:0;background:transparent;box-shadow:none;font-weight:500;color:var(--primary)}

.note{border-radius:var(--radius-panel);padding:12px 15px 12px 42px;font-size:var(--fs-sm);line-height:1.7}
.note::before{left:14px;top:13px;width:18px;height:18px;border-width:1.25px;font-size:1.2rem}
.note-info{background:var(--color-paper-3);color:var(--color-ink-2)}
.note-warn{background:var(--warn-soft)}
.note-danger{background:var(--danger-soft)}
.app-bar-side.help{color:var(--ink3)}.app-bar-side.help svg{width:20px;height:20px}

.info-list{border-radius:var(--radius-app-card)}
.info-row{min-height:58px;padding:15px 16px;align-items:center}
.info-row .k,.info-row .v{display:flex;align-items:center;min-height:22px;line-height:1.5}
.verification-row .chip,.trailing-status-row .chip{min-width:58px;border-radius:var(--radius-card)}
.chip{border-radius:var(--radius-chip);padding:4px 10px;font-size:var(--fs-xs)}


.btn{border-radius:var(--radius-app-control)}
.input,.select{border-radius:var(--radius-panel)}
.btn-outline{background:rgba(255,255,255,.9)}
.seg{border-radius:var(--radius-panel);padding:4px}.seg button{border-radius:11px}
.news-tabs button{border-radius:var(--radius-app-control)}
.plan-opt,.coin-select-grid button,.lending-allocation,.est-card{border-radius:var(--radius-panel)}
.plan-opt,.coin-select-grid button{box-shadow:var(--shadow-xs)}
.coin-select-grid button,.plan-opt{background:#FFFFFF;border-color:var(--line2)}
.coin-select-grid button.active,.plan-opt.active{border-color:var(--primary);background:var(--color-soft-blue);box-shadow:var(--shadow-focus)}
.coin-select-grid button{position:relative}
.lending-allocation{background:#FFFFFF;border-color:var(--line2);box-shadow:none}
.amount-input-wrap .input{background:#FFFFFF;border-color:var(--line2)}
.amount-input-wrap .input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(243,55,88,.12)}
.amount-input-wrap .input.is-error:focus{border-color:var(--danger);box-shadow:0 0 0 3px rgba(217,72,43,.16)}
.est-card{background:var(--color-soft-blue);border:1px solid var(--line)}
@media (max-width:767px){.confirm-sheet{border-radius:26px 26px 0 0;box-shadow:0 -18px 50px rgba(58,65,75,.16)}}
@media (min-width:768px){.confirm-sheet{border-radius:24px;box-shadow:0 26px 64px rgba(41,46,53,.22)}}
.confirm-close,.confirm-asset,.confirm-details,.confirm-risk{border-radius:var(--radius-panel)}
.contract-progress{height:7px;border-radius:var(--radius-chip)}.contract-progress i{border-radius:var(--radius-chip)}
.early-exit-card{border-radius:var(--radius-app-card);box-shadow:0 8px 24px rgba(217,72,43,.06)}
.early-exit-label{border-radius:9px}
.exit-estimate>div{border-radius:var(--radius-panel)}
.interest-growth-card{padding:18px 16px 14px}
.valuation-summary{position:relative;padding-bottom:40px}
.valuation-summary{padding-bottom:0}
.valuation-rate-note{position:static;margin:10px 0 0;color:var(--ink3);font-size:var(--fs-xs);line-height:1.5;text-align:left}
.interest-growth-chart{width:100%;height:auto;overflow:visible}
.chart-grid path{stroke:#EAECEF;stroke-width:1;fill:none}
.interest-yen-area{fill:rgba(243,55,88,.08)}
.interest-yen-line{fill:none;stroke:var(--color-accent);stroke-width:4;stroke-linecap:round}
.interest-points circle{fill:var(--primary);stroke:var(--primary);stroke-width:3}
.interest-labels text{fill:var(--color-muted);text-anchor:middle;font-size:18px;font-family:var(--font-latin),var(--font)}



@media (min-width:1024px){
  .app-layout{grid-template-columns:248px minmax(0,1fr)}
  .app-sidebar{background:rgba(255,255,255,.92);border-right:1px solid #EAEDF0;box-shadow:10px 0 32px rgba(58,65,75,.035)}
  .sb-link{border-radius:var(--radius-app-control)}
  .sb-link.active{background:var(--color-soft-blue);box-shadow:none}
  .app-main{padding:48px 52px 76px}
  .balance-card{padding:28px 26px 46px}
  .balance-rate-note{right:24px;bottom:14px}
}

@media (max-width:374px){
  .balance-card .bc-sub{column-gap:5px}
}

/* Processing states and app-wide rhythm */
.coin-plan{margin-top:2px;font-size:var(--fs-sm);line-height:1.4;color:var(--ink3)}
.processing-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;margin-bottom:12px;padding:16px;border:1px solid var(--line2);border-radius:16px;background:var(--color-paper-2);color:inherit;box-shadow:var(--shadow-soft)}
.processing-pulse{width:10px;height:10px;margin-right:4px;border-radius:50%;background:var(--warn);box-shadow:0 0 0 5px var(--warn-soft)}
.processing-copy{display:flex;flex-direction:column;min-width:0}
.processing-copy strong{font-size:var(--fs-md)}
.processing-copy small{margin-top:2px;color:var(--ink3);font-size:var(--fs-sm);line-height:1.45}
.processing-amount{display:flex;flex-direction:column;align-items:flex-end;font-family:var(--font-latin),var(--font);font-size:var(--fs-md);font-weight:600;white-space:nowrap}
.processing-amount small{margin-top:2px;color:var(--color-warn-ink);font-size:var(--fs-xs);font-weight:500}
.processing-card .chev{color:var(--ink3);font-size:1.7rem}
.status-asset-card{padding:24px;border:1px solid var(--line);border-radius:var(--radius-hero);background:#fff;box-shadow:var(--shadow-soft)}
.status-asset-head{display:flex;align-items:center;gap:12px}
.status-asset-head>div{display:flex;flex-direction:column}.status-asset-head strong{font-size:1.7rem}.status-asset-head div span{color:var(--ink3);font-size:var(--fs-sm)}
.status-chip{margin-left:auto;padding:4px 10px;border-radius:var(--radius-chip);font-size:var(--fs-xs);font-weight:700}.status-chip.is-processing{background:var(--warn-soft);color:var(--color-warn-ink)}
.status-chip.is-active{background:var(--success-soft);color:var(--success)}
.status-amount{display:grid;grid-template-columns:1fr auto;align-items:end;margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-panel);background:#FFF}
.status-amount>span{grid-column:1/-1;color:var(--ink3);font-size:var(--fs-sm)}.status-amount strong{font-family:var(--font-latin),var(--font);font-size:2.8rem;line-height:1.15;color:var(--primary-deep)}.status-amount small{padding-bottom:4px;color:var(--ink2);font-size:var(--fs-sm)}
.status-meta{margin-top:16px}.status-meta>div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;color:var(--ink2);font-size:var(--fs-sm)}.status-meta dd{min-width:0;text-align:right;color:var(--ink);font-size:var(--fs-md)}
.status-meta .transaction-row{align-items:flex-start}.transaction-row dt{white-space:nowrap}.transaction-id{max-width:68%;overflow-wrap:anywhere;word-break:break-all;font-size:var(--fs-sm);line-height:1.5}
.status-progress-card{padding-bottom:12px}.status-timeline{margin-top:16px}.status-step{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:12px;min-height:84px}.status-step:last-child{min-height:44px}.status-step>span{position:relative;z-index:1;width:14px;height:14px;margin-top:4px;border:3px solid var(--line);border-radius:50%;background:#FFF}.status-step:not(:last-child)::before{content:"";position:absolute;left:6px;top:20px;bottom:-4px;width:2px;background:var(--line)}.status-step.is-done>span{border-color:var(--success);background:var(--success)}.status-step.is-current>span{border-color:var(--primary);background:var(--primary)}.status-step>div{display:flex;flex-direction:column}.status-step strong{font-size:var(--fs-md)}.status-step small{margin-top:4px;color:var(--ink3);font-size:var(--fs-sm)}.status-step time{color:var(--ink3);font-size:var(--fs-xs);font-family:var(--font-latin),var(--font)}.status-step.is-current time{color:var(--primary);font-family:var(--font-latin),var(--font);font-weight:600}.status-confirmations{display:flex;gap:4px;margin-top:8px}.status-confirmations i{width:32px;height:4px;border-radius:4px;background:var(--line)}.status-confirmations i:first-child{background:var(--primary)}
.contract-overview{margin-bottom:0}
.est-values{display:flex;align-items:baseline;justify-content:space-between;gap:16px;min-width:0}
.est-values .v{min-width:0;overflow-wrap:anywhere}
.est-values .s{margin-left:auto;flex:0 0 auto;text-align:right;font-size:var(--fs-sm)}
.est-values .v{font-family:var(--font-latin),var(--font)}
.switch-row{align-items:flex-start;min-height:58px}.switch-row>div{min-width:0}.switch-row .small{min-height:38px}
#planSeg{min-height:46px}
#autoPlanLabel{display:block;height:44px;overflow:hidden}
.confirm-actions{grid-template-columns:1fr!important}.confirm-actions .btn-primary,.confirm-actions .btn-danger{order:1}.confirm-actions .btn-ghost{order:2}
.chip-success{background:var(--success-soft);color:var(--success)}

/* August 2026 refinement: quiet metadata, interactive valuation chart, and completion feedback */
.page-asof-bottom{
  width:100%;
  margin:34px 0 0;
  color:var(--ink3);
  font-size:var(--fs-xs);
  line-height:1.5;
  text-align:center;
}

.interest-growth-card{position:relative;overflow:visible}
.interest-point{cursor:pointer;transform-origin:center;transition:r var(--dur-short) var(--ease-out),fill var(--dur-short) var(--ease-out),stroke var(--dur-short) var(--ease-out)}
.interest-point:focus,.interest-point.active{r:9;fill:var(--color-paper);stroke:var(--primary);stroke-width:5;outline:none}
.interest-chart-tooltip{
  position:absolute;
  z-index:2;
  min-width:112px;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--color-glass-tooltip);
  box-shadow:var(--shadow-soft);
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,calc(-100% - 16px)) scale(.96);
  transform-origin:bottom center;
  transition:opacity var(--dur-short) var(--ease-out),transform var(--dur-short) var(--ease-out);
  text-align:center;
}
.interest-chart-tooltip.show{opacity:1;transform:translate(-50%,calc(-100% - 16px)) scale(1)}
.interest-chart-tooltip span{display:block;color:var(--ink3);font-size:var(--fs-xs);line-height:1.3}
.interest-chart-tooltip strong{display:block;margin-top:2px;color:var(--primary-deep);font-size:1.4rem;line-height:1.35}
/* SVG(viewBox 640) 内の文字: 390px 幅では 0.56 倍、PC では約 1.3 倍に描画される */
.interest-labels text{font-size:22px}


.invitee-list{border:1px solid var(--line);border-radius:var(--radius-app-card);background:var(--card);box-shadow:var(--shadow-soft);overflow:hidden}
.invitee-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 16px;border-bottom:1px solid var(--line)}
.invitee-row:last-child{border-bottom:0}
.invitee-row>div{display:flex;flex-direction:column;min-width:0}
.invitee-row strong{overflow:hidden;color:var(--ink);font-size:var(--fs-md);font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.invitee-row time{margin-top:3px;color:var(--ink3);font-family:var(--font-latin),var(--font);font-size:var(--fs-xs);line-height:1.4}
.invitee-status{flex:0 0 auto;padding:4px 10px;border-radius:var(--radius-chip);font-size:var(--fs-xs);font-weight:700;white-space:nowrap}
.invitee-status.is-complete{background:var(--success-soft);color:var(--success)}
.invitee-status.is-waiting{background:var(--warn-soft);color:var(--color-warn-ink)}

.withdraw-balance-values{align-items:flex-end}
.withdraw-balance-values>div:first-child{min-width:0}
.withdraw-balance-values .v{margin-top:2px;font-size:2.4rem}
.withdraw-balance-values .s{padding-bottom:3px;font-size:var(--fs-sm);color:var(--ink2)}
.switch-row{align-items:center;min-height:0}
.switch-row>div{display:flex;align-items:center}

.confirm-sheet{position:relative;overflow-x:hidden;overflow-y:auto}
/* 送信中〜完了の表示は base.css の .submit-state（＋シート内は .sheet-panel の切替）に一本化した。
   旧 .lend-submit-* / .confirm-sheet.is-submitting の visibility レイヤーは未使用のため削除（2026-09-16 統合）。 */

@media (min-width:768px){
  .page-asof-bottom{margin-top:44px}
  .interest-labels text{font-size:12px}
  .invitee-row{padding:17px 18px}
}

@media (prefers-reduced-motion:reduce){
  .interest-point,.interest-chart-tooltip{transition:none}
}

/* August 2026 refinement: centered financial hierarchy and resilient figures */
.balance-card{text-align:center}
.balance-card .bc-sub{
  justify-content:center;
  flex-wrap:nowrap;
  gap:4px;
  min-width:0;
}
.balance-card .trend-figures{
  display:inline-flex;
  align-items:center;
  gap:1px;
  min-width:0;
  white-space:nowrap;
}
.balance-card .trend-figures>strong{
  display:flex;
  align-items:center;
  min-height:20px;
  font-size:1.5rem;
  line-height:20px;
  font-weight:500;
}
.balance-card .trend-rate{margin-left:0}
.balance-rate-note{
  left:18px;
  right:18px;
  text-align:center;
}
.page-asof-bottom{
  align-self:center;
  margin-top:-8px;
  text-align:center;
}
.est-card>.k{margin-bottom:10px}
.est-values{gap:12px}
.est-values .v,
.est-values .s{
  overflow-wrap:normal;
  white-space:nowrap;
}
#bonusCalcNote{
  margin-top:7px;
  font-size:var(--fs-sm);
  line-height:1.5;
  color:var(--ink3);
}
.num{font-variant-numeric:tabular-nums}
.sim-value .v,
.processing-amount,
.ci-val .jpy,
.ci-val .qty,
.status-amount strong,
.status-amount small{
  white-space:nowrap;
}

@media (min-width:768px){
  .page-asof-bottom{margin-top:-8px}
}

@media (min-width:1024px){
  .balance-rate-note{left:24px;right:24px}
}

@media (max-width:374px){
  .balance-card .bc-sub{gap:3px}
  .est-values .v{font-size:2.15rem}
}

/* August 2026 refinement: shared wallet-style asset summaries */
.home-balance-card{
  position:relative;
  padding-bottom:62px;
}
.asset-summary .sim-value{margin-top:6px;line-height:1.15}
.asset-summary .sim-value .v{
  display:inline-block;
  max-width:100%;
  overflow:hidden;
  color:var(--primary-deep);
  font-size:clamp(3.4rem,9vw,4.4rem);
  font-weight:700;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.home-balance-summary .sim-value .v{
  transform-origin:center;
  animation:homeTotalAssetIntro .52s var(--ease-out) .12s 1 both;
}
@keyframes homeTotalAssetIntro{
  0%,100%{transform:scale(1)}
  52%{transform:scale(1.025)}
}
.home-balance-summary .bc-sub{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-width:0;
  margin-top:10px;
  color:var(--ink2);
  font-size:var(--fs-sm);
  line-height:20px;
}
.home-balance-summary .trend-label{color:var(--ink2)}
.home-balance-summary .trend-figures{display:inline-flex;align-items:center;gap:1px;min-width:0;white-space:nowrap}

.home-balance-summary .trend-rate{font-size:var(--fs-sm);font-weight:400}
.home-balance-card .balance-split{text-align:left}
.home-balance-card .balance-split .v{font-size:var(--fs-lg);line-height:1.35}
.home-balance-summary .trend-figures>strong{font-size:1.5rem;font-weight:500}
.home-balance-card .balance-rate-note{
  left:auto;
  right:18px;
  bottom:18px;
  text-align:right;
}
.page-asof-bottom{margin-top:2px}

@media (prefers-reduced-motion:reduce){
  .home-balance-summary .sim-value .v{animation:none;transform:none}
}

@media (min-width:768px){
  .page-asof-bottom{margin-top:2px}
}

@media (min-width:1024px){
  .home-balance-card .balance-rate-note{right:24px}
}

.field-error{margin-top:7px;color:var(--danger)!important;font-weight:500}
.interest-yen-line{stroke-linecap:butt;stroke-linejoin:round}

/* Hallmark · design-system: design.md · refinement: link rhythm / stable plan motion / validated forms
 * pre-emit critique: P5 H5 E5 S5 R5 V5
 */
.app-h2 .more{
  display:inline-flex;
  align-items:center;
  gap:10px;
  white-space:nowrap;
}
.app-h2 .more>span{font-size:1.25em;line-height:1}
.app-h2 .more{min-height:44px}
.home-balance-summary .bc-sub{gap:10px}

.plan-seg{
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  min-height:52px!important;
  overflow:hidden;
}
.plan-seg::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset-block:4px;
  inset-inline-start:4px;
  width:calc((100% - 8px)/2);
  border:1px solid var(--line2);
  border-radius:11px;
  background:var(--card);
  box-shadow:var(--shadow-sm);
  transform:translateX(0);
  transition:transform 300ms var(--ease-out);
}
.plan-seg.is-premium::before{transform:translateX(100%)}
.plan-seg button,
.plan-seg button.active{
  position:relative;
  z-index:1;
  min-width:0;
  min-height:44px;
  border:0;
  background:transparent;
  box-shadow:none;
  color:var(--ink2);
  white-space:nowrap;
  transition:color var(--dur-short) var(--ease-out),opacity var(--dur-short) var(--ease-out),transform 100ms var(--ease-out);
}
.plan-seg button.active{color:var(--primary-deep)}
.plan-seg button:active{transform:translateY(1px)}
.plan-seg:has(button:disabled)::before{opacity:.45}

.input.is-error{border-color:var(--danger);background:var(--danger-soft)}
.input.is-success{border-color:var(--success);background:var(--success-soft)}
.address-status{min-height:1.5em}
.field-success{margin-top:7px;color:var(--success)!important;font-weight:500}

.invite-access{display:grid;gap:24px}
.invite-access[hidden],.invite-locked[hidden]{display:none!important}
.invite-locked{text-align:center}
.invite-locked-mark{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  margin:0 auto 12px;
  border-radius:var(--radius-panel);
  background:var(--primary-soft);
  color:var(--primary-deep);
  font-size:1.6rem;
}
.invite-locked h2{font-size:1.8rem;color:var(--primary-deep)}
.invite-locked p{margin:8px auto 18px;max-width:34ch;color:var(--ink2);line-height:1.7}

.settings-page{width:100%;max-width:760px;margin-inline:auto}
.settings-section{margin:0}
.settings-card{display:grid;gap:16px;padding:20px;border-radius:var(--radius-app-card);overflow:hidden}
.settings-card-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.settings-card-head>div{min-width:0}
.settings-card-head h2{color:var(--primary-deep);font-size:1.8rem;font-weight:700;line-height:1.4;letter-spacing:.01em}
.settings-card-head p{margin-top:3px;color:var(--ink3);font-size:var(--fs-sm);line-height:1.6}
.settings-card-icon{display:grid;place-items:center;flex:0 0 auto;width:40px;height:40px;border-radius:var(--radius-app-control);background:var(--primary-soft);color:var(--primary-deep)}
.settings-card-icon svg{width:20px;height:20px}
.settings-form{gap:16px}
.settings-form .field{margin:0}
.settings-current{display:grid;gap:4px;padding:13px 14px;border:1px solid var(--line);border-radius:var(--radius-app-control);background:var(--bg-soft);color:var(--ink3)}
.settings-current span{font-size:var(--fs-sm);line-height:1.4}
.settings-current strong{min-width:0;overflow-wrap:anywhere;color:var(--ink);font-size:var(--fs-md);font-weight:500;line-height:1.5;text-align:left}
.settings-input-field{display:grid;gap:7px}
.settings-input-field .field-label{margin:0}
.settings-password-grid{display:grid;gap:12px}
.settings-password-grid .field{display:grid;gap:7px}
.settings-password-grid .field-label{margin:0;white-space:nowrap}
.settings-card .input{min-height:52px;padding-block:12px;background:var(--color-soft-surface);border-width:1px;outline:2px solid transparent;outline-offset:1px}
.settings-card .input:focus{border-width:1px;outline:2px solid var(--color-focus);outline-offset:1px}
.settings-card .input.is-error:focus{outline-color:var(--danger)}
.settings-card .input.is-success:focus{outline-color:var(--success)}
.settings-submit{min-height:52px;padding-block:0;font-size:1.6rem}
.settings-feedback{min-height:0;margin:0;color:var(--ink2);font-size:var(--fs-sm);line-height:1.55}
.settings-feedback:empty{display:none}
.settings-feedback.is-error{color:var(--danger)}
.settings-feedback.is-success{color:var(--success)}
.email-verification-step{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--bg-soft)}
.email-verification-step p{color:var(--ink2);font-size:var(--fs-sm);line-height:1.6}
.email-verification-step .btn{min-height:48px;padding:0 16px;font-size:1.4rem}
.email-verification-step[hidden]{display:none}

@media (min-width:640px){
  .settings-card{padding:24px}
  .settings-current{grid-template-columns:minmax(150px,.7fr) minmax(0,1.3fr);align-items:center;gap:20px;padding:14px 16px}
  .settings-current strong{text-align:right}
  .settings-password-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
  .settings-current-password{grid-column:1/-1}
}

@media (prefers-reduced-motion:reduce){
  .plan-seg::before{transition:opacity 150ms linear}
  .plan-seg.is-base::before{inset-inline-start:4px;transform:none}
  .plan-seg.is-premium::before{inset-inline-start:50%;transform:none}
}


/* Official RISE logo — exact artwork supplied by the brand owner */
.sb-brand .rise-logo{
  display:block;
  width:auto;
  height:42px;
  max-width:162px;
  object-fit:contain;
}


/* Hallmark · component: persistent brand link · genre: modern-minimal · design-system: design.md
 * states: default · hover · focus · active · disabled · loading · error · success
 * contrast: pass · mobile: pass (320 / 375 / 414 / 768)
 */
.app-bar{
  padding-inline:20px;
}
.app-bar-left{
  display:flex;
  align-items:center;
  min-width:28px;
  height:44px;
}
.app-bar-brand{
  width:28px;
  height:44px;
  flex:0 0 28px;
  overflow:hidden;
  display:block;
  background-image:url("../brand/rise-icon.svg");
  background-repeat:no-repeat;
  background-size:auto 26px;
  background-position:left center;
  border-radius:0;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  box-shadow:none;
  filter:none;
  transition:opacity var(--dur-micro) var(--ease-out);
}
.app-bar-brand img{display:none}
.app-bar-left .back{
  width:auto;
  min-width:44px;
  height:44px;
}
.app-bar-side,
.app-bar-left .back,
.sb-brand{
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  box-shadow:none;
  filter:none;
}
@media (hover:hover) and (pointer:fine){
  .app-bar-brand:hover,.app-bar-side:hover,.sb-brand:hover{opacity:.78}
}
.app-bar-brand:active,.app-bar-side:active,.sb-brand:active{
  opacity:.68;
  transform:none;
  box-shadow:none;
}
.app-bar-brand:focus:not(:focus-visible),
.app-bar-side:focus:not(:focus-visible),
.sb-brand:focus:not(:focus-visible){
  outline:none;
  box-shadow:none;
}
.app-bar-brand:focus-visible,.app-bar-side:focus-visible,.sb-brand:focus-visible{
  outline:2px solid var(--color-focus);
  outline-offset:2px;
  box-shadow:none;
}
.app-bar-title{
  max-width:calc(100% - 196px);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sb-brand{
  color:inherit;
  text-decoration:none;
  border-radius:10px;
  transition:opacity var(--dur-micro) var(--ease-out),transform var(--dur-micro) var(--ease-out);
}
@media (max-width:374px){
  .app-bar-title{max-width:calc(100% - 176px);font-size:1.8rem;letter-spacing:.01em}
}
.app-bar-brand[aria-disabled="true"],.sb-brand[aria-disabled="true"]{
  opacity:.45;
  cursor:not-allowed;
  pointer-events:none;
}
.app-bar-brand[data-state="loading"],.sb-brand[data-state="loading"]{
  opacity:.65;
  cursor:progress;
}
.app-bar-brand[data-state="error"],.sb-brand[data-state="error"]{
  outline:2px solid var(--danger);
  outline-offset:2px;
}
.app-bar-brand[data-state="success"],.sb-brand[data-state="success"]{
  outline:2px solid var(--positive);
  outline-offset:2px;
}
@media (prefers-reduced-motion:reduce){
  .app-bar-brand,.sb-brand{transition:none}
  .app-bar-brand:active,.sb-brand:active{transform:none}
}


/* Hallmark · workbench refinement: contextual app bar / quiet plan selector
 * pre-emit critique: P5 H5 E5 S5 R5 V5 · motion: transform-only · contrast: pass
 */
.app-bar-left:has(> .back) > .app-bar-brand{
  display:none;
}
.plan-seg{
  border:1px solid var(--line);
  background:var(--bg-soft);
  box-shadow:none;
}
.plan-seg::before{
  background:var(--card);
  border-color:var(--line2);
  box-shadow:none;
  transform:translate3d(0,0,0);
  transition:transform var(--dur-short) var(--ease-in-out),opacity var(--dur-micro) var(--ease-out);
  will-change:transform;
}
.plan-seg.is-premium::before{
  transform:translate3d(100%,0,0);
}
.plan-seg button,
.plan-seg button.active{
  text-shadow:none;
  transition:color var(--dur-short) var(--ease-in-out),opacity var(--dur-short) var(--ease-out);
}
.plan-seg button:active{
  transform:none;
}
.plan-seg button:focus-visible{
  outline:2px solid var(--color-focus);
  outline-offset:-2px;
}
@media (prefers-reduced-motion:reduce){
  .plan-seg::before{
    transition:opacity var(--dur-micro) var(--ease-out);
    will-change:auto;
  }
}


/* Hallmark · targeted consistency restoration
 * Keep the established hierarchy; only shared roles share metrics.
 */
.hist-row .h-date,
.invitee-row time.h-date{
  color:var(--ink3);
  font-family:var(--font-latin),var(--font);
  font-size:var(--fs-xs);
  font-weight:400;
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1;
  line-height:1.35;
  letter-spacing:0;
  white-space:nowrap;
}
.invitee-row time.h-date{
  display:block;
  margin-top:3px;
}
.status-asset-head div span,
.status-amount>span,
.status-meta>div{
  font-size:var(--fs-sm);
}
.status-chip{
  font-size:var(--fs-xs);
}
.transaction-id{
  font-size:var(--fs-sm);
}
.status-step strong{
  font-size:var(--fs-md);
}
.status-step small{
  font-size:var(--fs-sm);
}
.status-step time{
  font-size:var(--fs-xs);
}
.plan-seg button,
.plan-seg button.active{
  appearance:none;
  display:grid;
  place-items:center;
  height:44px;
  min-height:44px;
  padding:0 12px;
  background:transparent;
  box-shadow:none;
  filter:none;
  font-size:var(--fs-sm);
  font-weight:500;
  line-height:1;
  letter-spacing:normal;
  text-shadow:none;
  transform:none;
  -webkit-tap-highlight-color:transparent;
}
.plan-seg button:active,
.plan-seg button:focus:not(:focus-visible){
  background:transparent;
  box-shadow:none;
  filter:none;
  transform:none;
  outline:none;
}
.plan-seg button:focus-visible{
  box-shadow:none;
}


/* Hallmark · targeted UI consistency
 * Preserve hierarchy; remove only unjustified one-off sizes and selector outlines.
 */
.plan-seg::before{
  border:0;
}
.plan-seg button,
.plan-seg button.active{
  border:0;
}
.processing-copy strong{
  font-size:var(--fs-md);
}
.processing-amount small{
  font-size:var(--fs-xs);
}
.settings-current strong,
.status-step strong{
  font-size:var(--fs-md);
}


/* Hallmark · component: plan selectors · genre: modern-minimal · design-system: design.md
 * states: default · hover · focus · active · disabled · loading · error · success
 * contrast: pass · mobile: pass (320 / 375 / 414 / 768)
 * pre-emit critique: P5 H5 E5 S5 R5 V5
 */
.app-main .plan-seg{
  background:var(--primary-soft);
  border-color:var(--line2);
}
.app-main .plan-seg::before{
  background:var(--card);
  box-shadow:none;
}
.app-main .plan-seg button{
  color:var(--ink3);
}
.app-main .plan-seg button.active{
  color:var(--primary-deep);
}
.app-main .coin-select-grid button,
.app-main .plan-opt{
  background:var(--bg-soft);
  border-color:var(--line2);
  box-shadow:none;
}
.app-main .coin-select-grid button.active,
.app-main .plan-opt.active{
  background:var(--card);
  border-color:var(--primary);
  box-shadow:none;
}
@media (hover:hover) and (pointer:fine){
  .app-main .plan-seg button:hover{color:var(--primary-deep)}
  .app-main .coin-select-grid button:not(.active):hover,
  .app-main .plan-opt:not(.active):hover{
    background:var(--card);
    border-color:var(--line2);
  }
}
.app-main .plan-seg button:focus-visible,
.app-main .coin-select-grid button:focus-visible,
.app-main .plan-opt:focus-visible{
  outline:2px solid var(--color-focus);
  outline-offset:2px;
  box-shadow:none;
}
.app-main .plan-seg button:active,
.app-main .coin-select-grid button:active,
.app-main .plan-opt:active{
  transform:none;
  filter:none;
  box-shadow:none;
}
.app-main .plan-seg button:disabled,
.app-main .coin-select-grid button:disabled,
.app-main .plan-opt:disabled,
.app-main .plan-seg[data-state="loading"],
.app-main .coin-select-grid[data-state="loading"],
.app-main .plan-select[data-state="loading"]{
  opacity:.55;
  cursor:not-allowed;
}
.app-main .plan-seg[data-state="error"],
.app-main .coin-select-grid[data-state="error"],
.app-main .plan-select[data-state="error"]{
  border-color:var(--danger);
}
.app-main .plan-seg[data-state="success"],
.app-main .coin-select-grid[data-state="success"],
.app-main .plan-select[data-state="success"]{
  border-color:var(--success);
}
@media (prefers-reduced-motion:reduce){
  .app-main .plan-seg::before,
  .app-main .plan-seg button,
  .app-main .coin-select-grid button,
  .app-main .plan-opt{transition:none}
}


/* Selector state completeness */
.app-main .coin-select-grid button,
.app-main .plan-opt{
  transition:background-color var(--dur-short) var(--ease-out),border-color var(--dur-short) var(--ease-out),color var(--dur-short) var(--ease-out);
}
.app-main .plan-seg[data-state="loading"],
.app-main .coin-select-grid[data-state="loading"],
.app-main .plan-select[data-state="loading"]{
  pointer-events:none;
}
.app-main .coin-select-grid[data-state="error"],
.app-main .plan-select[data-state="error"]{
  outline:2px solid var(--danger);
  outline-offset:4px;
}
.app-main .coin-select-grid[data-state="success"],
.app-main .plan-select[data-state="success"]{
  outline:2px solid var(--success);
  outline-offset:4px;
}

@media (hover:hover) and (pointer:fine){
  .app-h2 button.more:hover{text-decoration:underline;text-underline-offset:2px}
  .history-load-more:hover{background:transparent;border-color:transparent;text-decoration:underline;text-underline-offset:4px}
  .sb-link:hover{background:var(--bg-soft);color:var(--ink)}
  .qa:hover{border-color:var(--line2)}
  .interest-point:hover{r:9;fill:var(--color-paper);stroke:var(--primary);stroke-width:5;outline:none}
}

/* Hallmark · component: app forward chevrons · genre: modern-minimal · design-system: design.md
 * Shared 12px optical box makes section links, list rows and cards use one centerline.
 * mobile: pass (320 / 375 / 414 / 768) · pre-emit critique: P5 H5 E5 S5 R5 V5
 */
.app-main .app-h2 .more > span,
.balance-split .arrow,
.coin-row .chev,
.processing-card .chev,
.lending-card-cta b{
  display:inline-grid;
  place-items:center;
  grid-template-rows:12px;
  grid-auto-rows:0;
  overflow:hidden;
  width:12px;
  height:12px;
  flex:0 0 12px;
  /* 文字の「›」は 2 行目（高さ 0）に落として隠す。font-size:0 で隠さない（12px 未満の文字を作らない） */
  font-size:1.4rem;
  line-height:1;
}
.app-main .app-h2 .more > span::before,
.balance-split .arrow::before,
.coin-row .chev::before,
.processing-card .chev::before,
.lending-card-cta b::before{
  content:"";
  width:6px;
  height:6px;
  border-block-start:1.5px solid currentColor;
  border-inline-end:1.5px solid currentColor;
  transform:rotate(45deg);
  transform-origin:center;
}
.app-banner:not(.app-banner-premium)::after{
  content:"";
  width:8px;
  height:8px;
  border-block-start:1.5px solid currentColor;
  border-inline-end:1.5px solid currentColor;
  transform:translateY(-50%) rotate(45deg);
  transform-origin:center;
}
a.info-row::after{
  content:"";
  width:7px;
  height:7px;
  flex:0 0 7px;
  border-block-start:1.5px solid currentColor;
  border-inline-end:1.5px solid currentColor;
  transform:rotate(45deg);
  transform-origin:center;
}
.app-main .app-h2 .more > span{
  transform:translateY(-.5px);
}

/* Hallmark · component: desktop sidebar brand · genre: modern-minimal · design-system: design.md
 * Remove the redundant divider below the logo without changing its position or spacing.
 * pre-emit critique: P5 H5 E5 S5 R5 V5
 */
@media (min-width:1024px){
  .app-sidebar .sb-brand{border-bottom:0}
}

/* Hallmark · component: app language control · genre: modern-minimal · design-system: design.md
 * Globe control replaces help; selection is explicit, persistent, and keyboard accessible.
 * states: default · hover · focus · active · disabled · loading · error · success
 * mobile: pass (320 / 375 / 414 / 768) · pre-emit critique: P5 H5 E5 S5 R5 V5
 */
.app-bar-side.language-toggle{
  color:var(--ink3);
  border-radius:var(--radius-app-control);
}
.app-bar-side.language-toggle svg{
  width:20px;
  height:20px;
}
/* PC sidebar language control (mobile uses the app-bar globe) */
.app-sidebar .sb-lang{
  margin-top:auto;
  width:100%;
  background:none;border:0;
  /* font ショートハンドは .sb-link の font-size / font-weight まで打ち消すので使わない。
     ブラウザは button の letter-spacing / word-spacing も初期化するため、明示的に継承させる。 */
  font-family:inherit;
  letter-spacing:inherit;
  word-spacing:inherit;
  line-height:inherit;
  color:var(--ink2);
  cursor:pointer;text-align:left;
}
.app-sidebar .sb-lang svg{width:20px;height:20px;flex:0 0 auto}
.app-sidebar .sb-lang + .sb-foot{margin-top:0}
.app-sidebar .sb-lang[aria-expanded="true"]{background:var(--color-paper-3)}
.language-menu[hidden]{display:none}
.language-menu{
  position:fixed;
  z-index:220;
  top:60px;
  right:12px;
  width:156px;
  padding:4px;
  border:1px solid var(--line2);
  border-radius:var(--radius-app-control);
  background:var(--card);
  box-shadow:var(--shadow-float);
}
.language-menu button{
  width:100%;
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 12px;
  border-radius:calc(var(--radius-app-control) - 2px);
  color:var(--ink2);
  font-size:1.3rem;
  font-weight:500;
  text-align:left;
  white-space:nowrap;
}
.language-menu button span:first-child{
  font-family:var(--font-latin),var(--font);
  color:var(--ink3);
  font-size:var(--fs-xs);
  font-weight:600;
}
.language-menu button[aria-checked="true"]{
  background:var(--primary-soft);
  color:var(--primary-deep);
}
.language-menu button[aria-checked="true"]::after{
  content:"";
  width:7px;
  height:4px;
  border-left:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:rotate(-45deg) translateY(-1px);
}
@media (hover:hover) and (pointer:fine){
  .language-menu button:hover{background:var(--color-soft-blue)}
}
.app-bar-side.language-toggle:active,
.language-menu button:active{
  opacity:.68;
  transform:none;
  box-shadow:none;
}
.app-bar-side.language-toggle:focus-visible,
.language-menu button:focus-visible{
  outline:none;
  box-shadow:none;
}
.language-menu button:focus-visible{background:var(--color-soft-blue)}
.language-menu button[aria-checked="true"]:focus-visible{background:var(--primary-soft)}
.app-bar-side.language-toggle[disabled],
.language-menu button[disabled]{
  opacity:.45;
  cursor:not-allowed;
}
html[lang="en"] body.app{
  font-family:var(--font-latin),var(--font);
}
@media (prefers-reduced-motion:reduce){
  .app-bar-side.language-toggle,.language-menu button{transition:none}
}

/* 2026-08-17 · display preferences, verification code, and optical alignment */
.language-menu{width:176px}
.language-menu button{
  display:grid;
  grid-template-columns:24px minmax(0,1fr) 12px;
  align-items:center;
  justify-content:initial;
  column-gap:10px;
  padding:0 12px;
}
.language-menu .language-flag{display:block;width:22px;height:22px}
.language-menu .language-label{grid-column:2;color:inherit;font:inherit;text-align:left}
.language-menu button[aria-checked="true"]::after{grid-column:3;justify-self:center}

.app-main .app-h2 .more{align-items:center;gap:11px;line-height:1.35}
.app-main .app-h2 .more .more-chevron{
  display:block;
  width:12px;
  height:12px;
  flex:0 0 12px;
  overflow:visible;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round;
  transform:translateY(-.5px);
}

.preference-list .preference-row{min-height:56px}
.preference-segment{
  display:grid;
  grid-template-columns:repeat(2,minmax(56px,1fr));
  gap:3px;
  padding:3px;
  border:1px solid var(--line);
  border-radius:var(--radius-pill);
  background:var(--bg-soft);
}
.preference-segment button{
  min-height:44px;
  min-width:56px;
  padding:0 14px;
  border-radius:var(--radius-pill);
  color:var(--ink3);
  font-family:var(--font-latin),var(--font);
  font-size:1.4rem;
  font-weight:600;
  line-height:1;
}
.preference-segment button[aria-pressed="true"]{
  background:#fff;
  color:var(--primary-deep);
  box-shadow:0 1px 4px rgba(45,51,59,.10);
}
.preference-segment button:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}

.verification-code-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.verification-code-head label{color:var(--ink);font-size:var(--fs-md);font-weight:700}
.code-resend{display:inline-flex;align-items:center;min-height:44px;padding:0 8px;color:var(--primary-deep);font-size:var(--fs-sm);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.verification-code{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.code-digit{
  width:100%;
  min-width:0;
  min-height:48px;
  aspect-ratio:1;
  border:1px solid var(--line2);
  border-radius:var(--radius-app-control);
  background:#fff;
  color:var(--ink);
  font-family:var(--font-latin),var(--font);
  font-size:2rem;
  font-weight:600;
  line-height:1;
  text-align:center;
  caret-color:var(--primary);
}
.code-digit:focus{border-color:var(--primary);outline:2px solid var(--color-focus);outline-offset:1px}

.wallet-lending-note a{text-decoration:underline;text-underline-offset:2px}
.wallet-note-en{display:none}
html[lang="en"] .wallet-note-ja{display:none}
html[lang="en"] .wallet-note-en{display:inline}
html[lang="en"] .wallet-lending-note{line-height:1.65}

@media (max-width:374px){
  .verification-code{gap:6px}
  .code-digit{font-size:1.8rem;border-radius:10px}
}

/* ---------- 近日対応（COINS の soon:true）銘柄 ---------- */
.coin-select-grid button:disabled,
.coin-select-grid button.is-soon{
  cursor:not-allowed;
  background:var(--bg-soft);
  border-color:var(--line2);
  border-style:dashed;
  color:var(--ink3);
  box-shadow:none;
}
.coin-select-grid button:disabled .coin-ic,
.coin-select-grid button.is-soon .coin-ic{opacity:.42;filter:grayscale(1)}
.app-main .coin-select-grid button:disabled,
.app-main .coin-select-grid button.is-soon{
  background:var(--bg-soft);
  border-color:var(--line2);
  color:var(--ink3);
}
@media (hover:hover) and (pointer:fine){
  .app-main .coin-select-grid button:disabled:hover,
  .app-main .coin-select-grid button.is-soon:hover{
    background:var(--bg-soft);
    border-color:var(--line2);
  }
}

/* 確認シート内の「満期後の取扱い」と個別契約 */
.confirm-after,.confirm-agreement{margin-top:18px}
.confirm-after .field-label,.confirm-agreement .field-label{display:block;margin-bottom:8px}
.confirm-after-note{margin:8px 0 0;font-size:var(--fs-sm);line-height:1.6;color:var(--ink3)}
.confirm-sheet .agreement-box{height:min(40vh,320px)}

/* 契約書類 */
.doc-lead{margin:0 0 18px;font-size:var(--fs-md);line-height:1.75;color:var(--ink2)}
.doc-list{display:flex;flex-direction:column;gap:10px}
.doc-card{
  display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;
  padding:16px;border:1px solid var(--line);border-radius:var(--radius-app-card);background:var(--card);
}
.doc-card-empty{border-style:dashed}
.doc-main{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 220px}
.doc-main strong{font-size:var(--fs-md);line-height:1.5}
.doc-meta{font-size:var(--fs-sm);line-height:1.6;color:var(--ink3)}
.doc-actions{display:flex;gap:8px;flex:0 0 auto}
.doc-actions .btn{min-height:44px;padding:0 16px;font-size:1.4rem}
.doc-empty{font-size:var(--fs-md);color:var(--ink3)}
/* 全文ビューアは小窓をやめてシート全体をスクロールさせる */
.confirm-sheet .doc-view-body{height:auto;max-height:none;overflow:visible;border:0;padding:0;font-size:var(--fs-md);line-height:1.9}
.confirm-sheet .doc-view-body h3{font-size:var(--fs-lg)}
.confirm-sheet.has-sticky-actions .confirm-head{position:sticky;top:0;z-index:2;padding:8px 0 10px;background:var(--card)}

/* 基本契約の未締結ゲート */
.agreement-gate{display:flex;flex-direction:column;gap:10px}
.agreement-gate strong{font-size:1.8rem;line-height:1.5;color:var(--primary-deep)}
.agreement-gate p{margin:0;font-size:var(--fs-md);line-height:1.8;color:var(--ink)}
.agreement-gate .btn{margin-top:4px}

/* hidden 属性はクラス指定の display に負けるため、明示的に打ち消す */
[hidden]{display:none !important}

/* 送信中のボタン（二度押し防止・バックエンド構成 §14 第1層） */
.btn.is-busy{opacity:.6;pointer-events:none;cursor:progress}


/* ============================================================
   文字サイズの床（2026-09-16 高齢者対応）
   design-rules §1: 12px 未満を残さない（注記 13px・ラベル 13px・本文 15〜16px・
   app-h2 18px・page-title 22px）。数値は Inter tabular。ここが最終レイヤー。
   ============================================================ */
.app-main .note,.app-main .field-note,.app-main .doc-meta,.app-main .est-values .s,.app-main .lending-allocation-head,.app-main .contract-progress-head,
.app-main .coin-plan,.app-main .balance-rate-note,.app-main .valuation-rate-note,.app-main #bonusCalcNote,
.app-main .confirm-after-note,.app-main .agreement-hint,.app-main .agreement-note{font-size:var(--fs-sm);line-height:1.6}
.app-main .chip,.app-main .status-chip,.app-main .invitee-status,.app-main .early-exit-label,
.app-main .page-asof-bottom,.app-main .h-date,.app-main .n-date,.app-main .settings-current span,
.app-main .processing-amount small,.app-main .lending-range-labels,.app-main .confirm-plan,.app-main .p-bonus{font-size:var(--fs-xs)}
.tabbar a{font-size:1.2rem}
.app-main .info-row .k,.app-main .info-row .v{font-size:var(--fs-md)}
.app-main .app-h2,.app-h2{font-size:1.8rem}
.app-main .balance-split .k,.app-main .stat-tile .k,.app-main .trend-label,.app-main .trend-rate,
.app-main .exit-estimate span,.app-main .status-amount>span,.app-main .confirm-details dt,.app-main .est-card .k,.app-main .est-card .s{font-size:var(--fs-sm)}
.app-main .info-row,.app-main .n-title,.app-main .hist-row .h-type,.app-main .hist-row .h-amt,.app-main .confirm-details dd,.app-main .fstep .ft{font-size:var(--fs-md)}
.app-main .balance-split .v{font-size:1.8rem;font-family:var(--font-latin),var(--font);font-weight:600}
.app-main .stat-tile .v{font-size:1.8rem;font-family:var(--font-latin),var(--font);font-weight:600}
/* 数値は Inter・tabular（主要な金額クラスに確実に当てる） */
.app-main .num,.app-main .sim-value .v,.app-main .status-amount strong,.app-main .confirm-details dd.num,.app-main .exit-estimate strong,
.app-main .ci-val .plus,.app-main .ci-val .jpy,.app-main .ci-val .qty,.app-main .lc-rows .info-row .v,.app-main .info-row .v.num,.app-main .h-amt,.app-main .h-date,
.app-main .est-card .v,.app-main .confirm-primary strong,.app-main .plan-opt .p-rate,.app-main .invite-code,.app-main .i-amount,
.app-main .processing-amount,.app-main .stat-tile .v,.app-main .balance-split .v,.app-main .addr-box,.app-main .status-step time{
  font-family:var(--font-latin),var(--font);font-variant-numeric:tabular-nums;
}
/* 年利・利息の数値もチャコール（緑・ローズにしない） */
.app-main .coin-row .ci-val .plus,.app-main .hist-row.in .h-amt,.app-main .hist-row.out .h-amt,.app-main .home-balance-summary .bc-sub,.app-main .balance-card .trend-rate{color:var(--ink2)}
/* Noto に 600 を指定しない（400/500/700 のみ読込） */
.app-main .b-tag,.app-main .b-plan,.app-main .b-offer strong,.app-main .coin-row .ci-name .sym{font-weight:700}
/* タップ対象 44px */
.app-main .app-h2 .more,.app-main .news-tabs button,.app-main .doc-actions .btn,.app-main .code-resend,.app-main .preference-segment button{min-height:44px}
.app-main .app-h2 .more{display:inline-flex;align-items:center}
/* 設定行 58px 以上 */
.app-main .info-row{min-height:58px}
/* 下部固定バーを置く画面の余白 */
.app-main.has-bottom-bar{padding-bottom:calc(88px + var(--tabbar-h))}
/* 320px（小型端末・拡大表示）: 3連タイルがはみ出さないように */
@media (max-width:359px){
  .stat-tabs{gap:6px}
  .stat-tile{padding:14px 10px}
  .app-main .stat-tile .v{font-size:1.6rem}
}


/* ============================================================
   ページ <style> からの昇格（2026-09-16 統合 · U-CONSOL）
   2 ページ以上で使う／共通部品と重複するものだけをここに集約する。
   1 ページだけのものは各 HTML の <style> に残してよい（DESIGN_SYSTEM §0.5）。
   ============================================================ */

/* --- 画面先頭の平易な 1 文（deposit / lend / withdraw） --- */
.page-lead{margin:0;font-size:var(--fs-md);line-height:1.8;color:var(--ink2)}

/* --- 主数値ブロック「貸付可能」「返還できる数量」（lend / withdraw）
       ラベルは数値の上・数値は Inter tabular・円換算は従 --- */
.avail{display:flex;flex-direction:column;gap:2px}
.avail .k{font-size:var(--fs-sm);font-weight:500;color:var(--ink2)}
.avail .v{
  font-family:var(--font-latin),var(--font);font-size:3.2rem;font-weight:700;line-height:1.2;
  letter-spacing:-.01em;color:var(--primary-deep);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;
}
.avail .s{font-size:var(--fs-sm);color:var(--ink3)}

/* --- 数量入力 ＋「全額」ボタン（lend / withdraw） --- */
.amount-row{display:flex;gap:8px;align-items:stretch}
.amount-row .amount-input-wrap{flex:1 1 auto;min-width:0}
.btn-max{flex:0 0 auto;min-height:52px;padding:0 18px;font-size:var(--fs-md);font-weight:700;white-space:nowrap}

/* --- 銘柄選択の「準備中」可視ラベル（deposit / lend / withdraw） --- */
.coin-select-grid .soon-tag{
  position:absolute;top:-8px;left:50%;transform:translateX(-50%);
  padding:1px 7px;border-radius:var(--radius-chip);
  background:var(--warn-soft);color:var(--color-warn-ink);
  font-size:var(--fs-xs);font-weight:700;line-height:1.5;white-space:nowrap;
}

/* --- 確認シートのパネル切替と送信中ヘッダー（lend / withdraw） --- */
.sheet-panel[hidden]{display:none}
/* 送信中はヘッダーの文言だけを消す（閉じる × は残すので、完了画面に閉じ込められない） */
.confirm-head.is-quiet>div{visibility:hidden}
.confirm-sheet .confirm-actions{margin-top:16px}
.confirm-sheet .submit-state{padding-top:16px}
@media (min-width:768px){.confirm-sheet .confirm-actions{grid-template-columns:1fr}}

/* --- シート内スクロール＋下部固定バー（契約書ビューア）。
       sticky の下にシートの下余白が残ると本文が覗くので、左右いっぱいに背景を敷き、
       下余白は sticky 側へ移す。使うシートに .has-sticky-actions を付ける --- */
.confirm-sheet.has-sticky-actions{padding-top:0;padding-bottom:0}
.confirm-sheet.has-sticky-actions .confirm-handle{margin-top:10px}
.confirm-sheet.has-sticky-actions .confirm-actions{
  position:sticky;bottom:0;z-index:1;
  margin:14px -20px 0;
  padding:12px 20px calc(14px + env(safe-area-inset-bottom,0px));
  border-top:1px solid var(--line);
  background:var(--card);
}
@media (min-width:768px){
  .confirm-sheet.has-sticky-actions .confirm-actions{margin:14px -28px 0;padding:14px 28px 22px}
}

/* --- 確認シート内の全幅アドレスブロック（4桁区切り・先頭と末尾を強調） --- */
.address-block-compact{margin-top:14px;padding:14px;gap:8px;align-items:stretch;background:var(--bg-soft)}
.address-block-compact .ab-label{font-size:var(--fs-sm);font-weight:500;color:var(--ink2)}
.address-block-compact .ab-address{padding:12px 14px;background:var(--bg);text-align:left;font-size:1.5rem;font-weight:500}
.address-block-compact .ab-address strong{color:var(--primary-deep);font-weight:700}
.address-block-compact .ab-network{font-size:var(--fs-sm);font-weight:700;color:var(--ink2)}

/* --- はじめて使う返還先アドレス（朱色ブロック＋確認チェック） --- */
.new-address{margin-top:12px;padding:14px 16px;border:1.5px solid var(--danger);border-radius:var(--radius-panel);background:var(--danger-soft);color:var(--color-negative-ink)}
.new-address strong{display:block;font-size:var(--fs-md);line-height:1.5}
.new-address p{margin:4px 0 0;font-size:var(--fs-sm);line-height:1.7}
.new-address .agreement-consent{margin-top:6px}
.new-address .agreement-consent label{color:var(--ink);padding-left:0}
.new-address .agreement-consent input[type="checkbox"]{accent-color:var(--danger)}

/* --- 見出し直下の 1 文（index / wallet / lendings） --- */
.section-note{margin:-4px 0 10px;font-size:var(--fs-sm);line-height:1.6;color:var(--ink3)}

/* --- 主数値カード・2 連タイル（index / wallet / interest / lending-detail） --- */
.home-balance-card{padding-bottom:22px}
.stat-tabs.stat-tabs-2{grid-template-columns:repeat(2,minmax(0,1fr))}
/* 数量が主・円換算が従（index / wallet / interest） */
.coin-row .ci-val .qty{color:var(--ink3)}

/* --- 行内に動作名を出す行（wallet の貸付可能行） --- */
.wallet-row{min-height:72px}
.wallet-row .ci-name{flex:1 1 auto;min-width:0}
.wallet-row .ci-name .sym{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;white-space:normal}
.wallet-row .ci-name .sym .nm{font-weight:400;white-space:normal}
.wallet-row .row-action{display:inline-flex;align-items:center;gap:6px;margin-top:3px;color:var(--primary-deep);font-size:var(--fs-sm);font-weight:700;line-height:1.5}
.wallet-row .row-action::after{content:"";width:6px;height:6px;border-block-start:1.5px solid currentColor;border-inline-end:1.5px solid currentColor;transform:rotate(45deg)}

/* --- 契約カード（lendings） --- */
.lending-cards{display:grid;gap:14px}
.lc-head{display:flex;align-items:center;gap:12px}
.lc-head .ci-name{line-height:1.35;min-width:0}
.lc-head .ci-name .sym{font-weight:700;font-size:1.6rem}
.lc-head .ci-name .nm{font-size:var(--fs-sm);color:var(--ink3)}
.lc-chips{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.lc-chips .chip{white-space:nowrap}
.lc-rows{margin-top:14px;border-top:1px solid var(--line)}
.lc-rows .info-row{padding:12px 0;min-height:52px}
.lc-rows .info-row .k{color:var(--ink2)}
.lc-rows .info-row .v{flex-direction:column;align-items:flex-end;gap:2px;line-height:1.4;min-width:0}
.lc-rows .info-row .v small{font-size:var(--fs-sm);font-weight:400;color:var(--ink3)}
.lc-rows .info-row .v span{white-space:nowrap}
.lending-card-cta{font-size:var(--fs-sm)}
@media (max-width:374px){
  .lc-head{flex-wrap:wrap}
  .lc-head .ci-name .nm{white-space:nowrap}
  .lc-chips{flex:1 0 100%;margin-left:0;padding-left:48px;justify-content:flex-start}
  .lc-rows .info-row{flex-wrap:wrap}
  .lc-rows .info-row .v{margin-left:auto}
  .lc-rows .info-row .v span{white-space:normal;word-break:keep-all}
}

/* --- 設定行の 2 行目（状態・補足）（account / login-settings） --- */
.info-row .k.has-sub{flex-direction:column;align-items:flex-start;gap:2px}
.info-row .sub{display:block;font-size:var(--fs-sm);font-weight:400;line-height:1.5;color:var(--ink3);font-family:var(--font-latin),var(--font)}
.app-main .info-row .k{flex:1 1 auto;min-width:0}
.app-main .info-row .v{flex:0 1 auto;min-width:0}

/* --- 完了ボックス（login-settings。ほかのフォームでも使える） --- */
.settings-done{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--radius-panel);background:var(--success-soft)}
.settings-done::before{content:"✓";flex:0 0 24px;display:grid;place-items:center;width:24px;height:24px;margin-top:1px;border-radius:50%;background:var(--success);color:var(--ink-invert);font-size:1.4rem;font-weight:700;line-height:1}
.settings-done strong{display:block;font-size:var(--fs-md);line-height:1.5;color:var(--success)}
.settings-done span{display:block;margin-top:2px;font-size:var(--fs-sm);line-height:1.6;color:var(--ink2)}

/* --- 契約の要点行・全文ビューアの meta（documents） --- */
.doc-meta{display:flex;flex-wrap:wrap;gap:0 6px}
.doc-meta .dm-k{color:var(--ink3)}
.doc-meta .dm-v{color:var(--ink2)}
.doc-meta .num{font-family:var(--font-latin),var(--font);font-variant-numeric:tabular-nums}
.doc-view-meta{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:6px 0 14px;font-size:var(--fs-sm);line-height:1.6}
.doc-view-meta dt{color:var(--ink3)}
.doc-view-meta dd{margin:0;color:var(--ink);font-family:var(--font-latin),var(--font);font-variant-numeric:tabular-nums}

/* --- 行末のチェブロン（お知らせ一覧） --- */
a.app-news-item{position:relative;padding-right:40px}
a.app-news-item::after{content:"\203A";position:absolute;right:16px;top:50%;transform:translateY(-50%);color:var(--ink3);font-size:1.8rem;font-weight:700;line-height:1}
a.app-news-item:active{background:var(--bg-soft)}

/* --- 末尾の退会リンク（account） --- */
.account-leave{margin:8px 0 0;text-align:center}
.account-leave-link{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;font-size:var(--fs-sm);color:var(--ink3);text-decoration:underline;text-underline-offset:3px}

/* --- 日本語を語の途中で折り返さない（「パスワ／ード」「マイナンバーカー／ド」を作らない）。
       word-break:auto-phrase は対応ブラウザだけで効き、非対応ブラウザは従来どおり折り返す --- */
.app-main .page-title,.app-main .app-h2,.app-main .page-lead,.app-main .section-note,
.app-main .info-row .k,.app-main .info-row .sub,.app-main .note,.app-main .field-label,
.app-main .field-note,.app-main .field-error,.app-main .irreversible-note,.app-main .empty-state p,
.app-main .next-action .na-text,.app-main .btn,.app-main .n-title,.app-main .n-desc,
.confirm-sheet h2,.confirm-sheet p,.confirm-sheet .confirm-details dt,.confirm-sheet .btn,
.confirm-sheet .ss-title,.confirm-sheet .ss-text,.confirm-sheet .agreement-consent label{
  line-break:strict;word-break:auto-phrase;
}
/* 途中で切れると読み取りにくい語は、どの環境でも 1 語のまま折り返す */
.app-main .nw,.confirm-sheet .nw{white-space:nowrap}
