


.info-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; min-height: 24px;
  padding: 0 2px; border: 0; background: none; color: var(--text-sub); font: inherit; font-size: 1em; line-height: 1;
  cursor: pointer; border-radius: var(--r-pill); vertical-align: middle; }
.info-btn:hover { color: var(--text); background: var(--surface-2); }
.info-btn:focus-visible { outline: 2px solid var(--amber); outline-offset: 1px; }


#lw-sheet-bd { position: fixed; inset: 0; background: rgba(0, 0, 0, .32); z-index: calc(var(--z-overlay) + 3); }
#lw-sheet { position: fixed; inset-inline: 0; bottom: 0; z-index: calc(var(--z-overlay) + 4); max-height: 86vh; overflow-y: auto;
  background: var(--bg); color: var(--text); border-radius: 16px 16px 0 0; box-shadow: 0 -8px 28px rgba(0, 0, 0, .18);
  padding: var(--sp-2) var(--sp-4) calc(var(--sp-5) + env(safe-area-inset-bottom, 0px)); }
html[data-theme="glass"] #lw-sheet { backdrop-filter: blur(20px) saturate(1.4); -webkit-backdrop-filter: blur(20px) saturate(1.4); background: var(--surface-3); }
.lw-grab { width: 40px; height: 4px; border-radius: var(--r-pill); background: var(--line); margin: 0 auto var(--sp-3); }
.lw-sheet-head { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); margin-bottom: var(--sp-3); }
.lw-sheet-head h2 { font-size: var(--fs-lg); margin: 0; }
.lw-sheet-body { display: flex; flex-direction: column; gap: var(--sp-3); }
.lw-sheet-body p { margin: 0; }
@media (min-width: 768px) {
  #lw-sheet { inset: auto; top: 50%; left: 50%; bottom: auto; transform: translate(-50%, -50%); width: min(480px, 92vw);
    border-radius: 16px; box-shadow: var(--hover-shadow); padding: var(--sp-5); }
  .lw-grab { display: none; }
}
.lw-tl { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sp-3); }
.lw-tl li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: var(--sp-3); align-items: start; }
.lw-tl li > span:last-child { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lw-tl-n { width: 24px; height: 24px; border-radius: var(--r-pill); display: flex; align-items: center; justify-content: center;
  background: var(--amber-bg); color: var(--amber); font-size: var(--fs-xs); font-weight: var(--fw-bold); }
.lw-kv { display: flex; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-2) 0; border-bottom: 1px solid var(--line); }
.lw-kv > span:last-child { text-align: end; min-width: 0; }
.lw-wrap, .wd .wd-wrap { overflow-wrap: anywhere; }
.lw-rc-top { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.lw-rc-amt { font-size: var(--fs-2xl); font-weight: var(--fw-bold); color: var(--amber); line-height: 1.2; }
.lw-rc-act { display: flex; flex-wrap: wrap; gap: var(--sp-2); }


.lw-skel { display: flex; flex-direction: column; gap: var(--sp-4); margin-top: var(--sp-2); }
.lw-skel .sk { background: var(--surface-2); border-radius: var(--r-lg); position: relative; overflow: hidden; }
.lw-skel .sk-h { height: 32px; width: 46%; }
.lw-skel .sk-grid { display: grid; gap: var(--sp-4); }
.lw-skel .sk-card { height: 132px; }
.lw-skel .sk-wide { height: 180px; }
@media (min-width: 720px) { .lw-skel .sk-grid { grid-template-columns: 1fr 1fr; } }
@media (prefers-reduced-motion: no-preference) {
  .lw-skel .sk::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, var(--shimmer), transparent);
    animation: lw-shim 1.3s infinite; }
  @keyframes lw-shim { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
}
.lw-err { display: flex; flex-direction: column; gap: 6px; background: var(--surface); box-shadow: var(--ring); border-radius: var(--r-lg);
  padding: var(--sp-4); margin: 0 0 var(--sp-4); }
.lw-err p { margin: 4px 0 0; }

.lw-err details { background: none; box-shadow: none; border-radius: 0; margin: 0; padding: 0; }
.lw-err details summary { cursor: pointer; min-height: 24px; padding: 2px 0; font-size: var(--fs-xs); font-weight: var(--fw-medium); color: var(--text-sub); display: inline-flex; align-items: center; }
.lw-err details summary::after { position: static; content: "+"; margin-inline-start: 6px; }
.lw-err details[open] summary::after { content: "\2212"; }


.dash-top, .dash-pair { display: grid; gap: 16px; margin: 0 0 16px; }
.dash-top > *, .dash-pair > * { margin: 0; max-width: none; min-width: 0; }
@media (min-width: 720px) {
  .dash-top { grid-template-columns: 1fr 1fr; align-items: stretch; }
  .dash-pair { grid-template-columns: 1fr 1fr; align-items: start; }
  .dash-pair > :only-child { grid-column: 1 / -1; }
}
.mo-card { position: relative; display: flex; flex-direction: column; justify-content: flex-start; gap: var(--sp-3);
  background: var(--bg); box-shadow: var(--ring); border-radius: 16px; padding: var(--sp-4); }

.mo-top { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-4); }
.mo-bars { flex: 1 1 auto; min-height: 56px; display: flex; align-items: flex-end; }
.mo-bars svg { display: block; width: 100%; height: 100%; min-height: 56px; }
.mo-bars .mb-v { fill: var(--amber); opacity: .55; }
.mo-bars .mb-t { fill: var(--amber); }
.mo-bars .mb-z { fill: var(--line); }
.mo-bars .mb-f { fill: var(--line); opacity: .6; }
.mo-axis { display: flex; justify-content: space-between; margin-top: calc(var(--sp-2) * -1); font-size: var(--fs-xs); }
html[data-theme="glass"] .mo-card { backdrop-filter: blur(20px) saturate(1.4); -webkit-backdrop-filter: blur(20px) saturate(1.4); }
.mo-txt { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.mo-num { font-size: clamp(30px, 6.5vw, 42px); font-weight: var(--fw-bold); letter-spacing: -1px; color: var(--amber); line-height: 1.15; }
.mo-card .hp-ring { width: 72px; height: 72px; }
.mo-card .hp-ring > svg { width: 72px; height: 72px; }

.hr-logo .lg-i, .pf-ic .lg-i, .bh-wm .lg-i { fill: url(#lwLogoG) var(--amber); }

.app-view > .hero-pb { max-width: none; }
@media (min-width: 720px) { .app-view > .hero-pb .spark-lg { aspect-ratio: auto; height: 140px; } } 
.hero-pb .bal-title { font-size: var(--fs-caption); color: var(--text-sub); margin-bottom: 0; }
.hero-pb .flt-wrap { margin: var(--sp-3) 0 4px; }

.bh-split { display: flex; flex-wrap: wrap; gap: 6px; margin: var(--sp-2) 0; }
.bh-chip { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px 3px 4px; border-radius: var(--r-pill);
  background: var(--surface-2); font-size: var(--fs-caption); max-width: 100%; }
.bh-chip .ex-cc { margin: 0; }
.bal-hero .bh-next { margin-top: var(--sp-2); }
.bal-hero p.caption { margin: 2px 0 0; }
.lw-prog { height: 6px; border-radius: var(--r-pill); background: var(--surface-3); overflow: hidden; margin-top: var(--sp-3); }
.lw-prog > i { display: block; height: 100%; background: var(--amber); border-radius: inherit; }

button.pf-row { width: 100%; background: none; border: 0; border-bottom: 1px solid var(--hairline); color: inherit; font: inherit;
  text-align: start; cursor: pointer; border-radius: 0; }
button.pf-row:last-of-type { border-bottom: 0; }
button.pf-row:hover { background: var(--surface-2); }
button.pf-row:focus-visible { outline: 2px solid var(--amber); outline-offset: -2px; }

.lw-state { position: relative; background: var(--bg); box-shadow: var(--ring); border-radius: var(--r-lg); padding: var(--sp-4);
  margin: 0 0 var(--sp-4); display: flex; flex-direction: column; gap: 6px; }
.lw-state p { margin: 0; }
.lw-state .acct-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }


.hc-list { display: none; }
@media (max-width: 640px) {
  .hist-tbl { display: none; }
  .hc-list { display: flex; flex-direction: column; gap: 6px; margin-top: var(--sp-3); }
}
.hc-day { display: flex; justify-content: space-between; align-items: baseline; gap: var(--sp-2); padding: var(--sp-2) 2px 2px;
  font-size: var(--fs-caption); font-weight: var(--fw-semibold); color: var(--text-sub); }
.hc-day b { color: var(--amber); }
.hc-row { display: flex; justify-content: space-between; align-items: center; gap: var(--sp-3); background: var(--bg); box-shadow: var(--ring);
  border-radius: var(--r-md); padding: 10px 12px; }
.hc-l { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.hc-l .caption { overflow-wrap: anywhere; }
.hc-r { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; flex: none; font-size: var(--fs-caption); }
.hc-amt { font-size: var(--fs-base); color: var(--amber); }


.lw-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--line); margin: var(--sp-2) 0 var(--sp-3); overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.lw-tab { border: 0; background: none; color: var(--text-sub); font: inherit; font-weight: var(--fw-semibold); padding: 10px 14px;
  min-height: 44px; cursor: pointer; white-space: nowrap; }
.lw-tab.on { color: var(--text); box-shadow: inset 0 -2px 0 var(--amber); }
.lw-funnel { display: flex; flex-direction: column; gap: 8px; margin: var(--sp-2) 0; max-width: 640px; }
.lw-fn-row { display: grid; grid-template-columns: minmax(84px, 9em) minmax(0, 1fr) 6.5em; gap: var(--sp-3); align-items: center; font-size: var(--fs-caption); }
.lw-fn-l { color: var(--text-sub); overflow-wrap: anywhere; }
.lw-fn-bar { height: 10px; border-radius: var(--r-pill); background: var(--surface-3); overflow: hidden; }
.lw-fn-bar > i { display: block; height: 100%; background: var(--amber); border-radius: inherit; }
.lw-fn-v { font-weight: var(--fw-bold); text-align: end; white-space: nowrap; }
.lw-fn-v small { font-weight: var(--fw-medium); color: var(--text-sub); }


.arw-flip { display: inline-block; }
[dir="rtl"] .arw-flip { transform: scaleX(-1); }
.cal-nav { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }


.wd .wd-mutc { color: var(--wd-mut); }
.wd .wd-okc { color: var(--wd-Pt); }
.wd .wd-errc { color: var(--wd-Et); }
.wd .wd-errcard { border-color: var(--wd-Esoft); background: var(--wd-Esoft); box-shadow: none; }
.wd .wd-dash { background: transparent; border: 1px dashed var(--wd-div); box-shadow: none; }
.wd .wd-exrow { font-size: var(--fs-caption); }
.wd .wd-acct-end { margin-inline-start: auto; }
.wd .info-btn { color: var(--wd-mut2); }

.wd { padding: 4px 0 24px; }

.lw-tabpanel .tbl-sm th { white-space: nowrap; }

@media (min-width: 900px) { .lw-tabpanel .wallet-row:has(> :nth-child(4)) { grid-template-columns: repeat(4, 1fr); } }

.pt-sub { margin: -8px 0 var(--sp-3); }
.pt-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-4); margin: var(--sp-3) 0 var(--sp-4); }
.pt-card { background: var(--bg); box-shadow: var(--ring), var(--card-shadow); border-radius: var(--r-lg); padding: var(--sp-4); min-width: 0; }
html[data-theme="glass"] .pt-card { backdrop-filter: blur(20px) saturate(1.4); -webkit-backdrop-filter: blur(20px) saturate(1.4); }
.pt-card > h2 { font-size: var(--fs-lg); margin: 0 0 var(--sp-3); }
.pt-card > :last-child { margin-bottom: 0; }
.pt-card .wallet-row { margin: 0 0 var(--sp-2); }
.pt-card > .wallet-row:last-child { margin-bottom: 0; }
.pt-card .lw-funnel { max-width: none; }
.pt-card .bal-row:last-of-type { border-bottom: 0; }
.pt-card .pt-cyc { margin: var(--sp-2) 0 0; }
.pt-card .caption.muted { margin-bottom: 0; }
.pt-grid > p { margin: 0; }

.wd .wd-autocard { gap: 6px; }
.wd .wd-autocard p { margin: 0; }
.wd .wd-autocard .bh-next { margin-top: 0; }
.bh-top > .btn { white-space: nowrap; flex: none; } 

.rb-sum { background: var(--bg); box-shadow: var(--ring), var(--card-shadow); border-radius: var(--r-lg); padding: var(--sp-4); margin: var(--sp-3) 0; min-width: 0; }
html[data-theme="glass"] .rb-sum { backdrop-filter: blur(20px) saturate(1.4); -webkit-backdrop-filter: blur(20px) saturate(1.4); }
.rb-sum .bal-title { font-size: var(--fs-caption); color: var(--text-sub); margin: 0 0 var(--sp-2); }
.rb-cells { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1.2fr); align-items: center; gap: var(--sp-3); }
.rb-cell { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rb-cell b { font-size: var(--fs-lg); font-weight: var(--fw-bold); overflow-wrap: anywhere; }
.rb-tot b { font-size: clamp(22px, 4.5vw, 30px); color: var(--amber); letter-spacing: -.5px; }
.rb-op { font-size: var(--fs-lg); color: var(--text-sub); font-weight: var(--fw-medium); }
.rb-pct { color: var(--text-sub); }
.rb-how { margin: var(--sp-3) 0 0; }

.rb-sum { container-type: inline-size; }
.rb-cell b { white-space: nowrap; }
@container (max-width: 560px) {
  .rb-cells { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); row-gap: var(--sp-2); }
  .rb-cells > .rb-op:nth-of-type(2) { display: none; }   
  .rb-tot { grid-column: 1 / -1; border-top: 1px solid var(--hairline); padding-top: var(--sp-2); }
}
.wd .rb-sum { margin: 0; }
.mo-split { color: var(--text-sub); margin: 2px 0 0; }
.hc-split { color: var(--text-sub); }
.pf-note { margin: -4px 0 var(--sp-2); }

.mk-weeks { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin: 0 0 var(--sp-2); }
.mk-weeks .caption { margin-inline-end: 4px; }
.mk-line { margin: 0 0 var(--sp-2); }
.mk-tbl td, .mk-tbl th { white-space: nowrap; }

@media (max-width: 420px) { .lw-tab { padding: 10px 8px; } }

.ft-card { margin-bottom: var(--sp-3); }
.ft-card .caption { margin-top: 6px; }
.ft-steps { margin: 10px 0 4px; padding-inline-start: 22px; }
.ft-steps li { margin: 6px 0; line-height: 1.5; }
.ft-steps a { white-space: nowrap; }
