Files
2026-05-28 13:03:57 +00:00

108 lines
6.7 KiB
CSS

: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; }