diff options
author | Robby Zambito <contact@robbyzambito.me> | 2025-08-02 19:06:42 -0400 |
---|---|---|
committer | Robby Zambito <contact@robbyzambito.me> | 2025-08-02 19:07:06 -0400 |
commit | 1ac73ff7cae110f9d0b1aa0bf62283b6d2e26022 (patch) | |
tree | cc1451560dbe84f573135aec2c6f92fec25b58d7 /static/styles.css | |
parent | b3c85a763f719d62c1fbce8cff90712e35d70b86 (diff) |
Replaced index with generated landing
The generated index had a fake logged in interface.
The generated landing page is more appropriate.
We don't need a logged in page, because the entire exploit should work without needing to be logged in.
Diffstat (limited to 'static/styles.css')
-rw-r--r-- | static/styles.css | 632 |
1 files changed, 379 insertions, 253 deletions
diff --git a/static/styles.css b/static/styles.css index 7bfb5dd..cf359fb 100644 --- a/static/styles.css +++ b/static/styles.css @@ -15,7 +15,6 @@ --border: #e2e8f0; --success: #10b981; --warning: #f59e0b; - --danger: #ef4444; --shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); --shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, 0.1); --gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%); @@ -25,7 +24,7 @@ body { font-family: 'Inter', sans-serif; line-height: 1.6; color: var(--text-primary); - background: var(--surface); + background: var(--background); } .container { @@ -86,59 +85,73 @@ body { gap: 1rem; } -.notification-icon { - font-size: 1.2rem; +.hamburger { + display: none; + flex-direction: column; cursor: pointer; - padding: 0.5rem; - border-radius: 0.5rem; - transition: background 0.3s ease; } -.notification-icon:hover { - background: var(--surface); +.hamburger span { + width: 25px; + height: 3px; + background: var(--text-primary); + margin: 3px 0; + transition: 0.3s; } -.user-profile { - display: flex; - align-items: center; - gap: 0.5rem; - cursor: pointer; - padding: 0.5rem; +/* Buttons */ +.btn { + padding: 0.75rem 1.5rem; + border: none; border-radius: 0.5rem; - transition: background 0.3s ease; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; + text-decoration: none; + display: inline-block; + font-size: 0.875rem; } -.user-profile:hover { - background: var(--surface); +.btn-large { + padding: 1rem 2rem; + font-size: 1rem; } -.profile-img { - width: 32px; - height: 32px; - border-radius: 50%; +.btn-full { + width: 100%; + justify-content: center; } -.username { - font-weight: 500; +.btn-primary { + background: var(--gradient); + color: white; + box-shadow: var(--shadow); } -.dropdown-arrow { - font-size: 0.8rem; - color: var(--text-secondary); +.btn-primary:hover { + transform: translateY(-2px); + box-shadow: var(--shadow-lg); } -.hamburger { - display: none; - flex-direction: column; - cursor: pointer; +.btn-secondary { + background: white; + color: var(--text-primary); + border: 2px solid var(--border); } -.hamburger span { - width: 25px; - height: 3px; - background: var(--text-primary); - margin: 3px 0; - transition: 0.3s; +.btn-secondary:hover { + border-color: var(--primary-color); + color: var(--primary-color); +} + +.btn-ghost { + background: transparent; + color: var(--text-primary); + border: none; +} + +.btn-ghost:hover { + background: var(--surface); } /* Hero Section */ @@ -146,8 +159,8 @@ body { min-height: 100vh; display: flex; align-items: center; - padding: 0 2rem; - background: var(--background); + padding: 6rem 2rem 4rem; + background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%); } .hero-content { @@ -160,10 +173,10 @@ body { } .hero-title { - font-size: 3rem; + font-size: 3.5rem; font-weight: 700; line-height: 1.1; - margin-bottom: 1rem; + margin-bottom: 1.5rem; } .gradient-text { @@ -174,362 +187,453 @@ body { } .hero-subtitle { - font-size: 1.125rem; + font-size: 1.25rem; color: var(--text-secondary); margin-bottom: 2rem; + line-height: 1.6; } -.quick-stats { +.hero-buttons { display: flex; gap: 1rem; - margin-bottom: 2rem; + margin-bottom: 3rem; } -.stat-card { - background: white; - padding: 1rem; - border-radius: 0.75rem; - box-shadow: var(--shadow); +.hero-stats { + display: flex; + gap: 2rem; +} + +.stat-item { + display: flex; + flex-direction: column; + align-items: center; text-align: center; - min-width: 100px; } -.stat-number { +.stat-item strong { font-size: 1.5rem; font-weight: 700; color: var(--primary-color); } -.stat-label { - font-size: 0.75rem; +.stat-item span { + font-size: 0.875rem; color: var(--text-secondary); - margin-top: 0.25rem; } -.hero-buttons { +/* Dashboard Mockup */ +.dashboard-mockup { + background: white; + border-radius: 1rem; + box-shadow: var(--shadow-lg); + overflow: hidden; + transform: perspective(1000px) rotateY(-15deg) rotateX(10deg); + transition: transform 0.3s ease; +} + +.dashboard-mockup:hover { + transform: perspective(1000px) rotateY(-10deg) rotateX(5deg); +} + +.mockup-header { + background: var(--surface); + padding: 1rem; display: flex; + align-items: center; gap: 1rem; + border-bottom: 1px solid var(--border); } -.btn { - padding: 0.75rem 2rem; - border: none; - border-radius: 0.5rem; - font-weight: 600; - cursor: pointer; - transition: all 0.3s ease; - text-decoration: none; - display: inline-block; +.mockup-dots { + display: flex; + gap: 0.5rem; } -.btn-primary { - background: var(--gradient); - color: white; - box-shadow: var(--shadow); +.mockup-dots span { + width: 12px; + height: 12px; + border-radius: 50%; + background: var(--border); } -.btn-primary:hover { - transform: translateY(-2px); - box-shadow: var(--shadow-lg); +.mockup-dots span:first-child { + background: #ef4444; } -.btn-secondary { - background: white; - color: var(--text-primary); - border: 2px solid var(--border); +.mockup-dots span:nth-child(2) { + background: #f59e0b; } -.btn-secondary:hover { - border-color: var(--primary-color); - color: var(--primary-color); +.mockup-dots span:last-child { + background: #10b981; +} + +.mockup-title { + font-size: 0.875rem; + color: var(--text-secondary); +} + +.mockup-content { + display: flex; + height: 300px; +} + +.mockup-sidebar { + width: 200px; + background: var(--surface); + padding: 1rem; + display: flex; + flex-direction: column; + gap: 0.5rem; +} + +.sidebar-item { + height: 40px; + background: var(--border); + border-radius: 0.5rem; +} + +.sidebar-item.active { + background: var(--gradient); } -.dashboard-preview { +.mockup-main { + flex: 1; + padding: 1rem; display: flex; flex-direction: column; gap: 1rem; } -.preview-card { - background: white; - padding: 1.5rem; - border-radius: 1rem; - box-shadow: var(--shadow); +.mockup-cards { + display: flex; + gap: 1rem; } -.card-header { - font-weight: 600; - margin-bottom: 1rem; - color: var(--text-primary); +.mockup-card { + flex: 1; + height: 100px; + background: var(--surface); + border-radius: 0.5rem; + border: 1px solid var(--border); } -.activity-item { - padding: 0.5rem 0; - color: var(--text-secondary); - font-size: 0.875rem; - border-bottom: 1px solid var(--border); +.mockup-chart { + flex: 1; + background: var(--surface); + border-radius: 0.5rem; + border: 1px solid var(--border); } -.activity-item:last-child { - border-bottom: none; +/* Social Proof */ +.social-proof { + padding: 4rem 0; + background: var(--background); + text-align: center; } -.deadline-item { - display: flex; - justify-content: space-between; - padding: 0.5rem 0; +.social-proof-text { + color: var(--text-secondary); + margin-bottom: 2rem; font-size: 0.875rem; } -.deadline-date { - color: var(--primary-color); - font-weight: 500; +.company-logos { + display: flex; + justify-content: center; + align-items: center; + gap: 3rem; + flex-wrap: wrap; } -.deadline-task { +.company-logo { + font-size: 1.25rem; + font-weight: 600; color: var(--text-secondary); + opacity: 0.6; } /* Sections */ .section-title { - font-size: 2rem; + font-size: 2.5rem; font-weight: 700; - margin-bottom: 2rem; + text-align: center; + margin-bottom: 1rem; +} + +.section-subtitle { + font-size: 1.125rem; + color: var(--text-secondary); + text-align: center; + margin-bottom: 3rem; } .section-header { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 2rem; + margin-bottom: 4rem; } -.projects { - padding: 4rem 0; +/* Features */ +.features { + padding: 6rem 0; background: var(--surface); } -.projects-grid { +.features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); gap: 2rem; } -.project-card { +.feature-card { background: white; + padding: 2rem; border-radius: 1rem; - padding: 1.5rem; box-shadow: var(--shadow); + text-align: center; transition: transform 0.3s ease; - position: relative; } -.project-card:hover { +.feature-card:hover { transform: translateY(-5px); } -.project-status { - position: absolute; - top: 1rem; - right: 1rem; - padding: 0.25rem 0.75rem; - border-radius: 1rem; - font-size: 0.75rem; - font-weight: 500; -} - -.status-active { - background: #dcfce7; - color: #166534; -} - -.status-review { - background: #fef3c7; - color: #92400e; -} - -.status-planning { - background: #dbeafe; - color: #1e40af; +.feature-icon { + font-size: 3rem; + margin-bottom: 1rem; } -.project-content h3 { +.feature-card h3 { font-size: 1.25rem; font-weight: 600; - margin-bottom: 0.5rem; - margin-top: 1rem; + margin-bottom: 1rem; } -.project-content p { +.feature-card p { color: var(--text-secondary); - margin-bottom: 1.5rem; - font-size: 0.875rem; + line-height: 1.6; } -.project-progress { - margin-bottom: 1rem; +/* Testimonials */ +.testimonials { + padding: 6rem 0; + background: var(--background); } -.progress-bar { - width: 100%; - height: 8px; - background: var(--border); - border-radius: 4px; - overflow: hidden; - margin-bottom: 0.5rem; +.testimonials-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); + gap: 2rem; } -.progress-fill { - height: 100%; - background: var(--gradient); - transition: width 0.3s ease; +.testimonial-card { + background: white; + padding: 2rem; + border-radius: 1rem; + box-shadow: var(--shadow); } -.progress-text { - font-size: 0.75rem; - color: var(--text-secondary); +.testimonial-content { + margin-bottom: 1.5rem; } -.project-meta { - display: flex; - justify-content: space-between; - align-items: center; +.testimonial-content p { + font-style: italic; + color: var(--text-secondary); + line-height: 1.6; } -.team-avatars { +.testimonial-author { display: flex; - gap: 0.25rem; + align-items: center; + gap: 1rem; } -.avatar { - width: 28px; - height: 28px; +.author-avatar { + width: 48px; + height: 48px; border-radius: 50%; background: var(--gradient); color: white; display: flex; align-items: center; justify-content: center; - font-size: 0.75rem; font-weight: 600; } -.project-due { - font-size: 0.75rem; +.author-name { + font-weight: 600; +} + +.author-title { + font-size: 0.875rem; color: var(--text-secondary); } -.team { - padding: 4rem 0; - background: var(--background); +/* Pricing */ +.pricing { + padding: 6rem 0; + background: var(--surface); } -.team-grid { +.pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; + max-width: 1000px; + margin: 0 auto; } -.team-member { +.pricing-card { background: white; - padding: 1.5rem; + padding: 2rem; border-radius: 1rem; box-shadow: var(--shadow); - display: flex; - align-items: center; - gap: 1rem; + position: relative; + text-align: center; } -.large-avatar { - width: 48px; - height: 48px; - font-size: 1rem; +.pricing-card.featured { + border: 2px solid var(--primary-color); + transform: scale(1.05); } -.member-info h3 { - font-size: 1rem; +.pricing-badge { + position: absolute; + top: -12px; + left: 50%; + transform: translateX(-50%); + background: var(--gradient); + color: white; + padding: 0.5rem 1rem; + border-radius: 1rem; + font-size: 0.875rem; font-weight: 600; - margin-bottom: 0.25rem; } -.member-info p { - color: var(--text-secondary); - font-size: 0.875rem; - margin-bottom: 0.5rem; +.pricing-header { + margin-bottom: 2rem; } -.member-status { - font-size: 0.75rem; - padding: 0.25rem 0.5rem; - border-radius: 1rem; - font-weight: 500; +.pricing-header h3 { + font-size: 1.5rem; + font-weight: 600; + margin-bottom: 1rem; } -.online { - background: #dcfce7; - color: #166534; +.price { + display: flex; + align-items: baseline; + justify-content: center; + gap: 0.25rem; } -.away { - background: #fef3c7; - color: #92400e; +.price-amount { + font-size: 3rem; + font-weight: 700; + color: var(--primary-color); } -.offline { - background: #f1f5f9; - color: #64748b; +.price-period { + color: var(--text-secondary); } -.member-stats { - margin-left: auto; - text-align: center; +.pricing-features { + list-style: none; + margin-bottom: 2rem; } -.reports { - padding: 4rem 0; - background: var(--surface); +.pricing-features li { + padding: 0.5rem 0; + color: var(--text-secondary); + border-bottom: 1px solid var(--border); } -.reports-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); - gap: 2rem; +.pricing-features li:last-child { + border-bottom: none; } -.report-card { - background: white; - padding: 2rem; - border-radius: 1rem; - box-shadow: var(--shadow); +/* CTA */ +.cta { + padding: 6rem 0; + background: var(--text-primary); + color: white; text-align: center; } -.report-card h3 { - font-size: 1.25rem; - font-weight: 600; +.cta-content h2 { + font-size: 2.5rem; + font-weight: 700; margin-bottom: 1rem; } -.chart-placeholder { - font-size: 3rem; - margin: 2rem 0; +.cta-content p { + font-size: 1.125rem; + opacity: 0.9; + margin-bottom: 2rem; } -.report-card p { - color: var(--text-secondary); - margin-bottom: 1.5rem; +.cta-buttons { + display: flex; + justify-content: center; + gap: 1rem; + margin-bottom: 2rem; +} + +.cta-note { + font-size: 0.875rem; + opacity: 0.7; } +/* Footer */ .footer { background: var(--text-primary); color: white; - padding: 2rem 0; + padding: 4rem 0 2rem; } .footer-content { + display: grid; + grid-template-columns: 2fr 1fr 1fr 1fr; + gap: 3rem; + margin-bottom: 3rem; +} + +.footer-logo { + font-size: 1.5rem; + font-weight: 700; + margin-bottom: 1rem; +} + +.footer-section h4 { + font-weight: 600; + margin-bottom: 1rem; +} + +.footer-section ul { + list-style: none; +} + +.footer-section ul li { + margin-bottom: 0.5rem; +} + +.footer-section ul li a { + color: rgba(255, 255, 255, 0.8); + text-decoration: none; + transition: color 0.3s ease; +} + +.footer-section ul li a:hover { + color: white; +} + +.footer-bottom { display: flex; justify-content: space-between; align-items: center; + padding-top: 2rem; + border-top: 1px solid rgba(255, 255, 255, 0.1); } .footer-links { @@ -538,14 +642,13 @@ body { } .footer-links a { - color: white; + color: rgba(255, 255, 255, 0.8); text-decoration: none; - opacity: 0.8; - transition: opacity 0.3s ease; + transition: color 0.3s ease; } .footer-links a:hover { - opacity: 1; + color: white; } /* Responsive Design */ @@ -568,11 +671,7 @@ body { } .hero-title { - font-size: 2rem; - } - - .quick-stats { - justify-content: center; + font-size: 2.5rem; } .hero-buttons { @@ -580,17 +679,38 @@ body { align-items: center; } - .btn { - width: 200px; + .hero-stats { + justify-content: center; + } + + .dashboard-mockup { + transform: none; + } + + .features-grid, + .testimonials-grid { + grid-template-columns: 1fr; + } + + .pricing-grid { + grid-template-columns: 1fr; + } + + .pricing-card.featured { + transform: none; } - .section-header { + .cta-buttons { flex-direction: column; - gap: 1rem; - align-items: flex-start; + align-items: center; } .footer-content { + grid-template-columns: 1fr; + text-align: center; + } + + .footer-bottom { flex-direction: column; gap: 1rem; text-align: center; @@ -603,16 +723,22 @@ body { } .hero { - padding: 0 1rem; + padding: 4rem 1rem 2rem; } - .quick-stats { - flex-direction: column; + .hero-title { + font-size: 2rem; } - .projects-grid, - .team-grid, - .reports-grid { - grid-template-columns: 1fr; + .section-title { + font-size: 2rem; + } + + .mockup-content { + height: 200px; + } + + .mockup-sidebar { + width: 120px; } } |