File size: 11,016 Bytes
27af14d
53398ed
1b0a6d9
53398ed
 
 
 
d7a267f
53398ed
d7a267f
 
 
53398ed
 
f29f422
d7a267f
 
53398ed
 
 
d7a267f
53398ed
d7a267f
53398ed
 
accab65
 
27af14d
 
 
 
53398ed
 
 
d7a267f
53398ed
accab65
 
1b0a6d9
27af14d
 
53398ed
27af14d
53398ed
27af14d
 
 
 
53398ed
27af14d
53398ed
accab65
 
53398ed
27af14d
 
 
 
accab65
53398ed
27af14d
53398ed
accab65
 
d7a267f
accab65
d7a267f
f29f422
 
accab65
53398ed
 
27af14d
 
 
accab65
 
53398ed
d7a267f
accab65
 
27af14d
 
 
 
 
 
53398ed
 
 
 
accab65
 
 
 
27af14d
 
 
 
 
 
 
53398ed
 
 
27af14d
 
 
 
 
 
 
accab65
27af14d
53398ed
d7a267f
 
 
53398ed
 
accab65
 
53398ed
 
 
 
27af14d
 
 
 
 
 
 
 
 
 
 
 
53398ed
 
 
accab65
 
53398ed
 
 
27af14d
53398ed
 
 
 
 
1b0a6d9
27af14d
 
 
 
 
 
1b0a6d9
27af14d
1b0a6d9
 
 
 
 
accab65
 
1b0a6d9
 
 
 
 
d7a267f
2599641
1b0a6d9
 
 
 
 
 
27af14d
 
1b0a6d9
27af14d
 
1b0a6d9
27af14d
 
 
 
d7a267f
1b0a6d9
 
accab65
27af14d
 
 
accab65
 
1b0a6d9
 
 
accab65
 
1b0a6d9
 
 
 
27af14d
1b0a6d9
 
27af14d
 
 
 
 
d7a267f
27af14d
 
 
 
1b0a6d9
 
27af14d
1b0a6d9
 
27af14d
 
 
 
1b0a6d9
 
 
 
 
 
 
 
 
 
 
2599641
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
// src/App.scss (نسخه نهایی با همه اصلاحات ظاهری و راست‌چین)

// 1. Import Tailwind's base, components, and utilities
@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';

// 2. Define CSS Variables (تم روشن به عنوان پیش‌فرض)
:root {
    --radius: 0.625rem; --radius-md: 0.5rem;
    --background: oklch(1 0 0); --foreground: oklch(0.145 0 0);
    --popover: oklch(1 0 0); --popover-foreground: oklch(0.145 0 0);
    --border: oklch(0.922 0 0);
}
.dark {
    --background: oklch(0.145 0 0); --foreground: oklch(0.985 0 0);
    --popover: oklch(0.205 0 0); --popover-foreground: oklch(0.985 0 0);
    --border: oklch(1 0 0 / 10%);
}

// 3. Apply base styles
@layer base {
    * { border-color: theme('colors.custom-border'); box-sizing: border-box; }
    body {
        @apply bg-custom-background text-custom-foreground;
        font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
        margin: 0; padding: 0;
        /* --- START: تغییرات برای راست‌چین شدن کل صفحه --- */
        direction: rtl; 
        text-align: right;
        /* --- END: تغییرات برای راست‌چین شدن کل صفحه --- */
    }
}

/* --- استایل‌های چیدمان و عناصر --- */
.loading-screen {
  display: flex; align-items: center; justify-content: center;
  height: 100vh; font-size: 1.2rem;
  color: theme('colors.custom-foreground');
  direction: rtl; /* اطمینان از راست‌چین بودن لودینگ اسکرین */
  text-align: center;
}

.main-wrapper {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  position: relative;
}

.header-controls {
    display: flex; padding: 0.75rem 1rem; justify-content: space-between; align-items: center;
    width: 100%; position: absolute; top: 0; left: 0; z-index: 50;
    pointer-events: none;
    /* --- START: تغییر برای راست‌چین شدن دکمه‌های هدر --- */
    flex-direction: row-reverse; /* برای چینش دکمه‌ها در هدر */
    /* --- END: تغییر برای راست‌چین شدن دکمه‌های هدر --- */

    > div, > button { pointer-events: auto; }
}

.header-icon-button {
    display: flex; align-items: center; justify-content: center; padding: 0.5rem;
    width: 44px; height: 44px; border-radius: 9999px;
    background-color: transparent; border: none; backdrop-filter: none;
    cursor: pointer; transition: all 0.2s ease-out;
    .material-symbols-outlined { opacity: 0.8; color: #374151; font-size: 28px; }
    .dark & .material-symbols-outlined { color: oklch(0.95 0 0); }
    &:hover { background-color: rgba(0, 0, 0, 0.05); }
    &:active { transform: scale(0.95); }
}

/* استایل نوتیفیکیشن و منوی شخصیت */
.notification-popover-wrapper, .personality-popover-wrapper {
  position: absolute; z-index: 100; opacity: 0; pointer-events: none;
  transform: translateY(-10px) scale(0.95); transition: all 150ms ease-in-out;
  &.open { opacity: 1; pointer-events: auto; transform: translateY(0) scale(1); }
  .popover-content {
    background: theme('colors.custom-popover'); backdrop-filter: blur(10px);
    border-radius: 12px; padding: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.2);
    border: 1px solid theme('colors.custom-border');
    color: theme('colors.custom-popover-foreground'); font-size: 14px;
    /* --- START: تغییرات برای راست‌چین شدن پاپ‌اورها --- */
    direction: rtl;
    text-align: right;
    /* --- END: تغییرات برای راست‌چین شدن پاپ‌اورها --- */
    
    ul { list-style: none; padding: 0; margin: 0; width: 220px; }
    li {
      display: flex; align-items: center; justify-content: space-between;
      padding: 10px 12px; border-radius: 8px; cursor: pointer; transition: background-color 150ms ease;
      &:hover { background-color: rgba(0, 0, 0, 0.05); }
      .dark &:hover { background-color: #3a3a3c; }
      &.active { color: #0a84ff; font-weight: 500; }
      .dark &.active { color: #fff; }
      div { 
        display: flex; align-items: center; gap: 12px; 
        /* --- START: چینش آیکون و متن در لیست آیتم‌ها --- */
        flex-direction: row-reverse; 
        /* --- END: چینش آیکون و متن در لیست آیتم‌ها --- */
      }
      .material-symbols-outlined { font-size: 22px; &.tick { color: #34c759; } }
    }
  }
}
.notification-popover-wrapper {
    top: calc(1rem + 44px + 8px); right: 1rem; /* ✅ تغییر جهت به راست */
    .popover-content { padding: 12px 16px; width: 280px; }
}
.personality-popover-wrapper {
    top: calc(1rem + 44px + 8px); left: 1rem; /* ✅ تغییر جهت به چپ (ثابت ماند) */
}

/* استایل ویدیو و کنترل‌ها (این بخش‌ها به طور پیش‌فرض RTL را از body ارث می‌برند) */
.media-area {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    z-index: 1; overflow: hidden;
    video#video-feed { width: 100%; height: 100%; object-fit: cover; }
}
#large-logo-container {
    display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;
    position: absolute; top: 0; left: 0; pointer-events: none;
}
.footer-controls-html-like {
    width: 100%; display: flex; align-items: center; position: absolute;
    bottom: 2rem; padding: 0.5rem 2.5rem; box-sizing: border-box; z-index: 20; justify-content: space-between;
    /* --- START: چینش دکمه‌ها در فوتر --- */
    flex-direction: row-reverse;
    /* --- END: چینش دکمه‌ها در فوتر --- */
}
.small-logo-footer-html-like {
    position: absolute; /* ✅ نیاز به اصلاح: این باید برای RTL درست شود */
    left: auto; /* لغو left */
    right: 50%; /* راست به جای چپ */
    transform: translate(50%, -50%); /* اصلاح ترنسلیت برای راست */
    z-index: 1; display: flex; align-items: center; justify-content: center;
}
.control-button-wrapper { position: relative; display: flex; justify-content: center; }
.control-button {
    height: 80px; width: 80px; border-radius: 9999px; padding: 0;
    display: flex; align-items: center; justify-content: center;
    border-width: 1px; border-color: theme('colors.custom-border');
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06);
    cursor: pointer; transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
    flex-shrink: 0; z-index: 2; overflow: hidden;
    &:hover { transform: scale(1.05); }
    svg.reference-mic-svg { width: 75%; height: 75%; }
}
.mic-button-color { background-color: #fecdd3; }
.cam-button-color { background-color: #E0ECFF; }
.dark .mic-button-color { background-color: #5C2129; }
.dark .cam-button-color { background-color: #223355; }
.switch-camera-button-container {
    position: absolute; bottom: calc(100% + 0.65rem); 
    /* ✅ تغییر: برای RTL باید از right استفاده کنیم */
    left: auto; 
    right: 50%; 
    transform: translateX(50%) translateY(15px) scale(0.7); 
    z-index: 5; opacity: 0; pointer-events: none; transition: opacity 0.35s, transform 0.35s;
    transform-origin: center bottom;
    &.visible { opacity: 1; transform: translateX(50%) translateY(0) scale(1); pointer-events: auto; }
}
.switch-camera-button-content {
    width: 48px; height: 48px; background-color: theme('colors.custom-background');
    border: 1px solid theme('colors.custom-border'); border-radius: 9999px;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 5px 10px rgba(0,0,0,0.12); cursor: pointer;
    transition: transform 0.2s ease-out;
    &:hover { transform: scale(1.12); }
    &:active { transform: scale(1.03); }
    svg { width: 22px; height: 22px; stroke: theme('colors.custom-foreground'); }
}

/* استایل‌های مودال */
.modal-overlay {
  position: fixed; top: 0; left: 0; right: 0; bottom: 0;
  background-color: rgba(0, 0, 0, 0.7);
  display: flex; align-items: center; justify-content: center;
  z-index: 1000; backdrop-filter: blur(5px);
}
.modal-content {
  background: #fff; color: #111;
  padding: 24px; border-radius: 16px;
  width: 90%; max-width: 500px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
  border: 1px solid #e5e5e5;
  animation: modal-fade-in 0.3s ease-out;
  /* --- START: تغییرات برای راست‌چین شدن مودال --- */
  direction: rtl;
  text-align: right;
  /* --- END: تغییرات برای راست‌چین شدن مودال --- */
  .dark & { background: #2c2c2e; color: #fff; border-color: rgba(255, 255, 255, 0.15); }
  .modal-header {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 20px; border-bottom: 1px solid #e5e5e5; padding-bottom: 16px;
    /* --- START: چینش دکمه بستن در هدر مودال --- */
    flex-direction: row-reverse; 
    /* --- END: چینش دکمه بستن در هدر مودال --- */
    .dark & { border-color: #444; }
    h3 { margin: 0; font-size: 20px; color: inherit; }
    .close-button {
      background: none; border: none; color: #aaa; font-size: 28px;
      cursor: pointer; line-height: 1; padding: 0;
      &:hover { color: #111; }
      .dark &:hover { color: #fff; }
    }
  }
  .modal-body .form-group {
    margin-bottom: 20px;
    label { display: block; margin-bottom: 8px; font-weight: 500; color: inherit; }
    input, textarea {
      width: 100%; padding: 12px; border-radius: 8px;
      border: 1px solid #ccc; background-color: #f8f8f8;
      color: #111; font-size: 15px;
      /* --- START: راست‌چین کردن متن ورودی --- */
      text-align: right;
      /* --- END: راست‌چین کردن متن ورودی --- */
      .dark & { border-color: #555; background-color: #3a3a3c; color: #fff; }
      &:focus {
        outline: none; border-color: #0a84ff;
        box-shadow: 0 0 0 2px rgba(10, 132, 255, 0.5);
      }
    }
    textarea { resize: vertical; min-height: 100px; }
    small { display: block; margin-top: 8px; color: #777; font-size: 12px; .dark & { color: #999; } }
  }
  .modal-footer {
    display: flex; justify-content: flex-end; margin-top: 24px;
    /* --- START: چینش دکمه در فوتر مودال --- */
    flex-direction: row; /* دکمه "ذخیره" در راست قرار گیرد */
    /* --- END: چینش دکمه در فوتر مودال --- */
    .save-button {
      background-color: #0a84ff; color: #fff; border: none;
      padding: 12px 24px; border-radius: 8px; font-size: 16px;
      font-weight: 600; cursor: pointer; transition: background-color 0.2s;
      &:hover { background-color: #3499ff; }
    }
  }
}
@keyframes modal-fade-in {
  from { opacity: 0; transform: scale(0.9); }
  to { opacity: 1; transform: scale(1); }
}