/* Calculators. Uses the site's theme variables so light/dark follow the toggle. */
.crumbs{font-size:13px;color:var(--muted2);margin:18px 0 6px;}
.crumbs a{color:var(--muted2);}
.crumbs span{margin:0 6px;opacity:.6;}
.calc-hero h1{font-size:clamp(26px,4.2vw,38px);line-height:1.15;margin:6px 0 10px;color:var(--heading);font-weight:800;}
.calc-hero .prose{max-width:820px;}
.calc-hero .prose p{margin:0 0 10px;}

.calc-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start;margin:18px 0 8px;}
@media(max-width:820px){.calc-layout{grid-template-columns:minmax(0,1fr);}}
.calc-box{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:20px;}
.calc-box h2{font-size:17px;margin:0 0 14px;color:var(--heading);}
.calc-results-box{position:sticky;top:76px;}
@media(max-width:820px){.calc-results-box{position:static;}}

#calc-form{display:flex;flex-wrap:wrap;gap:14px 12px;}
.cf-field{flex:1 1 100%;min-width:0;}
.cf-field.half{flex:1 1 calc(50% - 6px);}
.cf-field[hidden]{display:none;}
.cf-field label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin:0 0 5px;}
.cf-wrap{position:relative;}
.cf-field input,.cf-field select{width:100%;box-sizing:border-box;background:var(--input-bg);color:var(--text);border:1px solid var(--border-strong);border-radius:10px;padding:11px 12px;font:inherit;font-size:16px;min-height:44px;}
.cf-field input:focus,.cf-field select:focus{outline:2px solid var(--a1);outline-offset:1px;border-color:transparent;}
.cf-wrap .cf-unit{position:absolute;right:11px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--muted2);pointer-events:none;max-width:48%;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cf-wrap input{padding-right:84px;}
.cf-hint{margin:5px 0 0;font-size:12px;color:var(--muted2);line-height:1.4;}
.calc-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;}
.calc-actions .btn{padding:9px 14px;font-size:13px;border-radius:10px;cursor:pointer;font-family:inherit;}

.cr-empty{color:var(--muted);margin:0;}
.cr-rows{margin:0;}
.cr-row{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--border);align-items:baseline;}
.cr-row:last-child{border-bottom:0;}
.cr-row dt{color:var(--muted);font-size:14px;margin:0;}
.cr-row dd{margin:0;text-align:right;color:var(--text);font-weight:600;font-size:15px;overflow-wrap:anywhere;}
.cr-row.big dt{color:var(--heading);font-weight:600;}
.cr-row.big dd{font-size:21px;font-weight:800;color:var(--heading);}
.cr-row.big:first-child dd{color:var(--a1);}
.cr-note{font-size:12.5px;color:var(--muted2);margin:12px 0 0;line-height:1.5;}
.cr-chart{display:flex;height:14px;border-radius:7px;overflow:hidden;margin:16px 0 8px;background:var(--card-2);}
.cr-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--muted);}
.cr-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;}
.seg.s0{background:#38c878;}.seg.s1{background:#ff8c2b;}.seg.s2{background:#5b8def;}.seg.s3{background:#b36bff;}.seg.s4{background:#8d8a93;}

.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:12px;}
.cr-table{width:100%;border-collapse:collapse;font-size:14px;min-width:420px;}
.cr-table th,.cr-table td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--border);}
.cr-table th{background:var(--card-2);color:var(--muted);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.03em;position:sticky;top:0;}
.cr-table td.num,.cr-table th.num{text-align:right;font-variant-numeric:tabular-nums;}
.cr-table tr:last-child td{border-bottom:0;}
.cr-table td a{font-weight:600;}
#calc-table{margin-top:18px;}
#calc-table h3,.calc-sec h3{font-size:16px;margin:0 0 10px;color:var(--heading);}

.calc-sec{margin:34px 0 0;}
.calc-sec > h2{font-size:22px;margin:0 0 12px;color:var(--heading);font-weight:800;}
.calc-sec .prose h3{font-size:17px;margin:0 0 10px;color:var(--heading);}
.calc-sec .prose ul,.calc-sec .prose ol{margin:0 0 14px;padding-left:22px;}
.calc-sec .prose li{margin:0 0 6px;}

.promo{background:linear-gradient(135deg,rgba(255,140,43,.12),rgba(255,69,0,.07));border:1px solid var(--border-strong);border-radius:18px;padding:22px;}
.promo > h2{font-size:21px;margin:0 0 4px;color:var(--heading);}
.promo > p.sub{margin:0 0 16px;color:var(--muted);font-size:14px;}
.promo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;}
.promo-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px;}
.promo-card .top{display:flex;gap:14px;align-items:center;}
.promo-card h3{margin:0;font-size:17px;color:var(--heading);}
.promo-card .cat{font-size:12px;color:var(--a2);font-weight:600;}
.promo-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.5;flex:1;}
.promo-card .btns{display:flex;gap:8px;flex-wrap:wrap;}
.promo-card .btn{padding:9px 14px;font-size:14px;border-radius:10px;}

.faq details{background:var(--card);border:1px solid var(--border);border-radius:12px;margin:0 0 10px;padding:0;}
.faq summary{cursor:pointer;padding:14px 16px;font-weight:600;color:var(--heading);list-style:none;display:flex;justify-content:space-between;gap:12px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";color:var(--a1);font-weight:800;font-size:18px;line-height:1;}
.faq details[open] summary::after{content:"\2212";}
.faq details p{margin:0;padding:0 16px 14px;color:var(--prose);line-height:1.6;}

.calc-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;}
.calc-card{display:block;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;color:inherit;transition:transform .15s,border-color .15s;}
.calc-card:hover{transform:translateY(-2px);border-color:var(--border-hover);text-decoration:none;}
.calc-card h3{margin:0 0 5px;font-size:16px;color:var(--heading);}
.calc-card p{margin:0;font-size:13.5px;color:var(--muted);line-height:1.45;}
.calc-card .cat{font-size:12px;color:var(--a2);font-weight:600;display:block;margin-bottom:4px;}

.cat-block{margin:30px 0 0;}
.cat-block h2{margin:0 0 4px;font-size:22px;color:var(--heading);font-weight:800;}
.cat-block > p{margin:0 0 14px;color:var(--muted2);font-size:14px;}

.state-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 12px;font-size:14px;}
.state-grid a{padding:3px 0;}
.state-grid a[aria-current="page"]{font-weight:800;color:var(--heading);}
.facts{width:100%;border-collapse:collapse;font-size:14px;}
.facts th,.facts td{padding:9px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top;}
.facts th{width:36%;color:var(--muted);font-weight:600;}
.conf{border-left:3px solid var(--a1);background:var(--card-2);padding:10px 14px;border-radius:0 10px 10px 0;font-size:13.5px;color:var(--muted);margin:0 0 14px;}
.srcs{font-size:13px;color:var(--muted2);}
.srcs a{overflow-wrap:anywhere;}
.disclaimer{font-size:12.5px;color:var(--muted2);margin-top:26px;line-height:1.55;}
.cf-field.half{display:flex;flex-direction:column;justify-content:flex-end;}

/* take-home pay: deduction rows */
.cf-sub{margin-top:6px;}
.cf-sub h3{margin:6px 0 2px;font-size:15px;color:var(--heading);border-top:1px solid var(--border);padding-top:14px;}
#ded-list{display:flex;flex-direction:column;gap:10px;}
.ded-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:8px;align-items:center;background:var(--card-2);border:1px solid var(--border);border-radius:12px;padding:10px;}
.ded-row .d-name{grid-column:1;}
.ded-row .cf-wrap{grid-column:2;}
.ded-row .d-del{grid-column:3;grid-row:1;}
.ded-row .d-type,.ded-row .d-treat{grid-column:1 / 3;}
.ded-row .d-treat[hidden]{display:none;}
.ded-row input,.ded-row select{width:100%;box-sizing:border-box;background:var(--input-bg);color:var(--text);border:1px solid var(--border-strong);border-radius:10px;padding:9px 10px;font:inherit;font-size:15px;min-height:42px;}
.ded-row input:focus,.ded-row select:focus{outline:2px solid var(--a1);outline-offset:1px;border-color:transparent;}
.ded-row .cf-wrap input{padding-right:30px;}
.ded-row .d-del{background:transparent;border:1px solid var(--border-strong);color:var(--muted);border-radius:10px;width:42px;height:42px;font-size:22px;line-height:1;cursor:pointer;}
.ded-row .d-del:hover{color:var(--heading);border-color:var(--border-hover);}
.ded-add{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px;font-size:13px;color:var(--muted);}
.chip{background:var(--card-2);border:1px solid var(--border-strong);color:var(--text);border-radius:999px;padding:7px 12px;font:inherit;font-size:13px;cursor:pointer;min-height:36px;}
.chip:hover{border-color:var(--a1);}
