
:root{
  --page:#f5f7fb;
  --surface:#ffffff;
  --surface-soft:#f8fafc;
  --ink:#172033;
  --muted:#667085;
  --line:#e3e8f0;
  --blue:#2563eb;
  --blue-dark:#173b8f;
  --purple:#7c3aed;
  --cyan:#0891b2;
  --green:#067647;
  --amber:#9a5a00;
  --red:#b42318;
  --shadow:0 12px 32px rgba(31,42,68,.08);
  --radius:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
  line-height:1.65;
  background:
    radial-gradient(900px 420px at 4% -8%,rgba(37,99,235,.11),transparent 60%),
    radial-gradient(760px 380px at 100% 0,rgba(124,58,237,.09),transparent 58%),
    var(--page);
}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
.wide-container{width:calc(100% - 24px);max-width:none;margin:0 auto}
.home-header{padding:12px 0}
.masthead{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:24px;
  align-items:end;
  padding:26px 30px;
  border:1px solid rgba(255,255,255,.8);
  border-radius:22px;
  background:linear-gradient(135deg,#ffffff 0%,#f7faff 60%,#f7f4ff 100%);
  box-shadow:var(--shadow);
}
.eyebrow{font-size:.74rem;font-weight:850;letter-spacing:.16em;color:var(--blue)}
.masthead h1{
  margin:4px 0 7px;
  font-size:clamp(2.05rem,3.4vw,4.1rem);
  line-height:1;
  letter-spacing:-.04em;
  color:#14213d;
}
.masthead p{margin:0;color:#526077;font-size:1.02rem}
.masthead-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:520px}
.masthead-meta span{
  padding:7px 11px;border-radius:999px;
  background:#fff;border:1px solid var(--line);
  color:#526077;font-size:.82rem;white-space:nowrap
}
.home-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) clamp(320px,21vw,410px);
  gap:14px;align-items:start
}
.home-main{min-width:0;display:grid;gap:14px}
.home-sidebar{
  min-width:0;display:grid;gap:12px;
  position:sticky;top:10px;max-height:calc(100vh - 20px);overflow:auto
}
.content-card,.tool-card,.info-card,.detail-card{
  background:rgba(255,255,255,.97);
  border:1px solid rgba(227,232,240,.95);
  border-radius:var(--radius);
  box-shadow:var(--shadow)
}
.content-card{padding:22px}
.tool-card,.info-card{padding:17px}
.section-heading{
  display:grid;grid-template-columns:minmax(0,auto) minmax(280px,.55fr);
  gap:20px;align-items:end;padding-bottom:15px;
  border-bottom:1px solid var(--line);margin-bottom:16px
}
.section-heading h2{margin:2px 0 0;font-size:clamp(1.5rem,2vw,2.2rem);line-height:1.1;color:#182a4d}
.section-heading p{margin:0;color:var(--muted);font-size:.92rem}
.section-kicker{color:var(--blue);font-size:.72rem;font-weight:850;letter-spacing:.15em}
.tool-card-title{display:flex;justify-content:space-between;gap:8px;align-items:baseline;margin-bottom:12px;font-weight:850;color:#1d3156}
.tool-card-title small{font-weight:500;color:var(--muted)}
.segmented{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;border-radius:13px;background:#eef2ff}
.segmented button{border:0;border-radius:9px;padding:9px;background:transparent;color:#43516a;font:inherit;font-weight:800;cursor:pointer}
.segmented button.active{color:#fff;background:linear-gradient(135deg,var(--blue),var(--purple));box-shadow:0 7px 16px rgba(37,99,235,.25)}
.field{display:grid;gap:5px;margin-top:11px}
.field label{font-size:.78rem;color:#58657a;font-weight:800}
.field input[type=search],.field select{
  width:100%;min-width:0;padding:10px;border:1px solid var(--line);
  border-radius:11px;background:#fff;color:var(--ink);font:inherit
}
.filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.check-field{display:flex;gap:8px;align-items:center;margin-top:11px;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:#fff}
.reset-btn{width:100%;border:0;border-radius:11px;margin-top:10px;padding:10px;background:#172033;color:#fff;font:inherit;font-weight:850;cursor:pointer}
.result-line{margin-top:10px;color:var(--muted);font-size:.84rem}
.result-count{color:var(--blue);font-weight:850}
.info-card h3{margin:0 0 10px;color:#1d3156}
.info-card p{margin:0;color:var(--muted);font-size:.88rem}
.legend-list{display:grid;gap:9px;color:#4f5b6c;font-size:.86rem}
.legend-row{display:flex;gap:8px;align-items:center}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%}
.dot.new{background:#2563eb}.dot.existing{background:#7c3aed}
.rate-source{display:inline-flex;padding:2px 7px;border-radius:999px;font-size:.7rem;font-weight:850;white-space:nowrap}
.rate-source.official{background:#ecfdf3;color:var(--green)}
.rate-source.third{background:#fff4d8;color:#8a4b00;border:1px solid #f1ca72}
.status{display:inline-flex;padding:3px 9px;border-radius:999px;font-size:.74rem;font-weight:850}
.status.ok{background:#ecfdf3;color:var(--green)}
.status.partial{background:#fff4d8;color:#8a5700}
.status.unknown{background:#fef3f2;color:var(--red)}
.bar-list{display:grid;gap:9px}
.bar-row{display:grid;grid-template-columns:minmax(190px,16vw) minmax(0,1fr);gap:15px;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#fff,#fbfcff)}
.bank-meta strong{font-size:.98rem;color:#1d3156}
.bank-meta .bar-note{margin-top:5px;color:var(--muted);font-size:.79rem}
.dual-bars{display:grid;gap:7px}
.dual-line{display:grid;grid-template-columns:54px minmax(100px,1fr) minmax(195px,.34fr);gap:8px;align-items:center}
.dual-label{font-size:.8rem;font-weight:850}
.track{position:relative;height:19px;overflow:hidden;border-radius:999px;background:#edf1f7}
.fill{height:100%;min-width:3px;border-radius:999px}
.fill.new{background:linear-gradient(90deg,#2563eb,#60a5fa)}
.fill.existing{background:linear-gradient(90deg,#7c3aed,#c084fc)}
.fill.unverified{
  background-image:repeating-linear-gradient(135deg,#e79013 0,#e79013 8px,#f8d98c 8px,#f8d98c 16px);
  outline:1px dashed #8b5000;outline-offset:-1px
}
.dual-value{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:.79rem}
.no-value{font-size:.75rem;color:var(--muted);padding-left:6px;line-height:19px}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fff}
table{width:100%;min-width:1320px;border-collapse:collapse}
th,td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{position:sticky;top:0;z-index:2;background:#eef3ff;color:#29384c;white-space:nowrap}
tbody tr:hover td{background:#fafcff}
.name-cell a{font-weight:850}
.source-list{display:flex;flex-wrap:wrap;gap:5px}
.source-chip{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef3ff;border:1px solid #d8e2ff;font-size:.76rem}
.source-chip.third-party{background:#fff4d8;border-color:#f1ca72;color:#824800}
.empty-state{text-align:center;color:var(--muted);padding:28px}
.home-footer{padding:20px 2px 34px;color:var(--muted);font-size:.85rem}

/* Standardized individual bank pages */
.detail-body{background:var(--page)}
.detail-container{width:min(1180px,calc(100% - 28px));margin:0 auto}
.detail-hero{padding:22px 0 14px}
.detail-hero-panel{
  color:#fff;border-radius:24px;padding:28px;
  background:
    radial-gradient(400px 240px at 100% 0,rgba(255,255,255,.16),transparent 70%),
    linear-gradient(135deg,#15284b,#2454b8 58%,#6935b8);
  box-shadow:0 18px 42px rgba(30,52,105,.2)
}
.back-link{display:inline-flex;margin-bottom:12px;color:#dbeafe!important}
.detail-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.detail-title-row h1{margin:0 0 7px;font-size:clamp(2rem,4vw,3.3rem);line-height:1.05}
.detail-title-row p{margin:0;color:#dbeafe;max-width:850px}
.detail-status{background:rgba(255,255,255,.92)!important;color:#17324d!important}
.detail-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:20px}
.detail-kpi{background:#fff;border:1px solid rgba(255,255,255,.9);border-radius:15px;padding:15px;box-shadow:0 8px 20px rgba(15,23,42,.13);color:var(--ink)}
.detail-kpi .label{color:var(--muted);font-size:.8rem;font-weight:750}
.detail-kpi .value{margin-top:4px;color:#172033;font-size:1.13rem;font-weight:850;line-height:1.35;overflow-wrap:anywhere}
.detail-main{padding:6px 0 42px}
.detail-card{padding:21px;margin:14px 0}
.detail-card h2{margin:0 0 8px;color:#1d3156;font-size:1.28rem}
.detail-card .intro{margin:0 0 15px;color:var(--muted)}
.kv{display:grid;grid-template-columns:220px 1fr;border-top:1px solid var(--line)}
.kv div{padding:13px 14px;border-bottom:1px solid var(--line)}
.kv div:nth-child(odd){font-weight:850;background:var(--surface-soft)}
.tier-tabs{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:14px}
.tier-tabs button{border:1px solid var(--line);border-radius:999px;padding:9px 13px;background:#fff;font:inherit;font-weight:800;cursor:pointer}
.tier-tabs button.active{background:#172033;color:#fff;border-color:#172033}
.tier-panel{display:none}.tier-panel.active{display:block}
.combo-chart-wrap{border:1px solid var(--line);border-radius:16px;padding:14px;background:linear-gradient(180deg,#fff,#fbfcff)}
.combo-chart{width:100%;height:auto;display:block}
.chart-grid{stroke:#dfe5ef;stroke-width:1}.chart-grid.vertical{stroke-dasharray:4 6}
.chart-axis{stroke:#667085;stroke-width:1.3}
.axis-label{font-size:12px;fill:#667085}.axis-title{font-size:13px;fill:#475467;font-weight:700}
.tier-bar{opacity:.8}.bar-rate-label{font-size:13px;fill:#172033;font-weight:850}
.bar-range-label{font-size:11px;fill:#fff;font-weight:800}
.effective-line{fill:none;stroke:#172033;stroke-width:4;stroke-linejoin:round;stroke-linecap:round}
.effective-line.unverified{stroke:#9a5b00;stroke-dasharray:8 7}
.effective-point{fill:#fff;stroke:#172033;stroke-width:3}
.effective-label{font-size:12px;fill:#172033;font-weight:850}
.chart-key{display:flex;flex-wrap:wrap;gap:16px;margin-top:8px;color:#536075;font-size:.88rem}
.chart-key span{display:flex;align-items:center;gap:7px}
.key-box{display:inline-block;width:16px;height:10px;border-radius:3px;background:#2563eb;opacity:.8}
.key-line{display:inline-block;width:20px;border-top:4px solid #172033}
.unverified-key{background:#fff4d8;border:1px solid #f1ca72;color:#8a4b00;padding:2px 8px;border-radius:999px}
.combo-caption{margin:9px 0 0;color:#4f5b70}
.third-party-alert{padding:15px 17px;border-radius:14px;background:#fff4d8;border:1px solid #f1ca72;color:#744000}
.sources ul{margin:8px 0 0 18px;padding:0}.sources li{margin:7px 0;overflow-wrap:anywhere}
.detail-footer{padding:10px 0 36px;color:var(--muted);font-size:.86rem}

@media(max-width:1320px){
  .home-layout{grid-template-columns:1fr}
  .home-sidebar{position:static;max-height:none;overflow:visible;grid-template-columns:minmax(320px,1.2fr) minmax(220px,.6fr) minmax(220px,.6fr);order:-1}
  .tool-card{grid-column:1}.section-heading{grid-template-columns:1fr}
}
@media(max-width:900px){
  .wide-container{width:calc(100% - 12px)}
  .masthead{grid-template-columns:1fr;padding:20px}
  .masthead-meta{justify-content:flex-start;max-width:none}
  .home-sidebar{grid-template-columns:1fr 1fr}.tool-card{grid-column:1/-1}
  .bar-row{grid-template-columns:1fr}.dual-line{grid-template-columns:50px minmax(100px,1fr)}.dual-value{grid-column:2}
  .detail-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .wide-container{width:100%}.home-header{padding-top:0}
  .masthead,.content-card,.tool-card,.info-card{border-radius:0;box-shadow:none;border-left:0;border-right:0}
  .masthead{padding:18px 14px}.masthead-meta{display:grid;grid-template-columns:1fr}
  .home-layout,.home-main{gap:8px}.home-sidebar{grid-template-columns:1fr}
  .content-card,.tool-card,.info-card{padding:14px}.filter-grid{grid-template-columns:1fr}
  .detail-container{width:min(100% - 16px,1180px)}
  .detail-hero-panel,.detail-card{padding:17px}.detail-kpis{grid-template-columns:1fr}
  .kv{grid-template-columns:1fr}.kv div:nth-child(odd){padding-bottom:4px;border-bottom:0}.kv div:nth-child(even){padding-top:4px}
}


/* v8 detail readability */
.field-label{font-weight:850;background:var(--surface-soft)}
.field-value{min-width:0}
.field-paragraph{margin:0 0 7px}
.field-paragraph:last-child{margin-bottom:0}
.field-list{margin:0;padding-left:1.2rem;display:grid;gap:7px}
.field-list li{padding-left:2px}
.field-list strong,.field-paragraph strong{color:#1d3156}
.compact-table table{min-width:560px}
.compact-table th,.compact-table td{padding:10px 12px}
@media(max-width:620px){
  .field-list{padding-left:1.05rem}
}


/* v9 runtime data loading */
.loading-card,
.page-error{
  width:min(760px,100%);
  margin:30px auto;
  padding:24px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  box-shadow:var(--shadow);
}
.page-error h1{margin-top:0;color:#1d3156}
.page-error code{padding:2px 6px;border-radius:5px;background:#eef2ff}


/* v10 homepage responsive containment */
html,
body{
  max-width:100%;
}

body{
  overflow-x:hidden;
}

/* Grid and card children must be allowed to shrink below their intrinsic width. */
.home-layout,
.home-main,
.home-sidebar,
.content-card,
.tool-card,
.info-card,
.section-heading,
.bar-list,
.bar-row,
.bank-meta,
.dual-bars,
.dual-line,
.track,
.dual-value,
.table-wrap{
  min-width:0;
  max-width:100%;
}

.content-card,
.tool-card,
.info-card,
.bar-row,
.table-wrap{
  width:100%;
}

.bank-meta,
.bank-meta a,
.bank-meta strong,
.bank-meta .bar-note,
.dual-value,
.dual-value strong{
  overflow-wrap:anywhere;
  word-break:break-word;
}

.table-wrap{
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
  touch-action:pan-x pan-y;
}

/* The table remains wide, but only its own wrapper scrolls. */
.table-wrap table{
  width:max-content;
  min-width:1320px;
  max-width:none;
}

@media(max-width:900px){
  .bar-row{
    width:100%;
    grid-template-columns:minmax(0,1fr);
  }

  .dual-line{
    grid-template-columns:50px minmax(0,1fr);
  }

  .dual-value{
    grid-column:2;
    min-width:0;
    max-width:100%;
  }
}

@media(max-width:620px){
  .wide-container{
    width:100%;
    max-width:100%;
  }

  .home-layout,
  .home-main,
  .home-sidebar{
    width:100%;
    max-width:100%;
  }

  .content-card,
  .tool-card,
  .info-card{
    width:100%;
    max-width:100%;
  }

  .bar-row{
    display:block;
    width:100%;
    max-width:100%;
    padding:13px 12px;
    overflow:hidden;
  }

  .dual-bars{
    width:100%;
    margin-top:12px;
  }

  /* Mobile rate row:
     label and value share the first row; the bar uses the full row below. */
  .dual-line{
    display:grid;
    width:100%;
    grid-template-columns:minmax(0,1fr) minmax(0,auto);
    grid-template-areas:
      "label value"
      "track track";
    gap:6px 10px;
    align-items:center;
  }

  .dual-label{
    grid-area:label;
    min-width:0;
  }

  .dual-value{
    grid-area:value;
    grid-column:auto;
    min-width:0;
    max-width:min(62vw,230px);
    justify-content:flex-end;
    text-align:right;
    line-height:1.35;
  }

  .dual-value .rate-source{
    white-space:normal;
    text-align:center;
  }

  .track{
    grid-area:track;
    width:100%;
    min-width:0;
  }

  .bank-meta{
    width:100%;
  }

  .section-heading{
    width:100%;
  }

  .section-heading p{
    overflow-wrap:anywhere;
  }

  .table-wrap{
    width:100%;
    max-width:100%;
    border-radius:10px;
  }
}

@media(max-width:380px){
  .dual-line{
    grid-template-columns:1fr;
    grid-template-areas:
      "label"
      "value"
      "track";
  }

  .dual-value{
    justify-content:flex-start;
    text-align:left;
    max-width:100%;
  }
}


/* v11 favicon + bank chart mobile legibility */
@media(max-width:620px){
  .detail-card .combo-chart-wrap{
    max-width:100%;
    padding:10px 8px 12px;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
  }

  /* Keep enough logical width for the amount-axis labels.
     Scrolling remains contained inside the chart card. */
  .detail-card .combo-chart{
    display:block;
    width:760px;
    max-width:none;
    height:auto;
  }

  /* Larger chart text on phones. */
  .detail-card .axis-label{
    font-size:18px;
    font-weight:750;
  }

  .detail-card .axis-title{
    font-size:19px;
    font-weight:850;
  }

  .detail-card .bar-rate-label{
    font-size:21px;
    font-weight:900;
  }

  .detail-card .bar-range-label{
    font-size:17px;
    font-weight:900;
  }

  .detail-card .effective-label{
    font-size:18px;
    font-weight:900;
  }

  /* Shorter/thinner-looking bars, anchored at the x-axis. */
  .detail-card .tier-bar{
    transform-box:fill-box;
    transform-origin:center bottom;
    transform:scaleY(.66);
    opacity:.88;
  }

  .detail-card .effective-line{
    stroke-width:5;
  }

  .detail-card .effective-point{
    transform-box:fill-box;
    transform-origin:center;
    transform:scale(1.35);
    stroke-width:3.5;
  }

  .detail-card .chart-axis{
    stroke-width:1.8;
  }

  .detail-card .chart-grid{
    stroke-width:1.25;
  }

  .detail-card .chart-key{
    position:sticky;
    left:0;
    width:max-content;
    min-width:100%;
    gap:10px 14px;
    padding-top:8px;
    font-size:.96rem;
    background:#fff;
  }

  .detail-card .combo-caption{
    position:sticky;
    left:0;
    width:min(100%,calc(100vw - 64px));
    font-size:.97rem;
  }
}

@media(max-width:390px){
  .detail-card .combo-chart{
    width:700px;
  }

  .detail-card .axis-label{
    font-size:19px;
  }

  .detail-card .bar-rate-label{
    font-size:22px;
  }

  .detail-card .bar-range-label{
    font-size:18px;
  }

  .detail-card .effective-label{
    font-size:19px;
  }
}


/* v12 compact homepage comparison */
.comparison-table{
  width:100%;
  min-width:1020px;
  table-layout:fixed;
}

.comparison-table th,
.comparison-table td{
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
}

.comparison-table th:nth-child(1){width:42px}
.comparison-table th:nth-child(2){width:150px}
.comparison-table th:nth-child(3){width:190px}
.comparison-table th:nth-child(4){width:215px}
.comparison-table th:nth-child(5){width:260px}
.comparison-table th:nth-child(6){width:190px}
.comparison-table th:nth-child(7){width:205px}
.comparison-table th:nth-child(8){width:190px}
.comparison-table th:nth-child(9){width:210px}

.rank-cell{
  text-align:center;
  color:var(--muted);
}

.rate-pair{
  display:grid;
  gap:10px;
}

.rate-pair > div{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:3px 7px;
  align-items:start;
  padding-bottom:8px;
  border-bottom:1px solid var(--line);
}

.rate-pair > div:last-child{
  padding-bottom:0;
  border-bottom:0;
}

.rate-pair .rate-source{
  grid-column:2;
  width:max-content;
  max-width:100%;
}

.compact-label{
  display:inline-flex;
  margin-right:6px;
  padding:1px 6px;
  border-radius:999px;
  background:#eef3ff;
  color:#3156a3;
  font-size:.7rem;
  font-weight:850;
  vertical-align:middle;
}

.compact-lines{
  display:grid;
  gap:6px;
}

.compact-lines > div{
  padding-bottom:5px;
  border-bottom:1px solid #edf0f5;
}

.compact-lines > div:last-child{
  padding-bottom:0;
  border-bottom:0;
}

.more-details{
  color:var(--blue);
  font-size:.78rem;
  font-weight:750;
}

.compact-secondary{
  margin-top:9px;
  padding-top:8px;
  border-top:1px dashed var(--line);
  color:#4f5b70;
  font-size:.82rem;
}

.transfer-cell{
  display:grid;
  gap:9px;
}

.transfer-cell > div{
  line-height:1.45;
}

.sources-cell .source-list{
  display:grid;
  justify-items:start;
}

@media(max-width:620px){
  .comparison-table{
    min-width:980px;
  }

  .comparison-table th,
  .comparison-table td{
    padding:10px 9px;
    font-size:.84rem;
  }

  .comparison-table th:nth-child(1){width:38px}
  .comparison-table th:nth-child(2){width:135px}
  .comparison-table th:nth-child(3){width:175px}
  .comparison-table th:nth-child(4){width:205px}
  .comparison-table th:nth-child(5){width:240px}
  .comparison-table th:nth-child(6){width:180px}
  .comparison-table th:nth-child(7){width:195px}
  .comparison-table th:nth-child(8){width:180px}
  .comparison-table th:nth-child(9){width:190px}
}


/* v13 grouped full-width comparison table */
.table-wrap > table.comparison-table{
  width:100%;
  min-width:1180px;
  max-width:none;
  table-layout:fixed;
}

.comparison-table col.col-rank{width:3%}
.comparison-table col.col-bank{width:11%}
.comparison-table col.col-rate-new{width:8%}
.comparison-table col.col-rate-existing{width:8%}
.comparison-table col.col-tier{width:14%}
.comparison-table col.col-conditions{width:17%}
.comparison-table col.col-period{width:11%}
.comparison-table col.col-transfer{width:9%}
.comparison-table col.col-withdraw{width:9%}
.comparison-table col.col-sources{width:10%}

.comparison-table thead .group-header th{
  text-align:center;
  vertical-align:middle;
  background:#e7edff;
  border-bottom:1px solid #cad6f2;
}

.comparison-table thead .sub-header th{
  text-align:center;
  background:#f1f5ff;
  font-size:.82rem;
}

.comparison-table .rate-cell{
  line-height:1.45;
}

.comparison-table .rate-cell .rate-source{
  margin-top:5px;
  white-space:normal;
}

.comparison-table .transfer-cell,
.comparison-table .withdraw-cell{
  display:table-cell;
  line-height:1.5;
}

@media(max-width:620px){
  .table-wrap > table.comparison-table{
    width:100%;
    min-width:1120px;
  }

  .comparison-table col.col-rank{width:38px}
  .comparison-table col.col-bank{width:130px}
  .comparison-table col.col-rate-new{width:105px}
  .comparison-table col.col-rate-existing{width:105px}
  .comparison-table col.col-tier{width:170px}
  .comparison-table col.col-conditions{width:220px}
  .comparison-table col.col-period{width:150px}
  .comparison-table col.col-transfer{width:120px}
  .comparison-table col.col-withdraw{width:120px}
  .comparison-table col.col-sources{width:145px}
}


/* v14 bank tier table width correction */
/* Override the global wide comparison-table rules for the compact,
   three-column table beneath each bank's rate chart. */
.detail-card .compact-table{
  width:100%;
  max-width:100%;
  overflow-x:visible;
}

.detail-card .compact-table > table{
  display:table;
  width:100%;
  min-width:0;
  max-width:100%;
  table-layout:fixed;
}

.detail-card .compact-table th,
.detail-card .compact-table td{
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
  vertical-align:top;
}

.detail-card .compact-table th:nth-child(1),
.detail-card .compact-table td:nth-child(1){
  width:30%;
}

.detail-card .compact-table th:nth-child(2),
.detail-card .compact-table td:nth-child(2){
  width:18%;
  text-align:center;
  white-space:nowrap;
}

.detail-card .compact-table th:nth-child(3),
.detail-card .compact-table td:nth-child(3){
  width:52%;
}

@media(max-width:620px){
  .detail-card .compact-table{
    overflow-x:auto;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
  }

  .detail-card .compact-table > table{
    width:100%;
    min-width:500px;
  }

  .detail-card .compact-table th,
  .detail-card .compact-table td{
    padding:9px 10px;
  }
}


/* v16 cash allocation planner */
.planner-launch-link{
  display:grid;
  gap:2px;
  margin-top:12px;
  padding:12px 13px;
  border:1px solid #cdd9ff;
  border-radius:12px;
  background:linear-gradient(135deg,#eef4ff,#f4edff);
  color:#1d3156;
}
.planner-launch-link strong{font-size:.92rem}
.planner-launch-link span{color:#60708a;font-size:.78rem}

.detail-nav-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:12px;
}
.detail-nav-actions .back-link{margin:0}
.allocator-bank-link{
  display:inline-flex;
  padding:7px 11px;
  border:1px solid rgba(255,255,255,.55);
  border-radius:999px;
  background:rgba(255,255,255,.12);
  color:#fff!important;
  font-size:.84rem;
  font-weight:800;
}
.allocator-bank-link:hover{background:rgba(255,255,255,.2)}

.allocator-body{background:var(--page)}
.allocator-container{
  width:min(1260px,calc(100% - 28px));
  margin:0 auto;
}
.allocator-header{padding:22px 0 12px}
.allocator-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:24px;
  align-items:end;
  padding:27px;
  border-radius:24px;
  color:#fff;
  background:
    radial-gradient(420px 220px at 100% 0,rgba(255,255,255,.17),transparent 72%),
    linear-gradient(135deg,#15284b,#2454b8 58%,#6935b8);
  box-shadow:0 18px 42px rgba(30,52,105,.2);
}
.allocator-hero h1{
  margin:4px 0 8px;
  font-size:clamp(2rem,4vw,3.4rem);
  line-height:1.05;
}
.allocator-hero p{
  max-width:830px;
  margin:0;
  color:#dbeafe;
}
.allocator-hero-actions{
  display:grid;
  gap:8px;
  justify-items:end;
  color:#dbeafe;
  font-size:.85rem;
}
.allocator-home-link{
  display:inline-flex;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.48);
  border-radius:999px;
  color:#fff!important;
  font-weight:800;
}
.allocator-main{padding:4px 0 36px}
.allocator-card{
  margin:14px 0;
  padding:21px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:var(--shadow);
}
.allocator-intro{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);
  gap:18px;
  align-items:start;
}
.allocator-card h2{margin:0 0 8px;color:#1d3156}
.allocator-card p{margin:0;color:var(--muted)}
.privacy-note{
  padding:14px 16px;
  border:1px solid #cdd9ff;
  border-radius:14px;
  background:#f3f6ff;
}
.privacy-note strong{color:#284a94}
.privacy-note p{margin-top:4px;font-size:.86rem}

.allocator-summary{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  margin:14px 0;
}
.allocator-stat{
  min-width:0;
  padding:15px;
  border:1px solid var(--line);
  border-radius:15px;
  background:#fff;
  box-shadow:0 8px 22px rgba(31,42,68,.06);
}
.allocator-stat span{
  display:block;
  color:var(--muted);
  font-size:.78rem;
  font-weight:750;
}
.allocator-stat strong{
  display:block;
  margin-top:5px;
  color:#1d3156;
  font-size:1.12rem;
  overflow-wrap:anywhere;
}
.allocator-stat-primary{
  border-color:#c3d2ff;
  background:linear-gradient(135deg,#eef4ff,#f5efff);
}
.allocator-stat-primary strong{color:#244cb0}
.allocator-stat-danger strong{color:var(--red)}

.allocator-section-heading{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,.6fr);
  gap:18px;
  align-items:end;
  margin-bottom:14px;
}
.allocator-section-heading h2{margin:1px 0 0}
.allocator-section-heading > p{text-align:right;font-size:.85rem}

.allocator-add-grid{
  display:grid;
  grid-template-columns:minmax(190px,.65fr) minmax(320px,1.35fr) auto;
  gap:10px;
  align-items:end;
}
.allocator-add-grid .field{margin:0}
.allocator-add-grid select,
.allocator-settings input,
.allocator-balance-field input,
.allocator-cash-input input{
  font:inherit;
}
.allocator-add-button{
  min-height:42px;
  padding:10px 17px;
  border:0;
  border-radius:11px;
  background:linear-gradient(135deg,var(--blue),var(--purple));
  color:#fff;
  font:inherit;
  font-weight:850;
  cursor:pointer;
}
.allocator-add-button:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.allocator-settings{
  display:flex;
  justify-content:space-between;
  gap:15px;
  align-items:center;
  margin-top:16px;
  padding-top:15px;
  border-top:1px solid var(--line);
}
.allocator-save-toggle{
  display:flex;
  gap:10px;
  align-items:flex-start;
  cursor:pointer;
}
.allocator-save-toggle input{margin-top:4px}
.allocator-save-toggle span{display:grid;gap:2px}
.allocator-save-toggle small{color:var(--muted)}
.allocator-reset-button{
  padding:9px 12px;
  border:1px solid #e5a5a1;
  border-radius:10px;
  background:#fff;
  color:#a42e27;
  font:inherit;
  font-weight:800;
  cursor:pointer;
}
.allocator-notice{
  margin-top:13px;
  padding:10px 12px;
  border-radius:11px;
  font-size:.86rem;
}
.allocator-notice.tone-info{background:#eef4ff;color:#244c99}
.allocator-notice.tone-success{background:#ecfdf3;color:#067647}
.allocator-notice.tone-warning{background:#fff4d8;color:#8a5700}

.allocator-rows{display:grid;gap:11px}
.allocator-row{
  display:grid;
  grid-template-columns:minmax(190px,1.15fr) minmax(180px,.95fr) minmax(130px,.65fr) minmax(185px,.9fr) minmax(170px,.8fr) auto;
  gap:13px;
  align-items:center;
  padding:15px;
  border:1px solid var(--line);
  border-left:6px solid #9aa7bd;
  border-radius:15px;
  background:#fff;
  transition:border-color .15s ease,background .15s ease;
}
.allocator-row.is-maxed{
  border-color:#7fd8a2;
  border-left-color:#12a150;
  background:#f0fdf5;
}
.allocator-row.is-over{
  border-color:#f1a5a0;
  border-left-color:#d33b32;
  background:#fff4f3;
}
.allocator-row.is-unlimited{
  border-left-color:#5c62cf;
  background:#f7f7ff;
}
.allocator-row.is-unknown{
  border-left-color:#d49b21;
  background:#fffaf0;
}
.allocator-row-heading{min-width:0}
.allocator-row-heading h3{margin:0;color:#1d3156}
.allocator-row-heading p{
  margin:3px 0 0;
  font-size:.8rem;
  overflow-wrap:anywhere;
}
.allocator-remove{
  margin-top:8px;
  padding:4px 8px;
  border:1px solid #e1a4a0;
  border-radius:999px;
  background:#fff;
  color:#a8332d;
  font:inherit;
  font-size:.74rem;
  font-weight:800;
  cursor:pointer;
}
.allocator-rate-block{
  display:grid;
  grid-template-columns:auto auto;
  gap:4px 7px;
  align-items:center;
  min-width:0;
}
.allocator-rate{
  color:#244cb0;
  font-size:1.45rem;
  font-weight:900;
}
.allocator-rate-block > strong,
.allocator-rate-block > small{grid-column:1/-1}
.allocator-rate-block > small{
  color:var(--muted);
  overflow-wrap:anywhere;
}
.allocator-capacity-block,
.allocator-status{
  display:grid;
  gap:3px;
}
.allocator-capacity-block span,
.allocator-status span,
.allocator-balance-field > span{
  color:var(--muted);
  font-size:.75rem;
  font-weight:750;
}
.allocator-capacity-block strong,
.allocator-status strong{color:#1d3156}
.allocator-balance-field{display:grid;gap:5px}
.money-input-wrap{
  display:flex;
  align-items:center;
  overflow:hidden;
  border:1px solid #cfd7e6;
  border-radius:10px;
  background:#fff;
}
.money-input-wrap > span{
  padding:9px 0 9px 10px;
  color:#667085;
  font-size:.82rem;
  font-weight:750;
}
.money-input-wrap input{
  width:100%;
  min-width:0;
  padding:9px 10px 9px 5px;
  border:0;
  outline:0;
  background:transparent;
  color:var(--ink);
}
.is-maxed .money-input-wrap{
  border-color:#42b875;
  box-shadow:0 0 0 3px rgba(18,161,80,.11);
}
.is-over .money-input-wrap{
  border-color:#df5c54;
  box-shadow:0 0 0 3px rgba(211,59,50,.11);
}
.is-maxed .allocator-status strong{color:#07853f}
.is-over .allocator-status strong{color:#bd2921}
.is-unknown .allocator-status strong{color:#9a6200}
.allocator-bank-detail{
  display:inline-flex;
  justify-content:center;
  padding:8px 10px;
  border:1px solid #cdd9ff;
  border-radius:10px;
  background:#f5f7ff;
  color:#3156a3;
  font-size:.76rem;
  font-weight:800;
  text-align:center;
}
.allocator-empty{
  padding:25px;
  border:1px dashed #cbd5e1;
  border-radius:14px;
  color:var(--muted);
  text-align:center;
  background:#fafcff;
}
.allocator-empty[hidden]{display:none}

.allocator-cash-input{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(220px,330px);
  gap:15px;
  align-items:center;
  margin-bottom:14px;
  padding:13px 15px;
  border:1px solid #cdd9ff;
  border-radius:14px;
  background:#f5f7ff;
}
.allocator-cash-input label{
  color:#1d3156;
  font-weight:850;
}
.recommendation-list{display:grid;gap:9px}
.recommendation-item{
  display:grid;
  grid-template-columns:38px minmax(220px,1.3fr) minmax(105px,.45fr) minmax(140px,.65fr) minmax(150px,.7fr);
  gap:12px;
  align-items:center;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:13px;
  background:linear-gradient(180deg,#fff,#fafcff);
}
.recommendation-rank{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:50%;
  background:#172033;
  color:#fff;
  font-weight:900;
}
.recommendation-name,
.recommendation-rate,
.recommendation-amount,
.recommendation-target{
  display:grid;
  gap:2px;
  min-width:0;
}
.recommendation-name span,
.recommendation-rate span,
.recommendation-amount span,
.recommendation-target span{
  color:var(--muted);
  font-size:.75rem;
}
.recommendation-name span{overflow-wrap:anywhere}
.recommendation-rate strong{color:#244cb0}
.recommendation-amount strong{color:#08783c}
.unassigned-cash{
  margin-top:12px;
  padding:11px 13px;
  border:1px solid #efca75;
  border-radius:11px;
  background:#fff4d8;
  color:#805100;
}
.allocator-disclaimer ul{
  margin:8px 0 0 20px;
  padding:0;
}
.allocator-disclaimer li{margin:7px 0}

@media(max-width:1100px){
  .allocator-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
  .allocator-row{
    grid-template-columns:minmax(190px,1.2fr) minmax(180px,1fr) minmax(130px,.7fr);
  }
  .allocator-balance-field,
  .allocator-status,
  .allocator-bank-detail{grid-row:2}
  .recommendation-item{
    grid-template-columns:38px minmax(200px,1fr) repeat(3,minmax(110px,.55fr));
  }
}

@media(max-width:760px){
  .allocator-container{width:min(100% - 16px,1260px)}
  .allocator-hero{grid-template-columns:1fr;padding:19px}
  .allocator-hero-actions{justify-items:start}
  .allocator-intro{grid-template-columns:1fr}
  .allocator-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .allocator-section-heading{grid-template-columns:1fr}
  .allocator-section-heading > p{text-align:left}
  .allocator-add-grid{grid-template-columns:1fr}
  .allocator-settings{align-items:flex-start;flex-direction:column}
  .allocator-row{grid-template-columns:1fr 1fr}
  .allocator-row-heading{grid-column:1/-1}
  .allocator-balance-field,
  .allocator-status,
  .allocator-bank-detail{grid-row:auto}
  .allocator-bank-detail{align-self:end}
  .recommendation-item{
    grid-template-columns:34px minmax(0,1fr) minmax(95px,.5fr);
  }
  .recommendation-rate{grid-column:3}
  .recommendation-amount{grid-column:2}
  .recommendation-target{grid-column:3}
}

@media(max-width:520px){
  .allocator-container{width:100%}
  .allocator-header{padding:0}
  .allocator-hero,
  .allocator-card{
    border-radius:0;
    border-left:0;
    border-right:0;
    box-shadow:none;
  }
  .allocator-main{padding-top:0}
  .allocator-card{margin:8px 0;padding:15px}
  .allocator-summary{
    grid-template-columns:1fr 1fr;
    gap:7px;
    padding:0 8px;
  }
  .allocator-stat{padding:12px}
  .allocator-stat-primary{grid-column:1/-1;grid-row:1}
  .allocator-add-grid{gap:7px}
  .allocator-row{grid-template-columns:1fr;padding:13px}
  .allocator-row-heading,
  .allocator-rate-block,
  .allocator-capacity-block,
  .allocator-balance-field,
  .allocator-status,
  .allocator-bank-detail{grid-column:1}
  .allocator-cash-input{grid-template-columns:1fr}
  .recommendation-item{
    grid-template-columns:32px minmax(0,1fr);
  }
  .recommendation-name{grid-column:2}
  .recommendation-rate,
  .recommendation-amount,
  .recommendation-target{grid-column:2}
}


/* v18 plan-level allocator */
.allocator-summary{
  grid-template-columns:repeat(7,minmax(0,1fr));
}
.allocator-stat small{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:.68rem;
  line-height:1.3;
}
.allocator-stat-interest{
  border-color:#bfe4cd;
  background:#f2fcf6;
}
.allocator-stat-interest strong{color:#08783c}

.allocator-row.plan-row{
  grid-template-columns:
    minmax(170px,1.05fr)
    minmax(200px,1.1fr)
    minmax(130px,.7fr)
    minmax(175px,.85fr)
    minmax(190px,.95fr)
    minmax(165px,.8fr)
    auto;
  grid-template-areas:
    "heading rate capacity balance status interest link"
    "tiers tiers tiers tiers tiers tiers tiers";
}
.plan-row .allocator-row-heading{grid-area:heading}
.plan-row .allocator-rate-block{grid-area:rate}
.plan-row .allocator-capacity-block{grid-area:capacity}
.plan-row .allocator-balance-field{grid-area:balance;grid-row:auto}
.plan-row .allocator-status{grid-area:status;grid-row:auto}
.plan-row .allocator-interest-block{grid-area:interest}
.plan-row .allocator-bank-detail{grid-area:link;grid-row:auto}
.plan-row .allocator-tier-breakdown{grid-area:tiers}

.allocator-interest-block{
  display:grid;
  gap:3px;
  min-width:0;
}
.allocator-interest-block > span,
.allocator-interest-block > small{
  color:var(--muted);
  font-size:.75rem;
}
.allocator-interest-block > strong{
  color:#08783c;
  overflow-wrap:anywhere;
}
.is-over .allocator-interest-block > strong,
.is-unknown .allocator-interest-block > strong{
  color:#9a6200;
}

.allocator-tier-breakdown{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  padding-top:12px;
  border-top:1px dashed var(--line);
}
.allocator-tier-chip{
  display:grid;
  grid-template-columns:auto auto;
  gap:2px 8px;
  min-width:150px;
  padding:8px 10px;
  border:1px solid #d8dfeb;
  border-radius:10px;
  background:#f8fafc;
}
.allocator-tier-chip > span{
  color:#4d5a70;
  font-size:.73rem;
}
.allocator-tier-chip > strong{
  color:#244cb0;
  font-size:.86rem;
}
.allocator-tier-chip > small{
  grid-column:1/-1;
  color:var(--muted);
  font-size:.68rem;
}
.allocator-tier-chip.has-balance{
  border-color:#a9bdf5;
  background:#eef4ff;
}
.allocator-tier-chip.unlimited{
  border-color:#c9c4ef;
  background:#f6f4ff;
}
.allocator-tier-chip.unknown{
  border-color:#e8ca83;
  background:#fffaf0;
}

.recommendation-item.plan-recommendation{
  grid-template-columns:
    38px
    minmax(190px,1.15fr)
    minmax(145px,.72fr)
    minmax(135px,.62fr)
    minmax(145px,.68fr)
    minmax(135px,.62fr);
}
.plan-recommendation .recommendation-interest{
  display:grid;
  gap:2px;
  min-width:0;
}
.plan-recommendation .recommendation-interest span{
  color:var(--muted);
  font-size:.75rem;
}
.plan-recommendation .recommendation-interest strong{
  color:#08783c;
}
.recommendation-tier-path{
  grid-column:2/-1;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  padding-top:8px;
  border-top:1px dashed var(--line);
}
.recommendation-tier-path span{
  padding:4px 7px;
  border-radius:999px;
  background:#eef3ff;
  color:#3156a3;
  font-size:.72rem;
  font-weight:750;
}

@media(max-width:1250px){
  .allocator-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
  .allocator-row.plan-row{
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-template-areas:
      "heading heading rate capacity"
      "balance status interest link"
      "tiers tiers tiers tiers";
  }
}

@media(max-width:900px){
  .allocator-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
  .allocator-row.plan-row{
    grid-template-columns:1fr 1fr;
    grid-template-areas:
      "heading rate"
      "capacity balance"
      "status interest"
      "link link"
      "tiers tiers";
  }
  .plan-recommendation.recommendation-item{
    grid-template-columns:34px minmax(0,1fr) minmax(120px,.55fr);
  }
  .plan-recommendation .recommendation-name{grid-column:2}
  .plan-recommendation .recommendation-rate{grid-column:3}
  .plan-recommendation .recommendation-amount{grid-column:2}
  .plan-recommendation .recommendation-target{grid-column:3}
  .plan-recommendation .recommendation-interest{grid-column:2/-1}
  .recommendation-tier-path{grid-column:2/-1}
}

@media(max-width:600px){
  .allocator-summary{grid-template-columns:1fr 1fr}
  .allocator-stat-primary{grid-column:1/-1}
  .allocator-row.plan-row{
    grid-template-columns:1fr;
    grid-template-areas:
      "heading"
      "rate"
      "capacity"
      "balance"
      "status"
      "interest"
      "tiers"
      "link";
  }
  .plan-row .allocator-row-heading,
  .plan-row .allocator-rate-block,
  .plan-row .allocator-capacity-block,
  .plan-row .allocator-balance-field,
  .plan-row .allocator-status,
  .plan-row .allocator-interest-block,
  .plan-row .allocator-bank-detail,
  .plan-row .allocator-tier-breakdown{
    grid-column:1;
  }
  .allocator-tier-chip{min-width:calc(50% - 4px)}
  .plan-recommendation.recommendation-item{
    grid-template-columns:32px minmax(0,1fr);
  }
  .plan-recommendation .recommendation-name,
  .plan-recommendation .recommendation-rate,
  .plan-recommendation .recommendation-amount,
  .plan-recommendation .recommendation-target,
  .plan-recommendation .recommendation-interest,
  .recommendation-tier-path{
    grid-column:2;
  }
}

@media(max-width:420px){
  .allocator-tier-chip{min-width:100%}
}


/* v19 posted-rate overflow and marginal recommendations */
.allocator-tier-chip.posted-overflow-tier{
  border-color:#efaaa5;
  background:#fff4f3;
}
.allocator-tier-chip.posted-overflow-tier > strong{
  color:#b42318;
}

.overflow-ignore-toggle{
  grid-column:1/-1;
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:10px 12px;
  border:1px solid #efc28b;
  border-radius:11px;
  background:#fff8e8;
  cursor:pointer;
}
.overflow-ignore-toggle[hidden]{display:none}
.overflow-ignore-toggle input{margin-top:4px}
.overflow-ignore-toggle span{
  display:grid;
  gap:2px;
}
.overflow-ignore-toggle strong{
  color:#8a5700;
  font-size:.84rem;
}
.overflow-ignore-toggle small{
  color:#806a45;
  font-size:.74rem;
}

.withdrawal-recommendation{
  border-color:#efaaa5;
  background:#fff4f3;
}
.withdrawal-recommendation .recommendation-rank{
  background:#b42318;
}
.withdrawal-recommendation .recommendation-amount strong{
  color:#b42318;
}
.withdrawal-recommendation .recommendation-interest strong{
  color:#8a3d37;
}

.unassigned-cash{
  display:grid;
  gap:5px;
}


/* v20 allocator export/import */
.allocator-config-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}

.allocator-export-button,
.allocator-import-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:9px 12px;
  border:1px solid #aebff1;
  border-radius:10px;
  background:#f4f7ff;
  color:#3156a3;
  font:inherit;
  font-weight:800;
  cursor:pointer;
}

.allocator-export-button:hover,
.allocator-import-button:hover{
  background:#eaf0ff;
}

.allocator-import-button input{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  opacity:0;
  pointer-events:none;
}

.allocator-transfer-note{
  margin:10px 0 0;
  color:var(--muted);
  font-size:.78rem;
}

@media(max-width:760px){
  .allocator-config-actions{
    width:100%;
    justify-content:flex-start;
  }
}

@media(max-width:520px){
  .allocator-config-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .allocator-reset-button{
    grid-column:1/-1;
  }
}


/* v21 formatted money inputs and cross-page plan selection */
.money-input-wrap input{
  font-variant-numeric:tabular-nums;
  letter-spacing:.01em;
}

.multi-bank-toolbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin:0 0 10px;
  padding:10px 12px;
  border:1px solid #d8e0ef;
  border-radius:12px;
  background:#f8faff;
  color:#4f5b70;
  font-size:.84rem;
}

.multi-bank-toolbar > div{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.multi-bank-toolbar button{
  padding:7px 10px;
  border:1px solid #b9c8ed;
  border-radius:9px;
  background:#fff;
  color:#3156a3;
  font:inherit;
  font-weight:800;
  cursor:pointer;
}

.multi-bank-toolbar button:last-child{
  border-color:#3156a3;
  background:#3156a3;
  color:#fff;
}

.multi-bank-toolbar button:disabled{
  opacity:.45;
  cursor:not-allowed;
}

.comparison-table col.col-select{width:3%}
.comparison-table col.col-rank{width:3%}
.comparison-table col.col-bank{width:10.5%}
.comparison-table col.col-rate-new{width:7.7%}
.comparison-table col.col-rate-existing{width:7.7%}
.comparison-table col.col-tier{width:13.6%}
.comparison-table col.col-conditions{width:16.5%}
.comparison-table col.col-period{width:10.7%}
.comparison-table col.col-transfer{width:8.7%}
.comparison-table col.col-withdraw{width:8.7%}
.comparison-table col.col-sources{width:9.9%}

.select-cell{
  text-align:center;
  vertical-align:middle!important;
}

.select-cell input,
#selectAllBanks{
  width:18px;
  height:18px;
  accent-color:#3156a3;
  cursor:pointer;
}

@media(max-width:620px){
  .multi-bank-toolbar{
    align-items:flex-start;
    flex-direction:column;
  }

  .multi-bank-toolbar > div{
    width:100%;
  }

  .multi-bank-toolbar button{
    flex:1 1 auto;
  }

  .comparison-table col.col-select{width:38px}
}


/* v22 apply NEXT DEPOSIT recommendations */
.recommendation-apply-bar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  margin-top:14px;
  padding:14px 15px;
  border:1px solid #a9d9ba;
  border-radius:13px;
  background:linear-gradient(135deg,#f0fcf4,#f6fff9);
}

.recommendation-apply-bar[hidden]{
  display:none;
}

.recommendation-apply-bar > div{
  display:grid;
  gap:3px;
}

.recommendation-apply-bar strong{
  color:#086b3a;
}

.recommendation-apply-bar span{
  color:#4d6a59;
  font-size:.82rem;
}

.recommendation-apply-bar button{
  flex:0 0 auto;
  min-height:42px;
  padding:10px 15px;
  border:1px solid #08783c;
  border-radius:10px;
  background:#08783c;
  color:#fff;
  font:inherit;
  font-weight:850;
  cursor:pointer;
}

.recommendation-apply-bar button:hover{
  background:#056532;
}

.recommendation-apply-bar button:disabled{
  opacity:.45;
  cursor:not-allowed;
}

@media(max-width:680px){
  .recommendation-apply-bar{
    align-items:stretch;
    flex-direction:column;
  }

  .recommendation-apply-bar button{
    width:100%;
  }
}


/* v23 negative NEXT DEPOSIT values and spending sources */
.signed-money-input{
  position:relative;
}

.signed-money-input input{
  padding-right:48px;
}

.cash-sign-toggle{
  align-self:stretch;
  min-width:42px;
  padding:0 10px;
  border:0;
  border-left:1px solid #cfd7e6;
  background:#f5f7ff;
  color:#3156a3;
  font:inherit;
  font-size:1.05rem;
  font-weight:900;
  cursor:pointer;
}

.cash-sign-toggle:hover{
  background:#eaf0ff;
}

.cash-sign-help{
  grid-column:2;
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:.75rem;
}

.spending-recommendation{
  border-color:#e9b36c;
  background:#fff8ec;
}

.spending-recommendation .recommendation-rank{
  background:#a85b00;
}

.spending-recommendation .recommendation-amount strong{
  color:#a34e00;
}

.spending-recommendation .recommendation-interest strong{
  color:#7a551d;
}

@media(max-width:760px){
  .cash-sign-help{
    grid-column:1;
  }
}


/* v24 general current-allocation optimization */
.withdrawal-recommendation .recommendation-interest small{
  display:block;
  margin-top:3px;
  color:#8a3d37;
  font-size:.72rem;
}
