.pbc [hidden] { display: none !important; }

.pbc {
  --pbc-blue: #176bb3;
  --pbc-blue-dark: #0b4f91;
  --pbc-blue-deep: #0a427b;
  --pbc-blue-soft: #edf6fc;
  --pbc-gold: #f3b51b;
  --pbc-text: #18324b;
  --pbc-muted: #6c7c8c;
  --pbc-border: #dfe7ee;
  --pbc-bg: #f6f8fa;
  --pbc-white: #fff;
  --pbc-success: #1c8b62;
  --pbc-danger: #b33636;
  max-width: 980px;
  width: 100%;
  margin: 30px auto;
  padding: 0 16px;
  color: var(--pbc-text);
  font-family: inherit;
  box-sizing: border-box;
  font-size: 15px;
}
.pbc * { box-sizing: border-box; }
.pbc button, .pbc input, .pbc select { font: inherit; }
.pbc button { -webkit-tap-highlight-color: transparent; }
.pbc__hero {
  position: relative;
  overflow: hidden;
  min-height: 176px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 34px 38px;
  background: linear-gradient(110deg, #0a4f91 0%, #176bb3 54%, #2e82c1 100%);
  color: #fff;
  border-top: 4px solid var(--pbc-gold);
}
.pbc__hero:after {
  content: "";
  position: absolute;
  width: 260px;
  height: 260px;
  right: -95px;
  top: -115px;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
}
.pbc__hero-copy { position: relative; z-index: 1; max-width: 720px; }
.pbc__eyebrow { display:block; font-size:11px; letter-spacing:.16em; font-weight:800; opacity:.82; margin-bottom:8px; }
.pbc__hero h2 { margin:0 0 8px; color:#fff; font-size:31px; line-height:1.15; font-weight:800; }
.pbc__hero p { margin:0; max-width:650px; color:#e8f2fa; line-height:1.6; }
.pbc__hero-mark {
  position:relative; z-index:1; flex:0 0 auto; width:72px; height:72px; border-radius:50%;
  display:grid; place-items:center; background:#fff; color:var(--pbc-blue); font-weight:900; font-size:20px;
  box-shadow:0 12px 28px rgba(0,0,0,.12);
}
.pbc-progress {
  display:flex; align-items:center; justify-content:center; gap:10px; padding:18px 10px;
  background:#fff; border:1px solid var(--pbc-border); border-top:0;
}
.pbc-progress__step {
  display:flex; align-items:center; gap:8px; border:0; background:none; color:#7a8793; padding:5px 7px; cursor:pointer; font-size:12px;
}
.pbc-progress__step span { width:25px; height:25px; border:1px solid #cbd6df; border-radius:50%; display:grid; place-items:center; font-size:11px; font-weight:800; }
.pbc-progress__step strong { font-weight:700; }
.pbc-progress__step.is-active, .pbc-progress__step.is-complete { color:var(--pbc-blue); }
.pbc-progress__step.is-active span { color:#fff; background:var(--pbc-blue); border-color:var(--pbc-blue); }
.pbc-progress__step.is-complete span { color:#fff; background:var(--pbc-success); border-color:var(--pbc-success); }
.pbc-progress > i { width:58px; height:1px; background:#dbe3ea; }
.pbc__form { margin-top:18px; }
.pbc-step-panel { scroll-margin-top:25px; }
.pbc-card {
  background:var(--pbc-white); border:1px solid var(--pbc-border); padding:28px; box-shadow:0 2px 10px rgba(22,48,72,.035);
}
.pbc-step-panel[hidden] { display:none !important; }
.pbc-section-title { display:flex; gap:13px; align-items:flex-start; margin-bottom:24px; }
.pbc-section-title--between { justify-content:space-between; gap:18px; }
.pbc-section-title__left { display:flex; gap:13px; align-items:flex-start; }
.pbc-section-title h3 { margin:0 0 5px; color:var(--pbc-blue); font-size:20px; line-height:1.25; font-weight:800; }
.pbc-section-title p { margin:0; color:var(--pbc-muted); font-size:13px; line-height:1.55; }
.pbc-step { flex:0 0 30px; width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:#e9f3fb; color:var(--pbc-blue); font-size:12px; font-weight:900; }
.pbc-grid { display:grid; gap:17px; min-width:0; }
.pbc-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.pbc-retirement-fields { grid-template-columns:minmax(0,1.25fr) minmax(110px,.75fr); }
.pbc-field { display:block; min-width:0; }
.pbc-field > span, .pbc-field__label-row > span { display:block; margin-bottom:7px; font-size:12px; line-height:1.35; font-weight:800; color:#365269; }
.pbc-field small { display:block; margin-top:6px; color:#81909d; font-size:11px; line-height:1.45; }
.pbc-field input, .pbc-field select {
  display:block; width:100%; height:46px; border:1px solid #cfd9e2; border-radius:3px; background:#fff; color:var(--pbc-text); padding:0 12px; font-size:14px; outline:none; transition:border-color .15s, box-shadow .15s, background .15s;
}
.pbc-field input:hover, .pbc-field select:hover { border-color:#aebdca; }
.pbc-field input:focus, .pbc-field select:focus { border-color:var(--pbc-blue); box-shadow:0 0 0 3px rgba(23,107,179,.12); }
.pbc-field input::placeholder { color:#a8b2bb; }
.pbc-field input:disabled, .pbc-field select:disabled { background:#f2f5f7; color:#9aa6af; cursor:not-allowed; }
.pbc-field--wide { margin-top:18px; }
.pbc-field__label-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:7px; }
.pbc-field__label-row > span { margin:0; }
.pbc-link-btn { border:0; background:none; color:var(--pbc-blue); padding:2px 0; font-size:11px; font-weight:800; cursor:pointer; text-decoration:underline; }
.pbc-input-prefix { position:relative; }
.pbc-input-prefix b { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:#7e8c98; font-size:13px; pointer-events:none; }
.pbc-input-prefix input { padding-left:28px; }
.pbc-note { margin-top:18px; padding:13px 15px; border-left:4px solid var(--pbc-blue); background:#f4f8fb; color:#5d6d7a; font-size:12px; line-height:1.55; }
.pbc-note strong { color:#36566f; }
.pbc-note--warning { border-left-color:var(--pbc-gold); background:#fff9ec; }
.pbc-note--info { border-left-color:var(--pbc-blue); }
.pbc-panel-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:24px; }
.pbc-panel-actions--split { justify-content:space-between; }
.pbc-btn {
  min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:8px; border:1px solid transparent; border-radius:3px; padding:10px 18px; cursor:pointer; font-size:12px; font-weight:800; line-height:1.2; transition:background .15s,border-color .15s,transform .1s,box-shadow .15s;
}
.pbc-btn:hover { transform:translateY(-1px); }
.pbc-btn:active { transform:translateY(0); }
.pbc-btn:focus-visible, .pbc-progress__step:focus-visible, .pbc-link-btn:focus-visible { outline:3px solid rgba(243,181,27,.45); outline-offset:2px; }
.pbc-btn--primary { background:var(--pbc-blue); color:#fff; border-color:var(--pbc-blue); box-shadow:0 5px 14px rgba(23,107,179,.16); }
.pbc-btn--primary:hover { background:var(--pbc-blue-dark); border-color:var(--pbc-blue-dark); }
.pbc-btn--secondary { background:#fff; color:var(--pbc-blue); border-color:#c8d6e2; }
.pbc-btn--secondary:hover { background:#f5f9fc; }
.pbc-btn--text { background:transparent; color:#667784; border-color:transparent; }
.pbc-btn--small { min-height:34px; padding:7px 12px; font-size:11px; }
.pbc-toolbar { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:-4px 0 14px; padding:10px 12px; background:#f7f9fb; border:1px solid var(--pbc-border); }
.pbc-toolbar__status { display:flex; align-items:center; gap:7px; color:#617381; font-size:11px; font-weight:700; }
.pbc-status-dot { width:8px; height:8px; border-radius:50%; background:#f0ad19; }
.pbc-toolbar__actions { display:flex; gap:7px; flex-wrap:wrap; }
.pbc-years { display:grid; gap:8px; }
.pbc-year-row { position:relative; display:grid; grid-template-columns:minmax(190px,1.15fr) minmax(160px,1fr) minmax(155px,1fr) 135px; gap:11px; align-items:end; padding:12px; border:1px solid #e4eaf0; background:#fff; transition:border-color .15s,background .15s,box-shadow .15s; }
.pbc-year-row.is-selected { border-color:#b7d4e9; background:#f6fbff; box-shadow:inset 3px 0 0 var(--pbc-blue); }
.pbc-year-meta { display:flex; align-items:center; gap:10px; min-width:0; min-height:46px; }
.pbc-year-meta strong { display:block; color:#2e4b61; font-size:12px; }
.pbc-year-meta small { display:block; margin-top:3px; color:#8796a2; font-size:10px; }
.pbc-year-num { flex:0 0 27px; width:27px; height:27px; display:grid; place-items:center; border-radius:50%; background:#edf2f6; color:#456078; font-size:10px; font-weight:900; }
.pbc-year-row.is-selected .pbc-year-num { background:var(--pbc-blue); color:#fff; }
.pbc-year-average { min-height:46px; display:flex; flex-direction:column; justify-content:center; padding:0 3px; }
.pbc-year-average span { color:#8795a1; font-size:10px; }
.pbc-year-average strong { margin-top:3px; color:var(--pbc-blue-deep); font-size:14px; }
.pbc-used-badge { position:absolute; right:10px; top:8px; padding:3px 6px; border-radius:2px; background:#e7f3fb; color:var(--pbc-blue); font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }
.pbc-completion { flex:0 0 auto; padding:6px 9px; border:1px solid #d8e2ea; background:#f8fafb; color:#6d7e8b; font-size:10px; font-weight:800; }
.pbc-validation { margin-top:14px; padding:12px 14px; border:1px solid #efcaca; background:#fff4f4; color:var(--pbc-danger); font-size:12px; line-height:1.5; }
.pbc-validation ul { margin:6px 0 0 17px; padding:0; }
.pbc-validation[hidden] { display:none !important; }
.pbc-card--result { background:#f8fafc; }
.pbc-hero-result { margin-bottom:15px; padding:24px 26px; background:linear-gradient(120deg,var(--pbc-blue-deep),var(--pbc-blue)); color:#fff; text-align:center; border-top:4px solid var(--pbc-gold); }
.pbc-hero-result span { display:block; color:#dceaf5; font-size:12px; font-weight:700; }
.pbc-hero-result strong { display:block; margin:7px 0 4px; font-size:36px; line-height:1.05; font-weight:900; }
.pbc-hero-result small { color:#dceaf5; font-size:10px; }
.pbc-results { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.pbc-result { padding:15px; border:1px solid var(--pbc-border); background:#fff; }
.pbc-result span { display:block; margin-bottom:7px; color:#748491; font-size:10px; line-height:1.35; }
.pbc-result strong { display:block; color:var(--pbc-blue-deep); font-size:20px; line-height:1.1; }
.pbc-breakdown { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:10px; }
.pbc-breakdown > div { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:11px 12px; border:1px solid var(--pbc-border); background:#fff; font-size:11px; }
.pbc-breakdown span { color:#748491; }
.pbc-breakdown b { color:#28465d; }
.pbc-rate-explain { margin-top:12px; padding:12px 13px; background:#eef6fb; border-left:3px solid var(--pbc-blue); color:#50697b; font-size:11px; line-height:1.55; }
.pbc-rate-explain strong { color:#234f73; }
.pbc-print { white-space:nowrap; }

@media (max-width: 800px) {
  .pbc { margin:20px auto; padding:0 12px; }
  .pbc__hero { min-height:155px; padding:28px 25px; }
  .pbc__hero h2 { font-size:27px; }
  .pbc__hero-mark { width:58px; height:58px; font-size:16px; }
  .pbc-card { padding:22px 18px; }
  .pbc-year-row { grid-template-columns:minmax(180px,1fr) minmax(145px,1fr); }
  .pbc-year-average { grid-column:2; }
}

@media (max-width: 620px) {
  .pbc { padding:0 8px; margin:15px auto; }
  .pbc__hero { padding:23px 18px; border-top-width:3px; }
  .pbc__hero-mark { display:none; }
  .pbc__hero h2 { font-size:24px; }
  .pbc__hero p { font-size:12px; }
  .pbc-progress { justify-content:space-between; gap:3px; padding:13px 7px; }
  .pbc-progress__step { padding:3px 2px; gap:5px; }
  .pbc-progress__step strong { display:none; }
  .pbc-progress > i { flex:1; max-width:38px; }
  .pbc-card { padding:18px 13px; }
  .pbc-section-title--between { display:block; }
  .pbc-completion { display:inline-block; margin:12px 0 0 43px; }
  .pbc-grid--2, .pbc-retirement-fields { grid-template-columns:1fr; }
  .pbc-year-row { grid-template-columns:1fr; padding:13px; gap:11px; }
  .pbc-year-meta, .pbc-year-average { min-height:0; }
  .pbc-year-average { grid-column:auto; padding:0; }
  .pbc-used-badge { right:10px; top:10px; }
  .pbc-toolbar { align-items:flex-start; flex-direction:column; }
  .pbc-toolbar__actions { width:100%; }
  .pbc-toolbar__actions .pbc-btn { flex:1; }
  .pbc-panel-actions, .pbc-panel-actions--split { flex-direction:column; }
  .pbc-panel-actions .pbc-btn { width:100%; }
  .pbc-results { grid-template-columns:1fr; }
  .pbc-breakdown { grid-template-columns:1fr; }
  .pbc-hero-result { padding:21px 15px; }
  .pbc-hero-result strong { font-size:31px; }
  .pbc-print { width:100%; margin-top:12px; }
}

@media print {
  body * { visibility:hidden !important; }
  .pbc, .pbc * { visibility:visible !important; }
  .pbc { position:absolute; left:0; top:0; width:100%; max-width:none; margin:0; padding:0; }
  .pbc__hero-mark, .pbc-progress, .pbc-toolbar, .pbc-panel-actions, .pbc-print, .pbc-note--warning { display:none !important; }
  .pbc-step-panel:not([data-panel="3"]) { display:none !important; }
  .pbc__hero { min-height:auto; border-top:0; padding:18px; }
  .pbc-card--result { border:0; box-shadow:none; }
}

/* v1.3.1 action controls */
.pbc .pbc-link-btn,
.pbc button[data-use-entered-weeks],
.pbc button[data-recalculate] {
  position:relative;
  z-index:5;
  pointer-events:auto !important;
  touch-action:manipulation;
}
.pbc .pbc-link-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:5px 10px;
  border:1px solid #c7ddec;
  border-radius:3px;
  background:#f2f8fd;
  color:var(--pbc-blue);
  font-size:11px;
  font-weight:800;
  line-height:1.2;
  text-decoration:none;
}
.pbc .pbc-link-btn:hover { background:var(--pbc-blue); color:#fff; border-color:var(--pbc-blue); }
.pbc .pbc-action-status {
  margin-top:8px;
  padding:8px 10px;
  border-left:3px solid var(--pbc-blue);
  background:#eef6fb;
  color:#466276;
  font-size:11px;
  line-height:1.45;
}
.pbc .pbc-action-status[hidden] { display:none !important; }
.pbc .pbc-action-status--result { margin-top:18px; }
