*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } :root { --bg: #f4f6f9; --card-bg: #ffffff; --text: #1a1a2e; --text-muted: #6b7280; --primary: #2563eb; --primary-hover: #1d4ed8; --border: #e2e8f0; --shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.06); --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07), 0 2px 4px rgba(0, 0, 0, 0.06); --radius: 12px; --radius-sm: 8px; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; background: var(--bg); color: var(--text); line-height: 1.6; padding: 2rem 1rem; } .container { max-width: 860px; margin: 0 auto; } h1 { font-size: 1.75rem; font-weight: 700; margin-bottom: 0.25rem; } .subtitle { color: var(--text-muted); font-size: 0.95rem; margin-bottom: 1.75rem; } .card { background: var(--card-bg); border-radius: var(--radius); box-shadow: var(--shadow); padding: 1.5rem; margin-bottom: 1rem; } .card h2 { font-size: 1.05rem; font-weight: 600; margin-bottom: 1rem; color: var(--text); } .input-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; } .input-group label { display: block; font-size: 0.8rem; font-weight: 500; color: var(--text-muted); margin-bottom: 0.35rem; text-transform: uppercase; letter-spacing: 0.03em; } .input-wrapper { display: flex; align-items: center; border: 1px solid var(--border); border-radius: var(--radius-sm); overflow: hidden; transition: border-color 0.15s, box-shadow 0.15s; } .input-wrapper:focus-within { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12); } .input-wrapper input { flex: 1; border: none; outline: none; padding: 0.55rem 0.75rem; font-size: 0.95rem; font-family: inherit; background: transparent; color: var(--text); } .input-prefix, .input-suffix { padding: 0 0.75rem; font-size: 0.9rem; color: var(--text-muted); background: var(--bg); user-select: none; white-space: nowrap; } .input-prefix { border-right: 1px solid var(--border); } .input-suffix { border-left: 1px solid var(--border); } .btn-calculate { display: block; width: 100%; padding: 0.8rem; background: var(--primary); color: #fff; font-size: 1rem; font-weight: 600; font-family: inherit; border: none; border-radius: var(--radius-sm); cursor: pointer; box-shadow: var(--shadow-md); transition: background 0.15s, transform 0.1s; margin-bottom: 1.5rem; } .btn-calculate:hover { background: var(--primary-hover); } .btn-calculate:active { transform: scale(0.99); } .results { margin-top: 0.5rem; } .results.hidden { display: none; } .chart-container { position: relative; width: 100%; height: 380px; } .table-wrapper { overflow-x: auto; } table { width: 100%; border-collapse: collapse; font-size: 0.85rem; } thead th { background: var(--bg); font-weight: 600; text-transform: uppercase; font-size: 0.72rem; letter-spacing: 0.04em; color: var(--text-muted); padding: 0.6rem 0.5rem; text-align: right; white-space: nowrap; position: sticky; top: 0; } thead th:first-child { text-align: left; } tbody td { padding: 0.5rem; text-align: right; border-bottom: 1px solid var(--border); font-variant-numeric: tabular-nums; } tbody td:first-child { text-align: left; font-weight: 500; } tbody tr:hover { background: rgba(37, 99, 235, 0.03); } @media (max-width: 600px) { body { padding: 1rem 0.5rem; } .input-grid { grid-template-columns: 1fr; } .chart-container { height: 260px; } }