youssefreda9 commited on
Commit
e384bec
·
1 Parent(s): 7e7ca7c

feat: UI/UX Overhaul Phase 1-9 — CSS modernization, RTL arrows, pricing features, confirm dialog, meta SEO, footer links, hero copy, shimmer/glow/glassmorphism

Browse files
Files changed (4) hide show
  1. src/css/base.css +28 -0
  2. src/css/components.css +174 -0
  3. src/css/tokens.css +7 -0
  4. src/index.html +39 -13
src/css/base.css CHANGED
@@ -8,6 +8,7 @@
8
 
9
  html {
10
  font-family: var(--font-family-primary);
 
11
  }
12
 
13
  body {
@@ -23,6 +24,33 @@ body {
23
  text-rendering: optimizeLegibility;
24
  }
25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  /* ── Type scale ── */
27
  .text-display {
28
  font-size: var(--font-size-display);
 
8
 
9
  html {
10
  font-family: var(--font-family-primary);
11
+ scroll-behavior: smooth;
12
  }
13
 
14
  body {
 
24
  text-rendering: optimizeLegibility;
25
  }
26
 
27
+ /* ── Selection highlight ── */
28
+ ::selection {
29
+ background: rgba(107, 163, 224, 0.3);
30
+ color: inherit;
31
+ }
32
+
33
+ /* ── Custom Scrollbar ── */
34
+ ::-webkit-scrollbar {
35
+ width: 6px;
36
+ height: 6px;
37
+ }
38
+ ::-webkit-scrollbar-track {
39
+ background: transparent;
40
+ }
41
+ ::-webkit-scrollbar-thumb {
42
+ background: var(--color-border-strong);
43
+ border-radius: 3px;
44
+ }
45
+ ::-webkit-scrollbar-thumb:hover {
46
+ background: var(--color-text-muted);
47
+ }
48
+ /* Firefox */
49
+ * {
50
+ scrollbar-width: thin;
51
+ scrollbar-color: var(--color-border-strong) transparent;
52
+ }
53
+
54
  /* ── Type scale ── */
55
  .text-display {
56
  font-size: var(--font-size-display);
src/css/components.css CHANGED
@@ -3208,3 +3208,177 @@ input[type="range"]::-moz-range-thumb {
3208
  font-size: 20px;
3209
  }
3210
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3208
  font-size: 20px;
3209
  }
3210
  }
3211
+
3212
+ /* ═══════════════════════════════════════════
3213
+ UI/UX Overhaul — New Components
3214
+ ═══════════════════════════════════════════ */
3215
+
3216
+ /* ── Enhanced Nav Glassmorphism ── */
3217
+ .site-nav {
3218
+ backdrop-filter: blur(16px) saturate(180%);
3219
+ -webkit-backdrop-filter: blur(16px) saturate(180%);
3220
+ }
3221
+
3222
+ /* ── Card hover glow ── */
3223
+ .card-hover {
3224
+ transition: transform var(--transition-base), box-shadow var(--transition-base);
3225
+ }
3226
+ .card-hover:hover {
3227
+ transform: translateY(-3px);
3228
+ box-shadow: var(--shadow-glow);
3229
+ }
3230
+
3231
+ /* ── Empty State Component ── */
3232
+ .empty-state {
3233
+ display: flex;
3234
+ flex-direction: column;
3235
+ align-items: center;
3236
+ justify-content: center;
3237
+ padding: 2.5rem 1.5rem;
3238
+ text-align: center;
3239
+ gap: 0.75rem;
3240
+ }
3241
+ .empty-state__icon {
3242
+ width: 48px;
3243
+ height: 48px;
3244
+ border-radius: var(--radius-lg);
3245
+ display: flex;
3246
+ align-items: center;
3247
+ justify-content: center;
3248
+ background: var(--color-primary-subtle-bg);
3249
+ color: var(--color-primary);
3250
+ margin-bottom: 0.25rem;
3251
+ }
3252
+ .empty-state__title {
3253
+ font-size: var(--font-size-body);
3254
+ font-weight: var(--font-weight-semibold);
3255
+ color: var(--color-text-primary);
3256
+ }
3257
+ .empty-state__subtitle {
3258
+ font-size: var(--font-size-caption);
3259
+ color: var(--color-text-secondary);
3260
+ max-width: 280px;
3261
+ line-height: 1.6;
3262
+ }
3263
+
3264
+ /* ── Confirmation Dialog ── */
3265
+ .confirm-dialog-overlay {
3266
+ position: fixed;
3267
+ inset: 0;
3268
+ background: var(--color-overlay);
3269
+ z-index: 9999;
3270
+ display: flex;
3271
+ align-items: center;
3272
+ justify-content: center;
3273
+ animation: fadeIn 0.15s ease-out;
3274
+ }
3275
+ .confirm-dialog {
3276
+ background: var(--color-surface);
3277
+ border: 1px solid var(--color-border-strong);
3278
+ border-radius: var(--radius-xl);
3279
+ padding: 2rem;
3280
+ max-width: 380px;
3281
+ width: 90%;
3282
+ box-shadow: var(--shadow-popover);
3283
+ text-align: center;
3284
+ animation: modalSlideUp 0.25s ease-out;
3285
+ }
3286
+ .confirm-dialog__title {
3287
+ font-size: 1.125rem;
3288
+ font-weight: var(--font-weight-bold);
3289
+ margin-bottom: 0.5rem;
3290
+ }
3291
+ .confirm-dialog__message {
3292
+ font-size: var(--font-size-caption);
3293
+ color: var(--color-text-secondary);
3294
+ margin-bottom: 1.5rem;
3295
+ line-height: 1.7;
3296
+ }
3297
+ .confirm-dialog__actions {
3298
+ display: flex;
3299
+ gap: 0.75rem;
3300
+ justify-content: center;
3301
+ }
3302
+ .confirm-dialog__btn {
3303
+ padding: 0.6rem 1.5rem;
3304
+ border-radius: var(--radius-md);
3305
+ font-size: var(--font-size-caption);
3306
+ font-weight: var(--font-weight-semibold);
3307
+ cursor: pointer;
3308
+ border: 1px solid var(--color-border-strong);
3309
+ background: var(--color-surface-elevated);
3310
+ color: var(--color-text-primary);
3311
+ transition: all var(--transition-fast);
3312
+ font-family: inherit;
3313
+ }
3314
+ .confirm-dialog__btn:hover {
3315
+ background: var(--color-border);
3316
+ }
3317
+ .confirm-dialog__btn--danger {
3318
+ background: var(--color-error);
3319
+ color: white;
3320
+ border-color: transparent;
3321
+ }
3322
+ .confirm-dialog__btn--danger:hover {
3323
+ opacity: 0.9;
3324
+ }
3325
+
3326
+ /* ── Modal entrance animation ── */
3327
+ @keyframes modalSlideUp {
3328
+ from { opacity: 0; transform: translateY(16px) scale(0.97); }
3329
+ to { opacity: 1; transform: translateY(0) scale(1); }
3330
+ }
3331
+ .quran-modal-panel,
3332
+ .auth-gate-panel,
3333
+ .confirm-dialog {
3334
+ animation: modalSlideUp 0.25s ease-out;
3335
+ }
3336
+
3337
+ /* ── Toast with icons ── */
3338
+ .toast--success::before { content: '✓ '; }
3339
+ .toast--error::before { content: '✕ '; }
3340
+ .toast--warning::before { content: '⚠ '; }
3341
+
3342
+ /* ── Pricing card glow (active plan) ── */
3343
+ .pricing-glow {
3344
+ position: relative;
3345
+ }
3346
+ .pricing-glow::before {
3347
+ content: '';
3348
+ position: absolute;
3349
+ inset: -2px;
3350
+ border-radius: inherit;
3351
+ background: linear-gradient(135deg, var(--color-primary), var(--color-secondary));
3352
+ z-index: -1;
3353
+ opacity: 0.5;
3354
+ filter: blur(12px);
3355
+ animation: pricingPulse 3s ease-in-out infinite;
3356
+ }
3357
+ @keyframes pricingPulse {
3358
+ 0%, 100% { opacity: 0.3; }
3359
+ 50% { opacity: 0.6; }
3360
+ }
3361
+
3362
+ /* ── Beta banner shimmer ── */
3363
+ @keyframes betaShimmer {
3364
+ 0% { background-position: -200% center; }
3365
+ 100% { background-position: 200% center; }
3366
+ }
3367
+ .beta-shimmer {
3368
+ background-size: 200% auto;
3369
+ background-image: linear-gradient(90deg,
3370
+ transparent 0%,
3371
+ rgba(107, 163, 224, 0.06) 40%,
3372
+ rgba(165, 148, 232, 0.08) 60%,
3373
+ transparent 100%
3374
+ );
3375
+ animation: betaShimmer 4s linear infinite;
3376
+ }
3377
+
3378
+ /* ── Disabled button state ── */
3379
+ button:disabled,
3380
+ button[disabled] {
3381
+ opacity: 0.55;
3382
+ cursor: not-allowed;
3383
+ filter: grayscale(0.3);
3384
+ }
src/css/tokens.css CHANGED
@@ -30,15 +30,18 @@
30
  --spacing-md: 1rem;
31
  --spacing-lg: 1.5rem;
32
  --spacing-xl: 2rem;
 
33
 
34
  --radius-sm: 0.5rem;
35
  --radius-md: 0.75rem;
36
  --radius-lg: 1rem;
 
37
  --radius-card: 1rem;
38
 
39
  --transition-fast: 0.15s ease;
40
  --transition-base: 0.2s ease;
41
  --transition-slow: 0.3s ease;
 
42
  }
43
 
44
  /* ── Dark Theme — soft charcoal, easy on eyes ── */
@@ -70,9 +73,11 @@
70
 
71
  --focus-ring: rgba(107, 163, 224, 0.42);
72
 
 
73
  --shadow-card: 0 8px 24px rgba(0, 0, 0, 0.28);
74
  --shadow-popover: 0 16px 40px rgba(0, 0, 0, 0.38);
75
  --shadow-editor: 0 2px 16px rgba(0, 0, 0, 0.2);
 
76
 
77
  --color-overlay: rgba(8, 10, 14, 0.62);
78
 
@@ -133,9 +138,11 @@
133
 
134
  --focus-ring: rgba(43, 108, 184, 0.32);
135
 
 
136
  --shadow-card: 0 6px 20px rgba(26, 29, 33, 0.07);
137
  --shadow-popover: 0 14px 36px rgba(26, 29, 33, 0.11);
138
  --shadow-editor: 0 1px 8px rgba(26, 29, 33, 0.05);
 
139
 
140
  --color-overlay: rgba(26, 29, 33, 0.38);
141
 
 
30
  --spacing-md: 1rem;
31
  --spacing-lg: 1.5rem;
32
  --spacing-xl: 2rem;
33
+ --spacing-section: 6rem;
34
 
35
  --radius-sm: 0.5rem;
36
  --radius-md: 0.75rem;
37
  --radius-lg: 1rem;
38
+ --radius-xl: 1.5rem;
39
  --radius-card: 1rem;
40
 
41
  --transition-fast: 0.15s ease;
42
  --transition-base: 0.2s ease;
43
  --transition-slow: 0.3s ease;
44
+ --transition-spring: 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
45
  }
46
 
47
  /* ── Dark Theme — soft charcoal, easy on eyes ── */
 
73
 
74
  --focus-ring: rgba(107, 163, 224, 0.42);
75
 
76
+ --shadow-xs: 0 1px 3px rgba(0, 0, 0, 0.16);
77
  --shadow-card: 0 8px 24px rgba(0, 0, 0, 0.28);
78
  --shadow-popover: 0 16px 40px rgba(0, 0, 0, 0.38);
79
  --shadow-editor: 0 2px 16px rgba(0, 0, 0, 0.2);
80
+ --shadow-glow: 0 0 20px rgba(107, 163, 224, 0.15);
81
 
82
  --color-overlay: rgba(8, 10, 14, 0.62);
83
 
 
138
 
139
  --focus-ring: rgba(43, 108, 184, 0.32);
140
 
141
+ --shadow-xs: 0 1px 3px rgba(26, 29, 33, 0.05);
142
  --shadow-card: 0 6px 20px rgba(26, 29, 33, 0.07);
143
  --shadow-popover: 0 14px 36px rgba(26, 29, 33, 0.11);
144
  --shadow-editor: 0 1px 8px rgba(26, 29, 33, 0.05);
145
+ --shadow-glow: 0 0 20px rgba(43, 108, 184, 0.1);
146
 
147
  --color-overlay: rgba(26, 29, 33, 0.38);
148
 
src/index.html CHANGED
@@ -6,7 +6,7 @@
6
  <meta name="supabase-url" content="">
7
  <meta name="supabase-anon-key" content="">
8
  <title>بيان - مساعد الكتابة العربية الذكي</title>
9
- <meta name="description" content="بيان — منصة ذكاء اصطناعي متكاملة لتصحيح الإملاء والنحو والترقيم وتلخيص النصوص والإكمال التلقائي — مصمّمة خصيصًا للغة العربية. جرّبه مجاناً!">
10
  <link rel="icon" type="image/svg+xml" href="/favicon.svg">
11
  <script src="https://cdn.tailwindcss.com"></script>
12
  <link rel="preconnect" href="https://fonts.googleapis.com">
@@ -162,8 +162,8 @@
162
  <div class="text-center lg:text-right animate-fade-in">
163
 
164
  <h1 id="hero-headline" class="text-5xl lg:text-7xl font-bold leading-tight mb-6" style="line-height: 1.4;">اكتب العربية<br><span class="text-gradient">بثقة واحتراف</span></h1>
165
- <p id="hero-subheadline" class="text-xl lg:text-2xl leading-relaxed mb-10" style="color: var(--text-secondary); line-height: 1.9;">منصة ذكاء اصطناعي متكاملة لتصحيح الإملاء والنحو والترقيم وتلخيص النصوص والإكمال التلقائيمصمّمة خصيصًا للغة العربية.</p>
166
- <div class="flex flex-col sm:flex-row gap-4 justify-center lg:justify-start mb-12"><button id="hero-cta-primary" onclick="showPage('editor')" class="px-8 py-4 rounded-2xl text-lg font-bold text-white gradient-accent transition-all hover:scale-105 hover:shadow-2xl">ابدأ الكتابة مجانًا</button> <button onclick="showPage('features')" class="px-8 py-4 rounded-2xl text-lg font-bold transition-all hover:scale-105 border-2" style="border-color: rgba(255, 255, 255, 0.35); color: var(--text-color); box-shadow: 0 0 20px rgba(107, 163, 224, 0.12);">اكتشف الميزات</button>
167
  </div><!-- Stats -->
168
  <div class="flex items-center gap-8 justify-center lg:justify-start">
169
  <div class="text-center">
@@ -307,7 +307,7 @@
307
  <p class="text-sm leading-relaxed" style="color: var(--text-secondary); line-height: 1.8;">بوابتك للقرآن والتفسير والسنة والمصادر السردية الموثقة</p>
308
  </div>
309
  </div>
310
- <div class="text-center mt-12"><button onclick="showPage('features')" class="px-8 py-4 rounded-2xl text-lg font-bold border-2 transition-all hover:scale-105" style="border-color: var(--primary-color); color: var(--primary-color);">شاهد جميع الميزات</button>
311
  </div>
312
  </div>
313
  </section>
@@ -348,7 +348,7 @@
348
  </div>
349
  </div>
350
  <div class="text-center mt-12">
351
- <button onclick="showPage('editor')" class="px-8 py-4 rounded-2xl text-lg font-bold text-white gradient-accent transition-all hover:scale-105 hover:shadow-2xl">جرّب المحرر الآن</button>
352
  </div>
353
  </div>
354
  </section>
@@ -679,9 +679,9 @@
679
  </div>
680
  <span id="auto-save-status" class="text-xs text-secondary" style="opacity:0;transition:opacity 0.3s;"></span>
681
  <div class="window-dots" aria-hidden="true">
682
- <span class="dot dot--red" title="إغلاق المستند" onclick="if(confirm('إغلاق المستند الحالي؟')){document.getElementById('editor-surface').innerHTML='';if(typeof updatePlaceholder==='function')updatePlaceholder();if(typeof updateEditorStats==='function')updateEditorStats()}" style="cursor:pointer;"></span>
683
- <span class="dot dot--yellow" title="طي الاقتراحات" onclick="document.querySelector('.sidebar-desktop')?.classList.toggle('collapsed')" style="cursor:pointer;"></span>
684
- <span class="dot dot--green" title="توسيع المحرر" onclick="document.querySelector('.editor-layout')?.classList.toggle('editor-fullscreen')" style="cursor:pointer;"></span>
685
  </div>
686
  </div>
687
  </div>
@@ -980,7 +980,7 @@
980
  <p class="text-xl max-w-3xl mx-auto" style="color: var(--text-secondary); line-height: 1.9;">جميع الميزات متاحة مجانًا خلال الإصدار التجريبي. الخطط المدفوعة قادمة قريبًا.</p>
981
  </div>
982
  <!-- Beta Banner -->
983
- <div class="text-center mb-12 p-6 rounded-2xl" style="background: linear-gradient(135deg, rgba(107, 163, 224, 0.1), rgba(165, 148, 232, 0.1)); border: 1px solid rgba(107, 163, 224, 0.2);">
984
  <div class="flex items-center justify-center gap-2 mb-2">
985
  <span class="text-sm font-bold px-3 py-1 rounded-full text-white gradient-accent">BETA</span>
986
  <span class="text-lg font-bold">الإصدار التجريبي — مجاني بالكامل</span>
@@ -988,7 +988,7 @@
988
  <p class="text-base" style="color: var(--text-secondary);">استمتع بجميع ميزات بيان بدون أي قيود أثناء فترة التطوير</p>
989
  </div>
990
  <div class="grid md:grid-cols-3 gap-8 max-w-6xl mx-auto"><!-- Current: Beta Free -->
991
- <div class="p-8 rounded-3xl transition-all hover:scale-105 relative shadow-2xl" style="background: linear-gradient(165deg, var(--surface-color) 0%, rgba(59, 130, 246, 0.1) 100%); border: 2px solid var(--primary-color);">
992
  <div class="pricing-badge gradient-accent text-white">
993
  متاح الآن
994
  </div>
@@ -1011,9 +1011,13 @@
1011
  <svg class="w-5 h-5" style="color: #22c55e;" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" /></svg><span class="text-base">الإكمال التلقائي الذكي</span></li>
1012
  <li class="flex items-center gap-3">
1013
  <svg class="w-5 h-5" style="color: #22c55e;" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" /></svg><span class="text-base">تصدير PDF و Word</span></li>
 
 
 
 
1014
  <li class="flex items-center gap-3">
1015
  <svg class="w-5 h-5" style="color: #22c55e;" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" /></svg><span class="text-base">كلمات غير محدود��</span></li>
1016
- </ul><button onclick="showPage('editor')" class="w-full py-4 rounded-2xl text-lg font-bold text-white gradient-accent transition-all hover:scale-105 hover:shadow-2xl">ابدأ الكتابة مجانًا</button>
1017
  </div><!-- Future: Pro Plan -->
1018
  <div class="p-8 rounded-3xl transition-all hover:scale-105 relative" style="background: var(--surface-color); border: 1px solid rgba(255, 255, 255, 0.08); opacity: 0.7;">
1019
  <div class="pricing-badge" style="background: var(--color-surface-elevated); color: var(--color-text-secondary);">
@@ -1077,7 +1081,7 @@
1077
  <div class="text-8xl font-bold text-gradient mb-6">٤٠٤</div>
1078
  <h2 class="text-3xl font-bold mb-4">الصفحة غير موجودة</h2>
1079
  <p class="text-lg mb-8" style="color: var(--text-secondary);">يبدو أن الصفحة التي تبحث عنها غير متاحة.</p>
1080
- <button onclick="showPage('home')" class="px-8 py-4 rounded-2xl text-lg font-bold text-white gradient-accent transition-all hover:scale-105">العودة للرئيسية</button>
1081
  </div>
1082
  </section>
1083
  </div><!-- Footer -->
@@ -1088,7 +1092,7 @@
1088
  <div class="flex items-center gap-3 mb-4">
1089
  <svg width="24" height="24" fill="none" stroke="url(#grad1)" viewBox="0 0 24 24" style="flex-shrink:0;"><defs><linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" style="stop-color:var(--color-primary)"/><stop offset="100%" style="stop-color:var(--color-secondary)"/></linearGradient></defs><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"/></svg><span id="footer-brand" class="text-2xl font-bold text-gradient">بيان</span>
1090
  </div>
1091
- <p class="text-sm leading-relaxed" style="color: var(--text-secondary); line-height: 1.8;">منصة ذكاء اصطناعي للكتابة العربية — تدقيق إملائي ونحوي، ترقيم، تلخيص، وإكمال تلقائي ذكي.</p>
1092
  </div>
1093
  <div>
1094
  <h4 class="text-base font-bold mb-4">المنتج</h4>
@@ -1133,6 +1137,28 @@
1133
  }, duration);
1134
  }
1135
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1136
  // Scroll to top
1137
  (function() {
1138
  const btn = document.getElementById('scroll-top-btn');
 
6
  <meta name="supabase-url" content="">
7
  <meta name="supabase-anon-key" content="">
8
  <title>بيان - مساعد الكتابة العربية الذكي</title>
9
+ <meta name="description" content="بيان — منصة ذكاء اصطناعي متكاملة لتصحيح الإملاء والنحو والترقيم وتلخيص النصوص والإكمال التلقائي وتدقيق القرآن الكريم وتحويل اللهجات — مصمّمة خصيصًا للغة العربية. جرّبه مجاناً!">
10
  <link rel="icon" type="image/svg+xml" href="/favicon.svg">
11
  <script src="https://cdn.tailwindcss.com"></script>
12
  <link rel="preconnect" href="https://fonts.googleapis.com">
 
162
  <div class="text-center lg:text-right animate-fade-in">
163
 
164
  <h1 id="hero-headline" class="text-5xl lg:text-7xl font-bold leading-tight mb-6" style="line-height: 1.4;">اكتب العربية<br><span class="text-gradient">بثقة واحتراف</span></h1>
165
+ <p id="hero-subheadline" class="text-xl lg:text-2xl leading-relaxed mb-10" style="color: var(--text-secondary); line-height: 1.9;">تدقيق إملائي ونحوي وترقيم، تلخيص ذكي، إكمال تلقائي، تدقيق القرآن الكريم، وتحويل اللهجاتكل ذلك بالذكاء الاصطناعي، وباللغة العربية.</p>
166
+ <div class="flex flex-col sm:flex-row gap-4 justify-center lg:justify-start mb-12"><button id="hero-cta-primary" onclick="showPage('editor')" class="px-8 py-4 rounded-2xl text-lg font-bold text-white gradient-accent transition-all hover:scale-105 hover:shadow-2xl">ابدأ الكتابة مجانًا</button> <button onclick="showPage('features')" class="px-8 py-4 rounded-2xl text-lg font-bold transition-all hover:scale-105 border-2" style="border-color: rgba(255, 255, 255, 0.35); color: var(--text-color); box-shadow: 0 0 20px rgba(107, 163, 224, 0.12);">اكتشف الميزات</button>
167
  </div><!-- Stats -->
168
  <div class="flex items-center gap-8 justify-center lg:justify-start">
169
  <div class="text-center">
 
307
  <p class="text-sm leading-relaxed" style="color: var(--text-secondary); line-height: 1.8;">بوابتك للقرآن والتفسير والسنة والمصادر السردية الموثقة</p>
308
  </div>
309
  </div>
310
+ <div class="text-center mt-12"><button onclick="showPage('features')" class="px-8 py-4 rounded-2xl text-lg font-bold border-2 transition-all hover:scale-105" style="border-color: var(--primary-color); color: var(--primary-color);">اكتشف جميع الميزات</button>
311
  </div>
312
  </div>
313
  </section>
 
348
  </div>
349
  </div>
350
  <div class="text-center mt-12">
351
+ <button onclick="showPage('editor')" class="px-8 py-4 rounded-2xl text-lg font-bold text-white gradient-accent transition-all hover:scale-105 hover:shadow-2xl">جرّب المحرر الآن</button>
352
  </div>
353
  </div>
354
  </section>
 
679
  </div>
680
  <span id="auto-save-status" class="text-xs text-secondary" style="opacity:0;transition:opacity 0.3s;"></span>
681
  <div class="window-dots" aria-hidden="true">
682
+ <span class="dot dot--red" title="مسح المحرر" onclick="showConfirmDialog('مسح المحرر','هل تريد مسح جميع محتويات المحرر؟ لا يمكن التراجع عن هذا.',function(){document.getElementById('editor-surface').innerHTML='';if(typeof updatePlaceholder==='function')updatePlaceholder();if(typeof updateEditorStats==='function')updateEditorStats()})" style="cursor:pointer;"></span>
683
+ <span class="dot dot--yellow" title="طي لوحة الاقتراحات" onclick="document.querySelector('.sidebar-desktop')?.classList.toggle('collapsed')" style="cursor:pointer;"></span>
684
+ <span class="dot dot--green" title="توسيع المحرر للعرض الكامل" onclick="document.querySelector('.editor-layout')?.classList.toggle('editor-fullscreen')" style="cursor:pointer;"></span>
685
  </div>
686
  </div>
687
  </div>
 
980
  <p class="text-xl max-w-3xl mx-auto" style="color: var(--text-secondary); line-height: 1.9;">جميع الميزات متاحة مجانًا خلال الإصدار التجريبي. الخطط المدفوعة قادمة قريبًا.</p>
981
  </div>
982
  <!-- Beta Banner -->
983
+ <div class="text-center mb-12 p-6 rounded-2xl beta-shimmer" style="background: linear-gradient(135deg, rgba(107, 163, 224, 0.1), rgba(165, 148, 232, 0.1)); border: 1px solid rgba(107, 163, 224, 0.2);">
984
  <div class="flex items-center justify-center gap-2 mb-2">
985
  <span class="text-sm font-bold px-3 py-1 rounded-full text-white gradient-accent">BETA</span>
986
  <span class="text-lg font-bold">الإصدار التجريبي — مجاني بالكامل</span>
 
988
  <p class="text-base" style="color: var(--text-secondary);">استمتع بجميع ميزات بيان بدون أي قيود أثناء فترة التطوير</p>
989
  </div>
990
  <div class="grid md:grid-cols-3 gap-8 max-w-6xl mx-auto"><!-- Current: Beta Free -->
991
+ <div class="p-8 rounded-3xl transition-all hover:scale-105 relative shadow-2xl pricing-glow" style="background: linear-gradient(165deg, var(--surface-color) 0%, rgba(59, 130, 246, 0.1) 100%); border: 2px solid var(--primary-color);">
992
  <div class="pricing-badge gradient-accent text-white">
993
  متاح الآن
994
  </div>
 
1011
  <svg class="w-5 h-5" style="color: #22c55e;" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" /></svg><span class="text-base">الإكمال التلقائي الذكي</span></li>
1012
  <li class="flex items-center gap-3">
1013
  <svg class="w-5 h-5" style="color: #22c55e;" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" /></svg><span class="text-base">تصدير PDF و Word</span></li>
1014
+ <li class="flex items-center gap-3">
1015
+ <svg class="w-5 h-5" style="color: #22c55e;" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" /></svg><span class="text-base">تدقيق النص القرآني + ترجمة</span></li>
1016
+ <li class="flex items-center gap-3">
1017
+ <svg class="w-5 h-5" style="color: #22c55e;" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" /></svg><span class="text-base">تحويل اللهجات إلى الفصحى</span></li>
1018
  <li class="flex items-center gap-3">
1019
  <svg class="w-5 h-5" style="color: #22c55e;" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" /></svg><span class="text-base">كلمات غير محدود��</span></li>
1020
+ </ul><button onclick="showPage('editor')" class="w-full py-4 rounded-2xl text-lg font-bold text-white gradient-accent transition-all hover:scale-105 hover:shadow-2xl">ابدأ الكتابة مجانًا</button>
1021
  </div><!-- Future: Pro Plan -->
1022
  <div class="p-8 rounded-3xl transition-all hover:scale-105 relative" style="background: var(--surface-color); border: 1px solid rgba(255, 255, 255, 0.08); opacity: 0.7;">
1023
  <div class="pricing-badge" style="background: var(--color-surface-elevated); color: var(--color-text-secondary);">
 
1081
  <div class="text-8xl font-bold text-gradient mb-6">٤٠٤</div>
1082
  <h2 class="text-3xl font-bold mb-4">الصفحة غير موجودة</h2>
1083
  <p class="text-lg mb-8" style="color: var(--text-secondary);">يبدو أن الصفحة التي تبحث عنها غير متاحة.</p>
1084
+ <button onclick="showPage('home')" class="px-8 py-4 rounded-2xl text-lg font-bold text-white gradient-accent transition-all hover:scale-105">العودة للرئيسية</button>
1085
  </div>
1086
  </section>
1087
  </div><!-- Footer -->
 
1092
  <div class="flex items-center gap-3 mb-4">
1093
  <svg width="24" height="24" fill="none" stroke="url(#grad1)" viewBox="0 0 24 24" style="flex-shrink:0;"><defs><linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" style="stop-color:var(--color-primary)"/><stop offset="100%" style="stop-color:var(--color-secondary)"/></linearGradient></defs><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"/></svg><span id="footer-brand" class="text-2xl font-bold text-gradient">بيان</span>
1094
  </div>
1095
+ <p class="text-sm leading-relaxed" style="color: var(--text-secondary); line-height: 1.8;">منصة ذكاء اصطناعي للكتابة العربية — تدقيق إملائي ونحوي، ترقيم، تلخيص، إكمال تلقائي، تدقيق القرآن، وتحويل اللهجات.</p>
1096
  </div>
1097
  <div>
1098
  <h4 class="text-base font-bold mb-4">المنتج</h4>
 
1137
  }, duration);
1138
  }
1139
 
1140
+ // Custom confirmation dialog (replaces window.confirm)
1141
+ function showConfirmDialog(title, message, onConfirm) {
1142
+ var overlay = document.createElement('div');
1143
+ overlay.className = 'confirm-dialog-overlay';
1144
+ overlay.innerHTML =
1145
+ '<div class="confirm-dialog" dir="rtl">' +
1146
+ '<div class="confirm-dialog__title">' + title + '</div>' +
1147
+ '<div class="confirm-dialog__message">' + message + '</div>' +
1148
+ '<div class="confirm-dialog__actions">' +
1149
+ '<button class="confirm-dialog__btn" id="confirm-cancel">\u0625\u0644\u063a\u0627\u0621</button>' +
1150
+ '<button class="confirm-dialog__btn confirm-dialog__btn--danger" id="confirm-ok">\u062a\u0623\u0643\u064a\u062f</button>' +
1151
+ '</div>' +
1152
+ '</div>';
1153
+ document.body.appendChild(overlay);
1154
+ overlay.querySelector('#confirm-cancel').onclick = function() { overlay.remove(); };
1155
+ overlay.querySelector('#confirm-ok').onclick = function() { overlay.remove(); if (onConfirm) onConfirm(); };
1156
+ overlay.addEventListener('click', function(e) { if (e.target === overlay) overlay.remove(); });
1157
+ document.addEventListener('keydown', function _esc(e) {
1158
+ if (e.key === 'Escape') { overlay.remove(); document.removeEventListener('keydown', _esc); }
1159
+ });
1160
+ }
1161
+
1162
  // Scroll to top
1163
  (function() {
1164
  const btn = document.getElementById('scroll-top-btn');