/* 401K Calculator */
.k401-wrap{max-width:800px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;color:#1a1a1a}
.k401-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.k401-icon{font-size:34px;line-height:1}
.k401-title{font-size:22px!important;font-weight:600!important;margin:0 0 3px!important;padding:0!important;border:none!important;color:#1a1a1a!important}
.k401-sub{font-size:13px;color:#666;margin:0}
/* Layout */
.k401-grid{display:grid;grid-template-columns:320px 1fr;gap:24px;align-items:start}
@media(max-width:700px){.k401-grid{grid-template-columns:1fr}}
.k401-inputs-col{background:#fafafa;border:1px solid #e8e8e8;border-radius:12px;padding:16px}
.k401-results-col{}
.k401-section-lbl{font-size:11px;font-weight:700;color:#999;text-transform:uppercase;letter-spacing:.6px;margin-bottom:8px}
.k401-group{margin-bottom:10px}
.k401-lbl{display:block;font-size:13px;font-weight:500;color:#555;margin-bottom:4px}
.k401-iw{position:relative}
.k401-iw input{width:100%;box-sizing:border-box;padding:8px 36px 8px 28px;border:1px solid #d0d0d0;border-radius:8px;font-size:14px;color:#1a1a1a;background:#fff;outline:none;transition:border-color .15s;-moz-appearance:textfield}
.k401-iw input::-webkit-inner-spin-button,.k401-iw input::-webkit-outer-spin-button{-webkit-appearance:none}
.k401-iw input:focus{border-color:#10B981;box-shadow:0 0 0 3px rgba(16,185,129,.1)}
.k401-pre{position:absolute;left:8px;top:50%;transform:translateY(-50%);font-size:13px;color:#999;pointer-events:none}
.k401-suf{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:11px;color:#999;pointer-events:none}
/* IRS limit box */
.k401-limit-box{background:#fffbeb;border:1px solid #fde68a;border-radius:9px;padding:10px 13px;margin-top:10px}
.k401-limit-title{font-size:12px;font-weight:700;color:#92400E;margin-bottom:7px}
.k401-limit-row{display:flex;justify-content:space-between;font-size:12px;color:#78350F;padding:3px 0;border-bottom:1px solid #fde68a}
.k401-limit-row:last-child{border-bottom:none;font-weight:700}
/* Summary cards */
.k401-summary-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;animation:k401-in .22s ease}
@keyframes k401-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.k401-scard{border-radius:11px;padding:13px 12px;text-align:center;border:1px solid}
.k401-sc-total{background:linear-gradient(135deg,#10B981,#059669);border-color:#10B981;color:#fff}
.k401-sc-you{background:#d1fae5;border-color:#6ee7b7}
.k401-sc-employer{background:#dbeafe;border-color:#93c5fd}
.k401-sc-growth{background:#fef3c7;border-color:#fde047}
.k401-scard-val{font-size:18px;font-weight:700;font-family:monospace;margin-bottom:3px}
.k401-scard-lbl{font-size:11px;opacity:.8}
.k401-sc-total .k401-scard-val{font-size:22px;color:#fff}
.k401-sc-you .k401-scard-val{color:#065F46}
.k401-sc-employer .k401-scard-val{color:#1e40af}
.k401-sc-growth .k401-scard-val{color:#92400E}
/* Chart */
.k401-chart-wrap{background:#fafafa;border:1px solid #e8e8e8;border-radius:11px;padding:14px 16px;margin-bottom:4px}
.k401-chart-title{font-size:13px;font-weight:600;color:#1a1a1a;margin-bottom:10px}
.k401-donut-row{display:flex;align-items:center;gap:20px}
.k401-legend{flex:1}
.k401-legend-item{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:13px}
.k401-legend-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}
.k401-legend-lbl{color:#555;flex:1}
.k401-legend-val{font-weight:600;font-family:monospace;color:#1a1a1a}
/* Bar chart */
.k401-bar-chart{display:flex;align-items:flex-end;gap:3px;height:100px;background:#fafafa;border:1px solid #e8e8e8;border-radius:8px;padding:10px 8px 24px;overflow:hidden;position:relative}
.k401-bar-item{flex:1;display:flex;flex-direction:column;align-items:center;position:relative}
.k401-bar-fill{width:100%;border-radius:3px 3px 0 0;min-height:2px;transition:height .4s ease}
.k401-bar-yr{font-size:9px;color:#aaa;margin-top:3px;white-space:nowrap}
/* Table */
.k401-toggle-btn{padding:9px 18px;font-size:13px;font-weight:600;color:#065F46;background:#d1fae5;border:1px solid #6ee7b7;border-radius:8px;cursor:pointer;transition:background .13s}
.k401-toggle-btn:hover{background:#a7f3d0}
table.k401-table{width:100%;border-collapse:collapse;font-size:12px}
table.k401-table th{padding:7px 10px;text-align:right;color:#888;font-size:11px;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid #e8e8e8;background:#fafafa;font-weight:600;position:sticky;top:0}
table.k401-table th:first-child{text-align:center}
table.k401-table td{padding:6px 10px;border-bottom:1px solid #f5f5f5;text-align:right;font-family:monospace;font-size:12px}
table.k401-table td:first-child{text-align:center;color:#888;font-family:inherit}
table.k401-table tr:hover td{background:#f0fdf4}
table.k401-table tr:last-child td{background:#d1fae5;font-weight:700;border-bottom:none}
.k401-disclaimer{font-size:11px;color:#bbb;text-align:center;margin-top:10px}
