diff --git a/links/templates/links/mini_apps/fire_planning.html b/links/templates/links/mini_apps/fire_planning.html index 1533545..a1e112e 100644 --- a/links/templates/links/mini_apps/fire_planning.html +++ b/links/templates/links/mini_apps/fire_planning.html @@ -236,22 +236,23 @@ table { width: 100%; border-collapse: collapse; - font-size: 0.8rem; + font-size: 0.75rem; } th { background: #f3f4f6; - padding: 0.5rem; + padding: 0.5rem 0.375rem; text-align: left; font-weight: 600; color: #374151; border-bottom: 2px solid #e5e7eb; - font-size: 0.75rem; + font-size: 0.7rem; } td { - padding: 0.375rem 0.5rem; + padding: 0.375rem; border-bottom: 1px solid #e5e7eb; + white-space: nowrap; } tr:hover { @@ -262,6 +263,140 @@ background: #d1fae5 !important; } + .net-worth-cell { + font-weight: 600; + color: #2563eb; + cursor: pointer; + text-decoration: underline; + text-decoration-style: dotted; + text-decoration-color: #93c5fd; + } + + .net-worth-cell:hover { + color: #1d4ed8; + background-color: #dbeafe; + } + + /* Modal Styles */ + .modal-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.6); + z-index: 1000; + display: flex; + align-items: center; + justify-content: center; + padding: 1rem; + } + + .modal-content { + background: white; + border-radius: 12px; + box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3); + max-width: 600px; + width: 100%; + max-height: 90vh; + overflow-y: auto; + animation: modalSlideIn 0.3s ease-out; + } + + @keyframes modalSlideIn { + from { + opacity: 0; + transform: translateY(-20px); + } + to { + opacity: 1; + transform: translateY(0); + } + } + + .modal-header { + padding: 1.25rem 1.5rem; + border-bottom: 2px solid #e5e7eb; + display: flex; + align-items: center; + justify-content: space-between; + background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%); + border-radius: 12px 12px 0 0; + } + + .modal-title { + font-size: 1.25rem; + font-weight: 700; + color: white; + margin: 0; + display: flex; + align-items: center; + } + + .modal-close { + background: rgba(255, 255, 255, 0.2); + border: none; + color: white; + width: 32px; + height: 32px; + border-radius: 6px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + transition: background 0.2s ease; + font-size: 1.25rem; + } + + .modal-close:hover { + background: rgba(255, 255, 255, 0.3); + } + + .modal-body { + padding: 1.5rem; + } + + .calculation-step { + background: #f9fafb; + border-left: 4px solid #3b82f6; + padding: 0.75rem 1rem; + margin-bottom: 0.75rem; + border-radius: 4px; + font-size: 0.95rem; + } + + .calculation-step.highlight { + background: #dbeafe; + border-left-color: #1d4ed8; + font-weight: 600; + } + + .calculation-label { + color: #6b7280; + font-size: 0.85rem; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.5px; + } + + .calculation-value { + color: #1f2937; + font-size: 1.1rem; + font-weight: 700; + font-family: 'Courier New', monospace; + } + + .calculation-formula { + background: #fef3c7; + border: 1px solid #fbbf24; + padding: 0.75rem; + border-radius: 6px; + margin: 1rem 0; + font-family: 'Courier New', monospace; + font-size: 0.9rem; + color: #92400e; + } + {% endblock %} @@ -290,7 +425,7 @@
- Detailed breakdown of your journey to FIRE. + Detailed year-by-year breakdown showing your income, savings, investment returns, and net worth growth. + Click on any Net Worth value to see the detailed calculation with actual numbers. Green rows indicate years where you've achieved FIRE (≥100% progress).