File size: 9,320 Bytes
6ef0e61
 
 
 
ba3efb2
d495ba5
ae193f8
 
 
ba3efb2
 
d495ba5
ae193f8
ba3efb2
ae193f8
7f2a14a
ae193f8
ba3efb2
 
ae193f8
 
ba3efb2
af9b7ca
 
05ad47d
ba3efb2
6ef0e61
 
d495ba5
aaac013
6ef0e61
4d9ef16
05ad47d
4d9ef16
 
05ad47d
6ef0e61
 
aaac013
 
4d9ef16
 
26b53fd
4d9ef16
 
 
 
 
 
 
 
 
 
af9b7ca
 
d495ba5
4d9ef16
e581f47
 
4d9ef16
 
 
e581f47
4d9ef16
e581f47
2d9a144
1860caa
4d9ef16
 
 
 
31a3bdf
 
1860caa
4d9ef16
 
 
 
 
 
 
 
 
2d9a144
e581f47
9b8e548
1860caa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31a3bdf
1860caa
 
 
4d9ef16
1860caa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31a3bdf
1860caa
 
4d9ef16
d495ba5
 
 
4d9ef16
1860caa
 
 
2d9a144
 
4d9ef16
4b4c39a
6ef0e61
 
1860caa
4d9ef16
 
 
 
 
 
 
 
 
4b4c39a
9b8e548
4d9ef16
 
d495ba5
 
4b4c39a
31a3bdf
 
4d9ef16
31a3bdf
4d9ef16
1860caa
 
 
ae193f8
ba3efb2
1860caa
2d9a144
 
 
 
 
ba3efb2
1860caa
 
26b53fd
4d9ef16
6ef0e61
 
 
ba3efb2
2d9a144
05ad47d
ba3efb2
 
d495ba5
1860caa
4d9ef16
 
1860caa
 
 
 
4d9ef16
 
4b4c39a
4d9ef16
 
 
 
 
 
 
 
 
 
4b4c39a
ae193f8
7f2a14a
4d9ef16
 
 
 
 
 
 
 
 
 
 
1860caa
26b53fd
4b4c39a
7f2a14a
1860caa
9b8e548
4d9ef16
 
9b8e548
4d9ef16
 
 
 
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
// 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; /* 10px */
    --radius-md: 0.5rem; /* 8px */
    --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: var(--border);
        outline-color: var(--foreground);
        box-sizing: border-box;
    }
    body, html { // Apply to both for good measure
        @apply bg-background text-foreground;
        overflow-x: hidden; // Prevent horizontal scroll
        overflow-y: hidden; // *** ADDED: Prevent vertical scroll on body/html ***
        font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        margin: 0;
        padding: 0;
        height: 100%; // *** ADDED: Ensure html and body take full height ***
        width: 100%;  // *** ADDED: Ensure html and body take full width ***
    }
}

// Main application container to manage height and prevent scrolling
.app-container {
    height: 100vh; // Use viewport height to fill the screen
    // For iOS Safari, dvh might be better if address bar causes issues
    // height: 100dvh; 
    display: flex;
    flex-direction: column;
    overflow: hidden; // Prevent scrolling on the main app container itself
}

.main-wrapper {
    // min-height: 100vh; // Already handled by .app-container
    display: flex;
    flex-direction: column;
    flex-grow: 1; // Allow main-wrapper to fill .app-container
    overflow: hidden; // Prevent internal scrolling if content still overflows
    position: relative; // For absolute positioning of children like header/footer
}

.media-area {
    flex-grow: 1;
    position: relative;
    display: flex; // For centering large logo
    align-items: center;
    justify-content: center;
    overflow: hidden; // Ensure video/logo doesn't cause scroll
}

#large-logo-container {
    // display: flex; // Handled by media-area
    // align-items: center;
    // justify-content: center;
    // width: 100%;
    // height: 100%;
    // position: absolute; // Handled by media-area's relative and this absolute
    // top: 0;
    // left: 0;
    pointer-events: none;
}

/* Notification Popover & Header controls (بدون تغییر) */
.notification-popover-wrapper {
    position: fixed; top: 1rem; left: 50%; transform: translateX(-50%); z-index: 100;
    width: calc(100% - 1rem); max-width: 28rem; display: flex; justify-content: center; pointer-events: none;
}
.popover-content {
    width: 100%; border-radius: var(--radius-md, 0.5rem); border-width: 1px; border-color: var(--border);
    background-color: var(--popover); color: var(--popover-foreground);
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    outline: none; transition: opacity 0.3s ease-out, transform 0.4s cubic-bezier(0.68, -0.55, 0.27, 1.55);
    opacity: 0; transform: translateY(-100%) scale(0.9); pointer-events: none;
    &.open { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
}
.notification-popover-text-content {
    background-color: #eff6ff; font-size: 0.875rem; line-height: 1.5rem; direction: rtl;
    padding: 1rem; border-radius: var(--radius-md, 0.5rem); color: oklch(0.145 0 0);
}
.dark .notification-popover-text-content { background-color: oklch(0.25 0.05 230); color: oklch(0.95 0.01 230); }
.header-controls {
    display: flex; padding: 0.75rem 0.5rem; justify-content: space-between; align-items: center;
    width: 100%; position: absolute; top: 0; left: 0; z-index: 10;
    flex-shrink: 0; // Prevent header from shrinking
}
.header-button {
    display: flex; align-items: center; justify-content: center; padding: 0.5rem;
    width: 40px; height: 40px; border-radius: var(--radius-lg, 0.625rem); background-color: #e5e7eb;
    cursor: pointer; transition: background-color 0.2s, transform 0.1s ease-out;
    svg { opacity: 0.7; stroke: #374151; width: 24px; height: 24px; }
    &:hover { background-color: #d1d5db; }
    &:active { background-color: #9ca3af; transform: scale(0.95); }
}
.dark .header-button {
    background-color: oklch(0.28 0 0);
    &:hover { background-color: oklch(0.35 0 0); }
    &:active { background-color: oklch(0.40 0 0); transform: scale(0.95); }
    svg { opacity: 0.8; stroke: oklch(0.85 0 0); }
}

/* Logo Animation Styling */
.logo-animation-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    & > .z-10 > svg {
        width: 100%;
        height: 100%;
    }
}

/* Footer styles */
.footer-controls-html-like {
    width: 100%;
    display: flex;
    align-items: center;
    position: absolute; // نسبت به main-wrapper
    bottom: 0;
    // *** MODIFIED: تنظیم padding برای بالا بردن فوتر، مشابه HTML مرجع ***
    // مقادیر padding از HTML شما: padding: 2rem 3rem; (32px top/bottom, 48px left/right)
    // اگر می خواهید بالاتر بیاید، می توانید bottom را با یک مقدار مثبت تنظیم کنید
    // یا padding-bottom را کمتر کنید.
    // با توجه به اینکه گفتید دقیقا مثل HTML، padding را حفظ می کنیم.
    // اگر هنوز پایین است، ممکن است ارتفاع کلی main-wrapper یا media-area مشکل داشته باشد.
    padding: 2rem 3rem;
    box-sizing: border-box;
    z-index: 20;
    justify-content: space-between;
    flex-shrink: 0; // Prevent footer from shrinking
}

.small-logo-footer-html-like {
    position: absolute;
    left: 50%;
    top: 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; // SVG باید با اندازه خودش بیاید یا با CSS داخلی SVG تنظیم شود
    display: flex;
    align-items: center;
    justify-content: center;
    border-width: 1px;
    border-color: var(--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; // برای اینکه SVG بزرگتر از دکمه بیرون نزند

    &:hover {
        transform: scale(1.05);
        box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -2px rgba(0,0,0,0.05);
    }

    // *** MODIFIED: تنظیم اندازه SVG داخل دکمه میکروفون و دوربین ***
    svg {
        // هدف این است که آیکون میکروفون بزرگتر به نظر برسد
        // و آیکون دوربین هم اندازه مناسبی داشته باشد.
        // این مقادیر را می توانید تنظیم کنید.
        // برای SvgReferenceMicrophoneIcon که transform scale(0.55) داشت،
        // اگر آن transform را برداریم، اینجا باید scale را مدیریت کنیم یا width/height بدهیم.
        // فرض کنیم transform را از SVG برداشتیم:
        width: 60%; // یا یک مقدار ثابت px مانند 40px
        height: 60%; // یا یک مقدار ثابت px مانند 40px
        // اگر SVG دارای transform scale(0.55) است، این مقادیر را بزرگتر کنید:
        // width: 100%; height: 100%; // و اجازه دهید scale داخلی SVG کار کند
    }
}

// برای دکمه میکروفون، اگر آیکونش نیاز به استایل خاصی برای بزرگتر دیده شدن دارد
.mic-button-color svg {
    // width: 70% !important; // مثال برای بزرگتر کردن فقط آیکون میکروفون
    // height: 70% !important;
    // یا اگر scale در SVG اصلی بود و حذفش کردیم:
    // transform: scale(1); // برای اینکه به اندازه اصلی viewBox اش باشد
}


.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 (بدون تغییر) */
.switch-camera-button-container { /* ... */ }
.switch-camera-button-content { /* ... */ }
/* Keyframes for popover (بدون تغییر) */
@keyframes popover-drop-in { /* ... */ }
@keyframes popover-lift-out { /* ... */ }
.animate-popover-open-top-center { /* ... */ }
.animate-popover-close-top-center { /* ... */ }