/* PFT Calculator — tool styles.
   Every value from a design token (§4.2). Scoped to .ftb-tool-pft.
   Inputs, checkboxes, radios, buttons and messages come from core.css. */

/* ----------------------------------------------------------------- form */

.ftb-tool-pft .ftb-pft-set{margin:0 0 var(--ftb-space-5);padding:var(--ftb-space-4) var(--ftb-space-5) 0;
  border:1px solid var(--ftb-border);border-radius:var(--ftb-radius);background:var(--ftb-surface);min-width:0}
.ftb-tool-pft .ftb-pft-set legend{padding:0 var(--ftb-space-2);font-size:var(--ftb-text-sm);
  font-weight:var(--ftb-fw-bold);color:var(--ftb-text)}
.ftb-tool-pft .ftb-pft-top{padding-top:var(--ftb-space-2)}
.ftb-tool-pft .ftb-pft-tests{margin-bottom:var(--ftb-space-4)}
.ftb-tool-pft .ftb-pft-grid{display:grid;gap:0 var(--ftb-space-4);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr))}
.ftb-tool-pft .ftb-pft-grid > *{min-width:0}
.ftb-tool-pft .ftb-pft-grid .ftb-field{margin-bottom:var(--ftb-space-4)}
.ftb-tool-pft .ftb-pft-pair{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--ftb-space-2)}
.ftb-tool-pft input[aria-invalid=true]{border-color:var(--ftb-error)}

.ftb-tool-pft .ftb-pft-more{margin:0 0 var(--ftb-space-4);border-top:1px solid var(--ftb-border)}
.ftb-tool-pft .ftb-pft-more summary{display:flex;align-items:center;min-height:var(--ftb-tap);
  padding:var(--ftb-space-2) 0;cursor:pointer;font-size:var(--ftb-text-sm);font-weight:var(--ftb-fw-semi);
  color:var(--ftb-primary)}
.ftb-tool-pft .ftb-pft-more summary:focus-visible{outline:2px solid var(--ftb-primary);outline-offset:2px;
  border-radius:var(--ftb-radius-sm)}
.ftb-tool-pft .ftb-pft-more-body{padding-top:var(--ftb-space-2)}
.ftb-tool-pft .ftb-pft-more-body .ftb-tool-opts{border-bottom:0;padding-bottom:0;margin-bottom:var(--ftb-space-3)}

/* -------------------------------------------------------------- results */

/* Height reserved so the first score never shifts the page (§10). */
.ftb-tool-pft .ftb-pft-results{min-height:calc(var(--ftb-space-24) + var(--ftb-space-8))}
.ftb-tool-pft .ftb-pft-h{margin:0 0 var(--ftb-space-4);font-size:var(--ftb-text-lg);font-weight:var(--ftb-fw-semi)}
.ftb-tool-pft .ftb-pft-h:focus{outline:none}
.ftb-tool-pft .ftb-pft-empty{margin:0;padding:var(--ftb-space-5);background:var(--ftb-surface-2);
  border-radius:var(--ftb-radius);font-size:var(--ftb-text-sm);color:var(--ftb-text-muted)}

.ftb-tool-pft .ftb-pft-card{margin-bottom:var(--ftb-space-5);padding:var(--ftb-space-4) var(--ftb-space-5);
  background:var(--ftb-surface);border:1px solid var(--ftb-border);border-radius:var(--ftb-radius)}
.ftb-tool-pft .ftb-pft-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--ftb-space-2) var(--ftb-space-4)}
.ftb-tool-pft .ftb-pft-h3{margin:0;font-size:var(--ftb-text-base);font-weight:var(--ftb-fw-bold)}
.ftb-tool-pft .ftb-pft-total{margin:0;font-variant-numeric:tabular-nums}
.ftb-tool-pft .ftb-pft-num{font-size:var(--ftb-text-2xl);font-weight:var(--ftb-fw-bold);color:var(--ftb-text)}
.ftb-tool-pft .ftb-pft-of{font-size:var(--ftb-text-sm);color:var(--ftb-text-muted)}
.ftb-tool-pft .ftb-pft-badge{display:inline-flex;align-items:center;min-height:var(--ftb-space-8);
  padding:0 var(--ftb-space-3);border:1px solid currentColor;border-radius:var(--ftb-radius-full);
  font-size:var(--ftb-text-sm);font-weight:var(--ftb-fw-semi)}
.ftb-tool-pft .ftb-pft-badge[data-tone=good]{color:var(--ftb-success);background:var(--ftb-success-soft)}
.ftb-tool-pft .ftb-pft-badge[data-tone=ok]{color:var(--ftb-text);background:var(--ftb-surface-2)}
.ftb-tool-pft .ftb-pft-badge[data-tone=bad]{color:var(--ftb-error);background:var(--ftb-error-soft)}
.ftb-tool-pft .ftb-pft-status,
.ftb-tool-pft .ftb-pft-combat{margin:var(--ftb-space-2) 0 0;font-size:var(--ftb-text-sm)}
.ftb-tool-pft .ftb-pft-combat{font-weight:var(--ftb-fw-semi)}

.ftb-tool-pft .ftb-table-scroll{margin-top:var(--ftb-space-4)}
.ftb-tool-pft .ftb-pft-table{width:100%;border-collapse:collapse;font-size:var(--ftb-text-sm);
  line-height:var(--ftb-lh-snug);font-variant-numeric:tabular-nums}
.ftb-tool-pft .ftb-pft-table th,
.ftb-tool-pft .ftb-pft-table td{padding:var(--ftb-space-2) var(--ftb-space-3);text-align:start;
  border-bottom:1px solid var(--ftb-border);white-space:nowrap}
.ftb-tool-pft .ftb-pft-table thead th{font-weight:var(--ftb-fw-semi);color:var(--ftb-text-muted);background:var(--ftb-surface-2)}
.ftb-tool-pft .ftb-pft-table tbody th{font-weight:var(--ftb-fw-semi);color:var(--ftb-text)}
.ftb-tool-pft .ftb-pft-table .is-num{text-align:end}
.ftb-tool-pft .ftb-pft-table tr.is-below td,
.ftb-tool-pft .ftb-pft-table tr.is-below th{color:var(--ftb-error);background:var(--ftb-error-soft)}

.ftb-tool-pft .ftb-pft-plan{margin-top:var(--ftb-space-5)}
.ftb-tool-pft .ftb-pft-h4{margin:0;font-size:var(--ftb-text-sm);font-weight:var(--ftb-fw-bold)}
.ftb-tool-pft .ftb-pft-goal{margin-top:var(--ftb-space-3);padding:var(--ftb-space-3) var(--ftb-space-4);
  background:var(--ftb-surface-2);border-radius:var(--ftb-radius)}
.ftb-tool-pft .ftb-pft-goal-h{margin:0 0 var(--ftb-space-1);font-size:var(--ftb-text-sm);font-weight:var(--ftb-fw-semi)}
.ftb-tool-pft .ftb-pft-goal-list{margin:0;padding-inline-start:var(--ftb-space-5);font-size:var(--ftb-text-sm);
  line-height:var(--ftb-lh-snug);font-variant-numeric:tabular-nums}
.ftb-tool-pft .ftb-pft-goal-list li + li{margin-top:var(--ftb-space-1)}

.ftb-tool-pft .ftb-pft-notes{margin:0 0 var(--ftb-space-5);padding:var(--ftb-space-4) var(--ftb-space-5) var(--ftb-space-4) var(--ftb-space-8);
  background:var(--ftb-surface-2);border-radius:var(--ftb-radius);font-size:var(--ftb-text-sm);line-height:var(--ftb-lh-snug)}
.ftb-tool-pft .ftb-pft-notes li + li{margin-top:var(--ftb-space-2)}

.ftb-tool-pft .ftb-tool-disclaimer{margin:var(--ftb-space-6) 0 0;padding:var(--ftb-space-5);background:var(--ftb-surface-2);
  border-radius:var(--ftb-radius);font-size:var(--ftb-text-sm);line-height:var(--ftb-lh-snug);color:var(--ftb-text-muted)}

@media (max-width:479px){
  .ftb-tool-pft .ftb-pft-set{padding:var(--ftb-space-3) var(--ftb-space-3) 0}
  .ftb-tool-pft .ftb-pft-card{padding:var(--ftb-space-3)}
  .ftb-tool-pft .ftb-tool-actions .ftb-btn{flex:1 1 auto}
}
