-
🔥 Limited Time Offers
-
Huge discounts on selected items - Limited time only!
+
Limited Time Offers
+
Luxury selections with exclusive markdowns. Ends soon.
{loading ? (
diff --git a/frontend/src/styles/global.css b/frontend/src/styles/global.css
index a2f2bf9..32c9bbf 100644
--- a/frontend/src/styles/global.css
+++ b/frontend/src/styles/global.css
@@ -1,818 +1,1036 @@
+@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@500;600;700;800&family=Poppins:wght@400;500;600;700&display=swap');
+
+:root {
+ --bg-base: #050505;
+ --bg-elevated: #0b0b0b;
+ --bg-card: #111111;
+ --bg-card-soft: #151515;
+ --gold: #d4af37;
+ --gold-bright: #ebca62;
+ --gold-muted: rgba(212, 175, 55, 0.24);
+ --border: rgba(212, 175, 55, 0.2);
+ --text-main: #ffffff;
+ --text-muted: #b8b8b8;
+ --text-soft: #8a8a8a;
+ --success: #67c583;
+ --danger: #ff6d6d;
+ --radius-sm: 10px;
+ --radius-md: 16px;
+ --radius-lg: 24px;
+ --shadow-soft: 0 10px 30px rgba(0, 0, 0, 0.28);
+ --shadow-gold: 0 12px 40px rgba(212, 175, 55, 0.14);
+ --surface-glass: linear-gradient(135deg, rgba(20, 20, 20, 0.86), rgba(9, 9, 9, 0.76));
+}
+
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
-:root {
- --primary: #ff6b6b;
- --primary-dark: #ff5252;
- --secondary: #1a1a1a;
- --light: #f5f5f5;
- --gray: #888888;
- --gray-light: #e0e0e0;
- --border-radius: 8px;
- --shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
- --shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.15);
+html,
+body,
+#root {
+ min-height: 100%;
}
body {
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif;
- color: var(--secondary);
+ font-family: 'Poppins', sans-serif;
line-height: 1.6;
- background-color: #fff;
-}
-
-html, body, #root {
- height: 100%;
+ color: var(--text-main);
+ background:
+ radial-gradient(circle at 15% -10%, rgba(212, 175, 55, 0.13), transparent 40%),
+ radial-gradient(circle at 85% 0%, rgba(212, 175, 55, 0.08), transparent 38%),
+ linear-gradient(150deg, #020202 0%, #050505 40%, #0a0a0a 100%);
}
a {
- text-decoration: none;
color: inherit;
+ text-decoration: none;
+}
+
+img {
+ max-width: 100%;
+ display: block;
+}
+
+button,
+input,
+select,
+textarea {
+ font: inherit;
}
button {
cursor: pointer;
- font-family: inherit;
border: none;
- border-radius: var(--border-radius);
+ background: none;
+}
+
+::selection {
+ background: rgba(212, 175, 55, 0.24);
+ color: #fff;
}
-/* App Layout */
.app {
+ min-height: 100vh;
display: flex;
flex-direction: column;
- min-height: 100vh;
}
.main-content {
flex: 1;
- padding: 0;
-}
-
-/* Navbar */
-.navbar {
- background: white;
- box-shadow: var(--shadow);
- position: sticky;
- top: 0;
- z-index: 100;
-}
-
-.navbar-container {
- max-width: 1200px;
+ width: min(1320px, 94vw);
margin: 0 auto;
- padding: 1rem 2rem;
+ padding: 2rem 0 4rem;
+}
+
+/* Generic */
+.section {
+ margin: 4rem 0;
+}
+
+.section h2,
+.sales-header h1,
+.products-page h1,
+.product-detail h1,
+.cart-page h1,
+.checkout-page h1,
+.auth-container h1,
+.profile-page h1,
+.contact-page h1,
+.orders-page h1,
+.wishlist-page h1,
+.about-page h1,
+.messages-header h1 {
+ font-family: 'Montserrat', sans-serif;
+ letter-spacing: 0.02em;
+ font-weight: 700;
+}
+
+.section h2 {
+ font-size: clamp(1.4rem, 1.1rem + 1.8vw, 2.2rem);
+ margin-bottom: 1.25rem;
+}
+
+.section-header {
display: flex;
justify-content: space-between;
- align-items: center;
- gap: 2rem;
+ align-items: flex-end;
+ gap: 0.8rem;
+ margin-bottom: 1rem;
}
-.navbar-logo {
- font-size: 1.5rem;
- font-weight: bold;
- display: flex;
- align-items: center;
- gap: 0.5rem;
- white-space: nowrap;
+.section-header p {
+ color: var(--text-soft);
+ font-size: 0.92rem;
}
-.logo-icon {
- font-size: 2rem;
+.grid {
+ display: grid;
+ gap: 1.25rem;
+ grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}
-.navbar-center {
- flex: 1;
- max-width: 400px;
-}
-
-.navbar-menu {
- display: flex;
- gap: 2rem;
- list-style: none;
- flex-wrap: wrap;
-}
-
-.navbar-menu a {
- color: var(--secondary);
- font-weight: 500;
- transition: color 0.3s;
- padding-bottom: 0.25rem;
- border-bottom: 2px solid transparent;
-}
-
-.navbar-menu a:hover {
- color: var(--primary);
-}
-
-.navbar-menu a.active {
- color: var(--primary);
- border-bottom-color: var(--primary);
-}
-
-.navbar-menu a.admin-link {
- color: var(--primary);
- font-weight: bold;
-}
-
-.navbar-icons {
- display: flex;
- align-items: center;
- gap: 1rem;
-}
-
-.icon-btn {
- font-size: 1.5rem;
- cursor: pointer;
- transition: transform 0.3s;
- position: relative;
-}
-
-.icon-btn:hover {
- transform: scale(1.1);
-}
-
-.cart-count {
- position: absolute;
- top: -8px;
- right: -8px;
- background: var(--primary);
- color: white;
- border-radius: 50%;
- width: 20px;
- height: 20px;
- display: flex;
- align-items: center;
- justify-content: center;
- font-size: 0.75rem;
- font-weight: bold;
+.loading,
+.error,
+.no-products,
+.empty-state,
+.empty-cart {
+ border: 1px solid var(--border);
+ background: var(--surface-glass);
+ backdrop-filter: blur(8px);
+ border-radius: var(--radius-md);
+ padding: 2.2rem;
+ text-align: center;
+ color: var(--text-muted);
}
/* Buttons */
.btn {
- padding: 0.75rem 1.5rem;
- border-radius: var(--border-radius);
- background: var(--primary);
- color: white;
- font-weight: 600;
- transition: background 0.3s;
- display: inline-block;
- text-align: center;
- white-space: nowrap;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ gap: 0.45rem;
+ padding: 0.78rem 1.4rem;
+ border-radius: 12px;
+ border: 1px solid transparent;
+ background: linear-gradient(135deg, var(--gold) 0%, var(--gold-bright) 100%);
+ color: #121212;
+ font-weight: 700;
+ transition: transform 0.24s ease, box-shadow 0.24s ease, filter 0.24s ease;
}
.btn:hover:not(:disabled) {
- background: var(--primary-dark);
+ transform: translateY(-2px);
+ box-shadow: var(--shadow-gold);
+ filter: saturate(1.05);
}
.btn:disabled {
- opacity: 0.6;
+ opacity: 0.45;
cursor: not-allowed;
}
-.btn-small {
- padding: 0.5rem 1rem;
- font-size: 0.875rem;
-}
-
-.btn-large {
- padding: 1rem 2rem;
- font-size: 1rem;
-}
-
.btn-full {
width: 100%;
}
-.btn-secondary {
- background: transparent;
- color: var(--primary);
- border: 2px solid var(--primary);
+.btn-large {
+ padding: 0.95rem 1.8rem;
}
-.btn-secondary:hover {
- background: var(--light);
+.btn-small {
+ padding: 0.55rem 0.9rem;
+ font-size: 0.86rem;
+}
+
+.btn-secondary {
+ background: transparent;
+ color: var(--text-main);
+ border: 1px solid var(--border);
+}
+
+.btn-secondary:hover:not(:disabled) {
+ border-color: rgba(212, 175, 55, 0.48);
+ box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
}
.btn-outline {
- background: transparent;
- color: var(--secondary);
- border: 2px solid var(--gray-light);
-}
-
-.btn-outline:hover {
- border-color: var(--secondary);
+ background: rgba(212, 175, 55, 0.05);
+ border: 1px solid var(--border);
+ color: var(--gold-bright);
}
.btn-danger {
- background: #e74c3c;
+ background: transparent;
+ border: 1px solid rgba(255, 109, 109, 0.4);
+ color: #ff7f7f;
}
-.btn-danger:hover {
- background: #c0392b;
+.btn-danger:hover:not(:disabled) {
+ box-shadow: 0 10px 24px rgba(255, 109, 109, 0.17);
}
.btn-icon {
- padding: 0.5rem;
- background: transparent;
- font-size: 1.5rem;
- border-radius: 50%;
- transition: background 0.3s;
+ width: 42px;
+ height: 42px;
+ border-radius: 12px;
+ border: 1px solid var(--border);
+ color: var(--gold);
}
-.btn-icon:hover {
- background: var(--light);
+/* Navbar */
+.navbar {
+ position: sticky;
+ top: 0;
+ z-index: 60;
+ border-bottom: 1px solid var(--border);
+ background: rgba(5, 5, 5, 0.82);
+ backdrop-filter: blur(12px);
}
-.btn-icon.active {
- background: var(--primary) + '20';
-}
-
-/* Grid */
-.grid {
+.navbar-container {
+ width: min(1320px, 94vw);
+ margin: 0 auto;
+ min-height: 84px;
display: grid;
- grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
- gap: 2rem;
- margin-top: 2rem;
+ grid-template-columns: auto minmax(180px, 1fr) auto auto;
+ gap: 1rem;
+ align-items: center;
}
-/* Sections */
-.section {
- max-width: 1200px;
- margin: 4rem auto;
- padding: 0 2rem;
+.navbar-logo {
+ display: flex;
+ align-items: center;
+ gap: 0.72rem;
+ font-family: 'Montserrat', sans-serif;
+ white-space: nowrap;
}
-.section h2 {
- font-size: 2rem;
- margin-bottom: 1rem;
- color: var(--secondary);
+.logo-icon {
+ width: 42px;
+ height: 42px;
+ border-radius: 12px;
+ border: 1px solid var(--border);
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 1.36rem;
+ color: var(--gold);
+ background: linear-gradient(135deg, rgba(212, 175, 55, 0.14), rgba(212, 175, 55, 0.03));
}
-/* Hero Section */
+.navbar-logo small {
+ display: block;
+ font-size: 0.62rem;
+ letter-spacing: 0.22em;
+ color: var(--text-soft);
+}
+
+.navbar-logo strong {
+ font-size: 1rem;
+ letter-spacing: 0.08em;
+}
+
+.navbar-center {
+ width: 100%;
+ max-width: 360px;
+}
+
+.search-bar {
+ position: relative;
+}
+
+.search-bar input {
+ width: 100%;
+ height: 42px;
+ border-radius: 12px;
+ padding: 0 2.5rem 0 0.95rem;
+ background: rgba(255, 255, 255, 0.03);
+ border: 1px solid rgba(255, 255, 255, 0.08);
+ color: var(--text-main);
+}
+
+.search-bar input:focus {
+ outline: none;
+ border-color: var(--border);
+ box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.13);
+}
+
+.search-bar::after {
+ content: '⌕';
+ position: absolute;
+ right: 0.85rem;
+ top: 0.42rem;
+ color: var(--gold);
+ font-size: 1.12rem;
+}
+
+.search-results {
+ position: absolute;
+ inset: calc(100% + 0.5rem) 0 auto;
+ border: 1px solid var(--border);
+ border-radius: 12px;
+ overflow: hidden;
+ background: #0d0d0d;
+ z-index: 5;
+ box-shadow: var(--shadow-soft);
+}
+
+.search-result-item {
+ display: flex;
+ justify-content: space-between;
+ padding: 0.75rem 0.95rem;
+ border-bottom: 1px solid rgba(255, 255, 255, 0.04);
+ color: var(--text-muted);
+}
+
+.search-result-item:hover {
+ background: rgba(212, 175, 55, 0.08);
+ color: #fff;
+}
+
+.navbar-menu {
+ list-style: none;
+ display: flex;
+ align-items: center;
+ gap: 1.3rem;
+}
+
+.navbar-menu a {
+ color: var(--text-muted);
+ font-size: 0.95rem;
+ position: relative;
+ transition: color 0.2s ease;
+}
+
+.navbar-menu a::after {
+ content: '';
+ position: absolute;
+ left: 0;
+ bottom: -0.45rem;
+ width: 0;
+ height: 2px;
+ background: var(--gold);
+ transition: width 0.24s ease;
+}
+
+.navbar-menu a:hover,
+.navbar-menu a.active,
+.navbar-menu a.admin-link {
+ color: var(--gold-bright);
+}
+
+.navbar-menu a:hover::after,
+.navbar-menu a.active::after,
+.navbar-menu a.admin-link::after {
+ width: 100%;
+}
+
+.navbar-icons {
+ display: flex;
+ align-items: center;
+ gap: 0.6rem;
+}
+
+.icon-btn {
+ width: 40px;
+ height: 40px;
+ border: 1px solid rgba(212, 175, 55, 0.25);
+ border-radius: 11px;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ color: var(--gold);
+ background: rgba(212, 175, 55, 0.04);
+ transition: transform 0.24s ease, border-color 0.24s ease;
+ position: relative;
+}
+
+.icon-btn:hover {
+ transform: translateY(-2px);
+ border-color: rgba(212, 175, 55, 0.5);
+}
+
+.cart-count {
+ position: absolute;
+ top: -7px;
+ right: -6px;
+ width: 19px;
+ height: 19px;
+ border-radius: 999px;
+ background: var(--gold);
+ color: #121212;
+ font-size: 0.72rem;
+ font-weight: 700;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+}
+
+/* Home */
.hero {
- background: linear-gradient(135deg, var(--primary) 0%, #ff8787 100%);
- color: white;
- padding: 6rem 2rem;
- text-align: center;
+ border-radius: var(--radius-lg);
+ border: 1px solid var(--border);
+ overflow: hidden;
+ padding: clamp(1.2rem, 4vw, 3rem);
+ display: grid;
+ grid-template-columns: 1.1fr 1fr;
+ align-items: center;
+ gap: clamp(1rem, 2vw, 2rem);
+ background:
+ linear-gradient(110deg, rgba(3, 3, 3, 0.92), rgba(11, 11, 11, 0.86) 50%, rgba(212, 175, 55, 0.08)),
+ radial-gradient(circle at 74% 18%, rgba(212, 175, 55, 0.17), transparent 35%);
+ box-shadow: var(--shadow-soft);
+}
+
+.hero-content {
+ max-width: 580px;
}
.hero-content h1 {
- font-size: 3rem;
+ font-family: 'Montserrat', sans-serif;
+ font-size: clamp(2rem, 1.4rem + 2.5vw, 3.5rem);
+ line-height: 1.1;
margin-bottom: 1rem;
}
.hero-content p {
- font-size: 1.2rem;
- margin-bottom: 2rem;
+ color: var(--text-muted);
+ margin-bottom: 1.8rem;
+ max-width: 520px;
}
-/* Product Card */
-.product-card {
- background: white;
- border-radius: var(--border-radius);
+.hero-cta-row {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.7rem;
+}
+
+.hero .kicker {
+ display: inline-block;
+ margin-bottom: 0.85rem;
+ border: 1px solid var(--border);
+ color: var(--gold-bright);
+ padding: 0.4rem 0.82rem;
+ border-radius: 999px;
+ font-size: 0.75rem;
+ letter-spacing: 0.16em;
+ text-transform: uppercase;
+}
+
+.hero-media {
+ min-height: 320px;
+ border-radius: 20px;
overflow: hidden;
- box-shadow: var(--shadow);
- transition: transform 0.3s, box-shadow 0.3s;
+ position: relative;
+}
+
+.hero-media img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+}
+
+.hero-media::after {
+ content: '';
+ position: absolute;
+ inset: 0;
+ background: linear-gradient(to top, rgba(0, 0, 0, 0.42), transparent 40%);
+}
+
+.feature-strip {
+ margin-top: 1.2rem;
+ border: 1px solid var(--border);
+ border-radius: var(--radius-md);
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ overflow: hidden;
+}
+
+.feature-strip .item {
+ background: rgba(255, 255, 255, 0.015);
+ padding: 1rem;
+ border-right: 1px solid rgba(212, 175, 55, 0.1);
+}
+
+.feature-strip .item:last-child {
+ border-right: none;
+}
+
+.feature-strip .item strong {
+ display: block;
+ font-size: 0.95rem;
+ margin-bottom: 0.15rem;
+}
+
+.feature-strip .item span {
+ font-size: 0.83rem;
+ color: var(--text-soft);
+}
+
+.sale-banner,
+.promo-banner {
+ border: 1px solid var(--border);
+ background: linear-gradient(135deg, rgba(212, 175, 55, 0.1), rgba(5, 5, 5, 0.75));
+ border-radius: var(--radius-md);
+ padding: 1.8rem;
+ display: grid;
+ gap: 0.85rem;
+}
+
+.promo-banner {
+ margin: 4rem 0;
+}
+
+.promo-banner input {
+ width: min(340px, 100%);
+ height: 44px;
+}
+
+/* Cards */
+.product-card-link {
+ display: block;
+}
+
+.product-card,
+.category-card,
+.order-card,
+.contact-form,
+.contact-info,
+.profile-form,
+.checkout-form,
+.checkout-summary,
+.cart-items,
+.cart-summary,
+.filters-sidebar {
+ border: 1px solid var(--border);
+ background: linear-gradient(150deg, #0f0f0f, #161616 65%, #131313);
+ border-radius: var(--radius-md);
+ box-shadow: var(--shadow-soft);
+}
+
+.product-card {
+ overflow: hidden;
+ transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
}
.product-card:hover {
- transform: translateY(-4px);
- box-shadow: var(--shadow-lg);
+ transform: translateY(-6px);
+ box-shadow: var(--shadow-gold);
+ border-color: rgba(212, 175, 55, 0.42);
}
.product-image-container {
position: relative;
- overflow: hidden;
+ background: #0b0b0b;
aspect-ratio: 1;
- background: var(--light);
+ overflow: hidden;
}
.product-image-container img {
width: 100%;
height: 100%;
object-fit: cover;
- transition: transform 0.3s;
+ transition: transform 0.45s ease;
}
.product-card:hover .product-image-container img {
- transform: scale(1.05);
+ transform: scale(1.06);
}
-.discount-badge, .featured-badge {
+.discount-badge,
+.featured-badge {
position: absolute;
- top: 10px;
- right: 10px;
- background: var(--primary);
- color: white;
- padding: 0.5rem 1rem;
- border-radius: 4px;
- font-weight: bold;
- font-size: 0.875rem;
+ top: 0.75rem;
+ right: 0.75rem;
+ padding: 0.32rem 0.55rem;
+ border-radius: 999px;
+ font-size: 0.72rem;
+ font-weight: 700;
+}
+
+.discount-badge {
+ background: linear-gradient(140deg, #e17070, #be3b3b);
+ color: #fff;
}
.featured-badge {
right: auto;
- left: 10px;
- background: #4CAF50;
+ left: 0.75rem;
+ background: rgba(212, 175, 55, 0.16);
+ border: 1px solid var(--border);
+ color: var(--gold-bright);
+}
+
+.product-wishlist-icon {
+ position: absolute;
+ top: 0.75rem;
+ left: 0.75rem;
+ width: 34px;
+ height: 34px;
+ border-radius: 50%;
+ background: rgba(0, 0, 0, 0.52);
+ border: 1px solid rgba(255, 255, 255, 0.1);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 0.95rem;
+ color: var(--gold-bright);
}
.product-info {
- padding: 1.5rem;
+ padding: 1rem;
}
.product-info h3 {
- font-size: 1.1rem;
- margin-bottom: 0.5rem;
- display: -webkit-box;
- -webkit-line-clamp: 2;
- -webkit-box-orient: vertical;
- overflow: hidden;
+ font-size: 1rem;
+ font-weight: 600;
+ min-height: 2.8rem;
+ color: #f4f4f4;
}
.brand {
- color: var(--gray);
- font-size: 0.875rem;
- margin-bottom: 0.75rem;
+ color: var(--gold);
+ margin-top: 0.22rem;
+ font-size: 0.85rem;
}
.price {
- margin-bottom: 0.75rem;
display: flex;
- gap: 0.5rem;
+ gap: 0.45rem;
align-items: center;
+ margin: 0.72rem 0;
}
.price .original {
- color: var(--gray);
text-decoration: line-through;
- font-size: 0.9rem;
+ color: var(--text-soft);
}
.price .discounted,
-.price .current {
- font-weight: bold;
- font-size: 1.2rem;
- color: var(--primary);
+.price .current,
+.price span {
+ color: var(--gold-bright);
+ font-weight: 700;
+ font-size: 1.16rem;
}
.stock {
- font-size: 0.875rem;
- margin-bottom: 1rem;
+ font-size: 0.84rem;
}
.in-stock {
- color: #4CAF50;
- font-weight: 600;
+ color: var(--success);
}
.out-of-stock {
- color: #e74c3c;
- font-weight: 600;
+ color: var(--danger);
}
-/* Category Card */
.category-card {
- display: block;
- background: white;
- border-radius: var(--border-radius);
- overflow: hidden;
- box-shadow: var(--shadow);
- transition: transform 0.3s;
- cursor: pointer;
-}
-
-.category-card:hover {
- transform: translateY(-4px);
+ padding: 0.8rem;
}
.category-card img {
+ border-radius: 12px;
+ height: 210px;
width: 100%;
- height: 200px;
object-fit: cover;
}
.category-card h3 {
- padding: 1rem;
- font-size: 1.2rem;
+ margin-top: 0.9rem;
+ font-family: 'Montserrat', sans-serif;
+ font-size: 1rem;
}
.category-card p {
- padding: 0 1rem 1rem;
- color: var(--gray);
- font-size: 0.875rem;
+ color: var(--text-muted);
+ font-size: 0.85rem;
}
-/* Search Bar */
-.search-bar {
- position: relative;
- width: 100%;
-}
-
-.search-bar input {
- width: 100%;
- padding: 0.75rem 1rem;
- border: 1px solid var(--gray-light);
- border-radius: var(--border-radius);
- font-size: 0.95rem;
-}
-
-.search-results {
- position: absolute;
- top: 100%;
- left: 0;
- right: 0;
- background: white;
- border: 1px solid var(--gray-light);
- border-top: none;
- border-radius: 0 0 var(--border-radius) var(--border-radius);
- max-height: 300px;
- overflow-y: auto;
- z-index: 10;
-}
-
-.search-result-item {
- display: block;
- padding: 0.75rem 1rem;
- border-bottom: 1px solid var(--gray-light);
- display: flex;
- justify-content: space-between;
- cursor: pointer;
- transition: background 0.2s;
-}
-
-.search-result-item:hover {
- background: var(--light);
-}
-
-/* Filters */
-.filters-sidebar {
- background: var(--light);
- padding: 1.5rem;
- border-radius: var(--border-radius);
- height: fit-content;
-}
-
-.filters-sidebar h3 {
- margin-bottom: 1.5rem;
- font-size: 1.1rem;
-}
-
-.filter-group {
- margin-bottom: 1.5rem;
-}
-
-.filter-group label {
- display: block;
- font-weight: 600;
- margin-bottom: 0.5rem;
- font-size: 0.9rem;
-}
-
-.filter-group select,
-.filter-group input[type="checkbox"] {
- width: 100%;
- padding: 0.5rem;
- border: 1px solid var(--gray-light);
- border-radius: 4px;
- font-size: 0.9rem;
-}
-
-.filter-group input[type="checkbox"] {
- width: auto;
- margin-right: 0.5rem;
-}
-
-/* Products Page */
-.products-page {
- max-width: 1200px;
- margin: 0 auto;
- padding: 2rem;
-}
-
-.products-page h1 {
- margin-bottom: 2rem;
- font-size: 2rem;
+/* Product page */
+.products-page,
+.sales-page,
+.cart-page,
+.checkout-page,
+.auth-page,
+.profile-page,
+.contact-page,
+.orders-page,
+.wishlist-page,
+.about-page,
+.messages-page,
+.product-detail {
+ padding-top: 1.2rem;
}
.products-container {
display: grid;
- grid-template-columns: 250px 1fr;
- gap: 2rem;
+ grid-template-columns: 270px 1fr;
+ gap: 1.2rem;
+ margin-top: 1rem;
}
-.products-content {
- display: flex;
- flex-direction: column;
+.filters-sidebar {
+ padding: 1rem;
+ position: sticky;
+ top: 96px;
+ height: fit-content;
+}
+
+.filters-sidebar h3 {
+ margin-bottom: 0.9rem;
+ color: var(--gold-bright);
+}
+
+.filter-group {
+ margin-bottom: 0.95rem;
+}
+
+.price-range-inputs {
+ display: grid;
+ grid-template-columns: 1fr auto 1fr;
+ gap: 0.45rem;
+ align-items: center;
+}
+
+.form-group label,
+.filter-group label {
+ display: block;
+ color: var(--text-muted);
+ margin-bottom: 0.35rem;
+ font-size: 0.9rem;
+}
+
+input,
+select,
+textarea,
+.filter-group input,
+.filter-group select,
+.quantity-selector input {
+ width: 100%;
+ background: rgba(255, 255, 255, 0.02);
+ color: #fff;
+ border: 1px solid rgba(255, 255, 255, 0.1);
+ border-radius: 11px;
+ padding: 0.62rem 0.8rem;
+}
+
+input::placeholder,
+textarea::placeholder {
+ color: #737373;
+}
+
+input:focus,
+select:focus,
+textarea:focus {
+ outline: none;
+ border-color: var(--border);
+ box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.11);
}
.sort-bar {
display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: 2rem;
- gap: 1rem;
flex-wrap: wrap;
+ align-items: center;
+ gap: 0.7rem;
+ margin-bottom: 1rem;
+ border: 1px solid var(--border);
+ background: rgba(255, 255, 255, 0.02);
+ border-radius: 12px;
+ padding: 0.72rem;
}
-.sort-bar select {
- padding: 0.5rem 1rem;
- border: 1px solid var(--gray-light);
- border-radius: var(--border-radius);
-}
-
+.sort-bar label,
.product-count {
- color: var(--gray);
+ color: var(--text-muted);
font-size: 0.9rem;
}
-.no-products {
- text-align: center;
- padding: 3rem 1rem;
- color: var(--gray);
+.pagination {
+ display: flex;
+ justify-content: center;
+ flex-wrap: wrap;
+ gap: 0.45rem;
+ margin-top: 1.4rem;
}
-/* Product Detail */
-.product-detail {
- max-width: 1200px;
- margin: 0 auto;
- padding: 2rem;
+.pagination .page-btn {
+ min-width: 38px;
+ padding: 0.55rem 0.7rem;
+ border: 1px solid var(--border);
+ border-radius: 10px;
+ color: var(--text-muted);
}
+.page-btn {
+ min-width: 38px;
+ padding: 0.55rem 0.7rem;
+ border: 1px solid var(--border);
+ border-radius: 10px;
+ color: var(--text-muted);
+}
+
+.pagination .page-btn.active,
+.pagination .page-btn:hover {
+ color: #121212;
+ background: var(--gold);
+}
+
+/* Product detail */
.detail-container {
display: grid;
- grid-template-columns: 1fr 1fr;
- gap: 3rem;
- margin-top: 2rem;
+ grid-template-columns: 1.35fr 1fr;
+ gap: 1.3rem;
}
-.detail-images {
- display: flex;
- flex-direction: column;
- gap: 1rem;
+.detail-images,
+.detail-info {
+ border: 1px solid var(--border);
+ background: linear-gradient(135deg, #101010, #161616);
+ border-radius: var(--radius-md);
+ padding: 1rem;
}
.main-image-container {
position: relative;
- width: 100%;
- max-width: 500px;
- aspect-ratio: 1 / 1;
- border-radius: var(--border-radius);
+ border-radius: 14px;
overflow: hidden;
- background-color: #f5f5f5;
- margin: 0 auto;
+ min-height: 460px;
+ border: 1px solid rgba(255, 255, 255, 0.08);
}
.main-image {
width: 100%;
height: 100%;
- object-fit: contain;
- background-color: #f5f5f5;
+ object-fit: cover;
}
.nav-arrow {
position: absolute;
top: 50%;
transform: translateY(-50%);
- background-color: rgba(255, 255, 255, 0.9);
- border: none;
+ width: 44px;
+ height: 44px;
border-radius: 50%;
- width: 40px;
- height: 40px;
- font-size: 24px;
- cursor: pointer;
- display: flex;
- align-items: center;
- justify-content: center;
- transition: all 0.3s;
- z-index: 10;
-}
-
-.nav-arrow:hover {
- background-color: rgba(255, 255, 255, 1);
- transform: translateY(-50%) scale(1.1);
+ border: 1px solid var(--border);
+ background: rgba(0, 0, 0, 0.65);
+ color: var(--gold);
+ font-size: 1.25rem;
}
.nav-arrow.prev {
- left: 1rem;
+ left: 0.8rem;
}
.nav-arrow.next {
- right: 1rem;
+ right: 0.8rem;
}
.thumbnail-gallery {
- display: flex;
- gap: 0.5rem;
- overflow-x: auto;
- padding: 0.5rem 0;
+ margin-top: 0.8rem;
+ display: grid;
+ gap: 0.55rem;
+ grid-template-columns: repeat(auto-fit, minmax(78px, 1fr));
}
.thumbnail {
- width: 80px;
- height: 80px;
+ width: 100%;
+ aspect-ratio: 1;
object-fit: cover;
- border-radius: 8px;
+ border-radius: 10px;
+ border: 1px solid rgba(255, 255, 255, 0.09);
cursor: pointer;
- border: 2px solid transparent;
- transition: all 0.3s;
- flex-shrink: 0;
-}
-
-.thumbnail:hover {
- border-color: var(--primary-color);
- opacity: 0.8;
}
.thumbnail.active {
- border-color: var(--primary-color);
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
+ border-color: var(--gold);
+ box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.26);
}
.detail-info h1 {
- font-size: 2rem;
- margin-bottom: 0.5rem;
-}
-
-.detail-info .brand {
- font-size: 1rem;
- margin-bottom: 1rem;
+ font-size: clamp(1.6rem, 1.35rem + 1.6vw, 2.4rem);
+ line-height: 1.14;
}
.rating {
- margin-bottom: 1.5rem;
- font-size: 1rem;
+ color: var(--gold-bright);
+ margin: 0.55rem 0;
}
-.detail-info .description {
- color: var(--gray);
- line-height: 1.8;
- margin-bottom: 1.5rem;
+.model-code {
+ color: var(--text-soft);
+ font-size: 0.9rem;
+ margin-bottom: 1.1rem;
+}
+
+.description {
+ color: var(--text-muted);
+ margin-bottom: 1.1rem;
}
.option-group {
- margin-bottom: 1.5rem;
+ margin-bottom: 1rem;
}
-.option-group label {
+.option-group > label {
display: block;
- font-weight: 600;
- margin-bottom: 0.75rem;
+ color: var(--text-muted);
+ margin-bottom: 0.45rem;
}
-.color-options,
.size-options {
- display: flex;
- gap: 0.75rem;
- flex-wrap: wrap;
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(56px, 1fr));
+ gap: 0.5rem;
}
-.color-btn,
.size-btn {
- padding: 0.75rem 1rem;
- border: 2px solid var(--gray-light);
- border-radius: var(--border-radius);
- background: white;
- cursor: pointer;
- transition: all 0.3s;
+ border: 1px solid rgba(255, 255, 255, 0.16);
+ border-radius: 10px;
+ color: #ececec;
+ min-height: 42px;
}
-.color-btn:hover,
+.size-btn.active,
.size-btn:hover {
- border-color: var(--primary);
-}
-
-.color-btn.active,
-.size-btn.active {
- border-color: var(--primary);
- background: var(--primary);
- color: white;
+ border-color: var(--gold);
+ background: rgba(212, 175, 55, 0.11);
}
.quantity-selector {
- display: flex;
- align-items: center;
- gap: 0.5rem;
- border: 1px solid var(--gray-light);
- border-radius: var(--border-radius);
- width: fit-content;
+ width: 150px;
+ display: grid;
+ grid-template-columns: 42px 1fr 42px;
+ border: 1px solid var(--border);
+ border-radius: 10px;
+ overflow: hidden;
}
.quantity-selector button {
- width: 40px;
- height: 40px;
- background: transparent;
- cursor: pointer;
- font-size: 1.2rem;
+ color: var(--gold);
+ background: rgba(212, 175, 55, 0.04);
}
.quantity-selector input {
- width: 60px;
border: none;
+ border-left: 1px solid var(--border);
+ border-right: 1px solid var(--border);
text-align: center;
- font-weight: bold;
-}
-
-.stock-info {
- margin-bottom: 1.5rem;
- padding: 1rem;
- background: var(--light);
- border-radius: var(--border-radius);
+ border-radius: 0;
}
.action-buttons {
- display: flex;
- gap: 1rem;
- margin-bottom: 2rem;
-}
-
-.action-buttons .btn {
- flex: 1;
-}
-
-.action-buttons .btn-icon {
- flex: 0;
- width: auto;
+ margin: 1.35rem 0;
+ display: grid;
+ grid-template-columns: 1fr auto;
+ gap: 0.65rem;
}
.product-details {
- padding-top: 2rem;
- border-top: 1px solid var(--gray-light);
-}
-
-.product-details h3 {
- margin-bottom: 1rem;
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
+ padding-top: 1rem;
}
.product-details ul {
list-style: none;
-}
-
-.product-details li {
- padding: 0.5rem 0;
- color: var(--gray);
-}
-
-/* Cart Page */
-.cart-page {
- max-width: 1200px;
- margin: 0 auto;
- padding: 2rem;
-}
-
-.cart-page h1 {
- margin-bottom: 2rem;
-}
-
-.empty-cart {
- text-align: center;
- padding: 3rem;
- background: var(--light);
- border-radius: var(--border-radius);
-}
-
-.empty-cart p {
- margin-bottom: 1.5rem;
- color: var(--gray);
-}
-
-.cart-container {
display: grid;
- grid-template-columns: 1fr 350px;
- gap: 2rem;
+ gap: 0.33rem;
+ color: var(--text-muted);
}
-.cart-table {
- width: 100%;
- border-collapse: collapse;
+/* Cart */
+.cart-container,
+.checkout-container,
+.profile-container,
+.contact-container {
+ display: grid;
+ grid-template-columns: 1.2fr 0.8fr;
+ gap: 1rem;
+ margin-top: 1rem;
}
-.cart-table th {
- background: var(--light);
+.cart-items,
+.cart-summary {
padding: 1rem;
- text-align: left;
- font-weight: 600;
- border-bottom: 2px solid var(--gray-light);
}
-.cart-table td {
- padding: 1rem;
- border-bottom: 1px solid var(--gray-light);
+.cart-item {
+ display: grid;
+ grid-template-columns: 88px 1fr auto;
+ gap: 0.8rem;
+ align-items: center;
+ padding: 0.9rem 0;
+ border-bottom: 1px solid rgba(255, 255, 255, 0.07);
+}
+
+.cart-item:last-child {
+ border-bottom: none;
}
.cart-item-product {
display: flex;
- gap: 1rem;
+ gap: 0.72rem;
align-items: center;
}
.cart-item-product img {
- width: 80px;
- height: 80px;
+ width: 82px;
+ height: 82px;
+ border-radius: 10px;
object-fit: cover;
- border-radius: 4px;
+ border: 1px solid rgba(255, 255, 255, 0.09);
+}
+
+.cart-item > img {
+ width: 82px;
+ height: 82px;
+ border-radius: 10px;
+ object-fit: cover;
+ border: 1px solid rgba(255, 255, 255, 0.09);
}
.product-name {
@@ -820,1081 +1038,635 @@ button {
}
.quantity-control {
- display: flex;
- align-items: center;
- gap: 0.5rem;
- border: 1px solid var(--gray-light);
- border-radius: 4px;
- width: fit-content;
+ display: inline-flex;
+ border: 1px solid var(--border);
+ border-radius: 10px;
+ overflow: hidden;
}
.quantity-control button {
width: 30px;
- height: 30px;
- background: transparent;
- cursor: pointer;
+ color: var(--gold);
}
-.cart-summary {
- background: var(--light);
- padding: 1.5rem;
- border-radius: var(--border-radius);
- height: fit-content;
- position: sticky;
- top: 100px;
+.quantity-control span {
+ width: 34px;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ color: #efefef;
}
-.cart-summary h3 {
- margin-bottom: 1.5rem;
+.summary-rows,
+.summary-items {
+ display: grid;
+ gap: 0.55rem;
}
-.summary-rows {
- margin-bottom: 1.5rem;
-}
-
-.summary-row {
+.summary-row,
+.summary-item {
display: flex;
justify-content: space-between;
- padding: 0.75rem 0;
- border-bottom: 1px solid var(--gray-light);
+ color: var(--text-muted);
}
-.summary-row.total {
- font-weight: bold;
- font-size: 1.1rem;
- border-top: 2px solid var(--gray-light);
- border-bottom: none;
- padding: 1rem 0;
-}
-
-/* Checkout Page */
-.checkout-page {
- max-width: 1200px;
- margin: 0 auto;
- padding: 2rem;
-}
-
-.checkout-page h1 {
- margin-bottom: 2rem;
-}
-
-.checkout-container {
- display: grid;
- grid-template-columns: 1fr 350px;
- gap: 2rem;
+.summary-row.total,
+.summary-total {
+ margin-top: 0.8rem;
+ padding-top: 0.8rem;
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
+ color: #fff;
+ font-weight: 700;
}
+/* Checkout */
.checkout-form,
.checkout-summary {
- background: var(--light);
- padding: 2rem;
- border-radius: var(--border-radius);
+ padding: 1rem;
}
.form-section {
- margin-bottom: 2rem;
+ border: 1px solid rgba(255, 255, 255, 0.08);
+ border-radius: 12px;
+ padding: 0.9rem;
+ margin-bottom: 0.9rem;
}
.form-section h2 {
- font-size: 1.3rem;
- margin-bottom: 1rem;
-}
-
-.form-group {
- margin-bottom: 1rem;
-}
-
-.form-group label {
- display: block;
- font-weight: 600;
- margin-bottom: 0.5rem;
-}
-
-.form-group input,
-.form-group select,
-.form-group textarea {
- width: 100%;
- padding: 0.75rem;
- border: 1px solid var(--gray-light);
- border-radius: var(--border-radius);
- font-size: 0.95rem;
- font-family: inherit;
- transition: border-color 0.3s;
-}
-
-.form-group input:focus,
-.form-group select:focus,
-.form-group textarea:focus {
- outline: none;
- border-color: var(--primary);
-}
-
-.form-group input.error,
-.form-group select.error,
-.form-group textarea.error {
- border-color: #f44336;
-}
-
-.required {
- color: #f44336;
- margin-left: 2px;
-}
-
-.error-message {
- display: block;
- color: #f44336;
- font-size: 0.85rem;
- margin-top: 0.25rem;
-}
-
-.payment-info {
- font-size: 1rem;
- margin-bottom: 0.5rem;
- color: var(--secondary);
-}
-
-.text-muted {
- color: var(--gray);
- font-size: 0.9rem;
+ font-size: 1.02rem;
+ color: var(--gold-bright);
+ margin-bottom: 0.6rem;
}
.form-row {
display: grid;
- grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
- gap: 1rem;
+ grid-template-columns: repeat(2, 1fr);
+ gap: 0.75rem;
}
-.checkout-summary {
- height: fit-content;
- position: sticky;
- top: 100px;
+.required {
+ color: #e69191;
}
-.summary-items {
- margin-bottom: 1.5rem;
-}
-
-.summary-item {
- display: flex;
- justify-content: space-between;
- padding: 0.75rem 0;
- border-bottom: 1px solid var(--gray-light);
- font-size: 0.9rem;
-}
-
-.summary-total {
- padding-top: 1rem;
- font-size: 1.1rem;
- color: var(--primary);
-}
-
-/* Auth Pages */
-.auth-page {
- display: flex;
- justify-content: center;
- align-items: center;
- min-height: calc(100vh - 200px);
- padding: 2rem;
-}
-
-.auth-container {
- background: white;
- padding: 3rem;
- border-radius: var(--border-radius);
- box-shadow: var(--shadow-lg);
- width: 100%;
- max-width: 400px;
-}
-
-.auth-container h1 {
- margin-bottom: 2rem;
- text-align: center;
-}
-
-.auth-container form {
- margin-bottom: 1.5rem;
-}
-
-.auth-container p {
- text-align: center;
- color: var(--gray);
- margin-bottom: 1rem;
-}
-
-.auth-container a {
- color: var(--primary);
- font-weight: 600;
-}
-
-.forgot-password-link {
- text-align: right;
- margin-bottom: 1rem;
- margin-top: -0.5rem;
-}
-
-.link-button {
- background: none;
- border: none;
- color: var(--primary);
- font-size: 0.9rem;
- cursor: pointer;
- padding: 0;
- text-decoration: underline;
- transition: color 0.3s;
-}
-
-.link-button:hover {
- color: var(--primary-dark);
-}
-
-.auth-switch {
- margin-top: 1.5rem !important;
-}
-
-.modal-description {
- color: var(--gray);
- margin-bottom: 1.5rem;
- text-align: left !important;
-}
-
-.admin-demo {
- color: #ff6b6b !important;
- font-weight: bold !important;
+.error,
+.error-message {
+ color: #ff8d8d;
}
.error-message {
- background: #f8d7da;
- color: #721c24;
+ font-size: 0.8rem;
+ margin-top: 0.2rem;
+}
+
+.payment-info,
+.text-muted {
+ color: var(--text-muted);
+}
+
+/* Auth */
+.auth-page {
+ display: flex;
+ justify-content: center;
+ align-items: stretch;
+}
+
+.auth-container {
+ width: min(1040px, 100%);
+ min-height: 620px;
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ margin: 1.4rem auto;
+ border: 1px solid var(--border);
+ border-radius: var(--radius-lg);
+ overflow: hidden;
+ box-shadow: var(--shadow-soft);
+ background: #101010;
+}
+
+.auth-visual {
+ position: relative;
+ background: #070707;
+}
+
+.auth-visual img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ opacity: 0.7;
+}
+
+.auth-visual-copy {
+ position: absolute;
+ inset: auto 1.2rem 1.2rem;
padding: 1rem;
- border-radius: var(--border-radius);
+ border-radius: 12px;
+ border: 1px solid rgba(212, 175, 55, 0.3);
+ background: rgba(0, 0, 0, 0.6);
+}
+
+.auth-panel {
+ padding: clamp(1rem, 3vw, 2.2rem);
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+}
+
+.auth-panel h1 {
margin-bottom: 1rem;
- text-align: center;
}
-.demo-account {
- background: #e3f2fd;
+.forgot-password-link,
+.auth-switch {
+ margin-top: 0.65rem;
+}
+
+.link-button {
+ color: var(--gold-bright);
+ font-size: 0.88rem;
+}
+
+.auth-meta {
+ margin: 0.7rem 0 1rem;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ color: var(--text-muted);
+ font-size: 0.88rem;
+}
+
+.auth-meta label {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.45rem;
+}
+
+.auth-switch a {
+ color: var(--gold-bright);
+}
+
+/* Modal + toast */
+.modal-overlay {
+ position: fixed;
+ inset: 0;
+ background: rgba(0, 0, 0, 0.62);
+ display: grid;
+ place-items: center;
+ z-index: 80;
padding: 1rem;
- border-radius: var(--border-radius);
- margin-top: 1.5rem;
- font-size: 0.875rem;
}
-.demo-account p {
- margin: 0.25rem 0;
+.modal-content {
+ width: min(530px, 100%);
+ border: 1px solid var(--border);
+ border-radius: 14px;
+ background: #111;
+}
+
+.modal-header {
+ padding: 0.9rem 1rem;
+ border-bottom: 1px solid rgba(255, 255, 255, 0.08);
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.modal-body {
+ padding: 1rem;
+}
+
+.modal-close {
+ color: #d7d7d7;
+ font-size: 1.25rem;
+}
+
+.cart-modal {
+ text-align: center;
+ padding: 1.4rem;
+}
+
+.cart-modal-icon {
+ width: 54px;
+ height: 54px;
+ margin: 0 auto 0.8rem;
+ border-radius: 50%;
+ border: 1px solid var(--border);
+ color: var(--gold);
+ display: grid;
+ place-items: center;
+}
+
+.cart-modal-actions {
+ margin-top: 1rem;
+ display: flex;
+ gap: 0.6rem;
+ justify-content: center;
+}
+
+.toast {
+ position: fixed;
+ right: 1rem;
+ bottom: 1rem;
+ width: min(360px, calc(100vw - 2rem));
+ display: flex;
+ align-items: center;
+ gap: 0.7rem;
+ padding: 0.85rem;
+ border-radius: 12px;
+ border: 1px solid var(--border);
+ background: #111;
+ box-shadow: var(--shadow-soft);
+ z-index: 95;
+}
+
+.toast-success .toast-icon {
+ color: var(--success);
+}
+
+.toast-error .toast-icon {
+ color: #ff8d8d;
+}
+
+.toast-info .toast-icon {
+ color: #8fc1ff;
+}
+
+.toast-close {
+ margin-left: auto;
+ color: #bbb;
+}
+
+/* Profile */
+.profile-shell {
+ display: grid;
+ grid-template-columns: 250px 1fr;
+ gap: 1rem;
+ margin-top: 1rem;
+}
+
+.profile-nav {
+ border: 1px solid var(--border);
+ border-radius: var(--radius-md);
+ background: var(--surface-glass);
+ padding: 0.7rem;
+ height: fit-content;
+}
+
+.profile-nav button,
+.profile-nav a {
+ width: 100%;
text-align: left;
+ color: var(--text-muted);
+ padding: 0.62rem 0.75rem;
+ border-radius: 10px;
+ border: 1px solid transparent;
+ display: block;
}
-/* Profile Page */
-.profile-page,
-.orders-page,
-.wishlist-page {
- max-width: 1000px;
- margin: 0 auto;
- padding: 2rem;
+.profile-nav .active,
+.profile-nav button:hover,
+.profile-nav a:hover {
+ color: var(--gold-bright);
+ border-color: var(--border);
+ background: rgba(212, 175, 55, 0.09);
}
-.profile-page h1,
-.orders-page h1,
-.wishlist-page h1 {
- margin-bottom: 2rem;
+.profile-metrics {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: 0.75rem;
+ margin-bottom: 0.9rem;
}
-.profile-container {
- background: var(--light);
- padding: 2rem;
- border-radius: var(--border-radius);
+.profile-metric {
+ border: 1px solid var(--border);
+ background: rgba(212, 175, 55, 0.05);
+ border-radius: 12px;
+ padding: 0.75rem;
+}
+
+.profile-metric span {
+ color: var(--text-soft);
+ font-size: 0.8rem;
+}
+
+.profile-metric strong {
+ font-size: 1.5rem;
+ color: var(--gold-bright);
+ font-family: 'Montserrat', sans-serif;
+}
+
+.admin-pill {
+ margin-left: 0.7rem;
+ border: 1px solid var(--border);
+ color: var(--gold-bright);
+ border-radius: 999px;
+ padding: 0.2rem 0.6rem;
+ font-size: 0.75rem;
+}
+
+.profile-forms {
+ display: grid;
+ gap: 0.95rem;
+}
+
+.profile-form {
+ padding: 1rem;
}
.profile-form h2 {
- font-size: 1.3rem;
- margin: 1.5rem 0 1rem;
+ margin-bottom: 0.75rem;
+ color: var(--gold-bright);
}
-.profile-form h2:first-child {
- margin-top: 0;
-}
-
-/* Orders Page */
-.orders-container {
- display: flex;
- flex-direction: column;
- gap: 2rem;
+/* Orders & wishlist */
+.orders-container,
+.wishlist-container {
+ margin-top: 1rem;
+ display: grid;
+ gap: 0.95rem;
}
.order-card {
- background: white;
- border: 1px solid var(--gray-light);
- border-radius: var(--border-radius);
- padding: 2rem;
- box-shadow: var(--shadow);
+ padding: 1rem;
}
.order-header {
display: flex;
justify-content: space-between;
align-items: center;
- margin-bottom: 1.5rem;
- border-bottom: 1px solid var(--gray-light);
- padding-bottom: 1rem;
+ gap: 0.75rem;
}
-.order-header h3 {
- font-size: 1.2rem;
+.status,
+.status-badge {
+ border: 1px solid var(--border);
+ border-radius: 999px;
+ padding: 0.3rem 0.6rem;
+ font-size: 0.72rem;
+ color: var(--gold-bright);
}
-.status {
- padding: 0.5rem 1rem;
- border-radius: 20px;
- font-size: 0.875rem;
- font-weight: 600;
- text-transform: uppercase;
-}
-
-.status.pending {
- background: #fff3cd;
- color: #856404;
-}
-
-.status.paid {
- background: #d4edda;
- color: #155724;
-}
-
-.status.shipped {
- background: #d1ecf1;
- color: #0c5460;
-}
-
-.status.delivered {
- background: #d4edda;
- color: #155724;
-}
-
-.order-details {
- margin-bottom: 1.5rem;
-}
-
-.detail-row {
- display: flex;
- justify-content: space-between;
- padding: 0.5rem 0;
- color: var(--gray);
-}
-
-.order-items {
- margin-bottom: 1.5rem;
- padding-bottom: 1.5rem;
- border-bottom: 1px solid var(--gray-light);
+.order-details,
+.order-items,
+.shipping-info {
+ margin-top: 0.75rem;
}
.order-item {
- display: flex;
- gap: 1rem;
+ display: grid;
+ grid-template-columns: 60px 1fr auto;
+ gap: 0.6rem;
align-items: center;
- margin-bottom: 0.75rem;
+ padding: 0.45rem 0;
}
.order-item img {
width: 60px;
height: 60px;
+ border-radius: 9px;
object-fit: cover;
- border-radius: 4px;
}
-.shipping-info {
- background: var(--light);
- padding: 1rem;
- border-radius: var(--border-radius);
-}
-
-.shipping-info h4 {
- margin-bottom: 0.5rem;
-}
-
-.shipping-info p {
- font-size: 0.9rem;
- color: var(--gray);
- margin-bottom: 0.25rem;
-}
-
-/* Wishlist Page */
.wishlist-item {
- position: relative;
+ display: grid;
+ gap: 0.7rem;
}
-.wishlist-item .btn {
- margin-top: 0.5rem;
-}
-
-/* About Page */
+/* About + contact */
.about-page {
- max-width: 1000px;
- margin: 0 auto;
- padding: 2rem;
-}
-
-.about-page h1 {
- margin-bottom: 2rem;
- font-size: 2.5rem;
+ display: grid;
+ gap: 0.95rem;
}
.about-section {
- margin-bottom: 3rem;
+ border: 1px solid var(--border);
+ border-radius: var(--radius-md);
+ background: var(--surface-glass);
+ padding: 1rem;
}
.about-section h2 {
- font-size: 1.8rem;
- margin-bottom: 1rem;
- color: var(--primary);
+ margin-bottom: 0.45rem;
+ color: var(--gold-bright);
}
-.about-section p {
- font-size: 1rem;
- line-height: 1.8;
- color: var(--gray);
+.about-section p,
+.values-list li {
+ color: var(--text-muted);
}
.values-list {
list-style: none;
- margin-top: 1rem;
-}
-
-.values-list li {
- padding: 1rem;
- margin-bottom: 0.75rem;
- background: var(--light);
- border-left: 4px solid var(--primary);
- border-radius: 4px;
+ display: grid;
+ gap: 0.45rem;
}
.why-us-grid {
+ margin-top: 0.75rem;
display: grid;
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
- gap: 1.5rem;
- margin-top: 1.5rem;
+ gap: 0.75rem;
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}
.why-us-card {
- background: var(--light);
- padding: 1.5rem;
- border-radius: var(--border-radius);
- text-align: center;
- transition: transform 0.3s;
-}
-
-.why-us-card:hover {
- transform: translateY(-4px);
-}
-
-.why-us-card h3 {
- font-size: 1.2rem;
- margin-bottom: 0.75rem;
-}
-
-/* Contact Page */
-.contact-page {
- max-width: 1200px;
- margin: 0 auto;
- padding: 2rem;
-}
-
-.contact-page h1 {
- margin-bottom: 2rem;
+ border: 1px solid var(--border);
+ border-radius: 12px;
+ padding: 0.8rem;
+ background: rgba(255, 255, 255, 0.02);
}
.contact-container {
- display: grid;
- grid-template-columns: 1fr 1fr;
- gap: 3rem;
- margin-top: 2rem;
-}
-
-.contact-info h2 {
- font-size: 1.5rem;
- margin-bottom: 2rem;
-}
-
-.info-item {
- margin-bottom: 2rem;
-}
-
-.info-item h3 {
- font-size: 1.1rem;
- margin-bottom: 0.75rem;
- color: var(--primary);
-}
-
-.info-item p {
- color: var(--gray);
- line-height: 1.8;
-}
-
-.social-links {
- display: flex;
- gap: 1rem;
-}
-
-.social-links a {
- display: inline-block;
- width: 40px;
- height: 40px;
- background: var(--primary);
- color: white;
- border-radius: 50%;
- display: flex;
- align-items: center;
- justify-content: center;
- transition: background 0.3s;
-}
-
-.social-links a:hover {
- background: var(--primary-dark);
-}
-
-.social-icons {
- display: flex;
- flex-direction: column;
- gap: 1rem;
margin-top: 1rem;
}
-.social-icon {
- display: flex;
- align-items: center;
- gap: 1rem;
- padding: 1rem;
- border-radius: var(--border-radius);
- background: var(--light);
- color: var(--secondary);
- transition: all 0.3s;
- text-decoration: none;
-}
-
-.social-icon:hover {
- transform: translateX(8px);
- box-shadow: var(--shadow);
-}
-
-.social-icon svg {
- flex-shrink: 0;
-}
-
-.social-icon.instagram:hover {
- background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
- color: white;
-}
-
-.social-icon.whatsapp:hover {
- background: #25D366;
- color: white;
-}
-
-.social-icon span {
- font-weight: 500;
- font-size: 1rem;
-}
-
+.contact-info,
.contact-form {
- background: var(--light);
- padding: 2rem;
- border-radius: var(--border-radius);
+ padding: 1rem;
}
-.contact-form h2 {
- font-size: 1.5rem;
- margin-bottom: 1.5rem;
+.info-item {
+ margin-bottom: 0.9rem;
+}
+
+.info-item h3 {
+ color: var(--gold-bright);
+ margin-bottom: 0.2rem;
+}
+
+.social-links,
+.social-icons {
+ display: flex;
+ gap: 0.55rem;
+ flex-wrap: wrap;
+}
+
+.social-icon,
+.social-links a {
+ border: 1px solid var(--border);
+ padding: 0.5rem 0.7rem;
+ border-radius: 10px;
+ color: var(--gold);
+ display: inline-flex;
+ align-items: center;
+ gap: 0.45rem;
}
.success-message {
- background: #d4edda;
- color: #155724;
- padding: 1rem;
- border-radius: var(--border-radius);
- margin-bottom: 1rem;
- text-align: center;
- font-weight: 600;
-}
-
-/* Sales Page */
-.sales-page {
- max-width: 1200px;
- margin: 0 auto;
- padding: 2rem;
-}
-
-.sales-header {
- background: linear-gradient(135deg, var(--primary) 0%, #ff8787 100%);
- color: white;
- padding: 3rem 2rem;
- border-radius: var(--border-radius);
- text-align: center;
- margin-bottom: 2rem;
-}
-
-.sales-header h1 {
- font-size: 2.5rem;
- margin-bottom: 0.5rem;
-}
-
-.sales-header p {
- font-size: 1.1rem;
-}
-
-/* Sale Banner */
-.sale-banner {
- background: linear-gradient(135deg, var(--primary) 0%, #ff8787 100%);
- color: white;
- padding: 3rem 2rem;
- text-align: center;
- border-radius: var(--border-radius);
-}
-
-.sale-banner h2 {
- color: white;
-}
-
-.sale-banner p {
- font-size: 1.1rem;
- margin-bottom: 1.5rem;
-}
-
-/* Promo Banner */
-.promo-banner {
- background: linear-gradient(135deg, var(--secondary) 0%, #424242 100%);
- color: white;
- padding: 3rem 2rem;
- text-align: center;
- border-radius: var(--border-radius);
- display: flex;
- flex-direction: column;
- align-items: center;
- gap: 1rem;
-}
-
-.promo-banner h3 {
- font-size: 1.5rem;
-}
-
-.promo-banner input {
- max-width: 400px;
- width: 100%;
- padding: 0.75rem 1rem;
- border: none;
- border-radius: var(--border-radius);
-}
-
-.promo-banner .btn {
- max-width: 400px;
-}
-
-/* Modal */
-.modal-overlay {
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background-color: rgba(0, 0, 0, 0.5);
- display: flex;
- justify-content: center;
- align-items: center;
- z-index: 1000;
- animation: fadeIn 0.2s ease-out;
-}
-
-@keyframes fadeIn {
- from { opacity: 0; }
- to { opacity: 1; }
-}
-
-.modal-content {
- background: white;
- border-radius: var(--border-radius);
- padding: 2rem;
- max-width: 500px;
- width: 90%;
- max-height: 90vh;
- overflow-y: auto;
- box-shadow: var(--shadow-lg);
- animation: slideUp 0.3s ease-out;
-}
-
-@keyframes slideUp {
- from {
- transform: translateY(20px);
- opacity: 0;
- }
- to {
- transform: translateY(0);
- opacity: 1;
- }
-}
-
-.modal-header {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: 1.5rem;
- padding-bottom: 1rem;
- border-bottom: 1px solid var(--gray-light);
-}
-
-.modal-header h2 {
- margin: 0;
- font-size: 1.5rem;
-}
-
-.modal-close {
- background: none;
- border: none;
- font-size: 2rem;
- color: var(--gray);
- cursor: pointer;
- padding: 0;
- width: 30px;
- height: 30px;
- display: flex;
- align-items: center;
- justify-content: center;
- transition: color 0.3s;
-}
-
-.modal-close:hover {
- color: var(--secondary);
-}
-
-.modal-body {
- margin-bottom: 0;
-}
-
-/* Cart Modal Specific */
-.cart-modal {
- text-align: center;
- max-width: 400px;
-}
-
-.cart-modal-icon {
- width: 60px;
- height: 60px;
- background: #4CAF50;
- color: white;
- border-radius: 50%;
- display: flex;
- align-items: center;
- justify-content: center;
- font-size: 2rem;
- margin: 0 auto 1rem;
-}
-
-.cart-modal h2 {
- margin-bottom: 0.5rem;
- color: var(--secondary);
-}
-
-.cart-modal-message {
- color: var(--gray);
- margin-bottom: 1.5rem;
-}
-
-.cart-modal-actions {
- display: flex;
- gap: 1rem;
- justify-content: center;
-}
-
-.cart-modal-actions .btn {
- flex: 1;
- max-width: 200px;
-}
-
-/* Toast Notifications */
-.toast {
- position: fixed;
- top: 20px;
- right: 20px;
- background: white;
- padding: 1rem 1.5rem;
- border-radius: var(--border-radius);
- box-shadow: var(--shadow-lg);
- display: flex;
- align-items: center;
- gap: 1rem;
- z-index: 1001;
- min-width: 300px;
- animation: slideInRight 0.3s ease-out;
-}
-
-@keyframes slideInRight {
- from {
- transform: translateX(400px);
- opacity: 0;
- }
- to {
- transform: translateX(0);
- opacity: 1;
- }
-}
-
-.toast-success {
- border-left: 4px solid #4CAF50;
-}
-
-.toast-error {
- border-left: 4px solid #f44336;
-}
-
-.toast-info {
- border-left: 4px solid #2196F3;
-}
-
-.toast-icon {
- width: 24px;
- height: 24px;
- border-radius: 50%;
- display: flex;
- align-items: center;
- justify-content: center;
- font-weight: bold;
- flex-shrink: 0;
-}
-
-.toast-success .toast-icon {
- background: #4CAF50;
- color: white;
-}
-
-.toast-error .toast-icon {
- background: #f44336;
- color: white;
-}
-
-.toast-info .toast-icon {
- background: #2196F3;
- color: white;
-}
-
-.toast-message {
- flex: 1;
- color: var(--secondary);
-}
-
-.toast-close {
- background: none;
- border: none;
- font-size: 1.5rem;
- color: var(--gray);
- cursor: pointer;
- padding: 0;
- width: 24px;
- height: 24px;
- display: flex;
- align-items: center;
- justify-content: center;
- flex-shrink: 0;
-}
-
-.toast-close:hover {
- color: var(--secondary);
+ border: 1px solid rgba(103, 197, 131, 0.4);
+ background: rgba(103, 197, 131, 0.11);
+ color: #87e0a1;
+ border-radius: 10px;
+ padding: 0.65rem;
+ margin-bottom: 0.8rem;
}
/* Footer */
.footer {
- background: var(--secondary);
- color: white;
margin-top: auto;
- padding: 3rem 0 1rem;
+ border-top: 1px solid var(--border);
+ background: #080808;
}
.footer-container {
- max-width: 1200px;
+ width: min(1320px, 94vw);
margin: 0 auto;
- padding: 0 2rem;
+ padding: 2.2rem 0 1.4rem;
display: grid;
- grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
- gap: 2rem;
- margin-bottom: 2rem;
-}
-
-.footer-section h3,
-.footer-section h4 {
- margin-bottom: 1rem;
- font-size: 1rem;
+ gap: 1rem;
+ grid-template-columns: 1.5fr 1fr 1fr 1fr;
}
.footer-brand {
display: flex;
align-items: center;
- gap: 0.5rem;
- margin-bottom: 1rem;
+ gap: 0.62rem;
+ margin-bottom: 0.65rem;
}
.footer-logo {
- font-size: 1.5rem;
+ width: 40px;
+ height: 40px;
+ display: grid;
+ place-items: center;
+ border: 1px solid var(--border);
+ border-radius: 10px;
+ color: var(--gold);
}
-.footer-brand h3 {
- margin: 0;
- font-size: 1.2rem;
-}
-
-.footer-section p {
- color: rgba(255, 255, 255, 0.7);
- font-size: 0.9rem;
- line-height: 1.8;
-}
-
-.footer-section a {
- display: block;
- color: rgba(255, 255, 255, 0.7);
+.footer-section h4 {
+ color: var(--gold-bright);
margin-bottom: 0.5rem;
- transition: color 0.3s;
}
-.footer-section a:hover {
- color: white;
+.footer-section ul {
+ list-style: none;
+ display: grid;
+ gap: 0.35rem;
}
-.social-links {
- display: flex;
- gap: 1rem;
- margin-top: 1rem;
+.footer-section li,
+.footer-section p {
+ color: var(--text-muted);
}
.footer-bottom {
- text-align: center;
- padding-top: 2rem;
- border-top: 1px solid rgba(255, 255, 255, 0.1);
- color: rgba(255, 255, 255, 0.6);
- font-size: 0.9rem;
+ border-top: 1px solid rgba(212, 175, 55, 0.12);
+ color: var(--text-soft);
+ padding: 0.8rem 0;
+ width: min(1320px, 94vw);
+ margin: 0 auto;
}
-/* Loading & Empty States */
-.loading,
-.empty-state {
- text-align: center;
- padding: 3rem 1rem;
- color: var(--gray);
- font-size: 1.1rem;
+/* Admin and models fallback theme */
+.admin-page,
+.models-page,
+.admin-content,
+.admin-tabs,
+.admin-form,
+.admin-grid,
+.admin-table {
+ color: var(--text-main);
}
-.empty-state {
- background: var(--light);
- border-radius: var(--border-radius);
- margin: 2rem auto;
- max-width: 500px;
-}
-
-.empty-state .btn {
- margin-top: 1.5rem;
-}
-
-.text-muted {
- color: var(--gray);
- font-size: 0.9rem;
-}
-
-/* Responsive Design */
-@media (max-width: 768px) {
+/* Responsive */
+@media (max-width: 1180px) {
.navbar-container {
- flex-wrap: wrap;
- gap: 1rem;
- }
-
- .navbar-center {
- order: 3;
- flex-basis: 100%;
- max-width: 100%;
+ grid-template-columns: auto 1fr auto;
}
.navbar-menu {
- gap: 1rem;
- font-size: 0.9rem;
+ order: 4;
+ grid-column: 1 / -1;
+ justify-content: center;
+ flex-wrap: wrap;
+ padding-bottom: 0.7rem;
}
- .grid {
- grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
- gap: 1rem;
- }
-
- .hero-content h1 {
- font-size: 2rem;
- }
-
- .detail-container {
- grid-template-columns: 1fr;
- }
-
- .products-container {
+ .products-container,
+ .detail-container,
+ .cart-container,
+ .checkout-container,
+ .profile-shell,
+ .contact-container,
+ .auth-container,
+ .footer-container {
grid-template-columns: 1fr;
}
.filters-sidebar {
- display: none;
- }
-
- .cart-container,
- .checkout-container,
- .contact-container {
- grid-template-columns: 1fr;
- }
-
- .cart-summary,
- .checkout-summary {
position: static;
}
- .cart-table {
- font-size: 0.85rem;
+ .feature-strip {
+ grid-template-columns: repeat(2, 1fr);
}
- .cart-table th,
- .cart-table td {
- padding: 0.5rem;
- }
-
- .sort-bar {
- flex-direction: column;
- align-items: flex-start;
- }
-
- .footer-container {
+ .hero {
grid-template-columns: 1fr;
}
+
+ .main-image-container {
+ min-height: 320px;
+ }
}
-@media (max-width: 480px) {
- .navbar-logo {
- font-size: 1.2rem;
+@media (max-width: 720px) {
+ .main-content {
+ width: min(1320px, 96vw);
+ padding-top: 1rem;
+ }
+
+ .navbar-container {
+ min-height: 76px;
+ gap: 0.6rem;
+ }
+
+ .navbar-center {
+ grid-column: 1 / -1;
+ order: 3;
+ max-width: 100%;
}
.navbar-icons {
- gap: 0.5rem;
+ justify-content: flex-end;
}
- .btn {
- padding: 0.6rem 1rem;
- font-size: 0.9rem;
+ .feature-strip,
+ .profile-metrics,
+ .form-row {
+ grid-template-columns: 1fr;
}
- .grid {
- grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
- gap: 0.75rem;
+ .action-buttons {
+ grid-template-columns: 1fr;
}
- .hero-content h1 {
- font-size: 1.5rem;
+ .cart-item {
+ grid-template-columns: 1fr;
+ text-align: left;
}
- .section {
- padding: 0 1rem;
- }
-
- .auth-container {
- padding: 1.5rem;
- }
-
- .contact-form,
- .profile-container {
- padding: 1rem;
+ .cart-modal-actions {
+ flex-direction: column;
}
}