.pp-shell{
  background:linear-gradient(180deg,#f4f8fd 0%,#eef4fb 100%);
}
.pp-sync-badge{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:8px 12px;
  background:#eef4fc;
  color:#163b73;
  font-weight:800;
  font-size:.9rem;
}
.pp-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:18px;
  align-items:stretch;
  margin-bottom:16px;
  padding:24px;
  border-radius:24px;
  color:#fff;
  background:linear-gradient(135deg,#102b55 0%,#174b91 52%,#0d7dbb 100%);
  box-shadow:0 14px 36px rgba(13,34,74,.16);
}
.pp-kicker{
  display:inline-block;
  margin-bottom:10px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.2);
  font-size:.78rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.pp-hero h1{
  margin:0 0 10px;
  font-size:clamp(1.9rem,4vw,3.1rem);
  line-height:1.04;
}
.pp-hero p{
  max-width:820px;
  margin:0;
  color:rgba(255,255,255,.9);
  line-height:1.6;
}
.pp-rule-card{
  display:flex;
  flex-direction:column;
  gap:8px;
  justify-content:center;
  padding:18px;
  border-radius:20px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.2);
}
.pp-rule-card span{font-size:.86rem;opacity:.88;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.pp-rule-card strong{font-size:1.18rem;line-height:1.35}
.pp-rule-card small{opacity:.88;line-height:1.45}
.pp-grid{
  display:grid;
  gap:16px;
  margin-bottom:16px;
}
.pp-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.pp-main-grid{grid-template-columns:1fr 1.2fr 1fr;align-items:start}
.pp-calendar-grid{grid-template-columns:1fr}
.pp-lists-grid{grid-template-columns:1fr 1fr;align-items:start}
.pp-card{
  background:#fff;
  border:1px solid var(--vc-line);
  border-radius:22px;
  box-shadow:var(--vc-shadow);
  padding:18px;
}
.pp-stat{
  min-height:128px;
}
.pp-stat span{
  display:block;
  color:var(--vc-muted);
  font-size:.86rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
  margin-bottom:10px;
}
.pp-stat strong{
  display:block;
  font-size:1.65rem;
  line-height:1.15;
  color:#12233d;
}
.pp-stat small{
  display:block;
  margin-top:10px;
  color:var(--vc-muted);
  line-height:1.4;
}
.pp-panel h2,.pp-calendar-card h2,.pp-tools h2{margin:0 0 4px}
.pp-panel p,.pp-calendar-card p,.pp-tools p{margin:0;color:var(--vc-muted);line-height:1.45}
.pp-section-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  margin-bottom:14px;
}
.pp-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.pp-form-grid label span{
  display:block;
  margin-bottom:6px;
  font-size:.88rem;
  font-weight:800;
  color:#22324d;
}
.pp-form-grid input,.pp-form-grid select{
  width:100%;
  min-height:44px;
  border:1px solid #cbd5e1;
  border-radius:13px;
  padding:10px 12px;
  font:inherit;
  color:#162033;
  background:#fff;
}
.pp-form-grid input:focus,.pp-form-grid select:focus{
  outline:3px solid rgba(14,111,173,.16);
  border-color:#0e6fad;
}
.pp-wide{grid-column:1/-1}
.pp-check-line{
  grid-column:1/-1;
  display:flex;
  gap:10px;
  align-items:center;
  padding:10px 12px;
  border-radius:13px;
  border:1px solid #d9e2ee;
  background:#f9fbff;
}
.pp-check-line input{width:auto;min-height:0}
.pp-check-line span{margin:0!important;color:var(--vc-muted)!important;font-weight:700!important}
.pp-form-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
button,.pp-file-label{font:inherit}
.pp-primary,.pp-secondary,.pp-danger-btn{
  border:0;
  border-radius:13px;
  padding:11px 14px;
  font-weight:800;
  cursor:pointer;
}
.pp-primary{background:#163b73;color:#fff}
.pp-primary:hover{filter:brightness(.98)}
.pp-secondary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  background:#eef4fc;
  color:#163b73;
  border:1px solid #d4e2f3;
  text-decoration:none;
}
.pp-danger-btn{background:#fff1f1;color:#b42318;border:1px solid #ffd0d0}
.pp-result-card{
  margin-top:14px;
  padding:14px;
  border-radius:16px;
  border:1px solid #d9e2ee;
  line-height:1.55;
  background:#f8fbff;
}
.pp-result-card strong{display:block;font-size:1.1rem;margin-bottom:4px}
.pp-result-card .pp-result-line{display:block;color:var(--vc-muted);margin-top:4px}
.pp-result-card.green{border-color:#bdebd5;background:#effcf5;color:#0f5132}
.pp-result-card.amber{border-color:#ffe3a8;background:#fff8e7;color:#7a5300}
.pp-result-card.red{border-color:#ffc7c7;background:#fff2f2;color:#8f1d18}
.pp-muted-result{color:var(--vc-muted)}
.pp-calendar-head{align-items:center}
.pp-legend{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
  color:var(--vc-muted);
  font-size:.88rem;
  font-weight:700;
}
.pp-legend i{
  display:inline-block;
  width:10px;
  height:10px;
  border-radius:50%;
  margin-right:5px;
}
.pp-legend .green{background:#0f8b57}.pp-legend .amber{background:#f59e0b}.pp-legend .red{background:#b42318}.pp-legend .risk{background:#7c3aed}
.pp-calendar{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:9px;
}
.pp-day{
  min-height:116px;
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:10px;
  border-radius:16px;
  border:1px solid #d8e3ef;
  background:#fff;
  overflow:hidden;
}
.pp-day.green{background:#f0fbf5;border-color:#bfe8d3}
.pp-day.amber{background:#fff8e9;border-color:#ffe0a8}
.pp-day.red{background:#fff1f1;border-color:#ffc8c8}
.pp-day.expected-risk{box-shadow:inset 0 0 0 2px rgba(124,58,237,.2)}
.pp-day.test-day{box-shadow:inset 0 0 0 2px rgba(14,111,173,.35)}
.pp-day-head{
  display:flex;
  justify-content:space-between;
  gap:8px;
  align-items:center;
}
.pp-day-date{font-weight:900;color:#14233b}
.pp-day-week{font-size:.78rem;color:var(--vc-muted);font-weight:800;text-transform:uppercase}
.pp-day-balance{font-size:1.02rem;font-weight:900;color:#15243c}
.pp-day-meta{font-size:.76rem;color:var(--vc-muted);line-height:1.35}
.pp-chip-row{display:flex;gap:4px;flex-wrap:wrap;margin-top:auto}
.pp-chip{
  display:inline-flex;
  align-items:center;
  gap:4px;
  border-radius:999px;
  padding:3px 7px;
  font-size:.7rem;
  font-weight:900;
  white-space:nowrap;
}
.pp-chip.income{background:#dff9eb;color:#0d6b42}
.pp-chip.outgoing{background:#fff0d6;color:#8a5300}
.pp-chip.repay{background:#e7f0ff;color:#174b91}
.pp-chip.risk{background:#eee6ff;color:#6d28d9}
.pp-chip.living{background:#eef2f7;color:#475569}
.pp-list{display:grid;gap:10px}
.pp-empty{padding:14px;border-radius:14px;background:#f8fbff;border:1px dashed #cbd5e1;color:var(--vc-muted)}
.pp-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:start;
  padding:12px;
  border-radius:15px;
  border:1px solid #dce5f0;
  background:#fbfdff;
}
.pp-item h3{margin:0 0 4px;font-size:1rem}
.pp-item p{margin:0;color:var(--vc-muted);line-height:1.45;font-size:.9rem}
.pp-item strong{white-space:nowrap;color:#14233b}
.pp-item-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;grid-column:1/-1}
.pp-mini-btn{
  border:1px solid #d4e2f3;
  background:#eef4fc;
  color:#163b73;
  border-radius:10px;
  padding:7px 9px;
  font-weight:800;
  cursor:pointer;
}
.pp-mini-btn.danger{background:#fff1f1;color:#b42318;border-color:#ffd0d0}
.pp-tools{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin-bottom:32px;
}
.pp-tool-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.pp-file-label input{display:none}
.pp-tag{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:3px 8px;
  font-size:.74rem;
  font-weight:900;
  background:#edf4fb;
  color:#163b73;
  margin-right:5px;
}
.pp-tag.red{background:#fff1f1;color:#b42318}.pp-tag.green{background:#eafaf1;color:#0f8b57}.pp-tag.amber{background:#fff7e6;color:#9a6700}.pp-tag.purple{background:#eee6ff;color:#6d28d9}
@media (max-width:1120px){
  .pp-hero{grid-template-columns:1fr}
  .pp-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pp-main-grid{grid-template-columns:1fr}
  .pp-lists-grid{grid-template-columns:1fr}
  .pp-calendar{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:720px){
  .pp-summary-grid{grid-template-columns:1fr}
  .pp-form-grid{grid-template-columns:1fr}
  .pp-calendar{grid-template-columns:1fr}
  .pp-day{min-height:auto}
  .pp-tools{align-items:stretch;flex-direction:column}
  .pp-tool-actions{justify-content:flex-start}
  .pp-section-head{flex-direction:column}
}

/* Payback Planner Build 2 */
.pp-calendar-grid{
  grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);
  align-items:start;
}
.pp-day{
  text-align:left;
  font:inherit;
  cursor:pointer;
}
.pp-day:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 22px rgba(20,35,60,.08);
}
.pp-day.selected-day{
  outline:3px solid rgba(14,111,173,.35);
  outline-offset:2px;
}
.pp-day.planned-day{
  box-shadow:inset 0 0 0 2px rgba(22,59,115,.22);
}
.pp-chip.promised{background:#dbeafe;color:#1d4ed8}
.pp-tag.blue{background:#dbeafe;color:#1d4ed8}
.pp-commit-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  margin-top:12px;
}
.pp-panel-note{
  margin-top:10px!important;
  font-size:.88rem;
}
.pp-day-detail-card{
  position:sticky;
  top:86px;
}
.pp-day-detail{
  display:grid;
  gap:10px;
}
.pp-detail-status{
  border-radius:16px;
  padding:13px;
  border:1px solid #d9e2ee;
  background:#f8fbff;
}
.pp-detail-status span{
  display:block;
  color:var(--vc-muted);
  font-weight:800;
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.pp-detail-status strong{
  display:block;
  margin-top:4px;
  font-size:1.35rem;
}
.pp-detail-status small{
  display:block;
  margin-top:6px;
  line-height:1.45;
  color:var(--vc-muted);
}
.pp-detail-status.green{background:#effcf5;border-color:#bdebd5;color:#0f5132}
.pp-detail-status.amber{background:#fff8e7;border-color:#ffe3a8;color:#7a5300}
.pp-detail-status.red{background:#fff2f2;border-color:#ffc7c7;color:#8f1d18}
.pp-detail-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid #edf2f7;
}
.pp-detail-row span{color:var(--vc-muted);font-weight:700}
.pp-detail-row strong{text-align:right;color:#14233b}
.pp-day-detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}
.pp-detail-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px;
}
.pp-detail-list li{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:9px 10px;
  border-radius:12px;
  background:#f8fbff;
  border:1px solid #e2e8f0;
}
.pp-detail-list span{color:var(--vc-muted);font-size:.9rem}
.pp-detail-list strong{white-space:nowrap;color:#14233b}
.pp-repayment-item{border-color:#cfe0f5;background:#f8fbff}
@media (max-width:1120px){
  .pp-calendar-grid{grid-template-columns:1fr}
  .pp-day-detail-card{position:static}
}

/* Payback Planner Build 3 */
.pp-decision-grid{
  grid-template-columns:1.2fr 1fr 1fr;
  align-items:stretch;
}
.pp-decision-card{
  min-height:220px;
}
.pp-decision-body,
.pp-green-dates,
.pp-blockers{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.pp-decision-main{
  border-radius:16px;
  padding:14px;
  border:1px solid #d9e2ee;
  background:#f8fbff;
}
.pp-decision-main strong,
.pp-decision-main span{
  display:block;
}
.pp-decision-main strong{
  font-size:1.05rem;
  color:#12233d;
  margin-bottom:6px;
}
.pp-decision-main span{
  color:#475569;
  line-height:1.45;
}
.pp-decision-main.green{border-color:#bdebd5;background:#effcf5}
.pp-decision-main.red{border-color:#ffc7c7;background:#fff2f2}
.pp-promise-line{
  display:grid;
  gap:6px;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid #d4e2f3;
  background:#f7fbff;
}
.pp-promise-line span{
  font-size:.78rem;
  color:var(--vc-muted);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.pp-promise-line strong{
  color:#163b73;
  line-height:1.45;
}
.pp-decision-chips{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.pp-decision-chip{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:7px 10px;
  font-weight:900;
  font-size:.82rem;
  border:1px solid #d9e2ee;
  background:#f8fafc;
  color:#334155;
}
.pp-decision-chip.green{background:#effcf5;border-color:#bdebd5;color:#0f5132}
.pp-decision-chip.amber{background:#fff8e7;border-color:#ffe3a8;color:#7a5300}
.pp-decision-chip.red{background:#fff2f2;border-color:#ffc7c7;color:#8f1d18}
.pp-decision-chip.blue{background:#eef4fc;border-color:#d4e2f3;color:#163b73}
.pp-safe-date{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  width:100%;
  border:1px solid #bdebd5;
  border-radius:14px;
  background:#effcf5;
  color:#0f5132;
  padding:11px 12px;
  cursor:pointer;
  text-align:left;
}
.pp-safe-date:hover{filter:brightness(.985)}
.pp-safe-date.risk{
  border-color:#d8c4ff;
  background:#f5f0ff;
  color:#5b21b6;
}
.pp-safe-date span,
.pp-safe-date strong{display:block}
.pp-blocker{
  display:grid;
  gap:5px;
  border-radius:14px;
  padding:12px;
  border:1px solid #d9e2ee;
  background:#f8fafc;
}
.pp-blocker strong{color:#12233d}
.pp-blocker span{color:#475569;line-height:1.4}
.pp-blocker.green{background:#effcf5;border-color:#bdebd5}
.pp-blocker.amber{background:#fff8e7;border-color:#ffe3a8}
.pp-blocker.red{background:#fff2f2;border-color:#ffc7c7}
.pp-manual-repayment-form{
  display:grid;
  grid-template-columns:1.2fr .8fr .8fr auto;
  gap:10px;
  align-items:end;
  padding:12px;
  margin-bottom:12px;
  border:1px solid #d9e2ee;
  border-radius:16px;
  background:#f8fbff;
}
.pp-manual-repayment-form label span{
  display:block;
  margin-bottom:5px;
  font-size:.8rem;
  font-weight:900;
  color:#22324d;
}
.pp-manual-repayment-form input{
  width:100%;
  min-height:42px;
  border:1px solid #cbd5e1;
  border-radius:12px;
  padding:9px 10px;
  font:inherit;
}
@media (max-width:1100px){
  .pp-decision-grid{grid-template-columns:1fr}
  .pp-manual-repayment-form{grid-template-columns:1fr 1fr}
  .pp-manual-repayment-form button{grid-column:1/-1}
}
@media (max-width:680px){
  .pp-manual-repayment-form{grid-template-columns:1fr}
}

/* Payback Planner v1.4.0 final usability + review patch */
.pp-calendar-card{
  max-height:calc(100vh - 108px);
  overflow:auto;
  overscroll-behavior:contain;
}
.pp-day-detail-card{
  max-height:calc(100vh - 108px);
  overflow:auto;
  overscroll-behavior:contain;
}
.pp-day{
  min-height:94px;
}
.pp-day-status{
  display:inline-flex;
  align-self:flex-start;
  border-radius:999px;
  padding:3px 7px;
  background:rgba(255,255,255,.58);
  color:#475569;
  font-size:.72rem;
  font-weight:900;
  line-height:1.2;
}
.pp-day-meta{
  display:none!important;
}
.pp-review-card{
  margin-bottom:16px;
  border-color:#ffd0d0;
  background:#fffafa;
}
.pp-review-list{
  display:grid;
  gap:10px;
}
.pp-review-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:start;
  padding:12px;
  border-radius:15px;
  border:1px solid #ffd0d0;
  background:#fff5f5;
}
.pp-review-row h3{
  margin:0 0 5px;
  color:#8f1d18;
}
.pp-review-row p{
  margin:0 0 5px;
  color:#64748b;
  line-height:1.4;
}
.pp-review-row strong{
  color:#14233b;
  white-space:nowrap;
}
.pp-review-actions{
  grid-column:1/-1;
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  justify-content:flex-end;
}
.pp-review-inline{
  color:#b42318!important;
  font-weight:800;
}
.pp-detail-list li.pp-detail-cash{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
}
.pp-detail-cash-main{
  display:grid;
  gap:4px;
}
.pp-detail-cash-main span{
  font-weight:800;
  color:#14233b;
}
.pp-detail-cash-main em{
  font-style:normal;
  color:#64748b;
  font-size:.84rem;
  line-height:1.35;
}
.pp-cash-actions{
  grid-column:1/-1;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  justify-content:flex-end;
  margin-top:4px;
}
.pp-detail-cash.paid{
  border-color:#bdebd5;
  background:#effcf5;
}
.pp-detail-cash.skipped,
.pp-detail-cash.needs_review{
  border-color:#ffd0d0;
  background:#fff7f7;
}
.pp-detail-status small{
  font-size:.95rem;
  font-weight:700;
}
@media (max-width:1120px){
  .pp-day-detail-card{
    order:-1;
    position:sticky;
    top:72px;
    z-index:6;
    max-height:60vh;
    overflow:auto;
  }
  .pp-calendar-card{
    max-height:none;
    overflow:visible;
  }
}
@media (max-width:720px){
  .pp-review-row{
    grid-template-columns:1fr;
  }
  .pp-review-actions{
    justify-content:flex-start;
  }
  .pp-day-detail-card{
    max-height:none;
    position:static;
  }
}

/* Safe Repayment Planner v1.4.1 surgical UI correction
   Scope: wording, dynamic labels, compact calendar cards, stable 1/2/3 form order.
   No page restructuring and no typography increase. */
.pp-hero h1{
  font-size:clamp(1.85rem,3.4vw,2.85rem);
}
.settings-panel{order:1}
.event-panel{order:2}
.repay-panel{order:3}
.pp-calendar{
  grid-template-columns:repeat(7,minmax(96px,1fr));
  align-items:stretch;
}
.pp-calendar-card{
  overflow-x:auto;
}
.pp-day{
  min-width:0;
  min-height:104px;
  gap:5px;
  padding:9px;
}
.pp-day-head{
  align-items:flex-start;
}
.pp-day-date{
  display:inline-grid;
  grid-template-rows:auto auto;
  gap:0;
  line-height:1;
  min-width:32px;
}
.pp-day-number{
  display:block;
  font-size:1rem;
  font-weight:900;
  line-height:1;
}
.pp-day-month{
  display:block;
  margin-top:2px;
  font-size:.72rem;
  font-weight:900;
  line-height:1;
  text-transform:uppercase;
  color:#64748b;
}
.pp-day-week{
  font-size:.7rem;
  line-height:1.05;
}
.pp-day-balance{
  font-size:.94rem;
  line-height:1.15;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.pp-day-status{
  width:max-content;
  max-width:100%;
  padding:2px 6px;
  font-size:.65rem;
  line-height:1.1;
  letter-spacing:.04em;
}
.pp-chip-row{
  gap:3px;
  overflow:hidden;
}
.pp-chip{
  max-width:100%;
  padding:2px 6px;
  font-size:.64rem;
  line-height:1.15;
  overflow:hidden;
  text-overflow:ellipsis;
}
.pp-chip.promised,
.pp-chip.repay{
  max-width:86px;
}
@media (max-width:1120px){
  .settings-panel{order:1}
  .event-panel{order:2}
  .repay-panel{order:3}
  .pp-calendar{grid-template-columns:repeat(4,minmax(104px,1fr));}
}
@media (max-width:720px){
  .settings-panel{order:1}
  .event-panel{order:2}
  .repay-panel{order:3}
  .pp-calendar{grid-template-columns:1fr;}
  .pp-day{min-height:auto;}
}
