summaryrefslogtreecommitdiff
path: root/static/styles.css
diff options
context:
space:
mode:
authorRobby Zambito <contact@robbyzambito.me>2025-08-02 19:06:42 -0400
committerRobby Zambito <contact@robbyzambito.me>2025-08-02 19:07:06 -0400
commit1ac73ff7cae110f9d0b1aa0bf62283b6d2e26022 (patch)
treecc1451560dbe84f573135aec2c6f92fec25b58d7 /static/styles.css
parentb3c85a763f719d62c1fbce8cff90712e35d70b86 (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.css632
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;
}
}