:root { /* Brand */ --navy: #0f172a; --dark-blue: #1e293b; --mid-blue: #334155; --accent-green: #10b981; --accent-green-dim: #059669; --light-green: #d1fae5; --teal: #14b8a6; --brand-accent: #6366f1; /* Grays */ --gray-50: #f8fafc; --gray-100: #f1f5f9; --gray-200: #e2e8f0; --gray-300: #cbd5e1; --gray-400: #94a3b8; --gray-500: #64748b; --gray-600: #475569; --gray-700: #334155; --gray-800: #1e293b; --gray-900: #0f172a; --white: #ffffff; /* Semantic */ --red: #ef4444; --red-light: #fee2e2; --green-light: #d1fae5; --amber: #f59e0b; --amber-light: #fef3c7; --blue: #3b82f6; --blue-light: #dbeafe; /* Shadows */ --shadow-xs: 0 1px 3px rgba(15,23,42,0.04); --shadow-sm: 0 2px 8px rgba(15,23,42,0.06); --shadow-md: 0 4px 20px rgba(15,23,42,0.08); --shadow-lg: 0 8px 32px rgba(15,23,42,0.10); /* Radius */ --radius-sm: 6px; --radius-md: 10px; --radius-lg: 14px; --radius-xl: 20px; /* Glass */ --glass-bg: rgba(255,255,255,0.7); --glass-border: rgba(255,255,255,0.5); } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; color: var(--gray-800); background: var(--white); -webkit-font-smoothing: antialiased; line-height: 1.6; } /* ── NAV ── */ nav { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; background: rgba(255,255,255,0.92); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-bottom: 1px solid rgba(226,232,240,0.7); padding: 0 2rem; height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; transition: background 0.3s, box-shadow 0.3s; } .nav-scrolled { background: rgba(255,255,255,0.97) !important; box-shadow: 0 1px 10px rgba(15,23,42,0.07); } .nav-logo { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.2rem; color: var(--navy); text-decoration: none; display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; } .nav-logo-icon { width: 32px; height: 32px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; } .nav-logo-icon svg { width: 32px; height: 32px; display: block; } /* ── MEGA-MENU TOP-LEVEL LIST ── */ .nav-mega-links { display: flex; gap: 0.125rem; list-style: none; align-items: center; } .nav-mega-item { position: relative; } /* ── MEGA TRIGGER BUTTON ── */ .nav-mega-trigger { display: flex; align-items: center; gap: 0.3rem; font-size: 0.8375rem; font-weight: 500; color: var(--gray-600); background: none; border: none; padding: 0.375rem 0.7rem; border-radius: 7px; cursor: pointer; font-family: inherit; white-space: nowrap; transition: color 0.15s, background 0.15s; line-height: 1; } .nav-mega-trigger:hover { color: var(--navy); background: var(--gray-50); } .nav-mega-trigger.panel-open { color: var(--navy); background: var(--gray-100); } .nav-mega-chevron { width: 11px; height: 11px; transition: transform 0.2s; color: var(--gray-400); flex-shrink: 0; } .nav-mega-trigger.panel-open .nav-mega-chevron { transform: rotate(180deg); } /* ── MEGA PANEL DROPDOWN ── */ .nav-mega-panel { display: none; position: absolute; top: calc(100% + 8px); left: 50%; transform: translateX(-50%); background: #fff; border: 1px solid var(--gray-200); border-radius: 14px; box-shadow: 0 8px 40px rgba(15,23,42,0.10), 0 2px 8px rgba(15,23,42,0.05); padding: 1.25rem; min-width: 580px; z-index: 999; animation: megaFadeIn 0.14s ease; } .nav-mega-panel.open { display: block; } .nav-mega-panel.wide { min-width: 740px; } @keyframes megaFadeIn { from { opacity: 0; transform: translateX(-50%) translateY(-8px); } to { opacity: 1; transform: translateX(-50%) translateY(0); } } /* First item panel — anchor left not center */ .nav-mega-item:first-child .nav-mega-panel { left: 0; transform: none; } @keyframes megaFadeInLeft { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } } .nav-mega-item:first-child .nav-mega-panel.open { animation: megaFadeInLeft 0.14s ease; } /* ── PANEL INNER GRID ── */ .mega-cols { display: grid; gap: 1.25rem; } .mega-cols-2 { grid-template-columns: 1fr 1fr; } .mega-cols-3 { grid-template-columns: 1fr 1fr 1fr; } .mega-cols-4 { grid-template-columns: 1fr 1fr 1fr 1fr; } .mega-col-hd { font-size: 0.67rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.09em; color: var(--gray-400); margin-bottom: 0.5rem; padding-bottom: 0.4rem; border-bottom: 1px solid var(--gray-100); } .mega-links { list-style: none; display: flex; flex-direction: column; gap: 0.1rem; } .mega-links a { display: block; font-size: 0.8125rem; font-weight: 500; color: var(--gray-600); text-decoration: none; padding: 0.26rem 0.5rem; border-radius: 5px; transition: color 0.12s, background 0.12s; white-space: nowrap; } .mega-links a:hover { color: var(--navy); background: var(--gray-50); } .mega-links a.mega-see-all { color: var(--accent-green); font-weight: 600; margin-top: 0.2rem; font-size: 0.775rem; } .mega-links a.mega-see-all:hover { background: rgba(16,185,129,0.06); } /* ── AI TRACKER INPUT (Track the Market panel) ── */ .mega-ai-row { grid-column: 1 / -1; background: linear-gradient(135deg, rgba(16,185,129,0.05) 0%, rgba(99,102,241,0.04) 100%); border: 1px solid rgba(16,185,129,0.16); border-radius: 10px; padding: 0.875rem 1rem; margin-bottom: 0.125rem; } .mega-ai-label { font-size: 0.68rem; font-weight: 700; color: var(--accent-green); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.35rem; } .mega-ai-form { display: flex; gap: 0.5rem; } .mega-ai-input { flex: 1; padding: 0.575rem 0.875rem; border: 1px solid var(--gray-200); border-radius: 8px; font-size: 0.8375rem; font-family: inherit; color: var(--navy); background: #fff; outline: none; min-width: 0; transition: border 0.15s, box-shadow 0.15s; } .mega-ai-input:focus { border-color: var(--accent-green); box-shadow: 0 0 0 3px rgba(16,185,129,0.08); } .mega-ai-input::placeholder { color: var(--gray-400); } .mega-ai-btn { padding: 0.575rem 1rem; background: linear-gradient(135deg, var(--accent-green), var(--teal)); color: #fff; border: none; border-radius: 8px; font-size: 0.8rem; font-weight: 700; cursor: pointer; font-family: inherit; white-space: nowrap; transition: box-shadow 0.15s; box-shadow: 0 2px 8px rgba(16,185,129,0.25); } .mega-ai-btn:hover { box-shadow: 0 4px 14px rgba(16,185,129,0.35); } /* ── MY STACK EDGE CTA BUTTON ── */ .nav-edge-cta { display: inline-flex; align-items: center; gap: 0.35rem; background: linear-gradient(135deg, #10b981, #059669); color: #fff !important; font-size: 0.8125rem; font-weight: 700; padding: 0.44rem 1.05rem; border-radius: 8px; text-decoration: none; white-space: nowrap; transition: all 0.15s; box-shadow: 0 2px 10px rgba(16,185,129,0.30); border: 1px solid rgba(5,150,105,0.3); } .nav-edge-cta:hover { box-shadow: 0 4px 16px rgba(16,185,129,0.40); transform: translateY(-1px); } /* ── MOBILE HAMBURGER ── */ .nav-mobile-btn { display: none; background: none; border: 1.5px solid var(--gray-200); border-radius: 7px; width: 36px; height: 36px; cursor: pointer; align-items: center; justify-content: center; flex-shrink: 0; color: var(--navy); } .nav-mobile-btn svg { display: block; } /* ── LEGACY COMPAT ── */ .nav-cta { background: linear-gradient(135deg, var(--accent-green), var(--teal)) !important; color: #fff !important; padding: 0.375rem 0.875rem; border-radius: 7px; font-weight: 600 !important; font-size: 0.8125rem !important; transition: all 0.15s !important; white-space: nowrap; box-shadow: 0 2px 8px rgba(16,185,129,0.25); } .nav-cta:hover { box-shadow: 0 4px 14px rgba(16,185,129,0.3) !important; transform: translateY(-1px); } .nav-advisors-link { background: linear-gradient(135deg, var(--accent-green), var(--teal)) !important; color: #fff !important; padding: 0.375rem 0.875rem; border-radius: 7px; font-weight: 600 !important; font-size: 0.8125rem !important; transition: all 0.15s !important; box-shadow: 0 2px 8px rgba(16,185,129,0.25); } .nav-advisors-link:hover { box-shadow: 0 4px 14px rgba(16,185,129,0.3) !important; } .nav-links { display: flex; gap: 1.5rem; list-style: none; align-items: center; flex-wrap: nowrap; } .nav-links a { font-size: 0.8375rem; font-weight: 500; color: var(--gray-600); text-decoration: none; transition: color 0.15s; white-space: nowrap; } .nav-links a:hover { color: var(--navy); } .nav-links a.active { color: var(--navy); font-weight: 600; } .nav-new-badge { display: inline-block; font-size: 0.55rem; font-weight: 800; padding: 0.1rem 0.35rem; border-radius: 3px; background: linear-gradient(135deg, var(--accent-green), var(--teal)); color: #fff; vertical-align: middle; margin-left: 0.2rem; letter-spacing: 0.04em; } /* ── LAYOUT ── */ .container { max-width: 1200px; margin: 0 auto; padding: 0 2rem; } .page-header { padding: 7rem 0 3rem; } .page-wrap { max-width: 1200px; margin: 0 auto; padding: 7rem 2rem 4rem; } /* ── BREADCRUMB ── */ .breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.78rem; color: var(--gray-500); margin-bottom: 1.25rem; } .breadcrumb a { color: var(--gray-500); text-decoration: none; } .breadcrumb a:hover { color: var(--accent-green); } .breadcrumb span { color: var(--gray-400); } /* ── PAGE TYPOGRAPHY ── */ .page-label { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--accent-green); margin-bottom: 0.6rem; } .page-title { font-family: 'Space Grotesk', sans-serif; font-size: 2.75rem; font-weight: 700; color: var(--navy); line-height: 1.12; letter-spacing: -0.025em; margin-bottom: 1rem; } .page-subtitle { font-size: 1.05rem; color: var(--gray-500); line-height: 1.75; max-width: 620px; } /* ── SECTION ── */ .section { padding: 3rem 0; border-top: 1px solid var(--gray-100); } .section-label { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--accent-green); margin-bottom: 0.5rem; } .section-title { font-family: 'Space Grotesk', sans-serif; font-size: 1.35rem; font-weight: 700; color: var(--navy); margin-bottom: 1.5rem; letter-spacing: -0.01em; } .section-subtitle { font-size: 0.95rem; color: var(--gray-500); margin-bottom: 2rem; line-height: 1.7; max-width: 560px; } /* ── CARDS ── */ .card { background: var(--white); border: 1px solid var(--gray-200); border-radius: var(--radius-lg); overflow: hidden; } .card-hover { transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s; } .card-hover:hover { border-color: var(--accent-green); box-shadow: var(--shadow-md); transform: translateY(-2px); } .card-body { padding: 1.5rem; } /* ── BUTTONS ── */ .btn { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.625rem 1.25rem; border-radius: 8px; font-size: 0.875rem; font-weight: 600; font-family: inherit; cursor: pointer; border: none; transition: all 0.15s; text-decoration: none; white-space: nowrap; line-height: 1; } .btn-primary { background: linear-gradient(135deg, var(--accent-green), var(--teal)); color: #fff; box-shadow: 0 2px 8px rgba(16,185,129,0.25); } .btn-primary:hover { box-shadow: 0 4px 14px rgba(16,185,129,0.3); transform: translateY(-1px); } .btn-green { background: var(--accent-green); color: var(--white); } .btn-green:hover { background: var(--accent-green-dim); } .btn-outline { background: var(--white); color: var(--navy); border: 1.5px solid var(--gray-200); } .btn-outline:hover { border-color: var(--navy); background: var(--gray-50); } .btn-ghost { background: var(--gray-100); color: var(--gray-700); } .btn-ghost:hover { background: var(--gray-200); } .btn-danger { background: var(--red-light); color: var(--red); } .btn-danger:hover { background: #fecaca; } .btn-sm { padding: 0.375rem 0.75rem; font-size: 0.8rem; border-radius: 6px; } .btn-lg { padding: 0.8rem 1.75rem; font-size: 1rem; border-radius: 10px; } /* ── BADGES ── */ .badge { display: inline-block; padding: 0.2rem 0.625rem; border-radius: 100px; font-size: 0.72rem; font-weight: 600; line-height: 1.4; } .badge-green { background: var(--green-light); color: #065f46; } .badge-red { background: var(--red-light); color: #991b1b; } .badge-blue { background: var(--blue-light); color: #1d4ed8; } .badge-amber { background: var(--amber-light); color: #92400e; } .badge-gray { background: var(--gray-100); color: var(--gray-600); } .badge-navy { background: linear-gradient(135deg, var(--accent-green), var(--teal)); color: #fff; } /* ── STAT CARDS ── */ .stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 2rem; } .stat-card { background: var(--white); border: 1px solid var(--gray-200); border-radius: var(--radius-lg); padding: 1.25rem 1.5rem; } .stat-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--gray-400); margin-bottom: 0.5rem; } .stat-value { font-family: 'Space Grotesk', sans-serif; font-size: 1.75rem; font-weight: 700; color: var(--navy); line-height: 1; } .stat-value.green { color: var(--accent-green); } .stat-value.red { color: var(--red); } .stat-sub { font-size: 0.75rem; color: var(--gray-400); margin-top: 0.35rem; } /* ── DATA TABLE ── */ .data-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; } .data-table th { text-align: left; padding: 0.75rem 1rem; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--gray-400); border-bottom: 2px solid var(--gray-200); background: var(--gray-50); } .data-table td { padding: 0.9rem 1rem; border-bottom: 1px solid var(--gray-100); color: var(--gray-700); vertical-align: middle; } .data-table tr:last-child td { border-bottom: none; } .data-table tr:hover td { background: var(--gray-50); } .data-table .ticker-col { font-family: 'Space Grotesk', sans-serif; font-weight: 700; color: var(--navy); font-size: 0.9rem; } .risks-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; } .risks-table th { text-align: left; padding: 0.75rem 1rem; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--gray-400); border-bottom: 2px solid var(--gray-200); background: var(--gray-50); } .risks-table td { padding: 0.9rem 1rem; border-bottom: 1px solid var(--gray-100); vertical-align: top; color: var(--gray-700); line-height: 1.6; } .risks-table td:first-child { font-weight: 600; color: var(--navy); white-space: nowrap; } .risks-table tr:last-child td { border-bottom: none; } .risks-table tr:hover td { background: var(--gray-50); } /* ── FORMS ── */ .form-group { margin-bottom: 1.1rem; } .form-label { display: block; font-size: 0.8rem; font-weight: 600; color: var(--gray-600); margin-bottom: 0.4rem; } .form-input, .form-select, .form-textarea { width: 100%; padding: 0.65rem 0.9rem; border: 1.5px solid var(--gray-200); border-radius: 8px; font-size: 0.875rem; font-family: inherit; color: var(--gray-800); background: var(--white); transition: border-color 0.15s, box-shadow 0.15s; -webkit-appearance: none; } .form-input:focus, .form-select:focus, .form-textarea:focus { outline: none; border-color: var(--accent-green); box-shadow: 0 0 0 3px rgba(16,185,129,0.1); } .form-textarea { resize: vertical; min-height: 80px; } .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; } .form-actions { display: flex; gap: 0.75rem; justify-content: flex-end; margin-top: 1.5rem; } /* ── EMPTY STATE ── */ .empty-state { text-align: center; padding: 4rem 2rem; } .empty-icon { font-size: 2.5rem; margin-bottom: 1rem; opacity: 0.5; } .empty-title { font-family: 'Space Grotesk', sans-serif; font-size: 1.2rem; font-weight: 700; color: var(--navy); margin-bottom: 0.5rem; } .empty-text { font-size: 0.9rem; color: var(--gray-400); margin-bottom: 1.5rem; line-height: 1.6; } /* ── SUB NAV ── */ .sub-nav { display: flex; gap: 0.25rem; margin-bottom: 2rem; border-bottom: 1px solid var(--gray-200); } .sub-nav a { padding: 0.65rem 1.25rem; font-size: 0.875rem; font-weight: 500; color: var(--gray-500); text-decoration: none; border-bottom: 2px solid transparent; margin-bottom: -1px; transition: all 0.15s; } .sub-nav a:hover { color: var(--navy); } .sub-nav a.active { color: var(--navy); font-weight: 600; border-bottom-color: var(--accent-green); } /* ── MODAL ── */ .modal-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.4); z-index: 200; align-items: center; justify-content: center; backdrop-filter: blur(4px); } .modal-overlay.open { display: flex; } .modal { background: var(--white); border-radius: var(--radius-xl); padding: 2rem; width: 100%; max-width: 520px; max-height: 90vh; overflow-y: auto; box-shadow: var(--shadow-lg); } .modal-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; } .modal-title { font-family: 'Space Grotesk', sans-serif; font-size: 1.25rem; font-weight: 700; color: var(--navy); } .modal-close { background: none; border: none; font-size: 1.5rem; cursor: pointer; color: var(--gray-400); line-height: 1; padding: 0; } .modal-close:hover { color: var(--gray-700); } /* ── FOOTER ── */ footer { background: var(--gray-50); color: var(--gray-500); padding: 3.5rem 2rem 2rem; margin-top: 5rem; border-top: 1px solid var(--gray-100); } .footer-inner { max-width: 1200px; margin: 0 auto; } .footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 3rem; padding-bottom: 2.5rem; border-bottom: 1px solid var(--gray-200); margin-bottom: 2rem; } .footer-brand .footer-logo { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.1rem; color: var(--navy); text-decoration: none; display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.875rem; } .footer-brand .footer-logo-icon { width: 28px; height: 28px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; } .footer-brand .footer-logo-icon svg { width: 28px; height: 28px; display: block; } .footer-brand p { font-size: 0.82rem; color: var(--gray-500); line-height: 1.7; max-width: 240px; } .footer-col-title { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--gray-400); margin-bottom: 1rem; } .footer-links { list-style: none; display: flex; flex-direction: column; gap: 0.5rem; } .footer-links a { font-size: 0.82rem; color: var(--gray-500); text-decoration: none; transition: color 0.15s; } .footer-links a:hover { color: var(--accent-green); } .footer-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.75rem; } .footer-bottom p { font-size: 0.78rem; color: var(--gray-500); } .footer-legal { display: flex; gap: 1.25rem; } .footer-legal a { font-size: 0.78rem; color: var(--gray-500); text-decoration: none; transition: color 0.15s; } .footer-legal a:hover { color: var(--navy); } /* ── RESPONSIVE ── */ @media (max-width: 1100px) { .nav-mega-links { gap: 0.05rem; } .nav-mega-trigger { padding: 0.375rem 0.5rem; font-size: 0.8rem; } .footer-grid { grid-template-columns: 1fr 1fr 1fr; } .footer-brand { grid-column: 1 / -1; } .stat-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 900px) { .nav-mega-links { display: none; } .nav-mega-links.open { display: flex; flex-direction: column; position: absolute; top: 64px; left: 0; right: 0; background: #fff; border-bottom: 1px solid var(--gray-200); padding: 0.5rem 0; box-shadow: 0 8px 24px rgba(15,23,42,0.08); z-index: 999; max-height: 80vh; overflow-y: auto; } .nav-mega-item { width: 100%; border-bottom: 1px solid var(--gray-100); } .nav-mega-item:last-child { border-bottom: none; } .nav-mega-trigger { width: 100%; justify-content: space-between; padding: 0.75rem 1.25rem; font-size: 0.9rem; font-weight: 600; border-radius: 0; } .nav-mega-panel { display: none; position: static; transform: none; box-shadow: none; border: none; border-radius: 0; border-top: 1px solid var(--gray-100); padding: 0.75rem 1.25rem 1rem; min-width: 0; animation: none; background: var(--gray-50); } .nav-mega-panel.open { display: block; } .nav-mega-panel.wide { min-width: 0; } .mega-cols { grid-template-columns: 1fr; gap: 0.875rem; } .mega-cols-2, .mega-cols-3, .mega-cols-4 { grid-template-columns: 1fr; } .mega-ai-row { grid-column: 1; } .mega-ai-form { flex-direction: column; } .mega-ai-input { width: 100%; } .mega-ai-btn { width: 100%; justify-content: center; } .nav-edge-cta { display: flex; justify-content: center; margin: 0.625rem 1.25rem; } .nav-mobile-btn { display: flex; } /* Legacy mobile compat */ .nav-links { display: none; } .nav-links.open { display: flex; flex-direction: column; position: absolute; top: 64px; left: 0; right: 0; background: var(--white); border-bottom: 1px solid var(--gray-200); padding: 1rem 2rem; gap: 0.25rem; box-shadow: var(--shadow-md); z-index: 99; } .nav-links.open li { width: 100%; } .nav-links.open a { display: block; padding: 0.5rem 0; font-size: 0.9rem; } .page-title { font-size: 2.1rem; } .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; } } @media (max-width: 600px) { .page-title { font-size: 1.75rem; } .stat-grid { grid-template-columns: 1fr 1fr; } .footer-grid { grid-template-columns: 1fr; gap: 1.5rem; } .footer-bottom { flex-direction: column; align-items: flex-start; gap: 0.5rem; } .form-row { grid-template-columns: 1fr; } } /* ── Data Freshness Badge ─────────────────────────────────────────── */ .dfb-badge { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.22rem 0.7rem; border-radius: 100px; font-size: 0.72rem; font-weight: 600; cursor: pointer; user-select: none; transition: opacity 0.15s; border: 1px solid; position: relative; text-decoration: none; } .dfb-loading { background:rgba(100,116,139,0.1); border-color:rgba(100,116,139,0.2); color:#64748b; } .dfb-green { background:rgba(16,185,129,0.12); border-color:rgba(16,185,129,0.3); color:#10b981; } .dfb-yellow { background:rgba(245,158,11,0.1); border-color:rgba(245,158,11,0.3); color:#f59e0b; } .dfb-red { background:rgba(239,68,68,0.1); border-color:rgba(239,68,68,0.3); color:#ef4444; } .dfb-dot { width:7px; height:7px; border-radius:50%; background:currentColor; flex-shrink:0; } .dfb-loading .dfb-dot { animation: dfb-pulse 1.5s ease-in-out infinite; } @keyframes dfb-pulse { 0%,100%{opacity:0.3} 50%{opacity:1} } .dfb-tooltip { position:absolute; top:calc(100% + 8px); left:50%; transform:translateX(-50%); background:var(--white); border:1px solid var(--gray-200); border-radius:10px; padding:0.75rem 0.875rem; min-width:270px; max-width:340px; z-index:9999; box-shadow:0 8px 32px rgba(15,23,42,0.12); text-align:left; white-space:normal; pointer-events:none; } .dfb-tooltip.dfb-tip-open { pointer-events:auto; } .dfb-tooltip.dfb-hidden { display:none; } .dfb-tip-head { font-size:0.7rem; font-weight:700; color:var(--gray-400); text-transform:uppercase; letter-spacing:0.07em; margin-bottom:0.5rem; } .dfb-tip-row { display:flex; justify-content:space-between; align-items:center; padding:0.2rem 0; font-size:0.75rem; color:var(--gray-700); gap:0.5rem; border-bottom:1px solid var(--gray-100); } .dfb-tip-row:last-of-type { border-bottom:none; } .dfb-tip-meta { color:var(--gray-400); font-size:0.69rem; white-space:nowrap; } .dfb-tip-footer { margin-top:0.6rem; padding-top:0.5rem; border-top:1px solid var(--gray-100); } .dfb-tip-footer a { color:#10b981; font-size:0.75rem; text-decoration:none; font-weight:600; } .dfb-stale-notice { display:none; margin-top:0.75rem; padding:0.6rem 0.875rem; background:rgba(239,68,68,0.06); border:1px solid rgba(239,68,68,0.2); border-radius:8px; font-size:0.8rem; color:#ef4444; line-height:1.5; } .dfb-stale-notice a { color:#ef4444; font-weight:600; }
The U.S. Small Business Administration backs $40+ billion in small business loans each year. Five programs. Up to $5.5M. Here's what actually matters — rates, timelines, requirements, and which program fits your situation.
Five programs, one guarantee agency. Pick the right one for your situation.
| Program | Max Amount | Best For | Rate Range VERIFIED | Timeline ESTIMATE |
|---|---|---|---|---|
| SBA 7(a) Most Popular | $5M | General business, working capital, acquisitions, refinancing | Prime + 2.25–4.75% | 30–90 days |
| SBA 504 Best for Real Estate | $5.5M | Commercial real estate, major equipment, construction | ~3% below market fixed rate | 60–90 days |
| SBA Microloan Best for Startups | $50K | Startups, early-stage businesses, underserved markets | 8–13% | 2–4 weeks |
| SBA Express Fastest Approval | $500K | Quick working capital, lines of credit, existing borrowers | Prime + 4.5–6.5% | 36-hour SBA response (closing still 30–60 days) |
| CAPLines Best for Cyclical Cash Flow | $5M | Revolving credit, seasonal working capital, contract financing | Prime + 2.25–4.75% (same as 7(a)) | 30–60 days |
VERIFIED = confirmed from SBA.gov official program guidelines | ESTIMATE = typical lender experience; your timeline may vary. [LAST UPDATED: April 2026]
Rates, terms, requirements, and what you actually need to know for each program.
The most common SBA loan. Flexible use of funds — working capital, equipment, real estate, acquisitions, and debt refinancing. Requires SBA-approved lender participation.
[SEEK EXPERT ADVICE] — Program terms, eligibility, and rates change. Consult an SBA-approved lender for current requirements. [LAST UPDATED: April 2026]
Structured as a partnership: bank funds 50%, SBA-backed CDC funds 40%, borrower puts 10% down. Best for owner-occupied commercial real estate and large equipment purchases.
[SEEK EXPERT ADVICE] — Program terms, eligibility, and rates change. Consult an SBA-approved lender for current requirements. [LAST UPDATED: April 2026]
Administered through SBA-approved nonprofit intermediaries. Includes mandatory business training and technical assistance. Ideal for businesses that can't qualify for traditional bank loans.
[SEEK EXPERT ADVICE] — Program terms, eligibility, and rates change. Consult an SBA-approved lender for current requirements. [LAST UPDATED: April 2026]
Streamlined SBA program with a 36-hour SBA turnaround for loan decisions. Lender takes on more risk (SBA guarantees only 50%), which is why rates are higher than 7(a).
[SEEK EXPERT ADVICE] — Program terms, eligibility, and rates change. Consult an SBA-approved lender for current requirements. [LAST UPDATED: April 2026]
Umbrella program for four revolving/non-revolving lines of credit: Seasonal CAPLine, Contract CAPLine, Builders CAPLine, and Working Capital CAPLine. Built for businesses with cyclical or project-based cash flow needs.
[SEEK EXPERT ADVICE] — Program terms, eligibility, and rates change. Consult an SBA-approved lender for current requirements. [LAST UPDATED: April 2026]
General requirements. Specific programs have their own thresholds — see individual sections above.
Your business must qualify as a "small business" under SBA size standards, which vary by NAICS industry code. Standards are set in either annual revenue (e.g., $7.5M–$47M depending on industry) or number of employees (e.g., 500–1,500). Check sba.gov/size-standards for your specific NAICS code. VERIFIED
SBA 7(a): 680+ personal credit score (most lenders). SBA Express: 650+. SBA 504: 680+. SBA Microloan: flexible, no hard minimum — lender discretion. The SBA also uses its proprietary SBSS score; 7(a) loans under $500K require a minimum SBSS of 155. ESTIMATE
Most 7(a) and 504 lenders require 2+ years of operating history. Some PLP lenders accept 1 year with strong financials. SBA Microloans are available to startups with 0 months — the most accessible program for new businesses. ESTIMATE
Required on loans over $25,000. SBA policy: insufficient collateral alone cannot deny an otherwise creditworthy application. Lenders take business assets first, then may require residential real estate for loans over $350,000. VERIFIED
The SBA excludes: speculative businesses, financial lenders, passive real estate investors, businesses earning >1/3 revenue from illegal activities, pyramid schemes, political/lobbying organizations, life insurance companies, and non-US businesses. VERIFIED
Must operate in the US. Must be organized as a for-profit entity (corporation, LLC, partnership, or sole proprietorship). Owner(s) must have equity in the business. Business must have a reasonable need for the loan. VERIFIED
Interest rate is only one piece. Here's the full cost picture.
| Cost Item | Typical Amount | Notes |
|---|---|---|
| Interest Rate (7(a)) | Prime + 2.25–4.75% VERIFIED | Prime Rate is 7.5% as of April 2026. All-in rate: 9.75–12.25% variable. Fixed rates available — typically slightly higher. |
| Interest Rate (504) | ~3% below market fixed VERIFIED | CDC portion is fixed, set monthly by SBA. Bank portion rate negotiated separately. Combined effective rate typically 6–8% as of early 2026. |
| SBA Guarantee Fee | 0–3.75% of guaranteed amount VERIFIED | Loans ≤$150K: 0%. $150K–$700K: 3% of guaranteed portion. $700K–$5M: 3.5% (+ 0.25% on guaranteed >$1M). Can be rolled into loan. |
| Annual Servicing Fee | 0.55% of guaranteed balance VERIFIED | Paid annually throughout loan term. SBA charges lenders; lenders may pass through to borrower. |
| Packaging/Origination Fee | 0.5–1% of loan amount ESTIMATE | Varies by lender. Some CDCs and lenders charge packaging fees for assembling the application. Shop around. |
| Appraisal (Real Estate) | $2,500–$5,000+ ESTIMATE | Required for any loan with real estate collateral or when purchasing commercial property. Paid out of pocket before closing. |
| Environmental Review | $1,000–$10,000+ ESTIMATE | Required for commercial real estate transactions. Phase I ESA typically $1,500–$3,500. Phase II required if contamination suspected. |
| Title Insurance & Closing | Varies by loan size ESTIMATE | Standard closing costs: title search, title insurance, recording fees, attorney fees. Typically 1–3% of property value for real estate loans. |
Total realistic range: 30–90 days from application to funded. Here's where time goes. ESTIMATE
Research SBA-approved lenders. Use SBA Lender Match (sba.gov). Prioritize Preferred Lender Program (PLP) lenders for fastest processing. Initial conversation to confirm fit before investing in full documentation.
Gather: 2 years business tax returns, 3 years personal tax returns, current P&L and balance sheet, business plan, debt schedule, legal documents. Submit SBA Form 1919 and Form 912. Incomplete applications are the #1 cause of delays — be thorough.
Lender reviews financials, credit, collateral, and business viability. May request additional documentation (business projections, lease agreements, equipment quotes). PLP lenders complete this and make approval decisions in-house.
PLP lenders approve independently and notify SBA after the fact. Standard lenders submit to SBA for review. SBA issues a Loan Authorization outlining approved amount, terms, and conditions. SBA Express: 36-hour SBA response commitment.
Satisfy closing conditions: appraisal (if real estate), environmental review, insurance requirements, entity documents. Closing appointment, document signing, disbursement. Real estate transactions take the longest in this phase.
ESTIMATE — Timeline varies significantly by lender, application completeness, and property type.
SBA financing looks different depending on what you're building. These sites go deeper for each context.
Compare all business loan types: SBA, conventional, revenue-based, equipment, and merchant cash advance.
Ranked comparison of top business lenders including SBA-preferred lenders, online lenders, and banks.
SBA 504 deep dive for owner-occupied commercial property: appraisal requirements, CDC relationships, and rate analysis.
SBA 504 and 7(a) for construction projects, equipment purchases, and manufacturing facility expansion.
SBA financing specifically for franchise acquisitions: FDD review, SBA franchise registry, and lender matches.
SBA Microloans and 7(a) options for startups and early-stage companies without 2 years of operating history.
SBA eligibility for foreign-national-owned businesses launching in the US. Visa status, structure requirements, and lender considerations.
Financial modeling for SBA debt service, DSCR analysis, covenant tracking, refinancing triggers, and impact on balance sheet.
Three paths — pick the one that matches where you are in the process.
Real questions, straight answers.
An SBA loan is a small business loan backed by a partial guarantee from the U.S. Small Business Administration. The SBA doesn't lend money directly — it guarantees a portion of the loan (typically 50–85%), reducing risk for approved lenders. This allows lenders to offer longer terms, lower down payments, and more favorable rates to small businesses that might not qualify for conventional financing. You apply through an SBA-approved lender (bank, credit union, or online lender), not directly through the SBA.
Most SBA 7(a) lenders require a minimum personal credit score of 680. SBA Express lenders may accept 650+. SBA Microloans through nonprofit intermediaries are the most flexible — no hard minimum. The SBA also uses a proprietary scoring tool called SBSS (Small Business Scoring Service), with a minimum score of 155 required for 7(a) loans under $500K. Strong credit (720+) significantly improves approval odds and can lower your rate.
Realistic timelines: SBA Express — 36-hour SBA response (but full closing still takes 30–60 days). SBA 7(a) with a Preferred Lender Program (PLP) lender — 30–45 days. Standard 7(a) — 60–90 days. SBA 504 — 60–90 days. SBA Microloan — 2–4 weeks. The biggest delays are incomplete documentation at application and lender processing backlogs. Working with a PLP lender (they can approve without SBA review) is the single biggest way to accelerate a 7(a) loan.
SBA 7(a) is the most flexible: working capital, equipment, inventory, real estate, business acquisition, debt refinancing, and leasehold improvements. SBA 504 is restricted to fixed assets: owner-occupied commercial real estate, heavy machinery, equipment, and construction. SBA Microloans can cover working capital, equipment, furniture, and supplies — but NOT real estate or debt refinancing. CAPLines cover short-term working capital, seasonal needs, and contract fulfillment costs.
The SBA excludes: speculative businesses (real estate investment for profit, gambling), lenders and financial institutions, passive businesses that don't occupy the property, businesses earning more than 1/3 of revenue from illegal activities, political or lobbying organizations, pyramid sales schemes, and businesses in certain industries (life insurance companies, non-US businesses, most non-profits). Businesses in industries with high default rates may also face heightened scrutiny.
SBA 7(a) is general-purpose: flexible use of funds, variable or fixed rates, terms up to 25 years, one lender relationship. SBA 504 is specifically for fixed assets (commercial real estate, major equipment): fixed rate set by SBA, three-party structure (bank + CDC + borrower), mandatory 10% down payment, and requires the business to occupy at least 51% of the property. For commercial real estate, 504 typically offers lower long-term rates due to the fixed structure. For working capital or acquisitions, 7(a) is the right program.
SBA policy: lenders must take available collateral on loans over $25,000, but insufficient collateral alone cannot be the reason to deny an otherwise creditworthy application. For loans under $25,000, no collateral is required. For loans from $25,000–$350,000, lenders take business assets (equipment, inventory, accounts receivable) as collateral. For loans over $350,000, residential real estate may also be required if business assets are insufficient. The SBA's guarantee partially substitutes for collateral — which is the program's purpose.
Apply through an SBA-approved lender, not directly with the SBA. Step 1: Determine which program fits (7(a) for general use, 504 for real estate/equipment, Microloan for startups). Step 2: Gather documentation — 2 years business tax returns, 3 years personal tax returns, business financial statements, business plan, debt schedule, and legal documents (articles of incorporation, leases). Step 3: Apply with a Preferred Lender Program (PLP) lender for fastest processing. Step 4: SBA reviews and issues authorization. Step 5: Closing and funding.
Market pulse, stock spotlights, and actionable frameworks — delivered every week.
No spam · Unsubscribe anytime · View all issues →