/* Self-Employed 401(k) Deduction Maximizer — scoped styles
 * Matches the Sure Financial estimated-tax-calculator: cream page, navy serif
 * headings, gold accents, maroon hairline, deep-navy result box. */
.se401k-calc{
  --brand-navy:#14203a;    /* primary — headings & result box */
  --brand-gold:#c19a4d;    /* accent  — eyebrows, keywords, rules */
  --brand-maroon:#4a1212;  /* hairline — top rule */

  --navy-deep:#101a31;
  --navy-deep:color-mix(in srgb, var(--brand-navy) 80%, #000);
  --eyebrow:#7c3b34;
  --cream:#f9f1e7;
  --card:#ffffff;
  --ink:#232a38;
  --muted:#6b7079;
  --warm-line:#e7ddcc;
  --input-line:#d9cfbf;
  --good:#1d7a4c;
  --warn:#8a5a00;
  --warn-bg:#fbf3df;
  --serif:"Playfair Display","Georgia","Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;

  box-sizing:border-box; display:block; max-width:1000px; margin:24px auto; padding:0;
  color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.5;
  -webkit-font-smoothing:antialiased; text-align:left;
  background:var(--cream);
  border-top:3px solid var(--brand-maroon);
  box-shadow:0 10px 34px rgba(20,32,58,.08);
}
.se401k-calc *,.se401k-calc *::before,.se401k-calc *::after{box-sizing:border-box;}
.se401k-calc input,.se401k-calc button,.se401k-calc select{font-family:inherit;}
.se401k-calc .inner{padding:28px 30px 30px;}

/* Header */
.se401k-calc .hd{margin:0 0 22px;}
.se401k-calc .eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--eyebrow);margin:0 0 8px;}
.se401k-calc h2.title{font-family:var(--serif);font-weight:700;font-size:40px;line-height:1.05;color:var(--brand-navy);margin:0 0 10px;letter-spacing:-.01em;}
.se401k-calc .lede{font-size:15px;color:#4c515c;max-width:56ch;margin:0;}
.se401k-calc .lede b{color:var(--brand-gold);font-weight:600;}

/* Two-column layout */
.se401k-calc .grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start;}
@media (max-width:820px){.se401k-calc .grid{grid-template-columns:1fr;}}

/* Panels (fieldset + legend) */
.se401k-calc fieldset.panel{border:1px solid var(--warm-line);border-radius:10px;background:var(--card);padding:18px 18px 4px;margin:0 0 18px;min-width:0;}
.se401k-calc fieldset.panel:last-child{margin-bottom:0;}
.se401k-calc legend{font-family:var(--serif);font-weight:700;font-size:17px;color:var(--brand-navy);padding:0 8px;margin:0 0 0 -4px;}

.se401k-calc .field{margin:0 0 16px;}
.se401k-calc .lbl{display:block;font-weight:700;font-size:13px;color:var(--brand-navy);margin:0 0 7px;}
.se401k-calc .hint{display:block;font-weight:400;font-size:12px;color:var(--muted);margin-top:4px;}

/* Segmented toggle */
.se401k-calc .seg{display:flex;gap:6px;background:#f0e7d8;padding:5px;border-radius:8px;}
.se401k-calc .seg button{flex:1;border:0;background:transparent;padding:10px 8px;border-radius:6px;font:inherit;font-size:13px;font-weight:700;color:#6b6459;cursor:pointer;line-height:1.25;transition:all .15s ease;}
.se401k-calc .seg button.on{background:#fff;color:var(--brand-navy);box-shadow:0 1px 4px rgba(20,32,58,.16);}
.se401k-calc .seg button:focus-visible{outline:2px solid var(--brand-gold);outline-offset:2px;}

/* Inputs */
.se401k-calc .inwrap{position:relative;}
.se401k-calc .inwrap .pre{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted);font-weight:600;pointer-events:none;}
.se401k-calc .inwrap .suf{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:var(--muted);font-weight:600;pointer-events:none;}
.se401k-calc input[type=text],.se401k-calc input[type=number]{
  width:100%;padding:12px 14px 12px 28px;border:1.5px solid var(--input-line);border-radius:6px;
  font:inherit;font-size:16px;color:var(--ink);background:#fff;
  font-variant-numeric:tabular-nums;transition:border-color .15s,box-shadow .15s;margin:0;
}
.se401k-calc input.pctin{padding:12px 32px 12px 14px;}
.se401k-calc input:focus{outline:none;border-color:var(--brand-navy);box-shadow:0 0 0 3px rgba(20,32,58,.13);}
.se401k-calc .row2{display:flex;gap:14px;flex-wrap:wrap;}
.se401k-calc .row2 .field{flex:1;min-width:150px;}

.se401k-calc .check{display:none;align-items:flex-start;gap:9px;background:var(--warn-bg);border:1px solid #eadfc0;border-radius:8px;padding:11px 12px;margin:2px 0 4px;}
.se401k-calc .check.show{display:flex;}
.se401k-calc .check input{margin-top:3px;width:16px;height:16px;accent-color:var(--brand-navy);}
.se401k-calc .check label{font-size:12.5px;color:var(--warn);line-height:1.45;}

/* Result box — deep navy with gold */
.se401k-calc .hero{background:var(--navy-deep);border-radius:10px;padding:22px 22px 24px;color:#fff;border-bottom:3px solid var(--brand-gold);}
.se401k-calc .hero .cap{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--brand-gold);margin:0 0 6px;}
.se401k-calc .hero .big{font-family:var(--serif);font-size:52px;line-height:1;font-weight:700;color:#fff;margin:2px 0 8px;letter-spacing:-.01em;font-variant-numeric:tabular-nums;}
.se401k-calc .hero .sub{font-size:13px;color:#c7cfdd;margin:0;line-height:1.5;}

/* Breakdown */
.se401k-calc .resultcard{display:none;background:var(--card);border:1px solid var(--warm-line);border-radius:10px;padding:4px 16px 8px;margin-top:16px;}
.se401k-calc .resultcard.show{display:block;}
.se401k-calc table.brk{width:100%;border-collapse:collapse;font-size:14.5px;margin:0;}
.se401k-calc table.brk td{padding:11px 2px;border-bottom:1px solid var(--warm-line);vertical-align:top;background:transparent;}
.se401k-calc table.brk tr:last-child td{border-bottom:0;}
.se401k-calc table.brk td:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap;}
.se401k-calc table.brk .lab{color:var(--ink);}
.se401k-calc table.brk .lab small{display:block;color:var(--muted);font-weight:400;font-size:12px;}
.se401k-calc table.brk tr.sub td{color:var(--muted);font-weight:400;}
.se401k-calc table.brk tr.sub td:last-child{font-weight:600;color:var(--ink);}
.se401k-calc table.brk tr.total td{border-top:2px solid var(--brand-navy);border-bottom:0;padding-top:13px;font-family:var(--serif);font-size:17px;font-weight:700;color:var(--brand-navy);}
.se401k-calc table.brk tr.save td{color:var(--good);}
.se401k-calc table.brk tr.save td:last-child{color:var(--good);}

.se401k-calc .flag{display:none;margin-top:12px;background:var(--warn-bg);border:1px solid #eadfc0;border-left:3px solid var(--brand-gold);border-radius:8px;padding:12px 14px;font-size:12.5px;color:var(--warn);line-height:1.5;}
.se401k-calc .flag.show{display:block;}
.se401k-calc .flag b{color:var(--warn);}

/* Details */
.se401k-calc details{margin-top:14px;border:1px solid var(--warm-line);border-radius:9px;background:#fff;}
.se401k-calc summary{cursor:pointer;padding:12px 14px;font-weight:700;font-size:13px;color:var(--brand-navy);list-style:none;}
.se401k-calc summary::-webkit-details-marker{display:none;}
.se401k-calc summary::after{content:"+";float:right;color:var(--brand-gold);font-weight:700;}
.se401k-calc details[open] summary::after{content:"\2013";}
.se401k-calc .howto{padding:2px 16px 16px;font-size:13px;color:var(--muted);line-height:1.6;}
.se401k-calc .limits{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.se401k-calc .chip{background:var(--cream);border:1px solid var(--warm-line);border-radius:20px;padding:5px 11px;font-size:11.5px;color:var(--brand-navy);font-weight:600;}
.se401k-calc .chip span{color:var(--muted);font-weight:400;}

/* Footer */
.se401k-calc .ft{border-top:1px solid var(--warm-line);margin-top:24px;padding:18px 0 2px;font-size:11.5px;color:var(--muted);line-height:1.55;}
.se401k-calc .ft a{color:var(--eyebrow);text-decoration:none;font-weight:600;}
.se401k-calc .ft strong{color:var(--brand-navy);}

@media (max-width:520px){
  .se401k-calc .inner{padding:22px 18px 24px;}
  .se401k-calc h2.title{font-size:32px;}
  .se401k-calc .hero .big{font-size:42px;}
}
@media (prefers-reduced-motion:reduce){ .se401k-calc *{transition:none!important;} }

/* ---- Print button (on screen) ---- */
.se401k-calc .ws-actions{margin-top:14px;text-align:right;}
.se401k-calc .se-print{display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--brand-navy);background:#fff;color:var(--brand-navy);font:inherit;font-weight:700;font-size:13px;padding:9px 15px;border-radius:7px;cursor:pointer;transition:all .15s;}
.se401k-calc .se-print:hover{background:var(--brand-navy);color:#fff;}
.se401k-calc .se-print:focus-visible{outline:2px solid var(--brand-gold);outline-offset:2px;}
.se401k-calc .se-print svg{width:15px;height:15px;fill:currentColor;}

/* ---- Print worksheet (rendered outside the component while printing) ---- */
.se401k-worksheet{display:none;}
@media print{
  @page{margin:14mm;}
  body.se401k-printing>*:not(.se401k-worksheet){display:none!important;}
  body.se401k-printing .se401k-worksheet{display:block!important;}
}
.se401k-worksheet,.se401k-worksheet *{box-sizing:border-box;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.se401k-worksheet{--wnavy:#14203a;--wgold:#c19a4d;--wmaroon:#4a1212;color:#1d2330;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:12px;line-height:1.5;border-top:3px solid var(--wmaroon);padding-top:14px;max-width:720px;margin:0 auto;}
.se401k-worksheet .ws-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;border-bottom:2px solid var(--wnavy);padding-bottom:12px;}
.se401k-worksheet .ws-firm{font-family:"Playfair Display",Georgia,"Times New Roman",serif;font-size:20px;font-weight:700;color:var(--wnavy);line-height:1.1;}
.se401k-worksheet .ws-title{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--wgold);margin-top:5px;}
.se401k-worksheet .ws-meta{text-align:right;font-size:10.5px;color:#555b66;line-height:1.6;white-space:nowrap;}
.se401k-worksheet .ws-section{margin-top:16px;}
.se401k-worksheet .ws-h{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--wgold);border-bottom:1px solid #e3d9c8;padding-bottom:5px;margin-bottom:4px;}
.se401k-worksheet table.ws-kv{width:100%;border-collapse:collapse;}
.se401k-worksheet table.ws-kv td{padding:6px 2px;border-bottom:1px solid #eee6d8;vertical-align:top;}
.se401k-worksheet table.ws-kv td:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap;}
.se401k-worksheet table.ws-kv td small{color:#7a808b;font-weight:400;font-size:10.5px;}
.se401k-worksheet .ws-total td{border-top:2px solid var(--wnavy)!important;border-bottom:0!important;padding-top:9px;font-family:"Playfair Display",Georgia,"Times New Roman",serif;font-size:15px;font-weight:700;color:var(--wnavy);}
.se401k-worksheet .ws-good td:last-child{color:#1d7a4c;}
.se401k-worksheet .ws-note{margin-top:12px;background:#fbf3df;border-left:3px solid var(--wgold);padding:9px 12px;font-size:10.5px;color:#6a5320;line-height:1.5;}
.se401k-worksheet .ws-limits{margin-top:12px;font-size:10px;color:#6b7079;}
.se401k-worksheet .ws-foot{margin-top:16px;border-top:1px solid #e3d9c8;padding-top:10px;font-size:9.5px;color:#7a808b;line-height:1.5;}
