.rjp-salary-calc{
  --rjp-ink:#1C2B45;
  --rjp-ink-light:#33456B;
  --rjp-paper:#ECEEE2;
  --rjp-card:#F8F8F2;
  --rjp-seal-red:#A63D40;
  --rjp-seal-green:#2E6E48;
  --rjp-seal-green-dark:#1F4E33;
  --rjp-gold:#B8863B;
  --rjp-slate:#5B6472;
  --rjp-line:#D6D4C4;
  --rjp-font-display:'Fraunces', Georgia, serif;
  --rjp-font-body:'Inter', -apple-system, sans-serif;
  --rjp-font-mono:'IBM Plex Mono', 'Courier New', monospace;

  max-width:940px;
  margin:0 auto;
  padding:32px 16px 48px;
  background:var(--rjp-paper);
  background-image:repeating-linear-gradient(0deg, rgba(28,43,69,0.025) 0px, rgba(28,43,69,0.025) 1px, transparent 1px, transparent 32px);
  font-family:var(--rjp-font-body);
  color:var(--rjp-ink);
  box-sizing:border-box;
}
.rjp-salary-calc *{box-sizing:border-box;}
.rjp-salary-calc .rjp-header{text-align:center; margin-bottom:28px;}
.rjp-salary-calc .rjp-eyebrow{
  font-family:var(--rjp-font-mono); font-size:11px; letter-spacing:0.18em;
  text-transform:uppercase; color:var(--rjp-gold); font-weight:600;
}
.rjp-salary-calc h2.rjp-title{
  font-family:var(--rjp-font-display); font-weight:600; font-size:clamp(26px,4vw,36px);
  margin:8px 0 4px; letter-spacing:-0.01em; color:var(--rjp-ink);
}
.rjp-salary-calc .rjp-sub{color:var(--rjp-slate); font-size:14px; max-width:560px; margin:0 auto;}
.rjp-salary-calc .rjp-rule{
  height:1px; background:repeating-linear-gradient(90deg, var(--rjp-ink) 0 6px, transparent 6px 10px);
  opacity:0.35; margin:20px auto 0; max-width:520px;
}

.rjp-salary-calc .rjp-board{
  display:grid; grid-template-columns:1.15fr 0.85fr; gap:22px; align-items:start;
}
@media (max-width:760px){ .rjp-salary-calc .rjp-board{grid-template-columns:1fr;} }

.rjp-salary-calc .rjp-form-side{
  background:var(--rjp-card); border:1px solid var(--rjp-line); border-radius:2px; padding:28px;
}
.rjp-salary-calc .rjp-field{margin-bottom:16px;}
.rjp-salary-calc .rjp-field label{
  display:block; font-size:12px; font-weight:600; text-transform:uppercase;
  letter-spacing:0.06em; color:var(--rjp-ink-light); margin-bottom:6px;
}
.rjp-salary-calc .rjp-hint{font-size:11.5px; color:var(--rjp-slate); margin-top:5px;}
.rjp-salary-calc input[type="number"], .rjp-salary-calc select{
  width:100%; font-family:var(--rjp-font-mono); font-size:14px;
  padding:10px 12px; border:1px solid #C7C5B4; border-radius:3px; background:#fff; color:var(--rjp-ink);
}
.rjp-salary-calc select{font-family:var(--rjp-font-body);}
.rjp-salary-calc input:focus, .rjp-salary-calc select:focus{
  outline:none; border-color:var(--rjp-ink-light); box-shadow:0 0 0 3px rgba(51,69,107,0.12);
}
.rjp-salary-calc .rjp-row2{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.rjp-salary-calc .rjp-checkbox-field{display:flex; align-items:center; gap:8px; margin-bottom:16px;}
.rjp-salary-calc .rjp-checkbox-field input{width:auto;}
.rjp-salary-calc .rjp-checkbox-field label{margin:0; text-transform:none; font-size:13px; font-weight:500; letter-spacing:0;}

button.rjp-calc-btn{
  width:100%; margin-top:6px; padding:14px 18px; background:var(--rjp-ink);
  color:#F4F3EA; border:none; border-radius:3px; font-family:var(--rjp-font-body);
  font-weight:600; font-size:14.5px; letter-spacing:0.02em; cursor:pointer;
  transition:background 0.15s ease;
}
button.rjp-calc-btn:hover{background:var(--rjp-ink-light);}

/* Receipt / payslip strip */
.rjp-salary-calc .rjp-result-side{display:flex; flex-direction:column; align-items:center;}
.rjp-salary-calc .rjp-receipt-placeholder{
  color:var(--rjp-slate); font-size:13.5px; text-align:center; max-width:220px; line-height:1.6;
  padding:60px 20px;
}
.rjp-salary-calc .rjp-receipt{
  display:none;
  width:100%; max-width:320px;
  background:var(--rjp-card);
  border:1px solid var(--rjp-line);
  padding:22px 20px 26px;
  font-family:var(--rjp-font-mono);
  position:relative;
  opacity:0;
}
.rjp-salary-calc .rjp-receipt.rjp-show{display:block;}
.rjp-salary-calc .rjp-receipt.rjp-animate{animation:rjp-receipt-in 0.4s ease forwards;}
@keyframes rjp-receipt-in{ from{opacity:0; transform:translateY(-6px);} to{opacity:1; transform:translateY(0);} }
.rjp-salary-calc .rjp-receipt::after{
  content:'';
  position:absolute; left:0; right:0; bottom:-9px; height:10px;
  background:radial-gradient(circle at 8px 0, transparent 8px, var(--rjp-paper) 8.5px) repeat-x;
  background-size:16px 16px;
}
.rjp-salary-calc .rjp-receipt-title{
  font-family:var(--rjp-font-display); font-weight:600; font-size:15px;
  text-align:center; color:var(--rjp-ink); margin-bottom:4px;
}
.rjp-salary-calc .rjp-receipt-sub{
  text-align:center; font-size:10.5px; color:var(--rjp-slate); text-transform:uppercase;
  letter-spacing:0.08em; margin-bottom:14px;
}
.rjp-salary-calc .rjp-receipt-dashes{border-top:1px dashed var(--rjp-line); margin:10px 0;}
.rjp-salary-calc .rjp-line{
  display:flex; justify-content:space-between; font-size:12.5px; padding:3px 0; color:var(--rjp-ink);
  opacity:0; transform:translateX(-4px);
}
.rjp-salary-calc .rjp-receipt.rjp-animate .rjp-line{ animation:rjp-line-in 0.3s ease forwards; }
.rjp-salary-calc .rjp-receipt.rjp-animate .rjp-line:nth-child(1){animation-delay:0.05s;}
.rjp-salary-calc .rjp-receipt.rjp-animate .rjp-line:nth-child(2){animation-delay:0.10s;}
.rjp-salary-calc .rjp-receipt.rjp-animate .rjp-line:nth-child(3){animation-delay:0.15s;}
.rjp-salary-calc .rjp-receipt.rjp-animate .rjp-line:nth-child(4){animation-delay:0.20s;}
@keyframes rjp-line-in{ to{opacity:1; transform:translateX(0);} }
.rjp-salary-calc .rjp-line.rjp-muted{color:var(--rjp-slate);}
.rjp-salary-calc .rjp-line.rjp-deduction{color:var(--rjp-seal-red);}
.rjp-salary-calc .rjp-line-label small{display:block; color:var(--rjp-slate); font-size:10px;}
.rjp-salary-calc .rjp-net-block{
  margin-top:8px; padding-top:10px; border-top:1px dashed var(--rjp-line);
  text-align:center;
}
.rjp-salary-calc .rjp-net-label{
  font-size:10.5px; text-transform:uppercase; letter-spacing:0.1em; color:var(--rjp-slate); margin-bottom:2px;
}
.rjp-salary-calc .rjp-net-amount{
  font-family:var(--rjp-font-display); font-weight:700; font-size:26px; color:var(--rjp-seal-green-dark);
}

.rjp-salary-calc .rjp-table-section{margin-top:36px;}
.rjp-salary-calc .rjp-table-section h3{font-family:var(--rjp-font-display); font-size:18px; font-weight:600; margin:0 0 4px; color:var(--rjp-ink);}
.rjp-salary-calc .rjp-table-section .rjp-sub2{font-size:13px; color:var(--rjp-slate); margin:0 0 14px;}
.rjp-salary-calc table{width:100%; border-collapse:collapse; background:var(--rjp-card); border:1px solid var(--rjp-line); font-size:13px;}
.rjp-salary-calc thead th{
  text-align:left; font-family:var(--rjp-font-mono); font-size:11px; text-transform:uppercase;
  letter-spacing:0.05em; color:var(--rjp-ink-light); background:#E4E2D2; padding:10px 12px;
  border-bottom:1px solid var(--rjp-line);
}
.rjp-salary-calc tbody td{padding:10px 12px; border-bottom:1px solid var(--rjp-line); color:var(--rjp-ink);}
.rjp-salary-calc tbody tr:last-child td{border-bottom:none;}

.rjp-salary-calc .rjp-footer{margin-top:24px; text-align:center; font-size:12px; color:var(--rjp-slate); line-height:1.7;}
.rjp-salary-calc .rjp-disclaimer{max-width:660px; margin:0 auto; padding-top:6px;}
