/* All selectors are namespaced under .sfts-etc so nothing leaks into or
   inherits awkwardly from the WordPress theme. */
.sfts-etc{
  --maroon:#3B0100; --gold:#EA9C2D; --navy:#000B29; --cream:#FDF6EC;
  --ink:#1A1614; --muted:#6B615A; --rule:#E3D8C8; --paper:#FFFFFF;
  --ok:#1F5C3D; --warn:#8A2B12;
  --serif:Georgia,"Iowan Old Style","Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  all:initial;
  display:block; box-sizing:border-box;
  font-family:var(--sans); color:var(--ink); background:var(--cream);
  font-size:16px; line-height:1.5;
  border-top:4px solid var(--maroon);
  padding:2rem 1.25rem 2.25rem;
}
.sfts-etc *,.sfts-etc *::before,.sfts-etc *::after{box-sizing:border-box}
.sfts-etc h2,.sfts-etc h3,.sfts-etc p,.sfts-etc ol,.sfts-etc dl,.sfts-etc dd{margin:0;padding:0}
.sfts-etc ol{list-style:none}
.sfts-etc a{color:var(--maroon);text-decoration:underline}

.sfts-etc__head{max-width:64rem;margin:0 auto 1.75rem}
.sfts-etc__eyebrow{
  font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
  font-weight:700;color:var(--maroon);margin-bottom:.5rem
}
.sfts-etc__title{
  font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,4.5vw,2.75rem);
  line-height:1.1;letter-spacing:-.01em;color:var(--navy)
}
.sfts-etc__lede{max-width:34rem;margin-top:.75rem;color:var(--muted);font-size:.95rem}

.sfts-etc__grid{
  max-width:64rem;margin:0 auto;display:grid;gap:1.75rem;
  grid-template-columns:minmax(0,1fr)
}
@media(min-width:900px){
  .sfts-etc__grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:start}
  .sfts-etc__out{position:sticky;top:1.5rem}
}

/* ---- form ---- */
.sfts-fs{
  border:1px solid var(--rule);border-radius:2px;background:var(--paper);
  padding:1.1rem 1.1rem 1.25rem;margin:0 0 1rem
}
.sfts-fs__legend{
  font-family:var(--serif);font-size:1.02rem;color:var(--navy);
  padding:0 .5rem;margin-left:-.5rem
}
.sfts-field{display:block;margin-top:.9rem}
.sfts-fs .sfts-field:first-of-type{margin-top:.4rem}
.sfts-field__label{display:block;font-size:.82rem;font-weight:600;letter-spacing:.01em}
.sfts-field__hint{display:block;font-size:.75rem;color:var(--muted);margin-top:.15rem;line-height:1.35}
.sfts-field__row{display:grid;gap:.75rem;grid-template-columns:1fr 1fr;margin-top:.9rem}
@media(max-width:520px){.sfts-field__row{grid-template-columns:1fr}}
.sfts-field__row .sfts-field{margin-top:0}

.sfts-input{
  display:block;width:100%;margin-top:.3rem;
  font-family:var(--sans);font-size:.95rem;color:var(--ink);
  padding:.5rem .6rem;background:var(--cream);
  border:1px solid var(--rule);border-radius:2px;
  -webkit-appearance:none;appearance:none
}
select.sfts-input{
  background-image:linear-gradient(45deg,transparent 50%,var(--maroon) 50%),
                   linear-gradient(135deg,var(--maroon) 50%,transparent 50%);
  background-position:calc(100% - 16px) 55%,calc(100% - 11px) 55%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:2rem
}
.sfts-money{font-variant-numeric:tabular-nums}
.sfts-input:focus-visible{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--maroon)}
.sfts-input:focus{border-color:var(--maroon)}

.sfts-check{display:flex;align-items:flex-start;gap:.45rem;font-size:.82rem;line-height:1.35}
.sfts-check input{margin:.15rem 0 0;accent-color:var(--maroon);width:1rem;height:1rem;flex:none}
.sfts-check--block{margin-top:.85rem}
.sfts-check[hidden]{display:none}
.sfts-etc [hidden]{display:none}

.sfts-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.25rem}
.sfts-btn{
  font-family:var(--sans);font-size:.85rem;font-weight:600;letter-spacing:.02em;
  color:var(--cream);background:var(--maroon);border:1px solid var(--maroon);
  padding:.65rem 1.4rem;border-radius:2px;cursor:pointer
}
.sfts-btn:hover{background:var(--navy);border-color:var(--navy)}
.sfts-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.sfts-btn--ghost{color:var(--maroon);background:transparent}
.sfts-btn--ghost:hover{color:var(--cream)}

/* ---- results ---- */
.sfts-headline{
  background:var(--navy);color:var(--cream);
  padding:1.5rem 1.25rem;border-radius:2px;
  border-bottom:3px solid var(--gold)
}
.sfts-headline__label{
  font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold);font-weight:700
}
.sfts-headline__num{
  font-family:var(--serif);font-size:clamp(2.4rem,7vw,3.4rem);line-height:1;
  margin-top:.4rem;font-variant-numeric:tabular-nums;letter-spacing:-.02em
}
.sfts-headline__sub{font-size:.8rem;color:#C9C2BA;margin-top:.5rem;line-height:1.4}

/* signature element: four voucher stubs, torn edge on the left */
.sfts-vouchers{display:grid;gap:.4rem;margin-top:.8rem}
.sfts-voucher{
  display:grid;grid-template-columns:2.4rem 1fr auto;align-items:center;gap:.75rem;
  background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--gold);
  padding:.6rem .85rem
}
.sfts-voucher__n{
  font-family:var(--serif);font-size:1.05rem;color:var(--maroon);
  border-right:1px dashed var(--rule);padding-right:.5rem
}
.sfts-voucher__date{font-size:.85rem;font-weight:600}
.sfts-voucher__state{display:block;font-size:.72rem;color:var(--muted);margin-top:.1rem}
.sfts-voucher__amt{font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums}
.sfts-voucher--past{border-left-color:var(--rule);opacity:.62}
.sfts-voucher--past .sfts-voucher__amt{font-weight:400}
.sfts-voucher--late{border-left-color:var(--warn)}
.sfts-voucher--late .sfts-voucher__state{color:var(--warn);font-weight:600}

.sfts-panel{
  background:var(--paper);border:1px solid var(--rule);border-radius:2px;
  padding:1rem 1.1rem;margin-top:1rem
}
.sfts-panel[hidden]{display:none}
.sfts-panel__h{
  font-family:var(--serif);font-weight:400;font-size:1rem;color:var(--navy);
  margin-bottom:.6rem;padding-bottom:.45rem;border-bottom:1px solid var(--rule)
}
.sfts-lines{display:grid;gap:.05rem}
.sfts-line{
  display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  padding:.32rem 0;font-size:.85rem;border-bottom:1px dotted var(--rule)
}
.sfts-line:last-child{border-bottom:0}
.sfts-line dt{color:var(--muted)}
.sfts-line dd{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.sfts-line--total dt,.sfts-line--total dd{
  color:var(--maroon);font-weight:700;font-size:.95rem
}
.sfts-line--total{border-top:2px solid var(--maroon);border-bottom:0;margin-top:.35rem;padding-top:.5rem}
.sfts-line--sub dt{padding-left:.9rem;font-size:.8rem}
.sfts-line--pick dd{color:var(--ok)}

.sfts-payhow{font-size:.78rem;color:var(--muted);margin-top:.55rem;line-height:1.45}
.sfts-note{font-size:.78rem;color:var(--muted);margin-top:.6rem;line-height:1.45}
.sfts-disclaim{
  font-size:.74rem;color:var(--muted);line-height:1.5;margin-top:1rem;
  padding-top:.8rem;border-top:1px solid var(--rule)
}
.sfts-sig{font-size:.78rem;color:var(--muted);line-height:1.6;margin-top:.9rem}

/* ---- printable worksheet (hidden on screen) ----
   Carries its own tokens and reset because it gets moved to <body> at print
   time, outside the .sfts-etc wrapper, where theme styles would otherwise
   reach it. */
.sfts-print{
  display:none;
  --maroon:#3B0100; --gold:#EA9C2D; --navy:#000B29;
  --serif:Georgia,"Iowan Old Style","Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-family:var(--sans);color:#000;background:#fff;
  font-size:16px;line-height:1.45;text-align:left
}
.sfts-print *{box-sizing:border-box;margin:0;padding:0;float:none;
  font-family:inherit;color:inherit;background:none;text-transform:none;
  letter-spacing:normal}
.sfts-ps__head{border-bottom:2px solid var(--maroon);padding-bottom:.5rem;margin-bottom:.9rem;
  display:flex;justify-content:space-between;align-items:flex-end;gap:1rem}
.sfts-ps__firm{font-family:var(--serif);font-size:1.15rem;color:var(--maroon);line-height:1.2}
.sfts-ps__by{font-size:.72rem;color:#444;margin-top:.15rem}
.sfts-ps__title{font-family:var(--serif);font-size:.95rem;text-align:right;line-height:1.3}
.sfts-ps__date{font-size:.7rem;color:#444}
.sfts-ps__sec{margin-top:.85rem;break-inside:avoid;page-break-inside:avoid}
.sfts-ps__h{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  color:var(--maroon);border-bottom:1px solid #999;padding-bottom:.15rem;margin-bottom:.3rem}
.sfts-ps__row{display:flex;justify-content:space-between;gap:1rem;font-size:.76rem;
  padding:.12rem 0;border-bottom:1px dotted #ccc}
.sfts-ps__row span:last-child{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.sfts-ps__row--total{border-top:1.5px solid var(--maroon);border-bottom:0;margin-top:.2rem;
  padding-top:.25rem;font-weight:700;font-size:.84rem;color:var(--maroon)}
.sfts-ps__row--sub span:first-child{padding-left:.8rem;color:#555}
.sfts-ps__cols{column-count:2;column-gap:1.6rem}
.sfts-ps__pay{display:flex;justify-content:space-between;gap:1rem;font-size:.82rem;
  padding:.3rem .5rem;border:1px solid #999;border-left:3px solid var(--maroon);margin-bottom:.25rem}
.sfts-ps__pay--past{border-left-color:#bbb;color:#777}
.sfts-ps__pay span:last-child{font-weight:700;font-variant-numeric:tabular-nums}
.sfts-ps__note{font-size:.7rem;color:#444;margin-top:.3rem;line-height:1.4}
.sfts-ps__disc{font-size:.63rem;color:#555;line-height:1.45;margin-top:1rem;
  border-top:1px solid #999;padding-top:.4rem}

@page{margin:.6in}
@media print{
  /* Suppress the surrounding WordPress theme so only the worksheet prints. */
  body.sfts-print-active *{visibility:hidden !important}
  body.sfts-print-active .sfts-print,
  body.sfts-print-active .sfts-print *{visibility:visible !important}
  body.sfts-print-active .sfts-print{
    display:block !important;position:absolute;left:0;top:0;width:100%
  }
  .sfts-etc{background:#fff;border-top:0;padding:0;font-size:12px}
  .sfts-etc__head,.sfts-etc__grid{display:none !important}
  .sfts-print a{color:#000;text-decoration:none}
}
@media(prefers-reduced-motion:no-preference){
  .sfts-headline__num{transition:opacity .18s ease}
}
