/* Problem Solvers Lab — additive only.
   Deliberately excludes .hero, .card, .form-grid, .field, .wrap and .table-wrap:
   those already exist in the Finin2min shell and must keep winning, so the tools
   look like the rest of the site rather than like an imported package. */

.ps-kicker{display:inline-block;font:700 11px/1 Inter,Arial,sans-serif;letter-spacing:.09em;
  text-transform:uppercase;color:#2D4A7C;background:#EEF2FF;border:1px solid #D6E0F5;
  border-radius:999px;padding:5px 11px;margin-bottom:10px}

.ps-badges{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.ps-badge{font:600 11.5px/1 Inter,Arial,sans-serif;color:#475467;background:#F3F5F9;
  border:1px solid #E2E7EF;border-radius:6px;padding:5px 9px}

.ps-result{border:1px solid #E2E8F0;border-radius:12px;background:#fff;padding:18px 20px}
.ps-result h2{margin:0 0 12px;font-size:1.05rem;font-weight:800;color:#111827}
.ps-result .ps-placeholder{color:#8B97AB;font-style:italic;font-size:14px;margin:0}

.ps-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:0}
.ps-metric,.metric{border:1px solid #E8ECF2;border-radius:10px;background:#F9FBFD;padding:12px 14px}
.ps-metric b,.metric b{display:block;font-size:11.5px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:#6B7280;margin-bottom:5px}
.ps-metric span,.metric span{font-size:17px;font-weight:700;color:#111827;
  font-variant-numeric:tabular-nums;word-break:break-word}
/* the engine emits .metric-grid / .metric directly */
.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:0}

.ps-formula{font-family:ui-monospace,Consolas,Menlo,monospace;font-size:13px;line-height:1.6;
  background:#F5F8FC;border:1px solid #DCE5F0;border-left:3px solid #2D4A7C;border-radius:8px;
  padding:12px 14px;margin:0 0 12px;overflow-x:auto}

.ps-section{max-width:1120px;margin:26px auto 0;padding:0 16px;font-family:Inter,Arial,sans-serif}
.ps-section .ps-box{background:#fff;border:1px solid #E2E8F0;border-radius:14px;padding:22px 24px;margin-bottom:18px}
.ps-section h2{font-size:1.12rem;font-weight:800;color:#111827;margin:0 0 10px}
.ps-section h3{font-size:.98rem;font-weight:700;color:#1F2937;margin:14px 0 6px}
.ps-section p,.ps-section li{font-size:14px;line-height:1.75;color:#374151}
.ps-section ul,.ps-section ol{margin:0;padding-left:20px}

.ps-inputs{width:100%;border-collapse:collapse;font-size:13.5px}
.ps-inputs th{text-align:left;padding:8px 10px;border-bottom:2px solid #E2E8F0;color:#111827;font-weight:700}
.ps-inputs td{padding:8px 10px;border-bottom:1px solid #EEF1F5;vertical-align:top;color:#374151}
.ps-inputs td:first-child{font-weight:600;color:#111827;white-space:nowrap}

.ps-sources{background:#F7FAFC;border:1px solid #DCE5F0;border-radius:12px;padding:18px 20px}
.ps-sources ul{margin:8px 0 0;padding-left:20px}
.ps-sources a{color:#2D4A7C}

.ps-faq details{border:1px solid #E5E9F0;border-radius:9px;padding:10px 13px;margin-bottom:8px;background:#fff}
.ps-faq summary{cursor:pointer;font-weight:650;font-size:14px;color:#111827}
.ps-faq details[open] summary{margin-bottom:7px}
.ps-faq p{margin:0}

.ps-rail{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin-top:6px}
.ps-rail a{display:block;border:1px solid #E2E8F0;border-radius:10px;padding:11px 13px;
  text-decoration:none;background:#fff;transition:border-color .12s ease,background .12s ease}
.ps-rail a:hover{border-color:#2D4A7C;background:#F7FAFF}
.ps-rail strong{display:block;font-size:13.5px;color:#111827;line-height:1.35}
.ps-rail span{display:block;font-size:11.5px;color:#6B7280;margin-top:3px}

.ps-disclaimer{border:1px solid #E4C88F;background:#FDF8EE;border-radius:10px;padding:14px 16px;margin-top:6px}
.ps-disclaimer p{margin:0;font-size:12.5px;line-height:1.65;color:#54401F}

@media (max-width:640px){
  .ps-section .ps-box{padding:16px 15px}
  .ps-metric-grid,.metric-grid{grid-template-columns:1fr}
}

/* The inputs table must scroll inside its own box, never widen the page.
   Relying on the shell's .table-wrap was not enough at 375px. */
.ps-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.ps-inputs{min-width:520px}
.ps-section,.ps-box{max-width:100%;overflow-wrap:anywhere}
@media (max-width:640px){
  .ps-inputs{min-width:460px;font-size:12.5px}
  .ps-inputs td:first-child{white-space:normal}
}
