/* ===================================================== CLALMOBILE DESIGN TOKENS v3.0 — PREMIUM LUXURY Single Source of Truth for ALL pages Mobile + Desktop — High-end Premium Feel ===================================================== */ :root, [data-theme="luxury"] { /* ===== PREMIUM DARK COLOR PALETTE ===== */ /* Background layers (deep, rich, layered) */ --bg-0: #030408; /* Deepest — near black */ --bg-1: #080C14; /* Page background — rich dark */ --bg-2: #0D1321; /* Card/surface — elevated */ --bg-3: #141C2E; /* Elevated surface — subtle lift */ --bg-4: #1A2540; /* Hover states */ --panel: #0D1321; /* Alias for bg-2 */ /* Stroke/Border — refined, subtle */ --stroke: rgba(255, 255, 255, 0.06); --stroke-hover: rgba(255, 255, 255, 0.12); --stroke-subtle: rgba(255, 255, 255, 0.04); --border: var(--stroke); --border-hover: var(--stroke-hover); --border-accent: rgba(225, 29, 72, 0.4); /* Text colors */ --text-1: rgba(255, 255, 255, 0.92); /* Primary text */ --text-2: rgba(255, 255, 255, 0.72); /* Secondary text */ --text-3: rgba(255, 255, 255, 0.52); /* Muted text */ --muted: rgba(255, 255, 255, 0.52); /* Alias for muted */ --muted-1: rgba(255, 255, 255, 0.40); --muted-2: rgba(255, 255, 255, 0.25); /* Brand colors - Premium Hot Vibe */ --brand: #E11D48; /* Primary — refined red */ --brand-hover: #F43F5E; --brand-light: #FB7185; --brand-glow: rgba(225, 29, 72, 0.4); --brand-2: #A855F7; /* Secondary — luxury violet */ --brand-2-hover: #C084FC; /* Legacy aliases for compatibility */ --accent: var(--brand); --accent-hover: var(--brand-hover); --accent-2: var(--brand-2); --accent-2-hover: var(--brand-2-hover); /* Semantic colors */ --success: #2EE59D; --success-bg: rgba(46, 229, 157, 0.1); --warning: #FFB347; --warning-bg: rgba(255, 179, 71, 0.1); --error: #FF4D4D; --error-bg: rgba(255, 77, 77, 0.1); --danger: #FF4D4D; /* Alias for error */ --info: #4DA6FF; --info-bg: rgba(77, 166, 255, 0.1); /* Gradients — Premium depth */ --grad-brand: linear-gradient(135deg, #E11D48 0%, #BE123C 50%, #9F1239 100%); --grad-brand-hover: linear-gradient(135deg, #F43F5E 0%, #E11D48 100%); --grad-brand-subtle: linear-gradient(180deg, rgba(225,29,72,0.08) 0%, transparent 100%); --grad-card: linear-gradient(180deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0) 100%); --grad-glow: radial-gradient(ellipse 80% 50% at 50% 0%, rgba(225,29,72,0.12) 0%, transparent 60%); --grad-surface: linear-gradient(180deg, var(--bg-2) 0%, var(--bg-3) 100%); /* ===== TYPOGRAPHY ===== */ /* Font Family - Assistant for all languages */ --font-family: "Assistant", system-ui, -apple-system, "Segoe UI", Arial, sans-serif; --font-ar: var(--font-family); --font-he: var(--font-family); --font-en: var(--font-family); --font-ui: var(--font-family); /* Font Sizes */ --fs-hero: clamp(28px, 4vw, 44px); --fs-h: 18px; --fs-b: 14px; /* Additional sizes for compatibility */ --text-xs: 0.75rem; /* 12px */ --text-sm: 0.8125rem; /* 13px */ --text-base: 14px; /* --fs-b */ --text-md: 1rem; /* 16px */ --text-lg: 18px; /* --fs-h */ --text-xl: 1.25rem; /* 20px */ --text-2xl: 1.5rem; /* 24px */ --text-3xl: 1.875rem; /* 30px */ --text-4xl: 2.25rem; /* 36px */ /* Line Height */ --lh: 1.45; --leading-tight: 1.25; --leading-normal: 1.45; --leading-relaxed: 1.625; /* Font Weights */ --weight-normal: 400; --weight-medium: 500; --weight-semibold: 600; --weight-bold: 700; --weight-extrabold: 800; /* ===== BORDER RADIUS - Premium Rounded ===== */ --r-xs: 8px; --r-sm: 12px; --r-md: 16px; --r-lg: 20px; --r-xl: 24px; --r-2xl: 28px; --r-3xl: 32px; --r-full: 9999px; /* ===== SHADOWS - Premium Depth ===== */ --shadow-1: 0 4px 20px rgba(0, 0, 0, 0.4), 0 0 1px rgba(255,255,255,0.05); --shadow-2: 0 12px 40px rgba(0, 0, 0, 0.5), 0 0 1px rgba(255,255,255,0.06); --shadow-3: 0 24px 64px rgba(0, 0, 0, 0.55); /* Additional shadow levels for compatibility */ --shadow-xs: 0 2px 8px rgba(0, 0, 0, 0.3); --shadow-sm: 0 4px 16px rgba(0, 0, 0, 0.35); --shadow-md: var(--shadow-1); --shadow-lg: var(--shadow-2); --shadow-xl: var(--shadow-3); --shadow-glow: 0 0 40px rgba(225, 29, 72, 0.25); --shadow-glow-brand: 0 0 50px rgba(225, 29, 72, 0.2); --shadow-card-hover: 0 16px 48px rgba(0, 0, 0, 0.5), 0 0 24px rgba(225, 29, 72, 0.08); /* ===== SPACING SCALE ===== */ --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-5: 20px; --space-6: 24px; --space-8: 32px; --space-10: 40px; --space-12: 48px; --space-16: 64px; /* ===== COMPONENT TOKENS ===== */ /* Header — Premium Glass */ --header-height: 60px; --header-height-desktop: 72px; --header-bg: rgba(8, 12, 20, 0.82); --header-bg-solid: #080C14; --header-border: rgba(255, 255, 255, 0.06); --header-blur: 24px; /* Buttons */ --btn-height-sm: 36px; --btn-height: 44px; --btn-height-lg: 52px; /* Inputs */ --input-height: 48px; --input-height-sm: 40px; /* Cards */ --card-padding: var(--space-4); --card-padding-lg: var(--space-6); --card-gap: var(--space-4); /* Chips/Badges */ --chip-height: 28px; --badge-size: 20px; /* ===== LAYOUT ===== */ --container-max: 1280px; --container-padding: var(--space-4); /* Grid */ --grid-gap: var(--space-4); --grid-gap-sm: var(--space-3); /* ===== TRANSITIONS ===== */ --ease-out: cubic-bezier(0.16, 1, 0.3, 1); --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1); --duration-fast: 150ms; --duration-normal: 250ms; --duration-slow: 400ms; /* ===== Z-INDEX SCALE ===== */ --z-base: 1; --z-dropdown: 100; --z-sticky: 200; --z-header: 300; --z-fixed: 300; --z-overlay: 1050; /* Above inline header z-index (1000) */ --z-drawer: 1100; /* Above overlay */ --z-modal: 1200; --z-toast: 1300; --z-tooltip: 1400; } /* ===== RESPONSIVE OVERRIDES ===== */ /* Extra-small devices (<= 420px) — Premium Mobile Scale */ @media (max-width: 420px) { :root { --header-height: 64px; --text-base: 15px; --btn-height: 48px; --btn-height-lg: 56px; --input-height: 52px; --mobile-columns: 1; } } /* Small phones (421px–640px) */ @media (min-width: 421px) and (max-width: 640px) { :root { --mobile-columns: 2; } } /* Small devices (480px+) */ @media (min-width: 480px) { :root { --container-padding: var(--space-5); --grid-gap: var(--space-5); } } /* Tablets (768px+) */ @media (min-width: 768px) { :root { --text-base: 15px; --container-padding: var(--space-6); --card-padding: var(--space-5); } } /* Desktop (1024px+) */ @media (min-width: 1024px) { :root { --header-height: var(--header-height-desktop); --text-base: 16px; --container-padding: var(--space-8); --card-padding: var(--space-6); --grid-gap: var(--space-6); } } /* ===== BASE STYLES ===== */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { font-size: 16px; -webkit-text-size-adjust: 100%; -webkit-tap-highlight-color: transparent; scroll-behavior: smooth; } body { font-family: var(--font-family); font-size: var(--fs-b); line-height: var(--lh); color: var(--text-1); background: var(--bg-1); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; min-height: 100vh; } /* ===== UTILITY CLASSES ===== */ /* Container */ .container { width: 100%; max-width: var(--container-max); margin-inline: auto; padding-inline: var(--container-padding); } /* Card */ .card { background: var(--panel); border: 1px solid var(--stroke); border-radius: var(--r-md); padding: var(--card-padding); box-shadow: var(--shadow-1); transition: border-color var(--duration-fast) var(--ease-out); } .card:hover { border-color: var(--stroke-hover); } /* Button Base */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); height: var(--btn-height); padding: 0 var(--space-5); font-family: var(--font-family); font-size: var(--fs-b); font-weight: var(--weight-semibold); line-height: 1; border: none; border-radius: var(--r-sm); cursor: pointer; transition: all var(--duration-fast) var(--ease-out); text-decoration: none; white-space: nowrap; } .btn:disabled { opacity: 0.5; cursor: not-allowed; } /* Primary Button - Brand gradient */ .btn-primary { background: var(--grad-brand); color: white; box-shadow: var(--shadow-sm); } .btn-primary:hover:not(:disabled) { background: var(--grad-brand-hover); transform: translateY(-1px); box-shadow: var(--shadow-md), var(--shadow-glow); } /* Secondary Button */ .btn-secondary { background: var(--bg-3); color: var(--text-1); border: 1px solid var(--stroke); } .btn-secondary:hover:not(:disabled) { background: var(--panel); border-color: var(--stroke-hover); } /* Ghost Button */ .btn-ghost { background: transparent; color: var(--text-2); } .btn-ghost:hover:not(:disabled) { background: var(--bg-3); color: var(--text-1); } /* Outline Button */ .btn-outline { background: transparent; color: var(--text-1); border: 1px solid var(--stroke); } .btn-outline:hover:not(:disabled) { border-color: var(--brand); color: var(--brand); } /* Brand Outline Button */ .btn-brand-outline { background: transparent; color: var(--brand); border: 1px solid var(--brand); } .btn-brand-outline:hover:not(:disabled) { background: rgba(255, 45, 122, 0.1); } /* Button Sizes */ .btn-sm { height: var(--btn-height-sm); padding: 0 var(--space-3); font-size: var(--text-sm); } .btn-lg { height: var(--btn-height-lg); padding: 0 var(--space-6); font-size: var(--text-lg); } .btn-block { width: 100%; } /* Input Base */ .input, .form-input, input[type="text"], input[type="email"], input[type="tel"], input[type="search"], input[type="password"], input[type="number"], select, textarea { width: 100%; height: var(--input-height); padding: 0 var(--space-4); font-family: var(--font-family); font-size: var(--fs-b); color: var(--text-1); background: var(--panel); border: 1px solid var(--stroke); border-radius: var(--r-sm); transition: all var(--duration-fast) var(--ease-out); outline: none; } .input:hover, .form-input:hover, input:hover, select:hover, textarea:hover { border-color: var(--stroke-hover); } .input:focus, .form-input:focus, input:focus, select:focus, textarea:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(255, 45, 122, 0.15); } .input::placeholder, .form-input::placeholder, input::placeholder, textarea::placeholder { color: var(--muted); } textarea { height: auto; min-height: 100px; padding: var(--space-3) var(--space-4); resize: vertical; } select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.52)' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 40px; cursor: pointer; } [dir="rtl"] select { background-position: left 12px center; padding-right: var(--space-4); padding-left: 40px; } /* Chip/Badge */ .chip { display: inline-flex; align-items: center; height: var(--chip-height); padding: 0 var(--space-3); font-size: var(--text-sm); font-weight: var(--weight-medium); background: var(--bg-3); border-radius: var(--r-full); color: var(--text-2); } .chip-brand { background: rgba(255, 45, 122, 0.15); color: var(--brand); } .badge { display: inline-flex; align-items: center; justify-content: center; min-width: var(--badge-size); height: var(--badge-size); padding: 0 6px; font-size: 11px; font-weight: var(--weight-bold); background: var(--brand); color: white; border-radius: var(--r-full); } /* Text utilities */ .text-brand { color: var(--brand); } .text-brand-2 { color: var(--brand-2); } .text-muted { color: var(--muted); } .text-success { color: var(--success); } .text-error { color: var(--error); } /* Background utilities */ .bg-panel { background: var(--panel); } .bg-0 { background: var(--bg-0); } .bg-1 { background: var(--bg-1); } .bg-2 { background: var(--bg-2); } .bg-3 { background: var(--bg-3); } /* ===== SCROLLBAR ===== */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: var(--bg-2); } ::-webkit-scrollbar-thumb { background: var(--bg-3); border-radius: var(--r-full); } ::-webkit-scrollbar-thumb:hover { background: var(--muted-2); } * { scrollbar-width: thin; scrollbar-color: var(--bg-3) var(--bg-2); } /* ===== SAFE AREA ===== */ @supports (padding: env(safe-area-inset-bottom)) { .safe-bottom { padding-bottom: env(safe-area-inset-bottom); } .safe-top { padding-top: env(safe-area-inset-top); } }