:root { --bg: #0f1117; --card: #1a1d28; --card-alt: #222636; --accent: #6c5ce7; --accent-light: #a29bfe; --green: #00cec9; --red: #ff6b6b; --orange: #fdcb6e; --text: #e2e4f0; --text-dim: #8b8fa3; --border: #2d3148; --input-bg: #161825; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Segoe UI', system-ui, -apple-system, sans-serif; background: var(--bg); color: var(--text); min-height: 100vh; line-height: 1.5; } .container { max-width: 1400px; margin: 0 auto; padding: 20px; } header { text-align: center; padding: 30px 0 10px; } header h1 { font-size: 2.2rem; background: linear-gradient(135deg, var(--accent-light), var(--green)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin-bottom: 6px; } header a { text-decoration: none; } header p { color: var(--text-dim); font-size: 1rem; } .layout { display: grid; grid-template-columns: 380px 1fr; gap: 24px; margin-top: 24px; } .card { background: var(--card); border: 1px solid var(--border); border-radius: 16px; padding: 24px; } .card h2 { font-size: 1.15rem; margin-bottom: 18px; display: flex; align-items: center; gap: 8px; } .input-group { margin-bottom: 16px; } .input-group label { display: block; font-size: 0.82rem; color: var(--text-dim); margin-bottom: 5px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.5px; } .input-group input, .input-group select { width: 100%; padding: 10px 14px; background: var(--input-bg); border: 1px solid var(--border); border-radius: 10px; color: var(--text); font-size: 0.95rem; outline: none; transition: border-color 0.2s; } .input-group input:focus, .input-group select:focus { border-color: var(--accent); } .input-group select { cursor: pointer; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%238b8fa3' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 32px; } .input-group select option { background: var(--card); } .btn { width: 100%; padding: 12px; background: linear-gradient(135deg, var(--accent), #8b5cf6); color: #fff; border: none; border-radius: 10px; font-size: 1rem; font-weight: 600; cursor: pointer; transition: transform 0.15s, box-shadow 0.2s; margin-top: 8px; } .btn:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(108,92,231,0.35); } .right-panel { display: flex; flex-direction: column; gap: 24px; } .results-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; } .result-box { background: var(--card-alt); border-radius: 12px; padding: 18px; text-align: center; border: 1px solid var(--border); } .result-box.primary { background: linear-gradient(135deg, rgba(108,92,231,0.15), rgba(0,206,201,0.1)); border-color: var(--accent); } .result-box .label { font-size: 0.75rem; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 6px; } .result-box .value { font-size: 1.6rem; font-weight: 700; } .result-box .sub { font-size: 0.78rem; color: var(--text-dim); margin-top: 2px; } .result-box .value.positive { color: var(--green); } .result-box .value.negative { color: var(--red); } .result-box .value.accent { color: var(--accent-light); } .breakdown-table { width: 100%; border-collapse: collapse; } .breakdown-table th, .breakdown-table td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--border); font-size: 0.9rem; } .breakdown-table th { color: var(--text-dim); font-weight: 600; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.5px; } .breakdown-table tr:last-child td { border-bottom: none; } .breakdown-table .amount { text-align: right; font-variant-numeric: tabular-nums; } .breakdown-table .total-row td { border-top: 2px solid var(--border); font-weight: 700; padding-top: 14px; } .slider-container { margin-bottom: 16px; } .slider-container label { display: flex; justify-content: space-between; align-items: center; font-size: 0.85rem; color: var(--text-dim); margin-bottom: 10px; } .slider-container label span { font-weight: 700; color: var(--accent-light); font-size: 1rem; } input[type="range"] { -webkit-appearance: none; width: 100%; height: 6px; background: var(--border); border-radius: 3px; outline: none; } input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; border-radius: 50%; background: var(--accent); cursor: pointer; box-shadow: 0 0 10px rgba(108,92,231,0.4); } .chart-container { position: relative; height: 300px; margin-top: 10px; } canvas { width: 100% !important; height: 100% !important; } .empty-state { text-align: center; padding: 60px 20px; color: var(--text-dim); } .empty-state .icon { font-size: 3rem; margin-bottom: 12px; } .tax-brackets-info { font-size: 0.78rem; color: var(--text-dim); margin-top: 12px; padding: 12px; background: rgba(108,92,231,0.05); border-radius: 8px; border: 1px solid var(--border); } .tax-brackets-info strong { color: var(--accent-light); } .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } @media (max-width: 900px) { .layout { grid-template-columns: 1fr; } .results-grid { grid-template-columns: 1fr 1fr; } } @media (max-width: 600px) { .results-grid { grid-template-columns: 1fr; } .two-col { grid-template-columns: 1fr; } } .fade-in { animation: fadeIn 0.3s ease-in; } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .effective-rate { font-size: 0.8rem; color: var(--text-dim); margin-top: 2px; } .analysis-section h3 { font-size: 1rem; margin-bottom: 16px; } .comparison-table { margin-top: 16px; } .comparison-table table { width: 100%; border-collapse: collapse; } .comparison-table th, .comparison-table td { padding: 10px 12px; text-align: right; font-size: 0.85rem; border-bottom: 1px solid var(--border); } .comparison-table th { color: var(--text-dim); font-weight: 600; font-size: 0.75rem; text-transform: uppercase; } .comparison-table th:first-child, .comparison-table td:first-child { text-align: left; } .comparison-table .highlight-row { background: rgba(108,92,231,0.1); } .comparison-table .highlight-row td { color: var(--accent-light); font-weight: 600; } .savings-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; } .savings-box { background: var(--card-alt); border-radius: 10px; padding: 14px; text-align: center; } .savings-box .sb-label { font-size: 0.72rem; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.3px; } .savings-box .sb-value { font-size: 1.2rem; font-weight: 700; margin-top: 4px; }